上海贊國公司在經營活動中精益求精,具備如下業務優勢:
可編程控制器
1、 SIMATIC S7 系列PLC:S7-200、S7-1200、S7-300、S7-400、ET-200
2、 邏輯控制模塊 LOGO!230RC、230RCO、230RCL、24RC、24RCL等
3、 SITOP直流電源 24V DC1.3A、2.5A、3A、5A、10A、20A、40A可并聯.
4、HMI 觸摸屏TD200 TD400CK-TP OP177 TP177,MP277 MP377,
交、直流傳動裝置
1、 交流變頻器 MICROMASTER系列:MM420、MM430、MM440、G110、G120.
MIDASTER系列:MDV
2、全數字直流調速裝置 6RA23、6RA24、6RA28、6RA70、6SE70系列
SIEMENS 數控 伺服
SINUMERIK:801、802S 、802D、802D SL、810D、840D、611U、S120
系統及伺報電機,力矩電機,直線電機,伺服驅動等備件銷售。
一、 硬件組態
首先搭建一套測試設備,設備的結構圖如下:
2套S7-300系統由PS307電源、CPU314C-2DP、CPU314C-2PTP、CP343-1、CP343-1 IT、PC、CP5611、STEP7組成,PLC系統概貌如下圖:
如下將向您一步一步展示如何實現2套S7-300之間的以太網通訊:
第一步:打開SIMATIC Manager,根據我們系統的硬件組成,進行系統的硬件組態,如圖:
插入2個S7300的站,進行硬件組態:
分別組態2個系統的硬件模塊:
設置CP343-1、CP343-IT模塊的參數,建立一個以太網,MPI、IP地址:
二、 網絡組態
組態完2套系統的硬件模塊后,分別進行下載,然后點擊Network Configration按鈕,打開系統的網絡組態窗口NetPro,選中CPU314,如下圖:
在窗口的左下部分點擊鼠標右鍵,插入一個新的網絡鏈接,并設定鏈接類型為ISO-on-TCP connection 或 TCP connection或 UDP connection 或 ISO Transport connection,如下圖:
點擊OK后,彈出鏈接屬性窗口,使用該窗口的默認值,并根據該對話框右側信息進行后面程序的塊參數設定:
當2套系統之間的鏈接建立完成后,用鼠標選中圖標中的CPU,分別進行下載,這里略去CPU314C-2DP的下載圖示:
三、 程序編程
到此為止,系統的硬件組態和網絡配置已經完成。下面進行系統的軟件編制,在SIMATIC Manager界面中,分別在CPU314C-2PTP、CPU314C-2DP中插入OB35定時中斷程序塊和數據塊DB1,DB2,并在兩個OB35中調用FC5(AG_Send)和FC6(AG_Recv)程序塊,如下圖:
創建DB1、DB2數據塊,如下圖:
2套控制程序已經編制完成,分別下載到CPU當中,將CPU狀態切換至運行狀態,就可以實現S7-300之間的以太網通訊了。
如下界面說明了將CPU314C-2DP 的DB1中的數據發送到CPU314C-2PTP 的DB2中的監視界面:
a. 選擇Data View,切換到數據監視狀態:
b. CPU314C-2DP 的DB1中發送出去的數據:
c. CPU314C-2PTP 的DB2中接收到的數據
關鍵詞:
CP343-1,以太網,S7-300
1. 概述
在現場應用中,很多儀表和設備僅支持Modbus RTU的通訊協議,第三方儀表可以做Modbus主站或從站,西門子的通訊模塊CP341 / CP441-2 通過Dongle(硬件狗)可以擴展該協議,S7-200 集成的口可以支持自由口通訊,通過指令庫也可以方便的實現Modbus RTU通訊。本文以S7-200作為Modbus 主站,CP341作為Modbus 從站,實現Modbus RTU通訊,闡述兩者在通訊方面的設置和注意事項。
2. 軟件環境
2.1 STEP7 V5.4 SP4
用于編寫 S7-300/400程序,此軟件需要從西門子購買,本文檔中的300的程序是使用Step7 V5.4 SP4的軟件編寫。
2.2 CP PTP Param V5.1 SP11
串行通訊模板的驅動程序,安裝此驅動后才能對PtP模板進行參數配置,并在Step7中集成通訊編程需要使用的功能塊。此驅動隨購買模板一起提供,也可以從以下的鏈接下載:27013524
2.3 CP PTP Modbus Slave V3.1 SP7
CP341或CP441-2用于Modbus從站時,需要安裝此驅動協議,但安裝之前必須先安裝PtP Driver,此驅動可以在購買Modbus Dongle時選擇購買,也可以從以下的鏈接下載:27774276
2.4 STEP7 Micro/WIN V4.0 SP6
用于S7-200編程的軟件,本文檔中的200的程序是使用Step7 Micro/win 的軟件編寫。此軟件可以從西門子下載中心免費下載,也可以從以下的鏈接下載。
http://www.ad.siemens.com.cn/download 網站 自動化系統>>S7-200>>軟件,文檔編號S0002。
2.5 Toolbox_V32-STEP 7-Micro WIN 32 Instruction Library
S7-200實現Modbus RTU功能,可以使用Modbus的指令庫,要使用西門子的標準指令庫,必須先安裝指令庫的軟件包 Instruction Library,安裝后,可以在Step 7-Micro/WIN軟件的庫中找到Modbus相關的指令,該軟件包可以從以下的鏈接下載。http://www.ad.siemens.com.cn/download 網站 自動化系統>>S7-200>>軟件,文檔編號S0010。
3. 硬件列表和接線
3.1 硬件列表
S7-300從站
|
CPU315-2DP
|
6ES7 315-2AG10-0AB0
|
CP341 RS422/485
|
6ES7 341-1CH01-0AE0
|
Dongle
|
6ES7 870-1AB01-0YA0
|
PC 適配器(USB)
|
6ES7 972-0CB20-0XA0
|
S7-200主站
|
CPU 224XP
|
6ES7 214-2BD23-0XB0
|
表1 硬件設備
3.2 硬件接線
3.2.1 接口定義
S7-200的通訊口為RS485物理口(9針口),CP341是RS422/485的接口類型(15針口),兩種設備的接口引腳的示意圖如下所示,更詳細的信息可以參考CP341及S7-200通信接口的手冊。

圖1 S7-200 CPU通信口引腳定義

圖2 S7-300 CP341 RS422/485 通訊口引腳定義
3.2.2 接線示意圖

圖3 硬件結構和接線示意圖
4. 組態設置和編程
4.1 S7-200做Modbus主站的設置
S7-200 CPU上的通信口在電氣上是標準的RS-485半雙工串行通信口,此串行字符通信的格式:1個起始位;7/8位數據位;1位奇/偶/無校驗;1停止位。通信波特率可以設置為1200、2400、4800、9600、19200、38400、57600或112500,符合這些格式的串行通訊設備可以和S7-200進行自由口通訊,Modbus RTU指令庫就是使用自由口編程實現的。
4.1.1 Modbus RTU主站庫
使用Modbus 主站指令庫時需要注意的幾點:
-
需要S7-200的編程軟件是 Micro/WIN V4.0 SP5及以上版本;
-
Modbus RTU 主站庫對CPU的版本有要求,CPU 的版本必須為 2.00 或者 2.01(即訂貨號為 6ES721*-***23-0BA*);
-
Modbus主站可讀/寫的最大數據量為120個字(指每一個 MBUS_MSG 指令);
-
Modbus 主站庫支持Port0和Port1(從站庫只支持Port0口),本例中用Port0;
-
使用Modbus 庫時必須對庫存儲區進行分配,見下圖設置,而且分配的空間不能和程序中其它空間沖突,否則編譯調用會報錯。

圖4 庫存儲區設置
-
Modbus主站庫支持的功能碼和地址對應關系:
Modbus 地址
|
讀 / 寫
|
Modbus 從站須支持的功能
|
00001~09999
|
讀
|
功能1:讀輸出點
|
數字量輸出
|
寫
|
功能5:寫單個輸出點
|
|
功能15:寫多個輸出點
|
10001~19999
|
讀
|
功能2:讀輸入點
|
數字量輸入
|
30001~39999
|
讀
|
功能4:讀輸入寄存器
|
輸入寄存器
|
40001~49999
|
讀
|
功能3:讀保持寄存器
|
保持寄存器
|
寫
|
功能6:寫單個寄存器
|
|
功能16:寫多個寄存器
|
表2需要從站支持的功能
4.1.2 S7-200 Modbus主站編程
編程時,使用SM0.0調用MBUS_CTRL完成主站的參數初始化,詳細見下表,參數的說明也可以從子程序的局部變量表中找到。

圖5 Modbus RTU 主站初始化
圖中各參數含義如下
編號
|
符號/含義
|
說 明
|
a
|
EN / 使能
|
必須保證每一掃描周期都被使能(使用SM0.0)。
|
b
|
Mode / 模式
|
為1時使能為Modbus協議;為0時恢復為PPI協議。
|
c
|
Baud / 波特率
|
支持的通訊波特率為1200,2400,4800,9600,19200,38400,57600,115200。
|
d
|
Parity / 校驗
|
校驗方式選擇:0=無校驗;1=奇校驗,2=偶校驗。
|
e
|
Timeout / 超時
|
主站等待從站響應的時間,以毫秒為單位,典型的設置值為 1000毫秒,允許設置的范圍為1-32767。這個值必須設置足夠大以保證從站有時間響應。
|
f
|
Done / 完成位
|
初始化完成,此位會自動置1。
|
g
|
Error / 錯誤位
|
初始化錯誤代碼。
|
表3
調用 Modbus RTU 主站讀寫子程序MBUS_MSG,發送一個Modbus 請求。

圖6 調用Modbus RTU 主站讀寫子程序
圖中各參數含義如下
編號
|
符號/含義
|
說 明
|
a
|
EN / 使能
|
同一時刻只能有一個讀寫功能使能。
|
b
|
First / 讀寫請求位
|
每一個新的讀寫請求必須使用脈沖觸發。
|
c
|
Slave / 從站地址
|
可選擇的范圍1–247。
|
d
|
RW / 讀寫操作位
|
0=讀, 1=寫。
|
e
|
Addr / 讀寫從站的數據地址
|
選擇讀寫的數據類型:
|
00001 至 0xxxx - 開關量輸出
|
10001 至 1xxxx - 開關量輸入
|
30001 至 3xxxx - 模擬量輸入
|
40001 至 4xxxx - 保持寄存器。
|
f
|
Count / 數據的個數
|
通訊的數據個數(位或字的個數)。
|
g
|
DaptPtr / 數據指針
|
如果是讀指令,讀回的數據放到這個數據區中;
|
如果是寫指令,要寫出的數據放到這個數據區中。
|
h
|
Done / 完成位
|
讀寫功能完成位。
|
i
|
Error / 錯誤代碼
|
只有在Done位為1時,錯誤代碼才有效。
|
表4
從上圖中可見,S7-200作為Modbus RTU主站,波特率9.6Kb/s,偶校驗,連接從站的站地址是3,數據存儲區為VB2000開始的區域。
4.2 CP341 做Modbus 從站的硬件組態
4.2.1 硬件組態

圖7 S7-300側硬件組態
4.2.2 設置Modbus參數

圖8 消息楨字符結構
按照上述操作設置參數,從上圖可以看出,本例中的傳輸波特率9.6Kb/s,1位起始位,8位數據位,偶校驗位,1位停止位,從站站地址是3,主從通訊設備的字符幀格式和波特率等參數設置需要一致。

圖9 RS422/485 接口組態
RS422/485接口只能一個有效,接口的選擇只需要組態而不需要在硬件上短接。
4.2.3 Modbus驅動的下載
當配置好Modbus通信的參數后,保存前需要向CP341下載Modbus Slave的驅動,一旦下載完成后無需再次下載。
需要注意的是,在下載驅動時(可以在無Dongle情況下下載),需要將CPU停機,然后下載,操作過程如下所示。

圖10 下載Dongle時,需要CPU停機

圖11 從站驅動下載后結果
4.2.4 CP341做Modbus從站的編程
從Step7 軟件下的EXAMPLE目錄中,找到項目名“zXX21_05_PtP_Com_MODSL”的項目,打開,然后將Modbus通訊模塊FB80傳遞到用戶項目中,打開路徑如下所示。

圖12 Modbus Slave 例程打開路徑
OB1中調用FB80編程如下:

圖13 FB80程序塊調用
CP卡初始化正常后,CP_START,CP_START_FM和CP_START_OK為1信號,否則CP_START_ERROR為1,同時可以從ERROR_NR察看錯誤信息,也可以在硬件組態中在線后的CP341的診斷緩沖區察看詳細的錯誤信息,錯誤信息對照和處理方式可以參考
《S7-300以用于PtP CP Modbus 協議RTU格式S7的可裝載驅動程序為從站》的手冊。
FB80的各參數含義如下
LADDR
|
硬件組態中CP341的起始邏輯地址,本例中為256
|
START_TIMER
|
初始化超時定時器,本例中為T120
|
START_TIME
|
初始化定時器時間,本例中為5S
|
OB_MASK
|
I/O訪問錯誤屏蔽位,本例中為True(I/O訪問錯誤已屏蔽)
|
CP_START
|
FB初始化使能位,本例中為M0.0
|
CP_START_FM
|
CP_START 初始化的上升沿位,本例中為M0.1
|
CP_NDR
|
從CP卡寫操作位,本例中為m0.2
|
CP_START_OK
|
初始化完成且無錯誤,本例中為M0.3
|
CP_START_ERROR
|
初始化完成,但有錯誤,本例中為M0.4
|
ERROR_NR
|
錯誤號,本例中為MW2
|
ERROR_INFO
|
錯誤信息,本例中為MW4
|
表5
5. 通訊測試
Modbus RTU格式通信協議是以主從的方式進行數據傳輸的,在傳輸的過程中主站是主動方,即主站發送數據請求報文到從站,從站返回響應報文。Modbus 系統間的數據交換是通過功能碼來控制的,以下對現場常用的功能碼進行分類測試,關于功能碼的詳細信息請參考手冊。
5.1 FC01/05/15功能碼
CP341從站的通訊區域配置

圖14 FC01/05/15 參數組態界面
FC01、FC05、FC15對應的數據區為位輸出,數據的傳遞以位為單位,可以讀寫操作,用戶地址區為0xxxx,Modbus地址在信息傳遞中從0開始。如上圖,左邊為信息傳遞地址(地址區不能沖突),右邊對應的是S7-300的數據區。例如左邊信息傳遞地址從0 ~ 7對應用戶地址區為00001 ~ 00008,對應S7-300的M10.0 ~ M10.7,并且以此為例說明FC01功能碼的通訊。
S7-200主站程序調用

圖15 功能碼FC01使用
S7-200主站,用功能碼FC01讀取從站8點數字量輸出,接收的數據存放在VB2000開始的區域,測試截圖結果如下。

圖16 FC01功能碼數據交換
5.2 FC02功能碼
CP341從站的通訊區域配置

圖17 FC02 參數組態界面
FC02對應的數據區為位輸出,數據的傳遞以位為單位,只讀操作,用戶地址區為1xxxx,Modbus地址在信息傳遞中從0開始,如上圖,左邊為信息傳遞地址(地址區不能沖突),右邊對應的是S7-300的數據區。例如左邊信息傳遞地址從0 ~ 7對應用戶地址區為10001 ~ 10008,對應S7-300的M20.0 ~ M20.7,并且以此為例說明FC02功能碼的通訊。
S7-200主站程序調用

圖18 功能碼FC02使用
S7-200主站,用功能碼FC02讀取從站8點數字量輸入,接收的數據存放在VB2000開始的區域,測試截圖結果如下。

圖19 FC02功能碼數據交換
5.3 FC03/06/16 功能碼
CP341從站的通訊區域配置

圖20 FC03/06/16參數組態界面
FC03/06/16 對應的數據區為寄存器,數據的傳遞以字為單位,可以讀寫操作,用戶地址區為4xxxx,Modbus地址在信息傳遞中從0開始。如上圖,左邊為信息傳遞地址,右邊對應的是S7-300的數據區,左邊傳輸地址不可改,右邊只對應一個數據區。例如用戶地址
區為40001 ~ 40004,對應S7-300數據區為DB1.DBW0 ~ DB1.DBW6,并且以此為例說明
FC03功能碼的通訊。
S7-200主站程序調用

