s7 300 STL 程序问题

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月2日 下午5:31
下一篇 2018年12月2日 下午5:31

相关推荐