產(chǎn)品列表
PROUCTS LIST
新聞動態(tài)
NEWS
廈門宇電AI儀表在RS-485通信中的應用
作者:張曉林
摘要:利用松下(FPG)可編程控制器(MTRN) RS-485通信指令,實現(xiàn)單臺控制器和與多臺廈門[宇電]AI儀表的串行通信控制,并能實時檢測各儀表的運行狀態(tài).
關(guān)鍵詞:可編程控制器 MTRN通信指令 RS-485通信協(xié)議 AI儀表控制
引言:工業(yè)場合中,經(jīng)常要用一些儀表去控制,如溫度.液位.流量等.在某些場合,需要1臺控制器靈活地控制多臺儀表,以達到設(shè)計控制目的.
本文利用日本松下可編程控制器(MTRN) RS-485通信指令,方便的實現(xiàn)與多臺廈門[宇電]AI儀表的串行通信.成功的實現(xiàn)了用單臺控制器對多臺儀表的靈活控制。
可編程控制器允許在一個RS-485通信接口上連接多達101臺[宇電]儀表,儀表大于60臺時,需加一個RS-485中繼器,RS-485通信口通信距離長達1KM以上。
一、廈門宇電AI儀表的串口通信協(xié)議
對于AI儀表其通信方式為RS-485, (1個起始位,1個或2個停止位,8位數(shù)據(jù),無奇偶校驗)通信傳輸數(shù)據(jù)的波特率(1.2K 2.4K 4.8K 9.6K 19.2K 可在儀表叁數(shù)baud中設(shè)定)
二、系統(tǒng)的總體設(shè)計
圖1為系統(tǒng)的總體設(shè)計方框圖,這里重點突出可編程控制器與AI儀表RS-485接口部分。在工業(yè)現(xiàn)場,RS-485通信是應用較多的一種通信方式,圖中可編程控制器通過RS-485通信接口與多個AI儀表相連接,zui多可達到101臺,每臺儀表被賦予各自的地址碼,用以識別身份,( 地址碼可在儀表叁數(shù)Addr中設(shè)定).這樣可編程控制器的RS-485通信口便能通過通信線對掛在下面的所有儀表進行控制操作。
圖1:系統(tǒng)的總體方框圖 |
|
三、儀表接收和發(fā)送的通信協(xié)議如下 (1)AI儀表接收控制的通信協(xié)議
|
ADDR:為一個16位數(shù)據(jù),占用二個字節(jié),其數(shù)值范圍16進制的80H-BFH,兩個字必需相同,ADDR=儀表地址+80H 例:儀表地址為1 則ADDR=8181H
叁數(shù)代碼:為一個8位數(shù)據(jù),占用一個字節(jié),詳見_?宇電通信協(xié)通信說明書?中的叁數(shù)代碼表格
讀寫指令: 為一個8位數(shù)據(jù),占用一個字節(jié),讀=(16進制)52H 寫=(16進制)43H
要寫入的叁數(shù)內(nèi)容:為一個16位數(shù)據(jù),占用二個字節(jié).如SV值.上限報警.下限報警.Ctrl控制方式.等.
校驗碼: 為一個16位數(shù)據(jù),占用二個字節(jié). 校驗碼=ADDR+叁數(shù)代碼*256+讀寫指令+要寫入的叁數(shù)內(nèi)容
例:儀表地址=1 要寫入叁數(shù)代碼00H,要寫入的叁數(shù)內(nèi)容SV設(shè)定值=1234 (十六進制=4D2) 則公式如下:
|
01H+(00HX256)+43H+4D2 =516H校驗碼
(2)AI儀表返回通信協(xié)議
無論是讀或?qū)憙x表都返回以下數(shù)據(jù)
|
PV測量值:為1個16位數(shù)據(jù),占用二個字節(jié)
SV設(shè)定值:為1個16位數(shù)據(jù),占用二個字節(jié)
輸出值MV: 為1個8位數(shù)據(jù),占用一個字節(jié)
報警狀態(tài): 為1個8位數(shù)據(jù),占用一個字節(jié)
所讀/寫叁數(shù)值: 為1個16位數(shù)據(jù),占用二個字節(jié)
校驗碼: 為1個16位數(shù)據(jù),占用二個字節(jié) 校驗碼計算詳見?宇電通信協(xié)議說明書? 。
四、AI儀表和可編程控制器接線圖
[宇電]AI儀表------松下FPG可編程控制器
|
五、 AI儀表和可編程控制器通信應用例子程序
例: 將叁數(shù)代碼00H,(SV設(shè)定值)寫入地址1儀表,和讀取地址1儀表的PV測量值。
(1)儀表通信格式設(shè)定
1個起始位,1個停止位,8位數(shù)據(jù),無奇偶校驗.
設(shè)定通信傳輸數(shù)據(jù)的波特率baud=19.2K
設(shè)定儀表地址Addr=1
校驗碼自動計算
(2)可編程控制器通信格式設(shè)定 圖2
注: 圖2叁數(shù)比須設(shè)為和儀表一樣
圖2 |
|
(3)數(shù)據(jù)設(shè)定和校驗碼計算 圖3
圖3 |
|
程序中改變DT32710就等于改變了SV設(shè)定值.
(4)數(shù)據(jù)發(fā)送 圖4
圖4 |
|
(5)數(shù)據(jù)接收 圖5
圖5 |
|
通信正常狀態(tài)下. 儀表面板上com燈將“亮”“滅”閃爍.
結(jié)束語:
本文利用松下可編程控制器和AI儀表進行RS-485通信,實現(xiàn)了單臺控制器控制多臺AI儀表的任務(wù),并能實時檢測各儀表的運行狀態(tài),整個系統(tǒng)控制靈活方便, 方案結(jié)構(gòu)簡單,開發(fā)成本低,周期短,既使在惡劣的工業(yè)環(huán)境下也能穩(wěn)定工作。
參考文獻:
(1) 松下FP系列可編程控制器手冊 ARCTIF313C-2 '04.09
(2) 廈門宇電AI儀表V6.0串行通信接口協(xié)議 AI儀表說明
第二節(jié)、AIBUS現(xiàn)場通訊總線的PLC工控設(shè)計方案
AIBUS現(xiàn)場通訊總線的PLC工控設(shè)計方案
摘自:《MM現(xiàn)代制造》2006年第九期 作者:張磊
摘要:在大規(guī)模應用的場合下,以監(jiān)測、變送、通信儀表和上位計算機為主構(gòu)成的集散控制系統(tǒng)(DCS)無疑是一個較好的控制方案。
引言:廈門宇電公司生產(chǎn)的AI系列儀表具有良好的通訊功能,可以構(gòu)成以AIBUS通訊協(xié)議為基礎(chǔ)的現(xiàn)場總線。廠方提供的AIDCS應用軟件,可運行在中文WINDOWS 98/ME/XP等操作系統(tǒng)下,能實現(xiàn)對1~200臺AI系列各種型號儀表的集中監(jiān)控和管理。在大規(guī)模應用的場合下,以監(jiān)測、變送、通訊儀表和上位計算機為主構(gòu)成的集散控制系統(tǒng)(DCS)無疑是一個較好的控制方案,本文試圖從程序設(shè)計方面探討AI儀表與常見的工業(yè)PLC控制系統(tǒng)的結(jié)合使用,這種多種通訊協(xié)議結(jié)合的應用具有相當?shù)膹V泛性和代表性。
靈活多變的控制方案
工業(yè)PLC選用LG公司的MK-120S系列DR-30U,屬于中小型PLC,CPU處理速度0.1US/步,用戶程序容量7k步。它具備RS232和RS485兩個通訊接口。一般場合應用,RS232可連接一臺人機界面,用以集中監(jiān)控智能表,RS485遠程連接多臺AI-518智能表;復雜場合應用時,RS232可通過兼容EIA/TIA的標準串行接口RS232<=>485轉(zhuǎn)換器連接多臺AI-518智能表,RS485用來接兼容相同RS485協(xié)議的人機界面和多臺變頻器。這種靈活多變的控制方案具有性價比良好的優(yōu)點,能夠以zui少的硬件投資取得的控制特性,當然這是與宇電表具備人工智能調(diào)節(jié)、通訊傳輸可靠的優(yōu)點分不開的。
程序設(shè)計詳解
程序設(shè)計以14臺AI-518智能表為例,對應第1臺智能表,在AIBUS中的地址參數(shù)為1,在人機界面和PLC中定義的變量值為:測量值DATA1,給定值DATA2,報警變量PARA1,對應第2臺智能表,它在AIBUS中的地址為2,其變量值為:測量值DATA3,給定值DATA4,報警變量PARA2...,以下如此類推,其中DATA1-28和PARA1-14均為PLC的數(shù)據(jù)寄存器。由于宇電的AIBUS通訊協(xié)議使用方便,且以RS485為基礎(chǔ)的硬件通訊兼容性好,本文在PLC程序中將與智能表通訊及顯示的參數(shù)變量都給出定義方法,很容易把它推廣應用到其它廠家的PLC上。
1、程序的設(shè)計流程敘述如下("http://"后為程序段備注):
(1) PLC上電初始化智能表的地址循環(huán)變量P為1;//P為PLC的數(shù)據(jù)寄存器。
(2) 14臺智能表的“給定值DATAX”進行寫條件輪詢;//X為偶數(shù),且0
(3) 對上面的14個寫條件相“或”為M-write;//M-write為PLC的輔助繼電器。
(4) 調(diào)用智能表讀/寫子程序。
(5) 地址循環(huán)變量從1-14變化時,將DATA1-28,PARA1-14分別賦值為DDISP,DSET和DALARM;//這三個參數(shù)均為數(shù)據(jù)寄存器,是14臺表的讀/寫/報警公共地址指針。
(6) 以100MS的時鐘為周期發(fā)送讀/寫幀,對接收到的字節(jié)按“讀/寫”字節(jié)區(qū)分,進行間接地址傳送,其格式類似為:MOV DREV #DDISP, MOV DREV+1 #DSET,其中“DREV”為PLC串口通訊指令定義的接收幀的第1個字(共接收到符合AIBUS標準的10個字節(jié))中;“DREV+1”為接收幀的第2個字;接收到的第3個字“DREV+2”包含智能表的報警信息,應對其進行字/位的“與/或”變換后再進行間接地址傳送。
(7) 地址循環(huán)變量+1;
(8) 地址變量增加到14時重置為1;
(9) 程序結(jié)束語句;
(10) 智能表讀/寫子程序。
2、智能表的“給定值DATAX”寫條件編程方法
1號表的舊給定值保存在“DOLD1”中,當要在人機界面上進行1號表的寫“給定值DATA1”操作時,由于改變的新“給定值DATA1”與舊值“DOLD1”不同, 將此賦值給1號表寫入標志M1(M1為PLC的輔助繼電器),再將“給定值DATA1”傳送到舊給定值“DOLD1”中去,同時將1號表的地址寫指針P賦為1,并將“給定值DATA1”傳送到14臺表的公共寫入值“DWRITE”中;對應地址參數(shù)不同的智能表應以此類推。
3、智能表報警信息的編程方法
由于接收幀的第3字的高字節(jié)為報警信息,所以應將第3字的高低字節(jié)倒置,得到報警的8位字節(jié)“HEX-ALARM”。按照AIBUS的標準,這8位字節(jié)的0-5位置1狀態(tài)分別代表上限、下限、正偏差、負偏差和超量程報警,將“HEX-ALARM”與“HEX1F”按位相與,其結(jié)果賦值給“DD-ALARM”。在智能表的正常狀態(tài),“DD-ALARM”的值均為0;在報警狀態(tài)下,其值必不為零。將“DD-ALARM”是否為零的狀態(tài)賦值給“DALARM”,以顯示對應智能表的報警狀態(tài)。按照這種思路,稍稍修改程序,就可以在人機界面上集中顯示多臺智能表是否發(fā)生上限、下限、正偏差、負偏差和超量程報警,從而讓我們更好地了解控制現(xiàn)場的情況。
4、智能表讀/寫子程序的設(shè)計流程
由于僅僅要讀測量值/寫給定值,按AIBUS通訊協(xié)議的要求,PLC對儀表的參數(shù)代號00H(給定值)進行加法操作就可以。因此智能表讀/寫子程序的設(shè)計流程如下:
1、地址循環(huán)變量P+80->P1; //P1為PLC的數(shù)據(jù)寄存器
2、P1*H100->P2;//P2為PLC的數(shù)據(jù)寄存器
3、P1+P2->PP; //PP為智能表在AIBUS中的協(xié)議地址,定義在發(fā)送幀中第1字
4、M-write條件成立時:
(1)傳送HEX43到發(fā)送幀的第2字;//HEX43為寫智能表標志
(2)傳送“DWRITE”到發(fā)送幀的第3字;
(3)“DWRITE”+HEX43+地址循環(huán)變量P,其結(jié)果傳送到發(fā)送幀的第4字;//進行寫字節(jié)校驗
5、M-write條件不成立時:
(1)傳送HEX52到發(fā)送幀的第2字;//HEX52為讀智能表標志
(2)傳送HEX00到發(fā)送幀的第3字;
(3)HEX43+地址循環(huán)變量P,其結(jié)果傳送到發(fā)送幀的第4字;//進行讀字節(jié)校驗
經(jīng)驗總結(jié)及程序效果
在對程序調(diào)試過程中,應利用PLC的串口監(jiān)測工具對與智能表的通訊情況進行監(jiān)控,必要時延長讀/寫幀的發(fā)送時鐘周期,觀察每次讀/寫幀的字節(jié)數(shù)、讀/寫字節(jié)、報警及校驗字節(jié)是否符合AIBUS協(xié)議的要求。
當在人機界面上修改某臺智能表的給定值時,智能表的刷新速度很快,而在集中顯示的人機界面上就有一定時間延遲。分析:“寫給定值” 操作在100ms內(nèi)即可返回10個字節(jié),但其中第2字代表的給定值(16進制格式)實際為上一次的賦值,需要對這臺智能表再進行一次讀操作時才向PLC返回方才寫入的給定值。由于程序是按照“寫給定值”優(yōu)先的原則設(shè)計,當對智能表的寫設(shè)定值操作結(jié)束后,智能表按剛才“寫給定值”操作的協(xié)議地址繼續(xù)以100ms時間間隔進行“讀測量值”操作,其輪詢?nèi)园?/font>AIBUS協(xié)議地址1—>14的次序,則在人機界面上“寫給定值”操作后,刷新顯示的延遲時間=(100ms+PLC程序循環(huán)時間)×14+(智能表-)PLC-)人機界面的信號傳輸時間),實測顯示延遲時間zui大不超過3秒。為改善這種顯示延遲情況,可以在本文上述第二段中插入1行程序,將新“給定值DATA1”直接傳送到對應智能表的人機界面顯示值“DATAX”(X為偶數(shù),且0