a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 學院 > 開發設計 > 正文

應用VB4.0實現工業控制的實時曲線和歷史曲線

2019-11-18 17:50:12
字體:
來源:轉載
供稿:網友
在大型的工業現場控制中,一般用DCS(集散控制系統)來實現過程控制。在DCS中,實時曲線可顯示該控制點的當前趨勢,以監測該點在現場工況變化的情況下的控制穩定性,歷史曲線可觀察過去一段時間內某一點的變化趨勢,并供工藝人員分析工藝流程的穩定性和故障原因。然而在小型的工業控制中,由于控制規模小,控制回路少,因此可用PC機就能完成整個過程控制,在實時曲線和歷史曲線方面,可用VB4.0就能實現,并可與大型的DCS相媲美。
[實時曲線]
實時曲線反映的是現場數據的實時性和當前趨勢,因此在實現時需顯示曲線的動態變化,參考DCS,當前點在曲線的最右端顯示,而整個曲線動態地向左移動。

具體實現如下:
1、選擇需要顯示的窗體Form1,加入圖片框Picture1,根據實際需要設置圖片的大小并移到合適的位置,并在圖片的外面畫好量程----時間坐標系;
2、在全局模塊中定義位塊傳輸API函數BitBlt()和全局變量:
DeclareFunctionBitBltLib"GDI32"(ByValhDestDCASLong,ByValXAsLong,ByValYAsLong,ByValnWidthAsLong,ByValnHeightAsLong,ByValhSrcDCAsLong,ByValxSrcAsLong,ByValySrcAsLong,ByValDrawStyleAsLong)AsLong
GobalSAsLong`量程
GobalLAsLong`上一次的縱坐標值
GobalTAsInteger`上一次時間值(分)
3、PRivateSubForm1_Load()
Picture1.AutoRedraw=False`曲線不重畫
Picture1.ScaleMode=3`以象素方式(Pixel)
L=-1`設置初值
S=400
T=-1
EndSub
4、根據現場數據采集的采樣頻率,設置定時器Timer1的定時值,曲線移動就

