INT and DINT

pkb01

Member
Join Date
Sep 2014
Location
Fremont
Posts
6
I have a routine created in RsLogix 5000 that I'd like to copy into RsLogix500, I'm not sure about all of the bits being compatible since the 5000 routine has bits that are dints and I don't know how to create a DINT in the 500. Any help would be appreciated.
 
Split the L5K DINT into two consecutive B or N words for Logix500.

Lets say your L5K bits are in a ten element DintArray called myBITS. You'll need to size a Logix500 B file or N file to 20 elements. MyBITS[0].0 through MyBits[0].15 go to B3:0. MyBits[0].16 through MyBits[0].31 go to B3:1. Then continue with MyBits[1] going to B3:2 and B3:3.

You're not going to be able to cut and paste, but with a bit of pencil work you can translate the routine.
 
Last edited:
The Micrologix 1100 supports the Long data type (equivalent to DINT). In a new project no Long data files are created. But just right-click on 'Data Files' and create a new one for your use. Post back with any problems.
 
Ok the DINT properties in the 500 routine show its a Dint [24.4] the one I created in the 500 data file is a long, 24 elements, last being L10:23 is that correct? I should be able to then just mov the data into it?
 
The 'DINT[24.4] says it is a 2 dimensional array, 24 on one side and 4 on the other. That will be rather difficult to easily replicate. Perhaps a Long data file with 96 elements.
 
To follow up on my previous remark about creating a Long data file with 96 elements. In the RSLogix 5000 program wherever it shows Dint[x,y] you will have to calculate ((x*4)+y) then use that as the element in your Long data file (lets say L20).

Example - RSLogix5000 program has Dint[3,2]

Calculate 3*4+2 or 14

Then use L20:14

If they are variables store the result of the ((x*4)+y) calculation into an integer location, let's say N7:10

Then use L20:[N7:10]
 
Last edited:
Another option is to create L10, L11, L12, L13 each with 24 elements. Then the second number of the file number matches the original array index, e.g. L10 matches 0, L11 matches 1, etc.

The ML1100 does not support indirect addressing so you can't use L20:[N7:10]

If I may inquire, why you are down-stepping to an ML1100? We just put in a 5370 L1 controller and IIRC it was just a little over a grand. Those are so economical that we are now deprecating the use of MicroLogix in our facilities for small systems.
 
The ML1100 does not support indirect addressing so you can't use L20:[N7:10]

Where does this come from? We use indirect a lot. I just entered one into RSLogix500 for a Micrologix 1100. It accepted it fine.

Note - Look in the 'Contents' help file. The 'Instruction Help' is not updated for whatever reason.
 
Last edited:
I was just pulling info together on that Bernie...

TConnolly said:
...The ML1100 does not support indirect addressing...

TC,

The ML1100 does support Indirect Addressing. I've used it many times, as I'm sure you probably have too? Maybe you were thinking of the ML1000, which does not support Indirect Addressing. The ML1000 uses Immediate, Direct or Indexed Direct Addressing.

Funnily enough, the ML1000 Instruction Set Reference Manual (1761-um003_-en-p.pdf) incorrectly lists Indirect as one of its addressing methods, but does not go on to detail its use. It appears to be just a typographical error (since 1998).

The SLC 5/02 - 5/05 use both Indirect and Indexed Addressing (certain FRN required for Indirect).

Of the two, the ML1000 uses Indexed Addressing only.

Of the two, the ML1100, 1200, 1400 & 1500 use Indirect Addressing only.

G.

ML1100_Indirect_Addressing.jpg
 
Last edited:
I've been given a project that was created by someone else. He had the Micrologix 1100 messaging via ethernet to a Contrologix plc that is on the plant network. There have been some physical changes to the facility and the eithernet drop is no longer available to the Micrologix. I'm trying to take the routine from the Contrologix PLC and put it into the Micrologix because we still want to monitor the data. The Data is simply load time from our air compressors and being read by the quarter hour then stored as an accumulation on a daily basis.
 
So have I got this right...

The air compressors' loading times are being input to the ML1100, and were then MSG'd to the ControlLogix for daily totalization?

You now want to do the totalization directly in the ML1100?

Regards,
George
 

Similar Topics

Hi I am being given several fault words (as a DINT) from a Drive that I am receiving into a Compactlogix L33ER controller. I have a small...
Replies
12
Views
1,140
I am working on a project with a Controllogix 5582 processor using v32 firmware where I will be communicating with a Genset using Modbus TCP. It...
Replies
14
Views
975
Hi! It is always said, that DINT is the most performant datatype in AB plcs. I while ago i made a performance test. Several instructions like ADD...
Replies
4
Views
658
Im trying to use a MSG instruction to get the serial numbers of all addon cards and display the serials on a HMI interface. I have the logic done...
Replies
2
Views
553
Just something I think about when choosing data types in Studio 5000. It seems logical, but I've never looked deeply into the question. When...
Replies
12
Views
1,366
Back
Top Bottom