找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
小程序查看
手机扫码追踪该问题
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
实现精确的 1 分钟定时中断,可以用以下方法
A、
建议用 10、11中断事件:
1、主程序的初始化部分初始化一个计数字节VW0
2、可以设置中断时间间隔为 250ms,分别在SMB34、SMB35中设置;
相应中断程序中的处理方法:
3、在相应的中断程序中用字节加指令 INC_W,对VW0进行加 1 操作;
4、当VW0=60秒*4时 =240时执行你想做的处理逻辑;处理逻辑完成后,将VW0计数值恢复为 0;
B、
21、22中断事件使用了分辨率为 1ms 的定时器T32、T96,1ms分辨率的定时器,定时器位和当前值的更新不与扫描周期同步。对于大于1ms的程序扫描周期,在一个扫描周期内,定时器位和当前值刷新多次。 这样中断程序在处理时可能会造成得不到精确的 1 秒时间间隔,所以不建议使用这种方式。
参考资料:
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/programming/Timer.html
以及 S7-200 SMART V2.3系统手册
https://support.industry.siemens.com/cs/document/109745610
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
找答案微信小程序
提问
搜索
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!