Gateways and Energy Servers
Schneider Electric support forum to share knowledge about product selection, installation and troubleshooting for EcoStruxure Panel Server, PowerTag, Com'X, Link150…
User | Count |
---|---|
82 | |
46 | |
28 | |
28 |
Link copied. Please paste this link to share this article on your social media post.
Dear
When you put the EGX100 as slave on a Modbus network, does it have a modbus address?
if so, can this address be changed?
If it keeps address 255 (master address) will there be a conflict when putting another master on the bus with address 255?
thanks in advance
Jeroen
Posted: 2015-11-04 08:16 AM
Link copied. Please paste this link to share this article on your social media post.
A master does not have any slave address;
Adrian was taking of 255 as :
the modbus-TCP Slave address used by the EGX100 on ethernet in normal mode (serial port as master)
the modbus-RTU Slave address used by the EGX100 on serial line in "reverse" mode (serial port as slave)
About your Siemens device, could you please send a small drawing explaining who is the master and who are the slaves
regards
Jef
Link copied. Please paste this link to share this article on your social media post.
When you put an EGX100's Serial Port in Slave Mode, you have to define:
- in the Setup menu > Serial Port page: the remote devices IP addresses (maximum 16 IP addresses are accepted): these devices are either other gateways or end devices
- in the Setup menu > Device List page:
- Number of Viewable Devices: up to 128 (combination of IP addresses, Local IDs and Remote IDs)
- Local ID is the Slave Address that your Master will access transparently through your EGX100; none of these are the EGX100's Slave ID
- Remote ID is the serial Slave Address of the remotely accessed Slave through that connected device (IP)
Each Local ID can go from 1 to 247.
0 is reserved for broadcast.
Modbus Messaging Implementation guide v1.0b says: "
The MODBUS slave device addresses on serial line are assigned from 1 to 247 (decimal). Address 0 is used as broadcast address.
On TCP/IP, the MODBUS server is addressed using its IP address; therefore, the MODBUS Unit Identifier is useless. The value 0xFF has to be used."
On the EGX100's Ethernet port, Modbus TCP/IP Unit ID 254 and 255 can be used to query the internal registers of the EGX100 itself from any ModbusTCP/IP Client.
This happens equally when EGX100's Serial Port is set as Master or when it is set as Slave, of which this latter I honestly wasn't expecting.
Now, do you want me to test if EGX100 in Slave Mode is NOT following the Modbus standard (Slave addresses 1..247) and answers to Slave address 254 or 255?
You may address this to technical support along with your Slave Mode topology.
Posted: 2015-11-03 04:12 AM
Link copied. Please paste this link to share this article on your social media post.
Hello Jeroen
Not sure to understand your configuration :
Do you use the Com'X 10 in "Slave mode" ?
If yes, in this mode, the EGX100 has sebveral slave ID.
First you,must define in which IP addresses, the incomming traffic from the serial port will be forwarded
In that case, all the modbus traffic arriving to the serial port of the EGX100 will be forwarded as Modbus-TCP to 2 IP : 10.192.128.35 and 10.192.128.332.
The EGX100 will use the "device list" to define how to route the Mobbus-RTU traffic :
In my example :
The modbus-RTU traffic addressed to slave 101 will be forwarded to the slave 1 at 10.192.128.35
The modbus-RTU traffic addressed to slave 102 will be forwarded to the slave 2 at 10.192.128.35
The modbus-RTU traffic addressed to slave 201 will be forwarded to the slave 1 at 10.192.128.32
The modbus-RTU traffic addressed to slave 202 will be forwarded to the slave 2 at 10.192.128.32
The modbus-RTU traffic addressed to slave 255 will be processed by the EGX100 itself
The address 255 is always a slave address,
a master has no address, because there can be only one master per serial line
Regards
Jef
Link copied. Please paste this link to share this article on your social media post.
Hello
thanks all for the reactions!!
I have several installations where this work fine.
We usually do this topology if a PLC has to read the slaves and doesn't have a Ethernet port.
But now I have a problem with a Siemens devices that has no connection to the slaves( it works when putting no EGX's on the bus)
So I thought maybe the EGX and the Master have the same modbus address.
I'm a bit confused when
Adrian says
'
On the EGX100's Ethernet port, Modbus TCP/IP Unit ID 254 and 255 can be used to query the internal registers of the EGX100 itself from any ModbusTCP/IP Client.
This happens equally when EGX100's Serial Port is set as Master or when it is set as Slave, of which this latter I honestly wasn't expecting
'
and jef says
'
The address 255 is always a slave address,
a master has no address, because there can be only one master per serial line
'
So does the master have an address on the modbus site? I allways thought it would be 255, an address you can't give any slaves (1-247)
,
What happens when the master on the modbus line (with egx as slave) has an address of 254 or 255 and the EGX has the same slave address?
Regards
Jeroen
Posted: 2015-11-04 08:16 AM
Link copied. Please paste this link to share this article on your social media post.
A master does not have any slave address;
Adrian was taking of 255 as :
the modbus-TCP Slave address used by the EGX100 on ethernet in normal mode (serial port as master)
the modbus-RTU Slave address used by the EGX100 on serial line in "reverse" mode (serial port as slave)
About your Siemens device, could you please send a small drawing explaining who is the master and who are the slaves
regards
Jef
Link copied. Please paste this link to share this article on your social media post.
I confirm: Using EGX100 in Slave Mode (Serial Port set as Slave Mode) and connecting to either RS485 socket or RS232 socket with a ModbusRTU Master I can read Slave Address 254 and 255, EGX is answering on any of these addresses providing internal registers info - undocumented.
As Jeff and protocol specification say:
"The MODBUS Master node has no specific address, only the slave nodes must have an address. This address must be unique on a MODBUS serial bus."
Moreover, why are you worried since Slaves never query any Master? It's the Master who is querying the Slaves.
MODBUS over serial line specification and implementation guide V1.02.pdf says:
"The MODBUS Serial Line protocol is a Master-Slaves protocol. Only one master (at the same time) is connected to the bus, and one or several (247 maximum number) slaves nodes are also connected to the same serial bus. A MODBUS communication is always initiated by the master. The slave nodes will never transmit data without receiving a request from the master node. The slave nodes will never communicate with each other. The master node initiates only one MODBUS transaction at the same time."
Maybe I'm wrong, but I can only see a problem when you want to add 2 EGX100 in a RS485 chain, you want to set both in Slave Mode and you may want your Master to get info from Slave Address 254, or 255.
The EGX100 Slave Mode Topology shows only point-to-point connection of ModbusRTU Master to EGX100, and when using RS232 port that is clear, but it is nowhere mentioned that if you use RS485 socket you can or cant connect more Slaves (ensuring unique Slave Addresses):
Link copied. Please paste this link to share this article on your social media post.
The original network was (I can't remember the type of device
And I made it
Imagine you have an EGX as master and you can access his registers via its slave address 255 (we never use this but imagine). What would happen if there is another slave with address 255 (for example an egx) when you ask for the registers of address 255 witch one will answer?
If the siemens has the same structure as an EGX, a modbus slave address of 255, and he uses his own registers for something then the master will ask the registers of slave address 255. will it go to the EGX or on its own?
I understand that the master has no address but it could be that it's also a slave.....
Link copied. Please paste this link to share this article on your social media post.
EGX100 is not forwarding the requests for Slave Address 255 on the RS485/RS232 wires to other Slaves.
How to make the EGX100 to send a request to Slave Address 255 on the RS485 or RS232 wire? You cannot. It is not going out on the wire.
If you try via web page Diagnostics > Read Device Registers and set Device ID 255 it will query its own internal registers.
If your EGX100 receives the registers read request for Slave Address 255 through EGX100 Ethernet port, thus meaning that a ModbusTCP/IP Client was asking, it will return internal EGX100 registers values. It will not forward the request on the RS485/RS232 wire to other Slaves.
I can't say what Siemens does in its firmware ...
Posted: 2015-11-05 09:38 AM
Link copied. Please paste this link to share this article on your social media post.
I come back on :
"Imagine you have an EGX as master and you can access his registers via its slave address 255 (we never use this but imagine). What would happen if there is another slave with address 255 (for example an egx) when you ask for the registers of address 255 witch one will answer?"
==> That's why =S= has pushed a rules in Modbus implementation guide saying : the slave must use address between 1 and 247.
About Siemens device, I cannot say anything
When you say :
"I understand that the master has no address but it could be that it's also a slave....."
==> if it is the case it must be described in the device documentation
Regards
Jef
Create your free account or log in to subscribe to the board - and gain access to more than 10,000+ support articles along with insights from experts and peers.