L #OUT90.OUT91
L #TEMP147
/R
T #TEMP146
L #IN69.IN72.IN75
L #TEMP147
/R
L #TEMP146
TAK
-R
RND
AD
DW#16#FFFF
L #IN69.IN72.IN73
+I
T #OUT82
请问这段程序什么意思?请大侠帮我一步一步解释一下。一个美国佬写的,写在FB20块里。特别是“#”,“#TEMP146”,不太明白意思
问题补充:
在FB20 块里看到很多#TEMP146 等这样的地址,不知道#TEMP 是怎么用的?
最佳答案
对于阿鸣大师的解答,我有疑问。下面是我的解释,指正交流!
L #OUT90.OUT91 //将数据实数OUT90.OUT91, 装载到ACCU 1 中。
L #temp147 //将临时变量temp147 , 装载到ACCU1 中,将ACCU1原来的内容装载到ACCU2中
/R //ACCU 2 除以ACCU 1,结果存储到ACCU 1 中。
T #TEMP146 //将ACCU 1 的内容传送给 临时变量temp146.
L #IN69.IN72.IN75 //将数据实数IN69.IN72.IN75 , 装载到ACCU 1 中。
L #temp147 //将临时变量temp147 , 装载到ACCU1 中,将ACCU1原来的内容装载到ACCU2中
/R //ACCU 2 除以ACCU 1,结果存储到ACCU 1 中。
L #TEMP146 //将 临时变量temp146传送给ACCU 1,将上面除以的结果从ACCU1中传送到ACCU2中 .
TAK //TAK (将ACCU 1与ACCU 2互换)将把ACCU 1的内容与ACCU 2的内容交换
-R //ACCU 2 减ACCU 1,结果存储到ACCU 1 中。
RND //RND //将ACCU 1内的 浮点数(32 位,IEEE-FP)转换为整型(32 位)并对结果进行舍入 ,并存入ACCU1中
AD DW#16#FFFF //使用与运算将ACCU 1 的位与32 位常数 (0000 0000 0000 0000 1111 1111 1111 1111)的位模式组合,取其低16位,将结果存储在 ACCU 1 中。
L #IN69.IN72.IN73 ////将整数数据IN69.IN72.IN73, 装载到ACCU1 中,原来ACCU1当中的数据放到ACCU2中
+I // ACCU 1 + ACCU 2,当中的低位相加(整型16位)
T #OUT82 // 装载到 整数数据OUT82
// 需要注意的是:TEMP146,TEMP147,就是建立的临时变量
//OUT90.OUT91 \IN69.IN72.IN75 \IN69.IN72.IN73 用自己建立的数据类型,然后在在FC功能块的接口当中,引用你已经定义的数据类型就可以了!
//(#OUT82)=(#IN69.IN72.IN75)/(#TEMP147)-(#OUT90.OUT91/temp147)+(#IN69.IN72.IN73)
提问者对于答案的评价:
谢谢大家。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc250395.html