S7-200自由口通信知識(shí)分享(5)
盧思敏
發(fā)布于2017-08-14 14:18
650
0
標(biāo)簽:S7-200
在前面主要跟大家分享了下自由口通信中的一些基本概念,使用的指令及自由口通信的接收功能中如何進(jìn)行消息起始的判斷,那么今天跟大家分享下自由口通信中使用接收功能接收信息時(shí),如果進(jìn)行消息結(jié)束條件的判斷。因?yàn)橹挥挟?dāng)PLC接收到結(jié)束條件時(shí) ,PLC才會(huì)認(rèn)為是消息接收完成,此時(shí)才會(huì)關(guān)斷PLC端口的接收功能,同時(shí)產(chǎn)生一個(gè)接收完成中斷。
在自由口通信接收功能中,消息結(jié)束條件的判斷,主要會(huì)用三種方式:
種方式使用結(jié)束符作為消息的結(jié)束判斷(若有特定的結(jié)束符的時(shí)候,可以使用結(jié)束符作為消息的結(jié)束條件判斷)。
第二種,使用消息定時(shí)器作為消息的結(jié)束條件判斷。
第三種,通過字符定時(shí)器作為消息結(jié)束條件的判斷。
對(duì)于種通過結(jié)束符作為消息的結(jié)束判斷,在自由口通信知識(shí)分享(3)這篇文章中已經(jīng)有跟大家提到過,今天我們主要說說第二種的消息結(jié)束判斷方式——消息定時(shí)器作為消息的結(jié)束判斷條件。這里主要跟大家分享下消息定時(shí)器用于判斷消息結(jié)束的過程已經(jīng)如何使用。
消息定時(shí)器判斷消息結(jié)束的過程:
所謂的消息定時(shí)器,并不是說需要編程人員去編寫一個(gè)定時(shí)的程序來做判斷,而是PLC自動(dòng)會(huì)去做判斷,跟我們?cè)谇懊嬉黄恼轮刑岬降目臻e線時(shí)間的檢查一樣的道理。
若設(shè)定了消息的結(jié)束判斷條件為消息定時(shí)器,PLC會(huì)在消息的起始條件滿足后, 開始計(jì)時(shí),當(dāng)計(jì)時(shí)時(shí)間到后,關(guān)斷接收功能,這段計(jì)時(shí)的時(shí)間就是消息定時(shí)器定時(shí)的時(shí)間,如下圖所示:
當(dāng)消息起始條件滿足后,PLC會(huì)開始進(jìn)行字符的接收,并把接收到的字符存儲(chǔ)到接收緩沖區(qū)中,同時(shí)啟動(dòng)消息定時(shí)器,開始檢查消息定時(shí)器的條件,在消息定時(shí)器所規(guī)定的時(shí)間還沒有到時(shí),接收到的字符都會(huì)存入到接收緩沖區(qū)中,當(dāng)消息定時(shí)器設(shè)定的定時(shí)時(shí)間到后,PLC會(huì)關(guān)斷接收功能,終止接收,消息定時(shí)器時(shí)間到后,發(fā)送過來的字符,PLC不進(jìn)行接收。
如果把這個(gè)接收過程比喻成我們?nèi)伺c人交流,例如,A在給B匯報(bào)一件事情,這一件事情的內(nèi)容,就是我們通信中的信息,當(dāng)A開始匯報(bào)的時(shí)候,按照預(yù)算,這個(gè)匯報(bào)多十分鐘,可以匯報(bào)完,那如果給A十五分鐘的時(shí)間做匯報(bào),能否匯報(bào)完呢?答案當(dāng)然是肯定的。而消息定時(shí)器,就是類似于這種原理。
在這里面有 兩個(gè)三個(gè)條件需要我們?nèi)ピO(shè)置,首先,如何告訴PLC是消息定時(shí)器?其次,在什么時(shí)候開始計(jì)時(shí)?后,定時(shí)器的時(shí)間長(zhǎng)度如何設(shè)置,設(shè)置到哪里?設(shè)置多長(zhǎng)時(shí)間合適?
如何告訴PLC使用消息定時(shí)器作為消息的結(jié)束條件判斷:
通過對(duì)控制字節(jié)的設(shè)置,可以告訴PLC接收功能中判斷消息的結(jié)束條件是以消息定時(shí)器作為消息的結(jié)束條件的判斷。
如上圖所示,我們需要告知PLC使用消息定時(shí)器作為消息的結(jié)束條件,我們需要設(shè)置控制字節(jié)中的SM87.2和SM87.3(以PORT0為例),要使用消息定時(shí)必須設(shè)置SM87.3=1,SM87.2=1.
什么時(shí)候開始啟用消息定時(shí)計(jì)數(shù):
消息定時(shí)器的啟動(dòng),需要配合起始條件來實(shí)現(xiàn),當(dāng)消息的起始條件滿足后,CPU會(huì)自動(dòng)啟動(dòng)消息定時(shí)器。
定時(shí)器的時(shí)間長(zhǎng)度如何設(shè)置,設(shè)置多長(zhǎng)時(shí)間合適?
通常,指定一個(gè)從消息開始算起的允許接收消息的大時(shí)間。消息定時(shí)器的典型值約為在選定波特率下接收長(zhǎng)消息所需時(shí)間值的 1.5 倍。 當(dāng)然在使用的過程中,并不一定按照這么嚴(yán)格的計(jì)算,有可能會(huì)超過1.5倍的時(shí)間長(zhǎng)度。假設(shè)一個(gè)字符加起始位,停止位,奇偶校驗(yàn)位為,數(shù)據(jù)位,為11個(gè)bit位,波特率為9.6kbps。則接受10個(gè)字符的時(shí)間需要的長(zhǎng)度,我們可以設(shè)置為20ms。
時(shí)間計(jì)算出來后,如何設(shè)置?設(shè)置到哪里呢? PLC有提供系統(tǒng)存儲(chǔ)器用于設(shè)定消息定時(shí)的定時(shí)時(shí)間長(zhǎng)度,對(duì)于port0來講,我們需要把時(shí)間存儲(chǔ)到SMW92這個(gè)系統(tǒng)存儲(chǔ)器中,可以使用傳送指令把20傳送到SMW92中。
我們以空閑線作為消息接收的起始條件,以消息定時(shí)器作為消息接收的結(jié)束條件,來說明下如何進(jìn)行設(shè)置:

以上為個(gè)人理解,如有不對(duì)之處請(qǐng)給予指正,希望對(duì)大家在學(xué)習(xí)自由口通信時(shí),有所幫助,謝謝?。?!
(待續(xù)。。。)
來源:微信號(hào)(我愛學(xué)PLC)
作者:技成培訓(xùn)網(wǎng)(曾鑫)
本文為原創(chuàng)作品,盜取必究!
推薦學(xué)習(xí)相關(guān)視頻:
西門子S7-300使用指南
西門子s7-300中高級(jí)應(yīng)用技術(shù)
西門子S7-200PLC從入門到精通
西門子S7-200 SMART PLC編程應(yīng)用入門