<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于S7-300控制的音樂(lè )演奏系統仿真設計

基于S7-300控制的音樂(lè )演奏系統仿真設計

作者: 時(shí)間:2016-09-12 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要:針對西門(mén)子S7—300可編程控制器的脈沖輸出功能,將25個(gè)半音階音符的周期及對應的脈沖數存放S7—300相應的內存單元中,通過(guò)合理分配S7—300的I/O端口,設計了一種音樂(lè )演奏控制系統。在硬件電路和軟件編程的基礎上,結合Wincc flexible仿真軟件進(jìn)行仿真與調試,實(shí)現了音樂(lè )演奏系統的功能需求。實(shí)踐表明,該設計具有功能強、運用靈活、可靠性高、穩定性好、編程簡(jiǎn)單、使用方便以及體積小、功耗低等特點(diǎn)。

本文引用地址:http://dyxdggzs.com/article/201609/304498.htm

可編程序控制器PLC是一種新型的通用自動(dòng)控制裝置,它將傳統的繼電器控制技術(shù)、計算機技術(shù)和通訊技術(shù)融為一體,是專(zhuān)門(mén)為工業(yè)控制而設計的。其中西門(mén)子S7—300具有功能強、運用靈活、可靠性高、穩定性好、抗干擾能力強、編程簡(jiǎn)單、使用方便以及體積小、重量輕、功耗低等一系列特點(diǎn)。本次設計以S7—300作為主控器件設計一種音樂(lè )演奏控制系統,通過(guò)該設計可以使學(xué)習者充分掌握S7—300的基本應用方法。

1 系統硬件結構圖

音樂(lè )演奏控制系統的組成結構圖如圖1所示,主要包括PLC控制單元、觸摸屏、按鈕、揚聲器、指示燈和系統控制計算機。其中按鈕和觸摸屏用來(lái)控制系統的啟動(dòng)與停止,PLC用來(lái)通知觸摸屏顯示揚聲器的工作狀態(tài),以及控制電路中的工作指示燈。

基于S7-300控制的音樂(lè )演奏系統仿真設計

2 硬件設計

2.1 控制需求分析

為保證揚聲器按照一定的音符演奏所需要的樂(lè )曲信息,可將從“A”(400 Hz)開(kāi)始的25個(gè)半音階音符的音符周期時(shí)間與之對應的脈沖數存放在音符表(即內存單元V4~V103)中,內存單元(V600~V743)和內存單元(V800~V1059)分別存放通道0和1的樂(lè )曲信息。因為是同時(shí)演奏2個(gè)音符,所以要將兩個(gè)樂(lè )曲信息分別用脈沖通道0和通道1輸出,并均被設置成脈沖序列輸出(PTO)。當系統啟動(dòng)與停止時(shí)通過(guò)PLC的I/O端口來(lái)分配功能。

根據對控制需求分析,可確定出PLC控制的輸入、輸出地址分配表如表1所示。

基于S7-300控制的音樂(lè )演奏系統仿真設計

2.2 硬件電路設計

根據演奏音樂(lè )功能分析,可以設計出該電氣控制系統的硬件接線(xiàn)圖,如圖2所示。當啟動(dòng)按鈕SB1接通時(shí),開(kāi)始演奏音樂(lè ),并從Q0.0和Q0.1輸出脈沖信號來(lái)控制揚聲器。當按下停止按鈕SB2,系統停止。

基于S7-300控制的音樂(lè )演奏系統仿真設計

3 軟件設計

3.1 程序設計的思路

本系統軟件設計采用PLC梯形圖語(yǔ)言編寫(xiě),針對梯形圖語(yǔ)言的特點(diǎn),本設計在軟件設計時(shí)采用了結構化程序設計方法。即先把程序分為幾大的模塊,包括音符表、通道0樂(lè )曲、通道1樂(lè )曲、脈沖序列、第一音符、各通道的第二個(gè)音符排入隊列、啟動(dòng)中斷連續演奏等。然后再用編程語(yǔ)言實(shí)現。在編程時(shí)力求每個(gè)模塊的獨立性和通用性,而且做到清晰易讀、易修改。

