direkter Zugriff auf SDO's

Judge

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

ich habe ein projekt übernommen und es stellen sich einige fragen.

wir verwenden ein hilscher ethercat slave (comx-ca-re) welches das canopen protokoll verwendet. als master wird twincat verwendet. die kommunikation funktioniert soweit, die nötigen sdo's sind angelegt und über die pdo's lassen sich daten hin und her schicken. in twincat werden alle sdo's angezeigt.

ich habe nun begonnen via labview auf die daten in der pdo zuzugreifen, das funktioniert soweit auch.

nun würde ich gern wissen ob es eine möglichkeit gibt, via labview auch auf die sdo's direkt zuzugreifen, die nicht in die pdo's gemapped sind.
 
ich bins mal wieder.

ich hab den SDO zugriff jetzt über die ethercat library von twincat plc gelöst. und zwar verwende ich die funktionen FB_EcCoeSdoRead und FB_EcCoeSdoWrite. die kommunikation funktioniert schonmal.

nun hab ich eine frage dazu, wenn die funktion (write) einmal aufgerufen wurde, lässt sie sich nichtmehr verwenden, es wird also mit der funktion nur einmal gesendet, beim erneuten aufruf passiert nichts. ich vermute das man die funktion irgendwie zurücksetzen muss, weiss da einer was?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich denke da bist du sicher auf dem richtigen Weg. Kenne das leider nur bei B&R und da ist es tatsächlich so, dass nach einem SDO Read/Write ein spezieller Aufruf gemacht werden muss, damit der SDO Kanal wieder frei wird. Wie der in deinem System heißt, kann ich dir aber leider nicht sagen...

bg
bb
 
das komische ist, wenn ich mehere funktionen in den lokalen variablen deklariere (Write1, Write2 ...), kann ich pro deklaration einen wert senden.

macht da jede deklaration einen kanal auf?
 
Hallo,
für mich siehts so aus. Ich habe es genau anders herum verwendet. Einen globalen SDO-Read und Write. Also gings bei mir nur einmal, egal obs die selbe Variable war oder eine andere. Mein "Reset" Aufruf war jedoch in der Doku schön beschrieben und das Problem war schnell behoben...

Aber wie gesagt, ist bei B&R. Was sagt deine Helpline dazu, die müssten das aus dem FF wissen was los ist ... ?

bg
bb
 
Zuviel Werbung?
-> Hier kostenlos registrieren
das zurücksetzen der funktion funktioniert über die eingangsvariable bExecute, am besten man setzt sie direkt im funktionsaufruf auf FALSE, dann klappts auch mit den nachbarn.

in einem datenblatt zu einem ethercat steuerbaren motor hab ich das ganze gefunden (Beckhoff woll ich nicht nerven, da wir derzeit nur die 30 Tage Testversion verwenden, da ist Telefonsupport wahrscheinlich zu viel verlangt).

in dem datenblatt wirds wie folgt gemacht:

man fragt das Busy Flag der funktion ab, wenn es FALSE ist, stellt man bExecute auf TRUE, im ELSE zweig ist dann der funktionsaufruf bei dem bExecute gleich wieder FALSE gesetzt wird.
 
Zurück
Oben