S7-200系列PLC自由口通信分享(4)
盧思敏
發(fā)布于2017-08-02 15:09
16
0
標簽:S7-200
馬上注冊,免費學習超過100課時視頻教程,免費下載海量學習資料
在上一篇文章中,與大家分享了S7-200系列PLC中自由口通信中的接收指令、消息接收時用于判斷消息的起始和結束的幾種方式,也給大家分享了下使用起始符和結束符作為消息的起始和結束的判斷,那今天給大家分享下自由口通信中的第二種方式(空閑線)用于判斷消息起始的過程。
空閑線概念:
空閑線條件定義為傳輸線路上的安靜或空閑時間(即在傳輸線路中沒有信號的變化)。
在串行異步通信的過程中,信息的發(fā)送時以位的方式進行傳輸,每一個位的狀態(tài)為“0”或是為“1”,對于傳輸線路來講傳輸“0”或是“1”則傳輸線路上會表示為不同的電平,有電平的變化,則說明不是一個安靜或是空閑的狀態(tài),若有數(shù)據(jù)進行傳輸時,那么這個安靜或是空閑的狀態(tài)維持的時間就不夠長或是沒有,就算發(fā)送的數(shù)據(jù)全部是0或是1來講,也會有電平的變化,因為一個字符中起始位用“0”表示,停止位用“1”表示。但當不發(fā)送數(shù)據(jù)時,傳輸線路中并沒有電平的變化,則就可以產(chǎn)生一段安靜或是空閑的狀態(tài)。
在串行異步通信中的數(shù)據(jù)傳輸過程中,是一個字符一個字符接著發(fā)送的,發(fā)送完個字符后發(fā)送第二個字符,每個字符的發(fā)送都是以位的方式一個一個位進行傳輸?shù)?。因此在?shù)據(jù)傳輸?shù)倪^程中,這個傳輸線路上的安靜或空閑的時間段比較端,但如果沒有數(shù)據(jù)發(fā)送的時候,空閑或是安靜的時間會比較長,所以我們可以在啟動接收指令后,就開始偵測傳輸線上的空閑或安靜時間,如果空閑或安靜時間到了,而且也沒有接收到數(shù)據(jù),說明這段時間線路上是沒有數(shù)據(jù)的傳輸?shù)?,過了空閑時間后,接收到了數(shù)據(jù),則說明有數(shù)據(jù)開始傳輸了,所以可以把接收到的個字符就認為是這條信息的起始,是一個有效的字符把它存儲到接收緩沖區(qū)中。
若在啟用了接收指令后,開始檢查傳輸線路中空閑線的時間,但在空閑線的設定的時間內(nèi)接收到字符,這時PLC會認為這并不是一個完整的消息,可能接受到的是一條信息中某個段的數(shù)據(jù),所以不把他作為一個有效的數(shù)據(jù),PLC會丟棄接收到的這個字符然后重新啟用空閑線檢測。過程如下圖所示:

空閑線時間的設置:
要使用空閑線的時間去作為消息的起始的判斷必須要做以下兩個設置:
(1)設置接收功能的控制字節(jié),告訴PLC使用空閑線作為消息的起始判斷
(2)設置空閑線的時間長度。
控制字節(jié)的設置如圖所示:
使用空閑線的時,需要把控制字節(jié)中的SM87.4/Sm187.4 設置為1,表示使用空閑線檢測起始。
設置空閑線時間的長度:
空閑線時間的長度設置:可以使用傳送指令給SMW90(port0)或是SMW190(port1)設置空閑線的時間 ,空閑線時間設置的長度通常為3.5個字符的時間長度,
假設通信格式設置中為1個起始位,8個數(shù)據(jù)位,無奇偶校驗,1個停止位,9600bps,則一個字符的傳輸時間為1ms多一點的時間,所以3.5個字符的時間長度,我們可以把空閑線時間設置為4ms。
下面以空閑線作為消息的起始,以結束符(16#26 )作為消息的結束為例,設計一段接收的程序來說明設置過程:

作者:技成培訓網(wǎng)(曾鑫)
來源:微信號(我愛學PLC)
三菱Q系列定位模塊
FX3U 新增功能指令講解
西門子學習機箱接線演示
西門子S7-1200編程應用入門