PLC模拟量(工程量)转化的方法

PLC模拟量(工程量)转化的方法
PLC模拟量(工程量)转化的方法

PLC模拟量(工程量)转化的方法

1、基本概念

我们生活在一个物质的世界中。世间所有的物质都包含了化学和物理特性,我们是通过对物质的表观性质来了解和表述物质的自有特性和运动特性。这些表观性质就是我们常说的质量、温度、速度、压力、电压、电流等用数学语言表述的物理量,在自控领域称为工程量。这种表述的优点是直观、容易理解。在电动传感技术出现之前,传统的检测仪器可以直接显示被测量的物理量,其中也包括机械式的电动仪表。

2、标准信号

在电动传感器时代,中央控制成为可能,这就需要检测信号的远距离传送。但是纷繁复杂的物理量信号直接传送会大大降低仪表的适用性。而且大多传感器属于弱信号型,远距离传送很容易出现衰减、干扰的问题。因此才出现了二次变送器和标准的电传送信号。二次变送器的作用就是将传感器的信号放大成为符合工业传输标准的电信号,如0-5V、0-10V或4-20mA(其中用得最多的是4-20mA)。而变送器通过对放大器电路的零点迁移以及增益调整,可以将标准信号准确的对应于物理量的被检测范围,如0-100℃或-10-100℃等等。这是用硬件电路对物理量进行数学变换。中央控制室的仪表将这些电信号驱动机械式的电压表、电流表就能显示被测的物理量。对于不同的量程范围,只要更换指针后面的刻度盘就可以了。更换刻度盘不会影响仪表的根本性质,这就给仪表的标准化、通用性和规模化生产带来的无可限量的好处。

3、数字化仪表

到了数字化时代,指针式显示表变成了更直观、更精确的数字显示方式。在数字化仪表中,这种显示方式实际上是用纯数学的方式对标准信号进行逆变换,成为大家习惯的物理量表达方式。这种变换就是依靠软件做数学运算。这些运算可能是线性方程,也可能是非线性方程,现在的电脑对这些运算是易如反掌。

4、信号变换中的数学问题

信号的变换需要经过以下过程:物理量-传感器信号-标准电信号-A/D转换-数值显示。

声明:为简单起见,我们在此讨论的是线性的信号变换。同时略过传感器的信号变换过程。

假定物理量为A,范围即为A0-Am,实时物理量为X;标准电信号是B0-Bm,实时电信号为Y;A/D转换数值为C0-Cm,实时数值为Z。

如此,B0对应于A0,Bm对应于Am,Y对应于X,及Y=f(X)。由于是线性关系,得出方程式为Y=(Bm-B0)*(X-A0)/(Am-A0)+B0。又由于是线性关系,经过A/D转换后的数学方程Z=f(X)可以表示为Z=(Cm-C0)*(X-A0)/(Am-A0)+C0。那么就很容易得出逆变换的数学方程为X=(Am-A0)*(Z-C0)/(Cm-C0)+A0。方程中计算出来的X就可以在显示器上直接表达为被检测的物理量。

5、PLC中逆变换的计算方法

以S7-200和4-20mA为例,经A/D转换后,我们得到的数值是6400-32000,及C0=6400,Cm=32000。于是,X=(Am-A0)*(Z-6400)/(32000-6400)+A0。

例如某温度传感器和变送器检测的是-10-60℃,用上述的方程表达为

X=70*(Z-6400)/25600-10。经过PLC的数学运算指令计算后,HMI可以从结果寄存器中读取并直接显示为工程量。

用同样的原理,我们可以在HMI上输入工程量,然后由软件转换成控制系统使用的标准化数值。

在S7-200中,(Z-6400)/25600的计算结果是非常重要的数值。这是一个0-1.0(100%)的实数,可以直接送到PID指令(不是指令向导)的检测值输入端。PID指令输出的也是0-1.0的实数,通过前面的计算式的反计算,可以转换成6400-32000,送到D/A端口变成4-20mA输出。

以上讲述的是PLC中工程量转换的基本方法,程序的编写则因人、因事而异。但是万变不离其衷。如果大家感兴趣,我可以给出自己编写的程序供大家参考,同时也希望各位网友不吝赐教、互相交流。

可以使用FC105 FC106,你可以搜一下就会得到好多,当然也可以自己处理。

回答者:qiushuiwuhen - 初级技术员第5级 2009-6-23 10:19

4-20ma的信号在PLC中是以一个字的整数表示的,比如模拟输入为IW或PIW,模拟输出为QW 或PQW,数值范围为0--27648(另外如果是双极性信号如-5V--+5V范围为-27648--+27648)与4--20ma是线性对应的,程序中需要将该模拟量对应的整数转换为实数,再进行线性比例变换为4--20ma对应的实数型工程量即可。

在Step7中程序自带功能FC105可以实现上述计算,使用起来很方便,你只需要填写功能子程序的几个输入,输出参数即可。可以查看自带的说明文件。介绍很详细。

回答者:fengdan111 - 资深学长第3级 2009-6-23 10:29

最简单的就是用MOVE来做,直接把模拟量的地址与接线地址对应好.S7-300中模拟量模块有量程选择,按照你的实际信号对应.楼上说的FC105 FC106当然也可以,FC105 是读,FC106是写,用这个不需要怎样换算.楼主需要资料的话可以加我QQ,我可以传你些资料.QQ:80291327

回答者:huanghuang - 中级工程师第10级 2009-6-23 10:35

1、FC105是处理模拟量(1~5V、4~20MA等常规信号)输入的功能块,在中,打开

Libraries\standard library\Ti-S7 Converting Blocks\fc105,将其调入OB1中,给各个管脚输入地址;

其中,管脚的定义如下:

IN---------模拟量模块的输入通道地址,在硬件组态时分配;

HI_LIM---现场信号的最大量程值;

LO_LIM--现场信号的最小量程值;

BIPOLAR—极性设置,如果现场信号为+10V~-10V(有极性信号),则设置为1,

如果现场信号为4MA~20MA(无极性信号);则设置为0;

OUT-------现场信号值(带工程量单位);信号类型是实数,所以要用MD200来存放;

RET_VAL-FC105功能块的故障字,可存放在一个字里面。如:MW50;

回答者:barry - 顶级工程师第12级 2009-6-23 10:36

如你所说的,西门子PLC里4-20ma模拟量信号接PIW模拟量输入点,传给PLC的是0-27648

的数据,也就是你的量程对应0-27648.

不过PIW是浮点数,你要用程序把它转化成实数,再对应你的量程。

我的程序如下:

#a move #b1

#b1 I-DI #b2

#b2 DI-R #c

#c MUL-R #d

#b

a b c d都是中间变量

这是我做的一个简单的模拟量转换系统,你可以把他放在一个FC块里,如FC1,你到时候直接调

用就行。调用如下:

FC1

piw a

x b d db2.dbd0

这里piw是你的模拟量输入点,x=量程|27648,db2.dbd0就是你最后换算过来的实际值。

回答者:迷茫人在线上- 毕业实践员第4级 2009-6-23 11:00

发了邮件给你

假设模拟量的标准电信号是A0—Am(如:4—20mA),A/D转换后数值为D0—Dm(如:6400—32000),设模拟量的标准电信号是A,A/D转换后的相应数值为D,由于是线性关系,函

数关系A=f(D)可以表示为数学方程:

A=(D-D0)×(Am-A0)/(Dm-D0)+A0。

根据该方程式,可以方便地根据D值计算出A值。将该方程式逆变换,得出函数关系D=f(A)可

以表示为数学方程:

D=(A-A0)×(Dm-D0)/(Am-A0)+D0。

具体举一个实例,以S7-200和4—20mA为例,经A/D转换后,我们得到的数值是6400—32000,

即A0=4,Am=20,D0=6400,Dm=32000,代入公式,得出:

A=(D-6400)×(20-4)/(32000-6400)+4

假设该模拟量与AIW0对应,则当AIW0的值为12800时,相应的模拟电信号是6400×16/25600

+4=8mA。

又如,某温度传感器,-10—60℃与4—20mA相对应,以T表示温度值,AIW0为PLC模拟量采

样值,则根据上式直接代入得出:

T=70×(AIW0-6400)/25600-10

可以用T 直接显示温度值。

模拟量值和A/D转换值的转换理解起来比较困难,该段多读几遍,结合所举例子,就会理解。为了

让您方便地理解,我们再举一个例子:

某压力变送器,当压力达到满量程5MPa时,压力变送器的输出电流是20mA,AIW0的数值是32000。可见,每毫安对应的A/D值为32000/20,测得当压力为0.1MPa时,压力变送器的电流

应为4mA,A/D值为(32000/20)×4=6400。由此得出,AIW0的数值转换为实际压力值(单位

为KPa)的计算公式为:

VW0的值=(AIW0的值-6400)(5000-100)/(32000-6400)+100(单位:KPa)

回答者:塞上雁- 中级工程师第10级 2009-6-23 11:23

请见有关资料:

下载:

https://www.360docs.net/doc/6d8754665.html,/CN/llisapi.dll?query=SM331%3B+AI+8x12+%E4%BD%8

D%E5%85%A5%E9%97%A8%E6%8C%87%E5%8D%97&func=cslib.cssearch&content=skm%

2Fmain.asp&lang=zh&siteid=cseus&objaction=cssearch&searchinprim=0&nodeid0=4000024&x

=33&y=7

《SM331信息集要(更新版)(2008.03.05)》下载:

https://www.360docs.net/doc/6d8754665.html,/download/searchResult.aspx?searchText=F0220

回答者:阿鸣- 高级顾问第14级 2009-6-23 11:28

模拟量输入模块的模数转换结果为:0-32000

以4~20mA电流信号为例,由于S7 200的电流信号组态只有有0~20mA可供选择,且0~20mA

对应于0~32000,所以4~20mA对应于6400~32000。设工程量的上限、下限分别为A、B,实时

采集转换的整型变量输入为X, 则对应的实际物理量Y的计算如下:

(Y-A) / (B-A) = (X-6400) / (32000-6400)

整理后得:Y=(B-A)*(X-6400)/25600+A

回答者:pianzhouyiye - 中级工程师第10级 2009-6-23 13:17

使用FC105和FC106,按F1查看帮助。

回答者:lbgk - 中级工程师第10级 2009-6-23 16:13

推荐你看本书,廖常初的s7200编程及应用,有详实例子。

为什么SM 334模块以四线接法测量PT100温度传感器时会显示不正确的值?

显示订货号

描述

