程序我分两个贴子发,字符数受限
我想问一下我对各句的注释理解是否正确,还有我这4段程序的具体想表达个什么意思?外部调用在贴图
NETWORK 1 initialise step flag //初始化程序
OPN #S_DB //#S_DB=DB190 打开DB190
L P##S_Merker //装载初始指针,M存储区 #S_Merker=p#M300.0
LAR1
L D [AR1,P#2.0] //这里装载的应该是MD302吧?/ load flag adress
T #mAR1 // Merkeradresse speichern / store flag adress
LAR1
L #S_BYTE //#S_BYTE=14 p#m300.0 相当于MB313范围
init: T #mByteCount // 14 ,用于后面的循环
L 0 //初始化MB302 0到31步状态被清除
T B [AR1,P#0.0]
+AR1 P#1.0 //地址偏移1.0 MB303.0
L #mByteCount //14 减 1进入循环 值等于0跳出,执行后面的复位
LOOP init //递减循环直到0
SET //复位3个输出变量
R #S_AKTIV
R #S_GRUND
R #S_FEHLER
NETWORK 2 reset sequence //复位步进阶段,回到0步
AN #S_RESET //外部复位指令
O #S_AUTO //外部AUTO模式,正常情况下都是在AUTO
JC weit
L 0 //当外部有复位命令或打到LOCAL模式下,对实际步进阶段号码进行复位
T DBW 0 //步进号码 / step number
L 0 //当外部有复位命令或打到LOCAL模式下,对步进运行时间进行复位
T DBW 4 // Schrittwache zur點ksetzen / reset step monitoring time
weit: L DBW 2 //步进状态 / step enabling conditions
T LW 8 //这里的LW是什么意思
L 0 //清除状态
T DBW 2
NETWORK 3 reset sequence faults //复位步进故障
AN #S_QUITT //外部复位指令
JC quit
L 0
T DBW 4 // 复位步进运行时间 / reset step monitoring time
quit: NOP 0 //weiterschaltbedingungen / step enabling conditions
NETWORK 4 sequence next step //步进主体程序下一步、下一步
AN #mWeiter1 //这个临时变量没找到谁给它命令的,作用是执行步进阶段累加
AN #mWeiter2 //这个临时变量好像没用
JC sak
L DBW 0 //实际步进阶段号码 / actual step number
L 1 //此步对阶段进行加1 即下一步的阶段号码
+I
A #mWeiter1 //上面的下一步号码已经知道了,我们进行跳转
JC s1
L #mZiel
s1: T DBW 0 //把我们下一步的号码保存到DBW0中 / actual step number
L 0
T DBW 4 //清除步进运行时间 / reset step monitoring time
sak: NOP 0
图片说明:
最佳答案
这个程序是指针寻址,建议你先把间接寻址的知识掌握了再学习此程序。
L D [AR1,P#2.0] //这里装载的应该是MD302吧?-----这是取#S_Merker 的首地址,即P#M300.0,那你下面的分析都有错误了。
提问者对于答案的评价:
.....
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc240573.html