gillecaluimi Posted October 27, 2013 Share Posted October 27, 2013 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 Link to comment Share on other sites More sharing options...
AzeoTech Posted October 28, 2013 Share Posted October 28, 2013 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? Link to comment Share on other sites More sharing options...
gillecaluimi Posted October 29, 2013 Author Share Posted October 29, 2013 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? Link to comment Share on other sites More sharing options...
AzeoTech Posted October 29, 2013 Share Posted October 29, 2013 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? Link to comment Share on other sites More sharing options...
gillecaluimi Posted October 30, 2013 Author Share Posted October 30, 2013 the communications are all rs485. Is there a way to query a range of addresses with a single call? Link to comment Share on other sites More sharing options...
AzeoTech Posted October 31, 2013 Share Posted October 31, 2013 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. Link to comment Share on other sites More sharing options...
SteveMyres Posted October 31, 2013 Share Posted October 31, 2013 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. Link to comment Share on other sites More sharing options...
AzeoTech Posted October 31, 2013 Share Posted October 31, 2013 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. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.