Problem bei SCL

Zuviel Werbung?
-> Hier kostenlos registrieren
mit statischen Variablen funzt das soweit, ich habe nur noch das Problem das mein Zähler von aussen zwar hochgezählt wird, aber in dem FB nicht ankommt.

Ich hab deinen Code getestet, der funktioniert exakt so, wie er soll, der Input kommt an. Die Taktzeit hast du dann in Millisekunden.
Was unschön ist, sobald du Zaehler änderst, wird der vorhergehende berechnete Wert sofort an dem von Zaehler neu bezeichneten Array-Platz eingetragen, weil du die Berechnung immer ausführst, wenn Takt_Start und Takt_ende False sind. ich würde mit Taktende eine negative Flanke bilden und die Berechnung nur einmalig bei dieser Flanke machen. Hast du nach einer evtl. Änderderung den Instanz-DB neu erzeugt und übertragen?

Code:
FUNCTION_Block FB200
VAR
    Systemzeit_1 : DINT;
    Systemzeit_2 : DINT;
    [COLOR=#ff0000]HM_Takt_Ende :BOOL;[/COLOR]
END_VAR    
VAR_INPUT
    Zaehler :INT;
END_VAR


    IF "SPS Daten".Takt.Takt_Start THEN;
        Systemzeit_1 := TIME_TO_DINT(TIME_TCK());                       //Systemzeit_1 einlesen             
    END_IF;


    IF "SPS Daten".Takt.Takt_Ende THEN;
        Systemzeit_2 := TIME_TO_DINT(TIME_TCK());                       //Systemzeit_2 einlesen
    END_IF;  
             
    IF  (Systemzeit_2 > Systemzeit_1) AND NOT "SPS Daten".Takt.Takt_Start AND "SPS Daten".Takt.Takt_Ende AND [COLOR=#ff0000]NOT HM_Takt_Ende[/COLOR] THEN;
        "SPS Daten".Takt.Takt[Zaehler] := Systemzeit_2 - Systemzeit_1;
    END_IF;
        [COLOR=#ff0000]HM_Takt_Ende [/COLOR][COLOR=#000000]:= "SPS Daten".Takt.Takt_Ende;  [/COLOR]
                                                                                                                                                                              
END_FUNCTION_Block
@bike
Das ist ein Forum für SPS-Technik, da werden Fragen gestellt und man hilft oder man tut es nicht. Ständig Off-Topic zu produzieren, ist nicht hilfreich und verärgert viele hilfsbereite User. Also geh mal in dich und frage dich, was du hier eigentlich warum tust. Nicht jeder User versteht es Fragen exakt zu stellen oder seine bereits erzielten Ergebnisse so zu präsentieren, dass Andere seine Probleme sofort nachvollziehen können. Dentech zumindest kann man nicht vorwerfen, er würde sich nur die Ergebnisse präsentieren lassen, er fragt, programmiert, fragt wieder, genau so sollte das sein. Was also willst du?
 
Zuletzt bearbeitet:
Hi,

habe das jetzt nochmal geändert, aber der Zähler wird bei mir immer noch nicht hochgezählt, er schreibt mir immer alles in das erste Feld des Arrays, anbei nochmal das Programm. Der Zähler zählt zwar noch falsch, hab ich aber schon behoben.

Danke für die Hilfe

Anhang anzeigen Steuer~1.zip
 
Zuletzt bearbeitet:
Zurück
Oben