模拟量在西门子是个范围量,这一般是PIW和PQW,使用时需要转换为工程值,转换可以使用系统模块,或自己编写
以下是网络转载:
S7-300以4-20mA为例。系数为27648。
模拟量值=(PIWxx/27648)*(高限-低限)+低限+补偿值
例子:从0到10V的值中输入到插在插槽6的模拟模块中。目前这个值是一个整数(16位),应该规格化100到1000之间的REAL格式,并以双字MD10保存在位储存器中。
语句表的解决方案:
L PIW 288 //0到10V的模拟量输入包含0到27648个整数(16位)
ITD //16位整数值转换成32位整数
DTR //32位整数转化成实数
L 2.7648e+4 //
/R //除以实数27648
L 9.000e+2 //
*R // 乘以实数***(1000-100)
L 1.000e+2 //
+R // 加上实数100(补偿值)
T MD10 //把100到1000规格化成REAL格式
转换模拟量值到工程量值
问题: 是否有功能块能转换模拟量值到工程量值?
解答: 在Step7 中,standard library T1-S7 Converting Blocks FC105。
例如:转换一个模拟量PIW256到0.0~200.0工程范围
Call FC105
IN:=PIW256 (模拟量,范围-27648~27648)
HI_LIM:=200.0 (上限)
LO_LIM:=0.0 (下限)
BIPOLAR:=M2.1 (极性
如M2.1为1,对应的PIW256 为-27648~27648;
如M2.1为0,对应的PIW256为0~27648)
RET_VAT:=MW4 (错误返回值)
OUT:=MD50 (工程值)