Frekvencny menic sunfar e300 - pocet polov motora

el_fuego333
Příspěvky: 617
Registrován: 10. 2. 2009, 6:21

26. 9. 2022, 4:44

Ahojte,
Mam menic Sunfar e300 2.2kw https://cdn.awsli.com.br/298/298780/arq ... 20e300.pdf
A v manuale v parametroch sa mi nedari najst pocet polov motora. Je tam podla otacok k frekvencii default 2 poly, ale ja mam vreteno 4-polove. Rad by som to nastavil tak, aby to ukazovalo korektne otacky, a tiez kvoli komunikacii slinuxcnc rs485. Dakujem za kazdu radu.

Ps: este som to nezapajal, je mozne, ze by si menic nejakym sposobom detekol motor sam? Dakujem.
Poloboh vetra a mora, hrdina mužov.. radikalny ultra heterosexual
Uživatelský avatar
Charon
Sponzor fora
Příspěvky: 5183
Registrován: 27. 7. 2019, 4:31
Bydliště: Praha

26. 9. 2022, 4:58

No taky to tam nikde nevidím, ale bylo to jenom rychločtení :D
Na hobíka to asi jde...
SM16A, FN20, 3E710B, CDC7-2, HO02, CO2laser, Fiber a tak
el_fuego333
Příspěvky: 617
Registrován: 10. 2. 2009, 6:21

26. 9. 2022, 5:49

To je prdel.. nedari sa mi najst ani parameter pre zobrazenie frekvencie vs otacky. Takze s tymto menicom sa pracuje asi len s frekvenciou. Bude sa dat linuxcnc nakonfigurovat tak, aby pracovalo cez rs485 s frekvenciou, nie s otackami vretena?
Poloboh vetra a mora, hrdina mužov.. radikalny ultra heterosexual
Mex
Příspěvky: 10288
Registrován: 6. 2. 2014, 10:29

26. 9. 2022, 6:03

On tam ten přepočet na otáčky asi ani nemá.
Je to ten nejjednodušší skalární měnič, takže tam stejně vztah mezi frekvencí a otáčkami je takový vachrlatý.
Tak je asi lepší zadávat a zobrazovat frekvenci, než nějaké virtuální otáčky.
A že by si měnič něco sám testoval, tak na to zapomeň (u měniče této třídy).

Je fajn, že má Modbus a navíc dobře popsaný.
Pokud toužíš po tom, úkolovat ho po lince v RPM a ne v Hz, tak si tam prostě hoď nějakou konstantu, kterou požadované otáčky vydělíš, aby ti vyšla frekvence. Pro 4-pól třeba 27.
Uživatelský avatar
zz912
Příspěvky: 1348
Registrován: 25. 5. 2008, 7:16

26. 9. 2022, 6:49

el_fuego333 píše: 26. 9. 2022, 5:49 To je prdel.. nedari sa mi najst ani parameter pre zobrazenie frekvencie vs otacky.
Stránka 34 prvni parametr?

V Linuxu doporučuji tento postup:
0 rozchodit motor bez LinuxuCNC
1 nakonfigurovat stroj v konfiguratoru a odškrtnout že chceš konfigurovat vreteno. Vřeteno si pak pořešíš v custom.hal
2 nastudovat problematiku halu

3 nastudovat komponenty mb2hal nebo clasicladder a rozchodit komunikaci po RS 485

4 prevedeni jednotek pomocí scale
http://linuxcnc.org/docs/stable/html/ma ... ale.9.html

5 v custom.hal pospojovat přes NET potřebné signály.
LinuxCNC - MESA 7i96
zz912.webnode.cz
Uživatelský avatar
zz912
Příspěvky: 1348
Registrován: 25. 5. 2008, 7:16

27. 9. 2022, 7:26

Mex píše: 26. 9. 2022, 6:03 Je fajn, že má Modbus a navíc dobře popsaný.
Z cvičných důvodů jsem se na to díval a moc moudrý z toho nejsem. Našel jsem nějaký example, jak to roztočit motor, ale tabulky funkcí tam nevidím.
sunfar_e300.jpg
Je tam hromada tabulek, které nevím na co jsou, ale nevidím nic co bych nacpal do mb2hal.
https://linuxcnc.org/docs/html/drivers/mb2hal.html

(To že to nevidím, neznamená, že to tam není)
LinuxCNC - MESA 7i96
zz912.webnode.cz
Mex
Příspěvky: 10288
Registrován: 6. 2. 2014, 10:29

27. 9. 2022, 9:41

Mně to přijde, že to tam je.
Na stránce 57 píšou, jak se tvoří číslo registru podle požadované funkce.

Pokud chceš zapsat trvalé nastavení parametru do EEPROM, tak tam dáš přímo číslo volby podle tabulky na straně 16.
Takže třeba akceleraci (funkce F0.5) bys zapsal do registru 0xf005.
Ale v praxi budeš spíš zapisovat ty parametry jen dočasně, tedy do RAM. Pak místo 'F' na začátku dáš nulu.
Takže bys akceleraci zapisoval do registru 0x0005.

No a pak jsou tam speciální čísla registrů pro základní ovládání jako start, stop, frekvence atd.
Ty začínají 0x01xx (opět na stránce 57).

Přijde mně to docela logicky vyřešené.
Uživatelský avatar
zz912
Příspěvky: 1348
Registrován: 25. 5. 2008, 7:16

27. 9. 2022, 11:56

Z toho jsem právě paf.
Na straně 16 například funkce F0.6 odpovídá Dec time
Na straně 57 stejná funkce 0x0006 odpovídá Jog running stop

Ten kdo vymýšlel modbus jasně nadefinoval funkce, které se mají na co používat:
# fnct_02_read_discrete_inputs (02 = 0x02)
# fnct_03_read_holding_registers (03 = 0x03)
# fnct_04_read_input_registers (04 = 0x04)
# fnct_06_write_single_register (06 = 0x06)
# fnct_15_write_multiple_coils (15 = 0x0F)
# fnct_16_write_multiple_registers (16 = 0x10)


Ten kdo vymýšlel HAL componentu mb2hal se držel toho, jak je protokol Modbus vymyšlen.
Pak přišli výrobci driverů, kteří se na vše vykašlali a zavedli si nějaké vlastní registry, kde jeden registr umí 10 věcí.

Když si vezmu desku pana Pouchy,
https://zz912.webnode.cz/quido-30-3/
tak ten má tři výstupy řešen takhle jednoduše:
[TRANSACTION_01]
FIRST_ELEMENT=0
NELEMENTS=3
MB_TX_CODE=fnct_15_write_multiple_coils
HAL_TX_NAME=output

a výsledek vypadá takto:
Papouch_output.jpg
Papouch_output.jpg (10.83 KiB) Zobrazeno 1257 x
Jednoduchý jak facka, jasný. Kdyby to bylo vřeteno, tak si dovedu představit, že tam nebude output.00 output.01 output.02 , ale bude tam vreteno-doprava vreteno-doleva vreteno-stop

Vůbec mě nějaký registry nezajímají a rovnou můžu přiřazené piny typu boolean spojovat s dalšími hal-piny.


S těmi registry mám pocit, že výrobci driveru vůbec nepochopili o čem Modbus je.
Nebo jsem to já kdo jede na dálnici v protisměru a říká si, že je tam těch blbců nějak moc?


A jak tedy v mb2hal vytvořit třeba transakci pro zapnutí vřetene?

Na stránce 57 jsem našel:
0x0001 FWD running startup

[TRANSACTION_00]
#------------------------------ tohle vím jak vyplnit
LINK_TYPE=serial
SERIAL_PORT=/dev/ttyS0
SERIAL_BAUD=9600
SERIAL_BITS=8
SERIAL_PARITY=none
SERIAL_STOP=2
SERIAL_DELAY_MS=50
MB_SLAVE_ID=1
#------------------------------


#------------------------------ a tady nevím
MB_TX_CODE=fnct_06_write_single_register
FIRST_ELEMENT=1
NELEMENTS=2
#------------------------------


#------------------------------ tohle vím jak vyplnit
HAL_TX_NAME=spindle-register
MAX_UPDATE_RATE=0.0
DEBUG=1
#------------------------------


Zapisování registru přes fnct_06_write_single_register se mi zdá jako škrábání pravou rukou za levým uchem.
Nevýhoda fnct_06_write_single_register je, že ve verzi LCNC 2.8 umí jen datový typ float (ve verzi 2.9 bude umět i integer), takže jsem ke vhodnému číslu došel jen stylem pokus omyl. Poté jsem musel toto float číslo propojit s hal componentou mux http://linuxcnc.org/docs/stable/html/ma ... ux8.9.html , abych se dostal hal piny typu boolean. Sice to pak už bude fungovat do konce životnosti toho driveru, ale to nastavování je porod.

Pak lze Modbus řídit komponentou classicladder
http://linuxcnc.org/docs/stable/html/ma ... der.9.html
ale to je jak vzít na kulomet na vrabce.

Třetí možností je napsat si vlastní komponentu pro konkrétní vřeteno, ale tomu se snažím vyhnout, ať si majitel stroje nemusí řešit kompilaci takovéto komponenty, při výměně PC.
LinuxCNC - MESA 7i96
zz912.webnode.cz
Mex
Příspěvky: 10288
Registrován: 6. 2. 2014, 10:29

27. 9. 2022, 2:11

Hele, u nás v Brně se jezdí v opačném pruhu i v tunelech. Tak proč ne i po dálnici. ;-)

Modbus pracuje buď s bity (pak jim říká třeba coils), nebo s registry.
Ty bitové vstupy/výstupy se hodí jen pro triviální ovládání. Kdežto zápis a čtení registru mi přijde takové celkem normální.
Jen málokdy si vystačím s jediným bitem.
U jednoduché I/O desky to možná jde, ale i tady by se zřejmě občas hodilo zapsat třeba 16 výstupů najednou jako jeden registr, aby se všechny výstupy nastavily najednou a ne postupně s nedefinovatelným zpožděním mezi jednotlivými výstupy.

