瀏覽代碼

添加PLC 的人读取和写入

user_lt 1 年之前
父節點
當前提交
8710d0215c

+ 19 - 0
BlankApp1/BlankApp1/Common/AutoMapper/AutoMapProfile.cs

@@ -22,6 +22,7 @@ namespace BlankApp1.Common.AutoMapper
                 .ForMember(dest => dest.PlcCode, opt => opt.MapFrom(src => src.plc_code))
                 .ForMember(dest => dest.PlcItem, opt => opt.MapFrom(src => src.plc_item))
                 .ForMember(dest => dest.PlcAddress, opt => opt.MapFrom(src => src.plc_address))
+                .ForMember(dest => dest.plcAddType, opt => opt.MapFrom(src => src.plc_addType))
                 .ForMember(dest => dest.PlcValue, opt => opt.MapFrom(src => src.plc_value))
                 .ForMember(dest => dest.Remark, opt => opt.MapFrom(src => src.remark)).ReverseMap(); 
 
@@ -72,6 +73,24 @@ namespace BlankApp1.Common.AutoMapper
             return itemStr;
         }
 
+        private int StrToItemType(string  typeStr)
+        {
+            int itemInt = 0;
+            switch (typeStr)
+            {
+                case "前置项":
+                    itemInt = 0;
+                    break;
+                case "PLC点位测试项":
+                    itemInt = 1;
+                    break;
+                case "Robot动作测试":
+                    itemInt =2;
+                    break;
+            }
+            return itemInt;
+        }
+
 
     }
 }

+ 23 - 0
BlankApp1/BlankApp1/ViewModels/BasicConfigViewModel/AddOrEditSchViewModel.cs

@@ -408,6 +408,7 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
             schDtlDto.UpdateTime = DateTime.Now;
             schDtlDto.UpdateBy = Appsession.UserName;
             bas_plc_test_scheme_dtl schDtlEntity = _mapper.Map<BasicPlcTestSchemeDtlDto, bas_plc_test_scheme_dtl>(schDtlDto);
+            schDtlEntity.item_type = StrToItemType(schDtlDto.ItemType);
             if (Title == "新增方案")
             {
 
@@ -452,6 +453,28 @@ namespace PLCTool.ViewModels.BasicConfigViewModel
 
         }
         /// <summary>
+        /// 转化
+        /// </summary>
+        /// <param name="typeStr"></param>
+        /// <returns></returns>
+        private int StrToItemType(string typeStr)
+        {
+            int itemInt = 0;
+            switch (typeStr)
+            {
+                case "前置项":
+                    itemInt = 0;
+                    break;
+                case "PLC点位测试项":
+                    itemInt = 1;
+                    break;
+                case "Robot动作测试":
+                    itemInt = 2;
+                    break;
+            }
+            return itemInt;
+        }
+        /// <summary>
         /// mode转json
         /// </summary>
         /// <param name="itemType"></param>

+ 61 - 2
BlankApp1/BlankApp1/ViewModels/MonitorManageViewModel/PLCReadViewModel.cs

@@ -1,12 +1,71 @@
-using System;
+using AutoMapper;
+using BizService;
+using Model.Dto;
+using Model.Entities;
+using Prism.Mvvm;
+using System;
+using System.CodeDom;
 using System.Collections.Generic;
+using System.Collections.ObjectModel;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
+using System.Windows;
 
 namespace PLCTool.ViewModels.MonitorManageViewModel
 {
-    internal class PLCReadViewModel
+    public  class PLCReadViewModel:BindableBase
     {
+        private readonly IBasicPlcItemConfigService _iBasPlcItemConfigService;
+
+        private readonly IMapper _mapper;
+        private List<BasPlcItemConfigDto> plcConfigs = new List<BasPlcItemConfigDto>();
+        public PLCReadViewModel(IBasicPlcItemConfigService iBasPlcItemConfigService, IMapper mapper)
+        {
+          
+            _iBasPlcItemConfigService = iBasPlcItemConfigService;
+            _mapper = mapper;
+            GetPLCConfig();
+        }
+        #region 私有方法
+        /// <summary>
+        /// 获取PLC配置
+        /// </summary>
+        private void GetPLCConfig()
+        {
+            var plclist = _iBasPlcItemConfigService.QueryList();
+            plcConfigs = _mapper.Map<List<bas_plc_item_config>, List<BasPlcItemConfigDto>>(plclist);
+            foreach (var plc in plcConfigs)
+            {
+                PLCItemList.Add(plc);
+            }
+        }
+
+        private  void ReadPLCValue()
+        {
+            Task.Run(async() =>
+            {
+                while (true)
+                {
+                    //更新界面上的值
+                    Application.Current.Dispatcher.Invoke(() =>
+                    {
+                       
+                    });
+                    await Task.Delay(5000);
+                }
+              
+            });
+            
+        }
+        #endregion
+        #region 命令绑定
+        private ObservableCollection<BasPlcItemConfigDto> plcItemList=new ObservableCollection<BasPlcItemConfigDto>();
+        public ObservableCollection<BasPlcItemConfigDto> PLCItemList
+        {
+            get { return plcItemList; }
+            set { plcItemList = value; RaisePropertyChanged(); }
+        }
+        #endregion
     }
 }

