签到有奖
消息提醒
运维工程师专区
官方商城
点击复制链接
关注该帖后,有多人参加探讨会对您通知与提示!
帖子
精华
被关注
论坛等级:至圣
注册时间:2006-04-15
钻石 如何晋级?
发布于 2016-07-31 10:54:31
9楼
再问一下版主,这个方法以前也见过,
但他的原理是什么呢,为何执行 OR 2#16#2000 可以写入时基呢?
引用2楼详细内容:
楼主如果用IEC定时器TON 就没有这个烦恼了,在博途下,可以转变下编程思路。
S_ODT TV值可以进行赋值操作的,预置值肯定是可以改变的。
为什么S_ODT TV即可以是WORD或者是S5TIME 因为它们都占用16 bits空间,同时,WORD类型是非数字类型的数据类型。
S5TIME 是以BCD码格式来存储时间的。是以你只要对WORD 或者INT类型,进行相应的转换就行
比如,先用CONVERT转换成BCD码,然后写时基,比如 OR 2#16#2000 就是以1秒为时基(在使用S5time 时,时基是CPU自动分配的)
时基和S5TIME时间格式见下图
程序见如下
你的时间在MW300里设定(INT),先转换成BCD格式 存放在MW400(WORD),然后就是,保留 时间值 AND W#16#0FFF过程,最后写入时基w#16#2000,结果仍然存放在MW400(word),用它来当做TV值
见第一张图片啊!
请填写推广理由:
AI 小西智伴登场,7×24 小时权威支援,让技术支持告别等待!
助你技有所长,论有所获
首次发帖探讨工控技术话题 立获新人礼包,100中奖哦! (包含周边、书籍、兑奖西币)
共有10590条技术帖
恭喜,你发布的帖子
快扫描右侧二维码晒一晒吧!
再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!
分享
只看 楼主
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!