如图程序就只有一行程序,用SM0.1去让BGN_ITIME获取内置1ms计数器的值,但是读出的时间是28103,也就是说内部1ms的计数器已经运行了28秒多了,可是SM0.1就只接通了一个扫描周期,一个扫描周期这么一行程序,扫描时间也就是1ms,所以请问专家们这个VD0中的值是从什么时候就开始计数的?
是从我程序下载进去就开始计数的么?有没有更多的资料可以查询?谢谢!
问题补充:
为何我的问题没有显示我上传的图片?我程序就一行:
LD SM0.1
BITIM VD0
我下载下去运行后,就接通了一个扫描周期VD0的值就是28103。程序下载前我清空了内存的,VD0中不会有向前的值存在!
图片说明:
最佳答案
这是一个……可以假想成一条世界时间轴。时间轴没有0位。所以你无从考究你执行时时间轴在哪里开始。BTIME给你一个时间轴上的现的点的坐标。Ctime给你一个相对于某起点的经历时间长度。
大概就是这个意思。
你用0.1执行了一下BTIME,只说明plc大概在这条时间轴上28103这个位置启动开始运行程序。没什么意思了。这个28103单方面也不具体有任何意义。
提问者对于答案的评价:
您理解到我究竟要问什么了,所以选您为最佳答案。但是,我试验了很多次,甚至调试模式我也试验了,每次这个都是几十秒,所以1ms的内置计数器必然是在某一个时刻开始工作的,西门子不可能那么随意的,我先清除了程序块数据块这些,然后程序下载下去后,我感觉好像程序块或者数据块中有内容了,这个1ms计数器就开始从0开始+1+1的工作了样,当然,只是试验的感觉!
最佳答案作者回复:
虽然第0毫秒,对于plc来说,对处理器来说都是可追索的。但是对于用户来说,完全是不必的。就像你出生那天,地球已经过了几天了?知道不知道也好也对你的长大没有影响。
尽管你觉得好像都像是28103开始,和从00000开始,意义都是一样的。
你要的是增量,而不是绝对值。
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc363338.html