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