S7-200系列PLC自由口通信知識分享(3)
盧思敏
發(fā)布于2017-07-11 11:24
16
0
標簽:S7-200
在前面的文章中與大家分享了自由口通信中的發(fā)送功能,那么進行就跟大家聊聊自由口通信中的接收功能,自由口通信中的難點就是在于接收功能的使用,當PLC通過通信端口把數(shù)據(jù)發(fā)送給下位設備后,下位設備會根據(jù)PLC發(fā)送過去的信息內容回傳相應的數(shù)據(jù)給PLC,這時候PLC就需要使用接收功能進行數(shù)據(jù)的接收,S7-200系列PLC提供了一條接收指令(RCV)用于接收下位設備返回來的信息。指令格式如下所示:

當PLC接收完下位設備回傳回來的數(shù)據(jù)后,PLC會產生相應的中斷事件來告知編程人員信息接收完成,此時可以編寫相應的程序提取有效數(shù)據(jù),并對這些有效數(shù)據(jù)進行轉換,轉換成可讀性的數(shù)據(jù)。S7-200系列PLC 提供了中斷事件23和中斷事件24分別作為端口0和端口1的接收完成中斷事件號。
在PLC的信息發(fā)送過程中,PLC是主動方,會根據(jù)需要發(fā)送的數(shù)據(jù)個數(shù)進行數(shù)據(jù)的發(fā)送,當發(fā)送完成后,PLC會自動產生相應發(fā)送完成中斷,而對于接收來講,PLC是被動方,只負責數(shù)據(jù)的接收,當PLC的端口使能了接收功能后,PLC處于等待信息的接收狀態(tài),有數(shù)據(jù)過來就接收,但是接收的數(shù)據(jù)是否是有效的數(shù)據(jù),什么時候接收完了PLC并不知道,此時就要求我們編程人員需要設置好消息的起始和接收條件,當起始條滿足了,PLC把接收到的數(shù)據(jù)放入到接收緩沖區(qū)中,當滿足了結束條件,PLC關斷接收功能,并產生接收完成中斷。
用于判斷消息的的起始和結束條件有很多種方式,但用的比較多可能就以下幾種方式:

今天我們先聊一聊通過起始符作為信息的起始和通過結束符作為信息的結束判斷的過程及程序的設置,S7-200系列的PLC提供了兩個系統(tǒng)存儲區(qū)用于存儲起始符(SMB88)和結束符(SMB89)(這里以端口0為例說明),因此若需要使用起始符和結束符做為消息的起始和結束的的判斷,則需要把起始符和結束符分別放到SMB88和SMB89中。
當PLC在接收數(shù)據(jù)的過程中,會對接收的數(shù)據(jù)與起始符進行對比,如果與起始符不相等,這說明不是有效性的數(shù)據(jù),不放入接收緩沖器中,會把接收到的數(shù)據(jù)丟棄,重新接收,若接收到的數(shù)據(jù)與起始符相等,則PLC會把接收到的數(shù)據(jù)放到接收緩沖區(qū)中,同時記錄接收字符個數(shù)的存儲器的值加1。
當起始符滿足后,PLC會對接收到的字符與結束符進行對比,如果與結束符不相等,則繼續(xù)數(shù)據(jù)的接收, 如果接收到的數(shù)據(jù)與結束符相等,則關斷接收功能,并產生接收完成中斷。因此使用起始符和結束符來講,大部分使用的是一些特定的字符。
若使用起始符和結束符作為消息的起始和結束的判斷時,需要先設置好接受功能的控制字節(jié)(SMB87)告知PLC為起始符和結束符判斷消息的起始和結束。SMB87的個格式內容如下圖所示:

作者:技成培訓網(曾鑫)
本文版權為技成所有,未經同意,盜取必究!
推薦學習相關課程:
西門子學習機箱接線演示
西門子s7-1200 從入門到精通
西門子S7-200 Smart PLC編程應用入門
西門子200 STEP-7Micro WIN 編程軟件使用