可能的原因是在针脚4和5之间(针对通道0和通道1)或者针脚11和13之间(针对通道2和通道3)不正确的跳线连接。

背景知识:

如果在模块接线端上插入了跳线,在实际测量的信号上会增加压降,这是由于给PT100提供的恒定电流产生的。这将对测量值产生影响。

隔离跳线与PT100的距离因此应当尽可能近。

下图是通道0和通道1测量电阻时在SM334模块接线端互联的示意。

图. 01:带跳线连接的SM334(除去SM 334 AI 4/A0 2 x 12 bit)

说明

更多关于此主题的信息可参见手册"SIMATIC Programmable Logic Controllers S7-300 Module Data" ,条目号8859629.

关接词

接线, 硬件组态

1、SM334技术规范

2、SM334接线图

4到20ma模拟量转换公式

4到20ma模拟量转换公式 大家可能会非常熟悉RS232,RS485,CAN等工业上常用的总线,他们都是传输数字信号的方式。那么,我们用什么方式来传输模拟信号呢?工业上普遍需要测量各类非电物理量,例如温度、压力、速度、角度等,这些都需要转换成模拟量电信号才能传输到几百米外的控制室或显示设备上。工业上最广泛采用的是用4~20mA电流来传输模拟量。 采用电流信号的原因是不容易受干扰,因为工业现场的噪声电压的幅度可能达到数V,但是噪声的功率很弱,所以噪声电流通常小于nA 级别,因此给4-20mA传输带来的误差非常小;电流源内阻趋于无穷大,导线电阻串联在回路中不影响精度,因此在普通双绞线上可以传输数百米;由于电流源的大内阻和恒流输出,在接收端我们只需放置一个250欧姆到地的电阻就可以获得0-5V的电压,低输入阻抗的接收器的好处是nA级的输入电流噪声只产生非常微弱的电压噪声。 上限取20mA是因为防爆的要求:20mA的电流通断引起的火花能量不足以引燃瓦斯。下限没有取0mA的原因是为了能检测断线:正常工作时不会低于4mA,当传输线因故障断路,环路电流降为0。常取2mA作为断线报警值。电流型变送器将物理量转换成4~20mA电流输出,必然要有外电源为其供电。最典型的是变送器需要两根电源线,加上两根电流输出线,总共要接4根线,称之为四线制变送器。当然,

电流输出可以与电源公用一根线(公用VCC或者GND),可节省一根线,所以现在基本上将四线制变送器称之为三线制变送器。其实大家可能注意到,4-20mA电流本身就可以为变送器供电,变送器在电路中相当于一个特殊的负载,这种变送器只需外接2根线,因而被称为两线制变送器。工业电流环标准下限为4mA,因此在量程范围内,变送器通常只有24V,4mA供电(因此,在轻负载条件下高效率的DC/DC电源(TPS54331,TPS54160),低功耗的传感器和信号链产品、以及低功耗的处理器(如MSP430)对于两线制的4-20mA收发非常重要)。这使得两线制传感器的设计成为可能而又富有挑战。

模拟量换算

