Manufacturing AUTOMATION

AUTOMATION SOFTWARE – CoDeSys V 3.0: IEC-based programming software

March 15, 2007
By Jeremy Pollard

CoDeSys software, first released in 2005, is designed for OEMs and hardware vendors who would rather use pre-built software than their own. The latest release of 3S Inc.’s flagship programming software, version 3.0, is an entirely re-written version from the previous release, version 2.3. Using the most recent development environments from Microsoft and the .Net framework, 3S has created a visually appealing and very functional integrated development environment (IDE) for programming in the IEC-61131 framework and specification.

This isn’t, however, a column on IEC-61131. It’s a re-visitation to IEC-based programming software, which historically lacked the features and functionality that more mature programming products have (e.g. RSLogix from Rockwell Automation).

The “Quick Start” on the company’s website is still based on version 2.3, as is the demo program. But you can import the files as they are converted to the new file formats.

The installation went well. The software had to install Microsoft’s .Net framework version 2.0, which suggests that my operating system software needs to be updated.


It automatically started two services – “Gateway” and “PLC Control.” These services are used to provide communications between the IDE and the defined target PLC at runtime.

There is a lot to set up in an IEC environment. However, you only need to know the target PLC or PAC (programmable automation controller) at the end of the process to map the inputs and outputs to the variables that you have created.

The editor is very clean. There are many windows and menu selections, which, unlike the help system, are context sensitive.

From my experience, the help system did not provide easy access to things you need to know. It assumes that you are already familiar with some of the concepts of IEC and of 3S’s software approach. In my opinion, this has always been the case with most IEC-based software environments, and one of the reasons why it has not been embraced by North American industry.

I did, however, like the way the help file was structured such that the links to certain topics were hidden until asked for.

The program organizational units (POUs) are the program files used for the logic in the control system, and the devices identify the hardware (target PLC). The POUs can have all five IEC languages, as well as a continuous function chart.

Once you have created a POU (e.g. ladder diagram), you can create the variables you need in the structured text window. The tabbed interface of the IDE makes it easy to navigate back and forth.

There is no real syntax checking, which was disappointing. An error message appeared because I used a semicolon instead of a colon. Line numbers from the source programs were given, however, which led me in the right direction. Another disappointment was that keyboards are not as well supported in this package compared to some other software packages. I find using the mouse for most functions tedious and time-consuming.

Creating ladder diagrams is painless, but I wouldn’t say that it is a very fast development environment. Using the auto declare function allows you to enter variables on the fly, which aids in creating the database.

Building a function block diagram is also relatively painless. It might be my unfamiliarity with the software, but there doesn’t seem to be any quick way of connecting devices and I/O points.

Once the project has been built and compiled without errors, you can run the project in simulation mode. This will help you in some basic application troubleshooting without having the physical hardware available.

One of my pet peeves is the lack of on-screen information. Anyone who has used RSLogix cannot do without the address descriptors. A tagname (which is the only way you can refer to a memory space) cannot adequately identify the input or output. Off project documentation is needed to assist the user to understand and troubleshoot the application.

There is a built-in HMI application that can be used for basic interface. The interface is much richer and more functional than the previous version; however, the phrase “not yet implemented” appears in the help file frequently. Some OEMs might wait for the completion of some of the functionality before migrating, but you can bet that they will.

I would not ignore this IEC-based software package. If you are an IEC user, you can’t afford to stay in the dark.

Name: CoDeSys
Version: 3.0 SP2
Vendor: 3S Inc. (
Application: Control device programming
Price: Development environment is free

Jeremy Pollard is a 25-year veteran of the industrial automation industry. He has worked as a systems integrator, consultant and an educator in the field. Jeremy can be reached at

Print this page


Story continue below