|
|
|
For **Bulk Milk Chiller (BMC) with Thermal Battery IoT integration**, there is **no universal Modbus register map** because each OEM controller uses its own map. However, for a **custom IoT gateway or controller**, a standard **industrial Modbus register structure** can be designed so SCADA, dairy ERP, or cloud systems can easily integrate.
|
|
|
|
Below is a **practical Modbus RTU/TCP register map typically used for Milk Chiller monitoring systems**.
|
|
|
|
---
|
|
|
|
# 1. Modbus Communication Parameters
|
|
|
|
Typical configuration used in dairy equipment:
|
|
|
|
| Parameter | Value |
|
|
| --------- | ------------ |
|
|
| Protocol | Modbus RTU |
|
|
| Interface | RS485 |
|
|
| Baud rate | 9600 / 19200 |
|
|
| Data bits | 8 |
|
|
| Parity | Even |
|
|
| Stop bits | 1 |
|
|
| Slave ID | 1–247 |
|
|
|
|
IoT gateway can convert **RS485 → MQTT / HTTP / Cloud**.
|
|
|
|
---
|
|
|
|
# 2. Input Registers (Sensor Data)
|
|
|
|
**Function Code: 04**
|
|
|
|
| Register | Parameter | Unit | Description |
|
|
| -------- | ------------------------- | ------ | --------------------- |
|
|
| 30001 | Milk Temperature | 0.1 °C | Milk tank temp |
|
|
| 30002 | Thermal Battery Temp | 0.1 °C | PCM temperature |
|
|
| 30003 | Evaporator Temp | 0.1 °C | Cooling coil |
|
|
| 30004 | Compressor Discharge Temp | 0.1 °C | Compressor protection |
|
|
| 30005 | Ambient Temperature | 0.1 °C | Outside environment |
|
|
| 30006 | Milk Tank Level | Liters | From level sensor |
|
|
| 30007 | Milk Flow Rate | L/min | Milk intake |
|
|
| 30008 | Compressor Current | 0.1 A | Motor load |
|
|
| 30009 | Voltage | 0.1 V | Supply voltage |
|
|
| 30010 | Power Consumption | W | Real-time power |
|
|
|
|
---
|
|
|
|
# 3. Holding Registers (Configuration)
|
|
|
|
**Function Code: 03**
|
|
|
|
| Register | Parameter | Unit |
|
|
| -------- | --------------------------- | ------ |
|
|
| 40001 | Milk Cooling Setpoint | °C |
|
|
| 40002 | Compressor Start Temp | °C |
|
|
| 40003 | Compressor Stop Temp | °C |
|
|
| 40004 | Thermal Battery Charge Temp | °C |
|
|
| 40005 | Alarm Temp High | °C |
|
|
| 40006 | Alarm Temp Low | °C |
|
|
| 40007 | Compressor Restart Delay | sec |
|
|
| 40008 | Milk Tank Capacity | Liters |
|
|
|
|
---
|
|
|
|
# 4. Coil Registers (Digital Outputs)
|
|
|
|
**Function Code: 01**
|
|
|
|
| Register | Control |
|
|
| -------- | --------------------------- |
|
|
| 00001 | Compressor ON/OFF |
|
|
| 00002 | Agitator Motor |
|
|
| 00003 | Milk Pump |
|
|
| 00004 | Thermal Battery Charge Mode |
|
|
| 00005 | Alarm Buzzer |
|
|
| 00006 | Remote Reset |
|
|
|
|
---
|
|
|
|
# 5. Discrete Inputs (Status)
|
|
|
|
**Function Code: 02**
|
|
|
|
| Register | Status |
|
|
| -------- | ----------------------- |
|
|
| 10001 | Compressor Running |
|
|
| 10002 | Agitator Running |
|
|
| 10003 | Power Available |
|
|
| 10004 | Door Open |
|
|
| 10005 | High Temperature Alarm |
|
|
| 10006 | Low Temperature Alarm |
|
|
| 10007 | Thermal Battery Charged |
|
|
| 10008 | Sensor Fault |
|
|
|
|
---
|
|
|
|
# 6. Data Logging Registers
|
|
|
|
For **IoT analytics**
|
|
|
|
| Register | Parameter |
|
|
| -------- | -------------------------- |
|
|
| 31001 | Total Compressor Run Hours |
|
|
| 31002 | Total Energy Consumption |
|
|
| 31003 | Milk Collected Today |
|
|
| 31004 | Cooling Cycles Today |
|
|
| 31005 | Last Alarm Code |
|
|
|
|
---
|
|
|
|
# 7. Alarm Codes
|
|
|
|
| Code | Alarm |
|
|
| ---- | --------------------------- |
|
|
| 1 | Milk temperature high |
|
|
| 2 | Compressor overload |
|
|
| 3 | Low refrigerant pressure |
|
|
| 4 | Thermal battery not charged |
|
|
| 5 | Sensor failure |
|
|
| 6 | Power failure |
|
|
|
|
---
|
|
|
|
# 8. Example Modbus Read
|
|
|
|
Example: Read milk temperature
|
|
|
|
```
|
|
Slave ID : 01
|
|
Function : 04
|
|
Register : 30001
|
|
Length : 01
|
|
```
|
|
|
|
Response:
|
|
|
|
```
|
|
01 04 02 00 FA CRC
|
|
```
|
|
|
|
`00FA = 250 → 25.0 °C`
|
|
|
|
---
|
|
|
|
# 9. Typical IoT Gateway Architecture
|
|
|
|
```
|
|
BMC Controller
|
|
│
|
|
│ RS485 Modbus
|
|
▼
|
|
IoT Gateway
|
|
(ESP32 / STM32 / Linux)
|
|
│
|
|
4G / NB-IoT
|
|
│
|
|
MQTT
|
|
│
|
|
Cloud Dashboard
|
|
```
|
|
|
|
---
|
|
|
|
# 10. Recommended Sensors for BMC IoT
|
|
|
|
| Parameter | Sensor |
|
|
| ------------------ | ---------------------- |
|
|
| Milk temperature | PT100 / DS18B20 |
|
|
| Tank level | Ultrasonic / Load cell |
|
|
| Flow | Milk flow meter |
|
|
| Power | Energy meter |
|
|
| Compressor current | Hall current sensor |
|
|
|
|
---
|
|
|
|
💡 **Important practical note**
|
|
|
|
Most dairy chillers (including those from Promethean Power Systems) **do not expose native Modbus**, so an **external IoT controller** usually reads sensors directly or taps into PLC signals.
|
|
|
|
---
|
|
|
|
If you want, I can also provide:
|
|
|
|
1️⃣ **Complete SAME54 firmware architecture for BMC IoT controller**
|
|
2️⃣ **RS485 Modbus gateway firmware with MQTT cloud upload**
|
|
3️⃣ **Full hardware BOM (~₹4500 IoT board) for 1000 milk collection centers**.
|