资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,项目11 液体混合装置控制,【学习目标】,1.掌握算术运算指令、转换指令和字逻辑运算指令特点及正确使用。,2.掌握模拟量输入/输出模块的正确安装、设置、调试。,3.会使用算术运算指令、转换指令和字逻辑运算指令编写简单的程序。,4.能独立完成简单模拟量控制系统(如液体混合控制装置、炉温控制系统)的硬件配置及安装、硬件组态及程序编写。,11.1 项目简述,多种液体按一定比例混合在很多生产过程中是不可缺少的关键环节,液体混合控制的可靠性是非常重要的。,图11-1所示为一液体混合控制装置,由一个模拟量液位传感器-变送器(输出为420mA)来检测液位的高低。对A和B两种液体原料按比例混合,控制要求如下:(1)按下启动按钮SB1,液体A阀门打开,液体A流入容器。(2)当液位达到30%后,则关闭液体A阀门,打开液体B阀门,开始加入液体B。(3)当液位达到100%后,则关闭液体B阀门,搅拌电动机开始搅匀。(4)搅拌电动机工作10s后停止搅动,混合液阀门打开,开始放出混合液体。(5)当液体放空后,延时5s后关闭混合液阀门。按停止按钮,系统应立即停止运行。,用PLC实现对两种液体混合装置的控制。本项目涉及对模拟量信号的处理,因此应该对模拟量输入模块、模拟量输出模块以及对模拟信号的处理进行相关内容的准备。模拟信号的处理一般都用到算术运算指令、转换指令和字逻辑运算指令。,11.2 相关知识,在生产过程中,有许多过程变量的值是随时间连续变化的(如温度、压力、流量等),称为模拟量。为了实现对这些物理量的控制,首先需要经测量传感器将物理量转换为电量(如电压、电流、电阻、电荷等),然后再经变送器将测量结果转换为标准的直流电压和直流电流信号(如1000mV、10V、420mA等),再将标准的模拟电信号送入模拟量输入模块进行A/D转换,变成CPU能够接收的数字量信号后送入CPU进行处理,PLC处理后的二进制电平信号再送给模拟量输出模块进行D/A转换,转换成模拟量信号后去驱动相应的执行器。,11.2.1 模拟量的处理,1.模拟量输入模块测量方法和测量范围的设置,模拟量输入模块的输入信号的种类和测量范围用安装在模块侧面的量程卡(或称量程模块)来设置。量程卡安装在模拟量输入模块的一侧,每两个通道为一组,共用一个量程卡,图11-2中的模块共有8个通道,因此有4个量程卡。量程模板可以设定为以下位置:“A”、“B”、“C”和“D”。其中,“A”为热电阻、热电偶测量,测量范围为1000mV;“B”为电压测量,测量范围为10V;“C”为四线变送器测量,传感器电源线与信号线分开,测量范围为420mA;“D”为两线变送器测量,传感器电源线与信号线并用,传感器的电源通过模拟量输入模块供给,测量范围为420mA。使用STEP7中的硬件组态功能可以进一步确定测量范围。,模块出厂时量程卡预设在B位置,如果需要的话,必须重新插入量程模板,以更改测量方法和测量范围。各种测量方法和测量范围的设定都打印在模拟量模板上。设置量程,卡时先使用改锥将量程卡从模拟量输入模块中松开,如图11-2所示;根据要设置的量程,确定量程卡的位置,并按标记方向将量程卡插入模拟量输入模块中,如图11-3所示。,如果没有正确的设置量程卡,将会损坏模拟量输入模块。在STEP7中,对模拟量模块进行参数化设置时,所选测量传感器类型必须与模块上量程卡设定的类型相匹配;否则,模块上的SF指示灯将指示模块故障。,2.传感器与模拟量输入模块连接,根据测量方法的不同,可以将电压和电流传感器以及电阻器等不同类型的传感器连接到模拟量输入模块。为了减少电子干扰,对于模拟信号应使用双绞线屏蔽电缆。模拟信号电缆的屏蔽层应该两端接地。 如果电缆两端存在电位差,将会在屏蔽层中产生等电位连接电流,造成对模拟信号的干扰。在这种情况下,应该让电缆的屏蔽层一点接地。,(1)带隔离的模拟量输入模板,对于带隔离的模拟量输入模板,在CPU的M端和测量电流MANA的参考点之间没有电气连接。 如果测量电流MANA参考点和CPU的M端存在一个电位差UISO,必须选,用隔离型模拟输入模块。通过在 MANA 端子和 CPU 的 M 端子之间使用一根等电位连接导线,可以确保UISO不会超过允许值。,(2)不带隔离的模拟量输入模块,对于不带隔离的模拟量输入模块,在CPU 的M端和测量电流 MANA的参考点之间,必须建立电气连接。为此,应连接MANA端子与CPU的M端子以及IM153的M端子。MANA和CPU 的M 端子及IM153之间的电位差会造成模拟信号的中断。,(3)有限电位差UCM,在输入通道的测量线 M-和测量电路的参考点 MANA之间只会发生有限电位差 UCM(共模电压)。为了防止超过允许值,可以根据传感器的电线连接情况,采取不同的措施。,3.连接带隔离的传感器,带隔离的传感器不能与本地接地电线连接(本地接地)。带隔离的传感器应无电势运行。 对于带隔离的传感器,在不同传感器之间会引起电位差,这些电位差可能是由于干扰或传感器的本地布置情况造成的。,为了防止在具有强烈电磁干扰的环境中运行时超过 UCM的允许值,建议将 M-与 MANA连接。在连接用于电流测量的双线变送器和阻性传感器时,禁止将M-连接至MANA。连接电路如图11-4和图11-5所示。在图11-4至图11-11中所用的缩写词和助记符具有以下含义。,M+: 测量导线(正),M -: 测量导线(负),MANA: 模拟测量电路的参考电压,M: 接地端子,L +:24 VDC电源端子,UCM:MANA测量电路的输入和参考电位之间的电位差,UISO: MANA和CPU 的M端子之间的电位差,4.不带隔离的传感器,不带隔离的传感器可以与本地接地电线连接(本地接地)。如果使用的是不带隔离的传感器,必须将MANA连接至本地接地。由于本地条件或干扰,在本地分布的各个测量点之间会造成电位差UCM(静态或动态)。如果电位差 UCM超过允许值,在测量点之间必须使用等电位连接导线。 如果将不带隔离的传感器连接到光隔离的模块,CPU 既可以在接地模式(参见图11-6)下运行,也可以在未接地模式下运行。如果将不带隔离的传感器连接到不带隔离的模板,CPU只能在接地模式下运行,如图11-7所示。,5.连接电压传感器,电压传感器与模拟量输入模块之间的连接如图11-8所示。,6.连接二线变送器,二线变送器可通过模拟量输入模块的端子进行短路保护供电,并将所测得的变量转换为电流,二线变送器必须是一个带隔离的传感器,连接参考电路如图11-9所示。,二线变送器的供电电源L+也可以从模块馈入,连接参考电路如图11-10所示。这种方式必须使用STEP7将二线变送器作为四线变送器进行参数赋值。,7.连接四线变送器,四线变送器与模拟量输入模块的连接电路如图11-11所示。,8.连接热敏电阻和普通电阻,热敏电阻/普通电阻可以使用两线制、三线制或四线制端子进行接线。 对于四线端子和三线端子,模块可以通过端子 IC+和 IC-提供恒定电流,以补偿测量电缆中产生的电压降。如果使用四位或三位端子进行测量,由于可以补偿两位端子的测量,测量结果将更精确。在带有4个端子的模块上连接二线电缆时,需在热敏电阻上将IC+和M+短接,IC-和M-短接,如图11-12所示。在带有4个端子的模块上连接三线电缆时,一般必须短接M-和IC-,并确保所连接电缆IC+和M+都直接连接到了热敏电阻,其连接电路如图11-13所示。但SM331RTD例外,其连接电路如图11-14所示,必须确保IC-和M-电缆直接连接到热敏电阻上。,图11-12和图11-18中所用的缩写词和助记符具有以下含义:,IC+: 恒定电流导线(正),IC-: 恒定电流导线(负),M+: 测量导线(正),M-: 测量导线(负),MANA: 模拟测量电路的参考电压,M: 接地端子,L+: 24 VDC电源端子,S-: 检测头(负),在带有4个端子的模块上连接四线电缆时,可以通过M+和M-端子测量热敏电阻所产生的电压。在连接时,在热敏电阻上IC+与M+短接,IC-与M-短接。在连接时,应确保所连接电缆IC+和M+以及电缆IC-和M-都直接连接到了热敏电阻,如图11-15所示。,在带有3个端子模块(如SM331 AI813位)上连接二线电缆时,需短接模块的M-和S-端子,连接电路如图11-16所示。三线连接电路如图11-17所示。在带有3个端子模块上连接四线电缆时,电缆的第4条线必须悬空,连接电路如图11-18所示。,热电偶与模拟量输入模块之间的连接有多种方式,可以直接连接,也可以使用补偿导线连接,且每一个通道组都可以使用一个模拟量模块所支持的热电偶,与其他通道组无关。具体连接电路请参考S7-300 PLC可编程控制器模板规范参考手册。,9.连接负载/执行器至模拟量输出模块,模拟量输出模块为负载和执行器提供电流和电压,对于模拟信号,应使用屏蔽电缆和双绞电缆。电缆QV和S+、MANA和S-应分别绞接在一起,由此可降低干扰。应将电缆两端的模拟电缆屏蔽层接地。,如果电缆两端存在电位差,将会在屏蔽层中产生等电位连接电流,造成对模拟信号的干扰。在这种情况下,应该让电缆的屏蔽层一点接地。,对于带隔离的模拟量输出模块,在CPU的M端和测量电流MANA的参考点之间没有电气连接。如果测量电流MANA参考点和CPU的M端存在一个电位差UISO,必须选用隔离模拟输出模块。通过在 MANA 端子和 CPU 的 M 端子之间使用一根等电位连接导线,可以确保UISO不会超过允许值。,对于不带隔离的模拟量输出模块,在CPU 的M端和测量电流 MANA的参考点之间,必须建立电气连接。因此,连接 MANA端子与 CPU的 M端子。MANA和 CPU的 M端子之间的电位差,会造成模拟信号的中断。,对于电压输出型模块可以采用双线制和四线制电路,对于电流型模拟量输出模块,与负载的连接只能采用双线制。各种参考连接电路如图11-19图11-22所示,图中所用的缩写词和助记符具有以下含义。,QV:模拟量输出电压,S+:探测器导线(正),S -:探测器导线(负),MANA:模拟电路的参考电压,RL:负载阻抗,L+:24V DC电源端子,M:接地端子,UISO:MANA和CPU的M端子之间的电位差,QI:模拟量输出电流,负载与电压输出型带隔离模块之间的四线连接,可以实现高精度输出。连接时需要在传感器导线(S- 和 S+)之间连接负载。由此,可以在负载上直接测量电压并进行修正。参考电路如图 11-19所示。,负载与不带隔离的模板的电压输出之间的连接,若采用双线电路,只需连接负载至端子QV和测量电路MANA的参考点,S+和S-端子可以断开,但将不能达到四线电路的精度,参考电路如图11-20所示。,连接负载至带隔离的电流型输出模块,必须将负载连接到QI以及电流输出的模拟电路MANA的参考点,而MANA端与CPU的M端不能相连,参考电路如图11-21所示。,连接负载至不带隔离的电流型输出模块,必须将负载连接到QI以及电流输出的模拟电路MANA的参考点,而MANA端与CPU的M端相连,参考电路如图11-22所示。,10.模拟量的表示方式及测量精度,模拟量经过模拟量输入模块后的转换值用一个16位二进制数补码定点数表示,其中的第15位为模拟值的符号位,0表示正数,1表示负数;第140位为数值部分。如果一个模拟量模块的精度少于16位,则模拟值将左移调整之后才被保存在模块中。在未用的幂低的位则填入“0”,如表11-1所示,其中的“*”为0或1。,11.模拟输入量转换后的模拟值表示方法,模拟量输入模块可以测量的模拟量信号有电压、电流、电阻和温度等,表11-2给出了模拟量输入模块的不同测量范围的模拟量表示。表11-2中所述值适用于具有相应测量范围的所有模块。模拟量量程的上、下限(100%)分别对应于十六进制的模拟值6C00H和9400H。,模拟量输入模块在模块通电前或模块参数设置完成后第一次转换之前,或上溢出时,其模拟值为7FFFH,下溢出时模拟值为8000H。上下溢出时SF指示灯闪烁,有诊断功能的模块可以产生诊断中断。,12.模拟量输入通道的扫描时间,模-数转换以及数字化被测值向存储器或总线底板的传送,应顺序进行,换句话说即,模拟量输入通道应顺次转换。扫描时间,即直到模拟量输入值再次转换时所经历的时间,是指模拟量输入模板的所有激活模拟量输入通道的转换时间总和。如果模拟量输入通道进行了通道分组,必须考虑到通道组之间的转换时间。可以用装入指令“L PIW”来访问转换的结果。,转换时间由基本转换时间和模板的电阻测试和断线监控时间组成。基本转换时间直接取决于模板量输入模板的转换方法(如积分方法和瞬时值转换方法)。对于积分转换方法,积分时间将直接影响转换时间。积分时间取决于在STEP 7中所设置的干扰频率抑制。,为了减少扫描时间,可使用编程软件STEP7中的硬件组态工具屏蔽未用的模拟量输入通道;另外,在硬件上还需将未用通道的输入端短路。,13.模拟量输入值的规范化FC105,在STEP 7的标准库“TI-S7转换块”的子目录中有一个可用于模拟量输入规范化的功能FC105,符号名为“SCALE”,该功能可以将从模拟量输入模块接收的一个整型值转换为以工程单位表示的介于下限(LO-LIM)和上限(HI-LIM)之间的实型值。,FC105的功能可用下面方程式表示:,OUT= +LO_LIM,常数K1和K2根据输入值是双极性还是单极性来设置。假定输入整型值介于-27 648与27 648之间,则K1=-27 648.0,K2=+27 648.0;假定输入整型值介于0和27 648之间,则K1=0.0,K2=+27 648.0。如果输入整型值大于K2,输出(OUT)将被钳位于HI_LIM,并返回一个错误;如果输入整型值小于K1,那么输出(OUT)将被钳,位于LO_LIM,并返回一个错误。ENO的信号状态将置0,RET_VAL被设置为W#16#0008。,FC105应用示例如图11-23所示,FC105的形参定义如表11-3所示。在图11-23中,输入IN直接从模拟量输入模块接收数据,为PIW272;工程量的上限为1000.0,下限值为0.0。如果I0.1为1且M0.0为0,则可将地址为272的模拟量输入通道值(027 648)转换为介于0.0和1000.0之间的实型值,并写入MD4。,14.模拟量输出值的规范化FC106,在STEP 7的标准库“TI-S7转换块”的子目录中有一个可用于模拟量输出规范化的功能FC106,符号名为“UNSCALE”,其功能是接收一个以工程单位表示且介于下限(LO_LIM)和上限(HI_LIM)之间的实型输入值,并将其转换为一个整型值。即将实际物理量转化为模拟量模块所需的16位整数,。,FC106的功能可用下面方程式表示:,OUT= +K1,常数K1和K2根据输入值是双极性还是单极性来设置。假定输出整型值介于-27 648与27 648之间,则K1=-27 648.0,K2=+27 648.0;假定输出整型值介于0和27 648,之间,则K1=0.0,K2=+27 648.0。如果输入值超出LO_LIM和HI_LIM范围,那么输出(OUT)将钳位于距下限或上限较近的一方,并返回一个错误。,FC106应用示例如图11-24所示,FC106的形参定义如表11-4所示。在图11-24中,输入IN为需要送到模拟量输出模块的实际物理量值,为MD4;工程量的上限(HI_LIM)为1000.0,下限(LO_LIM)值为0.0。如果I0.1为1且M0.0为0,则可将用户程序计算的在量程范围内的模拟量(在MD4中)转换为027 648之间的16位整型值,并可以直接传送到模拟量输出模块上(PQW288),通过模拟量输出模块输出与其对应的实际物理量。,11.2.2 转换指令,语句表转换指令将累加器1中的数据进行类型转换,转换的结果仍在累加器1中。能够实现的转换操作有:BCD码和整数及双整数间的转换,实数和双整数间的转换,数的取反、取补等。在STEP7中,整数和双整数是以补码形式表示的。BCD码数值有两种:一种是字(16位)格式的BCD码数,其数值范围从-999到+999;另一种是双,字(32位)格式的BCD码数,范围从-9 999 999到+9 999 999。,1.BCD码和整数转换为其他类型指令,BCD码与整数转换为其他类型指令有STL和LAD两种指令形式,指令、说明及示例如表11-5和表11-6所示。,在执行BCD码转换为整数或长整数指令时,如果BCD数是无效数(其中的一位值在1015范围内),将得不到正确的转换结果,并导致系统出现“BCDF”错误。在这种情况下,程序的正常运行顺序被终止,并有下述之一事件发生:(1)CPU将进入STOP状态。(2)如果OBl21已编程就调用。,由于3位BCD数所能表示的范围是从-999到+999,小于16位整数的数值范围,因此,一个整数到BCD数的转换,并不总是可行的。在执行ITB指令时,如果整数超出了BCD码所能表示的范围,在累加器1低字中将得不到有效的转换结果。同时,状态字中的溢出位(OV)和溢出保持值(OS)将被置为1。在程序中,一般需要根据状态位OV或OS判断累加器1低字中的结果是否有效,以免造成进一步的运算错误。基于相同的原因,在执行DTB指令(长整数转换为7位BCD码)时,也有类似问题需要注意。,2.整数与实数的取反取补指令,S7-300有5条整数与实数取反取补指令,每条指令都有STL和LAD两种形式。指令格式、说明和示例如表11-7和表11-8所示。,对累加器中的数求反码,即逐位将0变为1,1变为0。对累加器1中的整数求补码,则逐位取反,再对累加器1中的内容加1。对一个整数求补码相当于对该数乘以-1。实数取反是将符号位取反。取反是将累加器1的内容按字或,双字数据类型处理,而求补只有对整数或长整数才有意义。,3.实数和双整数间的转换指令,S7-300 PLC共有4条实数和双整数之间的转换指令,指令格式、说明和示例如表11-9和表11-10所示。,11.2.3 算术运算指令,在STEP 7中可以对整数、长整数和实数进行加、减、乘、除算术运算。算术运算指令在累加器1和2中进行,参与运算的第1操作数在累加器2中,第2操作数在累加器1中。算术运算的结果保存在累加器1中,累加器2中的值保持不变。CPU在进行算术运算时,不必考虑RLO,对RLO也不产生影响。然而算术运算指令对状态字的某些位将产生影响,这些位是:CCl和CC0,OV,OS。可以用位操作指令或条件跳转指令,对状态字中的标志位进行判断操作。,1.整数和双整数算术运算,使用整数算术运算指令,可以进行两个整数(16位和32位)之间的运算,整数算术运算指令格式和指令说明如表11-11所示,双整数算术运算指令格式和指令说明如表11-12所示。,下面的例子进行的运算是:将存储字MWl0,MW20中的整数相加,结果减5送入存储字MWl4;将存储双字MDl0,MDl6中的长整数相加,结果减1送入存储双字MD24。因为没有直接减去一个常数的指令,所以在程序中用加一个“负”常数代替。编程时应注意长整常数的正确表示法。,L MW10/将MWl0中的值装入累加器1,L MW20/将MW20中的值装入累加器1,累加器1中的原值移入累加器2,+I/将累加器1、2中的16位整数相加,+ -5/上次运算结果加上-5,T MW14/将新的结果送到MWl4,L MD10/将MDl0中的值装入累加器1,L MD16/将MDl6中的值装入累加器1,累加器1中的原值移入累加器2,+D/将累加器1、2中的32位整数相加,+L#-1/上次运算结果加上-1,T MD24/将新的结果送到MD24,2.实数算术运算,32位浮点数算术运算指令如表11-13,分为STL和LAD两种形式进行描述。,下面的例子显示如何使用实数算术运算指令:,L MD0 /将数据双字MD0的内容装入累加器1,L +12.3E+00 /将数值+12.3E+00装入累加器1,累加器1原值被移入累加器2,/R /累加器2的内容除以累加器1的内容,结果保存在累加器1中,T MD20 /将结果传送到MD20中(MD20MD0/12.3),NEGR /将累加器1中的实数取负,T MD24 /将结果传送到MD24(MD24-MD0/12.3),ABS /将累加器1中的实数求绝对值,T MD28 /将绝对值传送到MD28(MD28=ABS(MD24)),3.应用举例,【例11-1】图11-25为整数加法梯形图方块指令应用编程举例。,图11-25中,INl为被加数输入端,IN2为加数输入端,OUT为结果输出端。本例中,加数和被加数以及相加结果的数据类型均为整数(INT),它们可以存储在存储区I,Q,MD,L中。如果EN的信号状态为1,则进行整数加法操作。若结果在整数的表示范围之外,则状态字的OV,和OS位为1,且使ENO为0;若结果没有溢出,则状态字的OV位清0,OS位保持原状态,且使ENO为1;若EN为0,则不进行加法运算,此时ENO为0。当ENO为0时,方块之后被ENO连接的(串级排列)其它功能不执行。,下面是与图11-25梯形图完全对应的语句表程序。,A(,A I0.0,JNB -003,L MW0,L MW2,+I,T MW10,AN OV /若OV为1则RLO为0,否则RLO为1,SAVE /使BR=RLO,CLR,-003:A BR,),NOT,S Q4.0,【例11-2】 图11-26给出了一个有加减乘除运算的梯形图程序。实现的运算如下:,MW6(MW0+DBW3)*15/MW2,与图11-26实现相同运算的语句表程序如下。,A(,A(,L MW0,L DBW3,I,T MW100,AN OV,SAVE,CLR,A BR,),JNB -001,L MW100,L 15,*I,T MW102,AN OV,SAVE,CLR,-001:A BR,),JNB -002,L MW102,L MW2,/I,T MW6,-002:NOP 0,11.2.4 字逻辑运算指令,字逻辑指令将两个字(16位)或两个双字(32位)逐位进行逻辑运算。两个数中的一个在累加器1中,另一个可以在累加器2中或在指令中以立即数(常数)的方式给出,字逻辑运算指令的逻辑运算结果放在累加器l低字中,双字逻辑运算结果存放在累加器l中。累加器2的内容保持不变。,逻辑运算结果影响状态字的标志位。如果逻辑运算的结果为0,则CCl位被复位为0。如果逻辑运算的结果非0,则CCl被置为1。在任何情况下,状态字中的CC0,OV位都被复位为0。,字逻辑运算指令有STL和LAD两种形式,指令格式、说明如表11-14所示。,【例11-3】 图11-27为字和字相“与”指令的应用编程举例。INl为逻辑运算第一个数输入端,IN2为第二个数输入端,OUT为逻辑运算结果输出端。本例中,参与逻辑运算的数及结果均为字数据类型,它们可以存储在存储区I,Q,M,D,L中。如果EN的信号状态为l,则启动逻辑与指令,对由INl和IN2指定的数字逐位相“与”,且使ENO为1。若EN为0,则不进行逻辑“与”运算,此时ENO为0,ENO和EN有相同的信号状态。如果逻辑运算的结果非0,则CC1被置为l。在任何情况下,CC0和OV都被复位为0。,下是与图11-27梯形图完全对应的语句表程序。,A I0.0,JNB -001,L MW10,L 2# 0000 0000 0000 1111,AW,T MW2,SET,SAVE,CLR,-001:A BR,= Q4.0,11.3 应用举例,1.系统资源分配,根据控制要求,系统有两个按钮(启动按钮SB1和停止按钮SB2),三个电磁阀Y1Y3,一台搅拌电动机M1和一个测量机构。系统资源分配表如表11-15所示。,11.3.1 液体混合控制系统设计,2.PLC外部接线图,PLC外部接线图如图11-28所示。,3.PLC控制程序设计,(1)工作过程控制子程序FC1,FC1完成液体混合系统工作步序的控制,系统共分为5个循环工作步序。,工序1:按下启动按钮,液体A阀门Y1打开,液体A流入容器。控制程序如图11-29所示。,工序2:当液位达到30%时,进入工序2,关闭液体A阀门,打开液体B阀门。控制程序如图11-30所示。,工序3:当液面达到100%时,进入工序3,关闭液体B阀门,搅拌电动机开始工作,同时开始延时10s。控制程序如图11-31所示。,工序4:延时10s到后,进入工序4,关闭搅拌电动机,并打开混合液阀门。控制程序如图11-32所示。,工序5:当液体放空后,进入工序5,延时5s,延时到后关闭混合液阀门,并重新打开液体A阀门,进入下一个循环。控制程序如图11-33所示。,停止复位:任何时候按下停止按钮,系统进入复位状态。控制程序如图11-34所示。,(2)液位测量及比较功能子程序FC2,FC2主要完成液面高度的测量,并进行规格化处理,然后根据处理的结果判断电磁阀以及搅拌电动机的工作状态。在本例中,液面高度的30%用30.0来模拟,液面高度的100%用100.0来模拟。对于实际的系统,应根据实际液,体混合装置的高度进行取值。,测量结果的规范化处理:调用模拟量输入规格化处理功能FC105,直接读取PIW288模拟量输入通道测量值(0+32 768),并进行0100%的规范化处理,处理结果送入MD80。程序如图11-35所示。程序中使用M0.0的常开触点控制BIPOLAR端子,以实现对单极性数据进行规范化处理。,设置液面高度标志:当液面高度达到30%时,设置标志M1.0;当液面高度达到100%时,设置标志M1.1;当液面高度达到0(混合液体放空),设置标志M1.2。控制程序如图11-36所示。,(3)启动组织块OB100,为了保证在模拟量输入规范化功能FC105实现对单极性数据进行规范化处理,需生成一个常“0”信号M0.0,控制BIPOLAR端子。这个功能由启动组织块OB100在系统初,始化时完成。控制程序如图11-37所示。,CPU有3种启动方式:暖启动、热启动和冷启动。S7-300 CPU(不包括CPU 318)只有暖启动,用STEP7可以指定存储器位、定时器、计数器和数据块在电源掉电后的保持范围。在起动期间,不能执行时间驱动的程序和中断驱动的程序,运行时间计数器开始工作,所有的数字量输出信号都为“0”。,暖启动时,过程映像数据以及非保持的存储器位、定时器和计数器被复位。具有保持功能的存储器位、定时器、计数器和所有数据块将保留原数值。程序将重新开始运行,执行启动OB或OB1。,由下列原因CPU执行启动:POWER ON之后;模式开关从STOP到RUN时;通讯功能请求之后;多处理器的同步;在H系统中在连接上之后(仅适用于备用的CPU)。,启动用户程序之前,先执行启动OB。用户可以在OB100中编程,来设置CPU的初始化操作,例如用户程序开始运行时的初始值,I/O模块的起始值等。程序没有长度和时间的限制,因为循环时间监视还没有被激活,在起动程序中不能执行时间中断程序和硬件中断程序。,(4)主循环组织块OB1,除了OB100外,功能FC1和FC2必须通过OB1调用才能被执行并实现相应的控制功能和处理功能。控制程序如图11-38所示。,4.系统运行调试,在PLC关机状态下,按照PLC外部接线图11-28正确连结输入设备和输出设备。打开PLC电源,方式开关置于STOP状态下,将OB1、OB100、FC1、FC2下载到PLC中,然后将方式开关置于RUN状态下,运行程序。按下列步骤进行调试:按下启动按钮,液体A电磁阀打开,液体A流入,当液位达到30%时,关闭液体A电磁阀,液体B电磁阀打开,当液面高度达到100%时,关闭液体B电磁阀,启动搅拌电动机开始搅匀,搅拌电动机运行10s后,关闭搅拌电动机,同时打开混合液电磁阀,放出液体,当液体放空时,开始延时5s,延时时间到关闭混合液阀门,同时打开液体A阀门,开始下一个循环。在任意时刻按下停止按钮,系统都复位。,实现炉温的偏差控制功能,炉温给定值为600,控制的偏差为1%。当温度低于下限时启动加热器开始加热,加热温度超过上限则停止加热。炉子的实时温度由K型热电偶提供。,热电偶检测的温度由模拟量输入模块的PIW288通道输入,然后送给规范化功能FC105进行规范化数据处理,转换为在01000之间的一个实型物理量。将规范化后的物理量与炉温的上下限进行比较,以实现控制要求。炉温采集程序在OB35中编写,采样周期为500ms。,11.3.2 炉温控制系统设计,1.工作过程控制子程序FC1,工作过程控制子程序如图11-39所示。I0.0为启动按钮,I0.1为停止按钮。,2.启动组织块OB100,启动组织块生成一个常1信号,如图11-40所示。,3.循环中断组织块OB35,S7提供9个循环中断组织块(OB30OB38),用于按一定时间间隔循环执行中断程序。表11-16显示了循环中断OB默认的时间间隔和优先级。,循环中断的等距时间间隔,是由时间间隔和相位偏移量确定。,循环中断OB每一次运行的时间一定要短于中断的间隔。如果一个循环中断OB没有执行完,循环中断时间到,又要求循环中断OB运行,则时间错误组织块OB80启动,循环中断导致错误程序的运行。,表11-17描述了循环中断组织块OB的临时变量(TEMP),变量名称是OB35的缺省名称。,CPU318只能使用OB32和OB35,其余的S7-300 CPU只能使用OB35。,没有专用的SFC来激活和禁止循环中断,可以用SFC40和SFC39来激活和禁止循环中断。SFC40“EN_IRT”是用于激活新的中断和异步错误,其参数MODE为0时激活所有的中断和异步错误,为1时激活部分中断和错误,为2时激活指定的OB编号对应的中断和异步错误。SFC39“DIS_IRT”禁止新的中断和异步错误,MODE为2时禁止指定的OB编号 对应的中断和异步错误,MODE是字节数据类型,必须用十六进制数来设置。,如果禁止了中断和异步故障,会影响所有的优先级,“DIS_IRT”影响的消除只能通过调用SFC40“EN_IRT”或者暖启动或者冷启动。,在本题中,在OB35中编写输入模块采集的数值转换为实际温度值,采样周期在CPU的属性中设置。程序如图11-41所示。,项目小结,本项目以液体混合装置的PLC控制为例引出了算术运算指令、转换指令和字逻辑指令等数字指令的格式、特点及使用。在进行模拟量信号的处理时要用到数字指令,根据处理任务的不同可以灵活选用字处理指令。,液体混合控制属于顺序控制任务,在进行顺序控制时,要注意开始下一步任务时要先停止上一步任务。,习题及思考题,另外,在液体混合控制和炉温控制程序中,引出了启动组织块OB100、OB35的使用方法及用途。OB100是S7-300 CPU的暖启动方式,使用该组织块可以完成用户程序初始值的设置。OB35是循环中断组织块,可以实现按固定时间间隔运行的程序,比如模拟量的采集。,11-1 一台用于销售汽水和咖啡的自动售货机,具有硬币识别、币值累加、自动售货、自动找钱等功能,此售货机可接受的硬币为0.1元、0.5元和1元。汽水的售价为1.2元,咖啡的售价为1.5 元。其示意图如图11-42所示。,(1)当投入的硬币总值超过1.2元时,汽水指示灯亮,当投入的硬币总值超过1.5元时,汽水和咖啡的指示灯都亮。,(2)当汽水指示灯亮时,按汽水按钮,则汽水从售货口自动售出,汽水指示灯闪烁(闪烁频率为1s ON,1s OFF),8s后自动停止。,(3)当咖啡指示灯亮时,按咖啡按钮,则咖啡从售货口自动售出,咖啡指示灯闪烁(闪烁频率为1s ON,1s OFF),8s后自动停止。,(4)当按下汽水按钮或咖啡按钮后,如果投入的硬币总值超过所需钱数时,找钱指示灯亮,售货机自动退出多余的钱,8s后自动停止。,(5)如果售货口发生故障,或顾客投入硬币后又不想买了(未按汽水按扭,或咖啡按钮),可按复位按钮,则售货机可如数退出顾客已投入的硬币。,(6)具有销售数量和销售金额的累加功能。,11-2在FC1中编写炉窑温度控制程序,当进气电磁阀打开时,热气流进入炉窑,炉窑温度上升。控制规则为:,(1)如果检测温度低于设定值的50%,则进气阀打开的占空比为100%。,(2)如果检测温度高于设定值的50%,且低于设定值的80%,则进气阀打开的占空比为70%。,(3)如果检测温度高于设定值的80%,且低于设定值的90%,则进气阀打开的占空比为50%。,(4)如果检测温度高于设定值的90%,且低于设定值的100%,则进气阀打开的占空比为30%。,(5)如果检测温度高于设定值的100%,且低于设定值的102%,则进气阀打开的占空比为10%。,(6)如果检测温度高于设定值的102%,则进气阀打开的占空比为0%。,11-3在FC1中编写模拟量液位值的处理程序,要求:液位高度传感器测量值范围为0800mm,当液位值低于100mm时,打开进料阀门,当液位高于600mm时,关闭进料阀门。,演讲完毕,谢谢观看!,内容总结,项目11 液体混合装置控制。UCM:MANA测量电路的输入和参考电位之间的电位差。如果使用的是不带隔离的传感器,必须将MANA连接至本地接地。模拟量量程的上、下限(100%)分别对应于十六进制的模拟值6C00H和9400H。为了减少扫描时间,可使用编程软件STEP7中的硬件组态工具屏蔽未用的模拟量输入通道。ENO的信号状态将置0,RET_VAL被设置为W#16#0008。若结果在整数的表示范围之外,则状态字的OV。将规范化后的物理量与炉温的上下限进行比较,以实现控制要求。OB100是S7-300 CPU的暖启动方式,使用该组织块可以完成用户程序初始值的设置。(1)如果检测温度低于设定值的50%,则进气阀打开的占空比为100%。(6)如果检测温度高于设定值的102%,则进气阀打开的占空比为0%。演讲完毕,谢谢观看,
展开阅读全文