結(jié)束信息的方式可以是以下的一種或幾種組合。
①結(jié)束字符檢測(cè):結(jié)束字符是用于表示信息結(jié)束的任意字符。設(shè)置ec一1,SMB89(或SMBl89)一結(jié)束字符;信息接收功能在找到起始條件開(kāi)始接收字符后,檢查每一個(gè)接收到的字符,并判手指套斷它是否與結(jié)束字符相匹配,如果接收到結(jié)束字符,將其存入信息緩沖區(qū),信息接收功能結(jié)束。通常對(duì)于所有信息都使用同一字符作為結(jié)束的.AS(1、II碼協(xié)議,用戶可以使用結(jié)束字符檢測(cè)。
②字符間隔定時(shí)器超時(shí):字符間隔時(shí)間是指從一個(gè)字符的結(jié)尾(停止位)到下一個(gè)字符的結(jié)尾(停止位)之問(wèn)的時(shí)間。設(shè)置c/m—O,tmr一1,SMW92(SMwl92)一字符間超時(shí)時(shí)間。如
果信息接收功能接收到的兩個(gè)字符之間的時(shí)間間隔超過(guò)字符問(wèn)超時(shí)定時(shí)器設(shè)定時(shí)問(wèn),則信息接收功能結(jié)束。字符間超時(shí)定時(shí)器設(shè)定值應(yīng)大于指定波特率下傳輸一個(gè)字符(包括起始位、數(shù)據(jù)位、手指套校驗(yàn)位和停止位)的時(shí)問(wèn)。用戶可以通過(guò)使用字符間隔定時(shí)器與結(jié)束字符檢測(cè)或者最大字符計(jì)數(shù)相結(jié)合,來(lái)結(jié)束一條信息。
③信息定時(shí)器超值:從信息的開(kāi)始算起,在經(jīng)過(guò)指定的一段時(shí)間之后,信息定時(shí)器結(jié)束一條信息。設(shè)置c/m一1,tmr一1,SMW92(SMwl92)一信息超時(shí)時(shí)間。信息接收功能在找到起始條件手指套開(kāi)始接收字符時(shí),啟動(dòng)信息定時(shí)器,信息定時(shí)器時(shí)間到,則信息接收功能結(jié)束。同樣用戶可以通過(guò)使用字符間隔定時(shí)器與結(jié)束字符檢測(cè)或者最大字符計(jì)數(shù)相結(jié)合,來(lái)結(jié)束一條信息。
④最大字符計(jì)數(shù):當(dāng)信息接收功能接收到的字符數(shù)大于SMB94(或SMBl94)時(shí),信息接收功能結(jié)束。接收指令要求用戶設(shè)定一個(gè)希望最大的字符數(shù),從而能確保信息緩沖區(qū)之后的用戶數(shù)據(jù)不會(huì)被覆蓋。
最大字符計(jì)數(shù)總是與結(jié)束字符、字符間超時(shí)定時(shí)器、信息定時(shí)器結(jié)合在一起作為結(jié)束條件使用。 ’
⑤校驗(yàn)錯(cuò)誤:當(dāng)接收字符出現(xiàn)奇偶校驗(yàn)錯(cuò)誤時(shí),信息接收功能自動(dòng)結(jié)束。只有在SMB30(或SMBl30)中設(shè)定了校驗(yàn)位時(shí),才有可能出現(xiàn)校驗(yàn)錯(cuò)誤。
⑥用戶結(jié)束:用戶可以通過(guò)將SMB87(或SMBl87)設(shè)置為0來(lái)終止信息接收功能。
為了完全適應(yīng)對(duì)各種通信協(xié)議的支持,可以使用字符中斷控制的方式來(lái)接收數(shù)據(jù)。通信口每接收一個(gè)字符時(shí)都會(huì)產(chǎn)生中斷。在執(zhí)行連接到接收字符中斷事件上的中斷程序前,接收到的字符存儲(chǔ)在SMB2中,校驗(yàn)狀態(tài)(如果允許的話)存儲(chǔ)在SM3.O中。 ‘ ’
SMB2是自由端口接收字符緩沖區(qū)。在自由端口模式下,每一個(gè)接收到的字符都會(huì)被存儲(chǔ)在這個(gè)單元中,以方便用戶程序訪問(wèn)。SMB3用于自由端口模式,并包含一個(gè)校驗(yàn)錯(cuò)誤標(biāo)志位。當(dāng)接收字符的同時(shí)檢測(cè)到校驗(yàn)錯(cuò)誤時(shí),該位被置位,該字節(jié)的所有其他位保留。
注意,SMB2和SMB3是端口O和端口1公用的。當(dāng)接收的字符來(lái)自端口0時(shí),執(zhí)行與事件(中斷事件8)相連接的中斷程序,此時(shí)SMB2中存儲(chǔ)從端口0接收的字符,SMB3中存儲(chǔ)字符的校驗(yàn)狀態(tài);當(dāng)接收的字符來(lái)自端口1,執(zhí)行與事件(中斷事件25)相連接的中斷程序,SMB2中存儲(chǔ)從端口1接收的字符,SMB3中存儲(chǔ)該字符的校驗(yàn)狀態(tài)。
本程序功能為上位PC和PLC之間的通信,PLC接收上位PC發(fā)送的一串字符,直到收到回車符為止,PI。c又將信息發(fā)送回Pc。
自由口協(xié)議通信指令應(yīng)用舉例的主程序,本程序?qū)崿F(xiàn)的功能是接收一個(gè)字符串,直到接收到換行字符。接收完成后,信息會(huì)發(fā)送回發(fā)送方。中斷0為接收完成中斷例行程序。中斷0實(shí)現(xiàn)的功能是如果接收狀態(tài)顯示接收結(jié)束字符,則附加一個(gè)10ms計(jì)時(shí)器,觸發(fā)傳輸并返回。中斷l(xiāng)為10ms定時(shí)觸發(fā)發(fā)送。中斷2為發(fā)送字符中斷事件。