Logix5000项目中计算和算术指令的程序开发

使用算术指令编程

源:算术指令的执行对象,可以是标签地址或常数。

目的:算术操作执行完成后数据存储的标签地址。

注意:计算和算术指令中的数据类型可以为混合类型的数据,但是这样会降低精度,也可能会产生取整误差,并且会花费更多的时间执行指令。

计算指令

关于计算和算术指令和该指令功能的更多信息,请参阅Logix5000TM控制器编程文档参考指南(Logix5000TMControllersProgrammingDocumentationReference)》。

如果一条指令的所有操作数都用同一种最优数据类型,则计算和算术指令执行的速度快而且占用内存少。典型的最优数据类型是DINT或REAL。

ADD为一条输出指令,将源A操作数和源B操作数相加并将结果放到目的单元内。

如下图,当ADD指令被使能时,coke_weight1与coke_weight2相加。

结果放到目的标签单元中,result_1:

加法指令

SUB为一条输出指令,将源A操作数和源B操作数相减并将结果放到目的单元内。

如下图,当SUB指令被使能时,coke_weight1与coke_weight2相减。

结果放到目的标签单元中,result_1:

减法指令

MUL为一条输出指令,将源A操作数和源B操作数相乘并将结果放到目的单元内。

如下图,当MUL指令被使能时,result_1与result_2相乘。

结果放到目的标签单元中,result_3:

乘法指令

DIV为一条输出指令,将源A操作数和源B操作数相除并将结果放到目的单元内。

如下图,当DIV指令被使能时,源A标签Valve_Capacity1除以源B标签Valve_Capacity2。

结果放到目的标签单元中,Valve_1and2:

除法指令

如果目的单元不是REAL型的数据,则指令按下面的方式处理结果中的小数部分:

相除的结果取向

MOD为一条输出指令,将源A操作数和源B操作数相除并将结果的余数放到目的单元内。

如下图,当MOD指令被使能时,源A标签result_7除以源B标签result_4。

结果放到目的标签单元中Remain:

取余指令

NEG为一条输出指令,改变源单元(无论是正还是负)的符号再将结果放到目的单元内。

如下图,当NEG指令被使能时,coke_weight1变为一个不同的标签数值。

新数值然后放到目的标签单元中,coke_weight:

取反指令

ABS为一条输出指令,将源单元的数据取绝对值再将结果放到目的单元内。

当ABS指令被使能时,计算result_6的绝对值。

结果放到目的单元内,result_7。

绝对值指令

SQR为一条输出指令,将源单元的数据取平方根后再将结果放到目的单元内。

当SQR指令被使能时,计算Optimum_CokeWeight的平方根。

结果放到目的单元内,result_6。

平方根指令

CPT指令为输出指令,该指令执行表达式中定义的算术运算。

当指令使能时,CPT指令计算表达式中的算式并将结果放在目的单元中。

同其它计算/算术指令比较起来,CPT指令的执行可能会慢一些,也使用较多的内存。CPT指令的优势是允许用户在指令中输入复杂的表达式。

CPT指令以特殊的顺序执行算术操作,并不按照书写的顺序进行操作。用圆括号括起来的部分的优先级高于操作的优先级,这是因为操作执行时先对圆括号内的表达式进行运算。

免责声明:本文章如果文章侵权,请联系我们处理,本站仅提供信息存储空间服务如因作品内容、版权和其他问题请于本站联系