《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 測(cè)試測(cè)量 > 業(yè)界動(dòng)態(tài) > PLC串行通信在測(cè)控裝置中的實(shí)現(xiàn)

PLC串行通信在測(cè)控裝置中的實(shí)現(xiàn)

2008-08-26
作者:黃天戍,吳少勇

  摘 要: 介紹了HG-2003型溫升測(cè)控裝置" title="測(cè)控裝置">測(cè)控裝置的測(cè)控對(duì)象和結(jié)構(gòu)設(shè)計(jì),。詳細(xì)討論了裝置中所采用的西門子公司的S7-200型PLC和PC機(jī)之間串行通信" title="串行通信">串行通信程序的設(shè)計(jì)與實(shí)現(xiàn),,即S7-200梯形圖通信程序設(shè)計(jì)與實(shí)現(xiàn)中的細(xì)節(jié)和難點(diǎn)。簡(jiǎn)要介紹了上位PC機(jī)通信程序的設(shè)計(jì),。該通信功能的實(shí)現(xiàn)確保了該裝置結(jié)構(gòu)簡(jiǎn)單,、可靠性高、便于二次開發(fā),。
  關(guān)鍵詞: RS-232串行通信 可編程控制器 自由端口模式 數(shù)據(jù)緩沖區(qū) PC/PPI電纜


  HG-2003型溫升測(cè)控裝置是筆者與我國北方某科學(xué)研究院聯(lián)合開發(fā)的一套專門用于高壓晶閘管閥溫升檢測(cè)試驗(yàn)的測(cè)控裝置,??紤]到PLC及其網(wǎng)絡(luò)已被公認(rèn)為現(xiàn)代測(cè)控裝置開發(fā)的幾大支柱之一,而且從近幾年的統(tǒng)計(jì)數(shù)字來看,,PLC產(chǎn)品在世界范圍內(nèi)的產(chǎn)量,、銷量高居各測(cè)控器件榜首,因此筆者決定本測(cè)控系統(tǒng)的核心器件采用可編程控制器(PLC),,其基本功能可通過軟件編程實(shí)現(xiàn),。PLC的三大亮點(diǎn)是:(1)集電控、電傳,、電儀三電于一體,;(2)網(wǎng)絡(luò)的性能價(jià)格比高;(3)可靠性高,。這些亮點(diǎn)就使得整個(gè)測(cè)控設(shè)備結(jié)構(gòu)簡(jiǎn)單,、可靠性高,同時(shí)也為實(shí)現(xiàn)系統(tǒng)控制功能的二次開發(fā)奠定了良好的技術(shù)基礎(chǔ),。本文主要討論設(shè)備中所采用的西門子公司的S7-200型PLC和PC機(jī)之間的串行通信問題,。
1 溫升測(cè)控系統(tǒng)整體介紹
1.1 HG—2003測(cè)控裝置的測(cè)控對(duì)象及結(jié)構(gòu)
  先來介紹一下該溫升試驗(yàn)測(cè)控裝置的基本工作流程。10kV電源進(jìn)線經(jīng)過進(jìn)線柜中的高壓斷路器CB和高壓隔離開關(guān)" title="隔離開關(guān)">隔離開關(guān)柜中的隔離開關(guān)G(用于在設(shè)備檢修或維護(hù)時(shí)形成一個(gè)明顯的斷點(diǎn))后,,加在10kV轉(zhuǎn)換變壓器T1上,。該變壓器將三相電轉(zhuǎn)化為單相電。這主要是由于做實(shí)驗(yàn)時(shí)負(fù)載電流很大,,如果使用三相電源,容易造成負(fù)荷電流的不平衡從而造成試驗(yàn)故障,。在轉(zhuǎn)換變壓器的輸出端(二次側(cè))連接單相溫升試驗(yàn)變壓器T2。該溫升變壓器的一次側(cè)應(yīng)加裝用于無功功率補(bǔ)償?shù)碾娙莨?,二次?cè)則通過有載分接開關(guān)直接連接試驗(yàn)品(即高壓晶閘管閥)進(jìn)行溫升試驗(yàn),。
  從基本工作流程不難知道測(cè)控裝置的測(cè)控對(duì)象,本裝置的具體測(cè)控對(duì)象如表1所示,。


  測(cè)控裝置的物理結(jié)構(gòu)分為兩部分:操作控制臺(tái)和試區(qū)控制箱,。其中,試區(qū)控制箱即PLC控制箱被安裝在試驗(yàn)區(qū)的隔離開關(guān)柜內(nèi)。操作控制臺(tái)即PC機(jī)人機(jī)界面操作臺(tái)則安裝在控制室內(nèi),。由于二者之間相距約40m,,所以采用PC/PPI電纜傳輸測(cè)控信號(hào)時(shí)需加裝中繼器。
1.2 HG—2003測(cè)控裝置的基本功能
  本測(cè)控系統(tǒng)的基本功能包括:開關(guān)分合控制指示功能,;設(shè)備和試品的過流,、過壓,、過熱報(bào)警及保護(hù)功能,;各種操作連鎖功能,如電源開關(guān)柜內(nèi)10kV電源斷路器和隔離開關(guān)柜內(nèi)的手動(dòng)隔離開關(guān)、控制室門觸點(diǎn),、試驗(yàn)大廳門觸點(diǎn)間的連鎖保護(hù)功能等,,并設(shè)有相關(guān)的報(bào)警提示畫面,。這些功能可以避免操作順序出錯(cuò)。
2 S7-200通信程序的設(shè)計(jì)與實(shí)現(xiàn)
2.1 PC機(jī)與S7-200的通信方式
  西門子S7-200 PLC的通信功能較強(qiáng),,有多種通信方式可供用戶選擇,,如:?jiǎn)沃髡痉绞健⒍嘀髡痉绞揭约笆褂谜{(diào)制解調(diào)器的遠(yuǎn)程通信方式等,。在本測(cè)控裝置中,,筆者采用單主站方式。在運(yùn)行Windows或Windows NT操作系統(tǒng)的個(gè)人計(jì)算機(jī)" title="個(gè)人計(jì)算機(jī)">個(gè)人計(jì)算機(jī)(PC機(jī))上安裝STEP 7-Micro/WIN 32編程軟件后,,PC機(jī)就可作為通信中的主站,。它可與一個(gè)或多個(gè)從站相連,,STEP 7-Micro/WIN 32每次和一個(gè)S7-200 CPU通信,,但可以訪問網(wǎng)絡(luò)上的所有CPU。該通信方式的硬件配置為PLC到PC機(jī)通信口的電纜連接器,,即帶RS-232口的隔離型PC/PPI電纜,,用五個(gè)DIP開關(guān)設(shè)置波特率和其它配置項(xiàng)。它支持的波特率為9.6kbps或19,2kbps,,支持的協(xié)議為PPI協(xié)議,。這里并沒有使用PPI協(xié)議,而是使用PC/PPI電纜和自由端口通信功能來實(shí)現(xiàn)S7-200 CPU與PC機(jī)間的通信,。自由端口模式是計(jì)算機(jī)或其它帶有串行通信接口的設(shè)備與S7-200 CPU之間通信的一種廉價(jià)和靈活的方法,。它以用戶定義的通信協(xié)議為基礎(chǔ),通過使用相關(guān)的中斷指令和專用的通信指令控制S7-200 CPU通信口的操作模式,,實(shí)現(xiàn)與多種智能設(shè)備的連接,。
  具體地說,所謂自由通信端口" title="通信端口">通信端口模式是指CPU的串行通信接口可由用戶程序控制的一種通信操作模式,,其梯形圖程序可以使用接收完成中斷,、字符接收中斷、發(fā)送完成中斷,、發(fā)送指令(XMT)和接收指令(RCV)等控制通信過程,。在該模式下,通信協(xié)議完全由用戶程序控制,。
  CPU處于STOP模式時(shí),,自由通信端口模式被禁止,CPU重新建立使用其它協(xié)議的通信,,例如與編程設(shè)備的通信,。只有當(dāng)CPU處于RUN 模式時(shí),才能使用自由通信端口模式,。通過將特殊寄存器字節(jié)SM30或SM130的協(xié)議選擇域(mm)置1可以將通信端口設(shè)置為自由端口模式,,處于該模式時(shí)不能與編程設(shè)備通信,。
  可以用反映CPU模塊上的工作方式開關(guān)當(dāng)前位置的特殊存儲(chǔ)器位SM0.7來控制自由端口模式的進(jìn)入。當(dāng)SM0.7為1時(shí),,工作方式開關(guān)處于RUN位置,,可選擇自由端口模式;當(dāng)SM0.7為0時(shí),,工作方式開關(guān)處于TERM位置,,應(yīng)選擇PC/PPI協(xié)議模式,以便用于編程設(shè)備監(jiān)視或控制CPU模塊的操作,。
2.2 自由端口模式下PLC串行通信程序的編程要點(diǎn)
  計(jì)算機(jī)與可編程控制器通信時(shí),,為了避免通信中的各方爭(zhēng)用通信線,一般采用主從工作方式,,即計(jì)算機(jī)為主機(jī),,可編程控制器為從機(jī);只有主機(jī)才有權(quán)主動(dòng)發(fā)送請(qǐng)求報(bào)文,,從機(jī)收到后返回響應(yīng)報(bào)文,。下面主要談一談編程過程中應(yīng)注意的幾個(gè)問題。
  首先是電纜切換時(shí)間的處理,。因?yàn)槭褂昧薖C/PPI電纜,,所以在S7-200 CPU的用戶程序中應(yīng)考慮電纜的切換時(shí)間。S7-200 CPU接收到RS232設(shè)備的請(qǐng)求報(bào)文到它發(fā)送響應(yīng)報(bào)文的延遲時(shí)間必須大于等于電纜的切換時(shí)間,。波特率為9600bps和19200bps時(shí),,電纜的切換時(shí)間分別為2ms和1ms。在梯形圖程序中可用定時(shí)中斷實(shí)現(xiàn)切換延時(shí),。
  其次就是通信可靠性的處理,,校驗(yàn)碼的采用是提高通信可靠性最常用的措施之一。用得較多的是異或校驗(yàn),,即將每一幀中的第一個(gè)字符(不包括起始字符)到該幀中正文的最后一個(gè)字符作異或運(yùn)算,,并將異或的結(jié)果(異或校驗(yàn)碼)作為報(bào)文的一部分發(fā)送到接收端。接收方接收到數(shù)據(jù)后計(jì)算出所接收到的數(shù)據(jù)的異或校驗(yàn)碼,,再與發(fā)送方傳過來的校驗(yàn)碼比較,,如果不同,可以判斷通信有誤,。
  最后需注意的是防止起始字符,、結(jié)束字符與數(shù)據(jù)字符的混淆。因?yàn)閳?bào)文的起始字符和結(jié)束字符只有8位,,接收到的報(bào)文數(shù)據(jù)區(qū)內(nèi)出現(xiàn)與起始字符或結(jié)束字符相同的數(shù)據(jù)字符的機(jī)率很大,,這可能會(huì)引起字符混淆。可以在發(fā)送前對(duì)數(shù)據(jù)作某種處理,,例如選擇起始字符和結(jié)束字符為某些特殊的值,而將數(shù)據(jù)字符轉(zhuǎn)化為BCD碼或ASCII碼后再發(fā)送,,這樣可以避免出現(xiàn)上述的情況,,但是會(huì)增加編程的工作量和數(shù)據(jù)傳送的時(shí)間。
