找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 12463|回复: 0
打印 上一主题 下一主题
收起左侧

PLC里SCR和C语言switch程序分支的区别

[复制链接]
跳转到指定楼层
楼主
ID:51090 发表于 2014-9-16 23:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
   2014-03-22,又是一个不眠的夜晚,被这个PLC的SCR段差点折磨半死。习惯了C++语言的编程,就是这个下场。不过还是找到了其中的奥秘。我来举个例子:下面这段程序:按照C语言的理解,意思应该是当S0.0接通,S0.1断开的时候,Q0.0应该走第一个程序段(Q0.0=1),可是PLC不是这么理解的,即使S0.1=OFF,程序依次扫描,当程序扫描到S0.1的时候,母线为OFF,那么,Q0.0这个时候又变成了0,这不是我们期待的结果。PLC没有break这个语句,SCR语句只是告诉了系统,当前的母线已由S替代,直到发现SCRE才恢复正常的母线,即使S是OFF状态,程序依旧扫描。如果要实现这个功能,还需要配合JMP指令和LBL指令来跳转,或者使用RS指令,如图2.,当程序扫描到S0.0时,Q0.0的S指令有效,这时Q0.0就为1,当程序扫描到S0.1时,Q0.0的R指令无效,那么Q0.0依旧保持原样,即ON状态,如图3的C++例程,这就符合了我们的要求。当然,编程的方法有很多,SCR可以同时执行多个程序段,switch不行,各有千秋。习惯了就好,可能我还没有完全适应PLC,需要一个过程,适应它了就有它的优势。PLC程序比较听话,程序依次执行,直到发现SCRE为止才跳出程序,哪怕执行了SCRT,它依旧活着,直到下次扫描才关闭。
图1:                                                                                          

图2:


图3:




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表