模拟量的输入/输出都可以用下列的通用换算公式换算:Ov = [(Osh - Osl)*(Iv - Isl)/(Ish - Isl)] + Osl 其中: Ov: 换算结果 Iv: 换算对象 Osh: 换算结果的高限 Osl: 换算结果的低限 Ish: 换算对象的高限 Isl: 换算对象的低限 转换模拟量值到工程量值 问题: 是否有功能块能转换模拟量值到工程量值? 解答: 在Step7 中,standard library T1-S7 Converting Blocks FC105。 例如:转换一个模拟量PIW256到0.0~200.0工程范围 Call FC105 IN:=PIW256 (模拟量,范围-27648~27648) HI_LIM:=200.0 (上限) LO_LIM:=0.0 (下限) BIPOLAR:=M2.1 (极性 如M2.1为1,对应的PIW256 为-27648~27648; 如M2.1为0,对应的PIW256为0~27648) RET_V AT:=MW4 (错误返回值) OUT:=MD50 (工程值

例子:从0到10V的值中输入到插在插槽6的模拟模块中。目前这个值是一个整数(16位),应该规格化100到1000之间的REAL格式,并以双字MD10保存在位储存器中。 语句表的解决方案: L PIW 288 //0到10V的模拟量输入包含0到27648个整数(16位) ITD //16位整数值转换成32位整数 DTR //32位整数转化成实数 L 2.7648e+4 // /R //除以实数27648 L 9.000e+2 // *R // 乘以实数***(1000-100) L 1.000e+2 // +R // 加上实数100(补偿值) T MD10 //把100到1000规格化成REAL格式

S7-300 PLC模拟量输入输出量程转换教程

S7-300/400 PLC模拟量输入/输出的量程转换 SLC A&D CS March, 2005

1模拟量输入/输出量程转换的概念 (3) 2S7-300/400 PLC模拟量输入/输出模板 (3) 2.1需要使用的模板 (3) 2.2涉及的信号类型 (3) 3STEP 7中模拟量输入/输出的编程 (3) 3.1FC105/FC106在哪里 (3) 3.2FC105/FC106功能描述 (5) 3.2.1FC105功能描述 (5) 3.2.2FC106功能描述 (5) 3.3FC105/FC106参数定义 (6) 3.3.1FC105 的参数定义 (6) 3.3.2FC106的参数定义 (6) 3.4例子程序 (7) 3.4.1FC105例子程序 (7) 3.4.2FC106例子程序 (8)

1模拟量输入/输出量程转换的概念 实际的工程量,如压力、温度、流量、物位等要采用各种类型传感器进行测量。传感器将输出标准电压、电流、温度、或电阻信号供PLC采集,PLC的模拟量输入模板将该电压、电流、温度、或电阻信号等模拟量转换成数字量——整形数(INTEGER)。在PLC程序内部要对相应的信号进行比较、运算时,常需将该信号转换成实际物理值(对应于传感器的量程)。而经程序运算后得到的结果要先转换成与实际工程量对应的整形数,再经模拟量输出模板转换成电压、电流信号去控制现场执行机构。这样就需要在程序中调用功能块完成量程转换。 如一个压力调节回路中,压力变送器输出4-20mA DC信号到SM331模拟量输入模板, SM331模板将该信号转换成0-27648的整形数,然后在程序中要调用FC105将该值转换成0-10.0(MPa)的工程量(实数),经PID运算后得到的结果仍为实数,要用FC106转换为对应阀门开度0-100%的整形数0-27648后,经SM332模拟量输出模板输出4-20mA DC信号到调节阀的执行机构。 本文主要讨论S7-300/400 PLC编程中模拟量的量程转换。 2S7-300/400 PLC模拟量输入/输出模板 2.1需要使用的模板 使用西门子S7-300/400 PLC进行模拟量输入/输出需要使用的模板: S7-300系列PLC:SM331系列模拟量输入模板;SM332系列模拟量输出模板;SM334/335系列模拟量输入/输出模板。 S7-400系列PLC:SM431系列模拟量输入模板;SM432模拟量输出模板。 目前常用的模板规格型号参见模板手册,请链接到如下网址下载模板手册: S7-300: https://www.360docs.net/doc/6d8754665.html,/WW/view/en/8859629 S7-400: https://www.360docs.net/doc/6d8754665.html,/WW/view/en/1117740 2.2涉及的信号类型 电压,电流,温度,电阻。 3STEP 7中模拟量输入/输出的编程 3.1FC105/FC106在哪里 在编程界面下,在Program elements中的Libraries下的Standard Library下的TI-S7 Converting Blocks中就可以找到,见下图:

(完整版)S7-200模拟量计算公式

因为A/D(模/数)、(D/A)数/模转换之间的对应关系,S7-200 CPU 内部用数值表示外部的模拟量信号,两者之间有一定的数学关系。这个关系就是模拟量/数值量的换算关系。 例如,使用一个0 - 20mA的模拟量信号输入,在S7-200 CPU内部,0 - 20mA对应于数值范围0 - 32000;对于4 - 20mA的信号,对应的内部数值为6400 - 32000。 如果有两个传感器,量程都是0 - 16MPa,但是一个是0 - 20mA输出,另一个是4 - 20mA输出。它们在相同的压力下,变送的模拟量电流大小不同,在S7-200内部的数值表示也不同。显然两者之间存在比例换算关系。模拟量输出的情况也大致相同。 上面谈到的是0 - 20mA与4 - 20mA之间换算关系,但模拟量转换的目的显然不是在S7-200 CPU中得到一个0 - 32000之类的数值;对于编程和操作人员来说,得到具体的物理量数值(如压力值、流量值),或者对应物理量占量程的百分比数值要更方便,这是换算的最终目标。 如果使用编程软件Micro/WIN32中的PID Wizard(PID向导)生成PID功能子程序,就不必进行0 - 20mA与4 - 20mA信号之间的换算,只需进行简单的设置。 通用比例换算公式 模拟量的输入/输出都可以用下列的通用换算公式换算:

Ov = [(Osh - Osl)*(Iv - Isl)/(Ish - Isl)] + Osl 其中: Ov:换算结果 Iv:换算对象 Osh:换算结果的高限 Osl:换算结果的低限 Ish:换算对象的高限 Isl:换算对象的低限 它们之间的关系可以图示如下: 图1. 模拟量比例换算关系 实用指令库 在Step7 - Micro/WIN Programming Tips(Micro/WIN编程技巧中)的Tip38就是关于如何实现上述转换的例程。 为便于使用,现已将其导出成为”自定义指令库“,可以添加到自己的Micro/WIN编程软件中应用。

模拟量比例换算

模拟量比例换算 因为A/D(模/数)、D/A(数/模)转换之间的对应关系,S7-200 SMART CPU内部用数值表示外部的模拟量信号,两者之间有一定的数学关系。这个关系就是模拟量/数值量的换算关系。 例如,使用一个0 - 20mA的模拟量信号输入,在S7-200 SMART CPU 内部,0 - 20mA对应于数值范围0 - 27648;对于4 - 20mA的信号,对应的内部数值为5530 - 27648。 如果有两个传感器,量程都是0 - 16MPa,但是一个是0 - 20mA输出,另一个是4 - 20mA输出。它们在相同的压力下,变送的模拟量电流大小不同,在S7-200 SMART内部的数值表示也不同。显然两者之间存在比例换算关系。模拟量输出的情况也大致相同。 上面谈到的是0 - 20mA与4 - 20mA之间换算关系,但模拟量转换的目的显然不是在S7-200 SMART CPU中得到一个0 - 27648之类的数值;对于编程和操作人员来说,得到具体的物理量数值(如压力值、流量值),或者对应物理量占量程的百分比数值要更方便,这是换算的最终目标。通用比例换算公式 模拟量的输入/输出都可以用下列的通用换算公式换算: Ov = [(Osh - Osl)*(Iv - Isl)/(Ish - Isl)] + Osl 其中:

Ov:换算结果 Iv:换算对象 Osh:换算结果的高限 Osl:换算结果的低限 Ish:换算对象的高限 Isl:换算对象的低限 它们之间的关系可以图示如下: 图1. 模拟量比例换算关系 量程转化指令库 为便于用户使用,这里提供了量程转化库,用户可以添加到自己的Micro/WIN编程软件中应用。 模拟量比例换算指令库 注意:此指令库/程序的作者和拥有者对于该软件的功能 性和兼容性不负任何责任。使用该软件的风险完全由用户 自行承担。由于它是免费的,所以不提供任何担保,错误

模拟量值和AD转换值的转换

模拟量值和A/D转换值的转换 假设模拟量的标准电信号是A0—Am(如:4—20mA),A/D转换后数值为D0—Dm(如:6400—32000),设模拟量的标准电信号是A,A/D转换后的相应数值为D,由于是线性关系,函数关系A=f(D)可以表示为数学方程: A=(D-D0)×(Am-A0)/(Dm-D0)+A0。 根据该方程式,可以方便地根据D值计算出A值。将该方程式逆变换,得出函数关系D=f(A)可以表示为数学方程: D=(A-A0)×(Dm-D0)/(Am-A0)+D0。 具体举一个实例,以S7-200和4—20mA为例,经A/D转换后,我们得到的数值是6400—32000,即A0=4,Am=20,D0=6400,Dm=32000,代入 公式,得出: A=(D-6400)×(20-4)/(32000-6400)+4 假设该模拟量与AIW0对应,则当AIW0的值为12800时,相应的模拟电 信号是6400×16/25600+4=8mA。 又如,某温度传感器,-10—60℃与4—20mA相对应,以T表示温度值,AIW0为PLC模拟量采样值,则根据上式直接代入得出: T=70×(AIW0-6400)/25600-10 可以用T 直接显示温度值。 模拟量值和A/D转换值的转换理解起来比较困难,该段多读几遍,结合所 举例子,就会理解。为了让您方便地理解,我们再举一个例子: 某压力变送器,当压力达到满量程5MPa时,压力变送器的输出电流是20 mA,AIW0的数值是32000。可见,每毫安对应的A/D值为32000/20,测得当压力为0.1MPa时,压力变送器的电流应为4mA,A/D值为(32000/20)×4=6 400。由此得出,AIW0的数值转换为实际压力值(单位为KPa)的计算公式为: VW0的值=(AIW0的值-6400)(5000-100)/(32000-6400)+100(单位: KPa) 编程实例 您可以组建一个小的实例系统演示模拟量编程。本实例的的CPU是CPU2 22,仅带一个模拟量扩展模块EM235,该模块的第一个通道连接一块带4—20 mA变送输出的温度显示仪表,该仪表的量程设置为0—100度,即0度时输出

模拟量计算

假设模拟量的标准电信号就是 A0—Am(如:4—20mA),A/D转换后数值为D0—Dm(如:6400—32000) ,设模拟量的标准电信号就是A,A/D转换后的相应数值为D,由于就是线性关系,函数关系 A=f(D)可以表示为数学方程: A=(D-D0)×(Am-A0)/(Dm-D0)+A0。 根据该方程式,可以方便地根据D值计算出A值。将该方程式逆换,得出函数关系D=f(A)可以表示为数学方程: D=(A-A0)×(Dm-D0)/(Am-A0)+D0。 具体举一个实例,以 S7-200与4—20mA为例,经A/D转换后,我们得到的数值就是6400—32000,即A0=4,Am=20,D0=6400,Dm=32000 ,代入公式,得出: A=(D-6400)×(20-4)/(32000-6400)+4 假设该模拟量与AIW0对应,则当AIW0的值为12800时,相应的模拟电信号就是6400×16/25600+4=8mA。 又如,某温度传感器,-10—60℃与4—20mA相对应,以T表示温度值,AIW0为PLC模拟量采样值,则根据上式直接代入得出: T=70×(AIW0-6400)/25600-10 可以用T 直接显示温度值。 模拟量值与A/D转换值的转换理解起来比较困难, 该段多读几遍, 结合所举

例子,就会理解。为了让您方便地理解,我们再举一个例子: 某压力变送器,当压力达到满量程5MPa时,压力变送器的输出电流就是20mA,AIW0的数值就是32000。可见,每毫安对应的A/D值为32000/20,测得当压力为0、1MPa时,压力变送器的电流应为4mA,A/D 值为(32000/20)×4=6400。由此得出,AIW0的数值转换为实际压力值(单位为KPa)的计算公式为: VW0的值=(AIW0的值-6400)(5000-100)/(32000-6400)+100 (单位:KPa) 编程实例 您可以组建一个小的实例系统演示模拟量编程。本实例的的CPU 就是CPU222,仅带一个模拟量扩展模块EM235,该模块的第一个通道连接一块带4—20mA变送输出的温度显示仪表,该仪表的量程设置为0—100度,即0度时输出4mA,100度时输出20mA。温度显示仪表的铂电阻输入端接入一个220欧姆可调电位器,

200 PLC模拟量的AD和DA转换

S7-200 PLC模拟量的A/D和D/A转换以及编程的探讨 对于初学PLC编程的人来说,模拟量输入、输出模块的编程要比用位变量进行一般的程序控制难的多,因为它不仅仅是程序编程,而且还涉及到模拟量的转换公式推导与使用的问题。因为A/D、D/A转换之间的对应关系,S7-200 CPU内部用数值表示外部的模拟量信号,两者之间有一定的数学关系。这个关系就是模拟量/数字量的换算关系。 例如,当输入模拟量设定为电流信号的输入,在S7-200 CPU内部,电流信号0-20mA对应于数值范围0-32000;但是对于4-20mA的信号,对应的内部数值为6400-32000。那可能有学员不知道这个6400是怎么算来的?其实这里的数字量和电流是成正比的,只需要按比例去算就可以了。因为电流信号0-20mA对应于数值范围0-32000,那么1mA 对应的数字量就是32000/20=1600,而4mA对应的数字量就等于4*1600,等于6400。(这里是以S7-200 PLC来作为举例,对于S7-200 SMART S7-300 400等等PLC也是同理的,只是对应的数字量不同而已) 不同的传感变送器,通过不同的模拟量输入输出模块进行转换,其转换公式是不一样的,如果选用的转换公式不对,编出的程序肯定是错误的。比如有3个温度传感变送器:(1)、测温范围为0~200 ,变送器输出信号为4~20ma (2)、测温范围为0~200 ,变送器输出信号为0~5V (3)、测温范围为-100 ~500 ,变送器输出信号为4~20ma (1)和(2)二个温度传感变送器,测温范围一样,但输出信号不同,(1)和(3)传感变送器输出信号一样,但测温范围不同,这3个传感变送器既使选用相同的模拟量输入模块,其转换公式也是各不相同。 下面选用S7-200的模拟量输入输出模块EM235的参数为依据对上述的3个温度传感器进行转换公式的推导: 对于(1)和(3)传感变送器所用的模块,其模拟量输入设置为0~20ma电流信号,20ma 对应数子量=32000,4 ma对应数字量=6400; 对于(2)传感变送器用的模块,其模拟量输入设置为0~5V电压信号,5V对应数字量=32000,0V对应数字量=0; 这3种传感変送器的转换公式该如何推导的呢?这要借助与数学知识帮助,请看下图:

模拟量转换数字量公式

信号的变换需要经过以下过程:物理量-传感器信号-标准电信号-A/D转换-数值显示。 声明:为简单起见,我们在此讨论的是线性的信号变换。同时略过传感器的信号变换过程。 假定物理量为A,范围即为A0-Am,实时物理量为X;标准电信号是B0-Bm,实时电信号为Y;A/D转换数值为C0-Cm,实时数值为Z。 如此,B0对应于A0,Bm对应于Am,Y对应于X,及Y=f(X)。由于是线性关系,得出方程式为Y=(Bm-B0)*(X-A0)/(Am-A0)+B0。又由于是线性关系,经过A/D转换后的数学方程Z=f(X)可以表示为Z=(Cm-C0)*(X-A0)/(Am-A0)+C0。那么就很容易得出逆变换的数学方程为X=(Am-A0)*(Z-C0)/(Cm-C0)+A0。方程中计算出来的X就可以在显示器上直接表达为被检测的物理量。 5、PLC中逆变换的计算方法 以S7-200和4-20mA为例,经A/D转换后,我们得到的数值是6400-32000,及C0=6400,Cm=32000 。于是,X=(Am-A0)*(Z-6400)/(32000-6400)+A0。 例如某温度传感器和变送器检测的是-10-60℃,用上述的方程表达为X=70*(Z-6400)/25600-10。经过PLC的数学运算指令计算后,HMI可以从结果寄存器中读取并直接显示为工程量。 用同样的原理,我们可以在HMI上输入工程量,然后由软件转换成控制系统使用的标准化数值。 在S7-200中,(Z-6400)/25600的计算结果是非常重要的数值。这是一个0-1.0(100%)的实数,可以直接送到PID指令(不是指令向导)的检测值输入端。PID指令输出的也是0-1.0的实数,通过前面的计算式的反计算,可以转换成6400-32000,送到D/A端口变成4-20mA输出。 1.自己写转换程序。 2.需要注意你的模拟量是单极性的还是双极性的。 函数关系A=f(D)可以表示为数学方程: A=(D-D0)×(Am-A0)/(Dm-D0)+A0。 根据该方程式,可以方便地根据D值计算出A值。将该方程式逆变换,得出函数关系D=f (A)可以表示为数学方程: D=(A-A0)×(Dm-D0)/(Am-A0)+D0。

模拟量转换方法

其实很简单就是一个Y(实际值)=A*X(数字量)+B的公式而已。例如你的压力变送器检测压力范围是0~200kPa,输出4~20mA,PLC通过通道设置可以设置成输入4~20mA,对应数字量0~4000,那么0~200kPa与4~20mA是一一对应关系,4~20mA与0~4000是一一对应的关系,所以0~200kPa与0~4000就是一一对应关系,既然是一一对应关系,他两个就符合公式 Y=A*X+B,这里A=1/20,B=0。因此实际压力值=采集的数字量/20。 望采纳。。。。。 谢谢,有点似懂非懂了,基本采纳了。所以还要继续向你请教: 1. 数字量范围(如0~4000)是由AD模块决定么?PLC采集的数字量是什么进制? 2. 3. Y=AX+B的公式中,B是什么,为什么B是0,如果B恒等0为什么还要加B。倍数 =数字量程上限/传感器量产上限;然后根据采集的数字量/倍数,得出实际的压 力值,对么?压力单位是Kpa? 4. 5. 手头的模块不是FX配套2AD/4AD的,是国产普通采集模块,换算方法是否一样适 用? 6.

1、0~4000是根据模块里特殊寄存器设置的,比如三菱的FX3U-04AD的BFM #0设置输入的类型,就决定了类型是电压,还是电流,是4~20mA还是-20~2 0mA等等。采集到的数字量都是十进制数字。 2、B=0,是通过这几个参数计算出来了,因为0~200kpa与0~ 4000成一一对应关系,而算出来的A=1/20,B=0,不是B固定就是0的,如果你要是西门子的AD,是0~20mA对应0-32000,那么就是0~200kpa对应4~20mA对应6400~32000,那么就是Y=X/128-50,A=1/128,B=-50。压力单位这个很多,气体压力一般是kpa,mpa,bar,固体压力一般是kg/m的平方,N/m 平方等等。 3、只要是PLC的AD模块都是这个算法,置于别的AD模块就不一定了

plc模拟量转换标度变换数字量公式以及西门子变换写法

PlC模拟量标度转化原理 信号的变换需要经过以下过程:物理量-传感器信号-标准电信号-A/D转换-数值显示。声明:为简单起见,我们在此讨论的是线性的信号变换。同时略过传感器的信号变换过程。 假定物理量为A,范围即为A0-Am,实时物理量为X;标准电信号是B0-Bm,实时电信号为Y;A/D转换数值为C0-Cm,实时数值为Z。 如此,B0对应于A0,Bm对应于Am,Y对应于X,及Y=f(X)。由于是线性关系,得出方程式为Y=(Bm-B0)*(X-A0)/(Am-A0)+B0。又由于是线性关系,经过A/D转换后的数学方程Z=f(X)可以表示为Z=(Cm-C0)*(X-A0)/(Am-A0)+C0。那么就很容易得出逆变换的数学方程为X=(Am-A0)*(Z-C0)/(Cm-C0)+A0。方程中计算出来的X就可以在显示器上直接表达为被检测的物理量。 5、PLC中逆变换的计算方法 以S7-200和4-20mA为例,经A/D转换后,我们得到的数值是6400-32000,及C0=6400,Cm=32000 。于是,X=(Am-A0)*(Z-6400)/(32000-6400)+A0。 例如某温度传感器和变送器检测的是-10-60℃,用上述的方程表达为X=70*(Z-6400)/25600-10。经过PLC的数学运算指令计算后,HMI可以从结果寄存器中读取并直接显示为工程量。 用同样的原理,我们可以在HMI上输入工程量,然后由软件转换成控制系统使用的标准化数值。 在S7-200中,(Z-6400)/25600的计算结果是非常重要的数值。这是一个0-1.0(100%)的实数,可以直接送到PID指令(不是指令向导)的检测值输入端。PID指令输出的也是0-1.0的实数,通过前面的计算式的反计算,可以转换成6400-32000,送到D/A端口变成4-20mA输出。 1.自己写转换程序。 2.需要注意你的模拟量是单极性的还是双极性的。 函数关系A=f(D)可以表示为数学方程: A=(D-D0)×(Am-A0)/(Dm-D0)+A0。 根据该方程式,可以方便地根据D值计算出A值。将该方程式逆变换,得出函数关系D=f (A)可以表示为数学方程: D=(A-A0)×(Dm-D0)/(Am-A0)+D0。 具体举一个实例,以S7-200和4—20mA为例,经A/D转换后,我们得到的数值是6400—32000,即A0=4,Am=20,D0=6400,Dm=32000,代入公式,得出: A=(D-6400)×(20-4)/(32000-6400)+4

模拟量转换数字量公式

创作编号: GB8878185555334563BT9125XW 创作者:凤呜大王* 信号的变换需要经过以下过程:物理量-传感器信号-标准电信号-A/D转换-数值显示。 声明:为简单起见,我们在此讨论的是线性的信号变换。同时略过传感器的信号变换过程。 假定物理量为A,范围即为A0-Am,实时物理量为X;标准电信号是B0-Bm,实时电信号为Y;A/D转换数值为C0-Cm,实时数值为Z。 如此,B0对应于A0,Bm对应于Am,Y对应于X,及Y=f(X)。由于是线性关系,得出方程式为Y=(Bm-B0)*(X-A0)/(Am-A0)+B0。又由于是线性关系,经过A/D转换后的数学方程Z=f(X)可以表示为Z=(Cm-C0)*(X-A0)/(Am-A0)+C0。那么就很容易得出逆变换的数学方程为X=(Am-A0)*(Z-C0)/(Cm-C0)+A0。方程中计算出来的X就可以在显示器上直接表达为被检测的物理量。 5、PLC中逆变换的计算方法 以S7-200和4-20mA为例,经A/D转换后,我们得到的数值是6400-32000,及C0=6400,Cm=32000 。于是,X=(Am-A0)*(Z-6400)/(32000-6400)+A0。 例如某温度传感器和变送器检测的是-10-60℃,用上述的方程表达为X=70*(Z-6400)/25600-10。经过PLC的数学运算指令计算后,HMI可以从结果寄存器中读取并直接显示为工程量。 用同样的原理,我们可以在HMI上输入工程量,然后由软件转换成控制系统使用的标准化数值。 在S7-200中,(Z-6400)/25600的计算结果是非常重要的数值。这是一个0-1.0(100%)的实数,可以直接送到PID指令(不是指令向导)的检测值输入端。PID指令输出的也是0-1.0的实数,通过前面的计算式的反计算,可以转换成6400-32000,送到D/A端口变成4-20mA输出。

S7-200模拟量输入输出实例

对输入、输出模拟量的PLC编程的探讨及编程实例解析 3134人阅读| 4条评论发布于:2011-12-29 9:03:42 对于初学PLC编程的人来说,模拟量输入、输出模块的编程要比用位变量进行一般的程序控制难的多,因为它不仅仅是程序编程,而且还涉及到模拟量的转换公式推导与使用的问题。不同的传感变送器,通过不同的模拟量输入输出模块进行转换,其转换公式是不一样的,如果选用的转换公式不对,编出的程序肯定是错误的。比如有3个温度传感变送器:(1)、测温范围为0~200 ,变送器输出信号为4~20ma (2)、测温范围为0~200 ,变送器输出信号为0~5V (3)、测温范围为-100 ~500 ,变送器输出信号为4~20ma (1)和(2)二个温度传感变送器,测温范围一样,但输出信号不同,(1)和(3)传感变送器输出信号一样,但测温范围不同,这3个传感变送器既使选用相同的模拟量输入模块,其转换公式也是各不相同。 一、转换公式的推导 下面选用S7-200的模拟量输入输出模块EM235的参数为依据对上述的3个温度传感器进行转换公式的推导: 对于(1)和(3)传感变送器所用的模块,其模拟量输入设置为0~20ma电流信号,20ma 对应数子量=32000,4 ma对应数字量=6400; 对于(2)传感变送器用的模块,其模拟量输入设置为0~5V电压信号,5V对应数字量=32000,0V对应数字量=0; 这3种传感変送器的转换公式该如何推导的呢?这要借助与数学知识帮助,请见下图:

上面推导出的(2-1)、(2-2)、(2-3)三式就是对应(1)、(2)、(3)三种温度传感变送器经过模块转换成数字量后再换算为被测量的转换公式。编程者依据正确的转换公式进行编程,就会获得满意的效果。 二、变送器与模块的连接 通常输出4~20ma电流信号的传感变送器,对外输出只有+、- 二根连线,它需要外接24V电源电压才能工作,如将它的+、- 二根连线分别与24V电源的正负极相连,在被测量正常变化范围内,此回路将产生4~20ma电流,见下左图。下右图粉色虚线框内为EM235 模块第一路模拟输入的框图,它有3个输入端,其A+与A-为A/D转换器的+ - 输入端,RA 与A-之间并接250Ω标准电阻。A/D转换器是正逻辑电路,它的输入是0~5V电压信号,A-为公共端,与PLC的24V电源的负极相连。 那么24V电源、传感变送器、模块的输入口三者应如何连接才是正确的?正确的连线是这样的:将左图电源负极与传感器输出的负极连线断开,将电源的负极接模块的A-端,将

4到20ma模拟量转换公式

4到20ma模拟量转换公式 因为A/D(模/数)、D/A(数/模)转换之间的对应关系,S7-200 CPU 内部用数值表示外部的模拟量信号,两者之间有一定的数学关系。这个关系就是模拟量/数值量的换算关系。 例如,使用一个0 - 20mA的模拟量信号输入,在S7-200 CPU内部,0 - 20mA对应于数值范围0 - 32000;对于4 - 20mA的信号,对应的内部数值为6400 - 32000。 如果有两个传感器,量程都是0 - 16MPa,但是一个是0 - 20mA输出,另一个是4 - 20mA输出。它们在相同的压力下,变送的模拟量电流大小不同,在S7-200内部的数值表示也不同。显然两者之间存在比例换算关系。模拟量输出的情况也大致相同。 上面谈到的是0 - 20mA与4 - 20mA之间换算关系,但模拟量转换的目的显然不是在S7-200 CPU中得到一个0 - 32000之类的数值;对于编程和操作人员来说,得到具体的物理量数值(如压力值、流量值),或者对应物理量占量程的百分比数值要更方便,这是换算的最终目标。 在STEP 7-Micro/WIN Programming Tips(Micro/WIN编程技巧

中)的Tip38就是关于如何实现上述转换的例程。 为便于用户使用,现已将其导出成为“自定义指令库”,用户可以添加到自己的Micro/WIN编程软件中应用。 模拟量比例换算指令库和例子 注意:此指令库/程序的作者和拥有者对于该软件的功能性和兼容性不负任何责任。使用该软件的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。 在这个指令库中,子程序Scale_I_to_R可用来进行模拟量输入到S7-200内部数据的转换;子程序Scale_R_I可用于内部数据到模拟量输出的转换。

相关主题
相关文档
最新文档