add-包装袋余量监控

dev
liuwf 3 months ago
parent d988bbfbe7
commit 28ba808d9c

@ -69,6 +69,8 @@
<Button Content="代码生成" x:Name="Generate" Command="{Binding FormControlCommand}" CommandParameter="{Binding Name,ElementName=Generate}" Style="{StaticResource BUTTON_AGREE}" Width="100" Height="30" Background="#009999" BorderBrush="#FF36B5C1" Margin="0,0,10,0"/>
<Button Content="参数配置" x:Name="ConfigInfo" Command="{Binding FormControlCommand}" CommandParameter="{Binding Name,ElementName=ConfigInfo}" Style="{StaticResource BUTTON_AGREE}" Width="100" Height="30" Background="#009999" BorderBrush="#FF36B5C1" Margin="0,0,10,0"/>
<Button Content="配方管理" x:Name="RecipeManage" Command="{Binding FormControlCommand}" CommandParameter="{Binding Name,ElementName=RecipeManage}" Style="{StaticResource BUTTON_AGREE}" Width="100" Height="30" Background="#009999" BorderBrush="#FF36B5C1" Margin="0,0,10,0"/>
<Button Content="键 盘" Command="{Binding OpenSystemKeyboardCommand}" Style="{StaticResource BUTTON_AGREE}" Width="100" Height="30" Background="#009999" BorderBrush="#FF36B5C1" Margin="0,0,10,0" />
<Button Content="最小化" x:Name="Minimized" Command="{Binding FormControlCommand}" CommandParameter="{Binding Name,ElementName=Minimized}" Style="{StaticResource BUTTON_AGREE}" Width="100" Height="30" Background="#FF9900" BorderBrush="#FF9900" Margin="0,0,10,0"/>
<Button Content="退 出" x:Name="Exit" Command="{Binding FormControlCommand}" CommandParameter="{Binding Name,ElementName=Exit}" Style="{StaticResource BUTTON_AGREE}" Width="100" Height="30" Background="#FF0033" BorderBrush="#FF0033" Margin="0,0,10,0"/>

