NeoTechX

NeoCore · Industrial edge runtime

Available

NeoCore Edge Runtime: connect, run logic on site, secure the link

NeoCore is an industrial edge runtime that connects field equipment over Modbus, DNP3, IEC 60870-5-104, OPC UA, MQTT and BACnet, runs local logic on site, and supports TLS-secured IEC 104 and DNP3 communication based on IEC 62351. It is designed to add a secure communication layer in front of legacy devices that send unencrypted traffic.

TLS and IEC 62351-5 on DNP3 and IEC 104 · Modbus, BACnet/IP and MS/TP, OPC UA, MQTT · 400+ function blocks · Keeps running if the link is lost

What does NeoCore do on a site?

Secures legacy links

Sits in front of RTUs and controllers that send DNP3 or Modbus in clear text, and carries their data over TLS with IEC 62351-5 authentication. Secure legacy equipment

Runs NeoShift on site

Executes demand plans locally, within the limits you signed off, and keeps working if the connection is lost. Lower demand charges

Connects everything once

Reads meters, BMS controllers, PLCs and RTUs, and sends the data to NeoPilot, your SCADA or BMS, or your IT systems.

What do I need to run NeoCore?

NeoCore itself runs on Linux controllers. NeoStudio, its configuration environment, runs only on Windows. NeoStudio can simulate your function-block logic offline, but protocol drivers, I/O and real scan timing run only in the Linux runtime, either on a controller or, for testing, in the documented Debian x86 runtime inside a virtual machine.

Platform requirements
ComponentRuns onNotes
NeoCore runtimeLinux industrial controllers, x86 and ARM; Beckhoff TwinCAT/BSDNo Windows runtime. Windows CE, Win32 and QNX runtimes were removed in v5.0
NeoStudioWindows with .NET Framework 4.7.2Available on request. No macOS or Linux version
NeoPilotWindows (64-bit .NET)Operators can view published pages in a modern browser
IEC 104 Test ToolWindows with .NET Framework 4.8.1Licence bound to one computer; not a full conformance test system
IEC 62351-5
secure authentication on IEC 104 and DNP3, plus TLS
Source: IEC 62351-5 PICS; IEC 104 driver manual
8
concurrent DNP3 master sessions over TCP/IP
Source: DNP3 driver manual
30
Modbus master drivers per project
Source: Modbus master driver manual
400+
tested function blocks; your own in Lua or C
Source: Logic engine manual v5.0

What is NeoCore?

NeoCore Edge Runtime is the NeoTechX software that turns a Linux industrial controller into an edge device that connects, decides and protects. NeoCore reads field equipment over industrial and building protocols, runs function-block control logic locally, and communicates with control systems and IT systems, including over IEC 60870-5-104 and DNP3 secured with TLS and IEC 62351-5 authentication.

NeoCore can read devices that use one of its supported protocols and document their data points, such as Modbus meters and drives, BACnet/IP and BACnet MS/TP controllers, OPC UA servers, EtherCAT I/O, Siemens S7 and Beckhoff TwinCAT PLCs and IEC 62056-21 meters. Compatibility with a specific device and firmware is confirmed during project scoping.

NeoCore runs logic, not only translation. Alarms, interlocks, scaling, scheduling and protocol mapping run on the device and keep running if the upstream link is lost. NeoCore is not a safety PLC.

Securing a legacy device with NeoCore

Before and after: securing a legacy RTU link with NeoCoreTop: an existing RTU sends DNP3 or Modbus without encryption across the network to the control system, where traffic can be read or altered. Bottom: the same RTU connects locally to NeoCore in the same panel, and NeoCore carries the data to the control system over TLS-secured DNP3 or IEC 104 with IEC 62351 authentication. The RTU is not replaced.TodayExisting RTUor PLC, meterClear text, no loginDNP3 or Modbus over the network: can be read or altered on the wayControl systemSCADA or masterWith NeoCoreSame panel, same field wiringExisting RTUunchangedlocalNeoCoreTLS + IEC 62351 authenticationDNP3 or IEC 104, encrypted and authenticatedControl systemSCADA or master
Schematic. Top: today, an existing RTU or controller sends DNP3 or Modbus in clear text across the network. Bottom: NeoCore sits in the same panel, takes the local connection, and carries the data over TLS-secured DNP3 or IEC 104 based on IEC 62351. The field device and its wiring stay as they are.

Why do integrators and facility teams choose NeoCore?

