【工控老馬】ABB AC500 系列PLC與WEST 8100+系列儀表的ASCII通訊指南


 

一、硬件設置

儀表設定

在P8100 的組態級(Configuration Mode)中

設置好以下幾個參數:

1.通訊協議(Prot):

請改為ASC I (ASC II 通訊協議)

2.通訊速率(bAud):

1.2/2.4/4.8/9.6/19.2kbps 可選,

此處設為19.2kbps

3.設備地址(Addr):

1 – 99 可選,默認為1

4.通訊寫入功能(CoEn):

r_o(只讀)或r_W(可讀可寫),默認為r_W

 

PLC設定:

在CoDeSys軟件中的硬件配置頁面中將AC500 PLC的COM1端口設置為“ASCII”自由口模式,並設定好以下參數:

1.RTS control:      telegram

2.baudrate:         19200

3.parity:           even

4.Date bits:        7

5.Stop bits:        1

    通訊接線采用485模式接線方式。

 

二、通訊程序

    儀表ASCII方式指令格式:

    ASCII通訊協議采用半雙工通訊,所有的通訊動作都由上位機開始。上位機給指定地址的控制器發出一命令或要求,控制器對上位機的命令作出應答或發回上位機要求的信息,所有的通訊信息包括以下內容:

     A)1 位信息起始字符;

     B)1 位或2 位地址字符;

     C)1 個命令或數據字符串;

     D)1 位信息停止字符。

    從上位機發出的信息可以是下列4 種形式之一:

     一類指令:L{N}??*

     確認從站狀態正常返回信息: L{N}?A 表示可用

     二類指令:L {N} {P} {C}*

     查詢/修改從站的某參數正常返回信息: L{N}{P}{DATA}A*

     三類指令:L {N} {P} #{DATA}*

     設置從站的某參數正常返回信息: L{N}{P}{DATA}I*表示:數據和參數有效

     四類指令:L {N} {P}I *

     在指令3 之后發送給同一從站, 如果指令3 中的數據和參數有效, 從站收到此指令后執行參數設置。正常返回信息: L{N}{P}{DATA}A*

    所有字符皆為ASCII 碼,且:

    L: 信息開始位;

    {N}: 為控制器地址(1—99),1~9 可以用一位或兩位(如:7 和07 皆 可); 

    {P}: 為參數代碼

    {C}: 指令

    #: 表示接下來為{DATA}

    {DATA}:是ASCII 碼組成字符串

    * : 信息截止字位

    {DATA}內容格式如下:

{DATA}內容

小數點及正負

abcd0

+abcd

abcd1

+abc.d

abcd2

+ab.cd

abcd3

+a.bcd

abcd5

-abcd

abcd6

-abc.d

abcd7

-ab.cd

abcd8

-a.bcd

 

    AC500 PLC ASCII指令的收發:

    AC500 PLC在 ASCII 方式下的指令收發是通過ABB ASCII通訊庫中的功能塊來完成的,功能塊具體介紹如下:

  1. COM_REC

    通過一個"自由模式"的串行接口接收數據,高電平觸發。

 

 

 

    功能塊參數:

 

 

 

 

  1. COM_SEND

通過一個"自由模式"的串行接口發送數據,上升沿觸發。

 

 

    功能塊參數:

 

   

 

    DATA通過ADR模塊可直接連接雙字類型的地址(如:%MD0.100),也可以連接STRING類型的內部字符串變量(如后面例子中用到的“send_ascii”)。連接字符串變量時,儀表指令將直接以字符形式輸入及顯示;連接雙子類型的地址時,輸入和顯示的將是組成儀表指令的字符的16進制代碼。

 

程序實例:

    根據儀表命令格式,我們來做一個通過ASCII功能塊實現儀表設定值的查詢及修改的例子。

    首先,通過一個COM_SENG模塊來發送設定值查詢指令:“L1S?*”。其中“S”為儀表設定值的參數代碼,其它各參數設置如下圖所示,其中“send_ascii”為string類型的內部字符串變量,將指令“L1S?*” 賦予變量后,將“%MX1.0.1”置一,指令發出。

 

   

 

    同時,接收模塊“COM_REC”(參數設置如下)將收到儀表應答指令“L1S02771A*”,表示當前設定值為27.7,1位小數。

 

 

 

    然后通過發送指令“L1S#02341*”修改設定值為23.4。

 

    儀表返回指令“L1S02341I*”表示參數和數據沒有問題。

 

 

再次發送確認指令“L1SI*”確認修改設置。

 

 

    儀表返回指令“L1S02341A*”表示儀表設定值修改成功。

 

 

至此,ABB AC500系列PLC 與WEST 8100+系列儀表的通訊成功實現。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

附件

WEST 8100系列儀表的參數代碼表

參數

代碼

說明

輸入參數:

過程值

M

只讀參數(二類指令),命令為:L{N}M?*

超量程時{DATA}為<??>0,

欠量程時{DATA}為<??>5。

