摘要:针对西门子S7—300可编程操控器的脉冲输出功用,将25个半音阶音符的周期及对应的脉冲数寄存S7—300相应的内存单元中,经过合理分配S7—300的I/O端口,规划了一种音乐演奏操控体系。在硬件电路和软件编程的基础上,结合Wincc flexible仿真软件进行仿真与调试,完结了音乐演奏体系的功用需求。实践标明,该规划具有功用强、运用灵敏、可靠性高、稳定性好、编程简略、运用方便以及体积小、功耗低一级特色。
可编程序操控器PLC是一种新式的通用主动操控设备,它将传统的继电器操控技能、计算机技能和通讯技能融为一体,是专门为工业操控而规划的。其间西门子S7—300具有功用强、运用灵敏、可靠性高、稳定性好、抗干扰能力强、编程简略、运用方便以及体积小、重量轻、功耗低一级一系列特色。本次规划以S7—300作为主控器材规划一种音乐演奏操控体系,经过该规划能够使学习者充沛把握S7—300的根本运用办法。
1 体系硬件结构图
音乐演奏操控体系的组成结构图如图1所示,首要包括PLC操控单元、触摸屏、按钮、扬声器、指示灯和体系操控计算机。其间按钮和触摸屏用来操控体系的发动与中止,PLC用来告诉触摸屏显现扬声器的作业状况,以及操控电路中的作业指示灯。
2 硬件规划
2.1 操控需求剖析
为确保扬声器依照必定的音符演奏所需求的乐曲信息,可将从“A”(400 Hz)开端的25个半音阶音符的音符周期时刻与之对应的脉冲数寄存在音符表(即内存单元V4~V103)中,内存单元(V600~V743)和内存单元(V800~V1059)别离寄存通道0和1的乐曲信息。因为是一起演奏2个音符,所以要将两个乐曲信息别离用脉冲通道0和通道1输出,并均被设置成脉冲序列输出(PTO)。当体系发动与中止时经过PLC的I/O端口来分配功用。
依据对操控需求剖析,可确认出PLC操控的输入、输出地址分配表如表1所示。
2.2 硬件电路规划
依据演奏音乐功用剖析,能够规划出该电气操控体系的硬件接线图,如图2所示。当发动按钮SB1接通时,开端演奏音乐,并从Q0.0和Q0.1输出脉冲信号来操控扬声器。当按下中止按钮SB2,体系中止。
3 软件规划
3.1 程序规划的思路
本体系软件规划选用PLC梯形图言语编写,针对梯形图言语的特色,本规划在软件规划时选用了结构化程序规划办法。即先把程序分为几大的模块,包括音符表、通道0乐曲、通道1乐曲、脉冲序列、榜首音符、各通道的第二个音符排入行列、发动中止接连演奏等。然后再用编程言语完结。在编程时力求每个模块的独立性和通用性,并且做到明晰易读、易修正。
编程时首要树立25个音符周期的音符表并初始化音符表,一起初始化通道0和1乐曲表及脉冲序列,然后用行列中止程序附着于脉冲序列输出(PTO)完结事情,完结音符接连演奏。
两个脉冲通道都被设置成脉冲序列输出(PTO),当演奏每个通道的榜首个音符时,就恳求第二个音符,这样就构成了深度为1的行列(一个在进程中,一个在行列中)。中止子程序附着于PTO完结事情。榜首个音符演奏完,中止程序调用下一个音符,这个进程继续下去,直到乐曲完毕。
3.2 PLC内存单元分配
音乐演奏程序运用了较多的PLC内存单元,用于存储音符表、指针、及乐曲表通道等,详细分工如下:
V4~V103音符表。
V500~V503指向音符表的指针。
V504~V507指向通道0乐曲表的指针。
V508~V511暂时的作业寄存器。
V554~V557指向通道1乐曲表的指针。
V600~V743通道0乐曲表。
V800~V1059通道1乐曲表。
3.3 程序流程图
音乐演奏操控程序由1个主程序、7个子程序和2个中止程序组成,其操控程序流程如图3所示。
1)主程序:只在榜首个扫描周期中履行,假如主菜单封闭,主程序也完毕运转。
2)SBR0:初始化程序所运用的音符。用MOVD指令把用十六进制数表明的音符存于内存中,前4个字符码表征音符的频率,后4个字符表明继续腔调0.125秒所需的脉冲数。
3)SBR1:因为乐曲的演奏需两层的音符,所以有必要界说两个不同的通道(0和1),SBR1便是初始化通道0的乐曲,每个MOVD指令包括4个字节,每个字节是音符的参阅号码(1~125),第二个字母是0.125秒时刻单位的数目;第三个字节是下一个音符的参阅号码,第四个字节是下一个音符的0.125秒时刻单位的数目。
4)SBR2:初始化通道1的乐曲。
5)SBR3:初始化脉冲序列输出,特别标志字节界说输出端Q0.0和Q0.1输出的方波特性。
6)SBR4:演奏每个通道的榜首个音符,通道0的音符参阅号码和与之匹配的时刻单位数被装入脉冲输出0,相同的进程在通道1中进行,因此能一起演奏两个音符。
7)SBR5:把每个通道的第二个音符排入行列,通道0的音符参阅号码和与之匹配的时刻单位数被装入脉冲输出0,相同的进程在通道1进行,因此能一起演奏两个音符。
8)SBR6:设置的中止关于接连地演奏乐曲是很重要的,中止0是脉冲输出0的脉冲计数中止事情,中止1是脉冲输出1的脉冲计数中止事情,演奏完一个音符后中止产生。
9)INT0:演奏完通道0的一个音符后,就激活中止程序0,下一个音符的参阅号码和计算出的时刻单位数将被传给通道0的脉冲输出,当乐曲的最终一个音符演奏完结时,将主动制止中止,程序停止。
10)INT1:演奏完通道1的一个音符后,就激活中止程序1,下一个音符的参阅号码和计算出的时刻单位数将被传给通道1的脉冲输出,当乐曲的最终一个音符演奏完结时,将主动制止中止,程序停止。