Wednesday, August 12, 2015

Regarding BECKHOFF


Who am I?

I am a control engineer, working at a national lab on such things as vacuum, machine protection, safety, and sample delivery systems. I studied mechatronics and applied physics and so I was a good fit for this job. I consider it my charge to modernize the instrumentation of the lab to increase our productivity. I am primarily concerned with building systems that are easy to use, reliable, and highly flexible.


I've been using Beckhoff stuff for almost 3 years. My first project using their hardware was an instrument to measure the energy of a free-electron-laser. We had to automate the selection of gasses, and protect the vacuum system against over pressurizing. We did most of the automation in the PLC code itself. I was using TwinCAT 2 at the time (shudder).
Later projects have included sample delivery systems with some motion control, vacuum systems that control turbo pumps and valves, and a few others.
I've looked at using Beckhoff for cheap analog IO, process monitoring, pressure control, radiation systems, and motion.



Working at a national lab means putting science first. Often times this means lowering the cost of hardware. People's time is sometimes considered to be "free." This is a gross misconception, but unfortunately is very pervasive where I work.
So the lowest cost hardware is often the winner. It has been some time since I really compared the price of a Beckhoff system to something like an Allen Bradley system. The last time I did, it was certainly the Beckhoff system which gave the lowest price. But even this comes at a cost...


Beckhoff boasts use of EtherCAT for their fieldbus. You can learn more about this fieldbus with Google's help, but basically: it's really fast, and scalable. I am a fan of EtherCAT, probably because it is the first fieldbus I was exposed to, and I don't have much experience with Profinet. I could of course expand my horizon and learn more about other field buses, but given how "open," EtherCAT is, there's not much point.


Closed DNE Open

Dear Beckhoff, 

Closed source PLC libraries, and a system based on Windows products does not meet my definition of open! An "open," product would be one where the source code for the engineering environment, and the PLC libraries were released (even under a NDA) to your users so that we could build the tools for any architecture we want. In a truly open system, I could choose program your PLC with a Codesys IDE that can run on Linux (at my own risk of course). In a truly open system, your PLC could run alongside Linux operating systems as well as Windows.

It is both frustrating and amusing when I see Beckhoff use, what has become something of a buzzword in the software world these days, "open," to describe their product. Either it's a bad translation from German, or they're really stretching the term. Their products are about as open as the meetings on the Trans-Pacific-Partnership (*thanks Obama!* ).


Poorly translated rough drafts of an engineer's brain dump at 1:00AM after just finishing their code module. What the heck Beckhoff? There is absolutely no quality control on their documentation. I could probably start a wiki and have better documentation of their products within a year (only thing stopping me at this point is principle). Their hardware is documented decently, but their software documentation is garbage.

Want to learn what "Change NetIDs?" means when you are working in the engineering environment? Be prepared to call tech-support (which is basically just a guy reading the same crap you are), or dig for hours through the poorly connected, .chm (ancient Microsoft, compiled help document) based, incomplete help.

That's right, the Beckhoff documentation is .chm. Not .pdf like any normal company might produce, but .chm. That's almost as bad as the USA still using the IPS unit system. I can't even open .chm documents on my windows computer until I set the permissions properly... How much do you estimate it would cost Beckhoff to rebuild their documentation in .pdf? $1000? $3000? Insanity!

There are features of TwinCAT 3 that aren't even released that are better documented than some of the basic features...

Can you put a price on good documentation?

Bait and Switch

Beckhoff loves to claim certain things about their products that can be, in the opinion of the author, a bit misleading.

For example, their analog input terminals, the EL3161 claims a range of 0..10V at a resolution of 16bits. Wow that's great, a precision of 10V/2^16 right? That gives roughly 200uV of reading per bit! Oh but wait, they immediately say sign included, ok... 10/2^15=300uV, still pretty good... hmm but what's this caveat of measuring error mean? <+/-0.3% of FSV. So really my error is up to +/- 300mV? So... my measurement is only guaranteed to 5 bits? Wow this really is a low bit analog input terminal... But hey it's cheap! I guess I find it rude when a product is advertised as 16-bits and really only delivers 5 usable bits. It seems, shady... Maybe this isn't just Beckhoff, but the PLC analog input market in general. Perhaps everyone advertises this way...

In the most recent edition of the TwinCAT engineering environment, Beckhoff was happy to announce that their IDE now supported SVN and other source management software. I was excited to try it. I was disappointed. The SVN interface is buggy, constantly loses my repository address, if ever there is a conflict in the project files, the IDE either crashes or dumps my project files. I am then forced to use an outside tool to resolve the conflicts. Not very inspiring...

Going Forward

Truly open PLC

If a truly open PLC platform manifested overnight, I would leave Beckhoff. It would be programmable from any operating system, and be able to run alongside any operating system. It's libraries would still cost money, but at least they would be open and modifiable. Beckhoff should stop calling it's products open until they actually are.

Sticking with it

All in all, Beckhoff products have been just OK for me. I think Beckhoff could lead the industry and set a new standard for PLC programming by adopting some of the attitudes of the true open source movement.

Here's some ideas:
  1. Spend some money on creating better documentation written in English. Or set up and maintain a Wiki that approved members can edit/ annotate.
  2. Create a customer forum and make it free to join. Devote some of your tech support resources to answering questions in the forums, but make it possible for experienced users to help too. LinkedIn currently has a Beckhoff/ TwinCAT discussion group, but it's hardly enough.
  3. Create a code sharing marketplace. Allow users to submit/ collaborate on modules. Be modern!
  4. Don't release documentation on products that don't yet exist.
  5. Fix your website. Frames were cool in 1999. Your website is a joke.
At this point, the only thing holding me back from leaving Beckhoff is another cost analysis. If I find the margin is too slim, I'll leave. I hear Phoenix Contact has nice modules... I wonder how their documentation is.