Author Topic: Send a message to multiple controllers  (Read 1189 times)

bachphi

  • Hero Member
  • *****
  • Posts: 642
    • View Profile
Send a message to multiple controllers
« on: April 14, 2020, 07:47:29 PM »
In the Logix 5000 Controllers Messages programming manual, Rockwell devoted a whole chapter to sending
message to mutiple controllers. The idea behind it was using just a single message instruction to communicate
with different controllers.
However, the chapter was written badly, incomplete and in some cases it was wrong as well.
Below is my take on sending message to  mutiple controllers. Hope that it will be usefull for someone in someday.
Any comments  or suggestions are super welcome.



« Last Edit: April 15, 2020, 10:06:43 AM by bachphi »
===================================================
This is NOT alt.read.my.mind.
No such thing is sh^t-for-brains unless you are posting to alt.read.my.mind.
===================================================

bachphi

  • Hero Member
  • *****
  • Posts: 642
    • View Profile
Re: Send a message to multiple controllers
« Reply #1 on: April 15, 2020, 10:31:35 AM »
The same idea can be expanded further.
Let's say you need to read different tags from the same controller.
As a side note, UDT structure still remains the most efficient to read. I was able to transfer an entire UDT_Parts[] array.

1. Going from Dual-IP 5380-L, A1 Enterprise port . path string : $13$tTARGET_IP_ADDRESS$00
2. Going from Dual-IP 5380-L, A2 DeviceLevel port . path string : $14$tTARGET_IP_ADDRESS$00

3. I dont have a 5480 to verify, so below is my guess:
4.  Going from Dual-IP 5480, B1  port:   path string : $12$pTARGET_IP_ADDRESS
5.  Going from Dual-IP 5480, A1  port:   path string : $14$rTARGET_IP_ADDRESS$00
6.  Going from Dual-IP 5480, A2  port:   path string : $15$rTARGET_IP_ADDRESS$00
« Last Edit: April 15, 2020, 11:44:07 AM by bachphi »
===================================================
This is NOT alt.read.my.mind.
No such thing is sh^t-for-brains unless you are posting to alt.read.my.mind.
===================================================

dmroeder

  • Global Moderator
  • Full Member
  • *****
  • Posts: 206
    • View Profile
Re: Send a message to multiple controllers
« Reply #2 on: April 15, 2020, 04:20:55 PM »
The same idea can be expanded further.
Let's say you need to read different tags from the same controller.
As a side note, UDT structure still remains the most efficient to read. I was able to transfer an entire UDT_Parts[] array.

1. Going from Dual-IP 5380-L, A1 Enterprise port . path string : $13$tTARGET_IP_ADDRESS$00
2. Going from Dual-IP 5380-L, A2 DeviceLevel port . path string : $14$tTARGET_IP_ADDRESS$00

3. I dont have a 5480 to verify, so below is my guess:
4.  Going from Dual-IP 5480, B1  port:   path string : $12$pTARGET_IP_ADDRESS
5.  Going from Dual-IP 5480, A1  port:   path string : $14$rTARGET_IP_ADDRESS$00
6.  Going from Dual-IP 5480, A2  port:   path string : $15$rTARGET_IP_ADDRESS$00

I had to do the same thing about a month ago.  This was 6 machines, the operator could edit a recipe on one machine, send the updated recipe to the other 5 machines.  I had an array of strings that were pre-populated with the paths.  Machine 1's path was in Paths[1], Machine 2 in Paths[2] and so on.  A single message instruction was used, just updated the MSG path depending on which machine I was sending the recipe to.

bachphi

  • Hero Member
  • *****
  • Posts: 642
    • View Profile
Re: Send a message to multiple controllers
« Reply #3 on: April 19, 2020, 07:31:54 PM »
very funny, I just found MSG_To_Multiple_Controllers.acd  in the sample folder. Doh.

I was looking at the sample project little more. I think my version is a little better with error handling.
If one of the controllers is offline, it flag up the error of which controller is offline and then move on to the next one.
« Last Edit: April 24, 2020, 03:03:10 PM by bachphi »
===================================================
This is NOT alt.read.my.mind.
No such thing is sh^t-for-brains unless you are posting to alt.read.my.mind.
===================================================