S7-200系列PLC自由口通信知識分享(2)
盧思敏
發(fā)布于2017-07-03 12:00
10
0
標簽:S7-200
馬上注冊,免費學習超過100課時視頻教程,免費下載海量學習資料
在上一篇文章中,我們提到了有關于自由口通信的一些基礎知識,給大家解釋了什么叫通信協(xié)議,什么叫信息幀或消息報文,起始符/結束符與起始位/停止位之間的關系。那么今天就跟大家聊聊西門子S7200系列的自由口通信功能及程序的設計。
自由口通信模式(Freeport Mode)是S7-200系列PLC的一個很有特色的功能,借助自由口通信,用戶可以自己使用(XMT和RCV)對端口進行操作,可以是S7-200系列PLC與任何通信協(xié)議已知且具有串口的智能設備和控制器實現通信,如打印機,變頻器,智能儀表等。
S7-200CPU上的通信口在電氣上是標準的RS-485半雙工串行通信(所謂半雙工通信即發(fā)送和接收不能同時進行,所以在設計程序的時候,發(fā)送完后才能接收 ,接收完后才能發(fā)送)此串行字符通信的格式可以包括:
(1)一個起始位
(2)7位或是8位字符(數據字節(jié))
(3)一個奇/偶校驗位,或者沒有校驗位
(4)一個停止位
(5)波特率:1200、2400、4800、9600、19200、38400、57600或112500bps的波特率
滿足以上條件的通信的格式,都可以使用自由口通信的方式去完成信息的交換。
若需要使用PLC通過自由口的方式發(fā)生數據出去,必須完成以下幾個內容:
(1)通信格式的設置,用于規(guī)定通信雙方的通信格式
(2)PLC需要通過XMT指令發(fā)送的數據,可以根據通信協(xié)議提供的信息幀格式去準備,
(3)信息發(fā)送完成的判斷,用戶只有根據信息是否發(fā)送完成后 ,才可以進行信息的接收程序的設計或是決定下一次的發(fā)送。
以上一篇文章中提到的儀表的通信協(xié)議為例:
(1)設置要PLC的中的通信格式字。
通信格式字的設置對于PLC來講有特殊的系統(tǒng)存儲器來進行存儲,在200系列PLC中通過SMB30(port0口)SMB130(Port1口)來進行存儲,設置通信格式字是必須配合從站設備來進行設置,如下所示為儀表提供的參數設置

在這里面,若選擇9600的波特率,一位停止位、8個數據、無校驗的方式,(注意:不能設置為2個停止位,因PLC自由口通信時不支持2個停止位)。則PLC中通信格式字可設置為16#09.通信格式字按照下圖所示進行設置:

(2)根據通信協(xié)議準備需要通過XMT指令發(fā)送出去的數據:
假設需要讀取儀表中的過程值,需要根據通信協(xié)議的格式,然后準備好相應的數據:

XMT指令格式:

注:T表示的是指令中TBL的地址,如如所示: T表示VB0,所以T+0表示VB0,T+1,表示VB1依次下去。port表示的是PLC的端口號。
可以通過在數據塊中定義好你需要發(fā)送的數據:
(3)信息發(fā)送完成的判斷
判斷信息是否發(fā)送完成可以通過兩種方式進行判斷,
一種使用發(fā)送完成中斷的方式去判斷
port0和port1有對應發(fā)送完成中斷事件,可以通過發(fā)送完成中斷事件來判斷信息是否發(fā)送完成。PORT0和PORT1兩個端口分別分配了兩個中斷事件用來表示信息發(fā)送完成。對于PORT0口來說分配中斷事件9,對于PORT1口來說分配中斷事件26
也可以通過系統(tǒng)存儲位來進行判斷.
通過特殊完成標志位來進行判斷,可以通過對發(fā)送完成標志位SM4.5(port0)或SM4.6(port1)的監(jiān)控來判斷數據是否發(fā)送完成。SM4.5=1 表示端口0處于空閑狀態(tài),SM4.5 = 0 表示端口0處于傳送狀態(tài)。
來源:微信號(我愛學PLC)
作者:技成培訓網(曾鑫)
本文為原創(chuàng)作品,盜取必究!
推薦學習相關視頻:
西門子S7-200SMART PLC 編程應用入門
西門S7-200PLC從入門到精通
西門子S7-300初級應用
西門子S7-300使用指南