public override void DoWork(PLCMsg msg) { CurrMsg = msg; AskPallet_Fujiao(); //判断专机满表启动插针 if (CurrMsg.PALLET_COUNT == 8 && !(CurrMsg.STATUS == 1 || CurrMsg.STATUS == 2 || CurrMsg.STATUS == 3)) { ControlMsg ctlMsg = new ControlMsg() { DEVICE_TYPE = msg.DEVICE_TYPE, NO = msg.NO, COMMAND_ID = 3, MESSAGE_TYPE = "control", time_stamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }; GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg)); //启动专机 } if (CurrMsg.STATUS == 1) //判断插针就绪 { //判断其他专机非放行状态 var d2 = DeviceBase.GetDevice("E02202"); if (d2.CurrMsg?.STATUS == 2) { return; } var d3 = DeviceBase.GetDevice("E02203"); if (d3.CurrMsg?.STATUS == 2) { return; } var d4 = DeviceBase.GetDevice("E02204"); if (d4.CurrMsg?.STATUS == 2) { return; } //放行后等10秒再次放行 if (LAST_PASS_TIME.HasValue && (DateTime.Now - LAST_PASS_TIME.Value).Seconds < 10) { return; } LAST_PASS_TIME = DateTime.Now; ControlMsg ctlMsg = new ControlMsg() { DEVICE_TYPE = msg.DEVICE_TYPE, NO = msg.NO, COMMAND_ID = 2, MESSAGE_TYPE = "control", time_stamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }; Task.Run(() => { //System.Threading.Thread.Sleep(5000);//5s后放行 GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg));//放行专机 }); } else { } }
private void OnControlMsg(Element2D the_control, ControlMsg msg, float xparam, float yparam) { if (the_control.ID != layout.ID || msg != ControlMsg.LAYOUT_RESIZED_BY_CHILDREN) { return; } scroll_frame.Pane_Height = layout.Height; var num = (int)(scroll_frame.Parent.Height * 0.649999976158142); if (scroll_frame.Pane_Height > 100) { scroll_frame.Visible = true; if (scroll_frame.Pane_Height < num) { scroll_frame.Height = scroll_frame.Pane_Height; } else { scroll_frame.Height = num; } } else { scroll_frame.Visible = false; } scroll_frame.Refresh(); }
public override void OnControlMsg(Element2D the_control, ControlMsg msg, float xparam, float yparam) { if (msg == ControlMsg.MSG_HIT) { if (the_control.ID == 2) { SetTrackPosition(m_track_position - m_pushbuttonstep); } else if (the_control.ID == 1) { SetTrackPosition(m_track_position + m_pushbuttonstep); } } if (the_control.GetElementType() == ElementType.ButtonWidget && msg == ControlMsg.MSG_MOVE && the_control.ID == 0) { var fPosition = xparam / yparam * m_range + m_range_start; if (rounding_place >= 0) { fPosition = (float)Math.Round(fPosition, rounding_place, MidpointRounding.AwayFromZero); } SetTrackPosition(fPosition); } if (the_control != null) { return; } SetTrackPosition(xparam / yparam * m_range + m_range_start); }
public override void OnControlMsg(Element2D the_control, ControlMsg msg, float xparam, float yparam) { if (the_control.ID == 0) { if (msg != ControlMsg.SCROLL_MOVE) { return; } if (verticalSlider.Visible) { var scrollbarWidth = scrollbar_width; } ScollableChildframe.Y = -(int)xparam; } else if (the_control.ID == 1) { if (msg != ControlMsg.SCROLL_MOVE) { return; } if (horizonalSlider.Visible) { var scrollbarWidth = scrollbar_width; } ScollableChildframe.X = -(int)xparam; } else { base.OnControlMsg(the_control, msg, xparam, yparam); } }
public override void OnControlMsg(Element2D the_control, ControlMsg msg, float xparam, float yparam) { if (the_control.GetElementType() == ElementType.ListBoxWidget && msg == ControlMsg.SELECTCHANGED) { var index = (int)xparam; if (index < 0 || index >= listboxwidget.Items.Count) { return; } editboxwidget.Text = listboxwidget.Items[index].ToString(); ShowDropDown = false; } else if (the_control.GetElementType() == ElementType.EditBoxWidget && msg == ControlMsg.TEXT_CHANGED) { if (TextChangedCallback == null) { return; } TextChangedCallback(this); } else { base.OnControlMsg(the_control, msg, xparam, yparam); } }
public override void DoWork(PLCMsg msg) { return; CurrMsg = msg; if (CurrMsg.STATUS == 1)//判断挡停放行 { //判断挡停后边专机空闲 var nxtDevice = DeviceBase.GetDevice("E0100201"); if (nxtDevice.CurrMsg?.STATUS == 0) { ControlMsg ctlMsg = new ControlMsg() { DEVICE_TYPE = msg.DEVICE_TYPE, NO = msg.NO, COMMAND_ID = 2, MESSAGE_TYPE = "control", time_stamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }; GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg));//放行挡停 } } else { } }
public override void DoWork(PLCMsg msg) { CurrMsg = msg; if (CurrMsg.STATUS == 1)//判断专机放行 { //放行后等5秒再次放行 if (LAST_PASS_TIME.HasValue && (DateTime.Now - LAST_PASS_TIME.Value).Seconds < 3) { return; } LAST_PASS_TIME = DateTime.Now; ControlMsg ctlMsg = new ControlMsg() { DEVICE_TYPE = msg.DEVICE_TYPE, NO = msg.NO, COMMAND_ID = 2, MESSAGE_TYPE = "control", time_stamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }; Task.Run(() => { //System.Threading.Thread.Sleep(5000);//5秒后放行 GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg));//启动专机 }); } else { } }
//process commands received from remote controller public void OnNetworkReceive(NetPeer peer, NetDataReader reader) { ControlMsg msg = (ControlMsg)reader.GetInt(); bool turnOn = reader.GetInt() > 0; receivedMessageInfo.text = string.Format("received message: {0} {1}", msg, turnOn); switch (msg) { case ControlMsg.forward: if (turnOn) { localForwardBtn.OnPointerDown(null); } else { localForwardBtn.OnPointerUp(null); } break; case ControlMsg.backward: if (turnOn) { localBackwardBtn.OnPointerDown(null); } else { localBackwardBtn.OnPointerUp(null); } break; case ControlMsg.left: if (turnOn) { localLeftBtn.OnPointerDown(null); } else { localLeftBtn.OnPointerUp(null); } break; case ControlMsg.right: if (turnOn) { localRightBtn.OnPointerDown(null); } else { localRightBtn.OnPointerUp(null); } break; case ControlMsg.light: FlashLight.ToggleAndroidFlashlight(); break; } }
public virtual void ControllEventTigger(ControlMsg msg) { switch (msg.index) { case InputHandleIndex.First: switch (msg.type) { case EventType.OnClick: OnClick_First(); break; case EventType.OnPressBegin: OnPressBegin_First(); break; case EventType.OnPressEnd: OnPressEnd_First(); break; case EventType.OnDragUpdate: OnDragUpdate_First(msg.handleVector); break; case EventType.OnDragEnd: OnDragEnd_First(msg.handleVector); break; } break; case InputHandleIndex.Second: switch (msg.type) { case EventType.OnClick: OnClick_Second(); break; case EventType.OnPressBegin: OnPressBegin_Second(); break; case EventType.OnPressEnd: OnPressEnd_Second(); break; case EventType.OnDragUpdate: OnDragUpdate_Second(msg.handleVector); break; case EventType.OnDragEnd: OnDragEnd_Second(msg.handleVector); break; } break; } }
public override void OnControlMsg(Element2D the_control, ControlMsg msg, float xparam, float yparam) { if (msg == ControlMsg.LAYOUT_RESIZED_BY_CHILDREN) { Refresh(); } else { base.OnControlMsg(the_control, msg, xparam, yparam); } }
public override void OnControlMsg(Element2D the_control, ControlMsg msg, float xparam, float yparam) { if (the_control.GetElementType() == ElementType.ButtonWidget && msg == ControlMsg.MSG_MOVE) { base.OnControlMsg(the_control, msg, yparam - m_trackSubControl.Y, m_trackSubControl.Height - m_buttonSubControl.Height); } else { base.OnControlMsg(the_control, msg, xparam, yparam); } }
private static int LastNo = 1;//专机号1,2 = no%2+1 public override void DoWork(PLCMsg msg) { CurrMsg = msg; return; if (CurrMsg.STATUS == 1)//判断挡停放行 { bool canpass = true; if (count == 8) { //判断托盘到位 string strLastNo = "E0210" + LastNo; var lastDevice = DeviceBase.GetDevice(strLastNo); if (lastDevice.CurrMsg?.PALLET_COUNT == 8)//8个托盘到位了 { //发送3 ControlMsg ctlMsg = new ControlMsg() { DEVICE_TYPE = "E021", NO = strLastNo, COMMAND_ID = 3, MESSAGE_TYPE = "control", time_stamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }; GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg)); //启动专机 canpass = true; LastNo++; //换下一个专机 LastNo = LastNo % 2 + 1; count = 0; } else { canpass = false; } } if (canpass) { count++; var ctlMsg = new ControlMsg() { DEVICE_TYPE = msg.DEVICE_TYPE, NO = msg.NO, COMMAND_ID = (LastNo + 1),//放行命令23 = no + 1 MESSAGE_TYPE = "control", time_stamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }; GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg));//放行挡停 } } else { } }
public void OnToggleFlashLightBtnClick() { ControlMsg msg = ControlMsg.light; var peer = _netClient.GetFirstPeer(); if (peer == null) { return; } cmdWriter.Reset(); cmdWriter.Put((int)msg); cmdWriter.Put(1); peer.Send(cmdWriter, SendOptions.ReliableOrdered); // Send with reliability }
public override void DoWork(PLCMsg msg) { CurrMsg = msg; if (CurrMsg.STATUS == 1)//TODO:判断专机启用 { //放行后等5秒再次放行 //if (LAST_PASS_TIME.HasValue && (DateTime.Now - LAST_PASS_TIME.Value).Seconds < 3) //{ // return; //} //LAST_PASS_TIME = DateTime.Now; ControlMsg ctlMsg = new ControlMsg() { DEVICE_TYPE = msg.DEVICE_TYPE, NO = msg.NO, COMMAND_ID = 3, MESSAGE_TYPE = "control", time_stamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }; GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg)); //启动专机 } else if (CurrMsg.STATUS == 4) //完成,判断后续空闲 { if (LAST_PASS_TIME.HasValue && (DateTime.Now - LAST_PASS_TIME.Value).Seconds < 3) { return; } LAST_PASS_TIME = DateTime.Now; var nxtDevice = DeviceBase.GetDevice("E0100103"); if (nxtDevice.CurrMsg != null && nxtDevice.CurrMsg.STATUS == 0) { ControlMsg ctlMsg = new ControlMsg() { DEVICE_TYPE = msg.DEVICE_TYPE, NO = msg.NO, COMMAND_ID = 2, MESSAGE_TYPE = "control", time_stamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }; GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg));//放行专机 } } else { } }
public virtual void OnControlMsg(Element2D the_control, ControlMsg msg, float xparam, float yparam) { if (OnControlMsgCallback != null) { OnControlMsgCallback(the_control, msg, xparam, yparam); } else { if (parent == null) { return; } parent.OnControlMsg(the_control, msg, xparam, yparam); } }
public void OnRemoteControlBtnDown(int parameter) //param is casted to ControlMs on the other side of connection { ControlMsg msg = (ControlMsg)parameter; var peer = _netClient.GetFirstPeer(); if (peer == null) { return; } cmdWriter.Reset(); cmdWriter.Put(parameter); int on = 1; cmdWriter.Put(on); peer.Send(cmdWriter, SendOptions.ReliableOrdered); // Send with reliability }
public override void DoWork(PLCMsg msg) { CurrMsg = msg; if (CurrMsg.STATUS == 1)//TODO:判断专机启用 { ////放行后等5秒再次放行 //if (LAST_PASS_TIME.HasValue && (DateTime.Now - LAST_PASS_TIME.Value).Seconds < 3) //{ // return; //} //LAST_PASS_TIME = DateTime.Now; ControlMsg ctlMsg = new ControlMsg() { DEVICE_TYPE = msg.DEVICE_TYPE, NO = msg.NO, //#if PASS // COMMAND_ID = 2,//直接放行 //#else COMMAND_ID = 3, //#endif MESSAGE_TYPE = "control", time_stamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }; GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg)); //启动专机 } else if (CurrMsg.STATUS == 4) //完成 { //放行后等5秒再次放行 if (LAST_PASS_TIME.HasValue && (DateTime.Now - LAST_PASS_TIME.Value).Seconds < 3) { return; } LAST_PASS_TIME = DateTime.Now; ControlMsg ctlMsg = new ControlMsg() { DEVICE_TYPE = msg.DEVICE_TYPE, NO = msg.NO, COMMAND_ID = 2, MESSAGE_TYPE = "control", time_stamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }; GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg));//放行专机 } else { } }
public override void DoWork(PLCMsg msg) { //if (CurrMsg != null && (Convert.ToDateTime(msg.time_stamp) - Convert.ToDateTime(CurrMsg.time_stamp)).Seconds < 3) // return; CurrMsg = msg; //判断专机满表启动插针 if (CurrMsg.PALLET_COUNT == 3 && !(CurrMsg.STATUS == 1 || CurrMsg.STATUS == 2 || CurrMsg.STATUS == 3)) { ControlMsg ctlMsg = new ControlMsg() { DEVICE_TYPE = msg.DEVICE_TYPE, NO = msg.NO, COMMAND_ID = 3, MESSAGE_TYPE = "control", time_stamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }; GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg)); //启动专机 } if (CurrMsg.STATUS == 1) //判断插针就绪 { //放行后等5秒再次放行 if (LAST_PASS_TIME.HasValue && (DateTime.Now - LAST_PASS_TIME.Value).Seconds < 3) { return; } LAST_PASS_TIME = DateTime.Now; ControlMsg ctlMsg = new ControlMsg() { DEVICE_TYPE = msg.DEVICE_TYPE, NO = msg.NO, COMMAND_ID = 2, MESSAGE_TYPE = "control", time_stamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }; Task.Run(() => { //System.Threading.Thread.Sleep(5000);//5s后放行 GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg));//放行专机 }); } else { } }
public override void DoWork(PLCMsg msg) { CurrMsg = msg; if (CurrMsg.STATUS == 1)// { ControlMsg ctlMsg = new ControlMsg() { DEVICE_TYPE = msg.DEVICE_TYPE, NO = msg.NO, COMMAND_ID = 2, MESSAGE_TYPE = "control", time_stamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }; GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg));//启动专机 } else { } }
public override void DoWork(PLCMsg msg) { CurrMsg = msg; //判断专机满表启动插针 if (CurrMsg.PALLET_COUNT == 6 && !(CurrMsg.STATUS == 1 || CurrMsg.STATUS == 2 || CurrMsg.STATUS == 3)) { ControlMsg ctlMsg = new ControlMsg() { DEVICE_TYPE = msg.DEVICE_TYPE, NO = msg.NO, COMMAND_ID = 3, MESSAGE_TYPE = "control", time_stamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }; GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg)); //启动专机 } if (CurrMsg.STATUS == 1) //判断插针就绪 { //放行后等5秒再次放行 if (LAST_PASS_TIME.HasValue && (DateTime.Now - LAST_PASS_TIME.Value).Seconds < 3) { return; } LAST_PASS_TIME = DateTime.Now; ControlMsg ctlMsg = new ControlMsg() { DEVICE_TYPE = msg.DEVICE_TYPE, NO = msg.NO, COMMAND_ID = 2, MESSAGE_TYPE = "control", time_stamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }; GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg));//放行专机 } else { } }
public override void OnControlMsg(Element2D the_control, ControlMsg msg, float xparam, float yparam) { if (the_control.ID == 1) { if (msg != ControlMsg.SCROLL_MOVE) { return; } start_row = (int)xparam; if (start_row >= 0) { return; } start_row = 0; } else { base.OnControlMsg(the_control, msg, xparam, yparam); } }
private static int LastNo = 1;//专机号1,2,3,4 = (no % 4) + 1 public override void DoWork(PLCMsg msg) { CurrMsg = msg; return; if (CurrMsg.STATUS == 1)//判断挡停放行 { bool canpass = true; if (count == 8) { //判断托盘到位 string strLastNo = "E0220" + LastNo; var lastDevice = DeviceBase.GetDevice(strLastNo); if (lastDevice.CurrMsg?.PALLET_COUNT == 8)//8个托盘到位了 { //发送3 ControlMsg ctlMsg = new ControlMsg() { DEVICE_TYPE = "E022", NO = strLastNo, COMMAND_ID = 3, MESSAGE_TYPE = "control", time_stamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }; GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg));//启动专机 canpass = true; LastNo++;//换下一个专机 LastNo = LastNo % 4 + 1; count = 0; } else { canpass = false; } } if (canpass) { count++; var ctlMsg = new ControlMsg() { DEVICE_TYPE = msg.DEVICE_TYPE, NO = msg.NO, COMMAND_ID = (LastNo + 1),//放行命令2345 = no + 1 MESSAGE_TYPE = "control", time_stamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }; GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg));//放行挡停 } //int cmdid = 0; ////判断挡停后边专机空闲 //var nxtDevice1 = DeviceBase.GetDevice("E02201"); //var nxtDevice2 = DeviceBase.GetDevice("E02202"); //var nxtDevice3 = DeviceBase.GetDevice("E02203"); //var nxtDevice4 = DeviceBase.GetDevice("E02204"); //if (nxtDevice1.CurrMsg?.PALLET_COUNT < 8) //{ // cmdid = 2; //} //else if (nxtDevice2.CurrMsg?.STATUS < 8) //{ // cmdid = 3; //} //else if (nxtDevice3.CurrMsg?.STATUS < 8) //{ // cmdid = 4; //} //else if (nxtDevice4.CurrMsg?.STATUS < 8) //{ // cmdid = 5; //} //else //{ //} //if (cmdid != 0 && (DateTime.Now - LastCount8).Seconds > 20)//每放8个等20秒 //{ // count++; // if (count % 8 == 0) // LastCount8 = DateTime.Now; // var ctlMsg = new ControlMsg() // { // DEVICE_TYPE = msg.DEVICE_TYPE, // NO = msg.NO, // COMMAND_ID = cmdid, // MESSAGE_TYPE = "control", // time_stamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") // }; // GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg));//放行挡停 //} } else { } }
protected void AskPallet_Fujiao() { var c1 = DeviceBase.GetDevice("E02201"); var c2 = DeviceBase.GetDevice("E02202"); var c3 = DeviceBase.GetDevice("E02203"); var c4 = DeviceBase.GetDevice("E02204"); var stop = DeviceBase.GetDevice("E00215"); if (CurrFujiaoNo == 1) //当前放行至复校1 { if (FujiaoCount < 8) //尚未放满8个 { if (stop.CurrMsg?.STATUS == 1) //有待放行的表 { if ((DateTime.Now - LastFujiaoPassTime).Seconds < 5) { return; } LastFujiaoPassTime = DateTime.Now; //放行至复校1 ControlMsg ctlMsg = new ControlMsg() { DEVICE_TYPE = stop.DEVICE_TYPE, NO = stop.NO, COMMAND_ID = 2, MESSAGE_TYPE = "control", time_stamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }; GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg));//启动专机 FujiaoCount++; Console.WriteLine("放行至复校1 -- " + FujiaoCount); } } else { if (c1.CurrMsg?.PALLET_COUNT == 8)//复校1的8个到位后可切换至复校2 { FujiaoCount = 0; CurrFujiaoNo = 2; } } } if (CurrFujiaoNo == 2) //当前放行至复校2 { if (FujiaoCount < 8) //尚未放满8个 { if (stop.CurrMsg?.STATUS == 1) //有待放行的表 { if ((DateTime.Now - LastFujiaoPassTime).Seconds < 5) { return; } LastFujiaoPassTime = DateTime.Now; //放行至复校2 ControlMsg ctlMsg = new ControlMsg() { DEVICE_TYPE = stop.DEVICE_TYPE, NO = stop.NO, COMMAND_ID = 3, MESSAGE_TYPE = "control", time_stamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }; GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg));//启动专机 FujiaoCount++; Console.WriteLine("放行至复校2 -- " + FujiaoCount); } } else { if (c2.CurrMsg?.PALLET_COUNT == 8)//初调2的8个到位后可切换至复校3 { FujiaoCount = 0; CurrFujiaoNo = 3; } } } if (CurrFujiaoNo == 3) //当前放行至复校3 { if (FujiaoCount < 8) //尚未放满8个 { if (stop.CurrMsg?.STATUS == 1) //有待放行的表 { if ((DateTime.Now - LastFujiaoPassTime).Seconds < 5) { return; } LastFujiaoPassTime = DateTime.Now; //放行至复校3 ControlMsg ctlMsg = new ControlMsg() { DEVICE_TYPE = stop.DEVICE_TYPE, NO = stop.NO, COMMAND_ID = 4, MESSAGE_TYPE = "control", time_stamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }; GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg));//启动专机 FujiaoCount++; Console.WriteLine("放行至复校3 -- " + FujiaoCount); } } else { if (c3.CurrMsg?.PALLET_COUNT == 8)//初调3的8个到位后可切换至复校4 { FujiaoCount = 0; CurrFujiaoNo = 4; } } } if (CurrFujiaoNo == 4) //当前放行至复校4 { if (FujiaoCount < 8) //尚未放满8个 { if (stop.CurrMsg?.STATUS == 1) //有待放行的表 { if ((DateTime.Now - LastFujiaoPassTime).Seconds < 5) { return; } LastFujiaoPassTime = DateTime.Now; //放行至复校4 ControlMsg ctlMsg = new ControlMsg() { DEVICE_TYPE = stop.DEVICE_TYPE, NO = stop.NO, COMMAND_ID = 5, MESSAGE_TYPE = "control", time_stamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }; GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg));//启动专机 FujiaoCount++; Console.WriteLine("放行至复校4 -- " + FujiaoCount); } } else { if (c4.CurrMsg?.PALLET_COUNT == 8)//初调4的8个到位后可切换至复校1 { FujiaoCount = 0; CurrFujiaoNo = 1; } } } }
protected void AskPallet_Chutiao() { //判断专机空闲,且托盘不满8个(包括在途) var c1 = DeviceBase.GetDevice("E02101"); var c2 = DeviceBase.GetDevice("E02102"); var stop = DeviceBase.GetDevice("E00214"); if (CurrChutiaoNo == 1) //当前放行至初调1 { if (ChuTiaoCount < 8) //尚未放满8个 { if (stop.CurrMsg?.STATUS == 1) //有待放行的表 { if ((DateTime.Now - LastChutiaoPassTime).Seconds < 5) { return; } LastChutiaoPassTime = DateTime.Now; //放行至初调1 ControlMsg ctlMsg = new ControlMsg() { DEVICE_TYPE = stop.DEVICE_TYPE, NO = stop.NO, COMMAND_ID = 2, MESSAGE_TYPE = "control", time_stamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }; GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg));//启动专机 ChuTiaoCount++; Console.WriteLine("放行至初调1 -- " + ChuTiaoCount); } } else { if (c1.CurrMsg?.PALLET_COUNT == 8)//初调1的8个到位后可切换至初调2 { ChuTiaoCount = 0; CurrChutiaoNo = 2; } } } if (CurrChutiaoNo == 2) //当前放行至初调2 { if (ChuTiaoCount < 8) //尚未放满8个 { if (stop.CurrMsg?.STATUS == 1) //有待放行的表 { if ((DateTime.Now - LastChutiaoPassTime).Seconds < 5) { return; } LastChutiaoPassTime = DateTime.Now; //放行至初调2 ControlMsg ctlMsg = new ControlMsg() { DEVICE_TYPE = stop.DEVICE_TYPE, NO = stop.NO, COMMAND_ID = 3, MESSAGE_TYPE = "control", time_stamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }; GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg));//启动专机 ChuTiaoCount++; Console.WriteLine("放行至初调2 -- " + ChuTiaoCount); } } else { if (c2.CurrMsg?.PALLET_COUNT == 8)//初调2的8个到位后可切换至初调1 { ChuTiaoCount = 0; CurrChutiaoNo = 1; } } } }
public override void OnControlMsg(Element2D the_control, ControlMsg msg, float xparam, float yparam) { switch (msg) { case ControlMsg.MSG_MOVE: if (currentTab.CanRemoveRecords) { var childElement = (ImageWidget)FindChildElement(1008); if (childElement != null) { childElement.Visible = true; } } if (!currentTab.CanSaveRecords) { break; } var childElement1 = (ImageWidget)FindChildElement(1009); if (childElement1 == null) { break; } childElement1.Visible = true; break; case ControlMsg.ENTERHIT: if (the_control.GetElementType() != ElementType.EditBoxWidget) { break; } var editBoxWidget = (EditBoxWidget)the_control; if (editBoxWidget.ID != 1001) { break; } search_filter = editBoxWidget.Text; RefreshTab(); break; case ControlMsg.MSG_DRAGSTOP: var childElement2 = (ImageWidget)FindChildElement(1008); var childElement3 = (ImageWidget)FindChildElement(1009); if (the_control.GetElementType() == ElementType.ButtonWidget) { var buttonWidget = (ButtonWidget)the_control; if (buttonWidget.Data != null && buttonWidget.Data is LibraryRecord) { if (currentTab.CanRemoveRecords && buttonWidget.Overlaps(childElement2, (int)xparam - buttonWidget.X_Abs, (int)yparam - buttonWidget.Y_Abs)) { currentTab.RemoveRecord((LibraryRecord)buttonWidget.Data); refresh.Value = true; } else if (currentTab.CanSaveRecords && buttonWidget.Overlaps(childElement3, (int)xparam - buttonWidget.X_Abs, (int)yparam - buttonWidget.Y_Abs)) { currentTab.SaveRecord((LibraryRecord)buttonWidget.Data); refresh.Value = true; } else { recorddata_to_load = (LibraryRecord)buttonWidget.Data; } } } if (childElement2 != null) { childElement2.Visible = false; } if (childElement3 == null) { break; } childElement3.Visible = false; break; default: base.OnControlMsg(the_control, msg, xparam, yparam); break; } }
public override void OnControlMsg(Element2D the_control, ControlMsg msg, float xparam, float yparam) { if (__processingInput) { return; } __processingInput = true; if (msg == ControlMsg.ENTERHIT) { if (the_control.ID == 8006) { if (float.TryParse(X_Edit.Text, out var result)) { if (linkScaling_button.Checked && editmode == ModelAdjustmentsDialog.EditMode.Scale) { LinkedScaleX(result); enter_hit = true; } else { X_Slider.TrackPosition = result; } } } else if (the_control.ID == 8007) { if (float.TryParse(Y_Edit.Text, out var result)) { if (linkScaling_button.Checked && editmode == ModelAdjustmentsDialog.EditMode.Scale) { LinkedScaleY(result); enter_hit = true; } else { Y_Slider.TrackPosition = result; } } } else if (the_control.ID == 8008) { if (float.TryParse(Z_Edit.Text, out var result)) { if (linkScaling_button.Checked && editmode == ModelAdjustmentsDialog.EditMode.Scale) { LinkedScaleZ(result); enter_hit = true; } else { Z_Slider.TrackPosition = result; } } } printerview.ObjectTransformed = true; } if (msg == ControlMsg.SCROLL_MOVE) { if (the_control.ID == 8009) { if (linkScaling_button.Checked && editmode == ModelAdjustmentsDialog.EditMode.Scale) { LinkedScaleX(X_Slider.TrackPosition); } else { X_Edit.Text = X_Slider.TrackPosition.ToString("F2"); } } else if (the_control.ID == 8010) { if (linkScaling_button.Checked && editmode == ModelAdjustmentsDialog.EditMode.Scale) { LinkedScaleY(Y_Slider.TrackPosition); } else { Y_Edit.Text = Y_Slider.TrackPosition.ToString("F2"); } } else if (the_control.ID == 8011) { if (linkScaling_button.Checked && editmode == ModelAdjustmentsDialog.EditMode.Scale) { LinkedScaleZ(Z_Slider.TrackPosition); } else { Z_Edit.Text = Z_Slider.TrackPosition.ToString("F2"); } } printerview.ObjectTransformed = true; } else { base.OnControlMsg(the_control, msg, xparam, yparam); } __processingInput = false; }
public override void DoWork(PLCMsg msg) { CurrMsg = msg; if (CurrMsg.STATUS == 4 || CurrMsg.STATUS == 0) //机器人抓完后 { if ((DateTime.Now - LastStatus4).Seconds < 10) //两次状态4之间超过10秒认为机器人抓完 { return; } LastStatus4 = DateTime.Now; var stopBefore = DeviceBase.GetDevice("E00216"); var stopAfter = DeviceBase.GetDevice("E00217"); //判断前面托盘到位 && 判断后边托盘到位 if (stopBefore.CurrMsg?.STATUS == 1 && stopAfter.CurrMsg?.STATUS == 1) { #region 启动机器人 ControlMsg pickMsg = new ControlMsg() { DEVICE_TYPE = msg.DEVICE_TYPE, NO = msg.NO, COMMAND_ID = flags[i % flags.Count], MESSAGE_TYPE = "control", time_stamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }; i++; GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(pickMsg)); #endregion #region 放行机器人后挡停 Task.Run(() => { System.Threading.Thread.Sleep(6000);//等5秒机器人放完 ControlMsg ctl_af_Msg = new ControlMsg() { NO = stopAfter.NO, DEVICE_TYPE = stopAfter.DEVICE_TYPE, COMMAND_ID = 2, MESSAGE_TYPE = "control", time_stamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }; GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctl_af_Msg)); }); #endregion #region 放行机器人前挡停 if (i > 0 && i % flags.Count == 0)//判断抓完6个 { Task.Run(() => { System.Threading.Thread.Sleep(2000);//等2秒机器人抓走 ControlMsg ctl_br_Msg = new ControlMsg() { NO = stopBefore.NO, DEVICE_TYPE = stopBefore.DEVICE_TYPE, COMMAND_ID = 2, MESSAGE_TYPE = "control", time_stamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }; GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctl_br_Msg)); }); } #endregion } } }