private void btnHandScan_Click(object sender, EventArgs e) { try { object state = AutomationContext.Read(memoryServiceName1, memoryItemName1); if (state == null || state.ToString() != "WholePalletScan") { XtraMessageBox.Show("当手持扫码模式不是 [手持扫码整托盘入库]!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } state = AutomationContext.Read(plcServiceName, I_Whole_Pallet_StockIn_Scan_Request); state = ObjectUtil.GetObject(state); if (state == null || !Convert.ToBoolean(state)) { XtraMessageBox.Show("当前PLC未请求扫码!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } ScanDialog scanDialog = new ScanDialog(); scanDialog.Text = "整盘入库手工扫码!"; if (scanDialog.ShowDialog() == DialogResult.OK) { int[] data = new int[] { scanDialog.ProductNo, scanDialog.Quantity }; AutomationContext.Write(memoryServiceName2, memoryItemName2, data); } } catch (Exception ex) { XtraMessageBox.Show(string.Format("手工扫码失败,详情原因 : {0}", ex.Message), "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
public override void Execute() { try { object state = AutomationContext.Read(memoryServiceName1, memoryItemName1); if (state == null || state.ToString() != "WholePalletScan") { return; } state = AutomationContext.Read(scanServiceName, scanItemName); if (state == null || state.ToString() == string.Empty) { return; } string barcode = state.ToString(); state = AutomationContext.Read(plcServiceName, I_Whole_Pallet_StockIn_Scan_Request); state = ObjectUtil.GetObject(state); if (state == null || !Convert.ToBoolean(state)) { Logger.Info("当前PLC未请求扫码!"); return; } if (barcode == "NOREAD") { string text = scanItemName + "号条码扫描器处理失败!详情:NOREAD!"; Logger.Error(text); return; } if (barcode.Length == 32) { barcode = barcode.Substring(2, 6); } if (barcode.Length != 6) { string text = scanItemName + "号条码扫描器处理失败!详情:条码格式不正确!【" + barcode + "】"; Logger.Error(text); return; } //弹出输入窗,获取数量; state = AutomationContext.Read(memoryServiceName3, memoryItemName3); if (state != null) { UserLookAndFeel.Default.SetSkinStyle(state.ToString()); } ScanDialog scanDialog = new ScanDialog(); scanDialog.Text = "整盘入库手工扫码!"; scanDialog.SetBarcode(barcode); if (scanDialog.ShowDialog() == DialogResult.OK) { int[] data = new int[] { scanDialog.ProductNo, scanDialog.Quantity }; AutomationContext.Write(memoryServiceName2, memoryItemName2, data); } scanDialog = null; GC.Collect(); } catch (Exception ex) { Logger.Error("WholePalletScanProcess 出错,原因:" + ex.Message + "/n" + ex.StackTrace); } }