|
|
|
@ -1,5 +1,6 @@
|
|
|
|
|
using HslCommunication.Profinet.Siemens;
|
|
|
|
|
using Microsoft.Extensions.Logging;
|
|
|
|
|
using NewLife.Log;
|
|
|
|
|
using SqlSugar;
|
|
|
|
|
using SynPlc.Entity;
|
|
|
|
|
|
|
|
|
@ -23,45 +24,65 @@ public class Worker : BackgroundService
|
|
|
|
|
{
|
|
|
|
|
while (!stoppingToken.IsCancellationRequested)
|
|
|
|
|
{
|
|
|
|
|
var list = DB.Queryable<EEquipmentStateEntity>().ToList();
|
|
|
|
|
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
SynPlcFromDb(stoppingToken);
|
|
|
|
|
}
|
|
|
|
|
catch (Exception e)
|
|
|
|
|
{
|
|
|
|
|
XTrace.WriteException(e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now);
|
|
|
|
|
|
|
|
|
|
await Task.Delay(1000, stoppingToken);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private async Task SynPlcFromDb(CancellationToken stoppingToken)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
var list = await DB.Queryable<EEquipmentStateEntity>().ToListAsync(stoppingToken);
|
|
|
|
|
foreach(var e in list)
|
|
|
|
|
{
|
|
|
|
|
var a = S7.ReadBool(e.Point);
|
|
|
|
|
var a = await S7.ReadBoolAsync(e.Point);
|
|
|
|
|
if (a.IsSuccess)
|
|
|
|
|
{
|
|
|
|
|
e.UpdateTime = DateTime.Now;
|
|
|
|
|
e.PValue = a.Content;
|
|
|
|
|
DB.Updateable(e).UpdateColumns(x => new { x.UpdateTime, x.PValue }).ExecuteCommand();
|
|
|
|
|
await DB.Updateable(e).UpdateColumns(x => new { x.UpdateTime, x.PValue }).ExecuteCommandAsync(stoppingToken);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
_logger.LogInformation("¶Áȡʧ°Ü£¡");
|
|
|
|
|
XTrace.WriteLine("{0} 读取异常",e.Point );
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var listp = DB.Queryable<EPointsInfoEntity>().ToList();
|
|
|
|
|
var listp = await DB.Queryable<EPointsInfoEntity>().ToListAsync(stoppingToken);
|
|
|
|
|
EPointDataEntity listd = new EPointDataEntity();
|
|
|
|
|
foreach (var e in listp)
|
|
|
|
|
{
|
|
|
|
|
var a = S7.ReadDouble(e.Point);
|
|
|
|
|
var a = await S7.ReadDoubleAsync(e.Point);
|
|
|
|
|
if (a.IsSuccess)
|
|
|
|
|
{
|
|
|
|
|
listd.ID = Guid.NewGuid().ToString();
|
|
|
|
|
listd.PID = e.ID;
|
|
|
|
|
listd.CreateTime = DateTime.Now;
|
|
|
|
|
listd.Data = a.Content.ToDecimal();
|
|
|
|
|
DB.Insertable(listd).ExecuteCommand();
|
|
|
|
|
await DB.Insertable(listd).ExecuteCommandAsync(stoppingToken);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
_logger.LogInformation("¶Áȡʧ°Ü£¡");
|
|
|
|
|
XTrace.WriteLine("{0} 读取异常",e.Point );
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now);
|
|
|
|
|
|
|
|
|
|
await Task.Delay(1000, stoppingToken);
|
|
|
|
|
}
|
|
|
|
|
catch (Exception e)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine(e);
|
|
|
|
|
throw;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|