AUF DI 10 //DB for Axis Table
L DIB [AR1,P#0.0] //Axis table for MCP1 or MCP2
M019: T #achs_nr //aktuell angewählte Achsnummer aus MSST
M00e: U #mst_ein45[6] //Richtung minus
= #mst_aus23[7] //LED
U #mst_ein45[7] //Richtung plus
= #mst_aus23[8] //LED
///NETZWERK NC
M005: U #schmier[15] //First run absolut
SPB M01a
AUF DI 10 //Signale von PLC an NCK
U #mst_ein23[7] //Schluesselschalterstellung 0 MST
= DIX 56.4 //Schluesselschalterstellung 0 DB
U #mst_ein23[14] //Schluesselschalterstellung 1 MST
= DIX 56.5 //Schluesselschalterstellung 1 DB
U #mst_ein23[6] //Schluesselschalterstellung 2 MST
= DIX 56.6 //Schluesselschalterstellung 2 DB
U #mst_ein45[4] //Schluesselschalterstellung 3 MST
= DIX 56.7 //Schluesselschalterstellung 3 DB
///NETZWERK BAG
M01a: L B#16#1
T #param //als Fehlerparameter
L #max_bag //Grundprogrammparameter max.Anzahl der BAGs
L #BAGN //angewaehlte BAG-Nr.
OW W#16#0
SPZ M01b //springe bei BAG-Nr. = 0
<I //springe bei max.Anzahl BAGs <= BAG-Nr.
SPB M01c
DEC 1 //Nr der BAG - 1
L P#20.0 //20 Byte Offset
*I
LAR1 //Zeiger auf BAG
AUF DI 11 //BAG DB aufschlagen
//umverdrahten
U #mst_ein01[0] //Betriebsart Automatik MST
= #bb[0] //Automatik anwaehlen
U #mst_ein01[1] //Betriebsart MDA MST
= #bb[1] //MDA anwaehlen
U #mst_ein01[3] //Betriebsart JOG MST
= #bb[2] //JOG anwaehlen
U #mst_ein01[15] //Betriebsart REPOS MST
= #bb[9] //REPOS anwaehlen
U #mst_ein01[14] //Betriebsart REF MST
= #bb[10] //REF anwaehlen
U #mst_ein01[2] //Maschinenfunktion Teach In MST
= #bb[8] //Teach In anwaehlen
L DIW [AR1,P#0.0]
UW W#16#F8F8
L LW 6 //bb als Wort laden
UW W#16#707
OW
T DIW [AR1,P#0.0] //in BAG Schnittstelle
L DIW [AR1,P#6.0] //aus BAG Schnittstelle
T LW 6 //bb als Wort laden
U #bb[0] //Automatik aktiv
= #mst_aus01[0] //Automatik LED MST
U #bb[1] //MDA aktiv
= #mst_aus01[1] //MDA LED MST
U #bb[2] //JOG aktiv
= #mst_aus01[3] //JOG LED MST
U #bb[9] //REPOS aktiv
= #mst_aus01[11] //REPOS LED MST
U #bb[10] //REF aktiv
= #mst_aus01[10] //REF LED MST
U #bb[8] //Teach In aktiv
= #mst_aus01[2] //Teach In LED MST
L #increment //INC Achse / Kanal dieser BAG
T DIB [AR1,P#2.0] //INC
///TITLE = NETZWERK Kanal
M01b: L B#16#2
T #param //als Fehlerparameter
L #max_kan //Grundprogrammparameter max.Anzahl der KANs
L #ChanNo //angewaehlte KAN-Nr.
OW W#16#0
SPZ M01d //springe bei KAN-Nr. = 0
<I //springe bei max.Anzahl KANs <= KAN-Nr.
SPB M01c
INC 20 //angewaehlte KAN-DB
T #akt_db //KANAL DB
AUF DI [#akt_db] //aufschlagen KANAL DB mit akt_db
UN #mst_aus23[13] //LED MKS/WKS
SPB M01e
L DIB 41 //aktives INC GEO-Achse1 im Kanal
L DIB 47
OW
L DIB 53
OW
T #ba_inc //Maschinenfunktion lokal
M01e: L B#16#3 //max. Anzahl GEO Achsen
M01f: T #loop_c //in loop counter
DEC 1
SLW 5 //* P#4.0
LAR1 //jetzt ins Adressregister
L #loop_c
L #achs_nr
<>I
L B#16#0
SPB M020
UN #mst_aus23[13] //LED MKS/WKS
SPB M020
U #schmier[7] //First Run Merker
SPB M020
L #richtung //lokale Richtungen
M01d: UN #schmier[7]
SPB M021
U #schmier[2]
= DIX 0.4
M021: U DIX 0.4
= #mst_aus23[2] //LED Einzelsatz
///TITLE = NETZWERK Spindel
L #max_axe //max.Anzahl der Achsen / Spindeln
L #SpindleIFNo //angewaehlte Spindel
OW W#16#0
SPZ M022 //springe bei Spindel-Nr. = 0
<I //springe wenn Spindelnr. zu gross
SPB M022
INC 30 //Achs-DB Nr. bilden
T #akt_db //lokales word
AUF DI [#akt_db] //aktueller Achs-DB
L LB [AR2,P#0.0] //mst_ein01 byte 0 Spindelkorrekturschalter
SRW 4
T DIB 19 //Spindelkorrekturschalter
///NETZWERK Achsen
M022: U #schmier[7] //First Run Merker
SPB M023
L #mksaxisold //alte angew. Achse
OW W#16#0
SPZ M024 //springe bei Nr. = 0
INC 30 //Achs-DB Nr. bilden
T #akt_db //lokales word
AUF DI [#akt_db] //aktueller Achs-DB
SET
R DIX 4.6 //minus
R DIX 4.7 //plus
SPA M025
M024: U #mst_aus23[13] //LED MKS/WKS
SPB M026 //jump to Label a104 is better
L #achs_nr
OW W#16#0
SPZ M026
INC 30 //Achs-DB Nr. bilden
T #akt_db //lokales word
AUF DI [#akt_db] //aktueller Achs-DB
L #vskorr //Vorschubkorrekturschalter mst_ein23 byte 1
T DIB 0 //Vorschubkorrekturschalter
L #richtung //lokale Richtungstasten + EilgangUeberlagerung
L DIB 4 //lade Byte mit Richtungsvorgabe
UW W#16#1F //Richtung und Eilgang raus
OW //verknuepfen
T DIB 4 //und zurueck mit Richtungszustand
M025: L #ba_inc
L DIB 65 //Nahtstelle Maschinenfunktion INC Achse Rueckmeldung
OW
T #ba_inc
M028: T #loop_c
INC 30
T #akt_db
AUF DI [#akt_db]
L #vskorr //Vorschubkorrekturschalter mst_ein23 byte 1
T DIB 0 //Vorschubkorrekturschalter
L #loop_c
LOOP M028
///NETZWERK Global_aus
M027: U #mst_ein23[3] //Vorschub Start
R #schmier[0] //Vorschubsperre
UN #mst_ein23[2] //Vorschub Halt
S #schmier[0] //Vorschubsperre
U #schmier[0] //Vorschubsperre
= #FeedHold //an VAR_OUTPUT zurueck
= #mst_aus01[14] //LED Vorschub Halt
NOT //LED Vorschub Halt
= #mst_aus01[15] //LED Vorschub Start
U #mst_ein23[5] //Spindel Start
R #schmier[1] //Spindel Halt
UN #mst_ein23[4] //Spindel Halt
S #schmier[1] //Spindel Halt
U #schmier[1] //Spindel Halt
= #SpindleHold //an VAR_OUTPUT zurueck
= #mst_aus23[0] //LED Spindel Halt
NOT //Spindel Halt
= #mst_aus23[1] //LED Spindel Start
L #ba_inc //Maschinenfunktion INC
UW W#16#3F
SLW 4
TAW //byte Reihenfolge "little endian"
L LW [AR2,P#8.0] //LED direkt angesteuert, mst_aus01
UW W#16#FFC //INC bits ausblenden
OW //neue hinein