使用PLC对模拟量处理是在项目开发过程中,经常会遇到的问题。PLC运行过程中使用的是AD转换后的数字数据,实际工程值使用的是表达现场物理现状的数据,那这两种数据直径的对应转换是如何进行的?PLC编程又如何对这样的数据进行转换处理?
PLC对电压/电流模拟量的处理
因为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之类的数值;对于编程和操作人员来说,得到具体的物理量数值(如压力值、流量值),或者对应物理量占量程的百分比数值要更方便,这才是换算的最终目标。
PLC内部数据转换为物理量值的计算
以下为模拟量输入信号与PLC读取值之间的转换关系。
模拟量的输入/输出都可以用下列的通用换算公式换算:
Ov = [(Osh - Osl)*(Iv - Isl)/(Ish - Isl)] + Osl
- Ov:换算结果
- Iv:换算对象
- Osh:换算结果的高限
- Osl:换算结果的低限
- Ish:换算对象的高限
- Ish:换算对象的低限
在进行程序的处理的时候,依照以上对应转换关系,进行线性转换,即可达到实际的物理量或者百分比值。
实例程序实现
以下程序为读取模拟量数值,并将其按照实际工况转换为实际的物理值,其中转换系数常数手动计算设置,转换常数的计算方法上面的对应转换关系得出。
以上网络功能为,将模拟量输入数据转换为浮点数,以便进行数据处理。
以上程序网络实现了PLC模拟量输入读取数据到实际物理值之间的转换。