-> Hier kostenlos registrieren
Hallo liebes Forum,
ich arbeite seit einer Woche mit der Software TIAPortal ( Version 15), und habe für ein Problem früher keine Lösung gefunden.
Ich muss dazu sagen, dass programmiertechnisch eher von höheren Programmiersprachen (C, Python) komme. Dementsprechend weiß ich nicht, wie es gedacht ist, dass man Programmierprobleme in TIA-Portal löst. Mit GRAPHCET habe ich schon in der Berufsschule zu tun gehabt, genauso wie mit Funktionsbausteinsprache (FUP).
Nun zu meinem Problem: Immer, wenn das Signal einer Lichtschranke von 0 auf 1 geschaltet wird (die Lichtschranke wird in der PLC-Variablen Tabelle als Variable vom Typ "bool" dargestellt), dann soll eine Zählvariable hochgezählt werden.
Als Zählvariable habe ich zunächst einfach eine PLC-Variable vom Typ Integer definiert. Mein Ausbilder machte mir die Vorgabe, alles in GRAPH zu programmieren. Meine Idee war also, dass es 2 Schritte gibt, die Transitionsbedingungen zwischen diesen Schritten sollen sein, dass die Lichtschranke den Wert 0 oder den Wert 1 hat. Jedesmal, wenn Schritt 1 erreicht wird, soll dann als Permanente Aktion die Zählvariable um 1 erhöht werden.
Ich habe dann festgestellt, dass das mit einer Variable vom Typ Integer nicht so einfach möglich ist: Ich wollte in das Aktionsfeld einfach "Variable := Variable +1" schreiben, allerdings hatte ich bei der "Kennung" keine Möglichkeit, eine gespeicherte Aktion auszuwählen, sondern nur Temporäre. Wenn ich die Kennung "Zählvariable hochzählen" verwendet habe, dann bekam ich einen Fehler, weil zum einen die Syntax nicht richtig war, zum anderen hätte die Variable vom Typ "Counter" sein müssen.
Ich habe dann eben eine Counter Variable verwendet, damit ging es.
Frage: Ist es generell nur möglich, als gespeicherte Aktion in einem GRAPH-Schritt Counter-Variablen hochzuzählen? Was mache ich, wenn ich in einer solchen Aktion einen beliebigen Integer Wert auf einen beliebigen anderen Wert setzen möchte? Oder ist es einfach nicht so gedacht, dass man auf diese Art und Weise programmiert?
Anschließend wollte ich in einem anderen Funktionsbaustein den Wert des Zählers abfragen: Wenn der Zähler den Wert 4 hat, dann soll etwas bestimmtes passieren. Allerdings habe ich in FUP keine Möglichkeit gefunden, den Wert des Zählers mit dem Integer-Wert "4" zu vergleichen. Der CMP-Baustein hat nicht funktioniert, da die Zählvariable nicht vom Typ "Int" war. Ich konnte aber auch keinen Move- oder BCD_I-Baustein vor den Vergleichsbaustein hängen, die Möglichkeit hat mir TIA Portal nicht gegeben.
Frage 2: Wie würde ich in TIAPORTAL einen Zähler mit einem anderen Wert vergleichen, so dass ich dann einen Wahrheitswert (bool) erhalte?
ich arbeite seit einer Woche mit der Software TIAPortal ( Version 15), und habe für ein Problem früher keine Lösung gefunden.
Ich muss dazu sagen, dass programmiertechnisch eher von höheren Programmiersprachen (C, Python) komme. Dementsprechend weiß ich nicht, wie es gedacht ist, dass man Programmierprobleme in TIA-Portal löst. Mit GRAPHCET habe ich schon in der Berufsschule zu tun gehabt, genauso wie mit Funktionsbausteinsprache (FUP).
Nun zu meinem Problem: Immer, wenn das Signal einer Lichtschranke von 0 auf 1 geschaltet wird (die Lichtschranke wird in der PLC-Variablen Tabelle als Variable vom Typ "bool" dargestellt), dann soll eine Zählvariable hochgezählt werden.
Als Zählvariable habe ich zunächst einfach eine PLC-Variable vom Typ Integer definiert. Mein Ausbilder machte mir die Vorgabe, alles in GRAPH zu programmieren. Meine Idee war also, dass es 2 Schritte gibt, die Transitionsbedingungen zwischen diesen Schritten sollen sein, dass die Lichtschranke den Wert 0 oder den Wert 1 hat. Jedesmal, wenn Schritt 1 erreicht wird, soll dann als Permanente Aktion die Zählvariable um 1 erhöht werden.
Ich habe dann festgestellt, dass das mit einer Variable vom Typ Integer nicht so einfach möglich ist: Ich wollte in das Aktionsfeld einfach "Variable := Variable +1" schreiben, allerdings hatte ich bei der "Kennung" keine Möglichkeit, eine gespeicherte Aktion auszuwählen, sondern nur Temporäre. Wenn ich die Kennung "Zählvariable hochzählen" verwendet habe, dann bekam ich einen Fehler, weil zum einen die Syntax nicht richtig war, zum anderen hätte die Variable vom Typ "Counter" sein müssen.
Ich habe dann eben eine Counter Variable verwendet, damit ging es.
Frage: Ist es generell nur möglich, als gespeicherte Aktion in einem GRAPH-Schritt Counter-Variablen hochzuzählen? Was mache ich, wenn ich in einer solchen Aktion einen beliebigen Integer Wert auf einen beliebigen anderen Wert setzen möchte? Oder ist es einfach nicht so gedacht, dass man auf diese Art und Weise programmiert?
Anschließend wollte ich in einem anderen Funktionsbaustein den Wert des Zählers abfragen: Wenn der Zähler den Wert 4 hat, dann soll etwas bestimmtes passieren. Allerdings habe ich in FUP keine Möglichkeit gefunden, den Wert des Zählers mit dem Integer-Wert "4" zu vergleichen. Der CMP-Baustein hat nicht funktioniert, da die Zählvariable nicht vom Typ "Int" war. Ich konnte aber auch keinen Move- oder BCD_I-Baustein vor den Vergleichsbaustein hängen, die Möglichkeit hat mir TIA Portal nicht gegeben.
Frage 2: Wie würde ich in TIAPORTAL einen Zähler mit einem anderen Wert vergleichen, so dass ich dann einen Wahrheitswert (bool) erhalte?