750 likes | 857 Views
情境 3 :多功能控制. 任务 1 :化工反应车间控制车间 主要内容: 3.1.1 模拟量及扩展模块 3.1.2 数据处理、运算指令及应用 3.1.3 中断源及中断程序 3.1.4 PID 控制. 本任务描述:. 1. 两原料泵按一定的比例系数( 1 : 5 ),向反应罐注入原料,反应罐中搅拌机开始工作。共计 1000L 。 2. 待原料注入完成后,搅拌机继续搅拌 40S 后,反应罐中成品经阀门 3 送出。 3. 待反应罐成品全部清空,检测开关 K 闭合。重复 1 。. 控制要求.
E N D
情境3:多功能控制 任务1:化工反应车间控制车间 主要内容: 3.1.1 模拟量及扩展模块 3.1.2 数据处理、运算指令及应用 3.1.3 中断源及中断程序 3.1.4 PID控制
本任务描述: 1.两原料泵按一定的比例系数(1:5),向反应罐注入原料,反应罐中搅拌机开始工作。共计1000L。 2. 待原料注入完成后,搅拌机继续搅拌40S后,反应罐中成品经阀门3送出。 3.待反应罐成品全部清空,检测开关K闭合。重复1。
控制要求 1.工作前,阀门1阀、门2、阀门3都关闭。电机停止状态。 2.启动按钮按下,工作开始,阀门1 、门2开启,两原料泵启动,并以15L/min、 8L/min速度向反应罐输送原料。同时,反应罐中搅拌机开始工作。原料泵1和原料泵2,送完原料自动停止,相应阀门关闭。 3.两泵送完原料后,计时40s后,搅拌机停止工作,阀门3打开,直至检测开关K闭合,阀门3关闭。 4.重复以上工作,直至停止按钮按下。 5.在工作过程中,如果压力表为4MPa,报警;超过4.6MPa报警并停止工作。温度超过120℃报警,超过135℃ 报警并停止工作。
授课内容 3.1.1 模拟量扩展模块
二、模拟量模块(A/D) 模拟量模块有模拟量输入模块、模拟量输出模块、模拟量输入输出模块。 1. 模拟量输入模块(A/D) 作用:PLC只能接收数字量信号,模拟量信号是一种连续变化的物理量。为实现模拟量控制,必须先对模拟量进行模/数(A/D)转换,将模拟信号转换成PLC所能接受的数字信号。模拟量输入模块的功能就是实现模/数(A/D)转换。
组成 由滤波、模数转换A/D,光电耦合等部分组成 。光电耦合器起防止电磁干扰的作用 。 对多通道的模拟量输入单元,通常设置多路转换开关进行通道的切换,且在输出端设置信号寄存器。
使用及特性 一般先用信号变送器把它们变换成统一的标准信号(如4-20mA的直流电流信号,1-5V的直流电压信号等),然后再送入模拟量输入模块 。 模拟量输入模块(EM231)具有4个模拟量输入通道。
模块上部共有12个端子,每3个点为一组,共4组。模块上部共有12个端子,每3个点为一组,共4组。 每组可作为一路模拟量的输入通道(电压信号或电流信号),电压信号用两个端子(A+、A—),电流信号用3个端子(RC,C+,C—),其中RC与C+端子短接。未用的输入通道应短接(B+、B—)。 该模块需要直流24V供电(M、L+端)。可由CPU模块的传感器电源24VDC/400mA供电,也可由用户提供外部电源。右端分别是校准电位器和配置DIP设定开关。
(2)模拟量输入模块的特性 EM231的电压输入范围:单极性0~10V,0~5V;双极性±5V,±2.5V 电流输入范围 :0~20mA 模拟量到数字量的最大转换时间 :250μs 每个通道占用存储器AI区域2个字节。该模块模拟量的输入值为只读数据。
模拟量输入模块(EM231)的输入信号经模数(A/D)转换后的数字量数据值是12位二进制数。数据值的12位在CPU中存放格式如图所示。最高有效位是符号位:0表示正值数据,1表示负值数据。模拟量输入模块(EM231)的输入信号经模数(A/D)转换后的数字量数据值是12位二进制数。数据值的12位在CPU中存放格式如图所示。最高有效位是符号位:0表示正值数据,1表示负值数据。
1)单极性数据格式(0~10V、0~5V) 2个字节的存储单元的低3位均为0,数据值12位(单极性数据)是存放在第3~ 14位区域。这12位数据的最大值应为215-8=32760。单极性数据格式的全量程范围设置为0~32000。差值32760-32000=760则用于偏置/增益,由系统完成。由于第15位为0,表示是正值数据。
2)双极性数据格式(±5V、±2.5V) 2个字节存储单元的低4位均为0,数据值12位(双极性数据)是存放在第4~15位区域。最高有效位是符号位,双极性数据格式的全量程范围设置为-32000~+32000。 模拟量输入模块的分辨率通常以A/D转换后的二进制数数字量的位数来表示(12/11位)。
2. 模拟量输出模块(D/A) 模拟量输出模块由光电耦合器、数模转换器D/A和信号驱动等环节组成。光电耦合器防止电磁干扰。
(1)外部接线图: 左端起的每3个点为一组,共二组。每组可作为一路模拟量输出(电压或电流信号)。 第一组V0端接电压负载、I0端接电流负载,M0为公共端。 第二组的接法与第一组类同。 该模块需要直流24V供电。
(2)模拟量输出模块的特性 • 输出信号的范围:电压输出为±10V,电流输出为0-20mA。电压输出的设置时间为100μs,电流输出的设置时间为2ms。每个输出通道占用存储器AQ区域2个字节。用户程序无法读取模拟量输出值。 • PLC运算处理后的12位数字量信号(BIN数)在CPU中存放格式如图所示。最高有效位是符号位:0表示是正值,1表示是负值。
1)电流输出数据格式 2个字节的存储单元的低3位均为0,数据值12位数据是存放在第3~14位区域。电流输出数据字格式为0~+32000。第15位为0,表示是正值数据。
2)电压输出的数据格式 2个字节的存储单元的低4位均为0,数据值的12位是存放在第4~15位区域。电压输出数据格式为-32000~ +32000。 模拟量输出模块的分辨率通常以D/A转换前待转换的二进制数数字量的位数表示。
3. 模拟量输入输出模块(EM235) • EM235具有4个模拟量输入通道、1个模拟量输出通道 。 • 模拟量输入功能同EM231模拟量输入模块,技术参数基本相同 。 • 电压输入范围有所不同,单极性为0~10V、0~5V、0~1V、0~500mv、0~100mv、0~50mv。双极性为±10V、±5V、±2.5V、±1V、±500mV、±250mv、±100mv、±50mv、±25mv。 • 该模块的模拟量输出功能同EM232模拟量输出模块。技术参数也基本相同。 • 该模块需要直流24V供电。可由CPU模块的传感器电源24VDC/400mA供电。也可由用户提供外部电源。
2.运算指令 (1)整数与双整数加减法指令 整数加法(ADD-I)和减法(SUB-I)指令是:使能输入有效时,将两个16位符号整数相加或相减,并产生一个16位的结果输出到OUT。 双整数加法(ADD-D)和减法(SUB-D)指令是:使能输入有效时,将两个32位符号整数相加或相减,并产生一个32位 结果输出到OUT。// //200+400 VW0即VW0的内容为600
说明: (1)当IN1、IN2和OUT操作数的地址不同时,在STL指令中,首先用数据传送指令将IN1中的数值送入OUT,然后再执行加、减运算即:OUT+IN2=OUT、OUT-IN2=OUT。为了节省内存,在整数加法的梯形图指令中,可以指定IN1或IN2=OUT,这样,可以不用数据传送指令。如指定INI=OUT,则语句表指令为:+I IN2,OUT;如指定IN2=OUT,则语句表指令为:+I IN1,OUT。在整数减法的梯形图指令中,可以指定IN1=OUT,则语句表指令为:-I IN2,OUT。这个原则适用于所有的算术运算指令,且乘法和加法对应,减法和除法对应。 (2)整数与双整数加减法指令影响算术标志位SM1.0(零标志位),SM1.1(溢出标志位)和SM1.2(负数标志位)。
(2) 整数乘除法指令 整数乘法指令(MUL-I)是:使能输入有效时,将两个16位符号整数相乘,并产生一个16位积,从OUT指定的存储单元输出。 整数除法指令(DIV-I)是:使能输入有效时,将两个16位符号整数相除,并产生一个16位商,从OUT指定的存储单元输出,不保留余数。如果输出结果大于一个字,则溢出位SM1.1置位为1。 双整数乘法指令(MUL-D):使能输入有效时,将两个32位符号整数相乘,并产生一个32位乘积,从OUT指定的存储单元输出。
双整数除法指令(DIV-D):使能输入有效时,将两个32位整数相除,并产生一个32位商,从OUT指定的存储单元输出,不保留余数。双整数除法指令(DIV-D):使能输入有效时,将两个32位整数相除,并产生一个32位商,从OUT指定的存储单元输出,不保留余数。 整数乘法产生双整数指令(MUL):使能输入有效时,将两个16位整数相乘,得出一个32位乘积,从OUT指定的存储单元输出。 整数除法产生双整数指令(DIV):使能输入有效时,将两个16位整数相除,得出一个32位结果,从OUT指定的存储单元输出。其中高16位放余数,低16位放商。
(3)实数加减乘除指令 实数加法(ADD-R)、减法(SUB-R)指令:将两个32位实数相加或相减,并产生一个32位实数结果,从OUT指定的存储单元输出。 实数乘法(MUL-R)、除法(DIV-R)指令:使能输入有效时,将两个32位实数相乘(除),并产生一个32位积(商),从OUT指定的存储单元输出。 操作数:IN1/IN2:VD, ID, QD, MD, SMD, SD, LD, AC, 常量, *VD, *LD, *AC。 OUT:VD, ID, QD, MD, SMD, SD, LD, AC, *VD, *LD, *AC。 数据类型:实数。
(4) 数学函数变换指令 (1)平方根(SQRT)指令:对32位实数(IN)取平方根,并产生一个32位实数结果,从OUT指定的存储单元输出。 (2)自然对数(LN)指令:对IN中的数值进行自然对数计算,并将结果置于OUT指定的存储单元中。 求以10为底数的对数时,用自然对数除以2.302585(约等于10的自然对数)。 (3)自然指数(EXP)指令:将IN取以e为底的指数,并将结果置于OUT指定的存储单元中。将“自然指数”指令与“自然对数”指令相结合,可以实现以任意数为底,任意数为指数的计算。求yx,输入以下指令:EXP (x * LN (y))。 例如:求23=EXP(3*LN(2))=8;27的3次方根=271/3=EXP(1/3*LN(27))=3。 (4)三角函数指令:将一个实数的弧度值IN分别求SIN、COS、TAN,得到实数运算结果,从OUT指定的存储单元输出。
3. 逻辑运算指令 逻辑运算是对无符号数按位进行与、或、异或和取反等操作。操作数的长度有B、W、DW。指令格式如表所示 (1) 逻辑与(WAND)指令:将输入IN1,IN2按位相与,得到的逻辑运算结果,放入OUT指定的存储单元。 (2) 逻辑或(WOR)指令:将输入IN1,IN2按位相或,得到的逻辑运算结果,放入OUT指定的存储单元。 (3)逻辑异或(WXOR)指令:将输入IN1,IN2按位相异或,得到的逻辑运算结果,放入OUT指定的存储单元。 (4) 取反(INV)指令:将输入IN按位取反,将结果放入OUT指定的存储单元。
说明: (1)在表中,在梯形图指令中设置IN2和OUT所指定的存储单元相同,这样对应的语句表指令如表中所示。若在梯形图指令中,IN2(或IN1)和OUT所指定的存储单元不同,则在语句表指令中需使用数据传送指令,将其中一个输入端的数据先送入OUT,在进行逻辑运算。如MOVB IN1,OUT ANDB IN2,OUT (2)ENO=0的错误条件:0006 间接地址,SM4.3 运行时间 (3)对标志位的影响:SM1.0(零)
4. 递增、递减指令 • 递增、递减指令用于对输入无符号数字节、符号数字、符号数双字进行加1或减1的操作。指令格式如下表所示。
(1) 递增字节(INC-B)/递减字节(DEC-B)指令 递增字节和递减字节指令在输入字节(IN)上加1或减1,并将结果置入OUT指定的变量中。递增和递减字节运算不带符号。 (2) 递增字(INC-W)/递减字(DEC-W)指令 递增字和递减字指令在输入字(IN)上加1或减1,并将结果置入OUT。递增和递减字运算带符号(16#7FFF > 16#8000)。
(3)递增双字(INC-DW)/递减双字(DEC-DW)指令(3)递增双字(INC-DW)/递减双字(DEC-DW)指令 递增双字和递减双字指令在输入双字(IN)上加1或减1,并将结果置入OUT。递增和递减双字运算带符号(16#7FFFFFFF > 16#80000000)。
5. 表功能指令 数据表是用来存放字型数据的表格,如图所示。表格的第一个字地址即首地址,为表地址,首地址中的数值是表格的最大长度(TL),即最大填表数。表格的第二个字地址中的数值是表的实际长度(EC),指定表格中的实际填表数。每次向表格中增加新数据后,EC加1。从第三个字地址开始,存放数据(字)。表格最多可存放100个数据(字),不包括指定最大填表数(TL)和实际填表数(EC)的参数。
数据表 要建立表格,首先须确定表的最大填表数。如下图所示。 // 输入表格的最大填表数 LD SM0.1 MOVW +6, VW200
(1 )填表指令 表填表(ATT)指令:向表格(TBL)中增加一个字(DATA)。如右图所示。 (1)DATA为数据输入端,其操作数为:VW, IW, QW, MW, SW, SMW, LW, T, C, AIW, AC, 常量, *VD, *LD, *AC; (2)TBL为表格的首地址,其操作数为:VW, IW, QW, MW, SW, SMW, LW, T, C, *VD, , *LD *AC;数据类型为:字。 (3)指令执行后,新填入的数据放在表格中最后一个数据的后面,EC的值自动加1。 (4)使ENO = 0的错误条件:0006(间接地址),0091(操作数超出范围),SM1.4(表溢出),SM4.3(运行时间)。 (5)填表指令影响特殊标志位:SM1.4(填入表的数据超出表的最大长度,SM1.4=1)。 ATT DATA,TBL
(2 )表取数指令 从数据表中取数有先进先出(FIFO)和后进先出(LIFO)两种。执行表取数指令后,实际填表数EC值自动减1。 先进先出指令(FIFO):移出表格(TBL)中的第一个数(数据0),并将该数值移至DATA指定存储单元,表格中的其他数据依次向上移动一个位置。 后进先出指令(LIFO):将表格(TBL)中的最后一个数据移至输出端DATA指定的存储单元,表格中的其他数据位置不变。 表取数指令格式如下表所示。
(3) 表查找指令 • 表格查找(TBL-FIND)指令在表格(TBL)中搜索符合条件的数据在表中的位置(用数据编号表示,编号范围为0~99)。其指令格式如下图所示。 FND= TBL,PATRN,INDX FND<> TBL,PATRN,INDX FND< TBL,PATRN,INDX FND> TBL,PATRN,INDX
1)梯形图中各输入端的介绍 TBL:为表格的实际填表数对应的地址(第二个字地址),即高于对应的“增加至表格”、“后入先出”或“先入先出”指令TBL操作数的一个字地址(两个字节)。 TBL操作数:VW, IW, QW, MW, SW, SMW, LW, T, C, *VD, *LD, *AC。数据类型:字。 PTN:是用来描述查表条件时进行比较的数据。 PTN操作数:VW, IW, QW, MW, SW, SMW, AIW, LW, T, C, AC, 常量, *VD, *LD, *AC。 数据类型:整数。
INDX:搜索指针,即从INDX所指的数据编号开始查找,并将搜索到的符合条件的数据的编号放入INDX所指定的存储器。 INDX操作数:VW, IW, QW, MW, SW, SMW, LW, T, C, AC, *VD, *LD, *AC。数据类型:字。 CMD:比较运算符,其操作数为常量1~4,分别代表=、<>、<, >。数据类型:字节。
2)功能说明 表格查找”指令搜索表格时,从INDX指定的数据编号开始,寻找与数据PTN的关系满足CMD比较条件的数据。参数如果找到符合条件的数据,则INDX的值为该数据的编号。要查找下一个符合条件的数据,再次使用“表格查找”指令之前须将INDX加1。如果没有找到符合条件的数据,INDX的数值等于实际填表数EC。一个表格最多可有100数据,数据编号范围:0~99。将INDX的值设为0,则从表格的顶端开始搜索。
3)使ENO = 0的错误条件 SM4.3(运行时间),0006(间接地址),0091(操作数超出范围)。
(4) 字填充指令 字填充(FILL)指令用输入IN存储器中的字值写入输出OUT开始N个连续的字存储单元中。N的数据范围:1~255。其指令格式如下图所示。 FILL IN,OUT,N
指令格式说明 (1)IN为字型数据输入端,操作数为:VW, IW, QW, MW, SW, SMW, LW, T, C, AIW, AC, 常量, *VD, *LD, *AC;数据类型为:整数。N的操作数为:VB, IB, QB, MB, SB, SMB, LB, AC, 常量, *VD, *LD, *AC; 数据类型:字节。 OUT的操作数为:VW, IW, QW, MW, SW, SMW, LW, T, C, AQW, *VD, *LD, *AC;数据类型:整数。 (2)使ENO = 0的错误条件:SM4.3(运行时间),0006(间接地址),0091(操作数超出范围)