NeoCore value
ValueWhat it means
One runtime for every protocol on siteNeoCore can replace a chain of converters with one runtime, and passes events automatically between Modbus, DNP3, IEC 101/104 and MQTT without extra logic.
Security inside the protocolTLS and IEC 62351-5 authentication run inside the IEC 104 and DNP3 drivers, and security counters are tags your logic and SCADA can alarm on.
Logic at the edge400+ tested blocks, Lua and C extensions, logic simulation in NeoStudio, live monitoring and forcing, and warm logic updates without stopping the device.
Reports first, commands when approvedWhen NeoShift runs on NeoCore, it starts read-only and commands only within a plan the customer signs.
Hardware choiceRuns on Linux controllers you may already stock, including Advantech industrial controllers and Beckhoff IPCs. Licences apply per runtime.

How does NeoCore move data between systems?

NeoCore runs a fixed cycle: read every input from every driver, solve the logic once, write every output, repeat. The cycle time is set per project; in one documented example a 100 ms cycle did about 1 ms of work, and actual load depends on the project and hardware. Each driver keeps its own polling rate, so a Modbus meter can be read every second while logic runs every 100 ms.

NeoCore maps data between protocols with function blocks or its internal tag buffer. A value from a Modbus meter, an EtherCAT input or a TwinCAT variable can go to a control centre over DNP3 or IEC 104 and to IT systems over MQTT in the same project.

NeoCore between field equipment and the control and IT sideMeters: Modbus, IEC 62056-21PLCs: Modbus, S7, ADSBuilding controllers: BACnet/IP, …Legacy RTUs: DNP3, IEC 101/104OPC UA serversEtherCAT I/O, CAN I/O, GPIODrivers inFunction-block logicDrivers outSCADA: IEC 104, DNP3TLS and IEC 62351-5NeoPilotNeoShift plansIT: MQTT, OPC UA, SQL, RedisEmail alarms
Left: equipment NeoCore reads, and where approved writes. Right: systems NeoCore reports to.

Does NeoCore send commands to our equipment?

NeoCore follows the NeoShift path whenever NeoTechX logic is in charge. During the assessment it reads the equipment and the supply side and reports; nothing is written. After the customer signs off a written plan, NeoCore issues commands automatically, limited to the points and ranges in that plan.

NeoCore behaves like any RTU when it serves your own SCADA. Commands your control centre sends through NeoCore over IEC 104 or DNP3 are yours from the first day, protected by select-before-operate and, where enabled, IEC 62351-5 authentication of critical commands.

Protocol drivers, roles and security

NeoCore protocol drivers, roles and security
ProtocolRoleSecurityKey capabilitiesStatus
IEC 60870-5-104Slave (controlled station)IEC 62351-5, TLSTCP port 2404 by default; several slave instances on separate ports; optional single master IP; spontaneous, cyclic and interrogated reporting; select-before-operate with timeout; short pulse, long pulse and persistent outputsAvailable
IEC 60870-5-104MasterConfirmed per projectSupported roleAvailable
IEC 60870-5-101Slave and mastern/a (serial)Serial telecontrolAvailable
DNP3Slave (outstation), serial or TCPIEC 62351-5, TLSTCP port 20000 by default; up to eight concurrent master sessions over TCP/IP (a serial link serves one master); select-before-operate; unsolicited reporting; time-sync requestAvailable
DNP3MasterConfirmed per projectSupported roleAvailable
Modbus RTU and TCPMasterNetwork-levelUp to 30 master drivers per project; function codes 1, 2, 3, 4, 5, 6, 15, 16; 16-bit, 32-bit long and float, including byte-swapped; wake-up strings for battery-powered metersAvailable
Modbus RTU and TCPSlaveNetwork-levelMultiple instances (one per serial port, or separate TCP ports); addresses 1–255Available
BACnet/IPClient and serverNetwork-levelBuilding controllers and BMS integrationAvailable
BACnet MS/TPSupported (role confirmed per project)Physical segmentBuilding controllers on RS-485 trunksAvailable
OPC UAClient and serverPer OPC UA configurationopen62541 open-source stackAvailable
EtherCATMasterPhysical segmentETG-compliant I/O from several manufacturers; cyclic PDO and CoE access; no special hardware on Linux controllers; keep the cycle at or below 100 ms for typical coupler watchdogsAvailable
Beckhoff TwinCAT ADSClientPer ADS routingRead and write of TwinCAT PLC variablesAvailable
Siemens S7ClientNetwork-levelS7 PLC data accessAvailable
IEC 62056-21Readern/aMeter readingAvailable
MQTTClientTLS or frame encryptionUp to 30 MQTT drivers per project; publishes to up to eight brokers at once; QoS 0, 1, 2; raw, XML, JSON or user-defined payloads; data-model exchange with NeoPilotAvailable
Redis, SQL (TDS), SQLiteClientPer server configurationHistorian and IT integrationAvailable
Email publishingDriverPer mail serverLogic-triggered email; up to 100 recipients per driver instance; delivery diagnostics as tagsAvailable
Fatek PLCDrivern/aFatek PLC data accessAvailable

