Bernecker und Rainer Betriebsstundenzähler

Don_Travolta

Level-1
Beiträge
12
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo liebe Gemeinde,

bin gerade dabei eine Pumpensteuerung mittels einer B&R CP3484-1 zu realisieren.
Ich habe mit dem System bis jetzt noch nie gearbeitet. (Erfahrung in Logicad bzw. Codesys aber "nur" CFC)

Im Automation Studio ist der CFC etwas stiefmütterlich.
Die Konfig der Analge schaut so aus:

Schnittstelle zum Leitsystem zum verstellen von Parameter über eine IEC 60870-5-104 Schnittstelle.

Ich würde nun einen Betriebsstundenzähler brauchen, der folgende spielt:

Zähleingang angesteuert über Impuls, einen PV-Eingang zum vorgeben der Betriebstunden vom Leitsystem und den Load Eingang um die vorgegeben Betriebsstunden zu übernehmen.

So jetzt zu meinem Problem. Wie bekomme ich einen Impuls für den Load Eingang. Quasi wie kann ich checken ob etwas vom Leitsystem geschickt wurde (Alt/Neu- Vergleich).
Bei Kirchnersoft bzw. Codesys ist je nach Hersteller das IEC 60870-5-104 Protokoll so implementiert, dass es für Sollwerte ein sogenantes Spontan-Bit gibt. D.H. da es sich beim IEC 104 er Protokoll um ein spontanes Protokoll handelt, konnte immer über die Auswerten des Spontan Bit´s schauen ob etwas geschickt wurde oder nicht.

Bei B&R ist dies nicht implementiert, da kann ich nur die Nutzdaten auswerten. Ich bäuchte also einen Alt/Neu eines Wertes, der wenn die Werte nicht gleich sind mir einen Bool Wert setzt. Wenns geht in CFC, dass ich das bei meinem BSTD- Zähler noch dazu bauen kann.

Würde mich freuen.

lg
 
Hallo liebe Gemeinde,
....

hast du Theologie studiert ? ;-)

Ich hab zwar grad kein AS von B&R zur Hand - ausserdem steh ich da Versionsmässig noch auf Stand 2.x - aktuell ist ja 3.x - das Steuerungssystem spielt bei deinem Problem aber normal keine Rolle,
da dies ein generelles CFC bzw. FUP Problem ist.

Ich hab hier grad ein Saia-Programmiersystem zur Hand - und hab im Fupla mal was zusammengepinselt:

2012-03-21_211341.jpg

So was sollte man ja auch mit B&R CFC realisieren können. Das Bit "Value_Changed" sollte bei einer Wertänderung von "Value_PLS" für genau einen Zyklus "HIGH" sein.

Damit sollte dein Problem doch gelöst sein ?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
He,
danke für die schnelle Antwort. Um welchen Baustein handelt es sich unter dem Komperator.

Hätte mal eine andere Frage. In AS von B&R kann man anscheinend CFC, FUP ST etc. mittels Funktionsblöcke mischen. Wie würde so ein Betriebsstundenzähler in ST zum Beispiel ausschauen.
Folgende Anforderung hat er.
Eingang für Rückmeldung vom Aggregat (BOOL),
Eingang für Zählimpuls (Bool),
Eingang für Wert, der vom PLS gesetzt werden kann, sprich von dem soll der Zähler dann wegzählen (Float).
Eingang um den vom PLS vorgegeben Wert zu übernehmen (??) (Bool).

Ausgang die Betriebsstunden (FLoat)

Vielleicht hat wer Zeit. Sollten wir in der Firma mehr mit B&R projektiern, werde ich mich mehr mit ST beschäftigen.

lg
 
Hallo Leute,

habe mich mal in ST versucht:

Aber irgendwie tut der Zähler nicht so wenn ich die "auskommentierten" Kommandozeilen "einschalte". So funktioniert der Zähler mit setzen etc.
ICh wollte ihn dann noch um die Funktion erweitern, dass er eigentlich interen die Minuten zählt, er aber Stunden zum PLR weitergibt und auch gleich die Kommastellen abschneidet.
Wenn ich diese Kommando´s einschalte geht er nicht mehr.

Vielleicht kann mir wer helfen.
lg

FUNCTION_BLOCK FB_BSTDCOUNT

r_trig_0(CLK := M1_ZAEHLIMPULS);
M0_RTRIG_OUT := r_trig_0.Q;

//W1_BSTDVORGABE := W1_BSTDVORGABE*60.0;
(* Der Sollwert wird auf Minuten umgerechnet*)

IF M0_RTRIG_OUT = TRUE AND M1_RM_AGGREGAT = TRUE THEN
W2_BSTD := W2_BSTD + 1;
END_IF

IF W0_VALSAVE <> W1_BSTDVORGABE THEN
W2_BSTD := W1_BSTDVORGABE;
END_IF

(*Abschneiden der Kommastellen für die Anzeige am PLR*)
//W2_BSTD := W2_BSTD/60.0;
//W0_BSTD_DINT := REAL_TO_DINT (W2_BSTD);
//W2_BSTD := DINT_TO_REAL (W0_BSTD_DINT);

W0_VALSAVE := W1_BSTDVORGABE;



END_FUNCTION_BLOCK
 
Zuletzt bearbeitet:
Zurück
Oben