92
9. Appendix C: Practical Example (RSLogix 500)

Management of the response timeout (T4:1). Until the response arrives or if its content is incorrect (bit

B3:0/4 = 0), a 3-second timer is set. When this timeout (T4:1/DN = 1) is triggered, the timer is reinitialized,the parameter’s address (O:1.14, after LSB / MSB have been swapped using scratch variable N9:0) and anerroneous value (N9:1 = –1) are placed in the array of results, into two successive locations, reserved forthe motor starter currently being polled. Finally, the write process is halted (bit B3:0/3 is reset).The various data used by this sub-program are shown in the following table:

Address Symbol Description

B3:0/2 WR_COMMAND User command: Writing a parameter on a TeSys U motor starter.
This bit is activated by the user and reset by the program.
B3.0/3 WR_RUNNING Writing a parameter on a TeSys U motor starter: In progress
B3.0/4 WR_OK Writing a parameter on a TeSys U motor starter: Writing OK (if the
response has arrived and is correct)
B3.0/6 ———— The “trigger byte” of the query has been updated: Yes (1) / No (0)
I:1.13 CR_WRPAR_SLAVE_FCT
Result of writing the value of a parameter: Slave (16#01 to 16#08)
as LSB + function (always 16#06) as MSB. The values of these
fields are compared to those of the query
I:1.14 CR_WRPAR_ADRPAR
Result of writing the value of a parameter: Address of the
parameter. The value of this field is compared to that of the query
(swapping of the MSB and the LSB with each of these two fields)
I:1.15 CR_WRPAR_VALUE
Result of writing the value of a parameter: Value of the written
parameter. The value of this field is compared to that of the query
(swapping of the MSB and the LSB with each of these two fields)
N7:12 WR_SLAVE User command: Modbus address of the motor starter to which the
write request should be sent.
N7:13 WR_ADDRESS
User command: Address of the parameter
N.B. Do not attempt to change the value of register 704 (command
register), because it is already controlled by the DeviceNet master
(see sub-program “LAD 3 - CMD_MON”)!
N7:14 WR_VALUE User command: New value of the parameter
N7:15 WR_INDEX
Index in the array of results for writing TeSys U parameters (motor
starters nos. 1 to 8).
Value = 16 + 2 × (motor starter no. – 1) = 16 to 30
N7:[N7:15] — [ WR_INDEX ]
Array of results for writing TeSys U parameters (motor starters nos.
1 to 8). Elements N7:16 to N7:31 organized by “parameter address”
/ “parameter value” pairs, each pair occupying two successive
addresses.
“Parameter value” = –1 if there is an error (response timeout
triggered).
N7:37 ———— Local counter that corresponds to the “trigger byte” of the read
request.
N9:0
N9:1
VAR_TEMP_1
VAR_TEMP_2
Temporary variables used to carry out the intermediate evaluations
(primarily LSB / MSB swappings).
O:1.13 WRPAR_SLAVE_FCT Request for writing the value of a parameter: Slave (copied from
N7:12) as LSB + function (always 16#06) as MSB.
O:1.14 WRPAR_ADRPAR Request for writing the value of a parameter: Address of the
parameter (copied from N7:13, but with MSB and LSB swapped).
O:1.15 WRPAR_VALUE Request for writing the value of a parameter: Value of the parameter
(copied from N7:14, but with MSB and LSB swapped).