《第4章PLC功能指令教学材料》由会员分享,可在线阅读,更多相关《第4章PLC功能指令教学材料(42页珍藏版)》请在金锄头文库上搜索。
1、,第4章 S7-200功能指令及应用,本章内容,4.1 传送、移位和填充指令 4.2 运算和数学指令 4.3 表功能指令 4.4 转换指令 4.5 字符串指令 4.6 子程序 4.7 时钟指令 4.8 中断 4.9 高速计数器指令 4.10 高速脉冲输出指令 4.11 PID回路指令,S7-200指令,逻辑指令 实现基本的逻辑控制,通常情况下是根据“位”信息产生“位”信息。,功能指令 完成更为复杂的控制程序设计; 完成特殊工业控制环节的任务; 使程序设计更加优化和方便。,移位指令 作用常用于顺序动作的控制 指令,右移 左移 循环右移 循环左移 寄存器移位,字节交换及填充指令 作用字数据高低字节
2、内容互换;字数据存储区填充。 指令,字节交换 字数据填充,4.2 运算和数学指令,运算指令 作用算术运算 指令 使用注意事项 LAD和STL中的不同 尽量使用不同的存储单元来存放不同的数据,加法 减法 一般乘法 完全整数乘法 一 般除法 完全整数除法,数学函数指令 作用以公式计算函数值 指令,平方根 自然对数 指数 正弦 余弦 正切,增减指令 作用自增减1 用作长延时的程序设计中非常有效 指令,增1指令 减1指令,逻辑运算指令 作用完成逻辑运算 指令,逻辑与 逻辑或 逻辑异或 逻辑非(取反),4.3 表功能指令,数据表格式 表功能指令作用用来进行数据的有序存取和查找 数据表格式,指令,表存数指
3、令 表取数(先进先出)指令 表取数(后进先出)指令 表查找指令,4.4 转换指令,数据类型转换指令 作用将数据转换成指令规定的格式 指令(1),字节到整数 整数到字节 双整数到整数 整数到双整数,实数到双整数 双整数到实数 整数到实数,数据类型转换指令 指令(2):BCD码转换指令 BCD 在一些数字系统中,如计算机、控制器和数字式仪器中,为了方便起见,往往采用二进制码表示十进制数。通常把用一组四位二进制码来表示一位十进制数的编码方法称作二十进制码,亦称BCD码(Binary Code Decimal)。 BCD码在PLC中的应用 BCD码拨码开关、 BCD显示器;HMI,BCD码到整数 整数
4、到BCD码,编码、译码、段码指令 作用最低有效位记录及置位;LED七段译码 指令,编码指令 译码指令 段码指令,ASCII转换指令 基本概念 什么是ASCII码?American Standard Code for Information Interchange。它用来制订计算机中每个符号对应的代码,每个ASCII码以1个字节(Byte)储存,从0到数字127代表不同的常用符号,例如大写A的ASCII码是65,小写a则是97。 作用 ASCII码转换指令是将标准字符ASCII编码与16进制数值、整数、双整数及实数之间进行转换。可进行转换的ASCII码为3039和4146,对应的十六进制数为09
5、和AF。 指令,ASCIIHEX HEX ASCII INT ASCII DINT ASCII Real ASCII,字符串转换指令 作用 实现数值与字符串之间的转换。 (字符串为全部合法的ASCII字符串) 指令,INT Str DINT Str Real Str Str INT Str DINT Str Real,4.5 字符串指令,作用人机交互界面设计和数据转换 指令,a) 串长度 b) 串复制 c) 串连接 d)子串 e)串搜索 f)字符搜索,4.6 子程序,为什么要使用子程序? 建立一个子程序 子程序的调用 子程序调用指令(CALL) 在使能输入有效时,主程序把程序控制权交给子程序。
6、子程序的调用可以带参数,可以不带参数。 子程序条件返回指令(CRET) 在使能输入有效时,结束子程序的执行,返回主程序中(此子程序调用的下一条指令)。梯形图中以线圈的形式编程,指令不带参数。,使用说明 CRET多用于子程序的内部,由判断条件决定是否结束子程序调用,RET用于子程序的结束。软件自动处理RET指令。 如果在子程序的内部又对另一子程序执行调用指令,则这种调用称为子程序的嵌套。子程序的嵌套深度最多为8级。 当一个子程序被调用时,系统自动保存当前的堆栈数据,并把栈顶置1,堆栈中的其他值为0,子程序占有控制权。子程序执行结束,通过返回指令自动恢复原来的逻辑堆栈值,调用程序又重新取得控制权。
7、 举例,带参数的子程序的调用 用途 局部变量表的使用 举例,4.7 时钟指令,1. 作用 调用和设置系统时钟,实现运行监视、运行记录、实时控制等。 2. 指令 3. 时钟缓冲区格式,读取时钟 设定时钟 读取夏令制时钟 设定夏令制时钟,*8字节数据 *BCD码格式,4. 举例,读实时时钟,并在LED数码管上显示分钟值。,4.8 中断,什么叫中断?它的作用是什么? 几个基本概念 中断源 中断类型 通信中断(自由口) 输入、输出中断(高速脉冲输入及输出) 时基中断(定时中断0,SMB34*1ms; 定时中断1,SMB35*1ms) 中断优先级(通信I/O 时基;不支持中断嵌套) 中断指令,中断连接
8、中断分离 开中断 关中断 清除中断 中断返回,INT-中断程序号 EVNT-中断事件号,举例 模拟量数据采集,每200ms进行一次。,中断程序,构成,建立,要求,中断程序标号,中断程序指令,无条件返回指令,利用编程软件中菜单选项插入,短小精悍、执行时间短。 杜绝使用END等指令。,使用中断的几点说明 多个事件可以调用同一个中断程序,但同一个中断事件不能同时指定多个中断服务程序。否则,在中断允许时,若某个中断事件发生,系统默认只执行为该事件指定的最后一个中断程序。 当系统由其他模式切换到RUN模式时,就自动关闭了所有的中断。 可以通过编程,在 RUN模式下,用使能输入执行ENI指令来开放所有的中
9、断,以实现对中断事件的处理。全局关中断指令DISI使所有中断程序不能被激活,但允许发生的中断事件等候,直到使用开中断指令重新允许中断。 特别提示:在一个程序中若使用中断功能,则至少要使用一次ENI指令,不然程序中的ATCH指令完不成使能中断的任务。,4.9 高速计数器指令,1. 作用 高频脉冲计数,实现精确定位和测量长度等控制任务。 2. 指令 3. 使用高速计数器的几个关键点 计数器类型的选择 输入点的确定 状态字节和控制字节的使用 相关中断的触发条件和中断程序的设计,定义指令 高速计数器指令,使用高速计数器的编程步骤 选择高速计数器 设置控制字节 执行HDEF指令 设置初始值和预设值 设置
10、中断事件并全局开中断 执行HSC指令,举例 采用测频的方法测量电机的转速 用测频法测量电机的转速是指在单位时间内采集编码器脉冲的个数,因此可以选用高速计数器对转速脉冲信号进行计数,同时用时基来完成定时。知道了单位时间内的脉冲个数,再经过一系列的计算就可以得知电机的转速。,4.10 高速脉冲输出指令,作用驱动负载实现运动的精确控制 高速脉冲的输出方式 PTO(Pulse Train Output) PWM(Pulse Width Modulation) 指令,4.11 PID回路指令,问题讨论 什么是PID? 什么场合需要用PID? PID指令的实质是什么?如何选择PID的功能? 如何在计算机控
11、制系统中使用PID? 在PLC控制系统中如何使用PID? 过去的情况 现在的情况 信号在PLC端子上的表现形式,PROPORTIONAL,INTEGRAL,DIFFERENTIAL,PID回路表,PID指令及使用方法 指令 确定PID回路号,TBL回路表起始地址 LOOP回路号,用户程序中最多可有8条PID回路,不同的PID回路指令必须使用不同的回路号。 回路号值(LOOP)=07,PID指令的使用 回路输入量的转换及归一化 为什么要进行归一化处理? 第一步,将工程实际值由16位整数转化为实数,程序如下: XORD AC0,AC0 /清累加器AC0 ITD AIW0,AC0 /把整数转化为双整
12、数(设采集数据通道地址为AIW0) DTR AC0,AC0 /把双整数转化为实数 第二步,将实数格式的工程实际值转化为0.0,1.0之间的无量纲相对值,用下式来完成这一过程: RNorm=(RRawSpan)+Offset 式中:RNorm 为工程实际值的归一化值;RRaw 为工程实际值的实数形式值,未归一化处理。标准化实数又分为双极性(围绕0.5上下变化)和单极性(以0.0为起点在0.0和1.0之间的范围内变化)两种。对于双极性,Offset为0.5;对于单极性,Offset为0,Span表示值域的大小,通常单极性时取32 000,双极性时取64 000。 以下程序段用于将AC0中的双极性模
13、拟量进行归一化处理(可紧接上面的程序): /R 64000.0,AC0 /将AC0中的双极性模拟量值进行归一化 +R 0.5,AC0 / Offset处理 MOVR AC0,VD200 /将归一化结果存入TABLE中(设TABLE表地址为VD200),PID指令的使用 回路控制输出转换为按工程量标定的整数值 为什么要进行工程量标定转换? 第一步,用下式将回路输出转换为按工程量标定的实数格式: Rscal = (MnOffset ) Span 式中:Rscal为已按工程量标定的实数格式的回路输出;Mn为归一化实数格式的回路输出。程序如下: MOVR VD208,AC0 /将回路输出结果(设TAB
14、LE表首地址为VB200)放入AC0 -R 0.5,AC0 /对双极性场合减去0.5 *R 64 000,AC0 /将AC0中的值按工程量标定 第二步,将已标定的实数格式的回路输出转化为16位的整数格式,并输出。 TRUNC AC0,AC0 /取整数 DTI AC0,AC0 /双整数转换为整数 MOVW AC0,AQW0 /把整数值送到到模拟量输出通道(设为AQW0) 选择PID回路类型 关闭积分回路 关闭微分回路 关闭比例回路,PID使用举例 题目 某一水箱有一条进水管和一条出水管,进水管的水流量随时间不断变化,要求控制出水管阀门的开度,使水箱内的液位始终保持在水满时液位的一半。系统使用比例
15、积分及微分控制,假设采用下列控制参数值:Kc为0.4,Ts为0.2s,Ti为30 min,Td为15 min。 题目分析 本系统标准化时可采用单极性方案,系统的输入来自液位计的液位测量采样;设定值是液位的50 %,输出是单极性模拟量,用以控制阀门的开度,可以在0 %100 %之间变化。 程序设计 本程序只是模拟量控制系统的PID程序主干,对于现场实际问题,还要考虑诸多方面的影响因素。 本程序由主程序、回路表初始化子程序SBR0、初始化子程序SBR1和中断程序INT0构成。 模拟量输入通道为AIW2, 模拟量输出通道为AQW0。I0.4为手动/自动转换开关,I0.4为1时,系统进入自动运行状态。
16、,本章小结,主要内容,实时时钟指令,运算指令,数据处理指令,子程序,中断程序,高速脉冲,PID调节,传送、移位、数据类型变换等,算术运算、逻辑运算等,设置、读取实时时钟,建立、编制、调用,建立、编制、中断事件服务,高速脉冲输入/输出,精准定位,实现复杂的模拟量控制,作业 1、有一组数据存放在VB600开始的20个字节存储单元中,采用间接寻址方式设计一段程序,将这20个字节数据存储到从VB300开始的存储单元中。 2、编程用功能指令实现180天延时。 3、编程用时钟指令控制路灯的定时启闭。要求5月15日到10月15日,每天19:00开灯,6:00关灯; 10月16日到5月14日,每天18:00开灯,7:00关灯