一、西門子S7-200 SMART PLC的MODBUS TCP通訊參數(shù)
S7-200 SMART 支持做 Modbus TCP 的客戶端或者服務(wù)器,可以實(shí)現(xiàn) PLC 之間通信,也可以實(shí)現(xiàn)與支持此通信協(xié)議的第三方設(shè)備通信。通信伙伴數(shù)量比較多的時(shí)候,可以使用交換機(jī),擴(kuò)展以太網(wǎng)接口。
V2.4以下版本的SMART需要手動(dòng)安裝MODBUS TCP庫,從V2.4開始軟件集成了該庫。STEP 7-MicroWIN SMART的庫
Connect,BOOL,=1:服務(wù)器接受來自客戶端的請(qǐng)求;=0:服務(wù)器可以斷開已經(jīng)建立的連接
IP_Port,WORD,服務(wù)器本地端口號(hào)
MaxIQ,WORD,對(duì)應(yīng)數(shù)字量輸入/輸出點(diǎn)(對(duì)應(yīng)Modbus 地址參數(shù)0xxxx或者1xxxx)
可設(shè)置范圍:0-256,=0表示禁用對(duì)輸入和輸出的所有讀取和寫入。建議將 MaxIQ 值設(shè)置為 256。
MaxAI,WORD,對(duì)應(yīng)模擬量輸入?yún)?shù)(對(duì)應(yīng)Modbus 地址參數(shù) 3xxxx)可設(shè)置范圍:0-56。= 0表示禁用對(duì)模擬量輸入的讀取。要允許訪問所有 CPU 模擬量輸入,MaxAI 的建議值如下:對(duì)于 CPU CR40 和 CR60,為 0,對(duì)于所有其它 CPU 型號(hào),為 56
MaxHold,WORD,用于 Modbus 地址 4xxxx 或 4yyyyy 的 V 存儲(chǔ)器中的字保持寄存器數(shù)。
HoldStart,Dword,指向 V 存儲(chǔ)器中保持寄存器起始位置的指針
Done,BOOL,TRUE:以下任一條件時(shí)為真:客戶端已與服務(wù)器建立連接;客戶端已與服務(wù)器斷開連接;客戶端已接收 Modbus 響應(yīng);發(fā)生錯(cuò)誤FALSE:客戶端正忙于建立連接或等待來自服務(wù)器的 Modbus 響應(yīng)。
Error,BOOL,出現(xiàn)錯(cuò)誤,僅一個(gè)周期有效
MBUS_CLIENT客戶端,最多調(diào)用8個(gè)。
程序執(zhí)行周期每次掃描都必須調(diào)用 MBUS_CLIENT,直到 Done 輸出為 TRUE。在每個(gè)周期中,MBUS_CLIENT 均會(huì)退出,以便程序可以繼續(xù)運(yùn)行?蛻舳送瓿烧(qǐng)求時(shí),MBUS_CLIENT 將 Done 設(shè)置為 TRUE。
REQ,位,=0無通信請(qǐng)求,=1向服務(wù)器請(qǐng)求通信
CONNECT,位,=1:嘗試與分配的IP地址及端口號(hào)建立連接;=0:嘗試斷開已經(jīng)建立的連接,忽略Req的任何請(qǐng)求
IP_OCTET_1-4,字節(jié),要通信的服務(wù)器的IP地址
IP_PORT,字,默認(rèn)值502,服務(wù)器的IP端口號(hào)
RW,字節(jié),模式選擇,=0讀,=1寫
ADDR,雙字,要進(jìn)行讀寫的參數(shù)的 Modbus 起始地址
COUNT,字,數(shù)據(jù)長(zhǎng)度,數(shù)據(jù)訪問的位數(shù)或字?jǐn)?shù)。數(shù)字量輸入/輸出Count=1表示1 bit,最大1920位,對(duì)于模擬量輸入和保持寄存器,最大 Count 值為 120 字。
DATAPTR,指針,數(shù)據(jù)寄存器地址指針,指向本地用于讀/寫操作的數(shù)據(jù)地址區(qū)域的首地址DONE,位,請(qǐng)求已經(jīng)完成且沒有出錯(cuò)后,DONE位保持TRUE一個(gè)掃描周期的時(shí)間
BUSY,位,=1操作正在進(jìn)行
ERROR,位,錯(cuò)誤,保持為TRUE一個(gè)掃描周期的時(shí)間
STATUS,字,狀態(tài),用于輸出錯(cuò)誤代碼
S7-200 SMART 做 Modbus TCP 通信,可以支持的功能碼及功能描述及所占用的地址區(qū),如表4.所示?蛻舳藭(huì)主動(dòng)的發(fā)送請(qǐng)求,服務(wù)器響應(yīng)。在通信指令填寫參數(shù)中沒有直接填寫功能碼,而是通過多個(gè)參數(shù)填寫共同確定功能碼的。
表4.功能碼概況說明
舉例:和Modbus TCP服務(wù)器交換數(shù)據(jù)參數(shù)支持功能碼:03,在客戶端指令中設(shè)置兩個(gè)參數(shù)確定03功能碼:
RW=0:確定讀取數(shù)據(jù),(篩選出可能會(huì)使用的功能碼:01,02,03,04),
Addr:40001-49999/400001-465535,表示交換數(shù)據(jù)為寄存器類型的數(shù)據(jù)。
二、200SMART的服務(wù)器端設(shè)置
1、系統(tǒng)塊中設(shè)置服務(wù)器的IP地址,以確保IP地址設(shè)置無誤。此步驟為可選,如果確定IP地址設(shè)置無誤,可忽略此步驟。設(shè)置方法如圖所示。
2、鼠標(biāo)點(diǎn)擊 MAIN 主程序的程序段1的編程區(qū)域,從庫文件夾下找到 Modbus TCP 服務(wù)器指令 MBUS_SERVER,鼠標(biāo)雙擊,指令出現(xiàn)在程序段1中,操作如圖所示。
4、鼠標(biāo)選中程序塊文件夾,單擊右鍵,下拉菜單中選擇庫存儲(chǔ)器,如圖所示。
5、在庫存儲(chǔ)區(qū)分配對(duì)話框中手動(dòng)輸入存儲(chǔ)區(qū)的起始地址。此實(shí)例為VB5000開始,以使指令庫可以正常工作。確保庫存儲(chǔ)區(qū)與程序中其他已使用的地址不沖突。使用建議地址無法確定是否有地址重疊,所以推薦手動(dòng)輸入正確的庫存儲(chǔ)區(qū)首地址。如圖所示。
通信測(cè)試結(jié)果
由于客戶端要讀取服務(wù)器的數(shù)據(jù),在狀態(tài)圖表中修改當(dāng)前值,如圖所示
1、系統(tǒng)塊中設(shè)置客戶端的IP地址。設(shè)置方法如圖所示。
2、鼠標(biāo)點(diǎn)擊 MAIN 主程序的程序段1的編程區(qū)域,從庫文件夾下找到 Modbus TCP 客戶端指令 MBUS_CLIENT,鼠標(biāo)雙擊,指令出現(xiàn)在程序段1中,操作如圖3.所示。
4、鼠標(biāo)選中程序塊文件夾,單擊右鍵,下拉菜單中選擇庫存儲(chǔ)器,如下圖所示。
5、在庫存儲(chǔ)區(qū)分配對(duì)話框中手動(dòng)輸入存儲(chǔ)區(qū)的起始地址。此實(shí)例為VB5000開始,以使指令庫可以正常工作。確保庫存儲(chǔ)區(qū)與程序中其他已使用的地址不沖突。使用建議地址無法確定是否有地址重疊,所以推薦手動(dòng)輸入正確的庫存儲(chǔ)區(qū)首地址。如下圖所示。
將M0.0置位為1,然后在狀態(tài)圖表中創(chuàng)建變量,VW20-VW30 共6個(gè)字,監(jiān)視值如圖7.所示。