Request for PLC Information and Samples


I mentioned last week that I am working on what I believe is the first truly advanced non-platform-specific book on PLC Programming.

My friend Tony over on Factory Automation Software Blog has reviewed some books that come the closest, but so far they fall short in several areas. I purchased Cascading Logic by Gary Kirchof, and while it did have some examples of methods/best practices for programming, the techniques did not accurately represent what I have seen used by professionals in the industry. As Tony said, it was also very narrowly focused on one general type of industry.

One problem when writing a non-platform-specific book is how to represent PLC code in a way that represents programming generically. Every platform uses different addressing schemes (Decimal, Octal and Hexadecimal for Allen-Bradley, Siemens and Mitsubishi for instance). Instruction sets also differ widely as do preferences of programming languages (Ladder, Structured Text and Instruction List – Statement List).

In my previous posts on Ladder Logic I used Microsoft Visio to present logic diagrams in a generic way. I labeled discrete memory as “Bit” and analog memory as “Word”. While this does look pretty generic, it is very time consuming and still doesn’t look the way I want it to.

I have decided to use my Allen-Bradley software to represent ladder logic in my new book. An example is shown at the top of the blog; note that I have linked (or “aliased”) the tagnames to bits and words. I realize I will never be able to make everyone happy with this, people tend to like the platform they are most used to. I am using decimal representation, though there will be extensive discussions on numbering systems and memory organization for different brands.

I have a good handle on every Allen-Bradley and Siemens product and technique, and a fairly good grasp of the older Automation Direct/Koyo platform (200,300 and 400 series). Where I really need help is on some of the other major brands. In particular, I would like some help with Modicon, GE, Mitsubishi, Omron.

I also plan to discuss ABB, Crouzet, Idec, Keyence, National Instruments. Opto22, Panasonic, Toshiba, and any other platforms that are in fairly global use. Please feel free to suggest more.

What I would like from you: a description of the I/O and memory organization and a list of names for the different instruction types. For instance, AB addresses use I and O and is decimal, Siemens uses I, Q, PIW and PQW and is octal, Mitsubishi uses X and Y and is hexadecimal. AB uses TON for an On Delay Timer and it counts up, Siemens uses S_ODT and the timers count down.

Any sample code you can send would be awesome, but the only software I have is Allen-Bradley 500 and 5000, Siemens Step7 and TIA Portal, and DirectSoft32. I have lots of A-B programs, especially from manufacturing, but I could use more process control (Chemical, Petroleum and Gas, Utilities). I have several good Siemens programs but could use more. If you have PDFs or pictures of code that would be helpful too.

Any hardware or software manuals or other documentation from the above listed manufacturers would be nice. I plan to contact as many manufacturers directly as I can, but any shortcuts would help.

So what do you get out of it? Well, a mention in the book for starters, and a free copy when it comes out if you are chosen as an official reviewer. For my last book, about ten people received a copy from McGraw-Hill in exchange for their technical reviews.


Here is another example of using my Logix 5000 software to present ladder logic generically…


And yet another. For even more check out my Filter posts from a few weeks ago.

Any other comments or suggestions on this project are welcome. So far I have a pretty large number of subjects I plan to cover in the book, including Structured Text, STL, Add-Ons and Function Blocks, Tags vs. memory organization, an extensive history of PLCs and computers, and of course lots and lots of examples from industry. My last book took over two years to complete, this one will probably take even longer. Any help you can provide will be greatly appreciated!


Electrical Engineer and business owner from the Nashville, Tennessee area. I also play music, Chess and Go.

5 Comments on “Request for PLC Information and Samples

  1. Hi Frank,

    Very interesting work you are into.

    I would like to contribute to your work with the OMRON systems.
    In my past I have worked a lot with Siemens S7, RS-logix 500 and some with RS-logix 5000. In addition I have also worked with Mitsubishi and B&R PLCs.

    Best Regards
    Pablo Müller

  2. Frank,

    Many thanks for taking on this project – and I would love to be a reviewer. I will try to provide some info on Panasonic, but no promises on when, since I’m currently very busy.

    One platform I highly recommend you cover is Codesys, which makes PLC run-times that are used by many, many companies (probably in the hundreds). I’m not sure how much Codesys changes between vendors.

  3. Frank,

    I’ll be glad to send you some sample code from Omron’s NJ PLC platform. I can print them to a pdf, so you should have no problem viewing them.
    As a side note I worked for Omron for 21 years, and still do a lot of programming on their systems.
    The NJ platform will look somewhat like the AB program, as it is a Tag based PLC. The Omron CJ2 platform is still in use, but it is address based. Let me know where to send sample code and I’ll get you some out this week.
    Good Luck on your endeavor.

  4. Hello Frank,

    I found reading your article pretty interesting and I was very intrigued by your work and projects that you’re into. I am a recent grad and I am just about to start my first job in about a week. I’m trying to learn more and get better at programming. I’d love some tips and maybe some step by step type material. Preferably Allen Bradley RS Logics 500. Please …anything would be helpful!

  5. Dear Frank,

    this is very good idea. I have worked with SIemens mostly so I can share any solution from this side. But now I’m also involved with AB equipment so also from that point of view, especially for motion control I’ll be able to contribute now not so much, but from this point on, more and more.
    BUt since many PLC experienced people are involved here I would like to ask if anyone has any experience to make PI(D) control of speed of hydro turbine with discrete signals. (ON-OFF, open close i.e. needle valve). With proportional valve it works, but for on-off valve no. I have S7-300 controller and I use ladder.