新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于PROFIBUS—DP的串口設備群的集成方案與實現(xiàn)

        基于PROFIBUS—DP的串口設備群的集成方案與實現(xiàn)

        作者: 時間:2016-12-20 來源:網(wǎng)絡 收藏

        引言

        PROFIBUS是市場占有率最高的一種現(xiàn)場總線技術,它包括用于制造業(yè)自動化的PROFIBUS—DP和用于流程工業(yè)領域的PROFIBUS—PA,它是目前我國唯一的現(xiàn)場總線國家標準。現(xiàn)在越來越多的工業(yè)控制系統(tǒng)采用了PROFIBuS現(xiàn)場總線技術,還有很多企業(yè)希望在原有設備的基礎上改造成現(xiàn)場總線控制系統(tǒng)。這樣一來,許多舊的不PROFIBUS—DP接口的串口設備,要實現(xiàn)總線控制系統(tǒng)就比較困難,如果都將其更換為具有DP接口的控制設備,將給企業(yè)帶來巨大的經(jīng)濟負擔。那么如何把現(xiàn)存的不帶DP接口的串口設備連接到總線上組成DP網(wǎng)絡就成為一個亟待解決的問題。

        解決該問題的方法有很多種,一種方法是將每一個控制設備都增加一個由其相應廠家生產(chǎn)的DP接口模塊,使用這種方法一方面會增加很多硬件成本,另一方面有些生產(chǎn)串口設備的廠家根本就不能提供與這些舊型號相匹配的DP接口模塊;另外一種方法是設計局部的底層小網(wǎng)絡,這種網(wǎng)絡的主站可以是基于PLC的,也可以是基于其他智能設備的,然后集中通過一個DP接口掛接到DP網(wǎng)絡中。本文介紹的是基于PROFIBUS爪S485總線橋實現(xiàn)串口設備群和DP網(wǎng)絡互聯(lián)的方法,它屬于后者。使用本文介紹的組網(wǎng)方法,不但硬件成本比較低,安裝方便,而且編程簡單,PROFlBUS—DP主站可以直接對各個串口設備進行控制,傳輸速率較快,有很好的實用性和可行性。

        1 系統(tǒng)構成

        PROFIBUS/485總線橋的PROFlBUS通信接口為標準的DP驅動接口,波特率自適應,最大波特率為6Mbps。其通信協(xié)議符合DP—V0,其串口設備接口為標準的485接口,通信波特率最大可達57.6Kbps,傳輸速率為2400bit/s~57.6Kbit/s。根據(jù)通信速度的要求,建議所掛串口設備數(shù)量不宜太多。本實驗中,利用總線橋作為串口設備網(wǎng)絡的主站與串口設備群實現(xiàn)485通信,同時總線橋作為PROFIBUS的從站,實現(xiàn)與現(xiàn)場總線系統(tǒng)的通信功能。

        實驗系統(tǒng)采用CPU3 15.2DP作為DP系統(tǒng)的主站,總線橋作為現(xiàn)場總線系統(tǒng)的一個DP從站,與DP主站進行通信,同時總線橋作為串口設備網(wǎng)絡的一個主站,與它下面掛接的串口設備群進行通信。在本系統(tǒng)中采用幾個S7—200 PLC作為模擬的串口設備群,系統(tǒng)結構如圖1所示。當然,系統(tǒng)中也可以連接其他的串口設備,其實現(xiàn)方法大致相同。

        點擊放大圖片

        圖1 系統(tǒng)構成示意圖

        2 PROFIBUS/RS485總線橋的工作原理

        總線橋工作原理是:一方面,CPU通過對PROFIBUS通信協(xié)議芯片的控制實現(xiàn)PROFIBUS的通信,在I認M中建立PROFIBUS通信數(shù)據(jù)緩沖區(qū);另一方面,通過RS485接口實現(xiàn)和外部現(xiàn)場設備的通信,同樣在RAM中建立RS485通信數(shù)據(jù)緩沖區(qū)。CPU通過兩個通信緩沖區(qū)的數(shù)據(jù)交換,實現(xiàn)PROFIBUS到RS485的通信。

        由于總線橋自身不具備控制功能,必須通過DP主站進行控制。DP主站通過對其控制字的設置,來控制總線橋作為RS485網(wǎng)絡主站對其各從站的發(fā)送接收模式,通過監(jiān)控其狀態(tài)字來實現(xiàn)對數(shù)據(jù)發(fā)送接收狀態(tài)的監(jiān)控。PROFIBUS數(shù)據(jù)區(qū)與RS485數(shù)據(jù)報文格式對照關系如表1所示。

        點擊放大圖片

        表1 PROFIBus數(shù)據(jù)區(qū)與RS485接收報文對照表

        總線橋的輸入輸出數(shù)據(jù)緩沖單元可由用戶在現(xiàn)場總線網(wǎng)絡組態(tài)中自行設定,最大輸入單元不得超過224個字節(jié),最大輸出單元也不得超過224個字節(jié),輸入和輸出單元之和最大不得超過232個字節(jié)。由于總線橋在PROFIBUS配置中預留2字節(jié)輸入作為“接收長度”和“通信狀態(tài)字”,2字節(jié)輸出作為“發(fā)送長度”和“控制字”,因此對于總線橋來說最大輸入報文長度不得超過222個字節(jié),最大輸出報文長度也不得超過222個字節(jié),輸入和輸出報文長度之和最大不得超過230個字節(jié)。

        由表1可知,總線橋在PROFIBuS中預留字節(jié)中IBl為通信狀態(tài)字,其各位(D7~D0)所代表的含義為:D0為l時表示接口處于“接收完畢/發(fā)送允許”狀態(tài),為0時表示接口處于“等待接收”狀態(tài);D1為1表示接口正在發(fā)送數(shù)據(jù)中,為0表示接口不在發(fā)送數(shù)據(jù)中;D2為l表示接口正在接收數(shù)據(jù)中,為0表示接口不在接收數(shù)據(jù)中;D3、D4、D5、D6位未定義;D7為1表示接收數(shù)據(jù)字符奇偶校驗錯,為0表示無接收數(shù)據(jù)字符奇偶校驗錯。QB1字節(jié)為通信控制字,其各位(D7~DO)所代表的含義為:DO位為1時表示在自動發(fā)送模式時,主站按照設定的時間間隔,自動連續(xù)發(fā)送,該位需和QB1的Dl位配合使用,D0為0時表示在觸發(fā)發(fā)送模式時,當該位由0變1(上升沿)時,觸發(fā)發(fā)送一次;D1為l表示主站處于自動定時發(fā)送模式,為0時表示總線橋處于觸發(fā)發(fā)送模式;D2為1時表示接收模式為按長度接收,按照用戶給定的接收報文長度控制

        接收結束,為0時表示接收模式為按字符間隔接收,當接收到一個字符后連續(xù)3.5個字符時間沒有收到下一個字符時,認為報文結束;D3、D4、D5位未定義;D6位為1時表示主站處于強制等待接收,為O時無效;D7位為1時表示主站處于強置允許發(fā)送狀態(tài),為0時無效。

        本實驗系統(tǒng)中涉及的狀態(tài)位和控制位有11.0、Q0.0和Q0.1位。

        3 通信系統(tǒng)程序設計

        3.1 PROFIBUS-DP主站通信方案及程序框圖

        總線橋設備作為一個DP從站,其組態(tài)過程和其他DP從站一樣,首先將其相應的GSD文件添加到STEP7中,找到相應的設備添加到DP網(wǎng)絡中。然后根據(jù)需要配置好輸入輸出數(shù)據(jù)緩沖區(qū)即可。本實驗系統(tǒng)輸入輸出的配置為:除系統(tǒng)自動預留的2字節(jié)輸入和2字節(jié)輸出作為“接收報文長度”、“通信狀態(tài)字”、“發(fā)送報文長度”和“控制字”外,配置了6字節(jié)的輸入和6字節(jié)的輸出。所以發(fā)送和接收報文的長度都不能超過6個字節(jié)。此時主站PLC上帶有的其他輸入輸出模塊,其輸入輸出地址均是從IB8和QB8開始的。

        串口設備的通信過程必須是有應答的。通過實驗可知,在主程序中通過檢測I1.0(接收完成/發(fā)送允許)的狀態(tài)位來實現(xiàn)對串口設備從站輪流控制是不可行的。由于通信速度較快,在主程序中有時無法準確捕捉I1.0的上升沿,鑒于該情況便考慮到了采用S7—300的I/O中斷方式實現(xiàn),通過I1.0(接收完成/發(fā)送允許)狀態(tài)位產(chǎn)生中斷,對從站輪流發(fā)送數(shù)據(jù),從而實現(xiàn)對從站的控制。但總線橋11.0狀態(tài)位既不是作為S7300主站一個輸入點,也不是總線橋作為DP從站的一個輸入點,所以既無法采用硬件中斷,也無發(fā)采用分布式I/O觸發(fā)主站的硬件中斷。

        經(jīng)過驗證,最后采用基于時間的控制方式,即自動定時發(fā)送模式,由主站程序控制對各個從站的輪流控制發(fā)送和接收。定時間隔從50ms到10s可由用戶自行設定。本實驗系統(tǒng)的定時間隔為1s,其程序流程圖如圖2所示(以對2個串口設備控制為例)。


        上一頁 1 2 下一頁

        評論


        技術專區(qū)

        關閉
        主站蜘蛛池模板: 上高县| 澜沧| 长丰县| 华阴市| 祁阳县| 维西| 安图县| 宁明县| 石柱| 富裕县| 东海县| 溧阳市| 霍山县| 连平县| 汝南县| 濮阳县| 双桥区| 衡阳市| 朝阳市| 洪泽县| 武川县| 宁陕县| 舞钢市| 博客| 龙山县| 高邮市| 浑源县| 广元市| 建瓯市| 武胜县| 和平区| 沁阳市| 甘洛县| 东乌珠穆沁旗| 英德市| 武鸣县| 普定县| 赫章县| 宜川县| 潼关县| 巧家县|