圖21功能碼FC03使用
S7-200主站,用功能碼FC03讀取從站4個字寄存器,接收的數據存放在VB2000開始的區域,測試截圖結果如下。

圖22 FC03功能碼數據交換
5.4 FC04 功能碼
CP341從站的通訊區域配置

圖23 FC04參數組態界面
FC04對應的數據區為寄存器輸入,數據的傳遞也以字為單位,只讀操作,用戶地址區3xxxx,Modbus地址在信息傳送中從0開始。如上圖,左邊為信息傳遞地址,右邊對應的是S7-300的數據區,左邊傳輸地址不可改,右邊只對應一個數據區。例如用戶地址區為30001 ~ 30004,對應S7-300數據區為DB1.DBW0 ~ DB1.DBW6,并且以此為例說明FC04功能碼的通訊。
S7-200主站程序調用

圖24功能碼FC04使用
S7-200主站,用功能碼FC04讀取從站4個字輸入寄存器,接收的數據存放在VB2000開始的區域,測試截圖結果如下。

圖25 FC04功能碼數據交換
5.5 Limits 欄

圖26 Limits 參數組態界面
對于寫功能碼FC05、06、15、16,可以禁用或限制訪問相關S7-300存儲區,即使用這些功能碼時,S7-300存儲區需要在設定的最小和最大的范圍之間,如果訪問的區域超出這個范圍,則訪問會被拒絕,同時輸出報錯誤信息。
6. 總結
本文檔以S7-200為主站和CP341為從站簡單介紹了Modbus RTU通訊,關于通訊的組態設置,編程以及常用功能碼的使用,其具體的使用可以作為西門子串行通訊模塊與第三方的儀表、設備等進行串行通信的參考。
介紹
在STEP7 V13(TIA Portal)中可以使用 S7-PLCSIM 來仿真 S7-1500 CPU的程序。
下面的介紹將描述如何使用 S7-PLCSIM V13 仿真兩個 S7-1500 的 S7通信 程序。
要求
-
在STEP 7 V13 (TIA Portal) 中,先創建一個工程。里面包含兩個已經組態并且聯網的 S7-1500項目
-
在兩個S7-1500的項目之間配置一個 S7 連接和一個用于用戶開放式通信的連接(例如,ISO-on-TCP連接)。
-
在應用程序的主動連接端調用“PUT” 指令,將數據發送到被動連接端的1500 CPU 中。
-
在應用程序的主動連接端調用“TSEND” 指令,將數據發送到被動連接端的1500 CPU 中。在應用程序的被動連接端調用“TRCV” 指令,從主動連接端的1500 CPU 中接收數據。
說明
這個條目包括兩個S7-1500 CPU的配置,連接配置和用戶程序 。
步驟
-
在控制面板中打開設置“PG/PC 接口 ”的應用程序
選擇數據的接入點為 "S7ONLINE (STEP 7) -> PLCSIM S7-1200/S7-1500.TCPIP.1"。
這能確保當PLCSIM啟動時能夠自動開始下載過程。

圖. 01
-
在STEP 7 V13 (TIA Portal) 中打開提供的程序.
-
在項目樹中選中設備文件夾 "PLC_1 [CPU 1516-3 PN/DP]"。 然后在工具欄上單擊 “開始仿真” 按鍵

圖. 02
-
通過點擊“OK”鍵來確認下圖所示的信息。連接到其他PC的所有的有用的網絡連接被斷掉。

圖. 03
-
S7-PLCSIM V13 自動運行并且一個新項目也會自動完成創建。
-
下載到PLC的過程自動開始,也就是說創建完項目后,“擴展下載到設備”或“裝載預覽”對話框自動打開。
-
只有S7-PLCSIM V13訪問路徑設置了,“擴展下載到設備”對話框才會自動打開。
在“擴展下載到設備”對話框中進行如下設置下載組態信息到S7-PLCSIM V13中:
- PG/PC 接口類型: PN/IE
- PG/PC 接口: PLCSIM S7-1200/S7-1500
點擊“開始搜索”按鈕。在“目標子網中的兼容設備”下會看到帶有IP地址的S7-1500CPU。選中S7-1500CPU并點擊“裝載 ”按鈕。

