萍鄉(xiāng)西門(mén)子6ES7232-4HB32-0XB0集成商
S7-1200 的Modbus/TCP 的功能塊庫(kù)軟件包( STPE7 V10.5版本),可以從西門(mén)子的技術(shù)支持網(wǎng)站免費(fèi)獲
取,連接如下:
40614428
自 STEP7 V11 版本以后,Modbus/TCP 的功能庫(kù)已經(jīng)集成在軟件內(nèi),不需要用戶安裝。
當(dāng)使用該功能塊庫(kù)軟件包時(shí)需要注意其版本與CPU 的固件版本之間的兼容性,其兼容性列
表如下:
注: X -兼容
- -不兼容
SIEMENS 創(chuàng)新工業(yè),知其道,用其妙!
上海斌勤電氣技術(shù)有限公司 致力于工業(yè)自動(dòng)化控制領(lǐng)域的產(chǎn)品開(kāi)發(fā)、工程配套和系統(tǒng)集成、銷售、并擁有豐富的自動(dòng)化產(chǎn)品控制應(yīng)用技術(shù),更是可靠、有實(shí)力、值得您放心選擇的供應(yīng)商!
公司精神:做德品高尚的人 做銳意進(jìn)取的人 做思致獨(dú)道的人
公司目標(biāo):做西門(mén)子自動(dòng)化控制領(lǐng)域的專業(yè)提供商
上海斌勤電氣技術(shù)有限公司(西門(mén)子合作伙伴)
聯(lián)系人 :康 奎(業(yè)務(wù)經(jīng)理)發(fā)布(聯(lián)系我有優(yōu)惠福利哦)
地 址:上海市松江區(qū)三新北路1800弄(松江商務(wù)電子園區(qū))24號(hào)樓5005室
本公司優(yōu)勢(shì)產(chǎn)品:西門(mén)子6ES7-200/300/400/1200/6EP/
6AV/6GK/ET200/6SE變頻器/電纜/DP接頭/觸摸屏/變頻器/數(shù)控伺服備件
希殿公司優(yōu)勢(shì)產(chǎn)品; PLC 、觸摸屏、變頻器、電纜及通訊卡、數(shù)控系統(tǒng)
Modbus TCP是標(biāo)準(zhǔn)的網(wǎng)絡(luò)通信協(xié)議,通過(guò)CPU上PN接口進(jìn)行TCP/IP通信,不需要額外的通信硬件模塊,Modbus TCP使用開(kāi)放式用戶通信連接作為Modbus通信路徑,所支持的混合客戶機(jī)和服務(wù)器連接數(shù)最大為CPU所允許的最大開(kāi)放式用戶通信連接數(shù)8個(gè)。
軟件 STEP7 V11 SP1版本開(kāi)始,S7-1200CPU 從Firmware V1.0.2開(kāi)始,不再需要安裝Modbus TCP的庫(kù)文件,可以直接調(diào)用Modbus TCP的庫(kù)指令“MB_CLIENT”和“MB_SERVER”使用實(shí)現(xiàn)Modbus TCP通信功能,如圖1.所示。
圖1. Modbus TCP的庫(kù)指令
1.調(diào)用MB_SERVER通信指令,進(jìn)入 “Program blocks” > “OB1” 主程序中調(diào)用,設(shè)置連接ID、IP端口等參數(shù),如下圖2.所示。
圖2.調(diào)用MB_SERVER通信指令
功能塊參數(shù)意義如下表5.
管腳 | 說(shuō)明 |
DISCONNECT | “MB_SERVER”指令建立與客戶機(jī)的被動(dòng)連接:0-建立與指定IP地址和端口號(hào)的通訊連接,默認(rèn)為0;1-斷開(kāi)通訊連接,在終止連接的過(guò)程中,不執(zhí)行任何其他功能; |
CONNECT_ID | 連接的ID號(hào):每個(gè)連接只有一個(gè)唯一的ID號(hào); |
IP_PORT IP | 端口號(hào)將定義Modbus 客戶機(jī)連接請(qǐng)求中要監(jiān)控的IP端口號(hào),默認(rèn)值:502; |
HB_HOLD_REG | 指向“MB_SERVER”指令的Modbus保持寄存器的指針:保持寄存器可以是全局DB塊或M區(qū),如果是DB塊則需要定義為“標(biāo)準(zhǔn)與S7- 300/400兼容”的類型,如圖11.所示,保持寄存器包含Modbus客戶機(jī)可通過(guò)Modbus功能 FC03(讀取)、FC06(寫(xiě)入)和FC16(讀?。┰L問(wèn)的值; |
NDR | 新數(shù)據(jù)就緒:0-沒(méi)有新數(shù)據(jù);1-從Modbus客戶機(jī)寫(xiě)入新數(shù)據(jù); |
DR | 數(shù)據(jù)讀?。?-沒(méi)有讀取數(shù)據(jù);1-從Modbus客戶機(jī)讀取數(shù)據(jù); |
ERROR | 錯(cuò)誤位:0-無(wú)錯(cuò)誤;1-出現(xiàn)錯(cuò)誤,錯(cuò)誤原因查看STATUS; |
STATUS | 錯(cuò)誤代碼; |
表1. 功能塊“MB_SERVER”參數(shù)
2.MB_DATA_PTR數(shù)據(jù)塊的新建
通過(guò)“Program blocks”>“Add new block”,選擇“Data block”創(chuàng)建 DB 塊,選擇“標(biāo)準(zhǔn)與S7- 300/400兼容” ,點(diǎn)擊“OK”鍵,定義數(shù)據(jù)區(qū)為100個(gè)字的數(shù)組,如圖3.所示。
圖3.新建MB_DATA_PTR數(shù)據(jù)塊
3.Modbus地址的對(duì)應(yīng)關(guān)系
“MB_SERVER”指令允許到達(dá)的Modbus功能(FC01、FC02、FC04、FC05、FC15)直接讀取和寫(xiě)入訪問(wèn)S7-1200CPU的過(guò)程映像輸入/輸出區(qū)(數(shù)據(jù)類型:BOOL和WORD),通過(guò)Modbus功能代碼(FC03、FC06和FC16)將到達(dá)的Modbus消息寫(xiě)入Modbus保持寄存器或從寄存器中讀取(可通過(guò)MB_SERVER指令的參數(shù)“MB_HOLD_REG”指定保持寄存器),保持寄存器的大?。∕B_HOLD_REG參數(shù))必須大于1個(gè)字節(jié),詳細(xì)參考表2.。
Modbus功能 | S7-1200 | ||||
代碼 | 功能 | 數(shù)據(jù)區(qū) | 地址空間 | 數(shù)據(jù)區(qū) | CPU地址 |
FC01 | 讀?。何? | Output | 00001到08192 | 過(guò)程映像輸出 | Q0.0到Q1023.7 |
FC02 | 讀取:位 | Input | 10001到18192 | 過(guò)程映像輸入 | I0.0到I1023.7 |
FC04 | 讀?。鹤? | Input | 30001到30512 | 過(guò)程映像輸入 | IW0到IW1022 |
FC05 | 寫(xiě)入:位 | Output | 00001到08192 | 過(guò)程映像輸出 | Q0.0到Q1023.7 |
FC15 | 寫(xiě)多入:位 | Output | 00001到08192 | 過(guò)程映像輸出 | Q0.0到Q1023.7 |
表2.Modbus地址的對(duì)應(yīng)關(guān)系
4.客戶機(jī)端 Modscan32 軟件設(shè)置
注意:客戶機(jī)采用Modscan32軟件測(cè)試,Modscan32 做 Modbus TCP Client 測(cè)試軟件,是第三方軟件,可以從 internet 網(wǎng)絡(luò)上下載。
將測(cè)試電腦的IP地址設(shè)置成192.168.0.210,打開(kāi)Modscan32 軟件,在Modscan32的“Setup->Data Definition”中設(shè)置功能碼、起始地址、長(zhǎng)度等,如圖4.所示。
圖4.設(shè)置“Data Definition”參數(shù)
在“Connection->connect...”中打開(kāi)連接屬性對(duì)話框,選擇“Remote modbus TCP Server”,設(shè)置服務(wù)器的IP地址,端口號(hào),如圖5.所示。
圖5.設(shè)置連接屬性
注意:用Modsscan32做客戶機(jī)不需要考慮Device ID和服務(wù)器一致的情況,服務(wù)器自動(dòng)響應(yīng)客戶機(jī)的Device ID。
5.通訊測(cè)試
S7-1200作服務(wù)器,客戶機(jī)Modscan32用FC03功能碼讀取服務(wù)器的兩個(gè)字,設(shè)置客戶機(jī)和服務(wù)器的功能、起始地址、端口等參數(shù)相對(duì)應(yīng),具體設(shè)置如圖5.和6.所示,
圖6.S7-1200作服務(wù)器
通訊結(jié)果如下圖7.所示,Modscan32從服務(wù)器讀到數(shù)據(jù)10,20到客戶機(jī)的DB4.DBW0和DB4.DBW2區(qū)域。
圖7.FC03通訊結(jié)果
用功能FC15向服務(wù)器的Q0.0~Q0.7寫(xiě)8位數(shù)據(jù),設(shè)置連接參數(shù),Modscan32設(shè)置結(jié)果如下圖8.所示。
圖8.使用FC15通訊,設(shè)置Modscan32
測(cè)試結(jié)果,服務(wù)器側(cè)直接對(duì)應(yīng)過(guò)程映像輸出區(qū),00001~00008對(duì)應(yīng)Q0.0~Q0.7,如下圖9.所示。
圖9. 使用FC15通訊測(cè)試結(jié)果
6.HR_Start_Offset背景參數(shù)
HR_Start_Offset是類型為字,用于指定Modbus保持寄存器的起始地址,存儲(chǔ)在MB_SERVER背景數(shù)據(jù)塊中,默認(rèn)值是0,可以通過(guò)編程將值寫(xiě)入HR_Start_Offset。以上面FC03功能讀2個(gè)字為例,將HR_Start_Offset的偏移量設(shè)置成2,其他參數(shù)不修改,HR_Start_Offset偏移前后地址對(duì)應(yīng)關(guān)系如下表7,編程調(diào)用和結(jié)果如圖10.和11.所示。
HR_Start_Offset | 地址 | 數(shù)據(jù)1 | 數(shù)據(jù)2 |
0 | Modbus 地址(字) | 40001 | 40002 |
S7-1200地址 | DB4.DBW0 | DB4.DBW2 | |
2 | Modbus 地址(字) | 40003 | 40004 |
S7-1200地址 | DB4.DBW0 | DB4.DBW2 |
表3. HR_Start_Offset偏移前后地址對(duì)應(yīng)關(guān)系
編程調(diào)用如下圖10.所示
圖10.HR_Start_Offset的偏移量設(shè)置
通訊結(jié)果如下圖11.所示
圖11. 通訊結(jié)果
7.MB_SERVER參數(shù)STATUS的查詢參考下面列表4.
STATUS(W#16#) | 發(fā)送到Modbus服務(wù)器的響應(yīng)代碼(B#16#) | 錯(cuò)誤說(shuō)明 |
7001 | MB_SERVER 正在等待Modbus客戶機(jī)連接到指定的TCP端口,僅在第一次執(zhí)行連接或斷開(kāi)操作時(shí)才報(bào)告此代碼 | |
7002 | MB_SERVER 正在等待Modbus客戶機(jī)連接到指定的TCP端口,等待連接或斷開(kāi)操作完成時(shí),將針對(duì)任何后續(xù)執(zhí)行報(bào)告此代碼 | |
7003 | 斷開(kāi)操作已成功完成(僅在一個(gè)PLC掃描周期內(nèi)有效) | |
8187 | 參數(shù)MB_HOLD_REG中的指針無(wú)效,數(shù)據(jù)區(qū)過(guò)小 | |
818C | 參數(shù)MB_HOLD_REG指向優(yōu)化的區(qū)域(必須為“標(biāo)準(zhǔn)與S7- 300/400兼容”的DB或M區(qū))或因執(zhí)行超時(shí)出錯(cuò)(55秒) | |
8381 | 01 | 不支持此功能代碼 |
8382 | 03 | 數(shù)據(jù)長(zhǎng)度錯(cuò)誤 |
8383 | 02 | 數(shù)據(jù)地址錯(cuò)誤或訪問(wèn)了保持寄存器(MB_HOLD_REG參數(shù))地址以外的區(qū)域 |
8384 | 03 | 數(shù)據(jù)值錯(cuò)誤 |
8385 | 03 | 不支持此數(shù)據(jù)診斷代碼值(功能FC08) |
表4.MB_SERVER參數(shù)STATUS
除了上面列出的錯(cuò)誤外,也可以從底層傳輸通信指令(TCON、TDISCON、TSEND和TRCV)返回錯(cuò)誤,參考相應(yīng)指令的錯(cuò)誤代碼。
說(shuō)明:Modbus Slave做 Modbus TCP server 測(cè)試軟件,Modscan32 做 Modbus TCP Client 測(cè)試軟件,兩者都是第三方軟件,可以從 internet 網(wǎng)絡(luò)上下載
萍鄉(xiāng)西門(mén)子6ES7232-4HB32-0XB0集成商