MSG Instruction Type Checking of UDTs

theColonel26

Lifetime Supporting Member
Join Date
Feb 2014
Location
West Michigan
Posts
785
I have some questions about MSG Type checking


  1. Does a MSG instruction care if the name of the UDT type are different on each PLC as long as their member are identical?
    • Basically can I rename a UDT Type, but not the tag name on one system and not cause an issue?
  2. Does a MSG instruction care if the names of the members are different as long as the type and order of members has not changed?
    • example, can I have a UDT defined as 3 DINTs called number1, number2, and number3. then import that in to another PLC and rename them huey dewey and louie? Will the MSG instruction still work?
I am wondering about this because I want to know if there is a way for my to update my communications UDTs on our customer's PLCs while that are online.. I don't want to rename the UDT type on my machine only the customer's machine that is talking to mine. Customers can't do downloads as they are continuous process, my machine is not so I do a lot of UDT and AOIs and just do a download.
 
I have some questions about MSG Type checking


  1. Does a MSG instruction care if the name of the UDT type are different on each PLC as long as their member are identical?
    • Basically can I rename a UDT Type, but not the tag name on one system and not cause an issue?
  2. Does a MSG instruction care if the names of the members are different as long as the type and order of members has not changed?
    • example, can I have a UDT defined as 3 DINTs called number1, number2, and number3. then import that in to another PLC and rename them huey dewey and louie? Will the MSG instruction still work?

Interesting question. My guess would be that it will work fine as long as the tag name specified in the MSG instruction matches and the data types are identical. if I can find a little time I'll test and see.
 
...Does a MSG instruction care if the name of the UDT type are different on each PLC as long as their member are identical?

The names of the UDTs themselves do not need to match.

...Does a MSG instruction care if the names of the members are different as long as the type and order of members has not changed?

That's a good question. My initial thought is that it wouldn't care about the names of each member, only the data types for each member, and as you said, the order. But I'd want to verify before I said for sure.

OG
 
Did some quick testing on an idle machine with copying an existing UDT and changing names then trying to do a CIP data read from the next machine over. The MSG errored in all attempts if any name was different, whether the type name or a member name. Extended error code 16#000_2107, which I've seen Ken Roach say indicates that the data types for the source and destination do not match.
 
Did some quick testing on an idle machine with copying an existing UDT and changing names then trying to do a CIP data read from the next machine over. The MSG errored in all attempts if any name was different, whether the type name or a member name. Extended error code 16#000_2107, which I've seen Ken Roach say indicates that the data types for the source and destination do not match.

Wow. I was pretty certain I've used different names for the UDT structures.

OG
 
Was brought back to this thread by another one, and felt the need to add to add an exception of sorts to the general conclusions this thread reached.

The names of BOOL elements can be changed. This is likely why OG remembered having used different names.

The reason for this is that BOOLs are packed into either SINT (<=8 bits consecutively) or a BOOL[64] array (>8 bits). The Type Encoding String used to generate the CRC will include the SINT or BOOL array, not the individual bits. This can be seen in examples STRUCT_A & STRUCT_B on pages 9 & 10 of the document pturmel linked.

Disclaimer: I have only tested with a number of bits that would be packed into a SINT, but I have no reason to think it would work differently for the array.
 

Similar Topics

Hello, I made a UDT with DINT[50] and REAL[50] data types. I cannot seem to get the whole data type array to transmit. I can do all the dints...
Replies
4
Views
2,155
I'm using a SLC typed write from the ControlLogix5572 to the MicroLogix 1400, with path: 2, (MicroLogix IP). The ControlLogix equipment has a...
Replies
0
Views
87
Hello all, I am currently trying to establish a message instruction to pass data from a 1756-L73 to a 1756-L71. My communication path from the...
Replies
8
Views
352
Hello Friends I am trying to connect to a Zebra printer. I can print the label with hyperterminal both by RS232 and TCP/IP. Now, I am trying to...
Replies
7
Views
276
Can Anyone tell that How Msg Instruction comes under Unscheduled communication and How System Overhead time slice(SOTS) function connected to it...
Replies
1
Views
968
Back
Top Bottom