@ -15,13 +15,14 @@
</Grid.RowDefinitions>
<Border Grid.Row="0" BorderBrush="White" BorderThickness="0.4" CornerRadius="5" Background="Transparent" Margin="1,1,5,5">
<Grid >
<StackPanel HorizontalAlignment="Right" VerticalAlignment="Center" Orientation="Horizontal" >
<!--<Ellipse x:Name="StatusLight" Width="50" Height="50" Fill="Green"/>
<Label Content="系统运行状态:" Foreground="White" FontSize="40" Margin="0 0 10 0"/>
<TextBox Text="正在进料" Width="200" Foreground="White" FontSize="40"/>-->
<Button x:Name="StartButton" Content="一键启动" FontSize="30" Background="LimeGreen" Width="180" Height="60" Margin="100 0 20 0" Click="StartButton_Click"/>
<Button x:Name="StopButton" Content="一键停止" FontSize="30" Background="OrangeRed" Width="180" Height="60" Margin="0,0,20,0" Click="StopButton_Click"/>
<Button x:Name="StopUrgentButton" Content="急停" FontSize="30" Background="Yellow" Width="150" Height="60" Margin="0,0,0,0" Click="StopUrgentButton_Click"/>
<StackPanel VerticalAlignment="Center" Orientation="Horizontal" >
<TextBlock Text="包装袋余量:" FontSize="25" VerticalAlignment="Center" Width="140" Margin="0,0,20,0" Foreground="White" HorizontalAlignment="Left"/>
<TextBlock x:Name="BagsAmountTxt" Text="0" Width="80" FontSize="25" VerticalAlignment="Center" Margin="0,0,20,0" Foreground="White"/>
<Button x:Name="AmountChangeButton" Style="{StaticResource BUTTON_AGREE}" Content="数量调整" FontSize="30" Background="Blue" Width="180" Height="60" Margin="0 0 20 0" HorizontalAlignment="Left" Click="AmountChangeButton_Click"/>
<Button x:Name="StartButton" Style="{StaticResource BUTTON_AGREE}" Content="一键启动" FontSize="30" Background="LimeGreen" Width="180" Height="60" Margin="180 0 20 0" Click="StartButton_Click"/>
<Button x:Name="StopButton" Style="{StaticResource BUTTON_AGREE}" Content="一键停止" FontSize="30" Background="OrangeRed" Width="180" Height="60" Margin="0,0,20,0" Click="StopButton_Click"/>
<Button x:Name="StopUrgentButton" Style="{StaticResource BUTTON_AGREE}" Content="急停" FontSize="30" Background="#E4B74C" Width="150" Height="60" Margin="0,0,0,0" Click="StopUrgentButton_Click"/>
</StackPanel>
</Grid>
</Border>
@ -156,7 +157,7 @@
<TextBox x:Name="UnpackSet4Txt" Text="0.00" Width="70" Height="35" FontSize="20" VerticalAlignment="Center" Margin="0,0,10,0" Foreground="White"/>
<TextBlock Text="滚筒筛:" FontSize="20" VerticalAlignment="Center" Margin="5,0,5,0" Foreground="White"/>
<TextBox x:Name="UnpackSet5Txt" Text="0.00" Width="70" Height="35" FontSize="20" VerticalAlignment="Center" Margin="0,0,10,0" Foreground="White"/>
<Button x:Name="UnpackSetButton" Content="频率设定(0-50HZ)" FontSize="20" Width="170" Height="40" VerticalAlignment="Center" Margin="0,0,0,0" Background="DeepSkyBlue" Click="UnpackSetButton_Click" />
<Button x:Name="UnpackSetButton" Content="频率设定(0-50HZ)" FontSize="20" Width="170" Height="40" VerticalAlignment="Center" Margin="0,0,0,0" Background="Blue" Click="UnpackSetButton_Click" />
</StackPanel>
<StackPanel Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Top" Orientation="Horizontal" >
@ -265,17 +266,17 @@
</StackPanel>
<!--<StackPanel Grid.Row="7" Grid.Column="0" Orientation="Horizontal" HorizontalAlignment="Left" Margin="50 0 0 0">
<TextBox x:Name="HotSpiralSpeedTxt" Width="70" Height="35" FontSize="20" VerticalAlignment="Center" Margin="30,0,10,0" Foreground="White"/>
<Button x:Name="HotSpiralSpeedSet" Content="烘干机螺旋频率设定" FontSize="20" Width="200" Height="40" VerticalAlignment="Center" Margin="0,0,20,0" Background="DeepSkyBlue" Click="HotSpiralSpeedSet_Click" />
<Button x:Name="HotSpiralSpeedSet" Content="烘干机螺旋频率设定" FontSize="20" Width="200" Height="40" VerticalAlignment="Center" Margin="0,0,20,0" Background="Blue" Click="HotSpiralSpeedSet_Click" />
</StackPanel>-->
<!--<StackPanel Grid.Row="7" Grid.Column="1" Orientation="Horizontal" HorizontalAlignment="Left" Margin="50 0 0 0">
<TextBox x:Name="HotTempTxt" Width="70" Height="35" FontSize="20" VerticalAlignment="Center" Margin="30,0,10,0" Foreground="White"/>
<Button x:Name="HotTempSet" Content="烘干机温度设定" FontSize="20" Width="150" Height="40" VerticalAlignment="Center" Margin="0,0,20,0" Background="DeepSkyBlue" Click="HotTempSet_Click" />
<Button x:Name="HotTempSet" Content="烘干机温度设定" FontSize="20" Width="150" Height="40" VerticalAlignment="Center" Margin="0,0,20,0" Background="Blue" Click="HotTempSet_Click" />
</StackPanel>-->
</Grid>
<StackPanel Grid.Row="2" HorizontalAlignment="Center" VerticalAlignment="Top" Orientation="Horizontal" >
<TextBox x:Name="HotSpiralSpeedTxt" Width="70" Height="35" FontSize="20" VerticalAlignment="Center" Margin="30,0,10,0" Foreground="White"/>
<Button x:Name="HotSpiralSpeedSet" Content="螺旋频率设定" FontSize="20" Width="150" Height="40" VerticalAlignment="Center" Margin="0,0,20,0" Background="DeepSkyBlue" Click="HotSpiralSpeedSet_Click" />
<Button x:Name="HotSpiralSpeedSet" Content="螺旋频率设定" FontSize="20" Width="150" Height="40" VerticalAlignment="Center" Margin="0,0,20,0" Background="Blue" Click="HotSpiralSpeedSet_Click" />
<Button x:Name="StartDryerSpiralButton" Content="螺旋启动" FontSize="20" Background="LimeGreen" Width="120" Height="40" Margin="0 0 20 0" Click="StartDryerSpiralButton_Click"/>
<Button x:Name="StartDryerFanButton" Content="风机启动" FontSize="20" Background="LimeGreen" Width="90" Height="40" Margin="0 0 20 0" Click="StartDryerFanButton_Click"/>
<Button x:Name="StartDryerHotButton" Content="燃烧启动" FontSize="20" Background="LimeGreen" Width="90" Height="40" Margin="0 0 20 0" Click="StartDryerHotButton_Click"/>
@ -396,7 +397,7 @@
<TextBox x:Name="Speed1Txt" Text="0.00" Width="70" Height="35" FontSize="20" VerticalAlignment="Center" Margin="10,0,0,0" Foreground="White"/>
<TextBlock Text="/" FontSize="20" VerticalAlignment="Center" Margin="5,0,5,0" Foreground="White"/>
<TextBox x:Name="Speed2Txt" Text="0.00" Width="70" Height="35" FontSize="20" VerticalAlignment="Center" Margin="0,0,10,0" Foreground="White"/>
<Button x:Name="SpiralSpeed" Content="螺旋1/2频率设定(0-50HZ)" FontSize="20" Width="250" Height="40" VerticalAlignment="Center" Margin="0,0,20,0" Background="DeepSkyBlue" Click="SpiralSpeed_Click" />
<Button x:Name="SpiralSpeed" Content="螺旋1/2频率设定(0-50HZ)" FontSize="20" Width="250" Height="40" VerticalAlignment="Center" Margin="0,0,20,0" Background="Blue" Click="SpiralSpeed_Click" />
<Button x:Name="StartSpiral1Button" Content="螺旋1启动" FontSize="20" Background="LimeGreen" Width="100" Height="40" Margin="30 0 10 0" Click="StartSpiral1Button_Click"/>
<Button x:Name="StartSpiral2Button" Content="螺旋2启动" FontSize="20" Background="LimeGreen" Width="100" Height="40" Margin="0 0 10 0" Click="StartSpiral2Button_Click"/>

