Hello,
we have implemented a DT80 in our system, where we have 14 modbus RS485 slaves.
Main settings are:
Statistics
Rate of statistical schedule 1 seconds
Sensor port
Modbus mast, 9600bps, 8 databits, 2 stop bits, parity none, mode RS-485, flow control none
Schedule rate 5 seconds (reading modbus and analog channels)
Schedule rate 10 minutes (logging averages)
It is working fine, besides the dEx is quite slow, but this is due to the schedule rate (5 seconds). Is it recommended to have slower rate, to be easily able to startup dEx without Holding the program by a menu button (I do not want to implement that because I don't want my client to be able to Hold it).
The biggest problem we are facing is the fact that the DT80 jams when one of the modbus slaves isn't found on the network, while this is just a normal condition (a slave can be shutdown manual). The DT80 stops sampling/logging and there is no communication at all. Is there any way to prevent this?!
My program for one slave is as follows (and I have this for max. 14 slaves):
1MODBUS(TO30,AD1,R3:1,=310..313CV,W) 'read regulator adress 1-4 and write to datalogger adress 310-313
1MODBUS(TO30,AD1,R3:25,=314CV,W) 'read regulator adress 25 and write to datalogger adress 314
1MODBUS(TO30,AD1,R3:30,=315CV,W) 'read regulator adress 30 and write to datalogger adress 315
1MODBUS(TO30,AD1,R3:36,=316CV,W) 'read regulator adress 36 and write to datalogger adress 316
1MODBUS(TO30,AD1,R3:38,=317CV,W) 'read regulator adress 38 and write to datalogger adress 317
1MODBUS(TO30,AD1,R3:31,=318CV,W) 'read regulator adress 31 and write to datalogger adress 318
1MODBUS(TO30,AD1,R3:5,=319CV,W) 'read regulator adress 5 and write to datalogger adress 319 --> Version as logged is 18 (decimal), that means the version is 12 (hex)
1MODBUS(TO30,AD1,R3:26,=10..13CV,W) 'read regulator adress 26-29 and write to datalogger adress 10-13
1MODBUS(TO30,AD1,R3:37,=14CV,W) 'read regulator adress 37 and write to datalogger adress 14
1MODBUS(TO30,AD1,R3:45,=15CV,W) 'read regulator adress 45 and write to datalogger adress 15
1MODBUS(TO30,AD1,R3:47,=16..17CV,W) 'read regulator adress 47-48 and write to datalogger adress 16-17
'calculate scalings
310CV(W)=(311CV/65536+310CV)/32768 ' voltage scaling
312CV(W)=(313CV/65536+312CV)/32768 ' current scaling
'set scaling
10CV("SR1_U_OUT ~mV",NL)=10CV310CV1000 'convert V to mV
11CV("SR1_U_BAT ~mV",NL)=11CV310CV1000 'convert V to mV
12CV("SR1_U_IN ~mV",NL)=12CV310CV1000 'convert V to mV
13CV("SR1_I_OUT ~A/100",NL)=13CV312CV100 'convert A to A/100
314CV(NL,ND)=314CV310CV1000 'convert V to mV
315CV(NL,ND)=315CV312CV100 'convert A to A/100
318CV(NL,ND)=318CV310CV100 'convert V to mV
Hello,
we have implemented a DT80 in our system, where we have 14 modbus RS485 slaves.
Main settings are:
Statistics
Rate of statistical schedule 1 seconds
Sensor port
Modbus mast, 9600bps, 8 databits, 2 stop bits, parity none, mode RS-485, flow control none
Schedule rate 5 seconds (reading modbus and analog channels)
Schedule rate 10 minutes (logging averages)
It is working fine, besides the dEx is quite slow, but this is due to the schedule rate (5 seconds). Is it recommended to have slower rate, to be easily able to startup dEx without Holding the program by a menu button (I do not want to implement that because I don't want my client to be able to Hold it).
The biggest problem we are facing is the fact that the DT80 jams when one of the modbus slaves isn't found on the network, while this is just a normal condition (a slave can be shutdown manual). The DT80 stops sampling/logging and there is no communication at all. Is there any way to prevent this?!
My program for one slave is as follows (and I have this for max. 14 slaves):
1MODBUS(TO30,AD1,R3:1,=310..313CV,W) 'read regulator adress 1-4 and write to datalogger adress 310-313
1MODBUS(TO30,AD1,R3:25,=314CV,W) 'read regulator adress 25 and write to datalogger adress 314
1MODBUS(TO30,AD1,R3:30,=315CV,W) 'read regulator adress 30 and write to datalogger adress 315
1MODBUS(TO30,AD1,R3:36,=316CV,W) 'read regulator adress 36 and write to datalogger adress 316
1MODBUS(TO30,AD1,R3:38,=317CV,W) 'read regulator adress 38 and write to datalogger adress 317
1MODBUS(TO30,AD1,R3:31,=318CV,W) 'read regulator adress 31 and write to datalogger adress 318
1MODBUS(TO30,AD1,R3:5,=319CV,W) 'read regulator adress 5 and write to datalogger adress 319 --> Version as logged is 18 (decimal), that means the version is 12 (hex)
1MODBUS(TO30,AD1,R3:26,=10..13CV,W) 'read regulator adress 26-29 and write to datalogger adress 10-13
1MODBUS(TO30,AD1,R3:37,=14CV,W) 'read regulator adress 37 and write to datalogger adress 14
1MODBUS(TO30,AD1,R3:45,=15CV,W) 'read regulator adress 45 and write to datalogger adress 15
1MODBUS(TO30,AD1,R3:47,=16..17CV,W) 'read regulator adress 47-48 and write to datalogger adress 16-17
'calculate scalings
310CV(W)=(311CV/65536+310CV)/32768 ' voltage scaling
312CV(W)=(313CV/65536+312CV)/32768 ' current scaling
'set scaling
10CV("SR1_U_OUT ~mV",NL)=10CV*310CV*1000 'convert V to mV
11CV("SR1_U_BAT ~mV",NL)=11CV*310CV*1000 'convert V to mV
12CV("SR1_U_IN ~mV",NL)=12CV*310CV*1000 'convert V to mV
13CV("SR1_I_OUT ~A/100",NL)=13CV*312CV*100 'convert A to A/100
314CV(NL,ND)=314CV*310CV*1000 'convert V to mV
315CV(NL,ND)=315CV*312CV*100 'convert A to A/100
318CV(NL,ND)=318CV*310CV*100 'convert V to mV