+ 61 - 2
BlankApp1/BlankApp1/ViewModels/MonitorManageViewModel/PLCWriteViewModel.cs

@@ -1,12 +1,71 @@
-using System;
+using AutoMapper;
+using BizService;
+using Model.Dto;
+using Model.Entities;
+using Prism.Mvvm;
+using System;
 using System.Collections.Generic;
+using System.Collections.ObjectModel;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
+using System.Windows;
 
 namespace PLCTool.ViewModels.MonitorManageViewModel
 {
-    internal class PLCWriteViewModel
+    public  class PLCWriteViewModel:BindableBase
     {
+        private readonly IBasicPlcItemConfigService _iBasPlcItemConfigService;
+
+        private readonly IMapper _mapper;
+        private List<BasPlcItemConfigDto> plcConfigs = new List<BasPlcItemConfigDto>();
+        public PLCWriteViewModel(IBasicPlcItemConfigService iBasPlcItemConfigService, IMapper mapper)
+        {
+
+            _iBasPlcItemConfigService = iBasPlcItemConfigService;
+            _mapper = mapper;
+            GetPLCConfig();
+        }
+        #region 私有方法
+        /// <summary>
+        /// 获取PLC配置
+        /// </summary>
+        private void GetPLCConfig()
+        {
+            var plclist = _iBasPlcItemConfigService.QueryList();
+            plcConfigs = _mapper.Map<List<bas_plc_item_config>, List<BasPlcItemConfigDto>>(plclist);
+            foreach (var plc in plcConfigs)
+            {
+                PLCItemList.Add(plc);
+            }
+        }
+
+        private void ReadPLCValue()
+        {
+            Task.Run(async () =>
+            {
+                while (true)
+                {
+                    //更新界面上的值
+                    Application.Current.Dispatcher.Invoke(() =>
+                    {
+
+                    });
+                    await Task.Delay(5000);
+                }
+
+            });
+
+        }
+        #endregion
+        #region 命令绑定
+        private ObservableCollection<BasPlcItemConfigDto> plcItemList = new ObservableCollection<BasPlcItemConfigDto>();
+        public ObservableCollection<BasPlcItemConfigDto> PLCItemList
+        {
+            get { return plcItemList; }
+            set { plcItemList = value; RaisePropertyChanged(); }
+        }
+        #endregion
     }
 }
+

+ 6 - 6
BlankApp1/BlankApp1/Views/MonitorManageView/PLCReadView.xaml

@@ -9,14 +9,14 @@
     <Grid>
         <DataGrid   ColumnWidth="*" AutoGenerateColumns="False" HeadersVisibility="All" CanUserAddRows="False"  SelectionUnit="FullRow" SelectionMode="Single"   RowHeaderWidth="0"
         ColumnHeaderStyle="{StaticResource ColumnHeaderStyle}"  RowHeaderStyle="{StaticResource RowHeaderStyle}" RowStyle="{StaticResource DataGridRowtyle}"  AlternationCount="2"
-       ItemsSource="{Binding BaseConfigList}" IsReadOnly="True"  >
+       ItemsSource="{Binding PLCItemList}" IsReadOnly="True"  >
             <DataGrid.Columns >
                 <DataGridTextColumn Header="序号" Binding="{Binding Id}" CellStyle="{StaticResource MyDataGridCellStyle}" />
-                <DataGridTextColumn Header="PLC变量编码" Binding="{Binding Name}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
-                <DataGridTextColumn Header="描述" Binding="{Binding Name}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
-                <DataGridTextColumn Header="数据类型" Binding="{Binding Name}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
-                <DataGridTextColumn Header="当前值" Binding="{Binding Name}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
-                
+                <DataGridTextColumn Header="PLC变量编码" Binding="{Binding PlcItem}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
+                <DataGridTextColumn Header="PLC地址" Binding="{Binding PlcAddress}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
+                <DataGridTextColumn Header="描述" Binding="{Binding Remark}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
+                <DataGridTextColumn Header="数据类型" Binding="{Binding PlcAddType}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
+                <DataGridTextColumn Header="当前值" Binding="{Binding RealValue}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
             </DataGrid.Columns>
 
         </DataGrid>

+ 16 - 19
BlankApp1/BlankApp1/Views/MonitorManageView/PLCWriteView.xaml

@@ -7,40 +7,37 @@
              mc:Ignorable="d" 
              d:DesignHeight="450" d:DesignWidth="800">
     <Grid>
+
         <DataGrid   ColumnWidth="*" AutoGenerateColumns="False" HeadersVisibility="All" CanUserAddRows="False"  SelectionUnit="FullRow" SelectionMode="Single"   RowHeaderWidth="0"
