SLC Message Instruction Help

It will depend on which channel you are using for the MSG instruction. If you are using Ethernet Channel 1, it will take 51 words. I don't recall the length of the block for the serial port. You don't have to enter a length, just fill in the details in the MSG dialog box (when you double click it) and the length will be set correctly for you.

If doing online editing just make sure that the results do not overlap data areas already in use before you accept the edits.

The Help file tells you a lot about the details of the control block. The main ones I keep track of are word zero bit 13 is the DN (done) bit and word zero bit 12 is ER or error bit.
 
Yes, the guys are correct in the main...

For the SLC 5/05 the Length of the Control Block when using Channel 0 Serial Port is generally 14 elements or words, but can be greater. When using Channel 1 Ethernet the Length of the Control Block is generally 51 elements, but can be greater. These lengths are fixed by the Channel and Communication Command selected in the MSG instruction's Setup Screen and are not changeable.

When you create a new MSG instruction it has Channel 0 Serial selected by default. This is why there is automatically a Control Block length of 14. You must create and assign an Integer file to be used as the MSG instruction's Control Block. If you create an Integer file with only one element the MSG instruction will automatically expand the Data File to the correct size when the rung or program is verified.

Note: Automatic Data File expansion only occurs in the SLC controllers. The MicroLogix controller Data Files must be manually configured.

Not all of the Control Block's words are used for Channel 0 Serial messages. For instance, the usage of the 14 words within the Control Block varies depending on whether the Communication Command, or Target Device, is selected for 500CPU, 485CIF, etc.

For a Channel 1 Ethernet Control Block, if an SLC 5/05 is communicating with an older PLC-5, and using ASCII Symbolic addressing, then the control Block length will be 93 elements.

Similarly, when using Channel 0 Serial to communicate with a PLC-5 and using ASCII Symbolic addressing, the Control Block would be 56 elements.

The latter two being much older and rarer setups which would not be seen or used too often nowadays I'm sure.

If you want a detailed breakdown of the Control blocks then have a look at Chapter 12 in the SLC Instruction Set Reference Manual...

http://literature.rockwellautomation.com/idc/groups/literature/documents/rm/1747-rm001_-en-p.pdf

Do not change any Control Block data except in Word 0 bits 8-15. You should only write to the Continuous Operation (CO), Enable (EN) and Time-Out (TO) bits under certain conditions. You can also read the Done (DN) and Error (ER) bits for programmatic control of the MSG instruction's operation.

Regards,
George
 
Speaking to Rockwell it looks like I have to use an EEM instruction but once I get that all put in offline I get errors that File 148 Ins 0 can't complile as there is no memory left.

What can I do to free up memory? There are some symbols being used so will those free memory if I get rid of them? Program still has comments but they were using comments and symbols.

What else can I do to free memory? Reduce data file size? This is the 64 K 5/05 and I don't think there is anything larger.
 
I tried to use the delete unused memory tool and now I am getting errors that say "warning file number doesn't point to the correct file type and it looks to be an indirect address as it's in brackets.

I guess the delete unused memory tool can not tell that an instruction with an indirect address is using that data file?
 
Ok, can we step back here a little...

What are you trying to communicate with?

The EtherNet/IP Explicit Message (EEM) Control Block is an entirely different animal as I'm sure you are aware having "put" it all in. It's designed for communicating Ethernet/IP with compatible devices using the CIP standard commands of which the EEM Control Block handles...

Service Code, Object Class, Instance and Attribute and also the Send/Receive data.

Depending on the device in question the configuration for the EEM can be quite specific.

If you are getting "other" programming errors then try be more specific as to the error text and routine/rung/instruction/operand at fault.

Does the Data File for the apparent indirect address still exist?
Is it one or many of these errors?

If you think you are running out of RAM then first check the available RAM under the processor's properties. If it looks tight and you are getting something like...

program could not be compiled! No memory left in Processor Image

...then it's possible that your current additions are using too much of the remaining available RAM, which is not good on a 1747-L553 64K processor as there is no replacement with higher memory and no way to add extra RAM.

Regards,
George
 
Ok, can we step back here a little...

What are you trying to communicate with?

The EtherNet/IP Explicit Message (EEM) Control Block is an entirely different animal as I'm sure you are aware having "put" it all in. It's designed for communicating Ethernet/IP with compatible devices using the CIP standard commands of which the EEM Control Block handles...

Service Code, Object Class, Instance and Attribute and also the Send/Receive data.

Depending on the device in question the configuration for the EEM can be quite specific.

If you are getting "other" programming errors then try be more specific as to the error text and routine/rung/instruction/operand at fault.

Does the Data File for the apparent indirect address still exist?
Is it one or many of these errors?

If you think you are running out of RAM then first check the available RAM under the processor's properties. If it looks tight and you are getting something like...

program could not be compiled! No memory left in Processor Image