編程時(shí)首先建立25個(gè)音符周期的音符表并初始化音符表,同時(shí)初始化通道0和1樂(lè )曲表及脈沖序列,然后用隊列中斷程序附著(zhù)于脈沖序列輸出(PTO)完成事件,完成音符連續演奏。

兩個(gè)脈沖通道都被設置成脈沖序列輸出(PTO),當演奏每個(gè)通道的第一個(gè)音符時(shí),就請求第二個(gè)音符,這樣就構成了深度為1的隊列(一個(gè)在進(jìn)程中,一個(gè)在隊列中)。中斷子程序附著(zhù)于PTO完成事件。第一個(gè)音符演奏完,中斷程序調用下一個(gè)音符,這個(gè)過(guò)程繼續下去,直到樂(lè )曲結束。

3.2 PLC內存單元分配

音樂(lè )演奏程序使用了較多的PLC內存單元,用于存儲音符表、指針、及樂(lè )曲表通道等,具體分工如下:

V4~V103音符表。

V500~V503指向音符表的指針。

V504~V507指向通道0樂(lè )曲表的指針。

V508~V511臨時(shí)的工作寄存器。

V554~V557指向通道1樂(lè )曲表的指針。

V600~V743通道0樂(lè )曲表。

V800~V1059通道1樂(lè )曲表。

3.3 程序流程圖

音樂(lè )演奏控制程序由1個(gè)主程序、7個(gè)子程序和2個(gè)中斷程序組成,其控制程序流程如圖3所示。

基于S7-300控制的音樂(lè )演奏系統仿真設計

1)主程序:只在第一個(gè)掃描周期中執行,如果主菜單關(guān)閉,主程序也結束運行。

2)SBR0:初始化程序所使用的音符。用MOVD指令把用十六進(jìn)制數表示的音符存于內存中,前4個(gè)字符碼表征音符的頻率,后4個(gè)字符表示持續音調0.125秒所需的脈沖數。

3)SBR1:由于樂(lè )曲的演奏需雙重的音符,所以必須定義兩個(gè)不同的通道(0和1),SBR1就是初始化通道0的樂(lè )曲,每個(gè)MOVD指令包含4個(gè)字節,每個(gè)字節是音符的參考號碼(1~125),第二個(gè)字母是0.125秒時(shí)間單位的數目;第三個(gè)字節是下一個(gè)音符的參考號碼,第四個(gè)字節是下一個(gè)音符的0.125秒時(shí)間單位的數目。

4)SBR2:初始化通道1的樂(lè )曲。

5)SBR3:初始化脈沖序列輸出,特殊標志字節定義輸出端Q0.0和Q0.1輸出的方波特性。

6)SBR4:演奏每個(gè)通道的第一個(gè)音符,通道0的音符參考號碼和與之匹配的時(shí)間單位數被裝入脈沖輸出0,同樣的過(guò)程在通道1中進(jìn)行,因此能同時(shí)演奏兩個(gè)音符。

7)SBR5:把每個(gè)通道的第二個(gè)音符排入隊列,通道0的音符參考號碼和與之匹配的時(shí)間單位數被裝入脈沖輸出0,同樣的過(guò)程在通道1進(jìn)行,因此能同時(shí)演奏兩個(gè)音符。

8)SBR6:設置的中斷對于連續地演奏樂(lè )曲是很重要的,中斷0是脈沖輸出0的脈沖計數中斷事件,中斷1是脈沖輸出1的脈沖計數中斷事件,演奏完一個(gè)音符后中斷發(fā)生。

9)INT0:演奏完通道0的一個(gè)音符后,就激活中斷程序0,下一個(gè)音符的參考號碼和計算出的時(shí)間單位數將被傳給通道0的脈沖輸出,當樂(lè )曲的最后一個(gè)音符演奏完成時(shí),將自動(dòng)禁止中斷,程序終止。

10)INT1:演奏完通道1的一個(gè)音符后,就激活中斷程序1,下一個(gè)音符的參考號碼和計算出的時(shí)間單位數將被傳給通道1的脈沖輸出,當樂(lè )曲的最后一個(gè)音符演奏完成時(shí),將自動(dòng)禁止中斷,程序終止。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>