因为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编程软件中应用。
注意:此指令库/程序的作者和拥有者对于该软件的功能性和兼容性不负任何责任。使用该软件的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。
在这个指令库中,子程序S_ITR用来进行模拟量输入到S7-200 SMART 内部数据的转换;子程序S_RTI可用于内部数据到模拟量输出的转换。
编程举例:
将4 - 20mA模拟量输入转换为内部百分比值
|
将内部百分比值转换为4 - 20mA模拟量输出
|
图2. 编程举例
温度模拟量输入模块(EM231 TC、EM231 RTD)所读取的数据是温度测量值的10倍(摄氏或华氏温度)。如AIW16里监控到520相当于实际温度52.0度。,可以自己做运算,当然也可以按照上文图2中的步骤做量程转换,调整上下限即可