過程值偏置

V

可以查詢(二類指令)、修改(三類/四類指令串);

命令為:L{N}V?*,L{N}V#{DATA}*/L{N}VI*;

修正輸入值,修正的過程值=實際值+過程值偏差,修正的過程值要在量程范圍內,可供顯示、報警、記錄儀輸出使用。此參數應小心選擇,否則會造成顯示的過程值和測量過程值的不一致。

量程上限

G

僅適用於直流線性輸入,可用二類指令查詢或三/四類指令串修改,小數點位置同輸入范圍。

命令為:L{N}G?*,L{N}G#{DATA}*/L{N}GI*。

量程下限

H

僅適用於直流線性輸入,可用二類指令查詢或三/四類指令串修改,小數點位置同輸入范圍。

命令為:L{N}H?*,L{N}H#{DATA}*/L{N}HI*;

輸入小數點位置

Q

僅適用於直流線性輸入,可用二類指令查詢或三/四類指令串修改,確定小數點位置:0=abcd 1=abc.d 2=ab.cd 3=a.bcd。

命令為:L{N}H?*,L{N}H#{DATA}*/L{N}HI*。

數字濾波時間

m

用二類指令查詢或三/四類指令串修改。

命令為:L{N}m?*,L{N}m#{DATA}*/L{N}mI*

輸出參數:

輸出功率

W

自動狀態時,用二類指令查詢;手動狀態時,用二類指令查詢或三/四類指令串修改。

命令為:L{N}W?*,L{N}W#{DATA}*/L{N}WI

輸出1 功率限幅

B

用二類指令查詢或三/四類指令串修改。

命令為:L{N}B?*,L{N}B#{DATA}*/L{N}BI*

輸出1 控制周期

N

用二類指令查詢或三/四類指令串修改。

命令為:L{N}N?*,L{N}N#{DATA}*/L{N}NI*

輸出2 控制周期

O

用二類指令查詢或三/四類指令串修改。

命令為:L{N}O?*,L{N}O#{DATA}*/L{N}OI*

變送輸出上限

[

用二類指令查詢或三/四類指令串修改,小數點位置與輸入一致。

命令為:L{N}[?*,L{N}[#{DATA}*/L{N}[I*

變送輸出下限

\

用二類指令查詢或三/四類指令串修改,小數點位置與輸入一致。

命令為:L{N}\?*,L{N}\#{DATA}*/L{N}\I*

設定值參數:

設定值

S

用二類指令查詢或三/四類指令串修改,在設定范圍內任意取值。

命令為:L{N}S?*,L{N}S#{DATA}*/L{N}SI*

設定值斜率

^

用二類指令查詢或三/四類指令串修改,設置范圍為1~9999/小時,{DATA}=00000 時為OFF,小數點位置和輸入相同。

命令為:L{N}^?*,L{N}^#{DATA}*/L{N}^I*

設定值上限

A

用二類指令查詢或三/四類指令串修改。出廠值為量程上限。

命令為:L{N}A?*,L{N}A#{DATA}*/L{N}AI*

設定值下限

T

用二類指令查詢或三/四類指令串修改。出廠值為量程下限。

命令為:L{N}T?*,L{N}T#{DATA}*/L{N}TI*

報警值參數:

報警1 值

C

用二類指令查詢或三/四類指令串修改,小數點位置與輸入一致。

命令為:L{N}C?*,L{N}C#{DATA}*/L{N}CI*

報警2 值

E

用二類指令查詢或三/四類指令串修改,小數點位置與輸入一致。

命令為:L{N}E?*,L{N}E#{DATA}*/L{N}EI*

控制參數:

微分時間常數

D

用二類指令查詢或三/四類指令串修改,格式為:mm.ss。單位為分鍾.秒

命令為:L{N}D?*,L{N}D#{DATA}*/L{N}DI*

積分時間常數

I

用二類指令查詢或三/四類指令串修改,格式為:mm.ss。單位為分鍾.秒

命令為:L{N}I?*,L{N}I#{DATA}*/L{N}II*

手動積分

J

用二類指令查詢或三/四類指令串修改,小數點位置與輸入

一致。

ON/OFF 動作回差

F

用二類指令查詢或三/四類指令串修改,1 位小數點。

命令為:L{N}F?*,L{N}F#{DATA}*/L{N}FI*

死區

K

用二類指令查詢或三/四類指令串修改,無小數點。

命令為:L{N}K?*,L{N}K#{DATA}*/L{N}KI*

比例帶1

P

用二類指令查詢或三/四類指令串修改,設置范圍0.5%~~999.9%或0.0(ON/OFF 動作),1 位小數點。

命令為:L{N}P?*,L{N}P#{DATA}*/L{N}PI*

比例帶2

U

用二類指令查詢或三/四類指令串修改,設置范圍0.5%~~999.9%或0.0(ON/OFF 動作),1 位小數點。

命令為:L{N}U?*,L{N}U#{DATA}*/L{N}UI*


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM