張新軍,崔艷艷
(河南省濟(jì)源職業(yè)技術(shù)學(xué)院電氣工程系,河南濟(jì)源454650)
西門子PLC與上位機(jī)自由口通訊的設(shè)計(jì)
張新軍,崔艷艷
(河南省濟(jì)源職業(yè)技術(shù)學(xué)院電氣工程系,河南濟(jì)源454650)
介紹了西門子S7-200系列PLC在串行通訊技術(shù)中使用自由口數(shù)據(jù)傳輸?shù)闹噶罡袷揭约癙LC與上位機(jī)通訊的軟硬件實(shí)現(xiàn)方法。
PLC;PC;自由口通訊
可編程控制器PLC(Programmable Logic Controller)具有可靠性高、I/O接口模塊豐富、模塊化結(jié)構(gòu)等特點(diǎn),被廣泛應(yīng)用于各種工業(yè)環(huán)境中。西門子S7-200系列PLC在國內(nèi)廣泛采用,在其內(nèi)部有一個(gè)特殊功能寄存器SMB30(端口0)和SMB130(端口1),PLC可以根據(jù)其中的內(nèi)容,按照一定的協(xié)議實(shí)現(xiàn)與計(jì)算機(jī)間的通訊。
在現(xiàn)代的工業(yè)控制現(xiàn)場,工控機(jī)作為上位機(jī)對(duì)現(xiàn)場進(jìn)行實(shí)時(shí)監(jiān)控,完成可視化人機(jī)操作界面、圖形顯示、數(shù)據(jù)庫、通訊及聯(lián)網(wǎng)等。而下位機(jī)PLC則循環(huán)地讀入設(shè)備信號(hào),并進(jìn)行邏輯判斷操作、輸出控制信號(hào)、控制設(shè)備運(yùn)行。本研究中用PLC讀取現(xiàn)場的數(shù)據(jù)值,并將數(shù)據(jù)用自由口通訊方式送給上位機(jī)。
西門子S7-200型PLC具有較高的性能價(jià)格比,它帶有兩個(gè)RS485通訊口,而上位機(jī)的串行口是RS232,所以可采用西門子公司專用的PC/PPI編程電纜作為上下位機(jī)的連接電纜,負(fù)責(zé)RS485和RS232的轉(zhuǎn)換,并具有隔離抗干擾的功能。硬件構(gòu)成如圖1所示[1]。
自由口通訊是建立在RS-485硬件基礎(chǔ)上的一種通訊方式,用戶可以自己定義一些簡單、基本的通訊協(xié)議,如數(shù)據(jù)長度,奇偶校驗(yàn)等,實(shí)現(xiàn)比較復(fù)雜的通訊功能,以適應(yīng)各種通訊協(xié)議。自由口通信方式是S7-200 PLC的一個(gè)很有特色的功能,它使S7-200 PLC可以與任何通信協(xié)議公開的設(shè)備、控制器進(jìn)行通信。
自由口模式下,PLC主機(jī)處于RUN方式時(shí),用戶可以用接收中斷、發(fā)送中斷和相關(guān)的通信指令來編寫程序控制通信口的運(yùn)行;當(dāng)主機(jī)處于STOP方式時(shí),自由口通信被終止,通信口自動(dòng)切換到正常的PPI協(xié)議運(yùn)行[2]。
PLC的自由口模式通信編程首先對(duì)串口初始化,通過對(duì)特殊存儲(chǔ)字節(jié)SMB30(端口0)寫入通信控制字,來設(shè)置通信的波特率、奇偶校驗(yàn)、停止位和數(shù)據(jù)位數(shù),這些設(shè)定必須與上位機(jī)設(shè)定值相一致。
3.2.1 發(fā)送數(shù)據(jù)
PLC在接到上位機(jī)指令后,可以用XMT指令發(fā)送數(shù)據(jù),發(fā)送一個(gè)21字節(jié)長反饋信息(在本例中為21字節(jié),也可改變),數(shù)據(jù)格式見表1。狀態(tài)信息字節(jié)包含指令執(zhí)行的狀態(tài)信息,其中,起始字符標(biāo)志著反饋信息的開始狀態(tài)信息,如定義為ASCII碼的“g”;狀態(tài)信息字節(jié)包含指令執(zhí)行的狀態(tài)信息,如用01H代表讀取正確、02H代表寫入正確、03H代表BCC碼校驗(yàn)錯(cuò)誤、04H代表指令不合法;數(shù)據(jù)區(qū)為讀指令所要讀取的數(shù)據(jù),以十六進(jìn)制ASCII碼表示;BCC校驗(yàn)碼是反饋信息數(shù)據(jù)的異或和;結(jié)束字符標(biāo)志著反饋信息的結(jié)束,如定義為ASCII碼的“G”。
圖1 硬件構(gòu)成
表1 反饋信息格式
3.2.2 接受數(shù)據(jù)
PLC在第一次掃描時(shí)執(zhí)行初始化子程序,對(duì)端口及RCV指令進(jìn)行初始化。初始化完成后,運(yùn)行RCV指令使端口處于接收狀態(tài)。接收的數(shù)據(jù)放到接收緩沖區(qū),本例的RCV緩沖區(qū)的格式如表2。其中,指令類型表示上位機(jī)讓PLC執(zhí)行什么操作,如讀或?qū)?;目?biāo)站號(hào)是分配給PLC的一個(gè)代號(hào);目標(biāo)寄存器地址是PLC要進(jìn)行讀寫的存儲(chǔ)區(qū)的地址;讀寫字節(jié)數(shù)是PLC接到命令后,對(duì)存儲(chǔ)區(qū)進(jìn)行讀寫的字節(jié)數(shù);寫入數(shù)據(jù)是上位機(jī)要寫入PLC的數(shù)據(jù)。從目標(biāo)站號(hào)到BCC校驗(yàn)碼這幾項(xiàng)內(nèi)容,都是把16進(jìn)制數(shù)編碼為ASIIC碼來表示的;在接收到結(jié)束字符時(shí),會(huì)產(chǎn)生一個(gè)中斷(對(duì)端口0為中斷事件23)[2-3]。
表2 接收緩沖區(qū)
本系統(tǒng)中用上位機(jī)PC作主機(jī),向PLC發(fā)送讀/寫指令,PLC接收到信息后判斷傳輸正確與否,若錯(cuò)誤則反饋BCC碼錯(cuò)誤信息給上位機(jī)。上位機(jī)通過RS232口與PLC進(jìn)行通信,在上位機(jī)中利用VB編程軟件的Mscomm控件,對(duì)控件進(jìn)行簡單的設(shè)置就可以實(shí)現(xiàn)PLC與PC機(jī)之間的串行通信。上位機(jī)的通訊程序流程圖如圖2所示。
圖2 上位機(jī)通訊流程圖
S7-200 CPU通訊端口是RS485半雙工通訊口,因此發(fā)送和接收指令不能同時(shí)進(jìn)行。CPU使用XMT/RCV指令向指定通訊口以字節(jié)為單位發(fā)送/接收一串?dāng)?shù)據(jù)字符,要發(fā)送的字符以數(shù)據(jù)緩沖區(qū)指定,一次發(fā)送的字符最多為255個(gè),指令執(zhí)行完成后,會(huì)產(chǎn)生一個(gè)中斷事件(發(fā)送指令Port0為中斷事件9,接收指令Port0為中斷事件23)。PLC在第一次掃描時(shí)執(zhí)行初始化子程序,對(duì)端口及RCV指令進(jìn)行初始化。初始化完成后,運(yùn)行RCV指令使端口處于接收狀態(tài),接收完后啟用中斷,中斷程序?qū)χ噶钸M(jìn)行譯碼,同時(shí)給校驗(yàn)子程序入口寄存器置位,發(fā)送接收標(biāo)志位復(fù)位,并將寫入接收數(shù)據(jù)地址指針。計(jì)算接收數(shù)據(jù)的BCC碼,若正確且結(jié)束字符為設(shè)定值時(shí)則給BCC碼正確標(biāo)志位置位;若標(biāo)志位為“寫”,則調(diào)用“寫”子程序,向PLC寄存器中寫入控制值,進(jìn)而控制現(xiàn)場的設(shè)備運(yùn)行;若為“讀”,則調(diào)用“讀”子程序,則從PLC的數(shù)據(jù)緩沖器中讀取數(shù)據(jù)值;如果BCC碼不正確,則直接向上位機(jī)發(fā)送BCC校驗(yàn)碼錯(cuò)誤的信息;如BCC碼正確而結(jié)束字符不等于設(shè)定值,則向上位機(jī)發(fā)送指令不合法的信息[4]。PLC的通訊程序流程圖如圖3所示。
圖3 PLC通訊程序流程圖
本文采用自由口通訊協(xié)議實(shí)現(xiàn)了PLC和上位機(jī)的數(shù)據(jù)交換,同時(shí)可以方便地開發(fā)出PC機(jī)和PLC通信應(yīng)用軟件,這種方法節(jié)省投資,對(duì)小規(guī)模的系統(tǒng)具有現(xiàn)實(shí)意義。系統(tǒng)具有實(shí)時(shí)性好、速度快、可靠性高、操作方便等優(yōu)點(diǎn),達(dá)到了預(yù)期的效果。經(jīng)應(yīng)用于某企業(yè)的溫度采集系統(tǒng),完全符合企業(yè)要求。
[1]孫平.可編程序控制器原理及應(yīng)用[M].北京:高等教育出版社,2003.
[2]韓寶彬.PC與PLC在自由口模式下的串行通信[J].2003.
[3]西門子公司.S7-200可編程控制器系統(tǒng)手冊(cè)(第四版)[M]. 2005.
[4]http://www.gkong.com/中華工控網(wǎng)[EB/OL].2010-11-25.
責(zé)任編輯 王榮輝
An Approach to the Implementation of Freeport Communication between PC and SIMATIC PLC
ZHANG Xinjun,CUI Yanyan
(Electrical and Engineering Department,Jiyuan Vocational and Technical College,Jiyuan HeNan,454650 China)
This paper presents an approach to the implementation of freeport communication between PC and SIMATIC PLC.In this approach,Freeport communication is used and the SIEMENS S7-200 communication board is connected to the PC.This paper describes the format of these instructions in detail,in which the realization method about software and hardware are also introduced.
PLC;PC;freeport communication
TP39
A
1674-5787(2011)01-0162-03
2010-12-28
張新軍(1976—),男,碩士,講師,從事教學(xué)工作;崔艷艷(1975—),女,碩士,講師,從事教學(xué)工作。