AIBUS現場通訊總線的PLC工控設計方案
摘要:在大規模應用的場合下,以監測、變送、通信儀表和上位計算機為主構成的集散控制系統(DCS)無疑是一個較好的控制方案。
引言:廈門宇電公司生產的AI系列儀表具有良好的通訊功能,可以構成以AIBUS通訊協議為基礎的現場總線。廠方提供的AIDCS應用軟件,可運行在中文WINDOWS 98/ME/XP等操作系統下,能實現對1~200臺AI系列各種型號儀表的集中監控和管理。在大規模應用的場合下,以監測、變送、通訊儀表和上位計算機為主構成的集散控制系統(DCS)無疑是一個較好的控制方案,本文試圖從程序設計方面探討AI儀表與常見的工業PLC控制系統的結合使用,這種多種通訊協議結合的應用具有相當的廣泛性和代表性。
工業PLC選用LG公司的MK-120S系列DR-30U,屬于中小型PLC,CPU處理速度0.1US/步,用戶程序容量7k步。它具備RS232和RS485兩個通訊接口。一般場合應用,RS232可連接一臺人機界面,用以集中監控智能表,RS485遠程連接多臺AI-518智能表;復雜場合應用時,RS232可通過兼容EIA/TIA的標準串行接口RS232〈=〉485轉換器連接多臺AI-518智能表,RS485用來接兼容相同RS485協議的人機界面和多臺變頻器。這種靈活多變的控制方案具有性價比良好的優點,能夠以zui少的硬件投資取得的控制特性,當然這是與宇電表具備人工智能調節、通訊傳輸可靠的優點分不開的。
程序設計詳解程序設計以14臺AI-518智能表為例,對應第1臺智能表,在AIBUS中的地址參數為1,在人機界面和PLC中定義的變量值為:測量值DATA1,給定值DATA2,報警變量PARA1,對應第2臺智能表,它在AIBUS中的地址為2,其變量值為:測量值DATA3,給定值DATA4,報警變量PARA2...,以下如此類推,其中DATA1-28和PARA1-14均為PLC的數據寄存器。由于宇電的AIBUS通訊協議使用方便,且以RS485為基礎的硬件通訊兼容性好,本文在PLC程序中將與智能表通訊及顯示的參數變量都給出定義方法,很容易把它推廣應用到其它廠家的PLC上。
1、程序的設計流程敘述如下("http://"后為程序段備注):(1) PLC上電初始化智能表的地址循環變量P為1;//P為PLC的數據寄存器。
(2) 14臺智能表的“給定值DATAX”進行寫條件輪詢;//X為偶數,且0(3) 對上面的14個寫條件相“或”為M-write;//M-write為PLC的輔助繼電器。
(4) 調用智能表讀/寫子程序。
(5) 地址循環變量從1-14變化時,將DATA1-28,PARA1-14分別賦值為DDISP,DSET和DALARM;//這三個參數均為數據寄存器,是14臺表的讀/寫/報警公共地址指針。
(6) 以100MS的時鐘為周期發送讀/寫幀,對接收到的字節按“讀/寫”字節區分,進行間接地址傳送,其格式類似為:MOV DREV #DDISP, MOV DREV+1 #DSET,其中“DREV”為PLC串口通訊指令定義的接收幀的第1個字(共接收到符合AIBUS標準的10個字節)中;“DREV+1”為接收幀的第2個字;接收到的第3個字“DREV+2”包含智能表的報警信息,應對其進行字/位的“與/或”變換后再進行間接地址傳送。
(7) 地址循環變量+1;
(8) 地址變量增加到14時重置為1;
(9) 程序結束語句;
(10) 智能表讀/寫子程序。
2、智能表的“給定值DATAX”寫條件編程方法
1號表的舊給定值保存在“DOLD1”中,當要在人機界面上進行1號表的寫“給定值DATA1”操作時,由于改變的新“給定值DATA1”與舊值“DOLD1”不同, 將此賦值給1號表寫入標志M1(M1為PLC的輔助繼電器),再將“給定值DATA1”傳送到舊給定值“DOLD1”中去,同時將1號表的地址寫指針P賦為1,并將“給定值DATA1”傳送到14臺表的公共寫入值“DWRITE”中;對應地址參數不同的智能表應以此類推。
3、智能表報警信息的編程方法
由于接收幀的第3字的高字節為報警信息,所以應將第3字的高低字節倒置,得到報警的8位字節“HEX-ALARM”。按照AIBUS的標準,這8位字節的0-5位置1狀態分別代表上限、下限、正偏差、負偏差和超量程報警,將“HEX-ALARM”與“HEX1F”按位相與,其結果賦值給“DD-ALARM”。在智能表的正常狀態,“DD-ALARM”的值均為0;在報警狀態下,其值必不為零。將“DD-ALARM”是否為零的狀態賦值給“DALARM”,以顯示對應智能表的報警狀態。按照這種思路,稍稍修改程序,就可以在人機界面上集中顯示多臺智能表是否發生上限、下限、正偏差、負偏差和超量程報警,從而讓我們更好地了解控制現場的情況。
4、智能表讀/寫子程序的設計流程
由于僅僅要讀測量值/寫給定值,按AIBUS通訊協議的要求,PLC對儀表的參數代號00H(給定值)進行加法操作就可以。因此智能表讀/寫子程序的設計流程如下:
1、地址循環變量P+80->P1; //P1為PLC的數據寄存器
2、P1*H100->P2;//P2為PLC的數據寄存器
3、P1+P2->PP; //PP為智能表在AIBUS中的協議地址,定義在發送幀中第1字
4、M-write條件成立時:
(1)傳送HEX43到發送幀的第2字;//HEX43為寫智能表標志
(2)傳送“DWRITE”到發送幀的第3字;
(3)“DWRITE”+HEX43+地址循環變量P,其結果傳送到發送幀的第4字;//進行寫字節校驗
5、M-write條件不成立時:
(1)傳送HEX52到發送幀的第2字;//HEX52為讀智能表標志
(2)傳送HEX00到發送幀的第3字;
(3)HEX43+地址循環變量P,其結果傳送到發送幀的第4字;//進行讀字節校驗
經驗總結及程序效果
在對程序調試過程中,應利用PLC的串口監測工具對與智能表的通訊情況進行監控,必要時延長讀/寫幀的發送時鐘周期,觀察每次讀/寫幀的字節數、讀/寫字節、報警及校驗字節是否符合AIBUS協議的要求。
當在人機界面上修改某臺智能表的給定值時,智能表的刷新速度很快,而在集中顯示的人機界面上就有一定時間延遲。分析:“寫給定值” 操作在100ms內即可返回10個字節,但其中第2字代表的給定值(16進制格式)實際為上一次的賦值,需要對這臺智能表再進行一次讀操作時才向PLC返回方才寫入的給定值。由于程序是按照“寫給定值”優先的原則設計,當對智能表的寫設定值操作結束后,智能表按剛才“寫給定值”操作的協議地址繼續以100ms時間間隔進行“讀測量值”操作,其輪詢仍按AIBUS協議地址1—〉14的次序,則在人機界面上“寫給定值”操作后,刷新顯示的延遲時間=(100ms+PLC程序循環時間)×14+(智能表-)PLC-)人機界面的信號傳輸時間),實測顯示延遲時間zui大不超過3秒。為改善這種顯示延遲情況,可以在本文上述第二段中插入1行程序,將新“給定值DATA1”直接傳送到對應智能表的人機界面顯示值“DATAX”(X為偶數,且0
相關產品
免責聲明
- 凡本網注明“來源:化工儀器網”的所有作品,均為浙江興旺寶明通網絡有限公司-化工儀器網合法擁有版權或有權使用的作品,未經本網授權不得轉載、摘編或利用其它方式使用上述作品。已經本網授權使用作品的,應在授權范圍內使用,并注明“來源:化工儀器網”。違反上述聲明者,本網將追究其相關法律責任。
- 本網轉載并注明自其他來源(非化工儀器網)的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點和對其真實性負責,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品第一來源,并自負版權等法律責任。
- 如涉及作品內容、版權等問題,請在作品發表之日起一周內與本網聯系,否則視為放棄相關權利。