S7-1200的網口實現IO擴展方法(modbus tcp客戶端編程)

作(zuò)者:管理(lǐ)員 點擊:16483次 發布時間:2022-11-03

1. 網絡拓撲圖

客戶端CPU 1211C

軟件:Portal V16

服務(wù)器:ZM14-8RTD-11(網口型8路三線(xiàn)熱電(diàn)阻溫度采集器)

 

圖片1.png

2. 新(xīn)建工(gōng)程,硬件設置

添加新(xīn)設備

圖片2.png

設置PLCIP地址,子網在此應用(yòng)上可(kě)以不用(yòng)添加。

圖片3.png


系統和時鍾存儲器勾選,地位我們分(fēn)别定義在MB50MB51,後面編程會用(yòng)到。

圖片4.png

3. MB_Client指令使用(yòng)方法

先去了解MB_Client指令使用(yòng)方法,這裏就不再介紹其用(yòng)法了。

圖片5.png

4. 添加必用(yòng)的全局數據區(qū)

添加2個數據區(qū):1個用(yòng)于MB_Client指令CONNECT指針指向的數據區(qū)(在此為(wèi)了區(qū)分(fēn)命名(míng)為(wèi)MB_TCP連接數據區(qū)_1),1個用(yòng)于客戶端與服務(wù)器的數據收發區(qū)域。

圖片6.png

3.1 建立TCON_IP_v4系統數據并初始化參數

MB_TCP連接數據區(qū)_1”裏面建立一個TCON_IP_v4,這個是系統數據類型,不是用(yòng)戶數據類型,所以需要自己輸入,也可(kě)以COPY進去。

圖片7.png

上圖上我們初始值鍵入interfaceld 64(16#40),需要與PN口硬件号一緻。圖片18.png

ID号根據需求填寫,每使用(yòng)1MB_Client指令,ID号需要不一樣,ConnectionType保持默認16#0BActiveEstablished初始化必須為(wèi)1,否則啓用(yòng)時會出錯,填寫需要訪問的服務(wù)器IP192.168.0.200,遠(yuǎn)程端口号502,本地端口号0

3.2 在交換數據區(qū)建立對應的變量

圖片8.png

ZM14-8RTD-118路三線(xiàn)制PT100熱電(diàn)阻溫度采集模塊,溫度範圍-100~600℃,顯示-1000~6000的數據,所以我們需要建立8個有(yǒu)符号整型數據,變量名(míng)AI,數據類型Array[0..7]of Int8個有(yǒu)符号整形數據。

5. 建立客戶端訪問單個服務(wù)器程序段

4.1. 調用(yòng)MB_Client指令

圖片9.png

4.2. 背景區(qū)

自動生成數據背景區(qū)DB1即可(kě),也可(kě)自定義其它号的DB

4.3. REQDISCONNETMB_MODEMB_DATA_ADDRMB_DATA_LEN的使用(yòng)

這裏使用(yòng)系統時鍾指令M51.010HZ100mS一個上升沿來觸發REQDISCONNET需要設置為(wèi)FALSE,功能(néng)碼、地址 、長(cháng)度根據ZM14-8RTD的相關參數設置,具(jù)體(tǐ)參考下表

PLC地址

Modbus地址

數據類容

功能(néng)碼 16#

長(cháng)度(INT

30001

0X 00

1 熱電(diàn)阻溫度×10

04(讀)

1

30002

0X 01

2 熱電(diàn)阻溫度×10

04(讀)

1

30003

0X 02

3 熱電(diàn)阻溫度×10

04(讀)

1

……

……

……

……

……

30008

0X 07

8 熱電(diàn)阻溫度×10

04(讀)

1

我們使用(yòng)功能(néng)号104,地址0,數據長(cháng)度8

圖片10.png

4.4. MB_DATA_PTR的使用(yòng)

MB_DATA_PTR指向上面已建立的數據收發區(qū),注意:指針不要指向具(jù)體(tǐ)的一個變量,比如變量AI[0],如果這樣會造成MB_Client通訊狀态的ERROR标志(zhì)置1STATUS狀态代碼16#8383。應該需要指向AI變量的地址指針,而不是數據首地址,如下圖,應選擇無。

圖片11.png

選擇“無”後顯示下圖

圖片12.png

若數據交換區(qū)建立的數據變量隻建立了一個數組變量,指針也可(kě)以指向DB區(qū)的首地址指針,如下圖

圖片13.png

選擇“無”後顯示為(wèi)下圖

圖片14.png

4.5. CONNECT的使用(yòng)

圖片15.png

CONNECT指向建立的系統數據區(qū)的首地址即可(kě),同MB_DATA_PTR的使用(yòng)一樣,也不要指向内部具(jù)體(tǐ)的一個數據地址,選“無”即可(kě)。

4.6. DONEBUSYERRORSTATUS

這幾個是MB_Client指令的輸出狀态,在監視狀态可(kě)查看其值來判斷有(yǒu)沒有(yǒu)錯誤信息,對編程很(hěn)有(yǒu)幫助。

6. MB_Client背景數據區(qū)參數設置

其中(zhōng)的MB_UNIT_ID的設置尤為(wèi)重要,西門子默認是16#FF,但實際運用(yòng)中(zhōng)會根據作(zuò)為(wèi)服務(wù)器的擴展IO模塊的實際通訊站地址來設置。

ZM14-8RTD-11,通訊站地址為(wèi)01即撥碼開關前7位設置為(wèi)“1000000”,則MB_UNIT_ID需要初始化設置成01

圖片16.png

也可(kě)将撥碼開關前7位都撥到OFF狀态“0000000”,即通訊站地址16#FF,這裏的MB_UNIT_ID就可(kě)以不需要改變了。

7. 編譯、下載、查看狀态

編譯組态及程序,然後下載。

在監視狀态下查看DONEBUSYERRORSTATUS狀态,DONEBUSY的狀态是TRUEFALSE之間變換,而ERROR的狀态沒有(yǒu)TRUESTATUS狀态輸出字是16#700470057006來回變化,證明通訊成功。

圖片17.png

不足的是我們用(yòng)的系統時鍾指令M51.0,定時100mS來觸發REQ的,因為(wèi)這種觸發沒有(yǒu)在乎主、從通訊是否已經完成,隻要100mS時間段一到就會觸發下一條指令,這個隻适用(yòng)于單個服務(wù)器的使用(yòng)。

PLC實現多(duō)個模塊擴展的方法請聯系我司15983845957微信同号!!!


德(dé)陽旭捷科(kē)技(jì )有(yǒu)限公(gōng)司