Ist es möglich ein Verfahrprogramm mit einer BASE zu teachen und dieses Programm durch Wechsel der BASE im laufenden Programm an verschiedenen Stationen nur durch BASE - Wechsel ablaufen zu lassen?
Wenn ja, wie ist die Syntax hierfür?
Ich habe ein Programm geteacht, dieses mit Positionen dupliziert und im duplizierten Programm nur die BASE angepasst, sodass das Programm an der zweiten Station dieses richtig abgefahren hat, ohne die Punkte neu zu teachen.
Ziel ist jetzt die BASE im Programm auf die jeweilige Station zu setzen:
P1, P2, P3... mit BASE 1, danach P1, P2, P3... mit BASE 2 usw.
KRC4 BASE im Programm wechseln
- m.c.zapp
- Erledigt
-
-
nun, recht schön, wenn Du etwas trickst....
Teach das Programm im Base 32 oder so...
und nun?
"ablage" ist ein integer mit der Ablage (Base) die Du anfahren willst...base_data[32]=base_data[ablage]
Damit kannst Du die verschiedenen Ablagen einfach vermessen und das Programm passt (meistens)
-
Ich hab mittlerweile auch durch Probieren eine Lösung gefunden.
Die drei Stationen sind BASE_DATA[1 -3], die ich mit gleichem 0-X-Y System eingemessen habe. (gleiche Schablone an jeweiliger Station ).
In der CONFIG.DAT unter USER... habe ich einen FRAME BASE_Wechsel deklariert.
An Station 1 wird mit BASE_DATA[1] geteacht, Zum Wechsel zu Station X
BASE_Wechsel = BASE_DATA[X] und die Punkte fahr ich dann mit KRL an ( die BASE weiße ich mit $BASE = BASE_Wechsel zu ). Zuvor sollte man die jeweilige Station in einer günstigen Position angefahren haben.Bedeutet Deine Lösung, dass ich die jeweils zu verwendende BASE in die CONFIG.DAT schreibe ( BASE_DATA[32] = BASE_DATA[X] ) und die Positionen im Inline Formular programmieren kann?
-
Du vermisst aller 3 benötigten Bases wie gehabt.
Je nach SW-Stand hast du 16 oder 32 Bases. Ich benutze meist Base 16 für berechnetee Bases. Damit du die BASE 16 in einem Inlineformular verwenden kannst, musst du in der Config.dat den Fold BAS GLOBALS öffnen und unter BASE_TYPE[16] den Wert #BASE eintragen, falls da noch #NONE steht. Am besten vergibst du unter der Variable BASE_NAME[16,] (im selben Fold) noch einen Namen der im ILF angezeigt wird z.B. "Berechnete Base"
Beispielprogramm Ablage
Code
Alles anzeigenDEF LEBERWURST_STAPELN() BASE_DATA[16]=BASE_DATA[ABL_BASE] ;ABL_BASE ein Integerwert, auf welchem Platz abgelegt werden soll ;Alles was du jetzt mit Base 16 Teacht, gilt für deine 3 Ablagen PTP UEBER_ABLAGE CONT Vel= 100 % ph Tool[1]:Greifer Base[16]:Berechnete Base PTP VOR_ABLAGE CONT Vel= 100 % ph Tool[1]:Greifer Base[16]:Berechnete Base LIN ABLAGE CONT Vel= 0.2 m/s cph Tool[1]:Greifer Base[16]:Berechnete Base GREIFER_AUF() LIN VOR_ABLAGE CONT Vel= 0.2 m/s cph Tool[1]:Greifer Base[16]:Berechnete Base PTP UEBER_ABLAGE CONT Vel= 100 % ph Tool[1]:Greifer Base[16]:Berechnete Base END
-
Du vermisst aller 3 benötigten Bases wie gehabt.Je nach SW-Stand hast du 16 oder 32 Bases. Ich benutze meist Base 16 für berechnetee Bases. Damit du die BASE 16 in einem Inlineformular verwenden kannst, musst du in der Config.dat den Fold BAS GLOBALS öffnen und unter BASE_TYPE[16] den Wert #BASE eintragen, falls da noch #NONE steht. Am besten vergibst du unter der Variable BASE_NAME[16,] (im selben Fold) noch einen Namen der im ILF angezeigt wird z.B. "Berechnete Base"
Beispielprogramm Ablage
Code
Alles anzeigenDEF LEBERWURST_STAPELN() BASE_DATA[16]=BASE_DATA[ABL_BASE] ;ABL_BASE ein Integerwert, auf welchem Platz abgelegt werden soll ;Alles was du jetzt mit Base 16 Teacht, gilt für deine 3 Ablagen PTP UEBER_ABLAGE CONT Vel= 100 % ph Tool[1]:Greifer Base[16]:Berechnete Base PTP VOR_ABLAGE CONT Vel= 100 % ph Tool[1]:Greifer Base[16]:Berechnete Base LIN ABLAGE CONT Vel= 0.2 m/s cph Tool[1]:Greifer Base[16]:Berechnete Base GREIFER_AUF() LIN VOR_ABLAGE CONT Vel= 0.2 m/s cph Tool[1]:Greifer Base[16]:Berechnete Base PTP UEBER_ABLAGE CONT Vel= 100 % ph Tool[1]:Greifer Base[16]:Berechnete Base END
Wie übergebe ich beim Programmaufruf in CELL, dass im aufgerufenen Programm der Integer die benötigte Base anwählt. Die Vorwahl soll über die SPS erfolgen, wenn z.B. eine Station übersprungen werden kann?
Leberwurst_stapeln(SPS) ? Leberwurst_stapeln sei das Programm, das in CELL aufgerufen wird und SPS der Integer, den die SPS ausgibt um in Leberwurst_stapeln() die entsprechende Base zu nutzen.
Oder ist der Parameter beim Auruf in CELL nicht möglich? Wie ist die Syntax falls es möglich sein sollte? -
in der config.dat :
int ABL_BASE = 77 ;Die Zahl ist irrelevant und wird später zugewiesen....vor dem aufruf deines ablageprogramms:
ABL_BASE=1 ;Leberwurst auf Ablage 1
Leberwurst_stapeln()
Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren
Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen