一个通用应用软件是通过一-个乘法操作后接着–个除法操作,可能还有加法运算来缩放模拟输入值。一个0到+10V的模拟输入将替代在它相应%AI输入寄存器中的值0至+32,000。使用一个MUL_ INT功能块乘以%AI输入寄存器的值将产生-一个溢出,因为–个INT类型指令输入输出范围在32,767至-32,768.使用%AI的值作为MUL_ DINT的输入值也不能运算,因为32位的IN1将同时合并2个模拟量输入。为了解决这个问题,你可以把模拟输入移至一个双寄存器的低字,接着检验符号,如果符号检验为正的则设置第二个寄存器为0,检验为符号则设置为-1。然后使用由一个MUL_ DINT建立的双寄存器,MUL_DINT给出一-个32位结果,也可以和后面的DIV_DINT功能块–起使用。
例如,下面的逻辑能用来缩放%AI1的+10V输入到+25000工程单位送进%R5.一个备用的,但不那么精确的,使用INT数值设计这个电路的方法是先放好DIV_DINT指令,后面接着MUL_ _DINT指令。DIV指令中IN2的值为32,MUL中IN2的值为25.经过这样处理,将保持上面电路的缩放比例,并保持数值在INT类型指令的工作范围之内。然而,DIV指令具有丢弃余数的固有特性,所以当DIV输出乘以MUL指令时,也要乘上因为丢弃的余数引入的误差。误差的百分比在输入值的整个范围是非线性的,输入小,误差的百分比大。通过对比,在上面的例子中,由于DIV操作最后执行,结果更精确,所以丢弃的余数也没有被乘进去。如果要求更高的精度,在这个例子中用REAL类型数学指令代替使余数不被丢弃。
GIDDINGS & LEWIS 502-02659-00 NSPP 5020265900
Giddings & Lewis 502-02804-50 EIA Interface Board
Giddings & Lewis 502-02724-51 Console Interface Board