@ -73,7 +73,7 @@ namespace SlnMesnac.WPF.Page
UnpackSet3Txt.Text = configInfos.Where(x => x.ConfigKey == "拆包机螺旋1频率设定值").FirstOrDefault().ConfigValue;
UnpackSet4Txt.Text = configInfos.Where(x => x.ConfigKey == "拆包机螺旋2频率设定值").FirstOrDefault().ConfigValue;
UnpackSet5Txt.Text = configInfos.Where(x => x.ConfigKey == "拆包机废袋机频率设定值").FirstOrDefault().ConfigValue;
BagsAmountTxt.Text = configInfos.Where(x => x.ConfigKey == "包装袋余量").FirstOrDefault().ConfigValue;
Speed1Txt.Text = configInfos.Where(x => x.ConfigKey == "螺旋1速度值").FirstOrDefault().ConfigValue;
Speed2Txt.Text = configInfos.Where(x => x.ConfigKey == "螺旋2速度值").FirstOrDefault().ConfigValue;
HotSpiralSpeedTxt.Text = configInfos.Where(x => x.ConfigKey == "烘干机螺旋频率设定值").FirstOrDefault().ConfigValue;
@ -125,6 +125,11 @@ namespace SlnMesnac.WPF.Page
RefreshSpiral();
RefreshHot();
RefreshUnPack();
App.Current.Dispatcher.BeginInvoke((Action)(() =>
{
BagsAmountTxt.Text = _configInfoBusiness.GetConfigInfos().FirstOrDefault(x => x.ConfigKey == "包装袋余量").ConfigValue;
}));
}
else
{
@ -1284,7 +1289,11 @@ namespace SlnMesnac.WPF.Page
}
private void AmountChangeButton_Click(object sender, RoutedEventArgs e)
{
BagsAmountSetWindow window = new BagsAmountSetWindow();
window.ShowDialog();
}
/// <summary>
/// 烘干机温度设定

