Still no joy trying to get this to work. I think terminology is part of the problem. As I understand it one device is the master (is that the server or client?) and the other is the slave. The master can send a message with an address and data to a specific slave, or it can request data from a specific slave with the slave the slave then sending the data back. Is this the correct interpretation?
I think Mach3 is set up only to be a master and can send data, in this case the requested spindle RPM to a slave. So that means the BRX needs to be configured as a slave? Does the BRX need to use MRX & MWX instructions to communicate?
If I can get this to work it is going to be awesome, as the BRX can then translate the requested speed for each of my 3 spindles to give me the correct actual speed.
Master = Client
Slave = Server
Master/Client originates the transaction, sending a Modbus function request.
Slave/Server responds to the transaction, reading or writing local data as requested.
MRX/MWX are Master/Client instructions that are used to talk to Slaves/Servers. You do not need them in this case.
When BRX is acting as a server (from TCP or serial ports), all read/write transactions reference the Modbus sandbox memories MI, MC, MIR, MHR. So if Mach writes Modbus Holding Register 3, that data will show up in BRX MHR3.