dOut/dIn in POU direkt oder über Variable?

Ulf S.

Level-1
Beiträge
19
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo alle zusammen,
als noch relativ unerfahrener User habe ich eine Frage an die Erfahrenen hier in diesem großartigen Forum. Alles was ich hier schreibe kann noch falsch verstanden sein, Korrekturen und Hinweise sind sehr gerne erwünscht.

Ich arbeite an einer Hausautomation mit Codesys in e!Cockpit auf einer PFC200 8202. An Diese sind bis jetzt direkt und über Modbus TCP 2 Koppler verbunden.
Die dOut und dIn Klemmen am Modbus und an der PFC200 habe ich gemappt, alles noch sehr simple, sind ja nur BOOL.

Diese Variablen (sind ja global?) benutze ich dann direkt in einer POU. Das funktioniert bisher soweit, aber nach allem was ich vor allem hier gelesen habe könnte das nicht so schlau sein., vor allem wenn eine andere Instanz/POU auch mal diese benutzen soll (nach meinem Verständnis dann vor allem die dOut).
Soll ich in der POU besser Var_Output definieren und diese dann "indirekt" benutzen?

Vielen Dank schon mal und Gruß, Ulf
 
Hi Ulf,

die Beschreibung aus der Hilfe ist sehr gut EA-Mapping.
Ob deine Variablen global sind hängt von deiner Deklaration ab, aber ehrlich gesagt verstehe ich deine Frage nicht ganz.
Grundsätzlich wird das EA-Abbild nicht mitten im Zyklus aktualisiert.
Überprüfe die Einstellung des Busteilnehmers (u.a. Aktualisierungsrate ).
Zudem kann man bei dem von mir verwendeten Steuerungstyp, dem Abbild einen Task zuordnen, dies wird besonders relevant wenn du mehr als einen Task verwendest…
Die Aktualisierungsrate sollte entweder gleich wie deine Taskzykluszeit sein , oder ein vielfaches. Kommt auch auf den Koppler an…

Ist aber alles in der Hilfe sehr gut beschrieben .

Ich hoffe dies hilft dir ein wenig weiter.

Gruß Rob
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin, die globalen Variablen des Modbus-Konfigurators kannst Du problemlos in verschieden Programmen und Tasks verwenden. Beim Schreiben auf DOs würde ich aber immer nur an einer Stelle einen Schreibzugriff machen. Egal, ob ein Ausgang an einem Koppler oder am PFC selbst. Das stellt sicher, dass nicht zwei POUs unterschiedliche Zustände schreiben und der Ausgang anfängt zu flackern.
In Funktionen oder Funktionsblöcken würde ich nicht direkt auf Hardware-Variablen zugreifen (egal ob lesend oder schreibend). FCs und FBs sollen ja gerade Funktionalitäten abstrahieren und für verschiedene Anwendungen nutzbar sein. Das ist nicht mehr gegeben, wenn Du in einem solche direkt auf feste Hardware-Adressen zugreifst. "Richtig" wäre es die Hardware-Variablen in einem Programm an FC oder FB zu übergeben bzw. deren Ausgang im Programm auf die HW-Variable zu mappen.
 
Zurück
Oben