PDA

Zobacz pełną wersję : USB -> COM problem



Rafał_Sz
02-11-2007, 14:23
Witam!
Sprawa wygląda tak:
Posiadam frezarkę CNC Roland Modela. Jest to dosyć nowy wytwór, jednak nie posiada żadnego innego portu oprócz COM. Jak ustrojstwo podpinam do komputera stacjonarnego, wyposażonego w COMy zainstalowane pod PCI (brak na płycie głównej) wszystko jest w porządku. Jednak miałem potrzebę podłączenia frezarki do notebooka. Jako, że przenośniak nie ma COMów, dokupiłem emulator COM pod USB. I nastąpiła porażka, jakaś tam transmisja idzie (można ustawić stół i wrzeciono), ale w przypadku właściwej transmisji (tj. rozpoczęcia frezowania) frezarka wykonuje takie bzdury, że się śmiać i płakać chce...
Porty ustawiałem na wszystkie możliwe sposoby, instalowałem najświeższe sterowniki i nic to nie dało.

Wiecie może o jakimś patencie na takie emulatory, czy po prostu mogę to sobie w buty wsadzić?

pozdrawiam rsz

MsbS
02-11-2007, 14:30
Kiedyś próbowałem podłączać COMową mychę do portu PS/2 (przez przejściówkę), bezskutecznie. Z tego co wiem przejściówki COM/USB też nie gwarantują 100% kompatybilności...
Skoro to laptok, to może lepiej sprawdziłaby się karta PCMCIA z portami COM? Widziałem takie coś na Allegrze.

jacek.gold
02-11-2007, 14:41
Com czyli db 9-pinowe ma tych pinów 9 jak sama nazwa wskazuje a usb ma 4 ścieżki więc coś musi iść po wspólnych kanałach. No i tu może być problem

fIlek
02-11-2007, 14:43
Ja mam takie ustrojstwo - przejsciówka usb>com, ale nie mam z nią żadnych problemów. Używam jej między innymi do komunikacji z multimetrem i starą nawigacją - wszystko dyga bez problemu. Może to kwestia przejściówki, której używasz. Spróbuj z inną, w końcu to groszowa sprawa.

Yanluk
02-11-2007, 14:52
Ja mialem taka sama sytuacje z Vinyl Cutterem (nie wiem jak to przetlumaczyc na PL), pomoglo ustawienie predkosci wysyly na 9600 a odbior na cuterze 2 razy szybciej.

madburn
02-11-2007, 15:10
jacek.gold - ales wypalil :) usb i rs to sa serial - czyli szeroegwe - nie sa jednak zgodne

przejsciowka na USB dziala jak emulator COM - nastepuje zmapowanie virtualnego COMa do programiku/drivera - jesli chesz poslac cos na IRQ3 addr 3f8h na com1 czy cos w tym guscie to nie idzie to na spzet tylko do drivera - ten robi z tego ramki transmisyjne USB zrozumiale przez kontroler zamontowany w interfejsie - a ten rozpakowywuje te instrukcje i generuje sygnaly na zlaczu RS - ilosc drucikow nie ma tu nic do rzeczy - w koncu przejciowka IDE2USB zamienia 40(80) kabelkow na 2 (nie 4 - w usb sa 2 zasilania i 2 sygnalowe)

jak chesz sie zdziwic to poczytaj o transmisji single wire - leci na jednym drucie



fIlek - sprawdz : jakie napiecie daje przejsciowka ? 3,3V czy 5V ?
sprawdz inna przejsciowke (firma) - obniz tez szybkosc transmisji i proboj inny bity stopu/parzystosci - on/off/software - prawdopodobnie rozjezdzaja sie ramki danych dlatego glupoty wychodza - sproboj tez inny program sterujacy - moze on jakies kwaitki doklada - np wlasne ramki danych a USB tego nie trawi (soft)

mam podobna sytuacje z ploterem rolanda - na plycie Nvidii nie dziala wogole (LPT sa na PCI)
na inetlowych plytach lub laptoku smiga
nie dziala tez po wlozeniu innej karty LPT na PCI
natomiast drukarka z podobnego okresu - HP LJ5 z 1993 drukuje bez problemu - nawet LCD 4x40znakow wysterowalem poprawnie a ploter ani dudu - wycinam sieciowo z innego kompa i 15m kablem :)


na 99% bedzie dzialac na karcie PCMCIA z 2x RS9 - dziala to w czystym DOSsie nawet ( interfejsy do samochodow wymagaja 2x com i chodza pod dosem - wiec na nowych lapach jest ciezko nie mowiac o windowsie :)

