YL620-A modbus linuxcnc

Dyskusje dotyczące działania obsługi programu LinuxCNC

zbysob
Sympatyk forum poziom 2 (min. 50)
Sympatyk forum poziom 2 (min. 50)
Posty w temacie: 27
Posty: 68
Rejestracja: 26 lip 2017, 15:04
Lokalizacja: Szczecin

Re: YL620-A modbus linuxcnc

#81

Post napisał: zbysob » 21 mar 2021, 08:21

Nie bardzo łapię o co Ci chodzi z odczytem . Zapisujesz uzywając funkcji 06 a odczytujesz funkcją 03 a składnia w sumie taka sama podajesz pierwszy rejestr do odczytu i ilość rejesrów do odczytania czyli dla YL620 odczyt 8192 i 5 kolejnych rejestrów to jest [01][03][20][00][00][05] CRC i jedynie musisz znaleźć w instrukcji adresy tego co chcesz odczytać w zapisie HEX. Oczywiście jak chcesz odczytać jeden rejestr to w ilości wpisujesz [00][01]a te rejestry sa dwubajtowe bo 03 to odczyt rejestru .
MODBUS – warstwa łącza danych- pole kodu funkcji - przykładykod kod (hex) opis .1 01hodczyt wyjść bitowych2 02hodczyt wejść bitowych3 03hodczyt n rejestrów4 04hodczyt n rejestrów wejściowych5 05hzapis 1 bitu6 06hzapis 1 rejestru© PSI 2015366 06hzapis 1 rejestru7 07hodczyt statusu urządzenia slave8 08htest diagnostyczny150Fhzapis n bitów1610hzapis n rejestrów1711hidentyfikacja urządzenia slave128-255 80h-FFh zarezerwowane dla odpowiedzi błędnych.
To spis wszystkich funkcji modbus ale nie zawsze implementacja funkcji w falowniku odpowiada standardowi. I tak 01 dla YL620 powoduje bład w programie Vfdmod.

Dodane 38 minuty 53 sekundy:
Np dla YL620 (wiem że masz zepsuty ale idea powinna działać dla innych tez) mamy tabelę "Modbus keep register address" i tam mamy adresy od 0x2000 kolejne 75 rejestrów. Aby nie było za łatwo są numerowane jako hex i jako dziesiętne i hex kończą się na 0x2005 (8197) a potem tylko dzisiętne . Używając ModbusMAT można odczytac kolejne 29 rejestrów wpisując jako funkcję 03-Read Holding Register , Offset :8193 (wartość o jeden większą niż chcemy zacząć czytać bo minimalny offset jest 1) a Length : 29 i zobaczymy odczyt rejestrów przez ModbusMAT numerowanych jako 48193 do 48221 (nasz odczyt 48193 odpowiada rejestrowi falownika 8192 czyli nasz Start/Stop itd a 48194 to nasze obroty 8193).Podanie ilości większej jak 29 powoduje bład "Illegel data Valeu!"

Dodane 1 godzina 41 minuty 11 sekundy:
A tak btw to jak w szybki sposób z poziomu linuxcnc wysłać dane do falownika po modbus rtu ?
W Dos jest program modpoll ale nie znalazłem czegoś odpowiedniego dla linux'a



Awatar użytkownika

adam Fx
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 14
Posty: 5562
Rejestracja: 04 lip 2004, 16:03
Lokalizacja: Gliwice

Re: YL620-A modbus linuxcnc

#82

Post napisał: adam Fx » 21 mar 2021, 12:53

zbysob pisze:nie znalazłem czegoś odpowiedniego dla linux'a
może https://github.com/riptideio/pymodbus
sorki za wszystkie błędy ... (dyslektyk) :?
Zobacz moje filmy http://www.youtube.com/user/pokachontass/videos


Autor tematu
szatri
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 44
Posty: 235
Rejestracja: 23 lut 2011, 15:12
Lokalizacja: PL

Re: YL620-A modbus linuxcnc

#83

Post napisał: szatri » 21 mar 2021, 19:31

