- 1、本文档共51页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
THANK YOU SUCCESS * * 可编辑 2.逻辑运算指令 字节、字、双字“与”运算时,如果两个操作数的同一位均为1,运算结果的对应位为1,否则为0。“或”运算时如果两个操作数的同一位均为0,运算结果的对应位为0,否则为1。“异或”(Exclusive Or)运算时如果两个操作数的同一位不同,运算结果的对应位为1,否则为0。 3.逻辑运算指令应用举例 用字节逻辑“或”运算将QB0的第2~4位置为1,其余各位保持不变。 QB0的某一位与1作“或”运算,运算结果为1,与0作“或”运算,运算结果不变。16#1C的第2~4位为1。 IW2的低12位用来读取3位拨码开关的BCD码,IW2的高4位另作他用。 16#0FFF的最高4位二进制数为0,低12位为1。与IW2作“与”运算后, VW2的低12位与IW2的低12位的值相同,VW2的高4位为0。 4.4 程序控制指令 4.4.1 跳转指令 1.跳转与标号指令 JMP线圈通电时,跳转条件满足,跳转指令使程序流程跳转到对应的标号处。JMP与LBL指令的操作数n为常数0~255,只能在同一个程序块中跳转。 I0.4的常开触点断开时,跳转条件不满足,顺序执行下面的网络。 I0.4的常开触点接通时,跳转到标号LBL 0处,不执行第二个网络。 2.跳转指令对定时器的影响 在各定时器正在定时时跳转,100ms定时器停止定时,当前值保持不变。10ms和1ms定时器继续定时,定时时间到时跳转区外的触点也会动作。停止跳转时100ms定时器继续定时。 3.跳转对功能指令的影响 未跳转时INC_B指令使VB0每秒加1。跳转条件满足时VB0的值保持不变。 图4-27 跳转与定时器 【例4-6】 用跳转指令实现图4-28中的流程图的要求。 4.4.2 循环指令 1.单重循环 驱动FOR指令的逻辑条件满足时,反复执行FOR与NEXT之间的指令。执行到NEXT指令时,INDX的值加1,如果INDX的值小于等于结束值FINAL,返回去执行FOR与NEXT之间的指令。如果INDX的值大于结束值,循环终止。 【例4-7】在I0.5的上升沿,求VB10 ~ VB13这4个字节的异或值,用VB14保存。首先将VB14清0,并设置地址指针AC1的初始值。 第一次循环将指针AC1所指的VB10与VB14异或,然后将指针值加1,指针指向VB11,为下一次循环的异或运算做好准备。 VB10~VB13同一位中1的个数为奇数时,VB14对应位的值为1,反之为0。 2.多重循环 循环最多可以嵌套8层。 在I0.1的上升沿,执行10次外层循环,如果I0.2为ON,每执行一次外层循环,将执行8次内层循环。执行完后,VW6的值增加80。 THANK YOU SUCCESS * * 可编辑 4.4.3 其他指令 1.条件结束指令与条件停止指令 条件结束指令END的逻辑条件满足时终止当前的扫描周期。条件停止指令STOP使CPU从RUN模式切换到STOP模式。 2.监控定时器复位指令 T32等组成一个脉冲发生器,从I0.3的上升沿开始,M0.2输出一个宽度等于T32预设值的脉冲。在脉冲期间反复执行JMP指令,因此扫描时间略大于T32的预设值。扫描周期超过 500ms时,CPU自动切换到STOP模式。 可用WDR指令重新触发监控定时器,以扩展允许使用的扫描时间。 3.诊断LED指令很少使用。 4.5 局部变量与子程序 4.5.1 局部变量 1.局部变量与全局变量 每个程序组织单元(POU)均有由64字节局部(L)存储器组成的局部变量。局部变量只在它被创建的POU中有效,全局符号在各POU中均有效。局部变量有以下优点: 1) 尽量使用局部变量的子程序易于移植到别的项目。 2) 同一级POU的局部变量使用公用的存储区。 3)局部变量用来在子程序和调用它的程序之间传递输入参数和输出参数。 2.查看局部变量表 可上下拖动分裂条,打开和关闭局部变量表。 3.局部变量的类型 临时变量(TEMP)是暂时保存在局部数据区中的变量。主程序或中断程序只有TEMP变量。 IN (输入参数) 用来将调用它的POU提供的数据值传入子程序。 OUT(输出参数)用来将子程序的执行结果返回给调用它的POU。 IN_OUT(输入_输出参数)的初始值由调用它的POU传送给子程序,并用同一参数将子
文档评论(0)