using PlcTool.Siemens; using WcsMain.Common; using WcsMain.DataBase.Dao; using WcsMain.DataBase.TableEntity; using WcsMain.WcsAttribute.AutoFacAttribute; namespace WcsMain.EquipOperation; /// /// 连接PLC /// [Component] public class ConnectPLCs(AppPLCDao pLCDao, AppDBDao dBDao) { private readonly AppPLCDao _plcDao = pLCDao; private readonly AppDBDao _dbDao = dBDao; /// /// 连接PLC /// /// 返回值表示是否继续检测PLC连接状态 public bool ConnectPlc() { /* 查询所有PLC */ List? plcs = _plcDao.GetDataWithStatus(1); if (plcs == default) { ConsoleLog.Tip("$[异常]PLC 数据查找失败,请检查网络是否正常或者是否录入PLC数据"); return true; } if (plcs.Count == 0) { ConsoleLog.Warning("【警告】您没有录入或者启用任何 PLC"); CommonData.IsConnectPlc = false; return false; } List? dbs = _dbDao.Select(); CommonTool.Siemens = new SiemensS7(); CommonTool.Siemens.SetPlcs(plcs).SetPlcDB(dbs); var connectResult = CommonTool.Siemens.ConnectPlcs(); if (connectResult.Success) { CommonData.IsConnectPlc = true; } else { CommonData.IsConnectPlc = false; ConsoleLog.Error($"[异常]{connectResult.Message}"); ConsoleLog.Error($"请检查设备网络后重新启动 WCS "); } return true; } }