時間:2015-08-04 15:25:28來源:胡勝方 厲紅婭
摘要:本文主要介紹了S7-200自由口通訊協(xié)議的特點,大致闡述了S7-200與安全監(jiān)控系統(tǒng)的通訊過程,具體描述了S7-200與安全監(jiān)控系統(tǒng)通訊格式的組成以及通訊幀協(xié)議的含義,簡單介紹了通訊編程步驟,并針對通訊中最常見的故障提出了解決方法。
關(guān)鍵詞:S7-200;安全監(jiān)控系統(tǒng);自由口通訊;通訊格式;通訊幀協(xié)議;故障
1引言
起重機作為重大物體的搬運設(shè)備,在生產(chǎn)過程中起著至關(guān)重要的作用。它要遵循高效率、高可靠性、高安全性等生產(chǎn)相關(guān)規(guī)則與要求。然而面對近年來頻繁出現(xiàn)的起重機安全事故,如何提高安全性,如何提高效率就成為我們急需解決的任務。為了解決這一難題,我單位為觀音巖水電站自主研發(fā)設(shè)計的2×1600KN尾水起重機安全監(jiān)控管理系統(tǒng)首頁
門機已經(jīng)成功研發(fā)設(shè)計出起重機安全監(jiān)控管理系統(tǒng),并已經(jīng)順利通過驗收和投入使用,安全監(jiān)控管理系統(tǒng)首頁見圖一。
圖一
在PLC與起重機安全監(jiān)控管理系統(tǒng)的通訊中,利用S7-200PLC自帶的RS485接口與起重機安全監(jiān)控系統(tǒng)進行自由口通訊,S7-200PLC將安全監(jiān)控系統(tǒng)所需數(shù)據(jù)通過RS485自由口發(fā)送給起重機安全監(jiān)控管理系統(tǒng)。
2S7-200自由口通訊協(xié)議的特點
自由口通訊是指PLC提供了串行的通訊硬件,和用于定制通訊協(xié)議的相關(guān)指令,在控制系統(tǒng)中,當要和PLC連接的控制設(shè)備的通訊協(xié)議已知時,可以在PLC中進行編程定制通訊協(xié)議,和控制設(shè)備進行數(shù)據(jù)通訊。
S7-200CPU上的通信口在電氣上是標準的RS-485半雙工串行通信口,此串行字符通信的格式可以包括:一個起始位、7或8位字符(數(shù)據(jù)字節(jié))、一個奇/偶校驗位,或者沒有校驗位、一個停止位。自由口通信速波特率可以設(shè)置為1200、2400、4800、9600、19200、38400、57600或112500。采用自由口通訊方式時,S7-200上的RS485口完全由用戶控制,可以與任何協(xié)議已知的設(shè)備進行通訊,在這種情況下通訊協(xié)議完全由用戶制定,為此,S7-200提供了用于進行通訊協(xié)議定制的特殊標志位以及相關(guān)的通訊指令。
3S7-200與安全監(jiān)控系統(tǒng)的通訊過程
S7-200利用PLC自身自帶的RS485端口將起重機安全監(jiān)控系統(tǒng)需要的數(shù)據(jù)以16進制的格式發(fā)送給安全監(jiān)控系統(tǒng)。當PLC準備開始發(fā)送數(shù)據(jù)時,首先發(fā)送2個開始字符給起重機安全監(jiān)控系統(tǒng),安全監(jiān)控系統(tǒng)收到這兩個開始字符后與自身的開始字符相比較,如果相等就認為PLC已經(jīng)開始發(fā)送數(shù)據(jù)了,安全監(jiān)控系統(tǒng)就接收從PLC發(fā)過來的數(shù)據(jù)并且將接收到的數(shù)據(jù)存儲到自己的寄存器中。當PLC把起重機安全監(jiān)控系統(tǒng)所需的數(shù)據(jù)全部發(fā)送完后再發(fā)送一個檢驗字符給安全監(jiān)控系統(tǒng),安全監(jiān)控系統(tǒng)將接收到的字符進行計算并與PLC發(fā)送過來的檢驗字符比較,如果這兩個字符一致,則表示通訊無誤。最后PLC發(fā)送一個結(jié)束字符給起重機安全監(jiān)控系統(tǒng),安全監(jiān)控系統(tǒng)收到后與自己的結(jié)束字符相比較,如果相等則表示PLC這一輪的數(shù)據(jù)已經(jīng)發(fā)送完畢。安全監(jiān)控系統(tǒng)接收到PLC數(shù)據(jù)的主畫面之一如圖二所示。
圖二監(jiān)控管理系統(tǒng)主畫面
4S7-200與安全監(jiān)控系統(tǒng)通訊格式的組成
通訊設(shè)置:9600,none,8,1
數(shù)據(jù)格式:
波特率:9600
奇偶校驗:none
數(shù)據(jù)位:8bit
停止位:1bit
通訊幀格式:AA55W1W2W3W4h1h2F1F2S1S2S3S4checksum0D
通訊幀格式說明:
AA55為起始字節(jié)。在每一輪的數(shù)據(jù)準備開始發(fā)送的時候,PLC將這兩個起始字符通過RS485接口發(fā)出去,告知遠方安全監(jiān)控系統(tǒng)PLC要開始發(fā)送數(shù)據(jù)了,監(jiān)控系統(tǒng)開始要接收數(shù)據(jù)了。
W1、W2、W3、W4、h1、h2、F1、F2、S1、S2、S3、S4為字節(jié)數(shù)據(jù),其中W1、W2、W3、W4代表雙吊點的各自實際載荷,h1、h2代表起升高度,F(xiàn)1、F2代表外部環(huán)境風速,S1、S2、S3、S4由32個開關(guān)量組成,代表著門機的32個動作。具體信號含義在這里不再闡述。checksum為和檢驗值,由PLC自動進行計算通過RS485口發(fā)給遠方安全監(jiān)控系統(tǒng)。0D為結(jié)束字符,每當一輪數(shù)據(jù)發(fā)送完畢,PLC則發(fā)送一個字符,告知安全監(jiān)控系統(tǒng)數(shù)據(jù)已發(fā)送完畢。
注意:①這里定義通訊協(xié)議與通訊幀格式的時候要與安全監(jiān)控系統(tǒng)定義的通訊協(xié)議與通訊幀格式一致;
②checksum為和檢驗。在傳輸過程中,指令有可能受到任何的干擾而使原來的數(shù)據(jù)信號發(fā)生扭曲,此時的指令當然是錯誤的,為了偵測指令在傳輸過程中發(fā)生的錯誤,接收方必須對指令作進一步的確認工作,以防止錯誤的指令被執(zhí)行,最簡單的方法就是使用校驗碼。checksum校驗碼的方法就是將要傳送的字符串的16進制碼以字節(jié)為單位作和校驗,并將此和校驗作為指令的一部分傳送出去;同樣地,接收方在接到指令后,以相同的方式對接收到的字符串作和校驗,并與傳送方所送過來的值作對比,若其值相等,則代表接收到的指令是正確的,反之則是錯誤的。
5編程步驟
應用自由口通信首先要把通信口定義為自由口模式,同時設(shè)置相應的通信波特率和上述通信格式。用戶程序通過特殊存儲器SMB30(對端口0)、SMB130(對端口1)控制通信口的工作模式。
CPU通信口工作在自由口模式時,通信口就不支持其他通信協(xié)議(比如PPI),此通信口不能再與編程軟件Micro/WIN通信。CPU停止時,自由口不能工作,Micro/WIN就可以與CPU通信。
通信口的工作模式,是可以在運行過程中由用戶程序重復定義的。
自由口通信的核心指令是發(fā)送(XMT)和接收(RCV)指令。在自由口通信常用的中斷有“接收指令結(jié)束中斷”、“發(fā)送指令結(jié)束中斷”,以及通信端口緩沖區(qū)接收中斷。XMT和RCV指令的數(shù)據(jù)緩沖區(qū)類似,起始字節(jié)為需要發(fā)送的或接收的字符個數(shù),隨后是數(shù)據(jù)字節(jié)本身。如果接收的消息中包括了起始或結(jié)束字符,則它們也算數(shù)據(jù)字節(jié)。
調(diào)用XMT和RCV指令時只需要指定通信口和數(shù)據(jù)緩沖區(qū)的起始字節(jié)地址。由于S7-200的通信端口是半雙工RS-485芯片,XMT指令和RCV指令不能同時有效。
這里利用S7-200自帶的RS485接口與起重機安全監(jiān)控管理系統(tǒng)進行自由口協(xié)議通訊。
自由口協(xié)議通訊使用SMB30(口0)和SMB130(口1)來定義通訊口的工作模式。這里使用端口0,且PLC只進行發(fā)送數(shù)據(jù),不進行接收數(shù)據(jù)。SMB30各位的定義如下表1所示:
表1SMB30各位的定義
SMB34:定時中斷0:時間間隔數(shù)值(以1毫秒為增量,從1毫秒至255毫秒)。在S7-200中對應的事件號為10。
SMB89:信息字符結(jié)束。(如發(fā)送的信息有停止位,將把此寄存器的內(nèi)容和接受信息的每一字節(jié)相比較來,檢測確認信息是否已傳送完畢。因此,在編程時,需要在通訊初始化時,把信息啟動位字節(jié)傳入SMB89)。
發(fā)送緩沖區(qū)的格式如下表2所示:
T+0 |
發(fā)送字節(jié)的個數(shù) |
T+1 |
數(shù)據(jù)字節(jié) |
T+2 |
數(shù)據(jù)字節(jié) |
T+3 |
數(shù)據(jù)字節(jié) |
… |
… |
T+255 |
數(shù)據(jù)字節(jié) |
表2發(fā)送緩沖區(qū)的格式
說明:
T+0:發(fā)送信息的位元組個數(shù)需要提前定義。
T+1~T+255:要發(fā)送的數(shù)據(jù)字節(jié)
5.1利用SM0.1初始化通訊參數(shù)。
①使用SMB30(端口0)選擇自由口通訊模式,并選定自由口通訊的波特率,數(shù)據(jù)位元元數(shù)和校驗方式。
②設(shè)定結(jié)束位SMB89。
③一般還要利用SMB34定義一個定時中斷,來定時發(fā)送數(shù)據(jù)(一般為50ms,即間隔發(fā)送數(shù)據(jù)的時間)。這里為了降低反安全監(jiān)控系統(tǒng)的接收信息的頻率設(shè)置為255。
④利用完定時中斷0后選擇開中斷(ENI)。
5.2編寫主程序
自由口通訊程序的任務是把要發(fā)送的數(shù)據(jù)放到發(fā)送區(qū),這里我們把這個需要發(fā)送給安全監(jiān)控系統(tǒng)的數(shù)據(jù)以一個子程序的形式來編程,然后在主程序里面調(diào)用。程序編寫完后可以利用串口調(diào)試軟件驗證程序的正確性,通訊的具體程序在這里不再列出。
6故障與解決辦法
在S7-200PLC與安全監(jiān)控系統(tǒng)通訊過程中,最常見也是最主要最容易出現(xiàn)的問題就是PLC發(fā)送的數(shù)據(jù)與起重機安全監(jiān)控管理系統(tǒng)接收到的信息不一致。造成這種現(xiàn)象的原因最有可能兩種情況:①DB9針插頭3與8線接反;②PLC中定義的通信協(xié)議、通訊幀格式與起重機安全監(jiān)控定義的通訊協(xié)議、通訊幀格式不一致。
7結(jié)束語
S7-200PLC與起重機安全監(jiān)控系統(tǒng)通訊的成功設(shè)計保證了觀音巖水電站2×1600KN尾水門機安全監(jiān)控系統(tǒng)的順利投入使用。我單位自主研發(fā)的這一套通訊協(xié)議通訊過程穩(wěn)定、簡單、可靠性極高,受到業(yè)主的高度贊揚和一致好評。
標簽:
中國傳動網(wǎng)版權(quán)與免責聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(m.u63ivq3.com)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負版權(quán)法律責任。
相關(guān)資訊