PLC控制中通信協(xié)議宏的應(yīng)用
[摘 要]
文章詳細(xì)介紹了PLC控制中一種新穎、高效的通信方式——通信協(xié)議宏的原理和實(shí)現(xiàn)方法,并將該方法成功地應(yīng)用于港口門機(jī)的電氣傳動(dòng)部分的改造,取得了令人滿意的效果,最后對(duì)通信協(xié)議宏實(shí)際應(yīng)用中一些應(yīng)注意馮問題予以總結(jié)。
[關(guān)鍵詞]
變頻調(diào)速器 可編程邏輯控制器 通信協(xié)議宏
1 引言
隨著微機(jī)控制技術(shù)、電力電子技術(shù)和電氣傳動(dòng)技術(shù)的飛速發(fā)展,交流變頻調(diào)速技術(shù)正以其優(yōu)異的控制性能日益為工業(yè)界所接受,而可編程邏輯控制器(PLC)作為一種高可靠性的控制部件,也正以前所未有的速度在工業(yè)自動(dòng)化領(lǐng)域迅速普及。在我國(guó)傳統(tǒng)的鋼鐵冶金、交通運(yùn)輸、機(jī)械化工等各產(chǎn)業(yè)中,存在著大量的以繼電器、接觸器和直流調(diào)速為主的電氣傳動(dòng)系統(tǒng),這些系統(tǒng)存在硬件線路復(fù)雜、可靠性低、能耗大、生產(chǎn)維修量大等許多缺點(diǎn),因此如何將PLC與交流變頻調(diào)速技術(shù)相結(jié)合,對(duì)傳統(tǒng)產(chǎn)業(yè)進(jìn)行改造,是企業(yè)界正著力解決的問題。本文就某港務(wù)局與浙江大學(xué)合作,對(duì)其下屬的煤運(yùn)碼頭門機(jī)電氣傳動(dòng)部分的改造進(jìn)行了介紹。原有的門機(jī)傳動(dòng)部分分為3塊,即門機(jī)抓斗的3個(gè)自由度,起升、變幅和旋轉(zhuǎn),均采用交流繞線式電機(jī)進(jìn)串電阻調(diào)速,根據(jù)以往運(yùn)行情況,主要缺點(diǎn)在于:能耗大,運(yùn)行時(shí)機(jī)械、電氣沖擊大,故障頻繁,維修任務(wù)繁重等,故決定將系統(tǒng)改造為PLC控制的交流變頻調(diào)速系統(tǒng)。
2 系統(tǒng)構(gòu)成
根據(jù)系統(tǒng)特點(diǎn)和生產(chǎn)工藝要求,選用適合小型應(yīng)用場(chǎng)合的OMRON-C200HE型PLC,變頻器采用英國(guó)CT公司的高性能通用變頻器,為了顯示系統(tǒng)工作情況及故障情況,系統(tǒng)還包括一塊OMRON-NT620S型觸摸屏。遵循以前的生產(chǎn)操作習(xí)慣,仍采用手柄操作,觸摸屏僅用來顯示相關(guān)信息,為系統(tǒng)維修提供支持。整個(gè)系統(tǒng)中PLC是控制核心——根據(jù)操作指令和內(nèi)部邏輯向變頻器發(fā)送指令,從變頻器讀回各種信息,并將這些信息送給觸摸屏顯示等。C200HE是OMRON系列PLC中較新的型號(hào),具有很強(qiáng)的通信功能,而CT系列變頻器也具有可選的通信模塊。為了充分利用PLC和變頻器的功能,最大限度地減少硬件連線,系統(tǒng)采用PLC與變頻器之間以串行通信方式進(jìn)行控制,硬件上采用適合工業(yè)場(chǎng)合的RS485連接,整個(gè)系統(tǒng)結(jié)構(gòu)如圖1 所示。
由于系統(tǒng)生產(chǎn)工藝并不復(fù)雜,所以如何實(shí)現(xiàn)PLC與變頻器之間的通信是整個(gè)工作的重點(diǎn)。C200HE型PLC除了通常用于RS232通信方式的TXD,RXD指令外,還提供了一種新穎、高效的通信方式,PMCR指令——通信協(xié)議宏功能。這種通信方式不僅適用于RS232通信方式,也適用于抗干擾能力強(qiáng),傳輸距離遠(yuǎn)的RS485方式,而且其最大優(yōu)點(diǎn)在于允許用戶定義單獨(dú)的數(shù)據(jù)傳送序列和傳送信息,用戶可以用OMRON通信協(xié)議宏支持軟件很容易地修改通信序列,從而大大簡(jiǎn)化編程,增加編程的靈活性,本文將對(duì)此進(jìn)詳細(xì)的討論。
3 PLC控制中通信協(xié)議宏的實(shí)現(xiàn)
3.1 OMRON 通信協(xié)議宏
通信協(xié)議宏功能是把同連接在RS232或RS422/485通用組件等各種通信機(jī)器之間的數(shù)據(jù)送收信息順序,通過通信協(xié)議宏支持軟件,讓用戶自由編制,以PMCR指令就能夠?qū)崿F(xiàn)的用戶原始通信協(xié)議。
要實(shí)現(xiàn)通信協(xié)議宏功能,必須有相應(yīng)的硬件支持,即通信單元,C200HE包括COM01 ~ COM066種可選單元,其中COM04 ~ COM06支持通信協(xié)議宏功能。對(duì)于本文的工作,需要一個(gè)RS485的通信端口去控制變頻器,所以選擇COM06單元,其A口(RS485)與CT變頻器通信。B口(RS232)與觸摸屏進(jìn)行通信,在選定連接好硬件之后,就可以進(jìn)行通信協(xié)議宏的工作了。首先必須對(duì)通信單元作設(shè)定,根據(jù)變頻器的設(shè)定,使用ASCII協(xié)議,數(shù)據(jù)通信連接 :1位起始位,7位數(shù)據(jù)位,1位停止位,偶校驗(yàn),RS485兩線制,波特率為9600,故對(duì)COM06要將切換開關(guān)SW1調(diào)整到“2”側(cè),終端電阻開關(guān)SW2設(shè)定為ON。另外,PLC的數(shù)據(jù)區(qū)DM6555、DM6556要設(shè)置成支持協(xié)議宏,并且通信連接的格式要與變頻器設(shè)定一致,在設(shè)置完成之后,可以編寫協(xié)議。用通信協(xié)議支持軟件可以建立多達(dá)1000個(gè)通信序列,即000 ~ 999,每個(gè)通信序列最多由16步組成,通信序列每一步的結(jié)構(gòu)及各參數(shù)的含義如表1 所示。
參數(shù) |
功能 |
參數(shù)設(shè)置 |
Repeat |
設(shè)置重復(fù)步的次數(shù) |
常數(shù),IR/SR,LR,HR,AR,DM和EM區(qū)域 |
Command |
設(shè)置通信命令 |
發(fā)送,接收或發(fā)送與接收 |
Retry |
設(shè)置在執(zhí)行發(fā)送和接收命令發(fā)生錯(cuò)誤時(shí),重新執(zhí)行次數(shù) |
0 ~ 9 |
Send Wait |
設(shè)置在發(fā)送期間等候發(fā)送數(shù)據(jù)的時(shí)間 |
單位0.01,0.1s,1s和1min |
Send Message |
設(shè)置用于接收命令或發(fā)送和接收命令的發(fā)送數(shù)據(jù) |
識(shí)別碼,地址,長(zhǎng)度,數(shù)據(jù),錯(cuò)誤檢查碼和終止符 |
Receive Message |
設(shè)置用于接收命令或接收和發(fā)送命令的期望接受數(shù)據(jù) |
識(shí)別碼,地址,長(zhǎng)度,數(shù)據(jù),錯(cuò)誤檢查碼和終止符 |
Array |
設(shè)置用于接收命令或接收和發(fā)送命令的期望接受數(shù)據(jù)(最多15種類型),并按數(shù)據(jù)類型調(diào)整處理 |
識(shí)別碼,地址,長(zhǎng)度,數(shù)據(jù),錯(cuò)誤檢查碼,終止符和下一步處理 |
Response |
設(shè)置是否寫接收數(shù)據(jù) |
是/否 |
Next |
設(shè)置當(dāng)前步順利結(jié)束時(shí)轉(zhuǎn)往的下一步 |
END,GOTO,NEXT,ABORT |
Error |
設(shè)置當(dāng)前步出現(xiàn)錯(cuò)誤時(shí)轉(zhuǎn)往的下一步 |
END,GOTO,NEXT,ABORT |
在通行序列各項(xiàng)參數(shù)的設(shè)置中,Send message和Receive Message是最重要的,因?yàn)樗鼈儾粌H決定發(fā)送和接受信息的具體內(nèi)容,而且其格式的設(shè)置要與具體的控制對(duì)象的通信協(xié)議相結(jié)合來確定,下文將對(duì)此進(jìn)行詳細(xì)討論。
3.2 CT變頻器的通信協(xié)議
根據(jù)系統(tǒng)要求,給每臺(tái)Unidrive變頻器配備了CT公司提供的UD-71插入式通信模塊,該模塊內(nèi)含1片32位RISC處理芯片,對(duì)外提供RS232和RS485兩個(gè)完全光隔的通信接口,可以方便地將變頻器連如RS485網(wǎng)絡(luò)。Unidrive變頻器與上位機(jī)之間的通信采用的命令和數(shù)據(jù)都是字符串,它具有特定的通信協(xié)議,該協(xié)議由CT公司提供,包括兩大類命令,即讀數(shù)據(jù)命令和寫數(shù)據(jù)命令,這兩類命令的格式介紹如下。
3.2.1 寫命令
當(dāng)上位機(jī)(PLC)想設(shè)定網(wǎng)絡(luò)上某一臺(tái)變頻器的某一個(gè)參數(shù)時(shí),上位機(jī)就發(fā)送下列格式的命令:
控制 |
地址 |
控制 |
參數(shù) |
數(shù)據(jù) |
控制 |
校驗(yàn) |
EOT |
GA GA UA UA |
STX |
M1 M 2 P1 P2 |
D1……DN |
ETX |
BCC |
EOT——復(fù)位碼,STX——命令開始碼,ETX——命令結(jié)束碼,GA——組號(hào),UA——單元號(hào),M1、M2——參數(shù)號(hào),P1、P2——參數(shù)在組內(nèi)的序號(hào),D1…DN——參數(shù)的值(D1為符號(hào)位),BCC——塊校驗(yàn)和。
由于寫命令可直接改變電機(jī)的運(yùn)行狀態(tài),為防止發(fā)生意外,寫命令的格式要求很嚴(yán)格,變頻器地址、參數(shù)、數(shù)據(jù)缺一不可。如果該命令能被變頻器識(shí)別,則變頻器返回ACK(成功),否則NAK(不成功)。
例1 要將第1組的第2個(gè)變頻器的參數(shù)“1.15”寫為“1”,則傳送的信息如下。
控制 |
地址 |
控制 |
參數(shù) |
數(shù)據(jù) |
控制 |
校驗(yàn) |
EOT |
31 31 32 32 |
STX ( 02 ) |
30 32 32 35 |
+ ( 2B ) 31 |
ETX |
BCC |
3.2.2 讀命令
當(dāng)上位機(jī)(PLC)想讀取網(wǎng)絡(luò)上某一臺(tái)變頻器的某一個(gè)參數(shù)時(shí),上位機(jī)就發(fā)送下列格式的命令。
控制 |
地址 |
參數(shù) |
控制 |
EOT |
GA GA UA UA |
M1 M 2 P1 P2 |
ENQ |
如果該命令能被變頻器識(shí)別,則變頻器將返回如下結(jié)構(gòu)的信息。如果該命令能被變頻器識(shí)別,則變頻器將返回如下結(jié)構(gòu)的信息。
控制 |
參數(shù) |
數(shù)據(jù) |
控制 |
校驗(yàn) |
STX |
M1 M2 P1 P2 |
D1……DN |
ETX |
BCC |
上述格式中的符號(hào)ENQ為查詢碼,其余符號(hào)含義與寫命令相同。
例2 要讀取第1組第2個(gè)變頻器的有功電值“4.02”參數(shù),則傳送的信息如下。
控制 |
地址 |
參數(shù) |
控制 |
EOT ( 04 ) |
31 31 32 32 |
30 34 30 32 |
ENQ ( 05 ) |
返回信息為
控制 |
參數(shù) |
數(shù)據(jù) |
控制 |
校驗(yàn) |
STX ( 02 ) |
30 34 30 32 |
XXXXX |
ETX ( 03 ) |
BCC |
這里值得一提的是BCC校驗(yàn)和,為保證由變頻器出入的信息在傳輸?shù)倪^程中的準(zhǔn)確無誤,數(shù)據(jù)響應(yīng)以塊校驗(yàn)和數(shù)BCC字符結(jié)尾。BCC實(shí)際上是該命令中從STX控制碼之后開始的所有字符的ASCII碼的異或弛,若運(yùn)算結(jié)果小于32,則加上20H,最終以ASCII碼對(duì)應(yīng)的字符加到讀寫指令中,上位機(jī)可以用該值來校驗(yàn)前面收到的數(shù)據(jù)的準(zhǔn)確性。因此,例1中的BCC值為3C。 *Message Name Header Terminator CheckCode Length Address Data Send1 EOT ENQ 略 (R(8N), 4) (h)+(a)+(R Recv1 STX EXT 略 (W(16N), 4) (h)+(a)+(W(16N),*)+(t)
3.3 通信協(xié)議宏在本系統(tǒng)控制中的實(shí)現(xiàn)
前文已述及,在通信協(xié)議宏的編制中,發(fā)送信息和接收信息是最重要的,而發(fā)送信息和接收信息的編制是根據(jù)PLC通信協(xié)議宏的格式要求,以CT變頻器的通信協(xié)議為基礎(chǔ)來進(jìn)行的。對(duì)變頻器的控制,不管是寫命令,還是讀命令,都包括發(fā)送和接收兩個(gè)信息(Send Message/Receive Message)。對(duì)于寫命令,發(fā)送的信息是某個(gè)變頻器的某個(gè)參數(shù),接收的信息僅是1個(gè)位,即通信成功與否(ACK/NAK);對(duì)于讀命令,發(fā)送的信息是某個(gè)變頻器的某個(gè)參數(shù),接受的信息是該參數(shù)的相關(guān)內(nèi)容。因此,寫命令和讀命令的通信協(xié)議序列中,都包括發(fā)送信息和接收信息,即協(xié)議中Command參數(shù)應(yīng)設(shè)為Send&Receive,確定通信協(xié)議序列之后,就可以編制具體的發(fā)送信息和接收信息。
Send Message和Receive Message結(jié)構(gòu)如下
*Message Name Header(h) Terminator(t) Check Code(c) Length(l) Address(a) Data(d)其中(h)、(t)、(c)表示信息可開始位、結(jié)束位、校驗(yàn)位,它們是由通信控制設(shè)備的協(xié)議所決定的,當(dāng)設(shè)置(t)時(shí),(l)自動(dòng)附加,(a)是指信息送往目標(biāo)的標(biāo)志符,(d)用于設(shè)置信息內(nèi)容。這里結(jié)合PMCR指令,對(duì)Address(a)和Data(d)作進(jìn)一步解釋。通信協(xié)議宏在程序中是以PMCR指令來實(shí)現(xiàn)的,它的格式如下。
PMCR
C
S
D
其中C為控制字,第1位用于指定端口,1:A口,2:B口,后3位表示通信序列,S表示發(fā)送數(shù)據(jù)首字,D表示接收數(shù)據(jù)首字。
下面以本系統(tǒng)為例來說明通信協(xié)議宏的實(shí)現(xiàn)過程。
要用PLC將其控制的3臺(tái)變頻器的參數(shù)讀回來,必須先將地址號(hào)和參數(shù)號(hào)發(fā)給相應(yīng)的變頻器,變頻器識(shí)別后,再將返回的信息寫到PLC指定的區(qū)域內(nèi)。
實(shí)現(xiàn)過程分兩步,第一步編寫通信協(xié)議,關(guān)鍵的問題在于Send Messang和Receive Message中Address和Data的編寫。首先需設(shè)置它們的屬性——讀(R)或?qū)?W),對(duì)本例而言,Send Message中發(fā)送的地址號(hào)和參數(shù)號(hào)是從PLC的DM區(qū)中讀出后發(fā)送的,所以其屬性設(shè)為R;而Receive Message中接收到的信息是要寫入DM區(qū)的,所以其屬性設(shè)為W。設(shè)置了屬性,就可以進(jìn)行第2步:從指定字中讀寫地址或數(shù)據(jù)。有幾種方法可以指定該字,一種通用的方法是用包括變量N的一階方程用于地址或數(shù)據(jù)的引入,每當(dāng)通信序列步中指定的重復(fù)計(jì)數(shù)器重復(fù)一步時(shí),變量N加1,使用帶N變量的方程計(jì)算地址或數(shù)據(jù)可實(shí)現(xiàn)地址和數(shù)據(jù)的動(dòng)態(tài)傳輸。
根據(jù)CT變頻器通信協(xié)議,讀變頻器參數(shù)信息時(shí),每次先發(fā)送長(zhǎng)度為8個(gè)字節(jié)的地址號(hào)和參數(shù)號(hào),返回的信息長(zhǎng)度不定,不妨每16個(gè)字節(jié)存放1條信息,數(shù)據(jù)長(zhǎng)度由(t)確定后自動(dòng)附加,Data中以通配符*表示。
由此編制Send message和Receive message如下。
(8N+4), 4)+(t)
以上面的通信協(xié)議(序列號(hào)設(shè)為1),假設(shè)發(fā)送信息存在DM300開始的單元,接收信息存入DM800開始的單元內(nèi),則用下面的一條PMCR指令就可連續(xù)讀取3臺(tái)變頻器的指定參數(shù)。
PMCR
#1001
DM0300
DM0800
4 總結(jié)
通信協(xié)議宏,可以用一條指令實(shí)現(xiàn)遵循同一個(gè)協(xié)議的多條信息傳送,大大簡(jiǎn)化了編程,增加了編程的靈活性,這一功能被成功地應(yīng)用于本系統(tǒng)中,不僅提高了程序的運(yùn)行效果,而且在實(shí)際運(yùn)行中取得了令人滿意的效果。目前該系統(tǒng)已在現(xiàn)場(chǎng)正常工作了兩個(gè)多月,整個(gè)系統(tǒng)的維修量和耗電量都大為降低。實(shí)踐證明,通信協(xié)議宏在系統(tǒng)中的應(yīng)用是成功、有效的。
在本系統(tǒng)的調(diào)試中,筆者體會(huì)到在使用通信協(xié)議宏時(shí),一些細(xì)節(jié)的問題必須予以充分的考慮,否則,就不能充分發(fā)揮通信協(xié)議宏的功能,甚至?xí)斐赏ㄐ攀?,這里列舉幾個(gè)調(diào)試中遇到的問題。
(1)在程序中,有多條PMCR指令時(shí),盡量使用@PMCR——上升沿有效指令,否則可能引起各條指令之間的沖突,從而造成通信失敗。
(2)當(dāng)通信失敗時(shí),通信忙位28908(內(nèi)部繼電器)始終保持ON,必須在程序中有相應(yīng)的復(fù)位手段,例如當(dāng)28908保持ON超過一定時(shí)間時(shí),可置通信復(fù)位繼電器28911為ON,使通信復(fù)位。
(3)通信復(fù)位時(shí),雖然可恢復(fù)通信,但此時(shí),往往會(huì)失去通信所需的上升沿條件,必須在復(fù)位的同時(shí),補(bǔ)發(fā)一個(gè)上升沿,可采用28911的常開觸點(diǎn)予以解決。
總之,通信協(xié)議宏作為一種新穎的PLC通信手段,與傳統(tǒng)的方法相比,具有簡(jiǎn)單、高效的優(yōu)點(diǎn)。但實(shí)際應(yīng)用中必須在理解基本原理的基礎(chǔ)上,充分考慮各種情況,才能真正發(fā)揮通信協(xié)議宏的優(yōu)勢(shì)。
文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。
你可能感興趣的文章