This article explains how to integrate an industrial PSA nitrogen generator with a PLC, SCADA system, or BMS over Modbus TCP.
1) Protocol and connection
- Protocol: Modbus TCP/IP
- Port: 502
- Device role: Slave (the generator PLC is the slave; the PLC / SCADA / BMS is the master)
- Physical layer: Ethernet, static IP required
2) What you need from the customer or network
- Generator PLC static IP address
- Same VLAN/subnet routing to the SCADA/PLC, or proper routing in place
- TCP port 502 allowed between the client and the generator PLC
3) Addressing and data format (read this first)
Addressing mode varies by client software. The map below lists holding registers as “4xxxx” and coils as “0xxxx”. Many clients want a zero-based offset instead. Confirm which convention your driver uses and adjust, or every point will read one register off.
| Listed address | If your driver uses zero-based offsets | Example |
|---|---|---|
| Holding register 40006 | Offset 5 | 40006 → 5 |
| Holding register 40119 | Offset 118 | 40119 → 118 |
| Coil 00013 | Offset 12 | 00013 → 12 |
Data types:
- 16-bit holding registers: start with Unsigned/Int16. If a value looks scaled (e.g. 2150 instead of 21.50), apply scaling in the client (for example, multiply by 0.01). This depends on how the client represents decimals.
- 32-bit holding registers (run hours): use a 32-bit integer type (DINT/UDINT). If the number is wrong, swap word order (endianness) in your driver.
4) Register map
Holding Registers (16-bit)
| Tag / Point | Unitronics | Modbus Address | Units | Access |
|---|---|---|---|---|
| Nitrogen Storage Pressure | MI 118 | 40119 | PSIG / kPa | R |
| Oxygen Concentration (%) | MI 5 | 40006 | % O2 | R |
| Oxygen Concentration (PPM) | MI 112 | 40113 | PPM | R |
| Supply Air Pressure | MI 161 | 40162 | PSIG / kPa | R |
| Supply Air Flow | MI 155 | 40156 | SCFM / SCMH | R |
| Nitrogen Flow | MI 167 | 40168 | SCFH / SLPM | R |
| Supply Air Temperature | MI 173 | 40174 | °F / °C | R |
| Supply Air Pressure Dewpoint | MI 255 | 40256 | °F / °C | R |
| N2 Generator Cut-In Pressure | MI 20 | 40021 | PSIG / kPa | R/W |
| N2 Generator Cut-Out Pressure | MI 21 | 40022 | PSIG / kPa | R/W |
| Low Tank Pressure Alarm Point | MI 98 | 40099 | PSIG / kPa | R/W |
| O2% Alarm Point | MI 14 | 40015 | % O2 | R/W |
| O2 PPM Alarm Point | MI 16 | 40017 | PPM | R/W |
| Duplex Switch-Over Hours Setpoint | MI 239 | 40240 | Hours | R |
| Duplex Current Run Hours | MI 242 | 40243 | Hours | R |
Holding Registers (32-bit)
| Tag / Point | Unitronics | Modbus Address | Units | Access |
|---|---|---|---|---|
| Staging Current Run Hours | ML 36 | 28709 | Hours | R |
| Staging Switch-Over Hours Setpoint | ML 37 | 28710 | Hours | R |
| Generator Total Run Hours | ML 14 | 28687 | Hours | R |
Coils (Discrete)
| Tag / Point | Unitronics | Modbus Address | States | Access |
|---|---|---|---|---|
| Start / Stop | MB 12 | 00013 | 0 = Off, 1 = On | R/W |
| Running / Standby | MB 7 | 00008 | 0 = Standby, 1 = Running | R |
| Common Alarm | MB 61 | 00062 | 0 = Good, 1 = Alarm | R |
| Common Alarm Toggle | MB 19 | 00020 | 0 = Off, 1 = On | R/W |
| BlastOff Alarm | MB 2050 | 02051 | 0 = Good, 1 = Alarm | R |
| Oxygen Concentration Alarm | MB 0 | 00001 | 0 = Good, 1 = Alarm | R |
| PurityProtect On/Off | MB 225 | 00226 | 0 = Off, 1 = On | R/W |
| Low Tank Pressure Alarm | MB 106 | 00107 | 0 = Good, 1 = Alarm | R |
| Particulate Filter Status | MB 14 | 00015 | 0 = Good, 1 = Change Needed | R |
| Coalescing Filter Status | MB 28 | 00029 | 0 = Good, 1 = Change Needed | R |
| Absorbing Filter Status | MB 29 | 00030 | 0 = Good, 1 = Change Needed | R |
| Local Alarm Buzzer Toggle | MB 227 | 00228 | 0 = Off, 1 = On | R/W |
| PSA Staging Toggle | MB 170 | 00171 | 0 = Off, 1 = On | R/W |
| PSA Duplex Toggle | MB 208 | 00209 | 0 = Off, 1 = On | R/W |
| Duplex - Set Primary | MB 211 | 00212 | Set primary on start-up | R/W |
| Duplex Identification | MB 210 | 00211 | 0 = Secondary, 1 = Primary | R |
5) Example client setup
A) Ignition (Modbus TCP driver)
Device: N2_GEN_PLC (IP = generator static IP, Port = 502)
N2_Generator/N2_Storage_Pressure Data Type: Int2 (or UInt2) Register Type: Holding Register Address: 40119 (or Offset: 118) N2_Generator/O2_Percent Data Type: Int2 (or UInt2) Register Type: Holding Register Address: 40006 (or Offset: 5) N2_Generator/Start_Stop_Command Data Type: Boolean Register Type: Coil Address: 00013 (or Offset: 12)
Scaling tip: if O2% reads 2150 but the HMI shows 21.50, apply a scale factor of 0.01 in the tag.
B) Kepware (Modbus TCP/IP Ethernet)
Channel: Modbus TCP/IP Ethernet | Device: GeneratorPLC (IP = generator static IP, Port = 502, Unit ID typically 1)
O2_Percent Address: 40006 (Holding Register) Data Type: 16-bit Integer (try Unsigned first) N2_Storage_Pressure Address: 40119 (Holding Register) Data Type: 16-bit Integer Generator_Total_Run_Hours Address: 28687 (Holding Register, 32-bit) Data Type: 32-bit Integer (swap words if incorrect) Start_Stop Address: 00013 (Coil) Data Type: Boolean
C) Allen-Bradley (Logix)
Most AB integrations use a gateway/driver (Kepware/ProSoft/Red Lion/Ignition) rather than native Modbus TCP on the CPU. The simplest approach is:
- Use Kepware/SCADA as the Modbus client.
- Expose the resulting points to Logix via OPC UA / EtherNet/IP produced tags.
6) Quick troubleshooting
- Cannot ping the generator IP: check the Ethernet link, switch, and VLAN; confirm the IP/subnet and static IP configuration.
- Ping works, no connection on port 502: check for a firewall/ACL or a blocked port, the wrong IP, or a controller not on the network.
- Connected, values look wrong: check the addressing mode (4xxxx vs offset), the subtract-1 offset, 16-bit vs 32-bit data type, and word order on 32-bit values.
- Cannot write Start/Stop (coil 00013): verify write permissions, the correct coil address/offset, and that the unit is not held in a local or interlocked state.
7) Download
Modbus TCP Integration Guide – PSA Nitrogen Generator (PDF)
If you need South-Tek assistance, provide a screenshot of your driver’s addressing-mode settings and one example tag/item configuration.
Related articles
- N2-GEN TS, CS, and S Series Overview
- N2-GEN TS, CS, and S Series Controls and Touchscreen Navigation
- N2-GEN TS, CS, and S Series Alarms, Trends, and Common Troubleshooting