我有一个0~5V的模拟量进到EM235里,想通过在局部变量里来完成A/D转换,并且是实数.请问高手赐教!最好能发个实例看看!plkori2009@163.com谢谢!
最佳答案
使用局部变量
您可以使用程序编辑器中的局部变量表来为子程序和中断服务程序分别指定变量,如图5--9所示。参见图5-9。局部变量可用于子程序传递参数,它增强了子程序的可移植性和再利用性。
具体参看S7-200系统手册第五章P63
模拟量比例换算
因为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: 换算对象的低限
应用模拟量模块时,需要根据输入信号的规格设置右下角的DIP开关(Configuration开关)。DIP开关只对输入信号有效,并且对所有的输入通道都是相同的。
EM231、EM235带模拟量输入通道的模块,还分别有电位器用于对输入信号进行校正。EM231和EM235上的Gain(增益)电位器用于调整输入信号和转换数值的放大关系;EM235上的Offset(偏置)用于对输入信号调零。如果没有精确的信号源,请不要调整。详细调整方法请参照《S7-200系统手册》。
表2. EM235
单极性 满量程输入 分辨率
SW1SW2SW3SW4SW5SW6
ON OFF OFF ON OFF ON 0 - 50 mV 12.5μV
OFF ON OFF ON OFF ON 0 - 100 mV 25μV
ON OFF OFF OFF ON ON 0 - 500 mV 125μV
OFF ON OFF OFF ON ON 0 - 1 V 250μV
ON OFF OFF OFF OFF ON 0 - 5 V 1.25mV
0 - 20 mA 5μA
OFF ON OFF OFF OFF ON 0 - 10 V 2.5mV
双极性 满量程输入 分辨率
SW1 SW2 SW3 SW4 SW5 SW6
ON OFF OFF ON OFF OFF ±25 mV 12.5μV
OFF ON OFF ON OFF OFF ±50 mV 25μV
OFF OFF ON ON OFF OFF ±100 mV 50μV
ON OFF OFF OFF ON OFF ±250 mV 125μV
OFF ON OFF OFF ON OFF ±500 mV 250μV
OFF OFF ON OFF ON OFF ±1 V 500μV
ON OFF OFF OFF OFF OFF ±2.5 V 1.25mV
OFF ON OFF OFF OFF OFF ±5 V 2.5 mV
OFF OFF ON OFF OFF OFF ±10 V 5 mV
提问者对于答案的评价:
谢谢你的指点!
我去试试!
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc354758.html