进口设备大量使用M指令,超过M99怎么使用?PLC写的如下:谁能给个解读的方向,阅读能力不足
OPN "SysDbSysFgr"
L #KnNr //-------------------
JL VBEB
JU BEB
JU KN1L //Sprungverteiler
JU KN2L
JU KN3L
JU KN4L //-------------------
VBEB: JU BEB
KN1L: L P#18.0 //Adresse 1.MFkt.-Wert Kanal 1
LAR1
L DBB 15 //M-膎derungssignale Kanal 1
JU LDMA
KN2L: L P#98.0 //Adresse 1.MFkt.-Wert Kanal 2
LAR1
L DBB 95 //M-膎derungssignale Kanal 2
JU LDMA
KN3L: L P#456.0 //Adresse 1.MFkt.-Wert Kanal 3
LAR1
L DBB 453 //M-膎derungssignale Kanal 3
JU LDMA
KN4L: L P#536.0 //Adresse 1.MFkt.-Wert Kanal 4
LAR1
L DBB 533 //M-膎derungssignale Kanal 4
JU LDMA //----------------------
BEB: A "SysZmEins"
R #Vorh
BEC //----------------------
LDMA: T LB 16 //Struktur M-Aenderungen
L 0 //M-Aenderung 1-5 ???
==I
R #Vorh
BEC
R #Vorh
L 0
T #W4_1
AN #MFktAend.M1 //----> M Fkt. 1 <----
JC M2AW
L DBD [AR1,P#0.0]
T #MFktn
A #FktWertAus //Dekade 4-1 als Funktionswert ?
JC M1W9
L #MFktn //----------------
L #M8_1 // MFkt = M8_1 ?
==D
= #Vorh
R #MFktAend.M1
JC ENDE
JU M2AW
M1W9: L #M8_1 //----------------
L 10000 //Ermitteln , ob die
MOD //Dekaden 8-5 der programmierten
T #ModM8_1 //M-Funktion mit der
L #M8_1 //abgefragten M-Funktion M8_1
L #ModM8_1 //黚ereinstimmen
-D
T #M8_1MinMod
L #MFktn //M8_1 /10000 == MFkt / 10000 ?
L 10000
MOD //nein => n鋍hste M-Funktion
T #ModMFkt //ja => Ausgabe W4_1
L #MFktn
L #ModMFkt
-D
T #MFktMinMod
L #M8_1MinMod
<>D
JC M2AW //-------------------
= #Vorh //Ausgabe W4_1:
R #MFktAend.M1
L #ModMFkt //Modulo(MFkt / 10000) -> W4_1
DTB
T #W4_1
JU ENDE //-------------------
M2AW: AN #MFktAend.M2 //----> M Fkt. 2 <----
JC M3AW
L DBD [AR1,P#6.0]
T #MFktn
A #FktWertAus //Dekade 4-1 als Funktionswert ?
JC M2W9
L #MFktn //----------------
L #M8_1 // MFkt = M8_1 ?
==D
= #Vorh
R #MFktAend.M2
JC ENDE
JU M3AW
M2W9: L #M8_1 //----------------
L 10000 //Ermitteln , ob die
MOD //Dekaden 8-5 der programmierten
T #ModM8_1 //M-Funktion mit der
L #M8_1 //abgefragten M-Funktion M8_1
L #ModM8_1 //黚ereinstimmen
-D
T #M8_1MinMod
L #MFktn //M8_1 /10000 == MFkt / 10000 ?
L 10000
MOD //nein => n鋍hste M-Funktion
T #ModMFkt //ja => Ausgabe W4_1
L #MFktn
L #ModMFkt
-D
T #MFktMinMod
L #M8_1MinMod
<>D
JC M3AW //-------------------
= #Vorh //Ausgabe W4_1:
R #MFktAend.M2
L #ModMFkt //Modulo(MFkt / 10000) -> W4_1
DTB
T #W4_1
JU ENDE //-------------------
M3AW: AN #MFktAend.M3 //----> M Fkt. 3 <----
JC M4AW
A #FktWertAus //Dekade 4-1 als Funktionswert ?
L DBD [AR1,P#12.0]
T #MFktn
JC M3W9
L #MFktn //----------------
L #M8_1 // MFkt = M8_1 ?
==D
= #Vorh
R #MFktAend.M3
JC ENDE
JU M4AW
M3W9: L #M8_1 //----------------
L 10000 //Ermitteln , ob die
MOD //Dekaden 8-5 der programmierten
T #ModM8_1 //M-Funktion mit der
L #M8_1 //abgefragten M-Funktion M8_1
L #ModM8_1 //黚ereinstimmen
-D
T #M8_1MinMod
L #MFktn //M8_1 /10000 == MFkt / 10000 ?
L 10000
MOD //nein => n鋍hste M-Funktion
T #ModMFkt //ja => Ausgabe W4_1
L #MFktn
L #ModMFkt
-D
T #MFktMinMod
L #M8_1MinMod
<>D
JC M4AW //-------------------
= #Vorh //Ausgabe W4_1:
R #MFktAend.M3
L #ModMFkt //Modulo(MFkt / 10000) -> W4_1
DTB
T #W4_1
JU ENDE //-------------------
M4AW: AN #MFktAend.M4 //----> M Fkt. 4 <----
JC M5AW
A #FktWertAus //Dekade 4-1 als Funktionswert ?
L DBD [AR1,P#18.0]
T #MFktn
JC M4W9
L #MFktn //----------------
L #M8_1 // MFkt = M8_1 ?
==D
= #Vorh
R #MFktAend.M4
JC ENDE
JU M5AW
M4W9: L #M8_1 //----------------
L 10000 //Ermitteln , ob die
MOD //Dekaden 8-5 der programmierten
T #ModM8_1 //M-Funktion mit der
L #M8_1 //abgefragten M-Funktion M8_1
L #ModM8_1 //黚ereinstimmen
-D
T #M8_1MinMod
L #MFktn //M8_1 /10000 == MFkt / 10000 ?
L 10000
MOD //nein => n鋍hste M-Funktion
........
.........
版主推荐答案
掌握寻址方式,指针的指向,画流程图
查看完整帖子:
http://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1617657&bid=20
提问者对于答案的评价:
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc296027.html