2.配置S7-300單站系統(tǒng)通過CPU集成PN口作為Client進(jìn)行Modbus TCP通訊
下面以S7-300單站系統(tǒng)及Modbus Slave軟件為例,詳細(xì)介紹如何將S7-300單站系統(tǒng)CPU的集成PN口配置為Client,Modbus Slave作為Server進(jìn)行Modbus TCP通訊。
2.1硬件設(shè)備及軟件
本例中所用的硬件設(shè)備如下表:
名稱 |
數(shù)量 |
訂貨號(hào) |
S7-300電源模塊PS 307 10A |
1 |
6ES7307-1KA02-0AA0 |
S7-300 CPU317-2PN/DP |
1 |
6ES7317-2EK14-0AB0(V3.2) |
網(wǎng)線 |
若干 |
|
筆記本電腦 |
1 |
所用到軟件如下表:
名稱 |
訂貨號(hào) |
STEP7 V16Update3 組態(tài)編程軟件 |
|
Modbus Slave免授權(quán)版本 |
可從網(wǎng)上免費(fèi)獲取 |
2.2 S7-300單站系統(tǒng)與Modbus Slave軟件組態(tài)
打開TIA軟件,新建一個(gè)工程項(xiàng)目文件,命名為“PN_MODBUS TCP Client”,在項(xiàng)目下插入一個(gè)S7-300站,如下圖1所示:
圖1新建S7-300 Station
打開設(shè)備視圖,修改CPU的IP地址,本例中將CPU的PN口IP地址設(shè)為192.168.0.220,如下圖17所示:
圖2設(shè)備視圖中設(shè)置CPU的IP地址
2.3組態(tài)工藝對(duì)象
①選擇添加工藝對(duì)象“Modbus”---"其他"---“MODBUS TCP”---"MB_PN_PARAM"
圖3新增工藝對(duì)象
②設(shè)置“連接設(shè)置”
連接ID:連接引用標(biāo)識(shí)符(范圍1~4095),在之后調(diào)用指令時(shí)會(huì)使用該參數(shù)
連接建立:PLC做MODBUS TCP客戶端,選擇主動(dòng)。
遠(yuǎn)程IP地址:圖中的IP地址(192.168.0.228)為 筆記本電腦的IP地址
本地設(shè)備ID:選擇PLC的設(shè)備類型
本地端口:作為客戶端,可不指定固定端口
伙伴端口:圖中502端口為Modbus Slave的端口號(hào)
圖4組態(tài)工藝對(duì)象
③Modbus 設(shè)置“內(nèi)部”
圖5組態(tài)工藝對(duì)象
③Modbus 設(shè)置“數(shù)據(jù)區(qū)域”
下圖中設(shè)置了4個(gè)Modbus數(shù)據(jù)區(qū)域
圖6組態(tài)工藝對(duì)象
2.4根據(jù)工藝對(duì)象中創(chuàng)建的數(shù)據(jù)區(qū)域添加數(shù)據(jù)塊
根據(jù)步驟3.3工藝對(duì)象中設(shè)置的數(shù)據(jù)區(qū)域,添加四個(gè)數(shù)據(jù)塊,如下圖所示
圖7創(chuàng)建數(shù)據(jù)塊
圖8創(chuàng)建存放MODBUS 線圈數(shù)據(jù)的數(shù)據(jù)塊
圖9創(chuàng)建存放MODBUS 數(shù)字量輸入類型的數(shù)據(jù)塊
圖10創(chuàng)建存放MODBUS 保持寄存器數(shù)據(jù)的數(shù)據(jù)塊
圖11創(chuàng)建存放MODBUS 輸入寄存器據(jù)的數(shù)據(jù)塊
2.5創(chuàng)建具有可用于授權(quán)的注冊(cè)表項(xiàng)的數(shù)據(jù)塊
創(chuàng)建授權(quán)密鑰數(shù)據(jù)塊DB3(名稱REG_KEY),選擇類型為“全局DB”,打開該DB塊,創(chuàng)建變量“REG_KEY”,數(shù)據(jù)類型為“String[17]”,如圖所示:
圖12創(chuàng)建存放授權(quán)碼的數(shù)據(jù)塊
授權(quán)密鑰的獲取方法,參考//www.ad.siemens.com.cn/productportal/Prods/published/Comm/Comm_9.4/Comm_9.4.html
2.6調(diào)用OB121
由于在獲取授權(quán)密鑰前,“MODBUSPN”指令是無授權(quán)狀態(tài),會(huì)使CPU報(bào)錯(cuò)而停機(jī)。而為了讀取CPU 的“IDENT_CODE”碼,需要CPU運(yùn)行起來,則必須添加編程錯(cuò)誤組織塊OB121,如下圖所示:
圖13調(diào)用OB121
2.7調(diào)用通信指令
調(diào)用MODBUS TCP指令(通信---其他---MODBUS_TCP---MODBUSPN),填寫參數(shù)。
為了在通信故障時(shí)查找原因,編寫程序段2捕獲錯(cuò)誤代碼。
圖14調(diào)用“MODBUSPN”指令
2.8初始化指令
創(chuàng)建啟動(dòng)組織塊OB100(名稱COMPLETE RESTART),語言為“STL”,打開該OB塊,置位初始化位輸入管腳寄存器,如圖所示:
圖15初始化“MODBUSPN”指令
2.9通信測(cè)試
示例1:客戶端讀取服務(wù)器【 數(shù)字量輸入】,偏移量3,長度為2的數(shù)據(jù)
圖16通信測(cè)試示例
示例2:客戶端讀取服務(wù)器【輸入寄存器】,偏移量0,長度為3的數(shù)據(jù)
圖17通信測(cè)試示例
示例3:客戶端讀取服務(wù)器【線圈寄存器】,偏移量0,長度為8的數(shù)據(jù)
圖18通信測(cè)試示例
示例4:客戶端讀取服務(wù)器【保持寄存器】,偏移量0,長度為3的數(shù)據(jù)
圖19通信測(cè)試示例
示例5:客戶端寫入數(shù)據(jù)到服務(wù)器【保持寄存器】,偏移量5,長度為5的數(shù)據(jù)
圖20通信測(cè)試示例
示例6:客戶端寫入數(shù)據(jù)到服務(wù)器【線圈寄存器】,偏移量0,長度為8的數(shù)據(jù)
圖21通信測(cè)試示例
3.配置S7-300單站系統(tǒng)通過CPU集成PN口作為Server進(jìn)行Modbus TCP通訊
下面以S7-300單站系統(tǒng)及ModScan32軟件為例,詳細(xì)介紹如何將S7-300單站系統(tǒng)CPU的集成PN口配置為Server,ModScan32作為Client進(jìn)行Modbus TCP通訊。
3.1例子中使用的硬件設(shè)備及軟件
本例中所用的硬件設(shè)備如下表:
名稱 |
數(shù)量 |
訂貨號(hào) |
S7-300電源模塊PS 307 10A |
1 |
6ES7307-1KA02-0AA0 |
S7-300 CPU317-2PN/DP |
1 |
6ES7317-2EK14-0AB0(V3.2) |
網(wǎng)線 |
若干 |
|
筆記本電腦 |
1 |
所用到軟件如下表:
名稱 |
訂貨號(hào) |
STEP7 V16Update3 組態(tài)編程軟件 |
|
ModScan32免授權(quán)版本 |
可從網(wǎng)上免費(fèi)獲取 |
3.2 S7-300單站系統(tǒng)與ModScan32軟件組態(tài)
打開TIA軟件,新建一個(gè)工程項(xiàng)目文件,命名為“PN_MODBUS TCP Server”,在項(xiàng)目下插入一個(gè)S7-300站,如下圖所示:
圖22新建S7-300 Station
打開設(shè)備視圖,修改CPU的IP地址,本例中將CPU的PN口IP地址設(shè)為192.168.0.220,如下圖17所示:
圖23設(shè)備視圖中設(shè)置CPU的IP地址
3.3組態(tài)工藝對(duì)象
①新增工藝對(duì)象,選擇“Modbus”---"其他"---“MODBUS_TCP”---"MB_PN_PARAM"
圖24新增工藝對(duì)象
②設(shè)置“連接設(shè)置”
連接ID:連接引用標(biāo)識(shí)符(范圍1~4095),在之后調(diào)用指令時(shí)會(huì)使用該參數(shù)
連接建立:PLC做MODBUS TCP服務(wù)器,選擇被動(dòng)。
遠(yuǎn)程IP地址:可以指定或者不指定連接伙伴的IP地址。
本地設(shè)備ID:選擇PLC的設(shè)備類型
本地端口:指定固定端口
伙伴端口:可不指定
圖25組態(tài)工藝對(duì)象
③Modbus 設(shè)置“內(nèi)部”
圖26組態(tài)工藝對(duì)象
④Modbus 設(shè)置“數(shù)據(jù)區(qū)域”
下圖中設(shè)置了4個(gè)Modbus數(shù)據(jù)區(qū)域
圖27組態(tài)工藝對(duì)象
3.4根據(jù)工藝對(duì)象中創(chuàng)建的數(shù)據(jù)區(qū)域添加數(shù)據(jù)塊
根據(jù)步驟3.3工藝對(duì)象中設(shè)置的數(shù)據(jù)區(qū)域,添加四個(gè)數(shù)據(jù)塊,如下圖所示
圖28創(chuàng)建數(shù)據(jù)塊
圖29創(chuàng)建存放MODBUS 線圈數(shù)據(jù)的數(shù)據(jù)塊
圖30創(chuàng)建存放MODBUS 數(shù)字量輸入類型的數(shù)據(jù)塊
圖31創(chuàng)建存放MODBUS 保持寄存器數(shù)據(jù)的數(shù)據(jù)塊
圖32創(chuàng)建存放MODBUS 輸入寄存器據(jù)的數(shù)據(jù)塊
3.5創(chuàng)建具有可用于授權(quán)的注冊(cè)表項(xiàng)的數(shù)據(jù)塊
創(chuàng)建授權(quán)密鑰數(shù)據(jù)塊DB3(名稱REG_KEY),選擇類型為“全局DB”,打開該DB塊,創(chuàng)建變量“REG_KEY”,數(shù)據(jù)類型為“String[17]”,如圖所示:
圖33創(chuàng)建存放授權(quán)碼的數(shù)據(jù)塊
授權(quán)密鑰的獲取方法,參考//www.ad.siemens.com.cn/productportal/Prods/published/Comm/Comm_9.4/Comm_9.4.html
3.6調(diào)用OB121
由于在獲取授權(quán)密鑰前,“MODBUSPN”指令是無授權(quán)狀態(tài),會(huì)使CPU報(bào)錯(cuò)而停機(jī)。而為了讀取CPU 的“IDENT_CODE”碼,需要CPU運(yùn)行起來,則必須添加編程錯(cuò)誤組織塊OB121,如下圖所示:
圖34OB121
3.7調(diào)用通信指令
調(diào)用MODBUS TCP指令(通信---其他---MODBUS_TCP---MODBUSPN),填寫參數(shù)。
為了在通信故障時(shí)查找原因,編寫程序段2捕獲錯(cuò)誤代碼。
圖35調(diào)用“MODBUSPN”指令
3.8初始化指令
創(chuàng)建啟動(dòng)組織塊OB100(名稱COMPLETE RESTART),語言為“STL”,打開該OB塊,置位初始化位輸入管腳寄存器,如下圖所示:
圖36初始化“MODBUSPN”指令
3.9建立和客戶端的連接
按照如下設(shè)置,使能服務(wù)器端,并使用ModScan32建立連接
圖37建立和客戶端的連接
3.9通信測(cè)試
示例1:客戶端讀寫服務(wù)器【 線圈寄存器 】,偏移量0,長度為10的數(shù)據(jù)
圖38通信測(cè)試示例
示例2:客戶端讀取服務(wù)器【 數(shù)字量輸入寄存器 】,偏移量0,長度為10的數(shù)據(jù)
圖39通信測(cè)試示例
示例3:客戶端讀寫服務(wù)器【 保持寄存器 】,偏移量0,長度為10的數(shù)據(jù)
圖40通信測(cè)試示例
示例4:客戶端讀取服務(wù)器【 模擬量輸入寄存器 】,偏移量0,長度為10的數(shù)據(jù)
圖41通信測(cè)試示例
審核編輯 :李倩
-
TCP
+關(guān)注
關(guān)注
8文章
1374瀏覽量
79157 -
S7-300
+關(guān)注
關(guān)注
8文章
225瀏覽量
34339
原文標(biāo)題:S7-300/400集成PN口 MODBUS TCP 通訊(TIA)
文章出處:【微信號(hào):gh_a8b121171b08,微信公眾號(hào):機(jī)器人及PLC自動(dòng)化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論