(二)PLC高频脉冲输出的控制过程(CPU313C-2DP)1、PLC高频脉冲输出通道(1)数量:3个(2)位置:位于CPU313C-2DP集成数字量输出点首位字节的最低三位:Q124.0、Q124.1、Q124.2修改地址后:Q0.0、Q0.1、Q0.2这三位在通常情况下可以作为普通的数字量输出点来使用。在需要高频脉冲输出时,可通过硬件设置将这三位作为高频脉冲输出通道来使用。通道号为0通道、1通道、2通道。(地址用户可根据需要自行修改,通道号为固定值,用户不能自行修改)注意:(3)每个通道都可输出最高频率为2.5kHz(周期为0.4ms)的高频脉冲(4)每个通道都有自己的硬件控制门:0通道:I124.2;1通道:I124.5;2通道:I125.0修改地址后:0通道:I0.2;1通道:I0.5;2通道:I1.02、控制通道产生高频脉冲步骤:硬件设置调用系统功能块SFB492、以313C-2DP为例讲解脉宽调制需要脉宽调制的前提条件是外部设备需要高频率的脉冲。每个通道进行高速计数或频率测量时,最大频率可达30kHz;而作为高频脉冲输出时,最大频率为2.5kHz。PLC产生高频脉冲需要以下两个步骤:硬件设置。调用系统功能块SFB49。313C-2DP/PtP脉宽调制通道连接名称/地址脉宽调制212L+24V电源22DO+0.0通道0:输出23DO+0.1通道1:输出24DO+0.2通道2:输出25DO+0.326DO+0.427DO+0.528DO+0.629DO+0.7302M接地硬件设置(1)首先创建一个CPU型号为313-2DP的项目(各组依据各组PLC型号而定)。双击2.4计数栏,出现“计数属性对话框”,其左上角选择通道数(依据用户而定)。工作模式在其下拉菜单中选择“脉宽调制”项,选择后桌面会出现“模式改变”对话框,如下图。选择“确定”后,会发现计数属性对话框中多出“脉宽调制”选项卡。选择“每密尔”输出格式取值范围为(0~1000)输出较高频脉冲需选择0.1MS接通延时(On-delay)是指,当控制条件成立时,对应通道将延时指定时间后输出高频脉冲。指定时间值为设置值*时基。取值范围为0~65535最小的脉冲宽度,取值范围为2~Period/2。注意:在指定了最小脉冲宽度以后,应该保证根据占空比计算出来的高低电平的时间不小于最小脉冲宽度,否则脉冲将不能正常输出。请参看系统功能块SFB49使用方法。是否采用硬件门控制,一般我们不采用输出脉冲的周期,取值范围为4~65535周期为设置值*时基。1)硬件设置计数器属性:通道:0、1、2工作模式:五种。要在通道中产生高频脉冲,必须选择最后一种工作模式:脉宽调制简述:作为高频脉冲输出时,最大频率为2.5kHz;进行高速计数或频率测量时,最大频率可达30kHz。设置脉冲参数(脉宽调制选项卡)输出格式:每密尔:输出格式取值范围0~1000;S7模拟量值:输出格式取值范围0~27648注意:输出格式的取值在调用SFB49时设置,这一设置的取值会影响到输出脉冲的占空比。时基:(1ms、0.1ms)用户可根据需要选择合适的时基。一般要产生较高频率的脉冲,可选择较短的时基(0.1ms).接通延时时间值:当控制条件成立时,对应通道将延时指定时间后输出高频脉冲。延时时间=设置值×时基(取值范围0~65535)周期:指定输出脉冲的周期。周期=设置值×时基(4~65535)最小脉冲宽度:输出脉冲的最小脉宽取值范围为2~周期/2注意:在指定了最小脉冲宽度后,应保证根据占空比计算出来的高电平时间不小于最小脉冲宽度,否则脉冲将不能正常输出。2)调用系统功能块SFB49(脉冲宽度控制)Ⅰ、调用SFB492)调用系统功能块SFB49(脉冲宽度控制)Ⅰ、调用SFB49Ⅱ、分配SFB49参数参数有两类控制脉冲输出或作为数字量输出的控制变量修改脉冲参数控制脉冲参数CHANNEL:通道号,数据类型为整数,此参数指定启用的通道号。SW_EN:软件控制门,数据类型为BOOLSW_EN为1时,高频脉冲输出;SW_EN为0时,高频脉冲停止输出MAN-DO:手动输出使能端。MAN-DO端为1时,指定通道不输出高频脉冲,只能作为数字量输出点使用。MAN-DO端为0时,指定通道只能作为高频脉冲输出通道使用,输出指定频率的脉冲信号。SET-DO:数字量输出控制端SET-DO端为1时,可通过该端控制指定通道的状态是为高电平1,还是低电平0SET-DO端为0时,则该端状态不起作用OUTP-VAL:输出值设置,用来设置占空比。占空比设置方法:输出形式为每密尔,则此项的取值范围为0~1000,输出脉冲高电平时间长度为:脉宽=(OUTP-VAL/1000)*周期例如:OUTP-VAL值设置为200,则一个周期中,200/1000的时间为高电平,800/1000的时间为低电平,即占空比为1:4。输出形式为S7模拟量值,则此项的取值范围为0~27648。例如:OUTP-VAL值设置为200,则一个周期中,200/27648的时间为高电平,27448/27648的时间为低电平。注意:在设置占空比时,应保证计算出的高、低电平的时间都不能小于硬件设置中指定的最小脉宽值,否则不能输出脉冲信号。修改脉冲参数:JOB-REQ:作业操作信号。作用:可修改硬件设置时指定指定的某些参数(延时时间、周期等)。JOB-REQ端的状态由0变为1时,将进行作业操作功能,具体事件由作业ID和作业值决定。JOB-ID:作业号作用:作业号决定了具体的作业事件作业号设置作用W#16#1修改脉冲周期W#16#2修改延时时间W#16#81读取周期JOB-VAL:写作业值,参数类型为双整数。作用:指定的值乘以硬件组态时指定的时基为定义的时间值。当JOB-REQ有上升沿时,JOB-VAL端定义的值将代替脉冲原有的参数。STS-EN:状态使能端作用:当STS-EN端为1时,表示高频脉冲输出条件成立,通道处于延时或输出状态。STS-STRT:硬件门状态。无论是否启动硬件门功能。参数STS-STRT的状态与通道对应的硬件门的状态一致。参数STS_DO:通道的输出状态,当通道作为数字量输出或高频脉冲输出时,STS_DO端的状态与通道输出的状态一致。参数JOB_DONE:可以启动新作业的端,正常情况下JOB_DONE端的状态为“1”,表示可以启动新作业;当JOB_REQ端有上升沿时,将执行指定作业修改对应参数,这时JOB_DONE的状态将变为“0”,当作业执行完毕,参数修改好以后,JOB_DONE的状态将自动恢复为“1”状态。注意:一般作业执行的时间很短,因此JOB_DONE为“0”的状态时间也很短。在做实验时用肉眼很难观察到JOB_DONE端的状态变化,可以在程序中用JOB_DONE输出的信号控制一个加法计数器,可以看到,作业每启动一次,计数器的值都会加1,证明在执行作业时,JOB_DONE端的状态的确发生过变化。参数JOB_ERR:故障作业,JOB_ERR的状态为“0”时,表示作业执行正常,JOB_ERR的状态为“1”时,表示有故障发生,具体故障原因可查看故障代码(由JOB_STAT端读取)参数JOB_STAT:作业错误代码。如果发生作业错误,则JOB_ERR=TRUE。JOB_STAT中将给出精确的错误原因。具体如下表所示事件类别错误代码解释W#16#0411周期过短。W#16#0412周期过长。W#16#0421延时过短。W#16#0422延时过长。W#16#0431最小脉冲周期过短。W#16#0432最小脉冲周期过长。W#16#04FF作业号非法。系统功能块SFB49输入参数数据类型地址DB说明取值范围缺省值LADDRWORD0子模块的I/O地址,由用户在HW配置中指定。如果I和Q地址不相等,则必须指定二者中较低的一个。CPU专用W#16#300CHANNELINT2指定的通道号CPU312C:CPU313C:CPU314C:0到10到20到30SW_ENBOOL4.0软件门:控制脉冲输出TRUE/FALSEFALSEMAN_DOBOOL4.1手动输出控制使能TRUE/FALSEFALSESET_DOBOOL4.2控制输出TRUE/FALSEFALSEOUTP_VALINT6.0输出值设置输出格式为Permil时:0~1,000输出格式位为S7analogvalue时:0~27,6480~10000~276480JOB_REQBOOL8.0作业初始化控制端(上升沿有效)TRUE/FALSEFALSEJOB_IDWORD10作业号W#16#0=无功能作业W#16#1=写周期W#16#2=写延时时间W#16#4=写最小脉冲周期W#16#81=读周期W#16#82=读延时时间W#16#84=读最小脉冲周期W#16#0W#16#1W#16#2W#16#4W#16#81W#16#82W#16#84W#16#0JOB_VALDINT12写作业的值(设置值乘以时基为实际时间值)-231至+231-1L#0输出参数数据类型地址DB说明取值范围缺省值STS_ENBOOL16.0状态使能端TRUE/FALSEFALSESTS_STRTBOOL16.1硬件门的状态(开始输入)TRUE/FALSEFALSESTS_DOBOOL16.2输出状态TRUE/FALSEFALSEJOB_DONEBOOL16.3可以启动新作业TRUE/FALSETRUEJOB_ERRBOOL16.4故障作业RUE/FALSEFALSEJOB_STATWORD18作业错误号W#16#0000至W#16#FFFFW#16#0练习题:1、使用西门子PLC,在CPU313C模块的0通道通过软件门单独控制,产生周期为2S,占空比为1:4的高频脉冲,延时时间为1秒钟。2、在1题基础上,按下按钮SB5,1通道延时2秒产生周期为1秒的,占空比为1:1的高频脉冲。3、在1题基础上第一次按下按钮SB6,使0通道的高频脉冲周期切换为为1s,第二次按下切换为4s4、按下SB1启动步进电机,SB2停止,SB3正反转方向切换。