Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Sterowanie z wykorzystanie RS 485 - jaka karta do PC?

30 Sty 2013 20:59 3261 17
  • Poziom 14  
    Witam,
    mamy w firmie piec przemysłowy sterowany z PC za pośrednictwem łącza RS485.
    Sprzęt ma 20 lat, działa pod Windowsem 3.11.
    Konieczna jest wymiana całego PC-ta bo szwankuje i w zaraz wysiądzie całkiem.

    Ale nie wiadomo jak to zrobić gdyż aplikacja sterująca nie daje się uruchomić, jeśli w komputerze nie ma karty IO. Aplikacja upada i jest komunikat o ogólnym błędzie.

    Pytania:
    Czy program będzie działał z inną kartą IO z RS485 jeśli nie ma w nim żadnych ustawień portów.
    Czy aplikacja jest raczej związana na stałe z tym konkretnym typem karty?
    Czym się kierować przy wyborze nowej karty?

    Garść dodatkowych informacji:

    -Karta jest nieznanej marki, siedzi w gnieździe ISA i ma wyjście 1xDB9 do RS 485. Na pokładzie karty kilka przewlekanych scalaków oklejonych napisem PCM1...PCM5. Główny procek ma znak "∫dx". Karta ma napis na złączu "PC-Master".
    -aplikację uruchamia się plikiem wsadowym .bat, w którym przed uruchomieniem pliku .exe znajduje się linia "SET PCMaster=D000" co podobno jest adresem PC-ta.
    - windows 3.11 pokazuje 4 porty szergowe COM, skonfigurowane normalnie, tj 9600,8,N,1 czy jakoś podobnie +przerwania. Nic szczególnego nie widać:)
    - na komputerze nie widać śladów innych portów COM (czy jeden z nich to właśnie nasza karta ISA?)
    - na karcie są jakieś przełączniki obrotowe prawdopodobnie do konfiguracji.

    Będę wdzięczny za info nt tego interfejsu bo dotąd z nim się nie zetknąłem.
  • Poziom 39  
    Jakbyś zrobił zdjęcie tej karty, może będzie łatwiej coś odnaleźć.
  • Poziom 21  
    adam220 napisał:
    Sprzęt ma 20 lat, działa pod Windowsem 3.11.
    Konieczna jest wymiana całego PC-ta bo szwankuje i w zaraz wysiądzie całkiem.


    Oczywiście można szukać karty i sprawdzać opcje działania, ale z racji wieku i braku wsparcia dla tak starego systemu najbardziej rozsądnym rozwiązaniem będzie przeprojektowanie układu sterowania np. na PLC i panel operatorski. Do tego jakaś tania SCADA. Będzie to na miarę dzisiejszych czasów.
  • Poziom 39  
    Można też kupić (nową) płytę główną ze slotem ISA (EISA).... tyle, że są one o wiele droższe od pozostałych.
    Poza tym - Windows 3, który wymusza ci oprogramowanie - to raczej kiepskie wyjście.

    P.S.
    Czy to czasem nie jest sprzęt do diagnostyki samochodów?
  • Poziom 21  
    mickpr napisał:
    Czy to czasem nie jest sprzęt do diagnostyki samochodów?


    adam220 napisał:
    mamy w firmie piec przemysłowy
  • Poziom 39  
    Przepraszam, ale zapomniałem o czym już czytałem (skleroza).
    Co do merytoryki, z pewnością znajdziesz też jakąś używaną płytę z ISA.
    Niekoniecznie musisz kupować przemysłową -(5x droższą płytę) z tym slotem.
    Np. AIMB-742, SMB-2501
  • Poziom 14  
    Witam i dziękuję za odzew.
    1. Panel operatorski. U nas to nie wchodzi w grę. Za drogo... Jest drugi, gorszy piec i prędzej on będzie używany niż ktoś zainwestuje tysiące.
    Poza tym pozostaje sprawa nieznanego protokołu komunikacyjnego.

    2. Nie wiadomo czy szwankuje karta czy Pecet. Jasne że można kupić używaną płytę główną, ale karta IO pozostanie stara, a tu chodzi o niedopuszczenie do awarii (Polak mądry przed szkodą:)) Kartę należałoby wymienić na nową.
    Pytanie jest aktualne - czy karty IO z 485 są zamienne czy raczej nie. Dzisiaj, jak pada przejściówka np USB-RS232, to wymiana na inną nie sprawia kłopotu bo driver przejściówki instaluje port witrualny a my dbamy o wskazanie tego portu w aplikacji.
    A tu aplikacja ani jej pliki tekstowe konfiguracyjne nie umożliwiają zmiany portu.

    Czy sadzicie że komunikacja odbywa się na jednym z 4 portów COM które widzę w tym Windowsie 3.11?

    Spróbuję wrzucić zdjęcie tej karty IO z RS485.
  • Poziom 21  
    Nawet jak kupisz karetę ISA to wątpię aby były sterowniki pod Win3.11. Rodzaj karty nie powinien mieć znaczenia ponieważ program odwołuje się do portu COM, które się tworzą podczas instalacji sterowników. Często można je potem zmienić, aby dostosować do portów z aplikacji sterującej. Jednak jak sam napisałeś nie ma pewności co padło.
  • Poziom 14  
    Sterowników do 3.11 na pewno nie będzie.
    To użyjemy oczywiście XP.
    W takim razie pytanie: czy
    -mając zainstalowaną nową kartę ze sterownikami na XP,
    -mając możliwość zmiany numerów portów (menedżer urządzeń\ustawienia portów\zaawansowane\numer portu COM)
    uda mi się metodą prób i błędów zgrać numer portu z aplikacją (która nie wiadomo na jakim porcie gada)?

    Czy też - jak pisałem wyżej - aplikacja może wymagać tej konkretnej karty i z inną kartą nigdy nie będzie działa ?
  • Poziom 21  
    Wg mnie nawet karta na PCI powinna działać. Tak jak pisałem programy odwołują się do COM-a z odpowiednimi parametrami. Choć wiadomo, że czasem przy tak starych programach nie wiadomo co autor wymyślił. Najlepiej gdzieś wypożyczyć do testów kartę. Niektórzy poważni dystrybutorzy coś takiego oferują.
    Zastanawia mnie po co dodatkowa karta była? Czyżby nie było podstawowych portów lub były zajęte? Ile COM-ów jest na karcie, a ile w PC?
  • Poziom 14  
    Dodatkowa karta IO była konieczna bo ma standard RS485.
    COMy są chyba dwa na śledziu są jako RS232.
  • Poziom 34  
    adam220 napisał:
    Sterowników do 3.11 na pewno nie będzie.
    To użyjemy oczywiście XP.
    W takim razie pytanie: czy
    -mając zainstalowaną nową kartę ze sterownikami na XP,
    -mając możliwość zmiany numerów portów (menedżer urządzeń\ustawienia portów\zaawansowane\numer portu COM)
    uda mi się metodą prób i błędów zgrać numer portu z aplikacją (która nie wiadomo na jakim porcie gada)?

    Czy też - jak pisałem wyżej - aplikacja może wymagać tej konkretnej karty i z inną kartą nigdy nie będzie działa ?

    Tego nie można obiecać, bo nie jest wiadomo jak działa ta karta. Bardzo prawdopodobne, że jest to RS232 z konwerterem na RS485 i protokołem MODBUS ASCII/RTU do komunikacji. Trudno przewidzieć jednak jak jest faktycznie. Są rozwiązania w których aplikacja sama steruje kierunkiem transmisji (RS485 pracuje w pół-dupleksie). W takiej sytuacji będzie kłopot. Nawet nie ma 100% gwarancji, że jest to RS485. Warto byłoby przeanalizować analizatorem stanów logicznych to, co się tam dzieje. Stare karty, które pracowały do Win 95 mogły być bez sterowników. Aplikacja bezpośrednio zapisywała to, co trzeba na poszczególne rejestry karty.

    W nowym sprzęcie też odpalisz Win 3.11 - jaki problem ?

    Ryzyko zmniejszysz, jeżeli kupisz jakiś najtańszy konwerter USB->RS485 (ok. 60zł) wprawdzie nie mają one izolacji galwanicznej, ale nie powinna być tu ona niezbędna. Mając taki konwerter można podejść z laptopem, na dyskietkę przegrać oprogramowanie sterujące i usiłować coś zadziałać.
  • Poziom 14  
    Czy za pomocą takiej przejściówki podsłucham na jakimś programie terminalowym co wysyła piec?
    Analogicznie jak to można zrobić za pomocą przejściówki USB-RS232?
    Mam przypuszczenie że piec cały czas podaje swoje temperatury.
  • Poziom 34  
    adam220 napisał:
    Czy za pomocą takiej przejściówki podsłucham na jakimś programie terminalowym co wysyła piec?
    Analogicznie jak to można zrobić za pomocą przejściówki USB-RS232?
    Mam przypuszczenie że piec cały czas podaje swoje temperatury.

    Tak, jeżeli dołączysz konwerter do szyny RS485, to odbierze on transmisję, ale i tak nie znasz jej parametrów tzn. przepływność bitowa, format ramki, parzystość/nieparzystość/brak. Możliwe, że jest to typowe 9600b/s, 8N1. Tylko co z tego, jak nie będziesz wiedział co wysyła te dane. Tzn. jak ustalisz, czy to transmisja od strony pieca, czy PC ?

    Z konwerterem USB->RS232 da się to zrobić są układy konwerterów pół-dupleks do tego. Najpierw należałoby przejść na MAX232 do TTL, potem na SN75176B można przejść na RS485. Sterowanie kierunkiem transmisji można zrobić za pomocą linii RTS.

    Jeżeli piec sam cały czas coś wysyła to nie jest to protokół MODBUS.
  • Poziom 14  
    Cytat:
    nie znasz jej parametrów tzn. przepływność bitowa, format ramki, parzystość/nieparzystość/brak. Możliwe, że jest to typowe 9600b/s, 8N1.

    Wszystkie porty COM1...4 są właśnie tak ustawione, mam nadzieję że mój 485 to jeden z nich.
    Cytat:

    Tylko co z tego, jak nie będziesz wiedział co wysyła te dane. Tzn. jak ustalisz, czy to transmisja od strony pieca, czy PC ?

    Mam nadzieję że piec gada niepytany. A jeśli nie, to wepnę sie w linię dopiero po handshaku i odłaczę TX od peceta i na linii pozostanie piec. A potem odłaczę piec i pozostanie pecet. Co o tym sądzisz?

    Cytat:
    Z konwerterem USB->RS232 da się to zrobić są układy konwerterów pół-dupleks do tego. Najpierw należałoby przejść na MAX232 do TTL, potem na SN75176B można przejść na RS485. Sterowanie kierunkiem transmisji można zrobić za pomocą linii RTS.

    A czy udało by się to zrobić wyłacznie z przejściówką USB-RS485? Czy jej driver zainstaluje port wirtualny i terminal - po wskazaniu tego portu - zobaczy transmisję? Mógłbyś wskazać taka przejsciówkę na rynku?
  • Pomocny post
    Poziom 34  
    adam220 napisał:
    Cytat:
    nie znasz jej parametrów tzn. przepływność bitowa, format ramki, parzystość/nieparzystość/brak. Możliwe, że jest to typowe 9600b/s, 8N1.

    Wszystkie porty COM1...4 są właśnie tak ustawione, mam nadzieję że mój 485 to jeden z nich.

    To nie ma znaczenia, bo oprogramowanie może to sobie ustawić dowolnie (tzn. zmienić) - przynajmniej tak jest we współczesnych systemach operacyjnych.

    adam220 napisał:
    Cytat:

    Tylko co z tego, jak nie będziesz wiedział co wysyła te dane. Tzn. jak ustalisz, czy to transmisja od strony pieca, czy PC ?

    Mam nadzieję że piec gada niepytany. A jeśli nie, to wepnę sie w linię dopiero po handshaku i odłaczę TX od peceta i na linii pozostanie piec. A potem odłaczę piec i pozostanie pecet. Co o tym sądzisz?

    RS485 to dwie linie A i B, ewentualna masa i rezystory (terminatory) na końcach linii. Nie ma tu TxD i RxD, bo te linie zostały skonwertowane na tor różnicowy, jakim jest RS485. Żeby odciąć TxD musiałbyś ciąć ścieżki na karcie, lub w modułach pieca.

    adam220 napisał:
    Cytat:
    Z konwerterem USB->RS232 da się to zrobić są układy konwerterów pół-dupleks do tego. Najpierw należałoby przejść na MAX232 do TTL, potem na SN75176B można przejść na RS485. Sterowanie kierunkiem transmisji można zrobić za pomocą linii RTS.

    A czy udało by się to zrobić wyłacznie z przejściówką USB-RS485? Czy jej driver zainstaluje port wirtualny i terminal - po wskazaniu tego portu - zobaczy transmisję? Mógłbyś wskazać taka przejsciówkę na rynku?

    Sterownik takiego konwertera też instaluje się jako wirtualny port szeregowy COM. Po dołączeniu zobaczy on transmisję.

    Jeżeli program wykorzystuje przerwanie, to nie będzie to działać z oryginalnym oprogramowaniem pieca. Taki konwerter można usiłować uruchomić z oryginalnym oprogramowaniem, pod współczesnym systemem (lepiej Win Xp, lub starszym np. Win 95/Me - tylko znowu sterowniki...). Przykład konwertera USB->RS485.
  • Poziom 14  
    Dziękuje wszystkim za odpowiedzi, za kilka dni (ferie) będę z tym walczył i dam znać, więc obserwujcie temat.
    Pozdrawiam.
  • Poziom 20  
    Z konwerterem USB->RS485(USB->RS323+konwerter na 485) z oprogramowaniem do Win3 to prawie na 100% nie będzie działało. Większość kas fiskalny i programów na win3 pod Xp i nowszym systemem nie działa poprawnie. Musisz znaleźć adres i przerwanie na jakim działa karta. I kartę którą chcesz zastąpić ustawić tak samo. Chyba że możesz w programie zmieniać samemu ustawienia portu komunikacyjnego.