This commit is contained in:
chi
2025-04-24 11:51:55 +09:00
parent 0a93a54a6f
commit f71b963851
62 changed files with 1748 additions and 4105 deletions

View File

@@ -4,6 +4,7 @@ using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using AR;
using arCtl;
using COMM;
using static Project.StateMachine;
@@ -23,10 +24,10 @@ namespace Project
var tsPLC = VAR.TIME.RUN(conntry);
if (tsPLC.TotalSeconds > 5)
{
VAR.TIME.Set(conntry);
VAR.TIME.Update(conntry);
try
{
VAR.TIME.Set(recvtime); //this.LastReceiveTime = DateTime.Now;
VAR.TIME.Update(recvtime); //this.LastReceiveTime = DateTime.Now;
dev.PortName = port;
dev.BaudRate = baud;
if (dev.Open())
@@ -38,8 +39,8 @@ namespace Project
var errmessage = dev.errorMessage;
PUB.log.Add("ERROR-" + port, errmessage);
}
VAR.TIME.Set(conn);
VAR.TIME.Set(conntry);
VAR.TIME.Update(conn);
VAR.TIME.Update(conntry);
}
catch (Exception ex)
{
@@ -51,17 +52,53 @@ namespace Project
{
PUB.log.Add(port, $"포트변경({dev.PortName}->{port})으로 연결 종료");
dev.Close();
VAR.TIME.Set(conntry);
VAR.TIME.Update(conntry);
}
}
void ConnectSerialPort(Device.Xbee dev, string port, int baud, eVarTime conn, eVarTime conntry, eVarTime recvtime)
{
if (dev.IsOpen == false && port.isEmpty() == false)
{
var tsPLC = VAR.TIME.RUN(conntry);
if (tsPLC.TotalSeconds > 5)
{
VAR.TIME.Update(conntry);
try
{
VAR.TIME.Update(recvtime); //this.LastReceiveTime = DateTime.Now;
dev.PortName = port;
dev.BaudRate = baud;
if (dev.Open())
{
PUB.log.Add(port, "연결완료");
}
else
{
var errmessage = dev.errorMessage;
PUB.log.Add("ERROR-" + port, errmessage);
}
VAR.TIME.Update(conn);
VAR.TIME.Update(conntry);
}
catch (Exception ex)
{
PUB.log.AddE(ex.Message);
}
}
}
else if (dev.PortName.Equals(port) == false)
{
PUB.log.Add(port, $"포트변경({dev.PortName}->{port})으로 연결 종료");
dev.Close();
VAR.TIME[(int)conntry] = DateTime.Now; ;
}
}
void sm_SPS(object sender, EventArgs e)
{
if (PUB.sm.Step < eSMStep.IDLE || PUB.sm.Step >= eSMStep.CLOSING) return;
//plc connect
ConnectSerialPort(PUB.PLC, PUB.setting.Port_PLC, PUB.setting.Baud_PLC,
eVarTime.LastConn_PLC, eVarTime.LastConnTry_PLC, eVarTime.LastRecv_PLC);
//agv connect
ConnectSerialPort(PUB.AGV, PUB.setting.Port_AGV, PUB.setting.Baud_AGV,
eVarTime.LastConn_AGV, eVarTime.LastConnTry_AGV, eVarTime.LastRecv_AGV);
@@ -78,14 +115,14 @@ namespace Project
if (PUB.XBE != null && PUB.XBE.IsOpen)
{
//일정간격으로 상태를 전송한다
if (PUB.XBE.lastSendTime.Year == 1982) PUB.XBE.lastSendTime = DateTime.Now.AddSeconds(1);
var ts = DateTime.Now - PUB.XBE.lastSendTime;
if (PUB.XBE.LastStatusSendTime.Year == 1982) PUB.XBE.LastStatusSendTime = DateTime.Now.AddSeconds(1);
var ts = DateTime.Now - PUB.XBE.LastStatusSendTime;
if (ts.TotalSeconds >= PUB.setting.interval_xbe)
{
var statusMsg = PUB.XBE.GetStatusString();
PUB.XBE.SendStatus(statusMsg);
PUB.XBE.SendStatus();
}
}
//배터리쿼리
if (PUB.BMS != null && PUB.BMS.IsOpen)
{