S7-200模拟量输入转换库实例
S7-200模拟量输入输出工程量转换
S7-200模拟量输入输出工程量转换1、基本概念我们生活在一个物质的世界中。
世间所有的物质都包含了化学和物理特性,我们是通过对物质的表观性质来了解和表述物质的自有特性和运动特性。
这些表观性质就是我们常说的质量、温度、速度、压力、电压、电流等用数学语言表述的物理量,在自控领域称为工程量。
这种表述的优点是直观、容易理解。
在电动传感技术出现之前,传统的检测仪器可以直接显示被测量的物理量,其中也包括机械式的电动仪表。
2、标准信号在电动传感器时代,中央控制成为可能,这就需要检测信号的远距离传送。
但是纷繁复杂的物理量信号直接传送会大大降低仪表的适用性。
而且大多传感器属于弱信号型,远距离传送很容易出现衰减、干扰的问题。
因此才出现了二次变送器和标准的电传送信号。
二次变送器的作用就是将传感器的信号放大成为符合工业传输标准的电信号,如0-5V、0-10V或4-20mA(其中用得最多的是4-20mA)。
而变送器通过对放大器电路的零点迁移以及增益调整,可以将标准信号准确的对应于物理量的被检测范围,如0-100℃或-10-100℃等等。
这是用硬件电路对物理量进行数学变换。
中央控制室的仪表将这些电信号驱动机械式的电压表、电流表就能显示被测的物理量。
对于不同的量程范围,只要更换指针后面的刻度盘就可以了。
更换刻度盘不会影响仪表的根本性质,这就给仪表的标准化、通用性和规模化生产带来的无可限量的好处。
3、数字化仪表到了数字化时代,指针式显示表变成了更直观、更精确的数字显示方式。
在数字化仪表中,这种显示方式实际上是用纯数学的方式对标准信号进行逆变换,成为大家习惯的物理量表达方式。
这种变换就是依靠软件做数学运算。
这些运算可能是线性方程,也可能是非线性方程,现在的电脑对这些运算是易如反掌。
4、信号变换中的数学问题信号的变换需要经过以下过程:物理量-传感器信号-标准电信号-A/D转换-数值显示。
声明:为简单起见,我们在此讨论的是线性的信号变换。
S7-200模拟量库使用说明
SCALE(V1.0)库文件的使用
以下公式由计算换算值的图表中得出: Ov = (Osh - Osl) / (Ish - Isl) * (Iv - Isl) + Osl
"Scale" 库的描述: "scale.mwl" 库包括从INTEGER(整数) 到REAL (S_ITR)(实数)、从REAL(实数)to REAL (S_RTR)(实数)及从REAL(实数)到INTEGER (S_RTI)(整数)类型数据的比例换算。
3.2 模拟量输入换算为REAL数据格式的输出值(S_ITR): S_ITR 功能块可用来将模拟量输入信号转换成0.0到1.0之间的标么值( 类型REAL )。
此调用为4-20MA的偏移量,读入模拟量转换为0.0-1.0之间的量程存入到VD100
3.3 REAL格式数据比例换算(S_RTR): S_RTR 功能块可用来转换在范围内的REAL 格式的值(例如将0.0 到1.0输入值转化为百分数输出)。
本子程序调用为前面读取来的0.0-1.0量程转换为百分比0-100数值转出到DV200
3.4转换为INTEGER格式数据的模拟量输出(S_RTI): S_RTI 功能块可用来将REAL 数转换为INTEGER数据类型的模拟量输出。
本子程序调用:把模拟量量程0.0-1.0数字转换成0-20MA的信号输出
,在不同量程下,读取或输出得到不同的结果。
一次函数表达示:Y=KX+b(不过原点),Y=KX(过原点)。
西门子200模拟量转换库的使用
如何对 S7-200 的 CPU224XP 和扩展模块 EM 231, EM 232 及 EM 235 的模拟量值进行比例换算?显示订货号说明:扩展模块 EM 231、 EM 232 和 EM 235模拟量的输入输出和 CPU224XP 一样以 word 格式的整数显示,这就需要做转换来确保正确的显示和过程中的应用 。
这些转换可通过附件中的下载功能块来完成。
下载中包括 转换功能块的 "Scale" 库 和易于理解的例程"Tip038" 。
1. 比例换算:下列图表显示输入输出值的比例换算。
这里对术语 "单极性", "双极性" 和 "20% 偏移" 有解释。
这些术语在其他 里非常重要。
如STEP 7Micro/Win - PID 向导(工具 > 指令向导 > PID 控制器)单极性比例换算只有正的或负的值范围 (图 01 显示了一个模拟量输入值 0到32000的例子)。
图 01在带有20%偏移的单极性的例子中, 最低限值是最大限值的 20% 。
(图 02 显示了一个模拟量输入值6400到 32000的例子)。
图 02双极性比例换算有正的和负的值范围 (图 03 显示了一个 模拟量输入值 -32000 到 32000的例子)。
图 03下表是对一些缩写地解释:参数描述Ov换算结果 (输出值)Iv模拟量值 (输入值)Osh换算输出值的高限 (换算输出高限)Osl换算输出值的低限 (换算输出低限)Ish换算输入值的高限 (换算输入高限)Isl换算输入值的低限 (换算输入低限)表 012. 公式以下公式由计算换算值的图表中得出:Ov = (Osh - Osl) / (Ish - Isl) * (Iv - Isl) + Osl3. 库3.1 "Scale" 库地描述"scale.mwl" 库包括从 INTEGER 到 REAL (S_ITR)、从REAL to REAL (S_RTR)及从REAL 到 INTEGER (S_RTI)类型数据的比例换算。
s7-200 smart 模拟量模块用法
当我们在实际的应用中需要对当前的温度或是压力进行采集显示的时候,我们需要用到模拟量模块来对模拟量信号进行采集,在这里我们以S7-200smart PLC的EMAE04模拟输入模块为例来说明如何使用这个模块来采集温度或是压力。
例如:现需要实时监控发电机机组的温度,假设变送器输出的信号为0到10V的电压信号,最大温度值为150。
最小温度值为0度。
要完成正确读取实际的温度值,需要进行以下三步操作:第一、正确的接线第二、正确的硬件组态第三、编写正确的程序1、按照变送器提供的信号输出接线方式进行正确的接线,对于EMAE04模块的信号接入如图所示:若变送器为三线制输出的变送器,则接线时,先把变送器的24V 电源接上,变送器上的信号输出接端0+,0-端子接24V电源负。
2、打开S7-200smart的编程软件,打开其系统块对其进行硬件组态。
如图所示:注意:对于信号类型的选择,通道0的设置对通道1的设置也有效,通道2的设置对通道3 也同样有效。
3、编写转换程序S7-200smartPLC来说其最大的数字量为27648。
我们可以根据其得到的数字量的大小转换成我们实际的温度值。
对其转换程序,我们可以使用S7-200中的scaling模拟量转换库,使用库移植的方法把其移植到S7-200smart的软件中。
其移植方法可以参考前面所介绍的内容。
Input :表示需要转换的数字量,即采样所的数字量Ish:换算对象的高限,即最大模拟量所对应的数字量值(27648)Isl: 换算对象的低限,即最小模拟量所对应的数字量值(0)Osh:换算结果的高限,即测量范围最大值Osl:换算结果的底限,即测量范围最小值。
VD100:换算结果所存储的值。
S模拟量输入输出实例
对输入、输出模拟量的P L C编程的探讨及编程实例解析3134人阅读|4条评论发布于:2011-12-299: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,4ma对应数字量=6400;对于(2)传感变送器用的模块,其模拟量输入设置为0~5V电压信号,5V对应数字量=32000,0V对应数字量=0;这3种传感変送器的转换公式该如何推导的呢?这要借助与数学知识帮助,请见下图:上面推导出的(2-1)、(2-2)、(2-3)三式就是对应(1)、(2)、(3)三种温度传感变送器经过模块转换成数字量后再换算为被测量的转换公式。
编程者依据正确的转换公式进行编程,就会获得满意的效果。
二、变送器与模块的连接通常输出4~20ma电流信号的传感变送器,对外输出只有+、-二根连线,它需要外接24V电源电压才能工作,如将它的+、-二根连线分别与24V电源的正负极相连,在被测量正常变化范围内,此回路将产生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 电流,见下左图。
s7-200模拟量实例
PLCcpu224×7编成例1—要求:1、液位机量程0—3米,对应输出信号0—10V,通过电位机进行模拟介入PLC模块的模拟量输入专口。
要求PLC正确读取液位机的输出信号转换成水池的液位。
2、水泵控制具有手动与自动两种模拟。
3、自动模拟:PLC内部根据液位至控制水泵的启动和停止,水泵在液位上升至2米时启动,降到1米时停止。
4、手动模拟:水泵通过按钮手动启动/停止。
5、上升到2.5米时,触发液位超上限报警,故障指示灯常亮。
6、对水泵的运行状态进行检测,当水泵运行信号输出后,检测水泵运行反馈信号。
如水泵运行信号,输出1秒后未收到水泵运行反馈信号,则故障指示灯闪亮,同时复位水泵运行信号。
7、故障状态自保持,当故障原因消除且按下复位按钮事,故障复位。
8、ALW0 输入信号0—10V,对应PLC寄存器数量0—3200D,输入信号5路。
I0.0:自动手动模拟装换开关SA0,当I0.0接通时为自动模拟,I0.0断开时为手动模拟状态I0.1:水泵手动启动按钮SB1,常开点。
I0.2:水泵停止按钮SB2,常闭点。
I0.3:故障复位按钮SB3,常开点。
I0.4:水泵运行状态反馈,正常状态下,水泵运行信号输出后接通,水泵运行信号断开后断开。
Q:输出信号四路,Q0.0:自动模拟指示灯HL0.Q0.1:水泵运行状态指示灯HL1.Q0.2:故障指示灯HL2,超液位报警时常亮,水泵反馈信号异常报警时闪亮。
Q0.3:水泵运行输出KA3。
编写程序:根据“液位机量程0—3米,对应输出信号0—10V”可得出:1米对应3.33V,2米对应6.67V,2.5米对应8.33V,再由“ALW0 输入信号0—10V ,对应PLC寄存器数量0—3200D”可得出:1米对应数字量10667,2米对应数字量21333,2.5米对应数字量26667,按要求,编写如下梯形图:动作原理:1、I0.0自动/ 手动,模拟开关,当改变它的状态时,其前后沿都使Q0.3=0,目的是确保进入自动模拟或手动模拟状态时,水泵都处于停止状态。
(完整版)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编程软件中应用。
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电流,见下左图。
(完整版)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编程软件中应用。
(完整版)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电流,见下左图。
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:换算对象O sh:换算结果的高限O sl:换算结果的低限I sh:换算对象的高限I sl:换算对象的低限它们之间的关系可以图示如下:图1. 模拟量比例换算关系实用指令库在Step7 - Micro/WIN Programming Tips(Micro/WIN编程技巧中)的Tip38就是关于如何实现上述转换的例程。
为便于使用,现已将其导出成为”自定义指令库“,可以添加到自己的Micro/WIN编程软件中应用。
200PLC换算公式
通用比例换算公式
模拟量的输入/输出都可以用下列的通用换算公式换算:
Ov = [(Osh - Osl)*(Iv - Isl)/(Ish - Isl)] + Osl
其中:
Ov: 换算结果
Iv: 换算对象
Osh: 换算结果的高限
Osl: 换算结果的低限
Ish: 换算对象的高限
Isl: 换算对象的低限
它们之间的关系可以图示如下:
图1. 模拟量比例换算关系
实用指令库
在STEP 7-Micro/WIN Programming Tips(Micro/WIN编程技巧中)的Tip38就是关于如何实现上述转换的例程。
为便于用户使用,现已将其导出成为“自定义指令库”,用户可以添加到自己的Micro/WIN 编程软件中应用。
模拟量比例换算指令库
注意:此指令库/程序的作者和拥有者对于该软件的功能性和兼容性不负任何责任。
使用该软件的风险完全由用户自行承担。
由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。
在这个指令库中,子程序Scale_I_to_R可用来进行模拟量输入到S7-200内部数据的转换;子程序Scale_R_I可用于内部数据到模拟量输出的转换。
编程举例:
将4 - 20mA模拟量输入转换为内部百分比值将内部百分比值转换为4 - 20mA模拟量输出
图2. 编程举例
参考:如何添加自定义指令库。
S7-200数字信号转换算法
S7-200数字信号转换算法介绍S7-200是西门子推出的一款高性能PLC(可编程逻辑控制器)。
在PLC程序设计中,数字信号转换是一个非常常见的需求。
本文档将介绍一种基于S7-200的数字信号转换算法。
算法原理数字信号转换是将输入的模拟信号转换为数字信号的过程。
在S7-200中,可以通过模拟量输入模块来实现数字信号转换。
算法流程如下:1. 配置模拟量输入模块的参数。
包括输入量程、参考电压等。
2. 读取模拟量输入模块的输出值。
3. 根据输入值和参考电压的关系,进行数值转换。
4. 将转换后的数字信号用于后续的逻辑控制处理。
算法实现以下是一个基于S7-200的数字信号转换算法示例:VARInputValue: REAL; // 模拟量输入值ReferenceVoltage: INT; // 参考电压ConvertedValue: INT; // 转换后的数字信号RangeMin: REAL; // 量程下限RangeMax: REAL; // 量程上限ConvertedMin: INT; // 数字量下限ConvertedMax: INT; // 数字量上限END_VARInputValue := ReadAnalogInput(); // 读取模拟量输入ReferenceVoltage := GetReferenceVoltage(); // 获取参考电压RangeMin := GetRangeMin(); // 获取量程下限RangeMax := GetRangeMax(); // 获取量程上限ConvertedMin := GetConvertedMin(); // 获取数字量下限ConvertedMax := GetConvertedMax(); // 获取数字量上限ConvertedValue := ((InputValue - RangeMin) * (ConvertedMax - ConvertedMin)) / (RangeMax - RangeMin) + ConvertedMin; // 数字信号转换公式UseConvertedValue(ConvertedValue); // 将转换后的数字信号用于后续逻辑处理结论S7-200数字信号转换算法使用简单且高效。
对S7-200 的模拟量值进行比例换算
如何对 S7-200 的 CPU224XP 和扩展模块 EM 231, EM 232 及 EM 235 的模拟量值进行比例换算?说明:扩展模块 EM 231、 EM 232 和 EM 235模拟量的输入输出和 CPU224XP 一样以 word 格式的整数显示,这就需要做转换来确保正确的显示和过程中的应用 。
这些转换可通过附件中的下载功能块来完成。
下载中包括 转换功能块的 "Scale" 库 和易于理解的例程"Tip038" 。
1. 比例换算:下列图表显示输入输出值的比例换算。
这里对术语 "单极性", "双极性" 和 "20% 偏移" 有解释。
这些术语在其他 里非常重要。
如STEP 7 Micro/Win - PID 向导(工具 > 指令向导 > PID 控制器)单极性比例换算只有正的或负的值范围 (图 01 显示了一个模拟量输入值 0到32000的例子)。
在带有20%偏移的单极性的例子中, 最低限值是最大限值的 20% 。
(图 02 显示了一个模拟量输入值6400到32000的例子)。
图 02双极性比例换算有正的和负的值范围 (图 03 显示了一个模拟量输入值 -32000 到 32000的例子)。
图 03下表是对一些缩写地解释:参数描述Ov 换算结果 (输出值)Iv 模拟量值 (输入值)Osh 换算输出值的高限 (换算输出高限)Osl 换算输出值的低限 (换算输出低限)Ish 换算输入值的高限 (换算输入高限)Isl 换算输入值的低限 (换算输入低限)表 012. 公式以下公式由计算换算值的图表中得出:Ov = (Osh - Osl) / (Ish - Isl) * (Iv - Isl) + Osl3. 库3.1 "Scale" 库的描述"scale.mwl" 库包括从 INTEGER 到 REAL (S_ITR)、从REAL to REAL (S_RTR)及从REAL 到 INTEGER (S_RTI)类型数据的比例换算。
S7-200smartPLC模拟量输入模块使用说明
S7—200smart PLC模拟量输入模块使用说明当我们在实际的应用中需要对当前的温度或是压力进行采集显示的时候,我们需要用到模拟量模块来对模拟量信号进行采集,在这里我们以S7-200smart PLC的EMAE04模拟输入模块为例来说明如何使用这个模块来采集温度或是压力。
例如:现需要实时监控发电机机组的温度,假设变送器输出的信号为0到10V的电压信号,最大温度值为150。
最小温度值为0度。
要完成正确读取实际的温度值,需要进行以下三步操作:第一、正确的接线第二、正确的硬件组态第三、编写正确的程序1、按照变送器提供的信号输出接线方式进行正确的接线,对于EMAE04模块的信号接入如图所示:若变送器为三线制输出的变送器,则接线时,先把变送器的24V电源接上,变送器上的信号输出接端0+,0-端子接24V电源负。
2、打开S7—200smart的编程软件,打开其系统块对其进行硬件组态。
如图所示:注意:对于信号类型的选择,通道0的设置对通道1的设置也有效,通道2的设置对通道3 也同样有效。
3、编写转换程序S7—200smartPLC来说其最大的数字量为27648。
我们可以根据其得到的数字量的大小转换成我们实际的温度值。
对其转换程序,我们可以使用S7—200中的scaling模拟量转换库,使用库移植的方法把其移植到S7—200smart的软件中.其移植方法可以参考前面所介绍的内容。
Input :表示需要转换的数字量,即采样所的数字量Ish:换算对象的高限,即最大模拟量所对应的数字量值(27648) Isl: 换算对象的低限,即最小模拟量所对应的数字量值(0)Osh:换算结果的高限,即测量范围最大值Osl:换算结果的底限,即测量范围最小值。
VD100:换算结果所存储的值。
第二部分:如何引用模拟量的地址在软件中,就可以看到,以上模块量模块的地址就是: AIW16 18 20 22AIW32 34 36 38。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
L / 主程序 (OB1)
块:主程序
作者:
创建时间:2015.02.24 22:35:30 修改时间:
2015.02.24 22:38:53
符号变量类型数据类型注释 TEMP TEMP TEMP
TEMP
程序注释网络标题
网络 1网络注释
模拟量处理EN
模拟输入显示上限显示下限输出
SM0.0AIW0100.00.0VD28
块:模拟量处理
作者:
创建时间:2001.07.27 8:07:16 修改时间:
2015.02.24 22:38:24
符号变量类型数据类型注释 EN IN BOOL LW0模拟输入IN WORD LD2显示上限IN REAL LD6显示下限IN REAL IN LD10输出IN_OUT REAL IN_OUT OUT
TEMP
模拟量处理程序输入数据转换
网络 1
第一行:SM0.0接通后先减掉4-20mA 里的4mA 值(32000/20*4=6400)处理后的数据存LW10里。
第二行:把LW10里的整数转换成双整数存于LD12里。
第三行:将LD12里的数据转换成实数存于LD16里。
SUB_I
ENO
EN
OUT IN1IN2
I_DI
ENO
EN
OUT IN DI_R
ENO
EN
OUT IN SM0.0#模拟输入:LW0
+6400
LW10
LW10LD12
LD12LD16
数据处理
网络 2第一行:SM0.0接通后用测量值处理后存储数据的存储器LD16,除25600 ,结果存于LD20里(例如测量值26000,给 定基准数据25600=1.015625)。
第二行:处理后的数据LD20乘以显示上限,存于LD24里。
第三行:处理后的数据LD24加上显示下限,存于输出里。
DIV_R
ENO
EN
OUT IN1IN2
MUL_R
ENO
EN
OUT IN1IN2
ADD_R
ENO
EN
OUT IN1IN2
SM0.0LD1625600.0
LD20
LD20
#显示上限:LD2
LD24
LD24
#显示下限:LD6
#输出:LD10。