...then it's possible that your current additions are using too much of the remaining available RAM, which is not good on a 1747-L553 64K processor as there is no replacement with higher memory and no way to add extra RAM.

Regards,
George

Trying to message to a 193 E300 overload and the EEM is running me out of RAM so I tried to use the delete unused memory but yes the logic using the indirect reference still exists but the dlete unused data tool deleted some elements that it uses so looks like I will have to make freeing up some RAM a manual process.

Does anyone know if symbols are stored in the processor? I think they are but how much RAM do they use? I could delete those because they are using symbols and rung and instruction comments.
 
Resizing some data table that I know are not used as indirects I found after I resize and save then go back to processor properties that the instruction words left is blank?

Does it need to be downloaded to get this info? You would think it would be handy to have that offline.
 
DavidWalter84 said:
...Does anyone know if symbols are stored in the processor? I think they are but how much RAM do they use? I could delete those because they are using symbols and rung and instruction comments.

User references such as Symbols, Rung Comments, Instruction Descriptions, Routine and Data File names, etc. are all saved in the Offline Image of the *.RSS program file. Only the instructions and their addressing are compiled into machine code when performing a Download.

If you Upload from an SLC controller where you don't have the *.RSS file used to store all of the above then you "Create New File". This file will be void of all of the Symbols, Rung Comments, etc.

Deleting these user references will only decrease the size of the *.RSS file, but not the amount of memory that will be consumed in the processor.

Deleting unused Routines or rungs of code, unused Data Files or elements within Data Files, or consolidating code will help to free up processor memory.

Using the Delete Unused Memory tool does have its faults, as you've found out. Another tip to find out which Data File elements or bits are in use is to double-click a Data File and select "Usage" at the bottom. All used addresses will display an "X".

Note: The "Usage" feature requires that you must have "Enable Cross Reference Online" turned on under Tools>Options>XRef / Address Wizard tab.

For the 193-E300 and additional memory use...

The EEM Control Block uses 58 elements within the assigned Integer Data File. Also, any extra addressing you have created to Send/Receive Data will consume memory.

If the basic setup to message with the E300 is pushing you over the edge, memory-wise, then there is not much you can do other than try to consolidate the existing program.

DavidWalter84 said:
Resizing some data table that I know are not used as indirects I found after I resize and save then go back to processor properties that the instruction words left is blank?

Does it need to be downloaded to get this info? You would think it would be handy to have that offline.

When you are Offline, the software is calculating the memory allocation. If there are pending rung edits or unverified rungs then the software cannot estimate the current memory allocation and is held in an indeterminate state until all edits are finalized. This can be seen on the "Controller Properties" window by the "Memory Used" and "Memory Left" fields displaying an asterix (*). Once all rung edits are finalized the software can now recalculate the current memory allocation and the updated values will be displayed.

When you are Online, the processor is calculating the memory allocation. If there are pending rung edits then the software can continuously display the memory allocation all the way through a rung edit by reading the processor's memory allocation. In some cases you can even see the "Memory Left" changing slightly as you transition from Accept/Test/Assemble Edits, even when you just take a rung through a full edit sequence without actually changing anything. It has to do with how the processor is using memory to perform an edit.

Because you are Offline and have program errors, certain rungs are being held as pending edits. Until you clear the errors and finalize the rung edits you will continue to see the * displayed in the aforementioned fields.

If you have no pending errors and are only seeing the memory not updating after resizing the Data Files, then you may just need to perform a "Verify Project" (Computer icon with correction mark at top).

Last year we had an SLC 5/05 1747-L552 32K processor that was down to less than 1000 Instruction Words so we bought in a second hand -L553 64K and swapped it in just to be safe. Recently I've had to create extra Data Files and Ethernet messaging to other SLC controllers. There are 12 on this network in total. If we hadn't the 64K in place it would not have been possible.

I do hope you can free up enough memory to carry out this mod, but even if you squeeze it in, I would still be considering available migration options.

Regards,
George
 
Last edited:

Similar Topics

I have a SLC 5/05 and I am trying to read motor current from one of the Allen Bradley 193 E300 series overload units. On the Rockwell site I...
Replies
1
Views
2,481
I have three A-B plc's, we'll call them PLC A,B and C. PLC A and PLC B are connected together using a modem that is connected to channel 0 on PLC...
Replies
1
Views
3,104
Hello all, I have a problem i was wondering if anyone has ever ran into: I have a control logix processor that has been sending slc type write...
Replies
5
Views
8,228
Hi guys. I have a system we work on. It's a SLC 5/05 at a battery connected through CH0 to a serial radio to a L61 Control Logix processor...
Replies
7
Views
2,115
Hello Everyone, I am looking for some help on setting up a routing table on a DHRIO Module or perhaps the message configuration is wrong. I am...
Replies
9
Views
3,007
Back
Top Bottom