首页 理论教育逻辑控制指令:完整解析

逻辑控制指令:完整解析

【摘要】:表3-14所示为逻辑控制指令的STL表达方式,很多逻辑控制指令在梯形图中不一定会有,这一点需要读者注意。逻辑控制跳转中,只能在同一逻辑块内跳转;同一个跳转目的地址只能出现一次;跳转或循环指令的操作数为地址标号,标号由最多4个字符组成,第一个字符必须是字母,其余的可以是字母或数字。表3-14 逻辑控制指令 IW8与MW12的异或结果如果为0,将M4.0复位,非0则将M4.0置位。

表3-14所示为逻辑控制指令的STL表达方式,很多逻辑控制指令在梯形图中不一定会有,这一点需要读者注意。逻辑控制跳转中,只能在同一逻辑块内跳转;同一个跳转目的地址只能出现一次;跳转或循环指令的操作数为地址标号,标号由最多4个字符组成,第一个字符必须是字母,其余的可以是字母或数字。

这里对LOOP特别说明如下:循环指令LOOP<jump label>用ACCU 1-L作循环计数器,每次执行LOOP指令时ACCU 1-L的值减1,若减1后ACCU 1-L非0,将跳转到<jump label>指定的标号处。

表3-14 逻辑控制指令

978-7-111-38359-8-Chapter03-34.jpg

【实例】 IW8与MW12的异或结果如果为0,将M4.0复位,非0则将M4.0置位。

L IW8 //IW8的内容装入累加器1的低字

L MW12 //累加器1的内容装入累加器2,MW12的内容装入累加器1

XOW //累加器1,2低字的内容逐位异或

JN NOZE //如果累加器1的内容非0,则跳转到标号NOZE处

R M4.0

JU NEXT

NOZE:AN M4.0

S M4.0

NEXT:NOP 0

【实例】 用循环指令求5!(5的阶乘)。

L L#1 //32位整数常数装入累加器1,置阶乘的初值

T MD20 //累加器1的内容传送到MD20,保存阶乘的初值

L 5 //循环次数装入累加器的低字中

BACK:T MW10 //累加器1低字的内容保存到循环计数器MW10

L MD20 //取阶乘值

*D //MD20与MW10的内容相乘

T MD20 //乘积送MD20

L MW10 //循环计数器内容装入累加器1

LOOP BACK //累加器1低字的内容减1,减1后非0,跳到标号BACK

……//循环结束后,恢复线性扫描