S7-200模拟量换算
- 格式:pdf
- 大小:1.73 MB
- 文档页数:48
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模拟量转换器的校准算法,包括准备工作、收集参考值、线性插值计算、更新校准曲线、验证校准和记录结果。
在进行校准时,务必注意模拟量输入信号的准确性和稳定性,并定期检查和重新校准模拟量转换器,以确保其持续准确工作。
精通S7-200【PLC-模拟量】对于初学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Ω标准电阻。
西门子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-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)类型数据的比例换算。
返回专题资料首页 >>模拟量比例换算因为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其中:它们之间的关系可以图示如下:图1. 模拟量比例换算关系实用指令库 Ov:换算结果 Iv:换算对象 Osh:换算结果的高限 Osl:换算结果的低限 Ish:换算对象的高限 Isl: 换算对象的低限Page 1 of 2模拟量- 换算PDF w 在STEP 7-Micro/WIN Programming Tips(Micro/WIN编程技巧中)的Tip38就是关于如何实现上述转换的例程。
S7-200模拟量转换器校准算法---简介本文档旨在介绍S7-200控制器中模拟量转换器的校准算法。
校准算法的目的是通过对模拟量转换器的参数进行调整,使得S7-200控制器能够准确地测量和转换模拟信号。
---模拟量转换器校准步骤步骤1: 确定校准点首先,需要确定校准点的个数和位置。
根据实际应用需求,一般选择至少两个校准点。
校准点的位置应覆盖整个模拟量输入范围,并且校准点之间的间距应相对均匀。
步骤2: 收集校准数据在确定了校准点后,需要使用已知准确数值的模拟信号输入到S7-200控制器中,并记录对应的模拟量转换器输出数值。
收集足够数量的校准数据有助于提高校准结果的准确性。
步骤3: 校准曲线拟合得到了足够的校准数据后,可以使用拟合算法将校准数据拟合成校准曲线。
常用的拟合算法包括线性拟合、多项式拟合等。
拟合曲线的选择应根据实际情况和校准点的分布来确定。
步骤4: 校准参数计算通过拟合曲线,可以得到校准曲线的表达式。
根据表达式,计算出校准参数。
常见的校准参数包括增益和偏移量。
增益参数用于调整斜率,而偏移量参数用于调整截距。
步骤5: 校准参数设置最后一步是将计算得到的校准参数设置到S7-200控制器中。
在控制器的配置界面中,找到模拟量转换器校准参数的设置选项,并将计算得到的参数输入其中。
---结论通过以上步骤,我们可以完成S7-200模拟量转换器的校准工作。
校准后的模拟量转换器能够更准确地测量和转换模拟信号,提高了控制系统的精度和稳定性。
以上是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编程软件中应用。
在这个指令库中,子程序Scale_I_to_R可用来进行模拟量输入到S7-200内部数据的转换;子程序Scale_R_I可用于内部数据到模拟量输出的转换。
其中scale_I_R程序段例:将4 - 20mA模拟量输入转换为内部百分比值将内部百分比值转换为4 - 20mA模拟量输出对于精度要求不高的地方,4-20ma转换成0-20ma 可按比例计算公式=((ai-4)/16)*20其程序段实例:发贴者Memory Of Heart 时间:下午3:540 评论S7-200 +TD400C显示系统时间、运行时间的程序看见论坛上有些朋友对西门子TD文本显示器显示时钟的问题比较关心,在这个帖子里笔者给出一个已经应用于工程上的程序例子,并作出详细分析,希望对关心这个问题的朋友有些帮助。
这个程序是S7200+TD400C显示系统时间、当班运行时间、累计运行时间的例子。
以下是s7-200 S7200+TD400C显示系统时间、运行时间的程序详解:系统硬件配置如下:PLC:西门子S7-200 CN;CPU 226 CN REL02.01;AC100~230V电源/DC24V输入/继电器输出;订货号6ES7216-2BD23-0XB8;固件02.01 Build2;ASIC:01.00。
文本显示器:TD400C;订货号6AV6 6640-0AA00-0AX0;自带9芯TD/CPU 电缆;版本:1.0.0.3。
S7 -200与TD400C通过TD400C随机配置的TD/CPU通信电缆连接,实现电源供给和通信(因为当TD400C与S7-200CPU之间的距离小于2.5米时,采用TD/CPU电缆的方式进行供电;当TD400C 与S7-200 CPU之间的距离超过2.5米时,使用外部电源供电并使用PROFIBUS组件连接网络)。
系统软件配置如下:S7-200参数设置:在―系统块‖的―断电数据保持‖中设置VW1600以后2000个单元为断电数据保持。
TD400C参数设置:TD400C地址:1CPU地址:2参数块地址:0波特率:9.6KHSA:31GUF:10键盘声音反馈:开屏幕保护时间:10分钟S7-200的系统时钟调整为准确的北京时间。
下面先写一下该程序所用到的存储器的意义,以便于理解程序。
本班运行时间:小时VW1600、分钟VW1604、秒VW1608;累计运行时间:小时VW1620、分钟VW1624、秒VW1628;系统时间(BCD码字节):年VB2000、月VB2001、日VB2002、小时VB2003、分钟VB2004、秒VB2005、星期VB2007;系统时间(整数):年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个屏幕:第6个屏幕:第7个屏幕:第8个屏幕:下面是主程序部分:首先在主程序中调用子程序:下面是子程序:先调用TD向导生成的子程序:TODR指令读到的实时时钟是BCD字节,要想把这个BCD字节显示出来,需要进行转换。
在网上也曾查阅过,一部分人先用BTI指令把这个BCD字节转换整数,然后用ITA指令把整数转换为ASCII字符串,在画面中嵌入这个ASCII字符串用于显示。
笔者也这样试过一下,可能因为其它问题没有测试成功,而又突然想到——在程序的多处都需要用到这个实时时钟数据,所以转换为ASCII字符以后对程序其它地方没什么作用。
经过考虑,我的转换思想是:先用BTI指令把这个BCD字节转换BCD整数,然后用BCDI指令把BCD整数转换为正常的十进制/十六进制整数,在画面中嵌入这个得到的整数用于显示。
在程序的其它地方也可以使用这些实时时钟变量。
下面是该工程的TD400C显示画面:发贴者Memory Of Heart 时间:下午2:390 评论2009年10月19日星期一bcb中控制Edit控件只输入数字在BCB中控制Edit控件的输入是件很麻烦的事,在这一点上BCB做的没有VC好。
但是既然做为程序员,那就没有什么可以被难倒的。
我们可以采取自己写代码控制的方法来实现对其的控制。
这里只说两种简单的方法,抛砖引玉吧。
第一种:控制事件方法在Edit控件的KeyPress事件中控制输入的Key,把不需要的Key设置成0,就OK了。
例如:void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key){//控制Edit1只能输入数字if ( (Key<'0'||Key>'9') && (Key != '\b') ){Key = 0;}}这种方法只能在KeyPress事件中,不能在KeyDown或KeyUp事件中。
第二种方法:调用API的方法不说了看代码吧void __fastcall TForm1::FormShow(TObject *Sender){//控制Edit2只能输入数字SetWindowLong(Edit2->Handle, GWL_STYLE,GetWindowLong(Edit2->Handle,GWL_STYLE)|ES_NUMBER);}或许朋友们有更好的方法,请告诉我。
发贴者Memory Of Heart 时间:下午4:160 评论[收藏]成功走上管理岗位的11个技巧成功走上管理岗位的11个技巧能够帮助经理人"有所不为"的管理与领导技巧数不胜数,不过,本书精选的其中一些方法,能帮助他们更快地完成从一味地"执行"到侧重"管理"与"领导"的转变,是被实践证明了的很好的管理方法。
我把这些关键的管理与领导技能称为"黄金技能",它们分别是:・拓展下属的工作能力,包括给他们提供培训和授权。
・积极主动地倾听员工的心声。
・给予并接受员工的反馈。
・激励团队成员。
另一种成功走上管理岗位的方法是,学会享受管理工作的乐趣,享受你能对其他人施加的积极影响。
为什么不最大限度地发挥管理者的作用呢?很多"意外型经理人"都发现,当他们开始享受工作的乐趣,并意识到管理工作的重要性时,所有的问题都不存在了。
有过这种经历的经理人告诉我,这种体验使他们的工作变得更轻松、压力更小了,以出乎自己意料的速度很快作出了成果。
下面,我将与大家分享这些技巧,它们曾帮助很多"意外型经理人"成长为成功的经理人。
1.不找借口。
成功的经理人知道应该停止抱怨,停止抱怨公司或上层主管把自己安排到管理岗位上;也不会因为自己还没有准备好,或不善于做管理而自怨自艾;同时也接受下属员工有可能对管理者怨声载道的事实。
他们把所有的精力都放在管理工作中,一旦他们做到了这些,工作就将变得充满挑战和乐趣。
成功的经理人都不愿把创造力和精力浪费在给自己找借口上。
2.尝试新事物。
成功的经理人勇于尝试自己从未想过的新生事物,敢于去做其他的经理人从未做过的事情。
举个例子,在华盛顿某个政府部门任职的一位经理人告诉我,她准备在今后每次会议开始前,给大家讲一则与管理有关的笑话(当然,一定是非常有意思的笑话)。