組態軟件基礎及應用(組態王KingView)第2版 課件 第7、8章 組態王數據庫訪問;基于單片機實驗板的控制應用_第1頁
組態軟件基礎及應用(組態王KingView)第2版 課件 第7、8章 組態王數據庫訪問;基于單片機實驗板的控制應用_第2頁
組態軟件基礎及應用(組態王KingView)第2版 課件 第7、8章 組態王數據庫訪問;基于單片機實驗板的控制應用_第3頁
組態軟件基礎及應用(組態王KingView)第2版 課件 第7、8章 組態王數據庫訪問;基于單片機實驗板的控制應用_第4頁
組態軟件基礎及應用(組態王KingView)第2版 課件 第7、8章 組態王數據庫訪問;基于單片機實驗板的控制應用_第5頁
已閱讀5頁,還剩122頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

我們畢業啦其實是答辯的標題地方工控組態及應用7.2組態王SQL訪問管理器7.4數據庫查詢工程實例7.5數據庫與XY曲線結合工程實例7.6關系數據庫多表聯合工程實例第七章組態王數據庫訪問7.3如何配置與數據連接7.7報警存儲與查詢工程實例7.8本章小結7.1本章導學第七章組態王數據庫訪問

組態王SQL訪問管理器用來建立數據庫列和組態王變量之間的聯系。通過表格模板在數據庫中創建表格,表格模板信息存儲在SQL.DEF文件中;通過記錄體建立數據庫表格列和組態王之間的聯系,允許組態王通過記錄體直接操縱數據庫中的數據。這種聯系存儲在BIND.DEF文件中?!?.2

組態王SQL訪問管理器

組態王SQL訪問功能包括組態王SQL訪問管理器、如何配置與各種數據庫的連接、組態王與數據庫連接實例和SQL函數的使用,此功能可以實現組態王和其他ODBC數據庫之間的數據傳輸。7.2.1表格模板

在工程瀏覽器中選擇“SQL訪問管理器文件\表格模板”,雙擊“新建”,彈出“創建表格模板”對話框,如圖7-1所示。該對話框用于建立新的表格模板。7.1本章導學第七章組態王數據庫訪問

”圖7-1創建表格模板

模板名稱:表格模板的名稱字段名稱:使用表格模板創建數據庫表格中字段的名稱,長度不超過32個字符,如果數據庫中的字段名稱以數字開頭,如“3Name”,在定義表格模板時,名稱須以大括號包含,寫為“[3Name]”。

變量類型:表格模板創建數據庫表格中字段的類型。單擊下拉列表框按鈕,其中有四種類型供選擇,整型、浮點型、定長字符串型、變長字符串型。第七章組態王數據庫訪問

字段長度:當變量類型中選擇“定長字符串型”或“變長字符串型”時,該項文本框由“灰色”(無效)變為“黑色”(有效)。

索引類型:單擊下拉列表框按鈕,其中有三種類型供選擇,有(唯一)、有(不唯一)、無。索引功能是數據庫用于加速字段中搜索及排序的速度,但可能會使更新變慢。允許為空值:選中該項,將在前面的方框中出現“?”標志,表示數據記錄到數據庫的表格中該字段可以有空值。不選中該項則表示該字段的數據不能為空值。另外還有“增加字段”、“刪除字段”、“修改字段”、“上移一行”、“下移一行”這幾按鍵,可對已填入字段進行編輯和選擇。7.2.2記錄體

記錄體用來連接表格的列和組態王數據詞典中的變量。選擇工程瀏覽器中的“SQL訪問管理器文件\記錄體”,雙擊“新建”,彈出“創建記錄體”對話框,如圖7-2所示。該對話框用于建立新的記錄體。第七章組態王數據庫訪問

”圖7-2創建記錄體

在“創建記錄體”窗口中,包含記錄體名稱(記錄體的名稱)、字段名稱(數據庫表格中的列名)、組態王變量(與數據庫表格中指定列相關聯的組態王變量名稱)、增加字段(把定義好的字段增加到顯示框中)、刪除字段(把定義好的字段從顯示框中刪除)、修改字段(把定義好的字段在顯示框中進行修改)、上移一行(把選中的字段向上移動一行)、下移一行(把選中的字段向下移動一行)、復制記錄體(對已選中定義的記錄體進行復制)。第七章組態王數據庫訪問

組態王SQL訪問功能能夠和其他外部數據庫(支持ODBC訪問接口)之間的數據傳輸。實現數據傳輸必須在系統ODBC數據源中定義相應數據庫。進入計算機“控制面板”中的“管理工具”,用鼠標雙擊“數據源(ODBC)”選項,彈出“ODBC數據源管理器”對話框,如圖7-3所示。”7.3

如何配置與數據連接

7.3.1定義ODBC數據源圖7-3ODBC數據源管理器第七章組態王數據庫訪問

以MicrosoftAccess數據庫為例建立ODBC數據源的大致步驟。1.假設計算機中已經存在一個MicrosoftAccess數據庫,名為數據.mdb。2.雙擊“數據源(ODBC)”,彈出“ODBC數據源管理器”對話框,選擇“用戶DSN”屬性頁,單擊右側“添加”按鈕,彈出“創建新數據源”窗口,從列表中選擇“MicrosoftAccessDriver(*.mdb)”驅動程序。3.單擊“完成”,進入“ODBCMicrosoftAccess安裝”對話框4.在“數據源名”處編輯數據源名稱,單擊“選擇”,彈出“選擇數據庫”對話框,選擇數據庫文件所在目錄,單擊數據庫名,單擊“確定”,再單擊“確定”,完成ODBC數據源的定義。第七章組態王數據庫訪問

1.SyBase或MSSQLServer數據庫SyBase或MicrosoftSQLServer通信需要進行如下設置:(1)配置Windows的數據庫用戶;(2)使用SQLConnect()函數連接。配置數據庫的步驟:1)打開Windows控制面板的32位ODBC數據源管理器。單擊添加,選擇SQLServer,彈出ODBCSQLServer配置畫面;2)在DataSourceName欄填寫數據源名稱。在Server欄填寫數據庫Server名稱。

2.dBase數據庫

為了和dBASE連接,必須執行SQLConnect()函數。其格式如下:SQLConnect(ConnectionID,“<attribute>=<value>;<attribute>=<value>;…”);SQL管理器支持dBASE的三種數據類型。char類型包含定長的字符串,對應組態王中的字符串變量。數據庫dBASE最大支持254個字符。numeric類型和float類型對應組態王中整型或實型變量。必須設定變量長度。格式為十進制寬度。”7.3.2組態王支持的數據庫及配置

第七章組態王數據庫訪問

1功能概述在現實的生產生活中,很多場合需要對關系數據庫的數據按照不同的條件進行查詢處理,本例程介紹了在圖書館管理方面對關系數據庫按日期查詢數據信息,利用組態王的SQL函數實現對和KVADODBGird控件實現對數據庫的查詢處理。

2操作步驟

(1)數據庫以及表在工程文件夾中存在一個“圖書館.mdb”的Access的數據庫,在此數據庫中有一個名為“借書記錄”的數據表。數據表中有如下字段:借書日期、借書時間、管理人員、還書日期、借書學生、圖書編號、學生學號、是否歸還。字段的類型均為文本類型。”7.4

數據庫查詢工程實例

第七章組態王數據庫訪問

(2)設置ODBC數據源1.在計算機的“控制面板”—“管理工具”—“ODBC數據源”中建立ODBC數據源,雙擊“ODBC數據源”彈出“ODBC數據源管理器”,如圖7-4所示?!?/p>

圖7-4ODBC數據源管理器第七章組態王數據庫訪問

2.在“用戶DSN”選項卡中單擊“添加”,彈出“選擇數據源驅動程序”窗口,如圖7-5所示?!?/p>

圖7-5選擇數據源的驅動程序第七章組態王數據庫訪問

選擇“MicrosoftAccessDriver(*.mdb)”驅動,單擊“完成”。彈出如圖7-6所示窗口,根據需要填寫ODBC數據源名。”

圖7-6數據源定義第七章組態王數據庫訪問

單擊“選擇(S)”,如圖7-7所示,選擇工程路徑下的數據庫“圖書館.mdb”?!?/p>

圖7-7選擇數據庫第七章組態王數據庫訪問

單擊“確定”完成ODBC數據源定義,如圖7-8所示?!?/p>

圖7-8ODBC數據源定義第七章組態王數據庫訪問

3利用SQL函數進行查詢利用組態王的SQL函數可以實現對數據庫的數據進行查詢、插入、刪除等操作,在本例程中只介紹數據查詢的方法,其他的使用可以參考組態王的幫助手冊。組態王利用SQL函數進行查詢時必須首先建立記錄體。

(1)新建工程在組態王工程管理器中,新建“數據庫存儲與查詢工程”,并將此工程設為當前工程。

(2)定義變量進入組態王工程瀏覽器,在數據詞典中新建所需變量,定義變量分別為:借書日期(內存字符串)、借書時間(內存字符串)、管理(內存字符串)、還書日期(內存字符串)、借書學生(內存字符串)、圖書編號(內存字符串)、學生學號(內存字符串)、是否歸還(內存字符串)、查詢日期(內存字符串)、DeviceID(內存整數)。”

第七章組態王數據庫訪問

(3)定義記錄體在組態王中利用數據庫來連接數據庫的表格的字段和組態王數據詞典中的變量。創建記錄體:如圖7-9所示,可根據需要設置記錄體名稱,寫入字段名稱,并與對應的變量相關聯,單擊“添加字段”即可。字段名稱為數據庫中表的字段名稱,變量名稱為組態王數據詞典中的變量,字段類型與變量類型需一致,字段名稱需與數據庫中表的字段名稱一致,變量名稱可以與字段名稱不同?!?/p>

圖7-9創建記錄體第七章組態王數據庫訪問

(4)建立組態王與數據庫的關聯組態王中通過SQL函數實現與數據庫的建立與斷開連接。通過SQLConnect()函數建立組態王與數據庫的連接,通過SQLConnect()函數斷開連接。本歷程中數據庫無用戶名和密碼,具體用法如下:SQLConnect(DeviceID,"dsn=圖書館;uid=;pwd=");其中DeviceID是用戶創建的內存整形變量,用來保存SQLConnect()為每個數據庫連接分配的一個數值。編輯腳本程序。建議將建立數據庫連接的命令函數放在應用程序命令語言的啟動時執行,執行語句如下”:SQLConnect(DeviceID,”dsn=圖書館;uid=;pwd”);將斷開數據庫連接的命令函數放在應用程序命令語言的停止時執行,執行語句如下:SQLDisconnect(DeviceID);這樣當組態王進入運行系統后自動連接數據庫,當組態王退出運行系統時自動斷開數據庫的連接?!?/p>

第七章組態王數據庫訪問

注意:此函數在組態王運行中只需進行一次連接,不要把此語句寫入“運行時”,否則會多次執行此命令造成錯誤。(5)新建畫面查詢數據庫主要用到的SQL函數有SQLSelect()、SQLLast、SQLFirst、SQLPre、SQLNext()等。詳細的函數使用方法可以參考函數使用手冊。新建畫面“數據庫信息查詢”,利用工具欄中的畫圖工具和控件創建如圖7-10所示畫面。”

圖7-10數據庫信息查詢畫面第七章組態王數據庫訪問

查詢日期后的“##”動畫連接設置是在字符串輸入和字符串輸出處與變量\\local\查詢日期相關聯,借書日期、借書時間、管理人員、還書日期、借書學生、圖書編號、學生學號、是否歸還動畫連接為字符串輸出,分別關聯的變量為:\\local\借書日期、\\local\借書時間、\\local\管理人員、\\local\還書日期、\\local\借書學生、\\local\圖書編號、\\local\學生學號、\\local\是否歸還。“信息查詢”按鈕的彈起時命令語言為SQL查詢函數,進行數據庫信息查詢:stringwhe;whe="借書日期='"+\\local\查詢日期+"'";

\\local\查詢日期1=whe;

SQLSelect(DeviceID,"借書記錄","Bind1",whe,"");

“畫面切換”按鈕彈起時命令語言如下:ShowPicture("數據庫查表");向上箭頭按鈕的彈起時命令語言為SQL查詢函數,選擇上一條記錄查詢:SQLPrev(DeviceID);”

第七章組態王數據庫訪問

向下箭頭按鈕的彈起時命令語言為SQL查詢函數,選擇下一條記錄查詢:

SQLNext(DeviceID);“首記錄”按鈕的彈起時命令語言為SQL查詢函數,進行首記錄信息查詢:SQLFirst(DeviceID);“末記錄”按鈕的彈起時命令語言為SQL查詢函數,進行末記錄信息查詢:SQLLast(DeviceID);4利用KVADODBGird控件查詢數據

1控件介紹在實際工程中常常需要訪問開放型數據庫中的大量數據,如果通過SQL函數編程查詢,由于同一個條件下的數據較多,無法同時瀏覽所有的記錄,并且無法形成報表進行打印,使用不方便。因此組態王提供一個通過ADO訪問開放型數據庫中數據的ActiveX控件—KVADODBGird?!?/p>

第七章組態王數據庫訪問2操作步驟(1)新建畫面在組態王中新建畫面“數據庫查表”,單擊工具箱中的“插入通用控件”按鈕,在“插入控件”對話框的列表中選擇“KVADODBGird

Class”控件,拖動鼠標在畫面中畫出此控件,雙擊控件,將控件命名為“Lib”,保存畫面。選中控件,單擊鼠標右鍵,選擇“控件屬性”,彈出控件屬性對話框,如圖7-11所示?!?/p>

圖7-11控件屬性設置第七章組態王數據庫訪問

在“數據源”選項卡中單擊“瀏覽”按鈕,彈出“數據鏈接屬性”對話框,如圖7-12所示?!?/p>

圖7-12數據鏈接屬性第七章組態王數據庫訪問

選擇“連接”選項卡,在“指定數據源”處選擇“使用數據源名稱”選項,單擊“刷新”,在下拉列表中選擇數據源“圖書館”,單擊測試連接,顯示測試連接成功,如圖7-13所示,單擊“確定”,完成數據源的連接?!?/p>

圖7-13連接數據源第七章組態王數據庫訪問

在表名稱處選擇“借書記錄”,將“有效字段”處的字段按照數據表中的字段順序依次添加在右側顯示框內,單擊“應用”,再單擊“確定”即可完成對控件的配置。具體設置如圖7-14所示?!?/p>

圖7-14控件屬性設置第七章組態王數據庫訪問設置完成后,有效字段可應用在控件列表中,同時按下鍵盤的“Ctrl”+“Alt”+“O”,可以對控件的行高和列寬進行設置,設置完成后的畫面如圖7-15所示。”

圖7-15數據庫查表畫面第七章組態王數據庫訪問

對畫面中查詢日期后的“##”進行動畫連接,在字符串輸入和字符串輸出處與\\local\查詢日期相關聯。在畫面中插入“信息查詢”按鈕,對控件的記錄進行查詢,彈起時的命令語言如下:stringwhe;whe="借書日期='"+\\local\查詢日期+"'";Lib.Where=whe;Lib.FetchData();Lib.FetchEnd();控件.Where屬性:設置查詢條件,若不需任何條件,則可以設置為空??丶?FetchData方法:執行數據查詢,并將查詢到的數據集填充到控件中。控件.FetchEnd方法:結束查詢?!按蛴 卑粹o用于對控件的查詢記錄進行打印操作,彈起時的命令語言如下:Lib.Print();“畫面切換”按鈕彈起時命令如下:ShowPicture("數據庫信息查詢");“數據庫查表”畫面設置完成后,保存畫面。”

第七章組態王數據庫訪問

3運行畫面

保存畫面后單擊鼠標右鍵選中“切換到View”,將畫面切換到運行系統,打開“數據庫信息查詢”畫面,在“查詢日期后”設置需要查詢的日期,然后單擊“信息查詢”按鈕,即可顯示出查詢到的結果,單擊向下箭頭按鈕可以查詢下一條記錄,單擊“首記錄”和“末記錄”按鈕即可查詢該日期內的第一條記錄和最后一條記錄,查詢結果如圖7-16所示。”

圖7-16數據庫信息查詢畫面運行結果第七章組態王數據庫訪問

單擊“畫面切換”按鈕,即可直接切換至“數據庫查表”按鈕,查詢日期可以顯示之前所設置的日期,單擊“信息查詢”按鈕,即可在控件中顯示該日期內的所有記錄數據,單擊“打印”按鈕,可對記錄結果進行打印。記過如圖7-17所示?!?/p>

圖7-17數據庫查表畫面運行結果第七章組態王數據庫訪問

1功能概述在組態王中利用報表SQL函數實現對數據庫的查詢,并將查詢出來的數據用超級XY曲線顯示。

2操作步驟

1.數據庫說明(1)將Access數據庫放入工程文件夾中,數據庫為“data.mdb”。(2)在數據庫“數據.mdb”中有一個數據表:表的名稱為:食物中脂肪含量檢測。字段為:日期,時間,食物名稱,編號,檢測序號,檢測結果。檢測結果為數字類型(檢測序號為數字類型(整數)其余為文本類型。(3)在數據庫的食物中脂肪含量數據表中已存儲了數據。

2.計算機ODBC數據源建立根據本書7.3節建立一個名為“表數據”的數據源。”

7.5

數據庫與XY曲線結合工程實例第七章組態王數據庫訪問

3.定義變量根據ACCESS表的字段建立變量新建工程,然后定義變量,變量為內存變量。在組態王中定義四個內存字符串變量:日期,時間,食物名稱,編號;以及檢測序號(內存整型),檢測結果(內存整數)、DeviceID(內存整數)這三個變量。

4.創建記錄體記錄體名:bind1,字段名稱為數據庫中表的字段名稱。字段類型與變量類型需要一致。字段名稱要與數據庫中表的字段名稱一致。變量名稱與字段名稱可以不同。記錄體名稱可以根據需要命名。如圖7-18。”

圖7-18創建記錄體第七章組態王數據庫訪問

5.應用命令語言寫入建立數據庫連接的命令函數放在組態王的應用程序命令語言的啟動時執行。SQLConnect(DeviceID,"dsn=表數據;uid=;pwd=");建議將斷開數據庫連接的命令函數放在組態王的應用程序命令語言的停止時執行。SQLDisconnect(DeviceID);

6.組態王畫面實現繪制如圖7-19畫面,并進行變量關聯及將變量關聯到報表中。注意:關聯到報表中的變量前需加“=”號,即“=“變量”?!?/p>

圖7-19組態王畫面第七章組態王數據庫訪問

選中超級XY曲線控件,單擊右鍵,選擇“控件屬性”,彈出“XY屬性”界面,單擊“坐標”,在坐標界面中對X、Y軸的坐標進行設置,選中“X軸標題”并設置為“檢測序號”,最大值為30,最小值設為0。網格數為5,小數位為0。在Y軸信息區域中,首先設置YAxis0,選中“顯示Y軸”,將Y軸標題設為“檢測結果”,最大值為100,最小值為0。刻度數為10,小數位為0。在曲線畫圖區水平位置選擇“左邊”,將其設為畫圖區邊界的第0條縱軸,單擊更新Y軸信息,曲線控件上即可顯示坐標軸信息。在查詢按鈕下彈起時寫入以下程序:string

whe;whe="編號='"+\\local\編號+"'";SQLSelect(

DeviceID,

"食物中脂肪含量檢測",

"bind1",

Whe,

""

);Ctrl0.AddNewPoint(檢測序號,檢測結果,0)”

第七章組態王數據庫訪問

7.運行系統調試分別輸入不同的編號,可查詢數據庫中對應的數據,且超級XY曲線上可把對應的點顯示出來。如圖7-20?!?/p>

圖7-20

運行畫面第七章組態王數據庫訪問

1功能概述利用組態王中的KVADODBGrid控件和數據庫的視圖功能實現在組態王頁面多個表中聯合查詢數據。注:數據庫的視圖中就是數據庫對象里的“查詢”。在此說明,不同的Access數據庫,以下操作步驟會有所不同,本次以McrosoftofficeAccess2010版示例。

2操作步驟(1)建立數據查詢表1)打開Access,新建如圖7-21和圖7-22兩個表。”

7.6

關系數據庫多表聯合工程實例圖7-21

示例表1第七章組態王數據庫訪問

2)建立查詢表,單擊“創建”—“查詢設計”,彈出如圖7-23窗口?!?/p>

圖7-22

示例表2圖7-23

建立查詢表第七章組態王數據庫訪問

注:中間的關聯線可以右鍵刪除,若要再次添加只需要把左邊的“水表編號”鼠標左鍵點住拉到右邊的“水表編號”上。選擇要聯合查詢的字段,如圖7-25。”

圖7-24關聯數據表圖7-25

聯合查詢字段選擇

3)將已建立的兩個表添加,并建立關聯。如圖7-24。第七章組態王數據庫訪問保存好后,雙擊生成的“水表信息”,即可看到做好的查詢表,如圖7-27。”

圖7-26

保存查詢表圖7-27

已完成的查詢表

4)單擊“保存”,彈出保存查詢,保存建好的查詢表。如圖7-26。第七章組態王數據庫訪問

注:在添加創建新數據源時,選擇MicrosoftAccessDriver(*.mdb,*accdb)

在組態王中新建工程,并新建一個畫面,畫面插入KVADODBGrid控件。右鍵控件,選擇控件屬性,完成KVADODBGrid控件的設置,如圖7-29及圖7-30?!?/p>

圖7-28

數據源建立

(2)在組態王中使用KVADODBGrid控件完成多表聯合查詢1)建立數據源“水表信息”關聯到工程文件夾下的“水表信息.accdb”數據庫文件。如圖7-28。第七章組態王數據庫訪問”

圖7-29

數據連接屬性設置第七章組態王數據庫訪問”

圖7-30

數據連接測試連接第七章組態王數據庫訪問”

圖7-31

KVADODBGrid控件屬性設置2)將“水表信息”表中的字段添加。如圖7-31。第七章組態王數據庫訪問”

圖7-32

設置完成后的組態王畫面3)完成屬性設置后畫面中的表格變化如圖7-32。第七章組態王數據庫訪問”

圖7-33

運行系統效果圖

“全部查詢”按鈕命令語言:stringWhe;Ctrl0.Where=Whe;Ctrl0.FetchData();Where屬性:設置查詢條件,如果不需要任何條件,則可以設置為空。FetchData():執行數據查詢,并將查詢到的數據集填充到控件中。切換至運行系統,單擊全部查詢按鈕,實現效果如圖7-33。第七章組態王數據庫訪問

1功能概述在現代信息化時代,很多工業現場及監控系統都需要將變量的報警信息進行存儲,并且可以靈活地進行歷史報警的查詢、打印,以實現歷史數據的查詢。組態王中的實現方法:組態王支持通過ODBC接口將數據存儲到關系數據庫中,并且提供KVADODBGrid控件對存儲的歷史報警信息進行條件查詢,并可以對查詢結果進行打印。

2操作步驟

(1)實時報警

1)新建連接設備創建一個名為“報警存儲與查詢”的工程,并將其指定為當前工程。在設備處新建設備,定義一個仿真PLC的設備,設備名稱為“PLC”。此仿真PLC可以作為虛擬設備與組態王進行通信。仿真PLC主要有如下的寄存器:自動加1寄存器INCREA,自動減1寄存器DECREA,隨機寄存器RADOM,常量寄存器STATIC,常量字符串寄存器STRING,CommErr寄存器。具體的寄存器的使用請參考組態王IO驅動幫助?!?/p>

7.7

報警存儲與查詢工程實例第七章組態王數據庫訪問”

圖7-34報警組定義

2)定義變量在新建好的工程中定義兩個變量,一個為“液位”,數據類型為“I/O實數”,連接設備為“PLC”,寄存器選擇“INCREA100”,數據類型為“SHORT”。另一個為“溫度”,數據類型為“I/O實數”,連接設備為“PLC”,寄存器選擇“DECREA100”,數據類型為“SHORT”,還有一個內存字符串的變量“選擇日期”。

3)定義報警定義報警組:在工程瀏覽器界面系統中找到“數據庫”欄,選擇“報警組”,雙擊添加“液位報警”、“溫度報警”,兩個報警組,添加后單擊確定,如此便定義了兩個報警組。完成報警組定義如圖7-34。第七章組態王數據庫訪問”

圖7-35

變量報警定義

報警組定義完成后,回到變量定義界面,在變量定義的“報警定義”選項中我們對液位和溫度兩個變量進行報警的定義?!耙何弧弊兞康膱缶M名選擇“液位報警”,報警界限為低低、低、高、高高,界限值分別為0、10、90、100,單擊確定。“溫度”變量報警組名選擇“溫度報警”,報警界限與液位相同,設置如圖7-35。第七章組態王數據庫訪問”

圖7-36

新建畫面

4)編輯畫面變量的報警定義完成后,新建一個“實時報警”畫面,在工具箱中選擇報警窗口,然后在畫面上完成報警窗口的制作,雙擊畫面上的報警窗口,在通用屬性界面,將報警窗口命名為“報警”,選擇“歷史報警窗”,如果報警窗口沒有名字,則此報警窗口無效,顯示不了報警數據。在畫面上寫入文本“溫度”、“液位”,并關聯對應變量,即可使界面在運行時顯示溫度及液位數值變化。制作兩個按鈕,分別為“畫面切換”、“退出”。畫面切換按鈕命令語言為:ShowPicture("報警查詢");退出按鈕命令語言為:exit(0),畫面設置如圖7-36。第七章組態王數據庫訪問”

報警窗口定義完成后,如果此時進入運行系統,則當出現報警后,報警信息會在報警窗口中出現。需要注意的是,報警窗口顯示的信息在計算機的內存中,如果組態王退出后再進入運行系統則原來的報警并不存在了,歷史的報警信息并不會保存下來。(2)報警存儲1)我們進行報警配置中的數據庫配置。雙擊組態王工程瀏覽器的“系統配置”中的“報警配置”,彈出如圖7-37的“報警配置屬性頁”對話框。圖7-37

報警配置屬性頁第七章組態王數據庫訪問

”對話框中各項含義為:記錄報警事件:記錄報警數據庫時,是否包括報警事件。并配置報警事件存儲的類型:報警產生、報警確認、報警恢復。記錄操作事件:記錄報警數據庫時,是否包括操作事件。記錄登錄事件:記錄報警數據庫時,是否包括登錄事件。記錄工作站事件:記錄報警數據庫時,是否包括工作站事件。報警事件存儲參數:可以選擇單表保存,并配置數據保存天數,如1天,即清除之前的數據,保存最近1天的數據;也可以按月分表保存。使用默認數據源:在“報警配置屬性頁”,使“文件配置”中默認事件保存不選中,圖7-37中“使用默認數據源”是否有效,是由上面的四個記錄事件確定的。第七章組態王數據庫訪問

