TwinCAT 3.1 Deklaration von Hardware I/Os in FBs

snotmon

Level-1
Beiträge
5
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

gibt es bei der Verwendung von Hardwareausgängen als lokale Variablen in Funktionsblöcken in TwinCAT 3.1 Probleme?

Der folgende Code funktioniert bei mir nicht korrekt:

Code:
FUNCTION_BLOCK FB_Beispiel
VAR INPUT[INDENT]bSchaltbedingung : BOOL;[/INDENT]
END_VAR
VAR[INDENT]ObAktor AT %Q* : BOOL;[/INDENT]
END_VAR

ObAktor := bSchaltbedingung;

PROGRAM MAIN
VAR[INDENT]bTest : BOOL;
aBeispiel : ARRAY [1..2] OF FB_Beispiel;[/INDENT]
END_VAR

aBeispiel[1](bSchaltbedingung:= bTest);
aBeispiel[2](bSchaltbedingung:= NOT bTest);

Die beiden ObAktor sind jeweils mit einem Kanal auf einer EL2008 verknüpft. Wenn ich mir das Prozessabbild der PLC anschaue, schalten die Ausgänge auch wie erwartet mit bTest um, aber auf der EL2008 kommt nichts an. Von Hand die Ausgänge direkte an der EL2008 forcen funktioniert.

Wenn ich hingegen die ObAktor im FB_Beispiel als VAR_OUTPUT (ohne AT) definiere, die Ausgangsvariablen in der MAIN anlege und mit den Ausgängen der FBs versorge, kommen die Werte auch auf der EL2008 an:

Code:
FUNCTION_BLOCK FB_Beispiel
VAR INPUT[INDENT]bSchaltbedingung : BOOL;[/INDENT]
END_VAR
VAR_OUTPUT[INDENT]bAktor : BOOL;[/INDENT]
END_VAR

bAktor := bSchaltbedingung;

PROGRAM MAIN
VAR[INDENT]bTest : BOOL;
aBeispiel : ARRAY [1..2] OF FB_Beispiel;
ObAktor1 AT %Q* : BOOL;
ObAktor2 AT %Q* : BOOL;[/INDENT]
END_VAR

aBeispiel[1](bSchaltbedingung:= bTest, bAktor=> ObAktor1);
aBeispiel[2](bSchaltbedingung:= NOT bTest, bAktor=> ObAktor2);

Hat jemand so ein Verhalten schonmal beobachtet?
 
Nein so ein Problem hatte ich noch nicht. Ich deklariere die IOs selber auch in den FBs und wenn ich die Instanzen verknüpfe werden die Signale wie gewohnt an die Klemmen weitergeleitet. Da muss bei dir also noch irgendetwas nicht passen.
 
Danke für die Rückmeldungen, inzwischen konnte ich es nochmal auf der Anlage testen und es funktioniert. Scheinbar ist zuvor bei der Aktivierung der Konfiguration oder des Boot Projekts irgendwo etwas schiefgelaufen.
 
Zurück
Oben