Tady ten měnič jede přes registry.
Máš pravdu, že základní funkce jako START a STOP by mohly být bitově. Ale prostě nejsou.

Ten příklad s F0.6, co jsi popisoval, podle mě v rozporu není.
Nastavení decelerace zapíše do registru 0xf006 nebo 0x0006 hodnotu toho zpomalení. Podle tabulky na straně 16.
Na straně 57 jsou popsány kódy, které jsou coby hodnota zapisované do registru 0x1001. Takže tady to 0x0006 není číslo registru, ale obsah registru.

Že HAL s oblibou používá float je věc, která mi vždycky vadila. Když jsem si psal vlastní komponenty, tak jsem je dělal zásadně jako integer a napsal si konverzní funkce z a do float.
U mě je to dáno tím, že jsem začínal programovat na slabých strojích, kde operace ve floatu byly pomalé. Dneska už to není tak kritické, moderní procesory zpracovávají float skoro stejně rychle jako integer. Ale starého psa...
Uživatelský avatar
zz912
Příspěvky: 1348
Registrován: 25. 5. 2008, 7:16

27. 9. 2022, 3:12

Mex píše: 27. 9. 2022, 2:11 Na straně 57 jsou popsány kódy, které jsou coby hodnota zapisované do registru 0x1001. Takže tady to 0x0006 není číslo registru, ale obsah registru.
Položím kontrolní otázku jestli jsem to dobře pochopil. Mohlo by být v tabulce na straně 16 takovéto doplnění?
Označení registru.png
Nebo zase plancu hrušky s jabkama?

Dále bych poprosil o vysvětlení:
Function
parameter(1)
High order as function code unit number, and low order as function code tab.
E.g., F1.11, the register addr. is F10B.

Monitor
parameter
High order as 0xD0, and low order as monitor tab. E.g., d.12, the register
addr. is D00C.


Nechápu co mi tím autor říká.
LinuxCNC - MESA 7i96
zz912.webnode.cz
Mex
Příspěvky: 10288
Registrován: 6. 2. 2014, 10:29

27. 9. 2022, 4:14

K té doplněné tabulce: vím, jak jsi to myslel.
Ale správnější by asi bylo G0.1. Tedy po "odečtení " znaku 'F' by z toho vyšlo 0x1001.
To F100.1 by se zakódovat nedalo. Ta část F100 se musí zadat jako 1 byte, a to by nešlo.
Ale to je jen taková hříčka. V reálu prostě do registru 0x1001 pošleš příkaz a měnič podle toho zapanáčkuje.

S tím kódováním 0xFxxx je to jasné, ne?
V prvním byte mají číslo sekce (třeba 0xF1, 0xF3 atd., případně 0x01 nebo 0x03 při zápisu jen do RAM). Ne druhém byte pak číslo služby v dané sekci.
Tedy třeba 0x07 pro parametr 0xF3.7. Viz tabulka od strany 16.

Ale tím umíš parametry jen nastavit.
Aby sis mohl přečíst aktuální stav měniče, tedy některý z parametrů z tabulky na straně 14, tak zavoláš čtení registru číslo 0xD0xx, kde to xx je číslo daného parametru. Například teplotu měniče bys přečetl z registru 0xD00B.
el_fuego333
Příspěvky: 617
Registrován: 10. 2. 2009, 6:21

27. 9. 2022, 5:49

Tak som dnes rozbalil balicek, kde bol menic, ze ho skusim zapojit a cakalo ma male prekvapenie. Tam, kde by mal byt konektor pre rs485 je len prazdna diera. Takze moj model menica to nepodporuje. Asi mozem zabudnut na ovladanie cez linuxcnc…
Poloboh vetra a mora, hrdina mužov.. radikalny ultra heterosexual
Uživatelský avatar
zz912
Příspěvky: 1348
Registrován: 25. 5. 2008, 7:16

27. 9. 2022, 5:53

A jakym způsobem to tedy ridit lze? Aspoň +/- 10V? Co máš za kartu k tomu Linuxu?
LinuxCNC - MESA 7i96
zz912.webnode.cz
Mex
Příspěvky: 10288
Registrován: 6. 2. 2014, 10:29

27. 9. 2022, 6:05

Z LinuxCNC vytáhnout PWM a nějaký převodník PWM/0-10V.
Něco jako je třeba tohle:
https://www.laskakit.cz/prevodnik-pwm-na-napeti-0-10v/
Nebo si ho postavit.

Ale ještě bych se podíval dovnitř měniče, jestli tam třeba ta RS485 není. A jen není vytažená ven.
Je klidně možné, že dělají jen jednu verzi elektroniky.
el_fuego333
Příspěvky: 617
Registrován: 10. 2. 2009, 6:21

27. 9. 2022, 7:11

zz912 píše: 27. 9. 2022, 5:53 A jakym způsobem to tedy ridit lze? Aspoň +/- 10V? Co máš za kartu k tomu Linuxu?
Mam to pripojene paralelnym portom na starom pc.
Poloboh vetra a mora, hrdina mužov.. radikalny ultra heterosexual
Odpovědět

Zpět na „Ostatní elektronika“