If you are using a a 5380 Compact Logix or a 5580 Control/GuardLogix on recent revisions the MOV command supports String types.
Otherwise use COP or CPS
Yes I paid too much attention to the second sentence and not enough to the first, and by the time I realized my mistake it was too late to edit.Not sure what that has to do with the OP's question
Yes I paid too much attention to the second sentence and not enough to the first, and by the time I realized my mistake it was too late to edit.
Fortunately others came along to provide a proper answer.
Actually, I apparently didn't fully comprehend the OP's 2nd question. Your post makes more sense now. I took it as "moving between PLC's", I no longer see it that way. I'm going back to my corner to think about what I've done
the 82 is a default but can be overridden in some environments, so if the 500-byte limit is indeed prod/cons, then it may be possible to use 44-character-length strings (so each string structure (object) uses 48chars), and then 10 would fit in the 500-element limit.
The fine Dr. piqued my curiosity with this statement, so I had to try it for myself. ... I have to say, I never would have thought of doing this, ...
:heh:It's just zeros and ones, it cannot be hard
- Jouni Ryno
Not sure what that has to do with the OP's question
Strings are 88 bytes because of how Rockwell packs structs/UDT's. the LEN is 4 bytes, the data array is 82 bytes. The data array gets 2 additional pad bytes to align with 32 bit memory footprint. This begs the question, I wonder what drove them to choose 82 characters? They were throwing away 2 characters. An 84 character array would still consume 88 bytes.
Anyway, joseph_e2 has it right, it's the packet size limit of producer/consumer model. This is where MSG is handy, it doesn't have this size limit. If you don't need the data going back/forth at a continuous rate, just use MSG, otherwise, you'll have to setup multiple producer/consumers for this much data.
I wonder why Rockwell never implemented larger connection sizes for class 1 like they have for class 3 connections?
Sorry I have been MIA on this subject that I started. To clarify, we are passing data from a control logix plc to another control logix plc. We transfer an item number that is normally 6 characters (numbers). The common string data type we create is a STRING[10]. I was told by an integrator that you could not pass string data through PROD_CONS. By looking through the posts it looks like this is fairly straight forward. I would just need to create the UDT on both sides as STRING[10]'s. The reason for not messaging is we are transferring data from one company to another company where company A says that prod_cons are more secure. I am not 100% sold on that but here we are. Thanks!
Or, if you can be certain the characters will always be numeric as opposed to alpha-numeric, you could extract the strings into a DINT[10], send it, and then re-pack it into strings on the other end.
The logic feels unnecessarily complex for just 'move data from PLC A to PLC B', but it avoids having to either use a non-standard String type or more than one tag so the actual prod/cons portion is straightforward.I thought immediately of the same thing; it's a bit of a rube goldberg/heath robinson, but definitely +1.