Timer1實現:
PrivateSubTimer1_Time()
DimwAsLong,hAsLong,y1AsLong,DataAsLong
DimhBmpAshDC,ShowModeAsLong,iiAsLong,t1AsInteger
w=Picture1.Width
h=Picture1.Height
hBmp=Picture1.hDC
ShowMode=&HCC0020`ROP模式(復制)
Data=Get_RealDatabase()`從實時數據庫取當前監控值
y1=(S-Data)/S*h`根據量程轉變成具體坐標
ii=BitBlt(hBmp,0,0,w-1,h,hBmp,1,0,ShowMode)`整個曲線右移一個像素點
Picture1.Line(w-1,y)-(w,y1),RGB(0,255,0)
y=y1
t1=Val(Mid$(Time$,3,2))
IfT<>t1Then`在曲線下方顯示時間(用分表示)
Picture1.CurrentX=w-16
Picture1.CurrentY=h-8
Picture1.PrintMid$(Time$,1,5)
T=t1
EndIf
EndSub
[歷史曲線]
歷史曲線反映的是過去一段時間內某個監測點的變化趨勢,其曲線走向是從左向右方向發展的,與實時曲線走向正好相反。由于歷史數據庫保存的時間長,一般為一個月、三個月或者更長,因此其數據量特別大,在實現時只能顯示其中的一段曲線,而不能在圖片上一次畫好,否則其顯示速度將非常慢。

具體實現如下:
1、
在窗體Form2中加入圖片框Picture2,在圖片框的下方加入四個按鈕,分別為曲線右移4小時按鈕Command1、曲線右移8小時按鈕Command2、曲線左移4小時按鈕Command3和曲線左移8小時按鈕Command4。
2、設歷史曲線一分鐘存儲一個數據,并設一個像素點畫一小段直線,因此對于8小時的曲線,圖片的寬度為480Pixel,而對于4個小時的曲線,則兩個像素點畫一小段直線,具體設置如下:
Picture2.ScaleMode=3:Picture2.AutoRedraw=False
Picture2.Width=480:Picture2.Height=120
3、在窗體級變量中定義以下變量:
DimSAsLong`被測點的量程
DimFileNoAsLong`歷史數據庫的記錄號
DimHtimeAsDate`被測點對應的歷史時間
4、PrivateSubForm2_Load()
t$=FileDateTime("C:/HDB/HistoryData.dat")`獲得歷史數據庫存儲時間
Htime=TimeValue(Mid$(t$,Len(t$)-8,8))
Open"C:/HDB/HistoryData.dat"ForRandomAs#1Len=4
`打開歷史數據庫,
每個記錄存放一個單精度數
S=400`設置量程
EndSub
5、PrivateSubCommand1_Click()
`曲線右移4個小時
DimwAsLong.HAsLong,IAsLong,jAsLong
Dimy1AsLong,y2AsLong,yAsSingle
Picture2.Picture=LoadPicture("")`清曲線
w=Picture2.Width
h=Picture2.Height
Picture2.Line(0,0)-(w-1,h-20-1),RGB(127,127,127),B`用灰色在圖片上
畫網格
ForI=1To4
Picture2.Line(0,I*20)-(w-1,I*20),RGB(127,127,127)
NextI
ForI=1To7
Picture2.Line(I*60,0)-(I*60,h-20-1),RGB(127,127,127)
NextI
y1=-1
I=0
j=0
DoWhileNotEOF(#1)ANDI<w
Get#1,y
y2=(S-y)/S*h`根據量程轉換為具體坐標值
Ify1<>-1Then
Picture2.Line(I,y1)-(I 2,y2),RGB(0,255,0)`用綠色畫曲線
I=I 2
y1=y2
EndIF
j=j 1
Ifj=60Then'顯示時間(用小時顯示)
Htime=TimeValue(Htime) TimeValue("01:00:00")
j=0
Picture2.CurrentX=I-10
Picture2.CurrentY=h-20
Picture2.PrintHour(Htime)
EndIf
EndDo
FileNo=Seek(#1)`獲得歷史數據庫的記錄號
EndSub
6、PrivateSubCommand3_Click()
`曲線左移4個小時
DimwAsLong.HAsLong,IAsLong,jAsLong
Dimy1AsLong,y2AsLong,yAsSingle
Picture2.Picture=LoadPicture("")`清曲線
w=Picture2.Width
h=Picture2.Height
Picture2.Line(0,0)-(w-1,h-20-1),RGB(127,127,127),B`用灰色在圖片上
畫網格
ForI=1To4
Picture2.Line(0,I*20)-(w-1,I*20),RGB(127,127,127)
NextI
ForI=1To7
Picture2.Line(I*60,0)-(I*60,h-20-1),RGB(127,127,127)
NextI
y1=-1
I=0
j=0
IfFileNo>240Then`記錄指針往前移240個記錄
FileNo=FileNo-240
Seek#1,FileNo
Htime=TimeValue(Htime)-TimeValue("04:00:00")`時間左移4個小時
EndIf
DoWhileNotEOF(#1)ANDI<w
Get#1,y
y2=(S-y)/S*h
Ify1<>-1Then
Picture2.Line(I,y1)-(I 2,y2),RGB(0,255,0)`用綠色畫曲線
I=I 2
y1=y2
EndIF
j=j 1
Ifj=60Then'顯示時間(用小時顯示)
Htime=TimeValue(Htime) TimeValue("01:00:00")
j=0
Picture2.CurrentX=I-10
Picture2.CurrentY=h-20
Picture2.PrintHour(Htime)
EndIf
EndDo
FileNo=Seek(#1)`獲得歷史數據庫的記錄號
EndSub
至于曲線左移8小時和右移8小時,可以參考上述的方法,在畫兩點之間的直線時,以一個像素點為一小段直線,這里不一一舉例。->


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 成人国产精品一区二区毛片在线 | 视频一区 中文字幕 | 日韩中文字幕在线看 | 色黄视频在线看 | 久久青 | 国产免费视频一区二区三区 | 欧美精品久久久久久久亚洲调教 | 国产老女人精品毛片久久 | 日本亚洲一区 | 热re99久久精品国产99热 | 国产成人在线视频观看 | 精品一区二区在线观看 | av一区在线 | 毛片精品 | 国产成人欧美一区二区三区一色天 | 九九久久精品 | 日韩免费福利视频 | 麻豆一区二区 | 国产精品一区av | 国产性色| 久草福利在线视频 | 得得啪在线视频 | 久久精品欧美 | 久久久涩| 综合99| 999精品视频 | 亚洲 自拍 另类 欧美 丝袜 | 国产精品无码永久免费888 | 欧美成在线观看 | 午夜精品福利一区二区三区蜜桃 | 久久久久无码国产精品一区 | 欧洲猛妇oooo | 日韩精品在线播放 | 天天射欧美 | 日本中文字幕免费 | 91精品久久久久久久久久入口 | www.788.com色淫免费| 日韩成人午夜 | 中文字幕在线观看第一页 | 国产一在线 | 天堂精品 |