@ -0,0 +1,17 @@
<UserControl x:Class="SlnMesnac.WPF.Page.RecipeManagePage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:SlnMesnac.WPF.Page"
mc:Ignorable="d"
d:DesignHeight="1080" d:DesignWidth="1920" Background="Transparent">
<Grid >
<TextBlock Text="qqqqqqq" FontSize="50" Foreground="White" />
</Grid>
</UserControl>

@ -0,0 +1,58 @@
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json.Linq;
using SlnMesnac.Business;
using SlnMesnac.Business.@base;
using SlnMesnac.Model.domain;
using SlnMesnac.Plc;
using SlnMesnac.WPF.ViewModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Timers;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using TouchSocket.Core;
namespace SlnMesnac.WPF.Page
{
/// <summary>
/// DevMonitorPage.xaml 的交互逻辑
/// </summary>
public partial class RecipeManagePage : UserControl
{
private BaseBusiness baseBusiness = null;
private readonly ConfigInfoBusiness _configInfoBusiness;
PlcAbsractFactory plc = null;
int MachineSleep = 1000;
private readonly ILogger<DevMonitorPage> _logger;
System.Timers.Timer systemRunTimer = new System.Timers.Timer(1000 * 60);
public RecipeManagePage()
{
_logger = App.ServiceProvider.GetService<ILogger<DevMonitorPage>>();
_configInfoBusiness = App.ServiceProvider.GetService<ConfigInfoBusiness>();
baseBusiness = App.ServiceProvider.GetService<BaseBusiness>();
MachineSleep = Convert.ToInt32(baseBusiness.GetPlcAddressByConfigKey("设备启动间隔"));
plc = baseBusiness.GetPlcByKey("plc");
InitializeComponent();
this.DataContext = new DevMonitorViewModel();
}
}
}

