无码人妻精品一区二区三区9厂-国产精品人人做人人爽人人添-在线永久免费观看黄网站-国产精品久久久久一区二区三区

您現在所在的是:

人機界面

回帖:12個,閱讀:10695 [上一頁] [1] [2] [下一頁]
1225
楚終悟
文章數:71
年度積分:50
歷史總積分:1225
注冊時間:2001/3/24
發站內信
發表于:2002/2/8 22:55:00
#0樓
用VB開發工業控制程序的幾個問題

李光明 熊兵 周曉明


   隨著新的軟件開發工具的不斷涌現,應用軟件設計人員面臨的可使用的工具越來越多,令人眼花眼花繚亂,其中,Visual Basic是最為人們所容易接受的軟件開發工具之一。但是大多數使用VB進行軟件應用程序開發的人員都認為,VB不能進行工業控制程序的開發。其實不然,我們曾多次使用VB成功地實現了工業控制程序的開發,所開發出的產品業已投入實際使用。下面就其開發過程中的經驗介紹給大家。

平臺的選擇
使用VB開發工業控制程序,首先面臨的一個問題是平臺的選擇。目前,一般應用軟件的開發大多數都是在Windows 9x平臺上進行的。但是,我們認為在選擇平臺時,應考慮到客觀實際情況來決定。如果我們的用戶是一般的操作工人,并且在微機主板上安裝了我們自己開發的控制硬件板(如I/O板等),那么其平臺應選擇Windows 3.x。因為一般的操作工人接觸計算機較少,那么對于操作,而且在實際使用過程中,一般都可能會出現緊急事件或突然停電而非正常關機,此后再啟動時,Windows 9x將首先執行Scandisk.exe程序,或由此破壞了Windows 9x的注冊表,這將造成操作工人不知所措;如果在微機主板上安裝了我們自己開發的控制硬件板,那么Windows 9x還將要求安裝其驅動程序,綜合這些因素,我們建議使用Windows 3.x。否則,我們可以選擇Windows 9x。我們在開發“盆腔治療儀”時,考慮到用戶為醫護人員,并且通過平行口進行I/O控制,因此我們選擇了Windows 95;而在開發用于自動粘貼防偽標志的“復卷貼標機”時,其用戶系工廠工人,并且在工控機的主板插槽上我們安裝了自行開發的I/O控制板,為此我們選擇了Windows 32。根據實際使用情況看,我們的考慮、選擇是正確的。

編寫并生成對端口操作的動態鏈接庫
動態連接庫是Windows應用程序共享資源、節省內存空間、提高使用效率的一個重要技術手段。動態連接庫是包含數據和函數的模塊,可以被Windows的其他可執行文件調用。它包含輸出函數和內部函數兩種函數。輸出函數可以被其他模塊所調用,而內部函數則只能在動態連接庫內部使用。一般,動態連接庫以DLL作為其文件擴展名。

當前,可用于編寫動態連接庫的工具很多,如Turbo PASCAL for Windows、Delphi、Borland C++、Visual C++等等。下面介紹我們使用Turbo PASCAL for Windows Version 1.5所編寫的一個動態連接庫,其功能是實現對端口的I/O操作。

啟動PASCAL for Windows后,在程序編輯窗口中輸入如下程序MYDLL.PAS:

Library IOLIB; {庫名為IOLIB,將編譯生成MYDLL.DLL}

function read_port(port_address:integer):integer;export;

{函數被說明為export,port_address為端口地址}

Begin

read_port:=port[port_address]; {使用預定義數組讀端口數據}

End;

procedure write_port(port_address,write_value:integer);export;

{過程被說明為export,port_address為端口地址,write_value為輸出值}

Begin

port[port_address]:=write_value; {使用預定義數組向端口寫入數據write_value}

End;

Exports {Exports語句}

read_port index 1, {定義read_port的索引號為1}

write_port index 2; {定義write_port的索引號為2}

Begin {初始化部分,本部分為空}

End.

在其菜單欄中選擇Compile/Make(或Build),即可生成動態連接庫MYDLL.DLL。

在VB中調用動態鏈接庫實現端口的I/O操作
生成動態連接庫MYDLL.DLL后,這樣就可以在VB程序中調用該動態連接庫了。具體調用方法是:

⒈將該動態連接庫拷貝到windows\system目錄下;

⒉在VB程序中創建模塊(Module1),并在通用聲明(General_Declarations)中用下列語句說明該動態連接庫:

Declare Function read_port% Lib "MYDLL.DLL" (ByVal port_address As Integer)

Declare Sub write_port Lib "MYDLL.DLL" (ByVal port_address As Integer, ByVal write_value As Integer)

⒊在需要對端口進行I/O操作的事件中,如同調用VB的標準函數一樣調用該動態連接庫實現對端口的輸入輸出操作。如:

