1 引言
某項(xiàng)目在設(shè)計(jì)某自動(dòng)控制系統(tǒng)時(shí),需對(duì)多臺(tái)倫茨公司的lenze 4900直流調(diào)速裝置(以下簡(jiǎn)稱:lenze 4900)進(jìn)行實(shí)時(shí)監(jiān)控。倫茨直流調(diào)速裝置提供了多種通信方式,通過(guò)配接不同的通信模塊可實(shí)現(xiàn)如:profibus、can、interbus、lecom等多種通信協(xié)議。
該直流調(diào)速裝置則使用lecom串口通信協(xié)議,該協(xié)議主要用于多臺(tái)倫茨直流調(diào)速裝置與主站之間以主從方式進(jìn)行通信。筆者在搜尋lecom協(xié)議相關(guān)資料時(shí),從電氣傳動(dòng)自動(dòng)化雜志2002年12月第24卷第6期的文章《倫茨變頻器lecom通信的實(shí)現(xiàn)》中得到很大啟發(fā)。該篇文章主要介紹倫茨變頻器通過(guò)lecom協(xié)議與上位機(jī)通信的實(shí)現(xiàn)方法,而倫茨直流調(diào)速裝置通過(guò)lecom協(xié)議與上位機(jī)實(shí)現(xiàn)通信時(shí),其硬件實(shí)現(xiàn)方式與倫茨變頻器類似,而通信協(xié)議則有一些差別。
下面詳細(xì)講述本自動(dòng)控制系統(tǒng)的系統(tǒng)構(gòu)成和倫茨直流調(diào)速裝置lecom通信的通信協(xié)議、設(shè)計(jì)思路,以及l(fā)ecom通信在本控制系統(tǒng)中的實(shí)現(xiàn)方法。
2 控制系統(tǒng)的構(gòu)成及通訊協(xié)議
在本自動(dòng)控制系統(tǒng)中,要求將6臺(tái)lenze 4900的參數(shù)、數(shù)據(jù)等通過(guò)cp440通訊模塊讀取到plc中,參與連鎖控制,圖1為具體的網(wǎng)絡(luò)結(jié)構(gòu)示意圖。
[align=center]
圖1 網(wǎng)絡(luò)結(jié)構(gòu)示意圖[/align]
lenze 4900與plc之間采用lecom協(xié)議通訊,雙方以9600bps的通訊速率進(jìn)行通訊,以下為cp440模塊和lenze 4900及l(fā)ecom通訊協(xié)議的簡(jiǎn)單介紹:
2.1 cp440模塊
(1) cp440通訊處理器
cp440通訊處理器是siemens公司提供的串行通訊的低成本解決方案,它可以在simatic s7-400中使用,該通訊模塊提供了三種不同形式的傳輸接口:
●rs-232c(v.24);
●20ma(tty);
●rs-422/rs-485(x.27)。
(2) cp440參數(shù)設(shè)置
該模塊可以實(shí)現(xiàn)ascii碼、3964(r)和打印機(jī)驅(qū)動(dòng)三種通訊協(xié)議,通過(guò)集成在step7中的參數(shù)化工具可進(jìn)行簡(jiǎn)單的參數(shù)化,其設(shè)置主要包括通訊方式(波特率、數(shù)據(jù)位數(shù)、停止位數(shù)和奇偶校驗(yàn))、接收幀結(jié)束方式、接口方式(485 or 422)等。本設(shè)計(jì)中使用ascii碼通訊協(xié)議來(lái)實(shí)現(xiàn)lecom協(xié)議。本設(shè)計(jì)中cp440的參數(shù)設(shè)置為:
●接收幀結(jié)束方式:接收到固定的36個(gè)字節(jié)的數(shù)據(jù);
●通訊方式:波特率9600,1位起始位,8位數(shù)據(jù)位,1位停止位,1位校驗(yàn)位(偶校驗(yàn));
●接口方式:rs-485,其余的設(shè)置為默認(rèn)方式。
2.2 lecom通訊協(xié)議
(1) lecom通訊協(xié)議原理簡(jiǎn)介及其硬件結(jié)構(gòu)。lecom協(xié)議是倫茨公司lenze 4900系列直流調(diào)速裝置之間通訊所使用的一種ascii碼串口通訊協(xié)議。倫茨直流調(diào)速裝置通過(guò)配用外接模塊2102ib,將其插在直流調(diào)速裝置的xi口上,該模塊提供一個(gè)rs-485接口,將多臺(tái)直流調(diào)速裝置及主站按圖2所示連接,可構(gòu)成lecom通信網(wǎng)絡(luò)。接入網(wǎng)絡(luò)中的直流調(diào)速裝置數(shù)量最大可達(dá)到31臺(tái)。
[align=center]
圖2 lecom網(wǎng)絡(luò)連接示意圖[/align]
網(wǎng)絡(luò)上每臺(tái)直流調(diào)速裝置都必須正確設(shè)置與通信相關(guān)的參數(shù),例如各直流調(diào)速裝置均需使用相同的波特率,各不相同的站地址。直流調(diào)速裝置的參數(shù)c009用于設(shè)置站地址,參數(shù)c125用于設(shè)置波特率。lecom通訊協(xié)議幀結(jié)構(gòu)。lecom協(xié)議中,通信指令主要分為讀數(shù)據(jù)命令和寫(xiě)數(shù)據(jù)命令兩部分。
(2) 讀直流調(diào)速裝置參數(shù)的數(shù)據(jù)幀結(jié)構(gòu)。讀直流調(diào)速裝置數(shù)據(jù)時(shí),由主站向直流調(diào)速裝置傳送的數(shù)據(jù)幀格式見(jiàn)表1:
表1 主站向直流調(diào)速裝置發(fā)送讀參數(shù)指令的數(shù)據(jù)幀格式
表1中:
●eot為控制字符,表示前一幀數(shù)據(jù)傳送結(jié)束,新一幀數(shù)據(jù)傳送開(kāi)始;
●ad1和ad2為ascii碼表示的從站(直流調(diào)速裝置)地址,例如:主站向地址為2的直流調(diào)速裝置發(fā)數(shù)據(jù),則:ad1=“0”=30h,ad2=“2”=32h
●ch1和ch2為ascii碼表示的直流調(diào)速裝置參數(shù)代碼,例如:主站要讀取參數(shù)代碼
c11,則:ch1=“1”=31h,ch2=“1”=31h;如果主站要讀取參數(shù)代碼c111,
則:ch1=“11”=3bh,ch2=“1”=31h;
●enq為控制字符,表示請(qǐng)求從站數(shù)據(jù)。
(3) 向主站回應(yīng)的數(shù)據(jù)幀結(jié)構(gòu)。當(dāng)相應(yīng)的從站直流調(diào)速裝置接收到如表1中的主站讀取參數(shù)命令后,如果該從站能識(shí)別接收到的數(shù)據(jù),則向主站回應(yīng)如表2所示的數(shù)據(jù)幀。
表2 從站能識(shí)別接收到的數(shù)據(jù)時(shí)回應(yīng)數(shù)據(jù)幀格式
如果該從站不能識(shí)別接收到的數(shù)據(jù)(校驗(yàn)和錯(cuò)誤),則向主站回應(yīng)數(shù)據(jù)幀格式見(jiàn)表3。
表3 從站不能識(shí)別接收到的數(shù)據(jù)時(shí)回應(yīng)數(shù)據(jù)幀格式
如果所訪問(wèn)的參數(shù)代碼不存在,該從站則向主站回應(yīng)如表4所示的數(shù)據(jù)幀。
表4 主站訪問(wèn)的參數(shù)代碼不存在時(shí)從站回應(yīng)的數(shù)據(jù)幀格式
表2、3、4中的字符具體含義如下:
●stx為控制字符,表示傳送文本開(kāi)始;
●etx為擴(kuò)展字符,表示傳送文本結(jié)束;
●v1…vn為n個(gè)ascii字符表示的參數(shù)值;
●bcc為塊校驗(yàn)字符,其計(jì)算方法為:
bcc=(ch1)xor(ch2)xor(stx)xor……xor(etx)
(4) 寫(xiě)直流調(diào)速裝置數(shù)據(jù)
寫(xiě)直流調(diào)速裝置數(shù)據(jù)時(shí),主站向從站直流調(diào)速裝置發(fā)送的數(shù)據(jù)幀格式見(jiàn)表5。當(dāng)從站接受到如表5所示數(shù)據(jù)后,如果校驗(yàn)無(wú)誤,則向主站回應(yīng)控制字符ack;如果校驗(yàn)不通過(guò)則向主站回應(yīng)控制字符nak。
表5 主站向直流調(diào)速裝置發(fā)送的寫(xiě)參數(shù)指令數(shù)據(jù)幀格式
3 軟件實(shí)現(xiàn)
要通過(guò)cp440通信模塊同其他設(shè)備以lecom協(xié)議通信,plc程序的設(shè)計(jì)也是一個(gè)比較重要的環(huán)節(jié),而從以上的lecom協(xié)議通信幀格式可以看出,利用cp440模塊實(shí)現(xiàn)lecom協(xié)議需要完成的工作就是用plc程序來(lái)構(gòu)造lecom協(xié)議的信息幀結(jié)構(gòu)。
結(jié)合cp440硬件及軟件功能塊,按模塊化程序設(shè)計(jì)方法,可設(shè)計(jì)通信子程序、plc主站讀取直流調(diào)速裝置參數(shù)的程序、plc主站寫(xiě)直流調(diào)速裝置參數(shù)的程序、plc主站接受直流調(diào)速裝置返回參數(shù)的程序。
3.1 plc主站讀取直流調(diào)速裝置參數(shù)的子程序設(shè)計(jì)
考慮到plc需要與6臺(tái)4900設(shè)備進(jìn)行通信,plc主站采用輪詢的方式訪問(wèn)每種設(shè)備,cp440作為lecom主站每隔50ms給所有從站設(shè)備發(fā)送主站命令,讀取從站直流調(diào)速裝置的運(yùn)行狀態(tài)信號(hào)和控制信號(hào)。發(fā)送數(shù)據(jù)處理子程序需要將要下傳的數(shù)據(jù)轉(zhuǎn)換成ascii碼,加上控制字符(eot、stx、etx)并計(jì)算塊校驗(yàn)字符,形成完整的發(fā)送數(shù)據(jù)幀,再調(diào)用cp440模塊的發(fā)送數(shù)據(jù)標(biāo)準(zhǔn)功能塊,將數(shù)據(jù)發(fā)送給從站。而接收數(shù)據(jù)處理子程序則調(diào)用cp440模塊的接受數(shù)據(jù)標(biāo)準(zhǔn)功能塊,將接收到的數(shù)據(jù)(ascii碼字符)轉(zhuǎn)換成所需的數(shù)據(jù)。
3.2 plc主站寫(xiě)直流調(diào)速裝置參數(shù)的子程序設(shè)計(jì)
該子程序的設(shè)計(jì)與前者類似,只是在構(gòu)造發(fā)送數(shù)據(jù)協(xié)議幀結(jié)構(gòu)時(shí)有所不同。并且由plc主程序控制,在特定的控制連鎖邏輯的情況下調(diào)用本子程序來(lái)控制直流調(diào)速裝置。
4 結(jié)束語(yǔ)
自本通訊系統(tǒng)運(yùn)行以來(lái),cp440與lenze 4900間的通訊一直正常,從未出現(xiàn)過(guò)任何軟、硬件故障以及其它干擾現(xiàn)象,有效地保證了自動(dòng)控制系統(tǒng)的正常運(yùn)行。可見(jiàn),使用串行通訊模塊cp440與lenze 4900通過(guò)lecom協(xié)議進(jìn)行通訊是一種行之有效的方法。
倫茨公司的直流調(diào)速裝置和變頻器大部分都支持lecom通信協(xié)議,只是不同系列的產(chǎn)品在通信協(xié)議的幀結(jié)構(gòu)及硬件實(shí)現(xiàn)上有一定差別,但總體上其通信的硬件及軟件協(xié)議遵循一定的規(guī)律。由于lecom通信協(xié)議規(guī)范的資料十分難找,筆者希望本文能給從事傳動(dòng)控制系統(tǒng)設(shè)計(jì)及開(kāi)發(fā)的同行在實(shí)現(xiàn)lecom通信協(xié)議通信方面一些借鑒和幫助。