对于自动化控制系统来说,主要处理对象无外乎数字量和模拟量,很多刚接触自动化的新人对于模拟量可能还不是很熟悉,这里以西门子plc300为例详细讲一下,其实模拟量处理如很简单。
1、 模拟量输入/输出量程转换的概念
实际工程中,我们要面对很多工程量,如压力、温度、流量、物位等,他们要使用各种类型传感器进行测量,传感器再将测量值通过输出标准电压、电流、温度或电阻信号供 PLC 采集,PLC的模拟量输入模板将该电压、电流、温度、或电阻信号等模拟量转换成数字量—整xing数 (INT) 。在 PLC 程序内部要对相应的信号进行比较、运算时,二七区变频柜,常需将该信号转换成实际物理值,这样这个数值才具有实际意义。相反,我们要控制一些执行机构(如比例阀,电动阀等)需要将控制值转换成与实际工程量对应的整xing数,再经模拟量输出模板转换成电压、电流信号去控制现场执行机构。要完成输入、输出模拟量转换,就需要在程序中调用功能块完成量程转换。
例如一个压力调节回路中,压力变送器输出 4-20mA DC 信号到 SM331 模拟量输入模板,SM331 模板将该信号转换成 0-27648 的整xing数,然后在程序中要调用 FC105 将该值转换成 0-10.0 (MPa )的工程量(实数),经 PID 运算后得到的结果仍为实数,要用 FC106 转换为对应阀门开度 0-100% 的整xing数 0-27648 后,经 SM332 模拟量输出模板输出 4-20mA DC 信号到调节阀的执行机构。
2、STEP 7调用FC105,FC106进行模拟量转换编程
2.1 FC105/FC106 在哪里
在编程界面下,在 Program elements 中的 Libraries 下的 Standard Library 下的 TI-S7
Converting Blocks 中就可以找到,见下图:
模拟量
模拟量
注意: 请不要使用 S5-S7 Converting Blocks 下的 FC105, FC106 ,该路径下的功能是用于 S5输入输出模板的,在 S7 输入输出模板上无法使用。
2.1.1 FC105 功能描述
SCALE (FC105 )功能将一个整xing数 INTEGER (IN)转换成上限、下限之间的实际的工程值(Li_LIM and HI_LIM) ,结果写到 OUT 。公式如下:
OUT = [ ((FLOAT (IN) – K1)/(K2 –K1)) * (HI_LIM –Li_LIM)] + Li_LIM
常数 K1 和 K2 的值取决于输入值( IN)是双极性 BIPOLAR 还是单极性 UNIPOLAR 。
双极性 BIPOLAR :即输入的整xing数为 – 27648到 27648 ,此时
K1 = – 27648.0,
K2 =+27648.0
单极性 UNIPOLAR :即输入的整xing数为 0 到 27648 ,此时 K1 = 0.0 , K2 = +27648.0如果输入的整xing数大于 K2 ,输出 (OUT) 限位到 HI_LIM, 并返回错误代码。 如果输入的整xing数小于 K1,输出限位到 Li_LIM ,并返回错误代码。diangon.com版权所有!反向定标的实现是通过定义 Li_LIM > HI_LIM 来实现的。反向定标后的输出值随着输入值的增大而减小。
2.1.2 FC106 功能描述
UNSCALE (FC106 )功能将一个实数 REAL (IN) 转换成上限、下限之间的实际的工程值
(Li_LIM and HI_LIM) ,数据类型为整xing数。结果写到 OUT 。公式如下:
OUT = [ ((IN –Li_LIM)/(HI_LIM –Li_LIM)) * (K2 –K1) ] + K1
常数 K1 和 K2 的值取决于输入值( IN)是双极性 BIPOLAR 还是单极性 UNIPOLAR 。
如果输入值在下限 Li_LIM 和上限 HI_LIM 的范围以外,输出 (OUT) 限位到与其相近的上限或下限值(视其单极性 UNIPOLAR 或双极性 BIPOLAR 而定),并返回错误代码。
2.2下面给大家举个例子:
如输入 I0.0 为 1, SCALE 功能被执行。下面的例子中,整xing数 22 将被转换成 0.0 到 100.0 的实数并写到 OUT。输入是双极性 BIPOLAR ,用 I2.0 来设置。
程序中调用的FC105
执行前:
IN----------------------MW10=22
HI_LIM---------------MD20=100.0
Li_LIM--------------MD30=0.0
OUT-------------------MD40=0.0
BIPOLAR------------I2.0=TRUE
执行后:
OUT------------------MD40=50.03978588
机型选择的基本原则是在满足控制功能要求的前提下,保证系统工作可靠、维护使用方便及的性能价格比。具体应考虑的因素如下所述。
1、结构合理
对于工艺过程比较固定、环境条件较好(维修量较小)的场合,选用整体式结构PLC,其他情况则选用模块式结构PLC。
2、功能、规模相当
对于开关量控制的工程项目,对其控制速度无需考虑,一般的低档机就能满足要求。对于以开关量控制为主,带少量模拟量控制的工程项目,可选用低档机。对于控制比较复杂,控制功能要求更高的工程项目,例如要求实现PID运算、闭环控制、通信联网等,可视控制规模及复杂的程度选用中档或更高。其搞挡主要用于大规模过程控制、全PLC的分布式控制系统以及整个工厂的自动化等。
3、机型统一
一个大型企业应尽量做到机型统一。因为同一机型的PLC,其模块可互换,便于备用品、备件的采购和管理;其功能及编程方法统一,有利于技术力量的培训、技术水平的提高和功能的开发;其外部设备通用,资源可共享,配以上位计算机后,可把控制各单独的系统的多台PLC连成一个多级分布式控制系统,相互通信,集中管理。
二、容量的选择
PLC的容量包括用户存储器的存储容量(字数)和I/O点数两方面的含义。PLC容量的选择除满足控制要求外,还应留有适当的裕量以作备用。
通常,一条逻辑指令占存储器一个字,计时、计数、移位以及算术运算、数据传送等指令占存储器两个字。各种指令占存储器的字数可查阅PLC产品使用手册。
在选择存储器容量时,一般可按实际需要的25%考虑裕量。通常I/O点数可按实际需要的10%~15%考虑裕量。
三、指令系统的选择
由于可编程控制器应用的广泛性,各种机型所具备的指令系统也就不完全相同。从工程应用角度看,有些场合仅需要逻辑运算,有些场合需要复杂的算术运算,而且一些特殊场合还需要专用指令功能。从可编程控制器本身来看,各个厂家的指令差异较大,但从整体上来说,指令系统都是面向工程技术人员的语言,其差异主要表现在指令的表达方式和指令的完整性上。有些厂家在控制指令方面开发得较全,有些厂家在数字运算指令方面开发得较全,而大多数厂家在逻辑指令方面都开发得较完善。在选择机型时,应从指令系统方面注意下述内容:
(1)指令系统的总语句数。它反映了整个指令所包括的全部功能。
(2)指令系统的种类。主要应包括逻辑指令、运算指令和控制指令,具体的需求则与实际要完成的控制功能有关。
(3)指令系统的表达方式。指令系统表达方式有多种,有的包括梯形图、控制系统流程图、语句表、顺控图、高记语言等多种表达方式;有的只包括其中一种或两种表达方式。
(4)应用软件的程序结构。程序结构有模块化的程序结构和子程序式的程序结构,前一种有利于应用软件编写和调试,但处理速度慢,后一种响应速度快,但不利于编写和现场调试。
(5)软件开发手段。在考虑指令系统这一性能时,还要考虑到软件的开发手段。有的厂家在此基础上还开发了专用软件,可利用通用的微型机(例如IBM-PC)作为开发手段,这样就更加方便了用户的需要。
四、I/O模块的选择
I/O部分的价格占PLC价格的一半以上,不同的I/O模块,由于其电路和性能不同,全自动变频柜,直接影响着PLC的应用范围和价格,应该根据实际情况合理选择。
1、输入模块的选择
输入模块的作用是接收现场的输入信号,并将输入的高电平信号转换为PLC内部的低电平信号。输入模块的种类,按电压分类有直流5V、12V、24V、48V、60V,交流115V、220V。按电路形式不同分为汇点输入式和分隔输入式两种。
选择输入模块时应注意:
(1)电压的选择。应根据现场设备与模块之间的距离来考虑,一般5V、12V、24V属低电压,其传输距离不宜太远。如5V模块远不得超过10m,创新的变频柜,距离较远的设备应选用较高电压的模块。
(2)同时接通的点数。高密度的输入模块(32点、64点)同时接通的点数取决于输入电压和环境温度,一般来讲,同时接通的点数不要超过输入点数的60%。
(3)门槛电平。为了提高控制系统的可靠性,必须考虑门槛电平的大小。门槛电平越高,抗干扰能力越强,传输距离也就越远。
2、输出模块的选择
输出模块的作用是将PLC的输出信号传递给外部负载,并将PLC内部的低电平信号转换为外部所需电平的输出信号。输出模块按输出方式不同分为继电器输出、晶体管输出和双向可控硅输出三种。此外,输出电压和输出电流也各有不同。
选择输出模块时应注意:
(1)输出方式的选择。继电器输出的价格便宜,适用电压范围较宽,导通压降小。但它是原有触点元件,其动作速度较慢、寿命较短,因此适用于不频繁通断的负载。当驱动感负载时其max通断频率不得超过1Hz。对于频繁通断的低功率因数的电感负载,应采用无触点开关元件,即选用晶体管输出(直流输出)或双向可控硅输出(交流输出)。
(2)输出电流。输出模块的输出电流必须大于负载电流的额定值。模块输出电流的规格很多,应根据实际负载电流的大小选择。
(3)同时接通的点数。输出模块同时接通点数的电流累计值必须小于公共端允许通过的电流值。通常同时接通的点数不宜超过输出点数的60%。
五、电源模块的选择
电源模块的选择很简单,只需考虑输出电流。电源模块的额定输出电流必须大于CPU模块、I/O模块、专用模块等消耗电流的总和,并留有一定的裕量。在选择电源模块时一般应考虑以下几点:
(1)电源模块的输入电压。电源模块可以包括各种各样的输入电压,有220V交流、110V交流和24V直流等。在实际应用中要根据具体情况选择,确定了输入电压后,也就确定了系统供电电源的输出电压。
(2)电源模块的输出功率。在选择电源模块时,完善的变频柜,其额定输出功率必须大于CPU模块、所有I/O模块等总的消耗功率之和,并且要留有30%左右的裕量。当同一电源模块既要为主机单元又要为扩展单元供电时,从主机单元到远一个扩展单元的线路压降必须小于0.25V。
(3)扩展单元中的电源模块。在有的系统中,由于扩展单元中安装有智能模块及一些特殊模块,就要求在扩展单元中安装相应的电源模块。这时相应的电源模块输出功率可按各自的供电范围计算。
(4)电源模块接线。选定了电源模块后,还要确定电源模块的接线端子和连接方式,以便正确地进行系统供电的设计。一般的电源模块的输入电压是通过接线端子与供电电源相连的,而输出信号通过总线插座与可编程控制器CPU的总线相连。
(5)系统的接地。电源模块接地线选择不小于10mm2的铜导线。与交流稳压器、UPS不间断电源、隔离变压器等及系统的接地之连线尽可能短;系统的地线也要和机壳相连。
(6)使用环境条件。在选择PLC时,要考虑使用现场的环境条件是否符合它的规定。一般要考虑的有:环境温度、相对湿度、电源允许波动范围和抗干扰等指标。
前几天有个朋友问了个有关于S7-1200PLC中的模拟量的转换问题,他跟我说S7-300中有FC105和FC106用于做模拟量的转换过程,S7-200 中也有scaling转换库指令,可以用于模拟的转换。但在S7-1200中为什么就没有相应的库去做转换呢?
对于S7-1200的PLC来讲,并没有S7-300中使用到的FC105和FC106这两个块的,但是做法有要几种,这里跟大家说两种方法:
(方法一)S7-1200中提供了两条指令供大家使用,大家在使用者两条指令时,就可以用于完成模拟量的转换过程。(1)NORM_X:标准化 (2)SCALE_X:缩放
(1)NORM_X:标准化
“标准化”指令,通过将输入 VALUE 中变量的值映射到线性标尺对其进行标准化。 可以使用参数 MIN 和 MAX 定义范围的限值。 输出 OUT 中的结果经过计算并存储为浮点数,这取决于要标准化的值在该值范围中的位置。 如果要标准化的值等于输入 MIN 中的值,则输出 OUT 将返回值“0.0”。 如果要标准化的值等于输入 MAX 的值,则输出 OUT 需返回值“1.0”。如果是用于模拟量的转换,则MIN和MAX表示的就是我们模拟量模块输入信号对应的数字量的范围,而VALUE表示的就是我们的模拟量模块的采用值。如下图所示:
(2)SCALE_X:缩放
“缩放”指令,通过将输入 VALUE 的值映射到指顶的值范围来对其进行缩放。 当执行“缩放”指令时,输入 VALUE 的浮点值会缩放到由参数 MIN 和 MAX 定义的值范围。 缩放结果为整数,存储在 OUT 输出中。
所以通过这两个指令,我们就可以实现模拟量的转换过程。如下图所示:
(方法二) 可以自己通过转换指令(CONVERT)及数学函数中的计算指令(CALCULATE),按照模拟量的转换公式编写这个计算指令。
模拟量转换公式:
编写计算公式时,首先定义好各个管脚所对应的公式中的名称,
IV:IN1
Ish:IN2
Isl:IN3
Osh:IN4
Osl:IN5
OV:OUT
在生产的指令上面输入相应的参数即可:
当然在会用的过程中,也可以直接使用带参数的FC按照模拟量的转换公式去编写相应的程序。若有不对之处请指正,谢谢
来源:我爱学PLC
免责声明:本文系网络转载,版权归原作者所有,如有涉及版权问题,请联系QQ1341825078!
想成为工业机器人应用工程师吗?看这里
▼
工业机器人应用(调试)工程师成长计划
姓名: | 王继刚 ( 销售经理 ) |
手机: | 18903837318 |
业务 QQ: | 272925472 |
公司地址: | 河南省郑州市高新区继飞机电 |
电话: | 0371-55581867 |
传真: | 0371-55581867 |
Copyright © 2025 继飞机电 版权所有