Custom PLCs For Automation Industries

For many years, factories have used PLCs for automated control over industrial equipment. These systems are usually expensive, proprietary, and generally incapable of being reprogrammed. [Oliver], an engineering student in Ireland created a system for factories to develop their own application-specific PLCs as a final project for Automation Engineering.

In-house PLC creation has many benefits for manufacturers, not the least of which is the opportunity for customization. Making your own PLCs also means no licensing fees and total control over equipment automation. This system is a complete setup including an HMI interface with touchscreen input and a SCADA system for remotely controlling various pieces equipment of equipment from a laptop.

[Oliver] built a metal frame out of industrial-grade strut channel to house an XP machine, two monitors, and the beautifully breadboarded PLC design station. It’s based around a PIC16F887 and includes rugged features expected of a system that never goes into sleep mode, like eight channels of opto-isolation. [Oliver] also developed an environment for engineers to easily program their custom PLCs through a simple HMI interface and ladder logic.

74 thoughts on “Custom PLCs For Automation Industries

  1. There’s beremiz ( for doing PLC programming in IEC languages for normal PCs including compiler and HMI.

    Another project PVBrowser (pvbrowserorg) is a HMI system and data acquisition, which you can program with C++, Lua or python and includes basic system for a soft plc, though it does not support IEC languages, but you have to program it with the languages i mentioned.

    Neither can be used for safety applications though, so if that is needed, you can get the benefits of open source PLCs, but can buy a separate safety PLC or if the safety part is simple enough, use safety relays. You can’t just through some redundant inputs together and call that a safety input. Safety stuff has to be approved. That’s why you have to buy the stuff.

    1. … Just to continue. I read the project report. It’s a nice project. Does not change the industry, but that is fine.

      For certain things a small, microcontroller based PLC is a good option. There are some on the market. Big names like Siemens and Omron have their “smart” relays, but imho, for the features they have, they are too expenssive.

      I once used LD micro so, that i made a program with it, compiled it to C and then used it with arduino. That was just a demo though and didn’t really amount to anything.

  2. To say that ” These systems are usually expensive, proprietary, and generally incapable of being reprogrammed. ” seems incredibly inaccurate to me . My experience with this is that a majority of systems in this country will fall into three categories.
    Allen Bradley, Siemens, and proprietary from machine manufacturers . American manufacturers tend to favor Allen Bradley and European manufacturers tend to favor Siemens. Only the proprietary systems don’t have available software. Allen Bradley and Siemens along with a number of smaller Plc manufacturers of a multitude of hardware and software options. There is specialized hardware and software for things like motion control, PID loops, temperature and hi speed inputs .
    If you are going to build simple and reliable, then there are manufacturers like Automation Direct that make very reliable and cost effective units. For example the Click series starts at 69 dollars for a 8 DC in / 6-point sinking DC output micro plc. The cost of the software is 10 dollars. You will also need a 24 volt power supply and a programming cable which costs 14 dollars. So for less than 100 dollars you can have almost everything you need.
    I personally find it hard to believe that a manufacturer will come out ahead with custom Plc equipment since both hardware and software already exists to meet almost any need.

    1. Ha you beat me to it too! Even the likes of Allen Bradley you can change the code ONLINE while the machine is running. Also going with well known brands means spares are readily available and any standard industrial sparky or control tech can come and fix it.
      Going to the software front, if you get micro logix you get free software, anything more complex than this they can afford the software anyway. Complex = costly

    2. As someone who works in automation, I can personally attest to Allen Bradley (and Telemecanique = Schneider Electric) having absolutely horrible software. Yeah, it works, but your 15 year old PLC system will probably need a 15 year old laptop running THAT EXACT VERSION of the PLC software. Virtualization? Good luck, it probably won’t work because the software was licensed to something stupid, like the serial number of the original hard drive.

      I spent half a week trying to get an Allen-Bradley safety controller to talk to my laptop, then realized it was broken because they had used the default FTDI usb-to-serial device ID but had customized the driver (instead of making their own device ID). Anything else use FTDI usb-to-serial? It resets the driver to the standard one and the AB software stops working. Worst part is it’s probably a one-day fix for the guy who designed the USB driver for the thing in the first place, but now I have to reserve an entire laptop for that AB software because the four other FTDI-based devices I use (servo drives, a competing safety controller, generic serial converters) all fall on their face when the AB software is “correctly” installed.

      1. My place of work actually uses RSLogix in XP VMWare images. Granted, we’re programming them over EtherNet/IP…so it’s a different set of shenanigans than serial. Using sockets involves sending messages from the PLC to the network module in a manner that resembles smoke signals more than any sane API from the past thirty years.

        I’m just glad my boss is letting me write a TCP printer driver in structured text instead of ladder logic.

        1. It’s actually a USB port that allows you to browse the networks the PLC can see, so in effect it’s a USB-to-serial-to-Ethernet/IP converter (and also DeviceNet, it has that too) if you want to be sadistic about it. It seems like patching one of the stupid components of RSLogix made the Ethernet/IP section work properly over the PC’s ethernet again, so once you’ve established an IP address – which can be done with BOOTP – you can avoid the USB-serial shenanigans entirely. But you shouldn’t have to…

      2. Have had no problem talking with an SLC500 and a PLC5 from a VM on a Mac running XP, with one type of USB to serial adapter from Aliexpress. HL-340 it might have been from memory? This was a couple of years ago.

        The licensing is usually to the MAC address of your network card, so when you run a VM, just change your MAC address to the one for the original machine.

  3. “These systems are usually expensive, proprietary, and generally incapable of being reprogrammed.”

    Umm, the “P” in PLC actually stands for Programmable… Programmable Logic Controller.

      1. I’ve programmed PLCs from Siemens, Crouzet, and Mitsubishi, and all three of them allow you to read the program from the memory, so the original “source code” is not needed.

        1. Only if you leave the source there. If you don’t, you can get code without variable names or nothing at all. Depends how the original programmer left things and features of the PLC.

          1. J is right. If you don’t have the program or the source is uploaded to the PLC. It is almost impossible to read a program without tags and symbols. Then you will have to make sense of a lot of inputs, outputs, memory bits and datablocks from adresses. You might have some luck if you have electrical diagrams or massive amounts of time.

            Most of the Siemens 300 and 400 series PLCs we use cannot save the source program.

            Besides most company’s buy complete systems without access to the PLC program. So the manufacturer of those systems wont put the source on the PLC and they will even lock more advanced function blocks.

          1. The Mitsubishi ones are ladder logic, and the Siemens LOGO! and Crouzet Millennium II/III are pictogram based where you drop a little picture of a timer, math or logic function, and then draw wires from it to the inputs, outputs and other functions. In the software, you just select “Read from PLC” and it loads in whatever is programed into them. Granted the Crouzet ones don’t save the layout of the pictograms (or whatever they are really called), and any custom naming is lost (“E-stop” would revert back to “Input 1” or whatever), but its all functioning and editable, you can change values and do whatever you need.

        2. That is not universal. Heck it’s not even vendor specific or guaranteed, and not even a feature that is based on the price of equipment.

          Actually I’ll go one step further. I’ve programmed several systems from Schneider, Allen Bradley, Kingfisher, Siemens, and even a few proprietary ones, and so far the only one which stores the full readable source code on the controller as been a Siemens unit.

          1. I’ve pulled complete projects from AB PLCs: SLC5, micro/compactlogix, etc etc. Now whether the original programmer locked the code is a different story. A lot of integrators like to keep it under lock and key because it is ‘their software’. It really just forces the end user to go back to them for any billable changes or trouble shooting.

  4. It is a very nice project but this isn’t going to be going into any factory anytime soon. You use a PLC when you just want a ready made box that works reliably 24×7 for years without needing any maintenance whilst in a dusty + hot environment. If for some reason the PLC does fail even after many years, you just order another one or a compatible one then upload your logic into it.

    They generally have a ton of filtering on the power supply and all I/O so they don’t glitch from the generally electrically noisy environment in a factory. This comes with the caveat that the maximum speed of the PLC is generally quite low due to the severe filtering.

    The first PLCs were made by Modicon and they were designed to withstand tesla coil discharges and very high + low temperatures.

    1. [Oliver], an engineering student in Ireland created a system for factories to develop their own application-specific PLCs as a final project for Automation Engineering.

      I would agree that this won’t be in any factory in the near future, but it was not intended to go into a factory. It was intended to get a good grade. If it goes into a factory somewhere, at some point, that could be a bonus. And since we aren’t hearing about it from Kickstarter, I don’t think it will be an issue.

  5. How can anyone take this seriously when it’s still on a freaking breadboard? What a complete joke. Industry wants 24/7 reliable gear from a trusted name who they can go to for support. Any breakdown or problem can cost a fortune in lost production or damaged stock.

    1. Breadboard is fine for demo, further more the point was custom PLCs, not something you buy off the shelf. Not to mention this was a final project, not something you publish in a science magazine. Why are being such a dick?

      No this is not a project, that will cause any changes in the industry, but that’s fine. How many people did a final project that changed any industry? I know i didn’t.

      The industry wants to keep paying for the over priced, piece of shit Siemens, that’s years and years behind anyone else, in software, hardware and licensing, because at some point siemens may have been the shit, but now it is just shit.

      1. How custom can a PLC get? The whole point of them is that they are programmable and can be adapted to your own scenario. I work in the industry and I see zero use case for this, even if it was nicely packaged and well built.

  6. This is a joke anyone who has worked in industry know they are completely programmable. From uranium mining to petroleum refining they use PLC and all are adapted for a specific purpose. Maybe try leaving college and working before you get some great ideas about how you are going to fix problems that don’t exist. The Irish should stick to potatoe farming they seem to have trouble with anything else.

    1. Bingo!

      The guy who did the project is looking for a problem that doesn’t exist.

      I worked as a Instrumentation electrician at Portland Cement many moons ago. Used Gould Modicon PLC’s, they were bullet proof and worked like a charm.

      1. Well hallo there, former colleague.

        More like an excuse to build stuff, someone already built.
        Don’t get me wrong, its a fascinating project. But its not really solving any problems.

  7. As an Automation Engineer I really like the idea of a PLC that can be programmed with more modern tools like Python. Current mainstream PLCs like those from Rockwell are amazingly robust but lag significantly behind in both IDE and programming tools. The robustness, ease of replacement, and ability to modify programs online with zero downtime mean that the typical PLC is not going away but I love projects like this that try to encourage outside the box thinking. I really would like to see outside pressure push for more customizable IDEs and programming options.

    1. I suppose a Python to LAD compiler could be conceived.. (I expect with some clauses for program size and function limitations). IEC have their Structured Control Language (SCL) for this kind of higher level programming.

      After all, the final executed machine code on a PLC would correspond to the same thing on a PC (admittedly, with an alternative processor architecture specific machine code).

  8. No way this catches on at any scale outside of a hobbyist. Companies are not going to spend hundreds of thousands of dollars on a custom machine, then try to save 10 grand on a homebrew plc. Cool project, not very useful though.

  9. I think this mostly an issue of silly ‘problem statements’ to justify a project. They always look like a solution in search of a problem. You see that projects all over the net. Instead of, “I just built it because I could” or “because I wanted to learn”, people come up with ridiculous justifications for their project.

    But then, that is what a final project ASKS you to do, and it isn’t a requirement that your justification be true, just that it it is there and that your project is a solution to it.

  10. PLC = ‘Programmable Logic Controller’. All PLC’s by their nature are programmable so article is wrong on that count.

    Expensive?, not really, sure if you go for something like a Siemens S7 or Allen Bradley RS Logix, but not if you for something like an EZ-PLC (about $200 and fully expandable).

    Proprietary, sure, but what he’s made sure looks proprietary to me. At least with other proprietary systems they have the ability to interface with each other using common networking protocols such as profi-bus, devicenet, canbus etc.

    8 opto-isolated channels. WOWEE. That’s the operator panel taken care of where’s the I/O to actually do something useful?

    Not meaning to piss on the guys parade but lets face it – it’s a toy. Very cool school project but not really newsworthy and definitely not going to be replacing ANY PLC any time soon, it simply is not fast or reliable enough.

    IMHO Hackaday is getting worse by the day, there really isn’t any worthy stuff posted here any more. It’s just run of the mill everyday stuff dressed up in such a way to make it seem like its cool.

    This is what I see when I read Hackaday…

    ‘Man retrofits alternative tungsten coil in vacuum receiver for ultimate enlightenment, maintenance companies are running scared.’

    When in reality it should simply be…

    Man changes lightbulb.

    Pull your finger out Hackaday.

    1. Fully agree. Hackaday is getting worse and more pointless every day.

      The title should be: How to build a simple PLC like controller concept and how to not write a good report about it.

      This is a nice project but it is obvious that the guy has no idea of the world outside the university. That’s ok, how should he know..
      How old are you when you finish college? The technical stuff might be ok for a student almost finished but the writing and layout? Come on…
      My German engineering professors would have slapped such a final project report into my face. His writing style makes me feel sick. It reads to me like a little boys diary, not like a technical paper it was ment to be.

      Not to mention that all the effort you would have to put into developing your own reliable PLC would exceed any off the shelf PLC costs.

      You need time for development, testing, documentation. You’ll need more reliable connections thus manufactured PCBs. Everything has to be put into some housings.

      When you did all this you come up with something only you can maintain and repair. It will have numberless flaws you did not find while testing your one piece of hardware and if some component fails you are screwed as you for sure did not build a spare unit.

      This guy had poor support/advice during his project and while writing the report. He did not realize the limits of his product nor did he present any real solution. Hell, he did not even name any sources or a comparison of capabilities and costs of his vs off the shelf PLCs. So what exactly is the point of his work? I don’t get it.

      Hackaday should not present his work like this. They should at least point out what is good and what is bad.
      Where is Hackaday’s journalistic contribution?

      1. Agree, the writing is horrible. From the “Introduction”:

        > For my Project I am Developing a system whereby Automation Engineers can develop their own P.L.C.s rather than by of the self products

        Five errors in a single sentence.

  11. This does kind of seem like an EE doing his final project on, “Hey, look, you can use coat hangers instead of expensive, proprietary wires!”, but if the professor allows it, guess you gotta do it.

    1. Let’s use a pair of hangers. Then we can use them for communication and industry can finally get rid of those expensive ethernet things which they stick to for so many years now…

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.