koszt niestety kolo 300zl
dlatego wiekszosc ludziskow kupuje starego lapa kolo PII 300-500Mhz i z nich wycina

zajrzyj na www.cnc.info.pl - chlopaki na pewno cos doradza

pdzran
02-11-2007, 15:14
www.meditronik.com.pl (http://www.meditronik.com.pl)

Jesli oni nie maja odpowiedniej karty to ciezko bedzie.
Jak potrzebuje czegos nietypowego to lece od nich.
Kupilem np. karte na PCI 6xRS232, trzeba bylo podlaczyc drukarke do kodow kreskowych, drukarke fiskalna, czytnik kodow kreskowych - dziala wszystko.
Powinni miec cos do laptopa.

jacek.gold
02-11-2007, 15:23
jacek.gold - ales wypalil :) usb i rs to sa serial - czyli szeroegwe - nie sa jednak zgodne




NO ;)
Czasem lutuję takie wtyczki a nie jestem elektronikiem więc na chłopski rozum to jak mam np 7kabelków wlutować w tym np zwora 2+7 to jakby nie popatrzyć jest ich więcej niż w usb. Ale to na chłopski rozum :-)

Rafał_Sz
02-11-2007, 15:28
Dzięki. Spróbuję z PCMCIA.
Swoją drogą, to COM jest strasznie porąbany. W ploterze Summa mam do wyboru COM lub USB. Pod USB zdecydowanie lepiej śmiga (nie zwalnia na łukach). Że też tak szanująca się firma jak Roland nie mogła zauważyć, że świat idzie do przodu i nie zainstalowała USB w frezarce. No chyba, że to ma jakieś techniczne uzasadnienie, ale na tym to się nie znam.

pdzran
02-11-2007, 15:34
Dzięki. Spróbuję z PCMCIA.
Swoją drogą, to COM jest strasznie porąbany. W ploterze Summa mam do wyboru COM lub USB. Pod USB zdecydowanie lepiej śmiga (nie zwalnia na łukach). Że też tak szanująca się firma jak Roland nie mogła zauważyć, że świat idzie do przodu i nie zainstalowała USB w frezarce. No chyba, że to ma jakieś techniczne uzasadnienie, ale na tym to się nie znam.

Nie znam sie na tym ale spece od urzadzen mowia, ze o ile RS232 byl ok to USB nie nadaje sie z jakichs wzgledow do tego typu transmisji - chodzi zapewne o specyfikacje i jakies problemy z tym zwiazane.

Rafał_Sz
02-11-2007, 15:40
Nie znam sie na tym ale spece od urzadzen mowia, ze o ile RS232 byl ok to USB nie nadaje sie z jakichs wzgledow do tego typu transmisji - chodzi zapewne o specyfikacje i jakies problemy z tym zwiazane.
Fakt. Ploter ma własny duży bufor, więc może przyjąć plik i ciąć bez komputera. Frezarka zaś działa tylko ze stałą transmisją. Może diabeł tkwi w jakimś pakietowaniu danych, czy coś?

Al Bundy
03-11-2007, 09:50
Problem tkwi tylko i wyłącznie w przydziale przerwań którego Twój sprzęt wymaga. Przelotki USB pozwalają na podpinanie urządzeń które do poprawnej pracy przerwań nie wymagają. Karty PCI prawie wszystkie komunikują się z płytą i wymuszają korzystanie z nich natomiast USB nie ma fizycznej możliwości to zadanie zrealizować. Do laptopów są dostępne odpowiednie kontrolery na PCMCIA ale muszę Cię zmartwić - poniżej 300 zł będzie problem by to dostać. Miałem niedawno na sklepie coś takiego za ponad 400 zł.

JK
03-11-2007, 11:26
Słyszycie że dzwonią, ale nie wiecie, w którym kościele. RS-232 ma, jak ktoś słusznie zauważył, 9 pinów, choć pierwotnie cały interfejs był rozpisany na złącze 25 pinowe. Złącze 25 pinowe było zbyt duże gabarytowo, więc wprowadzono złącze 9 pinowe, zachowując pozostałe funkcje interfejsu. Jeden z tych pinów jest masą (pin 5), a każdy z pozostałych ma przypisaną inną funkcję i wszystkie "stare" dobre programy mogły te funkcje dowolnie wykorzystywać. Na przykład, można było robić transmisję "start-stopową" dla dowolnej długości bloku danych. W szczególności jednego rozkazu dla urządzenia lub jednego bajtu. Co więcej każdy taki blok mógł mieć inną długość wyrażoną w bajtach. Po każdym takim bloku program nadający analizował stan pozostałych pinów w celu ustalenia, czy urządzenie odbierajace jest gotowe do pobrania kolejnego bloku danych oraz, czy nie wystąpił bład transmisji. Jeśli wystąpił błąd, można było przesłać ten sam rozkaz jeszcze raz i naprawić problem. Jeśli urządzenie odbierające zablokowało możliwość odbioru danych, trzeba było poczekać z transmisją, aż go odblokuje.

