西門子PLC S7-200 SMART Modbus TCP 服務(wù)器指令
S7-200 SMART Modbus TCP 服務(wù)器指令
STEP7-Micro/WIN SMART 從V2.4 版本開始,軟件中直接集成 Modbus TCP 庫(kù)指令,無(wú)需單獨(dú)安裝或者購(gòu)買。安裝軟件后,Modbus TCP 指令位于 STEP7-Micro/WIN SMART 項(xiàng)目樹中“指令”文件夾的“庫(kù)”文件夾中。如圖1.Modbus TCP庫(kù)指令所示。
指令分為客戶端和服務(wù)器兩種,目前指令版本為 V1.0??蛻舳酥噶顣?huì)占用開放式用戶通信資源主動(dòng)連接,最多8個(gè);服務(wù)器指令會(huì)占用開放式用戶通信資源的被動(dòng)連接資源,最多也是8個(gè)。
圖1.Modbus TCP庫(kù)指令
實(shí)驗(yàn)環(huán)境及通信任務(wù)
下面以兩臺(tái)S7-200 SMART 之間進(jìn)行Modbus TCP 通信為例,詳細(xì)闡述客戶端與服務(wù)器側(cè)如何編程及通信的過(guò)程。具體的實(shí)驗(yàn)環(huán)境見表1.;通信任務(wù)見表2:
表1.實(shí)驗(yàn)環(huán)境
操作系統(tǒng) | WIN7 SP1 專業(yè)版 64位 |
---|---|
編程軟件 | STEP7-Micro/WIN SMART V2.4版本 |
硬件 | SR60:6ES7288-1SR60-0AA0 固件:V2.4 版本 ST20:6ES7288-1ST20-0AA0 固件:V2.4版本 交換機(jī):CSM 127 6GK7 277-1AA10-0AA0 |
表2.通信任務(wù)
硬件 | 通信角色 | IP地址 | 端口號(hào) | 讀/寫 | 數(shù)據(jù)區(qū)域 |
---|---|---|---|---|---|
SR60 | 客戶端 | 192.168.0.60 | 0 | 讀 | VB20-VB31 |
ST20 | 服務(wù)器 | 192.168.0.20 | 502 | 響應(yīng) | VB0-VB11 |
服務(wù)器側(cè)指令編程
1、系統(tǒng)塊中設(shè)置服務(wù)器的IP地址,以確保IP地址設(shè)置無(wú)誤。此步驟為可選,如果確定IP地址設(shè)置無(wú)誤,可忽略此步驟。設(shè)置方法如圖2.所示。
圖2.系統(tǒng)塊設(shè)置IP地址
2、鼠標(biāo)點(diǎn)擊 MAIN 主程序的程序段1的編程區(qū)域,從庫(kù)文件夾下找到 Modbus TCP 服務(wù)器指令 MBUS_SERVER,鼠標(biāo)雙擊,指令出現(xiàn)在程序段1中,操作如圖3.所示。
圖3.添加服務(wù)器指令
3、填寫服務(wù)器指令參數(shù),如圖4.所示。
圖4.填寫服務(wù)器參數(shù)
參數(shù)及類型 | 數(shù)據(jù)類型 | 說(shuō)明 | |
---|---|---|---|
Connect | IN | BOOL | =1:服務(wù)器接受來(lái)自客戶端的請(qǐng)求;=0:服務(wù)器可以斷開已經(jīng)建立的連接 |
IP_Port | IN | WORD | 服務(wù)器本地端口號(hào) |
MaxIQ | IN | WORD | 對(duì)應(yīng)數(shù)字量輸入/輸出點(diǎn)(對(duì)應(yīng)Modbus 地址參數(shù)0xxxx或者1xxxx) 可設(shè)置范圍:0-256, =0表示禁用對(duì)輸入和輸出的所有讀取和寫入。 建議將 MaxIQ 值設(shè)置為 256。 |
MaxAI | IN | WORD | 對(duì)應(yīng)模擬量輸入?yún)?shù)(對(duì)應(yīng)Modbus 地址參數(shù) 3xxxx) 可設(shè)置范圍:0-56。 = 0表示禁用對(duì)模擬量輸入的讀取。 要允許訪問所有 CPU 模擬量輸入,MaxAI 的建議值如下:
|
MaxHold | IN | WORD | 用于 Modbus 地址 4xxxx 或 4yyyyy 的 V 存儲(chǔ)器中的字保持寄存器數(shù)。 |
HoldStart | IN | Dword | 指向 V 存儲(chǔ)器中保持寄存器起始位置的指針 |
Done | OUT | BOOL | TRUE:以下任一條件時(shí)為真:客戶端已與服務(wù)器建立連接;客戶端已與服務(wù)器斷開連接;客戶端已接收 Modbus 響應(yīng);發(fā)生錯(cuò)誤 FALSE:客戶端正忙于建立連接或等待來(lái)自服務(wù)器的 Modbus 響應(yīng)。 |
Error | OUT | BOOL | 出現(xiàn)錯(cuò)誤,僅一個(gè)周期有效 |
4、鼠標(biāo)選中程序塊文件夾,單擊右鍵,下拉菜單中選擇庫(kù)存儲(chǔ)器,如圖5.所示。
圖5.點(diǎn)擊庫(kù)存儲(chǔ)器
5、在庫(kù)存儲(chǔ)區(qū)分配對(duì)話框中手動(dòng)輸入存儲(chǔ)區(qū)的起始地址。此實(shí)例為VB5000開始,以使指令庫(kù)可以正常工作。確保庫(kù)存儲(chǔ)區(qū)與程序中其他已使用的地址不沖突。使用建議地址無(wú)法確定是否有地址重疊,所以推薦手動(dòng)輸入正確的庫(kù)存儲(chǔ)區(qū)首地址。如圖6.所示。
圖6.庫(kù)存儲(chǔ)區(qū)地址分配
6、編譯項(xiàng)目,下載程序。
通信測(cè)試結(jié)果
由于客戶端要讀取服務(wù)器的數(shù)據(jù),在狀態(tài)圖表中修改當(dāng)前值,如圖7.所示
圖7.狀態(tài)圖表賦值