|
|
|
@ -3,6 +3,7 @@ using Admin.Core.IService;
|
|
|
|
|
using Admin.Core.Model;
|
|
|
|
|
using Aucma.Core.DoorFoam.Models;
|
|
|
|
|
using Aucma.Core.HwPLc;
|
|
|
|
|
using log4net;
|
|
|
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
|
|
|
using NetTaste;
|
|
|
|
|
using NPOI.Util;
|
|
|
|
@ -50,7 +51,7 @@ namespace Aucma.Core.DoorFoam.Business
|
|
|
|
|
Semaphore semaphore = new Semaphore(1, 1);
|
|
|
|
|
|
|
|
|
|
private readonly IBoxLastShotRecordServices? _lastShotRecordServices = App.ServiceProvider.GetService<IBoxLastShotRecordServices>();
|
|
|
|
|
|
|
|
|
|
private static readonly log4net.ILog logHelper = LogManager.GetLogger(typeof(CollectionFoamMachine));
|
|
|
|
|
|
|
|
|
|
public CollectionFoamMachine()
|
|
|
|
|
{
|
|
|
|
@ -59,6 +60,18 @@ namespace Aucma.Core.DoorFoam.Business
|
|
|
|
|
|
|
|
|
|
public void startCollect()
|
|
|
|
|
{
|
|
|
|
|
//采集注料记录
|
|
|
|
|
Task.Run(() =>
|
|
|
|
|
{
|
|
|
|
|
Thread.Sleep(3000);
|
|
|
|
|
while (true)
|
|
|
|
|
{
|
|
|
|
|
var obj = PlcHelper.siemensList.FirstOrDefault(d => d.EquipName.Equals("FoamPlc"));
|
|
|
|
|
ReadFillingRecord(obj);
|
|
|
|
|
Thread.Sleep(200);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
Task.Run(() =>
|
|
|
|
|
{
|
|
|
|
|
while (true)
|
|
|
|
@ -73,13 +86,8 @@ namespace Aucma.Core.DoorFoam.Business
|
|
|
|
|
ReadEquipSystem(obj, "DB50.388", systemKeys, "1"); //采集1系统
|
|
|
|
|
ReadEquipSystem(obj, "DB50.642", systemKeys, "2"); //采集2系统
|
|
|
|
|
|
|
|
|
|
ReadGunData(obj, "DB50.896", gunKeys, "A1"); //A1枪数据
|
|
|
|
|
ReadGunData(obj, "DB50.1084", gunKeys, "B1"); //B1枪数据
|
|
|
|
|
ReadGunData(obj, "DB50.1272", gunKeys, "A2"); //A2枪数据
|
|
|
|
|
ReadGunData(obj, "DB50.1460", gunKeys, "B2"); //A2枪数据
|
|
|
|
|
RefreshSystemDataDelegateEvent?.Invoke(systemKeys);
|
|
|
|
|
RefreshGunDataDelegateEvent?.Invoke(gunKeys);
|
|
|
|
|
|
|
|
|
|
RefreshSystemDataDelegateEvent?.Invoke(systemKeys);
|
|
|
|
|
|
|
|
|
|
foreach (KeyValuePair<string, BoxLastShotRecord> kvPair in gunKeys)
|
|
|
|
|
{
|
|
|
|
@ -99,17 +107,11 @@ namespace Aucma.Core.DoorFoam.Business
|
|
|
|
|
}
|
|
|
|
|
tempKeys.Add(kvPair.Key, record);
|
|
|
|
|
}
|
|
|
|
|
if (!kvPair.Value.MixpistOff.Equals(tempKeys[kvPair.Key].MixpistOff) && !kvPair.Value.MixpistOff.Equals("0"))
|
|
|
|
|
{
|
|
|
|
|
kvPair.Value.ProductLineCode = "CX_02";
|
|
|
|
|
kvPair.Value.StationNumber = "1020";
|
|
|
|
|
int b = _lastShotRecordServices.AddAsync(kvPair.Value).Result;
|
|
|
|
|
RefreshLastShotDataDelegateEvent?.Invoke(kvPair.Value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 设备状态变化,更新设备状态
|
|
|
|
|
if (kvPair.Value.SystemStatus != tempKeys[kvPair.Key].SystemStatus)
|
|
|
|
|
{
|
|
|
|
|
BoxLastShotRecord record = _lastShotRecordServices.Query(x => x.System.Equals(kvPair.Value.System) && x.ProductLineCode.Equals(kvPair.Value.ProductLineCode) && x.GunCode.Equals(kvPair.Value.GunCode) && x.StationNumber == "1020").OrderByDescending(x => x.CreateTime).FirstOrDefault();
|
|
|
|
|
BoxLastShotRecord record = _lastShotRecordServices.Query(x => x.System.Equals(kvPair.Value.System) && x.ProductLineCode.Equals(kvPair.Value.ProductLineCode) && x.GunCode.Equals(kvPair.Value.GunCode) && x.StationNumber == "1005").OrderByDescending(x => x.CreateTime).FirstOrDefault();
|
|
|
|
|
if (record != null)
|
|
|
|
|
{
|
|
|
|
|
record.SystemStatus = kvPair.Value.SystemStatus;
|
|
|
|
@ -150,6 +152,57 @@ namespace Aucma.Core.DoorFoam.Business
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 读取注料结束信号
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="obj_1"></param>
|
|
|
|
|
private void ReadFillingRecord(PlcModel obj_1)
|
|
|
|
|
{
|
|
|
|
|
if (obj_1 != null && obj_1.plc.IsConnected)
|
|
|
|
|
{
|
|
|
|
|
if (obj_1.plc.ReadBool("DB50.DBX983.0"))
|
|
|
|
|
{
|
|
|
|
|
logHelper.Info("读取到发泡机A1枪结束信号");
|
|
|
|
|
ReadGunData(obj_1, "DB50.896", gunKeys, "A1"); //A1枪数据
|
|
|
|
|
int a = _lastShotRecordServices.AddAsync(gunKeys["A1"]).Result;
|
|
|
|
|
RefreshLastShotDataDelegateEvent?.Invoke(gunKeys["A1"]);
|
|
|
|
|
RefreshGunDataDelegateEvent?.Invoke(gunKeys);
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
}
|
|
|
|
|
else if (obj_1.plc.ReadBool("DB50.DBX1171.0"))
|
|
|
|
|
{
|
|
|
|
|
logHelper.Info("读取到发泡机B1枪结束信号");
|
|
|
|
|
ReadGunData(obj_1, "DB50.1084", gunKeys, "B1"); //B1枪数据
|
|
|
|
|
int a = _lastShotRecordServices.AddAsync(gunKeys["B1"]).Result;
|
|
|
|
|
RefreshLastShotDataDelegateEvent?.Invoke(gunKeys["B1"]);
|
|
|
|
|
RefreshGunDataDelegateEvent?.Invoke(gunKeys);
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
}
|
|
|
|
|
else if (obj_1.plc.ReadBool("DB50.DBX1359.0"))
|
|
|
|
|
{
|
|
|
|
|
logHelper.Info("读取到发泡机A2枪结束信号");
|
|
|
|
|
ReadGunData(obj_1, "DB50.1272", gunKeys, "A2"); //A2枪数据
|
|
|
|
|
int a = _lastShotRecordServices.AddAsync(gunKeys["A2"]).Result;
|
|
|
|
|
RefreshLastShotDataDelegateEvent?.Invoke(gunKeys["A2"]);
|
|
|
|
|
RefreshGunDataDelegateEvent?.Invoke(gunKeys);
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
}
|
|
|
|
|
else if (obj_1.plc.ReadBool("DB50.DBX1547.0"))
|
|
|
|
|
{
|
|
|
|
|
logHelper.Info("读取到发泡机B2结束信号");
|
|
|
|
|
ReadGunData(obj_1, "DB50.1460", gunKeys, "B2"); //A2枪数据
|
|
|
|
|
int a = _lastShotRecordServices.AddAsync(gunKeys["B2"]).Result;
|
|
|
|
|
RefreshLastShotDataDelegateEvent?.Invoke(gunKeys["B2"]);
|
|
|
|
|
RefreshGunDataDelegateEvent?.Invoke(gunKeys);
|
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 采集设备系统参数
|
|
|
|
|
/// </summary>
|
|
|
|
@ -242,6 +295,7 @@ namespace Aucma.Core.DoorFoam.Business
|
|
|
|
|
lastShotRecord.SystemStatus = 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
lastShotRecord.StationNumber = "1020";
|
|
|
|
|
|
|
|
|
|
lastShotRecord.ProductLineCode = "CX_02";
|
|
|
|
|
|
|
|
|
|