C语言跳转指令(让plc一个程序重复循环的命令分享)

正常情况下,程序的执行顺序是自上而下,逐条扫描执行的。STL指令集中有一类跳转指令,可以中断程序的这种线性执行流,跳转到指定的位置继续执行。

C语言跳转指令(让plc一个程序重复循环的命令分享)一、 跳转标签

跳转的”目标”地址由”标签”来指定,该标签称之为”跳转标签”。跳转标签最多4个字符,且第一个字符必须为字母。跳转标签后必须带有冒号”:” ,且在行中必须位于程序语句之前。

二、 跳转指令

跳转指令根据”跳转”的机理,首先可分为”无条件跳转”和”条件跳转”,除此之外,还有一个特殊的跳转指令,可实现分支跳转。

1、 无条件跳转指令JU

C语言跳转指令(让plc一个程序重复循环的命令分享)

程序在执行时,遇到JU指令,无条件的跳转到其”标签”所指示的代码行继续执行。跳转指令和跳转目标必须在同一个块内。

需要注意的是:理论上,JU指令允许向前跳,也允许向后跳。向后跳属于常规用法,一般没什么问题。但向前跳,容易形成死循环,因此,一般不建议使用JU命令向前跳。

2、 有条件跳转指令

顾名思义,与无条件跳转不同,有条件跳转指令中断原程序逻辑流,发生跳转是需要条件的,根据跳转条件的不同,它们又有不同的分类。

(1) 由RLO的状态决定是否跳转

C语言跳转指令(让plc一个程序重复循环的命令分享)

对于”JC”指令,当逻辑运算结果(RLO)为”1″时,”跳转”生效,中断当前的线性扫描,跳转到”跳转标签”所标识的行继续执行。同样,可以选择向前跳,也可以向后跳。

“JCN”指令与”JC”指令相反,当”RLO”为”1″的时候,”跳转”生效。

另外:当条件不满足,不执行跳转的时候,该指令会将RLO置”1″,然后继续执行下面的指令。

(2) 带BR位,由RLO状态决定是否跳转

C语言跳转指令(让plc一个程序重复循环的命令分享)

对于”JCB”指令,其与”JC”指令一样,当RLO为1时,”跳转”生效,中断当前的线性扫描,跳转到”跳转标签”所标识的指令行继续执行。而与”JC”指令不同的是,”JCB”指令会”额外”的做一项工作:将RLO的状态复制到BR(二进制结果位)中。

本文转载自:https://www.gylmap.com

同样,”JNB”指令,其触发跳转的条件为RLO=0,且也会将RLO状态复制到BR中。

(3) 由”状态寄存器”的”BR”位决定跳转与否

C语言跳转指令(让plc一个程序重复循环的命令分享)

(4) 由”状态寄存器”的”OV”、”OS”位决定跳转与否

C语言跳转指令(让plc一个程序重复循环的命令分享)

状态字的第4位和第5位分别为”溢出位OV”和”溢出状态保持位OS”。当算术运算或浮点数比较指令执行时出现错误(如溢出、非法操作和不规范的格式等)时,OV位会被置1,同时OS位也被置1。而如果后面同类指令执行结果正确,则OV位会被清0,但OS位仍然保持为1。只有JOS指令、块调用指令和块结束指令才能复位OS位。

一般用于检查算术运算指令结果是否有溢出,若有溢出,可用JO、JOS指令进行跳转,以做相应的错误处理。

(5) 由条件码1(CC1)和条件码0(CC0)决定是否跳转

状态字的第7位(CC1)和第6位(CC0)分别为条件码1和条件码0。这两位综合起来用于表示在累加器1(ACCU1)中产生的算术运算或逻辑运算的结果与”0″的大小关系、比较指令的执行结果或移位指令的移出位的结果。

CC1和CC0的状态与”算术运算”的结果的关系如下:

C语言跳转指令(让plc一个程序重复循环的命令分享)

在”跳转指令”中,有一类指令根据算术运算的结果来决定逻辑流是否跳转,本质上,是在执行完算术运算后,根据CC1和CC0的不同状态,来决定相应的跳转指令是否具备跳转条件,如下表所示:

C语言跳转指令(让plc一个程序重复循环的命令分享)3、 分支跳转指令JL

