Runs the real program
The controller's own program runs scan by scan with that PLC's behaviour: timers, counters, edges and data types, just as the CPU would run it.
We use the AIS SoftPLC for simulation. It runs a real controller program on a PC, scan by scan, wired to a simulator of the machine, and it answers the network like the real CPU. So far it simulates a Mitsubishi MELSEC iQ-R R08CPU and a Sharp PLC.
Developing
Most of the machines we work on can't be stopped for testing, and some can't be tested on hardware at all. The SoftPLC means our code has already run, and passed, before it gets anywhere near your line.
The controller's own program runs scan by scan with that PLC's behaviour: timers, counters, edges and data types, just as the CPU would run it.
HMIs, OPC servers, SCADA and data-collection devices connect over SLMP as if it were the real PLC, including label access by name. Tested with 80 simultaneous clients and 20,000 malformed frames.
Inputs and outputs connect to a model of the machine, so sensors change, motors run and parts move when the program tells them to. Faults can be injected on purpose.
Timed steps set inputs, wait and check results, with checks on every scan. The same scenarios run again after every change, so nothing that worked gets broken.
The machine is stopped at 60 points in a cycle and at a fault, and each time restarted with retained memory. Deliberate program faults check that the tests catch them. On a relay-style PLC it found a stray counter pulse on the restart scan of a new sequence before it reached the machine.
A PLC stores instruction codes, not drawings. The SoftPLC runs that instruction list with each family's own behaviour on one engine, and each PLC family is a profile on top: its memory model, its instructions, its special relays and its protocol. A comparison with a real CPU comes before we call anything verified.
On AIS projects; byte-exact against the manuals.
Passing in simulation; comparison with real hardware pending.
Being built now, or next on the list.
Ladder, function block diagram, structured text, sequential function chart and instruction list will all compile to one instruction list, so a mixed program runs in one scan with one memory. Full IEC 61131-3 support is in development; the instruction-list engine under it runs today.
The SoftPLC is the PLC, so it serves the server or device side of each protocol. Our Edge Device builds the client side, and each one is the other's test partner.
| Protocol | PLC family | Status |
|---|---|---|
| SLMP / MC protocol, 3E and 4E framesbinary and ASCII, TCP and UDP, label access by name | Mitsubishi MELSEC iQ-R, Q, L, iQ-F | In use byte-exact to the SLMP manual; real-CPU comparison next |
| Protocol | SoftPLC role | Status |
|---|---|---|
| EtherCAT® | Simulated segment (master and devices from ESI files), then device emulation on a real network port | Planned |
| EtherCAT TSN | Stream adaptation; EtherCAT Automation Protocol over TSN | Planned |
| Ethernet TSNIEEE 802.1AS time sync, 802.1Qbv scheduled traffic, launch times | TSN station on a real-time host | Planned |
| OPC UA PubSub over TSN | Publisher and subscriber | After TSN |
| CC-Link IE TSN, CC-Link IE Field Basic | Station | Planned |
These come from AIS Core, the protocol engine shared with AIS Edge. Its EtherCAT master (with eight simulated devices) and its CC-Link IE and TSN stacks are in testing in AIS Edge, in simulation, with a Python binding the SoftPLC will embed. AIS is a member of the EtherCAT Technology Group (ETG) and the CC-Link Partner Association (CLPA). EtherCAT® is a registered trademark and patented technology, licensed by Beckhoff Automation GmbH, Germany.
| Protocol | SoftPLC role | Status |
|---|---|---|
| Modbus TCP, Modbus RTU / ASCII | Server / slave | Early |
| OPC UA | Server, unsecured first, then signed and encrypted | Early |
| MQTT 3.1.1 / 5.0 with Sparkplug B | Edge-of-network node | Planned |
| EtherNet/IP (CIP) | Adapter | On request |
| PROFINET IO | Device | On request |
| BACnet/IP, DNP3, IEC 60870-5-104, IEC 61850 | Server / outstation | On request |
| SECS/GEM (HSMS) | Equipment side | On request |
| Protocol | PLC family | Status |
|---|---|---|
| MC protocol 1E | Mitsubishi FX3U Ethernet, A-compatible | Planned |
| Sharp JW computer link | Sharp JW | Planned |
| Omron FINS | Omron CS / CJ / NJ / NX | Planned |
| Beckhoff ADS | TwinCAT 2 / 3 | Planned |
| Panasonic MEWTOCOL-COM | FP7, FP0H, FP-XH | Planned |
| LS ELECTRIC XGT FEnet | XGK, XGI, XGB | Planned |
| YOKOGAWA FA-M3 PC link | FA-M3 | Planned |
| KEYENCE KV Host Link | KV-8000 / 7000 / 5000 | Planned |
| FATEK FBs, Unitronics PCOM, Opto 22 OptoMMP | FATEK, Unitronics, Opto 22 | Planned |
Every protocol is built from its published specification. Where a protocol has a conformance program, we claim it in the product only after passing it. Siemens controllers are covered through OPC UA. The order may change with customer demand.
If you have a change to make on a machine you can't afford to stop, we can usually build a simulator of it first. Tell us what it is.