|
|
@ -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,6 +192,8 @@ namespace DyeingComputer.ViewModel |
|
|
|
|
|
|
|
DO = master.ReadCoils(slaveId, 01000, DO_L); |
|
|
|
DQ = master.ReadCoils(slaveId, 00000, DQ_L); |
|
|
|
DW = master.ReadHoldingRegisters(slaveId,06000, DW_L); |
|
|
|
|
|
|
|
LINK_OK =true; |
|
|
|
} |
|
|
|
catch (Exception ex) |
|
|
@ -227,9 +228,13 @@ namespace DyeingComputer.ViewModel |
|
|
|
async void IO_data()//刷新
|
|
|
|
{ |
|
|
|
await Task.Run(() => |
|
|
|
{ |
|
|
|
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(() => |
|
|
|