S7-200模拟量换算
- 格式:pdf
- 大小:1.73 MB
- 文档页数:48
S7-200模拟量输入输出工程量转换1、基本概念我们生活在一个物质的世界中。
世间所有的物质都包含了化学和物理特性,我们是通过对物质的表观性质来了解和表述物质的自有特性和运动特性。
这些表观性质就是我们常说的质量、温度、速度、压力、电压、电流等用数学语言表述的物理量,在自控领域称为工程量。
这种表述的优点是直观、容易理解。
在电动传感技术出现之前,传统的检测仪器可以直接显示被测量的物理量,其中也包括机械式的电动仪表。
2、标准信号在电动传感器时代,中央控制成为可能,这就需要检测信号的远距离传送。
但是纷繁复杂的物理量信号直接传送会大大降低仪表的适用性。
而且大多传感器属于弱信号型,远距离传送很容易出现衰减、干扰的问题。
因此才出现了二次变送器和标准的电传送信号。
二次变送器的作用就是将传感器的信号放大成为符合工业传输标准的电信号,如0-5V、0-10V或4-20mA(其中用得最多的是4-20mA)。
而变送器通过对放大器电路的零点迁移以及增益调整,可以将标准信号准确的对应于物理量的被检测范围,如0-100℃或-10-100℃等等。
这是用硬件电路对物理量进行数学变换。
中央控制室的仪表将这些电信号驱动机械式的电压表、电流表就能显示被测的物理量。
对于不同的量程范围,只要更换指针后面的刻度盘就可以了。
更换刻度盘不会影响仪表的根本性质,这就给仪表的标准化、通用性和规模化生产带来的无可限量的好处。
3、数字化仪表到了数字化时代,指针式显示表变成了更直观、更精确的数字显示方式。
在数字化仪表中,这种显示方式实际上是用纯数学的方式对标准信号进行逆变换,成为大家习惯的物理量表达方式。
这种变换就是依靠软件做数学运算。
这些运算可能是线性方程,也可能是非线性方程,现在的电脑对这些运算是易如反掌。
4、信号变换中的数学问题信号的变换需要经过以下过程:物理量-传感器信号-标准电信号-A/D转换-数值显示。
声明:为简单起见,我们在此讨论的是线性的信号变换。
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(过原点)。
200SMART模拟量-100到100因为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编程软件中应用。
模拟量比例换算指令库注意:此指令库/程序的和拥有者对于该软件的功能性和兼容性不负任何责任。
使用该软件的风险完全由用户自行承担。
由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。
如何对 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)类型数据的比例换算。
模拟量比例换算因为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编程软件中应用。
模拟量比例换算指令库注意:此指令库/程序的作者和拥有者对于该软件的功能性和兼容性不负任何责任。
使用该软件的风险完全由用户自行承担。
由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。
S7-200模拟量转换器校准算法概述本文档旨在介绍S7-200模拟量转换器校准算法。
模拟量转换器是一种用于将模拟信号转换为数字信号的设备,通常用于工业自动化系统中。
校准是确保模拟量转换器精确度的重要步骤,本文将介绍一种简单且可靠的校准算法。
校准算法以下是S7-200模拟量转换器的校准算法步骤:1. 准备工作:确保S7-200模拟量转换器正常工作,连接正确并供电稳定。
2. 收集参考值:使用已知准确的模拟量输入信号,记录对应的模拟量转换器输出值。
至少需要收集3个参考值,以确保校准的准确性。
3. 线性插值计算:根据收集的参考值,可以确定模拟量输入和输出之间的线性关系。
使用线性插值算法计算模拟量输入和输出之间的其他值,以获得更准确的校准结果。
4. 更新校准曲线:将计算得到的模拟量输入和输出关系更新到S7-200模拟量转换器的校准曲线中。
5. 验证校准:使用其他准确的模拟量输入信号,检查校准后的模拟量转换器输出是否与预期输出一致。
6. 记录结果:将校准过程中使用的参考值、计算结果和验证结果记录下来,以备将来参考。
注意事项在进行S7-200模拟量转换器校准时,需要注意以下事项:- 确保模拟量输入信号的准确性和稳定性,避免干扰和误差。
- 使用多个参考值进行校准可以提高校准的准确性。
- 定期检查和重新校准模拟量转换器,以确保其持续准确工作。
总结本文介绍了S7-200模拟量转换器的校准算法,包括准备工作、收集参考值、线性插值计算、更新校准曲线、验证校准和记录结果。
在进行校准时,务必注意模拟量输入信号的准确性和稳定性,并定期检查和重新校准模拟量转换器,以确保其持续准确工作。
模拟量比例换算之迟辟智美创作、(D/A)数/模转换之间的对应关系,S7200 CPU内部用数值暗示外部的模拟量信号,两者之间有一定的数学关系.这个关系就是模拟用一个0 20mA的模拟量信号输入,在S7200 CPU内部,0 20mA对应于数值范围0 32000;对4 20mA的信号,对应的内部数值为都是0 16MPa,可是一个是0 20mA输出,另一个是4 20mA输出.它们在相同的压力下,变送的模拟量电流年夜小分歧,在S7200内者之间存在比例换算关系.模拟量输出的情况也年夜致相同.4 20mA之间换算关系,但模拟量转换的目的显然不是在S7200 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编程软件中应用.个指令库中,子法式Scale_I_to_R可用来进行模拟量输入到S7200内部数据的转换;子法式Scale_R_I可用于内部数据到模拟量输出其中scale_I_R法式段例:将4 20mA 模拟量输入转换为内部百分比值 将内部百分比值转换为4 20mA 模拟量输出对精度要求不高的处所,420ma 转换成020ma 可按比例计算公式 =((ai4)/16)*20其法式段实例:发贴者 Memory Of Heart 时间:下午3:540 评论S7200 +TD400C显示系统时间、运行时间的法式看见论坛上有些朋友对西门子TD文本显示器显示时钟的问题比力关心,在这个帖子里笔者给出一个已经应用于工程上的法式例子,并作出详细分析,希望对关心这个问题的朋友有些帮手.这个法式是S7200+TD400C显示系统时间、当班运行时间、累计运行时间的例子.以下是s7200 S7200+TD400C显示系统时间、运行时间的法式详解:系统硬件配置如下:PLC:西门子S7200 CN;CPU 226 CN REL02.01;AC100~230V电源/DC24V输入/继电器输出;定货号6ES72162BD230XB8;固件02.01 Build2;ASIC:01.00.文本显示器:TD400C;定货号6A V6 66400AA000AX0;自带9芯TD/CPU电缆;版本:1.0.0.3.S7 200与TD400C通过TD400C随机配置的TD/CPU通信电缆连接,实现电源供给和通信(因为当TD400C与S7200CPU之间的距离小于 2.5米时,采纳TD/CPU电缆的方式进行供电;当TD400C与S7200 CPU之间的距离超越2.5米时,使用外部电源供电并使用PROFIBUS组件连接网络). 系统软件配置如下:S7200参数设置:在“系统块”的“断电数据坚持”中设置VW1600以后2000个单位为断电数据坚持.TD400C参数设置:TD400C地址:1CPU地址:2参数块地址:0波特率:9.6KHSA:31GUF:10键盘声音反馈:开屏幕呵护时间:10分钟S7200的系统时钟调整为准确的北京时间.下面先写一下该法式所用到的存储器的意义,以便于理解法式.本班运行时间:小时VW1600、分钟VW1604、秒VW1608;累计运行时间:小时VW1620、分钟VW1624、秒VW1628;系统时间(BCD码字节):年VB2000、月VB、日VB、小时VB、分钟VB、秒VB、星期VB;系统时间(整数):年VW1644、月VW1648、日VW1652、小时VW1656、分钟VW1660、秒VW1664;本班设备开始运行时间:小时VW1680、分钟VW1684、秒VW1688;本班设备最后运行时间:小时VW1700、分钟VW1704、秒VW1708;上班时间设置:小时VW1720、分钟VW1724;下班时间设置:小时VW1740、分钟VW1744;本班运行时间复位:VW1760;本班运行时间被复位的时间:年VW1764、月VW1768、日VW1772、小时VW1776、分钟VW1780;累计运行时间复位:VW1800;累计运行时间被复位的时间:年VW1804、月VW1808、日VW1812、小时VW1816、分钟VW1820;EEPROM写入次数:VW3558;因为考虑到编程中可能会用到一些中间存储器,所以在TD400C中界说存储器时留了余量,每两个存储器之间都有1个字的存储器留作备用. 根据相关技术要求,先组态TD400C画面,到达预期目的.“工具”——“文本显示向导”,先配置TD400C:然后点击“用户菜单”,配置用户菜单.因为该工程的界面要求很简单,所以每个菜单项只配置了1个屏幕(最多可以配置8个屏幕).第1个屏幕:该屏幕中的第1个数据(这里的数据排列顺序为:先按第1排从左至右、再按第2排从左至右的顺序依次排列,下同):因为版面的问题,该屏幕的其它PLC数据和其它屏幕中的PLC数据就纷歧一列举了.这些数据都是VW、无符号数类型,具体对应情况请参阅3楼说明. 第2个屏幕:第3个屏幕:第4个屏幕:第5个屏幕:第??个屏幕:??第??个屏幕:??TOD R指令读到的实时时钟是BCD字节,要想把这个BCD字节显示出来,需要进行转换.在网上也曾查阅过,一部份人先用BTI指令把这个BCD字节转换整数,然后用ITA指令把整数转换为ASCII字符串,在画面中嵌入这个ASCII字符串用于显示.笔者也这样试过一下,可能因为其它问题没有测试胜利,而又突然想到——在法式的多处都需要用到这个实时时钟数据,所以转换为ASCII字符以后对法式其它处所没什么作用.经过考虑,我的转换思想是:先用BTI指令把这个BCD字节转换BCD整数,然后用BCDI指令把BCD整数转换为正常的十进制/十六进制整数,在画面中嵌入这个获得的整数用于显示.在法式的其它处所也可以使用这些实时时钟变量.下面是该工程的TD400C显示画面:。
模拟量的
输入/输
出都可以
用下列的
通用换算
公式换
算:
假设模拟
量的标准
信号是
A0-Am(如
4-
20mA),
其中:A/D转换后数值为D0-Dm(如6400-32000),
Ov: 换算结果设模拟量的标准信号为A,A/D转换后的相应数值为D,由于线性关系,函数关系
A=f(D),可以表示为数学方程式:
Iv: 换算对象
Osh: 换算结果的高限D/A转换:
Osl: 换算结果的低限
A=(D-
D0)*(Am-
A0)/(Dm-
D0)+A0
通用比例换算公式S7-200模拟量/
Ov = [(Osh - Osl)*(Iv - Isl)/(Ish - Isl)] + Osl
根据该方
程式可以
方便的根
据D值算
出A值,
将该方程
式逆变
换,得出
函数关系
D=f(A),
可以表示
为数学方
程式:Ish: 换
算对象的
高限
Isl: 换算对象的低限A/D转换:
D=(A-
A0)*(Dm-D0)/(Am-A0)+D0
A0-Am对应4-
20mA,
D0-Dm对应6400-32000
拟量/数字量换算公式:。
西门子S7200模拟量处理程序,经典模板,拿去直接编译使用一、开始之前献给大家普及一下S7200模拟量编程原理模拟量值和A/D转换值的转换假设模拟量的标准电信号是A0—Am(如:4—20mA),A/D转换后数值为D0 —Dm(如:*00—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转换后,我们得到的数值是*00—32000,即A0=4,Am=20,D0=*00,Dm=32000,代入公式,得出:A=(D-*00)×(20-4)/(32000-*00)+4。
假设该模拟量与AIW0对应,则当AIW0的值为12800时,相应的模拟电信号是*00×16/25600+4=8mA。
二、模拟量经典编程案例源码,拿去直接编译使用SIEMENS S7-200系列模拟量算法程序,模拟量扩展模块EM231 ,温度传感器为1-5V 对应温度为-30-70度,此算法程序如下: LD AIW0, VW2012MOVD &VB2012, AC1MOVW *AC1, VW2024DIV +320, VD2022MUL +10, VD2020DIV +320, VD2020MOVW VW2022, VW2026MOVW +0, VW2022MUL +10, VD2022+I VW2024, VW2026-I +300, VW2026MOVW VW2026, *AC2 通过AC2显示温度值本程序已在工业应用中,可拷贝后直接粘贴到程序中使用.友情奉献.D SM0.0MOVW AIW0, VW2012。
最新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之间的量程存入到VD1003.3 REAL格式数据比例换算(S_RTR): S_RTR 功能块可用来转换在范围内的REAL 格式的值(例如将0.0 到1.0输入值转化为百分数输出)。
本子程序调用为前面读取来的0.0-1.0量程转换为百分比0-100数值转出到DV2003.4转换为INTEGER格式数据的模拟量输出(S_RTI): S_RTI 功能块可用来将REAL 数转换为INTEGER数据类型的模拟量输出。
本子程序调用:把模拟量量程0.0-1.0数字转换成0-20MA的信号输出,在不同量程下,读取或输出得到不同的结果。
一次函数表达示:Y=KX+b(不过原点),Y=KX(过原点) 定义:介词是一种用来表示词与词, 词与句之间的关系的词。
在句中不能单独作句字成分。
介词后面一般有名词代词或相当于名词的其他词类,短语或从句作它的宾语。
介词和它的宾语构成介词词组,在句中作状语,表语,补语或介词宾语。
※一、表示时间的介词:1)in , on,at 在……时in表示较长时间,如世纪、朝代、时代、年、季节、月及一般(非特指)的早、中、晚等。
因为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编程软件中应用。
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种传感変送器的转换公式该如何推导的呢?这要借助与数学知识帮助,请看下图:上面推导出的(2-1)、(2-2)、(2-3)三式就是对应(1)、(2)、(3)三种温度传感变送器经过模块转换成数字量后再换算为被测量的转换公式。
S7-200SMART模拟量量程转换中级篇说明:上⼀篇⽂章,谈到了量程转换的初级篇,主要是针对有明确功能⽤途的使⽤者,同时要求不⾼的使⽤。
⽐较简单实⽤。
但是在实际使⽤中,初级篇的内容可能满⾜不了⽤户需求,⽐如,⽤户需要⾼报警,低报警等功能,如果我们把这些功能集成封装在⼀个FB块或者FC块中,使⽤起来会更加⽅便。
为此,本⼈将以S7-200SMART PLC为原型,详细介绍模拟量转换的中级内容,读者可以依葫芦画瓢,套⽤在其他PLC上。
仅供参考,欢迎指正。
模拟量转换中级篇⼀、课程设计本课程详细讲解了S7-200SMART系列模拟量⼀般转换。
在此基础上新增⾼报警、低报警功能。
注:本程序以S7-200SMART系列PLC为原型,该系列PLC的局部存储器有限制,因此程序中未加⾼⾼报警和低低报警的相关功能。
读者可以根据实际情况,依葫芦画瓢,在其他PLC上加上该功能。
⼆、课程内容在S7-200SMART的编程软件中,没有专门⽤于模拟量量程转换的功能块,要实现将模拟量模块通道采集上来数据转换为实际⼯程中的⼯程量:如0~10MPa。
这需要⼯程师⾃⼰做⼀个量程转换的功能。
通常,为了引⽤的⽅便,习惯的把量程转换这样的功能做出⼀个⼦程序,并赋予相应的参数,这样就可以多次⽅便的对该功能的调⽤。
三、S7-200SMART模拟量卡通道描述1、信号类型:电压信号或者电流信号,⼆者选其⼀;2、信号范围:-10v~+10v或者0~20mA;3、通道极性:双极性和单极性;4、极性取值:双极性取值:-27648~27648;单极性取值:0~27648;四、程序设计在实际⼯程运⽤中,我们所常⽤的模拟量信号为电流信号,信号范围为4~20mA。
本课程设计以电流信号4~20mA为例⼦来设计程序。
因此,在S7-200SMART中0~20mA信号对应的取值为0~27648,要将该取值转换为4~20mA时对应的取值范围为:5530~27648。
设:输⼊变量为:IN;数据类型:整型输出变量为:OUT;数据类型:浮点型输⼊最⼩值:Imin;数据类型:浮点型(为了简化程序,输⼊时带上⼩数,如5530.0即可)输⼊最⼤值:Imax;数据类型:浮点型(为了简化程序,输⼊时带上⼩数,如27648.0即可)输出最⼩值:Omin;数据类型:浮点型输出最⼤值:Omax;数据类型:浮点型⾼报设定:SP_H;数据类型:浮点型低报设定:SP_L;数据类型:浮点型输出⾼报:ALM_H;数据类型:布尔型输出低报:ALM_L;数据类型:布尔型计算公式:由线性变换公式得:公式1从上述公式并结合实际⼯程中的应⽤,在软件编程中将会使⽤到的功能块有:减法块、整型转化为双整型块、双整型转浮点型块、浮点数乘法块、浮点数除法块,浮点型加法块。
模拟量比例换算之杨若古兰创作(D/A)数/模转换之间的对应关系,S7200 CPU内部用数值暗示内部的模拟量旌旗灯号,两者之间有必定的数学关系.这个关系就是模个0 20mA的模拟量旌旗灯号输入,在S7200 CPU内部,0 20mA对应于数值范围0 32000;对于4 20mA的旌旗灯号,对应的内部数都是0 16MPa,但是一个是0 20mA输出,另一个是4 20mA输出.它们在不异的压力下,变送的模拟量电流大小分歧,在S7200内部之间存在比例换算关系.模拟量输出的情况也大致不异.20mA之间换算关系,但模拟量转换的目的明显不是在S7200 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编程软件中利用.个指令库中,子程序Scale_I_to_R可用来进行模拟量输入到S7200内部数据的转换;子程序Scale_R_I可用于内部数据到模拟量输出其中scale_I_R程序段例:将4 20mA模拟量输入转换为内部百分比值将内部百分比值转换为4 20mA模拟量输出对于精度请求不高的地方,420ma转换成020ma 可按比例计算公式 =((ai4)/16)*20其程序段实例:发贴者 Memory Of Heart 时间:下战书3:540 评论S7200 +TD400C显示零碎时间、运转时间的程序看见论坛上有些朋友对西门子TD文本显示器显示时钟的成绩比较关心,在这个帖子里笔者给出一个曾经利用于工程上的程序例子,并作出具体分析,但愿对关心这个成绩的朋友有些帮忙.这个程序是S7200+TD400C显示零碎时间、当班运转时间、累计运转时间的例子.以下是s7200 S7200+TD400C显示零碎时间、运转时间的程序详解:零碎硬件配置如下:PLC:西门子S7200 CN;CPU 226 CN REL02.01;AC100~230V电源/DC24V输入/继电器输出;订货号6ES72162BD230XB8;固件02.01 Build2;ASIC:01.00.文本显示器:TD400C;订货号6AV6 66400AA000AX0;自带9芯TD/CPU电缆;版本:1.0.0.3.S7 200与TD400C通过TD400C随机配置的TD/CPU通信电缆连接,实现电源供给和通信(由于当TD400C与S7200CPU之间的距离小于 2.5米时,采取TD/CPU电缆的方式进行供电;当TD400C与S7200 CPU之间的距离超出2.5米时,使用内部电源供电并使用PROFIBUS组件连接收集). 零碎软件配置如下:S7200参数设置:在“零碎块”的“断电数据坚持”中设置VW1600当前2000个单元为断电数据坚持.TD400C参数设置:TD400C地址:1CPU地址:2参数块地址:0波特率:9.6KHSA:31GUF:10键盘声音反馈:开屏幕呵护时间:10分钟S7200的零碎时钟调整为精确的北京时间.上面先写一下该程序所用到的存储器的意义,以便于理解程序.本班运转时间:小时VW1600、分钟VW1604、秒VW1608;累计运转时间:小时VW1620、分钟VW1624、秒VW1628;零碎时间(BCD码字节):年VB2000、月VB、日VB、小时VB、分钟VB、秒VB、礼拜VB;零碎时间(整数):年VW1644、月VW1648、日VW1652、小时VW1656、分钟VW1660、秒VW1664;本班设备开始运转时间:小时VW1680、分钟VW1684、秒VW1688;本班设备最初运转时间:小时VW1700、分钟VW1704、秒VW1708;上班时间设置:小时VW1720、分钟VW1724;放工时间设置:小时VW1740、分钟VW1744;本班运转时间复位:VW1760;本班运转时间被复位的时间:年VW1764、月VW1768、日VW1772、小时VW1776、分钟VW1780;累计运转时间复位:VW1800;累计运转时间被复位的时间:年VW1804、月VW1808、日VW1812、小时VW1816、分钟VW1820;EEPROM写入次数:VW3558;由于考虑到编程中可能会用到一些两头存储器,所以在TD400C中定义存储器时留了余量,每两个存储器之间都有1个字的存储器留作备用. 根据相干技术请求,先组态TD400C画面,达到预期目的.“工具”——“文本显示导游”,先配置TD400C:然后点击“用户菜单”,配置用户菜单.由于该工程的界面请求很简单,所以每个菜单项只配置了1个屏幕(最多可以配置8个屏幕).第1个屏幕:该屏幕中的第1个数据(这里的数据排列顺序为:先按第1排从左至右、再按第2排从左至右的顺序顺次排列,下同):由于版面的成绩,该屏幕的其它PLC数据和其它屏幕中的PLC数据就纷歧一列举了.这些数据都是VW、无符号数类型,具体对应情况请参阅3楼说明. 第2个屏幕:第3个屏幕:第4个屏幕:第5个屏幕:第??个屏幕:??第??个屏幕:??TOD R指令读到的实时时钟是BCD字节,要想把这个BCD字节显示出来,须要进行转换.在网上也曾查阅过,一部分人先用BTI指令把这个BCD字节转换整数,然后用ITA指令把整数转换为ASCII字符串,在画面中嵌入这个ASCII字符串用于显示.笔者也如许试过一下,可能由于其它成绩没有测试成功,而又突然想到——在程序的多处都须要用到这个实时时钟数据,所以转换为ASCII字符当前对程序其它地方没什么感化.经过考虑,我的转换思想是:先用BTI指令把这个BCD字节转换BCD整数,然后用BCDI指令把BCD整数转换为正常的十进制/十六进制整数,在画面中嵌入这个得到的整数用于显示.在程序的其它地方也能够使用这些实时时钟变量.上面是该工程的TD400C显示画面:。
如何对 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-200模拟量转换器校准算法---简介本文档旨在介绍S7-200控制器中模拟量转换器的校准算法。
校准算法的目的是通过对模拟量转换器的参数进行调整,使得S7-200控制器能够准确地测量和转换模拟信号。
---模拟量转换器校准步骤步骤1: 确定校准点首先,需要确定校准点的个数和位置。
根据实际应用需求,一般选择至少两个校准点。
校准点的位置应覆盖整个模拟量输入范围,并且校准点之间的间距应相对均匀。
步骤2: 收集校准数据在确定了校准点后,需要使用已知准确数值的模拟信号输入到S7-200控制器中,并记录对应的模拟量转换器输出数值。
收集足够数量的校准数据有助于提高校准结果的准确性。
步骤3: 校准曲线拟合得到了足够的校准数据后,可以使用拟合算法将校准数据拟合成校准曲线。
常用的拟合算法包括线性拟合、多项式拟合等。
拟合曲线的选择应根据实际情况和校准点的分布来确定。
步骤4: 校准参数计算通过拟合曲线,可以得到校准曲线的表达式。
根据表达式,计算出校准参数。
常见的校准参数包括增益和偏移量。
增益参数用于调整斜率,而偏移量参数用于调整截距。
步骤5: 校准参数设置最后一步是将计算得到的校准参数设置到S7-200控制器中。
在控制器的配置界面中,找到模拟量转换器校准参数的设置选项,并将计算得到的参数输入其中。
---结论通过以上步骤,我们可以完成S7-200模拟量转换器的校准工作。
校准后的模拟量转换器能够更准确地测量和转换模拟信号,提高了控制系统的精度和稳定性。
以上是S7-200模拟量转换器校准算法的详细步骤和流程,希望对您有所帮助。
---*注意:以上文档仅作参考,具体操作应根据实际情况和设备说明进行。
*。