S7-1200 PWM 功能组态及编程方法,本文档以DC/DC/DC类型的S7-1200 CPU为例进行说明。在Portal 软件中插入S7-1200 CPU,在“设备视图”中配置PWM。
硬件:
① S7-1200 CPU
② PC
③ TP电缆。对于组态为“自动更新”的I/O,CPU将在每个扫描周期自动处理模块和过程映像之间的数据交换。
如果将I/O分配给过程映像分区PIP1~PIP4中的其中一个,但未将OB分配给该分区,那么CPU决不会将I/O更新至过程映像,也不会通过过程映像更新I/O。将I/O分配给未分配相应OB的PIP,相当于将过程映像指定为“无”。在设备组态中将 I/O 分配给过程映像分区,并在创建中断 OB 或是编辑 OB 属性时将过程映像分区分配给中断事件。
用户可以在指令执行时立即读取物理输入值和立即写入物理输出值。无论 I/O点是否被组态为存储到过程映像中,立即读取功能都将访问物理输入的当前状态而不更新过程映像输入区。立即写入物理输出功能将同时更新过程映像输出区和物理输出点。如果想要程序不使用过程映像,直接从物理点立即访问 I/O 数据,则在 I/O地址后加后缀":P"。
根据上面的说明,本例中用户可以直接选择“自动更新”。由于PWM的I/O地址是Q,因此用户可以使用QWx/QDx,也可以直接更新外设地址QWx:P/QDx:P。
软件编程,1. 在Portal软件中打开程序块,进行PWM的编程。在指令选件中的“扩展指令”中的“脉冲”文件夹中可以找到CTRL_PWM指令。可以通过双击指令或是拖拽的方式把CTRL_PWM指令放到程序编辑区。如下图2.1所示>
图2.1 调用CTRL_PWM指令,2. 在插入CTRL_PWM指令时会提示关联背景数据块,如下图2.2所示,该数据块的名称和编号可以由用户手动设置,也可以选择系统默认值。
图2.2 CTRL_PWM指令关联背景数据块,3. 配置CTRL_PWM指令参数。
图2.3 CTRL_PWM指令管脚配置,①PWM:脉冲发生器的硬件ID号,就是“硬件标识符”,在上面的例子中硬件标识符为265。硬件标识符的选择,如下图2.4所示。
②ENABLE:PWM脉冲的使能端,为TURE时CPU发PWM脉冲,为False时,不发脉冲。
③BUSY:标识CPU是否正在发PWM脉冲。
④STATUS:PWM指令的状态值,当STATUS=0时表示无错误,STATUS非0时表示PWM指令错误,具体的错误值查看帮助或是系统手册。
图2.4 选择CTRL_PWM指令硬件标识符,4. 监控程序,并在线修改PWM的脉冲宽度和循环周期。如下图2.5所示,用M0.0使能CTRL_PWM指令。
图2.5 使能CTRL_PWM指令,实时修改PWM的脉冲宽度:需要修改QWx的数值,“x”就是用户配置PWM硬件组态时的“I/O地址--输出地址”。
实时修改PWM的循环周期:首先硬件组态内选中"允许在运行时修改循环时间"复选框,然后修改QD的数值。
例如,启用该选项后,CPU 会为 PWM1 分配六个字节,并由您确定使用 QB1008 到 QB1013。下载程序并启动 PWM 后,可以使用 QW1008 修改"脉冲持续时间",以及使用 QD1010 修改"循环时间"。
如下图2.6所示,① 在Portal软件左侧项目树中的“监控与强制表”中插入一个新的监控表,②在打开的空白监控表中的“地址”列手动输入QW1008和QD1010,如然后在“显示格式”一列选择“带符号十进制”,如下图步骤③所示。点击监控按钮,如图中④ 所示,可以看到QW1008的监控值为50和QD1010的监控值为100,该值分别是组态PWM时设置的初始脉冲宽度值和循环时间值。
图2.6 监控PWM的脉冲宽度和循环时间,用户可以在监控表中直接修改QW1008和QD1010的数值,来实时更改PWM的脉冲宽度和PWM的循环周期,如下图2.7所示。
图2.7 实时修改PWM的脉冲宽度和循环时间,用户可以根据需要进行测试实验。
常见问题,问题1:如何更改PWM的脉冲宽度?
答:通过设置PWM的I/O地址。以上面的组态为例子,通过修改QW1008的数值来实时修改PWM的脉冲宽度。
问题2:如何修改PWM的循环周期?
答:首先硬件组态内选中"允许在运行时修改循环时间"复选框,然后修改对应I/Q地址内的QD的数值。以上面的组态为例子,通过修改QD1010的数值来实时修改PWM的循环周期。
问题3:PWM脉冲输出的最小持续时间?
答:当您设置 PWM 信号的脉宽时,如果时基为"毫秒",实际脉宽必须大于或等于 1 毫秒。如果时基为"微秒",实际脉宽必须大于或等于 1 微秒。如果脉宽小于 1 倍"时基",输出将关断。
例如,周期时间为 10 微秒时,百分之 5 的脉冲持续时间可得到 0.5 微秒的脉宽。因为该值小于 1 微秒,PWM 信号关闭。