/// <summary> /// 放货 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void UnloadBtn_Click(object sender, RoutedEventArgs e) { string dev = ""; byte[] order = null; try { if (CBdev.SelectedIndex == -1) { Notice.Show("请选择设备!", "提示", 3, MessageBoxIcon.Info); return; } if (string.IsNullOrEmpty(xlocation.Text.Trim()) || string.IsNullOrEmpty(ylocation.Text.Trim()) || string.IsNullOrEmpty(zlocation.Text.Trim())) { Notice.Show("请填写目的坐标!", "提示", 3, MessageBoxIcon.Info); return; } dev = CBdev.Text; ABC abc = new ABC(dev); if (abc.ActionStatus() == ABC.Run) { Notice.Show("指令发送失败:设备运行中!", "错误", 3, MessageBoxIcon.Error); return; } if (abc.DeviceStatus() == ABC.DeviceError) { Notice.Show("指令发送失败:设备故障!", "错误", 3, MessageBoxIcon.Error); return; } if (!WindowCommon.ConfirmAction("是否进行[放货任务]!!")) { return; } int x = Convert.ToInt32(xlocation.Text.Trim()); int y = Convert.ToInt32(ylocation.Text.Trim()); int z = Convert.ToInt32(zlocation.Text.Trim()); order = ABC._TaskControl(ABC.TaskRelease, abc.ABCNum(), DataControl._mStools.IntToBytes(x), DataControl._mStools.IntToBytes(y), DataControl._mStools.IntToBytes(z)); DataControl._mSocket.SwithRefresh(dev, false); if (!DataControl._mSocket.SendToClient(dev, order, out string result)) { DataControl._mSocket.SwithRefresh(dev, true); Notice.Show("指令发送失败:" + result.ToString(), "错误", 3, MessageBoxIcon.Error); // LOG DataControl._mTaskTools.RecordTaskErrLog("UnloadBtn_Click()", "行车-放货任务[ABC,指令]", dev, DataControl._mStools.BytetToString(order), result.ToString()); return; } Notice.Show("放货任务 指令发送成功!", "成功", 3, MessageBoxIcon.Success); } catch (Exception ex) { Notice.Show("指令发送失败:" + ex.Message, "错误", 3, MessageBoxIcon.Error); // LOG DataControl._mTaskTools.RecordTaskErrLog("UnloadBtn_Click()", "行车-放货任务[ABC,指令]", dev, DataControl._mStools.BytetToString(order), ex.Message); } }
/// <summary> /// 放货 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void UnloadBtn_Click(object sender, RoutedEventArgs e) { try { if (CBdev.SelectedIndex == -1) { Notice.Show("请选择设备!", "提示", 3, MessageBoxIcon.Info); return; } if (string.IsNullOrEmpty(xlocation.Text.Trim()) || string.IsNullOrEmpty(ylocation.Text.Trim()) || string.IsNullOrEmpty(zlocation.Text.Trim())) { Notice.Show("请填写目的坐标!", "提示", 3, MessageBoxIcon.Info); return; } string dev = CBdev.Text; ABC abc = new ABC(dev); if (abc.ActionStatus() == ABC.Run) { Notice.Show("指令发送失败:设备运行中!", "错误", 3, MessageBoxIcon.Error); return; } if (abc.DeviceStatus() == ABC.DeviceError) { Notice.Show("指令发送失败:设备故障!", "错误", 3, MessageBoxIcon.Error); return; } int x = Convert.ToInt32(xlocation.Text.Trim()); int y = Convert.ToInt32(ylocation.Text.Trim()); int z = Convert.ToInt32(zlocation.Text.Trim()); byte[] order = ABC._TaskControl(ABC.TaskRelease, abc.ABCNum(), DataControl._mStools.IntToBytes(x), DataControl._mStools.IntToBytes(y), DataControl._mStools.IntToBytes(z)); if (!DataControl._mSocket.SendToClient(dev, order, out string result)) { Notice.Show("指令发送失败:" + result.ToString(), "错误", 3, MessageBoxIcon.Error); return; } Notice.Show("放货任务 指令发送成功!", "成功", 3, MessageBoxIcon.Success); DataControl._mSocket.SwithRefresh(dev, false); } catch (Exception ex) { Notice.Show("指令发送失败:" + ex.ToString(), "错误", 3, MessageBoxIcon.Error); } }
/// <summary> /// 行车复位 /// </summary> /// <param name="dev"></param> /// <param name="mes"></param> public void ResetLoc_ABC(List <WCS_CONFIG_DEVICE> dev, out string mes) { try { int locY = 1; int locZ = 1; // 行车待命点1 int locX1 = Convert.ToInt32(DataControl._mStools.GetValueByKey("StandbyA1")); // 行车待命点2 int locX2 = Convert.ToInt32(DataControl._mStools.GetValueByKey("StandbyA2")); // 获取当前摆渡车资讯 ABC a1 = new ABC(dev[0].DEVICE); ABC a2 = new ABC(dev[1].DEVICE); // 定位任务指令 byte[] order1; byte[] order2; // 任务明细 WCS_TASK_ITEM item1; WCS_TASK_ITEM item2; if (DataControl._mStools.BytesToInt(a1.CurrentXsite(), 0) < DataControl._mStools.BytesToInt(a2.CurrentXsite(), 0)) { // 定位任务指令 order1 = ABC._TaskControl(ABC.TaskLocate, a1.ABCNum(), DataControl._mStools.IntToBytes(locX1), DataControl._mStools.IntToBytes(locY), DataControl._mStools.IntToBytes(locZ)); order2 = ABC._TaskControl(ABC.TaskLocate, a2.ABCNum(), DataControl._mStools.IntToBytes(locX2), DataControl._mStools.IntToBytes(locY), DataControl._mStools.IntToBytes(locZ)); // 任务明细 item1 = new WCS_TASK_ITEM() { ITEM_ID = ItemId.行车复位, ID = 5, DEVICE = dev[0].DEVICE, LOC_TO = Convert.ToString(locX1) + "-" + Convert.ToString(locY) + "-" + Convert.ToString(locZ) }; item2 = new WCS_TASK_ITEM() { ITEM_ID = ItemId.行车复位, ID = 6, DEVICE = dev[1].DEVICE, LOC_TO = Convert.ToString(locX2) + "-" + Convert.ToString(locY) + "-" + Convert.ToString(locZ) }; } else { // 定位任务指令 order1 = ABC._TaskControl(ABC.TaskLocate, a1.ABCNum(), DataControl._mStools.IntToBytes(locX2), DataControl._mStools.IntToBytes(locY), DataControl._mStools.IntToBytes(locZ)); order2 = ABC._TaskControl(ABC.TaskLocate, a2.ABCNum(), DataControl._mStools.IntToBytes(locX1), DataControl._mStools.IntToBytes(locY), DataControl._mStools.IntToBytes(locZ)); // 任务明细 item1 = new WCS_TASK_ITEM() { ITEM_ID = ItemId.行车复位, ID = 5, DEVICE = dev[0].DEVICE, LOC_TO = Convert.ToString(locX2) + "-" + Convert.ToString(locY) + "-" + Convert.ToString(locZ) }; item2 = new WCS_TASK_ITEM() { ITEM_ID = ItemId.行车复位, ID = 6, DEVICE = dev[1].DEVICE, LOC_TO = Convert.ToString(locX1) + "-" + Convert.ToString(locY) + "-" + Convert.ToString(locZ) }; } // 加入任务作业链表 mes = null; if (dev[0].FLAG == DeviceFlag.空闲) { DataControl._mTaskControler.StartTask(new ABCTack(item1, DeviceType.行车, order1)); } else { mes = dev[0].DEVICE + " 行车目前无法操作复位任务; \r"; } if (dev[1].FLAG == DeviceFlag.空闲) { DataControl._mTaskControler.StartTask(new ABCTack(item2, DeviceType.行车, order2)); } else { mes = mes + dev[1].DEVICE + " 行车目前无法操作复位任务; \r"; } } catch (Exception ex) { throw ex; } }