機房UPS一般采用自定義協議,例如:
串口發送:Q1<CR>
UPS回復:(MMM.M NNN.N PPP.P QQQ RRR.R SS.S TT.T b7b6b5b4b3b2b1b0<CR>
狀態信息描述:[ 每個量之間都有一個空格符 ]
起始字符:'(',就是十六進制的28H
輸入電壓(I/P voltage):MMM.M,M為 0~9 的整數,狀態量單位為 Vac
輸入故障電壓(I/P fault voltage):NNN.N,N 為 0~9 的整數,狀態量單位為 Vac
輸出電壓(O/P voltage):PPP.P,P 為 0~9 的整數,狀態量單位為 Vac
輸出電流(O/P current):QQQ,QQQ 是一個相對于最大允許電流的百分比,不是一個絕對值
輸入頻率(I/P frequency):RR.R,R 為 0~9 的整數,狀態量單位為 Hz
電池電壓(Battery voltage):SS.S 或 S.SS,S 為 0~9 的整數
機內溫度(Temperature):TT.T,T 為 0~9 的整數,單位為 °C
UPS 開關量狀態:<U>
這種協議不利于統一管理?,F在需要一個網關將UPS協議轉化為Modbus TCP協議。卓嵐網關ZLAN5107-C的使用方法如下:
| 變量 | 功能碼 | 寄存器地址 | 長度 | 類型 |
|---|---|---|---|---|
| MMM.M | 3 | 0 | 4 | 浮點 |
| NNN.N | 3 | 2 | 4 | 浮點 |
| PPP.P | 3 | 4 | 4 | 浮點 |
| RRR.R | 3 | 6 | 4 | 浮點 |
| SS.S或者S.SS | 3 | 8 | 4 | 浮點 |
| TT.T | 3 | 10 | 4 | 浮點 |
| QQQ | 3 | 12 | 4 | 整形 |
| B0 | 3 | 14 | 2 | 整形 |
| B1 | 3 | 15 | 2 | 整形 |
| B2 | 3 | 16 | 2 | 整形 |
| B3 | 3 | 17 | 2 | 整形 |
| B4 | 3 | 18 | 2 | 整形 |
| B5 | 3 | 19 | 2 | 整形 |
| B6 | 3 | 20 | 2 | 整形 |
| B7 | 3 | 21 | 2 | 整形 |
| Online在線標志 | 3 | 22 | 2 | 整形 |
可以讀取任意個數的寄存器。請使用Modbus TCP指令。
串口每隔1秒輸出 Q1<CR> 。
通過22寄存器可以讀取是否在線的信息。如果在線就是1。
假如串口回復的數據是:
(111.1 222.2 333.3 444 555.5 66.6 77.7 11000001
則Modbus顯示的數據是:
各寄存器按照上述地址表對應解析
假如SS.S變為S.SS則同樣可以得到正確的結果。
注意除了SS.S和S.SS可以變化外,其它的數據的位置和小數點都不能變化,如果高位沒有數據則需要補0。
請使用正確的浮點和整形格式進行解析。
其中的QQQ是整形數據,B0~B7是正序排列在寄存器里面的(串口數據是反序從B7到B0的)。
