|
|
6ES74050RA020AA0
SIEMENS上海朕鋅電氣設備有限公司
手機 15021699383(萬女士)
微信W15107475458
電話 021-31668149
Q Q 2779823058
傳真 021-67226033
西門子電纜 拖纜 網線CPU模塊(西門子代理)專業銷售西門子S7-200/300/400/1200/1500PLC,ET200分布式
I/O:ET200S、ET200M、ET200SP、ET200PRO、
3RW系列軟啟動器系列電機啟動器、數控系統、變頻器/、人機界面、觸摸屏、西門子通訊電纜、現場總線、DP接頭 西門子并可提供西門子維修服務,歡迎來電垂詢
我們是西門子代理有需要西門子的請聯系 電話 15021699383
Q Q 2779823058
微信是 W15107475458
價格優品質好保證質量 是一家值得讓您信用 買的省錢
用的安心
就來上海朕鋅電氣設備有限公司 歡迎您前來采購 詢價
1. 概述
2.1 STEP7 V5.4 SP4
2.2 CP PTP Param V5.1 SP11
2.3 CP PTP Modbus Slave V3.1 SP7
2.4 STEP7 Micro/WIN V4.0 SP6
2.5 Toolbox_V32-STEP 7-Micro WIN 32 Instruction Library
3.1 硬件列表
表1 硬件設備
3.2 硬件接線
3.2.1 接口定義
3.2.2 接線示意圖
4.1 S7-200做Modbus主站的設置
4.1.1 Modbus RTU主站庫
使用Modbus 主站指令庫時需要注意的幾點:
表2需要從站支持的功能
4.1.2 S7-200 Modbus主站編程
圖中各參數含義如下
表3
調用 Modbus RTU 主站讀寫子程序MBUS_MSG,發送一個Modbus 請求。
圖中各參數含義如下
表4
從上圖中可見,S7-200作為Modbus RTU主站,波特率9.6Kb/s,偶校驗,連接從站的站地址是3,數據存儲區為VB2000開始的區域。
4.2 CP341 做Modbus 從站的硬件組態
4.2.1 硬件組態
4.2.2 設置Modbus參數
按照上述操作設置參數,從上圖可以看出,本例中的傳輸波特率9.6Kb/s,1位起始位,8位數據位,偶校驗位,1位停止位,從站站地址是3,主從通訊設備的字符幀格式和波特率等參數設置需要一致。
RS422/485接口只能一個有效,接口的選擇只需要組態而不需要在硬件上短接。
4.2.3 Modbus驅動的下載
4.2.4 CP341做Modbus從站的編程
OB1中調用FB80編程如下:
CP卡初始化正常后,CP_START,CP_START_FM和CP_START_OK為1信號,否則CP_START_ERROR為1,同時可以從ERROR_NR察看錯誤信息,也可以在硬件組態中在線后的CP341的診斷緩沖區察看詳細的錯誤信息,錯誤信息對照和處理方式可以參考
FB80的各參數含義如下
表5
5.1 FC01/05/15功能碼
FC01、FC05、FC15對應的數據區為位輸出,數據的傳遞以位為單位,可以讀寫操作,用戶地址區為0xxxx,Modbus地址在信息傳遞中從0開始。如上圖,左邊為信息傳遞地址(地址區不能沖突),右邊對應的是S7-300的數據區。例如左邊信息傳遞地址從0 ~ 7對應用戶地址區為00001 ~ 00008,對應S7-300的M10.0 ~ M10.7,并且以此為例說明FC01功能碼的通訊。
S7-200主站,用功能碼FC01讀取從站8點數字量輸出,接收的數據存放在VB2000開始的區域,測試截圖結果如下。
5.2 FC02功能碼
FC02對應的數據區為位輸出,數據的傳遞以位為單位,只讀操作,用戶地址區為1xxxx,Modbus地址在信息傳遞中從0開始,如上圖,左邊為信息傳遞地址(地址區不能沖突),右邊對應的是S7-300的數據區。例如左邊信息傳遞地址從0 ~ 7對應用戶地址區為10001 ~ 10008,對應S7-300的M20.0 ~ M20.7,并且以此為例說明FC02功能碼的通訊。
S7-200主站,用功能碼FC02讀取從站8點數字量輸入,接收的數據存放在VB2000開始的區域,測試截圖結果如下。
5.3 FC03/06/16 功能碼
FC03/06/16 對應的數據區為寄存器,數據的傳遞以字為單位,可以讀寫操作,用戶地址區為4xxxx,Modbus地址在信息傳遞中從0開始。如上圖,左邊為信息傳遞地址,右邊對應的是S7-300的數據區,左邊傳輸地址不可改,右邊只對應一個數據區。例如用戶地址
S7-200主站,用功能碼FC03讀取從站4個字寄存器,接收的數據存放在VB2000開始的區域,測試截圖結果如下。
FC04對應的數據區為寄存器輸入,數據的傳遞也以字為單位,只讀操作,用戶地址區3xxxx,Modbus地址在信息傳送中從0開始。如上圖,左邊為信息傳遞地址,右邊對應的是S7-300的數據區,左邊傳輸地址不可改,右邊只對應一個數據區。例如用戶地址區為30001 ~ 30004,對應S7-300數據區為DB1.DBW0 ~ DB1.DBW6,并且以此為例說明FC04功能碼的通訊。
S7-200主站,用功能碼FC04讀取從站4個字輸入寄存器,接收的數據存放在VB2000開始的區域,測試截圖結果如下。
5.5 Limits 欄
對于寫功能碼FC05、06、15、16,可以禁用或限制訪問相關S7-300存儲區,即使用這些功能碼時,S7-300存儲區需要在設定的最小和最大的范圍之間,如果訪問的區域超出這個范圍,則訪問會被拒絕,同時輸出報錯誤信息。
關鍵詞
本公司代理系列如下
S7-200做主站S7-300 CP341做從站的Modbus RTU通訊
在現場應用中,很多儀表和設備僅支持Modbus RTU的通訊協議,第三方儀表可以做Modbus主站或從站,西門子的通訊模塊CP341 / CP441-2 通過Dongle(硬件狗)可以擴展該協議,S7-200 集成的口可以支持自由口通訊,通過指令庫也可以方便的實現Modbus RTU通訊。本文以S7-200作為Modbus 主站,CP341作為Modbus 從站,實現Modbus RTU通訊,闡述兩者在通訊方面的設置和注意事項。
2. 軟件環境
用于編寫 S7-300/400程序,此軟件需要從西門子購買,本文檔中的300的程序是使用Step7 V5.4 SP4的軟件編寫。
串行通訊模板的驅動程序,安裝此驅動后才能對PtP模板進行參數配置,并在Step7中集成通訊編程需要使用的功能塊。此驅動隨購買模板一起提供,也可以從以下的鏈接下載:27013524
CP341或CP441-2用于Modbus從站時,需要安裝此驅動協議,但安裝之前必須先安裝PtP Driver,此驅動可以在購買Modbus Dongle時選擇購買,也可以從以下的鏈接下載:27774276
用于S7-200編程的軟件,本文檔中的200的程序是使用Step7 Micro/win 的軟件編寫。此軟件可以從西門子下載中心免費下載,也可以從以下的鏈接下載。
http://www.ad.siemens.com.cn/download 網站 自動化系統>>S7-200>>軟件,文檔編號S0002。
S7-200實現Modbus RTU功能,可以使用Modbus的指令庫,要使用西門子的標準指令庫,必須先安裝指令庫的軟件包 Instruction Library,安裝后,可以在Step 7-Micro/WIN軟件的庫中找到Modbus相關的指令,該軟件包可以從以下的鏈接下載。http://www.ad.siemens.com.cn/download 網站 自動化系統>>S7-200>>軟件,文檔編號S0010。
3. 硬件列表和接線
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
S7-200的通訊口為RS485物理口(9針口),CP341是RS422/485的接口類型(15針口),兩種設備的接口引腳的示意圖如下所示,更詳細的信息可以參考CP341及S7-200通信接口的手冊。
圖1 S7-200 CPU通信口引腳定義
圖2 S7-300 CP341 RS422/485 通訊口引腳定義
圖3 硬件結構和接線示意圖
4. 組態設置和編程
S7-200 CPU上的通信口在電氣上是標準的RS-485半雙工串行通信口,此串行字符通信的格式:1個起始位;7/8位數據位;1位奇/偶/無校驗;1停止位。通信波特率可以設置為1200、2400、4800、9600、19200、38400、57600或112500,符合這些格式的串行通訊設備可以和S7-200進行自由口通訊,Modbus RTU指令庫就是使用自由口編程實現的。
圖4 庫存儲區設置
Modbus 地址
讀 / 寫
Modbus 從站須支持的功能
00001~09999
讀
功能1:讀輸出點
數字量輸出
寫
功能5:寫單個輸出點
功能15:寫多個輸出點
10001~19999
讀
功能2:讀輸入點
數字量輸入
30001~39999
讀
功能4:讀輸入寄存器
輸入寄存器
40001~49999
讀
功能3:讀保持寄存器
保持寄存器
寫
功能6:寫單個寄存器
功能16:寫多個寄存器
編程時,使用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 / 錯誤位
初始化錯誤代碼。
圖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時,錯誤代碼才有效。
圖7 S7-300側硬件組態
圖8 消息楨字符結構
圖9 RS422/485 接口組態
當配置好Modbus通信的參數后,保存前需要向CP341下載Modbus Slave的驅動,一旦下載完成后無需再次下載。
需要注意的是,在下載驅動時(可以在無Dongle情況下下載),需要將CPU停機,然后下載,操作過程如下所示。
圖10 下載Dongle時,需要CPU停機
圖11 從站驅動下載后結果
從Step7 軟件下的EXAMPLE目錄中,找到項目名“zXX21_05_PtP_Com_MODSL”的項目,打開,然后將Modbus通訊模塊FB80傳遞到用戶項目中,打開路徑如下所示。
圖12 Modbus Slave 例程打開路徑
圖13 FB80程序塊調用
《S7-300以用于PtP CP Modbus 協議RTU格式S7的可裝載驅動程序為從站》的手冊。
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. 通訊測試
Modbus RTU格式通信協議是以主從的方式進行數據傳輸的,在傳輸的過程中主站是主動方,即主站發送數據請求報文到從站,從站返回響應報文。Modbus 系統間的數據交換是通過功能碼來控制的,以下對現場常用的功能碼進行分類測試,關于功能碼的詳細信息請參考手冊。
CP341從站的通訊區域配置
圖14 FC01/05/15 參數組態界面
S7-200主站程序調用
圖15 功能碼FC01使用
圖16 FC01功能碼數據交換
CP341從站的通訊區域配置
圖17 FC02 參數組態界面
S7-200主站程序調用
圖18 功能碼FC02使用
圖19 FC02功能碼數據交換
CP341從站的通訊區域配置
圖20 FC03/06/16參數組態界面
區為40001 ~ 40004,對應S7-300數據區為DB1.DBW0 ~ DB1.DBW6,并且以此為例說明
FC03功能碼的通訊。
S7-200主站程序調用
圖21功能碼FC03使用
圖22 FC03功能碼數據交換
5.4 FC04 功能碼
CP341從站的通訊區域配置
圖23 FC04參數組態界面
S7-200主站程序調用
圖24功能碼FC04使用
圖25 FC04功能碼數據交換
圖26 Limits 參數組態界面
6. 總結
本文檔以S7-200為主站和CP341為從站簡單介紹了Modbus RTU通訊,關于通訊的組態設置,編程以及常用功能碼的使用,其具體的使用可以作為西門子串行通訊模塊與第三方的儀表、設備等進行串行通信的參考。
7. 相關參考資料
關于西門子串行通信應用的文檔可以參考相關產品手冊,或登錄下載中心網站http://www.ad.siemens.com.cn/download/ , 搜索下載如下文檔:
A0006:串口通訊模塊的信息與使用
A0081:CP340/341/440/441通訊及編程
A0336:CP341 Modbus RTU多站點輪詢
A0440:CP340/341基于ASCII驅動協議的多站點輪詢
A0384:S7-300 CP341作主S7-200作從的Modbus通信
CP341,Modbus RTU,功能碼,S7-200
6ES74050RA020AA0