Siemens
Siemens

Digital Industries, Motion Control, Machine Tool Systems

Easyscreen Zyklus über Button

Beitrag 31.03.2023, 08:38 Uhr
Daywalker2001
Level 1 = Community-Lehrling
*
Hallo Zusammen,

Ich bin etwas am Spielen bzw. Experimentieren mit Easyscreen. Und zwar möchte ich über eine Softkey Taste einen "Anwenderzyklus" Aufrufen.

Beispiel: Softkey "WarmUp" soll einen Anwenderzyklus "Warmup.spf" Aufrufen, so das mit NC-Start dies einfach Ausgeführt wird. (Es soll aber sowohl im JOG/MDI oder AUTO Modus Funktionieren.

Hat vieleicht jemand eine Idee oder Hinweis diesbezüglich ???

Vielen Dank

Gruß
Udo
   
Beitrag 19.04.2023, 07:35 Uhr
CaptainFu
Level 1 = Community-Lehrling
*
QUOTE (Daywalker2001 @ 31.03.2023, 10:38 Uhr) *
Hallo Zusammen,

Ich bin etwas am Spielen bzw. Experimentieren mit Easyscreen. Und zwar möchte ich über eine Softkey Taste einen "Anwenderzyklus" Aufrufen.

Beispiel: Softkey "WarmUp" soll einen Anwenderzyklus "Warmup.spf" Aufrufen, so das mit NC-Start dies einfach Ausgeführt wird. (Es soll aber sowohl im JOG/MDI oder AUTO Modus Funktionieren.

Hat vieleicht jemand eine Idee oder Hinweis diesbezüglich ???

Vielen Dank

Gruß
Udo



;Der Funktion für die Programmanwahl, in Deiner Maske, ist es prinzipiell egal ob die Maschine im Jog oder Automatik steht.
;Zum Programmstart muss die Maschine dann aber nach Automatik bzw. Einzelbetrieb umgeschaltet werden.
;Ungefähr so könnte das funktionieren:

;Es braucht in Deiner Maske eine Hilfsvariable, zum auswerten, ob die Programmanwahl geklappt hat.
;Diese also anlegen
Def ErrorVar

;Den entsprechenden Softkey definieren, hier mal für den vertikalen Softkey 4
VS4=("WarmUp")


;Dann für den gewählten Button die "Press / Endpress" Methode anlegen
Press(VS4)

;Dann sollte man noch ein paar nicht ganz unwichtige Bedingungen kontrollieren

;Ist man im Richtigen Kanal ist?
If(S_Chan<>1)
Dlgl("Bitte erst in den Kanal 1 wechseln, danach Button erneut betätigen")
Return
Endif

;Zur Programmanwahl sollte der Kanal im Reset stehen
If(Rnp("$Ac_Stat")==0)

;Die Funktion Sp (Select Programm) wählt ein Programm an das im aktiven NC Dateisystem vorhanden ist.
;Es muss also bereits in die Nc geladen sein! Hier im Bsp. im Unterprogrammordner.
Sp("//Nc/Spf.Dir/WarmUp.Spf", ErrorVar)

;Auswerten ob die Programmanwahl funktioniert hat
If ErrorVar==0
;Aktuelle Betriebsart ermitteln und entsprechenden Hinweis ausgeben
;Das sollte für die 840 so sein, an einer 828 war es glaub ich der DB390x.DB irgendwas (selbst nachsehen)
;DB11.DBX6.0 (BAG1: Betriebsart Auto)
If(Rnp("DB11.DBX6.0")==1)
;Automatik, alles gut
Dlgl("Programm starten mit Nc-Start!")
Else
Dlgl("Nach AUTO wechseln, Programm starten mit Nc-Start!")
Endif
Else
Dlgl("Laden des Programmes fehlgeschlagen!")
Endif
Else
Dlgl("Maschine ist nicht im Reset!")
Endif

End_Press


;Also so in etwa müsste die Maske erweitert werden, einfach testen.
;Leider scheint es hier beim Hochladen die Einrückungen zu entfernen, also bitte bei den Kontrollstrukturen aufpassen.
   
Beitrag 07.11.2023, 21:40 Uhr
Daywalker2001
Level 1 = Community-Lehrling
*
ZITAT(CaptainFu @ 19.04.2023, 08:35 Uhr) *
;Der Funktion für die Programmanwahl, in Deiner Maske, ist es prinzipiell egal ob die Maschine im Jog oder Automatik steht.
;Zum Programmstart muss die Maschine dann aber nach Automatik bzw. Einzelbetrieb umgeschaltet werden.
;Ungefähr so könnte das funktionieren:

;Es braucht in Deiner Maske eine Hilfsvariable, zum auswerten, ob die Programmanwahl geklappt hat.
;Diese also anlegen
Def ErrorVar

;Den entsprechenden Softkey definieren, hier mal für den vertikalen Softkey 4
VS4=("WarmUp")


;Dann für den gewählten Button die "Press / Endpress" Methode anlegen
Press(VS4)

;Dann sollte man noch ein paar nicht ganz unwichtige Bedingungen kontrollieren

;Ist man im Richtigen Kanal ist?
If(S_Chan<>1)
Dlgl("Bitte erst in den Kanal 1 wechseln, danach Button erneut betätigen")
Return
Endif

;Zur Programmanwahl sollte der Kanal im Reset stehen
If(Rnp("$Ac_Stat")==0)

;Die Funktion Sp (Select Programm) wählt ein Programm an das im aktiven NC Dateisystem vorhanden ist.
;Es muss also bereits in die Nc geladen sein! Hier im Bsp. im Unterprogrammordner.
Sp("//Nc/Spf.Dir/WarmUp.Spf", ErrorVar)

;Auswerten ob die Programmanwahl funktioniert hat
If ErrorVar==0
;Aktuelle Betriebsart ermitteln und entsprechenden Hinweis ausgeben
;Das sollte für die 840 so sein, an einer 828 war es glaub ich der DB390x.DB irgendwas (selbst nachsehen)
;DB11.DBX6.0 (BAG1: Betriebsart Auto)
If(Rnp("DB11.DBX6.0")==1)
;Automatik, alles gut
Dlgl("Programm starten mit Nc-Start!")
Else
Dlgl("Nach AUTO wechseln, Programm starten mit Nc-Start!")
Endif
Else
Dlgl("Laden des Programmes fehlgeschlagen!")
Endif
Else
Dlgl("Maschine ist nicht im Reset!")
Endif

End_Press


;Also so in etwa müsste die Maske erweitert werden, einfach testen.
;Leider scheint es hier beim Hochladen die Einrückungen zu entfernen, also bitte bei den Kontrollstrukturen aufpassen.



Entschuldige die Extreme späte Antwort, leider ist vieles dazwischen gekommen weshalb ich dieses "Projekt" erst mal bei seite schieben musste.

Ich habe es mal wie folgt versucht, doch leider funtkioniert es nicht. Beim Drücken auf dem Button tut sich nichts.

QUELLTEXT
PRESS(VS1)
LM("GEFINAL")
END_PRESS

PRESS(VS4)
DEF ErrorVar

IF(S_CHAN<>1)
DLGL("Bitte erst in den Kanal 1 wechseln, danach Button erneut bestätigen")

RETURN
ENDIF

IF(RNP("$AC_STAT")==0)
SP("//NC/SPF.DIR/WARMUP.SPF", ErrorVar)

IF ErrorVar==0
IF(RNP("DB1800.DBX0.0")==1)
DLGLDLGL("Programm starten mit NC-Start!")
ELSE
DLGL("Nach Auto Wechseln, Programm starten mit NC-Start!")
ENDIF
ELSE
DLGL(" Laden des Programms fehlgeschlagen!")
ENDIF
ELSE
DLGL("Maschine nicht im Reset!")
ENDIF
END_PRESS



//END

//M(CUSTOM1/"Reserviert"////0,0)

VS8=(["Zurück","\\sk_back.png"],AC7,SE1)

  PRESS(VS8)
    EXIT
  END_PRESS ;  <--  VS8

  PRESS(RECALL)
    EXIT
  END_PRESS ;  <--  RECALL


Laut PLC der Maschine (Siemens 828D) ist der "DB1800.DBX0.0" für AUTO Bertriebsart zuständig.


Hab ich etwas gänzlich Falsch gemacht. Testen mach ich in SinuTrain bevor ich etwas auf die Maschine haue.

Danke und Gruß

Udo
   
Beitrag 15.11.2023, 10:23 Uhr
CaptainFu
Level 1 = Community-Lehrling
*
Also als erstes würde ich mal das Logfile kontrollieren ob es hinweise auf Fehler gibt. Dann lässt sich vielleicht schon mal mehr sagen.

Siehe:
.......\HMIsl\user\sinumerik\hmi\log\easyscreen_log.txt

Wenn Fehler beim laden der Maske auftreten oder beim drücken des Buttons landen diese dort.
   
Beitrag 16.11.2023, 08:29 Uhr
mic_blanc
Level 1 = Community-Lehrling
*
Hallo, deine Definition darf glaub ich nicht in einer Press Funktion auftauchen, deine IF abfragen sind auch nicht logisch zumindest so wie ich es auf die schnelle gesehen habe. Ich würde es erst mal ohne die ganzen Abfragen testen ob dein Programm startet und dann schrittweise erweitern, jetzt weißt du nicht wirklich an was es liegt.

Der Beitrag wurde von mic_blanc bearbeitet: 16.11.2023, 08:31 Uhr
   
1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: