您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 16_8_Logix5000项目中计算和算术指令的程序开发
1Logix5000项目中计算和算术指令的程序开发2目标•使用算术指令编程3•源:算术指令的执行对象,可以是标签地址或常数。•目的:算术操作执行完成后数据存储的标签地址。关键术语4计算和算术指令中的数据类型可以为混合类型的数据,但是这样会降低精度,也可能会产生取整误差,并且会花费更多的时间执行指令。重要事项只要梯级输入条件为真。则每次扫描计算和算术指令时指令都执行一次。如果用户希望表达式只计算一次,则可以用one-shot指令来触发传送逻辑指令。关键术语5如果您需要…使用该指令…名称助记符两个数值相加加法ADD两个数值相减减法SUB两个数值相乘乘法MUL两个数值相除除法DIV确定两个值相除后的余数取余MOD对一个数值取反取反NEG对一个数值取绝对值绝对值ABS计算一个数据的平方根平方根SQR计算表达式计算CPT计算和算术指令6关于计算和算术指令和该指令功能的更多信息,请参阅Logix5000TM控制器编程文档参考指南(Logix5000TMControllersProgrammingDocumentationReference)》。计算和算术指令如果一条指令的所有操作数都用同一种最优数据类型,则计算和算术指令执行的速度快而且占用内存少。典型的最优数据类型是DINT或REAL。7ADD为一条输出指令,将源A操作数和源B操作数相加并将结果放到目的单元内。•如下图,当ADD指令被使能时,coke_weight1与coke_weight2相加。•结果放到目的标签单元中,result_1:ADD(加法)指令8SUB为一条输出指令,将源A操作数和源B操作数相减并将结果放到目的单元内。•如下图,当SUB指令被使能时,coke_weight1与coke_weight2相减。•结果放到目的标签单元中,result_1:SUB(减法)指令9MUL为一条输出指令,将源A操作数和源B操作数相乘并将结果放到目的单元内。•如下图,当MUL指令被使能时,result_1与result_2相乘。•结果放到目的标签单元中,result_3:MUL(乘法)指令10DIV为一条输出指令,将源A操作数和源B操作数相除并将结果放到目的单元内。•如下图,当DIV指令被使能时,源A标签Valve_Capacity1除以源B标签Valve_Capacity2。•结果放到目的标签单元中,Valve_1and2:DIV(除法)指令11如果目的单元不是REAL型的数据,则指令按下面的方式处理结果中的小数部分:如果源A……结果的小数部分……示例并且源B不是REAL型数据忽略余数,取整。源ADINT5源BDINT3目的DINT1或者源B是REAL型数据四舍五入源AREAL5.0源BDINT3目的DINT2DIV(除法)指令12如果源B的数据为0,则目的单元如下所示:如果源B为0并且……并且目的单元是……并且结果为……目的单元设置为……所有的操作数均为整型(SINT、INT或者DINT)源A至少有一个操作数为实型SINT,INT,orDINT正-1负0REAL正1.$(正无穷大)负-1.$(负无穷大)DIV(除法)指令13REAL(源)DINT(结果)-2.5-2-1.6-2-1.5-2-1.4-11.411.521.622.52DIV(除法)指令重要事项如果将REAL型数据转换为DINT数据,则存在取舍误差。14MOD为一条输出指令,将源A操作数和源B操作数相除并将结果的余数放到目的单元内。如下图,当MOD指令被使能时,源A标签result_7除以源B标签result_4。结果放到目的标签单元中Remain:MOD(取余)指令15如果源B的数据为0,则目的单元如下所示:如果源B为0并且……并且目的单元是……并且结果为……目的单元设置为……所有的操作数均为整型(SINT、INT或者DINT)源A至少有一个操作数为REAL型SINT、INT或者DINT型正-1负0REAL正1.$(正无穷大)负-1.$(负无穷大)MOD(取余)指令16NEG为一条输出指令,改变源单元(无论是正还是负)的符号再将结果放到目的单元内。•如下图,当NEG指令被使能时,coke_weight1变为一个不同的标签数值。•新数值然后放到目的标签单元中,coke_weight:NEG(取反)指令重要事项对一个负值取反,结果是正值。对正值取反,结果是负值。17ABS为一条输出指令,将源单元的数据取绝对值再将结果放到目的单元内。当ABS指令被使能时,计算result_6的绝对值。结果放到目的单元内,result_7。ABS(绝对值)指令18SQR为一条输出指令,将源单元的数据取平方根后再将结果放到目的单元内。•当SQR指令被使能时,计算Optimum_CokeWeight的平方根。•结果放到目的单元内,result_6。SQR(平方根)指令19如果目的单元不是REAL型的数据,则指令按下面的方式处理结果中的小数部分:如果源数据是负数,则在执行平方根指令前先取数据的绝对值。如果源为……结果的小数部分……示例不是REAL型数据忽略余数,取整。源DINT3目的DINT1是REAL型数据四舍五入源REAL3.0目的DINT2SQR(平方根)指令20同其它计算/算术指令比较起来,CPT指令的执行可能会慢一些,也使用较多的内存。CPT指令的优势是允许用户在指令中输入复杂的表达式。表达式的长度是没有限制的。CPT(计算)指令CPT指令为输出指令,该指令执行表达式中定义的算术运算。•当指令使能时,CPT指令计算表达式中的算式并将结果放在目的单元中。21操作表达式的顺序重要事项等式的操作顺序是先左后右。CPT指令以特殊的顺序执行算术操作,并不按照书写的顺序进行操作。用圆括号括起来的部分的优先级高于操作的优先级,这是因为操作执行时先对圆括号内的表达式进行运算。22算术状态标志位重要事项这些标签不是基本型的标签并且不能对这些标签使用别名引用。在梯形图操作数中可以直接访问算术状态标志位。23算术状态标志位算术状态标志位可以在执行指令后查看算术操作的结果,如下表所列:要检查是否……查看如下状态标志位……使用下面关键字……用户正在存储的数据超过目的单元。因为要存储数据的长度要么超过目的单元的最大容量,要么少于目的单元的最低容量。溢出S:V指令的目的数值是零[0]零位S:Z指令的目的数值是负数符号(结果是负数)S:N指令的结果产生了进位进位S:C2425
本文标题:16_8_Logix5000项目中计算和算术指令的程序开发
链接地址:https://www.777doc.com/doc-3022062 .html