Kopplungsprogramme

Die Aktivierung/ Deaktivierung und Kanalkopplung/ -entkopplung des Planetär- oder Rückzugskanals kann mit Standardunterprogrammen im Senkkanal programmiert werden (Dies entspricht der linken Hälfte in den Abbildungen). Im Folgenden sind die Unterprogrammbeispiele, die im vorigen Kapitel verwendet wurden beschrieben.

In den Programmen wird von einer Achskonfiguration bestehend aus 6 Achsen mit X, Y, Z, A, B und C ausgegangen.

Die in den Programmen verwendeten Variablen können im Programm des Senkkanals im Vorfeld für die aktuelle Bearbeitung passend belegt werden. Im Folgenden Beispielprogramm werden alle verwendeten Variablen und Makros initialisiert.

Programmierbeispiel

prg_example

Grundinitialisierung

;---- Kanal IDs

"CH-Sinking" = "1"

"CH-Planetary" = "2"

"CH-Escape" = "3"

;---- Signal IDs

"S-EscapeReady" = "1711"

"S-OrbitReady" = "3711"

"S-PlanetarySectorReq" = "1000"

"S-PlanetarySectorOk" = "2000"

;---- Job-IDs für PLCopen-Jobs

"MC-OrbCircle" = "233"

"MC-Reset" = "533"

"MC-Escape" = "633"

;---- Variablen

V.P.PlanetaryMaxScale = 5

V.P.PlanetaryMaxEquid = 0

V.P.PlanetaryGeomId = 0

V.P.EscapeMode = 0 ; 0=Flat, 1= Alpha, 2=Point, 3=Bisec

V.P.AlphaAngle = 0

V.P.PointY = 0

V.P.PointZ = 0

V.P.BisecD1 = 0

V.P.BisecD2 = 0

Programmierbeispiel

prg_example

Unterprogramm - Aktivierung Rückzugskanal

%DS-ActivateEscape-ACS

;---- Aktivieren des Rückzugskanals

N5000 $IF V.P.EscapeMode == 0

N5010   #CHANNEL INTERFACE ON[ ESCAPE GEOMETRY=FLAT ]

N5020 $ELSEIF V.P.EscapeMode == 1

N5030   #CHANNEL INTERFACE ON[ ESCAPE GEOMETRY=ALPHA AN-GLE=V.P.AlphaAngle ]

N5040 $ELSEIF V.P.EscapeMode == 2

N5050   #CHANNEL INTERFACE ON[ ESCAPE GEOMETRY=POINT POINT_Y=V.P.PointY POINT_Z=V.P.PointZ ]

N5060 $ELSE (V.P.EscapeMode == 3)

N5070   #CHANNEL INTERFACE ON[ ESCAPE GEOMETRY=BISECTOR BISEC_D1 =V.P.BisecD1 BISEC_D2 = V.P.BisecD2]

N5080 $ENDIF

N5090 #TRACK CHAN ON[ DYN_CS="CH-Escape" SUPERIMPOSE]

;---- Starten des Programms im Rückzugskanal

N5100 #MC_MovePath SYN [ CH="CH-Escape" ID="MC-Escape" FileName="DsEscapeFile" \

  @PL1=V.A.ACS.ABS.X @PL2=V.A.ACS.ABS.Y @PL3=V.A.ACS.ABS.Z \

  @PL4=V.G.SELECTED_CS.TRANS.X @PL5=V.G.SELECTED_CS.TRANS.Y \

  @PL6=V.G.SELECTED_CS.TRANS.Z \

  @PL7=V.G.SELECTED_CS.ROT.X @PL8=V.G.SELECTED_CS.ROT.Y \

  @PL9=V.G.SELECTED_CS.ROT.Z \

  @PL10=V.A.ACS.ABS.A @PL11=V.A.ACS.ABS.B @PL12=V.A.ACS.ABS.C ]

N5110 #WAIT MC_Status [JobID="MC-Escape"]

N5120 V.P.McStatus = MCV_WAIT_STATUS ["MC-Escape"]

N5130 $IF V.P.McStatus != MC_DONE

N5140 #ERROR [ID455 MID0 RC2 PV1=V.P.McStatus \

          PV2=MC_DONE PM1=2 PM2=3]

N5150 $ENDIFN5160 M17

Programmierbeispiel

prg_example

Unterprogramm - Aktivierung Planetärkanal

%DS-ActivatePlanetary

N6000 #CHANNEL INTERFACE ON [EXTEND AX=Y FREEZE=X FREEZE=Y]

; Starten des Planetärkanals mit gleicher CS-Orientierung

N6001 #MC_MovePath SYN [ CH="CH-Planetary" JobID="MC-OrbCircle" \

  FileName="DsPlanetaryFile" \

  @PL1=V.G.SELECTED_CS.ROT.X @PL2=V.G.SELECTED_CS.ROT.Y \

  @PL3=V.G.SELECTED_CS.ROT.Z \

  @PL4=V.P.PlanetaryMaxScale @PL5=V.P.PlanetaryMaxEquid \

  @PL6=V.P.PlanetaryGeomId ]

N6002 #WAIT SYN [ID="S-PlanetaryReady" CH="CH-Planetary"]

N6003 #TRACK CHAN ON[ DYN_CS="CH-Planetary" WAIT FILTER=0]

N6004 #BACKWARD STORAGE CLEAR

N6005 M17

Hinweis

notice

Der Planetärkanal muss immer vor dem Rückzugskanal deaktiviert werden:

Programmierbeispiel

prg_example

Unterprogramm - Deaktivieren Rückzugskanal

%DS-DeactivateEscape.sub

N7005 #CHANNEL INTERFACE OFF [ESCAPE]

N7006 #TRACK CHAN OFF[DYN_CS SUPERIMPOSE]

N7007 #MC_GroupResetForced SYN [ CH="CH-Escape" ID="MC-Reset"]

  (Reset Rückzugskanal)

N7008 #WAIT MC_Status [ID="MC-Reset" DONE ABORTED ERROR]

N7009 M17

Programmierbeispiel

prg_example

Unterprogramm - Deaktivierung Planetärkanal

%DS-DeactivatePlanetary.sub

N7000 #CHANNEL INTERFACE OFF [EXTEND]

N7001 #TRACK CHAN OFF [DYN_CS]

N7002 #MC_GroupResetForced SYN [ CH="CH-Planetary" ID="MC-Reset"]

  (Reset Planetärkanal)

N7003 #WAIT MC_Status [ID="MC-Reset" DONE ABORTED ERROR]

N7004 M17