Obrazek
O te parametry do wpisania w CL mi się rozchodziło, ale udało się, jest pełna regulacja/komunikacja w pełnym zakresie obrotów choć ciągle błąd komunikacji wywala.
Pozostaje teraz kosmetyka i bajery do wyświetlania.

Dodane 13 minuty 14 sekundy:
Ale jaja, jak wciskam guzikami obroty na ekranie to pokazuje ok, ale jak wpisze w mdi lub z programu to już przekłamuje. WTF??

Dodane 3 minuty 30 sekundy:
Przykładowo: 40hz to 2400 obr i tak mi pokazuje jak ręcznie wyklinam, ale jak wpisze w MDI 2400obr to już jest 48hz (2880obr) m3 i m4 to samo robi


Autor tematu
szatri
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 44
Posty: 235
Rejestracja: 23 lut 2011, 15:12
Lokalizacja: PL

Re: YL620-A modbus linuxcnc

#84

Post napisał: szatri » 23 mar 2021, 16:10

Dziwne, dziś działa poprawnie, zarówno z guzików jak i z mdi poprawnie kręci, ale program testowy od Adama coś nie puszcza dalej.

Awatar użytkownika

adam Fx
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 14
Posty: 5562
Rejestracja: 04 lip 2004, 16:03
Lokalizacja: Gliwice

Re: YL620-A modbus linuxcnc

#85

Post napisał: adam Fx » 23 mar 2021, 16:56

szatri pisze:ale program testowy od Adama coś nie puszcza dalej.
podejrzyj czy obr. zadane zgrywają się z info zwrotna z falownika o obr. osiągniętych - ja np. zmieniłem silnik a zapomniałem zmienić dane we wzorze i zadawałem 1500obr. co powinno być równe 50Hz a w rzeczywistości 1500 obr. w falowniku to było 85Hz

w razie czego można wyłączyć funkcje czekania na obr.
#czeka na osiagniecie obrotow zadanych
Set motion.spindle-at-speed

#net spindle-cmd-rpm-abs near.speed.in1

#net spindle-speed-in classicladder.0.floatout-02 => near.speed.in2

#setp near.speed.scale 1.05

#net spindle-at-speed <= near.speed.out
#------
sorki za wszystkie błędy ... (dyslektyk) :?
Zobacz moje filmy http://www.youtube.com/user/pokachontass/videos


Autor tematu
szatri
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 44
Posty: 235
Rejestracja: 23 lut 2011, 15:12
Lokalizacja: PL

Re: YL620-A modbus linuxcnc

#86

Post napisał: szatri » 23 mar 2021, 17:05

Obr niby już się zgadzają z falownikiem ale czy ten wzór co się wpisuje to działa w 2 strony? Tzn na żądanie obr i odczyt aktualnych? Bo w moim przypadku obr zadaje się procentowo (-100-0-100)%
Obr zadane w parametrze 2000 (Hex) odczyt w 3005 (Hex)


zbysob
Sympatyk forum poziom 2 (min. 50)
Sympatyk forum poziom 2 (min. 50)
Posty w temacie: 27
Posty: 68
Rejestracja: 26 lip 2017, 15:04
Lokalizacja: Szczecin

Re: YL620-A modbus linuxcnc

#87

Post napisał: zbysob » 25 mar 2021, 07:36



Dzięki Adam. Znalazłem program modpoll (https://www.modbusdriver.com/modpoll.html - wersja dla win z konsoli albo linux'a) i jakoś to zadziałało. Jak zwykle opis użycia jest dla tych co już wiedzą o co kaman zatem dwa dni mi zajęło wykapowanie co i jak wpisać (pomimo że help jest jak najbardziej) a jeden dzień zanim dowiedziałem się jak uruchomić skrypt pythona z konsoli :)
Niestety modbus dalej jest ziemią nieznaną i co rusz robi coś czego nie rozumiem albo nie przewidziałem. Do testowego falownika założyłem ekranowane kable zarówno po stronie prądowej jak i po stronie połączenia modbus. Efekt jest taki że jak włączą się obroty silnika to przestaje reagować klawiatura (podłączona kablem na usb) i trudno sterować czymkolwiek :) . Chyba faktycznie komp z PS2 będzie rozwiązaniem. Nie do końca wiem jak podłączyć ekran z kabli . Na razie podłączyłem pod żółto-zielony kabel w gniazdku czyli tzw zero ochronne każdy ekran z jednej strony . Jak sprawdzić i czym zakłócenia - czy są i jak wielkie. Bo że coś jest nie halo to wiem ale nie wiem jak to sprawdzić.


