Controllers : Universal Features

What is a SoftPLC®?

A SoftPLC® is a high-performance, feature-rich Programmable Automation Controller (PAC), that merges the functions of a proprietary PLC with the benefits of an open architecture design and the power of computers. SoftPLC's combine the functions of:

  • PLC's
  • Data Loggers
  • Communications Gateways
  • Embedded Computers

Here's a short video that describes how SoftPLC's are unique:

SoftPLC Controllers are so-named because at the heart of each system is the SoftPLC Control Software, which is advanced embedded software technology (the "firmware"). With this common core, all SoftPLC's have the same features/functions, use the same development software, and user applications are able to run on different controller hardware models. We offer a range of controllers to meet our customer's widely varying needs - SoftPLC systems range from embedded, low-I/O count data loggers, to RTU's, to stand-alone machine controllers, to networked line controls, and up to complete plant-wide, redundant, distributed control systems.

Most SoftPLC users select one of our packaged, off-the-shelf controller hardware solutions, choosing the best fit hardware for their application. However, OEM customers can design their own SoftPLC-based controllers, working with our engineering department to adapt the SoftPLC runtime software for a particular hardware platform. Contact us to discuss OEM adaptations.

    Common Features, Variable Hardware

    All SoftPLC controller CPU's provide the same rich set of features. Some of these are:

    • Reliable solution for both process and machine control
    • Deterministic, high speed program execution
    • "Unlimited" memory for user logic and data table
    • Ladder logic and data table addressing similar to Allen-Bradley PLC-5/SLC-500/MicroLogix
    • Data logging
    • Fully documented applications, all documentation resides in the SoftPLC controller
    • Interfaces to I/O systems and other devices from hundreds of vendors
    • Supports numerous communication protocols - ethernet, serial and industrial networks
    • Compatible with all HMI/SCADA products, including Visual Basic/C# programs
    • Supports user add-on functions and drivers written in C++

    Optional software features can be added to any system, including:

    • Embedded web server
    • Email/Text messaging
    • Embedded firewall with VPN
    • Hot Standby/Redundancy

    All SoftPLC's are programmed, configured, and maintained with TOPDOC NexGen programming software.


    Specifications directly related to hardware (eg: number of ports, memory, etc.) vary by SoftPLC Controller model. The specifications below apply to the embedded SoftPLC control software, and therefore apply to all Controller models.

    • ~100M rungs of ladder logic
    • ~100M data table elements
    • Over 16K digital I/O points plus unlimited analog (may be limited by I/O hardware)
    • 16 different I/O or device drivers can be used simultaneously
    • Supports up to 32 COM ports
    • Supports up to 32 communication network channels
    • Supports online run-mode programming and I/O forcing

    Performance & Operation

    The SoftPLC runtime control software is the “firmware” in SoftPLC Controllers, and is a multi-tasking 64-bit "kernel". SoftPLC provides deterministic control, which means for a given application and set of hardware, you will see a consistent scan time.

    When the system powers up, SoftPLC automatically loads and begins running the selected control application. SoftPLC has a synchronous scan cycle – it reads input data, executes the user logic program, and updates output data. Simultaneously, SoftPLC processes communication requests through the configured ports, and runs other processes such as the optional web server, user loadable functions, and the firewall.


    SoftPLC has 4 operating modes, which can be user controlled via TOPDOC NexGen or through an optional hardware keyswitch (provided on some controller models):

    • Program/Remote Program – Communications are active, but logic and I/O scan are not
    • Run/Remote Run – Normal operation
    • Remote Test – Communications, logic and input scan are active, but output scan is not
    • Fault – (Normally caused by user logic errors) Communications are active, but logic and I/O scan are not

    SoftPLC provides true online run-mode programming. There is no “compile” process - no need to stop the machine/process to edit program logic.


    Throughput performance (scan time) is based on the specific controller model, I/O bus(es) and hardware; the number of optional processes running; as well as the application program instruction mix. In general, SoftPLC scan times are faster than proprietary PLC's and PAC's. If extremely fast performance is required, this can easily be achieved by proper hardware selection and application design.

    PLC-5 Smart SoftPLC
    Hardbook SoftPLC
    235ms 17ms 1.5ms Total PLC-5 memory used: 40698 words, 15590 DataTable
    29ms 23ms 1.5ms 1820 rungs, 64 DataTable files
    0.6µs 1.5µs 0.03µs Rung with XIC + OTE
    352µs 4.7µs 0.067µs Rung with MUL using Floats

    SoftPLC A-B Controller Comment
    2 msec
    Smart SoftPLC (166MHz ARM CPU)
    56 msec
    8 msec
    Hardbook SoftPLC (Celeron 500MHz CPU)
    230 msec
    100K ladder program
    1 msec
    Hardbook SoftPLC (P100MHz CPU)
    42 msec
    Program included 35 PID loops which SoftPLC executed every scan -
    the PLC-5 PID execution was staggered
    7 msec
    Hardbook SoftPLC (1GHz Pentium CPU)
    not possible Over 10,000 rungs + 1M words of data table in application
    Note: The above examples compare against PLC-5/SLC-500 since the logic is directly convertible (“apples to apples” comparison). Most normal-large size applications on 800MHz or faster SoftPLC CPU's scan in less than 2 msec.

    Internal Structure

    SoftPLC runs on GatecraftTM Linux, which is an embedded Linux operating system distribution developed by SoftPLC Corporation. Using Linux as a platform provides benefits such as background logging of critical operations, support for open communication standards like SSH, PPP, SNMP and others.

    However, most users require no knowledge of Linux to use SoftPLC - the operating system is transparent and users interact with SoftPLC through TOPDOC NexGen software only (much like users of Rockwell Logix controllers have no knowledge/need to use the underlying O/S in those systems).

    SoftPLC has been designed as an embedded system, to run in hardware with no fragile components such as a hard drive, monitor or user input device (keyboard, mouse, touchscreen). Also, unlike many "PC-based" control software products, SoftPLC doesn't put your system at risk by running on an office platform like Windows or Windows “band-aids” - there is no need to be concerned about “the blue screen of death”, or other applications running in the computer causing the controller to become non-deterministic or to fail. SoftPLC Controllers are designed to run 365 days a year, 24 hours per day – and do!


    SoftPLC controllers are programmed, maintained and configured with TOPDOC® NexGen development software, which is available for both Windows and Linux. TOPDOC NexGen runs on a PC and connects to the SoftPLC via Ethernet.

    nexgen ladderSoftPLC's are programmed in industry standard ladder logic. Maintenance personnel are already trained and familiar with the programming and troubleshooting of ladder logic based control systems. This makes the transition from "hard" PLC's to SoftPLC much easier.

    In fact, SoftPLC's logic is modeled after the Allen-Bradley PLC-5/SLC-500/MicroLogix style of ladder. So anyone who has ever used an A-B PLC has very little learning curve to program or troubleshoot a SoftPLC-based system. Existing A-B PLC programs can be converted to run in a SoftPLC. Most programs import 95% or better with our automated conversion utilities.

    SoftPLC application programs can be huge! Ladder programs can contain up to 9,998 program files of up to 10,000 rungs each, arranged as a main program with subroutines.

    Base Instruction Set

    SoftPLC's comprehensive set of base ladder instructions are a superset of the Allen-Bradley PLC-5 and SLC-500. In fact, they are similar enough that an existing PLC-2/PLC, PLC-5, SLC-500, or PLC-3 program can be easily converted, then loaded into SoftPLC. Standard ladder instructions include:

    • Contacts, Coils & Branching
    • Timers/Counters
    • Data Comparisons/Moves
    • Math & Logical Operations
    • Shift Registers/Sequencers
    • Jumps, Subroutines, For/Next
    • ASCII String Functions
    • Specials (PID, Peer-to-Peer Messages, Diagnostics)

    Details on SoftPLC's instruction set and their usage is found in the TOPDOC NexGen help system. The TOPDOC NexGen demo includes the help system (available from the "Downloads" tab).

    Loadable Functions

    The SoftPLC instruction set is user extensible through the use of loadable functions called TLM's (TOPDOC Loadable Modules). A single TLM can contain any number of individual instructions, called TLI's (TOPDOC Loadable Instructions), and up to 16 TLM's can be loaded simultaneously, allowing a SoftPLC to support up to hundreds of additional instructions.

    TLM's can be interfaces to devices, calculations, data handling functions, database interface functions, and more - the possibilities are virtually endless! We provide a number of instruction TLM's, many of which are free. Some of these are:

    • COMGENIUS - useful for general purpose ASCII or Modbus communications to/from RS-232, -422 or -485 devices through SoftPLC's COM ports
    • Instructions used to send email/text messages (including attachments) to computers, smart phones, etc. (SENDMAIL)
    • Instructions for event or time driven data logging (LOGDATA, LOGGER)
    • Bi-directional communications to SoftPLC's Remote Management Platform, TagWell
    • Instructions to communicate to other vendor's devices (eg: motion controller boards, bus level I/O)
    • Industry/application specific instructions to solve specific needs (eg: CONVEYOR instruction for part sorting/tracking applications)

    TLM's are created in C/C++ language with the SoftPLC Programmer's Toolkit. SoftPLC Corporation can develop TLM's for you as well. Contact us to discuss your needs. We may already have a TLM that performs the function, or have something similar that can be quickly modified.

    TOPDOC NexGen Ladder PanelTOPDOC dynamically learns about any TLI's from SoftPLC. These instructions are displayed on the screen like other standard ladder logic instructions, complete with instruction and parameter names, customized by the instruction designer (not simply as "Custom Routine", "Parameter A", " Parameter B", etc.)

    TLI's are even integrated into TOPDOC's editing menu system! TLI's you select to use appear in the pull-down menu system for program editing: both on-line and off-line.

    Data Table

    data table navSoftPLC's data table can be configured with up to 9,997 files of 10,000 elements each (9997 files of 10,000 elements per file, plus 16K I/O tables and a SoftPLC Status file). Data table files can be independently user configured to store inputs, outputs, binary (bit), integers, timers, counters, hexadecimal, floating point, PID, strings, peer-peer Message Blocks, and Block Transfer blocks (for use specifically with Allen-Bradley RIO). The Status file contains controller information such as scan time, operating mode, fault codes, real-time clock values, and more.

    SoftPLC's data table addressing mimics that of the Allen-Bradley PLC-5/SLC-500 which means:

    • Users familiar with A-B PLC's have little or no learning curve
    • Operator Interface products (HMI/SCADA) can communicate with SoftPLC using the vendor's Allen-Bradley PLC drivers
    • Other products can communicate with SoftPLC using the vendor's Allen-Bradley PLC drivers (scales, robots, RFID readers, vision systems, drives, etc.)

    data table navEvery data table element can be accessed within the ladder logic, as well as be viewed/manipulated manually from TOPDOC's data table editor. Non-consecutive data table elements that are frequently used together can be assembled into "Watch-Lists", which are stored in the SoftPLC.

    Tagname (Symbolic) Programming

    Once Tagnames have been created for data table elements, TOPDOC NexGen supports programming, editing, searching, and other functions by Tagname or address. Tagnames and Descriptors can be created/edited in an external editor (such as a spreadsheet program) and then pasted into TOPDOC, making it easy to reuse Tagnames between an HMI/SCADA database and TOPDOC/SoftPLC.

    Internal Database

    SoftPLC is the only controller which offers this powerful and useful capability, which we call "Property Tables." Users can configure a database in SoftPLC that loads and resides in RAM memory when it is running. The database consists of keyed tables that can store data such as recipes or location of goods in a warehouse. Up to 10,000 tables can be created. Ladder logic instructions provide the ability to retrieve records and use the data in your application logic.

    As a RAM memory resident database, Property Tables allow crucial process data to be accessed in one or two high speed program scans, rather than having to wait for the data to come from an external source (eg: another computer or controller) through a communications network. Property Tables open the door to a whole host of cost savings by minimizing the steps and hardware required to store and manage the data, as well as reducing integration time of moving the data from one location to another. Having the data in the SoftPLC can also eliminate the need for an IT department to manage the hardware, software, and communications for a separate database.

  • Documentation

    SoftPLC application files (APP's) include not only logic and data table but also all documentation. APP's reside in the SoftPLC, so users never experience the problem of going online to an installed SoftPLC and not having the latest documentation, or having to separately maintain and backup program and documentation files. APP documentation includes:

    • Tagnames (20 character short description)
    • Address Descriptors (long description)
    • Rung Comments
    • Program File Comments/Tags, Data Table File Comments/Tags, APP Comment
    • Program Sections (hot links to specific rungs within a subroutine)
    • Watch Lists (non-consecutive data table views)
    • Bookmarks (ladder rungs and data table address hotlinks)
    Tagname (Symbolic) Programming

    Once Tagnames have been created, TOPDOC NexGen supports programming, editing, searching, and other functions by Tagname or address. Tagnames and Descriptors can be created/edited in an external editor (such as a spreadsheet program) and then pasted into TOPDOC, making it easy to reuse Tagnames between an HMI/SCADA database and TOPDOC/SoftPLC.

    I/O Capabilities

    SoftPLC Corporation offers an excellent modular I/O product called Tealware™. However, as an open architecture product, SoftPLC controllers can also be connected to I/O systems and devices from literally hundreds of vendors.

    SoftPLC's communicate to I/O devices and networks through the use of loadable software I/O drivers. We have developed and support drivers for most popular I/O systems, and these drivers are included with SoftPLC Control Software at no charge. SoftPLC I/O drivers are Loadable Modules (TLM's) and, like user-defined instructions, can be easily developed through the use of the SoftPLC Programmer's Toolkit. If you are interested in using an I/O system not listed, please contact SoftPLC Corporation. The possibilities are virtually endless!

    I/O drivers currently included with SoftPLC are listed in our Resource Library, along with detailed information on the hardware interfaces required and how to configure and use the drivers. Some of the most popular drivers are:

    SoftPLC's maximum I/O capacity is 8192 Digital Inputs plus 8192 Digital Outputs plus unlimited Analog I/O. I/O forcing is independently controllable for all digital inputs and outputs. There is no limit to the analog I/O capacity. What's more, you can load up to 16 different I/O drivers simultaneously, allowing a single SoftPLC system to utilize a mix of different communication interfaces and vendor I/O systems.

    For Allen-Bradley Remote I/O, Block Transfer is supported for special modules or other devices that can connect to the RIO link (e.g.: drives, operator interfaces). For some other I/O systems, custom ladder instructions (TLI's) are included with the driver for communication troubleshooting, network tuning, or support of special modules (e.g.: multiplexer or positioning cards).

    SoftPLC also supports an optional keyswitch driver, allowing your SoftPLC to support local operating mode control, in addition to the standard remote mode control from TOPDOC NexGen.

    Motion Control

    SoftPLC provides a number of options for motion control. Simple control can be accomplished via I/O modules or serial connections using COMGENIUS. For more complex, multi-axis control, SoftPLC can interface to motion controllers from many vendors using industry standard buses such as Ethernet, SERCOS, Profibus and others. Additionally, PC-based motion cards can be installed in certain SoftPLC Controllers, with TLI's used to communicate tuning, scaling, trajectory, and velocity data over the backplane. SoftPLC can also send data to each axis on an event-driven or timed basis. Additional interfaces can be easily developed through the use of the SoftPLC Programmer's Toolkit. If you are interested in a particular motion controller interface, please contact us. The possibilities are virtually endless!

    Networking & Communication

    SoftPLC communication channels, limited only by hardware constraints, are in addition to the I/O channels. The native communication protocols supported include:

    • DF1 Serial
    • A-B TCP/IP Ethernet (PCCC)
    • Ethernet/IP™
    • ModbusTCP/UDP Ethernet
    • Modbus Serial Master/Slave
    • Data Highway Plus
    • ASCII

    Other protocols (eg: Profibus, DeviceNet) are supported with added hardware interfaces, and others can be developed via the SoftPLC Programmer's Toolkit.

    These channels can be thought of as being equivalent to the ports on the front of a traditional PLC. They provide access to SoftPLC's data table for HMI/SCADA or other products that perform operator interface, data acquisition, etc. The ethernet channels are also used by TOPDOC to monitor, change, and upload/download the program logic and data table. Additionally, SoftPLC systems can communicate peer-to-peer to each other or to Allen-Bradley PLC's/PAC's over these channels, via a messaging facility.

    Multiple computer applications or other PLC's may be accessing SoftPLC from any one or combinations of these channels at the same time. Broad area or plant-wide solutions are easily implemented with SoftPLC's powerful networking capabilities - at much less cost and greater transmission rates than traditional PLC solutions.

    What's more, SoftPLC's can include an embedded firewall for secure ethernet, wireless and internet communications.

    Operator Interface (HMI/SCADA)

    Choose Your Favorite Operator Interface Products!

    Any software applications with PLC-5/SLC-500 data table access support can communicate with SoftPLC. This includes products such as Wonderware, Maple Systems, Panelview, and many, many others. You can also use OPC via server products that support the A-B PLC-5, such as Kepware or Matrikon. Applications developed in Visual Basic, Visual C++ or other languages that can access PLC-5 data tables are also an option. SoftPLC supports data table access commands which are a super-set of Allen-Bradley's Data Highway Plus command set.

    If an A-B PLC-5/SLC-500 driver is not available, then you can easily use ModbusTCP, Ethernet/IP or Modbus RTU protocol with SoftPLC.

    If you're still searching for an HMI/SCADA product, our SoftPLC Web Studio products might be just what you're looking for. Or, if your needs are simple, the embedded SoftPLC Web Server might just do the trick!


    Troubleshooting a SoftPLC system is familiar to users of traditional PLC systems. TOPDOC NexGen includes online monitoring, testing and troubleshooting features like Watch Windows, I/O forcing, and runtime fault analysis. I/O Drivers include communication and fault monitoring instructions and control bits that can be used in the ladder logic or monitored with TOPDOC. SoftPLC itself has a comprehensive log file that provides configuration error messages, and other detailed fault information.

    SoftPLC's also include an SSH server which provides for easy remote maintenance of files in the SoftPLC CPU from other computer systems. Over any TCP/IP connection (including the internet) you can:

    • View/edit SoftPLC configuration and log files
    • Remotely start/stop the SoftPLC, Web Server or other tasks
    • Upload/download user application files, web pages, documentation
    • Upload/download SoftPLC program files/drivers ("firmware" updates)
    • Access the firewall configuration utility in SoftPLC
    • and more!
  • Documentation

    • SoftPLC/TOPDOC Reference Guide
    • User Guide includes SoftPLC installation & configuration, communications driver setup, and describes how SoftPLC operates.


    • TOPDOC NexGen
    • Download latest TOPDOC NexGen release. This ZIP file is password protected, email technical support for access. Without a USB hardware dongle, the download is a demo version that allows offline editing without save capability. Ladder programming and detailed product use information are in the product help system. (Note that Windows unzip no longer supports passwords and you will need a 3rd party utility, ie: 7zip.)

    • TOPDOC NexGen Installation Guide
    • It is strongly recommended that you download and read this guide prior to installing TOPDOC NexGen.

    • Sun JRE (for use with TOPDOC NexGen)
    • Java runtime environment. Only required if your system does not already have a 32 bit JRE installed.


    • What is a SoftPLC?
    • Describes how unique SoftPLC(R) is - not a PLC, not PC-based control software. Includes summary of functions and possible uses.