Private Sub Command1_Click()

‘若單擊命令按鈕Command1,則從端口378H輸出02H

write_port &H378,&H2

End Sub

Private Sub Command2_Click()

‘若單擊命令按鈕Command2,則讀端口330H

Dim Port_Value As Byte

Port_Value=read_port(&H330)

End Sub

控制程序中的幾個特點
⒈啟動Windows時啟動控制程序

為了在啟動Windows時自動啟動控制程序,我們可以將控制程序放到Windows 3.x的“啟動”程序組中或Windows 9x的“啟動”菜單中;或者在autoexec.bat中的合適位置加入如下命令:

win 控制程序的文件名

⒉取消標題欄

為了防止控制程序被用戶多次加載,因此應使每個窗體均為最大化,并取消最大化、最小化和控制按鈕,取消窗體的標題欄,即如下設置窗體的四個屬性:

WindowState=2 (即Maximized)

MaxButton=False

MinButton=False

ControlBox=False

Caption=””

⒊熱鍵問題

為了使功能鍵F1~F10及光標移動鍵(←、→、↑、↓)等實現DOS環境下的熱鍵功能,應使用對象的KeyUp或KeyDown事件,對所鍵入鍵的KeyCode進行判別,而不要使用KeyPress事件中KeyAscii進行判別。因為KeyPress事件中KeyAscii并不能給出這些鍵的值。

【作者】

李光明 空軍雷達學院計算機教研室講師 讀者登記號: 07876

熊 兵 空軍雷達學院自控設備研究所

周曉明 空軍雷達學院計算機教研室講師

E-mail地址:liguangming@126.com

郵政編碼:430010

29730
思南 管理員
文章數:14045
年度積分:57
歷史總積分:29730
注冊時間:2001/3/12
發站內信
發表于:2002/2/23 22:56:00
#1樓
Re:轉載:用VB開發工業控制程序的幾個問題
我覺得文中提到的使用Windows 3.x而不用Windows 9.x的理由還不充分,其實象自動運行Scandisk之類是可以通過設置取消的。
864
winloop
文章數:4
年度積分:50
歷史總積分:864
注冊時間:2002/1/19
發站內信
發表于:2002/3/7 23:30:00
#2樓
Re:轉載:用VB開發工業控制程序的幾個問題
請解釋一下為什么不用VB自帶的串行通信控件,卻要費半天勁編什么用于通信的動態褲?
961
huitongl
文章數:11
年度積分:50
歷史總積分:961
注冊時間:2003/7/14
發站內信
發表于:2003/10/6 22:09:00
#3樓
3樓:
    認真看一下,頂樓使用的是自己開發的I/O板,自然就不能使用VB自帶的串行通信控件。
   錯誤之處請指正。
1231
feng89
文章數:107
年度積分:50
歷史總積分:1231
注冊時間:2002/10/23
發站內信
發表于:2003/10/20 16:48:00
#4樓
有DOS最安全,又快又省事
135元10點PLC,6點輸入,4點繼電器輸出,帶外殼、開關電源。
WWW.FXPLC.CN
1041
zenghao
文章數:73
年度積分:50
歷史總積分:1041
注冊時間:2003/10/8
發站內信
發表于:2003/10/22 10:25:00
#5樓
VB不是不能做工控,但是太麻煩了!而且培訓、維護也都不方便;BUG也會很多。如用VB做還不如用單片機+VB的形式。做工廠的自動控制我覺得還是用成熟的產品比較好。
1282
pedo
文章數:94
年度積分:50
歷史總積分:1282
注冊時間:2003/9/13
發站內信
發表于:2003/10/22 22:10:00
#6樓
如果不考慮人機界面,我認為還是用DOS做工控,穩定!如果需美麗的人機界面,可用兩臺電腦,DOS控制,WINDOWS做界面,通過通訊連接。
                 皮多
887
murphey
文章數:10
年度積分:50
歷史總積分:887
注冊時間:2002/7/25
發站內信
發表于:2003/10/23 17:27:00
#7樓
在Win95下聽說可以做I/O板的驅動程序哦
875
fengxinhong
文章數:5
年度積分:50
歷史總積分:875
注冊時間:2002/11/5
發站內信
發表于:2003/10/24 10:12:00
#8樓
我比較喜歡用兩臺電腦的方案,穩定有方便。即可以用通訊,也可以用網卡
977
Ting
文章數:13
年度積分:50
歷史總積分:977
注冊時間:2003/10/6
發站內信
發表于:2003/10/24 11:42:00
#9樓
方便

關于我們 | 聯系我們 | 廣告服務 | 本站動態 | 友情鏈接 | 法律聲明 | 非法和不良信息舉報

工控網客服熱線:0755-86369299
版權所有 工控網 Copyright©2025 Gkong.com, All Rights Reserved

124.8008