除了使用PWM向导,S7-200 SMART还支持使用PLS指令输出PWM脉冲信号。
在STEP 7 Micro-WIN/SMART的【指令】—【计数器】中可以找到PLS指令,如下图所示:
PLS指令初始添加到程序块中的状态如下图所示:
该指令共有两个输入参数:EN和N,其中:
EN:布尔型变量,PWM脉冲输出使能,使用沿信号触发;
N:字型常量,表示输出PWM信号的通道编号,包括三种:0、1或2。其中:0=Q0.0,1=Q0.1,2=Q0.3;
需要注意的是:只有标准型CPU模块才支持高速脉冲信号输出。其中,CPU ST20支持两路脉冲输出信号,分别是Q0.0和Q0.1;CPU ST30/ST40/ST60支持三路脉冲信号,分别是Q0.0、Q0.1和Q0.3;
说明:
当使用PLS指令激活PWM脉冲发生器后,相应的输出通道(比如Q0.0)被脉冲发生器接管,不受程序中其它数字量输出指令的控制;当脉冲发生器取消激活后,输出通道受普通指令输出的控制;
如果程序中已经组态了PWM向导,则以向导的组态为准;
不建议使用继电器输出型CPU(SR20/SR30/SR40/SR60)输出PWM脉冲信号;
PLS指令既可以控制输出PWM信号,也可以控制输出PTO信号,取决于特殊存储器的配置(具体见下文);
由于PLS指令本身仅可以设置输出通道的编号,因此其它参数(比如周期时间、脉冲宽度时间等)必须通过特殊存储器字节/字来设置。这些特殊存储器字节/字是PTO和PWM脉冲信号共用的,由于本课程介绍的PWM脉冲,所以下面我们用PWM信号来描述。关于PTO脉冲的特殊存储器字节/字可以看专栏《S7-200 SMART运动控制之步进电机》。
与PWM相关的特殊存储器字节可以分为两类:一类是用于控制PWM信号的,称为控制字节;另一类是用来表示PWM状态的,称为状态字节;
状态字节包括三个:SMB66、SMB76和SMB566。其中,SMB66是PWM0(Q0.0)的状态字节;SMB76是PWM1(Q0.1)的状态字节;SMB566是PWM2(Q0.3)的状态字节;
控制字节包括三个:SMB67、SMB77和SMB567。其中,SMB67是PWM0(Q0.0)的控制字节;SMB77是PWM1(Q0.1)的控制字节;SMB567是PWM2(Q0.3)的控制字节;如下图所示:
控制字节总共有8个位,每个位的含义如下:
第0位:PTO/PWM是否更新频率/周期时间。0=不更新;1=更新;
第1位:PWM更新脉冲宽度时间。0=不更新;1=更新;
第2位:PTO更新脉冲计数值。0=不更新;1=更新;
第3位:PWM时间基准。0=us(微秒);1=ms(毫秒);
第4位:保留;
第5位:PTO设置单段或多段操作。0=单段;1=多段;
第6位:PTO/PWM模式选择。0=PWM;1=PTO;
第7位:PTO/PWM使能。0=禁用;1=启用;
以PWM0为例,如果将其设置为时间基准为微秒、更新脉冲宽度、不更新周期时间,则设置SMB67的值为:16#82;如果将其设置为时间基准为毫秒、更新脉冲宽度、更新周期时间,则设置SMB67的值为:16#8B;
下面这张表列出了控制字节的值(16进制)与PWM的时基、更新脉冲宽度、周期时间的对应关系:
除了设置控制字节,我们还需要设置PWM的脉冲宽度及周期时间。这些设置请看下面的表格:
PWM周期时间的取值范围为2~65535,脉冲宽度的取值范围是:0~65535,单位取决于控制字节中设置的时基;
举个例子:假设要使用PWM0输出时间基准为us的PWM信号,周期为1000,脉冲宽度为200,周期不更新,脉冲宽度更新,则设置:
SMB67=16#82;
SMW68=1000;
SMW70=200;
程序代码如下图所示:
怎样停止PWM信号发送呢?
可以将0写入到控制字节的第7位,比如使PWM0的控制字节SMB67.7为0,然后再执行PLS指令即可。见下面的代码:
PWM1和PWM2的控制于此类似,不在赘述。
好了,关于S7-200 SMART的PLS指令及其特殊存储器字节/字的设置就先介绍到这里。我的新书《西门子S7-200 SMART PLC应用技术——编程、通信、装调、案例》已经出版了,点击下面的图片查看详细介绍。
发表评论