Autor Thema: Anwenderbaustein funktioniert unregelmäßig  (Gelesen 2978 mal)

Offline Aleks

  • Newbie
  • *
  • Beiträge: 4
Anwenderbaustein funktioniert unregelmäßig
« 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

Offline weiss_nix

  • Sr. Member
  • ****
  • Beiträge: 612
  • it has to be easy, it's a easy!
Antw:Anwenderbaustein funktioniert unregelmäßig
« Antwort #1 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ß
Sollte ich (gefährliches) Halbwissen verbreiten, beuge ich demütig mein Haupt mit der Gewissheit versagt zu haben!
WICHTIG: Sämtliche Programme dienen lediglich der Veranschaulichung von Funktionen und sind nicht für den Produktiveinsatz geeignet!

Offline Aleks

  • Newbie
  • *
  • Beiträge: 4
Antw:Anwenderbaustein funktioniert unregelmäßig
« Antwort #2 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

Offline weiss_nix

  • Sr. Member
  • ****
  • Beiträge: 612
  • it has to be easy, it's a easy!
Antw:Anwenderbaustein funktioniert unregelmäßig
« Antwort #3 am: April 27, 2023, 06:09:41 Vormittag »
Hi Aleks,
danke für die Info, das hatte ich bisher so noch nicht gehabt!

Gruß
Sollte ich (gefährliches) Halbwissen verbreiten, beuge ich demütig mein Haupt mit der Gewissheit versagt zu haben!
WICHTIG: Sämtliche Programme dienen lediglich der Veranschaulichung von Funktionen und sind nicht für den Produktiveinsatz geeignet!

Offline E(asy)

  • Jr. Member
  • **
  • Beiträge: 47
Antw:Anwenderbaustein funktioniert unregelmäßig
« Antwort #4 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?

Offline radar17892

  • Sr. Member
  • ****
  • Beiträge: 835
  • Think easy!
    • mollgruppe
Antw:Anwenderbaustein funktioniert unregelmäßig
« Antwort #5 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

Gruß Thomas
Weil Einfach einfach Einfach ist!

Offline E(asy)

  • Jr. Member
  • **
  • Beiträge: 47
Antw:Anwenderbaustein funktioniert unregelmäßig
« Antwort #6 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.

Offline radar17892

  • Sr. Member
  • ****
  • Beiträge: 835
  • Think easy!
    • mollgruppe
Antw:Anwenderbaustein funktioniert unregelmäßig
« Antwort #7 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.
Weil Einfach einfach Einfach ist!

Offline E(asy)

  • Jr. Member
  • **
  • Beiträge: 47
Antw:Anwenderbaustein funktioniert unregelmäßig
« Antwort #8 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 =>
);