廈門宇電自動化科技有限公司生產的儀表在通信上經歷了多個版本,現行常用為7.0版本AIBUS協議,8.0版本AIBUS協議以及8.0版本MODbus協議。以下為相關協議說明。
AIBUS通訊協議說明(V7.0)
AIBUS是廈門宇電自動化科技有限公司為AI系列顯示控制儀表開發的通訊協議,能用簡單的指令實現強大的功能,并提供比其它常用協議(如MODBUS)更快的速率(相同波特率下快3-10倍),適合組建較大規模系統。AIBUS采用了16位的求和校正碼,通訊可靠,支持4800、9600、19200等多種波特率,在19200波特率下,上位機訪問一臺AI-7/8系列高性能儀表的平均時間僅20mS,訪問AI-5系列儀表的平均時間為50mS。儀表允許在一個RS485通訊接口上連接多達80臺儀表(為保證通訊可靠,儀表數量大于60臺時需要加一個RS485中繼器)。AI系列儀表可以用PC、觸摸屏及PLC作為上位機,其軟件資源豐富,發展速度極快。基與PC的上位機軟件廣泛采用WINDOWS作為操作環境,不僅操作直觀方便,而且功能強大。的工業平板觸摸屏式PC的應用,更為工業自動化帶來新的界面。這使得AIDCS系統價格大大低于傳統DCS系統,而性能及可靠性也具備比傳統DCS系統更*的潛力,V7.X版本AI-7/8系列儀表允許連續寫參數,寫給定值或輸出值,可利用上位機將儀表組成復雜調節系統。
一、接口規格
AI系列儀表使用異步串行通訊接口,接口電平符合RS232C或RS485標準中的規定。數據格式為1個起始位,8位數據,無校驗位,1個或2個停止位。通訊傳輸數據的波特率可調為4800~19200 bit/S,通常用9600 bit/S,單一通訊口所連接儀表數量大于40臺或需要更快刷新率時,推薦用19200bit/S,當通訊距離很長或通訊不可靠常中斷時,可選4800bit/S。AI儀表采用多機通訊協議,采用RS485通訊接口,則可將1~80臺的儀表同時連接在一個通訊接口上。
RS485通訊接口通訊距離長達1KM以上(部分實際應用已達3-4KM),只需兩根線就能使多臺AI儀表與計算機進行通訊,優于RS232通訊接口。為使用普通個人計算機PC能作上位機,可使用RS232/RS485或USB/RS485型通訊接口轉換器,將計算機上的RS232通訊口或USB口轉為RS485通訊口。宇電為此專門開發了新型RS232/RS485及USB/RS485轉換器,具備體積小、無需初始化而可適應任何軟件、無需外接電源、有一定抗雷擊能力等優點。
按RS485接口的規定,RS485通訊接口可在一條通訊線路上連接zui多32臺儀表或計算機。需要聯接更多的儀表時,需要中繼器,也可選擇采用75LBC184或MAX487等芯片的通訊接口。目前生產的AI儀表通訊接口模塊通常采用75LBC184,這種芯片具備一定的防雷擊和防靜電功能,且無需中繼器即可連接約60臺儀表。
AI儀表的RS232及RS485通訊接口采用光電隔離技術將通訊接口與儀表的其他部分線路隔離,當通訊線路上的某臺儀表損壞或故障時,并不會對其它儀表產生影響。同樣當儀表的通訊部分損壞或主機發生故障時,儀表仍能正常進行測量及控制,并可通過儀表鍵盤對儀表進行操作,工作可靠性很高。16位校驗碼的正確性是簡單奇偶校驗的30000倍,基本能保證數據可靠性。并且同一網絡上有其他公司也采用主從方式通訊的產品時,如PLC、變頻器等,多數情況下AI系列儀表都不會受其它公司產品通訊干擾,不會產生采集數據混亂或無法通訊的問題。但是AI儀表協議并不能保證其它公司產品能否正常工作,所以除非萬不得已,不應將AI儀表與其它產品混在一個RS485通訊總線上,而應分別使用不同的總線。
二、通訊指令
AI儀表采用16進制數據格式來表示各種指令代碼及數據。AI儀表軟件通訊指令經過優化設計,標準的通訊指令只有兩條,一條為讀指令,一條為寫指令,兩條指令使得上位機軟件編寫容易,不過卻能100%完整地對儀表進行操作;標準讀和寫指令分別如下:
讀: 地址代號+52H(82)+要讀的參數代號+0+0+校驗碼
寫: 地址代號+43H(67)+要寫的參數代號+寫入數低字節+寫入數高字節+校驗碼
地址代號:為了在一個通訊接口上連接多臺AI儀表,需要給每臺AI儀表編一個互不相同的通訊地址。有效的地址為0~80(部分型號為0~100),所以一條通訊線路上zui多可連接81臺AI儀表,儀表的通訊地址由參數Addr決定。儀表內部采用兩個重復的128~208(16進制為80H~D0H)之間數值來表示地址代號,由于大于128的數較少用到(如ASC方式的協議通常只用0-127之間的數),因此可降低因數據與地址重復造成沖突的可能性。
AI儀表通訊協議規定,地址代號為兩個相同的字節,數值為(儀表地址+80H)。例如:儀表參數Addr=10(16進制數為0AH,0A+80H=8AH),則該儀表的地址代號為:8AH 8AH
參數代號:儀表的參數用1個8位二進制數(一個字節,寫為16進制數)的參數代號來表示。它在指令中表示要讀/寫的參數名。
校驗碼:校驗碼采用16位求和校驗方式,其中讀指令的校驗碼計算方法為:
要讀參數的代號×256+82+ADDR
寫指令的校驗碼計算方法為以下公式做16位二進制加法計算得出的余數(溢出部分不處理):
要寫的參數代號×256+67+要寫的參數值+ADDR
公式中ADDR為儀表地址參數值,范圍是0~80(注意不要加上80H)。校驗碼為以上公式做二進制16位整數加法后得到的余數,余數為2個字節,其低字節在前,高字節在后。要寫的參數值用16位二進制整數表示。
返回數據:無論是讀還是寫,儀表都返回以下10個字節數據:
測量值PV+給定值SV+輸出值MV及報警狀態+所讀/寫參數值+校驗碼
其中PV、SV及所讀參數值均各占2個字節,代表一個16位二進制有符號補碼整數,低位字節在前,高位字節在后,整數無法表示小數點,要求用戶在上位機處理;MV占一個字節,按8位有符號二進制數格式,數值范圍-110~+110,狀態位占一個字節,校驗碼占2個字節,共10個字節。
不同型號儀表返回各數據含義如下:
儀表型號 | 調節器 溫控器 | AI-708M巡檢儀 | AI-708H/808H 流量通道 | AI-808H 溫度/壓力通道 | AI-301M頻率調節器/IO模塊 |
PV | 測量值PV | 測量值 | 瞬時流量測量值
| 溫度測量值,單位為0.1℃ | 測量值PV |
SV | 當前給定值SV | 通道號 (1-6) | 累積流量低位 或批量控制測量值 | 壓力測量值,單位為0.001MPa | 當前給定值SV |
MV | 輸出值MV 狀態字節B | 狀態字節B | 累積流量高位 或批量控制給定值 | 補償前流量或頻率值,單位0.1Hz | 調節輸出值MV |
狀態字節 | 狀態字節A | 狀態字節A | 狀態字節A | ||
參數值 | 表示要讀或寫的參數的值 |
返回校驗碼:PV+SV+(報警狀態*256+MV)+參數值+ADDR按整數加法相加后得到的余數。計算校驗碼時,每2個8位字節組成1個16位二進制整數進行加法運算,溢出數忽略,余數作為校驗碼。
狀態字節A表示儀表部分狀態,其含義如下(位7固定為0):
| 調節器及單顯表(V7.0) | AI-702M/704M/706M | 調節器、溫控器及單顯表(V7.5) |
位0 | 上限報警(HIAL) | 上限報警(HIAL) | HIAL |
位1 | 下限報警(LoAL) | 下限報警(LoAL) | LoAL |
位2 | 正偏差報警(dHAL) | 0 | HdAL |
位3 | 負偏差報警(dLAL) | 0 | LdAL |
位4 | 輸入超量程報警(orAL) | 超量程報警(orAL) | orAL |
位5 | AL1狀態,0為動作 | 0 | 備用(0) |
位6 | AL2狀態,0為動作 | 0 | 0表示MV為輸出值,1為狀態字B |
巡檢儀具備狀態字節B,對于V7.5版本以上調節器、溫控儀、單顯表,MV則可交替代表MV值及狀態字節B(由狀態字節A的位6決定)。狀態字節B的位0~6分別表示OP1、OP2、AL1、AL2、AU1、AU2及MIO口的輸入狀態,0表示為未接通或未輸出,1表示外部開關接通或有輸出,OUTP或AUX做調節輸出時則對應位固定為0。利用功能可將對應端口作為上位機開關量的輸出或輸出,應用ALP參數設置沒有用到的報警端口均可作為I/O端口,利用修改NONC(常開/常閉)參數即可實現對開關量的輸出,作為開關量輸入時,應將nonc對應位設置為常開,若讀入信號為1,則表示外部開關閉合或有信號輸入。
AI儀表可讀/寫的參數代號表:
表一
參數代號 | 調節器 | 巡檢儀 | |||
10進制 | 16進制 | AI-518/708/808/518P/708P/808P | AI-519/719/719P | AI-501/701 | AI-702M/704M/706M |
0 | 00H | SV給定值/SteP程序段 | SV給定值/SteP程序段 | (空) | (空) |
1 | 01H | HIAL上限報警 | HIAL上限報警 | HIAL上限報警 | HIAL上限報警 |
2 | 02H | LoAL下限報警 | LoAL下限報警 | LoAL下限報警 | LoAL下限報警 |
3 | 03H | dHAL正偏差報警 | HdAL偏差上限報警 | HdAL第二上限報警 | (空) |
4 | 04H | dLAL負偏差報警 | LdAL偏差下限報警 | LdAL第二下限報警 | (空) |
5 | 05H | dF回差 | CHYS控制回差 | AHYS報警回差 | dF回差 |
6 | 06H | Ctrl控制方式 | Ctrl控制方式 | (空) | (空) |
7 | 07H | M5保持參數 | P比例帶 | (空) | (空) |
8 | 08H | P 速率參數 | I積分時間 | (空) | (空) |
9 | 09H | t滯后時間 | d微分時間 | (空) | (空) |
10 | 0AH | CtI控制周期 | CtI控制周期 | (空) | Cn測量路數 |
11 | 0BH | Sn輸入規格 | InP輸入規格 | InP輸入規格 | Sn 輸入規格 |
12 | 0CH | dIP小數點位置 | dPt小數點位置 | dPt小數點位置 | dIP小數點位置 |
13 | 0DH | dIL輸入下限顯示值 | SCL信號刻度下限 | SCL信號刻度下限 | dIL輸入信號刻度下限 |
14 | 0EH | dIH輸入上限顯示值 | SCH信號刻度上限 | SCH信號刻度上限 | dIH輸入信號刻度上限 |
15 | 0FH | ALP報警輸出定義 | AOP報警輸出定義 | AOP報警輸出定義 | ALP報警輸入定義 |
16 | 10H | Sc輸入平移修正 | Scb輸入平移修正 | Scb輸入平移修正 | Sc輸入平移修正 |
17 | 11H | OP1輸出方式 | OPt主輸出類型 | OPt主輸出類型 | OPn變送輸出通道號 |
18 | 12H | oPL輸出下限 | OPL輸出下限 | (空) | oPL變送輸出電流下限 |
19 | 13H | oPH輸出上限 | OPH輸出上限 | (空) | oPH變送輸出電流上限 |
20 | 14H | CF功能選擇 | AF功能代碼 | (空) | AF功能代碼 |
21 | 15H | 儀表特征碼/程序控制字(運行:0 暫停:4 停止:12) | 儀表特征碼/程序控制字(運行:0 暫停:4 停止:12) | 儀表特征碼(與SV的值一樣,且可修改) | 儀表特征碼 |
22 | 16H | 儀表地址(讀/寫) | 儀表地址(讀/寫) | 儀表地址(讀/寫) | 儀表地址(讀/寫) |
23 | 17H | dL數字濾波 | FILt輸入數字濾波 | FILt輸入數字濾波 | dL數字濾波 |
24 | 18H | run運行參數 | A-M自動/手動控制選擇 | (空) | nonc常開/常閉選擇 |
25 | 19H | Loc參數封鎖 | Loc參數封鎖 | Loc參數封鎖 | Loc參數封鎖 |
26 | 1AH | C01 (AI-808寫入時設置MV值) | C01(AI-519/719寫入時設置MV值) |
|
|
27 | 1BH | t01 | t01 |
|
|
28 | 1CH | C02 | C02 |
|
|
29 | 1DH | t02 | t02 |
|
|
30 | 1EH | C03 | C03 |
|
|
31 | 1FH | t03 | t03 |
|
|
32 | 20H | C04 | C04 |
|
|
33 | 21H | t04 | t04 |
|
|
34 | 22H | C05 | C05 |
|
|
35 | 23H | t05 | t05 |
|
|
36 | 24H | C06 | C06 |
|
|
37 | 25H | t06 | t06 |
|
|
38 | 26H | C07 | C07 |
|
|
39 | 27H | t07 | t07 |
|
|
40 | 28H | C08 | C08 |
|
|
41 | 29H | t08 | t08 |
|
|
42 | 2AH | C09 | C09 |
|
|
43-85 | 2BH-55H | t09-C30程序數據 | t09-C30程序數據 |
|
|
86 | 56H | 當前程序段運行時間 | 當前程序段運行時間 |
|
|
表二
參數代號 | 流量積算儀 | AI-301M | 四路PID調節器 | |
10進制 | 16進制 | (AI-708H/Y/808H) | 頻率測量/開關量 | AI-7048 |
0 | 00H | SV批量控制給定值 | SV頻率控制給定值 | SP給定值 |
1 | 01H | FHIA瞬時流量上限報警 | HIAL上限報警 | HIAL上限報警 |
2 | 02H | FloA瞬時流量下限報警 | LoAL下限報警 | LoAL下限報警 |
3 | 03H | SPE批量控制流量累積速率時間 | dHAL正偏差報警 | |
4 | 04H | Act批量控制繼電器動作時間 | dLAL負偏差報警 |
|
5 | 05H | Sn輸入規格 | dF回差 | AHYS回差 |
6 | 06H | FSc流量信號測量平移修正 | CtrL控制方式 | At自整定開關 |
7 | 07H | PdIH壓力測量量程定義 | M5保持參數 | P比例帶 |
8 | 08H | CSc溫度測量平移修正 | P速率參數 | I積分時間 |
9 | 09H | CdIH溫度測量量程定義 | t滯后時間 | d微分時間 |
10 | 0AH | Cut流量小信號切除比率 | CtI控制周期 | |
11 | 0BH | FdIH流量測量量程定義 | Frd頻率量程 | InP輸入規格 |
12 | 0CH | FdIP流量小數點 | dIP小數點位置 | dPt小數點位置 |
13 | 0DH | PA大氣壓力/溫度補償系數 | dIL下限顯示值 | SCL信號刻度下限 |
14 | 0EH | Po流量傳感器設計工作壓力 | dIH上限顯示值 | SCH信號刻度上限 |
15 | 0FH | Co流量傳感器設計工作溫度 | ALP報警輸出選擇 | AOP報警輸出定義 |
16 | 10H | Frd頻率信號上限 | 開關量狀態 | Scb輸入平移修正 |
17 | 11H | CF功能選擇參數 | oP1輸出方式 | |
18 | 12H | bC溫壓補償類型 | OPL輸出下限 | |
19 | 13H | IoL變送輸出電流下限 | OPH輸出上限 | OPH輸出上限 |
20 | 14H | FoH變送輸出流量量程 | CF功能選擇 | AF功能代碼 |
21 | 15H | 儀表特征碼 | 儀表特征碼 | 儀表特征碼 |
22 | 16H | 儀表地址(讀/寫) | 儀表地址(讀/寫) | 儀表地址(讀/寫) |
23 | 17H | IoH變送輸出電流上限 | dL數字濾波 | FILt輸入數字濾波 |
24 | 18H | FdL流量信號數字濾波強度 | run運行參數 | Nonc常開/常閉選擇 |
25 | 19H | Loc參數封鎖 | Loc參數封鎖 | Loc參數封鎖 |
26 | 1AH | (空) | MV手動輸出值 | Cn測量路數 |
27 | 1BH | FdF瞬時流量報警回差 |
|
|
28 | 1CH | CHIA溫度上限報警 |
|
|
29 | 1DH | CLoA溫度下限報警 |
|
|
30 | 1EH | PHIA壓力上限報警 |
|
|
31 | 1FH | PLoA壓力下限報警 |
|
|
32 | 20H | ALP報警輸出定義 |
|
|
33 | 21H | FSb批量控制給定值偏移 |
|
|
34 | 22H | CdIP溫度小數點 |
|
|
35 | 23H | PdIP壓力小數點 |
|
|
36 | 24H | PSc壓力測量信號平移修正 |
|
|
37 | 25H | CLn清零次數(只讀) |
|
|
38 | 26H | FLJH累積流量高4位(只可清零) |
|
|
39 | 27H | FLJL累積流量低4位(只可清零) |
|
|
40 | 28H | EJH(補前流量高) |
|
|
41 | 29H | EJL(補前流量低) |
|
|
42 | 2AH | 批量累積值清零位 |
|
|
43-85 | 2BH-55H | |
|
|
86 | 56H | |
|
|
說明:
1、如果向儀表讀取參數代號在表格中參數以外,則儀表不會返回任何數據。AI-501/701型儀表不具備表格中所有參數,當讀寫實際參數表以外的參數或備用參數時,儀表實際均對SP1參數操作。
2、帶手動調節功能的儀表處于手動狀態時,可通過寫1AH參數來調節手動輸出值。
3、AI-7048型4路控制器占4個地址,比如Addr=5,則5,6,7,8分別為4個回路的通訊地址。
4、程序控制字:對于AI-518P/708P/808P等型號程序儀表,15H返回程序控制字,其高位字節數值為0,低位字節數據則如下:
(X)(X)(X)(X)(EV2)(EV1)(HOLD)(STOP)
前4位(BIT)目前暫不用,程序中應允許其為任意值;HOLD及STOP=0,則程序運 STOP=0,HOLD=1,則程序暫停;S,HOLD=1,則程序停止;EV1、EV2表示事件輸出狀態,為1時表示事件輸出動作,為0時表示事件輸出無效。
5、累積流量清零:AI-708H/808H的流量累積參數FLJH及FLJL只能清零,不能改寫,清零方法是向FLJH寫入30808(占2個地址時,必須是用*個地址),即可清零累積流量FLJH、FLJL及補償前流量累積EJH及EJL,同時CLn值加1,CLn為只讀,不可改寫。向參數代號2AH寫入31808,則可清除批量控制累積值,同時復位批量控制輸出繼電器。
三、編程方法
系統采用主從式多機通訊結構,每向儀表發一個指令,儀表返回一個數據。編寫上位機軟件時,注意每條有效指令儀表應在0~150mS內作出應答,而上位機也必須等儀表返回數據后,才能發新的指令,否則將引起錯誤。如果儀表超過zui大響應時間(150mS)仍沒有應答,則原因可能無效指令、通訊線路故障,儀表沒有開機,通訊地址不合等,此時上位機應重發指令或跳過改地址儀表。例如,將地址(參數ADDR)為1的儀表的給定值(參數代號0)寫為100.0℃(整數為1000),用VB的編程方法如下:
1、初始化通訊口,包括與儀表相同的波特率,數據位8,停止位2,無校驗。注意某些廠家的RS232/RS485通訊轉換器對RTS、DTR等控制線有一定的要求,上位機軟件必須對這些控制線進型編程。用本公司生產的RS232/RS485轉換器則可免去對這些線進行編程。
2、VB編程指令(寫SV為1000)為:
Dim Cmdout (0 To 7) As Byte
Cmdout(0)=129
Cmdout(1)=129
Cmdout(2)=67
Cmdout(3)=0
Cmdout(4)=232
Cmdout(5)=3
Cmdout(6)=44
Cmdout(7)=4
COMM1.OUTPUT=Cmdout
儀表返回數據:
Dim instring() as byte
Dim pv as integer, sv as integer, mv as integer, alm as integer, cs as integer, crc as integer
instring = MSComm1.Input '假設已經有數據返回
pv= Join2Byte(instring(0), instring(1))
sv= Join2Byte(instring(2), instring(3))
mv= (instring(4))
alm= integer(instring(5))
cs= Join2Byte(instring(6), instring(7))
crc= Join2Byte(instring(8), instring(9))
Public Function Join2Byte(lowbyte As Byte, highbyte As Byte)
Dim c As Integer
c = highbyte
If c > 127 Then
c = (c - 256) * 256
Else
c = c * 256
End If
Join2Byte = c + lowbyte
End Function
注:對于AI-5XX系列儀表,寫入參數周期不易低于2分鐘,否則可能導致儀表在5年保修期內損壞存儲單元損壞。
宇電AIBUS及MODBUS通訊協議說明(V8.0)
AIBUS是廈門宇電自動化科技有限公司為AI系列顯示控制儀表開發的通訊協議,能用簡單的指令實現全面的功能,其特點是寫參數的同時亦可完成讀功能,因此寫參數時不破壞讀的循環周期時間,加上指令長度較少,因此具有比MODBUS更快的速率(尤其是有寫入指令時,MODBUS的寫入指令不能同時完成讀下位機數據的功能,會破壞讀指令的周期,延長了讀的循環周期),AIBUS協議具有組建大規模過程控制系統能力。AIBUS采用了16位的求和校正碼,下位機運算快速且通訊可靠,支持9600和19200等不同波特率,在19200波特率下,上位機訪問一臺AI-7/8系列高性能儀表的平均時間僅20mS,訪問AI-5系列儀表的平均時間為40mS。儀表允許在一個RS485通訊接口上連接多達80臺儀表(為保證通訊可靠,儀表數量大于60臺時需要加一個RS485中繼器)。AI系列儀表可以用PC、觸摸屏及PLC作為上位機,其軟件資源豐富,發展速度極快。基與PC的上位機軟件廣泛采用WINDOWS作為操作環境,不僅操作直觀方便,而且功能強大。的工業平板觸摸屏式PC的應用,更為工業自動化帶來新的界面。這使得采用儀表+上位機結構的測控系統價格大大低于傳統DCS系統,而性能及可靠性也具備比傳統DCS系統更*的潛力。宇電AI-5系列儀表寫入壽命可達100萬次,而AI-7/8系列儀表則允許連續寫參數,如寫給定值或輸出值,寫入壽命高達10億次,可利用上位機將儀表組成復雜調節系統。
一、接口規格
AI系列儀表使用異步串行通訊接口,接口電平符合RS232C或RS485標準中的規定。數據格式為1個起始位,8位數據,無校驗位,1個或2個停止位。通訊傳輸數據的波特率可調為4800~19200 bit/S,通常用9600 bit/S,單一通訊口所連接儀表數量大于40臺或需要更快刷新率時,推薦用19200bit/S,當通訊距離很長或通訊不可靠常中斷時,可選4800bit/S。AI儀表采用多機通訊協議,采用RS485通訊接口,則可將1~80臺的儀表同時連接在一個通訊接口上。
RS485通訊接口通訊距離長達1KM以上(部分實際應用已達3-4KM),只需兩根線就能使多臺AI儀表與計算機進行通訊,優于RS232通訊接口。為使用普通個人計算機PC能作上位機,可使用RS232/RS485或USB/RS485型通訊接口轉換器,將計算機上的RS232通訊口或USB口轉為RS485通訊口。宇電為此專門開發了新型RS232/RS485及USB/RS485轉換器,具備體積小、無需初始化而可適應任何軟件、無需外接電源、有一定抗雷擊能力等優點。
按RS485接口的規定,RS485通訊接口可在一條通訊線路上連接zui多32臺儀表或計算機。需要聯接更多的儀表時,需要中繼器,也可選擇采用1/2或1/4負載等芯片的通訊接口來增加可連接儀表的數量。目前生產的AI儀表通訊接口采用低負載芯片并且一定的防雷擊和防靜電功能,無需中繼器即可連接約60臺儀表。
AI儀表的RS232及RS485通訊接口采用光電隔離技術將通訊接口與儀表的其他部分線路隔離,當通訊線路上的某臺儀表損壞或故障時,并不會對其它儀表產生影響。同樣當儀表的通訊部分損壞或主機發生故障時,儀表仍能正常進行測量及控制,并可通過儀表鍵盤對儀表進行操作,工作可靠性很高。16位校驗碼的正確性是簡單奇偶校驗的30000倍,基本能保證數據可靠性。并且同一網絡上有其他公司也采用主從方式通訊的產品時,如PLC、變頻器等,多數情況下AI系列儀表都不會受其它公司產品通訊干擾,不會產生采集數據混亂或無法通訊的問題。但是AI儀表協議并不能保證其它公司產品能否正常工作,所以除非萬不得已,不應將AI儀表與其它產品混在一個RS485通訊總線上,而應分別使用不同的總線。
二、通訊指令
AI儀表采用16進制數據格式來表示各種指令代碼及數據。AI儀表軟件通訊指令經過優化設計,標準的通訊指令只有兩條,一條為讀指令,一條為寫指令,兩條指令使得上位機軟件編寫容易,但能100%完整地對儀表進行操作;標準讀和寫指令分別如下:
讀: 地址代號+52H(82)+要讀的參數代號+0+0+校驗碼
寫: 地址代號+43H(67)+要寫的參數代號+寫入數低字節+寫入數高字節+校驗碼
地址代號:為了在一個通訊接口上連接多臺AI儀表,需要給每臺AI儀表編一個互不相同的通訊地址。有效的地址為0~80(部分型號為0~100),所以一條通訊線路上zui多可連接81臺AI儀表,儀表的通訊地址由參數Addr決定。儀表內部采用兩個重復的128~208(16進制為80H~D0H)之間數值來表示地址代號,由于大于128的數較少用到(如ASC方式的協議通常只用0-127之間的數),因此可降低因數據與地址重復造成沖突的可能性。AI儀表通訊協議規定,地址代號為兩個相同的字節,數值為(儀表地址+80H)。例如:儀表參數Addr=10(16進制數為0AH,0A+80H=8AH),則該儀表的地址代號為:
8AH 8AH
參數代號:儀表的參數用1個8位二進制數(一個字節,寫為16進制數)的參數代號來表示。它在指令中表示要讀/寫的參數名。
校驗碼:校驗碼采用16位求和校驗方式,其中讀指令的校驗碼計算方法為:
要讀參數的代號×256+82+ADDR
寫指令的校驗碼計算方法為以下公式做16位二進制加法計算得出的余數(溢出部分不處理):
要寫的參數代號×256+67+要寫的參數值+ADDR
公式中ADDR為儀表地址參數值,范圍是0~80(注意不要加上80H)。校驗碼為以上公式做二進制16位整數加法后得到的余數,余數為2個字節,其低字節在前,高字節在后。要寫的參數值用16位二進制整數表示。
返回數據:無論是讀還是寫,儀表都返回以下10個字節數據:
測量值PV+給定值SV+輸出值MV及報警狀態+所讀/寫參數值+校驗碼
其中PV、SV及所讀參數值均各占2個字節,代表一個16位二進制有符號補碼整數,低位字節在前,高位字節在后,整數無法表示小數點,要求用戶在上位機處理;MV占一個字節,按8位有符號二進制數格式,數值范圍-110~+110,狀態位占一個字節,校驗碼占2個字節,共10個字節。不同型號儀表返回各數據含義如下:
儀表型號 | 調節器 溫控器 | AI-708M巡檢儀 | AI-708H/808H 流量通道 | AI-808H 溫度/壓力通道 | AI-301M頻率調節器/IO模塊 |
PV | 測量值PV | 測量值 | 瞬時流量測量值
| 溫度測量值,單位為0.1℃ | 測量值PV |
SV | 當前給定值SV | 通道號 (1-6) | 累積流量低位 或批量控制測量值 | 壓力測量值,單位為0.001MPa | 當前給定值SV |
MV | 輸出值MV | 狀態字節B | 累積流量高位 或批量控制給定值 | 補償前流量或頻率值,單位0.1Hz | 調節輸出值MV |
狀態字節 | 狀態字節A | 狀態字節A | 狀態字節A | ||
參數值 | 表示要讀或寫的參數的值 |
返回校驗碼:為PV+SV+(報警狀態*256+MV)+參數值+ADDR按整數加法相加后得到的余數。計算校驗碼時,每2個8位字節組成1個16位二進制整數進行加法運算,溢出數忽略,余數作為校驗碼。
狀態字節A表示儀表部分狀態,其含義如下(位7固定為0):
| 調節器及單顯表(V7.0) | AI-702M/704M/706M | 調節器、溫控器及單顯表(V7.5) |
位0 | 上限報警(HIAL) | 上限報警(HIAL) | HIAL |
位1 | 下限報警(LoAL) | 下限報警(LoAL) | LoAL |
位2 | 正偏差報警(dHAL) | 0 | HdAL |
位3 | 負偏差報警(dLAL) | 0 | LdAL |
位4 | 輸入超量程報警(orAL) | 超量程報警(orAL) | Oral |
位5 | AL1狀態,0為動作 | 0 | 備用(0) |
位6 | AL2狀態,0為動作 | 0 | 0表示MV為輸出值,1為狀態字B |
巡檢儀具備狀態字節B。狀態字節B的位0~6分別表示OP1、OP2、AL1、AL2、AU1、AU2及MIO口的輸入狀態,0表示為未接通或未輸出,1表示外部開關接通或有輸出,OUTP或AUX做調節輸出時則對應位固定為0。利用功能可將對應端口作為上位機開關量的輸出或輸出,應用ALP參數設置沒有用到的報警端口均可作為I/O端口,利用修改NONC(常開/常閉)參數即可實現對開關量的輸出,作為開關量輸入時,應將nonc對應位設置為常開,若讀入信號為1,則表示外部開關閉合或有信號輸入。
AI儀表可讀/寫的參數代號表(V8.0 518/518P/708/708P/719/719P)
參數代號 | AI-518/518P | 說明 |
00H | 給定值 | 單位同測量值 |
01H | HIAL上限報警 | 單位同測量值 |
02H | LoAL下限報警 | 單位同測量值 |
03H | dHAL正偏差報警 | 單位同測量值 |
04H | dLAL負偏差報警 | 單位同測量值 |
05H | AHYS報警回差 | 單位同測量值 |
06H | CtrL控制方式 | 0,ONOFF;1,APID;2,nPID;3,PoP;4,SoP |
07H | P比例帶 | 單位同測量值 |
08H | I 積分時間 | 秒 |
09H | d 微分時間 | 0.1秒 |
0AH | CtI控制周期 | 0.1秒 |
0BH | InP輸入規格 | 見使用說明書 |
0CH | dPt小數點位置 | 0,0;1,0.0;2,0.00,3,0.000;如讀入的以上數據+128,則表示所有測量值及與測量值使用相同單位的參數(無論是溫度或線性信號),均需要除10后4舍5入后再進行顯示處理。例如,dPt數值為128+1=129,讀入的測量值或相關參數值16位整數值為1000,則實際顯示應為10.0,若dPt數值為1,則實際顯示的數據為100.0;該參數亦可以寫入,但寫入時不得加128,寫數據范圍是0~3。 |
0DH | ScL刻度下限值 | 單位同測量值 |
0EH | ScH刻度上限值 | 單位同測量值 |
0FH | ALP報警輸出選擇 | 含義見說明書 |
10H | Sc測量平移修正 | 單位同測量值 |
11H | oP1主輸出方式 | 0,SSR;1,rELy;2,0-20;3,4-20 |
12H | OPL輸出下限 | % |
13H | OPH輸出上限 | % |
14H | CF功能選擇 | 含義見說明書 |
15H | 儀表型號特征字 | 5180(AI-518)或5187(AI-518P) |
16H | Addr 通訊地址 |
|
17H | FILt數字濾波 |
|
18H** | AMAn手動/自動選擇 | 0,MAN;1,Auto;2,FMAn;3,FAut |
19H | Loc參數封鎖 |
|
1AH** | MV手動輸出值 |
|
1BH | Srun 運行/停止選擇 | 0,run;1,StoP;2,HoLd |
1CH | CHYS 控制回差 | 單位同測量值 |
1DH | At 自整定選擇 | 0,OFF;1,on;2;FoFF |
1EH | SPL 給定值下限 | 單位同測量值 |
1FH | SPH 給定值上限 | 單位同測量值 |
20H | Fru單位及電源頻率 | 0,50C;1,50F;2,60C;3,60F |
21H | OHEF OPH有效范圍 | 單位同測量值 |
22H | Act 正/反作用 | 0,rE;1,dr;2,rEbA;3,drbA |
23H | AdIS 報警選擇 | 0,OFF;1,on |
24H | Aut 冷輸出規格 | 0,SSR;1,rELy;2,0-20;3,4-20 |
25H | P2 冷輸出比例帶 | 單位同測量值 |
26H | I2 冷輸出積分時間 | 秒 |
27H | d2 冷輸出微分時間 | 0.1秒 |
28H | CtI2 冷輸出周期 | 0.1秒 |
29H | Et 事件輸入類型 | 0,nonE;1,ruSt;2,SP1.2;3,PId2 |
2AH*** | SPr 升溫速率限制 | 測量值單位/(分鐘)(需等同測量值進行單位處理) |
2BH* | Pno 程序段數 | 整數 |
2CH* | PonP 上電選擇 | 0,Cont;1,StoP;2,run1;3,dASt;4,HoLd |
2DH* | PAF 程序參數 | 功能見說明書 |
2EH* | STEP 程序段號 | 整數 |
2FH* | 已運行時間 | 0.1分或0.1小時,由PAF參數決定 |
30H* | 事件輸出狀態 | 0,無事件輸出;1,事件1(AL1)動作;2,AL2動作;3,AL1及AL2動作 |
31H** | OPrt軟啟動時間 |
|
32H** | Strt閥門轉動時間 | 定義閥門轉動需要的時間 |
33H** | SPSL外給定下限 | 當外給定輸入口用于測量閥門反饋信號時,設定閥門定位值1 |
34H** | SPSH外給定上限 | 當外給定輸入口用于測量閥門反饋信號時,設定閥門定位值2 |
35H** | Ero故障輸出值 | 定義傳感器輸入故障或超量程時,儀表的調節輸出值 |
36H** | AF2 | 功能參數2 |
37H~3FH | 備用 |
|
40H~47H | EP1~EP8 |
|
48H** | 閥門位置(只讀) | 數值0~25600對應0~100%,讀取數除以256方為百分比數 |
49H~4FH | 備用 |
|
50H~51H | SP 1、t 1 | SP1為給定值1,t1為首段程序值 |
52H~ | SP2 ~ 程序段數據,數量由Pno參數定義 |
|
說明:
1、帶一個*星號的參數僅為AI-518P/708P/719P可用,若對AI-518/708/719讀寫則視為無效參數代號,帶**的參數是AI-719等儀表方可使用,帶***的參數是AI-518P/708P/719/719P等型號方可使用。
2、如果向儀表讀取參數代號在表格中以外的參數(無效參數代號或備用參數代號),則儀表返回的參數值,高位值為127(若讀成整數就是32512~32767,由于AI系列儀表參數zui大設置范圍是32000,所以32512以上參數可以作為讀錯參數代號的標志),在上位機程序中予以處理;若讀取參數代號大于有效程序段的zui后一個數值(0B4H),則下位機視同傳輸出錯,不回應。
3、帶手動調節功能的儀表處于手動狀態時,可通過寫1AH參數來調節手動輸出值。
4、15H為儀表的型號特征字,不同型號儀表其數字不同,上位機可用于區分儀表型號:
| 型號特征字 |
AI-518(V8.0)智能溫控器 | 5180 |
AI-518P(V8.0)程序型智能溫控器 | 5187 |
AI-708(V8.0)高精度智能溫控器 | 7080 |
AI-708P(V8.0)高精度程序型智能溫控器 | 7087 |
AI-719(V8.0)高精度智能溫控器/調節器 | 7190 |
AI-719P(V8.0)高精度程序型智能溫控器/調節器 | 7197 |
AI-702M/704M/706M | 768 |
AI-708H/808H(流量通道) | 256(普通累積模式);257(批量控制模式) |
AI-808H(溫度及壓力通道) | 258 |
AI-301M | 512 |
AI-7048四路PID控制器 | 7048 |
針對不同型號儀表,上位機應對其傳輸數據做不同模式處理。
5、累積流量清零:AI-708H/808H的流量累積參數FLJH及FLJL只能清零,不能改寫,清零方法是向FLJH寫入30808(占2個地址時,必須是用*個地址),即可清零累積流量FLJH、FLJL及補償前流量累積EJH及EJL,同時CLn值加1,CLn為只讀,不可改寫。向參數代號2AH寫入31808,則可清除批量控制累積值,同時復位批量控制輸出繼電器。
三、編程方法
系統采用主從式多機通訊結構,每向儀表發一個指令,儀表返回一個數據。編寫上位機軟件時,注意每條有效指令儀表應在0~150mS內作出應答,而上位機也必須等儀表返回數據后,才能發新的指令,否則將引起錯誤。如果儀表超過zui大響應時間(150mS)仍沒有應答,則原因可能無效指令、通訊線路故障,儀表沒有開機,通訊地址不合等,此時上位機應重發指令或跳過改地址儀表。例如,將地址(參數ADDR)為1的儀表的給定值(參數代號0)寫為100.0℃(整數為1000),用VB的編程方法如下:
1、初始化通訊口,包括與儀表相同的波特率,數據位8,停止位2,無校驗。注意某些廠家的RS232/RS485通訊轉換器對RTS、DTR等控制線有一定的要求,上位機軟件必須對這些控制線進型編程。用本公司生產的RS232/RS485轉換器則可免去對這些線進行編程。
2、VB編程指令(寫SP1為1000)為:COMM1.OUTPUT=
CHR$(129)+CHR$(129)+CHR$(67)+CHR$(0)+CHR$(232)+CHR$(3)+CHR$(44)+CHR$(4)
3、小數點處理(僅V8.0版本以上):為提升效率,儀表傳送的所有數值均為16位二進制補碼整數,因此上位及必須將整數按一定規則轉換為帶小數點的實際數據,方法是在上位機程序啟動后,應優先讀取參數dPt(0CH)獲得測量信號的小數點位置。注意:如果dPt的數值大于或等于128,則表示所傳輸的測量值,以及與測量值相同單位的參數應該除以10后進行顯示,當對下位機寫這類參數值時,則應將顯示的數取消小數點成為整數,再乘以10,按16位二進制補碼下傳數據。
通訊的技術指標如下:
儀表型號 | AI-301、AI-7/8系列儀表(V7.X) | AI-5XX系列儀表 |
zui遲返回時間(4800bit/S條件下) | 100mS | 150mS |
zui快返回時間(19200 bit/S條件下) | 5mS | 5mS |
平均讀寫周期(19200bit/S條件下) | 20mS | 50mS |
參數允許改寫次數 | 10億次 | 100萬次 |
注:對于AI-5XX系列儀表,寫入參數周期不易低于2分鐘,否則可能導致儀表在5年保修期內損壞存儲單元損壞。
四、MODBUS兼容通信協議
從V8.2版本開始,AI系列儀表可選擇使用MODBUS通信協議,AI儀表能支持MODBUS協議下的2條子指令,以更廣泛地與其它MODBUS設備相互通信,為保證速率,AI儀表采用RTU(二進制)模式,波特率必須設置為9600bit/S,無奇偶校驗位,支持03H(讀參數及數據)及06H(寫單個參數)這兩條指令。
對于518/708/708P/719/719P等型號儀表的03指令,要求一次性讀取4個數據,指令如下:
ADDR+03H+0+要讀的參數代號+0+4+CRC校驗碼
返回數據為:ADDR+03H+08H+測量值PV高位+測量值PV低位+給定值SV高位+SV低位+報警狀態+輸出值MV+所讀參數值高位+所讀參數值低位+CRC校驗碼低位+CRC校驗碼高位
寫單個參數指令為:
ADDR+06H+0+要寫的參數代號+要寫入的數據高位+要寫入數據低位+CRC校驗碼
由于MODBUS協議的本身的限制,使用寫指令無法返回測量值等信息,會導致寫入時測量值無法刷新,因此應盡量減少寫指令的使用,以免影響系統性能。
廈門宇電自動化科技有限公司
2010年10月
免責聲明
- 凡本網注明“來源:化工儀器網”的所有作品,均為浙江興旺寶明通網絡有限公司-化工儀器網合法擁有版權或有權使用的作品,未經本網授權不得轉載、摘編或利用其它方式使用上述作品。已經本網授權使用作品的,應在授權范圍內使用,并注明“來源:化工儀器網”。違反上述聲明者,本網將追究其相關法律責任。
- 本網轉載并注明自其他來源(非化工儀器網)的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點和對其真實性負責,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品第一來源,并自負版權等法律責任。
- 如涉及作品內容、版權等問題,請在作品發表之日起一周內與本網聯系,否則視為放棄相關權利。