恭喜,你发布的帖子
发布于 2017-05-27 13:44:40
19楼
200PLC纯碎编程恐怕难以实现。首先,正弦波的数值变化是规律性的,也就是每个数据变化的间隔时间一致,那我们程序上要做到这个特性,只能使用定时中断,也许也可以直接依靠监控主程序的扫描时间来换算。三菱PLC具有恒定周期扫描的功能,但是西门子似乎没有,所以每个扫描周期会有波动。假如使用中断,那么因为定时中断时基是MS级,所以20MS内能改变的数据数量有限,这样的数据用在正弦波上,想想都知道,波形失真是一定的。不使用中断的话,可以先把正弦波需要的数据集中在一个区域,比如,200个数据,VD0-VD199。然后,在主程序利用for循环调用,但是这里有个问题,for的每次循环所用时间,我们也不确定,得通过实际测试,根据for每运行一个次数,需要的时间,来确定我们得取多少个数值,才刚好能在20MS内取完。这看起来似乎还能尝试,但实际上我觉得可能也是不可行的,因为我们的输出是用模拟量,据我所知,模拟量的读取与写入,花费的时间并不是us级别,而是ms级别的,所以我觉得实际上也是难以真正实现。
观点不对之处,欢迎各位指出。
时间长了以后误差越来越大,还得加修正程序,估计模拟一下还行,实际使用可能会很头疼。
请填写推广理由:
分享
只看
楼主