@ -0,0 +1,54 @@
<Window x:Class="SlnMesnac.WPF.Page.BagsAmountSetWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:SlnMesnac.WPF.Page"
mc:Ignorable="d"
Title="数量修改" Height="350" Width="600" WindowStartupLocation="CenterScreen" Topmost="True" Background="Blue">
<Border Margin="5" Background="LightGoldenrodYellow" CornerRadius="10">
<Border.Effect>
<DropShadowEffect Color="LightGoldenrodYellow" ShadowDepth="0" BlurRadius="5" Opacity="0.3" Direction="0"></DropShadowEffect>
</Border.Effect>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="2*"/>
<RowDefinition Height="2*"/>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Text="包装袋余量修改" FontSize="26" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<Border Grid.Row="1" BorderThickness="2" CornerRadius="5" Margin="10">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
<TextBlock Text="数量:" FontSize="25" VerticalAlignment="Center" Width="50" Margin="0,0,20,0" Foreground="Green" HorizontalAlignment="Left"/>
<TextBlock x:Name="BagsAmountTxt" Text="0" Width="80" FontSize="25" VerticalAlignment="Center" Margin="0,0,20,0" Foreground="Green"/>
</StackPanel>
</Border>
<Border Grid.Row="2" BorderThickness="2" CornerRadius="5" Margin="10">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
<Button Style="{StaticResource BUTTON_AGREE}" FontSize="30" Background="LimeGreen" Width="100" Height="50" Margin="0 0 20 0" Click="StartButton_Click" Content="+1" Tag="+1"/>
<Button Style="{StaticResource BUTTON_AGREE}" FontSize="30" Background="LimeGreen" Width="100" Height="50" Margin="0 0 20 0" Click="StartButton_Click" Content="+10" Tag="+10"/>
<Button Style="{StaticResource BUTTON_AGREE}" FontSize="30" Background="LimeGreen" Width="100" Height="50" Margin="0 0 20 0" Click="StartButton_Click" Content="+50" Tag="+50"/>
<Button Style="{StaticResource BUTTON_AGREE}" FontSize="30" Background="LimeGreen" Width="100" Height="50" Margin="0 0 20 0" Click="StartButton_Click" Content="+100" Tag="+100"/>
</StackPanel>
</Border>
<Border Grid.Row="3" BorderThickness="2" CornerRadius="5" Margin="10">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
<Button Style="{StaticResource BUTTON_AGREE}" FontSize="30" Background="#E4B74C" Width="100" Height="50" Margin="0 0 20 0" Click="StartButton_Click" Content="-1" Tag="-1" />
<Button Style="{StaticResource BUTTON_AGREE}" FontSize="30" Background="#E4B74C" Width="100" Height="50" Margin="0 0 20 0" Click="StartButton_Click" Content="-10" Tag="-10" />
<Button Style="{StaticResource BUTTON_AGREE}" FontSize="30" Background="#E4B74C" Width="100" Height="50" Margin="0 0 20 0" Click="StartButton_Click" Content="-50" Tag="-50" />
<Button Style="{StaticResource BUTTON_AGREE}" FontSize="30" Background="#E4B74C" Width="100" Height="50" Margin="0 0 20 0" Click="StartButton_Click" Content="-100" Tag="-100"/>
</StackPanel>
</Border>
<!--<StackPanel Grid.Row="3" Orientation="Horizontal" HorizontalAlignment="Center" Margin="10,0">
<Button Content="确 认" FontSize="16" Style="{StaticResource BUTTON_AGREE}" Width="100" Height="30" Background="#FF36B5C1" BorderBrush="#FF36B5C1" Margin="0,0,10,0" />
<Button Content="取 消" FontSize="16" Style="{StaticResource BUTTON_AGREE}" Width="100" Height="30" Background="Blue" BorderBrush="Blue" Margin="10,0,0,0" />
</StackPanel>-->
</Grid>
</Border>
</Window>

@ -0,0 +1,78 @@
using Microsoft.Extensions.DependencyInjection;
using SlnMesnac.Business;
using SlnMesnac.Model.domain;
using SlnMesnac.WPF.ViewModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace SlnMesnac.WPF.Page
{
/// <summary>
/// SystemAlarmWindow.xaml 的交互逻辑
/// </summary>
public partial class BagsAmountSetWindow : Window
{
private readonly ConfigInfoBusiness _configInfoBusiness;
public BagsAmountSetWindow()
{
InitializeComponent();
_configInfoBusiness = App.ServiceProvider.GetService<ConfigInfoBusiness>();
Init();
}
private void Init()
{
List<BaseConfigInfo> configInfos = _configInfoBusiness.GetConfigInfos();
BagsAmountTxt.Text = configInfos.Where(x => x.ConfigKey == "包装袋余量").FirstOrDefault().ConfigValue;
}
private void StartButton_Click(object sender, RoutedEventArgs e)
{
var button = sender as Button;
if (button != null)
{
// 从按钮的 Tag 属性中获取参数
string tag = button.Tag.ToString();
int amount;
// 尝试将 tag 转换为整数
if (int.TryParse(tag, out amount))
{
UpdateBagsAmount(amount);
}
}
}
private void UpdateBagsAmount(int amount)
{
int total = int.Parse(BagsAmountTxt.Text);
total += amount;
if(total < 0)
{
MessageBox.Show("数量不能小于0");
return;
}
BagsAmountTxt.Text = total.ToString();
BaseConfigInfo configInfos = _configInfoBusiness.GetConfigInfos().FirstOrDefault(x => x.ConfigKey == "包装袋余量");
configInfos.ConfigValue = total.ToString();
_configInfoBusiness.UpdateConfigInfo(configInfos);
}
}
}

