參考價(jià): | 面議 |
- 西門子CP341模塊 產(chǎn)品型號
- 品牌
- 代理商 廠商性質(zhì)
- 查看pdf文檔 產(chǎn)品資料
- 上海市 所在地
訪問次數(shù):185更新時(shí)間:2017-05-19 15:17:50
【信譽(yù)*、誠信交易】【*銷售、安全穩(wěn)定】
【稱心滿意、服務(wù)動力】【真誠面對、溝通無限】
【服務(wù)*、一諾千金】【質(zhì)量承諾、客戶滿意】
西門子6ES7341-1BH02-0AE0
![]() | 6ES7341-1BH02-0AE0 SIMATIC S7-300,CP341 通訊處理器,帶 20MA 接口 (TTY),包括組態(tài)軟件包光盤 |
SIEMENS西門子上海朕鋅電氣設(shè)備有限公司
:鄭鑫 :
:www.zhenxindianqi。。cn
工作 (同步)
1.概述
1.1 S7-1200 的PROFINET 通信口
S7-1200 CPU 本體上集成了一個 PROFINET 通信口,支持以太網(wǎng)和基于 TCP/IP 的通信標(biāo)準(zhǔn)。使用這個通信口可以實(shí)現(xiàn) S7-1200 CPU 與編程設(shè)備的通信,與HMI觸摸屏的通信,以及與其它 CPU 之間的通信。這個PROFINET 物理接口是支持10/100Mb/s的 RJ45口,支持電纜交叉自適應(yīng),因此一個標(biāo)準(zhǔn)的或是交叉的以太網(wǎng)線都可以用于這個接口。
1.2 S7-1200支持的協(xié)議和zui大的連接資源
S7-1200 CPU 的PROFINET 通信口支持以下通信協(xié)議及服務(wù)
• TCP
• ISO on TCP ( RCF 1006 )
• S7 通信 (服務(wù)器端)
通信口所支持的zui大通信連接數(shù)
S7-1200 CPU PROFINET 通信口所支持的zui大通信連接數(shù)如下:
• 3個連接用于HMI (觸摸屏) 與 CPU 的通信
• 1個連接用于編程設(shè)備(PG)與 CPU 的通信
• 8個連接用于Open IE ( TCP, ISO on TCP) 的編程通信,使用T-block 指令來實(shí)現(xiàn)
• 3個連接用于S7 通信的服務(wù)器端連接,可以實(shí)現(xiàn)與S7-200,S7-300以及 S7-400 的以太網(wǎng)S7 通信
S7-1200 CPU可以同時(shí)支持以上15個通信連接,這些連接數(shù)是固定不變的,不能自定義。
TCP(Transport Connection Protocol)
TCP是由 RFC 793描述的標(biāo)準(zhǔn)協(xié)議,可以在通信對象間建立穩(wěn)定、安全的服務(wù)連接。如果數(shù)據(jù)用TCP協(xié)議來傳輸,傳輸?shù)男问绞菙?shù)據(jù)流,沒有傳輸長度及信息幀的起始、結(jié)束信息。在以數(shù)據(jù)流的方式傳輸時(shí)接收方不知道一 條信息的結(jié)束和下一條信息的開始。因此,發(fā)送方必須確定信息的結(jié)構(gòu)讓接收方能夠識別 。在多數(shù)情況下TCP應(yīng)用了IP (Internet protocol) ,也就是“TCP/IP 協(xié)議”, 它位于 ISO-OSI 參考模型的第四層。
協(xié)議的特點(diǎn):
• 與硬件綁定的高效通信協(xié)議
• 適合傳輸中等到大量的數(shù)據(jù) (<=8192 bytes)
• 為大多數(shù)設(shè)備應(yīng)用提供
– 錯誤恢復(fù)
– 流控制
– 可靠性
• 一個基于連接的協(xié)議
• 可以靈活的與支持TCP協(xié)議的第三方設(shè)備通信
• 具有路由兼容性
• 只可使用靜態(tài)數(shù)據(jù)長度
• 有確認(rèn)機(jī)制
• 使用端口號進(jìn)行應(yīng)用尋址
• 大多數(shù)應(yīng)用協(xié)議,如NET、FTP都使用TCP
• 使用 SEND/RECEIVE 編程接口進(jìn)行數(shù)據(jù)管理需要編程來實(shí)現(xiàn)
1.3 硬件需求和軟件需求
硬件:
① S7-1200 CPU
② S7-300 CPU + CP343-1(支持S7 Client)
③ PC(帶以太網(wǎng)卡)
④ TP以太網(wǎng)電纜
軟件:
① STEP 7 Basic V10.5
② STEP 7 V5.4
2. ISO on TCP 通信
S7-1200 CPU 與S7-300/400 之間通過ISO on TCP 通信,需要在雙方都建立連接,連接對象選擇“Unspecified”。
所完成的通信任務(wù)為:
① S7-1200將DB3里的100個字節(jié)發(fā)送到S7-300的DB2中
② S7-300將輸入數(shù)據(jù)IB0發(fā)送給S7-1200的輸出數(shù)據(jù)區(qū)QB0。
2.1 S7-1200 CPU 的組態(tài)編程
組態(tài)編程過程與 S7-1200 CPU 之間的通信基本相似 (見 6.3 ),這里簡單描述一下步驟:
① 使用STEP 7 Basic V10.5 軟件新建一個項(xiàng)目
在STEP 7 Basic 的“Portal View”中選擇 “Create new project”創(chuàng)建一個新項(xiàng)目
② 添加新設(shè)備
然后進(jìn)入“Project view”,在“Project tree”下雙擊“Add new device”,在對話框中選擇所使用的S7-1200 CPU添加到機(jī)架上,命名為 PLC_1。
③ 為 PROFINET 通信口分配以太網(wǎng)地址
在“Device View”中點(diǎn)擊 CPU 上代表PROFINET 通信口的綠色小方塊,在下方會出現(xiàn)PROFINET 接口的屬性,在 “Ethernet addresses”下分配IP 地址為 192.168.0.1 ,子網(wǎng)掩碼為255.255.255.0。
④ 在 S7-1200 CPU 中調(diào)用“TSEND_C”通信指令并配置連接參數(shù)和塊參數(shù)
在主程序中調(diào)用發(fā)送通信指令,進(jìn)入“Project tree” > “ PLC_1”>“Program blocks”>“Main”主程序中,從右側(cè)窗口“Instructions”> “Extended Instructions”>“Communications”下調(diào)用“TSEND_C”指令,并選擇“Single Instance”生成背景 DB塊。然后單擊指令塊下方的“下箭頭”,使指令展開顯示所有接口參數(shù)。
然后,創(chuàng)建并定義發(fā)送數(shù)據(jù)區(qū) DB 塊。通過“Project tree”>“ PLC_1”> “Program blocks” >“Add new block” ,選擇 “Data block”創(chuàng)建 DB 塊,選擇尋址,點(diǎn)擊“OK”鍵,定義發(fā)送數(shù)據(jù)區(qū)為 100個字節(jié)的數(shù)組。
根據(jù)所使用的參數(shù)創(chuàng)建符號表,如圖1所示。
配置連接參數(shù),如圖2所示。
配置塊接口參數(shù),如圖3所示。
圖1 創(chuàng)建所使用參數(shù)的符號表圖PLC tag
圖2 配置連接參數(shù)
圖3 配置 TSEND_C 塊參數(shù)
⑤ 調(diào)用“TRCV”通信指令并配置塊參數(shù)如圖6 47所示。
因?yàn)榕c發(fā)送使用的是同一連接,所以使用的是不帶連接的發(fā)送指令“TRCV”,連接“ID”使用的也是“TSEND_C”中的“Connection ID”號,如圖4所示。
圖4 配置 T_RCV 塊參數(shù)
2.2 S7-300 CPU 的ISO on TCP通信的組態(tài)編程
① 使用STEP 7 軟件新建一個項(xiàng)目并進(jìn)行硬件組態(tài)
創(chuàng)建完新項(xiàng)目,在項(xiàng)目的窗口下,右鍵菜單里,選擇“Insert New Object”>“SIMATIC 300 Station” ,插入一個S7-300 站。
為了編程方便,我們使用時(shí)鐘脈沖激活通信任務(wù),在CPU的“Properties”>“Cycle/Clock Memory”中設(shè)置,如圖5所示。
圖5 設(shè)置時(shí)鐘脈沖
每一個時(shí)鐘位都按照不同的周期/頻率在0和1之間切換變化,見表1。
表1:時(shí)鐘位頻率
位 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
周期(S) | 2 | 01. Jun | 1 | 0.8 | 0.5 | 0.4 | 0.2 | 0.1 |
頻率(Hz) | 0.5 | 0.625 | 1 | Jan 25 | 2 | 02. Mai | 5 | 10 |
② 配置以太網(wǎng)模塊
進(jìn)入“HW Config”中,組態(tài)所使用的 CPU 及“CP343-1”模板。并新建以態(tài)網(wǎng) Ethernet (1) ,配置“CP343-1”模板IP 地址為:192.168.0.2,子網(wǎng)掩碼為: 255.255.255.0 。如圖6所示。配置完硬件組態(tài)及屬性,編譯存盤并下載所有硬件組態(tài)。
圖6 S7-300 硬件配置
③ 網(wǎng)絡(luò)組態(tài)
打開 “NetPro” 配置網(wǎng)絡(luò),選中 CPU,在連接列表里建立新的連接并選擇連接對象和通信協(xié)議,如圖7所示。
圖7 創(chuàng)建新的連接并選擇 ISO-on-TCP 協(xié)議
這時(shí)會跳出通用信息,如圖8所示。
圖8 通用信息
然后,進(jìn)入“Addresses”配置通信雙方的IP 地址及TSAP 地址,如圖9所示。
圖9 配置通信的IP 地址及TSAP 地址
配置完連接并編譯存盤后,將網(wǎng)絡(luò)組態(tài)下載到CPU300中。
④ 軟件編程
在OB1中,從“Libraries”>“SIMATIC_NET_CP”>“CP300”下,調(diào)用FC5(AG_SEND)、FC6(AG_RECV)通信指令。創(chuàng)建接收數(shù)據(jù)區(qū)為 DB2,定義成100個字節(jié)的數(shù)組。
CALL “ AG_RECV” //調(diào)用FC6
ID :=1 // 連接號,要與連接配置列表中*,見圖8
LADDR :=W#16#100 //CP的地址,要與配置中*,見圖8
RECV :=P#DB2.DBX 0.0 BYTE 100 //接收數(shù)據(jù)區(qū)
NDR :=M10.0 //為1時(shí),接收到新數(shù)據(jù)
ERROR :=M10.1 //為1時(shí),有故障發(fā)生
STATUS :=MW12 //狀態(tài)代碼
LEN :=MW14 //接收到的實(shí)際數(shù)據(jù)長度
CALL “AG_SEND” //調(diào)用FC5
ACT :=M0.2 //為1時(shí),激活發(fā)送任務(wù)
ID :=1 // 連接號,要與連接配置中*
LADDR :=W#16#100 //CP的地址,要與配置中*
SEND :=IB0 //發(fā)送數(shù)據(jù)區(qū)
LEN :=1 //發(fā)送數(shù)據(jù)的長度
DONE :=M10.2 //為1時(shí),發(fā)送完成
ERROR :=M10.3 //為1時(shí),有故障發(fā)生
STATUS :=MW16 //狀態(tài)代碼
2.3 監(jiān)控通信結(jié)果
下載S7-1200和S7-300中的所有組態(tài)及程序,監(jiān)控通信結(jié)果,如圖10、圖11所示。
在S7-1200 CPU中向DB3中寫入數(shù)據(jù):“11”、“22”、“33”,則在S7-300中的DB2塊收到數(shù)據(jù)也為“11”、“22”、“33”。
在S7-300 CPU中,將“2#1111_1111”寫入IB0,則在S7-1200 CPU中QB0中收到的數(shù)據(jù)也為“2#1111_1111”。
圖10 S7-1200監(jiān)控表
圖11 S7-300 變量表
3. TCP 通信
使用TCP 協(xié)議通信,除了連接參數(shù)的定義不同,通信雙方的其它組態(tài)及編程與前面的ISO on TCP 協(xié)議通信*相同。
S7-1200 CPU中,使用 TCP 協(xié)議與S7-300通信時(shí),PLC_1的連接參數(shù),如圖12所示。通信伙伴 S7-300 的連接參數(shù),如圖13所示。
圖12 S7-1200 的TCP連接參數(shù)的配置
圖13 S7-300 的TCP連接參數(shù)的配置
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 硬件設(shè)備
3.2 硬件接線
3.2.1 接口定義
S7-200的通訊口為RS485物理口(9針口),CP341是RS422/485的接口類型(15針口),兩種設(shè)備的接口引腳的示意圖如下所示,更詳細(xì)的信息可以參考CP341及S7-200通信接口的手冊。
圖1 S7-200 CPU通信口引腳定義
圖2 S7-300 CP341 RS422/485 通訊口引腳定義
3.2.2 接線示意圖
圖3 硬件結(jié)構(gòu)和接線示意圖
4. 組態(tài)設(shè)置和編程
4.1 S7-200做Modbus主站的設(shè)置
S7-200 CPU上的通信口在電氣上是標(biāo)準(zhǔn)的RS-485半雙工串行通信口,此串行字符通信的格式:1個起始位;7/8位數(shù)據(jù)位;1位奇/偶/無校驗(yàn);1停止位。通信波特率可以設(shè)置為1200、2400、4800、9600、19200、38400、57600或112500,符合這些格式的串行通訊設(shè)備可以和S7-200進(jìn)行自由口通訊,Modbus RTU指令庫就是使用自由口編程實(shí)現(xiàn)的。
4.1.1 Modbus RTU主站庫
使用Modbus 主站指令庫時(shí)需要注意的幾點(diǎn):
- 需要S7-200的編程軟件是 Micro/WIN V4.0 SP5及以上版本;
- Modbus RTU 主站庫對CPU的版本有要求,CPU 的版本必須為 2.00 或者 2.01(即訂貨號為 6ES721*-***23-0BA*);
- Modbus主站可讀/寫的zui大數(shù)據(jù)量為120個字(指每一個 MBUS_MSG 指令);
- Modbus 主站庫支持Port0和Port1(從站庫只支持Port0口),本例中用Port0;
- 使用Modbus 庫時(shí)必須對庫存儲區(qū)進(jìn)行分配,見下圖設(shè)置,而且分配的空間不能和程序中其它空間沖突,否則編譯調(diào)用會報(bào)錯。
圖4 庫存儲區(qū)設(shè)置
- Modbus主站庫支持的功能碼和地址對應(yīng)關(guān)系:
Modbus 地址 讀 / 寫 Modbus 從站須支持的功能 00001~09999 讀 功能1:讀輸出點(diǎn) 數(shù)字量輸出 寫 功能5:寫單個輸出點(diǎn) 功能15:寫多個輸出點(diǎn) 10001~19999 讀 功能2:讀輸入點(diǎn) 數(shù)字量輸入 30001~39999 讀 功能4:讀輸入寄存器 輸入寄存器 40001~49999 讀 功能3:讀保持寄存器 保持寄存器 寫 功能6:寫單個寄存器 功能16:寫多個寄存器 表2需要從站支持的功能
4.1.2 S7-200 Modbus主站編程
編程時(shí),使用SM0.0調(diào)用MBUS_CTRL完成主站的參數(shù)初始化,詳細(xì)見下表,參數(shù)的說明也可以從子程序的局部變量表中找到。
圖5 Modbus RTU 主站初始化
圖中各參數(shù)含義如下
編號 | 符號/含義 | 說 明 |
a | EN / 使能 | 必須保證每一掃描周期都被使能(使用SM0.0)。 |
b | Mode / 模式 | 為1時(shí)使能為Modbus協(xié)議;為0時(shí)恢復(fù)為PPI協(xié)議。 |
c | Baud / 波特率 | 支持的通訊波特率為1200,2400,4800,9600,19200,38400,57600,115200。 |
d | Parity / 校驗(yàn) | 校驗(yàn)方式選擇:0=無校驗(yàn);1=奇校驗(yàn),2=偶校驗(yàn)。 |
e | Timeout / 超時(shí) | 主站等待從站響應(yīng)的時(shí)間,以毫秒為單位,典型的設(shè)置值為 1000毫秒,允許設(shè)置的范圍為1-32767。這個值必須設(shè)置足夠大以保證從站有時(shí)間響應(yīng)。 |
f | Done / 完成位 | 初始化完成,此位會自動置1。 |
g | Error / 錯誤位 | 初始化錯誤代碼。 |
表3西門子6ES7341-1BH02-0AE0
調(diào)用 Modbus RTU 主站讀寫子程序MBUS_MSG,發(fā)送一個Modbus 請求。
圖6 調(diào)用Modbus RTU 主站讀寫子程序
圖中各參數(shù)含義如下
編號 | 符號/含義 | 說 明 |
a | EN / 使能 | 同一時(shí)刻只能有一個讀寫功能使能。 |
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時(shí),錯誤代碼才有效。 |
表4
從上圖中可見,S7-200作為Modbus RTU主站,波特率9.6Kb/s,偶校驗(yàn),連接從站的站地址是3,數(shù)據(jù)存儲區(qū)為VB2000開始的區(qū)域。
4.2 CP341 做Modbus 從站的硬件組態(tài)
4.2.1 硬件組態(tài)
圖7 S7-300側(cè)硬件組態(tài)
4.2.2 設(shè)置Modbus參數(shù)
圖8 消息楨字符結(jié)構(gòu)
按照上述操作設(shè)置參數(shù),從上圖可以看出,本例中的傳輸波特率9.6Kb/s,1位起始位,8位數(shù)據(jù)位,偶校驗(yàn)位,1位停止位,從站站地址是3,主從通訊設(shè)備的字符幀格式和波特率等參數(shù)設(shè)置需要*。
圖9 RS422/485 接口組態(tài)
RS422/485接口只能一個有效,接口的選擇只需要組態(tài)而不需要在硬件上短接。
4.2.3 Modbus驅(qū)動的下載
當(dāng)配置好Modbus通信的參數(shù)后,保存前需要向CP341下載Modbus Slave的驅(qū)動,一旦下載完成后無需再次下載。
需要注意的是,在下載驅(qū)動時(shí)(可以在無Dongle情況下下載),需要將CPU停機(jī),然后下載,操作過程如下所示。
圖10 下載Dongle時(shí),需要CPU停機(jī)
圖11 從站驅(qū)動下載后結(jié)果
4.2.4 CP341做Modbus從站的編程
從Step7 軟件下的EXAMPLE目錄中,找到項(xiàng)目名“zXX21_05_PtP_Com_MODSL”的項(xiàng)目,打開,然后將Modbus通訊模塊FB80傳遞到用戶項(xiàng)目中,打開路徑如下所示。
圖12 Modbus Slave 例程打開路徑
OB1中調(diào)用FB80編程如下:
圖13 FB80程序塊調(diào)用
CP卡初始化正常后,CP_START,CP_START_FM和CP_START_OK為1信號,否則CP_START_ERROR為1,同時(shí)可以從ERROR_NR察看錯誤信息,也可以在硬件組態(tài)中在線后的CP341的診斷緩沖區(qū)察看詳細(xì)的錯誤信息,錯誤信息對照和處理方式可以參考
《S7-300以用于PtP CP Modbus 協(xié)議RTU格式S7的可裝載驅(qū)動程序?yàn)閺恼尽返氖謨浴?/p>
FB80的各參數(shù)含義如下
LADDR | 硬件組態(tài)中CP341的起始邏輯地址,本例中為256 |
START_TIMER | 初始化超時(shí)定時(shí)器,本例中為T120 |
START_TIME | 初始化定時(shí)器時(shí)間,本例中為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格式通信協(xié)議是以主從的方式進(jìn)行數(shù)據(jù)傳輸?shù)模趥鬏數(shù)倪^程中主站是主動方,即主站發(fā)送數(shù)據(jù)請求報(bào)文到從站,從站返回響應(yīng)報(bào)文。Modbus 系統(tǒng)間的數(shù)據(jù)交換是通過功能碼來控制的,以下對現(xiàn)場常用的功能碼進(jìn)行分類測試,關(guān)于功能碼的詳細(xì)信息請參考手冊。
5.1 FC01/05/15功能碼
CP341從站的通訊區(qū)域配置
圖14 FC01/05/15 參數(shù)組態(tài)界面
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主站程序調(diào)用
圖15 功能碼FC01使用
S7-200主站,用功能碼FC01讀取從站8點(diǎn)數(shù)字量輸出,接收的數(shù)據(jù)存放在VB2000開始的區(qū)域,測試截圖結(jié)果如下。
圖16 FC01功能碼數(shù)據(jù)交換
5.2 FC02功能碼
CP341從站的通訊區(qū)域配置
圖17 FC02 參數(shù)組態(tài)界面
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主站程序調(diào)用
圖18 功能碼FC02使用
S7-200主站,用功能碼FC02讀取從站8點(diǎn)數(shù)字量輸入,接收的數(shù)據(jù)存放在VB2000開始的區(qū)域,測試截圖結(jié)果如下。
圖19 FC02功能碼數(shù)據(jù)交換
5.3 FC03/06/16 功能碼
CP341從站的通訊區(qū)域配置
圖20 FC03/06/16參數(shù)組態(tài)界面
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ū)。例如用戶地址
區(qū)為40001 ~ 40004,對應(yīng)S7-300數(shù)據(jù)區(qū)為DB1.DBW0 ~ DB1.DBW6,并且以此為例說明
FC03功能碼的通訊。
S7-200主站程序調(diào)用
圖21功能碼FC03使用
S7-200主站,用功能碼FC03讀取從站4個字寄存器,接收的數(shù)據(jù)存放在VB2000開始的區(qū)域,測試截圖結(jié)果如下。
圖22 FC03功能碼數(shù)據(jù)交換
5.4 FC04 功能碼
CP341從站的通訊區(qū)域配置
圖23 FC04參數(shù)組態(tài)界面
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主站程序調(diào)用
圖24功能碼FC04使用
S7-200主站,用功能碼FC04讀取從站4個字輸入寄存器,接收的數(shù)據(jù)存放在VB2000開始的區(qū)域,測試截圖結(jié)果如下。
圖25 FC04功能碼數(shù)據(jù)交換
5.5 Limits 欄
圖26 Limits 參數(shù)組態(tài)界面
對于寫功能碼FC05、06、15、16,可以禁用或限制訪問相關(guān)S7-300存儲區(qū),即使用這些功能碼時(shí),S7-300存儲區(qū)需要在設(shè)定的zui小和zui大的范圍之間,如果訪問的區(qū)域超出這個范圍,則訪問會被拒絕,同時(shí)輸出報(bào)錯誤信息。
6. 總結(jié)
本文檔以S7-200為主站和CP341為從站簡單介紹了Modbus RTU通訊,關(guān)于通訊的組態(tài)設(shè)置,編程以及常用功能碼的使用,其具體的使用可以作為西門子串行通訊模塊與第三方的儀表、設(shè)備等進(jìn)行串行通信的參考。
產(chǎn)品遠(yuǎn)銷:
1. 北京市
2005年轄:16個市轄區(qū)、2個縣。
東城區(qū) 西城區(qū) 崇文區(qū) 宣武區(qū) 朝陽區(qū) 海淀區(qū) 豐臺區(qū) 房山區(qū) 通州區(qū)
順義區(qū) 昌平區(qū) 大興區(qū) 懷柔區(qū) 平谷區(qū) 密云縣 延慶縣
門頭溝區(qū) 石景山區(qū)
2. 天津市
2005年轄:15個市轄區(qū)、3個縣。
和平區(qū) 河?xùn)|區(qū) 河西區(qū) 南開區(qū) 河北區(qū) 紅橋區(qū) 塘沽區(qū) 漢沽區(qū) 大港區(qū)
東麗區(qū) 西青區(qū) 北辰區(qū) 津南區(qū) 武清區(qū) 寶坻區(qū) 靜??h 寧河縣 薊 縣
3. 河北省
2005年轄:11個地級市,36個市轄區(qū)、22個縣級市、108個縣、6個自治縣。
辛集市 藁城市 晉州市 新樂市 鹿泉市 平山縣 井陘縣 欒城縣 正定縣
行唐縣 靈壽縣 高邑縣 趙 縣 贊皇縣 深澤縣 無極縣 元氏縣 唐山市
遵化市 遷安市 遷西縣 灤南縣 玉田縣 唐海縣 樂亭縣 灤 縣 昌黎縣
盧龍縣 撫寧縣 邯鄲市 武安市 邯鄲縣 永年縣 曲周縣 館陶縣 魏 縣
成安縣 大名縣 涉 縣 雞澤縣 邱 縣 廣平縣 肥鄉(xiāng)縣 臨漳縣 磁 縣
邢臺市 南宮市 沙河市 邢臺縣 柏鄉(xiāng)縣 任 縣 清河縣 寧晉縣 威 縣
隆堯縣 臨城縣 廣宗縣 臨西縣 內(nèi)丘縣 平鄉(xiāng)縣 巨鹿縣 新河縣 南和縣
保定市 涿州市 定州市 安國市 滿城縣 清苑縣 淶水縣 阜平縣 徐水縣
定興縣 唐 縣 高陽縣 容城縣 淶源縣 望都縣 安新縣 易 縣 曲陽縣
蠡 縣 順平縣 博野縣 雄 縣 宣化縣 康??h 張北縣 陽原縣 赤城縣
沽源縣 懷安縣 懷來縣 崇禮縣 尚義縣 蔚 縣 涿鹿縣 萬全縣 承德市
承德縣 興隆縣 隆化縣 平泉縣 灤平縣 滄州市 泊頭市 任丘市 黃驊市
河間市 滄 縣 青 縣 獻(xiàn) 縣 東光縣 海興縣 鹽山縣 肅寧縣 南皮縣
吳橋縣 廊坊市 霸州市 三河市 固安縣 永清縣 香河縣 大城縣 文安縣
衡水市 冀州市 深州市 饒陽縣 棗強(qiáng)縣 故城縣 阜城縣 安平縣 武邑縣
景 縣 武強(qiáng)縣 石家莊市 張家口市 高碑店市 秦皇島市 大廠回族自治縣
青龍滿族自治縣 豐寧滿族自治縣 寬城滿族自治縣 孟村回族自治縣
圍場滿族蒙古族自治縣
4. 山西省
2005年轄:11個地級市;23個市轄區(qū)、11個縣級市、85個縣。
太原市 古交市 陽曲縣 清徐縣 婁煩縣 大同市 大同縣 天鎮(zhèn)縣 靈丘縣
陽高縣 左云縣 廣靈縣 渾源縣 陽泉市 平定縣 盂 縣 長治市 潞城市
長治縣 長子縣 平順縣 襄垣縣 沁源縣 屯留縣 黎城縣 武鄉(xiāng)縣 沁 縣
壺關(guān)縣 晉城市 高平市 澤州縣 陵川縣 陽城縣 沁水縣 朔州市 山陰縣
右玉縣 應(yīng) 縣 懷仁縣 晉中市 介休市 昔陽縣 靈石縣 祁 縣 左權(quán)縣
壽陽縣 太谷縣 和順縣 平遙縣 榆社縣 運(yùn)城市 河津市 永濟(jì)市 聞喜縣
新絳縣 平陸縣 垣曲縣 絳 縣 稷山縣 芮城縣 夏 縣 萬榮縣 臨猗縣
忻州市 原平市 代 縣 神池縣 五寨縣 五臺縣 偏關(guān)縣 寧武縣 靜樂縣
繁峙縣 河曲縣 保德縣 定襄縣 岢嵐縣 臨汾市 侯馬市 霍州市 汾西縣
吉 縣 安澤縣 大寧縣 浮山縣 古 縣 隰 縣 襄汾縣 翼城縣 永和縣
鄉(xiāng)寧縣 曲沃縣 洪洞縣 蒲 縣 呂梁市 孝義市 汾陽市 文水縣 中陽縣
興 縣 臨 縣 方山縣 柳林縣 嵐 縣 交口縣 交城縣 石樓縣
5. 內(nèi)蒙古自治區(qū)
2005年轄:9個地級市、3個盟;21個市轄區(qū)、11個縣級市、17個縣、49個旗、3個自治旗。
武川縣 包頭市 固陽縣 烏海市 赤峰市 寧城縣 林西縣 敖漢旗 開魯縣
通遼市 庫倫旗 奈曼旗 烏審旗 杭錦旗 根河市 阿榮旗 五原縣 磴口縣
豐鎮(zhèn)市 興和縣 卓資縣 商都縣 涼城縣 化德縣 多倫縣 正藍(lán)旗 鑲黃旗
興安盟 突泉縣
托克托縣 清水河縣 喀喇沁旗 巴林左旗 翁牛特旗 巴林右旗 扎魯特旗
準(zhǔn)格爾旗 鄂托克旗 達(dá)拉特旗 滿洲里市 牙克石市 扎蘭屯市 杭錦后旗
四子王旗 阿巴嘎旗 太仆寺旗 正鑲白旗 阿爾山市 扎賚特旗 阿拉善盟
額濟(jì)納旗
呼和浩特市 和林格爾縣 土默特左旗 土默特右旗 克什克騰旗 霍林郭勒市
鄂爾多斯市 伊金霍洛旗 鄂托克前旗 呼倫貝爾市 額爾古納市 陳巴爾虎旗
巴彥淖爾市 烏拉特中旗 烏拉特前旗 烏拉特后旗 烏蘭察布市 錫林浩特市
二連浩特市 蘇尼特左旗 蘇尼特右旗 錫林郭勒盟 烏蘭浩特市 阿拉善左旗
阿拉善右旗
阿魯科爾沁旗 新巴爾虎左旗 新巴爾虎右旗 鄂倫春自治旗 西烏珠穆沁旗
東烏珠穆沁旗 科爾沁左翼中旗 科爾沁左翼后旗 鄂溫克族自治旗
察哈爾右翼前旗 察哈爾右翼中旗 察哈爾右翼后旗 科爾沁右翼前旗
科爾沁右翼中旗 達(dá)爾罕茂明安聯(lián)合旗 莫力達(dá)瓦達(dá)斡爾族自治旗
6. 遼寧省
2005年轄:14個地級市;56個市轄區(qū)、17個縣級市、19個縣、8個自治縣。
沈陽市 新民市 法庫縣 遼中縣 康平縣 大連市 莊河市 長??h 鞍山市
海城市 臺安縣 撫順市 撫順縣 本溪市 丹東市 東港市 鳳城市 錦州市
凌海市 北寧市 黑山縣 義 縣 營口市 蓋州市 阜新市 彰武縣 遼陽市
燈塔市 遼陽縣 盤錦市 盤山縣 大洼縣 鐵嶺市 開原市 鐵嶺縣 昌圖縣
西豐縣 朝陽市 凌源市 北票市 朝陽縣 建平縣 興城市 綏中縣 建昌縣
大石橋市 瓦房店市 普蘭店市 調(diào)兵山市 葫蘆島市
岫巖滿族自治縣 清原滿族自治縣 新賓滿族自治縣 阜新蒙古族自治縣
寬甸滿族自治縣 桓仁滿族自治縣 本溪滿族自治縣 喀喇沁左翼蒙古族自治縣
7. 吉林省
2005年轄:8個地級市、1個自治州;19個市轄區(qū)、20個縣級市、18個縣、3個自治縣。
長春市 九臺市 榆樹市 德惠市 農(nóng)安縣 吉林市 舒蘭市 樺甸市 蛟河市
磐石市 永吉縣 四平市 雙遼市 梨樹縣 遼源市 東遼縣 東豐縣 通化市
集安市 通化縣 輝南縣 柳河縣 白山市 臨江市 靖宇縣 撫松縣 江源縣
松原市 乾安縣 長嶺縣 扶余縣 白城市 大安市 洮南市 鎮(zhèn)賚縣 通榆縣
延吉市 圖們市 敦化市 龍井市 琿春市 和龍市 安圖縣 汪清縣
公主嶺市 梅河口市 伊通滿族自治縣 長白朝鮮族自治縣 延邊朝鮮族自治州
前郭爾羅斯蒙古族自治縣
8. 黑龍江省
2005年轄:12地級市、1地區(qū);65市轄區(qū)、19縣級市、45縣、1自治縣。
阿城市 尚志市 雙城市 五常市 方正縣 賓 縣 依蘭縣 巴彥縣 通河縣
木蘭縣 延壽縣 訥河市 富??h 拜泉縣 甘南縣 依安縣 克山縣 泰來縣
克東縣 龍江縣 鶴崗市 蘿北縣 綏濱縣 集賢縣 寶清縣 友誼縣 饒河縣
雞西市 密山市 虎林市 雞東縣 大慶市 林甸縣 肇州縣 肇源縣 漠河縣
伊春市 鐵力市 嘉蔭縣 寧安市 海林市 穆棱市 林口縣 東寧縣 同江市
富錦市 樺川縣 撫遠(yuǎn)縣 樺南縣 湯原縣 勃利縣 黑河市 北安市 遜克縣
嫩江縣 孫吳縣 綏化市 安達(dá)市 肇東市 海倫市 綏棱縣 蘭西縣 明水縣
青岡縣 慶安縣 望奎縣 呼瑪縣 塔河縣
七臺河市 雙鴨山市 牡丹江市 佳木斯市 綏芬河市 哈爾濱市 齊齊哈爾市
五大連池市 杜爾伯特蒙古族自治縣
9. 上海市
2005年轄:18個市轄區(qū)、1個縣,103個街道、114個鎮(zhèn),3個鄉(xiāng)。
黃浦區(qū) 盧灣區(qū) 徐匯區(qū) 長寧區(qū) 靜安區(qū) 普陀區(qū) 閘北區(qū) 虹口區(qū) 楊浦區(qū)
寶山區(qū) 閔行區(qū) 嘉定區(qū) 松江區(qū) 金山區(qū) 青浦區(qū) 南匯區(qū) 奉賢區(qū) 崇明縣浦東新區(qū)
10. 江蘇省
2005年轄:13個地級市;54個市轄區(qū)、27個縣級市、25個縣。
南京市 溧水縣 高淳縣 無錫市 江陰市 宜興市 徐州市 邳州市 新沂市
銅山縣 睢寧縣 沛 縣 豐 縣 常州市 金壇市 溧陽市 蘇州市 常熟市
太倉市 昆山市 吳江市 南通市 如皋市 通州市 海門市 啟東市 海安縣
如東縣 東??h 灌云縣 贛榆縣 灌南縣 淮安市 漣水縣 洪澤縣 金湖縣
盱眙縣 鹽城市 東臺市 大豐市 建湖縣 響水縣 阜寧縣 射陽縣 濱??h
揚(yáng)州市 高郵市 江都市 儀征市 寶應(yīng)縣 鎮(zhèn)江市 丹陽市 揚(yáng)中市 句容市
泰州市 泰興市 姜堰市 靖江市 興化市 宿遷市 沭陽縣 泗陽縣 泗洪縣
連云港市 張家港市
11. 浙江省
2005年轄:2005年轄:11個地級市;32個市轄區(qū)、22個縣級市、35個縣、1個自治縣。
杭州市 建德市 富陽市 臨安市 桐廬縣 淳安縣 寧波市 余姚市 慈溪市
奉化市 寧??h 象山縣 溫州市 瑞安市 樂清市 永嘉縣 洞頭縣 平陽縣
蒼南縣 文成縣 泰順縣 嘉興市 海寧市 平湖市 桐鄉(xiāng)市 嘉善縣 海鹽縣
湖州市 長興縣 德清縣 安吉縣 紹興市 諸暨市 上虞市 嵊州市 紹興縣
新昌縣 金華市 蘭溪市 義烏市 東陽市 永康市 武義縣 浦江縣 磐安縣
衢州市 江山市 龍游縣 常山縣 開化縣 舟山市 岱山縣 嵊泗縣 臺州市
臨海市 玉環(huán)縣 天臺縣 仙居縣 三門縣 麗水市 龍泉市 縉云縣 青田縣
云和縣 遂昌縣 松陽縣 慶元縣 景寧畬族自治縣
12. 安徽省
2005年轄:17個地級市;44個市轄區(qū)、5縣個級市、56個縣。
合肥市 長豐縣 肥東縣 肥西縣 蕪湖市 蕪湖縣 南陵縣 繁昌縣 蚌埠市
懷遠(yuǎn)縣 固鎮(zhèn)縣 五河縣 淮南市 鳳臺縣 當(dāng)涂縣 淮北市 濉溪縣 銅陵市
安慶市 桐城市 宿松縣 樅陽縣 太湖縣 懷寧縣 岳西縣 望江縣 潛山縣
黃山市 休寧縣 歙 縣 祁門縣 黟 縣 滁州市 天長市 明光市 全椒縣
來安縣 定遠(yuǎn)縣 鳳陽縣 阜陽市 界首市 臨泉縣 潁上縣 阜南縣 太和縣
宿州市 蕭 縣 泗 縣 碭山縣 靈璧縣 巢湖市 含山縣 無為縣 廬江縣
和 縣 六安市 壽 縣 霍山縣 霍邱縣 舒城縣 金寨縣 亳州市 利辛縣
渦陽縣 蒙城縣 池州市 東至縣 石臺縣 青陽縣 宣城市 寧國市 廣德縣
郎溪縣 涇 縣 旌德縣 績溪縣 馬鞍山市
13. 福建省
2005年轄:9個地級市、14個縣級市、45個縣。
福州市 福清市 長樂市 閩侯縣 閩清縣 永泰縣 連江縣 羅源縣 平潭縣
廈門市 莆田市 仙游縣 三明市 永安市 明溪縣 將樂縣 大田縣 寧化縣
建寧縣 沙 縣 尤溪縣 清流縣 泰寧縣 泉州市 石獅市 晉江市 南安市
惠安縣 永春縣 安溪縣 德化縣 金門縣 漳州市 龍海市 平和縣 南靖縣
詔安縣 漳浦縣 華安縣 東山縣 長泰縣 云霄縣 南平市 建甌市 邵武市
建陽市 松溪縣 光澤縣 順昌縣 浦城縣 政和縣 龍巖市 漳平市 長汀縣
武平縣 上杭縣 永定縣 連城縣 寧德市 福安市 福鼎市 壽寧縣 霞浦縣
柘榮縣 屏南縣 古田縣 周寧縣 武夷山市
14. 江西省
2005年轄:11個地級市;19個市轄區(qū)、10個縣級市、70個縣。
南昌市 新建縣 南昌縣 進(jìn)賢縣 安義縣 樂平市 浮梁縣 萍鄉(xiāng)市 蓮花縣
上栗縣 蘆溪縣 九江市 瑞昌市 九江縣 星子縣 武寧縣 彭澤縣 永修縣
修水縣 湖口縣 德安縣 都昌縣 新余市 分宜縣 鷹潭市 貴溪市 余江縣
贛州市 瑞金市 南康市 石城縣 安遠(yuǎn)縣 贛 縣 寧都縣 尋烏縣 興國縣
定南縣 上猶縣 于都縣 龍南縣 崇義縣 信豐縣 全南縣 大余縣 會昌縣
吉安市 吉安縣 永豐縣 永新縣 新干縣 泰和縣 峽江縣 遂川縣 安??h
吉水縣 萬安縣 宜春市 豐城市 樟樹市 高安市 銅鼓縣 靖安縣 宜豐縣
奉新縣 萬載縣 上高縣 撫州市 南豐縣 樂安縣 金溪縣 南城縣 東鄉(xiāng)縣
資溪縣 宜黃縣 廣昌縣 黎川縣 崇仁縣 上饒市 德興市 上饒縣 廣豐縣
鄱陽縣 婺源縣 鉛山縣 余干縣 橫峰縣 弋陽縣 玉山縣 萬年縣
井岡山市 景德鎮(zhèn)市
15. 山東省
2005年轄:17個地級市;49個市轄區(qū)、31個縣級市、60個縣。
濟(jì)南市 章丘市 平陰縣 濟(jì)陽縣 商河縣 青島市 膠南市 膠州市 平度市
萊西市 即墨市 淄博市 桓臺縣 高青縣 沂源縣 棗莊市 滕州市 墾利縣
廣饒縣 利津縣 煙臺市 龍口市 萊陽市 萊州市 招遠(yuǎn)市 蓬萊市 棲霞市
海陽市 長島縣 濰坊市 青州市 諸城市 壽光市 安丘市 高密市 昌邑市
昌樂縣 臨朐縣 濟(jì)寧市 曲阜市 兗州市 鄒城市 魚臺縣 金鄉(xiāng)縣 嘉祥縣
微山縣 汶上縣 泗水縣 梁山縣 泰安市 新泰市 肥城市 寧陽縣 東平縣
威海市 乳山市 文登市 榮成市 日照市 五蓮縣 莒 縣 萊蕪市 臨沂市
沂南縣 郯城縣 沂水縣 蒼山縣 費(fèi) 縣 平邑縣 莒南縣 蒙陰縣 臨沭縣
德州市 樂陵市 禹城市 陵 縣 寧津縣 齊河縣 武城縣 慶云縣 平原縣
夏津縣 臨邑縣 聊城市 臨清市 高唐縣 陽谷縣 茌平縣 莘 縣 東阿縣
冠 縣 濱州市 鄒平縣 沾化縣 惠民縣 博興縣 陽信縣 無棣縣 菏澤市
鄄城縣 單 縣 鄆城縣 曹 縣 定陶縣 巨野縣 東明縣 成武縣