I reviewed TwinCAT 3 in February of 2013 and it was a mixed bag. I lauded the amazing performance but warned about the reliability problems. I think it’s time to revisit the topic.
Things have improved greatly. When I wrote that review we had 2 production systems running TwinCAT 3 (the 32-bit version). We’re now up to 5 production systems with another on the way, all running version 3.1.4016.5 (which is a 64-bit version). The product has been more stable with each release. First we tried switching to a Beckhoff industrial PC, but we still experienced two blue screen crashes. We’ve then turned off anti-virus and disabled automatic windows updates. So far I haven’t seen another blue screen on that system, for about two months.
Manually installing windows updates isn’t a big deal, but it’s unfortunate to be running a PC-based control system with no anti-virus. Our industrial PCs are blocked from going online, and each one is behind a firewall that separates it from our corporate network, but it’s still a risk I don’t want to take. Industrial Control vendors continually tell us their products aren’t supported if you run anti-virus, and I don’t see how anyone can make statements like that in this day and age.
The performance of the runtime (ladder logic) and EtherCAT I/O is still absolutely amazing.
While the IDE is much better than the TwinCAT 2 system, the editor is still quite slow (even on a Core-i7 with a solid state drive).
The Scope is now integrated right into the IDE, and I can’t give that tool enough accolades. I recently had to use Rockwell’s integrated scope for ControlLogix 5000 and it’s pitiful in comparison to the TwinCAT 3 scope.
The TwinSAFE safety PLC editor is light years beyond the TwinCAT 2 editor, but it’s still clunky. It particularly sucks when you install a new revision of TwinCAT 3 and it has to upgrade the safety project to whatever new file format it has. We recently did this, then had to add a new 4-input safety card to the design, and it wouldn’t build the safety project because of a collision on the connection ID. It took us a couple hours of fiddling and we eventually had to manually set the connection ID to a valid value to get it to work. On another occasion, after a version upgrade, I had to go in and add missing lines in the safety program save file because it didn’t seem to upgrade the file format properly (I did this by comparing the save file to another one created in the new version).
The process of upgrading to a new TwinCAT 3 version often involves subtle problems. The rather infamous 3.1.4013 version actually broke the persistent variable feature, so if you restarted your controller, all the persistent variables would be lost. They quickly released a fix, but not before we experienced a bit of pain when I tried it on one of our systems. I’m really stunned that a bug this big and this obvious could actually be released. It’s almost as if Beckhoff doesn’t have a dedicated software testing department performing regression tests before new versions are released, but certainly nobody would develop commercial software like this without a software testing department, would they? That’s a frightening thought.
I ended my previous review by saying I couldn’t recommend TwinCAT 3 at this time. I’m prepared to change my tune a bit. I think TwinCAT 3 is now solid enough for a production environment, but I caution that it’s still a little rough around the edges.
Edit: Note that I’ve since added a TwinCAT 3 Tutorial section to this site.
Thanks for sharing your experiences. It is nice to read about someone using TwinCAT 3 in my neck of the woods. We completed our first production installation with TwinCAT 3.1 / TwinSafe a few months back. Troubleshooting TwinSafe was giving us headaches in TwinCAT 2 so we made the jump to TC3. I am now working on our second large TC3 project and it is interesting to hear about your experiences. Overall, I am pleased – the price, flexibility, and performance of Beckhoff seems to be top of the heap. I just wish TC2 and TC3 played together on the same development PC a little better. I have had a difficult time getting them to mingle.
Very helpful information. We have three TWinCAT 3.1 systems (one safety) in production and working fine (now). I agree with your opinion that the latest version is quite stable. Interesting to hear that you like the Scope view, it seemed a bit complicated to me. I will take some time to figure out how it works!
We choose TwinCat 3 as a successor for another PC based controlsystem (Proconos, which is no longer existing). Our company usually works with classic PLC’s (Siemens 300/400 mainly) but this project required a fast and flexible motion control system, using several types of drives (servo, steppers, DC motors), that’s how we ended up with Beckhoff. I was a little nervous at first to use this “new†version, since Beckhoff – Netherlands still mainly sells Twincat 2 (even though Twincat 3 has been around for several years now). Siemens pushes their customers to the new TIA portal platform much faster. Twincat 3 turned out more reliable than expected. We didn’t experience blue screens. Sometimes it crashes while performing an online-update (without stopping the PLC), but stopping the target is not a major issue for our application. For applications that cannot be stopped so easily, I wouldn’t use a PC based controlsystem (in general), that’s for sure.
Using Microsoft Visual Studio as an IDE is just wonderful. It is sooo much faster and easier to use than Siemens TIA portal. All the online actions are also much faster than I am used to. Our runtime target has only a small Intel Atom based CPU, but it runs the realtime task and a visual basic (.NET) userinterface smoothly. Since we were porting from Proconos, we used OPC to connect the HMI with the target, which works fine too. The ADS library works faster, but using OPC, we maintain the PLC platform independent userinterface. We didn’t use Microsoft’s version control yet, but that seems like an interesting feature.
We switched from CAN-open to Ethercat (using the Beckhoff NC-PTP library, up to 10 axis). Our previous controlsystem didn’t have any libraries for motion or advanced CAN-open communication, so this really saved us a lot of time. The update rate from encoders is very fast compared with the older CAN-open drives. We are using Schneider servo and stepper drives. Using original Beckhoff servo’s would speed things up even more, but the Schneider drives had some commercial advantages. Also, the availability of a lot of different I/O cards is a big plus. We are driving small DC motors directly without additional amplifiers (PWM modulating), communicating with SMC linear actuators using a Modbus protocol, etc. The hardware is relatively cheap. Note that for some software libraries you need to pay additional runtime license fees, like a temperature PID controller which is standard for most other PLC’s I know.
As a software engineer who also uses object oriented programming in .NET, Twincat 3 is a huge step forward, compared with classic PLC’s. It allows you to use derived classes, methods, properties: all the things you are used to in PC programming languages. The SFC editor also works much better than, for example, using Siemens. It actually gives you a fairly good readable program with good online-visualisation. The readability of the FUP editor is also very nice. Commonly used operations such as rising- and falling edge detection can be added to the input of block, without the declaration of a separate P_TRIG block. It keeps the networks compact. The online scope turned out to be a very useful tool while debugging. The newer generation Siemens PLC’s offer a trace function now too, but older PLC’s don’t.
Our project also uses TwinSafe. Once you know how to configure it, it is easy to use. But I would recommend a short course to get started with it. Everything else in Twincat 3 I learned by using (the deadline was too tight to get training first 😉 ). I can recommend Twincat 3.
@HansPutman – thanks for the very detailed review. It helps to have multiple experiences documented.
Regarding TwinSAFE, note that I *just* published a TwinSAFE chapter in my TwinCAT 3 tutorial. Sorry I was a bit late to be of use to you, but hopefully it will help others who are getting used to TwinCAT 3 for the first time.
What’s the best way to come up to speed on this ?
I’m struggling through the file-tree based help topics on Beckhoff’s website and I just about don’t have any hair left.
@David – I created a TwinCAT 3 Tutorial to help people that are starting out.
After 20 years of working in the automation industry in different companis such as Benz , Volvo and NOV , I say TwinCat and Bekhoff PLC’s SUCKS . Do’nt wast your money on them. Siemens should always be your first choice along with Omron and Allen Bradly