Ovládání vřetena přes RS485

Mex
Příspěvky: 10287
Registrován: 6. 2. 2014, 10:29

18. 1. 2021, 9:54

Thomeeque píše: 18. 1. 2021, 9:21 Takže i konktétně pod RTAI Debian 7 Wheezy?
Ne. Pod Linuxem obecně, ne pod LinuxCNC.
Používám Linux k mnoha jiným účelům, a tam je občas RS485 zapotřebí.

Mám dokonce stejný měnič jako Ty (stejně jako Ty jsem ho kdysi koupil od robokopa). Asi bych někde našel i nějaký malý motor a mohl bych si udělal na stole testovací sestavu. Nějaký LinuxCNC se mi tu taky povaluje.
Tak kdybys to ani po velkém boji nerozjel, mohl bych zkusit postavit něco podobného a zkusit to rozjet. Nakonec aspoň bych pak taky možná konečně na své frézce zprovoznil řízení vřetene po Modbusu. Kovářova kobyla...
Uživatelský avatar
zz912
Příspěvky: 1355
Registrován: 25. 5. 2008, 7:16

18. 1. 2021, 10:07

Koukám na rozdíly:

Widle:
250 ms

Linux:
[SERIAL_DELAY_MS] [10]
LinuxCNC - MESA 7i96
zz912.webnode.cz
oscar
Příspěvky: 1190
Registrován: 2. 5. 2010, 8:50
Bydliště: Perníkovice

18. 1. 2021, 10:20

Thomeeque píše: 18. 1. 2021, 9:32 Zrovna jsem to zeditoval (pokus se Slave ID 1, žádná změna).

Jsem si jistý, že měnič má nastavené ID 11 a předpokládám, že je to to Slave ID v Linuxu.

Address ve Win program je adresa prvního elementu, který to má číst (40001, čtyřka se ve Win programu vynechává).
super. pozitivni.

mas nejakou fyzickou (multimetr, ledka) moznost zjistit jestli Ti to nejak cvici s tim seriakem?

[0B][03][00][02][00][01][25][60]
Waiting for a confirmation...
ERROR Connection timed out: select
Uživatelský avatar
Thomeeque
Příspěvky: 8912
Registrován: 30. 1. 2012, 10:20
Bydliště: Mimo ČR

18. 1. 2021, 10:29

Mex píše: 18. 1. 2021, 9:54
Thomeeque píše: 18. 1. 2021, 9:21 Takže i konktétně pod RTAI Debian 7 Wheezy?
Ne. Pod Linuxem obecně, ne pod LinuxCNC.
Používám Linux k mnoha jiným účelům, a tam je občas RS485 zapotřebí.
Mě by bodlo, pokud by to někdo potvrdil přesně pod tímto Linuxem. I tak dík!

zz912 píše: 18. 1. 2021, 10:07 Koukám na rozdíly:

Widle:
250 ms

Linux:
[SERIAL_DELAY_MS] [10]
Díky moc, zkusím.

oscar píše: 18. 1. 2021, 10:20 super. pozitivni.

mas nejakou fyzickou (multimetr, ledka) moznost zjistit jestli Ti to nejak cvici s tim seriakem?

[0B][03][00][02][00][01][25][60]
Waiting for a confirmation...
ERROR Connection timed out: select
Určitě mám, ale k tomu se dostanu až večer. Dík za tip, to je hodně dobrý nápad!

Jinak, bojím se, že necvičí, viz další post (jen, co ho sepíšu :)).
mimooborová naplavenina • kolowratský zázrak™ • NPS • GCU • HirthCalc • ncDP.ino
Uživatelský avatar
Thomeeque
Příspěvky: 8912
Registrován: 30. 1. 2012, 10:20
Bydliště: Mimo ČR

18. 1. 2021, 10:33

Vyzkoušel jsem ten Modpoll Modbus Master Simulator - pro mou situaci zcela ideální nástroj, protože má Windows i Linux verzi. Pustil jsem ho se stejnými parametry v obou systémech. Ve Win si to povídá, v Linuxu ne :(

Kód: Vybrat vše

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

c:\Users\Tomas\Desktop\modpoll\win>modpoll -m rtu -a 11 -b 19200 -p none -s 2 -t 4:mod COM4
modpoll 3.9 - FieldTalk(tm) Modbus(R) Master Simulator
Copyright (c) 2002-2020 proconX Pty Ltd
Visit https://www.modbusdriver.com for Modbus libraries and tools.

Protocol configuration: Modbus RTU, FC3
Slave configuration...: address = 11, start reference = 1, count = 1
Communication.........: COM4, 19200, 8, 2, none, t/o 1.00 s, poll rate 1000 ms
Data type.............: 32-bit module 10000, output (holding) register table

-- Polling slave... (Ctrl-C to stop)
[1]: 500
-- Polling slave... (Ctrl-C to stop)
[1]: 500
-- Polling slave... (Ctrl-C to stop)
[1]: 500
-- Polling slave... (Ctrl-C to stop)
[1]: 500
-- Polling slave... (Ctrl-C to stop)
^C
c:\Users\Tomas\Desktop\modpoll\win>

Kód: Vybrat vše

tomas@debian-cnc-home:~$ sudo /home/tomas/Downloads/modpoll/linux_i386/modpoll -m rtu -a 11 -b 19200 -p none -s 2 -t 4:mod /dev/ttyUSB0 
modpoll 3.9 - FieldTalk(tm) Modbus(R) Master Simulator
Copyright (c) 2002-2020 proconX Pty Ltd
Visit https://www.modbusdriver.com for Modbus libraries and tools.

Protocol configuration: Modbus RTU, FC3
Slave configuration...: address = 11, start reference = 1, count = 1
Communication.........: /dev/ttyUSB0, 19200, 8, 2, none, t/o 1.00 s, poll rate 1000 ms
Data type.............: 32-bit module 10000, output (holding) register table

-- Polling slave... (Ctrl-C to stop)
Reply time-out!
-- Polling slave... (Ctrl-C to stop)
Reply time-out!
-- Polling slave... (Ctrl-C to stop)
Reply time-out!
-- Polling slave... (Ctrl-C to stop)
Reply time-out!
-- Polling slave... (Ctrl-C to stop)
Reply time-out!
-- Polling slave... (Ctrl-C to stop)
^Ctomas@debian-cnc-home:~$ 
mimooborová naplavenina • kolowratský zázrak™ • NPS • GCU • HirthCalc • ncDP.ino
Uživatelský avatar
zz912
Příspěvky: 1355
Registrován: 25. 5. 2008, 7:16

18. 1. 2021, 10:53

Zkusím výstřel do tmy:
nevytváří Ti to i /dev/ttyacm0 ?

S tím mívali problém borci co používali arduino pod Linuxem, ale nikdy jsem rozdíl mezi /dev/ttyacm0 a /dev/ttyUSB pořádně nestudoval.

Druhý pokus bych zkusil:
nastavit:

Kód: Vybrat vše

stty 19200 -F /dev/ttyUSB0 raw -echo
a až pak spustil modpoll

Edit:
Když jsem zápasil se sériovou komunikací já, tak mám poznatek, že tty si umí nastavit i něco co zapříčíní nekomunikaci s příkazem "cat" . Sedělo mi baudrate, počet bitů, parita, počet koncových bitů ale nic mi "cat" nevypislovalo. Pak jsem dal příkaz viz výše a znovu vše nasatvil a najednou "cat" začal fungovat.
Naposledy upravil(a) zz912 dne 18. 1. 2021, 12:19, celkem upraveno 3 x.
LinuxCNC - MESA 7i96
zz912.webnode.cz
Uživatelský avatar
filla
Příspěvky: 3536
Registrován: 1. 12. 2013, 12:55
Bydliště: Brno
Kontaktovat uživatele:

18. 1. 2021, 11:39

ttyacm0 meli tusim ftdi chipy, ch340 uz prideluje ttyUSB, jeste me napadlo, jestli v linixu neni cislovani adre od 1, zatinco win od 0, nebo obracene
"do řiti se řítíme, ani o tom nevíme.."
Mex
Příspěvky: 10287
Registrován: 6. 2. 2014, 10:29

18. 1. 2021, 11:56

Přidělování ttyACMx a ttyUSBx má historické kořeny z dob, kdy sériové rozhraní sloužilo hlavně pro telefonní a jiné modemy.
Dneska už to asi žádný moc reálný podklad nemá, a tak tvůrci různých driverů používají to nebo ono, podle toho, co se jim víc líbí.

Každopádně se ale vždy přidělí jen jediná položka. Tedy ttyUSBx nebo ttyACMx, nikdy ne obě najednou.
Takže je jasné, kterou v daném případě použít.
Uživatelský avatar
zz912
Příspěvky: 1355
Registrován: 25. 5. 2008, 7:16

18. 1. 2021, 12:12

Mex píše: 18. 1. 2021, 11:56 Každopádně se ale vždy přidělí jen jediná položka. Tedy ttyUSBx nebo ttyACMx, nikdy ne obě najednou.
Takže je jasné, kterou v daném případě použít.
Takže tu mou teorii, můžeme zavrhnout.
LinuxCNC - MESA 7i96
zz912.webnode.cz
Uživatelský avatar
Thomeeque
Příspěvky: 8912
Registrován: 30. 1. 2012, 10:20
Bydliště: Mimo ČR

18. 1. 2021, 12:37

Vytvořil jsem LED přípravek (dvě LEDky anti-paralelně plus 10k v sérii):


(bliká to pravidelně, jen to kamera občas nechytne)

Překvapivě to bliká i v Linuxu (nemám na videu, ale můžete mi věřit), což jsem přiznávám nečekal, přijde mi to tím pádem ještě záhadnější.

stty bohužel bez vlivu:

Kód: Vybrat vše

tomas@debian-cnc-home:~$ sudo stty 19200 -F /dev/ttyUSB0 raw -echo
[sudo] password for tomas: 
tomas@debian-cnc-home:~$ sudo /home/tomas/Downloads/modpoll/linux_i386/modpoll -m rtu -a 11 -b 19200 -p none -s 2 -t 4:mod /dev/ttyUSB0
modpoll 3.9 - FieldTalk(tm) Modbus(R) Master Simulator
Copyright (c) 2002-2020 proconX Pty Ltd
Visit https://www.modbusdriver.com for Modbus libraries and tools.

Protocol configuration: Modbus RTU, FC3
Slave configuration...: address = 11, start reference = 1, count = 1
Communication.........: /dev/ttyUSB0, 19200, 8, 2, none, t/o 1.00 s, poll rate 1000 ms
Data type.............: 32-bit module 10000, output (holding) register table

-- Polling slave... (Ctrl-C to stop)
Reply time-out!
-- Polling slave... (Ctrl-C to stop)
Reply time-out!
-- Polling slave... (Ctrl-C to stop)
Reply time-out!
-- Polling slave... (Ctrl-C to stop)
Reply time-out!
-- Polling slave... (Ctrl-C to stop)
Reply time-out!
-- Polling slave... (Ctrl-C to stop)
^Ctomas@debian-cnc-home:~$ 
:( Ale možná to nějaká taková ptákovina bude..

Zkusil jsem i adresu 10 (a znovu 1 a 0 a 1.1 /tak je to na displayi měniče/ a dokonce i 12 :roll:), také nic.

Přesto díky všem, T.

PS: ttyACMx tam skutečně nemám.
Naposledy upravil(a) Thomeeque dne 18. 1. 2021, 12:44, celkem upraveno 1 x.
mimooborová naplavenina • kolowratský zázrak™ • NPS • GCU • HirthCalc • ncDP.ino
Uživatelský avatar
packa
Příspěvky: 6943
Registrován: 7. 2. 2007, 6:42
Bydliště: Královehradecký kraj

18. 1. 2021, 12:43

a na nižší rychlosti by to nejelo ?
Mex
Příspěvky: 10287
Registrován: 6. 2. 2014, 10:29

18. 1. 2021, 12:47

Čísla Modbus slave jsou nezávislá na použitém systému. Takže 11 bude vždy 11.
Ale je takovým pěkným zvykem používat číslo stanice 1 v případě, kdy je v síti jediný slave. Samozřejmě to musí fungovat i s jinými, ale stejně bych si tam tu jedničku dal. Nastavuje se to zřejmě například z panelu jako jeden z parametrů měniče.

Až Tě to přestane bavit, tak dej vědět a já začnu skládat testovací sestavu.
Uživatelský avatar
zz912
Příspěvky: 1355
Registrován: 25. 5. 2008, 7:16

18. 1. 2021, 12:52

A co Ti to vypíše, když dáš jen:

Kód: Vybrat vše

stty -F /dev/ttyUSB0
?
LinuxCNC - MESA 7i96
zz912.webnode.cz
Uživatelský avatar
Thomeeque
Příspěvky: 8912
Registrován: 30. 1. 2012, 10:20
Bydliště: Mimo ČR

18. 1. 2021, 1:15

packa píše: 18. 1. 2021, 12:43 a na nižší rychlosti by to nejelo ?
Vidíš, to mne nenapadlo. Zkusil jsem nastavit 2400bd (minimum měniče), ověřil jsem to ve Win, v Linuxu žádná změna. Takže ani tudy cesta nevede.

Mex píše: 18. 1. 2021, 12:47 Čísla Modbus slave jsou nezávislá na použitém systému. Takže 11 bude vždy 11.
Ale je takovým pěkným zvykem používat číslo stanice 1 v případě, kdy je v síti jediný slave. Samozřejmě to musí fungovat i s jinými, ale stejně bych si tam tu jedničku dal. Nastavuje se to zřejmě například z panelu jako jeden z parametrů měniče.

Až Tě to přestane bavit, tak dej vědět a já začnu skládat testovací sestavu.
U tohoto měniče je to defaultně na 11, tak jsem to nechal.

EDIT: Změnil jsem to na 1, ověřil ve Win, v Linuxu žádná změna.

Já toho teď musím nechat, takže jestli chceš převzít štafetu, vůbec se nebudu zlobit :)

zz912 píše: 18. 1. 2021, 12:52 A co Ti to vypíše, když dáš jen:

Kód: Vybrat vše

stty -F /dev/ttyUSB0
?

Kód: Vybrat vše

tomas@debian-cnc-home:~$ sudo stty -F /dev/ttyUSB0
[sudo] password for tomas: 
speed 2400 baud; line = 0;
min = 0; time = 0;
-brkint -icrnl -imaxbel
-opost
-isig -icanon -iexten -echo -echoe -echok
tomas@debian-cnc-home:~$ 
Dík, T.
mimooborová naplavenina • kolowratský zázrak™ • NPS • GCU • HirthCalc • ncDP.ino
Uživatelský avatar
zz912
Příspěvky: 1355
Registrován: 25. 5. 2008, 7:16

18. 1. 2021, 2:09

Zkus si ve vedlejsim bashi nechat bezet:

Kód: Vybrat vše

cat /dev/ttyUSB0
a zaroven spust ten svuj modpoll.

Zapomněl jsem na all, tak to prosím zkus znovu:

Kód: Vybrat vše

stty -F /dev/ttyUSB0 -a 
manuál k stty:
https://man7.org/linux/man-pages/man1/stty.1.html

Zároveň důležitá informace je, že příkaz stty vypisuje současný stav nastavení UARTu. Takže je důležité ho zpustit v okamžiku, kdy něco děláš v nějakým programu. Ono když třeba spustíš Arduino IDE, tak se baud sám přepne na 9600 a když nahráváš program do Arduina tak se sám přepne na 115 000 (teď to číslo nevím přesně) a když se program dohraje, tak se přepne nazpátek na 9600.
LinuxCNC - MESA 7i96
zz912.webnode.cz
Odpovědět

Zpět na „LinuxCNC - drive pod nazvem EMC2“