PLC Software – Features You Want!

One of the biggest factors in any PLC buying decision is the capability of the programming software. How easy is it to use? What does it offer? PLC hardware is only half of the equation, and who wants to buy a controller only to find out the software is lacking the basics? Been there, done that! So what should you expect or want in a PLC programming software?

Since each user has his/her own needs and preferences when programming a PLC, that’s a hard question to answer. However, here are some thoughts on features and tools that we believe are helpful and that you’ll want to consider in your next PLC software package.

Built-in Simulator

A built-in simulator is extremely useful in PLC project development. The simulator provides a virtual PLC that you can use to test your logic without downloading to an actual PLC. A good simulator will emulate analog and discrete I/O and provide access to logic elements such as timers, counters, control bits, etc.


Hot Swapping and Run Time Transfers

Once you have your project up and running, system modifications can become much harder. Imagine having to schedule a shutdown at your plant in order to replace an I/O module or change a rung of code. If your software allows for hot swapping and run time edits, then don’t worry. Hot swapping means replacing system modules while the system is HOT or powered, and run time transfers allow the user to transfer project edits into the CPU without stopping the CPU scan. These two software features are important because they prevent costly shutdowns and production losses whenever hardware and/or software changes are needed.

Auto Discovery

A huge timesaver! When software offers automatic hardware detection, everybody wins! With this feature, in order to configure the hardware setup of your PLC, all you do is install each I/O module in the base and power it up. The software will automatically discover the installed modules and assign physical I/O tags based on each module’s position in the base. From there you are ready to program with the auto-configured settings or you can reconfigure the setup and assign new tags manually. Some software can also auto detect other connected devices, such as VFDs, to make your job even easier.

AutoDiscovered Screenshot

Data View and Histograms

Data View windows allow users to monitor and manipulate PLC logic values in real time. Although most PLC software will have a way to do this, there are some advanced capabilities, graphical trend charts for instance, that you may want to keep an eye out for. Also, bit and word histograms allow you to sample and plot logic values over time. These can be set up to sample data as often as you choose and can be very helpful when troubleshooting.




Software user accounts allow you to control who has access to your PLC and what they are allowed to do with that access. System security is an important feature that good PLC software should have.

Search and Cross Reference

Three PLC software functions you will use often are the Search, Search and Replace and Cross Reference. These functions will tell you if an address or variable is being used, where it is located, and allow you to easily make changes, if needed. One thing to consider is how well the PLC software performs these functions and if it offers the usability you need. See what kind of searches are allowed (tag, address, comment, instruction or partial) and what filtering options are available.

Help Files

Good PLC programming software should have good help files. Embedded help files are a great asset when programming in a new environment or when troubleshooting. Help files should provide information in a way that is easy to comprehend with visuals, screenshots and application examples. They should also include the ability to search for items and be printable.



Another thing to consider is what connection options are available when downloading or working online. A lot of PLCs today offer plug-and-play USB connections for programming, which are fast and easy to use but require direct connections between the PC and CPU. With networked PLCs, Ethernet is typically the connection method (unless you are using a serial network) but you may want to verify if any additional communication software is required with these connections. That software may cause unwanted headaches if it can’t recognize connected controllers. One last option you may find helpful when it comes to downloading is USB project transfers. See if your PLC allows projects to be downloaded via an onboard USB port. This can be important if you have remote PLCs that aren’t easily accessible with a PC.

Customizable Layouts

No matter what the PLC software has to offer, none of it matters if it isn’t user friendly. Layouts that are fully customizable with dockability, display options, view options, accessibility options, and text options allow you to personalize your programming experience to fit your needs.

Project Compare

“Why is this message telling me my project is different from the one on the CPU?!” We’ve all been there. That’s what makes the project compare feature so valuable. It allows you to perform project-to-project comparisons and get detailed information on the differences. This can be very useful when going online or when trying to remember what you changed in the last revision.

Compare Project

Debugging Tools

Debugging tools assist with locating and repairing bugs in your code by allowing you to slowly step through the execution of your logic. Step from one rung to the next, execute multiple rungs, run one complete scan or pause the execution all together. Some debugging tools also allow you to suspend selected tasks or routines and force watchdog errors.


Web Server and Mobile Apps

With Web server functionality, you can access a PLC remotely using a standard Web browser and the configured IP address of your CPU. View system diagnostic data or process values offsite. Mobile apps are also very popular and you may want to see if the PLC you are interested in has mobile capabilities. This way you can monitor system operations on the go from anywhere using a Wi-Fi or cellular network connection.

secure-web-server w app

Data Logging

Data logging is definitely an option you’ll want to consider with any PLC purchase. It provides built-in data storage of system errors and logic values. Most PLCs offer this storage in a removable USB format with storage capacities ranging from 1GB to 32GB. This data is extremely helpful when trying to hunt down the dreaded intermittent fault, and can also be used to track system efficiency or predict future breakdowns.


Integrated email capabilities allow your PLC to notify you and any other needed personnel when critical events occur at your facility. This way you can stay informed about any possible failures and can take immediate corrective action.


PID Options

For all the process control engineers out there, this is definitely one you’ll want to watch for. Check to see how easy it is to implement PID loops in your program. Are there integrated PID instructions and how easy is it to monitor and tune the process? Some PLC software provides auto tuning, PID simulators and other helpful tools dedicated to PID loops.


Powerful Math Functions

Powerful math functions that are easy to use are a definite plus to any PLC software. The ability to enter complex mathematical expressions (Ex. SQRT((D1/D2)*(D2/D3))) with floating points and/or integers directly into an editor, without having to load accumulators or use multiple lines of code, is a big timesaver.


Task Manager

The task manager is a great way to organize and control the execution cycle of your program without any extra lines of code. Breaking your program into subroutines that execute only when needed (every scan, every second, first scan only, or when called) can be a lifesaver when scan time is a concern.

Integrated Function Blocks

Integrated function blocks make programming a lot faster. Instead of coding a large amount of ladder logic to handle a complex task, function blocks can do the work for you. PID loops, motion commands, communication functions, etc., can be handled quickly and easily with configurable function blocks.


Other things to consider…

Programming Languages

Although ladder logic is still by far the preferred programming language in our industry, there are other languages that you may find appealing. Structured text, instruction lists, sequential function charts and function block diagrams are all options that are available. If you come from a computer programming world you might prefer the “If…Then” loops that structured text offers, or if you are experienced with assembly language, instruction list programming might be for you. Each language offers something different, but choose the one that is easiest for you to program, troubleshoot and maintain.

Tag name vs. Fixed memory

There are many preferences and objections to both but you should definitely consider which is most useful to you and your particular application. Tag name databases can be easily integrated with HMIs and other database software but fixed memory controllers may offer better searchability. If you are unsure, feel free to download our tag name based Productivity Suite software or our fixed memory Do-more Designer software to get a feel for the differences. They are both free!

This list is in no way intended to encompass every aspect of “good” PLC software but it provides you with some features and tools that we think are important and that we think would greatly help with your PLC project development. If you would like to get more information on the PLC software we offer, take them for a test run, or watch informative videos on how to use our software, check out the links below:


eBook CTA green horizontal swoosh


© 2015 Library at
Owned and Operated by