iX and Modbus slave
Posted: Fri May 22, 2015 9:36 am
QTerm-A12 with the latest iX.
The A12 connects to an embedded controller with Modbus serial to exchange data. The A12 is the slave; the iX Modbus driver is Modbus Slave 4.16.02. The embedded controller is the master. A holding register is incremented at fixed rate by the master. The A12 checks this heartbeat tag every second, if the heartbeat did not change after 5 consecutive checks, the datalink alarm is triggered and displayed on the Alarm Viewer.
If the system is run long enough, say overnight, we would see the datalink alarm. Log records from the embedded controller indicates the A12 failed to reply. The SystemTagCPULoad is typical at 20-35%. We added a few CPU load counter tags; the 95% tag recorded a count of 3-4 overnight.
We assigned tags to all 5 pollgroups with 500, 750, 1000, 1500, 2000ms to reduce the update rate. We implemented hints in "optimizing iX application.pdf"
What causes the A12 to spike beyond 95% CPU load at idle?
We are not sure if the CPU load spike caused the Modbus comm error since it doesn't happen often. There are 713 tags mapped to the ModBus registers. Is this within the A12's capacity?
What do the Timeout and Retries settings in the Modbus Slave Setting dialog do for the slave? The A12 is the Slave, it only replies.
What else to try?
The A12 connects to an embedded controller with Modbus serial to exchange data. The A12 is the slave; the iX Modbus driver is Modbus Slave 4.16.02. The embedded controller is the master. A holding register is incremented at fixed rate by the master. The A12 checks this heartbeat tag every second, if the heartbeat did not change after 5 consecutive checks, the datalink alarm is triggered and displayed on the Alarm Viewer.
If the system is run long enough, say overnight, we would see the datalink alarm. Log records from the embedded controller indicates the A12 failed to reply. The SystemTagCPULoad is typical at 20-35%. We added a few CPU load counter tags; the 95% tag recorded a count of 3-4 overnight.
We assigned tags to all 5 pollgroups with 500, 750, 1000, 1500, 2000ms to reduce the update rate. We implemented hints in "optimizing iX application.pdf"
What causes the A12 to spike beyond 95% CPU load at idle?
We are not sure if the CPU load spike caused the Modbus comm error since it doesn't happen often. There are 713 tags mapped to the ModBus registers. Is this within the A12's capacity?
What do the Timeout and Retries settings in the Modbus Slave Setting dialog do for the slave? The A12 is the Slave, it only replies.
What else to try?