TIA Grafcet. Bit lesen. Error handling

PLCanna

Level-1
Beiträge
51
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo ihr Lieben,

ich habe verschiedene Fragen zum Thema TIA Portal und hoffe ich finde hier die guten Helfer.

1-Ich möchte eine Schrittkette mit Grafcet programmieren. Die Bedingungen um ein Schritt zu aktivieren sind in SCL mit IF-Befehlen geschrieben. In Grafcet kann man die Bedingungen entweder mit FUB oder KOP schreiben. Ich weiß nicht wie man es in FUB umwandelt, deswegen habe ich gedacht, ich mache für die Bedingungen eine Schrittes eine Funktion, die ich auf eine Variable zuweise und in der Transition aufrufe. Ist diese Methode richtig? zum Beispiel IF x AND y THEN Z:= TRUE; ELSE Z:= FALSE; END_IF; . Wie kann ich diesen Code in einem Schritt in Grafcet packen? Wie wäre es wenn ich verschachtelten IF-Befehlen habe?

2- Wie kann ich in FUB und SCL ein Bit auslesen zum Beispiel das 2te Bit von x = Byte; x.2 hat es nicht geklappt.

3-was gibt es bei Siemens für Error Handling Bausteine, die Vergleichsweise mit FB_SimpleAdsLogEvent von Beckhoff sind, wo man Error-IDs definiert und benutzt. ich benutze allerdings PLC 1500.

Danke im Voraus für die Hilfe.
icon11.png
 
ich habe verschiedene Fragen zum Thema TIA Portal und hoffe ich finde hier die guten Helfer.
normalerweise Ja ...

1-Ich möchte eine Schrittkette mit Grafcet programmieren. Die Bedingungen um ein Schritt zu aktivieren sind in SCL mit IF-Befehlen geschrieben. In Grafcet kann man die Bedingungen entweder mit FUB oder KOP schreiben. Ich weiß nicht wie man es in FUB umwandelt, deswegen habe ich gedacht, ich mache für die Bedingungen eine Schrittes eine Funktion, die ich auf eine Variable zuweise und in der Transition aufrufe. Ist diese Methode richtig? zum Beispiel IF x AND y THEN Z:= TRUE; ELSE Z:= FALSE; END_IF; . Wie kann ich diesen Code in einem Schritt in Grafcet packen? Wie wäre es wenn ich verschachtelten IF-Befehlen habe?
Ist mir nicht ganz klar was du hier machen willst bzw. was du als SCL-Code hast.
Es wäre ganz hilfreich du würdest einen Teil deiner SCL-Schittkette posten - dann könnte man dir zeigen wie das in FUP aussehen würde ...

Gruß
Larry
 
Ein Beispiel habe ich oben geschrieben. also die Transition wäre dass x und y wahr sind dann soll der nächste Schritt aktiviert werden also die Aktion, z auf 1 setzen, durchführen und wenn es nicht der Fall ist dann die andere Aktion aktivieren also setze z auf 0. Das sollte ein Schritt in der Schrittkette sein. Dieser Code möchte ich in Grafcet umwandeln.
Alle meine Schritte und deren Transitionen sind in SCL geschrieben und möchte sie in Grafcet schreiben.
 
... zum Beispiel IF x AND y THEN Z:= TRUE; ELSE Z:= FALSE; END_IF; . Wie kann ich diesen Code in einem Schritt in Grafcet packen? Wie wäre es wenn ich verschachtelten IF-Befehlen habe?
Lange nicht alles, was man in SCL mit IF ... THEN ... ELSE programmieren kann, muss man in SCL auch so programmieren.
Um bei diesem Beispiel zu bleiben, würde ich stattdessen viel einfacher das schreiben, was wirklich gemeint ist, nämlich:
Code:
Z := x AND y ;
Dann muss man auch nicht so lange knobeln, wie man das in FUP oder KOP umsetzen könnte. ;)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du hast meine 2. Frage auch noch nicht beantwortet - GraphCet gibt es bei Siemens nicht ... die Frage von mir bezieht sich auf die Ausführung der Schrittkette.

Zu deinem Code :
IF x AND y THEN Z:= TRUE; ELSE Z:= FALSE; END_IF;
das könnte man auch so schreiben :
... und das stellt wiederum eine ganz einfache UND-Verknüpfung dar. Wenn du das in deiner Schrittkette als Weiterschaltbedingung hast - wozu brauchst du da Z ?
 
