組態(tài)軟件編程中對(duì)AIBUS通訊協(xié)議的理解
關(guān)鍵詞:AIBUS通訊協(xié)議、組態(tài)軟件
一、 通訊協(xié)議的正確理解
AIBUS協(xié)議及快速通訊:
早在1994年宇電推出的基于RS485通訊接口的AIBUS通訊協(xié)議,簡(jiǎn)單高效又功能齊全。目前的產(chǎn)品在RS485通訊19200波特率下,平均每臺(tái)儀表讀取3個(gè)常用變量及1個(gè)參數(shù)的速度僅20ms,是常用如MODBUS協(xié)議的進(jìn)口儀表的3-10倍以上,利用采用AIBUS協(xié)議的AI系列儀表組建FCS結(jié)構(gòu)的計(jì)算機(jī)監(jiān)控系統(tǒng),每個(gè)串口連接50臺(tái)儀表仍能獲得滿意的數(shù)據(jù)刷新率,加上多串口及多機(jī)連網(wǎng),無論組建小系統(tǒng)還是大、中型系統(tǒng)均可達(dá)到與DCS同等使用效果。
采用AIBUS協(xié)議的AI儀表在9600波特率下能在40ms內(nèi)向上位機(jī)傳送4個(gè)重要數(shù)據(jù),比采用MODBUS協(xié)議的進(jìn)口儀表速度高3-10倍以上,因此即使采用廉價(jià)的RS485通訊,AIFCS也具備如DCS或FF、PROFIDBUS等高價(jià)現(xiàn)場(chǎng)總線系統(tǒng)同等的使用效果,并可以組建大型系統(tǒng),而不象通常進(jìn)口儀表那樣只能應(yīng)用于小型系統(tǒng)。RS485不僅價(jià)格低,還具備布線簡(jiǎn)單、對(duì)通訊線要求低及通訊距離長(zhǎng)等優(yōu)點(diǎn)。
AI系列儀表使用異步串行通訊接口,接口電平符合RS232C或RS485標(biāo)準(zhǔn)中的規(guī)定。數(shù)據(jù)格式1個(gè)起始位,8位數(shù)據(jù),無校驗(yàn)位,1個(gè)或2個(gè)停止位。通訊傳輸數(shù)據(jù)的波特率可調(diào)為4800~19200 bit/S,通常用9600 bit/S,單一通訊口所連接儀表數(shù)量大于40臺(tái)或需要更快刷新率時(shí),推薦用19200bit/S,當(dāng)通訊距離很長(zhǎng)或通訊不可靠常中斷時(shí),可選4800bit/S。AI儀表采用多機(jī)通訊協(xié)議,采用RS485通訊接口,則可將1~80臺(tái)的儀表同時(shí)連接在一個(gè)通訊接口上。串口調(diào)試設(shè)置如下圖:
根據(jù)宇電AIBUS通訊協(xié)議,AI儀表采用16進(jìn)制數(shù)據(jù)格式來表示各種指令代碼及數(shù)據(jù)。AI儀表軟件通訊指令經(jīng)過優(yōu)化設(shè)計(jì),標(biāo)準(zhǔn)的通訊指令只有兩條,一條為讀指令,一條為寫指令.以AI-808P為例利用此串口通訊工具與其通訊,當(dāng)要讀儀表的設(shè)定值時(shí),發(fā)送8個(gè)字節(jié)分別是:
即要發(fā)送的8個(gè)字節(jié)分別是81H 81H 52H 00H 00H 00H 53H 00H 儀表中的地址ADDR=1,00H是儀表的參數(shù)代號(hào)表示AI-808P的STEP程序段,53H 00H是校驗(yàn)碼,采用16位求和校驗(yàn)方式,讀指令的校驗(yàn)碼計(jì)算方法為:要讀的參數(shù)代號(hào)*256+82+ADDR(10進(jìn)制算法)這里是0*256+82+1=83轉(zhuǎn)換為16進(jìn)制就是53H為校驗(yàn)碼的低字節(jié),00H是高字節(jié),在發(fā)送的時(shí)候要倒置.
AI系列的儀表通訊協(xié)議中沒有說明測(cè)量值是哪一個(gè)參數(shù)代號(hào),而是無論執(zhí)行讀/寫指令后,儀表都會(huì)自動(dòng)返回以下10個(gè)字節(jié)的數(shù)據(jù):
例如我要讀取某一臺(tái)儀表的PV值,只要執(zhí)行該儀表對(duì)應(yīng)通訊協(xié)議中任意一個(gè)參數(shù)代號(hào)就可以有PV值返回,如圖2以讀取00H(給定值)這個(gè)參數(shù)代號(hào)為例:
圖2中40H 02H為返回的測(cè)量值高位在前,低位在后,讀取的時(shí)候要倒置(其他數(shù)據(jù)讀取時(shí)也是如此),也就是0240H,轉(zhuǎn)換成10進(jìn)制就是57。6,有帶一位小數(shù)點(diǎn)。由于是讀00H這個(gè)參數(shù)代號(hào)的值,就是第7、8個(gè)這字節(jié)的數(shù)據(jù),也就是01H在此例中儀表執(zhí)行在第一段。
如果是寫參數(shù),則發(fā)送以下8個(gè)字節(jié):
舉寫(T01)1BH這個(gè)參數(shù)代號(hào)為例,寫入數(shù)為-1時(shí),則要發(fā)送的8個(gè)字節(jié)是81H 81H 43H 1BH FFH FFH 43H 1BH如下圖:
寫指令的校驗(yàn)碼計(jì)算方法為以下公式做16位二進(jìn)制加法計(jì)算得出的余數(shù)(溢出部分不處理):要寫的參數(shù)代號(hào)×256+67+要寫的參數(shù)值+ADDR,若是要寫入負(fù)值時(shí),則應(yīng)當(dāng)把負(fù)值轉(zhuǎn)換成補(bǔ)碼在轉(zhuǎn)換成10進(jìn)制,算出的值減去65536換成16進(jìn)制發(fā)送,所以要寫入-1時(shí),57(1BH)*256+65535+1-65536=6979(1B43H)發(fā)送時(shí)要倒置。返回來的10個(gè)字節(jié)的數(shù)據(jù)中FFFF就是所寫的參數(shù)值-1。
對(duì)于AI系列儀表,不論是讀/寫任可一個(gè)參數(shù)都是用這兩條指令,編寫容易能完整的對(duì)儀表進(jìn)行操作。二、AI-808PAK5S型儀表的程序通訊與MCGS組態(tài)軟件編寫內(nèi)容:
與MCGS組態(tài)軟件通訊時(shí),選擇宇光系列智能儀表的驅(qū)動(dòng),由于軟件中能設(shè)置的參數(shù)的代號(hào)只到19H,所以對(duì)于宇電程序型儀表只能通過編寫內(nèi)部函數(shù)來實(shí)現(xiàn)讀寫1AH這個(gè)參數(shù)代號(hào)以后的參數(shù),實(shí)現(xiàn)的方法;
①:要先在實(shí)時(shí)數(shù)據(jù)庫中建立好要讀的變量,如C01、T01……等以C01~T02為例,變量類型為數(shù)值型。
②:建立好后則進(jìn)入運(yùn)行策略進(jìn)行策略組態(tài),新建策略為循環(huán)策略或用戶策略,進(jìn)入編寫腳本程序如下圖3,是讀以下參數(shù)的命令!setDevice(設(shè)備0,6,“read(26,1,C01)”),
意思是把26中這個(gè)參數(shù)代號(hào)中的數(shù)據(jù)讀到C01這個(gè)變量中;
③:寫參數(shù)的命令與讀是一樣的如,!SetDevice(設(shè)備0,6,“write(26,1,C01)”):寫數(shù)據(jù)應(yīng)當(dāng)建立的設(shè)備命令為用戶策略(不能用循環(huán)策略),如下圖4:
④:為了能在運(yùn)行畫面中隨時(shí)寫入?yún)?shù)代號(hào)26以后的數(shù)值,應(yīng)當(dāng)在實(shí)時(shí)數(shù)據(jù)庫中建立與之前變量同等個(gè)數(shù)的變量,如下圖5;
⑤:在組態(tài)動(dòng)畫窗口中,設(shè)置屬性時(shí)輸入與輸出時(shí)不能為同一個(gè)變量,應(yīng)當(dāng)設(shè)置為與之對(duì)應(yīng)的一個(gè),如C01對(duì)應(yīng)sdc01……,做一個(gè)按鈕屬性設(shè)置為執(zhí)行運(yùn)得策略塊,在腳本程序中寫C01=sdc01如下圖6:
則在運(yùn)行畫面中要設(shè)定某一值時(shí)都需點(diǎn)擊這個(gè)按鈕。
三、AI-3011開關(guān)量狀態(tài)在MCGS組態(tài)軟件上的讀取:
執(zhí)行讀指令,儀表模塊上的開關(guān)量狀態(tài)按D0D1D2D3D4D5D6D7D8D9的順序,由低到高按二進(jìn)制碼順序排列在參數(shù)編號(hào)R10中,它的數(shù)據(jù)低10位(D0-D9)表示對(duì)應(yīng)的開關(guān)量狀態(tài)。舉例MCGS中的操作。
①:開關(guān)量狀態(tài)讀取:儀表的驅(qū)動(dòng)選宇光系列智能儀表,表類型選擇AI-708,在設(shè)備內(nèi)部屬性中讀寫SC這個(gè)參數(shù)就可了,操作方式為讀寫,小數(shù)點(diǎn)位置固定為0。開關(guān)量的狀態(tài)D0~D9在MCGS中是用10進(jìn)制數(shù)表示的,例如以上各位均無繼電器輸出或外部開關(guān)量斷開時(shí),SC中的參數(shù)值為0(二進(jìn)制:0000000000000000)全部動(dòng)作或外部開關(guān)接通時(shí),SC參數(shù)值為1023(0000001111111111);例如:當(dāng)D1、D2接通,其余斷開時(shí),SC參數(shù)值為6(二進(jìn)制數(shù)為0000000000000110)
②:開關(guān)量狀態(tài)的輸出:MCGS欲控制AI301系列儀表上的的繼電器動(dòng)用時(shí),向參數(shù)SC寫入對(duì)應(yīng)當(dāng)?shù)臓顟B(tài)字即可,例如D0、D1、D2、D3、D6、D7為繼電器輸出,D4、D5、D6、D8、D9為開關(guān)量輸入,正常工作狀態(tài)時(shí)D5和D8接通,現(xiàn)需要使D0、D1、D3、D7繼電器接通其余端口保持正常工作狀態(tài)不變,應(yīng)改變必須向參數(shù)編號(hào)SC寫入139(二進(jìn)制:0000000010001011)注意的是,對(duì)于用作輸入的端口,則不應(yīng)寫入1,必須寫入0,否則無論外部的開關(guān)是接通還是斷開,讀回的數(shù)據(jù)都是1。
4、現(xiàn)MCGS已經(jīng)有最新帶幫助文件的驅(qū)動(dòng):不需要在策略中編寫內(nèi)部函數(shù)來實(shí)現(xiàn)讀寫參數(shù)代號(hào)26以后的數(shù)據(jù),可以直接在通道中讀寫(R0~R5AH),每個(gè)通道所對(duì)應(yīng)的參數(shù)意義請(qǐng)參照宇電AIBUS通訊協(xié)議V7.0說明.
四、結(jié)語:
宇電發(fā)展至今,自己開發(fā)上位機(jī)軟件,功能強(qiáng)大,并與多家組態(tài)軟件公司合作,如:MCGS、組態(tài)王、力控……等,都能對(duì)儀表進(jìn)行百分之百的操作。
提交
宇電AI溫度控制器在箱式電阻爐的應(yīng)用
宇電AI-7048D5在玻璃非球面成型機(jī)上的應(yīng)用
基于AIBUS與各PLC之間通訊及與AIFCS計(jì)算機(jī)系統(tǒng)組建
宇電AI-7048及AI-2070總線式無紙記錄儀在塑料機(jī)械上的應(yīng)用
宇電AI儀表通過無線GPRS來實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)采集