我这个程序是老外写的,温度感觉上升的时候感觉是阶梯一样上升,每次增加都是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语言,解释下。
图片说明:
最佳答案
有好几个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