PLC论坛-全力打造可编程控制器专业技术论坛

 找回密码
 注册哦

QQ登录

只需一步,快速开始

微信扫码登录

查看: 42836|回复: 0

[西门子] S7-200 SMART PLS指令应用-PWM

[复制链接]
发表于 2024-8-30 16:04:58 | 显示全部楼层 |阅读模式
本文是付费专栏《S7-200 SMART的PWM功能应用》的第三节,可免费阅读。

该专栏包括如下6节课程:

    PWM功能及应用介绍;

    S7-200 SMART的PWM资源及向导介绍;

    S7-200 SMART PLS指令应用-PWM(本节);

    实践1-使用PWM向导控制LED灯的亮度(付费,文章+视频);

    实践2-使用PWM向导实现电机的调速(付费,文章+视频);

    实践3-使用PLS指令控制电机的转速(付费,文章+视频);

点击上方话题#S7-200 SMART脉宽调制#可以查看专栏的全部内容。

本节我们介绍在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应用技术——编程、通信、装调、案例》也有PWM的相关介绍,点击下面的链接查看详细内容:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册哦

本版积分规则

QQ|小黑屋|手机版|Archiver|PLC技术网-PLC论坛 ( 粤ICP备17165530号 )|网站地图

GMT+8, 2024-9-17 04:00 , Processed in 0.045059 second(s), 26 queries .

快速回复 返回顶部 返回列表