Hacker News new | past | comments | ask | show | jobs | submit login

It's not that they are a secret. It's that they are sometimes cost prohibitive and lock you into a proprietary, rigid ecosystem regardless of which PLC you chose.

PLCs are awesome for what they are intended for, and they work very well with each other/equipment made with PLCs in mind. but they are an immense pain to "integrate" into an existing non-industrial system. They are basically in their own world, with tooling that's specific to the PLC world, with very little open source support.

I agree that for some one off things like controlling a CNC, they might be more useful than a Frankenstein esp attached to some servo controllee though.




I agree on both counts.

You can easily get locked in. For anyone else who is just sort of lurking (you already know what i'll say).

Codesys is basically the standard here, and the way to "avoid" lock in - it has the most hardware support, and lots of vendors use it under the covers. This gives you some standard. It supports IEC 61131-3, happy to export it as text or whatever, and i've actually moved code between implementations.

You can use Codesys Control RTE on anything that runs windows or linux to get soft-realtime support.

Twincat is similar (it was based on codesys at one point but no longer).

Integration is, as you say, a pain outside of industrial land.

But i will admit i am amazed that i have an entire CNC machine built out of ethercat servo drives, I/O, VFD, vacuum pump, pneumatic valve actuators, limit switches, etc. They all are from different manufacturers. But damned if it doesn't work perfectly, and i only have an ethernet cable running between 99% of things where it used to require a metric ton of cables and you were just flinging bits and analog current around between things. 6 If i bothered to update the spindle to ethercat, the only real physical I/O would be brake power relays (unavoidable) and emergency stop. I do have one modbus thing (dust control flow monitor) i use as well.

It also is pretty good at hiding complexity - I can link a variable to an I/O input or analog value or VFD status word, know that it will deterministically update. I can set up a structure of bits for each pneumatic valve and map it to the manufacturer's single I/O word and again, get deterministic two-way updating and not worry about it.

Now, can i get status out of this thing? Well, no, to your point, either something else needs to speak modbus, ethercat, profinet, ethernet/ip, pure digital i/o to it.

These days i could publish status to MQTT, but something like "expose an HTTP port that outputs a bunch of JSON" is totally uncommon, and will net you strange looks. It's like you are asking about cold fusion.

Don't even get started on controlling it from the other side through something like that.

But yeah, otherwise paying 500 bucks for a license to ladder program a PLC is not a pleasant thing.


It's not Ardunino cheap but I've been a fan of Automation Direct, they've got a couple fairly capable PLCs and they don't try and charge you on the software and/or support.


As someone with some EtherCat and CNC experience, what’s your interface from gcode to your CNC? Have you written custom software or is there a EtherCat compatible gcode sender I’m unaware of?


There are actually many - almost every serious (IE 100k+) wood router is ethercat.

Centroid (known for the Acorn board) released Hickory, which does ethercat servo drives but not full ethercat support. It runs the same CNC software as Acorn/et al.

Vital Systems makes an ethercat motion controller that interfaces with Mach4. They let you use any ethercat device you have an ESI file for, and map the inputs/encoders/output types to Mach4 data of various sorts (digital inputs, analog inputs, encoders, etc).

MachMotion also has an interface to Mach4, theirs is a soft realtime motion controller based on RSI's (very well known/used for robotics) motion planning.

Those are the more standard ones.

Twincat also has an NC interface that supports gcode but you'd have to make your own UI.

LinuxCNC can do ethercat, but i've never considered it :)

There are also more standard hardware solutions. Syntec's hardware controller can do ethercat, etc.


Yeah honestly, I'm in awe of how... weirdly well PLCs work? Yes they aren't exactly super complex usually, but they just work together. You can know exactly what your Plc will work with, you can see what it does in its vendor supplied GUI, it can be basically plug and play.

In a way that would be impossible without the insular ecosystem that the PLC world has, but that really doesn't matter considering how well they do the job.

And yeah, I think the reason why it hides complexity pretty well is that they are meant to be field repairable by regular technicians who don't necessarily know a lot about the underlying systems. That also makes it super easy to use... once you set up everything that is haha.

Thank you for the pointers, I heard about codesys but I always assumed that vendors all used their own proprietary islands of standards and only paid lip service to Interop. I'm only passably familiar with Siemens PLCs so not super knowledgeable either!




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: