陳在平 張 宇 倪建云 賈 超
(天津理工大學(xué) a.天津市復(fù)雜系統(tǒng)控制理論及應(yīng)用重點(diǎn)實(shí)驗(yàn)室;b.自動(dòng)化學(xué)院,天津 300384)
Profibus-DP作為開(kāi)放式現(xiàn)場(chǎng)總線標(biāo)準(zhǔn)之一,被廣泛應(yīng)用于制造業(yè)自動(dòng)化、流程工業(yè)自動(dòng)化及樓宇自動(dòng)化等自動(dòng)化領(lǐng)域。DP從站可作為通信接口,使不同制造商所生產(chǎn)的設(shè)備不進(jìn)行特別調(diào)整即可接入DP網(wǎng)絡(luò)[1]。而傳輸多路IO量數(shù)據(jù)就是DP從站的一種基本且常用的功能。DP從站的硬件設(shè)計(jì)已經(jīng)非常成熟,主要由單片機(jī)、協(xié)議芯片和隔離驅(qū)動(dòng)電路構(gòu)成。其中,單片機(jī)要滿足1KB以上RAM,8KB以上ROM的要求,如STM32系列及STC90系列單片機(jī)等;協(xié)議芯片主要有SPC3、VPC3及VPC3+C等;隔離驅(qū)動(dòng)電路可由HCPL7101、HCPL0601和485驅(qū)動(dòng)芯片(如SN75ALS176D)搭建,也可選取驅(qū)動(dòng)、隔離一體芯片,如ADM2486等。筆者應(yīng)用DP的診斷技術(shù),可將各個(gè)從站的故障信息及時(shí)反饋到主控制器上,以便快速定位到故障站點(diǎn)并排除故障,方便了維護(hù),該方法對(duì)于縮短故障排除時(shí)間和提高設(shè)備的穩(wěn)定性有很大幫助,能夠整體提高生產(chǎn)效率[2]。
由于DP從站的設(shè)計(jì)方案已十分典型,筆者不過(guò)多說(shuō)明,主要介紹Profibus診斷技術(shù)在DP從站的IO量數(shù)據(jù)傳輸中的應(yīng)用,圖1為獲取診斷信息的硬件電路。
圖1 獲取診斷信息的硬件電路
認(rèn)為當(dāng)inpower端與GND短路時(shí)即為故障,LM311D為比較器,3腳接收inpower的電平信號(hào),2腳是略高于0的低電平,正常情況下7腳輸出低電平。當(dāng)故障(即inpower與GND短路)出現(xiàn)時(shí),3腳為0V,要低于2腳電壓,比較器翻轉(zhuǎn),7腳輸出高電平,由Test端輸送給單片機(jī)的IO端口,即診斷信號(hào)出現(xiàn)。
由于在標(biāo)準(zhǔn)DP協(xié)議中擴(kuò)展了診斷部分,因此從站程序設(shè)計(jì)主要由主程序軟件設(shè)計(jì)和診斷程序軟件設(shè)計(jì)兩部分組成。
主程序流程如圖2所示。其中SPC3的初始化部分要放在主程序的起始位置,主要包括設(shè)定寄存器變量名、設(shè)置看門狗初值、設(shè)置從站地址和標(biāo)志號(hào)及設(shè)定緩沖區(qū)長(zhǎng)度等內(nèi)容[3]。一旦進(jìn)入數(shù)據(jù)交換后,除非出現(xiàn)從站地址改變等特殊情況,否則不會(huì)退出數(shù)據(jù)交換的大循環(huán)。
圖2 主程序流程
當(dāng)有診斷信號(hào)出現(xiàn)時(shí)(如硬件設(shè)計(jì)中的Test端出現(xiàn)高電平),單片機(jī)則進(jìn)入診斷程序,處理診斷數(shù)據(jù)。因?yàn)榭梢愿鶕?jù)單片機(jī)的空閑引腳來(lái)決定診斷信號(hào)的數(shù)量,即可擴(kuò)展成多路診斷同時(shí)出現(xiàn)的情況,所以需要在程序里判斷診斷類型,并設(shè)置相應(yīng)的擴(kuò)展診斷數(shù)據(jù)的長(zhǎng)度和對(duì)應(yīng)的診斷代碼。最后調(diào)用診斷數(shù)據(jù)塊,填充擴(kuò)展診斷信息,在本流程中,將出現(xiàn)診斷的從站地址作為診斷信息填充進(jìn)去。筆者設(shè)定了兩種診斷類型,即對(duì)應(yīng)了兩類故障,任何一類故障出現(xiàn)均可觸發(fā)診斷,并告知主站進(jìn)行處理。診斷部分流程如圖3所示。
采用西門子S7-300 PLC作為主站,型號(hào)為314C-2 DP,在STEP7中使用功能塊OB82獲取診
圖3 診斷程序流程
斷信息,用系統(tǒng)功能塊SFC51獲取系統(tǒng)信息,并存儲(chǔ)在數(shù)據(jù)塊DB13中。最終在OB1中調(diào)用各個(gè)功能塊,下面給出OB82的部分程序:
…
L #OB82_IO_FLAG
L B#16#54
==I
JC go
L #OB82_MDL_ADDR
L W#16#8000
OW
T #OB82_MDL_ADDR
go: L #OB82_MDL_ADDR
T MW 30
L #OB82_EV_CLASS
L B#16#39
==I
S M 40.0
JC com
R M 40.0
L #OB82_MDL_ADDR
T MW 30
…
系統(tǒng)測(cè)試主要由對(duì)總線網(wǎng)絡(luò)通信部分的測(cè)試和對(duì)診斷部分的測(cè)試兩部分組成。
通信測(cè)試部分采用配備DP接口的西門子PLC作為主站,擴(kuò)展外部診斷的DP從節(jié)點(diǎn)作為從站。在SIMATIC MANAGER中組態(tài)DP網(wǎng)絡(luò)并編寫主站程序,編譯沒(méi)有錯(cuò)誤后下載到西門子PLC S7-300中運(yùn)行[4]。通過(guò)ProfiTrace抓取網(wǎng)絡(luò)中的報(bào)文信息,獲取DP網(wǎng)絡(luò)的運(yùn)行情況。圖4為DP從站與主站正常通信時(shí)的數(shù)據(jù)交換狀況,采用1字節(jié)長(zhǎng)度(即8路IO量)進(jìn)行數(shù)據(jù)交換,主站發(fā)送數(shù)據(jù)01給從站,從站返回88給主站,具體的數(shù)據(jù)長(zhǎng)度可根據(jù)實(shí)際情況進(jìn)行設(shè)定。
圖4 DP通信測(cè)試
對(duì)診斷部分的測(cè)試是在通信測(cè)試的基礎(chǔ)上進(jìn)行的,本測(cè)試模擬了兩類故障(圖5為兩類故障均出現(xiàn)的情況),用戶可根據(jù)實(shí)際需求擴(kuò)展故障類型。配置好DP網(wǎng)絡(luò)后,在STEP-7程序中添加診斷中斷功能塊OB82和數(shù)據(jù)塊DB13,當(dāng)故障出現(xiàn)時(shí),PLC的SF指示燈變亮,在ProfiTrace中也能監(jiān)測(cè)到站號(hào)的左上角有紅燈閃爍。如果是一類故障,則在DB13數(shù)據(jù)塊的DBB7中添加診斷信息,如果是二類故障,則在DBB8中添加診斷信息。在本測(cè)試中,把出現(xiàn)問(wèn)題的10號(hào)從站的地址作為診斷信息(地址為十六進(jìn)制0X0A)填充到數(shù)據(jù)區(qū)中。
通過(guò)系統(tǒng)測(cè)試,可以驗(yàn)證DP從站在Profibus-DP網(wǎng)絡(luò)中運(yùn)行的正確性和穩(wěn)定性,在出現(xiàn)故障后,能及時(shí)準(zhǔn)確地向主站反映故障信息和出現(xiàn)故障的從節(jié)點(diǎn)地址。
詳細(xì)地闡述了外部診斷技術(shù)在Profibus-DP從站中的應(yīng)用、具體測(cè)試方案和實(shí)驗(yàn)結(jié)果。使用該設(shè)計(jì)方案,可以在不改動(dòng)基本電路的基礎(chǔ)上,對(duì)I/O部分簡(jiǎn)單調(diào)整,即可使大部分外圍設(shè)備連接到DP網(wǎng)絡(luò)上,并且能夠準(zhǔn)確快速地檢測(cè)到外圍電路的故障診斷信息,及時(shí)定位并排除電路故障。
[1] 鄭小倩,黃明琪. PROFIBUS-DP主站和從站通訊的設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2007,23(1):48~49,108.
[2] 張強(qiáng).采用SPC3設(shè)計(jì)Profibus-DP智能從站[J].自動(dòng)化儀表,2005,26(3):17~20.
[3] 周侗,魏劍嵬,劉丹,等.基于PROFIBUSDP從設(shè)備開(kāi)發(fā)的協(xié)議分析與軟件設(shè)計(jì)[J].信息與控制,2005,34(1):115~118.
[4] 王永華,李娜,閻佩獻(xiàn).基于工業(yè)以太網(wǎng)和PROFIBUS的FCS實(shí)時(shí)在線故障診斷系統(tǒng)[J].制造業(yè)自動(dòng)化,2010,32(12):24~26,115.