ich bin im Rahmen meiner Diplomarbeit dabei mich in CoDeSys einzuarbeiten, deshalb auch noch ein bißchen unbedarft.
Zu meiner Aufgabenstellung gehört es unter anderem, die Schaltspiele von Ventilen mitzuschreiben. Dabei können Schaltspielzahlen von von mehreren Millionen auftreten.
Da meines Wissens die Standardzähler CTU,CTD,CTUD nur 16bit zur Verfügung haben bin ich also damit schnell am Ende.
Eine Möglichkeit wäre sicher die Zähler zu kaskadieren aber wie wird dann die Ausgabe realisiert?
Ich wäre für jede Antwort dankbar!
Viele Grüße und danke im vorraus.
Björn
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2005-10-26
Originally created by: Bernhard Werner
Hallo,
Sie können einen eigenen Zähler mit selbstgewähltem Bereich in Nullkommanix selber schreiben: hier der Code für CTU:
IF RESET THEN
CV:=0;
ELSIF CU AND (CV < 16#FFFFFFFF) THEN
cv:=cv+1;
END_IF
Q := (CV >= PV);
Einfach PV und CV als DWORD deklarieren und fertig.
Das ist auch performanter als zu kaskadieren.
mit freundlichem Gruss,
Bernhard Werner
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2005-11-11
Originally created by: Gast
Flankenbildung für CU nicht vergessen, sonst zählt er in jedem Scan hoch und nicht wie man vielleicht erwarten würde bei jeder Flanke des Bits.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
das geht auch ohne oscat mit den Bordmitteln von CoDeSys.
Die IEC deklariert den Standardbaustein R_TRIG (Trigger steigende Flanke). Baustein instanziieren wie gewohnt, Ergebnisbit auswerten und dann zählen:
VAR_INPUT
 ixCount : BOOL;END_VARVAR
 Trigger : R_TRIG;
 Count : DINT;END_VARTrigger(CLK :=ixCount);IFTrigger.QTHENCount :=Count+1;END_IF
Diese Lösung hat den Charme, dass sie über die Windows-Zwischenablage auch nach STEP7-SCL oder nach Multiprog portiert werden kann. Ob dort die oscat läuft, weiss ich nicht. R_TRIG und die übrigen IEC-Standardbausteine werden aber in jedem Falle auch von den genannten Systemen unterstützt.
Gruß Rolf
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hallo,
ich bin im Rahmen meiner Diplomarbeit dabei mich in CoDeSys einzuarbeiten, deshalb auch noch ein bißchen unbedarft.
Zu meiner Aufgabenstellung gehört es unter anderem, die Schaltspiele von Ventilen mitzuschreiben. Dabei können Schaltspielzahlen von von mehreren Millionen auftreten.
Da meines Wissens die Standardzähler CTU,CTD,CTUD nur 16bit zur Verfügung haben bin ich also damit schnell am Ende.
Eine Möglichkeit wäre sicher die Zähler zu kaskadieren aber wie wird dann die Ausgabe realisiert?
Ich wäre für jede Antwort dankbar!
Viele Grüße und danke im vorraus.
Björn
Originally created by: Bernhard Werner
Hallo,
Sie können einen eigenen Zähler mit selbstgewähltem Bereich in Nullkommanix selber schreiben: hier der Code für CTU:
IF RESET THEN
ELSIF CU AND (CV < 16#FFFFFFFF) THEN
END_IF
Q := (CV >= PV);
Einfach PV und CV als DWORD deklarieren und fertig.
Das ist auch performanter als zu kaskadieren.
mit freundlichem Gruss,
Bernhard Werner
Originally created by: Gast
Flankenbildung für CU nicht vergessen, sonst zählt er in jedem Scan hoch und nicht wie man vielleicht erwarten würde bei jeder Flanke des Bits.
Hallo miteinander
Konnte obigen code für meinen Energiezähler verwenden. Nun ist aber der externe Impuls etwas lang und der Counter zählt 4 - 5 Schritte hoch.
Wie kann ich den Counter nun dazu bringen, dass er pro Impuls nur um 1 erhöht? Kriege das mit der Flanke in ST nicht auf die Reihe...
Besten Dank ür einen Tip!
Hi
w www.oscat.de w
Hallo,
das geht auch ohne oscat mit den Bordmitteln von CoDeSys.
Die IEC deklariert den Standardbaustein R_TRIG (Trigger steigende Flanke). Baustein instanziieren wie gewohnt, Ergebnisbit auswerten und dann zählen:
Diese Lösung hat den Charme, dass sie über die Windows-Zwischenablage auch nach STEP7-SCL oder nach Multiprog portiert werden kann. Ob dort die oscat läuft, weiss ich nicht. R_TRIG und die übrigen IEC-Standardbausteine werden aber in jedem Falle auch von den genannten Systemen unterstützt.
Gruß Rolf
Besten Dank ! Funktioniert nun einwandfrei!
Gruss Math