SYMAX to RSLogix 5000 Program Conversion Help Needed

jmobley

Member
Join Date
Feb 2015
Location
Fort Morgan, Colorado
Posts
10
I have been tasked to upgrade some SquareD PLCs at our plant. I have done several of these upgrades without any issues. However, I have now met my match and need a little help with how to create a RSlogix version of some "advanced" LET instructions.

Specifically I am looking at a LET statement that works with a MATRIX using a pointer register.

An example of the instruction is:

-----------------------------------SIZE-PNTR----
TLET M0221 =M0221 + 00001 0010 S0238 |
---------------------------------------------------

I fully understand what this rung is doing but no idea how to replicate this in RSLogix 5000. I am hoping that someone on this forum can help me figure out how this would work in 5000.
 
Last edited:
I fully understand what this rung is doing but no idea how to replicate this in RSLogix 5000. I am hoping that someone on this forum can help me figure out how this would work in 5000.
I have no idea what this rung is doing, but if I knew, I could probably take a pretty good crack at a Logix 5000 equivalent. Can you convert from SYMAX to English, and I (or others) can try and convert from English to Allen Bradley?
 
Symax Translation

The rung only acts on the leading edge of the input signal - that is the significance of the 'T' at the left side. It means 'Transitional'.

The integer array has a size of 10 from S221 to S230. The 'S' means 'storage location' - an array of them begins with 'M' for 'Matrix'. I think floating point arrays began with 'A'.

This instruction appears to not be a 'repeat' instruction so it only operates on a single element of the matrix. The pointer is in S238. It must be loaded with a value ranging from 1 to 10 (not 0 through 9) before this instruction is hit.

I'm no AB specialist but some structured text IEC pseudocode would look something like this:

Declare Totals as ARRAY[1..10] OF INT

Pointer := (value between 1 and 10)

IF (On the rising edge of the input to the instruction)
Array[Pointer] := Array[Pointer] + 1;
END_IF;

The Symax instruction would fail if the pointer was <= 0 or > 10. It would also fail if the array element was incremented past 32767.

I just posted a long-winded note to Parky about Symax in a different thread. Symax translations to other processors are usually pretty straightforward since Symax instructions were very well behaved in predictable manners.

I wish you the best with your project.
 
Symax TLET quirk

If a Symax program had more than one TLET using the same pointer register there was some unexpected behavior. I discuss it in the PLC class outline on corsairhmi.com. I don't think Square D mentioned this in their manuals, at least not in the early printings. It had to do with a history bit in the status field of the pointer register.

If your original programmer correctly allowed for this it isn't an issue. If he ran across it and bluffed his way through the code to get it to work you may run into some issues with the translation.
 

Similar Topics

Square-D Symax SFI-324 I have used the SFI-510 card for many projects, but I came across a SFI-324. Does anyone have ant tech info on it?
Replies
0
Views
80
I have a few program files that I need to convert into a printable format. We don't have a dot matrix printer available to us. Would anyone be...
Replies
1
Views
743
Hello all and thanks in advance for any help on this. I am working with a symax 400 processor and i'm trying to wrap my head around the...
Replies
0
Views
1,020
Anyone know where I can get a replacement key for this? I know that it said "01115E" or "0I115E" on the side of the key. It was brass. Not much...
Replies
0
Views
997
Hi.. I am converting Symax 400 Processor to ControlLogix L73 .. I need help with some of the Instructions used in SyMax.. Please find attached...
Replies
1
Views
1,425
Back
Top Bottom