just getting started with cx programmer


Thread Starter

Doug Maley

I am familiar with RS-logix 500 and just getting started with CX Programmer. I would like to know how to select an address for an internal bit.

I have been using the manual that came on my disk, but I dont understand the addressing scheme. How are the I/O addresses seperated from the internal bit addresses?


Short answer: They aren't. You basically have a small number of very large memory pools. This stumped me for a while when I moved from RSLogix to CX-Programmer, until I had something that I needed more than 255 words for. <G>

Basically, your discrete I/O starts numbering in the CIO (Core I/O) memory pool. This holds registers that can be addressed to the bit level. The module closest to the processor is 0.00 - 0.15, assuming all 16 pt I/O. If you have a 32 point module, it is 0.00-0.15 1.00-1.15 for the 2 banks of 16. The next module takes the next number of words it needs, etc.

I typically start my internal bits at 100.00 and go from there. On a CJ1G cpu44 processor, you have 6140 CIO addresses to work with. Note that addressing CIO, you can leave off the letters CIO and just use the numeric portion, as CIO is the default.

If you don't need bit level access, you can move on to Data Memory addresses. Depending on the model of processor, this is referred to as either DM or just D memory. On the above referenced processor, (I have a project open for that right now, so it is easy to go look) This is a pool of 32760 consecutive addresses that can be used at your discretion. Note that some specialty I/O modules (typically the ones that have unit numbers on the front of the module) take part of this area starting at D20000, so watch out when using real high numbers.

Then of course there are the W registers, IR registers, etc. Keep reading the doc's.....

The biggest paradigm shift is realizing that you don't have to declare a memory file, you are not restricted to a max of 255 consecutive memory locations, and that you are more responsible for properly organizing your related data in groups. That is the one thing that I had a hard time with letting go of was the fact that it was easy to say that N25:xx was all data for program file 10, for example. Also, if you ever need bit access, you have to use CIO, as you cannot address a bit in a DM register.

Hope this helps!

--Joe Jansen
You use the I/O Configurator to address your external i/o, everything else is then internal - from 0.00 to x.15.
Hope this helps


Hi ,
Read the page on IO addressing in the user manual for the particular plc you are using.
This information is all there.
depending on which processor you are using, there are 6143 words used for (CIO)I/O on the racks and used for internal usage. So whatever your last word on the rack is starts the I/O that can be used for internal operations. Becareful of CIO areas that are reserved for the processor's on usage for ports or smart cards.

I have been programming PLCs for about 8 years mainly RS logix and I have found CX Programmer the most unfriendly.
Omron has tried to combine the old technology with the new ie old modules plugging into the new back plates, etc. Anyway this is not your question.

Each PLC comes with a manual and in the manual is a mapping diagram and details the work area you need. They will not all be the same ie CQM1H will be different to another plc.

We use EMC Direct Logic (Koyo) now, but it may not suit what you are doing.