发布于 2011-04-23 10:11:50
10楼
当然能实现了,这个问题应该不难吧,关键是你的思路问题!我以前就做过类似设备的控制!你可以参考一下我的编程思路:
第一步:建立一个脉冲发生器,脉冲发生器的高电平宽度和低电平宽度可调!(建议:可以用和定时器相互触发产生脉冲发生器,作为脉冲源的高电平,作为脉冲源的低电平,改变两个定时器的PT值,脉冲源的高电平和低电平的宽度到你想要的值。可以让这个脉冲源始终在工作。)
第二步:当启动条件不满足时,跳转到这个子程序的Q点的输出位址(jump to output)。
第三步:当启动条件满足时,将这个启动条件与上脉冲源高电平上升沿并计数Cx;如果你有n个电磁阀,那么当Cx=n时,把计数值清零。(电磁阀循环、复归功能)
第四步:判断Cx的值,建立输出指针位。(比如当Cx=1指向1#电磁阀的输出地址[point(y.z)])
第五步:建立输出,将启动条件与上脉冲源高电平与上指针位并赋值到Q[point(y.z)]。
注:脉冲发生器高电平宽度就是电磁阀得电时间,低电平宽度就是电磁阀间隔时间。如果要编写成一个通用的模块,实现在程序中n次调用,脉冲发生器就不能用内部定时器了,因为200的内部定时器不具备全局形参功能,那么脉冲发生器的定时器就只能自己编写了。
佛对我说:“你的痛苦来自于你的欲望,没有欲望也就没有痛苦!”