Na hali produkcyjnej posiadamy szereg silników z falownikami Lenze 8400 TopLine (większość typ E84AVTCE5512SX0), które obecnie przez CAN komunikują się z HMI.
Chcielibyśmy móc podłączyć je pod komputer PC, sterować np. z LinuxCNC.
Wydaje się, że istnieje możliwość rozmawiania z falownikami po CANopen zgodnie z DS301. Czy ktoś spotkał się z takim sterowaniem?
Jak CAN podłączyć pod PC (jaki konwerter CAN - USB/EtherCAT)? Czy spotkał ktoś sterownik (program) HAL do DS301 lub coś zgodnego?
Czy jest sens nad tym pracować, może taniej jest zmienić napęd?
Osie na serwomechanizmach. Sterowanie po CANopen i DS301
-
Autor tematu - Nowy użytkownik, używaj wyszukiwarki
- Posty w temacie: 1
- Posty: 2
- Rejestracja: 03 lis 2017, 20:42
- Lokalizacja: Talin
-
- Nowy użytkownik, używaj wyszukiwarki
- Posty w temacie: 1
- Posty: 1
- Rejestracja: 14 paź 2021, 12:04
- Lokalizacja: Radzymin
- Kontakt:
Re: Osie na serwomechanizmach. Sterowanie po CANopen i DS301
Cześć,
Odkopuję temat po latach żeby dopytać się czy w końcu coś zadziałało. Kilka informacji dla potomnych, jak by trzeba było w przyszłości coś z podobnym przypadkiem zrobić.
Żeby spiąć napędy/peryferia komunikujące się po CAN do komputera potrzebny jest adapter/karta komunikacyjna. Można wybierać z markowych niemców lub bardziej popularnych (konsumenckich) sprzętów. W sklepach jest tego całkiem dużo. To, na co warto zwrócić uwagę to w jaki sposób oprogramowanie po stronie komputera powinno komunikować się z adapterem.
Jeśli mówimy o Linux to najlepiej jest szukać karty/adaptera, który jest zgodny z socketcan. Pod linuxem SocketCAN jest tym, czym "stos sieciowy" i pozwala on na komunikację z różnymi adapterami sprzętowym i kartami CAN przy użyciu jednolitego API.
Z tego co udało mi się sprawdzić to linuxcnc wciąż nie dorobił się obsługi CAN (odpowiedniej biblioteki HAL) także podejrzewam że temat u kolegi umarł śmiercią naturalną. Inna opcja to spięcie przez biblioteki - CAN <> python <> linuxcnc.
Co do przejścia na EtherCAT - fizycznie ethercat to inne medium transmisyjne mimo wykorzystania tej samej terminologii (SDO/PDO). W praktyce CoE oznacza CANopen over EtherCAT, czyli komunikaty CANopen są pakowane w komunikaty EtherCAT. Oznacza to, że z ethercat trzeba później przejść na CAN przez odpowiedni adapter (śledź) sterownika lub moduł I/O (wyspę).
Komunikacyjne są dwie opcje. Jeśli jest sterownik PLC zgodny z EtherCAT (komputer -> PLC -> napędy) to można spokojnie ze sterownikiem komunikować się po TCP (ethernet), tak aby to on koordynował silniki. Jeśli nie ma sterownika (komputer -> wyspa -> napędy) to wówczas, jeśli w grę wchodzi kontrola, potrzebna jest karta, która obsłuży to w sposób właściwy + API i oczywiście oprogramowanie które to ogarnie.
Co do samego CANopen - trzeba poszukać dokumentacji producenta jak komunikować się z nimi. CANopen to tylko sposób układania komunikatów na magistrali CAN. Wciąż trzeba znać adresy i rejestry oraz co raportuje napęd lub enkoder z powrotem. Aby to wszystko ułatwić na bazie CANopen są publikowane profile. Dla napędów jest to CiA 402: https://www.can-cia.org/de/can-knowledg ... en/cia402/. Jeśli urządzenia są zgodne z w/w opisem to można je parametryzować i sterować przy pomocy dowolnego sterownika, który ma obsługę CiA 402.
Odkopuję temat po latach żeby dopytać się czy w końcu coś zadziałało. Kilka informacji dla potomnych, jak by trzeba było w przyszłości coś z podobnym przypadkiem zrobić.
Żeby spiąć napędy/peryferia komunikujące się po CAN do komputera potrzebny jest adapter/karta komunikacyjna. Można wybierać z markowych niemców lub bardziej popularnych (konsumenckich) sprzętów. W sklepach jest tego całkiem dużo. To, na co warto zwrócić uwagę to w jaki sposób oprogramowanie po stronie komputera powinno komunikować się z adapterem.
Jeśli mówimy o Linux to najlepiej jest szukać karty/adaptera, który jest zgodny z socketcan. Pod linuxem SocketCAN jest tym, czym "stos sieciowy" i pozwala on na komunikację z różnymi adapterami sprzętowym i kartami CAN przy użyciu jednolitego API.
Z tego co udało mi się sprawdzić to linuxcnc wciąż nie dorobił się obsługi CAN (odpowiedniej biblioteki HAL) także podejrzewam że temat u kolegi umarł śmiercią naturalną. Inna opcja to spięcie przez biblioteki - CAN <> python <> linuxcnc.
Co do przejścia na EtherCAT - fizycznie ethercat to inne medium transmisyjne mimo wykorzystania tej samej terminologii (SDO/PDO). W praktyce CoE oznacza CANopen over EtherCAT, czyli komunikaty CANopen są pakowane w komunikaty EtherCAT. Oznacza to, że z ethercat trzeba później przejść na CAN przez odpowiedni adapter (śledź) sterownika lub moduł I/O (wyspę).
Komunikacyjne są dwie opcje. Jeśli jest sterownik PLC zgodny z EtherCAT (komputer -> PLC -> napędy) to można spokojnie ze sterownikiem komunikować się po TCP (ethernet), tak aby to on koordynował silniki. Jeśli nie ma sterownika (komputer -> wyspa -> napędy) to wówczas, jeśli w grę wchodzi kontrola, potrzebna jest karta, która obsłuży to w sposób właściwy + API i oczywiście oprogramowanie które to ogarnie.
Co do samego CANopen - trzeba poszukać dokumentacji producenta jak komunikować się z nimi. CANopen to tylko sposób układania komunikatów na magistrali CAN. Wciąż trzeba znać adresy i rejestry oraz co raportuje napęd lub enkoder z powrotem. Aby to wszystko ułatwić na bazie CANopen są publikowane profile. Dla napędów jest to CiA 402: https://www.can-cia.org/de/can-knowledg ... en/cia402/. Jeśli urządzenia są zgodne z w/w opisem to można je parametryzować i sterować przy pomocy dowolnego sterownika, który ma obsługę CiA 402.
-
- Specjalista poziom 1 (min. 100)
- Posty w temacie: 1
- Posty: 113
- Rejestracja: 16 paź 2017, 15:21
- Lokalizacja: Poznań
Re: Osie na serwomechanizmach. Sterowanie po CANopen i DS301
Najtańsza a porządna wersja to Linux + IGH Etherlab + któraś ze wspieranych karta PCI 100M Ethernet, 5 zł na allegro.
Niby tak, w praktyce często producent ma jakieś parametry których profil CiA 402 nie przewidział. Widzę że zazwyczaj producenci dodają jakąś swoją apkę do konfiguracji swoich sterowników, a potem już można sobie nimi sterować z twincata, igh czy co tam jest używane