|
|
|
@ -1,4 +1,5 @@
|
|
|
|
|
using HybirdFrameworkCore.Autofac.Attribute;
|
|
|
|
|
using Entity.DbModel.Station;
|
|
|
|
|
using HybirdFrameworkCore.Autofac.Attribute;
|
|
|
|
|
using HybirdFrameworkCore.Const;
|
|
|
|
|
using HybirdFrameworkDriver.ModbusTcpMaster;
|
|
|
|
|
using Repository.Station;
|
|
|
|
@ -33,42 +34,54 @@ public class PlcClient : ModbusTcpMaster
|
|
|
|
|
{
|
|
|
|
|
PlcMgr.DataValidityTime = DateTime.Now;
|
|
|
|
|
|
|
|
|
|
ModbusDecoder.Decode<HostToPlc>(bytes01, PlcMgr.HostToPlcData, EndingConst.ByteSeq.AB, EndingConst.WordSeq.DC);
|
|
|
|
|
ModbusDecoder.Decode<HostToPlc>(bytes01, PlcMgr.HostToPlcData, EndingConst.ByteSeq.AB,
|
|
|
|
|
EndingConst.WordSeq.DC);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var bytes02 = master.BatchReadHolderRegister(201, 222);
|
|
|
|
|
if (bytes02 != null)
|
|
|
|
|
{
|
|
|
|
|
PlcMgr.DataValidityTime = DateTime.Now;
|
|
|
|
|
ModbusDecoder.Decode<PlcToHost>(bytes02, PlcMgr.PlcToHostData, EndingConst.ByteSeq.AB, EndingConst.WordSeq.DC);
|
|
|
|
|
|
|
|
|
|
_binInfoRepository.Update(it => it.Exists == PlcMgr.PlcToHostData.MaterialDetec01.Value, it => it.No == "1");
|
|
|
|
|
ModbusDecoder.Decode<PlcToHost>(bytes02, PlcMgr.PlcToHostData, EndingConst.ByteSeq.AB,
|
|
|
|
|
EndingConst.WordSeq.DC);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_binInfoRepository.Update(it => it.Exists == PlcMgr.PlcToHostData.MaterialDetec02.Value, it => it.No == "2");
|
|
|
|
|
UpdateBinInfo(PlcMgr.PlcToHostData.MaterialDetec01.Value, "1");
|
|
|
|
|
UpdateBinInfo(PlcMgr.PlcToHostData.MaterialDetec02.Value, "2");
|
|
|
|
|
UpdateBinInfo(PlcMgr.PlcToHostData.MaterialDetec03.Value, "3");
|
|
|
|
|
UpdateBinInfo(PlcMgr.PlcToHostData.MaterialDetec04.Value, "4");
|
|
|
|
|
UpdateBinInfo(PlcMgr.PlcToHostData.MaterialDetec05.Value, "5");
|
|
|
|
|
UpdateBinInfo(PlcMgr.PlcToHostData.MaterialDetec06.Value, "6");
|
|
|
|
|
UpdateBinInfo(PlcMgr.PlcToHostData.MaterialDetec07.Value, "7");
|
|
|
|
|
UpdateBinInfo(PlcMgr.PlcToHostData.MaterialDetec08.Value, "8");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_binInfoRepository.Update(it => it.Exists == PlcMgr.PlcToHostData.MaterialDetec03.Value, it => it.No == "3");
|
|
|
|
|
|
|
|
|
|
_binInfoRepository.Update(it => it.Exists == PlcMgr.PlcToHostData.MaterialDetec04.Value, it => it.No == "4");
|
|
|
|
|
|
|
|
|
|
_binInfoRepository.Update(it => it.Exists == PlcMgr.PlcToHostData.MaterialDetec05.Value, it => it.No == "5");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_binInfoRepository.Update(it => it.Exists == PlcMgr.PlcToHostData.MaterialDetec06.Value, it => it.No == "6");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_binInfoRepository.Update(it => it.Exists == PlcMgr.PlcToHostData.MaterialDetec07.Value, it => it.No == "7");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_binInfoRepository.Update(it => it.Exists == PlcMgr.PlcToHostData.MaterialDetec08.Value, it => it.No == "8");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var bytes03 = master.BatchReadHolderRegister(701, 10);
|
|
|
|
|
if (bytes03 != null)
|
|
|
|
|
{
|
|
|
|
|
PlcMgr.DataValidityTime = DateTime.Now;
|
|
|
|
|
ModbusDecoder.Decode<PlcFault>(bytes03, PlcMgr.PlcFaultData, EndingConst.ByteSeq.AB, EndingConst.WordSeq.DC);
|
|
|
|
|
ModbusDecoder.Decode<PlcFault>(bytes03, PlcMgr.PlcFaultData, EndingConst.ByteSeq.AB,
|
|
|
|
|
EndingConst.WordSeq.DC);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void UpdateBinInfo(int exists, string binNo)
|
|
|
|
|
{
|
|
|
|
|
if (exists == 0)
|
|
|
|
|
_binInfoRepository.Update(
|
|
|
|
|
it =>
|
|
|
|
|
new BinInfo(){
|
|
|
|
|
Exists = 0,
|
|
|
|
|
BatteryNo = "-1",
|
|
|
|
|
Soc = (decimal)-1,
|
|
|
|
|
Soe = (decimal)-1,
|
|
|
|
|
Soh = (decimal)-1,
|
|
|
|
|
},
|
|
|
|
|
it => it.No == binNo);
|
|
|
|
|
else
|
|
|
|
|
|
|
|
|
|
_binInfoRepository.Update(it => it.Exists == 1,
|
|
|
|
|
it => it.No == binNo);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|