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

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

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