一般應用中控制中心做為客戶端,分站做為服務器端,工作的過程是客戶端請求,服務器端響應。但在有些報警系統中要求當分站主動向控制中心上報數據。下面的描述將這種通信方式稱為主動上報。主動上報時請求和響應數據格式的對應次序關系與客戶端請求的數據的過程正好相反。
也就是說,正常的輪訓工作流程是中心站向分站做數據請求,分站做應答,而主動上傳是分站直接做應答(相當于收到了中心站的數據請求做應答而已),中心站收主動上傳的數據后發生一包數據請求做應道(相當于是需要向這個分站請求數據,只是分站應答提前到了而已)。
分站的主動上傳 “請求與響應內容”與普通的輪詢中做的“應答響應”格式和內容完全相同,只是需要將“捷麥標示頭”變成主動上傳標示(4F 3F 2F 1F 5F 5F),將“通信頭的”包類型字段換成主動上傳類型(0x84).
主站收到分站的主動上傳數據后,需要做出響應,分站的主動上傳響應中的“請求與響應內容”與普通的輪詢中做的“請求數據”格式和內容完全相同,只需要將“通信頭的”包類型字段換成主動上傳類型(0x04),注意“捷麥標示頭”還是普通的輪詢標示(4F 3F 2F 1F 5F 6F).
下面舉一個例子是關于主動上報離散輸入(20-38):
主動上報(分站發起) | |
字段名稱 | (Hex) |
功能 起始地址低位 起始地址高位 離散數量低位 離散數量高位 27-20的輸出狀態 35-28的輸出狀態 38-36的輸出狀態 | 01 |
13 | |
00 | |
13 | |
00 | |
CD | |
6B | |
05 |
主動上報的響應(主站響應) | |
字段名稱 | (Hex) |
功能 起始地址低位 起始地址高位 離散數量低位 離散數量高位 | 01 |
13 | |
00 | |
13 | |
00 |
十六進制數CD或二進制數1100 1101包含了輸出位27的狀態“1”。輸出位27是這個字節的最高位,輸出位20為這個字節的最地位。
在通常的情況下,一個字節的左邊是最高有效位,右邊是最低有效位。這樣輸出的第一個字節從左邊到右邊依次是位27到20,下一個字節從左到右依次是位35到28。當傳輸這些輸出狀態時,從最低有效位到最高有效位:20…27,28…35依次類推。
在最后一個字節,十六進制數05或二進制數0000 0101是輸出位38-36的狀態。輸出位38是從左邊開始數的第六位,輸出位36是這個字節的最低位。剩余的五個高位用0補。
分站一包完整的主動上傳的數據包為:
(假設分配的設備號為25 7D,包標示為5,中心站的地址為0,自己為7)
4F 3F 2F 1F 5F 5F 25 7D 05 00 0C 00 84 EF FF F0 00 00 00 00 07 00 BF 7D 01 01 01 13 00 13 00 CD 6B 05 34 50
分站完整的主動上傳響應包為:
4F 3F 2F 1F 5F 6F 25 7D 05 00 09 00 04 EF FF F0 00 00 07 00 00 00 B7 DD 01 01 01 13 00 13 00 3E 65
北京捷麥部分RTU產品,有主動上傳功能,可設置上傳通道、上傳周期、DI/DO/AI各自的上傳數量。如果是通過捷麥云通道上傳,還要設置主站地址。
北京捷麥RTU的主動上傳功能,無需上位機做出響應。
主動上傳數據定時向上位機發送,一包數據里面包含了所以需要上傳的變量信息。解析如下:
指令頭 | 主動上傳識別碼(無需關心) | 模塊地址 | CRC1 | ||
4F 3F 2F 1F 5F 5F | 10 01 03 00 23 00 84 00 00 00 00 00 04 00 | 01 00 | B2 19 | ||
有效數據段 | 段1 | 數據段1內容 | 段2 | 段2內容 | |
03 | 01 | 02 18 00 03 00 02 | 02 | 01 00 00 02 00 00 | |
段3 | 段3內容 | CRC2 | |||
03 | 36 00 00 03 00 00 00 00 00 94 9A 26 41 00 00 00 00 | FE 61 |
CRC1為灰色字段的CRC。CRC2為橙色字段的CRC。
此上傳包完整包內容如下:
4F 3F 2F 1F 5F 5F 10 01 03 00 23 00 84 00 00 00 00 00 04 00 01 00 B2 19 03 01 02 18 00 03 00 02 02 01 00 00 02 00 00 03 36 00 00 03 00 00 00 00 00 94 9A 26 41 00 00 00 00 FE 61
數據段內容解析(起始地址無需關心,變量個數即在設置軟件中填寫的上傳數量):
變量類型 | 功能碼 | 起始地址 | 變量個數 | 內容 | 說明 |
離散輸入DI | 02 | 18 00 | 03 00 | 02 | DI1=1,其它為0 |
離散輸出DO | 01 | 00 00 | 02 00 | 00 | 都為0 |
模擬量輸入AI | 36 | 00 00 | 03 00 | 00 00 00 00 94 9A 26 41 00 00 00 00 | AI1=10.4,AI0和AI2為0 |