private static void Syncdbus() { while (true) { if (dbusThread.exitEvent.WaitOne(Dbus.Cycle)) { break; } int AgvNum; #region AGV1 AgvNum = 1; if (UdpSever.EndPointArray[AgvNum] != null) { //Sever => AGV 1 Dbus.SetRegister(AgvNum, 1); //PLC => AGV //56 -60 => 26-30 //更新Modbus数据到Dbus UpdateModbusToDbus(AgvNum, 56, 26, 5); //设置到AGV Dbus.SetRegister(AgvNum, 26, 30); //AGV => PLC //20 -25 => 50-55 //更新Dbus数据到Modbus UpdateDbusToModbus(AgvNum, 20, 50, 6); //设置到Modbus Profinet.SetRegister(50, 55); } #endregion #region AGV2 //Sever => AGV 1 AgvNum = 2; if (UdpSever.EndPointArray[AgvNum] != null) { Dbus.SetRegister(AgvNum, 1); //PLC => AGV //67 -71 => 37-41 //更新Modbus数据到Dbus UpdateModbusToDbus(AgvNum, 67, 37, 5); //设置到AGV Dbus.SetRegister(AgvNum, 37, 41); //AGV => PLC //31 -36 => 61-66 //更新Dbus数据到Modbus UpdateDbusToModbus(AgvNum, 31, 61, 6); //设置到Modbus Profinet.SetRegister(61, 66); } #endregion } }
void wwsig(WvDbusWriter w, Dbus.Field c, string sig, string val) { w.Write((byte)c); w.WriteSig(sig); w.WriteSig(val); }
void wwu(WvDbusWriter w, Dbus.Field c, string sig, uint val) { w.Write((byte)c); w.WriteSig(sig); w.Write(val); }