Technical Reference

Overview

This section provides detailed technical specifications for integrating and configuring the Dilution Control System. Use this reference for advanced configuration, PLC programming, and system integration.

System Specifications

Capacity

Parameter Specification
Maximum Zones 256
Maximum Scanner Databoxes 500
Profile Update Rate 100ms - 5000ms (configurable)
Control Interval 30s - 300s (configurable)
Saved Grades Unlimited
Alarm History 100,000 records

Performance

Parameter Specification
Modbus Response Time < 50ms typical
Profile Processing Time < 20ms (200 databoxes)
Display Update Rate 100ms
Data Logging Rate 1 second minimum

Communication Protocols

Supported Protocols

Protocol Purpose Port
Modbus TCP Primary PLC communication 502 (default)
Modbus RTU Serial PLC communication COM port
S7-TCP (SNAP7) Siemens PLC communication 102
Beckhoff ADS TwinCAT communication 48898
OPC DA QCS integration N/A

Modbus Function Codes

Code Function Usage
0x03 Read Holding Registers Read feedbacks, status
0x04 Read Input Registers Read scanner data
0x06 Write Single Register Individual zone control
0x10 Write Multiple Registers Batch setpoint writes

Data Types

Register Data Types

Type Size Range Usage
INT16 1 register -32768 to 32767 Status, scaled values
UINT16 1 register 0 to 65535 Unsigned integers, positions
INT32 2 registers -2.1B to 2.1B Counters, timestamps
FLOAT32 2 registers IEEE 754 single Setpoints, feedbacks, profiles

Byte Order

The system supports configurable byte order for multi-register values:

  • Big Endian (AB CD): Most significant byte first
  • Little Endian (CD AB): Least significant byte first
  • Big Endian Byte Swap (BA DC): Word-swapped big endian
  • Little Endian Byte Swap (DC BA): Word-swapped little endian
Byte Order Selection

Select byte order to match your PLC configuration. Most Siemens PLCs use Big Endian, while many other PLCs use Little Endian. Test with known values to verify.

Value Scaling

Position values are typically scaled as percentages (0-100%). When using integer registers:

Engineering Value = (Register Value × Scale) + Offset

Example (0-32767 to 0-100%):
  Scale = 100 / 32767 = 0.003052
  Position = Register × 0.003052