diff --git a/Sln.Iot.Business/BusinessStart.cs b/Sln.Iot.Business/BusinessStart.cs
index 5ca60e1..32acebe 100644
--- a/Sln.Iot.Business/BusinessStart.cs
+++ b/Sln.Iot.Business/BusinessStart.cs
@@ -20,7 +20,8 @@ namespace Sln.Iot.Business
private RFID06Business _rfid06;
private ErrorAnalyseBusiness _errorAnalyse;
private RecipeBusiness _recipeBusiness;
- private MesReportBusiness _mesReportBusiness;
+ private TCPRFIDBinding _tcpRfidBinding;
+ //private MesReportBusiness _mesReportBusiness;
public BusinessStart()
{
_rfid01 = new RFID01Business();
@@ -31,7 +32,8 @@ namespace Sln.Iot.Business
_rfid06 = new RFID06Business();
_errorAnalyse = new ErrorAnalyseBusiness();
_recipeBusiness = new RecipeBusiness();
- _mesReportBusiness = new MesReportBusiness();
+ _tcpRfidBinding = TCPRFIDBinding.Instance;
+ //_mesReportBusiness = new MesReportBusiness();
}
}
}
diff --git a/Sln.Iot.Business/Entity/TCPRFIDBindingEntity.cs b/Sln.Iot.Business/Entity/TCPRFIDBindingEntity.cs
new file mode 100644
index 0000000..8f08aa3
--- /dev/null
+++ b/Sln.Iot.Business/Entity/TCPRFIDBindingEntity.cs
@@ -0,0 +1,28 @@
+using System.Text.Json.Serialization;
+
+namespace Sln.Iot.Business.Entity
+{
+ public class TCPRFIDBindingEntity
+ {
+ [JsonPropertyName("rfid")]
+ public string? Rfid { get; set; }
+
+ [JsonPropertyName("sn1")]
+ public string? Sn1 { get; set; }
+
+ [JsonPropertyName("sn2")]
+ public string? Sn2 { get; set; }
+
+ [JsonPropertyName("sn3")]
+ public string? Sn3 { get; set; }
+
+ [JsonPropertyName("sn4")]
+ public string? Sn4 { get; set; }
+
+ [JsonPropertyName("sn5")]
+ public string? Sn5 { get; set; }
+
+ [JsonPropertyName("sn6")]
+ public string? Sn6 { get; set; }
+ }
+}
diff --git a/Sln.Iot.Business/ErrorAnalyseBusiness.cs b/Sln.Iot.Business/ErrorAnalyseBusiness.cs
index ea147e9..e9ee09d 100644
--- a/Sln.Iot.Business/ErrorAnalyseBusiness.cs
+++ b/Sln.Iot.Business/ErrorAnalyseBusiness.cs
@@ -35,9 +35,7 @@ namespace Sln.Iot.Business
private FaultOccurredEvent faultOccurredEvent = new FaultOccurredEvent();
private FaultClearedEvent faultClearedEvent = new FaultClearedEvent();
- private CFXConnect1 connect1 = CFXConnect1.Instance;
- private CFXConnect2 connect2 = CFXConnect2.Instance;
- private CFXConnect3 connect3 = CFXConnect3.Instance;
+ private CFXConnectOven connect2 = CFXConnectOven.Instance;
public ErrorAnalyseBusiness()
{
diff --git a/Sln.Iot.Business/MesReportBusiness.cs b/Sln.Iot.Business/MesReportBusiness.cs
index e05cf76..52ff34f 100644
--- a/Sln.Iot.Business/MesReportBusiness.cs
+++ b/Sln.Iot.Business/MesReportBusiness.cs
@@ -28,7 +28,7 @@ namespace Sln.Iot.Business
private readonly PLCConnect _plc = PLCConnect.Instance;
CFXConnect1 _cfxHelper = CFXConnect1.Instance;
- CFXConnect2 _cfxHelper2 = CFXConnect2.Instance;
+ CFXConnectOven _cfxHelper2 = CFXConnectOven.Instance;
CFXConnect3 _cfxHelper3 = CFXConnect3.Instance;
CFXConnect4 _cfxHelper4 = CFXConnect4.Instance;
StationParametersModifiedEvent stationParametersModifiedEvent = new StationParametersModifiedEvent();
diff --git a/Sln.Iot.Business/RFID01Business.cs b/Sln.Iot.Business/RFID01Business.cs
index 849b196..1085e79 100644
--- a/Sln.Iot.Business/RFID01Business.cs
+++ b/Sln.Iot.Business/RFID01Business.cs
@@ -15,6 +15,7 @@ using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
+using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
using TouchSocket.Core;
@@ -22,6 +23,9 @@ using static System.Runtime.CompilerServices.RuntimeHelpers;
namespace Sln.Iot.Business
{
+ ///
+ /// RFID01真空箱内
+ ///
public class RFID01Business
{
private Timer _timer;
@@ -37,9 +41,7 @@ namespace Sln.Iot.Business
private UnitsDepartedEvent unitsDepartedEvent = new UnitsDepartedEvent();
private TrayBindingService trayBindingService = TrayBindingService.Instance;
- private CFXConnect1 connect1 = CFXConnect1.Instance;
- private CFXConnect2 connect2 = CFXConnect2.Instance;
- private CFXConnect3 connect3 = CFXConnect3.Instance;
+ private CFXConnectVacuum connectVacuum = CFXConnectVacuum.Instance;
public RFID01Business()
{
@@ -47,7 +49,7 @@ namespace Sln.Iot.Business
}
///
- /// RFID01上料提升机数据处理流程业务刷新
+ /// RFID01真空箱内
///
///
public void TimerCallback(object? state)
@@ -56,7 +58,7 @@ namespace Sln.Iot.Business
{
// 定时任务逻辑
//读取信号
- OperateResult signalRes = _plc.ReadInt16(_plc.DeltaInstance3, "D500");
+ OperateResult signalRes = _plc.ReadInt16(_plc.PLC22, "D800");
//成功验证
if (signalRes.IsSuccess)
{
@@ -65,11 +67,9 @@ namespace Sln.Iot.Business
if (signalValue == 1001)
{
//读取托盘码和产品码
- OperateResult trayBytesResult = _plc.ReadBytes(_plc.DeltaInstance3, "D5000", 10);
- OperateResult pordBytesResult1 = _plc.ReadBytes(_plc.DeltaInstance3, "D8000", 90);
- OperateResult pordBytesResult2 = _plc.ReadBytes(_plc.DeltaInstance3, "D8090", 90);
+ OperateResult trayBytesResult = _plc.ReadBytes(_plc.PLC22, "D5000", 10);
//成功验证
- if (trayBytesResult.IsSuccess && pordBytesResult1.IsSuccess && pordBytesResult2.IsSuccess)
+ if (trayBytesResult.IsSuccess)
{
//转换托盘码
@@ -77,56 +77,28 @@ namespace Sln.Iot.Business
traycode = traycode.Replace("?", "");
traycode = traycode.Replace("\0", "");
_log.Info($"托盘到达-RFID01-托盘号-[{traycode}]");
- byte[] prodBytes = pordBytesResult1.Content.Concat(pordBytesResult2.Content).ToArray();
- string[] prodcode = new string[6];
- //分割转换产品码
- for (int i = 0; i < 6; i++)
- {
- prodcode[i] = Encoding.ASCII.GetString(prodBytes[(i * 60)..(i * 60 + 60)]);
- prodcode[i] = prodcode[i].Replace("\0", "");
- if (!string.IsNullOrEmpty(prodcode[i]))
- {
- // 将相邻偶数位和奇数位字符对调
- char[] chars = prodcode[i].ToCharArray();
- for (int j = 0; j < chars.Length - 1; j += 2)
- {
- // 交换相邻的两个字符
- char temp = chars[j];
- chars[j] = chars[j + 1];
- chars[j + 1] = temp;
- }
- prodcode[i] = new string(chars);
- GlobalVar.Connect2Entity.InputQuantity++;
- GlobalVar.Connect2Entity.PassQuantity++;
- GlobalVar.Connect3Entity.InputQuantity++;
- GlobalVar.Connect1Entity.InputQuantity++;
- GlobalVar.Connect1Entity.PassQuantity++;
- GlobalVar.Connect3Entity.PassQuantity++;
- GlobalVar.Connect4Entity.InputQuantity++;
- GlobalVar.Connect4Entity.PassQuantity++;
- _log.Info($"{prodcode[i]}进入产线");
- }
- }
-
- //connect1.SendValidateUnitsRequest("", traycode, prodcode);
-
- //生成work唯一guid(tid)
- Guid tid = Guid.NewGuid();
- //sql更新
- bool res = trayBindingService.TrayBindingRefresh(tid, traycode, prodcode);
- if (!res)
- {
- _log.Error("上料提升机数据库写入异常");
- }
+ //记录预热炉到达时间
+ trayBindingService.UpDateTime(DateTime.Now.ToString(), traycode, "1");
//写入完成信号
- res = _plc.PlcWrite(_plc.DeltaInstance3, "D500", 1002, DataTypeEnum.UInt16).IsSuccess;
+ bool res = _plc.PlcWrite(_plc.PLC22, "D800", 1002, DataTypeEnum.UInt16).IsSuccess;
if (!res)
{
- _log.Error("上料提升机PLC写入完成信号异常");
+ _log.Error("RFID01 读电子标签 PLC写入完成信号异常");
}
+ //取出work唯一guid(tid)
+ string stid = trayBindingService.TidGet(traycode);
+ if (!Guid.TryParse(stid, out Guid tid))
+ {
+ tid = Guid.Parse("11111111-1111-4111-9111-111111111111");
+ _log.Error("找不到对应的托盘信息,赋值默认GUID");
+ }
+
+ //读取托盘对应的产品码
+ string[] prodcode = trayBindingService.ProdCodeGet(traycode);
+
GlobalVar.Connect2Entity.CycleTime = CommonUtil.AddRandom(AppConfigSetting._config.CycleTime2, 5);
//CFX
@@ -134,29 +106,33 @@ namespace Sln.Iot.Business
{
//单元抵达事件
- connect1.PublishEvent(new CFXEnvelope(unitsArrivedEvent.Handle(traycode, prodcode)));
- connect2.PublishEvent(new CFXEnvelope(unitsArrivedEvent.Handle(traycode, prodcode)));
- connect3.PublishEvent(new CFXEnvelope(unitsArrivedEvent.Handle(traycode, prodcode)));
- _log.Info($"{traycode} 抵达设备");
+ connectVacuum.PublishEvent(new CFXEnvelope(unitsArrivedEvent.Handle(traycode, prodcode)));
//工作开始事件
- connect1.PublishEvent(new CFXEnvelope(workStartedEvent.Handle(tid, traycode, prodcode)));
- connect2.PublishEvent(new CFXEnvelope(workStartedEvent.Handle(tid, traycode, prodcode)));
- connect3.PublishEvent(new CFXEnvelope(workStartedEvent.Handle(tid, traycode, prodcode)));
+ connectVacuum.PublishEvent(new CFXEnvelope(workStartedEvent.Handle(tid, traycode, prodcode)));
_log.Info($"工作开始,ID:{tid}");
- connect2.PublishEvent(new CFXEnvelope(workCompletedEvent.Handle(tid, traycode, prodcode)));
- connect2.PublishEvent(new CFXEnvelope(unitsDepartedEvent.Handle(traycode, prodcode)));
-
- //预热炉工段开启
- connect3.PublishEvent(new CFXEnvelope(workStageStartedEvent.Handle(tid, "PreHeatOven", 1)));
- _log.Info($"预热炉工段开始 ID:{tid}");
+ //真空箱工段开启
+ connectVacuum.PublishEvent(new CFXEnvelope(workStageStartedEvent.Handle(tid, "Vacuum", 1)));
+ _log.Info($"真空箱工段开始 ID:{tid}");
});
}
else
{
- _log.Error($"PLC读取失败,原因1:{trayBytesResult.Message} 2:{pordBytesResult1.Message} 3:{pordBytesResult2.Message}");
+ _log.Error($"PLC读取失败,原因1:{trayBytesResult.Message} ");
}
//流程完成
}
+ else if (signalValue == 1003)
+ {
+ //TODO :读取参数
+
+
+ //写入完成信号
+ bool res = _plc.PlcWrite(_plc.PLC22, "D800", 1004, DataTypeEnum.UInt16).IsSuccess;
+ if (!res)
+ {
+ _log.Error("RFID01 读胶机参数 PLC写入完成信号异常");
+ }
+ }
}
else
{
diff --git a/Sln.Iot.Business/RFID02Business.cs b/Sln.Iot.Business/RFID02Business.cs
index 0ed2658..76cc7ab 100644
--- a/Sln.Iot.Business/RFID02Business.cs
+++ b/Sln.Iot.Business/RFID02Business.cs
@@ -30,9 +30,13 @@ namespace Sln.Iot.Business
private WorkStageStartedEvent workStageStartedEvent = new WorkStageStartedEvent();
private WorkStageCompletedEvent workStageCompletedEvent = new WorkStageCompletedEvent();
- private CFXConnect1 connect1 = CFXConnect1.Instance;
- private CFXConnect2 connect2 = CFXConnect2.Instance;
- private CFXConnect3 connect3 = CFXConnect3.Instance;
+ private WorkCompletedEvent workCompletedEvent = new WorkCompletedEvent();
+ private UnitsDepartedEvent unitsDepartedEvent = new UnitsDepartedEvent();
+ private UnitsArrivedEvent unitsArrivedEvent = new UnitsArrivedEvent();
+ private WorkStartedEvent workStartedEvent = new WorkStartedEvent();
+
+ private CFXConnectOven ConnectOven = CFXConnectOven.Instance;
+ private CFXConnectVacuum ConnectVacuum = CFXConnectVacuum.Instance;
public RFID02Business()
@@ -50,7 +54,7 @@ namespace Sln.Iot.Business
{
// 定时任务逻辑
//读取信号
- OperateResult signalRes = _plc.ReadInt16(_plc.DeltaInstance1, "D800");
+ OperateResult signalRes = _plc.ReadInt16(_plc.PLC23, "D800");
//成功验证
if (signalRes.IsSuccess)
{
@@ -59,7 +63,7 @@ namespace Sln.Iot.Business
if (signalValue == 2001)
{
//读取托盘码
- OperateResult trayBytesResult = _plc.ReadBytes(_plc.DeltaInstance1, "D5000", 10);
+ OperateResult trayBytesResult = _plc.ReadBytes(_plc.PLC23, "D5000", 10);
//成功验证
if (trayBytesResult.IsSuccess)
{
@@ -69,55 +73,46 @@ namespace Sln.Iot.Business
traycode = traycode.Replace("\0", "");
_log.Info($"托盘到达-RFID02-托盘号-[{traycode}]");
- //sql更新
-
- //取出work唯一guid(tid)
- string stid = trayBindingService.TidGet(traycode);
- if(!Guid.TryParse(stid, out Guid tid))
- {
- tid = Guid.Parse("11111111-1111-4111-9111-111111111111");
- _log.Error("找不到对应的托盘信息,赋值默认GUID");
- }
+ //记录胶机1真空箱内到达时间
+ trayBindingService.UpDateTime(DateTime.Now.ToString(), traycode, "2");
bool res = false;
-
-
//写入完成信号
- res = _plc.PlcWrite(_plc.DeltaInstance1, "D800", 2002, DataTypeEnum.UInt16).IsSuccess;
+ res = _plc.PlcWrite(_plc.PLC23, "D800", 2002, DataTypeEnum.UInt16).IsSuccess;
if (!res)
{
_log.Error("胶机1真空箱内写入完成信号异常");
}
- //CFX
+ //取出work唯一guid(tid)
+ string stid = trayBindingService.TidGet(traycode);
+ if (!Guid.TryParse(stid, out Guid tid))
+ {
+ tid = Guid.Parse("11111111-1111-4111-9111-111111111111");
+ _log.Error("找不到对应的托盘信息,赋值默认GUID");
+ }
+
+ string[] prodcode = trayBindingService.ProdCodeGet(traycode);
+
+ //CFX TODO
Task.Run(() =>
{
- //预热炉工段完成事件
- connect3.PublishEvent(new CFXEnvelope(workStageCompletedEvent.Handle(tid, "PreHeatOven", 1)));
- _log.Info($"预热炉工段完成 ID:{tid}");
- //真空箱1工段开启
- connect1.PublishEvent(new CFXEnvelope(workStageStartedEvent.Handle(tid, "VacuumInjection1", 1)));
- _log.Info($"真空箱1工段开始 ID:{tid}");
+ //真空箱工段完成事件
+ ConnectVacuum.PublishEvent(new CFXEnvelope(workStageCompletedEvent.Handle(tid, "Vacuum", 1)));
+ _log.Info($"真空箱工段完成 ID:{tid}");
+ ConnectVacuum.PublishEvent(new CFXEnvelope(workCompletedEvent.Handle(tid, traycode, prodcode)));
+ _log.Info($"工作完成事件发布 ID:{tid}");
+ ConnectVacuum.PublishEvent(new CFXEnvelope(unitsDepartedEvent.Handle(traycode, prodcode)));
+ _log.Info($"单元离站 ID:{tid}");
-
- //预热炉数据采集
- var data = unitsProcessPLCDataGetBusiness.PreHeatOvenPlcDataGet();
- ovenPlcDataService.InsertData(stid, data);
- _log.Info($"预热炉数据采集, 预热炉温度:{data}");
- //真空箱1数据采集
- var data2 = unitsProcessPLCDataGetBusiness.Vacuum1PlcDataGet();
- vacuumInjectionPlcDataService.InsertData(stid, data2);
- _log.Info($"真空箱1温度数据采集\n" +
- $"胶量1:{data2.GlueAmountSetValue1}\t" +
- $"推胶速度1:{data2.GluePushSpeedSetValue1}\n" +
- $"A1温度1:{data2.BarrelA1TempActValue1}\t" +
- $"A2温度1:{data2.BarrelA2TempActValue1}\t" +
- $"B1温度1:{data2.BarrelB1TempActValue1}\t" +
- $"B2温度1:{data2.BarrelB2TempActValue1}\n" +
- $"A泵压力1:{data2.PumpAPressureActValue1}\t" +
- $"B泵压力1:{data2.PumpBPressureActValue1}\t" +
- $"真空度1:{data2.VacuumDegreeActValue1}\t" +
- $"保压时间1:{data2.PressureHoldTimeSetValue1}");
+ //单元抵达事件
+ ConnectOven.PublishEvent(new CFXEnvelope(unitsArrivedEvent.Handle(traycode, prodcode)));
+ //工作开始事件
+ ConnectOven.PublishEvent(new CFXEnvelope(workStartedEvent.Handle(tid, traycode, prodcode)));
+ _log.Info($"工作开始,ID:{tid}");
+ //真空箱工段开启
+ ConnectOven.PublishEvent(new CFXEnvelope(workStageStartedEvent.Handle(tid, "Oven", 1)));
+ _log.Info($"真空箱工段开始 ID:{tid}");
});
//CFX
@@ -128,6 +123,50 @@ namespace Sln.Iot.Business
}
//流程完成
}
+ else if (signalValue == 2003)
+ {
+ //读取托盘码
+ OperateResult trayBytesResult = _plc.ReadBytes(_plc.PLC23, "D5000", 10);
+ if (trayBytesResult.IsSuccess)
+ {
+ string traycode = Encoding.ASCII.GetString(trayBytesResult.Content);
+ traycode = traycode.Replace("?", "");
+ traycode = traycode.Replace("\0", "");
+
+ //计算预热炉停留时长: time2 - time1
+ string time2 = trayBindingService.GetTimeByTrayCode(traycode, "2");
+ string time1 = trayBindingService.GetTimeByTrayCode(traycode, "1");
+ ushort spanSecond = 0;
+ if (!string.IsNullOrEmpty(time2) && !string.IsNullOrEmpty(time1))
+ {
+ TimeSpan span = Convert.ToDateTime(time2) - Convert.ToDateTime(time1);
+ spanSecond = (ushort)span.TotalSeconds;
+ _log.Info($"预热炉停留时长: [{spanSecond}]秒");
+ }
+ bool re = _plc.PlcWrite(_plc.PLC23, "D810", spanSecond, DataTypeEnum.UInt16).IsSuccess;
+ if (!re)
+ {
+ _log.Error("RFID02 发送预热炉停留时长 PLC写入异常");
+ }
+ }
+ else
+ {
+ _log.Error($"PLC读取失败,原因:{trayBytesResult.Message}");
+ }
+
+ //写入完成信号
+ bool res = _plc.PlcWrite(_plc.PLC23, "D800", 2004, DataTypeEnum.UInt16).IsSuccess;
+ if (!res)
+ {
+ _log.Error("RFID02 发送真空箱停留时长 PLC写入完成信号异常");
+ }
+
+ Task.Run(() =>
+ {
+ //TODO: UnitsProcessedEvent
+
+ });
+ }
}
else
{
@@ -138,7 +177,7 @@ namespace Sln.Iot.Business
{
_log.Error("RFID02业务出现异常", ex);
}
-
+
}
}
}
diff --git a/Sln.Iot.Business/RFID03Business.cs b/Sln.Iot.Business/RFID03Business.cs
index b017422..43518f8 100644
--- a/Sln.Iot.Business/RFID03Business.cs
+++ b/Sln.Iot.Business/RFID03Business.cs
@@ -27,9 +27,11 @@ namespace Sln.Iot.Business
private TrayBindingService trayBindingService = TrayBindingService.Instance;
private WorkStageStartedEvent workStageStartedEvent = new WorkStageStartedEvent();
private WorkStageCompletedEvent workStageCompletedEvent = new WorkStageCompletedEvent();
- private CFXConnect1 connect1 = CFXConnect1.Instance;
- private CFXConnect2 connect2 = CFXConnect2.Instance;
- private CFXConnect3 connect3 = CFXConnect3.Instance;
+ private WorkCompletedEvent workCompletedEvent = new WorkCompletedEvent();
+ private UnitsDepartedEvent unitsDepartedEvent = new UnitsDepartedEvent();
+
+ private CFXConnectOven ConnectOven = CFXConnectOven.Instance;
+
public RFID03Business()
{
@@ -46,7 +48,7 @@ namespace Sln.Iot.Business
{
// 定时任务逻辑
//读取信号
- OperateResult signalRes = _plc.ReadInt16(_plc.DeltaInstance1, "D802");
+ OperateResult signalRes = _plc.ReadInt16(_plc.PLC24, "D800");
//成功验证
if (signalRes.IsSuccess)
{
@@ -55,7 +57,7 @@ namespace Sln.Iot.Business
if (signalValue == 3001)
{
//读取托盘码
- OperateResult trayBytesResult = _plc.ReadBytes(_plc.DeltaInstance1, "D5020", 10);
+ OperateResult trayBytesResult = _plc.ReadBytes(_plc.PLC24, "D5000", 10);
//成功验证
if (trayBytesResult.IsSuccess)
{
@@ -65,6 +67,19 @@ namespace Sln.Iot.Business
traycode = traycode.Replace("\0", "");
_log.Info($"托盘到达-RFID03-托盘号-[{traycode}]");
+ bool res = trayBindingService.UpDateTime(DateTime.Now.ToString(), traycode, "3");
+ if (!res)
+ {
+ _log.Error("胶机1真空箱外时间更新失败(未扫托盘号)");
+ }
+
+ //写入完成信号
+ res = _plc.PlcWrite(_plc.PLC24, "D802", 3002, DataTypeEnum.UInt16).IsSuccess;
+ if (!res)
+ {
+ _log.Error("胶机1真空箱外写入完成信号异常");
+ }
+
//sql更新
//取出work唯一guid(tid)
string stid = trayBindingService.TidGet(traycode);
@@ -73,30 +88,19 @@ namespace Sln.Iot.Business
tid = Guid.Parse("11111111-1111-4111-9111-111111111111");
_log.Error("找不到对应的托盘信息,赋值默认GUID");
}
- bool res = trayBindingService.UpDateTime(DateTime.Now.ToString(), traycode, "1");
- if (!res)
- {
- _log.Error("胶机1真空箱外时间更新失败(未扫托盘号)");
- }
- //写入完成信号
- res = _plc.PlcWrite(_plc.DeltaInstance1, "D802", 3002, DataTypeEnum.UInt16).IsSuccess;
- if (!res)
- {
- _log.Error("胶机1真空箱外写入完成信号异常");
- }
-
- GlobalVar.Connect1Entity.CycleTime = CommonUtil.AddRandom(AppConfigSetting._config.CycleTime1, 300);
+ string[] prodcode = trayBindingService.ProdCodeGet(traycode);
//CFX
Task.Run(() =>
{
- //真空箱1工段完成事件
- connect1.PublishEvent(new CFXEnvelope(workStageCompletedEvent.Handle(tid, "VacuumInjection1", 1)));
- _log.Info($"真空箱1工段完成, {tid}");
- //预固炉工段开启
- connect3.PublishEvent(new CFXEnvelope(workStageStartedEvent.Handle(tid, "PreCureOven", 2)));
- _log.Info($"预固炉工段开启, {tid}");
+ //真空箱工段完成事件
+ ConnectOven.PublishEvent(new CFXEnvelope(workStageCompletedEvent.Handle(tid, "Oven", 1)));
+ _log.Info($"真空箱工段完成 ID:{tid}");
+ ConnectOven.PublishEvent(new CFXEnvelope(workCompletedEvent.Handle(tid, traycode, prodcode)));
+ _log.Info($"工作完成事件发布 ID:{tid}");
+ ConnectOven.PublishEvent(new CFXEnvelope(unitsDepartedEvent.Handle(traycode, prodcode)));
+ _log.Info($"单元离站 ID:{tid}");
});
}
else
@@ -105,6 +109,48 @@ namespace Sln.Iot.Business
}
//流程完成
}
+ else if(signalValue == 3003)
+ {
+ //读取托盘码
+ OperateResult trayBytesResult = _plc.ReadBytes(_plc.PLC24, "D5000", 10);
+ if (trayBytesResult.IsSuccess)
+ {
+ string traycode = Encoding.ASCII.GetString(trayBytesResult.Content);
+ traycode = traycode.Replace("?", "");
+ traycode = traycode.Replace("\0", "");
+
+ //计算真空箱1停留时长: time3 - time2
+ string time3 = trayBindingService.GetTimeByTrayCode(traycode, "3");
+ string time2 = trayBindingService.GetTimeByTrayCode(traycode, "2");
+ ushort spanSecond = 0;
+ if (!string.IsNullOrEmpty(time3) && !string.IsNullOrEmpty(time2))
+ {
+ TimeSpan span = Convert.ToDateTime(time3) - Convert.ToDateTime(time2);
+ spanSecond = (ushort)span.TotalSeconds;
+ _log.Info($"真空箱1停留时长: [{spanSecond}]秒");
+ }
+ bool re = _plc.PlcWrite(_plc.PLC24, "D810", spanSecond, DataTypeEnum.UInt16).IsSuccess;
+ if (!re)
+ {
+ _log.Error("RFID03 发送真空箱停留时长 PLC写入异常");
+ }
+ }
+ else
+ {
+ _log.Error($"PLC读取失败,原因:{trayBytesResult.Message}");
+ }
+
+ //写入完成信号
+ bool res = _plc.PlcWrite(_plc.PLC24, "D800", 3004, DataTypeEnum.UInt16).IsSuccess;
+ if (!res)
+ {
+ _log.Error("RFID03 发送真空箱停留时长 PLC写入完成信号异常");
+ }
+
+ Task.Run(() =>
+ {
+ //TODO: UnitsProcessedEvent
+ }
}
else
{
diff --git a/Sln.Iot.Business/RFID04Business.cs b/Sln.Iot.Business/RFID04Business.cs
deleted file mode 100644
index db173da..0000000
--- a/Sln.Iot.Business/RFID04Business.cs
+++ /dev/null
@@ -1,181 +0,0 @@
-using CFX;
-using HslCommunication;
-using Sln.Iot.CFX.CFXConnect;
-using Sln.Iot.CFX.Event;
-using Sln.Iot.PLC;
-using Sln.Iot.Repository.service;
-using Sln.Iot.Serilog;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using TouchSocket.Core;
-using static System.Runtime.CompilerServices.RuntimeHelpers;
-
-namespace Sln.Iot.Business
-{
- public class RFID04Business
- {
- private Timer _timer;
-
- private readonly PLCConnect _plc = PLCConnect.Instance;
-
- private readonly SerilogHelper _log = SerilogHelper.Instance;
- private OvenPlcDataService ovenPlcDataService = OvenPlcDataService.Instance;
- private VacuumInjectionPlcDataService vacuumInjectionPlcDataService = VacuumInjectionPlcDataService.Instance;
-
- private UnitsProcessPLCDataGetBusiness unitsProcessPLCDataGetBusiness = UnitsProcessPLCDataGetBusiness.Instance;
-
- private TrayBindingService trayBindingService = TrayBindingService.Instance;
- private WorkStageStartedEvent workStageStartedEvent = new WorkStageStartedEvent();
- private WorkStageCompletedEvent workStageCompletedEvent = new WorkStageCompletedEvent();
- private CFXConnect1 connect1 = CFXConnect1.Instance;
- private CFXConnect2 connect2 = CFXConnect2.Instance;
- private CFXConnect3 connect3 = CFXConnect3.Instance;
-
- public RFID04Business()
- {
- _timer = new Timer(TimerCallback, null, 0, 2000);
- }
-
- ///
- /// RFID04胶机2真空箱前数据处理流程
- ///
- ///
- public void TimerCallback(object? state)
- {
- try
- {
- // 定时任务逻辑
- //读取信号
- OperateResult signalRes = _plc.ReadInt16(_plc.DeltaInstance2, "D800");
- //成功验证
- if (signalRes.IsSuccess)
- {
- short signalValue = signalRes.Content;
- // 如果有读取信号
- // 读电子标签
- if (signalValue == 4001)
- {
- //读取托盘码和产品码
- OperateResult trayBytesResult = _plc.ReadBytes(_plc.DeltaInstance2, "D5000", 10);
- //成功验证
- if (trayBytesResult.IsSuccess)
- {
- //转换托盘吗
- string traycode = Encoding.ASCII.GetString(trayBytesResult.Content);
- traycode = traycode.Replace("?", "");
- traycode = traycode.Replace("\0", "");
- _log.Info($"托盘到达-RFID04-托盘号-[{traycode}]");
-
- //sql更新
- //取出work唯一guid(tid)
- string stid = trayBindingService.TidGet(traycode);
- if (!Guid.TryParse(stid, out Guid tid))
- {
- tid = Guid.Parse("11111111-1111-4111-9111-111111111111");
- _log.Error("找不到对应的托盘信息,赋值默认GUID");
- }
-
- bool res = trayBindingService.UpDateTime(DateTime.Now.ToString(), traycode, "2");
- if (!res)
- {
- _log.Error("胶机2真空箱前时间数据库更新异常");
- }
-
- //写入完成信号
- res = _plc.PlcWrite(_plc.DeltaInstance2, "D800", 4002, DataTypeEnum.UInt16).IsSuccess;
- if (!res)
- {
- _log.Error("胶机2真空箱前开始时间PLC写入完成信号异常");
- }
-
- //CFX
- Task.Run(() =>
- {
- //预固炉工段完成事件
- connect3.PublishEvent(new CFXEnvelope(workStageCompletedEvent.Handle(tid, "PreCureOven", 2)));
- _log.Info($"预固炉工段完成, {tid}");
- //真空箱2工段开启
- connect1.PublishEvent(new CFXEnvelope(workStageStartedEvent.Handle(tid, "VacuumInjection2", 2)));
- _log.Info($"真空箱2工段开启, {tid}");
-
- //预固炉数据采集
- var data = unitsProcessPLCDataGetBusiness.PreCureOvenPlcDataGet();
- ovenPlcDataService.UpdateDataPreCure(stid, data);
- _log.Info($"预固炉温度数据采集\n" +
- $"预固炉1温度:{data.PreCureOven1TempActValue}\t" +
- $"预固炉2温度:{data.PreCureOven2TempActValue}\t" +
- $"预固炉3温度:{data.PreCureOven3TempActValue}\t" +
- $"预固炉4温度:{data.PreCureOven4TempActValue}\n");
- });
- }
- else
- {
- _log.Error($"PLC读取失败,原因:{trayBytesResult.Message}");
- }
- //流程完成
- }
- // 计算时间差
- if (signalValue == 4003)
- {
- //读取托盘码
- OperateResult trayBytesResult = _plc.ReadBytes(_plc.DeltaInstance2, "D5000", 10);
- //成功验证
- if (trayBytesResult.IsSuccess)
- {
- //转换托盘吗
- string traycode = Encoding.ASCII.GetString(trayBytesResult.Content);
- traycode = traycode.Replace("?", "");
- traycode = traycode.Replace("\0", "");
- _log.Info($"托盘号-[{traycode}]-开始计算时间");
-
- //sql更新
- string nowTime = DateTime.Now.ToString();
- bool res = TrayBindingService.Instance.UpDateTime(nowTime, traycode, "3");
- if (!res)
- {
- _log.Error("胶机2真空箱前时间计算数据库更新异常");
- }
- //取之前存的时间
- string time2 = TrayBindingService.Instance.GetTime2ByTrayCode(traycode);
- ushort spanSecond = 0;
- if (!time2.IsNullOrEmpty())
- {
- //计算时间差
- TimeSpan span = Convert.ToDateTime(time2) - Convert.ToDateTime(nowTime);
- spanSecond = (ushort)span.TotalSeconds;
- _log.Info($"预固炉时间差: [" + spanSecond + "] 秒");
- }
- res = _plc.PlcWrite(_plc.DeltaInstance2, "D810", spanSecond, DataTypeEnum.UInt16).IsSuccess;
- if (!res)
- {
- _log.Error("胶机2真空箱前时间计算结果PLC写入异常");
- }
- //写入完成信号
- res = _plc.PlcWrite(_plc.DeltaInstance2, "D800", 4004, DataTypeEnum.UInt16).IsSuccess;
- if (!res)
- {
- _log.Error("胶机2真空箱前时间计算PLC写入完成信号异常");
- }
- }
- else
- {
- _log.Error($"PLC读取失败,原因:{trayBytesResult.Message}");
- }
- //流程完成
- }
- }
- else
- {
- _log.Error($"胶机2真空箱前开始时间读PLC取信号异常,原因:{signalRes.Message}");
- }
- }
- catch (Exception ex)
- {
- _log.Error("RFID0业务出现异常", ex);
- }
- }
- }
-}
diff --git a/Sln.Iot.Business/RFID05Business.cs b/Sln.Iot.Business/RFID05Business.cs
deleted file mode 100644
index 66ff07a..0000000
--- a/Sln.Iot.Business/RFID05Business.cs
+++ /dev/null
@@ -1,161 +0,0 @@
-using CFX;
-using HslCommunication;
-using Sln.Iot.CFX.CFXBusiness;
-using Sln.Iot.CFX.CFXConnect;
-using Sln.Iot.CFX.Event;
-using Sln.Iot.PLC;
-using Sln.Iot.Repository.service;
-using Sln.Iot.Serilog;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Sln.Iot.Business
-{
- public class RFID05Business
- {
- private Timer _timer;
-
- private readonly PLCConnect _plc = PLCConnect.Instance;
-
- private readonly SerilogHelper _log = SerilogHelper.Instance;
-
- private TrayBindingService trayBindingService = TrayBindingService.Instance;
- private OvenPlcDataService ovenPlcDataService = OvenPlcDataService.Instance;
- private VacuumInjectionPlcDataService vacuumInjectionPlcDataService = VacuumInjectionPlcDataService.Instance;
-
- private UnitsProcessPLCDataGetBusiness unitsProcessPLCDataGetBusiness = UnitsProcessPLCDataGetBusiness.Instance;
-
- private CFXUnitProcessedDataGet cFXUnitProcessedDataGet = CFXUnitProcessedDataGet.Instance;
-
- private WorkStageStartedEvent workStageStartedEvent = new WorkStageStartedEvent();
- private WorkStageCompletedEvent workStageCompletedEvent = new WorkStageCompletedEvent();
- private UnitsProcessedEvent unitsProcessedEvent = new UnitsProcessedEvent();
- private CFXConnect1 connect1 = CFXConnect1.Instance;
- private CFXConnect2 connect2 = CFXConnect2.Instance;
- private CFXConnect3 connect3 = CFXConnect3.Instance;
-
- public RFID05Business()
- {
- _timer = new Timer(TimerCallback, null, 0, 2000);
- }
-
- ///
- /// RFID05胶机2真空箱后数据处理流程
- ///
- ///
- public void TimerCallback(object? state)
- {
- try
- {
- // 定时任务逻辑
- //读取信号
- OperateResult signalRes = _plc.ReadInt16(_plc.DeltaInstance2, "D802");
- //成功验证
- if (signalRes.IsSuccess)
- {
- short signalValue = signalRes.Content;
- //如果有读取信号
- if (signalValue == 5001)
- {
- //读取托盘码
- OperateResult trayBytesResult = _plc.ReadBytes(_plc.DeltaInstance2, "D5020", 10);
- //成功验证
- if (trayBytesResult.IsSuccess)
- {
- //转换托盘吗
- string traycode = Encoding.ASCII.GetString(trayBytesResult.Content);
- traycode = traycode.Replace("?", "");
- traycode = traycode.Replace("\0", "");
- _log.Info($"托盘到达-RFID05-托盘号-[{traycode}]");
-
- //sql更新
- //取出work唯一guid(tid)
- string stid = trayBindingService.TidGet(traycode);
- if (!Guid.TryParse(stid, out Guid tid))
- {
- tid = Guid.Parse("11111111-1111-4111-9111-111111111111");
- _log.Error("找不到对应的托盘信息,赋值默认GUID");
- }
-
- bool res = trayBindingService.UpDateTime(DateTime.Now.ToString(), traycode, "4");
- if (!res)
- {
- _log.Error("胶机2真空箱后数据库写入异常");
- }
-
- //写入完成信号
- res = _plc.PlcWrite(_plc.DeltaInstance2, "D802", 5002, DataTypeEnum.UInt16).IsSuccess;
- if (!res)
- {
- _log.Error("胶机2真空箱后PLC写入完成信号异常");
- }
-
- //CFX
- Task.Run(() =>
- {
- //真空箱2工段完成事件
- connect1.PublishEvent(new CFXEnvelope(workStageCompletedEvent.Handle(tid, "VacuumInjection2", 2)));
- _log.Info($"真空箱2工段完成, {tid}");
- //固化炉工段开启
- connect3.PublishEvent(new CFXEnvelope(workStageStartedEvent.Handle(tid, "CureOven", 3)));
- _log.Info($"固化炉工段开启, {tid}");
-
- //真空箱获取并上传数据
- var unitsData1 = vacuumInjectionPlcDataService.GetData(stid);
- var unitsData2 = unitsProcessPLCDataGetBusiness.Vacuum2PlcDataGet();
- unitsData1.GlueAmountSetValue2 = unitsData2.GlueAmountSetValue2;
- unitsData1.GluePushSpeedSetValue2 = unitsData2.GluePushSpeedSetValue2;
- unitsData1.BarrelA1TempActValue2 = unitsData2.BarrelA1TempActValue2;
- unitsData1.BarrelA2TempActValue2 = unitsData2.BarrelA2TempActValue2;
- unitsData1.BarrelB1TempActValue2 = unitsData2.BarrelB1TempActValue2;
- unitsData1.BarrelB2TempActValue2 = unitsData2.BarrelB2TempActValue2;
- unitsData1.PumpAPressureActValue2 = unitsData2.PumpAPressureActValue2;
- unitsData1.PumpBPressureActValue2 = unitsData2.PumpBPressureActValue2;
- unitsData1.VacuumDegreeActValue2 = unitsData2.VacuumDegreeActValue2;
- unitsData1.PressureHoldTimeSetValue2 = unitsData2.PressureHoldTimeSetValue2;
- connect1.PublishEvent(new CFXEnvelope(unitsProcessedEvent.Handle(tid, cFXUnitProcessedDataGet.ProcessDataGet1(unitsData1))));
- _log.Info($"真空箱温度数据上传\n" +
- $"胶量1:{unitsData1.GlueAmountSetValue1}\t" +
- $"推胶速度1:{unitsData1.GluePushSpeedSetValue1}\n" +
- $"A1温度1:{unitsData1.BarrelA1TempActValue1}\t" +
- $"A2温度1:{unitsData1.BarrelA2TempActValue1}\t" +
- $"B1温度1:{unitsData1.BarrelB1TempActValue1}\t" +
- $"B2温度1:{unitsData1.BarrelB2TempActValue1}\n" +
- $"A泵压力1:{unitsData1.PumpAPressureActValue1}\t" +
- $"B泵压力1:{unitsData1.PumpBPressureActValue1}\t" +
- $"真空度1:{unitsData1.VacuumDegreeActValue1}\t" +
- $"保压时间1:{unitsData1.PressureHoldTimeSetValue1}\n" +
- $"胶量2:{unitsData1.GlueAmountSetValue2}\t" +
- $"推胶速度2:{unitsData1.GluePushSpeedSetValue2}\n" +
- $"A1温度2:{unitsData1.BarrelA1TempActValue2}\t" +
- $"A2温度2:{unitsData1.BarrelA2TempActValue2}\t" +
- $"B1温度2:{unitsData1.BarrelB1TempActValue2}\t" +
- $"B2温度2:{unitsData1.BarrelB2TempActValue2}\n" +
- $"A泵压力2:{unitsData1.PumpAPressureActValue2}\t" +
- $"B泵压力2:{unitsData1.PumpBPressureActValue2}\t" +
- $"真空度2:{unitsData1.VacuumDegreeActValue2}\t" +
- $"保压时间2:{unitsData1.PressureHoldTimeSetValue2}");
- });
- }
- else
- {
- _log.Error($"PLC读取失败,原因:{trayBytesResult.Message}");
- }
- //流程完成
- }
- }
- else
- {
- _log.Error($"胶机2真空箱后PLC读取信号异常,原因:{signalRes.Message}");
- }
- }
- catch (Exception ex)
- {
- _log.Error("RFID0业务出现异常", ex);
- }
- }
- }
-}
diff --git a/Sln.Iot.Business/RFID06Business.cs b/Sln.Iot.Business/RFID06Business.cs
deleted file mode 100644
index cced3e0..0000000
--- a/Sln.Iot.Business/RFID06Business.cs
+++ /dev/null
@@ -1,177 +0,0 @@
-using CFX;
-using CFX.Structures;
-using CFX.Structures.PressInsertion;
-using HslCommunication;
-using Sln.Iot.CFX.CFXBusiness;
-using Sln.Iot.CFX.CFXConnect;
-using Sln.Iot.CFX.Event;
-using Sln.Iot.Common;
-using Sln.Iot.Config;
-using Sln.Iot.PLC;
-using Sln.Iot.Repository.service;
-using Sln.Iot.Serilog;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Sln.Iot.Business
-{
- public class RFID06Business
- {
- private Timer _timer;
-
- private readonly PLCConnect _plc = PLCConnect.Instance;
-
- private readonly SerilogHelper _log = SerilogHelper.Instance;
-
-
- //CFX数据采集业务
- private UnitsProcessPLCDataGetBusiness unitsProcessPLCDataGetBusiness = UnitsProcessPLCDataGetBusiness.Instance;
- private CFXUnitProcessedDataGet cFXUnitProcessedDataGet = CFXUnitProcessedDataGet.Instance;
-
- //SQL服务
- private OvenPlcDataService ovenPlcDataService = OvenPlcDataService.Instance;
- private VacuumInjectionPlcDataService vacuumInjectionPlcDataService = VacuumInjectionPlcDataService.Instance;
- private TrayBindingService trayBindingService = TrayBindingService.Instance;
-
- //CFX事件
- private UnitsDepartedEvent unitsDepartedEvent = new UnitsDepartedEvent();
- private WorkStageCompletedEvent workStageCompletedEvent = new WorkStageCompletedEvent();
- private UnitsProcessedEvent unitsProcessedEvent = new UnitsProcessedEvent();
- private WorkCompletedEvent workCompletedEvent = new WorkCompletedEvent();
- private UnitsArrivedEvent unitsArrivedEvent = new UnitsArrivedEvent();
- private WorkStartedEvent workStartedEvent = new WorkStartedEvent();
-
- // CFX连接
- private CFXConnect1 connect1 = CFXConnect1.Instance;
- private CFXConnect3 connect3 = CFXConnect3.Instance;
- private CFXConnect4 connect4 = CFXConnect4.Instance;
-
- public RFID06Business()
- {
- _timer = new Timer(TimerCallback, null, 0, 2000);
- }
-
- ///
- /// RFID06下料提升机数据处理流程
- ///
- ///
- public void TimerCallback(object? state)
- {
- try
- {
- // 定时任务逻辑
- //读取信号
- OperateResult signalRes = _plc.ReadInt16(_plc.DeltaInstance4, "D500");
- //成功验证
- if (signalRes.IsSuccess)
- {
- short signalValue = signalRes.Content;
- //如果有读取信号
- if (signalValue == 6001)
- {
- //读取托盘码和产品码
- OperateResult trayBytesResult = _plc.ReadBytes(_plc.DeltaInstance4, "D5000", 10);
- //成功验证
- if (trayBytesResult.IsSuccess)
- {
- //转换托盘吗
- string traycode = Encoding.ASCII.GetString(trayBytesResult.Content);
- traycode = traycode.Replace("?", "");
- traycode = traycode.Replace("\0", "");
- _log.Info($"托盘到达-RFID06-托盘号-[{traycode}]");
-
- //sql更新
- //取出work唯一guid(tid)
- string stid = trayBindingService.TidGet(traycode);
- if (!Guid.TryParse(stid, out Guid tid))
- {
- tid = Guid.Parse("11111111-1111-4111-9111-111111111111");
- _log.Error("找不到对应的托盘信息,赋值默认GUID");
- }
-
- string[] prodcode = trayBindingService.ProdCodeGet(traycode);
-
-
-
- bool res = trayBindingService.TrayCodeDelete(traycode);
-
- if (!res)
- {
- _log.Error("下料提升机绑定数据删除异常或删除条数为0");
- }
-
- //写入完成信号
- res = _plc.PlcWrite(_plc.DeltaInstance4, "D500", 6002, DataTypeEnum.UInt16).IsSuccess;
- if (!res)
- {
- _log.Error("下料提升机PLC写入完成信号异常");
- }
-
- GlobalVar.Connect3Entity.CycleTime = CommonUtil.AddRandom(AppConfigSetting._config.CycleTime3, 1000);
- GlobalVar.Connect4Entity.CycleTime = CommonUtil.AddRandom(AppConfigSetting._config.CycleTime4, 5);
-
- //CFX
- Task.Run(() =>
- {
- //固化炉工段完成事件
- connect3.PublishEvent(new CFXEnvelope(workStageCompletedEvent.Handle(tid, "CureOven", 3)));
- _log.Info($"固化炉工段完成, {tid}");
-
- connect4.PublishEvent(new CFXEnvelope(unitsArrivedEvent.Handle(traycode, prodcode)));
- connect4.PublishEvent(new CFXEnvelope(workStartedEvent.Handle(tid, traycode, prodcode)));
-
-
- //工单完成事件
- connect1.PublishEvent(new CFXEnvelope(workCompletedEvent.Handle(tid, traycode, prodcode)));
- connect4.PublishEvent(new CFXEnvelope(workCompletedEvent.Handle(tid, traycode, prodcode)));
- connect3.PublishEvent(new CFXEnvelope(workCompletedEvent.Handle(tid, traycode, prodcode)));
- _log.Info($"工单完成 ID:{tid}");
- //单元离站事件
- connect1.PublishEvent(new CFXEnvelope(unitsDepartedEvent.Handle(traycode, prodcode)));
- connect4.PublishEvent(new CFXEnvelope(unitsDepartedEvent.Handle(traycode, prodcode)));
- connect3.PublishEvent(new CFXEnvelope(unitsDepartedEvent.Handle(traycode, prodcode)));
- _log.Info($"{traycode} 单元离站 ");
-
- //固化炉数据采集
- var unitsdata = unitsProcessPLCDataGetBusiness.CureOvenPlcDataGet();
- //存数据库里整合
- ovenPlcDataService.UpdateDataCure(stid, unitsdata);
- //取出整合数据
- unitsdata = ovenPlcDataService.GetData(stid);
-
- connect3.PublishEvent(new CFXEnvelope(unitsProcessedEvent.Handle(tid, cFXUnitProcessedDataGet.ProcessDataGet3(unitsdata))));
- _log.Info($"隧道烤箱温度数据上传\n" +
- $"预热炉温度:{unitsdata.PreheatOvenTempActValue}\n" +
- $"预固炉1温度:{unitsdata.PreCureOven1TempActValue}\t" +
- $"预固炉2温度:{unitsdata.PreCureOven2TempActValue}\t" +
- $"预固炉3温度:{unitsdata.PreCureOven3TempActValue}\t" +
- $"预固炉4温度:{unitsdata.PreCureOven4TempActValue}\n" +
- $"固化炉1温度:{unitsdata.CureOven1TempActValue}\t" +
- $"固化炉2温度:{unitsdata.CureOven2TempActValue}\t" +
- $"固化炉3温度:{unitsdata.CureOven3TempActValue}\t" +
- $"固化炉4温度:{unitsdata.CureOven4TempActValue}");
- });
- }
- else
- {
- _log.Error($"PLC读取失败,原因:{trayBytesResult.Message}");
- }
- //流程完成
- }
- }
- else
- {
- _log.Error($"下料提升机PLC读取信号异常,原因:{signalRes.Message}");
- }
- }
- catch (Exception ex)
- {
- _log.Error("RFID0业务出现异常", ex);
- }
-
- }
- }
-}
diff --git a/Sln.Iot.Business/TCPRFIDBinding.cs b/Sln.Iot.Business/TCPRFIDBinding.cs
new file mode 100644
index 0000000..80f92de
--- /dev/null
+++ b/Sln.Iot.Business/TCPRFIDBinding.cs
@@ -0,0 +1,63 @@
+using Sln.Iot.Business.Entity;
+using Sln.Iot.Repository.service;
+using System.Reflection;
+using System.Text.Json;
+
+namespace Sln.Iot.Business
+{
+ ///
+ /// TCPRFID信息绑定
+ ///
+ public class TCPRFIDBinding
+ {
+ private static readonly Lazy lazy = new Lazy(() => new TCPRFIDBinding());
+
+ public static TCPRFIDBinding Instance
+ {
+ get
+ {
+ return lazy.Value;
+ }
+ }
+
+ public static Action? GetNewMessage = new Action((message) => { });
+
+ private readonly TrayBindingService _trayBinding = TrayBindingService.Instance;
+
+ public TCPRFIDBinding()
+ {
+ GetNewMessage += StoreBindingMessage;
+ }
+
+ private static readonly PropertyInfo[] _snProperties =
+ typeof(TCPRFIDBindingEntity).GetProperties()
+ .Where(p => p.Name.StartsWith("Sn", StringComparison.OrdinalIgnoreCase))
+ .ToArray();
+
+
+ ///
+ /// 数据绑定到数据库
+ ///
+ public void StoreBindingMessage(string message)
+ {
+ var entity = ParseMessage(message);
+ if (entity == null || string.IsNullOrWhiteSpace(entity.Rfid)) return;
+
+ var prodCodes = _snProperties
+ .Select(p => p.GetValue(entity) as string)
+ .Where(v => !string.IsNullOrWhiteSpace(v))
+ .ToArray();
+
+ if (prodCodes.Length == 0) return;
+
+ _trayBinding.TrayBindingRefresh(Guid.NewGuid(), entity.Rfid, prodCodes!);
+ }
+
+ private static TCPRFIDBindingEntity? ParseMessage(string message)
+ {
+ if (string.IsNullOrWhiteSpace(message)) return null;
+
+ return JsonSerializer.Deserialize(message);
+ }
+ }
+}
diff --git a/Sln.Iot.Business/TouchTcpServer.cs b/Sln.Iot.Business/TouchTcpServer.cs
new file mode 100644
index 0000000..5b1dbca
--- /dev/null
+++ b/Sln.Iot.Business/TouchTcpServer.cs
@@ -0,0 +1,65 @@
+using Sln.Iot.Business;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using TouchSocket.Core;
+using TouchSocket.Sockets;
+
+namespace Sln.Iot.Business
+{
+ ///
+ /// TCP服务端
+ ///
+ public class TouchTcpServer
+ {
+ private static readonly Lazy lazy = new Lazy(() => new TouchTcpServer());
+
+ public static TouchTcpServer Instance
+ {
+ get
+ {
+ return lazy.Value;
+ }
+ }
+
+ ///
+ /// 服务端启动
+ ///
+ public async void TcpServerStarted(string ipHost)
+ {
+ var service = new TcpService();
+ service.Connecting = (client, e) => { return EasyTask.CompletedTask; };//有客户端正在连接
+ service.Connected = (client, e) => { return EasyTask.CompletedTask; };//有客户端成功连接
+ service.Closing = (client, e) => { return EasyTask.CompletedTask; };//有客户端正在断开连接,只有当主动断开时才有效。
+ service.Closed = (client, e) => { return EasyTask.CompletedTask; };//有客户端断开连接
+
+ #region Tcp服务器使用Received异步委托接收数据
+ service.Received = async (client, e) =>
+ {
+ //从客户端收到信息
+ var mes = e.Memory.Span.ToString(Encoding.UTF8);
+ client.Logger.Info($"已从{client.Id}接收到信息:{mes}");
+ TCPRFIDBinding.GetNewMessage?.Invoke(mes);
+ //简单消除Task,当使用插件接收时,需要使用 await e.InvokeNext();来继续执行后续插件。
+ await EasyTask.CompletedTask;
+ };
+ #endregion
+
+
+ await service.SetupAsync(new TouchSocketConfig()//载入配置
+ .SetListenIPHosts($"tcp://{ipHost}")//可以同时监听多个地址
+ .ConfigureContainer(a =>//容器的配置
+ {
+ a.AddConsoleLogger();//添加一个控制台日志注入(注意:在maui中控制台日志不可用)
+ })
+ .ConfigurePlugins(a =>
+ {
+ //a.Add();//此处可以添加插件
+ }));
+
+ await service.StartAsync();//启动
+ }
+ }
+}
diff --git a/Sln.Iot.CFX/CFXConnect/CFXConnect3.cs b/Sln.Iot.CFX/CFXConnect/CFXConnect3.cs
deleted file mode 100644
index 1f45799..0000000
--- a/Sln.Iot.CFX/CFXConnect/CFXConnect3.cs
+++ /dev/null
@@ -1,132 +0,0 @@
-using CFX.InformationSystem.UnitValidation;
-using CFX.ResourcePerformance;
-using CFX.Structures;
-using CFX;
-using Sln.Iot.CFX.RequestReceived;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using CFX.Production;
-using Sln.Iot.CFX.CFXRequestes;
-using Sln.Iot.CFX.CFXBusiness;
-using Sln.Iot.CFX.Event;
-
-namespace Sln.Iot.CFX.CFXConnect
-{
- ///
- /// 烤箱连接
- ///
- public class CFXConnect3 : CFXHelper
- {
- private static readonly Lazy lazy = new Lazy(() => new CFXConnect3());
-
- public static CFXConnect3 Instance
- {
- get
- {
- return lazy.Value;
- }
- }
-
- AreYouThereRequestReceived3 areYouThereRequestReceived3 = new AreYouThereRequestReceived3();
- GetEndpointInformationRequestReceived3 getEndpointInformationRequestReceived3 = new GetEndpointInformationRequestReceived3();
- WhoIsThereRequestReceived3 whoIsThereRequestReceived3 = new WhoIsThereRequestReceived3();
- GetActiveRecipeRequestReceived3 getActiveRecipeRequestReceived3 = new GetActiveRecipeRequestReceived3();
- GetActiveFaultsRequestReceived3 getActiveFaultsRequestReceived3 = new GetActiveFaultsRequestReceived3();
- HandleFaultRequestReceived3 handleFaultRequestReceived3 = new HandleFaultRequestReceived3();
- ModifyStationParametersRequestReceived3 modifyStationParametersRequestReceived3 = new ModifyStationParametersRequestReceived3();
-
- //HeartbeatEvent heartbeatEvent = new HeartbeatEvent();
-
- CFXEventTools cFXEventTools = CFXEventTools.Instance;
-
- public string CFXHandle { get; set; } = "CFX.A00.OT00470017";
-
- protected override CFXMessage HandleRequest(CFXEnvelope request)
- {
- CFXMessage response = null;
-
- if (request.MessageBody is AreYouThereRequest) //存在性检测请求
- {
- areYouThereRequestReceived3.Handle(request.MessageBody as AreYouThereRequest, out response);
- }
- else if (request.MessageBody is GetEndpointInformationRequest) //获取终端节点信息请求
- {
- getEndpointInformationRequestReceived3.Handle(request.MessageBody as GetEndpointInformationRequest, out response);
- }
- else if (request.MessageBody is WhoIsThereRequest) //设备存在性查询请求
- {
- whoIsThereRequestReceived3.Handle(request.MessageBody as WhoIsThereRequest, out response);
- }
- else if (request.MessageBody is GetActiveRecipeRequest) //获取当前激活配方请求
- {
- getActiveRecipeRequestReceived3.Handle(request.MessageBody as GetActiveRecipeRequest, out response);
- }
- else if (request.MessageBody is GetActiveFaultsRequest) //获取当前错误状态请求
- {
- getActiveFaultsRequestReceived3.Handle(request.MessageBody as GetActiveFaultsRequest, out response);
- }
- else if (request.MessageBody is HandleFaultRequest) //处理错误请求
- {
- handleFaultRequestReceived3.Handle(request.MessageBody as HandleFaultRequest, out response);
- }
- else if (request.MessageBody is ModifyStationParametersRequest) //设备修改参数请求
- {
- modifyStationParametersRequestReceived3.Handle(request.MessageBody as ModifyStationParametersRequest, out response);
- }
- else //不支持的请求类型
- {
- response = new NotSupportedResponse()
- {
- RequestResult = new RequestResult()
- {
- Result = StatusResult.Failed,
- ResultCode = 0,
- Message = $"不支持的请求类型:{request.MessageBody.GetType().Name}"
- }
- };
- }
-
- return response;
- }
-
- ///
- /// 发送生产单元验证请求接收通知
- ///
- public void SendValidateUnitsRequest(string uri, string primaryIdentifier, string[] unitsIdentifier)
- {
- try
- {
- ValidateUnitsRequest msg = new ValidateUnitsRequest()
- {
- Validations = new List()
- {
- ValidationType.UnitTraceValidation,
- },
- PrimaryIdentifier = primaryIdentifier,
- Units = cFXEventTools.UnitPositionTrans(unitsIdentifier)
- };
-
- var validateresult = Endpoint.ExecuteRequest(uri, new CFXEnvelope(msg)
- {
- Source = Endpoint.CFXHandle,
- Target = "inline-control"
- });
-
- if (validateresult == null)
- {
- return;
- }
-
- var response = validateresult.MessageBody as ValidateUnitsResponse;
- //响应逻辑
- }
- catch (Exception ex)
- {
-
- }
- }
- }
-}
diff --git a/Sln.Iot.CFX/CFXConnect/CFXConnect4.cs b/Sln.Iot.CFX/CFXConnect/CFXConnect4.cs
deleted file mode 100644
index eac3d15..0000000
--- a/Sln.Iot.CFX/CFXConnect/CFXConnect4.cs
+++ /dev/null
@@ -1,132 +0,0 @@
-using CFX.InformationSystem.UnitValidation;
-using CFX.ResourcePerformance;
-using CFX.Structures;
-using CFX;
-using Sln.Iot.CFX.RequestReceived;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using CFX.Production;
-using Sln.Iot.CFX.CFXRequestes;
-using Sln.Iot.CFX.CFXBusiness;
-using Sln.Iot.CFX.Event;
-
-namespace Sln.Iot.CFX.CFXConnect
-{
- ///
- /// 提升机2连接
- ///
- public class CFXConnect4 : CFXHelper
- {
- private static readonly Lazy lazy = new Lazy(() => new CFXConnect4());
-
- public static CFXConnect4 Instance
- {
- get
- {
- return lazy.Value;
- }
- }
-
- AreYouThereRequestReceived4 areYouThereRequestReceived4 = new AreYouThereRequestReceived4();
- GetEndpointInformationRequestReceived4 getEndpointInformationRequestReceived4 = new GetEndpointInformationRequestReceived4();
- WhoIsThereRequestReceived4 whoIsThereRequestReceived4 = new WhoIsThereRequestReceived4();
- GetActiveRecipeRequestReceived4 getActiveRecipeRequestReceived4 = new GetActiveRecipeRequestReceived4();
- GetActiveFaultsRequestReceived4 getActiveFaultsRequestReceived4 = new GetActiveFaultsRequestReceived4();
- HandleFaultRequestReceived4 handleFaultRequestReceived4 = new HandleFaultRequestReceived4();
- ModifyStationParametersRequestReceived4 modifyStationParametersRequestReceived4 = new ModifyStationParametersRequestReceived4();
-
- //HeartbeatEvent heartbeatEvent = new HeartbeatEvent();
-
- CFXEventTools cFXEventTools = CFXEventTools.Instance;
-
- public string CFXHandle { get; set; } = "CFX.A00.OT00470020";
-
- protected override CFXMessage HandleRequest(CFXEnvelope request)
- {
- CFXMessage response = null;
-
- if (request.MessageBody is AreYouThereRequest) //存在性检测请求
- {
- areYouThereRequestReceived4.Handle(request.MessageBody as AreYouThereRequest, out response);
- }
- else if (request.MessageBody is GetEndpointInformationRequest) //获取终端节点信息请求
- {
- getEndpointInformationRequestReceived4.Handle(request.MessageBody as GetEndpointInformationRequest, out response);
- }
- else if (request.MessageBody is WhoIsThereRequest) //设备存在性查询请求
- {
- whoIsThereRequestReceived4.Handle(request.MessageBody as WhoIsThereRequest, out response);
- }
- else if (request.MessageBody is GetActiveRecipeRequest) //获取当前激活配方请求
- {
- getActiveRecipeRequestReceived4.Handle(request.MessageBody as GetActiveRecipeRequest, out response);
- }
- else if (request.MessageBody is GetActiveFaultsRequest) //获取当前错误状态请求
- {
- getActiveFaultsRequestReceived4.Handle(request.MessageBody as GetActiveFaultsRequest, out response);
- }
- else if (request.MessageBody is HandleFaultRequest) //处理错误请求
- {
- handleFaultRequestReceived4.Handle(request.MessageBody as HandleFaultRequest, out response);
- }
- else if (request.MessageBody is ModifyStationParametersRequest) //设备修改参数请求
- {
- modifyStationParametersRequestReceived4.Handle(request.MessageBody as ModifyStationParametersRequest, out response);
- }
- else //不支持的请求类型
- {
- response = new NotSupportedResponse()
- {
- RequestResult = new RequestResult()
- {
- Result = StatusResult.Failed,
- ResultCode = 0,
- Message = $"不支持的请求类型:{request.MessageBody.GetType().Name}"
- }
- };
- }
-
- return response;
- }
-
- ///
- /// 发送生产单元验证请求接收通知
- ///
- public void SendValidateUnitsRequest(string uri, string primaryIdentifier, string[] unitsIdentifier)
- {
- try
- {
- ValidateUnitsRequest msg = new ValidateUnitsRequest()
- {
- Validations = new List()
- {
- ValidationType.UnitTraceValidation,
- },
- PrimaryIdentifier = primaryIdentifier,
- Units = cFXEventTools.UnitPositionTrans(unitsIdentifier)
- };
-
- var validateresult = Endpoint.ExecuteRequest(uri, new CFXEnvelope(msg)
- {
- Source = Endpoint.CFXHandle,
- Target = "inline-control"
- });
-
- if (validateresult == null)
- {
- return;
- }
-
- var response = validateresult.MessageBody as ValidateUnitsResponse;
- //响应逻辑
- }
- catch (Exception ex)
- {
-
- }
- }
- }
-}
diff --git a/Sln.Iot.CFX/CFXConnect/CFXConnect2.cs b/Sln.Iot.CFX/CFXConnect/CFXConnectOven.cs
similarity index 96%
rename from Sln.Iot.CFX/CFXConnect/CFXConnect2.cs
rename to Sln.Iot.CFX/CFXConnect/CFXConnectOven.cs
index a507928..9960b98 100644
--- a/Sln.Iot.CFX/CFXConnect/CFXConnect2.cs
+++ b/Sln.Iot.CFX/CFXConnect/CFXConnectOven.cs
@@ -18,11 +18,11 @@ namespace Sln.Iot.CFX.CFXConnect
///
/// 提升机1连接
///
- public class CFXConnect2 : CFXHelper
+ public class CFXConnectOven : CFXHelper
{
- private static readonly Lazy lazy = new Lazy(() => new CFXConnect2());
+ private static readonly Lazy lazy = new Lazy(() => new CFXConnectOven());
- public static CFXConnect2 Instance
+ public static CFXConnectOven Instance
{
get
{
diff --git a/Sln.Iot.CFX/CFXConnect/CFXConnect1.cs b/Sln.Iot.CFX/CFXConnect/CFXConnectVacuum.cs
similarity index 95%
rename from Sln.Iot.CFX/CFXConnect/CFXConnect1.cs
rename to Sln.Iot.CFX/CFXConnect/CFXConnectVacuum.cs
index 6f3bbb5..f9acc7f 100644
--- a/Sln.Iot.CFX/CFXConnect/CFXConnect1.cs
+++ b/Sln.Iot.CFX/CFXConnect/CFXConnectVacuum.cs
@@ -18,11 +18,11 @@ namespace Sln.Iot.CFX.CFXConnect
///
/// 真空箱连接
///
- public class CFXConnect1 : CFXHelper
+ public class CFXConnectVacuum : CFXHelper
{
- private static readonly Lazy lazy = new Lazy(() => new CFXConnect1());
+ private static readonly Lazy lazy = new Lazy(() => new CFXConnectVacuum());
- public static CFXConnect1 Instance
+ public static CFXConnectVacuum Instance
{
get
{
diff --git a/Sln.Iot.CFX/CFXTest.cs b/Sln.Iot.CFX/CFXTest.cs
index a3e2bd5..f9d26d1 100644
--- a/Sln.Iot.CFX/CFXTest.cs
+++ b/Sln.Iot.CFX/CFXTest.cs
@@ -17,9 +17,7 @@ namespace Sln.Iot.CFX
///
public class CFXTest
{
- CFXConnect1 _cfxHelper = CFXConnect1.Instance;
- CFXConnect2 _cfxHelper2 = CFXConnect2.Instance;
- CFXConnect3 _cfxHelper3 = CFXConnect3.Instance;
+ CFXConnectOven _cfxHelper2 = CFXConnectOven.Instance;
CFXUnitProcessedDataGet cFXUnitProcessedDataGet = CFXUnitProcessedDataGet.Instance;
//HeartbeatEvent heartbeatEvent = new HeartbeatEvent();
diff --git a/Sln.Iot.Config/AppConfig.cs b/Sln.Iot.Config/AppConfig.cs
index b570d4f..6e3a8b8 100644
--- a/Sln.Iot.Config/AppConfig.cs
+++ b/Sln.Iot.Config/AppConfig.cs
@@ -64,21 +64,11 @@ namespace Sln.Iot.Config
///
public CFXConfig VacuumConfig { get; set; }
- ///
- /// CFX配置-提升机1
- ///
- public CFXConfig Lift1Config { get; set; }
-
///
/// CFX配置-烤炉
///
public CFXConfig OvenConfig { get; set; }
- ///
- /// CFX配置-提升机2
- ///
- public CFXConfig Lift2Config { get; set; }
-
///
/// MES的URL
///
diff --git a/Sln.Iot.PLC/PLCConnect.cs b/Sln.Iot.PLC/PLCConnect.cs
index eb79cf7..5916f3e 100644
--- a/Sln.Iot.PLC/PLCConnect.cs
+++ b/Sln.Iot.PLC/PLCConnect.cs
@@ -20,30 +20,30 @@ namespace Sln.Iot.PLC
private readonly SerilogHelper _log = SerilogHelper.Instance;
- ///
- /// PLC1 192.168.1.20 烤箱
- ///
- public DeltaTcpNet DeltaInstance0;
+ /////
+ ///// PLC1 192.168.1.20 烤箱
+ /////
+ //public DeltaTcpNet VacuumPlc;
///
- /// PLC1 192.168.1.21 真空箱1
+ /// PLC1 192.168.1.21 胶机
///
- public DeltaTcpNet DeltaInstance1;
+ public DeltaTcpNet PLC21;
///
- /// PLC2 192.168.1.22 真空箱2
+ /// PLC2 192.168.1.22 真空箱
///
- public DeltaTcpNet DeltaInstance2;
+ public DeltaTcpNet PLC22;
///
- /// PLC3 192.168.1.23 提升机1
+ /// PLC3 192.168.1.23 接驳台1
///
- public DeltaTcpNet DeltaInstance3;
+ public DeltaTcpNet PLC23;
///
- /// PLC4 192.168.1.24 提升机2
+ /// PLC4 192.168.1.24 接驳台2
///
- public DeltaTcpNet DeltaInstance4;
+ public DeltaTcpNet PLC24;
///
/// 锁对象1
@@ -54,7 +54,7 @@ namespace Sln.Iot.PLC
{
List> tasks = new List>
{
- CreateDeltaConnect("192.168.1.20", 502, 1),
+ //CreateDeltaConnect("192.168.1.20", 502, 1),
CreateDeltaConnect("192.168.1.21", 502, 1),
CreateDeltaConnect("192.168.1.22", 502, 1),
CreateDeltaConnect("192.168.1.23", 502, 1),
@@ -63,16 +63,16 @@ namespace Sln.Iot.PLC
await Task.WhenAll(tasks);
- DeltaInstance0 = tasks[0].GetAwaiter().GetResult();
- _log.Info($"PLC连接成功: {DeltaInstance0.IpAddress}");
- DeltaInstance1 = tasks[1].GetAwaiter().GetResult();
- _log.Info($"PLC连接成功: {DeltaInstance1.IpAddress}");
- DeltaInstance2 = tasks[2].GetAwaiter().GetResult();
- _log.Info($"PLC连接成功: {DeltaInstance2.IpAddress}");
- DeltaInstance3 = tasks[3].GetAwaiter().GetResult();
- _log.Info($"PLC连接成功: {DeltaInstance3.IpAddress}");
- DeltaInstance4 = tasks[4].GetAwaiter().GetResult();
- _log.Info($"PLC连接成功: {DeltaInstance4.IpAddress}");
+ //DeltaInstance0 = tasks[0].GetAwaiter().GetResult();
+ //_log.Info($"PLC连接成功: {DeltaInstance0.IpAddress}");
+ PLC21 = tasks[0].GetAwaiter().GetResult();
+ _log.Info($"PLC连接成功: {PLC21.IpAddress}");
+ PLC22 = tasks[1].GetAwaiter().GetResult();
+ _log.Info($"PLC连接成功: {PLC22.IpAddress}");
+ PLC23 = tasks[2].GetAwaiter().GetResult();
+ _log.Info($"PLC连接成功: {PLC23.IpAddress}");
+ PLC24 = tasks[3].GetAwaiter().GetResult();
+ _log.Info($"PLC连接成功: {PLC24.IpAddress}");
_log.Info("PLC连接全部成功");
}
diff --git a/Sln.Iot.Repository/service/TrayBindingService.cs b/Sln.Iot.Repository/service/TrayBindingService.cs
index 3a2b71f..6a3d8a4 100644
--- a/Sln.Iot.Repository/service/TrayBindingService.cs
+++ b/Sln.Iot.Repository/service/TrayBindingService.cs
@@ -202,5 +202,31 @@ namespace Sln.Iot.Repository.service
return time2;
}
}
+
+ ///
+ /// 根据时间字段索引获取时间值
+ ///
+ public string GetTimeByTrayCode(string trayCode, string timeField)
+ {
+ try
+ {
+ var res = _helper.Query(t => t.TrayCode == trayCode).FirstOrDefault();
+ if (res == null) return string.Empty;
+
+ return timeField switch
+ {
+ "1" => res.Time1 ?? string.Empty,
+ "2" => res.Time2 ?? string.Empty,
+ "3" => res.Time3 ?? string.Empty,
+ "4" => res.Time4 ?? string.Empty,
+ _ => string.Empty
+ };
+ }
+ catch (Exception ex)
+ {
+ _log.Error($"根据托盘码获取time{timeField}错误", ex);
+ return string.Empty;
+ }
+ }
}
}
diff --git a/Sln.Iot.Touchsocket/Sln.Iot.Touchsocket.csproj b/Sln.Iot.Touchsocket/Sln.Iot.Touchsocket.csproj
new file mode 100644
index 0000000..cfadb03
--- /dev/null
+++ b/Sln.Iot.Touchsocket/Sln.Iot.Touchsocket.csproj
@@ -0,0 +1,9 @@
+
+
+
+ net7.0
+ enable
+ enable
+
+
+
diff --git a/Sln.Iot.Touchsocket/TouchSocketSetup.cs b/Sln.Iot.Touchsocket/TouchSocketSetup.cs
new file mode 100644
index 0000000..c0982cb
--- /dev/null
+++ b/Sln.Iot.Touchsocket/TouchSocketSetup.cs
@@ -0,0 +1,7 @@
+namespace Sln.Iot.Touchsocket
+{
+ public class TouchSocketSetup
+ {
+
+ }
+}
diff --git a/Sln.Iot/Program.cs b/Sln.Iot/Program.cs
index 58b1a7a..df85e51 100644
--- a/Sln.Iot/Program.cs
+++ b/Sln.Iot/Program.cs
@@ -74,36 +74,13 @@ namespace Sln.Iot
//CFX接口启动
//真空注胶机
- CFXConnect1.Instance.Init(appConfig.VacuumConfig.CFXHandle,
+ CFXConnectOven.Instance.Init(appConfig.VacuumConfig.CFXHandle,
new Uri(appConfig.VacuumConfig.LocalURI),
new Uri(appConfig.VacuumConfig.UpperURI));
//提升机1
- CFXConnect2.Instance.Init(appConfig.Lift1Config.CFXHandle,
+ CFXConnectVacuum.Instance.Init(appConfig.Lift1Config.CFXHandle,
new Uri(appConfig.Lift1Config.LocalURI),
new Uri(appConfig.Lift1Config.UpperURI));
- //隧道烤箱
- CFXConnect3.Instance.Init(appConfig.OvenConfig.CFXHandle,
- new Uri(appConfig.OvenConfig.LocalURI),
- new Uri(appConfig.OvenConfig.UpperURI));
- //提升机2
- CFXConnect4.Instance.Init(appConfig.Lift2Config.CFXHandle,
- new Uri(appConfig.Lift2Config.LocalURI),
- new Uri(appConfig.Lift2Config.UpperURI));
-
- ////CFX接口启动
- ////真空注胶机
- //CFXConnect1.Instance.Init("CFX.A00.SDSH000001",
- // new Uri("amqp://127.0.0.1:1235"),
- // new Uri("amqp://127.0.0.1:8888"));
- ////升降回流
- //CFXConnect2.Instance.Init("CFX.A00.SDSH000002",
- // new Uri("amqp://127.0.0.1:1235"),
- // new Uri("amqp://127.0.0.1:8888"));
- ////隧道烤箱
- //CFXConnect3.Instance.Init("CFX.A00.SDSH000003",
- // new Uri("amqp://127.0.0.1:1235"),
- // new Uri("amqp://127.0.0.1:8888"));
-
//业务类启动
BusinessStart business = new BusinessStart();
@@ -123,10 +100,8 @@ namespace Sln.Iot
///
public static void ProgramClose()
{
- CFXConnect1.Instance.PublishEvent(new CFXEnvelope(new EndpointShuttingDownEvent().Handle(CFXConnect1.Instance.CFXHandle)));
- CFXConnect2.Instance.PublishEvent(new CFXEnvelope(new EndpointShuttingDownEvent().Handle(CFXConnect2.Instance.CFXHandle)));
- CFXConnect3.Instance.PublishEvent(new CFXEnvelope(new EndpointShuttingDownEvent().Handle(CFXConnect3.Instance.CFXHandle)));
- CFXConnect4.Instance.PublishEvent(new CFXEnvelope(new EndpointShuttingDownEvent().Handle(CFXConnect4.Instance.CFXHandle)));
+ CFXConnectOven.Instance.PublishEvent(new CFXEnvelope(new EndpointShuttingDownEvent().Handle(CFXConnectOven.Instance.CFXHandle)));
+ CFXConnectVacuum.Instance.PublishEvent(new CFXEnvelope(new EndpointShuttingDownEvent().Handle(CFXConnectVacuum.Instance.CFXHandle)));
}
}
}
\ No newline at end of file
diff --git a/Sln.Iot/appsettings.json b/Sln.Iot/appsettings.json
index a9a8a6d..8d66e10 100644
--- a/Sln.Iot/appsettings.json
+++ b/Sln.Iot/appsettings.json
@@ -16,24 +16,12 @@
//上位系统URI
"UpperURI": "http://10.148.192.32:8090/sensordata?sensorId=UploadMachineData"
},
- "Lift1Config": {
- "DeviceName": "Lift1",
- "CFXHandle": "CFX.A00.OT00470019",
- "LocalURI": "amqp://127.0.0.1:1236",
- "UpperURI": "http://10.148.192.32:8090/sensordata?sensorId=UploadMachineData"
- },
"OvenConfig": {
"DeviceName": "Oven",
"CFXHandle": "CFX.A00.OT00470017",
"LocalURI": "amqp://127.0.0.1:1237",
"UpperURI": "http://10.148.192.32:8090/sensordata?sensorId=UploadMachineData"
- },
- "Lift2Config": {
- "DeviceName": "Lift2",
- "CFXHandle": "CFX.A00.OT00470020",
- "LocalURI": "amqp://127.0.0.1:1238",
- "UpperURI": "http://10.148.192.32:8090/sensordata?sensorId=UploadMachineData"
- },
+ }
//MES连接地址和端口号
"MESURL": "http://10.148.192.32:8090",
//MES连接接口地址