Tak właśnie działa sterownik typowej frezarki ze złączem RS-232. Odbiera on jeden, kilka, lub kilkadziesiąt rozkazów (tyle, ile mu sie w buforze zmieści), a nastepnie blokuje gotowość do odbioru kolejnej partii danych, do czasu zwolnienia się miejsca w buforze. Zazwyczaj wygląda to tak, że na początku wczytywane są bloki danych, aż do zapełnienia bufora pamieci, a następnie dosyłane są pojedyncze rozkazy (lub pojedyncze bajty), wraz ze zwalnianiem się miejsca w buforze. Cała ta komunikacja jest realizowana na pozostałych pinach portu RS-232, a piny Tx i Rx służą tylko do szeregowego przesyłania bloków danych.

Problem zaczął się w momencie nastania USB. USB jest portem szeregowym, ale ukierunkowanym na transmsję strumieniową. Oznacza to, że nadajnika jakoś specjalnie nie interesuje, czy odbiornik ma wolny bufor. Odbiornik musi odebrać cały blok danych i już. Bierze się to z tego, że standard USB przewiduje transmisję danych z pamięci do pamieci i tym samym zakłada, że czasu na wszystko wystarczy. Do jakiegoś czasu RS-232 współistniał razem z USB bez większych przeszkód. Później autorzy Windows i driverów USB zaczęli stopniowo przejmować również funkcje RS-232 wychodząc z założenia, że to też jest transmisja szeregowa. W efekcie dostęp do pełnego RS-232 został zablokowany i niektóre plotery, tablety, czy mierniki przestały działać. Można było dostęp do pełnego portu odzyskać, pisząc i instalując odpowiedni driver i znów wszystko wracało do normy. Dotyczyło to jednak pełnych portów RS-232, na których driver USB jedynie symulował działanie USB. W tym konkretnym przypadku, to USB ma symulować RS-232 i to jest problem.

No i symuluje jak potrafi. Wysyła na ślepo bloki danych, zakładając, że odbiornik musi to odebrać. Takie podejście się jakoś tam sprawdza w przypadku programatorów, czy przyrządów pomiarowych, ale nie sprawdza się w przypadku maszyn takich jak frezarki, tokarki, lasery, czy inne drążarki drutowe. Tam problemem jest to, że dane nie tylko musza być przesłane, ale muszą być także wykonane, bo bufor pamięci jest zbyt mały, żeby pomieścić cały program. Jeśli taki ruch jest bardzo krótki (np. 0.01 mm), to może się to nawet udać, ale jeśli ruch ma na przykład 500 mm, to czas potrzebny na jego wykonanie jest zbyt długi, jak dla algorytmów transmisji przez USB. W efekcie odbiornik wystawia sygnał stopu, ale nadajnik go nie widzi i nadal wysyła dane. Te dane odpływają w nicość, do czasu, aż maszyna zakończy wykonywanie poprzedniego rozkazu, odblokuje transmisję i znów zacznie czytać dane. Tyle, że w tzw. "międzyczasie" pewna część informacji uleciała sobie w powietrze i wynik jest inny niż być powinien.

Tu nie ma się czym stresować, bo tak to działa i zapewne inaczej działać nie będzie. Czasem udaje się to oszukać przez odpowiedni dobór parametrów transmisji w odbiorniku (tam jest zazwyczaj duży zakres możliwych zmian, bo kiedyś urządzenia transmisyjne były uniwersalne, czyli miały możliwość dowolnego ustawiania parametrów transmisji), ale najlepszym ratunkiem jest rozszerzenie notebooka o standardowy port RS-232, a nie o port symulowany na USB. Są też na rynku tzw, przystawki do przenoszenia programów dla CNC. Są to urządzenia, które pozwalaja wczytać program do własnej dużej pamięci (najczęściej pamięci FLASH), a następnie po podłaczeniu do układu CNC przez port RS-232 symulują pracę standardowego nadajnika. Rozwiązanie jest dość stare, ale bywa skuteczne. Są też przystawki, które posługują się kartami CF (jest również przemysłowy standard CF - bardziej pancerny). Tak, tak. Tymi samymi co w naszych Nikonach. Taką przystawkę podłącza się do RS-232 układu sterowania, zapisuje się program na karcie CF, wklada kartę do czytnika w przystawce i rozpoczyna wykonanie programu. Te rozwiązania są skuteczne i niezbyt drogie, ale tylko wtedy, gdy mamy klasyczny układ CNC. Jeśli częścią sterownika frezarki jest program w komputerze (taka zabawa dla ubogich i hobbystów), to jest raczej po sprawie i trzeba szukać standardowego portu RS-232.

