DF1協議
1. 概述
可編程控制器(PLC)因編程方便,抗干擾能力強,被廣泛應用於各種領域。DF1協議是AB公司可編程控制器系統廣泛支持的數據鏈路層通信協議,各系列可編程控制器及裝有RSLinx通信軟件的計算機均支持DF1協議。它的物理層建立在RS232和RS485等電氣標准之上,針對不同的設備建立不同的應用層命令。綜合物理層、數據鏈路層和應用層后能夠完成基於DF1協議的通信。
2. 網絡模型
相較於OSI網絡模型,DF1協議應用涉及物理層、數據鏈路層和應用層。
DF1協議最大的特點是聯合了ANSI x3.28規范中的D1(數據透明性)和F1(雙向同時傳輸兼內部響應)。數據透明性是指報文格式簡單和數據的可讀性,雙向同時傳輸兼內部響應是指在物理層的RXD和TXD上數據是同時傳輸的。DF支持全雙工或半雙工通信,對應不同的物理層網絡拓補,全雙工通信需要基於RS232/RS422等網絡部署,半雙工通信需要基於RS485網絡部署。
3. DF1協議
3.1 DF1協議應用分類
DF1協議主要分兩類:DF1半雙工協議(主從通信)和DF1全雙工協議(點對點通信)。
DF1半雙工主從協議提供一種多支路單主多從網絡,主機通過定時輪詢從機啟動通信。半雙工協議是一種支持一主多從通信方式的協議,允許2到255個節點通過modems同時連接到單一鏈路上。如果只有一個從站,從站可以直接與主站相連。DF1全雙工協議是點對點的通信協議,主要特定有:1)在點對點鏈路中允許同時收發數據;2)在多支路鏈路中的交互模塊具有數據仲裁功能;3)高性能的協議實現程序應該盡可能的從傳輸媒介中獲得大的數據流量。當通過AB通信模塊連接交互模塊時,通信模塊自動完成仲裁功能。如果系統對實時性要求不高則采用半雙工通信模式,反之采用全雙工方式。
全雙工和半雙工通信的控制字符、數據幀格式、數據處理流程均不同,需區別處理。
3.2 DF1控制字符
DF1協議采用的是異步通信方式,數據是一幀一幀地發送。DF1協議的控制字符是ASCII碼控制字符,通常由7位組成,需要在前面添加一位構成8位數據。DF1協議就是通過組合一些控制字符,構成特殊的控制信號和數據信號的。組成控制信號和數據信號的控制字符必須連續發送,中間不要再有其他字符。控制信號是固定不變的組合,而數據信號的內容是可變的。
全雙工傳送信號與半雙工傳送信號相比DLE NAK在這里沒有reset作用,DLE ENQ也不是輪詢報文開始標識,而是要求對方重新發送的標識,其他標識含義相同。半雙工傳送信號比全上工傳送信號多出了DLE SOH(10 01)、DLE EOT(10 04)、STN等標識。DF1全雙工主要通過兩個主程序:發送主程序和接收主程序來實現發和收同時進行,這就體現了DF1的雙向同時傳輸的特點。關於DF1全雙工的實現流程比較簡單,基本是一發一收,發送報文后通過收到的反饋情況來判斷是否正確執行,若沒有則重發,或顯示錯誤等操作。
3.3 DF1報文幀格式
半雙工協議使用下面3種報文幀格式:
全雙工協議一般只使用半雙工協議的第三種報文幀格式:從報文幀,格式如下:
一般情況下,應用消息幀格式如下:
DF1提供兩種校驗方式:BCC和CRC校驗,BCC是一種累加校驗算法,簡單但功能有限,一般使用CRC校驗。CF1的CRC校驗雖然采用CRC-16標准,但與常用的CRC-16略有不同,其CRC初始寄存器值為0x0000H,而不是0XFFFFH。
參考:
2. 基於DF1協議的通訊在鋁廠煙氣凈化監控系統中的應用實踐
3. https://github.com/leicht/Df1
4. 基於AB DF1串口協議的無線控制方案在南京地鐵BAS系統遠程監控中的應用
5. DF1 Protocol and Command Set Reference Manual
6. Allen-Bradley on DF1
7. How to Connect to an Allen-Bradley SLC 500 PLC
8. 羅克韋爾官網