




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、新建主機(jī)程序設(shè)計文件簡介通過NetLinx Studio 新建程序選擇New選擇Source File,其它的為模塊及包含文件設(shè)計,我們暫不管它。Workspace Wizard是一個工程項目管理,可以把整個項目所涉及的文件管理起來,方便您查找,單獨的Source File文件也是可以用的,我們先選擇Source File是否創(chuàng)建新文件,選擇Yes選擇,主機(jī)的標(biāo)準(zhǔn)模版,網(wǎng)絡(luò)型主機(jī)則選擇NetLinx Standard Template輸入文件名選擇要保存的路徑,按下一步。點擊完成,創(chuàng)建出新文件。把藍(lán)色的字給收起來,總體上我們可以看出分如下幾塊:PROGRAME_NAME為文件DEFINE_DE
2、VICE為定義要控制設(shè)計的控制接口DEFINE_CONSTANT為定義常量DEFINE_TYPE為定義類型文件DEFINE_VARIABLE為定義變量DEFINE_LATCHING為定義鎖住鍵DEFINE_MUTUALLY_EXCLUSIVE為定義互鎖DEFINE_START定義啟動時需要執(zhí)行的程序DEFINE_EVENT為定義事件語句DEFINE_PROGRAME為定義實時的程序語句所有的程序必須放在固定的定義下,如變量必須放在DEFINE_VARIABLE下,事件語句必須放在DEFINE_EVENT如何設(shè)置連接并設(shè)置固定IP如何實現(xiàn)NetLinx Studio軟件與中控主機(jī)的第一次連接:我
3、們可以通過如下幾種方式來進(jìn)行連接:1. TCP/IP2. COM3. Moderom4. USB由于設(shè)備的出廠IP地址是設(shè)置為DHCP的,所以剛開始我們無法用網(wǎng)絡(luò)來連接,如果您可以用分配IP的式給中控主機(jī)分配一個IP,就可以用剛絡(luò)連上主機(jī),再對主機(jī)進(jìn)行固定IP設(shè)置,就可以直接用網(wǎng)絡(luò)進(jìn)行連接,因為通過串口或其它方式,在遇到大文件時傳輸?shù)锰?,或者可能因為傳輸文件太大而?dǎo)致傳輸失敗。所以一般我們通常是通過串口對主機(jī)進(jìn)行IP設(shè)置,再用網(wǎng)絡(luò)實現(xiàn)傳輸,那么我們?nèi)绾螌崿F(xiàn)設(shè)置呢,如下圖:在軟件的Settings?Master Communication SettingsNo Active System De
4、fault Setting是設(shè)置軟件的連接,Terminal Settings為設(shè)置軟件自帶的超級終端的連接。所以我們選擇前者,點擊?Communication SettingsNetLinx Master為網(wǎng)絡(luò)型中控主機(jī),如果不是網(wǎng)絡(luò)型中控主機(jī)則選擇Axcess Master?Serial如果對上面顯示的NetLinx- COM1,38400,8,N,1,N不符合您的設(shè)置要求,按Edit Settings進(jìn)入設(shè)置修改根據(jù)您電腦的串口選擇Com Port,自帶串口的默認(rèn)為COM1,USB轉(zhuǎn)串口的則為安裝產(chǎn)生的端口號,Baud Rate默認(rèn)的為38400,N,8,1,(主機(jī)后面編程端口8位撥碼開
5、關(guān)為前5個向下,后3個為向下,具體的看設(shè)備具體的設(shè)置)最后一直選擇OK完成。完成設(shè)置之后,您可以在狀態(tài)欄下面看到如下:如下顯示為:NetLinx-COM1,38400,8,N,1,是不是您想要的設(shè)置,如果不是剛表示您設(shè)置的有問題,請重新設(shè)置。如果設(shè)置是正確,我們可以檢測一下是否能連接上,涮新一下在線列表如下圖:點擊OnLine Tree點擊右鍵Refresh System涮新在線更表所有系統(tǒng)里面的設(shè)置都會顯示出來,而且狀態(tài)欄也相應(yīng)的變綠。以上現(xiàn)像足可以表示您的軟件已經(jīng)連中控主機(jī)連接上了,如果還是連接不上,可能您的電腦串口存在被其它程序占用的可能,或者您的連接線有問題。(連接線為23交叉的連接線
6、)。接下來我們就可以對中控進(jìn)行IP地址的修改,點擊如下圖:點擊進(jìn)入:選擇Get IP Information可以獲取到主機(jī)的IP信息,如下圖可以對主機(jī)進(jìn)行設(shè)置:設(shè)置完之后,選擇Set IP Information提示成功,如下圖:點確定,最后重啟中控主機(jī),設(shè)置完成。如何定義控制設(shè)備接口程序我們控制每個設(shè)備都有對應(yīng)的設(shè)備接口如:控制燈光窗簾,有相應(yīng)的繼電器接口,控制矩陣有相應(yīng)的232串口,控制DVD則有相應(yīng)的紅外接口要控制這些設(shè)備,需要相應(yīng)的連線的同時,我們也必須清楚,在AMX系統(tǒng)編程里面我們要往哪里發(fā)送命令,才能對應(yīng)的控制到這些設(shè)備上來。在AMX系統(tǒng)里面主要涉及到3個號,即所謂的D:P:SD:
7、DEVICE就是每個設(shè)備的設(shè)備號;P:PORT即端口號,每個設(shè)備可能又會分為好幾個端口,如NI3100有17個端口,包括7個串口,1個繼電品口,8個紅外口,1個I/O口,NI2100則有9個端口;S:SYSTEM即系統(tǒng)號,我們可以大致上這么說,每臺主機(jī)可以當(dāng)成一個系統(tǒng)。以NI3100主機(jī)為例:設(shè)備號:默認(rèn)設(shè)備號為5001;(可以通過軟件進(jìn)行修改,如NetLinx Studio)端口號: 固定死的,1-7為串號,8為繼電器口,9-16為紅外口,17為I/O口(在設(shè)備的后面版有標(biāo)記為Port幾)系統(tǒng)號: 默認(rèn)為1;(可以通過軟件進(jìn)行修改,如NetLinx Studio,也可以為“0”表示為本系統(tǒng),
8、程序所上傳的系統(tǒng))從上可知我們定義一個串口來控制矩陣,一個繼電器口控制燈光,一個觸摸屏進(jìn)行控制。如下程序:DEFINE_DEVICE下定義為AVSWITCH = 5001:1:1RELAY = 5001:8:1TP = 10001:1:1AVSWITCH為自己取的一個名字,目的是來代替5001:1:1,代表的是第一個串口,RELAY 也是自己取的名字,目的也是來代替5001:8:1,代表的是繼電器接口。TP代表的是觸摸屏。它們的同一特點都是遵循D:P:S這樣的一個規(guī)則來的。這里面有沒有空格都無所謂,有空格只是讓幾行代碼看起來比較對齊。如果一臺主機(jī)的情況下,都可以寫成5001:1:0,5001:
9、8:0,10001:1:0,因為0代表的是本系統(tǒng)(上面所提到的)。我們在接下來的程序設(shè)計的按鈕事件里面可能會出現(xiàn)如下語句:BUTTON_ENENTTP,1 PUSH:ONRELAY,1上面這小段程序的意思是,觸發(fā)1號通道按鈕的時候,打開斷電器第1路。我們同樣也是可以這么寫的:BUTTON_ENENT10001:1:1,1 PUSH:ON5001:8:1,1上面兩段程序執(zhí)行的效果是一樣的,可定我們定義設(shè)備接口其實可以這么理解為,用自己定義的名字來代替現(xiàn)有的設(shè)備端口,這樣也有一個好處,如果你改接口了,只要改定義設(shè)備的定義,也不需要全部修改程序里面的設(shè)備接口,而且您通過自己命名的名字,程序的可讀性也
10、比較好。我們剛才說到的D:P:S的定義規(guī)則,那么我們?nèi)绾蝸碇溃總€設(shè)備的D,每個設(shè)備的P,每個設(shè)備的S呢?D就是每個設(shè)備的設(shè)備號,主要分為兩種,一種是在硬件上就可以直接設(shè)置的,如觸摸屏,在觸摸屏的設(shè)置菜單上就可以設(shè)置了,護(hù)展盒,有8位撥碼開關(guān),通過二進(jìn)制算法,算出地址,另一種是直接在軟件上就可以設(shè)置設(shè)備的設(shè)備號,每個設(shè)備都是有一個默認(rèn)的設(shè)備號。P就是設(shè)備的端口號,大部分都是相對固定的,中控主機(jī)都有在后面標(biāo)明著,觸摸屏則可以自己設(shè)置。S就是系統(tǒng)號,通過軟件來設(shè)置,在一個系統(tǒng)的情況下,一例寫0,代表本系統(tǒng),肯定沒錯。所有的設(shè)備系統(tǒng)號都是跟著所連接的主機(jī)定義的。還有一個更快捷的方法,把整個系統(tǒng)連接
11、起來,通過編程軟件涮新一下在線列表,所有的設(shè)備號,系統(tǒng)號都會在在線列表里面顯示出來。這樣您定義設(shè)備的時候就一目了然了。AMX源文件的設(shè)置通常我們編譯程序文件的時候會生成2個文件,一個是TKN,一個是TKO,但有些人多生成了一個SRC文件這個SRC文件是怎么來的呢?SRC文件就是程序在電腦上運行的,可編程的文件TKN文件是AMX主機(jī)上面運行的機(jī)器執(zhí)行文件TKO文件主要是用來做模塊程序間的調(diào)用TKO的主要用途是當(dāng)一個程序分為好幾塊程序來寫的時候,如果是用到define_module來調(diào)用另一個文件的時候,可以直接來調(diào)用TKO文件,而不需要給別人源文件程序,也可做到,自己的程序不讓別人看到代碼照樣能
12、運行.從程序的編程角度上來講,我們知道AMX主機(jī)和其它各個品牌中控的最大優(yōu)勢是能可上傳也能夠下載程序,如果我們想從一臺NI的主機(jī)上下載程序,如果原來的人編程人員沒有上傳SRC文件的話,我們是下載不了它的源文件的,下載下來的只是一個空文件,那么以前的那個編程人員就太壞了,不把源程序上傳到上面,但這是軟件的默認(rèn)方式,可見AMX廠家更壞,當(dāng)然還有更更壞的,把源文件上傳了,把文件設(shè)置了一長串的密碼,雖然你下載下來了,程序還是需要密碼才能打開.以下是關(guān)于對編譯設(shè)置的步驟:從軟件的設(shè)置屬性在NetLinx Compiler文件的編程進(jìn)行設(shè)置Compile With Debug In代表著,可以在程序里面執(zhí)
13、行Debug,可以設(shè)置斷點程序,讓程序一步步執(zhí)行Compile With Source代表著可以編程程序的時候生成SRC文件Compile With Password Protec代表著生成的SRC文件,需要設(shè)置的密碼才能打開如何實現(xiàn)程序下載在設(shè)置好NetLinx Studio軟件與主機(jī)連接的情況下,步驟如下:選擇Receive接收選擇ADD,添加程序選擇要下載的文件類型,如中控主機(jī)的程序,選擇SRC文件,再選擇ADD添加文件選擇保存路徑,填好文件名,再按保存輸入設(shè)備號,端口號,系統(tǒng)號主機(jī)為:0:1:0 (任何主機(jī)都一樣)觸摸屏為:10001:1:0 (假設(shè)觸摸屏的設(shè)備號是10001)紅外文件
14、為:5001:9:0(假設(shè)主機(jī)為NI3100,從第一個紅外端抽紅外程序)可見本例應(yīng)為0:1:0再點OK確定看到下面列表多了EProjectWorkingSunkai.這個就是剛設(shè)置好保存的文件信息,Mapping為0:1:0,點擊OK確定下面新增出現(xiàn)即將要保存的文件信息,連接主機(jī)的IP為1再點擊Receive進(jìn)行程序下載如下圖所示為下載程序的信息,下圖為下載失敗,如果下載成功則會打勾!下載完成后,到保存的目錄下打開程序,如果是主機(jī)程序,是SRC格式,打開的方式可以用NetLinx Studio來打開也可以把SRC后綴后改成RAR后綴名,直接用壓縮包的格式打開.如何對繼電器
15、操作程序編寫我們要實現(xiàn)的是把下觸摸屏或面板的按鈕就實現(xiàn)繼電器的開關(guān)動作下面是定義的一個控制面板和NI2100設(shè)備上的繼電器接口進(jìn)行控制,如下圖:下面定義了一個自定義變量供下面的方法三使用:下圖功能為:按下按鈕11打開繼電器3,如果繼電器3接的是燈光的控制,則打開燈光,如果是某設(shè)置的電源剛是控制設(shè)備的電源開,按下按鈕12則是關(guān)閉,按下按鈕13的功能為,按一下開,再按一下關(guān),一直循環(huán)下去。有如下三種方法,如下圖:下面功能為繼電器時間順序的開關(guān),注意Wait后面的大括號一定要添加,它是表示一個命令的集合,如果不添加程序只跟著一個語句,ONRELAY,3和RELAY,5會馬上打開,10是1秒,它是以0
16、。1秒為單位的,所有的時間都是從剛按下按鈕的時候算起的,所以第2秒應(yīng)該是Wait 20,而不是緊接著Wait 10下面是觸摸屏或按鈕狀態(tài)跟著程序走,看到按鈕狀態(tài),相應(yīng)的也就知道了繼電器的開關(guān)狀態(tài)如何實現(xiàn)矩陣程序編程實例實現(xiàn)8X8矩陣的自由切換,先選擇輸入源,再選擇輸出源,可以一次性選擇多個輸出源,如下圖:輸入:上一排,通道號為51至58輸出:下一排,通道號為61至68在程序中,道先定義要控制的設(shè)備端口,需要一個串口,和一個觸摸屏,如下圖:接下來定義,在程序中需要的變量,一個為記錄輸入源的vInput,一個為記錄輸出源的vOutput,一個為記錄狀態(tài)的,vStatus數(shù)組,如下圖:接下來就實現(xiàn)如
17、何執(zhí)行的程序,如下圖:命令是以AMX Autopatch矩陣為例,如第1路到第2的切換為:CL0I1O2T,我們只要通過變量切換1和2的值就可以實現(xiàn)矩陣的自由切換,vStatus為記錄輸入源到輸出源的狀態(tài),所饋到觸摸屏上。上面的這一步驟已經(jīng)可以實現(xiàn)程序的運行了,接下來是實現(xiàn)如何在觸摸屏上看到矩陣的切換狀態(tài),按輸入1的時候我要看到相應(yīng)的輸入出1輸出到了哪幾路來,如下圖:這樣上面的程序就完成了。相關(guān)程序下載:Switch.rar如何實現(xiàn)調(diào)光調(diào)音控制以調(diào)光為例,下圖為調(diào)光的控制界面,包含有4個按鈕設(shè)置燈光亮度的固定值分別為100%、60%、30%、0%,1個接條顯示并調(diào)節(jié)燈光的亮度。觸摸屏的設(shè)備號為
18、128調(diào)光模塊設(shè)備號為164個按鈕的通道號為41、42、43、441個拉條的LEVEL號為1燈光接到調(diào)光模塊的第6路我們來看一下程序是如何實現(xiàn)首先定義設(shè)備接口定以記錄當(dāng)前燈光亮度的變量按鈕程序如下:以BUTTON44為例SEND_COMMAND MC,P6L0T0為控制調(diào)光模塊的命令,注釋的為寫法不一樣,任取一種.P6為調(diào)光模塊的第6路L0為控制燈光的亮度最暗,0-100為燈光亮度的值,0最暗,100最亮T0為產(chǎn)生漸變的時候,0為無漸變時間,如果為T5的話就為漸變5秒SEND_LEVEL TP,1,0為控制拉條的顯示值1為拉條的LEVEL號,0為拉條的顯示值,顯示值為0-255,0最小,255
19、最大LIGHT_VALUE為定義的變量來記錄前拉條的顯示值拉動拉條控制的程序如下:拉動拉條時,LEEVEL.VALUE的值是跟著變化的,所以取出當(dāng)前的值進(jìn)而調(diào)節(jié)燈光的亮度*100/255是把拉條的值從0-255轉(zhuǎn)到0-100之間才能符合itoa為把整型轉(zhuǎn)成字符型對應(yīng)的反饋如下:當(dāng)值為100的時候41有反饋當(dāng)值為60的時候42有反饋當(dāng)值為30的時候43有反饋當(dāng)值為0的時候44有反饋相關(guān)程序如下:Level.rar如何應(yīng)用Debug 在調(diào)試過程中的用法如果我們要實時知道程序中自己定義的變量的值是如何變化的,我們可以通過Debugging來實時檢測變量的值,如果變量的值和你程序執(zhí)行的不一樣,說明您的
20、程序可能有誤。在NetLinx Studio軟件里點擊如下圖:點擊確定。如上圖點擊右鍵。添加程變量列表里的變量點擊OK。顯示如上所示,X的變量就在列表里面實時的顯,在這里我們就可以實時知道變量的值,如果有用到一些需要讀取設(shè)備狀態(tài)信息的值時,如DIS,您就可以知道設(shè)備每根話筒給中控的代碼是多少。根據(jù)話筒給的代碼就可以知道是哪一根話筒給過來的信息。如何上傳主機(jī)程序這邊我們以NI-3100為例來實現(xiàn)如何上傳主機(jī)程序.我們通過主機(jī)的編程軟件來實現(xiàn)和主機(jī)的通信進(jìn)而實現(xiàn)主機(jī)程序的上傳和下載.在建立軟件與主機(jī)之間的通信之后,我們才可以上傳程序.程序的上傳必須編譯,因為主機(jī)里面運行的是編譯生成的文件,而不是我
21、們電腦里面運行的文件,選擇NetLinx的編譯,編譯還會幫你查找錯誤,如果有錯誤,編譯之后是生不成新的文件的.選擇傳程序的按鈕,如下圖:點擊添加按鈕ADD,選擇要添加的類型,如下圖:選擇Other選擇要找的類型文件,如下圖選擇要添加文件的類型,主機(jī)程序為TKN文件,再選擇添加,如下圖:選擇文件所在的目錄,如下圖:選擇文件,如下圖:填寫設(shè)備號,Device Number傳主機(jī)程序時為0,Port Number為1,System為0,再點OK,如下圖:再點OK,如下圖: 再點OK,如下圖: 再選擇Send 發(fā)送 傳輸狀態(tài)如上圖,X為傳輸失敗,打勾為傳輸正確.如保實現(xiàn)觸摸屏與主機(jī)編程通信觸摸屏與主機(jī)
22、之間的通信其實原理性的東西是相對比較簡單,在觸摸屏的按鈕上都有一個可設(shè)置的通道號,如下圖:如上圖所示:Channel Port為1,Channel Code 為2,假高觸摸屏的設(shè)備號為10001,則這個按鈕產(chǎn)生的事件為BUTTON_EVENT10001:1:0,22就是Channel Code通道號,每個按鈕都可以定義通不同的通道號,對應(yīng)的執(zhí)行不同的命令語句,如果兩個按鈕通道號相同,則執(zhí)行相同的命令語句。如圖:如上圖為兩個按鈕事件,一個表示燈開,一個表示燈關(guān)。PUSH表示為當(dāng)觸摸按鈕的時候產(chǎn)生什么事件,程序?qū)懼鳲NRELAY,1則執(zhí)行ONRELAY,1,程序?qū)懼鳲FFRELAY,1剛執(zhí)行OFF
23、RELAY,1,不同的按鈕執(zhí)行的程序是不一樣的,但同樣是由BUTTON_ENENT組成的事件語句,所以觸摸屏與主機(jī)間的通信其它就是由很多個按鈕事件組合成的程序。AMX語法功能說明特別符號 大括號 多條命令集的結(jié)合 中括號 設(shè)備,通道號DEVICE,CHANNEL; 數(shù)組的定義,如:INTEGER VOLNUMBER; SYSTEM_CALL系統(tǒng)調(diào)用,如:SYSTEM_CALL1 COSX (45) ( ) 小括號 IF條件語句;定義互鎖語句(* *) 或/* */注釋 對程序的必要說明,在程序中不起任何作用/ 注釋 單句注釋運算符號符號功能符號功能+加號大于*乘號=等于/除號=大于等于&邏輯與
24、AND邏輯與|邏輯或OR邏輯或邏輯異或XOR邏輯異或!邏輯非NOT邏輯非&位邏輯與BAND位邏輯與|位邏輯或BOR位邏輯或位邏輯異或BXOR位邏輯異或位邏輯非BNOT位邏輯非位右移RSHIFT位右移常用關(guān)鍵字ONDEVICE,CHANNEL / 開OFFDEVICE,CHANNEL / 關(guān)PULSEDEVICE,CHANNEL / 發(fā)送脈沖TO DEVICE,CHANNEL / 按住多長時間執(zhí)行多長SEND_COMMAND DEV, SEND_STRING DEV, 事件處理:BUTTON_EVENT這個關(guān)鍵字規(guī)定了一個按鈕事件的處理。它包括按下、釋放、持續(xù)三個事件,在一個指定的設(shè)備通道上,這
25、三個事件與按下和釋放按鈕是緊密相連的,按鈕事件包含一個可選擇的反饋信息處理,它在事件處理完成之后立即運行。在任何時候主線運行了,這個反饋信息處理也被執(zhí)行。定義格式如下:BUTTON_EVENT , PUSH: /* 當(dāng)按鈕按下去時執(zhí)行的動作 */ RELEASE: /* 當(dāng)按鈕松手時執(zhí)行的動作 */ HOLD ,REPEAT: /* 當(dāng)按鈕按住時過了多長時間/或每隔多長時間重復(fù)執(zhí)行的動作 */ Example:BUTTON_EVENTTP,1 PUSH: /* 按下觸摸屏第一個通道時執(zhí)行的動作 */ ONRELAY,1 BUTTON_EVENT特性描述表:Property NameTypeDe
26、scriptionButton.InputDEVCHANDevice + ChannelButton.Input.ChannelINTEGERChannelButton.Input.DeviceDEVDeviceButton.Input.Device.NumberINTEGERDevice numberButton.Input.Device.PortINTEGERDevice port Button.Input.Device.SystemINTEGERSystem numberButton.HoldtimeLONGCurrent hold time in .10 second incremen
27、ts. Note:Button.Holdtime returns are in 1ms increments.Button.SourceDevDEVSource device of button eventButton.SourceDev.NumberINTEGERSource device numberButton.SourceDev.PortINTEGERSource device portButton.SourceDev.SystemINTEGERSource device system.DATA_EVENT這個關(guān)鍵字規(guī)定了一個數(shù)據(jù)事件的處理。在一個系統(tǒng)中,觸發(fā)信息傳到主機(jī)或者設(shè)備的時候
28、,可分為五種類型:1、設(shè)備接收到數(shù)據(jù)字符串 (RS-232 device)2、設(shè)備從主機(jī)接收到 SEND_COMMAND 命令3、主機(jī)檢測到設(shè)備在線4、主機(jī)檢測到設(shè)備不在線5、被控設(shè)備發(fā)生錯誤信息 這些事件僅僅與一個設(shè)備相連。定義格式如下:DATA_EVENT COMMAND:/* 設(shè)備從主機(jī)接收到 SEND_COMMAND 命令 */STRING:/* 設(shè)備接收到數(shù)據(jù)字符串 (RS-232 device) */ ONLINE:/* 主機(jī)檢測到設(shè)備在線 */ OFFLINE:/* 主機(jī)檢測到設(shè)備不在線 */ ONERROR:/* 被控設(shè)備發(fā)生錯誤信息 */ Example:DATA_EVENT
29、PROJECT ONLINE: SEND_COMMAND PROJECT, SET_BAUD 19200,N,8,1 DATA_EVENT特性描述表:Property NameTypeDescriptionData.DeviceDEVDeviceData.Device.NumberINTEGERDevice numberData.Device.PortINTEGERDevice portData.Device.SystemINTEGERSystem numberData.NumberLONGEvent numberData.TextCHAR ArrayText associated with
30、the eventLEVEL_EVENT這個關(guān)鍵字規(guī)定了一個拉條事件的處理。在一個指定的設(shè)備上,一個拉條的變化作為一個結(jié)果被接收,也就是拉條值的改變引發(fā)的事件。定義格式如下:LEVEL_EVENT , /* 當(dāng)拉條發(fā)生變化時產(chǎn)生的語句 */Example:LEVEL_EVENT TP, 1 IF (LEVEL.VALUE = COOL_POINT) ONRELAY,FAN ELSE IF (LEVEL.VALUE = HEAT_POINT) OFFRELAY,FAN 注釋:LEVEL.VALUE表示拉條改變的值。它可以代替一個需要創(chuàng)建的拉條作為一個臨時設(shè)備。 LEVEL_EVENT特性描述表:
31、Property NameTypeDescriptionLevel.InputDEVLEVDevice + Level that caused the event to occurLevel.Input.DeviceDEVDeviceLevel.Input.Device.NumberINTEGERDevice numberLevel.Input.Device.PortINTEGERDevice portLevel.Input.Device.SystemINTEGERSystem numberLevel.Input.LevelINTEGERLevel numberLevel.SourceDevD
32、EVSource Device of Level EventLevel.SourceDev.NumberINTEGERSource Device NumberLevel.SourceDev.PortINTEGERSource Device PortLevel.SourceDev.SystemINTEGERSource Device SystemLevel.ValueNumericLevel value附加:拉條的介紹基本上AMX的觸摸屏都具有拉條顯示,和拉條控制如:可以用來反應(yīng)當(dāng)前燈光的亮度和音量的大小Creating Levels創(chuàng)建讀取寫入拉條的值讀取的值要讀取拉條的設(shè)備讀取拉條數(shù)據(jù)的變量
33、CREATE_LEVEL device, level number, variable要讀取拉條的通道號寫入要寫入拉條的設(shè)備要寫入拉條的值SEND_LEVEL TP, 1, VOL_LEVEL要寫入拉條的通道號DEFINE_CONNECT_LEVEL這個關(guān)鍵字規(guī)定了拉條的聯(lián)結(jié)。定義格式如下:DEFINE_CONNECT_LEVEL /* 設(shè)備與拉條相關(guān)聯(lián) */(device 1,level number 1,device 2,level number 2,.etc.)Example: DEFINE_CONNECT_LEVEL (TP ,1, VOL,1,VOL, 2) / 觸摸屏按鈕拉條,與音
34、量盒第一路和第二路相關(guān)聯(lián)COMBINE_LEVELS(VIRTUAL1,1,TP1,1,TP2,1,TP3,1) / 建立關(guān)聯(lián)UNCOMBINE_LEVELS(VIRTUAL1,1) / 取消關(guān)聯(lián) CHANNEL_EVENT這個關(guān)鍵字規(guī)定了一個通道事件的處理。在一個指定的設(shè)備通道上,一個輸出發(fā)生改變時,這個處理類型就被調(diào)用。定義格式如下: CHANNEL_EVENTDEVICE,CHANNELON:/* 通道打開的事件處理 */OFF:/* 關(guān)閉通道的事件處理 */CHANNEL_EVENT特性描述表:Property NameTypeDescriptionChannel.DeviceDEVD
35、eviceChannel.Device.NumberINTEGERDevice numberChannel.Device.PortINTEGERDevice portChannel.Device.SystemINTEGERSystem numberChannel.ChannelINTEGERDevice channelChannel.SourceDevDEVSource Device of Channel EventChannel.SourceDev.NumberINTEGERSource Device NumberChannel.SourceDev.PortINTEGERSource Dev
36、ice PortChannel.SourceDev.SystemINTEGERSource Device SystemTIMELINE_EVENT當(dāng)一個時間線的內(nèi)置時間相當(dāng)于在時間數(shù)組里指定時間的某一個時,這些事件被生成。定義格式如下:TIMELINE_EVENTtimelineID Example:Define_Device dvPanel = 128:1:0 DEFINE_VARIABLE LONG TimeArray100 DEFINE_CONSTANT TL1 = 1 TL2 = 2 DEFINE_EVENT TIMELINE_EVENTTL1 /* 捕獲所有TL1 的時間線 */ s
37、witch(Timeline.Sequence) /* 按先后順序找到相對應(yīng)的時間 */ case 1: SEND_COMMAND dvPanel, TEXT1-1 1 case 2: SEND_COMMAND dvPanel, TEXT1-1 2 case 3: SEND_COMMAND dvPanel, TEXT1-1 3 case 4: SEND_COMMAND dvPanel, TEXT1-1 4 case 5: SEND_COMMAND dvPanel, TEXT1-1 5 TIMELINE_EVENTTL2 /* 捕獲所有TL2 的時間線 */ switch(Timeline.Se
38、quence) /* 按先后順序找到相對應(yīng)的時間 */ case 1: SEND_COMMAND dvPanel, TEXT2-2 1 case 2: SEND_COMMAND dvPanel, TEXT2-2 2 case 3: SEND_COMMAND dvPanel, TEXT2-2 3 case 4: SEND_COMMAND dvPanel, TEXT2-2 4 case 5: SEND_COMMAND dvPanel, TEXT2-2 5 DEFINE_PROGRAM PUSHdvPanel,1 TimeArray1 = 1000 TimeArray2 = 2000 TimeArr
39、ay3 = 3000 TimeArray4 = 4000 TimeArray5 = 5000 TIMELINE_CREATE(TL1,TimeArray,5,TIMELINE_ABSOLUTE, TIMELINE_REPEAT) PUSHdvPanel,2 TimeArray1 = 1000 TimeArray2 = 1000 TimeArray3 = 1000 TimeArray4 = 1000 TimeArray5 = 1000 TIMELINE_CREATE(TL2,TimeArray,5,TIMELINE_RELATIVE, TIMELINE_ONCE)繼電器控制ONRELAY,1 /
40、* 打開繼電器1 */OFFRELAY,1 /* 關(guān)閉繼電器1 */BUTTON_EVENTTP,1 PUSH: /* 按下觸摸屏第一個通道時執(zhí)行的動作 */ ONRELAY,1 紅外控制PULSEDVD,1 /* 正常發(fā)出 PLAY 紅外碼 */ TODVD,6 /* 發(fā)出 SCAN-FFWD 向前掃瞄紅外碼 */BUTTON_EVENTTP,11 PUSH: /* 按下觸摸屏第一個通道時DVD播放 */ PULSEDVD,1 串口控制SEND_COMMAND SWITCHER, SET BAUD 9600,N,8,1 /* 設(shè)置串口的波特率 為9600,奇偶校驗位無,數(shù)據(jù)位8,停止位1 *
41、/SEND_COMMAND SWITCHER, SET BAUD 9600,N,8,1 485 ENABLE /* 啟有485的模式,關(guān)閉422模式, 如485 DISABLE為關(guān)閉485模式啟用422模式 */SEND_STRING SWITCHER, ”$AB,$CC,$AD,$5B”SEND_STRING SWITCHER, “CL0I1O2T,$0D” SEND_STRING SWITCHER, “CL0I1O2T,13” 注釋: 發(fā)出 AB,CC,AD,5B 的16進(jìn)制碼,所有16進(jìn)制碼以 “$” 所開始 ,所有 SEND_STRING 的內(nèi)容使用雙引號 “ “ 作開始及終止,ASC
42、II 字符串以單引號 括起來,16進(jìn)制碼以 $ 作開頭 */模擬量控制SEND_COMMAND D:P:S, P2L100T2BUTTON_EVENTTP, 12 PUSH: /* 按下觸摸屏第12通道時設(shè)置燈光的亮度 */ SEND_COMMAND D:P:S, P2L100T2 互鎖在定義了互鎖的通道號中,在同一時間內(nèi)只能有一個通道號打開打開新的通道時,當(dāng)前的通道號會被先關(guān)閉.DEFINE_MUTUALLY_EXCLUSIVE(RELAY,1,RELAY,2)(RELAY,3,RELAY,4,RELAY,5)(RELAY,3. . RELAY,5)注釋:繼電器1和繼電器2兩者同一時間內(nèi)只能
43、打開一個,同樣的原理繼電器3、4、5三者也只能打開一個,下面兩句定義的繼電器3、4、5是等值的。*/反饋DEFINE_PROGRAM這個程序段規(guī)定了主線代碼。這段代碼不斷地被執(zhí)行(處理輸入的數(shù)據(jù)和提供設(shè)備反饋信息)。能夠?qū)崟r反應(yīng)出設(shè)備的狀態(tài)。如燈的開關(guān)。DEFINE_PROGRAMTP,1 = RELAY,1 /* 當(dāng)繼電器1開的時候,通道號為1的按鈕也跟著開,反之為關(guān) */DEFINE_PROGRAMTP,1 = (POWERONOFF=1)/* 當(dāng)變量POWERONOFF=1時候,通道號為1的按鈕也跟著開,反之為關(guān)*/&在程序執(zhí)行過程中的反饋ONTP,1OFFTP,1/* 在程序執(zhí)行過程中
44、打開通道號為1的按鈕,或關(guān)閉通道號為1的按鈕 */ 變量 與 等待數(shù)據(jù)類型KeywordData TypeSignSizeRangeCHARByteUnsigned8-bit0 -255WIDECHARIntegerUnsigned16-bit0 - 65535INTEGERIntegerUnsigned16-bit0-65536SINTEGERIntegerSigned16-bit-32768 to +32768LONGLong IntegerUnsigned32-bit4,294,967,295SLONGLong IntegerSigned32-bit+ 2,147,483,647FLOA
45、TFloating PointSigned32-bit1. E+308 to 2. E-308DOUBLEDouble Precision Floating PointSigned64-bit3. E+38 to 1. E-38數(shù)據(jù)類型之間的轉(zhuǎn)換ATOI /* 字符轉(zhuǎn)整數(shù) */ITOA /* 整數(shù)轉(zhuǎn)字符 */ITOHEX /* 十進(jìn)制轉(zhuǎn)十六進(jìn)制 */l 如:CL0I1O1Tl 表示音視頻輸入第一路切換到輸出第一路表現(xiàn)類型變量的的分類型可分為 NON_VOLATILE, VOLATILE or PERSISTENT.NON_VOLATILE 存儲在不可變內(nèi)存中,當(dāng)系統(tǒng)關(guān)閉的時候,它的值是保持不變
46、的;當(dāng)程序重載時,它的值將被置為0。除非特別注明,不然所有這種類型的變量將存儲在不可變內(nèi)存區(qū)域中。 DEFINE_VARIABLE /* 設(shè)置變量 */INTEGER CURRENT_VOL_LEVEL /* 定義音量值變量 */VOLATILE存儲在可變內(nèi)存中,當(dāng)系統(tǒng)關(guān)閉的時候,它的值就會丟失;它的使用相當(dāng)靈活,適合存儲大型數(shù)據(jù)。 -DEFINE_VARIABLE /* 設(shè)置變量 */VOLATILE INTEGER CURRENT_VOL_LEVEL /* 定義音量值變量 */PERSISTENT存儲在不可變內(nèi)存中,程序第一次加載時,其值將被初始成0。當(dāng)系統(tǒng)關(guān)閉或重載,它的值不變;當(dāng)與它相關(guān)的變量值發(fā)生變化時,它的值將丟失。DEFINE_VARIABLE /* 設(shè)置變量 */PERSISTENT INTEGER CURRENT_VOL_LEVEL /* 定義音量值變量 */CONSTANT常量DEFINE_CONSTANT DLP_ON_FB =201 DLP_OFF_FB =202局部變量和全局變量變量可分為兩種類型: Local scope: 局部變量,只能使用在子程序中或者聲名的某個函數(shù)當(dāng)中 LOCAL_VAR INTEGER n Global scope:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- DB31/T 1377.2-2022實驗雞和鴨第2部分:寄生蟲學(xué)監(jiān)測
- DB31/T 1226-2020職業(yè)病診斷鑒定規(guī)范
- DB31/ 731-2013船舶修正總噸單位產(chǎn)品能源消耗限額
- DB31/ 329.21-2015重點單位重要部位安全技術(shù)防范系統(tǒng)要求第21部分:養(yǎng)老機(jī)構(gòu)
- 環(huán)境污染治理市場分析考核試卷
- 國開電大本科《馬克思主義基本原理概論》一平臺終考作業(yè)之二(大作業(yè))試題及答案匯編2025春期版
- 網(wǎng)店平臺規(guī)則變更應(yīng)對及過戶合同
- 武俠電影替身演員傭金分配合同
- 頂級私人飛機(jī)餐車租賃服務(wù)合同
- 股權(quán)質(zhì)押擔(dān)保企業(yè)破產(chǎn)重整合同
- ktv包房公主協(xié)議書
- 2025年全球經(jīng)濟(jì)風(fēng)險試題及答案
- 2025年陜西咸陽亨通電力(集團(tuán))有限公司招聘筆試參考題庫附帶答案詳解
- 小學(xué)二年級有余數(shù)的除法口算題(共300題)
- 【MOOC】家具史-南京林業(yè)大學(xué) 中國大學(xué)慕課MOOC答案
- 科研倫理與學(xué)術(shù)規(guī)范(研究生)期末試題
- 漢字文化解密學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- DLT 572-2021 電力變壓器運行規(guī)程
- 飽和蒸汽壓力——溫度對照表
- 工序單位能耗地計算方法、及企業(yè)噸鋼可比能耗計算方法
- 超市標(biāo)準(zhǔn)商品分類表格模板
評論
0/150
提交評論