国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于VB的音樂噴泉上位機(jī)控制系統(tǒng)研制

2007-12-29 00:00:00鐘震西
中國集體經(jīng)濟(jì) 2007年5期


  摘要:基于VB的音樂噴泉控制系統(tǒng),運(yùn)行于windows平臺(tái),文章介紹了音樂噴泉系統(tǒng)的硬件、軟件結(jié)構(gòu)及功能,并給出了主要程序。
  關(guān)鍵詞:VB;音樂噴泉;控制系統(tǒng)
  
  VB6.0是當(dāng)前用于數(shù)據(jù)采集、信號(hào)處理和虛擬儀器開發(fā)的一個(gè)標(biāo)準(zhǔn)工具。它是一種圖形化的編程語言,集成了與滿足GPIF3,VXI,RS232和RS485協(xié)議的硬件及數(shù)據(jù)采集卡通訊的全部功能。它還內(nèi)置了便于應(yīng)用TCP/IP,ActiveX等軟件標(biāo)準(zhǔn)的庫函數(shù)。這是一個(gè)功能強(qiáng)大且靈活的軟件。其圖形化的界面使得編程及使用過程都生動(dòng)有趣。
  隨著城市建設(shè)的發(fā)展,音樂噴泉已成為現(xiàn)代城市生活的重要娛樂設(shè)施之一。目前,大型音樂噴泉的控制方式主要有工業(yè)PC和以工業(yè)PC為上位機(jī),PLC為下位機(jī)的總線控制兩種方式。這里的工業(yè)PC控制方式是指以工業(yè)控制計(jì)算機(jī)為核心,通過各種IO板卡和通訊卡發(fā)送控制信號(hào)的音樂噴泉控制系統(tǒng)。隨著大點(diǎn)數(shù)工業(yè)IO板卡的推出以及計(jì)算機(jī)多媒體技術(shù)的發(fā)展,相比以工業(yè)PC為上位機(jī),多個(gè)PLC為下位機(jī)的總線控制方式相比,它具有更高的性價(jià)比,而且充分利用了目前計(jì)算機(jī)的多媒體技術(shù)。下面結(jié)合某音樂噴泉控制系統(tǒng)的項(xiàng)目介紹一種基于工業(yè)PC控制方式以VB6.0為上位機(jī)界面的音樂噴泉控制系統(tǒng)。
  
  一、硬件部分
  
  
  控制系統(tǒng)的系統(tǒng)框圖如圖1所示,采用多媒體聲卡取代傳統(tǒng)的CD播放機(jī),使用研華PCI_1753P1753E數(shù)據(jù)采集卡。采用多媒體聲卡后,不再需要CD播ajBnNJmy2qTHc8dnQpFgBstsAhZK22LhzzCOW508NMI=放機(jī),音樂的播放、音樂數(shù)據(jù)的分析可以全部在工控機(jī)內(nèi)用軟件實(shí)現(xiàn),可以提高音樂跟水型變化的協(xié)調(diào)性。PCI_1753是一款PCI總線的96路數(shù)字量I/O卡,它可以經(jīng)由PCI_1753E擴(kuò)展為192路的數(shù)字量I/O。PCI_1753仿真8255PPI模式0,但是緩存電路提供了比8255更高的驅(qū)動(dòng)能力,96路I/O線分成12個(gè)8位I/O端口:A0、B0、C0、A1、B1、C1、A2、B2、C2、A3、B3和C3。用戶可以使用軟件配置每個(gè)端口作為輸入或輸出端口。這樣只需要兩塊PCI_1753再擴(kuò)展兩塊PCI_1753E就可以取代傳統(tǒng)的多塊PCL_734。解決了板卡多,需擴(kuò)展ISA槽的問題,而且提高了系統(tǒng)的穩(wěn)定性、可靠性。對(duì)變頻器的控制,采用RS_485總線的控制方式,使用了研華公司的4端口RS_485PCI通訊卡PCI_1612A。
  
  二、軟件部分
  
  
  設(shè)計(jì)了控制軟件。該控制軟件運(yùn)行于WindowsXP,它的基本結(jié)構(gòu)從圖2看出:它由系統(tǒng)管理模塊、水型編輯模塊、系統(tǒng)測試模塊、運(yùn)行模塊、IO驅(qū)動(dòng)模塊組成。其中,系統(tǒng)管理模塊完成樂曲的添加、刪除,并管理測試、運(yùn)行和水型編輯等其它功能模塊;系統(tǒng)測試模塊負(fù)責(zé)測試閥門、燈及變頻器的工作情況;水型模塊提供一個(gè)友好的工作界面讓用戶根據(jù)對(duì)音樂的理解來添加基本水型,最后生成水型文件;運(yùn)行模塊最后根據(jù)水型模塊生成的水型文件,按一定的控制規(guī)律控制噴泉的水型,IO驅(qū)動(dòng)模塊則負(fù)責(zé)接收測試模塊和運(yùn)行模塊發(fā)送的數(shù)據(jù),并據(jù)此驅(qū)動(dòng)IO板卡和通訊卡。
  為了對(duì)不同的歌曲進(jìn)行水型編輯,設(shè)計(jì)了一個(gè)水型庫。水型庫包含基本的水型,每一首歌曲的噴泉水型由多個(gè)基本水型組成,不同的歌曲在一定的時(shí)間段的水型根據(jù)歌曲的節(jié)拍、頻率、感情色彩等從基本水型中選出。
  這樣,在軟件的水型模塊中設(shè)置好噴泉水型,生成對(duì)應(yīng)歌曲的水型文件,運(yùn)行時(shí)由運(yùn)行模塊讀取水型文件數(shù)據(jù),經(jīng)過處理,驅(qū)動(dòng)各個(gè)閥門、彩燈、變頻器等,實(shí)現(xiàn)給定的噴泉水型。水型編輯模塊主要對(duì)windows的wav文件進(jìn)行數(shù)據(jù)處理并編輯水型文件。wav文件數(shù)據(jù)塊包含了以脈沖編碼調(diào)制(PCM)格式表示的聲音信號(hào)樣本。在windows中可以通過低級(jí)音頻函數(shù)很容易的對(duì)wav文件進(jìn)行音樂播放、暫停、定位、結(jié)束等操作。由于wav文件的數(shù)據(jù)塊內(nèi)容就是聲音信號(hào)樣本,因此音樂波形的顯示、信號(hào)的快速傅立葉變換等能直接處理。為了方便、形象進(jìn)行水型編輯,水型編輯模塊具有音樂波形顯示功能,而且音樂波形的顯示可以根據(jù)定位要求在時(shí)間軸上放大或縮小。水型編輯人員通過對(duì)音樂的理解以及在波形顯示的輔助下可以對(duì)音樂進(jìn)行分段,然后插入基本水型。當(dāng)對(duì)整首音樂分好時(shí)間段并插入基本水型后,這些基本水型就被保存為對(duì)應(yīng)歌曲的水型文件。
  音樂噴泉控制的另外一個(gè)關(guān)鍵問題是在Windows2000系統(tǒng)下音樂播放如何與水型動(dòng)作協(xié)調(diào)。常用的Windows定時(shí)器消息只能達(dá)到55毫秒的定時(shí)精度,而且Windows定時(shí)器消息優(yōu)先級(jí)別很低,不能滿足音樂噴泉時(shí)間控制的要求。因此對(duì)噴泉控制的定時(shí)采用了Windows多媒體定時(shí)器的方法。使用這種方法可以將時(shí)間精確到2毫秒。
  
  三、主要結(jié)構(gòu)及程序
  
 ?。ㄒ唬╅_關(guān)量卡控制結(jié)構(gòu)
  Type PT_DioWritePortByte
  Port As Integer
  Mask As Integer
  State As Integer
  End Type
  該開關(guān)量卡有32位,分4組,port指定第幾組,mask為屏蔽碼,state為欲設(shè)定的組的各位開關(guān)狀態(tài),須把對(duì)應(yīng)位的二進(jìn)制轉(zhuǎn)換為十進(jìn)制,如:00000011,表示把1、2位開啟,其余位關(guān)閉,則state應(yīng)為3。在手動(dòng)已經(jīng)關(guān)閉一些設(shè)備后,屏蔽碼則不再是默認(rèn)的255,而應(yīng)該去除相應(yīng)的位。如已關(guān)閉第8位對(duì)應(yīng)設(shè)備,屏蔽碼就應(yīng)改為127。此時(shí),即便state設(shè)置為127以上,也不會(huì)開啟第8位對(duì)應(yīng)設(shè)備。
 ?。ǘ┮粼淳€路的控制結(jié)構(gòu)及控制函數(shù)
  Type MIXERCONTROLDETAILS
  cbStruct As Long
  dwControlID As Long
  cChannels As Long
  item As Long
  cbDetails As Long
  paDetails As Long
  End Type
  Declare Function mixerGetControlDetailsLib“winmm.dll”_
  Alias“mixerGetControlDetailsA”_
  (ByValhmxobj As L

托里县| 常宁市| 武功县| 祁连县| 合水县| 神农架林区| 小金县| 凤城市| 佛山市| 墨脱县| 和林格尔县| 治多县| 报价| 香港| 瑞金市| 石景山区| 丽水市| 聊城市| 徐州市| 扎赉特旗| 齐河县| 长沙市| 锡林浩特市| 聊城市| 松桃| 会宁县| 久治县| 南阳市| 尚义县| 廉江市| 靖边县| 民县| 罗城| 田阳县| 涿鹿县| 勃利县| 江陵县| 开远市| 惠东县| 沙坪坝区| 武邑县|