@ -48,7 +48,15 @@
</ItemGroup>
<ItemGroup>
<Folder Include="Page\Window\" />
<Compile Update="Page\Window\BagsAmountSetWindow.xaml.cs">
<SubType>Code</SubType>
</Compile>
</ItemGroup>
<ItemGroup>
<Page Update="Page\RecipeManagePage.xaml">
<SubType>Designer</SubType>
</Page>
</ItemGroup>
</Project>

@ -131,7 +131,7 @@
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border Name="bdr" CornerRadius="3" Opacity="1" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="1">
<Border Name="bdr" CornerRadius="5" Opacity="1" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="1">
<!--可使用ContentPresenter代替-->
<!--Foreground的值White可以替换为{TemplateBinding Foreground}-->
<Label VerticalContentAlignment="Center" HorizontalContentAlignment="Center" Foreground="White" Content="{TemplateBinding Content}"/>

@ -11,7 +11,7 @@ using System.Windows;
namespace SlnMesnac.WPF.ViewModel
{
public class MainWindowViewModel: ViewModelBase
public class MainWindowViewModel : ViewModelBase
{
private readonly ILogger<MainWindowViewModel> _logger;
@ -21,6 +21,7 @@ namespace SlnMesnac.WPF.ViewModel
//代码生成
private readonly GenerateControl generateControl = new GenerateControl();
private readonly BaseConfigInfoPage configInfoPage = new BaseConfigInfoPage();
private readonly RecipeManagePage recipeManagePage = new RecipeManagePage();
#region 参数定义
/// <summary>
@ -85,7 +86,7 @@ namespace SlnMesnac.WPF.ViewModel
public MainWindowViewModel()
{
_logger = App.ServiceProvider.GetService<ILogger<MainWindowViewModel>>();
@ -104,7 +105,7 @@ namespace SlnMesnac.WPF.ViewModel
{
try
{
string controlType = obj as string;
switch (controlType)
{
@ -130,9 +131,12 @@ namespace SlnMesnac.WPF.ViewModel
UserContent = generateControl;
break;
case "ConfigInfo":
UserContent = configInfoPage;
break;
case "RecipeManage":
UserContent = recipeManagePage;
break;
// 还原 或者 最大化当前窗口
case "Normal":
if (Application.Current.MainWindow.WindowState == WindowState.Normal)
@ -169,7 +173,7 @@ namespace SlnMesnac.WPF.ViewModel
try
{
string info = obj as string;
UserContent = prodMgmtPage ;
UserContent = prodMgmtPage;
}
catch (Exception ex)
{

@ -170,8 +170,6 @@ namespace SlnMesnac.WPF.ViewModel
public ProdMgmtViewModel()
{
test();
StartProdPlanCommand = new RelayCommand<string>(obj => StartProdPlan(obj));

@ -38,9 +38,9 @@
{
"configId": 1,
"plcType": "SiemensPlc",
"plcIp": "192.168.2.220",
// "plcIp": "127.0.0.1",
"plcPort": 102,
// "plcIp": "192.168.2.220",
"plcIp": "127.0.0.1",
"plcPort": 103,
"plcKey": "plc",
"isFlage": true
},

Loading…
Cancel
Save