基于PROFIBUS—DP的串口設(shè)備群的集成方案與實(shí)現(xiàn)
引言
PROFIBUS是市場占有率最高的一種現(xiàn)場總線技術(shù),它包括用于制造業(yè)自動化的PROFIBUS—DP和用于流程工業(yè)領(lǐng)域的PROFIBUS—PA,它是目前我國唯一的現(xiàn)場總線國家標(biāo)準(zhǔn)。現(xiàn)在越來越多的工業(yè)控制系統(tǒng)采用了PROFIBuS現(xiàn)場總線技術(shù),還有很多企業(yè)希望在原有設(shè)備的基礎(chǔ)上改造成現(xiàn)場總線控制系統(tǒng)。這樣一來,許多舊的不PROFIBUS—DP接口的串口設(shè)備,要實(shí)現(xiàn)總線控制系統(tǒng)就比較困難,如果都將其更換為具有DP接口的控制設(shè)備,將給企業(yè)帶來巨大的經(jīng)濟(jì)負(fù)擔(dān)。那么如何把現(xiàn)存的不帶DP接口的串口設(shè)備連接到總線上組成DP網(wǎng)絡(luò)就成為一個(gè)亟待解決的問題。
解決該問題的方法有很多種,一種方法是將每一個(gè)控制設(shè)備都增加一個(gè)由其相應(yīng)廠家生產(chǎn)的DP接口模塊,使用這種方法一方面會增加很多硬件成本,另一方面有些生產(chǎn)串口設(shè)備的廠家根本就不能提供與這些舊型號相匹配的DP接口模塊;另外一種方法是設(shè)計(jì)局部的底層小網(wǎng)絡(luò),這種網(wǎng)絡(luò)的主站可以是基于PLC的,也可以是基于其他智能設(shè)備的,然后集中通過一個(gè)DP接口掛接到DP網(wǎng)絡(luò)中。本文介紹的是基于PROFIBUS爪S485總線橋?qū)崿F(xiàn)串口設(shè)備群和DP網(wǎng)絡(luò)互聯(lián)的方法,它屬于后者。使用本文介紹的組網(wǎng)方法,不但硬件成本比較低,安裝方便,而且編程簡單,PROFlBUS—DP主站可以直接對各個(gè)串口設(shè)備進(jìn)行控制,傳輸速率較快,有很好的實(shí)用性和可行性。
1 系統(tǒng)構(gòu)成
PROFIBUS/485總線橋的PROFlBUS通信接口為標(biāo)準(zhǔn)的DP驅(qū)動接口,波特率自適應(yīng),最大波特率為6Mbps。其通信協(xié)議符合DP—V0,其串口設(shè)備接口為標(biāo)準(zhǔn)的485接口,通信波特率最大可達(dá)57.6Kbps,傳輸速率為2400bit/s~57.6Kbit/s。根據(jù)通信速度的要求,建議所掛串口設(shè)備數(shù)量不宜太多。本實(shí)驗(yàn)中,利用總線橋作為串口設(shè)備網(wǎng)絡(luò)的主站與串口設(shè)備群實(shí)現(xiàn)485通信,同時(shí)總線橋作為PROFIBUS的從站,實(shí)現(xiàn)與現(xiàn)場總線系統(tǒng)的通信功能。
實(shí)驗(yàn)系統(tǒng)采用CPU3 15.2DP作為DP系統(tǒng)的主站,總線橋作為現(xiàn)場總線系統(tǒng)的一個(gè)DP從站,與DP主站進(jìn)行通信,同時(shí)總線橋作為串口設(shè)備網(wǎng)絡(luò)的一個(gè)主站,與它下面掛接的串口設(shè)備群進(jìn)行通信。在本系統(tǒng)中采用幾個(gè)S7—200 PLC作為模擬的串口設(shè)備群,系統(tǒng)結(jié)構(gòu)如圖1所示。當(dāng)然,系統(tǒng)中也可以連接其他的串口設(shè)備,其實(shí)現(xiàn)方法大致相同。
圖1 系統(tǒng)構(gòu)成示意圖
2 PROFIBUS/RS485總線橋的工作原理
總線橋工作原理是:一方面,CPU通過對PROFIBUS通信協(xié)議芯片的控制實(shí)現(xiàn)PROFIBUS的通信,在I認(rèn)M中建立PROFIBUS通信數(shù)據(jù)緩沖區(qū);另一方面,通過RS485接口實(shí)現(xiàn)和外部現(xiàn)場設(shè)備的通信,同樣在RAM中建立RS485通信數(shù)據(jù)緩沖區(qū)。CPU通過兩個(gè)通信緩沖區(qū)的數(shù)據(jù)交換,實(shí)現(xiàn)PROFIBUS到RS485的通信。
由于總線橋自身不具備控制功能,必須通過DP主站進(jìn)行控制。DP主站通過對其控制字的設(shè)置,來控制總線橋作為RS485網(wǎng)絡(luò)主站對其各從站的發(fā)送接收模式,通過監(jiān)控其狀態(tài)字來實(shí)現(xiàn)對數(shù)據(jù)發(fā)送接收狀態(tài)的監(jiān)控。PROFIBUS數(shù)據(jù)區(qū)與RS485數(shù)據(jù)報(bào)文格式對照關(guān)系如表1所示。
表1 PROFIBus數(shù)據(jù)區(qū)與RS485接收報(bào)文對照表
總線橋的輸入輸出數(shù)據(jù)緩沖單元可由用戶在現(xiàn)場總線網(wǎng)絡(luò)組態(tài)中自行設(shè)定,最大輸入單元不得超過224個(gè)字節(jié),最大輸出單元也不得超過224個(gè)字節(jié),輸入和輸出單元之和最大不得超過232個(gè)字節(jié)。由于總線橋在PROFIBUS配置中預(yù)留2字節(jié)輸入作為“接收長度”和“通信狀態(tài)字”,2字節(jié)輸出作為“發(fā)送長度”和“控制字”,因此對于總線橋來說最大輸入報(bào)文長度不得超過222個(gè)字節(jié),最大輸出報(bào)文長度也不得超過222個(gè)字節(jié),輸入和輸出報(bào)文長度之和最大不得超過230個(gè)字節(jié)。
由表1可知,總線橋在PROFIBuS中預(yù)留字節(jié)中IBl為通信狀態(tài)字,其各位(D7~D0)所代表的含義為:D0為l時(shí)表示接口處于“接收完畢/發(fā)送允許”狀態(tài),為0時(shí)表示接口處于“等待接收”狀態(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ù)字符奇偶校驗(yàn)錯(cuò),為0表示無接收數(shù)據(jù)字符奇偶校驗(yàn)錯(cuò)。QB1字節(jié)為通信控制字,其各位(D7~DO)所代表的含義為:DO位為1時(shí)表示在自動發(fā)送模式時(shí),主站按照設(shè)定的時(shí)間間隔,自動連續(xù)發(fā)送,該位需和QB1的Dl位配合使用,D0為0時(shí)表示在觸發(fā)發(fā)送模式時(shí),當(dāng)該位由0變1(上升沿)時(shí),觸發(fā)發(fā)送一次;D1為l表示主站處于自動定時(shí)發(fā)送模式,為0時(shí)表示總線橋處于觸發(fā)發(fā)送模式;D2為1時(shí)表示接收模式為按長度接收,按照用戶給定的接收報(bào)文長度控制
接收結(jié)束,為0時(shí)表示接收模式為按字符間隔接收,當(dāng)接收到一個(gè)字符后連續(xù)3.5個(gè)字符時(shí)間沒有收到下一個(gè)字符時(shí),認(rèn)為報(bào)文結(jié)束;D3、D4、D5位未定義;D6位為1時(shí)表示主站處于強(qiáng)制等待接收,為O時(shí)無效;D7位為1時(shí)表示主站處于強(qiáng)置允許發(fā)送狀態(tài),為0時(shí)無效。
本實(shí)驗(yàn)系統(tǒng)中涉及的狀態(tài)位和控制位有11.0、Q0.0和Q0.1位。
3 通信系統(tǒng)程序設(shè)計(jì)
3.1 PROFIBUS-DP主站通信方案及程序框圖
總線橋設(shè)備作為一個(gè)DP從站,其組態(tài)過程和其他DP從站一樣,首先將其相應(yīng)的GSD文件添加到STEP7中,找到相應(yīng)的設(shè)備添加到DP網(wǎng)絡(luò)中。然后根據(jù)需要配置好輸入輸出數(shù)據(jù)緩沖區(qū)即可。本實(shí)驗(yàn)系統(tǒng)輸入輸出的配置為:除系統(tǒng)自動預(yù)留的2字節(jié)輸入和2字節(jié)輸出作為“接收報(bào)文長度”、“通信狀態(tài)字”、“發(fā)送報(bào)文長度”和“控制字”外,配置了6字節(jié)的輸入和6字節(jié)的輸出。所以發(fā)送和接收報(bào)文的長度都不能超過6個(gè)字節(jié)。此時(shí)主站PLC上帶有的其他輸入輸出模塊,其輸入輸出地址均是從IB8和QB8開始的。
串口設(shè)備的通信過程必須是有應(yīng)答的。通過實(shí)驗(yàn)可知,在主程序中通過檢測I1.0(接收完成/發(fā)送允許)的狀態(tài)位來實(shí)現(xiàn)對串口設(shè)備從站輪流控制是不可行的。由于通信速度較快,在主程序中有時(shí)無法準(zhǔn)確捕捉I1.0的上升沿,鑒于該情況便考慮到了采用S7—300的I/O中斷方式實(shí)現(xiàn),通過I1.0(接收完成/發(fā)送允許)狀態(tài)位產(chǎn)生中斷,對從站輪流發(fā)送數(shù)據(jù),從而實(shí)現(xiàn)對從站的控制。但總線橋11.0狀態(tài)位既不是作為S7300主站一個(gè)輸入點(diǎn),也不是總線橋作為DP從站的一個(gè)輸入點(diǎn),所以既無法采用硬件中斷,也無發(fā)采用分布式I/O觸發(fā)主站的硬件中斷。
經(jīng)過驗(yàn)證,最后采用基于時(shí)間的控制方式,即自動定時(shí)發(fā)送模式,由主站程序控制對各個(gè)從站的輪流控制發(fā)送和接收。定時(shí)間隔從50ms到10s可由用戶自行設(shè)定。本實(shí)驗(yàn)系統(tǒng)的定時(shí)間隔為1s,其程序流程圖如圖2所示(以對2個(gè)串口設(shè)備控制為例)。
評論