A #KS
= L 44.0
A L 44.0
AN "PT143数据".s2 //1
L #CJZQ
SD #DSQ
A L 44.0
A #DSQ
= "PT143数据".s2 //2
A #KS
FP "PT143数据".s3 //3
JNB _001
L P#8.0
T MD 134 //4
_001: NOP 0
A #DSQ
JCN _112
OPN "PT143数据"
L #CJYL
T DBD [MD 134]
L MD 134
L P#4.0
+D
T MD 134
A(
L MD 134
L P#164.0
>D
)
JNB _113
L P#8.0
T MD 134
_112: NOP 0
_113: NOP 0
OPN "PT143数据"
L P#8.0
T LD 2
L 0
T LD 8
L 40
NEXT: T LD 100
L DBD [LD 2]
L LD 8
+R
T LD 8
L LD 2
L P#4.0
+D
T LD 2
L LD 100
LOOP NEXT
L LD 8
L 4.000000e+001
/R
T #LBZ
最佳答案
A #KS
= L 44.0//L44.0=ks
/////////////////////////////////////////////////////////////////////
A L 44.0
AN "PT143数据".s2 //如果ks为1且"PT143数据".s2 为0,则启动延时接通定时器
L #CJZQ
SD #DSQ
A L 44.0
A #DSQ
= "PT143数据".s2 //如果ks为1且延时定时器定时结束则"PT143数据".s2 为1
///////////////////////////////////////////////////////////////////////
A #KS
FP "PT143数据".s3 //如果ks上升沿则md134=p#8.0
JNB _001
L P#8.0
T MD 134 //4
_001: NOP 0
A #DSQ//如果延时定时器延时时间到则执行jcn下面的程序否则跳到_112标志处
JCN _112
OPN "PT143数据"//打开db块
L #CJYL
T DBD [MD 134]//这是一个指针,首次db块的dbd8=cjyl
L MD 134
L P#4.0
+D
T MD 134//md134=md134+4,指针指向字节加4,第二次就是12了。
A(
L MD 134
L P#164.0
>D
)
JNB _113//如果md134保存的值大于164,则md134重新赋值为8,重新循环
L P#8.0
T MD 134
_112: NOP 0
_113: NOP 0
OPN "PT143数据"//打开db块
L P#8.0
T LD 2//ld2=指针常数8
L 0
T LD 8//ld8=0
L 40
NEXT: T LD 100//初始值ld100=40
L DBD [LD 2]
L LD 8
+R
T LD 8//第一次ld8=ld8+db块dbd8
L LD 2
L P#4.0
+D
T LD 2//指针ld2=ld2+4
L LD 100读取ld100的值后重新循环
LOOP NEXT
L LD 8
L 4.000000e+001
/R
T #LBZ//lbz=ld8/40.0
你这是求平均值的过程。
提问者对于答案的评价:
谢谢,十分感谢。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc281079.html