| | |
| | | using Microsoft.AspNetCore.SignalR; |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; |
| | | using System; |
| | | using WCS.Application.Util; |
| | | //using WCS.Application.Util; |
| | | |
| | | namespace WCS.Application; |
| | |
| | | cts = new CancellationTokenSource(); |
| | | StartRead(); |
| | | ConnectionStatus(); |
| | | StartWatchAlarm(); |
| | | StartWatchPosition(); |
| | | // StartWatchAlarm(); // 隐藏报警监控 |
| | | // StartWatchPosition(); // 隐藏位置监控 |
| | | } |
| | | } |
| | | /// <summary> |
| | |
| | | //循环读设备 |
| | | foreach (var modDevice in listDevice) |
| | | { |
| | | if (modDevice.Text == "一楼主扫") |
| | | { |
| | | Console.WriteLine($"连接...{modPlc.IP}"); |
| | | } |
| | | var (result, value) = modPlcUtil.GetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.PlcPos); |
| | | //if (!result.IsSucceed) |
| | | // Console.WriteLine($"{modPlc.IP}错误{modDevice.DbNumber}.{modDevice.PlcPos}:"+result.Err); |
| | |
| | | { |
| | | //Console.WriteLine($"{modPlc.IP}读取{modDevice.DbNumber}.{modDevice.PlcPos}的值为:{value}"); |
| | | //无流程跳出 |
| | | if (value == 0 )// && modPlc.Type!= PLCTypeEnum.BoxConveyorLine |
| | | if (value == 0 && modPlc.Type != PLCTypeEnum.BoxConveyorLine)// |
| | | continue; |
| | | var dto = modDevice.Adapt<WcsDeviceDto>(); |
| | | dto.Value = value; |
| | |
| | | } |
| | | }); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 发送信息到前端 |
| | | /// </summary> |
| | | /// <param name="modInfo"></param> |
| | | private static void UpdatePosition(PlcPositionInfo modInfo) |
| | | { |
| | | var modTemp = listPositionInfo.FirstOrDefault(s => s.StationNum == modInfo.StationNum && modInfo.Type == s.Type); |