智能建筑中PLC可編程與PC的通信實(shí)現(xiàn)微機(jī)監(jiān)控
摘 要:本文通過介紹
PLC可編程控制器的開發(fā)和PLC與VB的通信技術(shù),結(jié)合數(shù)據(jù)庫技術(shù),為智能建筑中的系統(tǒng)集成提供一種思路,提高智能建筑中設(shè)備使用的安全和可靠性!
1、引言:
PLC在智能建筑中也得到廣泛應(yīng)用,如中央空調(diào)控制、二次加壓設(shè)施、消防系統(tǒng)、電梯系統(tǒng)等。它集邏輯運(yùn)算、順序控制、定時、計(jì)數(shù)、算術(shù)運(yùn)算功能為一體。另外還可以與其他計(jì)算機(jī)進(jìn)行通信聯(lián)網(wǎng),這種通信不但包括不同的PLC之間的數(shù)據(jù)交換,而且還包括PLC與計(jì)算機(jī)之間的通信。
2、系統(tǒng)構(gòu)成:
本系統(tǒng)采用PLC采集模擬信號、數(shù)據(jù)處理,通過串行通信口上傳到計(jì)算機(jī),計(jì)算機(jī)對傳上來智能建筑中監(jiān)控設(shè)備的數(shù)據(jù)進(jìn)行分析、分類記入數(shù)據(jù)庫,實(shí)時顯示在上位機(jī)上并提供數(shù)據(jù)查詢。PLC為S7-224,串行通信接口的信號線采用RS-485,此信號線為半雙工,即不能同時接收和發(fā)送。將PLC置于run態(tài),就可以將PLC可編程中存于發(fā)送緩沖區(qū)中的數(shù)據(jù)及信號送人上位機(jī)的串口,上位機(jī)通過串口通信程序接收這些數(shù)據(jù)后顯示并通過數(shù)據(jù)庫控件Adodc的綁定,把數(shù)據(jù)記錄到數(shù)據(jù)庫,從而完成數(shù)據(jù)的采樣并記錄。
3、S7-200的通信方式與通信參數(shù)的設(shè)置:
本工程選擇STEP7-Micro/WlN32支持的通信硬件PC/PPI電纜,它所支持的波特率有9.6Kbps和19.2Kbps,支持的協(xié)議為PPI協(xié)議,即點(diǎn)對點(diǎn)接口協(xié)議,基于開放系統(tǒng)互聯(lián)模型0Sl。PPl是主/從協(xié)議,網(wǎng)絡(luò)上的S7-200CPU均為從站,其他CPU、SIMATIC編程器或TD200為主站。S7-200CPU仍通信端口采用RS-485信號標(biāo)準(zhǔn)的連接口,PC/PPI電纜把S7-200計(jì)算機(jī)連接起來,通過使用接收中斷、發(fā)送中斷和字符中斷等指令,自由端口通信可以控制S7-200CPU通信口的操作模式。本工程使用的是自由端口模式,允許在CPU處于RUN模式時通信口0使用自由端口模式,通過設(shè)定SMB30的值,我們可以選擇波特率、奇偶校驗(yàn)、每個字符的數(shù)據(jù)位和協(xié)議。CPU處于STOP模式時,停止自由端口通信,通信口強(qiáng)制轉(zhuǎn)換成PPI協(xié)議模式,此時,就可以向CPU中輸入PLC程序,實(shí)現(xiàn)編程軟件對PLC的編程和控制功能。在這里的通訊過程采用主從方式,即計(jì)算機(jī)為主機(jī),PLC為從機(jī),只有主機(jī)計(jì)算機(jī)發(fā)送請求報文后,從機(jī)PLC才向PC返回發(fā)送緩沖區(qū)中的數(shù)據(jù)。
計(jì)算機(jī)與PLC通訊時,一般由計(jì)算機(jī)發(fā)給PLC指令,PLC收到指令后自動發(fā)回答應(yīng)。下面給出命令幀、答應(yīng)幀和幀檢查的結(jié)構(gòu)。
FCS(Fame CheckSum)表示報文開頭和報文結(jié)結(jié)束間所有執(zhí)行邏輯加操作所得的結(jié)果,它由兩位ASC碼字符組成,每次PLC接收到計(jì)算機(jī)發(fā)送過來的一幀數(shù)據(jù),即計(jì)算其效驗(yàn)和,結(jié)果記為FCS2,將FCS2與幀中所包含的FCS1比較,可檢查該幀是否有數(shù)據(jù)錯誤,PLC立即發(fā)送錯誤信息計(jì)算機(jī),利用這一機(jī)制,有效防止了數(shù)據(jù)傳輸錯誤。
4、自由端口模式下PLC的通信:
由于本工程使用的是PC/PPl電纜,所以要在PLC的程序中考慮電纜的切換時間。PLC接收到請求報文到它返回發(fā)送緩沖區(qū)的數(shù)據(jù)的延遲時間必須不小于電纜的切換時間。波特率為9600bps,電纜的切換時間是2ms。在本工程的程序中是用定時中斷實(shí)現(xiàn)切換延時的。
定時中斷子程序:
NefworkTitle定時中斷程序INT2:
LDSM0.0
DTCCH 10
XMT VB200.0
當(dāng)程序運(yùn)行到“啟動定時中斷”(即ATCHINL的語句時,就會跳到如上所示的中斷子程序中,SM0.0是特殊存儲器,該位始終為1,即只要PLC處于RUN狀態(tài),這一開關(guān)即是接通的。XMTVB200.0語句是用來發(fā)送數(shù)據(jù)到串口的,此時發(fā)送的是存儲在以200為首地址的連續(xù)的存儲空間中的數(shù)據(jù),是通過端口0發(fā)送的。
另外,在初始化時要注意自由端口通信協(xié)議的設(shè)定,一定要使通信過程中的波特率,數(shù)據(jù)位,奇偶校驗(yàn)及停止位與上位機(jī)VB以及通信線上中設(shè)定的參數(shù)相同,否則將不能實(shí)現(xiàn)通信過程,要么接收不到數(shù)據(jù),要么會出現(xiàn)“下標(biāo)越界”的錯誤。
5上位機(jī)的通信部分采用VB語言編程
在編程過程中只要設(shè)置MSComm控件的屬性,就可以實(shí)現(xiàn)串行通信。在此控件眾多的屬性當(dāng)中,需要重新定義的屬性只有Comm—Port仍;輸數(shù)據(jù)的通信端口號)、Settings(設(shè)置數(shù)據(jù)傳輸?shù)牟ㄌ芈、奇偶校?yàn)、數(shù)據(jù)位以及停止位,注意,此參數(shù)一定要與PLC通信程中設(shè)置的參數(shù)相一致)、Porf0Pen(設(shè)置通信端口的狀態(tài))、InputMode(讀取接收緩沖區(qū)的格式)等。本工程采用事件驅(qū)動方式處理接受信息,即把RfhreshoId屬性設(shè)置為非零的值,此時只要接收字符或傳輸線發(fā)生變化就會產(chǎn)生串口事件OnComm。通過查詢CommEvent屬性可以捕獲這些通信事件。
Mscomm控件的主要屬性列表:
計(jì)算機(jī)串口初始化程序段如下:
With MSComm 1
PorfODen=False
Comport=1 設(shè)置通信端口為1
PortOpen-True'打開通訊端口
InputMode=comlnpufModeBinary以字節(jié)方式接受數(shù)據(jù)
EndWith
在VB中實(shí)現(xiàn)異或計(jì)算的程序及注釋如下:
nByfe(1)=UBound(sdata)+1'送數(shù)據(jù)區(qū)字節(jié)數(shù)
fcs=nByte(1)’校驗(yàn)碼初始化
Fori=2 to UBound(sdate)+2
nByte(1)=sdata(1-2)。待發(fā)送數(shù)據(jù)報文數(shù)組的數(shù)據(jù)區(qū)
fcs=fcs×or n,Byte(1)異或運(yùn)算,求校驗(yàn)碼
nByte(1)=fcs'送校驗(yàn)碼
其中sdafa發(fā)送的數(shù)據(jù)數(shù)組的變量名稱,F(xiàn)or Next語句實(shí)現(xiàn)所發(fā)送的數(shù)據(jù)每一位都進(jìn)行異或運(yùn)算。這樣就可以把發(fā)送數(shù)據(jù)的異或校驗(yàn)碼送到PLC中,在PLC比較兩次計(jì)算出的校驗(yàn)碼是否相同,從而提高通信的可靠性。
本工程中把計(jì)算機(jī)向下發(fā)送控制命令的部分寫成自定義函數(shù)send(xi)(i從1到6),在每一個需要發(fā)送控制命令的按鈕處調(diào)用此函數(shù),只是在send中參數(shù)設(shè)置為不同的控制函數(shù)。
為模擬一個配電屏控制面,該軟件可以對三相輸出電壓、電流、功率因數(shù)這些信號進(jìn)行采集、顯示并存儲,并對設(shè)備的動作狀態(tài)、故障情況采集到數(shù)據(jù)庫中。該控制面上方有一系列的控制按鈕,點(diǎn)擊某一按鈕就會向下位機(jī)發(fā)送相應(yīng)的控制命令,控制下位機(jī)動作。
6、與數(shù)據(jù)庫綁定的控件:
采集數(shù)據(jù)的最終目的不僅要把需要顯示的數(shù)據(jù)(比如:日常量)顯示在界面上,另外還要把數(shù)據(jù)記錄到數(shù)據(jù)庫中,以備日后查詢。顯示數(shù)據(jù)的過程很容易實(shí)現(xiàn),就是把接收緩沖區(qū)的內(nèi)容按照事先約定好的順序依次取出即可。要把數(shù)據(jù)記錄到數(shù)據(jù)庫就需要用到數(shù)據(jù)庫綁定控件,在本工程中用到的是Adodc控件,這一控件也不包括在常用的工具框中,仍然要依照加MSComm控件的方法把工具條Microsoft ADO Data Control6.0(sP4)(OLEDB)加到工具框中,然后就可以把這一控件拖入Form(在本次工作中把Adodcl控件放在了程序運(yùn)行時不顯示的查詢畫面中,這樣就可以同時完成記錄到數(shù)據(jù)庫和查詢工作)中,通過設(shè)定Adodcl的Conectionst ring(要求與事先建好的數(shù)據(jù)庫所存儲的地址相聯(lián)接)、CommandType(由于要向數(shù)據(jù)庫寫人數(shù)據(jù)因此要把它設(shè)置為2-adCmdtable)以及RecordSource。(如果指定的數(shù)據(jù)庫包含多個表,就要選擇一個與此Adodcl相對應(yīng)的表)屬性(其他屬性用默認(rèn)值即可)就綁定完畢。
7、結(jié)束語:
從以上敘述,可以看到,由計(jì)算機(jī)與PLC可編程組建實(shí)時監(jiān)控系統(tǒng)關(guān)鍵在于解決計(jì)算機(jī)與PLC實(shí)時通信、PLC對設(shè)備狀態(tài)實(shí)時監(jiān)控問題。計(jì)算機(jī)與PLC組建的實(shí)時監(jiān)控系統(tǒng)開發(fā)成本低、實(shí)時性好、操作簡便、通用性強(qiáng),利用計(jì)算機(jī)易組網(wǎng)功能,既可以做到智能建筑內(nèi)部網(wǎng)絡(luò)互聯(lián)、信息共享,又可通過調(diào)制解調(diào)器連接因特網(wǎng),使異地信息共享、遠(yuǎn)程監(jiān)控變?yōu)楝F(xiàn)實(shí)。實(shí)際工程中,該系統(tǒng)在惡劣的工業(yè)環(huán)境下工作穩(wěn)定、可靠,具有一定的應(yīng)用推廣價值。