
adccommunitymod (AutomationDirect) asked a question.
Created Date: May 21,2008
Created By: dkrygier
**** This post has been imported from our legacy forum. Information in this post may be outdated and links contained in the post may no longer work.****
I have a DL06 with a E0-ECOM100 communicating via Modbus TCP to a slave device, the issue is that when I try to read 8 coils from the slave device starting at Modbus address 131 what is returned is the 8 bits starting at 129. It appears that no matter what starting address is used in the RX command the read will always start at the first bit in the byte that contains the starting address in the RX command. I sniffed the packets and confirmed the behavior, the read command issued by the ECOM was identical for starting addresses 128-135 (GY200-GY207)
Created Date: May 21,2008
Created by: GKiser
This is because the memory in the DL PLC is on byte boundaries. The H0-ECOM100 "knows " this, so when you pick a bit in the middle of that byte, it retrieves the whole byte that contains the bit.
BTW, we know this is not according to the Modbus TCP spec, which states:
"The LSB of the first data byte corresponds to the status of the coil addressed in the query. The other coils follow sequentially, moving toward the high order end of the byte. "
But, the ECOM100's functionality has been "grandfathered in " and it is too late to change it because it might affect others who are used to it being done this way.
As time goes on and new CPUs come out, this may be changed to fit the above spec.
Hope that helps!
Greg Kiser
Host Engineering, Inc.
support@hosteng.com
Created Date: May 21,2008
Created by: dkrygier
I have a DL06 with a E0-ECOM100 communicating via Modbus TCP to a slave device, the issue is that when I try to read 8 coils from the slave device starting at Modbus address 131 what is returned is the 8 bits starting at 129. It appears that no matter what starting address is used in the RX command the read will always start at the first bit in the byte that contains the starting address in the RX command. I sniffed the packets and confirmed the behavior, the read command issued by the ECOM was identical for starting addresses 128-135 (GY200-GY207)