未调用PWM指令的一种应用
今天下午,在S7-1200版区,看到我之前发帖的网友回复,网友告诉我类似PWM脉冲转换电压板的商家,据说可以在所有晶体管输出的DO模块上实现PWM转换电压的功能。我想既然我有硬件条件,何不再测试一番呢。
我们知道,S7-1200的高速脉冲输出的资源是有限的,图示:
我测试的S7-1214C可以调用4路PWM高速脉冲输出,其它的所有S7-1200系列均可以调用4路是PWM脉冲输出。
针对于网友的回复,我大概思考了一个测试方向。就是在测试项目中,调用循环定时中断,如OB30,设置循环定时中断的时间周期为1mS,脉冲的宽度暂时定在100mS,这样做的目的就是想让每以路脉冲占空比的输出在0 ~ 100%之间任意调整。
普通数字量输出方式的脉冲输出测试:
1)创建一个循环定时中断,设置中断时间为1mS,图示:
2)在OB30中编辑我需要的测试程序:
3)哦,对了。由于我忘了带万用表来判断PWM转换电压的输出值,也正好S7-1214C本机集成有2路模拟量电压输入,正好拿来使用,于是,又组态了模拟量通道0:
创建了一个测试需要的数据块DB1:
4)连接所有外部线路,上电后,编译保存项目,将硬件及程序下载到S7-1214C的cpu中:
先测试占空比50%试试:以下所有的测试数据没有经过转换板电位器的修调,目的只是看普通晶体管输出通过PWM转换电压的效果。
数据在4.0 ~ 5.2V之间来回跳动,不是很稳定。
5)返回设备视图的cpu属性的硬件组态,修改模拟量输入通道的滤波常数试试:
设置到最强的选项载测试:
数据明显的稳定了,在5.0 ~ 5.1V之间变化。
6)再将占空比设置到10%试试结果如何:
能够满足测试,再试试控制精度,将占空比数据设置到15%,看结果:
MD14在1 ~ 2之间变化,这一个是我的转换程序的精度问题了,重新修改SCALE_X的MAX管脚为100.0,(实际上看NORM_X指令也能够看到输出1.59V左右的数据值):
比例缩放MAX放大到100.0后,出现了想要的模拟1.5V的显示。我试着将占空比试着为1%,同样能够输出0.1V左右的电压。
测试完成,普通的数字量晶体管输出,通过用户自己定义的脉宽PWM调制,调制出一个脉冲串来转换为电压的功能,这样能够实现,这将对plc模拟量输出的数量限制变的模糊起来了。上述测试结果纯粹是个人喜好,就是闹着玩似的,所测试的结果也具有一定的局限性。