54 lines
1.6 KiB
C#
54 lines
1.6 KiB
C#
using PlcTool.Siemens;
|
||
using WcsMain.Common;
|
||
using WcsMain.DataBase.Dao;
|
||
using WcsMain.DataBase.TableEntity;
|
||
using WcsMain.Constant.WcsAttribute.AutoFacAttribute;
|
||
|
||
namespace WcsMain.EquipOperation;
|
||
|
||
/// <summary>
|
||
/// 连接PLC
|
||
/// </summary>
|
||
[Component]
|
||
public class ConnectPLCs(AppPLCDao pLCDao, AppDBDao dBDao)
|
||
{
|
||
private readonly AppPLCDao _plcDao = pLCDao;
|
||
private readonly AppDBDao _dbDao = dBDao;
|
||
|
||
/// <summary>
|
||
/// 连接PLC
|
||
/// </summary>
|
||
/// <returns>返回值表示是否继续检测PLC连接状态</returns>
|
||
public bool ConnectPlc()
|
||
{
|
||
/* 查询所有PLC */
|
||
List<AppPLC>? 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<AppDB>? 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;
|
||
}
|
||
|
||
} |