S7-200系列PLC本身集成了一個RS485接口,通過這個RS485接口可以實現自由口通信、MODBUS RTU通信、USS協議通信,在這些通信中自由口通信為最基本也是最重要的通信,想要學習好
S7-200系列PLC的串口通信功能,就須要掌握好自由口通信的應用。雖然西門子有提供相應的MODBUS庫及USS協議庫指令。讓用戶快速的掌握MODBUS及USS協議通信程序的編寫,若有研究過庫指令的朋友,其實可以發現,庫指令也是通過自由口方式做出來的一個功能塊程序。
接下來的幾篇文章,我給大家分享下自己學習自由口通信的體會,希望對大家學習自由口通信有一定的幫助。
在學習自由口程序編寫之前,我們首先要理解以下的一些基本知識內容。
(1)通信協議
通信協議是設備與設備之間進行信息交換的一種約定,類似于人與人交流的語言。通信協議有很多種。大家常常聽到的MODBUS協議,USS協議,PPI協議。MPI協議等這些都是通信協議的。
通信協議是在學習自由口通信時必須要掌握的,自由口通信的核心就是使用發送指令(XMT)和接收指令(RCV)來完成數據的發送和接收,那么發送什么數據出去,在接收回來的數據中,哪些數據是有效的數據,這些都是需要從通信協議中來獲得信息的。通信協議由作為從站的通訊設備給出,如PLC與儀表通信或是變頻器通信,那么在儀表或是變頻器的說明書上就會提供這個儀表或是變頻器所支持的通信協議。(如下圖所示為一個儀表的通信協議)
(2)信息幀格式或消息報文
說到信息幀格式,很多人不理解什么是信息幀格式,有人也把信息幀格式叫做數據個數,或是消息報文,不管怎么說,意思都是一樣的,信息幀格式表示的是我們PLC需要發送出去的數據,以及接收回來的數據的是一種什么樣的格式,這個信息幀格式是根據通信協議而來的。如上面所描述的通信協議。假設規定使用ascall的字符來進行通信的,若需要讀取站號為01的儀表的過程值數據,而過程的參數名為“M1”(注:這些參數名在儀表說明書中會給出)那么根據這個通信協議我們就可以得到兩條信息幀的格式,一條是PLC需要發送出去的信息幀格式,另外一條是PLC接收回來的信息幀格式:
(3) 起始符、結束符與起始位和停止位的區別
在自由口通信中經常會聽到,起始位、停止位、起始符、結束符,那么他們之間有什么區別呢?
首先從字面上的理解,大家就可以知道,停止位或起始位,他是一個位。而起始符和結束符是一個字符,一條信息幀格式中包含了多個字符,一條信息幀格式中有起始符和結束符,如上面協議中的描述,起始符(EOT),結束符(ENQ)。而在這條信息幀格式的字符中,每個字符都有起始位、停止位、數據位和奇偶校驗位組成。如圖所示: