FUNCTION_BLOCK FB600
TITLE = 'ZAEHLER1'
// Baustein für einen Zähler
NAME : ZAEHLER1
FAMILY : Familie
AUTHOR : Firma
VERSION : '0.1'
VAR_INPUT
Bedingung : BOOL := FALSE; //Bedingung für das Zählen
END_VAR
VAR_OUTPUT
Zaehler : DINT :=0; //Zählerstand
END_VAR
VAR
Zaehler_stat : DINT :=0; //Zählerstand statische Variable
Bedingung_old : BOOL := FALSE; //Flankenerkennung
END_VAR
BEGIN;
// Zählen
IF Bedingung AND NOT Bedingung_old THEN
Zaehler_stat:= Zaehler_stat+1;
END_IF;
// Flankenerkennung
Bedingung_old:= Bedingung;
// Ausgabe an Bausteinausgänge
Zaehler:= Zaehler_stat;
END_FUNCTION_BLOCK
INT_TO_REAL(mw20/mw12)
Irgendwie ist das Käse, so mit den Merkern zu arbeiten. Nimm nen FB und interne Variablen für die ganzen Berechnungen.
Gruß.
Naja hin oder her... ich würde es so machen:
... und Ducati hat es ja auch nicht böse gemeint mit seiner Bemerkung sondern dir nur einen Tip gegeben, wie man es besser (für sich selbst und auch für andere) machen kann und vor Allem wie man sich dumme Fehler und endlose Sucherei ersparen kann - mit anderen Worten: er hat versucht dir seine Erfahrungen zu vermitteln ...
Gruß
Larry
Nur bräuchte ich mal ein Feedback zu meinem Code! Was daran grundsätzlich falsch ist.
mw20:=(WORD_TO_INT(mw16) + WORD_TO_INT(mw18)); //MW20 als Datentyp INT, MW16+MW18 als WORD
mw20:=(WORD_TO_INT(mw16) + WORD_TO_INT(mw18)); //MW20 als Datentyp INT, MW16+MW18 als WORD
Hihi... ich bin nicht BÖÖÖÖSEEEEE
Es gibt halt (leider?) verschiedene Arten zu programmieren. Oft wird das aber mit den Merkern auch so gelehrt.
Der Vorteil an FBs mit eigenen Variablen ist, das die Zugehörigkeit eindeutig ist. Bei Merkern sieht man auf den ersten Blick nicht, wo wie warum die verwendet werden, und schnell wird auch ein Merker doppelt verwendet...
Weiterhin kannst Du Deine FCs nur schwer mehrfach wiederverwenden ohne am Code zu ändern und somit neu zu testen...
Aber alles Ansichtssache
Einfach Spitze...Jetzt ist der Compiler zufrieden!
Ich dachte irgendwie dass der das auf WORD Ebene addieren kann. Naja, wieder was gelernt dank euch
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?