在语句表的指令集中,还有一条特殊的跳转指令,它能够实现向多路分支跳转的功能,它就是分支跳转指令JL,其执行流程如下图所示。

C语言跳转指令(让plc一个程序重复循环的命令分享)

JL指令根据累加器1(ACCU1)的低字节中的数值大小来决定程序”沿着”哪一条分支执行。由于一个字节的数值范围为0~255,因此,JL指令最多可管理多达256条分支的程序。

JL指令一般要与无条件跳转指令JU配合使用,其指令的格式如下:

秒鲨号所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈!本站将在三个工作日内改正。
(0)

大家都在看

  • 低烧怎么处理(16岁低烧怎么处理)

    发烧对人体健康损害很大,人体在出现发烧后,一定要及时的治疗,否则对脑部和肺部的影响是很大的,发烧会引发很多疾病出现,这样对疾病治疗的时候,也是变得很复杂,很多人在对持续低烧怎么办上…

    2022年4月20日 专栏投稿
  • 国产suv销量排行榜(2021年国产suv销量排行榜前十名)

    这几年SUV车型深受大家的喜欢与关注,近日乘联会公布了2021年SUV销量排行榜。不难发现,国货品牌的SUV汽车排名非常靠前。哈弗、长安、比亚迪、吉利均已上榜,可谓是占据了排行榜的…

    2022年6月5日 专栏投稿
  • 自己在家如何赚钱,适合在家赚钱的十种方法

    最近表妹在微信上跟我吐槽:“工作遥遥无期,每天在家又闲得发慌,真是好烦啊!” 我说:“表妹啊,虽然你在家很闲,老板给你开工资,但是公司可不是慈善机构,不可能一直给你开工资,万一哪天…

    2022年5月20日 专栏投稿
  • 怎么打开罐头(开玻璃水果罐头的技巧)

    哈喽,大家好这里是生活小叮铛。罐头是很多人都喜欢吃的,但开罐头瓶却很费劲。今天叮铛在这里简单的教大家几招,轻松就能打开罐头瓶的方法,赶紧跟着我一起来看一下吧。 方法一:浸泡法 我们…

    2022年4月27日 专栏投稿
  • 鲈鱼怎么做(煎鲈鱼怎么做好吃)

    鲈鱼不炖也不蒸,加入柠檬简单煎一煎,香酥可口,家人都爱吃 鲈鱼是四大名鱼之一,含有丰富的蛋白质、脂肪、碳水化合物等营养成分,还含有维生素B2、烟酸和微量的维生素B1、磷、铁等物质。…

    2022年4月22日 专栏投稿
  • 85度咖啡加盟(85度c烘焙店加盟)

    85度C2004年创建于台湾。2010年,85度C就在台湾开了370家店.它进入上海18个月就开了91家店.当它开到91家店的时候,就接受了味千拉面2亿台币的投资,占股2%,同时也…

    2022年7月2日
  • 泡面怎么煮(方便面的步骤)

    煮泡面,很多人第一步就错了,难怪不香不好喝,大厨:这样做才对。亲爱的好朋友们,大家好,我是大厨江一舟,今天又到了,给大家分享美食的时刻了,你们准备好了吗? 煮泡面,可以说是咱们每个…

    2022年5月8日 专栏投稿
  • 个人社保缴纳比例是多少(每年交7000社保15年领多少钱)

    21世纪以来,随着新生婴儿的减少,我国老年人数占比不断增加,至2019年年末,60岁以上老人占比达到17.9%,就目前的情况来看,接下来这一比例还将继续呈现出增加态势,中国社会的老…

    2022年5月22日 专栏投稿
  • 5s价格多少(gh5s)

    CES 2018正在如火如荼的进行当中,而松下在展会期间也为我们带来了无反相机GH5的升级款 GH5s。虽然GH5s在命名上只是多了个“s”,但它相比于GH5而言却更像是一台重做的…

    2022年6月2日
  • 怎么画牡丹(牡丹简笔画简单又好看)

    牡丹白描画法教程 牡丹的结构 花头的结构 牡丹的花头是复瓣花,呈球状。盛开的牡丹花头花形丰满,外观大致为圆形。 花瓣的不同姿态 牡丹的花瓣轻薄而飘逸,所以画花瓣的线条要灵巧,曲折处…

    2022年4月28日 专栏投稿
品牌推广 在线咨询
返回顶部