diff --git a/Admin.Core.RealTimeService/obj/Debug/net6.0/Admin.Core.RealTimeService.AssemblyInfo.cs b/Admin.Core.RealTimeService/obj/Debug/net6.0/Admin.Core.RealTimeService.AssemblyInfo.cs index d49abd81..18bdc6ae 100644 --- a/Admin.Core.RealTimeService/obj/Debug/net6.0/Admin.Core.RealTimeService.AssemblyInfo.cs +++ b/Admin.Core.RealTimeService/obj/Debug/net6.0/Admin.Core.RealTimeService.AssemblyInfo.cs @@ -14,7 +14,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("Admin.Core.RealTimeService")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+f9d9caac0eee191810018a8da33b8e1237b0f0fb")] [assembly: System.Reflection.AssemblyProductAttribute("Admin.Core.RealTimeService")] [assembly: System.Reflection.AssemblyTitleAttribute("Admin.Core.RealTimeService")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/Admin.Core.RealTimeService/obj/Debug/net6.0/Admin.Core.RealTimeService.AssemblyInfoInputs.cache b/Admin.Core.RealTimeService/obj/Debug/net6.0/Admin.Core.RealTimeService.AssemblyInfoInputs.cache index d77b8cba..2d9cb893 100644 --- a/Admin.Core.RealTimeService/obj/Debug/net6.0/Admin.Core.RealTimeService.AssemblyInfoInputs.cache +++ b/Admin.Core.RealTimeService/obj/Debug/net6.0/Admin.Core.RealTimeService.AssemblyInfoInputs.cache @@ -1 +1 @@ -0868e6bde5b49a65a126b91d794e990427a11761 +eadcc1228f6056a0472f8d77385e47a79ee23c2d78d9df09d62b6ffbc0733c9f diff --git a/Admin.Core.RealTimeService/obj/Debug/net6.0/Admin.Core.RealTimeService.GeneratedMSBuildEditorConfig.editorconfig b/Admin.Core.RealTimeService/obj/Debug/net6.0/Admin.Core.RealTimeService.GeneratedMSBuildEditorConfig.editorconfig index 19085d53..8f33dc40 100644 --- a/Admin.Core.RealTimeService/obj/Debug/net6.0/Admin.Core.RealTimeService.GeneratedMSBuildEditorConfig.editorconfig +++ b/Admin.Core.RealTimeService/obj/Debug/net6.0/Admin.Core.RealTimeService.GeneratedMSBuildEditorConfig.editorconfig @@ -8,4 +8,6 @@ build_property.PlatformNeutralAssembly = build_property.EnforceExtendedAnalyzerRules = build_property._SupportedPlatformList = Linux,macOS,Windows build_property.RootNamespace = Admin.Core.RealTimeService -build_property.ProjectDir = E:\c#\AUCMA\最新代码整合\new\Admin.Core.RealTimeService\ +build_property.ProjectDir = D:\Project\gitea\AUCMA\SCADA\Admin.Core.RealTimeService\ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = diff --git a/Aucma.Core.BoxFoam/Aucma.Core.BoxFoam.csproj b/Aucma.Core.BoxFoam/Aucma.Core.BoxFoam.csproj index a4a39d03..183d30c5 100644 --- a/Aucma.Core.BoxFoam/Aucma.Core.BoxFoam.csproj +++ b/Aucma.Core.BoxFoam/Aucma.Core.BoxFoam.csproj @@ -74,6 +74,7 @@ <ItemGroup> <ProjectReference Include="..\Admin.Core.Extensions\Admin.Core.Extensions.csproj" /> + <ProjectReference Include="..\Aucma.Core.DataCollector\Aucma.Core.DataCollector.csproj" /> </ItemGroup> <ItemGroup> diff --git a/Aucma.Core.BoxFoam/Business/InStoreBusiness.cs b/Aucma.Core.BoxFoam/Business/InStoreBusiness.cs index 234657b4..bb5b0b99 100644 --- a/Aucma.Core.BoxFoam/Business/InStoreBusiness.cs +++ b/Aucma.Core.BoxFoam/Business/InStoreBusiness.cs @@ -19,6 +19,8 @@ using Admin.Core.Model.Model_New; using static ICSharpCode.SharpZipLib.Zip.ExtendedUnixData; using Microsoft.IdentityModel.Logging; using Admin.Core.Socket; +using Admin.Core.Service; +using TouchSocket.Core; namespace Aucma.Core.BoxFoam.Business { @@ -218,6 +220,7 @@ namespace Aucma.Core.BoxFoam.Business { flag = false; var obj = PlcHelper.siemensList.FirstOrDefault(d => d.EquipName.Equals("PqPlc")); + var foamLine1 = PlcHelper.siemensList.FirstOrDefault(d => d.EquipName.Equals("foamLine1Plc"));//发泡线1 if (obj != null) { if (obj.plc.IsConnected) @@ -230,26 +233,119 @@ namespace Aucma.Core.BoxFoam.Business case "PB01_001": item.SpaceStock= obj.plc.ReadInt16("DB200.440"); item.OnRouteAmount = item.SpaceStock-obj.plc.ReadInt16("DB200.88"); + if (foamLine1 != null) + { + if (foamLine1.plc.IsConnected) + { + item.MaterialType = obj.plc.ReadString("DB400.16.0"); + if (!string.IsNullOrEmpty(item.MaterialType)) + { + var printBarCode001 = _printBarCodeServices.FirstAsync(d => d.MaterialCode == item.MaterialType).Result; + if (printBarCode001 != null) + { + item.typeNameA = printBarCode001.MaterialName; + } + } + } + } break; case "PB01_002": item.SpaceStock = obj.plc.ReadInt16("DB200.442"); item.OnRouteAmount = item.SpaceStock - obj.plc.ReadInt16("DB200.90"); + + if (foamLine1 != null) + { + if (foamLine1.plc.IsConnected) + { + item.MaterialType = obj.plc.ReadString("DB400.28.0"); + if (!string.IsNullOrEmpty(item.MaterialType)) + { + var printBarCode002 = _printBarCodeServices.FirstAsync(d => d.MaterialCode == item.MaterialType).Result; + if (printBarCode002 != null) + { + item.typeNameA = printBarCode002.MaterialName; + } + } + } + } break; case "PB01_003": item.SpaceStock = obj.plc.ReadInt16("DB200.444"); item.OnRouteAmount = item.SpaceStock - obj.plc.ReadInt16("DB200.92"); + + if (foamLine1 != null) + { + if (foamLine1.plc.IsConnected) + { + item.MaterialType = obj.plc.ReadString("DB400.40.0"); + if (!string.IsNullOrEmpty(item.MaterialType)) + { + var printBarCode003 = _printBarCodeServices.FirstAsync(d => d.MaterialCode == item.MaterialType).Result; + if (printBarCode003 != null) + { + item.typeNameA = printBarCode003.MaterialName; + } + } + } + } + break; case "PB01_004": item.SpaceStock = obj.plc.ReadInt16("DB200.446"); item.OnRouteAmount = item.SpaceStock - obj.plc.ReadInt16("DB200.94"); + if (foamLine1 != null) + { + if (foamLine1.plc.IsConnected) + { + item.MaterialType = obj.plc.ReadString("DB400.28.0"); + if (!string.IsNullOrEmpty(item.MaterialType)) + { + var printBarCode004 = _printBarCodeServices.FirstAsync(d => d.MaterialCode == item.MaterialType).Result; + if (printBarCode004 != null) + { + item.typeNameA = printBarCode004.MaterialName; + } + } + } + } break; case "PB01_005": item.SpaceStock = obj.plc.ReadInt16("DB200.448"); item.OnRouteAmount = item.SpaceStock - obj.plc.ReadInt16("DB200.96"); + if (foamLine1 != null) + { + if (foamLine1.plc.IsConnected) + { + item.MaterialType = obj.plc.ReadString("DB400.52.0"); + if (!string.IsNullOrEmpty(item.MaterialType)) + { + var printBarCode005 = _printBarCodeServices.FirstAsync(d => d.MaterialCode == item.MaterialType).Result; + if (printBarCode005 != null) + { + item.typeNameA = printBarCode005.MaterialName; + } + } + } + } break; case "PB01_006": item.SpaceStock = obj.plc.ReadInt16("DB200.450"); item.OnRouteAmount = item.SpaceStock - obj.plc.ReadInt16("DB200.98"); + item.MaterialType = obj.plc.ReadString("DB400.64.0"); + if (foamLine1 != null) + { + if (foamLine1.plc.IsConnected) + { + if (!string.IsNullOrEmpty(item.MaterialType)) + { + var printBarCode006 = _printBarCodeServices.FirstAsync(d => d.MaterialCode == item.MaterialType).Result; + if (printBarCode006 != null) + { + item.typeNameA = printBarCode006.MaterialName; + } + } + } + } break; default: break; @@ -264,11 +360,11 @@ namespace Aucma.Core.BoxFoam.Business } } } - Thread.Sleep(1000); + Thread.Sleep(3000); } catch (Exception ex) { - Console.WriteLine($"异常:{ex.Message}"); + Console.WriteLine($"更新泡前库库库存,类型异常:{ex.Message}"); } finally { flag = true; } } diff --git a/Aucma.Core.BoxFoam/Startup.cs b/Aucma.Core.BoxFoam/Startup.cs index f0e51902..1ca618fc 100644 --- a/Aucma.Core.BoxFoam/Startup.cs +++ b/Aucma.Core.BoxFoam/Startup.cs @@ -17,6 +17,7 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using System.Net.Sockets; using System.Text; +using Aucma.Core.DataCollector; namespace Aucma.Core.BoxFoam { @@ -106,6 +107,7 @@ namespace Aucma.Core.BoxFoam app.UsePlcMildd(runPlcService); //����ɨ����� app.UseTouchSocketMildd(socket); + app.UseDataCollectorExtensions(); } #region ע����� diff --git a/Aucma.Core.BoxFoam/Views/UserPage/BeforeFoamingPageView.xaml b/Aucma.Core.BoxFoam/Views/UserPage/BeforeFoamingPageView.xaml index 49b99386..3d761ddd 100644 --- a/Aucma.Core.BoxFoam/Views/UserPage/BeforeFoamingPageView.xaml +++ b/Aucma.Core.BoxFoam/Views/UserPage/BeforeFoamingPageView.xaml @@ -157,22 +157,24 @@ <ColumnDefinition Width="5*"/> </Grid.ColumnDefinitions> <Border Grid.Column="0" Grid.Row="0" BorderBrush="White" BorderThickness="1" > - <TextBlock Text="型号1" FontSize="18" Foreground="White" VerticalAlignment="Center" HorizontalAlignment="Center"/> + <TextBlock Text="型号" FontSize="18" Foreground="White" VerticalAlignment="Center" HorizontalAlignment="Center"/> </Border> <Border Grid.Column="1" Grid.Row="0" BorderBrush="White" BorderThickness="1"> - <Button Command="{Binding DataContext.SubmitCommand, RelativeSource={RelativeSource AncestorType=ItemsControl}}" CommandParameter="{Binding Text, ElementName=spaceCodeText}" Background="Transparent" Height="auto"> + <TextBlock Text="{Binding materialType}" FontSize="16" Foreground="White" VerticalAlignment="Center" HorizontalAlignment="Center" /> + <!--<Button Command="{Binding DataContext.SubmitCommand, RelativeSource={RelativeSource AncestorType=ItemsControl}}" CommandParameter="{Binding Text, ElementName=spaceCodeText}" Background="Transparent" Height="auto"> <TextBlock Text="{Binding materialType}" FontSize="16" Foreground="White" VerticalAlignment="Center" HorizontalAlignment="Center" /> - </Button> + </Button>--> </Border> <Border Grid.Column="2" Grid.Row="0" BorderBrush="White" BorderThickness="1" > <TextBlock Text="名称" FontSize="18" Foreground="White" VerticalAlignment="Center" HorizontalAlignment="Center"/> </Border> <Border Grid.Column="3" Grid.Row="0" BorderBrush="White" BorderThickness="1"> - <Button Command="{Binding DataContext.SubmitCommand, RelativeSource={RelativeSource AncestorType=ItemsControl}}" CommandParameter="{Binding Text, ElementName=spaceCodeText}" Background="Transparent" Height="auto"> + <TextBlock Text="{Binding typeNameA}" FontSize="16" Foreground="White" VerticalAlignment="Center" HorizontalAlignment="Center" /> + <!--<Button Command="{Binding DataContext.SubmitCommand, RelativeSource={RelativeSource AncestorType=ItemsControl}}" CommandParameter="{Binding Text, ElementName=spaceCodeText}" Background="Transparent" Height="auto"> <TextBlock Text="{Binding typeNameA}" FontSize="16" Foreground="White" VerticalAlignment="Center" HorizontalAlignment="Center" /> - </Button> + </Button>--> </Border> - <Border Grid.Column="0" Grid.Row="1" BorderBrush="White" BorderThickness="1" > + <!--<Border Grid.Column="0" Grid.Row="1" BorderBrush="White" BorderThickness="1" > <TextBlock Text="型号2" FontSize="18" Foreground="White" VerticalAlignment="Center" HorizontalAlignment="Center"/> </Border> <Border Grid.Column="1" Grid.Row="1" BorderBrush="White" BorderThickness="1"> @@ -203,7 +205,7 @@ <Button Command="{Binding DataContext.SubmitCommand3, RelativeSource={RelativeSource AncestorType=ItemsControl}}" CommandParameter="{Binding Text, ElementName=spaceCodeText}" Background="Transparent" Height="auto"> <TextBlock Text="{Binding typeNameC}" FontSize="16" Foreground="White" VerticalAlignment="Center" HorizontalAlignment="Center" /> </Button> - </Border> + </Border>--> </Grid> </Border> diff --git a/Aucma.Core.BoxFoam/appsettings.json b/Aucma.Core.BoxFoam/appsettings.json index 91888a12..bb3b5b66 100644 --- a/Aucma.Core.BoxFoam/appsettings.json +++ b/Aucma.Core.BoxFoam/appsettings.json @@ -217,7 +217,7 @@ "EquipName": "foamLine1Plc", "PlcType": "Siemens", "Enabled": true, - "IP":"10.10.93.21", + "IP": "10.10.93.21", "Port": 102 }, { @@ -225,7 +225,7 @@ "EquipName": "foamLine2Plc", "PlcType": "Siemens", "Enabled": true, - "IP":"10.10.93.1", + "IP": "10.10.93.1", "Port": 102 }, { @@ -245,6 +245,9 @@ "BeforeStoreCode": "PQK-001", "ProductlineCode": "CX_02" }, + "StationInfo": { + "StationCode": "1005" + }, "IpRateLimiting": { "EnableEndpointRateLimiting": false, //False: globally executed, true: executed for each "StackBlockedRequests": false, //False: Number of rejections should be recorded on another counter diff --git a/Aucma.Core.DataCollector/DataCollectorSetup.cs b/Aucma.Core.DataCollector/DataCollectorSetup.cs index 0b978baa..71633b3b 100644 --- a/Aucma.Core.DataCollector/DataCollectorSetup.cs +++ b/Aucma.Core.DataCollector/DataCollectorSetup.cs @@ -47,12 +47,29 @@ namespace Aucma.Core.DataCollector Parallel.Invoke(() => collector.CollectDeviceAlarmInfo(out var alarmInfos), () => collector.CollectDeviceElectricity(out var electricity)); }); } - else if (stationCode == "1005")//泡前库、发泡线、发泡机 + + else if (stationCode == "1005")//箱体发泡、发泡线、发泡机、异常数据采集 { + Console.WriteLine("开始执行异常数据采集"); + //发泡机 Task.Run(() => { DataCollectorFactory collector = new BoxFoamFactory(_deviceParamServices, _deviceAlarmInfoServices, _deviceElectricityServices); + Parallel.Invoke(() => collector.CollectDeviceAlarmInfo(out var alarmInfos), () => collector.CollectDeviceElectricity(out var electricity)); + }); + //发泡线1 + Task.Run(() => + { + DataCollectorFactory collector = new BoxFoamFixture1Factory(_deviceParamServices, _deviceAlarmInfoServices, _deviceElectricityServices); + + Parallel.Invoke(() => collector.CollectDeviceAlarmInfo(out var alarmInfos), () => collector.CollectDeviceElectricity(out var electricity)); + }); + //发泡线2 + Task.Run(() => + { + DataCollectorFactory collector = new BoxFoamFixture2Factory(_deviceParamServices, _deviceAlarmInfoServices, _deviceElectricityServices); + Parallel.Invoke(() => collector.CollectDeviceAlarmInfo(out var alarmInfos), () => collector.CollectDeviceElectricity(out var electricity)); }); } @@ -119,8 +136,19 @@ namespace Aucma.Core.DataCollector Parallel.Invoke(() => collector.CollectDeviceAlarmInfo(out var alarmInfos), () => collector.CollectDeviceElectricity(out var electricity)); }); } + else if (stationCode == "1012")//门体发泡 + { + Console.WriteLine("开始执行异常数据采集"); + Task.Run(() => + { + DataCollectorFactory collector = new DoorFoamFactory(_deviceParamServices, _deviceAlarmInfoServices, _deviceElectricityServices); + + Parallel.Invoke(() => collector.CollectDeviceAlarmInfo(out var alarmInfos), () => collector.CollectDeviceElectricity(out var electricity)); + }); + } + } - catch(Exception ex) + catch (Exception ex) { _logger.Error($"UseDataCollectorExtensions逻辑执行异常:{ex.Message}"); } diff --git a/Aucma.Core.DataCollector/Factory/BoxFoamFactory.cs b/Aucma.Core.DataCollector/Factory/BoxFoamFactory.cs index 302ce3bd..91aca415 100644 --- a/Aucma.Core.DataCollector/Factory/BoxFoamFactory.cs +++ b/Aucma.Core.DataCollector/Factory/BoxFoamFactory.cs @@ -15,7 +15,7 @@ namespace Aucma.Core.DataCollector.Factory /// </summary> public class BoxFoamFactory : DataCollectorFactory { - private PlcModel _plc = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("Test")); + private PlcModel _plc = PlcHelper.siemensList.FirstOrDefault(d => d.EquipName.Equals("foamMachinePlc")); public BoxFoamFactory(IBaseDeviceParamServices deviceParamServices, IRecordDeviceAlarmInfoServices deviceAlarmInfoServices, IRecordDeviceElectricityServices deviceElectricityServices) : base(deviceParamServices, deviceAlarmInfoServices, deviceElectricityServices) { @@ -37,7 +37,7 @@ namespace Aucma.Core.DataCollector.Factory Console.WriteLine($"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}采集设备报警信息"); var plc = _plc.plc; - var deviceParams = base._deviceParamServices.Query(x => x.DeviceCode == "E00009"); + var deviceParams = base._deviceParamServices.Query(x => x.DeviceCode == "E00015"); if (deviceParams != null) { @@ -73,7 +73,7 @@ namespace Aucma.Core.DataCollector.Factory else { Task.Delay(base.AlarmReadTimer).Wait(); - _plc = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("Test")); + _plc = PlcHelper.siemensList.FirstOrDefault(d => d.EquipName.Equals("Test")); } } catch (Exception ex) diff --git a/Aucma.Core.DataCollector/Factory/BoxFoamFixture1Factory.cs b/Aucma.Core.DataCollector/Factory/BoxFoamFixture1Factory.cs new file mode 100644 index 00000000..ffdab8d9 --- /dev/null +++ b/Aucma.Core.DataCollector/Factory/BoxFoamFixture1Factory.cs @@ -0,0 +1,91 @@ +using Admin.Core.IService.IService_New; +using Admin.Core.Model.Model_New; +using Aucma.Core.HwPLc; +using log4net; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Aucma.Core.DataCollector.Factory +{ + /// <summary> + /// 夹具数据采集 + /// </summary> + public class BoxFoamFixture1Factory : DataCollectorFactory + { + private PlcModel _plc = PlcHelper.siemensList.FirstOrDefault(d => d.EquipName.Equals("foamLine1Plc")); + + public BoxFoamFixture1Factory(IBaseDeviceParamServices deviceParamServices, IRecordDeviceAlarmInfoServices deviceAlarmInfoServices, IRecordDeviceElectricityServices deviceElectricityServices) : base(deviceParamServices, deviceAlarmInfoServices, deviceElectricityServices) + { + } + + /// <summary> + /// 采集泡前库、发泡线、发泡机、泡后库设备报警信息 + /// </summary> + /// <param name="deviceAlarmInfos"></param> + public override void CollectDeviceAlarmInfo(out List<Record_DeviceAlarmInfo> deviceAlarmInfos) + { + while (true) + { + try + { + + if (_plc != null) + { + Console.WriteLine($"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}采集发泡线1设备报警信息"); + var plc = _plc.plc; + + var deviceParams = base._deviceParamServices.Query(x => x.DeviceCode == "E00013"); + + if (deviceParams != null) + { + deviceAlarmInfos = new List<Record_DeviceAlarmInfo>(); + string batchId = System.Guid.NewGuid().ToString("N"); + foreach (var item in deviceParams) + { + base.ReadParamValueByPlc(plc, item.ParamAddress, item.ParamType, out int paramValue); + + if (paramValue != 0) + { + deviceAlarmInfos.Add(new Record_DeviceAlarmInfo() + { + BatchId = batchId, + DeviceCode = item.DeviceCode, + DeviceType = "1", + ParamCode = item.ParamCode, + ParamValue = paramValue.ToString(), + AlarmInfo = item.ParamName, + AlarmTime = DateTime.Now, + CreadtedTime = DateTime.Now, + }); + } + + } + if (deviceAlarmInfos.Count > 0) + { + base._deviceAlarmInfoServices.AddAsync(deviceAlarmInfos); + } + } + Task.Delay(base.AlarmReadTimer).Wait(); + } + else + { + Task.Delay(base.AlarmReadTimer).Wait(); + _plc = PlcHelper.siemensList.FirstOrDefault(d => d.EquipName.Equals("foamLine1Plc")); + } + } + catch (Exception ex) + { + base._logger.Error($"采集泡前库、发泡线、发泡机、泡后库设备报警信息:{ex.Message}"); + } + } + } + + public override void CollectDeviceElectricity(out List<Record_DeviceElectricity> deviceElectricitys) + { + throw new NotImplementedException(); + } + } +} diff --git a/Aucma.Core.DataCollector/Factory/BoxFoamFixture2Factory.cs b/Aucma.Core.DataCollector/Factory/BoxFoamFixture2Factory.cs new file mode 100644 index 00000000..025cc0e3 --- /dev/null +++ b/Aucma.Core.DataCollector/Factory/BoxFoamFixture2Factory.cs @@ -0,0 +1,91 @@ +using Admin.Core.IService.IService_New; +using Admin.Core.Model.Model_New; +using Aucma.Core.HwPLc; +using log4net; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Aucma.Core.DataCollector.Factory +{ + /// <summary> + /// 夹具数据采集 + /// </summary> + public class BoxFoamFixture2Factory : DataCollectorFactory + { + private PlcModel _plc = PlcHelper.siemensList.FirstOrDefault(d => d.EquipName.Equals("foamLine2Plc")); + + public BoxFoamFixture2Factory(IBaseDeviceParamServices deviceParamServices, IRecordDeviceAlarmInfoServices deviceAlarmInfoServices, IRecordDeviceElectricityServices deviceElectricityServices) : base(deviceParamServices, deviceAlarmInfoServices, deviceElectricityServices) + { + } + + /// <summary> + /// 采集泡前库、发泡线、发泡机、泡后库设备报警信息 + /// </summary> + /// <param name="deviceAlarmInfos"></param> + public override void CollectDeviceAlarmInfo(out List<Record_DeviceAlarmInfo> deviceAlarmInfos) + { + while (true) + { + try + { + + if (_plc != null) + { + Console.WriteLine($"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}采集发泡线2设备报警信息"); + var plc = _plc.plc; + + var deviceParams = base._deviceParamServices.Query(x => x.DeviceCode == "E00014"); + + if (deviceParams != null) + { + deviceAlarmInfos = new List<Record_DeviceAlarmInfo>(); + string batchId = System.Guid.NewGuid().ToString("N"); + foreach (var item in deviceParams) + { + base.ReadParamValueByPlc(plc, item.ParamAddress, item.ParamType, out int paramValue); + + if (paramValue != 0) + { + deviceAlarmInfos.Add(new Record_DeviceAlarmInfo() + { + BatchId = batchId, + DeviceCode = item.DeviceCode, + DeviceType = "1", + ParamCode = item.ParamCode, + ParamValue = paramValue.ToString(), + AlarmInfo = item.ParamName, + AlarmTime = DateTime.Now, + CreadtedTime = DateTime.Now, + }); + } + + } + if (deviceAlarmInfos.Count > 0) + { + base._deviceAlarmInfoServices.AddAsync(deviceAlarmInfos); + } + } + Task.Delay(base.AlarmReadTimer).Wait(); + } + else + { + Task.Delay(base.AlarmReadTimer).Wait(); + _plc = PlcHelper.siemensList.FirstOrDefault(d => d.EquipName.Equals("foamLine2Plc")); + } + } + catch (Exception ex) + { + base._logger.Error($"采集泡前库、发泡线、发泡机、泡后库设备报警信息:{ex.Message}"); + } + } + } + + public override void CollectDeviceElectricity(out List<Record_DeviceElectricity> deviceElectricitys) + { + throw new NotImplementedException(); + } + } +} diff --git a/Aucma.Core.DataCollector/Factory/DoorFoamFactory.cs b/Aucma.Core.DataCollector/Factory/DoorFoamFactory.cs index 1e2d6c54..0b692c3e 100644 --- a/Aucma.Core.DataCollector/Factory/DoorFoamFactory.cs +++ b/Aucma.Core.DataCollector/Factory/DoorFoamFactory.cs @@ -2,6 +2,7 @@ using Admin.Core.Model.Model_New; using Aucma.Core.HwPLc; using log4net; +using StackExchange.Profiling.Internal; using System; using System.Collections.Generic; using System.Linq; @@ -11,11 +12,11 @@ using System.Threading.Tasks; namespace Aucma.Core.DataCollector.Factory { /// <summary> - /// 箱体发泡数据采集 + /// 门体发泡数据采集 /// </summary> public class DoorFoamFactory : DataCollectorFactory { - private PlcModel _plc = PlcHelper.siemensList.FirstOrDefault(d => d.EquipName.Equals("Test")); + private PlcModel _plc = PlcHelper.siemensList.FirstOrDefault(d => d.EquipName.Equals("FoamPlc")); public DoorFoamFactory(IBaseDeviceParamServices deviceParamServices, IRecordDeviceAlarmInfoServices deviceAlarmInfoServices, IRecordDeviceElectricityServices deviceElectricityServices) : base(deviceParamServices, deviceAlarmInfoServices, deviceElectricityServices) { @@ -31,13 +32,14 @@ namespace Aucma.Core.DataCollector.Factory { try { - + Console.WriteLine($"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}获取PLC:{_plc.ToJson()}"); if (_plc != null) { + Console.WriteLine($"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}获取PLC状态:{_plc.IsConnect}"); Console.WriteLine($"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}采集设备报警信息"); var plc = _plc.plc; - var deviceParams = base._deviceParamServices.Query(x => x.DeviceCode == "E00009"); + var deviceParams = base._deviceParamServices.Query(x => x.DeviceCode == "E00026"); if (deviceParams != null) { @@ -73,12 +75,13 @@ namespace Aucma.Core.DataCollector.Factory else { Task.Delay(base.AlarmReadTimer).Wait(); - _plc = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("Test")); + _plc = PlcHelper.siemensList.FirstOrDefault(d => d.EquipName.Equals("FoamPlc")); } } catch (Exception ex) { - base._logger.Error($"采集泡前库、发泡线、发泡机、泡后库设备报警信息:{ex.Message}"); + Console.WriteLine($"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}采集泡前库、发泡线、发泡机、泡后库设备报警信息:{ex.Message}"); + base._logger.Error($"采集泡前库、发泡线、发泡机、泡后库设备报警信息:{ex.Message}"); } } } diff --git a/Aucma.Core.DoorFoam/Aucma.Core.DoorFoam.csproj b/Aucma.Core.DoorFoam/Aucma.Core.DoorFoam.csproj index 86a4431d..79330efd 100644 --- a/Aucma.Core.DoorFoam/Aucma.Core.DoorFoam.csproj +++ b/Aucma.Core.DoorFoam/Aucma.Core.DoorFoam.csproj @@ -75,6 +75,7 @@ <ItemGroup> <ProjectReference Include="..\Admin.Core.Extensions\Admin.Core.Extensions.csproj" /> + <ProjectReference Include="..\Aucma.Core.DataCollector\Aucma.Core.DataCollector.csproj" /> </ItemGroup> <ItemGroup> diff --git a/Aucma.Core.DoorFoam/Startup.cs b/Aucma.Core.DoorFoam/Startup.cs index d32e6078..00aaf4a7 100644 --- a/Aucma.Core.DoorFoam/Startup.cs +++ b/Aucma.Core.DoorFoam/Startup.cs @@ -17,6 +17,7 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using System.Net.Sockets; using System.Text; +using Aucma.Core.DataCollector; namespace Aucma.Core.DoorFoam { @@ -94,8 +95,10 @@ namespace Aucma.Core.DoorFoam app.UseStaticFiles(); //PLC app.UsePlcMildd(runPlcService); - // + //ɨ����socket ͨѶ app.UseTouchSocketMildd(socket); + //�����쳣���ݲɼ� + app.UseDataCollectorExtensions(); } #region ע����� diff --git a/Aucma.Core.PrintTo/Views/LoginPageView.xaml b/Aucma.Core.PrintTo/Views/LoginPageView.xaml index 6c505b5c..1b35264f 100644 --- a/Aucma.Core.PrintTo/Views/LoginPageView.xaml +++ b/Aucma.Core.PrintTo/Views/LoginPageView.xaml @@ -6,11 +6,13 @@ xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" xmlns:local="clr-namespace:Aucma.Core.PrintTo.Views" mc:Ignorable="d" - Title="登录" - FontFamily="Microsoft YaHei" + Title="登录" + x:Name="MainWindow" + FontFamily="Microsoft YaHei" WindowStartupLocation="CenterScreen" - WindowStyle="ToolWindow" WindowState="Normal" ResizeMode="NoResize" - Height="600" Width="800"> + WindowState="Maximized" d:DesignWidth="1200" d:DesignHeight="900" + + WindowStyle="ToolWindow" ResizeMode="NoResize"> <Window.Background> <ImageBrush ImageSource="/Assets/Images/login-background.png" /> </Window.Background> @@ -18,46 +20,23 @@ <Border.Effect> <DropShadowEffect Color="Gray" ShadowDepth="0" BlurRadius="5" Opacity="0.3" Direction="0"></DropShadowEffect> </Border.Effect> - <Canvas> - <StackPanel > - <Image Source="/Assets/Images/Newlog.png" Width="100" /> - </StackPanel> - <materialDesign:Card Background="#fff" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="200 100" - UniformCornerRadius="15" Width="400" Height="300" Opacity="0.9" - > - <materialDesign:DialogHost CloseOnClickAway="True" x:Name="DialogHost" > - <StackPanel> - - <TextBox Margin="0 50 0 0" - x:Name="txtUserName" - Width="300" - FontSize="12" - materialDesign:HintAssist.Hint="账号" - BorderThickness="1" - BorderBrush="{StaticResource MaterialDesignDivider}" - Style="{StaticResource MaterialDesignOutlinedTextBox}" - > - </TextBox> - <PasswordBox - Margin="0 10 0 0" - x:Name="txtPassword" - Width="300" - FontSize="12" - materialDesign:HintAssist.Hint="密码" - BorderThickness="1" - BorderBrush="{StaticResource MaterialDesignDivider}" - Style="{StaticResource MaterialDesignOutlinedPasswordBox}" - ></PasswordBox> - <Button Margin="0 20 0 0" - x:Name="loginBtn" - Style="{StaticResource MaterialDesignFlatMidBgButton}" - Width="300" - Height="53" - materialDesign:ButtonAssist.CornerRadius="10" - Content="登录"/> - </StackPanel> - </materialDesign:DialogHost> - </materialDesign:Card> + <Canvas x:Name="canvas"> + <Grid> + <Grid.RowDefinitions> + <RowDefinition/> + <RowDefinition/> + <RowDefinition/> + </Grid.RowDefinitions> + <UniformGrid Rows="0"> + + </UniformGrid> + <UniformGrid Rows="0"> + + </UniformGrid> + <UniformGrid Rows="0"> + + </UniformGrid> + </Grid> </Canvas> </Border> </Window>