-> Hier kostenlos registrieren
Hallo zusammen,
ich wünsche euch allen erst einmal einen guten Rutsch!
Im Moment kämpfe ich mit einer Verständnisfrage, welche ich mir nicht erklären kann.
Ich habe mir eine einfache Funktion geschrieben, welche ich immer wieder für das hochzählen eines Stromzählers nutzen möchte. Es ändert sich nur der Zählimpulseingang, die Funktion ist aber immer die Gleiche. Schreibe ich mir diese in einen FC klappt das zuverlässig, trotz zyklischem Aufruf (erwarte ich so vom Trigger). Nutze ich aber eine Funktion und rufe diese dann in einem FC auf, zählt der Zählwert zyklisch hoch, also er macht dementsprechend Sprünge von ca. + 100-150, eben so schnell wie die SPS den Zyklus schafft. Das verstehe ich nicht...warum will es so nicht klappen?
ich wünsche euch allen erst einmal einen guten Rutsch!
Im Moment kämpfe ich mit einer Verständnisfrage, welche ich mir nicht erklären kann.
Ich habe mir eine einfache Funktion geschrieben, welche ich immer wieder für das hochzählen eines Stromzählers nutzen möchte. Es ändert sich nur der Zählimpulseingang, die Funktion ist aber immer die Gleiche. Schreibe ich mir diese in einen FC klappt das zuverlässig, trotz zyklischem Aufruf (erwarte ich so vom Trigger). Nutze ich aber eine Funktion und rufe diese dann in einem FC auf, zählt der Zählwert zyklisch hoch, also er macht dementsprechend Sprünge von ca. + 100-150, eben so schnell wie die SPS den Zyklus schafft. Das verstehe ich nicht...warum will es so nicht klappen?
Code:
Impulseingang = In
Zählwert = InOut
Trigger = InOut (auch ein Out oer Temp hilft nicht)
"R_TRIG_FC_141"(CLK:=#Impulseingang,
Q=>#Trigger);
IF #Trigger = true THEN
#Zählwert := #Zählwert + 1;
END_IF;