Yep you got it, Modbus would be a great way to communicate between the two robots. You will have to do some setup in the network and Fieldbus tabs in each robot. One robot would write to the register and the other would just read. If you need to communicate back, you create another register and have the robot write back to the first. This may take some trial and error but hope that helps and best of luck!
So I’ve already successfully used MODBUS to communicate with a remote I/O unit on the same application, which has proved successful.
My initial thought was to use a reundant output address on said I/O unit [server] as a common read/write address for the 2 robot [2x Client]. I’ve tried this, and it doesn’t work as expected; If robot 1 writes to the address [1], robot 2 is able to read it [1], then write a different value [0]. However, when robot 1 comes to write to the same address again, it is not ‘seen’ by robot 2. I feel like my issue is with trying to use both robots as clients, but I’m not seeing how else to do this?
My understanding of your solution would be to have the robots act as both client and server at the same time. What would the addressing of the server registers look like for this?
Do you know of any documentation I could take a look at regarding this? I’ve been endlessly searching the interwebs and not yet came across something of any value.
zac,
Don’t use the remote I/O unit.
Connect each robot to the other.
Set up a new device on Robot 1 with Robot 2’s IP address and visa versa (you can add multiple devices In the installation screen)
Assign the Register number you want to monitor.
Then you can see directly the values of a e.g. a general purpose register on the opposite robot.
If you wanted to you could even read the Joint value of (lets say Base) to see if the opposing robot is clear of the Zone
Large learning curve over the past 24 hours but I’ve achieved exactly what you have suggested.
Thanks for the addtional idea of using the base value to validate the area; smart programming!
I’ve attached a well written guide I found that defines how to acheive your suggestion (CB3 series, but still relevant), just in case somebody else comes across the same learning curve!
Also handy to add 127.0.0.1 to the modbus device list, as this is the internal server and allows for the proving out of the connection much easier than writing a test program!