当前位置: 主页 > PLC控制

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

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

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

图片说明:

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

最佳答案

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

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

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

  • 关注微信

猜你喜欢

微信公众号