使用循环指令(LOOP)可以多次重复执行特定的程序段,由累加器1确定重复执行的次数,即以累加器1的低字为循环计数器。LOOP指令执行时,将累加器1字中的值减1,如果不为0,则返回到循环指令LOOP的标号处,继续循环过程,否则执行LOOP指令后面的指令。循环体是指循环标号和LOOP指令间的程序段。 由于循环次数不能是负数,程序应保证循环计数器中的数为正整数(数值范围:0~32767)或字型数据(数值范围:W#16#0000~W#16#FFFF)。存储区为I、Q、M、D、L。LOOP语句的流程如图所示。
图 LOOP语句的流程图 利用循环指令可以完成有规律的重复计算过程。 编程示例(求阶乘“8!”的程序)如下: LL#1 说明:将长整数常数(32位)装入累加器1 TMD20 将累加器1的内容传送到MD20(初始化) L 8 将循环次装入累加器1的低字中 NEXT:TMW10 循环开始,将累加器1低字的内容(循环变量值)送给循环计数器MW10 L MD20 取部分积 *D MD20×MW10 TMD20 存部分积,循环结束后MD20=8×7 ×6×5 ×4×3 ×2×1=40320 LMW10 取当前循环变量值→累加器1 LOOPNEXT 如果累加器1低字中的内容不为0,则转到NEXT继续循环执行并对 累加器1的低字减1循环结束,执行其他指令 |
在刚接触PID时候感觉很头疼,FB41功能块繁多的输入输出以及帮助里面非常专业的解释看得我眼冒金星,头昏眼花,真的是不知道如何入手,后来使用几次以后发现,原来只是填填变量的事(我们的PID就是简单的控制,还没有涉及切换、加泵以及减泵等复杂问题),正好*近有时间,就汇总了一下FB41的端子说明(基本来自大家技术论坛的分享),就当做个笔记吧。 1、FB41的方框图(FB41的端口作用逻辑图,看懂这个基本就都会了) |