Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Ändert es was, wenn du es wie folgt schreibst (if und then in gleicher Zeile und ohne ; nach end_if)?
IF Byteslesen[6]=16#16 THEN
Fehler:= 'Hallo';
END_IF
Und in welchem Step befindest du dich gerade?
Wenn du durch steppst müsstest du in den THEN-Zweig reinkommen und dort müsste auch die Fehler-Variable gesetzt werden.
Setz dazu mal einen Breakpoint in den THEN-Zweig und steppe einen Schritt weiter.
Aber nur wenn der erste Aufruf zyklisch aufgerufen wird. Passiert der erste Aufruf in einem Case-Step und die Abfrage in einem anderen Case-Step, dann muss vor der Abfrage erst der Baustein aktualisiert werden, wie in meinem Beispiel.
Als erstes deklarierst du eine Variable vom Typ R_Trig bzw. F_Trig und den Eingang:
fbRTrig: R_TRIG;
bInput1 AT %I*: BOOL;
Dann musst du den entsprechenden digitalen Eingang einbauen:
fbRTrig(CLK:= bInput1);
Zum Schluss musst du den Baustein noch auswerten:
fbRTrig();
IF NOT fbRTrig.Q...