2.3 通信程序中關(guān)鍵指令的使用與說明
  發(fā)送指令XMT(Transmit)用于啟動(dòng)自由端口模式下數(shù)據(jù)緩沖區(qū)(TBL)數(shù)據(jù)的發(fā)送,,指令格式如圖1所示,。通過指定的通信端口(PORT),將存儲(chǔ)在數(shù)據(jù)緩沖區(qū)(TBL)中的信息發(fā)送。使ENO=0的錯(cuò)誤條件:SM4.3(運(yùn)行時(shí)間),,0006(間接尋址),,009(在端口0同時(shí)XMT/RCV),000B(在端口1同時(shí)XMT/RCV),。


  XMT指令可以方便地發(fā)送1~255個(gè)字符,,如果有中斷程序連接到發(fā)送結(jié)束事件上,在發(fā)送完緩沖區(qū)中的最后一個(gè)字符時(shí),,端口0會(huì)產(chǎn)生中斷事件9,,端口1會(huì)產(chǎn)生中斷事件26??梢员O(jiān)視發(fā)送完成狀態(tài)位SM4.5和SM4.6的變化,,而不是用中斷進(jìn)行發(fā)送。數(shù)據(jù)緩沖區(qū)中的起始字符和結(jié)束字符是可選項(xiàng),,第一個(gè)字節(jié)的“字符數(shù)”是要發(fā)送的字節(jié)數(shù),,它本身并不發(fā)送出去。
  接收指令RCV(Receive)可以方便地接收一個(gè)或多個(gè)字符,,最多可接收255個(gè)字符,。通過指定的通信端口(PORT),將接收信息存儲(chǔ)在數(shù)據(jù)緩沖區(qū)(TBL)中,。數(shù)據(jù)緩沖區(qū)中的第一個(gè)字節(jié)用來累計(jì)接收到的字節(jié)數(shù),,它本身不能接收到,起始字符和結(jié)束字符是可選項(xiàng),。如果有中斷程序連接到接收結(jié)束事件上,,在接收完最后一個(gè)字符時(shí),端口0產(chǎn)生中斷事件23,,端口1產(chǎn)生中斷事件24,。
  使ENO=0的錯(cuò)誤條件:SM86.6和SM186.6(RCV參數(shù)錯(cuò)誤),SM4.3(運(yùn)行時(shí)間),,0006(間接尋址),,009(在端口0同時(shí)XMT/RCV),000B(在端口1同時(shí)XMT/RCV)。CPU不是在自由端口模式,。
  可以監(jiān)視SM86.6或SM186.6的變化,,而不是用中斷進(jìn)行報(bào)文接收。SM86.6或SM186.6為非零時(shí),,RCV指令未被激活或接收已經(jīng)結(jié)束,。正在接收?qǐng)?bào)文時(shí),它們?yōu)?,。
  當(dāng)超時(shí)或校驗(yàn)錯(cuò)誤時(shí),,要自動(dòng)中止報(bào)文接收功能。必須為報(bào)文接收功能定義一個(gè)啟動(dòng)條件和一個(gè)結(jié)束條件,。
  RCV指令允許通過參數(shù)設(shè)定選擇報(bào)文開始條件和報(bào)文結(jié)束條件,,即設(shè)定特殊存儲(chǔ)器字節(jié)SM86~SM94(用于端口0)和SM186~SM194(用于端口1)。
  另外兩個(gè)比較重要的指令是獲取與設(shè)置通信口地址指令,。獲取通信口地址指令(GET ADDR指令)用來讀取PORT指定的CPU口的站地址,,并將數(shù)值放入ADDR指定的地址中。設(shè)置通信口地址指令(SET ADDR指令)用來將通信口(PORT)站地址設(shè)置為ADDR指定的數(shù)值,。設(shè)置的新地址不能永久保存,,斷電后又上電,通信口地址將恢復(fù)為上次的地址值(用系統(tǒng)塊下載的地址),。圖2為使用RCV指令和接收完成中斷接收數(shù)據(jù)的通信程序流程圖,。