Autor tematu
szatri
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 44
Posty: 235
Rejestracja: 23 lut 2011, 15:12
Lokalizacja: PL

Re: YL620-A modbus linuxcnc

#88

Post napisał: szatri » 25 mar 2021, 09:43

zbysob pisze:Nie do końca wiem jak podłączyć ekran z kabli

U mnie ekrany podłączone są tez pod bolec w gniazdku (w starym budownictwie nie zawsze było uziemienie, a jak było to często pod zero podłączone), ale dodatkowo mam wyprowadzony kabel do instalacji C.O. lub wody. Nie raz jak się naelektryzuje od ubrania to mnie "kopnie" wiec chyba działa uziemienie. (Tak wiem, nie jest to miara "jakości" uziemienia)

Kabel od rs jest podłączony po stronie falownika do gnd (9100), a w yl620 jest do com (jak dobrze pamiętam), może tu jest problem?


Autor tematu
szatri
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 44
Posty: 235
Rejestracja: 23 lut 2011, 15:12
Lokalizacja: PL

Re: YL620-A modbus linuxcnc

#89

Post napisał: szatri » 25 mar 2021, 13:23

adam Fx pisze:#czeka na osiagniecie obrotow zadanych
Set motion.spindle-at-speed

#net spindle-cmd-rpm-abs near.speed.in1

#net spindle-speed-in classicladder.0.floatout-02 => near.speed.in2

#setp near.speed.scale 1.05

#net spindle-at-speed <= near.speed.out
#------

Jak nie # tego "Set motion.spindle-at-speed" to się nie uruchomi, jak jest z # i się uruchomi to program zatrzyma się przy pierwszej komendzie z m3, skoleji jak # wszystkie te linie to jest brak kontroli na obrotami. (nie czeka na osiągniecie zadanych)

Awatar użytkownika

adam Fx
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 14
Posty: 5562
Rejestracja: 04 lip 2004, 16:03
Lokalizacja: Gliwice

Re: YL620-A modbus linuxcnc

#90

Post napisał: adam Fx » 25 mar 2021, 16:03

szatri pisze:(nie czeka na osiągniecie zadanych)
tak bo jak zakomentujesz to czekać nie będzie
kod porównuje wartość zadaną net spindle-cmd-rpm-abs near.speed.in1 z wartością odczytaną classicladder.0.floatout-02 (w moim wypadku są to obr. odczytane z falownika https://youtu.be/8fDxSzONBS0?t=536)
Podglądaj w tej tabelce czy wartość %IF1 (zadane w np. MDI) jest równa obrotom %W2 (odczytane z falownika) które zadałeś https://youtu.be/OJap9CVGacg?t=1978 (wydaje mi się ze dość jasno pokazuje w tym fragmencie która wartość jest która )

czy twój falownik podaje osiągnięte obroty czy Hz bo to to różniąca! (mój podaje obroty ).. jak widać mój podaje obroty więc porównuje z obrotami zadanymi w MDI ... gdyby jednak podawał Hz to porównywał bym wartość %W1 z %W2 bo wtedy pod %W1 będę miał Hz (wynik ze wzoru - obroty zadane np. w MDI przeliczone na Hz) w w %W2 wartość aktualnego Hz na jakim jest falownik

Dodane 6 minuty 59 sekundy:
albo jak nie kumasz wrzuć zrzut ekranu z zadanymi obrotami i otwartymi tabelkami w CL
sorki za wszystkie błędy ... (dyslektyk) :?
Zobacz moje filmy http://www.youtube.com/user/pokachontass/videos

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „LinuxCNC (dawniej EMC2)”