"String" Ethernet message.

kbpatton

Member
Join Date
Feb 2008
Location
Cleveland, OH
Posts
80
Hello all.

I have a lot of experience with messaging and producing/consuming etc., but I have never messaged a "String" before. Is there anything special I need to know? For example, you usually have to specify a certain number of elements to message, but I'm not sure how this applies to a string. I basically just need to message one string from a ControlLogix to a Cimplicity server. Any guidance much appreciated.
 
Just message the STRING tag, to a STRING tag in the receiving PLC.

A STRING data-type is just a pre-defined data-type like a TIMER or any other of the "compund" types, including User-Defined types (UDTs).

Incidentally, the STRING data-type holds 82 characters. If this is overkill for your application (say you only need 30 characters), then you can define new String data-types as you wish, e.g. STRING30.

Right-Click the String Data-Types folder in the Controller Organiser, and select "New String Data-Type". In the dialogue that comes up, specify your string type name (e.g. for a 30-character string type STRING30), and specify the number of characters to allow in that data-type, e.g.30.

Presumably Cimplicity can be set-up with String tags of different lengths, or if it is a fixed length, you may have to create a dta-type to match it as above.
 
Hello all.

I have a lot of experience with messaging and producing/consuming etc., but I have never messaged a "String" before. Is there anything special I need to know? For example, you usually have to specify a certain number of elements to message, but I'm not sure how this applies to a string. I basically just need to message one string from a ControlLogix to a Cimplicity server. Any guidance much appreciated.

Is it possible that you need to use Socket Messaging? If so, you'll need the EWEB module.
 
There isn't anything "special" about a STRING data type with reference to the MSG command. It's just another data type.
 
Just message the STRING tag, to a STRING tag in the receiving PLC.

A STRING data-type is just a pre-defined data-type like a TIMER or any other of the "compund" types, including User-Defined types (UDTs).

Incidentally, the STRING data-type holds 82 characters. If this is overkill for your application (say you only need 30 characters), then you can define new String data-types as you wish, e.g. STRING30.

Right-Click the String Data-Types folder in the Controller Organiser, and select "New String Data-Type". In the dialogue that comes up, specify your string type name (e.g. for a 30-character string type STRING30), and specify the number of characters to allow in that data-type, e.g.30.

Presumably Cimplicity can be set-up with String tags of different lengths, or if it is a fixed length, you may have to create a dta-type to match it as above.

Have you every tried messaging a custom defined string length? I'm just curious if you have gotten it to work because I was unsuccessful. I didn't try for very hard though because we were under the gun. I ended up changing them to standard length strings.
 
I think the key to this question is:

"message one string from a ControlLogix to a Cimplicity server"

When we discuss the MSG instruction, the participants are usually A-B controllers of one type or another, or an RSI product like RSLinx Classic.

In your case, the capabilities of one of the participants is less well-known. In most cases, an HMI or SCADA software product performs data requests to the controller, rather than acting as the target of a MSG instruction.

My experience with Cimplicity is very low, but a couple of weeks ago I helped a customer connect their long-running Cimplicity system to a new ControlLogix (v19).

Their Cimplicity system, they told me, had a built-in driver for PLC-5 Ethernet, but not for ControlLogix. We tested a new installation of GE's "IGS", which stands for "Industrial Gateway Server" or "Intellution Gateway Server" depending on who you ask, which is really a repackaged KepServerEX.

We also tested RSLinx Classic, which we found to be easier (one less layer of database) but were wary of, stabilitywise, in the long term.

Exactly which driver or connectivity method are you using in Cimplicity ?
 
Thanks for the responses.

I'm not a Cimplicity expert by any means but our setup is kind of strange. Our system was setup a long time ago. I do know that when I need to hook up a cell to our plant for Andon or PM&C purposes, I need to message my data to our Cimplicity server as a PLC2 Unprotected write, as Cimplicity does not have Control Logix drivers.

I want to display current faults of a new press on the Andon Marquees and I already have a String that updates automatically with the current faults and I wanted to send that up with my other data.
 
That does qualify as strange. It's the technology of 1978, today !

I can see how messaging with the very basic PLC2 Unprotected Data commands would be the very lowest common denominator between ControlLogix devices. I'm not sure how Cimplicity could accept that message from a ControlLogix except maybe over DH+ or DF1, since they'd need to understand the ControlLogix EtherNet/IP encapsulation protocol.

Examine and post information on the "String" point in Cimplicity that works now.

I expect you're going to have to create an INT[x] array and move the LENGTH value of a ControlLogix String into the first element, then the DATA[x] values of the ControlLogix string into the subsequent elements. The COP instruction should take care of the data shuffling between 16-bit and 8-bit elements.

Again, post more about what sort of mechanisms work now.
 
"That does qualify as strange. It's the technology of 1978, today !"

Thanks, that was good for a chuckle.

As far as existing mechanisms, some of our lines use an "ASCII Echo" function to get text onto our Marquees. It basically determines if an Alarm is active, then polls the HMI where the alarm text is actually stored, then basically converts that to a digital signal which is then messaged to Cimplicty as an array of "Ints".

The alarm logic of my new line is the exact opposite, being that the alarm text is stored in the PLC as "Strings" which are sent the the HMI's on the line. So I have a live "String" that updates automatically with current faults. I am hoping to get that live "String" up to Cimplicity, which may not be possible.

I know that you can create a "String" point in Cimplicity so I'll give it a try and see what happens.
This is one of my side projects but I'll post results when I have them.

Thanks again.
 
For those that were interested.

Our version of Cimplicity could not poll a ControlLogix string directly. So next I tried copying the string into an array of Ints to be read by Cimplicity. At first I thought it was working but then realized that Cimplicity was reading the bytes out of order so every other letter was backwards. This could have been fixed be writing a detailed script to swap each group of two letters, since each Int holds 2 letters.

Ended up setting up an OPC client as opposed to using the Ethernet port from Cimplicity. Turns out this is much easier and I was able to do exactly what I needed.
 
Hi Guys,
How can we write and read the data of a string (ST9:0) from panelview to SLC505? I need to transfer the red font in a panelview plus 600

offset LEN String Text Description
ST9:0 14 1480008981456
 

Similar Topics

Hi All, I am currently developing an application using a L18ER PLC and a JET 3 printer. The printer prints a 2D UV bar code onto bottles passing...
Replies
3
Views
3,460
Does any one knows if micrologix 1100 would be a good choice to receive ascii string characters by Ethernet port and forward it using rs232 port...
Replies
1
Views
5,479
I'm attempting to read some strings from a S7 300 PLC over ethernet. I'm using a IBH S7 Link mpi to ethernet converter and then use IBH OPC server...
Replies
4
Views
6,415
Dear all, Could anyone advise me on what messaging method under MSG function of RSLogix5000 should be used to send out a data string (ASCII/HEX)...
Replies
5
Views
5,458
Can I send an ASCII string over Ethernet in ControlLogix to a dummy device with IP address? I know I can sent it over CH0 port, but can this be...
Replies
2
Views
10,320
Back
Top Bottom