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