Rafał_Sz
03-11-2007, 12:30
Wielkie dzięki za dogłębne wyjaśnienie. Frezarka którą mam, jest maleństwo to dla plastyków, jubilerów i takich tam. W kompie instaluje się jako zwykła drukarka, więc to komp tym steruje.
Jest to taka zabawka:

https://forum.nikoniarze.pl//brak.gif
źródło (http://img142.imageshack.us/img142/5355/mdxmn7.jpg)
Ale daje takie możliwości:
http://www10.plala.or.jp/zerokobo/kontyuumokei.htm

Czyli taki COM pod PCMCIA o którym wspomniał m. innymi Al też się nie na wiele zda?
W ustawieniu COMa jest coś takiego jak bit stopu. Jest tam ustalona wartość 1 i sterowanie przepływu sprzętowe, inaczej nie działa.
W samej frezarce nie ma jakiejkolwiek możliwości ustawienia transmisji.
Proszę, jeśli wiecie o konkretnych produktach dających mi COM w notebooku sprawdzających się w moim przypadku to napiszcie co mam kupić.

JK
03-11-2007, 13:04
Bit stopu nie dotyczy transmisji start-stopowej, tylko odstępu pomiędzy dwoma kolejnymi bajtami danych. To nie o to chodzi.

Możesz spróbować tego RS-232 na pcmcia, bo duża część z nich była dokładną symulacją portu RS-232. Kiedyś były też tzw. replikatory portów do notebooków, które miały i RS i CENTRONICS. Podłączało się je do wyprowadzonej szyny systemowej notebooka i działały podobnie jak karty rozszerzeń PCI. To chyba było by najlepsze, ale jest pytanie czy znajdziesz takie coś do twojego notebooka i ile to będzie kosztować.

Podaj dokladny symbol tego wynalzku. Wieczorem spróbuję poszukać w necie opisu tego twojego cuda i być może uda sie cos wykombinowac.

Rafał_Sz
03-11-2007, 13:38
Wielkie dzięki!
Frezarka to Roland Modela MDX-15 http://www.quedex.com/pdf/roland/MDX_15_20_Web_PL.pdf (http://www.quedex.com/pdf/roland/MDX_15_20_Web_PL.pdf)

A notebook to Asus A3H z 2048 MB http://www.arest.pl/index.php?inc=produkt&back=notebooki&ID=4177&katid=48&grupa=422

Ze względu, że frezuję dosyć duże i bardzo precyzyjne rzeczy (frez 0,13 mm) To plik dxf ma objętość nawet 300-400 MB i czas frezowania to 10-15h.

pozdrawiam Rafał

pdzran
03-11-2007, 14:07
Wjedz jak juz pisalem na www.meditronik.com.pl (http://www.meditronik.com.pl)
Maja RS-232 na PCMCIA , maja tez taki jakby replikator portow - podlaczany przez USB a w sobie ma RS , PS2 itp.
Sprobuj, moze cos bedzie dzialac.
Jak juz tez pisalem kupilem karte na PCI, ktora ma 6 portow a moze miec wiecej na RS-232 i dziala.

Innym wyjsciem jest komputer za okolo 300 pln na gieldzie , polaczenie go w siec z laptopem , udostepnienie folderu do przesylu danych i drukowanie/frezowanie z niego.

JK
03-11-2007, 14:13
Uruchamiałem jakiś czas temu transmisję do sterownika CNC na tym: http://www.ulubiony.pl/?action=StoProd&id_prod=16867&u=5.

Port RS-232 był pełny, było przerwanie, wszystko jak trzeba i wszystko działało prawidłowo. Kupował to klient samodzielnie więc detali zakupowych nie znam. Chyba powinno działać z twoim Rolandem, ale jak zawsze niespodzianki też nie są wykluczone.

Rafał_Sz
03-11-2007, 16:27
Oki! W poniedziałek zamówię to w zaprzyjaźnionym sklepie. Ja coś, będę mógł oddać.

Jeszcze raz wielkie dzięki za pomoc!

rsz

P.S. CNC mi się zachciało, dłutka se trzeba było kupić....:):)