3 計(jì)算機(jī)通信程序的設(shè)計(jì)與實(shí)現(xiàn)
3.1 Windows環(huán)境下的PC機(jī)通信程序

  在Windows環(huán)境下,操作系統(tǒng)通過驅(qū)動(dòng)程序控制各硬件資源,,不允許用戶像在DOS環(huán)境下那樣直接對(duì)串口進(jìn)行底層的操作,。為此,Visual Basic提供了一個(gè)串行通信控件:MSComm控件,。程序員只需設(shè)置和監(jiān)視MSComm控件的屬性和事件,,就可以輕而易舉地實(shí)現(xiàn)串行通信。
3.2 MSComm控件的屬性
  MSComm控件主要屬性如下:(1)Comm Port:設(shè)置并返回通信端口號(hào),。(2)Settings:以字符的形式設(shè)置并返回波特率,、奇偶校驗(yàn)位、數(shù)據(jù)位和停止位,。其中字符n,、o、e分別代表無校驗(yàn),、奇校驗(yàn),、偶校驗(yàn)。(3)Port Open:設(shè)置并返回通信端口狀態(tài),。設(shè)置為Ture時(shí),,打開端口,;設(shè)置為False時(shí),關(guān)閉端口,。另外,,還有Input、Output,、Input Mode,、In Buffer Count等屬性,這里不再一一介紹,。
