sc 1 year ago
parent
commit
919fbfdb5e
  1. 23
      ViewModel/MainWindowViewModel.cs

23
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(() =>

Loading…
Cancel
Save