楊大奎,曹川川,譚修彥
(1.重慶城市職業學院;2.重慶文理學院,重慶402160)
基于迪文DGUS屏在PM2.5自動換膜采樣器中的應用研究
楊大奎1,曹川川2,譚修彥2
(1.重慶城市職業學院;2.重慶文理學院,重慶402160)
介紹了迪文DGUS屏如何和ARM單片機及上位機進行通訊,論述了迪文DGUS屏某些硬件設置,詳述了迪文DGUS屏中某些重要功能的實現過程。
迪文DGUS屏;單片機;通訊
迪文屏是迪文科技有限公司研發的用于人機界面控制的一款產品,迪文屏已廣泛的運用在各個領域。PM2.5自動換膜采樣器的功能控制也離不開人機界面,采用了迪文DGUS屏實現對PM2.5的功能控制,通過對迪文DGUS屏的界面操作達到對PM2.5的功能控制。但迪文DGUS屏具體功能的實現,要通過和下位機的通訊才能得以實現。
DGUS迪文屏通過串口工具與上位機之間實現通訊,如圖1所示:

圖1
則圖2中的空白區域就會出現啟動按鈕所對應的指令
若在圖3方框中輸入指令5A A5 05 82 00 02 00 01,點擊手動發送,則圖中啟動按鈕顏色將由淺藍色變為深藍色。

圖2
串口操作。迪文DGUS屏采用異 步、全雙工串口(UART),串口模式為8n1(51單片機的MOD1,9bit UART),即每個數據傳送采用10個位:一個起始位,8個數據位,1個停止位。
串口波特率通過SD卡來配置。串口的所有指令或者數據都是16進制(HEX)格式:對于字型(2字節)數據,總是采用高字節先傳送(MSB)方式。比如0X1234傳送時先傳送0X12。

圖3
數據幀架構。迪 文DGUS屏的串口數據幀由四個數據塊組成,如表1所述:

表1
一個數據包能夠傳送的最大數據長度為254字節(不要CRC校驗)或252字節(帶CRC驗)。其中,CRC校驗不包括幀頭和數據長度,僅針對指令和數據,采用ANSI CRC-16(X16+X15+X2+1)格式。
指令集。可實現訪問控制寄存器的指令有兩個,分別為0x80、0x81。0x80用于指定地址寫寄存器數據;0x81用于讀寄存器的DGUS屏應答??蓪崿F訪問數據寄存器的指令也有兩個,分別為0x82、0x83。0x82用于指定地址開始寫入數據串(字數據)到變量存儲區。0x83用于讀取數據寄存器的DGUS屏應答。
將圖片添加到DGUS軟件之前,要根據“0_首頁.BMP”(0代表第一張圖片)圖片格式對圖片進行命名。例:“1_主界面.BMP”代表第二張圖片,并可依次類推。若想彈出迪文屏中第50張界面,則只需發送指令:
5A A5 04 80 03 00 32;其中32代表要彈出界面所在的位置(轉為十六進制),其余不變。其中5A A5為幀頭;04為長度(包括指令及數據);80為指令;03為寄存器地址(與控制界面切換相關聯);00 32為切換界面ID。再例,比如要彈出第33張界面,則發送指令5A A5 04 80 03 00 21,其中21亦代表要彈出界面所在的位置(轉為十六進制)。即要彈出界面的位置轉換為十六進制即可。
為了提高工作效率及減少指令發送過程中的錯誤,由單片機向DGUS迪文屏成串發送指令就變得尤為重要。
若單片機向屏中地址為00 36,00 37,00 38,00 39,00 40的位置分別發送數據1、2、3、4、5,則發送指令為5A A5 0D 82 00 36 00 01 00 02 00 03 00 04 00 05,則屏中地址為00 36的位置顯示數據為1,00 37的位置顯示數據為2,并依次類推。
在對DGUS迪文屏應用的過程中,對時間的顯示是必不可少的,那么該怎樣在迪文屏中實現對年、月、日、星期、時、分、秒的顯示?若要實現對2014年2月23日、1周日、16時35分00秒的顯示,則需發送指令如下:
5A A5 0A 80 1F 5A 14 02 23 07 16 35 00
注:由單片機發送時間顯示指令時,需將要顯示的時間轉換為十六進制。
對右圖進行變量圖標觸控配置,在貼圖之前須先從圖標文件中選擇相應圖標所放置的文件。變量下限(0)即為原始圖標,把貼圖圖標按照1、2、3順序依次排列好。在該圖中,紅色按鈕對應橘黃色按鈕對應變量上限2。

圖4
方法一:
在DGUS迪文屏中輸入文字,掉電重啟后,文字消失,若讓DGUS迪文屏掉電重啟后自動顯示上次輸入的文字,則需和單片機緊密結合。首先確認DGUS迪文屏與單片機的可靠通訊,然后在迪文屏的鍵盤中輸入文字,輸入完畢后,點擊鍵盤中的確認按鈕;此時單片機已接收到每個數據所對應的數據,并對這些數據進行保存。待單片機檢測到DGUS迪文屏掉電重啟后,就會向DGUS迪文屏傳送上次掉電前所保存的數據,繼而在迪文屏開機后,文字就可自動顯示在屏中。
操作步驟說明:1.手動輸入天津科技有限公司,在當前頁面上顯示天津科技有限公司;2.單片機接受到的數據為5A A5 1A 83 05 00 0B CC EC BD F2 BF C6 BC BC D3 D0 CF DE B9 AB CB BE FF FF;3.當單片機檢測到DGUS迪文屏掉電重啟后,就會自動發送該指令給給迪文屏,繼而文字就會顯示到屏中相應位置。
方法二:
1.手動輸入天津科技有限公司,當前界面上顯示天津科技有限公司;2.發送命令:5A A5 0C 80 40 5A 50 42 00 00 00 05 00 00 20,命令解釋:將變量地址0010的數據存放到字庫ID為66的000000地址里,字庫存放的數據可以實現掉電保存功能;50:代表把變量數據寫入到字庫空間里;3.給屏掉電;4.給屏重新上電;5.上電后重新給屏發送命令,將上次錄入的數據顯示出來,發送命令如下:5A A5 0C 80 40 5A A0 42 00 00 00 05 00 00 20,命令解釋:將字庫ID號為66的000000地址里的內容拿出來送給變量0500;A0:代表把字庫空間的數據讀出到變量地址里。
在DGUS迪文屏中同一位置放置如下圖所示三個不同顏色的按鈕,假設此確認按鈕在屏中地址為00 20;圖(a)灰色按鈕為初始狀態,點擊此按鈕,按鈕顏色變為綠色(圖(b)),說明單片機已成功接收到指令;經過幾秒后,單片機發送指令5A A5 06 82 00 20 01 00 01,按鈕顏色恢復到原來顏色(灰色);同樣也可以發送指令5A A5 06 82 00 20 01 00 02使灰色按鈕變為紅色來實現迪文屏對外部設備的某一控制功能。

圖5
迪文DGUS屏的廣泛運用,為對系統的控制操作提供了極大的方便,同時迪文DGUS屏作為PM2.5的人機界面,不僅系統可靠性高,而且功能全面,整個系統運行穩定、精確,同時還可以根據自身需要進行二次開發 。
[1]北京迪文科技有限公司.DGUS屏使用指南[K].
[2]北京迪文科技有限公司.DGUS屏開發指南[K].
[3]北京迪文科技有限公司.迪文HMI二次開發指令及產品開發指南[K].
10.16640/j.cnki.37-1222/t.2016.22.014