关于S7-317F程序的指针和模拟输入问题

我这个程序是老外写的,温度感觉上升的时候感觉是阶梯一样上升,每次增加都是0.7度,而且很均匀,我就怀疑,温度是不是经过了什么处理,但很惭愧,发现硬件组态地址是PIW256-258  ,PIW272-281,但在程序里找不到PIW256-258  ,PIW272-281。数据参考里也是找不到,竟然一个地址都没有,但温度照样显示,所以我就想是不是用了什么指针之类的,程序是STL语言,大家帮忙分析下。
1。语句什么意思,帮忙解读下,举个例子。
2。这个温度到底怎么处理,会有哪些可能呢?
3。PIW272 在程序里找不到,还有什么方法能找到呢?怎么解读呢?
4。我发些我觉得可能是进行模拟量处理的语句大家给我解读下,有可能发的也许不是,大家也可以给个建议,因为程序太大,不知道那个是想要的?只能摸索了。
M012: L     W#16#100
      T     #STAT35
      L     PIW [AR1,P#10.0]
      SRW   8
      T     LB     0
      A     #TEMP74.TEMP75
      A     #TEMP74.TEMP82
      A     #STAT28
      O     
      AN    #STAT28
      A     #TEMP74.TEMP75
      JC    M028
      SET   
      S     #STAT26
      R     #STAT23
      L     PIW [AR1,P#0.0]
      T     #STAT51
      L     #STAT33
      L     #STAT51
      >I    
      JC    M029
      S     #STAT23
      L     #STAT33
      T     #STAT34
      JU    M02a
M029: T     #STAT34
      -I    
      T     #STAT32
M02a: L     #STAT34
      T     #STAT37.STAT39
      L     B#16#1E
      T     #STAT52
      L     B#16#0
      JU    M021
M02b: A     #TEMP92
      JC    M008
      O     #TEMP90
      O     #TEMP91
      L     B#16#3
      S     #STAT31
      JC    M02c
      A     #STAT23
      L     B#16#A
      T     #STAT50
      JC    M018
      L     B#16#6
M02c: T     #STAT50
      JU 
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   L     PIW [AR1,P#6.0]
      SRW   8
      T     LB     0
      AN    #TEMP70.TEMP74
      JC    M001
      R     #STAT18
      R     #STAT19
      R     #STAT17
      R     #STAT20
      R     #STAT24
      R     #STAT26
      S     #STAT15
      A     #TEMP70.TEMP71
      =     #STAT25
      L     W#16#400
      T     PQW [AR1,P#2.0]
      L     B#16#1
      L     #STAT47
      <>I   
      A(    
      L     B#16#B
      <>I   
      )     
      S     #STAT16
      L     W#16#4000
      T     #STAT32
      BEU   
M001: A     #TEMP70.TEMP75
      JCN   M002
      AN    #STAT15
      JC    M003
      R     #STAT15
      L     W#16#0
      T     PQW [AR1,P#2.0]
M002: L     W#16#4000
      T     #STAT32
      L     0
      T     PQW [AR1,P#2.0]
      BEU   
M003: AN    #STAT16
      JC    M004
      S     #TEMP89
      R     #STAT16
      L     W#16#40D
      T     #STAT32
      JU    M005
////////////////////////////////////////////////////////////////////////////////////////////////////////////
    M00f: L     W#16#8000
      T     #STAT32
      L     PIW [AR1,P#6.0]
      SRW   8
      T     LB     0
      L     B#16#5
      L     #STAT47
      ==I   
      JC    M01f
      AN    #TEMP70.TEMP72
      JC    M01c
      L     B#16#9
      JU    M020
M01f: A     #TEMP70.TEMP72
      JC    M01c
      L     B#16#7
M020: T     #STAT47
      JU    M01c
///////////////////////////////////////////////////////////////////////////

问题补充:
感谢RENHQ- 高级工程师的回答,这个不是全程序,但处理这块应该是全的,看不懂这个啥意思,大家谁懂STL语言,解释下。

图片说明:

关于S7-317F程序的指针和模拟输入问题    关于S7-317F程序的指针和模拟输入问题    关于S7-317F程序的指针和模拟输入问题   

最佳答案

有好几个L     PIW [AR1,P#10.0],就是这里读取的估计
另外你这个程序说不定是SCL编写的呢
看看IN3输入的啥,起始地址就是输入的这个地址了
如果是读取的温度值,好像是除以10就可以了吧,没看出来怎么计算的
这个是完整的程序吗
补充:
      L     PIW [AR1,P#6.0]//这里就是加载模拟量的数值
      SRW   8   //右移8位,不知道啥意思,相当于10进制数的除以256
      T     LB     0//送到LB0
      L     B#16#5
      L     #STAT47
      ==I   
      JC    M01f //如果#STAT47 = 5 跳转到M01f
      AN    #TEMP70.TEMP72  //如果TEMP70.TEMP72 =0 跳转到M01c
      JC    M01c
      L     B#16#9 //加载9
      JU    M020//跳转M020
M01f: A     #TEMP70.TEMP72 //如果#TEMP70.TEMP72=1 跳转M01c
      JC    M01c
      L     B#16#7  //加载7
M020: T     #STAT47  //把累加器1里面的值传送到STAT47
      JU    M01c  //跳转到M01c

想明白还得根据完整的程序,和调用的程序结构看,上面是最后一段的,再网上好像也差不多,您看着慢慢理解吧

提问者对于答案的评价:
谢谢,非常感谢!

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc161137.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年6月8日 下午6:38
下一篇 2017年6月8日 下午6:38

相关推荐