Ich habe ein CANOpen-Netzwerk eingerichtet, das aus 3 Engines besteht, von denen jeder seinen eigenen CANOpen-Slave hat. Ich habe eine Hilscher CifX-Karte, die als CANopen-Master fungiert.Ist es möglich, CANOpen-Variablen über SDO abzufragen, und wenn ja, wie?
Ich habe einen korrekten Motorbefehl erhalten, indem ich RPDO und TPDO direkt in den Prozessspeicher der Hilscher-Platine gelesen und geschrieben habe.
Jetzt habe ich versucht, das Netzwerk über Sycon.NET (das Hilscher Konfigurationstool) einzurichten, um dem PDO zusätzliche Variablen zuzuordnen, aber die Variablen, die ich erfassen möchte, erscheinen nicht in der Liste. Ich denke, das liegt daran, dass die EDS für diese Variablen die Nummer PDO Mapping = 0
hat.
Ich möchte die Werte dieser Variablen alle 20ms oder so lesen. Kann ich dies tun, indem ich das Gerät über SDOs abfrage? Wenn das so ist, wie?
@ M.Neubauer: Danke. Ich habe in den DS301 geschaut und könnte Ihr Beispiel der Nachrichtenstruktur des "Initiate SDO Upload" -Protokolls zuordnen. Ich sehe, dass das "beschleunigte Transfer" -Bit Teil der Antwort vom Slave ist (in meinem Fall). Bedeutet das, dass der Slave in diesem Fall den Übertragungsmodus wählen muss? Gibt es eine Garantie, dass, da die Daten niemals länger als 4 Bytes sind, der Slave immer die beschleunigte Übertragung wählt? –
Ja, der Slave entscheidet über den Übertragungsmodus. Ich denke, dass die meisten Implementierungen eine beschleunigte Übertragung durchführen werden. Es ist jedoch möglich, weniger als 4 Bytes über einen segmentierten Upload zu übertragen. Also gibt es keine Garantie. – mkninc
Also bin ich gut für die Umsetzung des gesamten Service. –