3.3 MSComm控件處理接收信息的方式
  MSComm控件提供兩種處理方式:(1)事件驅(qū)動(dòng)方式:RTHreshold屬性非0時(shí),收到字符或傳輸線發(fā)生變化時(shí)就會(huì)產(chǎn)生串口事件On Comm,。通過查詢Comm Event屬性可以捕獲并處理這些通信事件,。(2)查詢方式:通過查詢Input Buffer Count(接收緩沖區(qū)的字節(jié)數(shù))屬性值,處理接收到的信息,。本裝置中采用事件驅(qū)動(dòng)方式,。
  用Visual Basic語言設(shè)計(jì)串行通信程序簡(jiǎn)單實(shí)用,關(guān)鍵是如何形成一個(gè)友好的用戶界面,。編程的細(xì)節(jié)這里不再詳述,。
  隨著工業(yè)PC機(jī)的推出,個(gè)人計(jì)算機(jī)在工業(yè)現(xiàn)場(chǎng)運(yùn)行的可靠性問題也得到了解決,。因此在各類測(cè)控設(shè)備中實(shí)現(xiàn)PLC和PC機(jī)間的串行通信有著重大的意義,。這樣一方面有助于將個(gè)人計(jì)算機(jī)開發(fā)成簡(jiǎn)易工作站或者工作終端,實(shí)現(xiàn)集中顯示,、集中報(bào)警功能,;另一方面也可把個(gè)人計(jì)算機(jī)開發(fā)成PLC編程終端,通過編程器接口接入PLC網(wǎng)絡(luò),,進(jìn)行編程,、調(diào)試及監(jiān)控,并最終達(dá)到PLC測(cè)控設(shè)備結(jié)構(gòu)簡(jiǎn)單,、運(yùn)行可靠,、維護(hù)容易、便于二次開發(fā)的技術(shù)特點(diǎn),。

?

參考文獻(xiàn)
1 廖常初. PLC編程及應(yīng)用.北京:機(jī)械工業(yè)出版社,,2002.9
2 邱公偉. 可編程控制器網(wǎng)絡(luò)通信及應(yīng)用. 北京:清華大學(xué)出版社, 2000.3
3 郭宗仁. 可編程控制器應(yīng)用系統(tǒng)設(shè)計(jì)及通信網(wǎng)絡(luò)技術(shù).北京:人民郵電出版社,2002.9
4 SIMATIC S7-200 可編程控制器用戶手冊(cè). 北京:西門子(中國)有限公司,2002

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章,、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容,、版權(quán)和其它問題,,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118;郵箱:[email protected],。