6ES7222-1HF32-0XB0 6ES7222-1HF32-0XB0 6ES7222-1HF32-0XB0
產(chǎn)品品牌:siemens/西門子
產(chǎn)品規(guī)格:全新原裝
產(chǎn)品質(zhì)量:質(zhì)量保證
產(chǎn)品價(jià)格:價(jià)格優(yōu)勢(shì)
【同樣的價(jià)格、同樣的品牌、給您不一樣的服務(wù)】
長(zhǎng)沙玥勵(lì)自動(dòng)化設(shè)備有限公司(西門子系統(tǒng)集成商)專業(yè)銷售西門子S7-200/300/400/1200PLC、數(shù)控系統(tǒng)、變頻器、人機(jī)界面、觸摸屏、伺服、電機(jī)、西門子電纜等,并可提供西門子維修服務(wù),歡迎來(lái)電垂詢
聯(lián)系人: 張亮 (銷售經(jīng)理)
手機(jī) : 13548747710
QQ : 809118149
地址:長(zhǎng)沙市岳麓區(qū)雷鋒大道468號(hào)金科世界城16-1603室
公司大量現(xiàn)貨?。。?/strong>
產(chǎn)品 | |
商品編號(hào)(市售編號(hào)) | 6ES7222-1HF32-0XB0 |
產(chǎn)品說(shuō)明 | SIMATIC S7-1200, DIGITAL OUTPUT SM 1222, 8 DO, RELAY 2A |
產(chǎn)品家族 | SM 1222 數(shù)字量輸出模塊 |
產(chǎn)品生命周期 (PLM) | PM300:有效產(chǎn)品 |
價(jià)格數(shù)據(jù) | |
價(jià)格組 / 總部?jī)r(jià)格組 | SK / 212 |
列表價(jià)(不含增值稅) | 顯示價(jià)格 |
您的單價(jià)(不含增值稅) | 顯示價(jià)格 |
金屬系數(shù) | 無(wú) |
交付信息 | |
出口管制規(guī)定 | AL : N / ECCN : EAR99H |
工廠生產(chǎn)時(shí)間 | 15 天 |
凈重 (Kg) | 0.19 Kg |
產(chǎn)品尺寸 (W x L X H) | 未提供 |
包裝尺寸 | 88.00 x 112.00 x 56.00 |
包裝尺寸單位的測(cè)量 | CM |
數(shù)量單位 | 1 件 |
包裝數(shù)量 | 1 |
其他產(chǎn)品信息 | |
EAN | 6940408101944 |
UPC | 未提供 |
商品代碼 | 85389091 |
LKZ_FDB/ CatalogID | ST72 |
產(chǎn)品組 | 4508 |
原產(chǎn)國(guó) | 中國(guó) |
概述
通過(guò)以太網(wǎng)可以實(shí)現(xiàn)S7-1200與S7-200連接通信。S7-200可以使用 模塊(CP243-1或CP 243-1 IT)連接到以太網(wǎng)上,該模塊提供S7 通信的功能,既可作為客戶機(jī),也可以作為服務(wù)器,可以同時(shí)與最多8個(gè)S7 通信伙伴進(jìn)行通信;S7-1200 集成以太接口,提供S7 通信的功能,只能作為服務(wù)器,可以同時(shí)建立3 個(gè)通信連接。
下面會(huì)用一個(gè)實(shí)例來(lái)描述S7-200 如何與S7-1200建立通信連接。
圖1: 實(shí)例網(wǎng)絡(luò)拓?fù)鋱D
2.硬件需求
•® S7-1214C AC/DC/RLY
•® CPU 224 XP CN DC/DC/DC
•® CP243-1 IT
•® SCALANCE X204-2
•® PG/PC(使用編程電纜)
3.軟件需求
•® S7-1200編程軟件 STEP 7 Basic V10.5
•® S7-200 編程軟件 STEP 7 –MicroWIN V4.0 SP6
4.組態(tài)
4. 1 S7-1200 配置
•® 使用STEP 7 Basic 創(chuàng)建項(xiàng)目“comS7200”;
圖2: 創(chuàng)建項(xiàng)目
•® 添加S7-1200 設(shè)備 CPU1214C;
圖3: 添加PLC設(shè)備
4. 2 S7-1200 PLC 編程
•® 在Program blocks 下,添加程序塊(DB1,DB2,DB3),其中DB1和DB3為符號(hào)DB(選擇 Symbolic access only),DB3為絕對(duì)地址DB(不選擇 Symbolic access only) , S7 通信只支持絕對(duì)地址DB 尋址通信;
圖4: 創(chuàng)建絕對(duì)地址DB2
•® 打開全局DB2,輸入2個(gè)數(shù)組類型數(shù)據(jù),每個(gè)數(shù)組有16 個(gè)元素;
圖5: 在DB2中添加數(shù)據(jù)
•® 創(chuàng)建兩個(gè)Watch table(Watch table_1, Watch table_2) 用來(lái)觀察DB2的實(shí)時(shí)狀態(tài);
•® 將程序下載到PLC CPU1214C 中。
4. 3 S7-200 配置
使用STEP 7-MicroWIN 中以太網(wǎng)向?qū)P243-1 IT 配置為 S7 客戶端。
•® 通過(guò)菜單打開以太網(wǎng)向?qū)Чぞ撸?
圖6: 以太網(wǎng)向?qū)?
•® 設(shè)置模塊位置,可以使用“讀取模塊”來(lái)自動(dòng)識(shí)別;
圖7: 模塊位置設(shè)置
•® 設(shè)置模塊CP243-1 IT 的IP地址192.168.0.8和子網(wǎng)掩碼255.255.255.0;
圖8: 設(shè)置IP 地址
•® 設(shè)置模塊的連接數(shù)1 ,最多只能設(shè)置8個(gè),也就是說(shuō)S7-200可同時(shí)與最多 8 個(gè) S7 通訊伙伴進(jìn)行通訊;
圖9: 設(shè)置模塊連接數(shù);
•® 建立客戶端連接 Connection_1,設(shè)置服務(wù)器傳輸層服務(wù)接入點(diǎn) TSAP 03.01和服務(wù)器IP地址 192.168.0.18 , TSAP 由 2 個(gè)字節(jié)組成。第一個(gè)字節(jié)為連接資源。第二個(gè)字節(jié)為通訊模板的機(jī)架號(hào)和插槽號(hào);
圖10: 配置連接
•® 創(chuàng)建讀取數(shù)據(jù)傳輸 PeerMessage_1, 讀取服務(wù)器 16字節(jié) DB2.DBB0~ DB2.DBB15 到VB0~VB15;
圖11: 配置數(shù)據(jù)傳輸0
•® 創(chuàng)建讀取數(shù)據(jù)傳輸 PeerMessage_2, 將 16字節(jié)VB16~VB31寫入服務(wù)器DB2.DBB16~ DB2.DBB31 ;
圖12: 配置數(shù)據(jù)傳輸1
•® 為配置分配存儲(chǔ)區(qū);
圖13: 分配存儲(chǔ)區(qū)
4. 4 S7-200 PLC 編程
•® 在STEP 7-MicroWIN 中主程序中,調(diào)用子程序ETH0_CTRL;
圖14: 調(diào)用ETH0_CTRL
其中CP_Ready 為CP 243-1 IT 的狀態(tài)(0 未準(zhǔn)備就緒,1 準(zhǔn)備就緒),CH_Ready 為每個(gè)通道或 IT 服務(wù)的狀態(tài)(0通道 ,值為256):Error 為出錯(cuò)或報(bào)文代碼;
•® 程序建立后,需通過(guò)PPI連接 將程序塊和數(shù)據(jù)塊下載到S7-200 CPU中;
圖15: 設(shè)置 PG/PC 接口CP5611(PPI)
•® 這樣以后就可以通過(guò)以太網(wǎng)接口進(jìn)行下載,將PG/PC接口設(shè)為TCP/IP連接;
•® 在STEP 7-MicroWIN 中主程序中,調(diào)用子程序ETH0_XFR讀取服務(wù)器數(shù)據(jù),指定相應(yīng)的連接通道和數(shù)據(jù);
圖16:調(diào)用ETH0_XFR 讀取服務(wù)器
•® 在STEP 7-MicroWIN 中主程序中,調(diào)用子程序ETH0_XFR寫入服務(wù)器數(shù)據(jù),指定相應(yīng)的連接通道和數(shù)據(jù);
圖17:調(diào)用ETH0_XFR 寫入服務(wù)器
•® 將程序下載到S7-200 CPU 中;
4. 5 檢測(cè) S7-1200 與S7-200 PLC 通信結(jié)果
•® 從S7-200 程序中可知,在M10.0 從0變?yōu)?時(shí),讀取S7-1200的數(shù)據(jù)DB2.DBB0~DB2.DBB15 到VB0~VB15中;
圖18:S7-1200 DB2.DBB0~DBB15
圖19:S7-200 VB0~VB15
•® 從S7-200 程序中可知,在M11.0 從0變?yōu)?時(shí),將S7-200的數(shù)據(jù)VB16~VB31 寫入S7-1200 的DB2.DBB16~DB2.DBB31中;
圖20:S7-200 VB16~VB31
圖21:S7-1200 DB2.DBB16~DBB31
5.總結(jié)
S7 1200 與 S7-200 通過(guò) S7通信的基本原理如下圖所示:
圖22:S7-200與S7-1200 通信原理
注意:
CP 243-1 IT 可支持一個(gè)或多個(gè)遠(yuǎn)程通訊伙伴的最多 8 個(gè) S7 通訊通道到客戶機(jī)(最多212 字節(jié))或服務(wù)器。CP 243-1 IT 可以根據(jù)客戶機(jī)/服務(wù)器原理在每個(gè)通道運(yùn)行。每個(gè)通道,每次只能接收、處理或響應(yīng)(主動(dòng)響應(yīng)或被動(dòng)響應(yīng))一個(gè)請(qǐng)求。只有在發(fā)送響應(yīng)后,CP 243-1 IT 通訊處理器才能接受其它請(qǐng)求。
西門子S7-1200 緊湊型PLC在當(dāng)前的市場(chǎng)中有著廣泛的應(yīng)用,作為經(jīng)常與SENTRON PAC3200系列儀表共同使用的PLC,其Modbus通信協(xié)議的使用一直在市場(chǎng)上有著非常廣泛的應(yīng)用。本文將主要介紹如何使用Modbus 通信協(xié)議來(lái)實(shí)現(xiàn)S7-1200與SENTRON PAC3200儀表的通信。
1.西門子SENTRON PAC3200 儀表介紹
西門子的SENTRON PAC3200多功能電力儀表是一種用于面板安裝的儀表,可用來(lái)計(jì)量、顯示配電系統(tǒng)多達(dá)50個(gè)測(cè)量變量,例如電壓、電流、功率、有功功率、頻率以及最大值、最小值和平均值。中文大屏幕圖形液晶顯示使用戶可遠(yuǎn)距離讀表。PAC3200儀表如下圖所示。
圖1:儀表PAC3200
1.1 SENTRON PAC3200 MODBUS RTU通信擴(kuò)展模塊介紹
PAC3200多功能儀表的本體沒(méi)有MODBUS RTU通信的功能,如果希望將PAC3200作為從站連接到MODBUS RTU網(wǎng)絡(luò)與主站進(jìn)行數(shù)據(jù)交換必須選用外部擴(kuò)展通信模塊――SENTRON PAC RS485模塊。(注意: PAC RS485 擴(kuò)展模塊使用錯(cuò)誤的固件版本時(shí)將不能工作
SENTRON PAC3200 電力監(jiān)測(cè)設(shè)備的固件版本最低應(yīng)為FWV2.0X。 較早的版本不支持
PAC RS485 擴(kuò)展模塊。)該擴(kuò)展模塊具有下列性能特點(diǎn):
• 可通過(guò)設(shè)備正面設(shè)置參數(shù)
• 即插即用
• 支持 4.8/9.6/19.2 以及 38.4 KBd 通信傳輸速率
• 通過(guò)6針螺釘端子接線
• 不需要外接輔助電源
• 通過(guò)模塊上的 LED 顯示狀態(tài)
PAC3200 MODBUS RTU通信擴(kuò)展模塊如下圖所示。
(1) 通信接線端子
(2) 安裝螺釘
(3) 通風(fēng)口
(4) LED
圖2:PAC3200 MODBUS RTU 通信模塊
1.2 SENTRON PAC3200 MODBUS RTU通信擴(kuò)展模塊的接線
SENTRON PAC3200 MODBUS RTU通信擴(kuò)展模塊的接線如下圖所示
圖3:PAC3200 MODBUS RTU 通信模塊的接線圖
1. 將電纜連接到端子排上相應(yīng)的螺栓端子。
2. 將電纜屏蔽層的一端連接到保護(hù)性接地PE。
3. 將信號(hào)公共端連接到保護(hù)性接地。 這樣也使得擴(kuò)展模塊接地。
4. 在第一個(gè)和最后一個(gè)通信節(jié)點(diǎn)上,在正信號(hào)和負(fù)信號(hào)之間接入總線端接電阻器。 為
此,PAC RS485 擴(kuò)展模塊中集成了一個(gè)120 Ohm 的總線端接電阻器。 如果需要其它
電阻值,請(qǐng)使用外部總線端接電阻器。 將它連接到第一個(gè)和最后一個(gè)通信節(jié)點(diǎn)。
1.3 SENTRON PAC3200 MODBUS RTU通信的方式
1.SENTRON PAC3200設(shè)備支持的功能碼如下:
FC | 功能碼 | 數(shù)據(jù)類型 | 訪問(wèn)權(quán)限 | |
02 | 輸入的狀態(tài) | 位 | 輸入 | R |
03 | 輸出寄存器 | 寄存器 | 輸出 | R |
04 | 輸入寄存器 | 寄存器 | 輸入 | R |
06 | 單一輸出寄存器 | 寄存器 | 輸出 | RW |
10 | 多個(gè)輸出寄存器 | 寄存器 | - | RW |
2B | 設(shè)備識(shí)別 | - | - | R |
表1: SENTRON PAC3200設(shè)備支持的功能碼
R—可讀
RW—可讀寫
2.SENTRON PAC3200 MODBUS RTU 與S7-1200進(jìn)行通信
S7-1200 PLC可以通過(guò)功能代碼0x03 和0x04 訪問(wèn)儀表PAC3200的被測(cè)量數(shù)據(jù)。
下表是一些PAC3200 被測(cè)量的數(shù)據(jù)。
表2: SENTRON PAC3200設(shè)備的一些被測(cè)量數(shù)據(jù)
2.西門子SENTRON PAC3200 儀表與S7-1200進(jìn)行通信的接線圖
下圖是SENTRON PAC3200儀表與S7-1200進(jìn)行MODBUS RTU 通信的接線圖。
圖4:S7-1200與PAC3200進(jìn)行MODBUS RTU 進(jìn)行通信的接線圖
3.硬件需求
S7-1200 PLC目前有3種類型的CPU:
1)S7-1211C CPU。
2)S7-1212C CPU。
3)S7-1214C CPU。
這三種類型的CPU都可以使用MODBUS通信協(xié)議通過(guò)通信模塊CM1241 RS485來(lái)實(shí)現(xiàn)S7-1200與PAC3200儀表的通信。
本例中使用的PLC硬件為:
1)PM1207電源 ( 6EP1 332-1SH71 )
2) S7-1214C ( 6ES7 214 -1BE30 -0XB0 )
3) CM1241 RS485 ( 6ES7 241 -1CH30 -0XB0 )
4) 模擬器 ( 6ES7 274 -1XH30 -0XA0 )
本例中使用的PAC3200儀表硬件為:
1) PAC3200 (7KM2112-0BA00-3AA0)
2) MODBUS RTU 模塊 (7KM9300-0AB00-0AA0)
3) MODBUS 通信電纜 ( 6XV1830-0EH10)
3.軟件需求
1) 編程軟件 Step7 Basic V10.5 ( 6ES7 822-0AA0-0YA0)
4.S7-1200 MODBUS RTU的通信方式
S7-1200作為MODBUS RTU主站的通信方式是由DATA_ADDR 和 MODE 參數(shù)來(lái)選擇 Modbus 功能類型的。
DATA_ADDR(從站中的起始 Modbus 地址): 指定要在 Modbus 從站中訪問(wèn)的數(shù)據(jù)的起始地址。MB_MASTER 使用 MODE 輸入而非功能代碼輸入。 MODE 和 Modbus 地址范圍一起確定實(shí)際 Modbus 消息中使用的功能代碼。
下表列出了 MB_MASTER 參數(shù) MODE、Modbus 功能代碼和 Modbus 地址范圍之間的對(duì)應(yīng)關(guān)系。
表3: MB_MASTER的MODBUS 功能
5.S7-1200 與PAC3200 進(jìn)行MODBUS RTU的通信組態(tài)
我們通過(guò)一個(gè)實(shí)例來(lái)介紹如何在Step7 Basic V10.5 中組態(tài)S7-1214C 和PAC3200的MODBUS RTU通信。
5. 1 PLC 硬件組態(tài)
首先在Step7 Basic V10.5中建立一個(gè)項(xiàng)目,如圖1所示。
圖5: 新建S7 1200項(xiàng)目
在硬件配置中,添加CPU1214C和通信模塊CM1241 RS485模塊,如圖2所示。
圖6: S7 1200硬件配置
在CPU的屬性中,設(shè)置以太網(wǎng)的IP地址,建立PG與PLC的連接,如下圖所示。
圖7: S7 1200 IP地址的設(shè)置
5. 2 PAC3200參數(shù)設(shè)置
在SENTRON PAC 電力監(jiān)測(cè)設(shè)備的主菜單中,調(diào)用“設(shè)置”>“RS485 模塊”,出現(xiàn)下面的設(shè)置畫面:
圖8: PAC3200 MODBUS RTU 通信參數(shù)的設(shè)置
1. 地址的設(shè)置范圍:1-247。本例中設(shè)為8。
2. 波特率的設(shè)置范圍:4800,9600,19200,38400。本例中設(shè)為38400。
3. 設(shè)置外部通信的數(shù)據(jù)位、奇偶校驗(yàn)位及停止位:
• 8E1=8 個(gè)數(shù)據(jù)位,奇偶校驗(yàn)位為even, 1 個(gè)停止位
• 8O1=8 個(gè)數(shù)據(jù)位,奇偶校驗(yàn)位為odd, 1 個(gè)停止位
• 8N2=8 個(gè)數(shù)據(jù)位,無(wú)奇偶校驗(yàn)位, 2 個(gè)停止位
• 8N1=8 個(gè)數(shù)據(jù)位,無(wú)奇偶校驗(yàn)位, 1 個(gè)停止位
本例中根據(jù)S7-1200 MODBUS MASTER 的參數(shù)設(shè)置為 8N1。
4. 協(xié)議的設(shè)置:可選項(xiàng)為:SEABUS,MODBUS RTU。
本例中設(shè)為MODBUS RTU。
5.響應(yīng)時(shí)間的設(shè)置:注意與波特率的設(shè)置相匹配,本例中設(shè)為10mS。
6.S71200 與PAC3200的MODBUS RTU通信原理與編程的實(shí)現(xiàn)
6. 1 S7 1200 PLC與PAC3200 通過(guò)MODBUS RTU 通信的基本原理
S7 1200提供了專用的MODBUS庫(kù)進(jìn)行MODBUS通信,如下圖所示:
圖9: S7 1200提供的專用MODBUS庫(kù)
西門子PLC S7-1200的模塊CM1241 RS232和CM1241 RS485都可以實(shí)現(xiàn)MODBUS RTU的通信,本例中采用CM1241 RS485模塊來(lái)實(shí)現(xiàn)與儀表PAC3200的MODBUS RTU 的通信。
S7-1200的MODBUS RTU通信的基本原理是:
首先S7-1200 PLC的程序調(diào)用一次MODBUS 庫(kù)中的功能塊MB_COMM_LOAD來(lái)組態(tài)CM1241 RS232和CM1241 RS485模塊上的端口,對(duì)端口的參數(shù)進(jìn)行配置。
其次調(diào)用MODBUS 庫(kù)中的功能塊MB_MASTER或者M(jìn)B_SLAVE作為MODBUS 主站或者從站與支持MODBUS協(xié)議的設(shè)備進(jìn)行通信。
S7-1200 PLC作為MODUBUS 主站 與PAC3200 進(jìn)行MODBUS RTU 通信的控制原理如下圖所示:
圖10:S7-1200 PLC作為MODUBUS 主站 與PAC3200 進(jìn)行MODBUS RTU 通信原理
S7-1200 PLC還可以作為MODBUS子站與作為MODBUS主站之間的PLC進(jìn)行MODBUS RTU通信,其控制原理如下圖所示:
圖11:S7-1200 PLC作為MODBUS子站與作為MODBUS主站之間的PLC進(jìn)行MODBUS RTU的通信原理
每個(gè)S7-1200 CPU最多可帶3個(gè)通信模塊,而每個(gè)CM1241 RS485通信模塊理論上最多支持247個(gè)MODBUS子站。但是在實(shí)際應(yīng)用時(shí)需要考慮CPU的性能以及輪循MODBUS子站的時(shí)間。
6. 2 S7 1200 PLC與PAC3200通過(guò)MODBUS RTU通信的編程
1.MODBUS RTU 通信接口參數(shù)的編程
MB_COMM_LOAD 功能塊用于組態(tài)點(diǎn)對(duì)點(diǎn) (PtP, Point-to-Point) CM 1241RS485 或 CM 1241 RS232 模塊上的端口,以進(jìn)行 Modbus RTU 協(xié)議通信。
程序開始運(yùn)行時(shí),調(diào)用一次MB_COMM_LOAD功能塊,來(lái)實(shí)現(xiàn)對(duì)MODBUS RTU模塊
的初始化組態(tài)。
MB_COMM_LOAD執(zhí)行一次的編程方式采用如下圖所示時(shí)鐘位M10.0來(lái)完成。
圖12:MB_COMM_LOAD執(zhí)行一次的編程時(shí)鐘位的設(shè)置
MB_COMM_LOAD功能塊的編程如下圖所示。
圖13:MB_COMM_LOAD功能塊的編程
PORT:指的是通過(guò)哪個(gè)通信模塊進(jìn)行MODBUS RTU通信。
BAUD:指的是和MODBUS子站進(jìn)行通信的速率。
通信端口的波特率。取值范圍為300,600,1200,2400,4800,9600,19200,38400,57600,
76800,115200。
注意:儀表PAC3200的波特率的設(shè)置范圍:4800,9600,19200,38400。因此上S7-1200
的波特率的設(shè)置一定要和儀表PAC3200的波特率的設(shè)置相一致。
MB_DB:對(duì) MB_MASTER 或 MB_SLAVE 指令所使用的背景數(shù)據(jù)塊的引用。 在用戶程序中放置
MB_SLAVE 或 MB_MASTER 后,DB標(biāo)識(shí)符會(huì)出現(xiàn)在 MB_DB 功能框連接的助手下拉列表中。
如“MB_MASTER_DB”或“MB_SLAVE_DB”。
STATUS:端口狀態(tài)代碼。具體含義如下表所示。
表4: MB_COMM_LOAD組態(tài)端口的狀態(tài)代碼
2.MODBUS_MASTER功能塊的編程
MB_MASTER 功能塊允許程序作為Modbus 主站使用點(diǎn)對(duì)點(diǎn) (PtP, Point-to-Point) CM 1241 RS485 或 CM 1241RS232 模塊上的端口進(jìn)行通信。 可訪問(wèn)一個(gè)或多個(gè) Modbus 從站設(shè)備中的數(shù)據(jù)。
MB_MASTER功能塊的編程如下圖所示。
圖14:MB_MASTER功能塊的編程
REQ:數(shù)據(jù)發(fā)送請(qǐng)求信號(hào)。0-無(wú)請(qǐng)求。1-請(qǐng)求將數(shù)據(jù)傳送到MODBUS從站。
MB_ADR:通信對(duì)象MODBUS從站的地址。有效地址范圍為0-247。值 0 被保留用于將消息廣播到所有 Modbus 從站。 只有Modbus 功能代碼 05、06、15 和 16 是可用于廣播的功能代碼。
注意:此處MODBUS從站的地址一定要與儀表PAC3200 的MODBUS 地址相一致。
MODE:模式選擇。選擇范圍為:讀、寫、診斷。
DATA_ADDR:從站中的起始地址: 指定要在 Modbus 從站中訪問(wèn)的數(shù)據(jù)的起始地址。
特別注意的是:由于儀表PAC3200的寄存器與S7-1200 MODBUS RTU寄存器的不一致
性,讀取儀表PAC3200的DATA_ADDR的地址必須從40002開始。
注意: S7-1200的MODBUS RTU通信功能是通過(guò)使用“DATA_ADDR”和“MODE”的組合
來(lái)選擇MODBUS功能碼,如下表所示。
表5: S7-1200的MODBUS RTU通信功能碼
而儀表PAC3200 MODBUS RTU通信功能則是通過(guò)功能碼來(lái)實(shí)現(xiàn)的,如下表所示。
FC | 功能碼 | 數(shù)據(jù)類型 | 訪問(wèn)權(quán)限 | |
02 | 輸入的狀態(tài) | 位 | 輸入 | R |
03 | 輸出寄存器 | 寄存器 | 輸出 | R |
04 | 輸入寄存器 | 寄存器 | 輸入 | R |
06 | 單一輸出寄存器 | 寄存器 | 輸出 | RW |
10 | 多個(gè)輸出寄存器 | 寄存器 | - | RW |
2B | 設(shè)備識(shí)別 | - | - | R |
表6: 儀表PAC3200 MODBUS RTU通信功能碼
因此從上述可以得出如果需要讀取輸出寄存器的值時(shí),需要使用模式0的03H功能,即
從寄存器40001到49999來(lái)讀取儀表的數(shù)據(jù),但是由于儀表PAC3200的寄存器與S7-1200
MODBUS RTU寄存器的不一致性,讀取儀表PAC3200的DATA_ADDR的地址必須從40002開
始。
DATA_LEN:請(qǐng)求訪問(wèn)數(shù)據(jù)的長(zhǎng)度。位數(shù)或字節(jié)數(shù)。
DATA_PTR:數(shù)據(jù)指針: 指向要寫入或讀取的數(shù)據(jù)的 CPU DB 地址。 該DB 必須為
“非僅符號(hào)訪問(wèn)”DB 類型。
NDR: 新數(shù)據(jù)就緒:
•0 – 事務(wù)未完成
•1 – 表示 MB_MASTER 指令已完成所請(qǐng)求的有關(guān) Modbus從站的事務(wù)。
BUSY:忙:
•0 – 無(wú)正在進(jìn)行的 MB_MASTER 事務(wù)
•1 – MB_MASTER 事務(wù)正在進(jìn)行
ERROR:錯(cuò)誤:
•0 - 未檢測(cè)到錯(cuò)誤
•1 – 表示檢測(cè)到錯(cuò)誤并且參數(shù) STATUS 提供的錯(cuò)誤代碼有效。
STATUS:狀態(tài)代碼,如下表所示。
表7: MB_MASTER 進(jìn)行MODBUS RTU通信的狀態(tài)代碼
在成功地編譯下載到在S7-1200 PLC中后,可以從變量表中看到儀表PAC3200的三相相電壓數(shù)據(jù),如下圖所示。
圖15:在S7-1200中通過(guò)MODBUS RTU通信得到的儀表PAC3200的三相相電壓數(shù)據(jù)
Modbus 主站通信規(guī)則:
● 必須先執(zhí)行 MB_COMM_LOAD 組態(tài)端口,然后 MB_MASTER 指令才能與該端口通
信。
● 如果要將某個(gè)端口用于初始化 Modbus 主站的請(qǐng)求,則 MB_SLAVE 將不能使用該端
口。MB_MASTER 執(zhí)行的一個(gè)或多個(gè)實(shí)例可使用該端口。
● Modbus 指令不使用通信中斷事件來(lái)控制通信過(guò)程。 用戶程序必須輪詢
MB_MASTER 指令以了解傳送和接收的完成情況。
● 如果用戶程序操作 Modbus 主站并使用 MB_MASTER 向從站發(fā)送請(qǐng)求,則用戶必須
繼續(xù)輪詢(執(zhí)行 MB_MASTER)直到返回從站的響應(yīng)。
● 請(qǐng)從同一個(gè) OB(或 OB 優(yōu)先等級(jí))調(diào)用指定端口的所有 MB_MASTER 執(zhí)行。
3.MODBUS_SLAVE功能塊的編程
由于S7-1200與PAC3200進(jìn)行MODBUS RTU通信,沒(méi)有使用MODBUS_SLAVE功能塊,因此在此只作簡(jiǎn)單介紹。
MB_SLAVE 指令允許程序作為 Modbus 從站使用點(diǎn)對(duì)點(diǎn) (PtP, Point-to-Point) CM 1241RS485 或 CM 1241 RS232 模塊上的端口進(jìn)行通信。 Modbus RTU 主站可以發(fā)出請(qǐng)求,然后程序通過(guò)執(zhí)行 MB_SLAVE 來(lái)響應(yīng)。
在程序中放置 MB_SLAVE 指令時(shí),必須分配唯一的背景數(shù)據(jù)塊。 指定MB_COMM_LOAD 指令中的 MB_DB 參數(shù)時(shí)會(huì)用到該 MB_SLAVE 背景數(shù)據(jù)塊名稱。
Modbus 通信功能代碼(1、2、4、5 和 15)可以在 PLC 輸入過(guò)程映像及輸出過(guò)程映像中直接讀寫位和字。
圖16:MB_SLAVE 功能塊
MB_ADDR:Modbus RTU 地址(1 到 247):Modbus 從站的站地址。
MB_HOLD_REG:指向 Modbus 保持寄存器 DB 的指針。 保持寄存器 DB 必須為典型的全局 DB。注意:在創(chuàng)建此數(shù)據(jù)塊時(shí),請(qǐng)不要選擇“Symbolic address only僅通過(guò)符號(hào)地址訪問(wèn)”。使用“MB_SLAVE”指令時(shí),
NDR:新數(shù)據(jù)就緒:
•0 – 無(wú)新數(shù)據(jù)
•1 – 表示 Modbus 主站已寫入新數(shù)據(jù)
DR:數(shù)據(jù)讀?。?br /> •0 – 無(wú)數(shù)據(jù)讀取
•1 – 表示 Modbus 主站已讀取數(shù)據(jù)
ERROR:錯(cuò)誤:
•0 - 未檢測(cè)到錯(cuò)誤
•1 – 表示檢測(cè)到錯(cuò)誤并且參數(shù) STATUS 提供的錯(cuò)誤代碼有效。
STATUS:錯(cuò)誤代碼。如下表所示。
表8: MB_SLAVE 進(jìn)行MODBUS RTU通信的狀態(tài)代碼
西門子S7-1200 緊湊型PLC在當(dāng)前的市場(chǎng)中有著廣泛的應(yīng)用,由于其性價(jià)比高,所以常被用作小型自動(dòng)化控制設(shè)備的控制器,這也使得它經(jīng)常與第三方的設(shè)備(掃描槍、打印機(jī)等設(shè)備進(jìn)行通訊。因?yàn)闆](méi)有第三方的設(shè)備,這里就以超級(jí)終端為例介紹自由口通訊。
1.控制系統(tǒng)原理
圖1:控制系統(tǒng)原理
2.硬件需求
S7-1200 PLC目前有3種類型的CPU:
1)S7-1211C CPU。
2)S7-1212C CPU。
3)S7-1214C CPU。
這三種類型的CPU都可以連接三個(gè)串口通信模版。
本例中使用的PLC硬件為:
1)PM1207電源 ( 6EP1 332-1SH71 )
2) S7-1214C ( 6ES7 214 -1BE30 -0XB0 )
3) CM1241 RS232 ( 6ES7 241 -1AH30 -0XB0 )
3.軟件需求
1) 編程軟件 Step7 Basic V10.5 ( 6ES7 822-0AA0-0YA0)
4.組態(tài)
我們通過(guò)下述的實(shí)際操作來(lái)介紹如何在Step7 Basic V10.5 中組態(tài)S7-1214C 和超級(jí)終端通信。
點(diǎn)擊桌面上的“Totally Integrated Automation Portal V10”圖標(biāo),打開如下圖:
圖2: 新建S7 -1200項(xiàng)目
首先需要選擇“Create new project”選項(xiàng),然后在“Project name:”里輸入PTP;在“Path:”修改項(xiàng)目的存儲(chǔ)路徑為“C:\”;點(diǎn)擊“Create”,這樣就創(chuàng)建了一個(gè)文件PTP的新項(xiàng)目。創(chuàng)建后的窗口如下圖所示:
圖3: 新建項(xiàng)目后
點(diǎn)擊門戶視圖左下角的“Project View”切換到項(xiàng)目視圖下,如下圖:
圖4: 切換到項(xiàng)目視圖
打開后,在“Devices”標(biāo)簽下,點(diǎn)擊“Add new device”,在彈出的菜單中輸入設(shè)備名“PLC_1”并在設(shè)備列表里選擇CPU的類型。選擇后如下圖:
圖5: PLC硬件組態(tài)
插入CPU后,點(diǎn)擊CPU左邊的空槽,在右邊的“Catalog ”里找到“Communication”下的RS232模塊,拖拽或雙擊此模塊,這樣就把串口模塊插入到硬件配置里,接下來(lái)就需要配置此RS232模塊硬件接口參數(shù),選擇RS232模塊,在其下方會(huì)出現(xiàn)該模塊的硬件屬性配置窗口, 在屬性窗口里有兩個(gè)選項(xiàng),一個(gè)是“general”;一個(gè)是“RS232 interface”。在“General”里包括了此模塊的“項(xiàng)目信息”和“訂貨信息”;而在“RS232 interface”里包括“項(xiàng)目信息”、“端口的配置”、“發(fā)送信息的配置”、“接收信息的配置”和“硬件識(shí)別號(hào)”。在這里我們選擇“RS232 interface”,在“端口”配置的選項(xiàng)里,進(jìn)行端口的參數(shù)配置,
波特率為:9600 ;
校驗(yàn)方式:無(wú) ;
數(shù)據(jù)位為:8 ;
停止位: 1;
硬件流控制:無(wú);
等待時(shí)間: 1ms
設(shè)置參數(shù)如下圖:
圖6: RS232接口配置
此時(shí)確認(rèn)一下“硬件識(shí)別號(hào)”為11。
此時(shí),完成了硬件的組態(tài),接下來(lái)需要編寫串口通訊程序,在這里我們實(shí)現(xiàn)兩個(gè)功能:
一、 S7-1200 發(fā)送數(shù)據(jù)給超級(jí)終端;
二、 超級(jí)終端發(fā)送數(shù)據(jù)給S7-1200
對(duì)于第一個(gè)功能:S7-1200發(fā)送數(shù)據(jù)給超級(jí)終端,實(shí)際上是S7-1200是數(shù)據(jù)的發(fā)送方,超級(jí)終端是數(shù)據(jù)的接收方,對(duì)于S7-1200需要編寫發(fā)送程序;而對(duì)于超級(jí)終端來(lái)說(shuō),只要打開超級(jí)終端程序,配置硬件接口參數(shù)與前面S7-1200的端口參數(shù)一只即可。
下面的步驟將具體介紹此功能實(shí)現(xiàn)的步驟:
①、在PLC中編寫發(fā)送程序。在項(xiàng)目管理視圖下雙擊“Device”下的程序塊下的Main(OB1),打開OB1,在主程序中調(diào)用SEND_PTP功能塊如下圖所示:(注:SEND_PTP在指令庫(kù)下的擴(kuò)展指令中通訊指令下)
圖7: 調(diào)用發(fā)送功能塊
要對(duì)SEND_PTP賦值參數(shù),首先需要?jiǎng)?chuàng)建SEND_PTP的背景數(shù)據(jù)塊和發(fā)送緩沖數(shù)據(jù)塊 ,雙擊“Devices”——> “PLC_1”——>“Program Block ”——“Add new block”,在彈出的串口命名DB_Send_PTP,選擇DB塊,在Type后選擇“SEND_PTP(SFB113)”
圖8: 創(chuàng)建發(fā)送功能塊的背景數(shù)據(jù)塊
插入背景DB后,再插入發(fā)送緩沖DB塊,重復(fù)上面的步驟,只是在選擇DB類型為“Global DB”,并去掉“Symbolic access only”選項(xiàng)勾(這樣可以對(duì)該DB塊進(jìn)行直接地址訪問(wèn)),并取名該DB塊為DB_SEND_BUFF。建好這兩個(gè)DB塊后,雙擊打開DB_SEND_BUFF預(yù)先定義好要發(fā)送的數(shù)據(jù),如下圖所示:
圖9:在接收緩沖區(qū)中接收到的數(shù)據(jù)
定義完發(fā)送緩沖區(qū)后,接下來(lái)就可以對(duì)SEND_PTP賦值參數(shù),賦值參數(shù)后如下圖:
圖10:發(fā)送編程
在上面的編程塊里需要注意的是,在指定發(fā)送緩沖區(qū)時(shí)。字符的開始地址是從第二個(gè)字節(jié),而不是零字節(jié)開始,即是P#DB2.DBX2.0 Byte10 而不是P#DB2.DBX0.0 Byte10,原因是由于S7-1200對(duì)字符串的存放的格式造成的,S7-1200對(duì)字符串的前兩個(gè)字節(jié)的定義第一字節(jié)是最大的字符長(zhǎng)度,第二個(gè)字節(jié)是實(shí)際的字符長(zhǎng)度。接下來(lái)才是存放實(shí)際字符。如下圖:
圖11:String存儲(chǔ)格式
上面就完成了程序的編寫,對(duì)項(xiàng)目進(jìn)行編譯;右擊PLC_1項(xiàng)目在彈出的菜單里選擇“Complies ALL”選項(xiàng),這樣就對(duì)硬件與軟件進(jìn)行編譯,如下圖:
圖12:編譯項(xiàng)目
編譯且沒(méi)有錯(cuò)誤后就可以下載程序到PLC中,同樣右擊PLC_1項(xiàng)目,在彈出的菜單選擇“Download to Device”。
②、用串口交叉線連接S7-1200的串口與計(jì)算機(jī)的串口,打開計(jì)算機(jī)的超級(jí)終端程序,并設(shè)置硬件端口參數(shù)如下圖:
圖13:超級(jí)終端的端口設(shè)置
③、打開OB1功能塊在線監(jiān)控程序,在變量監(jiān)控表里強(qiáng)制M0.0為1,觸發(fā)數(shù)據(jù)的發(fā)送,此時(shí)在超級(jí)終端就會(huì)接收到發(fā)送的數(shù)據(jù),如下圖:
圖14:在超級(jí)終端監(jiān)控發(fā)送來(lái)的數(shù)據(jù)
對(duì)于第二個(gè)功能:超級(jí)終端發(fā)送數(shù)據(jù)給S7-1200,實(shí)際上是S7-1200是數(shù)據(jù)的接收方,超級(jí)終端是數(shù)據(jù)的發(fā)送方,對(duì)于S7-1200需要編寫接收程序;而對(duì)于超級(jí)終端來(lái)說(shuō),只要打開超級(jí)終端程序,配置硬件接口參數(shù)與前面S7-1200的端口參數(shù)一致,在界面上輸入發(fā)送內(nèi)容即可。
下面的步驟將具體介紹此功能實(shí)現(xiàn)的步驟:
①、在PLC中編寫發(fā)送程序。在項(xiàng)目管理視圖下雙擊“Device”下的程序塊下的Main(OB1),打開OB1,在主程序中調(diào)用RCV_PTP功能塊如下圖所示:(注:RCV_PTP在指令庫(kù)下的擴(kuò)展指令中通訊指令下)
圖15: 調(diào)用發(fā)送功能塊
要對(duì)RCV_PTP賦值參數(shù),首先需要?jiǎng)?chuàng)建RCV_PTP的背景數(shù)據(jù)塊和發(fā)送緩沖數(shù)據(jù)塊 ,雙擊“Devices”——> “PLC_1”——>“Program Block ”——“Add new block”,在彈出的串口命名DB_RCV_PTP,選擇DB塊,在Type后選擇“RCV_PTP(SFB114)”
圖16: 創(chuàng)建接收功能塊的背景數(shù)據(jù)塊
插入背景DB后,再插入接收緩沖DB塊,重復(fù)上面的步驟,只是在選擇DB類型為“Global DB”,并去掉“Symbolic access only”選項(xiàng)勾(這樣可以對(duì)該DB塊進(jìn)行直接地址訪問(wèn)),并取名該DB塊為DB_RCV_BUFF。建好這兩個(gè)DB塊后,雙擊打開DB_RCV_BUFF定義接收緩沖區(qū)數(shù)據(jù)的類型,如下圖所示:
圖17:定義接收緩沖區(qū)
定義完接收緩沖區(qū)后,接下來(lái)就可以對(duì)RCV_PTP賦值參數(shù),賦值參數(shù)后如下圖:
圖18:接收編程
在上面的編程塊里需要注意的是,在指定接收緩沖區(qū)時(shí)。字符的開始地址是從第二個(gè)字節(jié),而不是零字節(jié)開始,即是P#DB2.DBX2.0 Byte10 而不是P#DB2.DBX0.0 Byte10,原因是由于S7-1200對(duì)字符串的存放的格式造成的,S7-1200對(duì)字符串的前兩個(gè)字節(jié)的定義第一字節(jié)是最大的字符長(zhǎng)度,第二個(gè)字節(jié)是實(shí)際的字符長(zhǎng)度。接下來(lái)才是存放實(shí)際字符。如下圖:
圖19:String存儲(chǔ)格式
上面就完成了程序的編寫,對(duì)項(xiàng)目進(jìn)行編譯;右擊PLC_1項(xiàng)目在彈出的菜單里選擇“Complies ALL”選項(xiàng),這樣就對(duì)硬件與軟件進(jìn)行編譯,如下圖:
圖20:編譯項(xiàng)目
編譯且沒(méi)有錯(cuò)誤后就可以下載程序到PLC中,同樣右擊PLC_1項(xiàng)目,在彈出的菜單選擇“Download to Device”。
②、用串口交叉線連接S7-1200的串口與計(jì)算機(jī)的串口,打開計(jì)算機(jī)的超級(jí)終端程序,并設(shè)置硬件端口參數(shù)如下圖:
圖21:超級(jí)終端的端口設(shè)置
在桌面上新建文本文件,打開此文本文件在里面輸入“gfdcba”,如下圖:
圖22:在文本文件下輸入要發(fā)送的字符串
③、打開變量監(jiān)控表,強(qiáng)制M0.0,使能接收。然后, 在超級(jí)終端里,選擇菜單“Transfer”下的“Send Text file”,在打開的窗口里找到桌面 上的文本文件。
圖23:通過(guò)超級(jí)終端發(fā)送數(shù)據(jù)
打開DB_RCV_BUFF數(shù)據(jù)塊,在線查看接收到的數(shù)據(jù),如下圖:
圖23:接收緩沖區(qū)中接收到的數(shù)據(jù)
通過(guò)上面的例子實(shí)現(xiàn)了簡(jiǎn)單的應(yīng)用,在實(shí)際的應(yīng)用過(guò)程中,需要按第三方設(shè)備的協(xié)議進(jìn)行編寫S7-1200的程序。
6ES7222-1HF32-0XB0