用%ignore_a_1%统计多台电机运行时间后,启动时怎么判断用时最短的先输出,停止时怎么判断运行最长的先关闭的逻辑程序?有6台电机。
最佳答案
1、用一块连接的区域,比如 VD0-VD20 这 6 个双字来存储每台电机的运行时间;其中 VD0 是1号电机的运行时间,VD4 是 2 号电机的运行时间,依次类推,VD20 就是 6 号电机的运行时间。这一数据结构先定下来。再考虑程序。投入正式运行前,这地块区域清 0。你也可以考虑在其它适当时机清 0。
2、当启动条件触发时:
A)
先给一个中间变量 比如 VD24 赋值比电机运行最大值还大的一个值,这个值你可以估计一下到底多大合适,比如电大运行时间不可能达到10000,那10000就赋值给 VD24;
B)
定义一个循环变量,比如 VW28;
初始化一个指针变量,比如 VD30,让它指向 VB0 的地址,可以用 MOVD &VB0,VD30;(这要用到间接寻址的概念)
下面不好用文字表述了,还是附图吧,如图,是LAD程序,只做当增泵信号来时怎样按最小运行时间增泵,没有做计时部分,触发增泵的逻辑条件,那部分按工艺要求去做吧。
另外减泵的思路和增泵是一样的。
图片说明:
提问者对于答案的评价:
感谢师傅的精心讲解,计时部分已经做好了,但是增泵部分还是没太搞懂,我这也刚开始接触麻烦再给指点下,十分感谢!
最佳答案作者回复:
把程序下载到 CPU ,做一次在线,理解了增泵,做减泵也就容易了。程序中用到了间接寻址,就是指针,用系统手册去了解一下。
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc361439.html