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