签到有奖
消息提醒
运维工程师专区
官方商城
扫码分享好友 任选多种周边
关于200smart定时中断的应用案例
昨天有一个网友提问,说需要做一个无关于plc扫描周期做脉冲输出的程序,脉冲周期为0.1S,提问链接【西门子200smart产生不受扫描周期影响的0.1S脉冲】:
http://www.ad.siemens.com.cn/service/answer/tobe_solution.aspx?Q_ID=186987&cid=1076经过几次交流,估计还没有完全说明这个问题,于是我萌生了想写一写关于200smart 定时中断的应用的念头。
首先该网友需要编辑一个与plc扫描周期无关的输出,我这里理解为几个方面:
1) 与周期无关的程序一般采用中断,又结合是脉冲方式输出,所以定时中断比较合适。西门子200或者200smart 具体定时中断功能的有4个,其中2个是PT端子直接赋值(T32/T96),输入数据范围0~32767*时基,刷新的同步方式即相当于中断方式,系统自动连接到中断事件21# /22#;另外2个中断时间是在特殊标志字节SMB34/SMB35中设置,中断事件连接到10# /11#。
2) 因为是脉冲方式输出,我这里理解为方波占空比50%,因为要求这个脉冲周期为0.1S,那么,相当于50mS的占空比输出。
3) 综合上述要求,是与扫描周期无关的,所以需要立即输出方式
编程思路:
1) 定义定时中断,中断事件号10#,即SMB34中设置为50(mS)
2) 在主程序OB1中调用定时中断初始化子程序
3) 在定时中断子程序中编辑一个取反指令,因为该网友要求仅仅是一个输出,而指令最小单位是字节,所以,在取反指令下面,紧接着应该复位不使用的位逻辑结果。这里调用M区的MB0,当然这个地址区没有规定,用户自由选择其它地址也可以
4) 最后将结果用(I)指令隐射到物理输出地址Q0.0中
程序:完全按个人习惯编写
1) 定时中断初始化,图示:
2) 在主程序OB1中调用定时中断初始化子程序,图示:
3) 在子程序上编辑脉冲输出程序,图示:
4) 将程序编译保存后下载到cpu,打开状态图表,监控程序运行结果
在plc上测试结果能够满足需要,完成。
希望那位网友能够看到这个,如有疑问继续交流。
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1469009&b_id=64&s_id=0&num=3
上午,看到另外一位热心网友有跳转指令在中断子程序中编辑脉冲输出,原理是一致的。
条件判断,执行输出,这个在编程中也经常要使用到。
王工对技术一丝不苟实事求是精神值得学习,实践是检验真理的唯一标准啊。亲自动手啊,点赞。
非常感谢,真是用心了。希望论坛能把,找答案里的没有解答清楚的问题多拿到论坛来供大家讨论
分享
扫码分享好友 任选多种好礼
收藏
有帮助
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!
密码至少8位,包含大、小写字母,数字和符号至少三种。
允许邮箱和手机接收来自支持中心网站的信息
我已同意《支持中心网站注册协议和隐私政策》
微信登录扫码一键登录
验证码登录
密码登录
二维码失效点击重试
打开微信扫一扫,快速登录/注册
未注册手机验证后自动登录,注册即代表同意《支持中心网站注册协议和隐私政策》
三日内免验证登录
短信登录
登录