圖. 04
-
在“裝載預覽”對話框單擊”裝載“按鈕開始裝載步驟。

圖. 05
在“裝載結果”的對話框中單擊”結束“按鈕完成裝載步驟。

圖. 06
-
在項目樹中選擇設備文件夾PLC_2 [CPU 1516-3 PN/DP],然后在工具欄中單擊”開始仿真“按鈕

圖. 07
-
另外一個S7-PLCSIM V13 自動打開,并且一個新項目會自動創建。
-
下載到PLC的過程自動開始,也就是說在開始仿真后“裝載預覽”對話框會被自動打開。
-
在“裝載預覽”對話框單擊“裝載”按鈕開始裝載步驟。

圖. 08
-
在“裝載結果”的對話框中單擊“結束”按鈕完成裝載步驟。

圖. 09
-
PLC1[CPU 1516-3 PN/DP] 在命名為"Project1"的項目中通過 S7-PLCSIM 進行仿真。

圖. 10
-
PLC2[CPU 1516-3 PN/DP]在命名為"Project2"。的項目中通過S7-PLCSIM 進行仿真。

圖. 11
-
在 STEP 7 V13 (TIA Portal) 中建立一個在線的連接到 PLC_1 [CPU 1516-3 PN/DP],為此需要在項目樹中選擇PLC_1 [CPU 1516-3 PN/DP] ,然后再工具欄中單擊 “開始在線”的按鈕。

圖. 12
-
在主動連接PLC_1 的監控表格中監控變量值 "SD_Daten".Static_1 (DB2.DBW0)為 15,這個值需要通過"PUT" 指令傳送給被動連接方的 PLC_2 [CPU 1516-3 PN/DP]。
在 主動連接PLC_1 的監控表格中監控變量值 "SD_Daten".Static_2 (DB2.DBW2) 為63.50 ,這個值需要通過"TSEND" 指令傳送給被動連接方的 PLC_2 [CPU 1516-3 PN/DP]。

圖. 13
-
在STEP 7 V13 (TIA Portal) 中設置一個在線連接到 PLC_2 [CPU 1516-3 PN/DP].,為此需要在項目樹中選中PLC_2 [CPU 1516-3 PN/DP]在工具欄中單擊“開始 在線”的按鈕。

圖. 14
-
被動連接PLC_2 [CPU 1516-3 PN/DP]的監控表格中監控變量 "ADDR_Daten" Static_1 (DB2.DBW0)。 如果這個變量的值也是15那么說明 “PUT”指令被成功執行。數值被成功的由主動連接 PLC_1 [CPU 1516-3 PN/DP] 發送到被動連接 PLC_2 [CPU 1516-3 PN/DP]。
被動連接PLC_2 [CPU 1516-3 PN/DP]的監控表格中監控變量 "ADDR_Daten" Static_2 (DB2.DBW2)。 如果這個變量的值也是25那么說明 "TSEND" 和TRCV"指令被成功執行。數值被成功的由主動連接 PLC_1 [CPU 1516-3 PN/DP] 發送到被動連接 PLC_2 [CPU 1516-3 PN/DP]。

圖. 15
說明
-
如果使用絕對尋址需要禁用“優化數據塊”這個選項。

圖. 16
-
在S7-1500 CPU 中必須到設備配置畫面的CPU保護中,使能 “允許數據通過 PUT/GET 傳輸到遠程通信伙伴中(PLC, HMI, OPC)”。
上海贊國自動化科技有限公司
聯系人: 田工(SIEMENS)
上海贊國自動化科技有限公司(西門子分銷商)
電話(Tel):-021-31660601
傳真(Fax):-021-67633621
聯系QQ :187047001
24小時銷售技術服務熱線 ;18721188295(微信同號)
地址(Add):上海市松江區新松江路久陽文華府邸2218弄6號
我公司只銷售西門子原裝正品,享受西門子免費一年保修