西門子S7-1200CPU1217C模塊控制器
緊湊的高性能CPU1217C,帶24 點(diǎn)集成式I/O。可通過以下方式擴(kuò)展:1個(gè)信號(hào)板 (SB) 或通信板 (CB);8個(gè)信號(hào)模塊 (SM)
;多3個(gè)通信模塊 (CM)。
西門子S7-1200CPU1217C模塊控制器
. 地址的設(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 通過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模塊來實(shí)現(xiàn)與儀表PAC3200的MODBUS RTU 的通信。
S7-1200的MODBUS RTU通信的基本原理是:
首先S7-1200 PLC的程序調(diào)用一次MODBUS 庫(kù)中的功能塊MB_COMM_LOAD來組態(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通過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功能塊,來實(shí)現(xiàn)對(duì)MODBUS RTU模塊
的初始化組態(tài)。
MB_COMM_LOAD執(zhí)行一次的編程方式采用如下圖所示時(shí)鐘位M10.0來完成。
圖12:MB_COMM_LOAD執(zhí)行一次的編程時(shí)鐘位的設(shè)置
MB_COMM_LOAD功能塊的編程如下圖所示。
圖13:MB_COMM_LOAD功能塊的編程
PORT:指的是通過哪個(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)行通信。 可訪問一個(gè)或多個(gè) Modbus 從站設(shè)備中的數(shù)據(jù)。
MB_MASTER功能塊的編程如下圖所示。