leider habe ich unter Codesys arge Probleme (einige) CAN Slave Geräte (spez. Winkelgeber) in ihrer Baud Rate und der Node ID zu parametrieren.
Dafür benutze ich ausschließlich die "Steuerkonfiguration", speziell das SDO Menü.
Fast alle Parameter (wie Bsp. Cyclic Time, Resolution) werden korrekt übernommen; außer eben die Node ID und die Baudrate.
Da die meisten Geräte im Auslieferungszustand die Node ID=32 und die Baudrate 20KBit/s besitzen, muss ich diese in jedem Fall ändern.
Meine Vermutung ist, dass die Geräte die SDO´s nur temporär übernehmen und es zum dauerhaften Speichern in den EEPROM noch einen Befehl benötigt.
Da ich mich aber nicht ausreichend mit den einzelnen Bausteinen aus den CAN Bibliotheken auskenne, würde ich mich freuen, wenn mir jemand helfen könnte.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Steht da nichts drüber im Handbuch der jeweiligen Geräte? Ich kenne das von in Motoren integrierten Servoreglern daß man hinterher erst mal die Spannung abschalten und wieder einschalten muß, das kann natürlich mit einem Schutz von der SPS aus automatisch erfolgen.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Ja, dass die Geräte hinterher in den spannungsfreien Zustand genommen werden müssen ist mir bekannt. Ich will die Geräte ja auch nur 1-mal parametrieren.
Eine Idee ist noch den Heartbeat des jeweiligen Gerätes zu deaktivieren und dann die SDO Nachricht zu senden.
Wenn das nicht klappt wurde mir empfohlen mich mit der CANUSER_SDODOWNLOAD Bibliothek zu beschäftigen um das Gerät manuell zu parametrieren.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hallo,
leider habe ich unter Codesys arge Probleme (einige) CAN Slave Geräte (spez. Winkelgeber) in ihrer Baud Rate und der Node ID zu parametrieren.
Dafür benutze ich ausschließlich die "Steuerkonfiguration", speziell das SDO Menü.
Fast alle Parameter (wie Bsp. Cyclic Time, Resolution) werden korrekt übernommen; außer eben die Node ID und die Baudrate.
Da die meisten Geräte im Auslieferungszustand die Node ID=32 und die Baudrate 20KBit/s besitzen, muss ich diese in jedem Fall ändern.
Meine Vermutung ist, dass die Geräte die SDO´s nur temporär übernehmen und es zum dauerhaften Speichern in den EEPROM noch einen Befehl benötigt.
Da ich mich aber nicht ausreichend mit den einzelnen Bausteinen aus den CAN Bibliotheken auskenne, würde ich mich freuen, wenn mir jemand helfen könnte.
Kann mir denn keiner helfen oder hat eine Idee?
Steht da nichts drüber im Handbuch der jeweiligen Geräte? Ich kenne das von in Motoren integrierten Servoreglern daß man hinterher erst mal die Spannung abschalten und wieder einschalten muß, das kann natürlich mit einem Schutz von der SPS aus automatisch erfolgen.
Ja, dass die Geräte hinterher in den spannungsfreien Zustand genommen werden müssen ist mir bekannt. Ich will die Geräte ja auch nur 1-mal parametrieren.
Eine Idee ist noch den Heartbeat des jeweiligen Gerätes zu deaktivieren und dann die SDO Nachricht zu senden.
Wenn das nicht klappt wurde mir empfohlen mich mit der CANUSER_SDODOWNLOAD Bibliothek zu beschäftigen um das Gerät manuell zu parametrieren.
Ok, ich habe das Problem gelöst. Die Geräte haben zwar die Parameter NodeID und Baudrate entgegen genommen, aber nicht im EEPROM gespeichert.
Über die Bibliothek CanUser_SDODownload muss man den Speicherbefehl manuell zum Gerät schicken. Dann klappts !