抽水系統(tǒng)的計(jì)算機(jī)監(jiān)控設(shè)計(jì)

發(fā)布時(shí)間:2023-12-17
隨著建筑設(shè)計(jì)中樓宇智能化技術(shù)的發(fā)展,大型建筑群的供水系統(tǒng)也實(shí)現(xiàn)計(jì)算機(jī)的遠(yuǎn)程集中監(jiān)控,以下介紹一個(gè)計(jì)算機(jī)監(jiān)控的抽水系統(tǒng),它采用vc++6.0可視化編程,通過計(jì)算機(jī)與plc的串行通信,由plc不斷采集被控對象的狀況參數(shù),返回計(jì)算機(jī),計(jì)算機(jī)按照控制程序方式,監(jiān)控被控制對象的運(yùn)行。
1.抽水系統(tǒng)的組成與功能
1.1.抽水系統(tǒng)的組成
(1)抽水系統(tǒng)可視化界面結(jié)構(gòu)如圖1;
(2)相應(yīng)的數(shù)據(jù)庫結(jié)構(gòu)如圖2;
(3)系統(tǒng)共設(shè)計(jì)有八個(gè)人機(jī)對話窗體,具體功能如下表1:
序號(hào) 窗體名稱
窗 體 功 能
1
登陸
為進(jìn)入系統(tǒng)的登陸窗體,實(shí)現(xiàn)對操作員工號(hào)與密碼的安全檢查
2
抽水監(jiān)控界面
為系統(tǒng)運(yùn)行主窗體,實(shí)現(xiàn)對抽水的監(jiān)控功能,分別設(shè)置有抽水方式選種欄、狀態(tài)顯示欄、系統(tǒng)示意圖等
3
抽水記錄查詢
為抽水記錄查詢窗體,記錄開機(jī)操作員、關(guān)機(jī)操作員、抽水方式、啟動(dòng)時(shí)間、停止時(shí)間、抽水時(shí)間數(shù)據(jù)
4
故障記錄查詢
為故障記錄查詢窗體,記錄故障發(fā)生時(shí)的故障電流值、故障類型、故障時(shí)間
5
操作人員管理
為操作人員管理窗體,對操作人員的工號(hào)和密碼管理。
6
保護(hù)整定
為保護(hù)整定窗體,可整定速斷電流值,過流電流值和時(shí)限
7
故障報(bào)警
為故障提示窗體
8
打印
打印窗體
(4)硬件配置
系統(tǒng)的硬件配置如圖3所示,plc用于開關(guān)量的輸入與輸出、電流數(shù)據(jù)輸入,由plc的y0輸出的開關(guān)量控制接觸器km的狀態(tài),從而實(shí)現(xiàn)對抽水泵工作電源控制;而y0的狀態(tài)由plc的r0繼電器控制,通過計(jì)算機(jī)遠(yuǎn)程置位和復(fù)位r0繼電器,實(shí)現(xiàn)遠(yuǎn)程控制;在現(xiàn)場按鈕sb1和sb2也可以對r0繼電器置位和復(fù)位,實(shí)現(xiàn)就地合閘和分閘;k1和k2紅外線接近開關(guān)分別作為滿水和缺水的信號(hào)輸入;抽水泵的工作電流由電流互感器變換為0-5a,再經(jīng)電流變送器進(jìn)一步變換為合適a/d輸入的電流。 a/d轉(zhuǎn)換后的數(shù)字量存放在專用的wx9中,供遠(yuǎn)程監(jiān)控計(jì)算機(jī)的數(shù)據(jù)采集。
1.2.抽水監(jiān)控系統(tǒng)的軟件設(shè)計(jì)與功能
(1)抽水監(jiān)控系統(tǒng)的軟件程序流程圖如圖4所示。
(2)具有的電流速斷和定時(shí)限過流保護(hù)功能,當(dāng)計(jì)算機(jī)檢測得到的電流數(shù)據(jù)大于速斷電流整定值,則計(jì)算機(jī)瞬時(shí)發(fā)出分閘命令;如果大于過電流整定值,延時(shí)發(fā)出預(yù)告信號(hào),報(bào)警后,在設(shè)定時(shí)間內(nèi)不能恢復(fù)正常,計(jì)算機(jī)發(fā)出分閘命令。
(3)建立數(shù)據(jù)庫,記錄抽水系統(tǒng)開機(jī)、關(guān)機(jī)操作員的編號(hào)、分合閘的時(shí)間、抽水方式;故障時(shí),記錄保護(hù)動(dòng)作時(shí)間、動(dòng)作電流值和故障類型。
(4)抽水監(jiān)控系統(tǒng)有具有手動(dòng),自動(dòng),定時(shí)三種抽水控制方式。選擇手動(dòng)時(shí),計(jì)算機(jī)在系統(tǒng)啟動(dòng)時(shí),直接發(fā)送合閘或分閘指令;選擇自動(dòng)方式時(shí),系統(tǒng)啟動(dòng)后,計(jì)算機(jī)采集缺水信號(hào),若接到缺水信號(hào)將發(fā)送合閘指令,開始抽水后,等待滿水信號(hào),若滿水,則發(fā)送分閘指令;當(dāng)選擇定時(shí)方式時(shí),系統(tǒng)等待設(shè)置的啟動(dòng)時(shí)間到,自動(dòng)向抽水泵發(fā)送合閘指令;同樣系統(tǒng)也可以等待設(shè)置的停止時(shí)間到,自動(dòng)向抽水泵發(fā)送分閘指令。
(5)操作員進(jìn)入系統(tǒng)和退出系統(tǒng)需要進(jìn)行登陸檢查,采用安全措施進(jìn)入和退出系統(tǒng)。登陸系統(tǒng)后,操作員可以修改自己的密碼,只有管理員有權(quán)注冊新的操作員。
(6)系統(tǒng)運(yùn)行的仿真示意圖,實(shí)時(shí)顯示抽水系統(tǒng)的工作狀態(tài),在計(jì)算機(jī)監(jiān)控窗體增加了燈光和流程動(dòng)畫,直觀地顯示系統(tǒng)的運(yùn)行狀態(tài),更好展現(xiàn)可視化的效果。
2.抽水監(jiān)控系統(tǒng)設(shè)計(jì)的技術(shù)關(guān)鍵
2.1抽水監(jiān)控系統(tǒng)的核心程序
抽水監(jiān)控系統(tǒng)的核心程序?yàn)橄盗泻瘮?shù):發(fā)出通信指令函數(shù),如其中讀x2狀態(tài)的函數(shù)read_x2();字符串轉(zhuǎn)換并發(fā)送函數(shù)sendstring(cstring m_strsend);接收信息并轉(zhuǎn)換字符串函數(shù)readstring ()等。
計(jì)算機(jī)發(fā)出查詢x2狀態(tài)通信幀時(shí),調(diào)用sendstring(cstring m_strsend)函數(shù),將通信幀轉(zhuǎn)換數(shù)據(jù)類型,再用setoutput函數(shù)發(fā)送出去;plc接收到信息后,自動(dòng)返回x2的狀態(tài),計(jì)算機(jī)監(jiān)測到輸入緩沖區(qū)字符數(shù)到指定個(gè)數(shù),調(diào)用readstring()函數(shù),接收并轉(zhuǎn)換為cstring格式的字符串。
void ccsxtaview::read_x2()
{ m_com1.setoutbuffercount(0);
m_com1.setinbuffercount(0);
sendstring(%01#rcsr0000**\r\n);
sleep(100);
m_in=m_com1.getinbuffercount();
readstring();
x2=m_strread;
x2=x2.mid(6,1);
}
void ccsxtaview::sendstring(cstring m_strsend)
{ char txdata[100];
cstring m_strsend;
m_strsend=“%01#wcsr00021**\r\n”;
int count = m_strsend.getlength();
for(int i = 0; i < count; i++)
txdata[i] = m_strsend.getat(i);
cbytearray array;
array.removeall();
array.setsize(count);
for(i = 0; i < count; i++)
array.setat(i, txdata[i]);
m_mscomm1.setoutput(colevariant(array));//發(fā)送
}
void ccsxtaview::readstring ()
{
variant variant_inp;
colesafearray safearray_inp;
long len,k;
byte rxdata[2048]; //設(shè)置byte數(shù)組 an
//8-bit integerthat is not signed.
cstring strtemp, str;
str.empty();
strtemp.empty();
variant_inp = m_mscomm1.getinput();
//讀緩沖區(qū)
safearray_inp = variant_inp;
//variant型變量轉(zhuǎn)換為colesafearray型變量
len=safearray_inp.getonedimsize();
//得到有效數(shù)據(jù)長度
for(k=0;k<len;k++)
safearray_inp.getelement(&k,rxdata+k);
//轉(zhuǎn)換為byte型數(shù)組
for(k=0;k<len;k++)
//將數(shù)組轉(zhuǎn)換為cstring型變量
{ byte bt=*(char*)(rxdata+k);
strtemp.format(%c,bt);
//將字符送入臨時(shí)變量strtemp存放
str = str + strtemp;
//轉(zhuǎn)換完成后賦值給字符串str
}
}
2.2計(jì)算機(jī)與plc的通信幀
抽水監(jiān)控系統(tǒng)的設(shè)計(jì)關(guān)鍵之一是計(jì)算機(jī)與plc的通信幀,plc的通信系統(tǒng)的基本協(xié)議規(guī)定通信幀有嚴(yán)格的格式,本系統(tǒng)采用松下的plc。上述read_x2()指令函數(shù)中的%01#rcsr0000**\r\n為計(jì)算機(jī)發(fā)出讀plc的x2狀態(tài)的通信幀,功能說明如下表2:
通信幀 %
01#
rcs
r0000
**
\r\n
說明
通信標(biāo)志
地址
命令碼,讀接點(diǎn)
接點(diǎn)編號(hào)
效驗(yàn)碼,不效驗(yàn)時(shí)用“*”代替
結(jié)束碼
2.3計(jì)算機(jī)與plc的串行口連接
計(jì)算機(jī)與plc的rs-232串行口有9和25個(gè)腳兩種,而每個(gè)腳位的功能各有不同,正確連線才能使通信成功。計(jì)算機(jī)和plc的串行口一般為9腳,其定義和功能如下表3:
腳位 pc機(jī)rs-232,其9支腳位的定義
plc上的rs-232,其9支腳位的定義
簡寫
意 義
簡寫
意 義
1
cd
載波偵測
fg
保護(hù)接地
2
rxd
接收字符
sd
傳送字符
3
txd
傳送字符
rd
接收字符
4
dtr
數(shù)據(jù)端備妥
rs
要求傳送
5
cnd
地線
cs
清除以傳送
6
dsr
數(shù)據(jù)備妥
未用
7
rts
要求傳送
sg
地線
8
cts
清除以傳送
cd
載波偵測
9
ri
響鈴偵測
計(jì)算機(jī)與plc串行口連接通常有兩種,基于連接和基于不連接的信號(hào)接線方式如圖5所示:
2.4運(yùn)用vc++6.0語言編程實(shí)現(xiàn)對計(jì)算機(jī)的串行口的讀寫
vc++6.0語言對計(jì)算機(jī)硬件有較好的控制能力,運(yùn)用mscomm控件對計(jì)算機(jī)的串行口的讀寫控制。首先要對mscomm控件(假設(shè)名稱為mscomm1,其對應(yīng)的控制變量為m_mscomm1)的幾個(gè)屬性進(jìn)行設(shè)置。
m_mscomm1.setcommport(1);//設(shè)置通信端口
m_mscomm1.setsettings(9600,n,8,1);
//設(shè)置通信的波特率、效驗(yàn)方式、數(shù)據(jù)位、停止位
m_mscomm1.setsthreshold(1);//設(shè)置要接受的字符數(shù),當(dāng)輸入緩沖區(qū)字符書達(dá)到設(shè)置值,觸發(fā)oncomm事件
m_mscomm1.setportopen(true);//打開通信端口
設(shè)置各項(xiàng)屬性后,運(yùn)用mscomm控件對串行口進(jìn)行讀寫,將讀到的內(nèi)容寫入輸出緩沖區(qū),再將輸入緩沖區(qū)的信息讀到程序去,計(jì)算機(jī)依據(jù)程序自動(dòng)完成工作。
應(yīng)用m_mscomm1.getinput()和m_mscomm1. setoutput()屬性就可以將計(jì)算機(jī)輸入緩沖區(qū)的信息讀到程序中和把程序中的信息輸出到計(jì)算機(jī)的輸出緩沖區(qū)。
vc++6.0語言的m_mscomm1.getinput()和m_mscomm1. setoutput()屬性發(fā)出和接收的是colesafearray型數(shù)據(jù),發(fā)送前要用sendstring(cstring m_strsend)實(shí)現(xiàn)轉(zhuǎn)換,接收后要用readstring ()實(shí)現(xiàn)轉(zhuǎn)換為cstring字符串。
plc發(fā)出命令幀后,讀取plc的返回幀需一定的時(shí)間,否則返回幀的信息還未到達(dá)輸入緩沖區(qū),程序執(zhí)行不正確的信息,所以在讀返回幀的程序前,設(shè)置等待時(shí)間,使用sleep()讓程序處于休眠狀態(tài)等待完整的回幀的信息。
2.4.plc程序的配置
1)在plc程序要設(shè)置波特率、奇偶效驗(yàn)方式、數(shù)據(jù)位、停止位為“ 9600,n,8,1”,與計(jì)算機(jī)程序一致。
2)在plc程序要設(shè)置為允許計(jì)算機(jī)連接。
3)將程序下載到plc后,還要將plc斷電再接通電,通信設(shè)置才生效。
3.結(jié)束語:
運(yùn)用計(jì)算機(jī)的高級(jí)語言與計(jì)算機(jī)硬件控制、計(jì)算機(jī)與plc通信等技術(shù),實(shí)現(xiàn)計(jì)算機(jī)遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì),本文介紹的控制系統(tǒng)可作為一個(gè)控制模塊嵌入到大型的樓宇監(jiān)控系統(tǒng)中;也可以根據(jù)企業(yè)生產(chǎn)過程的控制對象,修改相關(guān)的一些參數(shù),作為工廠的在線監(jiān)控系統(tǒng)。
上一個(gè):華為8pro和vivo x60誰最好(x60vivo和華為8)
下一個(gè):貢菊金龜子防治

蘋果手機(jī)連接電腦無法識(shí)別是什么情況(iPhone連接電腦無法識(shí)別)
電腦品牌報(bào)價(jià)表(電腦品牌價(jià)格)
戰(zhàn)神36計(jì)戰(zhàn)力
電腦怎么截圖windows10(電腦wind10怎樣截圖)
臺(tái)式機(jī)加裝硬盤怎么分區(qū),臺(tái)式機(jī)加裝固態(tài)硬盤分區(qū)詳細(xì)操作
office2016專業(yè)增強(qiáng)版kms激活(office2019專業(yè)版kms激活)
石榴的養(yǎng)殖方法和注意事項(xiàng)
如何防治欒樹六星黑點(diǎn)豹蠹蛾
手機(jī)虛擬內(nèi)存是什么?手機(jī)虛擬內(nèi)存怎么設(shè)置?-
手機(jī)如何導(dǎo)入電話號(hào)碼(換新手機(jī)怎么導(dǎo)入電話號(hào)碼)
十八禁 网站在线观看免费视频_2020av天堂网_一 级 黄 色 片免费网站_绝顶高潮合集Videos