... zu langsam gewesen ... 8)

@Ralle:
hier war es aber nunmal ein IF - THEN -ELSE - das ist dann durchaus mit dem := zu ersetzen ...
 
Moin,

ich denke der TE will ein vorhandene Schrittkette, die in SCL geschrieben ist als Grafcet dokumentieren und NICHT in Graph programmieren.
Jedenfalls verstehe ich das so.

@TE: Leider kann ich Dir nicht weiterhelfen, da ich mich bisher noch nicht mit Grafcet auseinander gesetzt habe bzw. mich damit auseinander setzen musste.

VG

MFreiberger
 
Die Begriffe sind mir in durcheinander gekommen. Ich meinte GRAPH und nicht Grafcet. Grafcet gibt es bei TIA Portal nicht.
 
@Ralle:
Ja, wo läuft er denn, wo ist er denn hingelaufen? Dein Beitrag ...
Ok, aber wenn man Z nur setzen will, dann braucht man wieder if ... then. :)
..., auf den ich gerade antworten will?

Nur Setzen bzw. nur Rücksetzen kann man auch ohne IF. Ein Elektriker kann Dir das in KOP zeigen ;) und es lässt sich auch in SCL darstellen:
Code:
Z := Z OR x ;      // Setzen
Z := Z AND NOT x ; // Rücksetzen
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Kann es sein, dass du dich mit deinen Aussagen etwas schwer tust ?
Du willst also NICHT in Graph programmieren ...? (mal ja und mal nein ?)
Wie soll es dann werden ?
- eine Merker-Schrittkette ?
- abhängig vom Inhalt einer INT-Variablen ?

Du musst schon "ein bisschen" mithelfen wenn du Hilfe willst ...
 
zum Beispiel habe ich diesen Code und möchte ihn als einen Schritt in einer Schrittkette in GRAPH bei TIA Portal umsetzen.

IF ( NOT Vari.IsHoming ) AND
( NOT IOs._GLS) AND
( Festo.bDrive ) THEN

SetpointVelocity := Setpoints.SlowSpeed;
AbsoluteRelative := 1;
AxisActualSetpoint := Setpoints.FocusPosition;
ContactStop := FALSE;
ShutterFromSK := TRUE;

END_IF

wie mache ich das?
 
Nehmen wir mal an, dass du eine Merker-Schrittkette hast :
Du machst dir eine UND-Verknüpfung von dem Schrittmerker, der Negation (Invertierung) von Vari.IsHoming, der Negation von IOs._GLS und Festo.bDrive.
Davon abhängig weiß du dann die 3 Werte zu, Machst einen Reset für ContactStop und einen Set für ShutterFromSK. Außerdem Resettest du den Schrittmerker und setzt den Schrittmerker für den nächsten Schritt.
Versuch das mal.
Ich kann leider nicht so schön malen wie Harald - sonst hätte ich dir das als KOP oder FUP gemalt - es sollte aber eigentlich auch so gehen ... ;)
Vielleicht stellst du es mal als Screenshot ein wenn du es ahst ,,,

Gruß
Larry


DFie Verknüpfung sieht dann in KOP so aus :
--[ ]---[/]---[/]---[ ]----- und hier dann die Zuweisungen ...
 
das war ja ausführlich genug. Wie kann ich in einem Schritt eine Funktion aufrufen?

Anhang anzeigen 52382
Hier soll ich die Funktion aufrufen oder? und wie?

Stell es bitte auf Deutsch und lies die Grundlagen in der Hilfe. Du wirst Graph nicht lernen wenn die Grundlagen fehlen.

Für Dein Problem:
Das was Du offen hast ist die Reaktion auf das was in der Transition T2 davor ist. Da stehen links kleine Pünktchen, dort wird in FUP die Bedingung eingeschrieben die für den Schritt S2 benötigt wird. Was in S2 gemacht werden soll hast Du ja bereits offen.
Du würdest also z.B. als T2 Dein X und Y abfragen und in S2 dann Z mittels S(Setzen auf 1) beschreiben.
 
Das kenne ich schon. Meine Frage ist wie kann ich hier eine Funktion aufrufen? und nicht Variablen setzen und rücksetzen
 
Zurück
Oben