找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
1)关于200smart 扫描周期用户是无法准确设置这个周期时间的,原因是程序由于结构、调用情况的不同会在每一个周期中稍有差异,周期只能监视。这不同于第三方plc有恒扫描周期这个概念。
2)看了你的描述,实际上你想使用的是定时中断,所谓定时中断就是初始化定时中断参数后,系统会按你设置的时间间隔,恒定的扫描及程序的执行。假设,定时中断时间为50mS,则cpu每到达50mS周期时间,执行一次你指定连接的中断程序一次。
200smart 和200一样具备2个定时中断,定时中断周期时间1-255mS,定时中断设置时间值:SMB34/SMB35,所连接的中断事件号为SMB34对应中断事件号10、SMB35对应的中断事件号11.
定时中断案例,假设需要定时中断时间间隔为1S
主程序初始化定时中断:
LD SM0.1
MOVB 100, SMB34 //设置定时中断SMB=100mS
ATCH INT_0:INT0, 10 //连接中断子程序,中断事件号10
ENI //开中断
中断子程序:
LD SM0.0
INCB VB0 //因为定时中断一次时间间隔不足1000mS=1S,所以需要中断累加
LDB>= VB0, 10 //当中断时间累加到10次(1S)时
= M0.0 //执行需要的程序,我这里是用一个标志位替代
MOVB 0, VB0 //同时,清除中断次数,以便下一个1S再重复执行
中断程序的调用大致就是这样的,如时间上的不同,可以通过SMB34或者中断累加次数方式折算到你需要的时间。
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
找答案微信小程序
提问
搜索
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!