例程 1 :S7-200 SMART CPU集成的RS485 端口(端口0)實現(xiàn)與條碼掃描槍通信
例程 2 :2臺S7-200 SMART CPU(端口0)采用自由口通信方式實現(xiàn)相互通信
例程 3:使用任意字符檢測為接收消息的起始條件時,選擇消息定時器和其它結(jié)束條件組合為接收消息的結(jié)束條件
條碼掃描槍通常為 RS232 端口,其與 S7-200 SMART CPU 集成的 RS485 端口連接時需要使用 RS232/485 轉(zhuǎn)換設(shè)備或 RS-232/PPI 多主站電纜。
條碼掃描槍接收到條碼后會自動通過 RS232 端口發(fā)送報文,S7-200 SMART CPU 需要調(diào)用 RCV 指令接收報文,并在接收完成中斷中再次使能 RCV 指令循環(huán)接收報文。
CPU 主程序見圖1.所示:
圖1.CPU 主程序
1.設(shè)置 SMB30 = 2#00001001 (自由口通信,波特率 9600,8 位數(shù)據(jù)位,無校驗);
2.設(shè)置 SMB87 = 2#10010100,使用空閑線檢測為信息接收的起始條件,使用字符間定時器為信息接收的結(jié)束條件 ;
3.設(shè)置空閑線定時器 SMW90 = 5 ms,字符間定時器 SMW92 = 5 ms,允許最大接收字符個數(shù) SMB94 = 50;
4.連接中斷子程序 INT_0 到通信端口 0 接收完成事件,并使能中斷;
5. 使用 SM0.1 觸發(fā) RCV 指令地執(zhí)行。
CPU 中斷程序見圖2.所示:
圖2.CPU 中斷程序
1.判斷信息接收結(jié)束是否為字符間超時結(jié)束(SM86.2 = 1),若是,則認為接收成功,接收成功計算器 VB200 自加一;
2.消息接收成功時接收的信息拷貝到 VB300 為起始地址的存儲區(qū);
3.開始下一次 RCV 指令地執(zhí)行。
以上描述步驟參考下面的通信例程,例程中的 CPU 類型可能與用戶實際使用的類型不同,用戶可能需要先對例子程序做修改和調(diào)整,才能將其用于測試。
注意:此指令庫/程序的作者和擁有者對于該軟件的功能性和兼容性不負任何責任。使用該軟件的風險完全由用戶自行承擔。由于它是免費的,所以不提供任何擔保,錯誤糾正和熱線支持,用戶不必為此聯(lián)系西門子技術(shù)支持與服務部門。
通信任務:CPU1 每秒觸發(fā)一次 XMT 指令將 CPU 的實時時鐘發(fā)送到 CPU2;CPU2 接收到 CPU1 發(fā)送的信息后立即將 CPU2 的實時時鐘回復到 CPU1。
1、CPU1 編程
1.1、CPU1 主程序編程如圖3. 所示:
圖3. CPU1主程序
1. 設(shè)置 SMB30 = 2#00001001 (自由口通信,波特率 9600 bps,8 位數(shù)據(jù)位,無校驗)。
2. 設(shè)置 SMB87 = 2#10010100,使用空閑線檢測為信息接收的起始條件,使用字符間定時器為信息接收的結(jié)束條件。
3. 設(shè)置空閑線定時器 SMW90 = 5 ms,字符間定時器 SMW92 = 5 ms,允許最大接收字符個數(shù) SMB94 = 10。
4. 連接中斷子程序 INT_0 到通信端口 0 發(fā)送完成事件,并啟用中斷。
5. 每秒鐘讀取一次 CPU 的實時時鐘,并將發(fā)送緩沖區(qū)長度設(shè)置為 8 個字符。
6. 執(zhí)行 XMT 指令之前設(shè)置 SM87.7 = 0,同時執(zhí)行 RCV 指令,終止消息接收。
7. 每秒鐘執(zhí)行一次 XMT 指令將 CPU 的實時時鐘發(fā)送出去。
1.2、 CPU1 發(fā)送完成中斷子程序 INT_0 編程
中斷子程序INT_0用于恢復 SMB87 的設(shè)置(SM87.7 = 1),并執(zhí)行 RCV 指令開始接收 CPU2的應答信息。程序如圖4. 所示:
圖4. CPU1 中斷子程序 INT_0
2、CPU2 編程
2.1、CPU2 主程序編程如圖5. 所示:
圖5. CPU2主程序
1. 設(shè)置 SMB30 = 2#00001001 (自由口通信,波特率 9600 bps,8 位數(shù)據(jù)位,無校驗)。
2. 設(shè)置 SMB87 = 2#10010100,使用空閑線檢測為信息接收的起始條件,使用字符間定時器為信息接收的結(jié)束條件。
3. 設(shè)置空閑線定時器 SMW90 = 5 ms,字符間定時器 SMW92 = 5 ms,允許最大接收字符個數(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 實時時鐘,并調(diào)用 XMT 指令將實時時鐘信息發(fā)送出去。程序如圖如圖 6.所示。
6. CPU2 接收完成中斷子程序 INT_0
2.3、 CPU2 發(fā)送完成中斷子程序 INT_1 編程
中斷子程序 INT_1 用于執(zhí)行 RCV 指令,并開始新的信息接收任務。程序如圖 7.所示。
圖7. CPU2 發(fā)送完成中斷子程序 INT_0
以上描述步驟參考下面的通信例程,例程中的 CPU 類型可能與用戶實際使用的類型不同,用戶可能需要先對例子程序做修改和調(diào)整,才能將其用于測試。
注意:此指令庫/程序的作者和擁有者對于該軟件的功能性和兼容性不負任何責任。使用該軟件的風險完全由用戶自行承擔。由于它是免費的,所以不提供任何擔保,錯誤糾正和熱線支持,用戶不必為此聯(lián)系西門子技術(shù)支持與服務部門。
示例說明如下:
步驟一、使用任意字符檢測和消息定時器處理信息接收超時主程序編程,程序如圖1. 所示:
圖 1. 使用任意字符檢測和消息定時器處理信息接收超時主程序
1. 設(shè)置 SMB30 = 2#00001001 (自由口通信,波特率 9600 bps,8 位數(shù)據(jù)位,無校驗)。
2. 設(shè)置 SMB87 = 2#10111100,使用任意字符檢測為信息接收的起始條件,使用消息定時器和結(jié)束字符為信息接收的結(jié)束條件。
3. 設(shè)置結(jié)束字符 SMB89 = 16#0A。
4. 設(shè)置空閑線定時器 SMW90 = 0 ms,消息定時器 SMW92 = 100 ms,允許最大接收字符個數(shù) SMB94 = 10。
5. 連接中斷子程序 INT_0 到通信端口 0 發(fā)送完成事件9,并啟用中斷。
6. 每秒鐘調(diào)用一次 XMT 指令,將字符串"TEST"發(fā)送出去。
步驟二、使用任意字符檢測和消息定時器處理信息接收中斷子程序編程:
發(fā)送完成中斷子程序用于執(zhí)行 RCV 指令,并開始新的信息接收任務。中斷子程序如圖 2. 所示。
圖2. 使用任意字符檢測和消息定時器處理信息接收超時中斷子程序
以上描述步驟參考下面的通信例程,例程中的 CPU 類型可能與用戶實際使用的類型不同,用戶可能需要先對例子程序做修改和調(diào)整,才能將其用于測試。
注意:此指令庫/程序的作者和擁有者對于該軟件的功能性和兼容性不負任何責任。使用該軟件的風險完全由用戶自行承擔。由于它是免費的,所以不提供任何擔保,錯誤糾正和熱線支持,用戶不必為此聯(lián)系西門子技術(shù)支持與服務部門。
S7-200 SMART CPU 在發(fā)送完成中斷中執(zhí)行 RCV 指令并捕捉信息接收開始時間,如果捕捉間隔時間超出一定時間依然未接收到信息,則認為信息接收超時,需要人為終止信息的接收。
示例說明如下:
步驟一:CPU 主程序編程
CPU 主程序?qū)崿F(xiàn)功能如下(程序見如圖3. 所示):
a)設(shè)置 SMB30 = 2#00001001 (自由口通信,波特率 9600 bps,8 位數(shù)據(jù)位,無校驗)。
b)設(shè)置 SMB87 = 2#10010100,使用空閑線檢測為信息接收的起始條件,使用字符間定時器為信息接收的結(jié)束條件。
c)設(shè)置空閑線定時器 SMW90 = 5 ms,消息定時器 SMW92 = 5 ms,允許最大接收字符個數(shù) SMB94 = 10。
d)連接中斷子程序 INT_0 到通信端口 0 發(fā)送完成事件 9,并啟用中斷。
e)使用M0.0 上升沿調(diào)用 XMT 指令,并設(shè)置通信狀態(tài)字節(jié) VB300 =1。
f)當通信狀態(tài)字節(jié) VB300 = 2 時,信息接收完成或者信息接收的捕捉間隔時間 VD306 大于 100 ms,則設(shè)置通信狀態(tài)字節(jié) VB300 = 3并人為終止 RCV 指令的執(zhí)行。
g)通信狀態(tài)字節(jié)VB300 = 3時,復位RCV指令的執(zhí)行,并復位VB300。
圖3. 使用捕捉時間間隔處理信息接收超時主程序
步驟二:CPU 中斷子程序編程
在發(fā)送完成中斷子程序中設(shè)置通信狀態(tài)字節(jié) VB300 = 2,執(zhí)行 RCV 指令開始新的信息接收任務,并捕捉信息接收開始時間 VD302。程序圖如圖4. 所示。
圖4. 使用捕捉時間間隔處理信息接收超時中斷子程序
以上描述步驟參考下面的通信例程,例程中的 CPU 類型可能與用戶實際使用的類型不同,用戶可能需要先對例子程序做修改和調(diào)整,才能將其用于測試。
注意:此指令庫/程序的作者和擁有者對于該軟件的功能性和兼容性不負任何責任。使用該軟件的風險完全由用戶自行承擔。由于它是免費的,所以不提供任何擔保,錯誤糾正和熱線支持,用戶不必為此聯(lián)系西門子技術(shù)支持與服務部門。
電話:13818569113
郵箱:13818569113@139.com
網(wǎng)址:http://www.xmzgk.com
地址:中國上海市青浦區(qū)崧盈路398號6棟