時間:2018-04-17 11:02:48來源:網絡轉載
在前面的文章中與大家分享了自由口通信中的發送功能,那么進行就跟大家聊聊自由口通信中的接收功能,自由口通信中的難點就是在于接收功能的使用,當PLC通過通信端口把數據發送給下位設備后,下位設備會根據PLC發送過去的信息內容回傳相應的數據給PLC,這時候PLC就需要使用接收功能進行數據的接收,S7-200系列PLC提供了一條接收指令(RCV)用于接收下位設備返回來的信息。指令格式如下所示:
當PLC接收完下位設備回傳回來的數據后,PLC會產生相應的中斷事件來告知編程人員信息接收完成,此時可以編寫相應的程序提取有效數據,并對這些有效數據進行轉換,轉換成可讀性的數據。S7-200系列PLC提供了中斷事件23和中斷事件24分別作為端口0和端口1的接收完成中斷事件號。
在PLC的信息發送過程中,PLC是主動方,會根據需要發送的數據個數進行數據的發送,當發送完成后,PLC會自動產生相應發送完成中斷,而對于接收來講,PLC是被動方,只負責數據的接收,當PLC的端口使能了接收功能后,PLC處于等待信息的接收狀態,有數據過來就接收,但是接收的數據是否是有效的數據,什么時候接收完了PLC并不知道,此時就要求我們編程人員需要設置好消息的起始和接收條件,當起始條滿足了,PLC把接收到的數據放入到接收緩沖區中,當滿足了結束條件,PLC關斷接收功能,并產生接收完成中斷。
用于判斷消息的的起始和結束條件有很多種方式,但用的比較多可能就以下幾種方式:
今天我們先聊一聊通過起始符作為信息的起始和通過結束符作為信息的結束判斷的過程及程序的設置,S7-200系列的PLC提供了兩個系統存儲區用于存儲起始符(SMB88)和結束符(SMB89)(這里以端口0為例說明),因此若需要使用起始符和結束符做為消息的起始和結束的的判斷,則需要把起始符和結束符分別放到SMB88和SMB89中。
當PLC在接收數據的過程中,會對接收的數據與起始符進行對比,如果與起始符不相等,這說明不是有效性的數據,不放入接收緩沖器中,會把接收到的數據丟棄,重新接收,若接收到的數據與起始符相等,則PLC會把接收到的數據放到接收緩沖區中,同時記錄接收字符個數的存儲器的值加1。
當起始符滿足后,PLC會對接收到的字符與結束符進行對比,如果與結束符不相等,則繼續數據的接收,如果接收到的數據與結束符相等,則關斷接收功能,并產生接收完成中斷。因此使用起始符和結束符來講,大部分使用的是一些特定的字符。
若使用起始符和結束符作為消息的起始和結束的判斷時,需要先設置好接受功能的控制字節(SMB87)告知PLC為起始符和結束符判斷消息的起始和結束。SMB87的個格式內容如下圖所示:
標簽:
中國傳動網版權與免責聲明:凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(www.hysjfh.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。
本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。
產品新聞
更多>2025-05-19
2025-04-30
2025-04-11
2025-04-08
2025-03-31
2025-03-26