恭喜,你发布的帖子
发布于 2020-11-04 08:39:08
3楼
我下面解释简称B和C指令。
自plc通电,内里有个什么计时器就开始不知道从什么值开始每一毫秒增加1。
然后通过执行B把当前值登记到VD里面。这个VD里面最大值就是42亿多少这个值,就是49.7天。
并不必要B和C成对使用。
再次执行另一个B登记到VD,你就可以得知和刚才那个VD相差多少毫秒。通常这种用途,第二次的B不需要用B而是用C指令。C指令包办了时差的计算,直接得到一个时差数值。
这就是这两个指令的功能。一个是获取当前毫秒数,一个是计算两者之间的时差。
你担心的过最大值。我本人是没有亲眼看见过。但是如果你用C指令计算两个时差,我想设计指令的那个人应该充分考虑了这个问题。就算过零后与过零前的时差,也能够给出一个正确的时差给你。要是你信不过,你也可以用B指令开始,B指令结束,然后手工编程计算两个B之间的时差。
虽然我不能亲眼看见过零时候的情景,但是,侧面,一些32位的计算里面,一个正的很小值(例如20)减去一个正的很大值(例如42亿),期结果是一个……正的较小值。就好像时钟0点10分减23点50分等于20分一样。减法指令可以处理好这个过零事件。
所以我并不担心过零的问题。
请填写推广理由:
分享
只看
楼主