基于PROFIBUS—DP的串口設備群的集成方案與實現
引言
PROFIBUS是市場占有率最高的一種現場總線技術,它包括用于制造業自動化的PROFIBUS—DP和用于流程工業領域的PROFIBUS—PA,它是目前我國唯一的現場總線國家標準。現在越來越多的工業控制系統采用了PROFIBuS現場總線技術,還有很多企業希望在原有設備的基礎上改造成現場總線控制系統。這樣一來,許多舊的不PROFIBUS—DP接口的串口設備,要實現總線控制系統就比較困難,如果都將其更換為具有DP接口的控制設備,將給企業帶來巨大的經濟負擔。那么如何把現存的不帶DP接口的串口設備連接到總線上組成DP網絡就成為一個亟待解決的問題。
解決該問題的方法有很多種,一種方法是將每一個控制設備都增加一個由其相應廠家生產的DP接口模塊,使用這種方法一方面會增加很多硬件成本,另一方面有些生產串口設備的廠家根本就不能提供與這些舊型號相匹配的DP接口模塊;另外一種方法是設計局部的底層小網絡,這種網絡的主站可以是基于PLC的,也可以是基于其他智能設備的,然后集中通過一個DP接口掛接到DP網絡中。本文介紹的是基于PROFIBUS爪S485總線橋實現串口設備群和DP網絡互聯的方法,它屬于后者。使用本文介紹的組網方法,不但硬件成本比較低,安裝方便,而且編程簡單,PROFlBUS—DP主站可以直接對各個串口設備進行控制,傳輸速率較快,有很好的實用性和可行性。
1 系統構成
PROFIBUS/485總線橋的PROFlBUS通信接口為標準的DP驅動接口,波特率自適應,最大波特率為6Mbps。其通信協議符合DP—V0,其串口設備接口為標準的485接口,通信波特率最大可達57.6Kbps,傳輸速率為2400bit/s~57.6Kbit/s。根據通信速度的要求,建議所掛串口設備數量不宜太多。本實驗中,利用總線橋作為串口設備網絡的主站與串口設備群實現485通信,同時總線橋作為PROFIBUS的從站,實現與現場總線系統的通信功能。
實驗系統采用CPU3 15.2DP作為DP系統的主站,總線橋作為現場總線系統的一個DP從站,與DP主站進行通信,同時總線橋作為串口設備網絡的一個主站,與它下面掛接的串口設備群進行通信。在本系統中采用幾個S7—200 PLC作為模擬的串口設備群,系統結構如圖1所示。當然,系統中也可以連接其他的串口設備,其實現方法大致相同。

圖1 系統構成示意圖
2 PROFIBUS/RS485總線橋的工作原理
總線橋工作原理是:一方面,CPU通過對PROFIBUS通信協議芯片的控制實現PROFIBUS的通信,在I認M中建立PROFIBUS通信數據緩沖區;另一方面,通過RS485接口實現和外部現場設備的通信,同樣在RAM中建立RS485通信數據緩沖區。CPU通過兩個通信緩沖區的數據交換,實現PROFIBUS到RS485的通信。
由于總線橋自身不具備控制功能,必須通過DP主站進行控制。DP主站通過對其控制字的設置,來控制總線橋作為RS485網絡主站對其各從站的發送接收模式,通過監控其狀態字來實現對數據發送接收狀態的監控。PROFIBUS數據區與RS485數據報文格式對照關系如表1所示。

表1 PROFIBus數據區與RS485接收報文對照表
總線橋的輸入輸出數據緩沖單元可由用戶在現場總線網絡組態中自行設定,最大輸入單元不得超過224個字節,最大輸出單元也不得超過224個字節,輸入和輸出單元之和最大不得超過232個字節。由于總線橋在PROFIBUS配置中預留2字節輸入作為“接收長度”和“通信狀態字”,2字節輸出作為“發送長度”和“控制字”,因此對于總線橋來說最大輸入報文長度不得超過222個字節,最大輸出報文長度也不得超過222個字節,輸入和輸出報文長度之和最大不得超過230個字節。
由表1可知,總線橋在PROFIBuS中預留字節中IBl為通信狀態字,其各位(D7~D0)所代表的含義為:D0為l時表示接口處于“接收完畢/發送允許”狀態,為0時表示接口處于“等待接收”狀態;D1為1表示接口正在發送數據中,為0表示接口不在發送數據中;D2為l表示接口正在接收數據中,為0表示接口不在接收數據中;D3、D4、D5、D6位未定義;D7為1表示接收數據字符奇偶校驗錯,為0表示無接收數據字符奇偶校驗錯。QB1字節為通信控制字,其各位(D7~DO)所代表的含義為:DO位為1時表示在自動發送模式時,主站按照設定的時間間隔,自動連續發送,該位需和QB1的Dl位配合使用,D0為0時表示在觸發發送模式時,當該位由0變1(上升沿)時,觸發發送一次;D1為l表示主站處于自動定時發送模式,為0時表示總線橋處于觸發發送模式;D2為1時表示接收模式為按長度接收,按照用戶給定的接收報文長度控制
接收結束,為0時表示接收模式為按字符間隔接收,當接收到一個字符后連續3.5個字符時間沒有收到下一個字符時,認為報文結束;D3、D4、D5位未定義;D6位為1時表示主站處于強制等待接收,為O時無效;D7位為1時表示主站處于強置允許發送狀態,為0時無效。
本實驗系統中涉及的狀態位和控制位有11.0、Q0.0和Q0.1位。
3 通信系統程序設計
3.1 PROFIBUS-DP主站通信方案及程序框圖
總線橋設備作為一個DP從站,其組態過程和其他DP從站一樣,首先將其相應的GSD文件添加到STEP7中,找到相應的設備添加到DP網絡中。然后根據需要配置好輸入輸出數據緩沖區即可。本實驗系統輸入輸出的配置為:除系統自動預留的2字節輸入和2字節輸出作為“接收報文長度”、“通信狀態字”、“發送報文長度”和“控制字”外,配置了6字節的輸入和6字節的輸出。所以發送和接收報文的長度都不能超過6個字節。此時主站PLC上帶有的其他輸入輸出模塊,其輸入輸出地址均是從IB8和QB8開始的。
串口設備的通信過程必須是有應答的。通過實驗可知,在主程序中通過檢測I1.0(接收完成/發送允許)的狀態位來實現對串口設備從站輪流控制是不可行的。由于通信速度較快,在主程序中有時無法準確捕捉I1.0的上升沿,鑒于該情況便考慮到了采用S7—300的I/O中斷方式實現,通過I1.0(接收完成/發送允許)狀態位產生中斷,對從站輪流發送數據,從而實現對從站的控制。但總線橋11.0狀態位既不是作為S7300主站一個輸入點,也不是總線橋作為DP從站的一個輸入點,所以既無法采用硬件中斷,也無發采用分布式I/O觸發主站的硬件中斷。
經過驗證,最后采用基于時間的控制方式,即自動定時發送模式,由主站程序控制對各個從站的輪流控制發送和接收。定時間隔從50ms到10s可由用戶自行設定。本實驗系統的定時間隔為1s,其程序流程圖如圖2所示(以對2個串口設備控制為例)。


評論