easy-forum

Deutsch - Software => easySoft => Thema gestartet von: Aleks am April 25, 2023, 23:32:50 Nachmittag

Titel: Anwenderbaustein funktioniert unregelmäßig
Beitrag von: Aleks am April 25, 2023, 23:32:50 Nachmittag
Hallo zusammen,

ich habe ein Problem mit einem einfachen Anwenderbaustein, der leider nur unregelmäßig funktioniert. Bin echt langsam am verzweifeln 😩
Es handelt sich um eine einfache Zeitschaltuhr mit zwei Vergleichern, die den Wert der Stunde und Minute vergleichen und den Ausgang schalten.
Die Stunde und Minute wird jeweils in ein Merkerbyte geschrieben.
Leider kann man im Live-Modus nicht in den Anwenderbaustein schauen.

Vielleicht weiß Jemand noch einen Rat. Vielen Dank schonmal im Voraus

Grüße
Aleks
Titel: Antw:Anwenderbaustein funktioniert unregelmäßig
Beitrag von: weiss_nix am April 25, 2023, 23:36:57 Nachmittag
Hallo Aleks, wie wäre es wenn du den nicht funktionierenden Programmteil zur Verfügung stellst?!

Gruß
Titel: Antw:Anwenderbaustein funktioniert unregelmäßig
Beitrag von: Aleks am April 26, 2023, 19:35:33 Nachmittag
Hallo weiss_nix,

hab jetzt Antwort vom Hersteller bekommen. Anscheinend bekommt die Easy E4 ein Problem, wenn der Echtzeituhr-Baustein RC zu häufig aufgerufen wird.
Ich hatte das Problem, dass die Echtzeit von Anwenderbaustein zu Anwenderbaustein unterschiedlich war und somit die Schaltuhren unzuverlässig funktionierten.
In der Simulation war das Problem nicht ersichtlich, sondern erst am Verhalten des Gerätes.

Grüße

Aleks
Titel: Antw:Anwenderbaustein funktioniert unregelmäßig
Beitrag von: weiss_nix am April 27, 2023, 06:09:41 Vormittag
Hi Aleks,
danke für die Info, das hatte ich bisher so noch nicht gehabt!

Gruß
Titel: Antw:Anwenderbaustein funktioniert unregelmäßig
Beitrag von: E(asy) am April 20, 2025, 18:58:38 Nachmittag
Ich benutze das FB-Ding, um Alarmlogs auf die SD-Karte zu schreiben bzw. habe ich das vor.
D.h. es erfolgen zyklische Aufrufe, also doch recht häufig
Und dann funktioniert das was??? Unregelmäßig?

Ist das E4-Teil überhaupt tauglich, um damit mehr als ein Aquarium einzuschalten oder ein bisschen Treppenlichtzeitschalter zu spielen?

Den Debuggingmode würde ich mal als rudimentät beschreiben und im Livebetrieb brauche ich keine Fehlersuche, sondern ein funktionierendes Gerät, wie es der Code implementiert, oder?
Titel: Antw:Anwenderbaustein funktioniert unregelmäßig
Beitrag von: radar17892 am April 22, 2025, 12:52:46 Nachmittag
Also nochmal zum Verständnis:

Der RTC Baustein funktioniert wie er soll!

Dieser Baustein ist dazu da, um in einer Instanz im Programm aufgerufen zu werden und am Ausgang die Uhrendaten zu liefern. Deshalb lässt er sich auch nur einmal im Programm einfügen.
Sollte jetzt doch versucht werden ihn in einem UF zu packen und diesen dann in mehreren Instanzen aufzurufen, kann es zu unbeabsichtigten Reaktionen kommen.
Die richtige Verwendungsweise ist, den Baustein einmal, sinnvollerweise am Programmanfang, aufzurufen und wenn nötig, seine Ausgangsvariablen an mehrfach instanzierte UF's zu übergeben.

In Beispielen habe ich das auch immer so explizit dargestellt. https://easy-forum.net/index.php?topic=8935.msg38839#msg38839 (https://easy-forum.net/index.php?topic=8935.msg38839#msg38839)

Gruß Thomas
Titel: Antw:Anwenderbaustein funktioniert unregelmäßig
Beitrag von: E(asy) am April 22, 2025, 16:35:10 Nachmittag
Ok, und wie kriege ich da einen Zeitstempel für die Zeit eines Ereignisses raus, bei z.B. I01=True?
Zwar kann man alle Werte (Datum/Zeit) des FB-RTC schön in MWs packen, aber die laufen ja auch kontinuierlich mit und verändern ihren Wert.
Titel: Antw:Anwenderbaustein funktioniert unregelmäßig
Beitrag von: radar17892 am April 23, 2025, 11:39:03 Vormittag
Ganz einfach.
I01 auf steigende Flanke überwachen und mit dem Flankenmerker das Ereignis mit den Zeitdaten dahin speichern wo du möchtest.
Titel: Antw:Anwenderbaustein funktioniert unregelmäßig
Beitrag von: E(asy) am April 23, 2025, 20:55:38 Nachmittag
Wenn I01 ein Alarmkontakt, also kein Taster ist, sondern ein "Schalter" ist, geht das dann auch? In der Simu läuft die Zeit einfach weiter und ohne Hardware kriege ich die Binärdatei nicht in den Klartext umgemünzt, um das zu prüfen...
Es wären auch mind. 4-7 Eingänge/Kontakte, die in EINE Datei müssten.

Im Beitrag E4 - ST (Temperaturlogging) habe ich das nochmal ausführlicher dargestellt.
Mein Code sieht grad so aus, aber kann die Binärdatei nicht lesen. Auch Notepad gibt nur Zeugs aus:
////////////////////////////////////////////////////////
// 1. STÖRMELDE-EINGÄNGE EINLESEN (I01–I04)
////////////////////////////////////////////////////////
M100 := I01;    // Störung 1 aktiv?

////////////////////////////////////////////////////////
// 2. FLANKENERKENNUNG (VORHERIGEN ZUSTAND NUTZEN)
////////////////////////////////////////////////////////
M101 := M100 AND NOT M194;   // Störung 1 kommt
M103 := NOT M100 AND M194;   // Störung 1 geht

////////////////////////////////////////////////////////
// 4. ECHTZEITUHR (RC01) AUFRUFEN
////////////////////////////////////////////////////////
RC01(
    EN := TRUE,
    YY => MB84,
    MM => MB85,
    DD => MB86,
    WD => MB87,
    HR => MB88,
    MN => MB89,
    SC => MB90
);

////////////////////////////////////////////////////////
// 5. ZEITSTEMPEL BEI EINTRITT STÖRUNG (NUR EINMAL)
////////////////////////////////////////////////////////
IF M101 AND NOT M160 THEN
    MB70 := MB88;
    MB71 := MB89;
    MB72 := MB90;
END_IF;

////////////////////////////////////////////////////////
// 8. LOGGING AUF SD-KARTE (JEWEILS NUR EINMAL, EINZELINSTANZEN)
////////////////////////////////////////////////////////
DL01(
    EN := M101 AND NOT M160,
    T1 := I01,
    I1 := MB88,
    I2 := MB89,
    I3 := MB90,
    I4 := MB90,
    RY => ,
    BY => ,
    E1 =>
);