发布于 2022-11-04 01:43:14
8楼
看到你这问题,我又想给你做个封装块了,只是求2个时间点之间的时间段的块用的比较少,所以标准化的动力不是那么强。但是如果你用得比较多,可以标准化。以下是思路:
1. 计算起始时间点和结束时间点之间的秒数差值1(这里需要利用取余指令判断平闰年,说到这里,又可以做一个判断平闰年的标准块和一个计算2个时间点之间的秒数块);
2. 计算当前时间点(读plc的实时时钟)与起始时间点之间的秒数差值2;
3. 判断“0≤差值2≤差值1”成立时,输出位。
需要说明的是,分别比较 年月日时分秒 是不行的,因为存在结束 月日时分秒 小于起始 月日时分秒 的情况。
另外你看下西门子在2.6版本新出了个LGF块里面有没得计算2个时间点之间的秒数块,如果有的话,那就不用自己写了。