-
-
martion 发表于 2016/7/5 16:04:53
SCALE缩放指令1200是没有的,300400才有。如果现场传感器是4-20ma,模拟模板是0-20ma,那么SCALE指令里K1和K2就应该是5530.0和27648.0。但因为SCALE指令里K1和K2固定为两种情况,BIPOLAR为0,K1=0.0,K2=27648.0这是单极性;BIPOLAR为1,K1=-27648.0,K2=27648.0这是双极性。因为K1\K2不在接口参数里,所以K1=5530和K2=27648.0无法实现,你最好自己写一个块更灵活点。
CASE #index OF
1:
#K1 := 0;
#K2 := 27648;
2:
#K1 := -27648;
#K2 := 27648;
3:
#K1 := 5530;
#K2 := 27648;
ELSE
;
END_CASE;
IF #IN < #K1
THEN
#Temp1 := #K1;
#overflow := 1;
ELSIF #IN > #K2
THEN
#Temp1 := #K2;
#overflow := 1;
ELSE
#Temp1 := #IN;
#overflow := 0;
END_IF;
#Value := (#HI_LIM - #LO_LIM) * ((#Temp1 - #K1) / (#K2 - #K1)) + #LO_LIM;
引用 martion 2016/7/5 16:04:53 发表于2楼的内容
-
-
yujie0612 发表于 2016/7/5 17:49:41
用NORM_X+SCALE_X就可以啊,没那么麻烦
NORM_X将PIW,以及0-27648(或者5530-27648)转为0.0-1.0,然后SCALE_X将0.0-1.0转化为工程量,比如0-100℃
输出也一样
NORM_X将实际工程量,以及工程量范围,转为0.0-1.0,然后SCALE_X将0.0-1.0转化为0-27648中间的一个值作为PQW
引用 yujie0612 2016/7/5 17:49:41 发表于3楼的内容
-
-
atmupkeep 发表于 2016/7/5 21:24:50
楼上说的没错。一个缩放;一个标准化。
动手试一下就知道了。
同时,要理解西门子编程的规范和理念。推荐尽量用整数,少用浮点。浮点就是用0-1.00范围(因为实际是科学记数法,有效位数是固定的。转成0-100.0没用);位数标定由HIM去做(否则都是浪费时间)。
引用 atmupkeep 2016/7/5 21:24:50 发表于4楼的内容
-
-
-
ytzidonghua | 当前状态:在线
总积分:11263 2024年可用积分:6
注册时间: 2006-09-18
最后登录时间: 2024-08-02
-
ytzidonghua 发表于 2016/7/6 8:38:53
就是个乘除运算
引用 ytzidonghua 2016/7/6 8:38:53 发表于5楼的内容
-
-
引用 zhanghe 2016/7/7 9:54:52 发表于6楼的内容