Not supported: OCPP (EV chargers); Windows CE, Win32 and QNX runtimes; safety-PLC functions. Protocol support describes what the drivers implement; compatibility with a specific device is confirmed per project.

NeoCore specifications

NeoCore specifications
AreaSpecification
LogicFunction-block programming with more than 400 ready, tested blocks (math, timers, counters, logic, packing and mapping, PID, filters, scaling, drive control, analog and digital alarms, run hours, chatter filter, scheduler); user blocks in Lua and C; unlimited program organisation units; explicit execution order
RuntimeLinux-based controllers; dedicated compiled runtime for Beckhoff TwinCAT/BSD; warm and cold logic updates without stopping; runtime monitoring and variable forcing; RTU status tool; last deployed project kept on the device for recovery
Logic cycleConfigurable per project; in one documented example a 100 ms cycle did about 1 ms of work (actual load depends on project and hardware)
Event handlingAutomatic event passing between Modbus, DNP3, IEC 101/104 and MQTT
TelecontrolIEC 60870-5-104 and -101 slave and master; DNP3 slave and master (serial and TCP)
SecurityIEC 62351-5 secure authentication (HMAC-SHA-256, AES-256 key wrap, symmetric AES-256/HMAC-SHA-256 update-key change) and TLS for IEC 104 and DNP3; security statistics counters as tags
Redundant SCADADNP3 slave accepts up to eight concurrent master sessions over TCP/IP
IT and cloudMQTT client publishing to up to eight brokers with TLS or frame encryption and raw, XML, JSON or custom data models; Redis; SQL (TDS); SQLite
AlarmingLogic-triggered emails, up to 100 recipients per driver instance, delivery diagnostics
Low-power devicesPoll control and wake-up strings for battery-powered meters; the processor sleeps for the unused part of each cycle
Local I/O (platform dependent)Digital I/O, serial ports, CAN I/O card, hardware watchdog, status LEDs, cellular modem control with connect and signal-strength (RSSI) tags
Function-block stateHeld on a RAM disk to avoid wear on device storage
ConfigurationNeoStudio on Windows (.NET Framework 4.7.2), a screen per driver, simulation of logic (drivers, I/O and scan timing need the Linux runtime). Available on request. No macOS or Linux version
LicenceOne runtime licence per controller, bound to the device; without a licence file the runtime runs for 30 minutes and then needs a controller restart
LimitsLinux runtime only; not a safety PLC; no real-time-kernel or microsecond-timing claims

What hardware does NeoCore run on?

NeoCore is hardware-agnostic: it runs on Linux industrial PCs (IPCs). For field installations NeoTechX recommends only CSA-approved devices, for example IPCs from Advantech, or the Banana Pi BPI-6202 and BPI-6204. Check the CSA marking of the exact model and configuration you buy; NeoTechX does not state certification for a specific model unless the manufacturer documents it.

All supported hardware

How does NeoCore secure DNP3 and IEC 104?

NeoCore authenticates critical commands with IEC 62351-5 on both IEC 104 and DNP3. When a master sends a critical command, NeoCore challenges it with up to 64 bytes of random data and acts only on a correct HMAC-SHA-256 response. Aggressive mode, which carries the command and its authentication in one frame, is also supported.

NeoCore encrypts IEC 104 and DNP3 traffic with TLS using X.509 certificates for the control centre and each NeoCore. Authentication statistics are tags, so SCADA can alarm on failed attempts.

IEC 62351-5 implementation summary (the completed PICS is available on request)
ItemNeoCore
MAC algorithmHMAC-SHA-256; 8 or 16 octet MAC
Key wrapAES-256 Key Wrap; AES-128 also supported
Update-key changeSymmetric AES-256 / HMAC-SHA-256 with a static update key; dynamic update-key change In development
User status changeNon-certificate method
Challenge-response; aggressive modeBoth supported
UsersOne user with a configurable ID
Error messagesTransmitted; maximum count configurable

Network exposure by deployment profile

NeoCore's network exposure depends on its job, and NeoTechX documents it per deployment rather than claiming one posture for all.

Network exposure by deployment profile
ProfileUsed forNetwork behaviourStatus
NeoShift edgeNeoShift sitesPlanned design: outbound-only; no listening port, no remote shell, no local management interface; per-device certificates; signed updatesIn development
Secure RTU front endIEC 104 or DNP3 outstation for your SCADAListens on the configured telecontrol port (2404, 20000) on the SCADA network; can accept a single master IP; IEC 62351-5 and TLSAvailable
Data gatewayOT-to-IT flowsMQTT client connects outward to brokers over TLS; OPC UA server only where required on the OT networkAvailable

Hardening of the NeoCore field image (no root SSH login, no default credentials, only required ports) is In development.

