Steuerwort senden über Beckhoff EL6731-Master klappt nicht

hello_d1

Level-1
Beiträge
38
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, liebe User!

ich versuche zwei Frequenzumrichter NORDAC SK15000/3CT über Beckhoff EL-6731 Profibus-Masterklemme ansteuern.
Dazu habe ich die Hardware konfiguriert und versucht die Kommunikation aufzubauen.

Ich empfange dabei das Zustandswort von beiden Umrichtern, aber die Masterklemme will kein Steuerwort senden bzw. bleibt bei 16#0000.

Beim Zustandswort bin ich so vorgegangen:

Code:
Masterklemme Box => PPO4 Input -> FU.aAntowrt AT %I* : ARRAY[0..5] OF WORD;

das 0. WORD beinhaltet das Zustandswort. Soweit klar.

Dann über ein Struct
Code:
TYPE ST_ZSW :
STRUCT
    bEinschaltbereit: BOOL;
    bBetriebsbereit: BOOL;
    bFreigegeben: BOOL;
    .
    .
    .
    bParametersatzHi: BOOL; (16 Elemente)
END_STRUCT
END_TYPE

dann schließlich auf einzelne Bits
Code:
M.stZSW.bEinschaltbereit:=FU.aAntwort[0].0;
.
.
.
M.stZSW.bParametersatzHi:=FU.aAntwort[0].15;

Beim Steuerwort mache ich das genau so, einfach in umgekehrte Richtung:

Der Aufbau ist genau gleich, nur halt

von Zuweisung einzelner Bool'schen Merkern auf Structelementen
Code:
TYPE ST_STW :
STRUCT
    bAUS1: BOOL;
    bAUS2: BOOL;
    bAUS3: BOOL;
    .
    .
    .
    bParameterHi: BOOL; (16 Elemente)
END_STRUCT
END_TYPE


M.stSTWU1.bAUS2:=TRUE;
M.stSTWU1.bAUS3:=TRUE;

dann Zuweisung der Structelemente auf einzelne Bits

Code:
FU.aAuftrag[0].0:=M.stSTW.bAUS1;
.
.
.
FU.aAuftrag[0].15:=M.stSTW.bParameterHi;

dann zu guter letzt
aAuftrag AT %Q* : ARRAY[0..5] OF WORD; => PPO4 Output.

Das will aber irgendwie nicht klappen.

Was übersehe ich da?
 
Wird dir im PLC Programm das richtige Steuerwort angezeigt, aber auf dem Bus kommt nur 0 an? Oder stimmt das Steuerwort schon im PLC Programm nicht?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich kann an der Masterklemme online sehen, was er am Output sendet. Dort ist stets 16#0000, obwohl ich da einzelne Bits auf true gesetzt habe und somit die Daten nicht 16#0000 sein sollten.
Wenn ich im Online-Modus den Ausgangsvariable aAuftrag, der direkt mit dem Output verknüpft ist, force, dann werden auch die richtigen Daten gesendet. Force ich aber die einzelnen Bit-Variablen, werden diese irgendwie nicht am Outputsvariable aAuftrag übernommen.
Es scheint der letztere Fall zu sein.
Könnte es am Struct liegen?
Ich übersehe da bestimmt etwas und da wollte ich euch mal um einen Blick drauf bitten.
 
Zuletzt bearbeitet:
Wird der Codeabschnitt indem du die Bits aus der Struktur auf das Wort mappst auch aufgerufen? (Ablaufkontrolle aktivieren um das zu prüfen)
Überschreibst du das Wort evtl. nochmal nachdem du die Bits gemappt hast?
 
Wie peinlich... Das war ja ein echt dämmlicher Fehler von mir.
Der Aufruf war mit einer IF-Bedingung verknüpft und ich hatte das völlig vergessen - warum auch immer :rolleyes:
Die Bedingung war halt nicht erfüllt.
Es funktioniert doch alles gut.
Danke für deine Mühe, MasterOhh:D
 
Zurück
Oben