回复:plc的瞬时时间如何获得?

emil128

  • 帖子

    271
  • 精华

    10
  • 被关注

    21

论坛等级:侠圣

注册时间:2011-05-16

普通 普通 如何晋级?

发布于 2013-08-23 17:39:36

10楼

记得楼主说过自己不是学计算机,而是学自动化出身,但我怎么看楼主的思路都是高级语言的思路。
先说说时间戳,楼主对时间戳的描述看的我云里雾里。
“所谓时间戳就是每隔一段时间就打一个戳的意思”,“就是用上升沿来触发获得”两句话怎么看都是矛盾的。
没有上升沿触发就不打的话,那怎么会每隔一段时间就打一个戳?
时间戳其实就一个时刻值,记录了事件发生的时刻。从这个意义上来说,OB1每次被调用时都会首先更新自己堆栈区中的时刻,这个时刻可就是OB1被调用这个事件的时间戳。

“而CPU的系统时间只能表示它当前工作时的流水时间,我们只能看到某一瞬间的时间,但那只代表CPU当前运行程序的某个时间段,并看不出来程序运行在什么地方了,用了多长时间,或者执行到哪里了的当前时间”
流水时间=一瞬间的时间=时间段<>当前时间?我都看糊涂了
CPU的系统时间不就是一个时钟吗?你什么时候用SFC1去读它,得到的不就是当前时间吗?

回过来说说楼主的需求吧,看主楼的描述,楼主就是要记录电机启动和停止的时刻。
我个人赞同n侠的办法,读OB1的时间就可以了,最大误差不过一个扫描周期。一般300/400的PLC一个周期最多就几十个毫秒,这个精度用在一般电机上已经很高了。
话说楼主电机启动停止信号怎么得到的?是操作还是反馈?如果是反馈等到接触器动作,辅助触点闭合,到PLC硬件接收(如果带滤波),最后程序读到信号变化,可能2-3个扫描周期都过去了。

P.S.
怎么判断电机状态变化,直接用信号变化来记时间不是也挺好的吗?
不过照楼主的思路也是可以实现,还是多试试,会成功的。
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。