-            ColumnHeaderStyle="{StaticResource ColumnHeaderStyle}" RowHeaderStyle="{StaticResource RowHeaderStyle}" RowStyle="{StaticResource DataGridRowtyle}"  AlternationCount="2"
-            ItemsSource="{Binding BaseConfigList}" IsReadOnly="True"  >
+   ColumnHeaderStyle="{StaticResource ColumnHeaderStyle}"  RowHeaderStyle="{StaticResource RowHeaderStyle}" RowStyle="{StaticResource DataGridRowtyle}"  AlternationCount="2"
+  ItemsSource="{Binding PLCItemList}" IsReadOnly="True"  HorizontalScrollBarVisibility="Hidden" >
             <DataGrid.Columns >
-                <DataGridTextColumn Header="序号" Binding="{Binding Id}" CellStyle="{StaticResource DataGridCellStyle}" />
-                <DataGridTextColumn Header="PLC变量编码" Binding="{Binding Name}" CellStyle="{StaticResource DataGridCellStyle}"/>
-                <DataGridTextColumn Header="描述" Binding="{Binding Name}" CellStyle="{StaticResource DataGridCellStyle}"/>
-                <DataGridTextColumn Header="数据类型" Binding="{Binding Name}" CellStyle="{StaticResource DataGridCellStyle}"/>
-                <DataGridTextColumn Header="当前值" Binding="{Binding Name}" CellStyle="{StaticResource DataGridCellStyle}"/>
+                <DataGridTextColumn Header="序号" Binding="{Binding Id}" CellStyle="{StaticResource MyDataGridCellStyle}" />
+                <DataGridTextColumn Header="PLC变量编码" Binding="{Binding PlcItem}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
+                <DataGridTextColumn Header="PLC地址" Binding="{Binding PlcAddress}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
+                <DataGridTextColumn Header="描述" Binding="{Binding Remark}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
+                <DataGridTextColumn Header="数据类型" Binding="{Binding PlcAddType}" CellStyle="{StaticResource MyDataGridCellStyle}"/>
                 <DataGridTemplateColumn Header="操作"  CellStyle="{StaticResource DataGridCellStyle}">
                     <DataGridTemplateColumn.CellTemplate>
                         <DataTemplate>
-                            <UniformGrid Columns="2">
+                            <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
+                                <TextBox  Width="60"  HorizontalContentAlignment ="Left" Foreground="Black" Height="5" 
+                                        Cursor="Hand" Margin="0,0,2,0" >
+                                </TextBox>
                                 <Button  Width="auto" Background="Transparent" HorizontalContentAlignment ="Left" Foreground="Black" Height="25" BorderThickness="0"
-                         Command="{Binding DataContext.EditCommand, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=DataGrid}}" Cursor="Hand" Margin="0,0,10,0" >
-
-                                    <StackPanel Orientation="Horizontal">
-                                        <TextBlock  Text="编辑" VerticalAlignment="Center" Foreground="Blue"/>
-                                    </StackPanel>
-                                </Button>
-                                <Button  Width="auto" Background="Transparent" HorizontalContentAlignment ="Left" Foreground="Black" Height="25" BorderThickness="0"
-                         Command="{Binding DataContext.DeleteCommand, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=DataGrid}}"  Cursor="Hand" >
-
+                                    Command="{Binding DataContext.DeleteCommand, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=DataGrid}}"  Cursor="Hand" >
                                     <StackPanel Orientation="Horizontal">
-                                        <TextBlock  Text="删除" VerticalAlignment="Center" Foreground="Blue"/>
+                                        <TextBlock  Text="写入" VerticalAlignment="Center" Foreground="Blue"/>
                                     </StackPanel>
                                 </Button>
 
-                            </UniformGrid>
+                            </StackPanel>
                         </DataTemplate>
                     </DataGridTemplateColumn.CellTemplate>
                 </DataGridTemplateColumn>
             </DataGrid.Columns>
 
         </DataGrid>
+       
     </Grid>
 </UserControl>

+ 9 - 0
BlankApp1/Model/Dto/BasPlcItemConfigDto.cs

@@ -29,6 +29,15 @@ namespace Model.Dto
             get { return plcItem; }
             set { plcItem = value; OnPropertyChanged(); }
         }
+
+
+        public string plcAddType { get; set; }
+
+        public string PlcAddType
+        {
+            get { return plcAddType; }
+            set { plcAddType = value; OnPropertyChanged(); }
+        }
         /// <summary>
         /// Desc:
         /// Default:

+ 2 - 0
BlankApp1/Model/Entities/bas_plc_item_config.cs

@@ -44,6 +44,8 @@ namespace Model.Entities
            /// </summary>           
            public string plc_address {get;set;}
 
+           public string plc_addType { get; set; }
+        
            public string plc_value { get; set; }
         /// <summary>
         /// Desc: