精品国产Av无码久久久蜜臀-免费看a级淫秽真实动作衫视频-人妻无码一区二区三区免费视频-奶好大 好长 好紧免费视频

logo

如何對迪文線控器進行二次開發(fā)

時間 :2018-12-29 作者 :dwin 瀏覽 :

目前,迪文線控器產(chǎn)品(2.8寸、3.5寸、4.3寸和7寸)均已穩(wěn)定在售,下面我們就迪文線控器的開發(fā)做一些基本介紹。

 

1UI制作

1.1 軟件介紹

迪文提供了UI人機交互界面設(shè)計軟件DGUS_V7381,客戶通過該軟件平臺能輕松方便的制作和修改UI界面,具體使用見2.2。

ac72baf507b89905_html_43d51f482354b7ee

ac72baf507b89905_html_49ac0cb03196381

1.2 軟件使用

參考DGUS軟件的視頻教程,開發(fā)出滿足需求的交互UI。

ac72baf507b89905_html_e79a9d1719743e09ac72baf507b89905_html_49ac0cb03196381


1.3 地址規(guī)劃

1.3.1 迪文DGUSII開發(fā)平臺,所有的功能都是通過變量接口進行的。0000-0FFF變量接口為系統(tǒng)功能接口,(可查閱相關(guān)的開發(fā)指南)8000H-FFFF作為庫和圖片等的緩沖區(qū)。

ac72baf507b89905_html_ece6477fe635f9efac72baf507b89905_html_49ac0cb03196381

 

1.3.2 查閱T5UID1的開發(fā)指南,T5UID1平臺有128Kbytes數(shù)據(jù)變量空間,而OS系統(tǒng)中每個地址是Word類型,所以總共地址空間是0-0xFFFF。其中0x0100-0x0FFF變量存儲器空間被系統(tǒng)保留使用,0x1000-0xFFFF變量存儲空間用戶可以自由使用。

另外,產(chǎn)品中會提供一些基本的庫,所以規(guī)劃了 0x8000-0xFFFF空間被庫提前占用,所以實際編程中應(yīng)用程序可用的空間為0x1000-0x7FFF。

由于在DGUS設(shè)計中,UI中的很多控件會綁定一個數(shù)據(jù)變量,而且為了便于DCS系統(tǒng)設(shè)計,最好需要把輸入數(shù)據(jù)和輸出數(shù)據(jù)以及中間數(shù)據(jù)進行規(guī)劃。

ac72baf507b89905_html_e3c167e9b0b9555eac72baf507b89905_html_49ac0cb03196381


比如新風(fēng)應(yīng)用中,把傳感器等的數(shù)據(jù)都連續(xù)存放,把繼電器,風(fēng)機速度輸出等變量連續(xù)存放,通過modbus總線就可以通過塊讀(0x03)和塊寫(0x10)兩個指令完成數(shù)據(jù)交換。


1.4 通訊協(xié)議

迪文屏支持以下三種協(xié)議情況切換協(xié)議見3庫調(diào)用” 

1)支持迪文命令接口82H\83H,通過這兩個命令接口實現(xiàn)對內(nèi)部變量的讀和寫。

2)支持Modbus_slave模式,86盒工作在modbusslave模式,通過該模式,外部實現(xiàn)對內(nèi)部變量的讀和寫(modbus命令只支持 03H,10H讀寫)。

3)支持modbus_Master模式,該模式需要編寫迪文OS,利用迪文屏上的CPU,實現(xiàn)對外部的控制。


1.5SD卡燒錄

Lib文件夾下的 00.lib、01.lib、T5OS_VXX.bin三個文件,以及上面說的所需要的對應(yīng)工作模式下的DWINOS_main.bin文件和UI工程文件,拷貝到SD卡的 DWIN_SET目錄下,然后插卡進行升級。升級一般是先上電,再插升級的SD卡,會出現(xiàn)藍色屏幕提示升級過程,升級完后拔卡重新上電即可。以后再切換模式,只需升級對應(yīng)的DWINOS_main.bin文件即可。

ac72baf507b89905_html_49ac0cb03196381ac72baf507b89905_html_343727b90201874c

 

2、OS編寫入門

2.1 軟件介紹

ac72baf507b89905_html_43d51f482354b7eeac72baf507b89905_html_49ac0cb03196381


2.2 關(guān)于DWIN_OS

DWIN_OS平臺采用類似匯編程序的編寫規(guī)范,在DGUS穩(wěn)定的GUI平臺下,方便用戶針對自己的特殊需求快速、穩(wěn)定的進行二次開發(fā)。

DWINOS的常見應(yīng)用是解析用戶的數(shù)據(jù)協(xié)議,數(shù)據(jù)處理。T5的OS性能強大,運算速度快。OS是用一套特殊的匯編語言指令集實現(xiàn)的,指令集請參考《基于T5的DWIN_OS開發(fā)指南》和T5UID1應(yīng)用指南。編譯器請使用迪文的  T5_OS_BUILDER2.0.6.0 及以后版本如下圖OSBuild3.0.2.3。

ac72baf507b89905_html_6f7982facb00bf4eac72baf507b89905_html_49ac0cb03196381

ac72baf507b89905_html_49ac0cb03196381  ac72baf507b89905_html_ad2b1f165fe3480b


該軟件的操作部分并不復(fù)雜,打開OS軟件,上面的三個圖注意紅色標(biāo)注

1、保存會保存為asm文件;

2、編譯后如果沒有錯誤左下角會出現(xiàn)BuildOK!編譯后會生成DWINOS_xxx.bin文件;

實際開發(fā)中,軟件基本用到的三個按鈕就能完成開發(fā),其他的功能可以不用。OS部分詳細教程參考《基于T5_OS匯編指令詳解》。

 

3、庫調(diào)用   

為了方便和簡化用戶代碼量把一些已經(jīng)寫好的功能模塊和通訊協(xié)議進行封裝后加密生成的文件就是庫。庫文件的存在,一定程度上降低了用戶代碼量,代碼量較大時使用庫則方便用戶程序的簡化。迪文現(xiàn)在的庫文件可以方便開發(fā)者直接調(diào)用,也可根據(jù)自身需求寫功能塊完成。

3.1 基本庫介紹

基本庫功能模塊介紹

1)基本定時  

地址定義如下:

VP_SYS_TIMER_ACC  EQU E200H; 定時累加器,不要改動

VP_SYS_TIMER_SEC_PULSE  EQU E201H;基本秒脈沖

VP_SYS_TIMER_SEC_PULSE_SLOTEQU E202H;高字節(jié)表示時隙0-7,低字節(jié)每125ms會變1,脈沖形式;(高字節(jié)為2并且低字節(jié)為1同時滿足時,可以認為秒信號A到來;高字節(jié)為3并且低字節(jié)為1同時滿足,也是一個秒信號B到來,但A、B兩個秒信號差125ms。)

VP_SYS_TIMER_MM_ACC  EQU E203H ;分鐘定時累加器,不要改動

VP_SYS_TIMER_MM_PULSE EQU E204H  ;分鐘定時脈沖,每1分鐘會變1一次

 

2RTC(軟件RTC

0xF430  -  0xF433  設(shè)置時鐘時間  D7:0x5A表示有效,其余值無效,設(shè)置成功后自動清零;D6-D0:  yy:mm:dd:ww:hh:mm:ss   hex碼

RTC時間的讀取,在OS中可以讀取,在T5UID1開發(fā)指南中,可以查到接口地址。

UI上顯示時鐘,只需將時鐘控件放到頁面上就可以了。

如果需要設(shè)置時鐘,接口在0xF430-0xF433中,按要求寫入接口就可以了。

注意86盒的相關(guān)應(yīng)用設(shè)置時鐘接口在00.lib庫里實現(xiàn)的,并不是T5UID1中實現(xiàn)的,所以不能用T5UID1開發(fā)指南的設(shè)置RTC接口。

注:此為軟件RTC,如存在硬件RTC,需0xF435地址寫0x005B,屏蔽掉軟件RTC。


3modbus的兩種模式

485modbus_master模式

這種模式,線控器是主控,控制邏輯需要OS編寫。只實現(xiàn)了modbus-master的0x03和0x10指令,其余沒有實現(xiàn)。

需要對MODBUS進行操作的話,只需配置相應(yīng)的結(jié)構(gòu)體即可。

結(jié)構(gòu)體定義見EA10H地址(上表):

通過查看示例代碼,程序最后會有結(jié)構(gòu)體的定義:

MODBUS_STRUCT_TABLE:DB   5AH, 01H, 03H, 08H, 02H, 00H, 00H, 00H, 00H, 00H, 40H,00H, 00H, 00H, 00H, 00H,    5AH, 01H, 10H, 08H, 02H, 00H,00H, 00H, 00H, 00H, 40H, 08H, 00H, 08H, 00H, 00H

實現(xiàn)了向01從機地址讀和寫的過程。

第一條:5AH,01H, 03H, 08H, 02H, 00H, 00H, 00H, 00H, 00H, 40H, 00H, 00H, 00H, 00H,00H

讀指令,向01從機地址讀,長度8words,最長等待從機響應(yīng)時間為 512ms(02H,00H),從機的寄存器超始地址是0000H,讀到本地起始地址是 4000H。

第二條:5AH,01H, 10H, 08H, 02H, 00H, 00H, 00H, 00H, 00H, 40H, 08H, 00H, 08H, 00H,00H

ac72baf507b89905_html_43ac7319a7aacf9aac72baf507b89905_html_49ac0cb03196381


寫指令,向01從機地址寫,長度8words,最長等待從機響應(yīng)時間為512ms,將本地起始地址4008H處寫入從機起始地址0008H。

如果電腦上有USB轉(zhuǎn)485功能,可以通過串口助手看到modbus協(xié)議數(shù)據(jù)。 


485modbus_slave模式

EA00H地址寫為 5AA5H,即可將485接口配置為slave模式。只支持 03H,10H指令。

外部485主機可以通過以上兩條讀寫指令,讀寫線控器內(nèi)部的寄存器。

ac72baf507b89905_html_1d06bd372711d294ac72baf507b89905_html_49ac0cb03196381


3.2 如何使用庫文件

線控器一般會將一些功能塊進行封裝,下面就對庫中modbus協(xié)議調(diào)用進行講解。

1)首先把NORFLASH的程序轉(zhuǎn)入DGUS變量地址(例子中是將0x000000開始的4KW(8KB)程序數(shù)據(jù)轉(zhuǎn)入DGUS的0x8000起的地方,每個程序庫是4KB,因此緩存了2個庫)。然后通過CONFIG03,80H,00H將進行LIB庫加載,把0號LIB庫程序數(shù)據(jù)加載到原來的OS程序0x1000開始的位置(也就是我們正常寫的OS第一行ORG1000H起的位置),然后CALL0(CALL0x0000),來運行一次LIB中的程序。

運行一遍之后,正常0x1000開始的程序又會自動覆蓋掉加載的LIB庫程序,開始正常工作。

因此,一般在MAIN主循環(huán)里,需要寫CONFIG和CALL0,以使得每次LIB庫程序都會執(zhí)行一次。

ac72baf507b89905_html_c97dd55272137cf5

ac72baf507b89905_html_b51c42c26527a775

ac72baf507b89905_html_49ac0cb03196381

2)模式04,將OS編譯的庫程序bin文件(庫程序開頭寫上0RGXXXXH,這個XXXXH要比正常OS編譯bin的大小更靠后,以避免沖突正常OS程序空間里的內(nèi)容),修改后綴為.LIB,下載到NORFLASH同前03模式。

CONFIG加載時,需要循環(huán)8次將1個完整的4KB的程序數(shù)據(jù)加載到(由于該指令D1D0都只有1個字節(jié),所以規(guī)定了D1和D0為地址高字節(jié),后面默認帶低字節(jié)的0x00地址)

CONFIG加載之后,使用CALLXXXXH 來調(diào)用執(zhí)行一次這部分程序。

模式04中相當(dāng)于可以在32KB的OS程序代碼空間里,任意替換一部分程序,并且支持中斷。


ac72baf507b89905_html_49ac0cb03196381ac72baf507b89905_html_e7c0d92a9a0de2c6

3)82H/83H,modbus_master,modbus_slave三種模式切換,打開main.ASM文件切換modbus主從機模式如下圖。82H/83H指令屏幕可以自動識別,不需要切換操作。

ac72baf507b89905_html_3604da1742da0b7c

ac72baf507b89905_html_49ac0cb03196381



3.3 OS程序空間擴大

若開發(fā)者編寫的os超過32kb則需要加載庫文件。

T5目前有兩種主流方法將OS程序空間擴大:

a.加載加密了的LIB程序庫文件,在OS主程序里可以不停的更換需要調(diào)用的多個LIB文件(LIB庫程序的方法不能中斷)。

b.加載不加密的OS文件(可以用LIB到NORFLASH,速度比用字庫加載到NANDFLASH的快)

OS的CONFIG指令的03或04模式實現(xiàn),02模式無效不能用請注意。

ac72baf507b89905_html_aec7a0dc5eb9935eac72baf507b89905_html_49ac0cb03196381

 

3.422號文件初始化說明

22文件可以用來配置modbus,可以減少部分代碼量。

1)首先請確保T5屏幕系統(tǒng)配置值為“上電加載22號文件初始化”;

2)此版程序基本功能與DGUS屏的MDOBUS主從機基本一致,但22號文件的參數(shù)配置地址改為了0x1D400~0x1FFFF,對映T5變量空間中的最后8KW地址0xEA00~0xFFFF;

3)指令等待時間參數(shù)的設(shè)置范圍與波特率以及MODBUS指令長度有關(guān),默認115200bps下,建議最小設(shè)置為20mS;(若不設(shè)置此參數(shù),則程序以默認值60mS運行);

4)如下圖所示,圖1為Modbus主機模式下的22號文件配置參考,0x1c000開始的16字節(jié)內(nèi)容為接口參數(shù);指令配置范圍0x1D410~0x1ffff,最多32條指令,兩條指令之之間地址需連續(xù);

2為Modbus從機模式下的22號文件配置參考,僅配置0x1D400開始的16個字節(jié)即可。


主機模式:

ac72baf507b89905_html_54cbcdeb0c941aff

ac72baf507b89905_html_49ac0cb03196381


從機模式:

ac72baf507b89905_html_49ac0cb03196381ac72baf507b89905_html_76929b0ccacc0297



這些功能模塊了解上手后,可以更快捷的進行開發(fā)。


了解更多講解信息,可通過此鏈接查看相關(guān)教學(xué)視頻:

https://pan.baidu.com/s/1dF1yG05



作者/苗露露