PLC的学习第四章
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
断电后CPU靠内置超级电容或外插电池卡为实时时钟提供缓冲电源。 【例4-2】用实时时钟定时控制设备。 LD SM0.0 TODR VB20 //读实时时钟,小时值在VB23,分钟值在VB24 LDW>= VW23, VW30 //VW30中是设置的BCD格式的起始时、分值 AW< VW23, VW32 //VW32中是设置的BCD格式的结束时、分值 = Q0.1 //在设置的时间范围内,Q0.1为ON
4.2.3 数据转换指令
1.标准转换指令 除了解码、编码指令之外的10条指令属于标准转换指令。输入参数IN指定的 数据转换后保存到输出参数OUT指定的地址。有符号的整数转换为双整数时, 符号位被扩展到高位字。BCD码与整数相互转换的指令中,整数的有效范围为 0~9999。如果转换后的值超出输出的允许范围,溢出标志位SM1.1被置为ON。 2.段码指令 七段显示器的D0~D6段分别对应于段码指令输出字节的第0位~第6位,某 段应亮时输出字节中对应的位为1,反之为0。段码指令很少使用。
1.字节、整数、双整数和实数比较指令 比较指令用来比较两个数据类型相同的数值IN1与IN2的大小,IN1在触点 的上面,IN2在触点下面。以LD、A、O开始的比较指令分别表示开始、串 联和并联的比较触点。 比较触点中间的 B、I、D、R、S分别表示无符号字节、有符号整数、有 符号双整数、有符号实数和字符串比较。满足比较关系式给出的条件时, 比较指令对应的触点接通。字节、整数、双整数和实数比较条件“x”分别 是==(语句表为=)、<>(不等于)、>=、<=、>和<。 字符串比较指令的比较条件“x”只有==和<>。
第4章 S7-200 的功能指令
4.1 功能指令概述 4.1.1 怎样学习功能指令
功能指令分为较常用的指令、与数据的基本操作有关的指令、与PLC的高 级应用有关的指令和用得较少的指令。 初学功能指令时,首先可以按指令的分类浏览所有的指令。初学者没有必 要花大量的时间去熟悉功能指令使用中的细节,应重点了解指令的基本功能 和有关的基本概念。应通过读程序、编程序和调试程序来学习功能指令。
4.1.2 S7-200 的指令规约
1.使能输入与使能输出 使能输入端EN有能流流入方框指令时,指令才能被执行。 EN输入端有能流且指令执行时无错误,则使能输出ENO将能流传递给下一 个方框指令或线圈。将图4-2中的梯形图转换为语句表。 语句表用 AENO 指令来产生与方框指令的 ENO 相同的效果。删除AENO 指 令后,方框指令将由串联变为并联。
4.3.2 浮点数函数运算指令
1.三角函数指令 输入值是以弧度为单位的浮点数,角度值乘以π/180转换为弧度值。 2.自然对数和自然指数指令:求5的3/2次方:53/2=EXP((3/2)*LN(5)) 3.平方根指令:将正实数开平方。
4.3.3 逻辑运算指令
1.取反指令 将二进制数逐位取反,各位由0变为1,由1变为0。
2.梯形图中的指令 条件输入指令必须通过触点电路连接到左侧母线上。不需要条件的指令 (例如标号指令LBL)必须直接连接在左侧母线上。 3.能流指示器 必须解决开路问题,网络才能成功编译。ENO端的可选能流指示器表示可 将其他梯形图元件附加到该位置。即使没有在该位置添加元件,网络也能成 功编译。
4.2 数据处理指令 4.2.1 比较指令与数据传送指令
【例4-3】用模拟电位器设置定时器T37的预设值为5~20s。 SMB28中电位器的位置对应的数字N为0~255。时间设定值为150×N/255+50。 用累加器来存放操作数和运算的中间结果比较方便。
2.递增与递减指令 梯形图:IN + 1 = OUT和IN−1 = OUT。 语句表:OUT+1=OUT和OUT−1 = OUT。
【例4-1】 用接通延时定时器和比较指令组成占空比可调的脉冲发生器。 M0.2和T33组成脉冲发生器,T33的当前值按锯齿波变化。比较指令用来产 生脉冲宽度可调的方波,Q0.0为OFF的时间取决于比较指令第2个操作数的值。 2.字符串比较指令 字符串比较指令比较 ASCII 码字符串相等或不相等。常数字符串应是比较 触点上面的参数,或比较指令中的第一个参数。
4.2.5 实时时钟指令
1.用编程软件读取与设置实时时钟的日期和时间 用菜单命令“PLC”→“实时时钟”打开“CPU时钟操作”对话框。可以 读取PC或PLC的时钟,设置日期和时间值后,单击“设置”按钮下载。 2.读取实时时钟指令 READ_RTC 指令从 CPU 的实时时钟读取当前日期和时间,8 字节时间缓冲 区依次存放年的低 2 位、月、日、时、分、秒、0和星期的代码,星期日为1 。 日期和时间的数据类型为字节型BCD码。 3.设置实时时钟指令 SET_RTC指令将VB10开始的8字节时间日期值写入CPU的实时时钟。
3.计算程序中的数据转换 下图将101英寸转换为以mm为单位的双整数值。
4.解码指令与编码指令 解码指令 DECO根据输入字节 IN 的最低 4 位表示的位号,将输出字OUT 对应 的位置为1,输出字的其他位均为0。16#0010=2#0000 0000 0001 0000。 编码指令 ENCO 将输入字 IN 中的最低有效位(为1 的位)的位编号写入输出 字节OUT的最低4位。16#0014=0000 0000 0001 0100。 存储器填充指令FILL用输入参数IN指定的字值填充从地址OUT开始的N个连 续的字。
【例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 异或,然后将 AC1 中的指针值 加1,指针指向VB11,为下一次循环的 异或运算做好准备。 VB10 ~ VB13 同一位中 1 的个数为奇 数时, VB14 对应位的值为 1 ,反之为 0 。
4.2.2 移位与循环移位指令
移位位数N的数据类型为BYTE。 1.右移位和左移位指令 移位指令将输入IN中的数各位的值向右或向左移动N位后,送给输出OUT指 定的地址。移位指令对移出位自动补0,有符号的字和双字的符号位也被移位。 如果移位次数非0,“溢出”标志位SM1.1保存最后一次被移出的位的值。
2.跳转指令对定时器的影响 在各定时器正在定时时跳转, 100ms 定时器停止定时,当前值保持不变。 10ms和1ms定时器继续定时,定时时间到时跳转区外的触点也会动作。停止跳 转时100ms定时器继续定时。 3.跳转对功能指令的影响 未跳转时INC_B指令使VB0每秒加1。跳转条件满足时VB0的值保持不变。
如果移动的位数N大于允许值,执行循环移位之前先对N进行求模运算。例 如字循环移位时,将N除以16后取余数,得到的有效移位次数为0~15。如果为 0则不移位。符号位也被移位。 3.移位寄存器指令 下图中的14位移位寄存器由V30.0 ~V31.5组成,在I0.3的上升沿,I0.4的值 从移位寄存器的最低位V30.0移入,寄存器中的各位左移一位,最高位V31.5的 值被移到溢出标志位SM1.1。N为−14时,ห้องสมุดไป่ตู้0.4的值从最高位V31.5移入,寄存器 中的各位右移一位,从最低位V30.0移到溢出标志位SM1.1。
2.逻辑运算指令
字节、字、双字“与”运算时,如果两个操作数的同一位均为 1 ,运算结 果的对应位为 1,否则为0 。“或”运算时如果两个操作数的同一位均为 0, 运算结果的对应位为0,否则为1。“异或”(Exclusive Or)运算时如果两个 操作数的同一位不同,运算结果的对应位为1,否则为0。 3.逻辑运算指令应用举例 用字节逻辑“或”运算将QB0的第2~4位置为1,其余各位保持不变。
2.多重循环 循环最多可以嵌套8层。 在I0.1的上升沿,执行10次外 层循环,如果 I0.2 为 ON ,每执 行一次外层循环,将执行8次内 层循环。执行完后, VW6 的值 增加80。FOR指令必须与NEXT 指令配套使用。
4.4.3 其他指令
1.条件结束指令与停止指令 条件结束指令END的逻辑条件满足时终止 当前的扫描周期。停止指令 STOP 使 CPU 从 RUN模式切换到STOP模式。 2.监控定时器复位指令 T32等组成一个脉冲发生器,从I0.3的上升 沿开始, M0.2 输出一个宽度等于 T32 预设值 的脉冲。在脉冲期间反复执行 JMP指令,因 此扫描时间略大于 T32 的预设值。扫描周期 超过 500ms时,CPU自动切换到STOP模式。 可用WDR指令重新触发监控定时器,以扩 展允许使用的扫描时间。 3.诊断LED指令很少使用。
如果移动的位数N大于允许值(字节操作为8,字操作为16,双字操作为 32),实际移位的位数为最大允许值。 2.循环右移位和循环左移位指令 循环移位指令将输入 IN 中各位的值向右或向左循环移动 N 位后,送给输出 OUT指定的地址。被移出来的位将返回到另一端空出来的位置。移出的最后一 位的数值存放在溢出标志位SM1.1。
4.3 数学运算指令 4.3.1 整数运算指令
1.四则运算指令 梯形图IN1 + IN2 = OUT,IN1–IN2 = OUT,IN1 * IN2 = OUT,IN1 / IN2 = OUT 语句表IN1+OUT = OUT,OUT–IN1 = OUT,IN1*OUT = OUT,OUT/IN1=OUT 指令影响SM1.0(零标志)、SM1.1(溢出标志)、SM1.2(负数标志)和 SM1.3(除数为0)。MUL将两个16位整数相乘,产生一个32位乘积。DIV指令将 两个16位整数相除,运算结果的高16位为余数,低16位为商。
QB0的某一位与1作“或”运算,运算结果为1,与0作“或”运算,运算结 果不变。16#1C的第2~4位为1。
IW2的低12位用来读取3位拨码开关的BCD码,IW2的高4位另作他用。 16#0FFF的最高4位二进制数为0,低12位为1。IW2的某一位与1作“与”运 算,运算结果不变;与0作“与”运算,运算结果为0。IW2与16#0FFF作“与” 运算后,VW2的低12位与IW2的低12位的值相同,VW2的高4位为0。 如果IB0至少有一位的状态发生了变化,前后两个扫描周期IB0的值的异或 运算结果VB5的值非0,图4-25中的比较触点接通,将M0.0置位。状态发生了 变化的位的异或结果为1。异或运算后将IB0的值保存到VB4,供下一次运算 时使用。
4.4 程序控制指令 4.4.1 跳转指令
1.跳转与标号指令 JMP线圈通电时,跳转条件满足,跳转指令使程序流程跳转到对应的标号 处。JMP与LBL指令的操作数n为常数0~255,只能在同一个程序块中跳转。 I0.4的常开触点断开时,跳转条件不满足,顺序执行下面的网络。 I0.4的常开触点接通时,跳转到标号LBL 0处,不执行第二个网络。
3.字节、字、双字和实数的传送 传送指令将源输入数据IN传送到输出参数OUT指定的目的地址,指令助记 符中最后的 B、W 、DW (或D)和R分别表示操作数为字节、字、双字和实 数。 4.字节、字、双字的块传送指令 块传送指令将起始地址为 IN的N个连续的存储单元中的数据,传送到从地 址OUT开始的N个存储单元,字节变量N = 1~255。
5.字节立即读写指令 字节立即读取指令MOV_BIR读取IN指定的一个字节的物理输入,并将结果 写入OUT指定的地址,但是并不更新对应的过程映像输入寄存器。 字节立即写入指令MOV_BIW将一个字节的数值写入OUT指定的物理输出, 同时更新对应的过程映像输出字节。 6.字节交换指令 字节交换指令SWAP用来交换输入字IN的高字节与低字节。应采用脉冲执行 方式。