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