- Overview
- Challenges
- Solution Architecture
- Implementation Scenarios
- Security Considerations
- Migration Strategy
- Common Patterns
- Troubleshooting
- Next Steps
Overview
The IndustryOS IoT Gateway excels at integrating legacy industrial systems with modern IoT platforms. This use case demonstrates connecting older equipment, SCADA systems, and proprietary protocols to IndustryOS for monitoring, analytics, and digital transformation.
Challenges
Common Legacy System Issues
- Proprietary protocols - vendor-specific communication
- Outdated interfaces - RS-232, RS-485, serial connections
- No network connectivity - isolated equipment
- Limited data access - basic monitoring only
- No cloud support - on-premises only
- Security concerns - exposed to internet risks
Solution Architecture
Gateway as Protocol Bridge
1
2
3
4
Legacy Devices → Gateway → IndustryOS Platform
(Modbus RTU) (Protocol (MQTT/HTTP)
(Serial) Translation)
(Proprietary)
Benefits
- Preserve existing infrastructure - no equipment replacement
- Add modern capabilities - cloud connectivity, analytics
- Secure communication - encrypted connections
- Data aggregation - combine multiple sources
- Remote monitoring - access from anywhere
Implementation Scenarios
Scenario 1: SCADA Integration
Challenge
Connect legacy SCADA system to cloud for remote monitoring.
Equipment
- SCADA system with Modbus TCP
- PLCs with Modbus RTU
- HMI panels
Gateway Configuration
Modbus TCP for SCADA:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
"modbus": {
"type": "tcp",
"host": "192.168.1.100",
"port": 502,
"devices": [
{
"deviceName": "SCADA-Master",
"unitId": 1,
"attributes": [
{"tag": "SystemStatus", "address": 1000}
],
"telemetry": [
{"tag": "LineSpeed", "address": 2000},
{"tag": "Production", "address": 2001}
]
}
]
}
}
Serial to Cloud:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"modbus": {
"type": "serial",
"port": "/dev/ttyUSB0",
"baudrate": 9600,
"devices": [
{
"deviceName": "PLC-001",
"unitId": 1,
"telemetry": [
{"tag": "Temperature", "address": 100},
{"tag": "Pressure", "address": 101}
]
}
]
}
}
Results
- Real-time SCADA data in cloud
- Historical data analysis
- Remote monitoring
- Alarm notifications
Scenario 2: RS-485 Equipment
Challenge
Modernise factory floor with RS-485 sensors.
Equipment
- Temperature sensors (Modbus RTU)
- Flow meters (Modbus RTU)
- Energy meters (Modbus RTU)
Implementation
Gateway Setup:
- Install RS-485 to USB adapter
- Configure Modbus connector
- Map sensor registers
- Set polling intervals
Configuration:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{
"modbus": {
"type": "serial",
"port": "/dev/ttyUSB0",
"baudrate": 9600,
"parity": "N",
"stopbits": 1,
"devices": [
{
"deviceName": "Temp-Sensor-${unitId}",
"unitId": 1,
"pollPeriod": 5000,
"telemetry": [
{
"tag": "temperature",
"address": 0,
"objectsCount": 1,
"type": "16int",
"multiplier": 0.1
}
]
}
]
}
}
Benefits
- Collect data from multiple sensors
- Centralised monitoring
- Trend analysis
- Predictive maintenance
Scenario 3: Proprietary Protocol
Challenge
Integrate equipment with vendor-specific protocol.
Solution
Custom connector development.
Custom Connector:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class LegacyConnector(Connector):
def __init__(self, gateway, config, connector_type):
super().__init__()
self._gateway = gateway
self._protocol = VendorProtocol(config)
def open(self):
self._protocol.connect()
self._start_polling()
def _poll_devices(self):
for device in self._devices:
data = self._protocol.read_data(device)
device_data = self._convert(data)
self._gateway.send_to_storage(self.get_name(), device_data)
Scenario 4: Database Integration
Challenge
Extract data from legacy database.
Solution
ODBC connector for database access.
Configuration:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
"odbc": {
"connectionString": "DSN=LegacyDB;UID=user;PWD=pass",
"devices": [
{
"deviceName": "Production-Line-1",
"query": "SELECT * FROM production WHERE line_id = 1",
"pollPeriod": 60000,
"columns": {
"production_count": "productionCount",
"downtime_minutes": "downtime"
}
}
]
}
}
Security Considerations
Network Segmentation
1
2
3
4
Legacy Network DMZ Zone Cloud
(192.168.1.0/24) (Gateway) (IndustryOS)
│
Firewall ←────┴─────→ Firewall
Best Practices
- Isolate legacy network - separate VLAN
- Gateway as firewall - single point of access
- Encrypted communication - TLS/SSL to cloud
- No inbound connections - gateway initiates
- Regular updates - security patches
Migration Strategy
Phase 1: Assessment
- Inventory legacy systems
- Document protocols
- Identify data requirements
- Plan network architecture
Phase 2: Pilot
- Select one system
- Install gateway
- Configure connector
- Validate data
- Monitor performance
Phase 3: Rollout
- Deploy additional gateways
- Migrate systems incrementally
- Train operators
- Document configurations
Phase 4: Optimisation
- Tune polling intervals
- Optimise data transmission
- Implement analytics
- Enable automation
Common Patterns
Pattern 1: Serial Aggregation
Multiple serial devices on one gateway:
1
2
3
4
5
6
7
8
connectors:
- name: "Line 1 Sensors"
type: "modbus"
port: "/dev/ttyUSB0"
- name: "Line 2 Sensors"
type: "modbus"
port: "/dev/ttyUSB1"
Pattern 2: Protocol Translation
Convert between protocols:
1
Modbus Device → Gateway → MQTT Broker
Pattern 3: Data Buffering
Handle intermittent connectivity:
1
2
3
4
5
6
7
{
"reportStrategy": {
"type": "onReportPeriod",
"reportPeriod": 300000,
"maxBufferSize": 10000
}
}
Troubleshooting
No Data Received
Check:
- Physical connections
- Serial port settings (baud, parity)
- Modbus addresses
- Poll period configuration
Intermittent Data
Verify:
- Network stability
- Device response time
- Poll interval vs response time
- Gateway resources
Data Quality Issues
Review:
- Data type mappings
- Multipliers and offsets
- Byte order
- Register addresses
Next Steps
- Protocol Conversion
- Edge Data Collection
- Industrial Automation
- Gateway Features