我用的觸屏型號為TCP7032kt,觸屏上電后,點擊屏幕,進入?yún)?shù)設置模式,更改里面的網(wǎng)絡參數(shù),使其和你鏈接的電腦在一個局域網(wǎng)內(nèi);開始創(chuàng)建觸屏設備,
進入屬性設置
設置TCP/UDP 為 TCP;IP地址設置為和電腦在同一局域網(wǎng)內(nèi);設備站號設置為 1或其他值;
然后添加設備地址,關聯(lián)變量。觸屏就設置好了。
1、添加設備
打開設備下的COM口,在新建上雙擊打開,
在設備驅(qū)動,選擇PLC→莫迪康→ModbusTCP→TCP。
給驅(qū)動起一個名字。
選擇一個端口號,這里我們是走的TCP協(xié)議,可以隨便選擇一個。
設置IP地址,
設置嘗試恢復間隔和最長恢復時間。
設置完成
2、添加數(shù)據(jù)變量
選擇數(shù)據(jù)庫下的數(shù)據(jù)詞典,雙擊新建,
輸入變量名,選擇變量類型,選擇鏈接設備,選擇寄存器,輸入寄存器地址,選擇數(shù)據(jù)類型。
變量類型:內(nèi)存類型用來在內(nèi)部使用,I/O類型用來讀取外部數(shù)據(jù),數(shù)據(jù)分為離散類型、整數(shù)、實數(shù)、字符串。
寄存器:要寫完整的地址,如40001表示4區(qū)的01地址。
數(shù)據(jù)類型:
Bit |
位 |
BYTE |
字節(jié) |
SHORT |
整數(shù) |
USHORT |
無符號整數(shù) |
LONG |
長整數(shù) |
FLOAT |
浮點數(shù) |
String |
字符串 |
3、連接數(shù)據(jù)庫
我使用的數(shù)據(jù)庫是微軟自帶的Microsoft Access 數(shù)據(jù)庫,使用前先創(chuàng)建好數(shù)據(jù)表,打開電腦的控制面板,把查看方式改為小圖標,然后選擇管理工具,再選擇 ODBC 數(shù)據(jù)源32位。
雙擊打開,點擊添加,選擇驅(qū)動程序,起個名稱,選擇你新建的數(shù)據(jù)庫。
打開組態(tài)王,創(chuàng)建記錄體,字段名稱要和數(shù)據(jù)庫的名稱相同,內(nèi)部變量的類型要和數(shù)據(jù)庫中變量類型一致。
在命令語言中進行設置,運行時寫SQLConnect( \\local\DeviceID, “dsn=mdb;uid=;pwd=”); 。停止時寫SQLDisconnect(\local\DeviceID); 。這樣運行就可以連接上數(shù)據(jù)庫了。
4、數(shù)據(jù)庫查詢
首先創(chuàng)建查詢的變量。創(chuàng)建數(shù)據(jù)庫時,創(chuàng)建一個自動增長的變量,用來在排序時使用。
在畫面面板下選擇新建,創(chuàng)建一個畫面,在工具箱選擇插入通用控件。
在控件上右擊,選擇控件屬性,把要顯示的數(shù)據(jù)庫內(nèi)容添加進來。
接著添加圓角矩形和文字,圓角矩形用來輸入字符串,文字用來顯示輸入的字符串。
開始日期和結束日期可以做個腳本,打開畫面時獲取當前日期。
\local\查詢開始日期時間=\local$Date;
\local\查詢結束日期時間=\local$Date;
編號查詢時,
Ctrl3.Where=“樣品編號=’”+\local\查詢樣品編號+"’"+ " Order By 序號 DESC";
Ctrl3.FetchData();
Ctrl3.FetchEnd();
日期查詢時,
string a;
a=" 日期 >=#" +\local\查詢開始日期時間+"# and 日期 <=#"+\local\查詢結束日期時間+"#"+ " Order By 序號 DESC";
Ctrl3.Where=a;
Ctrl3.FetchData();
Ctrl3.FetchEnd();
多條件查詢時,
Ctrl3.SetSqlStringWhere(“樣品編號=’”+\local\查詢樣品編號,"’ and 工位=’" +\local\查詢工位 + “’”, " Order By 序號 DESC"," “,” “,” “);
Ctrl3.FetchData();
Ctrl3.FetchEnd();
查詢所有時,
Ctrl3.Where=”"+ " Order By 序號 DESC";
Ctrl3.FetchData();
Ctrl3.FetchEnd();
刪除數(shù)據(jù)時,
string a ;
a=" 日期 >=#"+\local\查詢開始日期時間+"# and 日期 <=#" +\local\查詢結束日期時間+ “#”;
SQLDelete( DeviceID, “催化劑磨損指數(shù)”,a);
a=" 日期 >=#"+\local\查詢開始日期時間+"# and 日期 <=#" +\local\查詢結束日期時間+"# and 工位=’" +\local\查詢工位 + “’”;
SQLDelete( DeviceID, “催化劑磨損指數(shù)”,a);
SQLClearTable( DeviceID, “催化劑磨損指數(shù)”);
打印數(shù)據(jù),
Ctrl3.Print();
導出數(shù)據(jù),
Ctrl3.SaveToCSV(“D:\催化劑磨損指數(shù).csv”);