Communication Drivers#
Each of the available communication drivers is documented within its own entry.
- BLE (Bluetooth Low Energy)
- CSV
- Database
- Factory Automation
- File Raw
- Fuji Nexim
- IPC-CFX
- Kafka
- Keyboard Wedge
- MQTT
- OIB
- OPC DA
- OPC UA
- PanaCIM
- Rest Client
- Rest Server
- Secs/Gem
- Serial
- TCP/IP
Custom communication drivers can also be developed and used. Please refer the Developers Guide for further information.
Choosing a Driver#
Choose the driver from how the equipment offers its data. The driver definition, the communication parameters, and the equipment tasks of every workflow are written for one protocol, so a change of driver later means building them again. Ask the following questions in order. The first question that applies decides the driver:
| Question | Driver |
|---|---|
| Does the equipment exchange files in a folder? | File Raw, whatever the format of the files: read each file with ReadFile, and parse the content in the workflow. Use CSV only when each row must be handled and confirmed before the next one, with MoreDataRequest. |
| Is the equipment a GEM tool, with an HSMS port or a serial line? | Secs/Gem, also when the tool listens on TCP. HSMS is a protocol of its own, and the TCP/IP driver only cuts text into frames. |
| Does the equipment run an OPC UA server? | OPC UA. The driver is a client. For an OPC DA server, use OPC DA. |
| Does the equipment publish to, or read from, an MQTT broker? | MQTT. The driver is one client of the broker and does not host a broker. |
| Does the controller call an HTTP API? | Rest Client. Each command is one request, and connecting sends no request, so an unreachable server shows only as a failed command. |
| Does another system call the controller over HTTP? | Rest Server. Each event is an endpoint path, and the driver answers each request automatically or waits for the workflow to reply with Request Reply Command. When both directions happen, use one connection of each driver. |
| Does a simple device, such as a reader, a scale, or a printer, send text or frames over a TCP socket? | TCP/IP. For a serial port, use Serial. |
Table: Questions that choose a driver
When the equipment fits none of the questions, or more than one, such as a GEM tool that also runs an OPC UA server, ask which interface the integration must use rather than guess. GEM collection events carry their data, and OPC UA gives live values.
What Each Choice Commits You To#
The File Raw, CSV, and Rest Server drivers work on entries that the integration chooses: folders, files, and endpoint paths. For the other drivers, collect the identifiers of the equipment before you build anything:
| Driver | What to collect | From |
|---|---|---|
| Secs/Gem | SVIDs, DVIDs, ECIDs, CEIDs and their reports, and remote commands with their parameters and formats | The GEM manual of the tool |
| OPC UA | The NodeIds of the variables and methods, and the object of each method | The server |
| MQTT | The topics, and how each payload is encoded | The publishers |
| TCP/IP | The frame format: delimiter, tokens, and command texts | The manual of the device |
| Rest Client | The endpoints, methods, parameters, and success statuses | The documentation of the API |
Table: Identifiers to collect per driver
A wrong identifier is not refused when you save the driver definition. It shows later as an event that never arrives, a report that the equipment refuses, or a value that is always empty.
Each choice also commits the integration to the following:
- Declare what the equipment exchanges as properties, events, and commands of the driver definition, and reach them with the equipment tasks, such as On Equipment Event and Execute Equipment Command. Send Notification to Driver and Subscribe In Driver carry messages between the controller and the driver process, not the addresses of the equipment.
- A direction parameter states the role of the driver, not of the equipment. Secs/Gem
connectionModeand TCP/IPmodeareActivewhen the equipment listens and the driver connects, so a tool documented as HSMS passive needs anActivedriver. - One machine can use several drivers in one controller, such as Secs/Gem for the tool and File Raw for its result files, each with its own driver definition. See Create the Setup Workflow.
Available Data Types#
The available data types in the system are listed below:
- Boolean
- String
- Decimal
- Integer
- Long
- Object
- Password
- DateTime
- Culture
Parameters#
All communication drivers share settings with the same format/meaning:
| Name | Type | Possible Values | Default Value | Description |
|---|---|---|---|---|
| setupTimeout | Integer | 10000 | Max time for the setup flow (milliseconds) | |
| heartbeatInterval | Integer | 60000 | Interval to trigger an optional heartbeat to validate communication or any other task (milliseconds) | |
| intervalBeforeReconnect | Integer | 5000 | Time to wait between connection attempt (milliseconds) | |
| connectingTimeout | Integer | 30000 | Max time for the connection to be established (milliseconds) |
Table: Communication driver settings
Tokens#
Some communication driver parameters accept tokens: placeholders in the form ${TokenName} that the driver substitutes with a runtime value instead of a literal, hardcoded value.
Token support is protocol- and parameter-specific — not every parameter accepts them, and the set of available tokens depends on the driver and on which parameter is being configured. Where a parameter supports tokens, its description states so explicitly and lists the tokens it accepts.
Examples:
- The Factory Automation driver's
queueNameparameter accepts${SystemName}, replaced with the name of the Critical Manufacturing system. - The File Raw and CSV drivers' file-manipulation commands accept
${Path},${Archive},${Temp}, and${Id}in their path parameters (token names are case-insensitive). - The OIB driver's
Subscription Name Suffixsettings accept${id}and${guid}.
Separately, the MQTT, TCP/IP, Serial, and Keyboard Wedge drivers support a Token identifier type on properties. This matches incoming message content by prefix rather than by exact value or regular expression — it is a property-matching mode, not a value-substitution token. See the "Identifier Type" description on the relevant driver page for details.
Communication States#
All communication drivers follow this state model:
A driver process starts in the Unknown state, and its first transition is to Connecting, when the controller asks it to connect. Ready follows Disconnected only when no connection is requested.
Driver/Controller communication#
The communication the Connect IoT components is done using WebSockets. The intention is to allow customization to override one or more components using the programming language of the choice of the customer. The establish communication is described in the following diagram:
sequenceDiagram
activate Monitor
Monitor->>Manager: Request Create Driver
activate Manager
Monitor->>Manager: Request Create Controller
Manager->>Driver: Create Process
activate Driver
Manager->>Controller: Create Process
activate Controller
Driver->>Driver: Create Communication Channel
Driver->>Monitor: Connect with Monitor
Controller->>Monitor: Connect with Monitor
Driver->>Monitor: Notify Communication Channel Details
Monitor->>Controller: Notify Driver Communication Details
Controller->>Controller: Prepare Workflows
Controller->>Driver: Connect with Driver
Controller-->>Driver: Exchange communication Data
Driver-->>Controller: Exchange communication Data
deactivate Driver
deactivate Controller
deactivate Manager
deactivate Monitor