*近在使用PORTAL编程,把西门子PLC S7-300的SCAL/UNSCAL(FC105/F106)的功能转换为PORTAL环境,并把这2个块的功能合成为一个块,刚好也试下VARIANT指针(一直还没使用过)。
使用了NORM_X和SCALE_X这2个指令,在测试程序时发现,2个块的MAX接口,如果数据为0,OUT的数值直接为VALUE的数值。见下图:
以为是参数设置为变量的问题,于是改为实际数值,还是一样,见下图:
看了下NORM_X和SCALE_X的计算公式,如果为0的话,NORM_X应该会计算出错(除数为0),SCALE_X结果应该是0
把MAX接口赋数值,输出就正常了
经过测试得出,在使用NORM_X和SCALE_X指令时,必须做个判断,MAX-MIN是否为0,如果是0,再进行输出的处理,避免错误的结果出现