P-Modbusrtu 0010


Recommended Posts

Posted
This keeps showing up in my Command/Alert .....

I've tried setting offsets for each channel thinking that it was a slow response...1 sec per channel but that's not helping

 

10/25/13 20:05:47.017

P-ModbusRTU 0010: Timeout

10/25/13 20:37:38.023

P-ModbusRTU 0010: Timeout

10/25/13 20:37:39.038

P-ModbusRTU 0010: Timeout

10/25/13 20:37:40.054

P-ModbusRTU 0010: Timeout

10/25/13 20:37:41.070

P-ModbusRTU 0010: Timeout

10/25/13 20:37:46.009

P-ModbusRTU 0011: CRC Fail

10/26/13 06:04:52.005

P-ModbusRTU 0011: CRC Fail

10/26/13 06:05:47.015

P-ModbusRTU 0010: Timeout

10/26/13 06:05:48.030

P-ModbusRTU 0010: Timeout

10/26/13 06:05:49.046

P-ModbusRTU 0010: Timeout

10/26/13 06:05:50.062

P-ModbusRTU 0010: Timeout

10/26/13 06:05:51.077

P-ModbusRTU 0010: Timeout

10/26/13 06:05:52.093

P-ModbusRTU 0010: Timeout

10/26/13 06:05:53.108

P-ModbusRTU 0010: Timeout

10/26/13 06:05:54.124

P-ModbusRTU 0010: Timeout

10/26/13 06:05:55.139

P-ModbusRTU 0010: Timeout

10/26/13 06:05:56.155

P-ModbusRTU 0010: Timeout

10/26/13 06:05:57.171

P-ModbusRTU 0010: Timeout

10/26/13 06:05:58.186

P-ModbusRTU 0010: Timeout

10/26/13 06:05:59.202

P-ModbusRTU 0010: Timeout

10/26/13 06:06:00.217

P-ModbusRTU 0010: Timeout

10/26/13 06:06:01.233

P-ModbusRTU 0010: Timeout

10/26/13 06:06:06.053

P-ModbusRTU 0011: CRC Fail

10/26/13 19:57:09.001

P-ModbusRTU 0010: Timeout

10/26/13 19:57:10.002

P-ModbusRTU 0010: Timeout

10/26/13 19:57:11.003

P-ModbusRTU 0010: Timeout

10/26/13 19:57:12.003

P-ModbusRTU 0010: Timeout

10/26/13 19:57:13.004

P-ModbusRTU 0010: Timeout

10/26/13 19:57:14.005

P-ModbusRTU 0010: Timeout

10/26/13 20:07:50.001

P-ModbusRTU 0010: Timeout

10/26/13 20:07:51.002

P-ModbusRTU 0010: Timeout

10/26/13 20:07:52.003

P-ModbusRTU 0010: Timeout

10/26/13 20:07:53.004

P-ModbusRTU 0010: Timeout

10/26/13 20:07:54.005

P-ModbusRTU 0010: Timeout

10/26/13 20:07:55.005

P-ModbusRTU 0010: Timeout

10/26/13 20:07:56.006

P-ModbusRTU 0010: Timeout

10/26/13 20:07:57.007

P-ModbusRTU 0010: Timeout

10/26/13 20:07:58.008

P-ModbusRTU 0010: Timeout

10/26/13 20:07:59.009

P-ModbusRTU 0010: Timeout

10/26/13 20:08:00.010

P-ModbusRTU 0010: Timeout

10/26/13 20:08:01.011

P-ModbusRTU 0010: Timeout

10/26/13 21:07:40.003

P-ModbusRTU 0011: CRC Fail

10/27/13 05:57:14.001

P-ModbusRTU 0010: Timeout

10/27/13 05:57:15.002

P-ModbusRTU 0010: Timeout

10/27/13 05:57:16.003

P-ModbusRTU 0010: Timeout

10/27/13 05:57:17.004

P-ModbusRTU 0010: Timeout

10/27/13 05:57:18.005

P-ModbusRTU 0010: Timeout

10/27/13 05:58:08.102

P-ModbusRTU 0011: CRC Fail

10/27/13 06:07:55.001

P-ModbusRTU 0010: Timeout

10/27/13 06:07:56.002

P-ModbusRTU 0010: Timeout

10/27/13 06:07:57.003

P-ModbusRTU 0010: Timeout

10/27/13 06:07:58.004

P-ModbusRTU 0010: Timeout

10/27/13 06:07:59.004

P-ModbusRTU 0010: Timeout

10/27/13 06:08:00.005

P-ModbusRTU 0010: Timeout

10/27/13 06:08:01.006

P-ModbusRTU 0010: Timeout

10/27/13 06:08:06.052

P-ModbusRTU 0011: CRC Fail

10/27/13 06:08:10.001

P-ModbusRTU 0010: Timeout

10/27/13 06:08:11.002

P-ModbusRTU 0010: Timeout

10/27/13 06:08:12.003

P-ModbusRTU 0010: Timeout

10/27/13 06:08:13.004

P-ModbusRTU 0010: Timeout

10/27/13 06:08:14.004

P-ModbusRTU 0010: Timeout

10/27/13 06:08:15.005

P-ModbusRTU 0010: Timeout

10/27/13 06:08:16.006

P-ModbusRTU 0010: Timeout

10/27/13 06:08:17.007

P-ModbusRTU 0010: Timeout

10/27/13 06:08:18.008

P-ModbusRTU 0010: Timeout

10/27/13 06:08:19.009

P-ModbusRTU 0010: Timeout

10/27/13 06:08:20.010

P-ModbusRTU 0010: Timeout

10/27/13 06:08:21.011

P-ModbusRTU 0010: Timeout

10/27/13 06:08:26.003

P-ModbusRTU 0011: CRC Fail

10/27/13 06:45:28.002

P-ModbusRTU 0011: CRC Fail

10/27/13 06:45:36.003

P-ModbusRTU 0011: CRC Fail

 

Posted

The fact that you have CRC failures tells me you have noise on your line.  It has nothing to do with timing.  You'll need to shield your cable, use a shorter cable (if RS232) and/or add proper termination (if RS485).  Are you getting any successful comms?  Or does everything fail?

Posted

If you look at the timestamps on the log, the vast majority of requests are successful.  How does df handle this situation....resend the request?  Is there a way to figure out which device is being polled when the errors occur?

Posted

If you are using channels and the request fails, DAQFactory just moves on.  It will make the request again at the next timing interval.  If you want DAQFactory to retry, you have to implement it yourself in script.  

 

As for which device, you'd have to either disable devices one at a time, or simply look at the Modbus comms.  Are you using RS485?

Posted

That's done automatically if your channels are consecutive and have the same I/O type (skip by 2 for 32 bit types of course!).  Its often beneficial to add dummy channels if you have a gap to create a bigger block.

If RS485 to mutlitple devices, you might need to add a delay between blocks.  You can do this by doing:

 

device.myDevice.setDelay(20)

 

where 20 is 20 milliseconds.  Experiment until it works reliably.  Note that this adds to every block, so will change the total polling interval.

Posted

Since he mentioned the port type, and since it's multidrop, I wonder if he was asking about polling multiple slave nodes in a single command, rather than multiple registers in a single slave.

Posted

If that's true, then no, the Modbus standard does not support this.  In fact, I don't think its possible for any protocol to support this.  Once a device detects that the command is for it, it activates its transceiver and no other device can transmit at the same time.  This is actually why you sometimes need setDelay().  Without it, DAQFactory stacks the queries too fast for separate devices, and one device might not release its transceiver fast enough and the next command to another device is lost.

Archived

This topic is now archived and is closed to further replies.