NeoCore runs on your premises and sends data only to the destinations you configure: your SCADA, your brokers, your databases. Services NeoTechX hosts, such as NeoShift, are hosted exclusively in Canadian data centres.

Security overview

How can we buy NeoCore?

NeoCore delivery models
ModelWhat you get
Runtime licenceNeoCore for a Linux industrial PC you supply
NeoCore GatewayA CSA-approved IPC chosen with you, with NeoCore pre-configured and ready to commission
NeoCore OEMProtocol stack and runtime licensed for embedding in your own RTU or gateway. NeoCore OEM
Configured projectNeoTechX technical specialists configure drivers, tag maps and logic to your approved design. NeoTechX delivers projects directly today; where a partner is engaged, NeoTechX supports the partner-led project
NeoStudioConfiguration environment for partners and integrators, available on request

Pricing is set per project. Book a free assessment to discuss a written proposal.

Frequently asked questions

What is NeoCore Edge Runtime?

NeoCore Edge Runtime is industrial edge software from NeoTechX, a Canadian company based in Victoria, BC. NeoCore runs on a Linux industrial controller, connects field equipment over Modbus, DNP3, IEC 60870-5-104, OPC UA, MQTT and BACnet, runs local logic on site, and supports TLS-secured IEC 104 and DNP3 communication based on IEC 62351.

Which protocols does NeoCore support?

NeoCore supports IEC 60870-5-104 and -101 (slave and master), DNP3 (slave and master), Modbus RTU and TCP (master and slave), BACnet/IP and BACnet MS/TP, OPC UA (client and server), EtherCAT master, Beckhoff TwinCAT ADS, Siemens S7, IEC 62056-21, MQTT, Redis, SQL and email publishing.

Can NeoCore secure an old RTU that sends data unencrypted?

Yes. NeoCore is designed to sit in front of a legacy RTU or controller in the same panel, take its local connection, and carry its data to the control system over TLS-secured DNP3 or IEC 60870-5-104 with IEC 62351-5 secure authentication, without replacing the device.

Can NeoCore act as an IEC 60870-5-104 RTU?

Yes. NeoCore is an IEC 60870-5-104 controlled station on TCP port 2404 by default, with select-before-operate, spontaneous and interrogated reporting, clock synchronisation and optional restriction to one master IP. It supports IEC 62351-5 secure authentication and TLS.

Does NeoCore support DNP3 secure authentication?

NeoCore's DNP3 outstation supports IEC 62351-5 secure authentication with HMAC-SHA-256 and AES-256 key wrap, plus TLS. It accepts up to eight concurrent DNP3 master sessions over TCP/IP for redundant control centres; a serial port serves one master link.

Can we review NeoCore's IEC 104 implementation before purchase?

Yes. NeoTechX provides its completed IEC 104 device profile and IEC 62351-5 PICS on request by email, so an operator or integrator can review interoperability before purchase.

Does NeoCore send commands to my equipment?

When NeoShift runs on NeoCore, it starts read-only and commands only within a plan the customer signs off in writing. When NeoCore serves the customer's own SCADA as an RTU, control-centre commands pass through as with any RTU, protected by select-before-operate and IEC 62351-5.

What hardware does NeoCore run on?

NeoCore is hardware-agnostic and runs on Linux industrial PCs, such as Advantech industrial controllers, Beckhoff IPCs under TwinCAT/BSD or Linux, and Banana Pi BPI-6202 and BPI-6204. NeoTechX recommends only CSA-approved devices for field use. Raspberry Pi and BeagleBone Black are suitable for development and evaluation.

How is NeoCore programmed and licensed?

NeoCore is configured with NeoStudio for Windows, using Function Block Diagram with more than 400 tested blocks and custom blocks in Lua or C. NeoStudio is available on request. Each controller needs one NeoCore runtime licence bound to the device; without a licence file the runtime runs for 30 minutes and then needs a restart.

Tell us what is on your site.

We look at your devices and tell you plainly how NeoCore could connect or secure them. No obligation.

Sources

  1. Logic engine concepts manual v5.0 (2026) and logic engine catalogue v4.4
  2. IEC 60870-5-104 slave driver manual with IEC 62351 and TLS (2024); IEC 62351-5 PICS (March 2024)
  3. DNP3 slave driver manual (2026), section Multi Master Operation
  4. Modbus master and slave driver manuals (2026); MQTT driver manual (2026); EtherCAT master driver manual v1.0 (2026)
  5. Runtime guides for Beckhoff TwinCAT/BSD and Linux IPCs v1.1; Banana Pi BPI-6202; Raspberry Pi and BeagleBone Black
  6. NeoTechX service catalogue v4.3, section 4.1

This page describes NeoTechX products and services and how they are designed. It is not an offer, warranty or guarantee of results. Capabilities marked Pilot or In development may change. Fees, performance and data-handling terms are set only in a signed agreement.