SynPlcFromDb

master
杨威 7 months ago
parent a4fc7b8f5c
commit 96ae189a2b

@ -1,6 +1,5 @@
using NewLife.Extensions.Hosting.AgentService;
using NewLife.Log;
using SqlSugar;
using SynPlc;
// 授权示例 Authorization example

@ -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;
}
}
}
Loading…
Cancel
Save