- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.8 梯形图的编程规则 1、每个梯形图程序段都必须输出线圈或指令盒结束,比较指令框(相当于触点)、中线输出线圈和上升沿、下降沿线圈不能用于程序段结束。 2、指令框的使能输出端“ENO”可以和右边的指令框的使能输入端“EN”连接。 3、下面线圈要求布尔逻辑,即必须用触点电路控制它们,不能与左侧母线直接相连:输出线圈、置位(S)、复位(R):中线输出线圈和上升沿、下降沿线圈;计数器和定时器线圈;逻辑非跳转(JMPN);主控继电器接通(MCR);将RLO存入BR存储器(SAVE)和返回线圈(RET)。 4、下面的线圈不允许布尔逻辑,即必须与左侧的母线直接相连:主控继电器激活(MCRA);主控继电器关闭(MCRD)和打开数据块(OPN)。 5、其它线圈既可以用布尔逻辑操作也可以不用。 6、下列线圈不能用于并联输出;逻辑非跳转(JMPN)、跳转(JMP)、调用(CALL)和返回(RET)。 7、能流只能从左到右流动,不允许生成能流流向相反方向的分支。 8、不允许生成短路的分支。 3.5.5 累加器操作和地址寄存器指令 1. 累加器操作指令 表3.28 累加器操作指令 图3.51 TAK、PUSH、POP指令的执行结果 图3.52 CAW、CAD指令执行时累加器1的变化 下面的例子说明了在有条件触发的程序中INC指令是如何工作的。本例以存储字节MB10作为循环次数计数暂存器,用INC指令修正循环次数,循环体中的程序连续执行5次。 LOOP:L MB10 //循环体开始,装载存储字节至累加器1 INC 1 //循环计数器加1 T MB10 //保存循环次数 L B#16#5 =I JC LOOP //如果循环次数小于等于5次,则继续循环 L 1 //循环体外的操作,为下次循环做准备 T MB10 2.地址寄存器指令 表3.30 地址寄存器指令 在使用地址寄存器加指令时,应保证累加器l或指针常数的正确格式。下面的例子说 明了把累加器1的内容加至地址寄存器指令的用法。在加之前应先为累加器1装入一个指针常数。 L P#250.7 //装载指针常数(250.7)至累加器1 +ARl //把250.7加至地址寄存器1 +AR2 //把250.7加至地址寄存器2 3. 数据块指令 表3.31 数 据 块 指 令 使用以上指令必须先打开一个数据块,才能使用其他的数据块指令。下面的例子说明如何使用共享数据块装入指令。当数据块的长度大于50 B时,程序跳转到ERR标号处。ERR标号调用功能块FC 10做适当的处理。 OPEN DB40 //打开共享数据块DB 40 L DBLG //将共享数据块的长度装入累加器1 L +50 //将整数50装入累加器1,累加器1原内容移入累加器2 =I //比较 JC ERR //如果数据块长度大于50,则跳转至ERR标号处 A I0.0 BEU //无条件结束当前块 ERR:CALL FC10 //对于块长度大于50的情况,调用FC10做相应的处理 4. 显示和空操作指令 表3.32 显示和空操作指令 3.6 数据运算指令 3.6.1 算术运算指令 在STEP 7中可以对整数、长整数和实数进行加、减、乘、除算术运算。算术运算指令在累加器l和2中进行,累加器2中的值作为被减数或被除数。算术运算的结果保存在累加器l中,累加器1中原有的值被运算结果覆盖,累加器2中的值保持不变。CPU在进行算术运算时,不必考虑RLO,对RLO也不产生影响。然而算术运算指令对状态字的某些位将产生影响,这些位是CCl和CC0,OV,OS。可以用位操作指令或条件跳转指令对状态字中的标志位进行判断操作。 1. 整数算术运算 表3.33 整数算术运算 图3.53为整数加法方块指令应用编程举例。图中,IN1为被加数输入端,IN2为加数输入端,OUT为结果输出端。本例中,加数和被加数以及相加结果的数据类型均为整数(INT),它们可以存储在存储区I、Q、M、D、L中。如果EN的信号
文档评论(0)