Where does your data come from
— and where should it go?
DataFurt Bridge polls SAP OData services and writes the data to Modbus registers.
Introduction
Not every system that needs your ERP data — a shop-floor dashboard, a partner platform, a PLC — can query SAP OData directly. To make this data processed and accessible to other systems, a flexible gateway is required.
DataFurt Bridge is designed for exactly this purpose: it retrieves the data and writes it to any Modbus registers.
Follow the steps below to set up your bridge.
Get the bridge
Choose the right package for your system and extract it to a directory of your choice.
| Platform | Architecture | Download | |
|---|---|---|---|
| Windows | x86 | df-bridge-2.2.1-win-x86.zip | |
| Windows | x64 | df-bridge-2.2.1-win-x64.zip | |
| Linux | x64 | df-bridge-2.2.1-linux-x64.tar.gz | |
| Linux | ARM64 | df-bridge-2.2.1-linux-arm64.tar.gz | |
Create a configuration file
A configuration file is required to set up the bridge between the source and target system. Please download the template configuration file and save in the same directory as the bridge executable.
sap-to-modbus.tomlCreate a Transformer (optional)
If you need to modify or prepare the data that will be sent to the target system, you can create a Transformer function in JavaScript to manipulate almost anything of the message.
sap-modbus-transformer.jsRun and verify
Open a terminal and start the application in debug mode.
You can stop the application at any time by pressing Ctrl+C in the terminal.
Troubleshooting
Let's face it: rarely does anything work on the first try. Here are the most common pitfalls and how to fix them.
Modbus register type '...' is read-only and cannot be used as a write target.
Only coils and holding registers can be written, per the Modbus spec - discrete inputs and input registers are
read-only. Make sure the channel written by your Transformer (or forwarded from the source) uses
coil: or holding:, not discrete: or input:.
[DBG] Sent message to ...: NaN
This log message is typically seen when something goes wrong inside your Transformer function. You probably
tried to convert something to a number, but this failed because that "something" could not be parsed as a
number. JavaScript then converts it to NaN, which is sent to the target as a
NaN string.
To resolve this issue, ensure that any value you intend to convert to a number is a valid numeric string
before performing the conversion. Use console.debug() in your Transformer function to inspect the
values before conversion.
NModbus.SlaveException: Function Code ... Exception Code: 1 - Illegal Function
This means the configured unit_id or register address/type is not valid on the device - for
example, writing to a holding register address that doesn't exist, or a unit id that isn't configured on the
slave. Double-check the register map and unit id of your device.
Invalid Modbus channel '...'
The channel produced by the source (or rewritten by a Transformer) must have the format
<coil|holding>:<address>[:<data_type>], for example holding:0 or
holding:0:float32.
Your problem is not listed here or still unresolved?
Don't hesitate to reach out for personal support if your problem remains unresolved. Just send an email to support@datafurt.com. We typically respond within 24 hours on business days.
Put it into production
Once you have verified that data flows as expected, prepare the bridge for production.
Install as a service
Run DataFurt Bridge as a service to start it automatically with your system and keep it running in the background. Configure automatic restarts to recover from unexpected failures.
Install as a Windows service
To install DataFurt Bridge as a service on Windows, use the sc.exe that comes with the
operating system.
These commands
- create a Windows service called
df-bridge-sap-modbus, -
set the log level to
information(possible values:debug,information,warning,error), - save the log output to the specified
logsdirectory next to the executable, - start the service automatically with the system,
- ensure the service restarts automatically in case of failures, and
- finally start the service.
To stop and uninstall the service use the following commands.
Install as a Linux service
To install DataFurt Bridge as a service on Linux, use systemctl that comes with the
operating system.
These commands
- create a Linux service called
df-bridge-sap-modbus, -
set the log level to
information(possible values:debug,information,warning,error), - save the log output to the specified
logsdirectory next to the executable, - start the service automatically with the system,
- ensure the service restarts automatically in case of failures, and
- finally start the service.
To stop and uninstall the service use the following commands.
Get a license
You may have noticed that DataFurt Bridge is running in trial mode. It can process up to 10,000 messages without a valid license, giving you time to test it. To use it in production, choose a license below.
Single
499 € per year excluding VAT
For one production deployment.
A production deployment grants the right to run any number of different instances and configurations on a single machine.
Unlimited
3,999 € per year excluding VAT
For unlimited production deployments within one organization.
An organization is defined as a single legal entity, such as a company or institution.
Whichever plan you choose, you'll always get:
- A lightweight tool running on Windows and Linux
- 100% offline capability — no internet connection required
- All protocols and features enabled — no extra costs
- Unlimited tags configurable
- Unlimited instances and configurations per deployment
- Free updates and bug fixes
- Direct, qualified email support (no call center)
End of the journey. Any questions?
What is DataFurt anyway?
DataFurt Systems is a German company that specializes in software solutions for industrial data communication.
DataFurt Bridge is the main product of DataFurt Systems. It is a local service that receives data from various sources and translates it into different target systems.
How much data can DataFurt Bridge handle?
In our benchmarks, a single DataFurt Bridge instance processed more than 45,000 messages per second on an Intel® Core™ i7-13700K processor. Actual throughput depends on your hardware, source and target systems, network latency, message size, and whether a JavaScript Transformer is used.
If your application requires higher throughput, DataFurt Bridge can be scaled horizontally by running multiple instances in parallel. The achievable throughput depends on your hardware, workload, and system architecture.
How can I connect multiple sources and targets?
A DataFurt Bridge instance can only connect one source to one target at a time. To connect multiple sources and targets, you need to run multiple instances of DataFurt Bridge in parallel. This usually requires multiple configurations and service installations.
What is the difference between the Single and Unlimited license?
Single allows one Production Deployment within one organization. Unlimited allows any number of Production Deployments within one organization.
In a typical setup, a Production Deployment means DataFurt Bridge running on one physical or virtual machine. You can run multiple instances of DataFurt Bridge on that machine, each with its own configuration. These instances can connect different systems and protocols in parallel and are all covered by the same Single license.
For example, a single machine could run one instance connecting OPC DA to MQTT, another connecting MQTT to HTTP, and another connecting MQTT to CSV. All three instances are covered by the same Single license.
When do I need more than one Single license?
You need a separate Single license for each Production Deployment within your organization.
For example, if you run DataFurt Bridge on two separate production machines, each machine represents a separate Production Deployment and requires its own Single license. Alternatively, you can use an Unlimited license to cover any number of Production Deployments within the same organization.
Can I use DataFurt Bridge for multiple companies?
A license is valid for one legally separate organization. Each organization requires its own license.
System integrators and consultants may install and operate DataFurt Bridge for their customers. However, each customer organization requires its own license.
How long is a license valid?
Paid licenses are valid for one year and automatically renew for another year unless cancelled before the renewal date.
The technical license file must be renewed for each new subscription period. There is a grace period of 30 days after the subscription expires during which the software will continue to function. This allows you to renew your subscription without immediate disruption to your operations.
What does the direct, qualified email support include?
Email support includes help with specific questions about configuration, using the software, and troubleshooting issues that arise during operation. We typically respond within 24 hours on business days.
Intensive training, online sessions, and on-site support are available as additional services on request and are billed separately.
Still have questions?
Hello! I'm Christian Diederich, the person behind DataFurt. If you have any questions or run into an issue, just send me an email. I'll get back to you personally, usually within 24 hours.