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!