999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

可二次開發壓力校準手操器的研究與實現

2020-05-04 12:36:14
儀器儀表用戶 2020年5期
關鍵詞:二次開發界面設置

高 楠

(蘇州市計量測試院,江蘇 蘇州 215128)

在工業現場應用中,需要對大量壓力儀表進行信息錄入、數據采集、計量校準和故障診斷。鋰電池供電的手持設備(手操器)是一種較好的解決方案,由于其體積小、硬件接口靈活且支持二次開發,與常規的上位機軟件和臺式儀表裝置比較更具有應用優勢。現有的手持設備主要有3種開發模式:基于單片機液晶驅動的底層開發,應用μCOS和EMWIN的界面開發,以及帶有嵌入式操作系統的開發(如wince系統、linux系統)。手操器采用第二種方案進行設計開發[1,2]。

1 界面設計

可二次開發的壓力校準手操器采用μCOS-II實時操作系統和EMWIN界面平臺進行開發,與常規的底層開發方式比較,開發更便捷易于升級和維護。以主界面對話框的初始化函數為例,可以應用GUIBuilder軟件設計出軟件框架,再針對性地修改具體顯示屬性就能完成界面設計[3]。

//壓力計量管理系統對話框資源

const GUI_WIDGET_CREATE_INFO ExampleDialog[] =

{

{ FRAMEWIN_CreateIndirect, "壓力計量管理系統", 1000, 0, 0, 240, 320, 0, 0 },

{ TEXT_CreateIndirect, "程序主界面",

GUI_ID_TEXT0, 0, 10, 234, 30, 0},

{ BUTTON_CreateIndirect, "儀表信息",

GUI_ID_BUTTON0, 10, 50, 90, 60, 0},

{ BUTTON_CreateIndirect, "數據采集",

GUI_ID_BUTTON1, 10,130, 90, 60, 0},

{ BUTTON_CreateIndirect, "實時曲線",

GUI_ID_BUTTON2, 10,210, 90, 60, 0},

{ BUTTON_CreateIndirect, "歷史數據",

GUI_ID_BUTTON3, 130,50, 90, 60, 0},

{ BUTTON_CreateIndirect, "參數設置",

GUI_ID_BUTTON4, 130,130, 90, 60, 0},

{ BUTTON_CreateIndirect, "退出程序",

GUI_ID_BUTTON5, 130,210, 90, 60, 0},

};

由于顯示的內容包含漢字,所以設置字體為GUI_FontHZ16,且注意在Button控件復制粘貼后,需要給后續的Button重新指定不同的ID值,不然會出現顯示錯誤問題[4],具體的設備主界面如圖1所示。壓力校準手持設備,一般需要具備的功能有壓力儀表或傳感器數據的實時采集,通過MBUS、RS485、RS232、TTL或者紅外實現壓力儀器的校準,工業壓力儀表一般通過串口實現多點標定,或者應用HART通用命令在兩線制的基礎上實現零點和滿量程校準。圖形界面往往需要設置壓力顯示的數值精度,如量程變送上限值和小數點位數,再根據現場需要設置顯示單位,如MPa、kPa、Bar等。實時壓力曲線一般以Chart控件形式顯示,X軸是計量時間、Y軸是壓力傳感器數值。為了方便用戶觀察還可以在曲線上設置實時壓力數值顯示區域和標題Label,用于記錄儀功能的壓力采集,往往還需要顯示出采集開始至當前階段的壓力最大值、最小值和平均值。如果采集多個通道的壓力值,就涉及到Y軸坐標軸上限值設定的問題,例如:兩個通道的量程范圍分別為0MPa~6MPa和0MPa~60MPa,通常的設置方法有兩種,第一種方式是操作者根據實際需要手工設置對應通道的量程上限值,如分別設置6MPa和60MPa;第二種方式是操作者無需設置通道的量程上限值,控件的通道上限值設置為默認0,這樣采集的過程中通道曲線上限值根據采集值不斷調整,將之前采集過的壓力最大值作為通道的上限值。從而避免了通道量程上限值相同,有些通道變化幅度過小情況下,曲線波動趨勢不明顯的問題。操作者設置的參數往往具有保持功能,儀表程序退出時將多個參數值都設置在DB數據庫,儀表上電時將DB數據庫的參數值導入內存中,從而避免手持儀表重新上電,并且還需要重新設置參數的問題。

圖1 壓力計量手持設備主界面圖Fig.1 Main interface diagram of pressure metering handheld devices

2 系統設置

為了方便使用C或者C++的數據類型,將常用的數據類型定義如下:typedef unsigned int U32;調用鍵盤函數,返回值如下值:#define KEY_NUM0 0x30 //對應鍵盤“0”按鍵,等手操器共24個不同的物理按鍵對應值。手操器當前文件系統文件名長度不能超過31個ASCII字符(中文占兩個ASCII字符位置),超過部分將被截斷。數據庫規定單個記錄最大字段數目為100個,可滿足常規的應用要求。系統可以和多種串口設備通信,串口支持7、8、9位數據位通信。如:#define UART_MODE_8B_NONE_1S 3 //8位數據位,無校驗,一位停止位。

串口設備支持普通串口、低速紅外、高速紅外、條碼掃描、GPRS通訊、CDMA通訊、RS485通訊、RS232通訊等多種應用,并且定義了命令、數據和讀取狀態3種工作模式。手操器開發系統具有強大的輸入法,能夠支持數字、英文、中文輸入,中文輸入法支持拼音輸入和筆畫輸入,漢字庫標配GB2312字庫,可以選用GBK字庫。顯示液晶的坐標系以左上角為零點,橫向為X軸,軸向為Y軸,只有1個象限。彩屏屏幕X軸方向像素數目為240(0~239),彩屏屏幕Y軸方向像素數目為320(0~319)。結構體類型定義主要包括:sFILE文件結構體、sDBF數據庫結構體、sRTC時鐘結構體、sUART串口結構體和sMENU菜單結構體[5]。

圖2 實時顯示時鐘界面Fig.2 Real-time display clock interface

3 實時時鐘

手持設備采用μCOS-II和EMWIN進行開發編程,如圖2所示,在對話框資源頁設置顯示內容:

const GUI_WIDGET BusinessDialog[] =

{

{ FRAMEWIN_CreateIndirect,"實時顯示時間",

1000, 0, 0, 240, 320, 0, 0 }, //標題內容

{ TEXT_CreateIndirect, "當前時間:",

GUI_ID_TEXT0, 0, 20, 234, 30, 0},//文本

{ TEXT_CreateIndirect," ",

GUI_ID_TEXT1, 0, 60, 234, 30, 0},//時鐘

{ BUTTON_CreateIndirect, "退出",

GUI_ID_BUTTON0, 0,220, 90, 60, 0}, //按鈕

};

手持設備采用stm32F407主芯片,其內部具有RTC時鐘硬件,進行實時時鐘獲取時,需調用RtcGetDate和RtcGetDate兩個主函數,然后調用Lib_sprintf函數,將顯示內容進行格式處理,后續將函數供回調函數調用以實現實時時鐘更新[6,7]。

void CheckUpdateTime( WM_HWIN hDlg )

{

WM_HWIN hObj;

char time[40];

U8 year,month,day,hour,minute,second;

RtcGetDate(&year,&month,&day);//日期

RtcGetTime(&hour,&minute,&second);//時鐘

Lib_sprintf(time,"20%02d-%02d-%02d %02d:%02d:%02 d",year,month,day,hour,minute,second);

hObj =WM_GetDialogItem( hDlg,

GUI_ID_TEXT1 );//獲取文本信息

TEXT_SetText( hObj,time); //更新顯示

}

4 邏輯處理

回調函數處理包括:處理觸摸屏和按鍵消息,以及界面初始化3個部分。核心的程序框架如下所示,在手操器彩色觸摸屏上可以根據用戶的動作識別是哪個按鍵被觸發,也可以根據用戶對機械按鍵的操作識別是哪個按鍵被觸發;可以根據不同的觸發事件編寫對應的邏輯處理函數子程序,這樣就能實現手操器的人機交互。與傳統的單片機開發不同,需要在EMWIN下對每個窗口的回調函數進行框架設計[8]。

void ExampleCbFuntion( WM_MESSAGE*pMsg )

{

int NCode, Id;

WM_HWIN hDlg;

hDlg = pMsg->hWin;

switch ( pMsg->MsgId )

{

case WM_INIT_DIALOG:

//創建對話框初始化

break;

case WM_PAINT:

//窗口變為無效并應重繪

break;

case WM_NOTIFY_PARENT:

//告知父窗口子窗口中發生改變-觸摸屏

Id = WM_GetId( pMsg->hWinSrc );

NCode = pMsg->Data.v;

switch ( NCode )

{

caseWM_NOTIFICATION_RELEASED:

//觸摸屏消息

switch ( Id )

{

case GUI_ID_BUTTON1:

//屏上按鈕1觸發的動作

break;

case GUI_ID_BUTTON2:

//屏上按鈕2觸發的動作

break;

}

break;

case WM_KEY:

//按下按鍵后發送到包含焦點的窗口-按鍵 switch ( ( ( WM_KEY_INFO

* )( pMsg->Data.p ) )->Key )

{

case GUI_KEY_NUM1:

//按鍵1觸發的動作

break;

case GUI_KEY_NUM2: //按鍵2觸發的動作 break;

}

break;

default:

WM_DefaultProc( pMsg );

}

}

5 結論

本文闡述了應用EMWIN平臺和嵌入式實時操作系統μCOS-II,實現可二次開發壓力校準手操器的研發過程。儀表可以實現信息錄入、數據采集、實時曲線和歷史查詢等功能,且具備二次開發接口。經測試,壓力校準手操器可以穩定高效地實現壓力儀表的計量校準和信息采集,達到了預期的設計效果。

猜你喜歡
二次開發界面設置
中隊崗位該如何設置
少先隊活動(2021年4期)2021-07-23 01:46:22
國企黨委前置研究的“四個界面”
當代陜西(2020年13期)2020-08-24 08:22:02
淺談基于Revit平臺的二次開發
甘肅科技(2020年20期)2020-04-13 00:30:02
淺談Mastercam后處理器的二次開發
模具制造(2019年3期)2019-06-06 02:11:02
基于FANUC PICTURE的虛擬軸坐標顯示界面開發方法研究
西門子Easy Screen對倒棱機床界面二次開發
人機交互界面發展趨勢研究
本刊欄目設置說明
中俄臨床醫學專業課程設置的比較與思考
手機界面中圖形符號的發展趨向
新聞傳播(2015年11期)2015-07-18 11:15:04
主站蜘蛛池模板: 91成人免费观看| 香蕉在线视频网站| 97影院午夜在线观看视频| 日本午夜三级| 婷婷99视频精品全部在线观看| 国产激情无码一区二区三区免费| 国产在线视频导航| 亚洲成a人片在线观看88| 九九热精品视频在线| 91区国产福利在线观看午夜| 免费国产高清视频| 十八禁美女裸体网站| 真实国产乱子伦视频| 欧美成人影院亚洲综合图| 国产福利一区视频| 国产波多野结衣中文在线播放| 无码精品一区二区久久久| 一区二区日韩国产精久久| 99激情网| 国产精品综合久久久| 国产精品自在拍首页视频8| 亚洲清纯自偷自拍另类专区| 成人第一页| 欧美特黄一免在线观看| 四虎永久在线精品影院| 欧美高清视频一区二区三区| 99精品在线看| 午夜视频日本| 热99精品视频| 国产精品专区第1页| 亚洲天堂精品在线| 成人韩免费网站| 国产精品美女自慰喷水| 国产网站免费| 国产欧美亚洲精品第3页在线| 小说区 亚洲 自拍 另类| 伊人久热这里只有精品视频99| 国产精品黑色丝袜的老师| 国内精品手机在线观看视频| 国产乱人伦偷精品视频AAA| 婷婷六月在线| 97国产在线播放| a毛片免费在线观看| 91精选国产大片| 国产精品林美惠子在线播放| 欧美一级夜夜爽www| 91青草视频| 国产一级片网址| 国产一区二区三区精品欧美日韩| 中文字幕免费播放| 国产精品永久不卡免费视频| 在线观看视频一区二区| 亚洲综合天堂网| 亚洲成aⅴ人片在线影院八| 色老头综合网| 亚洲一级毛片免费观看| 久久99国产乱子伦精品免| 国产成人三级| 九九热免费在线视频| 91av成人日本不卡三区| 国产精品极品美女自在线看免费一区二区| 久久免费视频播放| 全午夜免费一级毛片| 国产精品人莉莉成在线播放| 天天综合网色| 久久男人资源站| 日韩第九页| 日韩AV无码一区| 91成人在线免费视频| 在线观看国产精品第一区免费| 日韩av电影一区二区三区四区 | 中文字幕亚洲另类天堂| 久爱午夜精品免费视频| a在线亚洲男人的天堂试看| 五月丁香伊人啪啪手机免费观看| 日韩专区第一页| 国产网站黄| 日韩午夜福利在线观看| 亚洲日韩Av中文字幕无码| 欧美国产在线看| 国产在线无码一区二区三区| 人与鲁专区|