”2)在“報警配置屬性頁”對話框中,勾選使用默認數據源,組態王會自動在此工程文件下創建一個名為“AlarmData”的文件夾,然后在這個文件夾中創建報警存儲的數據庫,來自動保存報警觸發的數據。如下圖7-38所示:圖7-38報警儲存數據庫第七章組態王數據庫訪問”

圖7-39

運行畫面

3)運行系統畫面編輯完成后保存畫面,單擊“打開”中的“切換到view”,打開“實時報警”畫面,運行結果如下圖7-39。第七章組態王數據庫訪問”

圖7-40

報警信息存儲到數據庫中

當有報警產生后,會在報警畫面中顯示當前的報警信息,同時也會將報警信息存儲到Access數據庫中。我們可以打開組態王自己創建的數據庫,打開“Alarm”表,如下圖7-40所示:報警信息已經存儲到數據庫中。第七章組態王數據庫訪問”

圖7-41

kv屬性

(3)歷史報警數據查詢1)創建KVADODBGrid控件在工程中新建畫面“報警查詢”,單擊工具箱中的“插入通用控件”按鈕則彈出“插入控件”對話框。在“插入控件”對話框內選擇“KVADODBGrid

Class”控件,在畫面中放入此控件。雙擊此控件,為控件命名,控件名稱可以根據需要確定,我們命名為“KV”。單擊右鍵,選擇“控件屬性”,則會彈出如下圖7-41“KV屬性”對話框。第七章組態王數據庫訪問”

圖7-42

數據鏈接屬性

單擊“數據源”后面的“瀏覽”,出現“數據連接屬性”對話框,在“連接”頁面,“使用數據源名稱”選擇組態王自動創建的數據源“報警存儲與查詢工程實例_Alarm”,單擊測試連接成功后單擊確定回到屬性頁面進行設置。如圖7-42。第七章組態王數據庫訪問”

圖7-43

KV屬性設置

“表名稱”處應選擇“Alarm”表,將左邊需要查詢的“有效字段”分別添加到右邊,并在右側上修改名稱及格式,設置好后,單擊確定即可完成控件屬性設置,具體操作如下圖7-43所示:第七章組態王數據庫訪問”

圖7-44

控件動畫連接屬性

2)創建日歷控件我們按照日期進行歷史報警的查詢,使用微軟提供的通用控件“MicrosoftDateandTimePickerControl6.0(SP4)”進行查詢。單擊工具箱中的“插入通用控件”,選擇“MicrosoftDateandTimePickerControl6.0(SP4)”控件。如果微軟的通用控件用不了,就使用通用控件中“CalendarControl”控件,具體操作按照6.5章節的方法去實現。在畫面上插入控件后,雙擊控件,彈出“動畫連接屬性”對話框,在常規頁面中將其命名為“ADate”,保存后在“事件”頁面中選擇“CloseUp”如下圖7-44。第七章組態王數據庫訪問”

彈出控件事件函數編輯窗口,在函數聲明中為此函數命名:CloseUp1();在編輯窗口中編寫腳本程序,程序如下:floatAyear;floatAmonth;floatAday;stringtemp;Ayear=ADate.Year;Amonth=ADate.Month;Aday=ADate.Day;temp=StrFromInt(Ayear,10);if(Amonth<10)temp=temp+"-0"+StrFromInt(Amonth,10);elsetemp=temp+"-"+StrFromInt(Amonth,10);if(Aday<10)第七章組態王數據庫訪問”

temp=temp+"-0"+StrFromInt(Aday,10);elsetemp=temp+"-"+StrFromInt(Aday,10);\\local\選擇日期=temp;(3)畫面編輯畫面設計如下圖7-45所示,添加幾個按鈕:圖7-45編輯畫面第七章組態王數據庫訪問”

命令語言如下:“按日期查詢”按鈕:

stringwhen;when=\\local\選擇日期;KV.Where=when;KV.FetchData();KV.FetchEnd();“條件查詢”按鈕:longa;a=KV.QueryDialog();if(a==1){KV.FetchData();KV.FetchEnd();}“畫面切換”按鈕:ShowPicture("實時報警");第七章組態王數據庫訪問”

(3)條件查詢使用方法:KVADODBGrid控件為用戶在運行狀態中提供了一個查詢條件設置向導。如圖14.77所示。用戶可通過調用QueryDialog()方法實現查詢條件的自動配置。函數調用方法:nReturnValue=Ctrl.QueryDialog();參數:無返回值:0--查詢窗口按“取消”返回,1--查詢窗口按“確定”返回。執行此函數后將彈出“查詢條件對話框”,如圖7-46所示。圖7-46

查詢條件對話框第七章組態王數據庫訪問”

此對話框可以設置四組查詢條件的組合,并可以對查詢數據進行排序。在對話框的左側有四個復選框可以選擇,可用于確定共有幾組查詢條件。用戶可從下拉框中選擇查詢條件所需要的字段,之后選擇比較操作符,構成條件所需要的數值。如果選擇的字段為日期或時間型的類型,可以方便地從日期時間控件中選取日期時間值。在對話框的右側可以選擇是否按照相應的字段進行排序,可以指定按升序(ASC)或降序(DESC)排序。

配置好查詢條件后點擊“查詢SQL預覽”按鈕,可自動生成查詢語句中的查詢條件,顯示在“生成查詢語句”編輯框中。點擊“確定”后可將該查詢條件保存下來。之后可使用FetchData()方法按照此查詢條件顯示數據。當用戶修改了控件的where屬性后,該查詢條件變為新的查詢條件。第七章組態王數據庫訪問本章主要介紹了組態王數據庫SQL訪問管理器和如何配置與數據連接的相關內容,以及四個有代表性的工程實例:數據庫查詢工程實例、數據庫與XY曲線結合工程實例、關系數據庫多表聯合工程實例和報警存儲與查詢工程實例。通過實例的介紹和上機實際操作讀者可以更進一步得體會組態王數據庫訪問的過程和方法。”

7.8

本章小結第七章組態王軟件

課后習題1.組態王SQL訪問的目的是什么?組態王SQL訪問管理器的作用是什么?2.如何使組態王與數據庫建立連接?3.如何創建一個表格?4.如何將數據存入數據庫?5.如何得到數據庫錯誤信息?THANKSNAMEDAMEN我們畢業啦其實是答辯的標題地方工控組態軟件及應用8.1單片機概述第八章基于單片機的控制應用8.2系統設計說明8.3單片機數據采集與控制程序設計8.4本章小結8.1單片機概述

隨著工業自動化進程的不斷加快,現場儀器、儀表、設備正不斷向數字化、智能化和網絡化方向推進。單片機因為其強悍的現場數據處理能力,低廉的價格,緊湊的系統結構、高度的靈活性,微小的功耗等一系列優良特性在構建智能化現場儀器、儀表、設備中占有極其重要的地位。如今已經廣泛應用于工業測量和控制系統中。將單片機和組態王結合起來,使它們實現“強強聯合”,成為改造傳統工業,提升技術競爭力的重要趨勢。

目前許多自動化系統是由工控上位機組態軟件或觸摸屏與底層基于單片機組成的控制裝置組成,上位機組態軟件或觸摸屏通過與單片機控制裝置的串口通信來控制現場儀器設備,單片機采集數據和現場狀態通過串行口傳送到上位機組態軟件或觸摸屏,由上位機組態軟件對采集到的現場數據進行分析、存儲或顯示(觸摸屏在數據分析、存儲方面的功能沒有上位機組態軟件強大),以此達到對現場設備的運轉情況進行監視與控制。“”

8.1.1組態與單片機

單片機是一種集成電路芯片,又稱單片微控制器,其主要包括中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統、定時器/計數器等(可能還包括顯示驅動電路、脈寬調試電路、模擬多路轉換器、A/D轉換器等電路)。

1中央處理器(CPU)CPU包括三部分:運算器、控制器和專用寄存器。

(1)運算器:由一個算術邏輯單元ALL、一個布爾處理器和兩個8位暫存器組成。能給實現數據的四則運算(加、減、乘、除),邏輯運算(與、或、非、異或等),數據傳遞、移位、判斷、程序轉移等功能。

(2)

控制器:由指令寄存器IR,指令譯碼器ID,定時及控制邏輯電路等組成。

(3)專用寄存器:主要用來指示當前要執行指令的內存地址,存放操作數和指示指令執行后的狀態。8.1單片機概述8.1.2單片機的構成簡介2隨機存儲器(RAM)

主要用于存放各種數據,可以隨機讀入或讀出,讀寫速度快,讀寫方便。但電源斷電后,存儲的信息丟失。3程序存儲器(ROM)

一般用來存放固定程序和數據,特點是程序寫入后能長期保存,斷電后數據不會丟失。多種I/O端口也稱為I/O接口或I/O通路,是單片機與外部實現控制和交換的通道,分為并行端口和串行端口。并行端口:80C51有4個I/O端口,分別為P0—P3,它們都有雙向功能每個端口都有一個8位數據輸出鎖存器和一個8位的數據輸入緩沖器。串行端口:80C51是具有一個全雙工可編程串行I/O端口??捎蒚XD串行發出,又可由RXD串行接收。

定時器/計數器

80C51可以處理5個中斷源發出的中斷請求,其中2個外部中斷請求INT0,INT1,2個內部定時/計數器中斷請求T0,T1,一個內部串行口中斷請求。8.1單片機概述8位單片機:1、51系列:以intelMCS51為核心,許多公司都購買了其核心,生產屬于自己的51單片機,主要有ATMEL公司(AT89S52等等),STC公司的(比如STC89C52RC),華邦,摩托羅拉,ST都有生產。2、AVR系列:以ATMEL公司的ATmega16為代表。3、PIC系列:以MICROCHIP公司的PIC16F877為代表。另外,還有專用的工業單片機,平時比較少見到,比如臺灣的合泰、義隆、三星,這些單片機往往體積小,功能很強但比較專一,價格很便宜。16位單片機,比較有名的是MSP430以及飛思卡爾系列的諸多產品。32位的單片機也比較多,不過一般都包含了ARM內核,已經開始向ARM過渡了,比如STM32等等。8.1單片機概述8.1.3常用單片機系列1編寫程序軟件

單片機程序的編寫不需要任何特殊的軟件,只要是文本編輯軟件就可以了,如WINDOWS自帶的記事本、WORD等,不過這些軟件編寫并不方便,有一些更好的文本編輯器可供選擇,如UltraEdit、PE2等。當然,人們最常用的還是使用開發軟件自帶的編輯器來進行編寫。以80C51系列單片機為例,最為流行的軟件是Keil軟件。Keil軟件是一款綜合開發工具,內置了編輯器,ASM匯編器,C51編譯器,調試器等部分。8.1單片機概述8.1.4單片機的開發工具及編程語言2編程語言(1)匯編語言

用助記符表示的指令稱為匯編語言指令,用助記符編寫出來的程序稱為匯編語言程序。匯編語言比機器語言比較容易懂。但單片機只能識別機器語言,所以匯編語言編寫完成后要轉換成機器語言程序,再寫入單片機中。一般都是用軟件自動將匯編語言翻譯成機器語言。(2)高級語言

高級語言是依據數學語言設計的,在用高級語言編程時不用過多考慮單片機的內部結構。與匯編語言相比,高級語言易學易懂,而且通用性很強。高級語言的種類很多,如:B語言、Pascal語言、C語言和JAVA語言等。單片機常用C語言作為高級編程語言。8.1單片機概述8.2.1設計任務

利用KeilC51、匯編語言編寫程序實現單片機數據采集和控制;利用組態王編寫程序實現計算機與單片機自動化控制。1模擬電壓輸入

將0~5V電壓送給單片機,組態王與單片機建立通信讀取對應的電壓值,并將此電壓值轉換成十進制,以數字、曲線的方式顯示。2模擬電壓輸出

在組態王界面中輸入一個變化的數值(范圍:0~10V),將此電壓發送給單片機某一I/O口,在此輸出口接一個LED燈,觀察二極管的亮度來區分電壓的變化。8.2系統設計說明3數字量輸入

在單片機的P3.3至P3.6口接入按鈕(由程序設定),組態王與單片機建立通信后讀取這兩個按鈕的狀態(打開或關閉),并在界面中以指示燈表示。4數字輸出

在組態王界面中,以按鈕來表示輸出的數字量,當按下組態王界面中的按鈕時,接在單片機對應I/O口的發光二極管變亮。8.2系統設計說明8.2.2硬件連接數據采集與控制系統框圖如圖8-1。8.2系統設計說明圖8-1數據采集與控制系統框圖8.2.3組態王中的通信設置

用戶只要按照單片機ASII協議的規定編寫單片機通信程序就可以實現組態王與單片機的通信了。1定義組態王設備

定義設備選擇:智能模塊\單片機\通用單片機ASII\串口。

組態王的設備地址定義格式:##.#(與編寫的程序有關)。前面兩個字符為設備地址,范圍是0~255,此地址為單片機地址;后面一個字符表示數據是否打包,“0”表示不打包,“1”表示打包,與單片機的程序無關。2組態王通信設置

通信方式:RS—232,RS—485,RS—422。(本書中采用RS—232通信方式)。波特率:3600bit/s;

數據位:8位;奇偶校驗位:無校驗;停止位:1位。8.2系統設計說明8.2系統設計說明3定義變量

組態王中單片寄存器變量定義見表8-1。寄存器名稱讀寫屬性變量類型數據類型占用字節開始地址X0~X99讀寫I/O實數,I/O整數BYTE10X100~X200讀寫I/O實數,I/O整數USHORT2100X200以后讀寫I/O實數,I/O整數FLOAT4200表8-18.3.1模擬量輸入工程實例1功能簡述

使用STC單片機片上ADC模塊資源,根據組態王通用單片機通信協議(ASCII),編寫組態王通用單片機通信協議下的單片機下位機程序設計;完成組態王與單片機的模擬量輸入的設計。2實例要求條件

計算機(最好是WindowsXP);軟件組態王7.5;KeilC51;STC單片機燒寫軟件;

單片機STC12C5A60S2。8.3單片機數據采集與控制程序設計3原理簡述

單片機片上集成ADC模塊是單片機的發展趨勢,許多流行單片機都在片上集成有如ADC、PWM、SPI、I2c、等基本功能模塊。這些豐富的片上外設,也是衡量單片機性能的一項指標。

調用片上資源的套路跟51配置定時器、配置串口的操作如出一轍,本質上就是操作其控制寄存器、模式寄存器。產生中斷的,還有相關的中斷狀態寄存器和中斷向量(例如STC12C5A60S2單片機的AD中斷占用第5號中斷。用interrupt5聲明ADC中斷服務函數)。

STC12C5A60S2單片機是廣州宏晶科技出產的一款增強型51單片機(指令、寄存器遵從51架構,但處理性能有所提升。由于功能較豐富,相關控制器也有增設)。其處理速度較快(51指令集中部分指令的執行周期有所縮減提升),片上資源較豐富(RAM、EEPROM、AD、PWM、SPI)。8.3單片機數據采集與控制程序設計提示,在STC單片機的官方手冊里給出了具體的、可靠的模塊使用代碼。在開發的時候我們可以參考一下這些官方例程。單片機燒寫軟件中也帶有例程查找工能,直接按照需求找到相應代碼。理解后略做修改即可使用,快捷準確。8.3單片機數據采集與控制程序設計圖8-2ST系C12C5A列單片機引腳功能圖硬件連接上,根據編寫的程序,可連接一個電位器,電位器上端接+5v電源,下端接地,中間那端接到ADC模擬量輸入端口(本例的程序使用的單片機P1.0作為此端口),如圖8-38.3單片機數據采集與控制程序設計圖8-3硬件連接4單片機與電腦通信測試打開電腦的設備管理器,查看串口號及進行端口參數設置,如圖8-4。8.3單片機數據采集與控制程序設計圖8-4設備管理器串口設置

讀AD寄存器,校驗&設備地址&寄存器地址正確的話,返回采集到寄存器內的AD值;錯誤返回:4030462A2A37360D;將編寫好的程序燒入單片機后,打開串口調試助手,設置通信參數:串口號“COM6”,波特率“9600”,校驗位“無”,數據為“8”,停止位“1”;設置的參數與單片機參數一致。輸入如圖8-5中的數字,點擊發送。向單片機發送“403046433030303031303130350D”,若單片機返回類似于“4030463031413630300D”則表示通信成功。8.3單片機數據采集與控制程序設計圖8-5串口助手模擬量輸入調試5組態王與單片機通信測試

在組態王中設置新設備。新建組態王工程,在組態王工程瀏覽器中選擇設備,雙擊右側的“新建”,啟動“設備配置向導”選擇:“設備驅動”—智能模塊—單片機—通用單片機ASCII—串口,如圖8-6。8.3單片機數據采集與控制程序設計圖8-6選擇串口設備

單擊下一步,給設備指定唯一邏輯名稱,命名“MCU”;單擊下一步選擇串口號,如“COM6”(與電腦設備管理器一致);再單擊下一步,安裝PLC指定地址“15.0”。接著單擊下一步,出現“通信故障恢復策略”窗口,設置試恢復時間為30秒,最長恢復時間為24小時。單擊下一步完成串口設備設置。設置串口通信設置,雙擊“設備/COM6”,彈出設置串口窗口,進行參數設置,如圖8-7。8.3單片機數據采集與控制程序設計圖8-7設置串口—COM6完成設置串口后,選擇已建立的單片機設備,單擊右鍵—選擇“測試MCU”項,彈出“串口設備測試”,對照參數是否設置正確,若正確,選擇“設備測試”選項。如圖8-8。8.3單片機數據采集與控制程序設計圖8-8單片機通信參數

寄存器寫“X1”(由程序設定),數據類型為“BYTE”,單擊添加—讀取;讀出寄存器變量值,如圖8-9。調節電位器。該值有明顯變化,這說明組態王已經與單片機通信成功。8.3單片機數據采集與控制程序設計圖8-9單片機寄存器通信測試6組態王工程畫面建立

定義變量“數字量輸入”,變量屬性如圖8-10。注:變量讀寫屬性為“只讀”8.3單片機數據采集與控制程序設計圖8-10定義模擬量輸入變量“D2”

新建如圖8-11畫面,在組態王中選擇一個儀表,在工具箱中選擇實時曲線。并將變量“D2”關聯到儀表和曲線中去,“#####”選擇“模擬量輸出”關聯到“D2”。8.3單片機數據采集與控制程序設計圖8-11組態王畫面7

運行畫面調試將組態王界面全部保存后,切換到運行畫面,顯示結果如圖8-12。8.3單片機數據采集與控制程序設計

圖8-12運行畫面此次片上ADC實現的模擬量采集實驗,連線上,僅僅需要將要采集的模擬量與單片機相應IO口連接就行了。對單片機IO口資源的占用極少,使用相當方便。若成功,可見組態王儀表空間示數及指針隨電位器的調節而發生變動。8.3.2模擬量輸出工程實例1功能簡述

使用STC單片機片上ADC模塊資源,根據組態王通用單片機通信協議(ASCII),編寫組態王通用單片機通信協議下的單片機下位機程序設計;完成組態王與單片機的模擬量輸出(PWM)的設計。2實例要求條件

