在一些特定場(chǎng)合,比如說(shuō)與松下系列伺服驅(qū)動(dòng)器的控制時(shí),為了保證數(shù)據(jù)的安全,我們需要進(jìn)行多次往返的數(shù)據(jù)交換,這就需要嚴(yán)格控制通訊的時(shí)間。那么這個(gè)時(shí)候?qū)τ?a href="http://www.asorrir.com/v/tag/323/" target="_blank">PLC來(lái)說(shuō)通訊就是最重要的,所以我們需要打斷PLC的正常功能,優(yōu)先處理通訊,這就需要通訊中斷。
實(shí)例:2臺(tái)S7-200 SMART CPU(端口0)采用自由口通信方式實(shí)現(xiàn)相互通信
(本文僅為展示自由口通訊和中斷,如果想要實(shí)現(xiàn)這兩個(gè)PLC的通訊其實(shí)最好是使用向?qū)нM(jìn)行以太網(wǎng)通訊,有機(jī)會(huì)我們也會(huì)進(jìn)行講解!)
通信任務(wù):CPU1 每秒觸發(fā)一次 XMT 指令將 CPU 的實(shí)時(shí)時(shí)鐘發(fā)送到 CPU2;CPU2 接收到 CPU1 發(fā)送的信息后立即將 CPU2 的實(shí)時(shí)時(shí)鐘回復(fù)到 CPU1。
接線:每個(gè) S7-200 SMART CPU 都提供一個(gè)以太網(wǎng)端口和一個(gè) RS485 端口(端口0),標(biāo)準(zhǔn)型 CPU 額外支持 SB CM01 信號(hào)板(端口1),信號(hào)板可通過(guò) STEP 7-Micro/WIN SMART 軟件組態(tài)為 RS232 通信端口或 RS485 通信端口。
CPU 通信端口引腳分配
1、CPU1 編程
1.1、CPU1 主程序編程如圖 所示:
CPU1主程序
程序講解:
1. 設(shè)置 SMB30 = 2#00001001 (自由口通信,波特率 9600 bps,8 位數(shù)據(jù)位,無(wú)校驗(yàn))。
2. 設(shè)置 SMB87 = 2#10010100,使用空閑線檢測(cè)為信息接收的起始條件,使用字符間定時(shí)器為信息接收的結(jié)束條件。
3. 設(shè)置空閑線定時(shí)器 SMW90 = 5 ms,字符間定時(shí)器 SMW92 = 5 ms,允許最大接收字符個(gè)數(shù) SMB94 = 10。
4. 連接中斷子程序 INT_0 到通信端口 0 發(fā)送完成事件,并啟用中斷。
5. 每秒鐘讀取一次 CPU 的實(shí)時(shí)時(shí)鐘,并將發(fā)送緩沖區(qū)長(zhǎng)度設(shè)置為 8 個(gè)字符。
6. 執(zhí)行 XMT 指令之前設(shè)置 SM87.7 = 0,同時(shí)執(zhí)行 RCV 指令,終止消息接收。
7. 每秒鐘執(zhí)行一次 XMT 指令將 CPU 的實(shí)時(shí)時(shí)鐘發(fā)送出去。
1.2、 CPU1 發(fā)送完成中斷子程序 INT_0 編程
中斷子程序INT_0用于恢復(fù) SMB87 的設(shè)置(SM87.7 = 1),并執(zhí)行 RCV 指令開(kāi)始接收 CPU2的應(yīng)答信息。程序如圖4. 所示:
CPU1 中斷子程序 INT_0
2、CPU2 編程
2.1、CPU2 主程序編程如圖所示:
CPU2主程序
1. 設(shè)置 SMB30 = 2#00001001 (自由口通信,波特率 9600 bps,8 位數(shù)據(jù)位,無(wú)校驗(yàn))。
2. 設(shè)置 SMB87 = 2#10010100,使用空閑線檢測(cè)為信息接收的起始條件,使用字符間定時(shí)器為信息接收的結(jié)束條件。
3. 設(shè)置空閑線定時(shí)器 SMW90 = 5 ms,字符間定時(shí)器 SMW92 = 5 ms,允許最大接收字符個(gè)數(shù) SMB94 = 10。
4. 連接中斷子程序 INT_0 到通信端口 0 接收完成事件,中斷子程序 INT_1 到通信端口 0 發(fā)送完成事件,并啟用中斷。
5. 使用 SM0.1 調(diào)用 RCV 指令地執(zhí)行。
2.2、 CPU2 接收完成中斷子程序 INT_0 編程
中斷子程序INT_0用于讀取 CPU 實(shí)時(shí)時(shí)鐘,并調(diào)用 XMT 指令將實(shí)時(shí)時(shí)鐘信息發(fā)送出去。程序如圖所示。
CPU2 接收完成中斷子程序 INT_0
2.3、 CPU2 發(fā)送完成中斷子程序 INT_1 編程
中斷子程序 INT_1 用于執(zhí)行 RCV 指令,并開(kāi)始新的信息接收任務(wù)。程序如圖 7.所示。
CPU2 發(fā)送完成中斷子程序 INT_0
審核編輯 :李倩
-
plc
+關(guān)注
關(guān)注
5031文章
13795瀏覽量
472654 -
通訊
+關(guān)注
關(guān)注
9文章
927瀏覽量
35532 -
伺服驅(qū)動(dòng)器
+關(guān)注
關(guān)注
22文章
518瀏覽量
32433
原文標(biāo)題:西門(mén)子PLC自由口通訊+中斷,有多少人用過(guò)?
文章出處:【微信號(hào):愛(ài)上PLC,微信公眾號(hào):愛(ài)上PLC】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
如何破解三菱PLC與西門(mén)子PLC的通訊難題

西門(mén)子Smart200網(wǎng)口穿透教程
工業(yè)智能網(wǎng)關(guān)可以采集西門(mén)子PLC嗎
EtherCAT轉(zhuǎn)ProfiNet西門(mén)子1200PLC與伺服電機(jī)通訊案例全解

ABB機(jī)器人與西門(mén)子PLC通訊案例
Profinet轉(zhuǎn)Profinet網(wǎng)關(guān)應(yīng)用在霍尼韋爾DCS與西門(mén)子1500PLC通訊案例

西門(mén)子PLC S7-1500系列介紹

Profinet 轉(zhuǎn) EtherNet/IP 網(wǎng)關(guān)怎樣化解西門(mén)子 S7 - 1500 PLC 與 AB PLC 之間的通訊難題

基于 EtherCAT 轉(zhuǎn) ProfiNet 網(wǎng)關(guān)達(dá)成西門(mén)子 1200 PLC 與伺服電機(jī)通訊連接的應(yīng)用實(shí)例

串口IO系列與西門(mén)子PLC Modbus RTU連接例程

評(píng)論