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