計算機(最好是WindowsXP;軟件組態王7.5;KeilC51;STC單片機燒寫軟件;

單片機STC12C5A60S2。8.3單片機數據采集與控制程序設計3原理簡述在前一個實例已介紹STC12C5A系列單片機,這里不再細說。硬件連接上,根據編寫的程序,可連接一個串接1K左右電阻的共陰或共陽LED燈作為PWM輸出(本例的程序使用的單片機P1.3作為此端口),如圖8-13。8.3單片機數據采集與控制程序設計圖8-13硬件連接4單片機與電腦通信測試打開電腦的設備管理器,查看串口號及進行端口參數設置,如圖8-14。8.3單片機數據采集與控制程序設計圖8-14設備管理器串口設置

將編寫好的程序燒入單片機后,打開串口調試助手,設置通信參數:串口號“COM6”,波特率“9600”,校驗位“無”,數據為“8”,停止位“1”;設置的參數與單片機參數一致。寫DA寄存器時,校驗&設備地址&寄存器地址正確的話,電壓數據信息寫入到DA寄存器;成功返回:403046232337360D;錯誤返回:4030462A2A37360D。如圖8-15。8.3單片機數據采集與控制程序設計圖8-15串口助手模擬量輸入調試5組態王與單片機通信測試

在組態王中設置新設備。新建組態王工程,在組態王工程瀏覽器中選擇設備,雙擊右側的“新建”,啟動“設備配置向導”;選擇:“設備驅動”—智能模塊—單片機—通用單片機ASCII—串口,如圖8-16。8.3單片機數據采集與控制程序設計圖8-16選擇串口設備

單擊下一步,給設備指定唯一邏輯名稱,命名“單片機”單擊下一步選擇串口號,如“COM6”(與電腦設備管理器一致);再單擊下一步,安裝PLC指定地址“15.0”。接著單擊下一步,出現“通信故障恢復策略”窗口,設置試恢復時間為30秒,最長恢復時間為24小時。單擊下一步完成串口設備設置。設置串口通信設置,雙擊“設備/COM6”,彈出設置串口窗口,進行參數設置,如圖8-17。8.3單片機數據采集與控制程序設計圖8-17設置串口—COM6

完成設置串口后,選擇已建立的單片機設備,單擊右鍵—選擇“測試單片機”項,彈出“串口設備測試”,如圖8-18。對照參數是否設置正確,若正確,選擇“設備測試”選項。8.3單片機數據采集與控制程序設計圖8-18單片機通信參數

在“設備測試”選項中,寄存器寫“X50”(由程序設定),數據類型為“BYTE”,單擊添加;再雙擊已添加寄存器“X50”,數據輸入0~255之間,寄存器變量值變所添加的值,如圖8-19若將單片機P1.3接上了都LED燈,可看到接在P1.3的LED燈隨著寄存器值的變化而變化。8.3單片機數據采集與控制程序設計圖8-19串口設備數據測試6組態王工程畫面建立

定義變量“數字量輸入”,變量屬性如圖8-20。注:變量讀寫屬性為“只寫”8.3單片機數據采集與控制程序設計圖8-20定義模擬量輸入變量“d1”

新建如圖8-21畫面,在組態王中選擇一個游標,在工具箱中選擇實時曲線。并將變量“d1”關聯到儀表和曲線中去,“#####”選擇“模擬量輸出”關聯到“d1”。8.3單片機數據采集與控制程序設計圖8-21組態王畫面

圖中游標的屬性設置如圖8-22。8.3單片機數據采集與控制程序設計圖8-22游標屬性設置7

運行畫面調試

將組態王界面全部保存后,切換到運行畫面。如圖8-23,此次片上PWM實現的模擬量采集實驗,連線上,僅僅需要將要受控對象與單片機相應IO口連接就行了。需要注意的是,單片機僅僅提供了一個控制信號,其驅動能力有限,不能在缺少功率放大電路的情況下直接推動電機功率較大的設備。若實例成功,可見P1.3口連接的LED燈亮度會隨組態王畫面中的游標的調節而發生變化。8.3單片機數據采集與控制程序設計圖8-23組態王運行畫面8.3.3單片機數字量輸入工程實例1功能簡述

使用STC單片機,根據組態王通用單片機通信協議(ASCII),編寫組態王通用單片機通信協議下的單片機下位機程序設計;完成組態王與單片機的數字量輸入的設計。2軟硬件要求

計算機(最好是WindowsXP);軟件組態王7.5;KeilC51;STC單片機燒寫軟件;單片機STC89C51或STC89C52等。

在單片機的P3.3至P3.6口接入按鈕(由程序設定),組態王與單片機建立通信后讀取這四個按鈕的狀態(打開或關閉),并在界面中以指示燈表示。8.3單片機數據采集與控制程序設計3單片機與電腦通信測試

打開電腦的設備管理器,查看串口號及進行端口參數設置,如圖8-24。8.3單片機數據采集與控制程序設計圖8-24設備管理器串口設置

將程序燒入單片機后,打開串口調試助手,設置通信參數:串口號“COM6”,波特率“9600”,校驗位“無”,數據為“8”,停止位“1”;設置的參數與單片機參數一致。輸入如圖8-25,中的數字,點擊發送。向單片機發送“403046433030303031303130350D”,若單片機末尾返回“403046303230347C3733420D”則表示通信成功。8.3單片機數據采集與控制程序設計圖8-25串口助手數字量輸入調試4組態王與單片機通信測試

在組態王中設置新設備。新建組態王工程,在組態王工程瀏覽器中選擇設備,雙擊右側的“新建”,啟動“設備配置向導”選擇:“設備驅動”—智能模塊—單片機—通用單片機ASCII—串口,如圖8-26。8.3單片機數據采集與控制程序設計圖8-26選擇串口設備

單擊下一步,給設備指定唯一邏輯名稱,命名“MCU”

單擊下一步選擇串口號,如“COM6”(與電腦設備管理器一致)

再單擊下一步,安裝PLC指定地址“15.0”。

接著單擊下一步,出現“通信故障恢復策略”窗口,設置試恢復時間為30秒,最長恢復時間為24小時。單擊下一步完成串口設備設置。

單片機通信測試。

設置串口通信設置,雙擊“設備/COM6”,彈出設置串口窗口,進行參數設置,如圖8-27。8.3單片機數據采集與控制程序設計圖8-27設置串口—COM6

完成設置串口后,選擇已建立的單片機設備,單擊右鍵—選擇“測試單片機”項,彈出“串口設備測試”,對照參數是否設置正確,若正確,選擇“設備測試”選項。如圖8-28。8.3單片機數據采集與控制程序設計圖8-28單片機通信參數

寄存器寫“X100”,數據類型為“USHORT”,單擊添加—讀??;寄存器變量值為“1111”,如圖8-29,若將單片機P3.3至P3.6口接上按鈕,按下對應按鈕對應位變為0,例如:當按下P3.3時,變量值變為1110。這說明組態王已經與單片機通信成功。8.3單片機數據采集與控制程序設計圖8-29單片機寄存器通信測試5組態王工程畫面建立

定義變量“數字量輸入”,變量屬性如圖8-30。注:變量讀寫屬性為“讀寫”8.3單片機數據采集與控制程序設計圖8-30定義“數字量輸入”

另外,設置四個內存離散變量,命名為“燈1”至“燈4”。

新建如圖8-31畫面,并將燈關聯到變量“燈1”至“燈4”?!?######”關聯到“數字量輸入”。8.3單片機數據采集與控制程序設計圖8-31組態王畫面6畫面命令語言輸入

右鍵組態王畫面—命令語言進入畫面命令語言窗口,選擇運行時;寫入如下程序:8.3單片機數據采集與控制程序設計if(\\local\數字量輸入==1111){\\local\燈1=0;\\local\燈2=0;\\local\燈3=0;\\local\燈4=0;}if(\\local\數字量輸入==

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論