Exemplo n.º 1
0
        private void UpdateMesBtaryInfos()
        {
            //TODO获取当前4号位料箱明细信息;
            P4PlcInfo currentP4PlcInfo = Get <P4PlcInfo>($"{ApcmKeyConf.DataCollection}:{ApcmDevcieConfig.PROPERTY_P4_PLCINFO}:DATA");

            //更新料箱明细表
            byte[] bts = currentP4PlcInfo.LocaNumbInfo;
            //获取料箱内件数
            int length = 0;

            char[] LocaNumbInfob2 = DataConvertHelper.BytesToCharArrayb2(bts);
            foreach (char c in LocaNumbInfob2)
            {
                if (int.Parse(c.ToString()) == 1)
                {
                    length++;
                }
            }
            for (int i = 0; i < length; i++)
            {
                PushToMes(ApcmDevcieConfig.EVENT_MES_BTRAY_INFO, new Dictionary <string, object>
                {
                    ["BTRAY_ID"]      = currentP4PlcInfo.UID,
                    ["MATERIAL_CODE"] = currentP4PlcInfo.MaterialCode,
                    ["PRODUCT_SN"]    = currentP4PlcInfo.ProductSnL[i],
                    ["SEQ_NO"]        = i,
                    ["FLAG"]          = 1,
                });
            }
        }
Exemplo n.º 2
0
        public void OnEventP4_PlcInfoReadDone(ApcmEventArgs evt)
        {
            P4PlcInfo currentP4PlcInfo = new P4PlcInfo();

            currentP4PlcInfo = (P4PlcInfo)StructTransform.BytesToStruct((byte[])((Dictionary <string, object>)evt.Data)[ApcmDevcieConfig.PROPERTY_P4_PLCINFO], currentP4PlcInfo.GetType());
            //更新本地缓存
            Set($"{ApcmKeyConf.DataCollection}:{ApcmDevcieConfig.PROPERTY_P4_PLCINFO}:DATA", currentP4PlcInfo);
            //4号位需要更新
            Write(ApcmDevcieConfig.ACTION_P4_UPDATE, 1);
            //更新具体信息
            RfidStationInfo stationInfo = RefreshMaterialCode(currentP4PlcInfo);
            int             Spe         = Get <int>($"{ApcmKeyConf.DataCollection}:{ApcmDevcieConfig.ACTION_P4_WORKBINSPE}:DATA");

            if (Spe == 0)
            {
                Write(ApcmDevcieConfig.ACTION_P4_UPDATECPPINFO, StructTransform.StructToBytes(stationInfo));
            }
            else
            {
                Write(ApcmDevcieConfig.ACTION_P4_SPECPPINFO, StructTransform.StructToBytes(stationInfo));
            }
        }
Exemplo n.º 3
0
        private RfidStationInfo RefreshMaterialCode(P4PlcInfo p4PlcInfo)
        {
            //获取订单的产品物料号
            string MaterialCode = Get <string>($"LD:{SysConf.KeyAssemblyLine}:MCIM:MATERIAL_CODE");

            p4PlcInfo.MaterialCode = MaterialCode;
            //更新本地缓存
            Set($"{ApcmKeyConf.DataCollection}:{ApcmDevcieConfig.PROPERTY_P4_PLCINFO}:DATA", p4PlcInfo);
            RfidStationInfo stationInfo = new RfidStationInfo();

            stationInfo.AssemblyLineId = p4PlcInfo.AssemblyLineId;
            stationInfo.UID            = p4PlcInfo.UID;
            stationInfo.MaterialCode   = p4PlcInfo.MaterialCode;
            stationInfo.BatchCode      = p4PlcInfo.BatchCode;
            stationInfo.LocaNumbInfo   = p4PlcInfo.LocaNumbInfo;
            stationInfo.McToMes        = p4PlcInfo.McToMes;
            stationInfo.MesToMc        = p4PlcInfo.MesToMc;
            stationInfo.NgStatus       = p4PlcInfo.NgStatus;
            stationInfo.ProductSnL     = p4PlcInfo.ProductSnL;
            stationInfo.Status         = p4PlcInfo.Status;
            return(stationInfo);
        }