您好,欢迎访问三七文档
可编程序控制器原理及应用第三章PLC编程(高级指令)高级指令高级指令由高级指令编号、指令助记符和操作数组成,高级指令编号用于输入高级指令,指令助记符用于表示各指令的处理内容,操作数分为三类:★S(source,源):存储被处理的数据或指定处理方式的数据★D(destination,目标):指定存储处理结果的位置★n(number,数字):指定被处理的数值数据或设置处理方式高级指令编号★高级指令编号包括F型和P型(许多机型不支持P型)★对于F型高级指令,当执行条件X0为ON时,每个扫描周期都重复执行该指令,对于P型高级指令,仅在检测到执行条件X0的上升沿时执行一个扫描周期高级指令的执行条件当多个高级指令连续使用相同的执行条件时,采用如下编程若使用同一个执行条件控制F型和P型高级指令时,采用如下编程16位数据传输F0触发器R0为ON时,将数据寄存器DT10的内容复制到DT20中32位数据传输F1触发器R0为ON时,数据寄存器DT11和DT10的内容被复制到数据寄存器DT21和DT20中位数据传输F5触发器R0为ON时,数据寄存器DT20第4位的数据被复制到数据寄存器DT10的第12位n用十六进制数据指定源和目标的数据位16位数据加法F20由S指定的16位区与D指定的16位区相加16位数据加法F22S1与S2指定的16位数据相加,相加结果保存在D中16位数据减法F25从由D指定的16位区中减去由S指定的16位数据16位数据减法F27触发器R0为ON时,从S1指定的16位数据中减去S2指定的16位数据,相减结果存放于D16位数据乘法F30触发器R0为ON时,将S1指定的16位数据与S2指定的16位数据相乘,结果存放在D+1和D(32位)中16位数据除法F32触发器R0为ON时,将S1指定的16位数据除以S2指定的16位数据,商存放在D中,余数存放在DT901516位数据逻辑“与”F65触发器R0为ON时,对S1和S2指定的16位数据中的各个位进行逻辑“与”运算,“与”运算结果保存于D指定的16位区16位数据逻辑“或”F66触发器R0为ON时,对S1和S2指定的16位数据中的各个位进行逻辑“或”运算,“或”运算结果保存于D指定的16位区16位数据转换为4位BCD数据F80触发器R0为ON时,将S指定的16位二进制数据转换为表示4位十进制的BCD码(4-digit),转换后的数据存储于D中F119应用:广告灯控制设计★控制任务:16盏广告灯(Y0~YF)先从右向左以1s的间隔逐个点亮(Y0先亮,1s后Y0灭、Y1亮,1s后Y1灭、Y2亮,…,最后YF亮),然后从左到右以1s的间隔逐个点亮,如此反复输入与输出接口连线梯形图R1左/右移位触发信号梯形图解释★R9013是初始闭合继电器(特殊内部继电器),只在运行中第一次扫描时闭合,从第二次扫描开设断开并保持断开状态★利用F0给字输出继电器WY0赋初始值1★R901C是1s时钟脉冲继电器(特殊内部继电器),以1s为周期重复通/断动作(ON:OFF=0.5s:0.5s)通信指令基本通信方式★并口方式:数据的每一位同时传输★串口方式:数据一位接一位地按顺序传送★由于串口通信方式要求的传输线少,数据传输的速度慢,因此常用于低速、远距离的通信场合★单工(Simples):数据只按一个固定的方向传送★半双工(HalfDuplex):每次只能有一个站发送,即只能由A发送到B,或是由B发送到A,不能A和B同时发送★全双工(FullDuplex):两个站同时都能发送串口通信分类异步串口通信★串口通信常采用异步通信方式,即相邻两个字符数据之间的停顿时间长短不一,收发的每一个字符数据由四个部分按顺序组成★起始位:标志着一个新字节的开始(低电平)★数据位:一般为5~8位,数据位为0时为低电平,反之为高电平★奇偶校验位:检查传送过程是否发生错误,可有可无,可奇可偶★停止位:表示一个字符数据传送结束(低电平)通信指令帧格式波特率★定义:异步数据传送中单位时间传送二进制数的位数★举例:某数据传送的格式是7位字符,加上奇校验位、一个起始位以及一个停止位,共10个数据位,而数据传送速率是960字符/s,则传送的波特率为10×960=9600位/s=9600bps★每一位的传送时间即为波特率的倒数为1/9600bps≈0.104ms★在一个异步串口通信中传送一个字符,其格式为1个起始位、8个数据位、1个偶校验位和2个停止位,传输速率为1200bps,则每秒所能传送的字符数为1200÷(1+8+1+2)=100通信指令串口数据通信F144★通过RS232串口实现PLC与外部设备间的数据通信★发送存储在数据寄存器中从S地址开始的n个字节的数据通信指令系统寄存器设置利用F144发送、接收数据时,首先需要设置系统寄存器以定义串口通信的模式和格式★系统寄存器412:设为K0、K1、K2分别表示RS232C串口不使用、用于计算机链接通信、用于一般通信(默认)★系统寄存器413:设置RS232C串口通信格式通信指令★系统寄存器414:设置波特率,默认为H1★系统寄存器417、418:设置数据接收缓冲区,在417中设置缓冲区起始地址,在418中设置缓冲区大小(字数)系统寄存器417K0系统寄存器417k1660通信指令F114发送数据实例1传送8个字符A、B、C、D、E、F、G、H(用ASCII码表示),使用DT100到DT104数据寄存器通信指令F114发送数据实例2F114发送数据实例2F114接受数据实例1F114接受数据实例1F114接受数据实例2F114接受数据实例2高速计数器★大多数PLC都具有高速计数器功能,可以直接处理频率高达几十或上百KHz的脉冲信号★普通计数器读取的对象是输入映像存储器的数据,而高速计数器是直接读取输入点的数据(不用刷新输入点对应的输入映像存储器)★高速计数器会使用F0、F1、F162、F163、F164、F165等指令高速计数器高速计数器控制F0DT9052是一个16位的特殊数据寄存器,利用F0指令设置DT9052中0~3数据位的值(H0~HF)以规定高速计数器的运行方式高速计数器1.软件复位(DT9052的0位址)0-继续计数1-经过值为02.计数输入控制(DT9052的1位址)0-接受计数输入1-计数输入不被计数3.计数输入控制(DT9052的2位址)0-复位输入X2有效1-复位输入X2无效0-继续执行F162-F165等的操作1-不执行F162-F165等的操作4.计数输入控制(DT9052的3位址)高速计数器修改/读取经过值F1高速计数器的经过值(24位数据)存储在DT9044、DT9045特殊数据寄存器中,利用F1可以修改/读取高速计数器的经过值(下图实例为修改)高速计数器R10:ONX4:ON高速计数器输出置位F162★将S指定的数值设置为高速计数器的目标值,当经过值与该目标值一致时,D指定的输出(范围Y0~Y7)变为ON★执行本指令时,将S的数值存放到DT9047和DT9046中高速计数器高速计数器输出复位F163★将S指定的数值设置为高速计数器的目标值,当经过值与该目标值一致时,指定的输出变为OFF(范围Y0~Y7)★执行本指令时,将S的数值存放到DT9047和DT9046中高速计数器高速计数器脉冲/状态输出控制F164利用S指定的数值控制:输出脉冲的频率,可用于电机定位输出接点的输出波形,用于变频调速高速计数器脉冲输出控制输出脉冲频率和输出继电器Y通过S确定,触发器为ON时,输出脉冲以S+1规定的频率开始,当高速计数器的经过值与目标值1相同时,输出脉冲频率从初始频率切换为S+4规定的频率,一直到指定K0为脉冲数据时,则认为是最终目标值,当高速计数器的经过值被达到最终目标值时,完成脉冲输出操作高速计数器S设置高速计数器1.设置十六进制数据选择频率范围和该指令所用的输出设置步骤:2.设置脉冲频率3.设置目标值4.脉冲输出停止K0输出脉冲频率控制实例梯形图编程规则输出脉冲频率控制实例波形输出控制输出波形和输出继电器由S指定的数据决定,触发器为ON时,输出波形以S+1的内容规定的ON/OFF状态开始,当高速计数器的经过值与目标值1相同时,输出状态变为输出模板(状态)2,当高速计数器的经过值达到最后一个目标值时,输出状态为最终输出模板,然后停止输出操作高速计数器高速计数器S设置输出波形控制实例输出波形控制实例高速计数器X3
本文标题:3.4 高级指令
链接地址:https://www.777doc.com/doc-3325705 .html