diff --git a/ViewModel/MainWindowViewModel.cs b/ViewModel/MainWindowViewModel.cs index 6fb66ab..ff29e67 100644 --- a/ViewModel/MainWindowViewModel.cs +++ b/ViewModel/MainWindowViewModel.cs @@ -169,6 +169,10 @@ namespace DyeingComputer.ViewModel ushort DQ_L = 128; bool[] DO = new bool[128]; ushort DO_L = 128; + int[] MW = new int[128]; + ushort MW_L = 128; + ushort[] DW = new ushort[125]; + ushort DW_L = 125; readonly byte slaveId = 1; private async void Modbus_link() @@ -178,14 +182,9 @@ namespace DyeingComputer.ViewModel master.Transport.ReadTimeout = 500; master.Transport.WriteTimeout = 500; - //master.Transport.Retries = 100; - // write three registers - LINK_RUN++; try - { - - + { // ushort startAddress = 46001; // ushort[] registers = new ushort[] { 1, 2, 3 }; // master.WriteMultipleRegisters(slaveId, startAddress, registers); @@ -193,7 +192,9 @@ namespace DyeingComputer.ViewModel DO = master.ReadCoils(slaveId, 01000, DO_L); DQ = master.ReadCoils(slaveId, 00000, DQ_L); - LINK_OK=true; + DW = master.ReadHoldingRegisters(slaveId,06000, DW_L); + + LINK_OK =true; } catch (Exception ex) { @@ -228,8 +229,12 @@ namespace DyeingComputer.ViewModel { await Task.Run(() => { - for (ushort i = 0; i < DO_L; i++) { updata_dtd((i + 2001).ToString(), DO[i]); } - for (ushort i = 0; i < DQ_L; i++) { updata_dtd((i + 3001).ToString(), DQ[i]); } + lock (dt_d) + { + for (ushort i = 0; i < DO_L; i++) { updata_dtd((i + 2001).ToString(), DO[i]); } + for (ushort i = 0; i < DQ_L; i++) { updata_dtd((i + 3001).ToString(), DQ[i]); } + for (ushort i = 0; i < DW_L; i++) { updata_dta((i + 4001).ToString(), DW[i]); } + } }); await Task.Run(() =>