The most common brand of PLC in use is Allen-Bradley (Rockwell), which happens to use a unique form of I/O addressing (Note 1), students tend to find confusing. This makes it difficult to write a general tutorial on PLC addressing, and so my ultimate advice is to consult the engineering references for the PLC system you intend to program. The association between I/O points and memory locations is by no means standardized between different PLC manufacturers, or even between different PLC models designed by the same manufacturer. Similarly, analog input and output channels on a PLC correspond to multi-bit words (contiguous blocks of bits) in the PLC’s memory.
Virtually every microprocessor-based control system comes with a published memory map showing the organization of its limited memory: how much is available for certain functions, which addresses are linked to which I/O points, how different locations in memory are to be referenced by the programmer.ĭiscrete input and output channels on a PLC correspond to individual bits in the PLC’s memory array. This is sage advice for any programmer, especially on systems where memory is limited, and/or where I/O has a fixed association with certain locations in the system’s memory. Ugly.A wise PLC programmer once told me that the first thing any aspiring programmer should learn about the PLC they intend to program is how the digital memory of that PLC is organized. If you have any questions you can PM me if you like, or just post it in this thread.Įdit: ALWAYS DOCUMENT YOUR WORK WITH RUNG COMMENTS, WORD, BIT, AND ELEMENT DESCRIPTIONS, AND REVISION NOTES. You can adjust the number of elements in these registers also, so you won't run out of space in each data table (depending on how big your program is and how meticulous you are about partitioning data). I usually go with B13, N17, F18, just to differentiate my work from someone else's. My advice, when working on someone else's program in 500, create a new data register for each data type you use, so instead of B3, N7, F8, etc. You can find all the data tables in the program tree to the left, they'll be labeled. Those are predefined with a single letter nomenclature as another poster said. However, don't look for things like controller or program tags. I actually kind of prefer Logix 500 because it's so simple. 500 is just a low memory version of 5000, basically. The actual logic itself is the exact same. Please click "report" on spam Related sub-reddits: (*) At mods' discretion, certain self-promotion submissions from people who contribute to this sub in other ways may be allowed and tagged with the "Self-promo" flair Job offers and requests go to the weekly thread.No shit posts (memes - pictures with superimposed text - are OK).If asking a question, ask the actual question, fully yet concisely, right in the title.Be civil: do not insult no all-caps, no excessive "!" and "?", please.Job announcements (oustide the monthly job thread).Single Board computers: r/Raspberry_pi, r/Arduino, r/linux_devices, r/linuxboards.Hardware design that does not include a PLC for electronic circuits: /r/AskElectronics.PLC internship, employment and education questions.