logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak stworzyć skrypt do sterowania portem COM (RS-232) pod DOSem?

gutekhkey 05 Lut 2011 21:09 2691 7
REKLAMA
  • #1 9108838
    gutekhkey
    Poziom 10  
    Posty: 31
    Ocena: 4
    Witam.
    Od razu na wstępie chciałbym nadmienić, że kompletnie nie znam się na programowaniu i dlatego zwracam się o pomoc do forumowiczów.

    Chciałbym utworzyć program (np. EXE) lub skrypt vbs, który to będzie sterował linią TxD portu RS-232. Mam program, który steruje liniami RTS, DTR oraz TXD pod windows, ale chcę aby automatycznie były sterowane te linie (właśnie przez jakiś wsad, a wiadomo, że wersja programów na windows jest klikana - trzeba ręcznie ustawiać stany).

    Otóż chcę, aby komputer wysterował mi przekaźnik na porcie COM (koniecznie na COM, bo LPT mam zajęty) kiedy to plik zostanie uruchomiony.

    Później program miałby poczekać sekundę, a następnie ustawić stan niski, tak jak był poprzednio. Fajnie by było, gdybym mógł zmieniać czas oczekiwania na zmianę stanu.

    Załączam znaleziony program, który steruje tymi trzema liniami RS232 pod windows.

    Czy i w jaki sposób da się zrobić, co opisałem?
    Załączniki:
    • Port.rar (194 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #2 9110749
    netotron
    Poziom 26  
    Posty: 773
    Pomógł: 86
    Ocena: 57
    Witam
    Jak zwykle chcąc udzielić odpowiedzi trzeba zgadywać "co autor miał na myśli.."
    Co rozumiesz pod pojęciem "pod Dos'em". DOS skończył się razem z Win98
    W NT. XP, 7 itd jest tylko konsola DOS. W DOS'ie działają tylko exe i com, vbs nie.
    Nie wiem co chcesz osiągnąć i w jakich warunkach, sprecyzuj.
  • REKLAMA
  • #3 9111678
    gutekhkey
    Poziom 10  
    Posty: 31
    Ocena: 4
    Mam na myśli Wiersz poleceń systemu Windows 7. Pracuję pod siódemką, i chciałbym wysterować wolny port RS232. Jeśli nie uda się na Windows 7, może być pod Windows XP (Win7 mam na kompie, WinXP na laptopie).
    Ale na XP musiałby być to port LPT, w dodatku musiałby być sterowany pin 14 z portu, ponieważ wyjścia D0-D7 są używane do innego urządzenia.

    Sterowanie ma się odbywać automatycznie, więc wiersz poleceń albo jakiś skrypt, który by wysterował linię TxD (lub pin 14 w LPT).

    Czy da radę?
    Jeśli coś nie wiadomo - służę wszelką informacją.
  • #4 9114536
    pubus
    Poziom 30  
    Posty: 1289
    Pomógł: 139
    Ocena: 32
    Nie wiem jak w Windows 7 ale w XP bezpośredni dostęp do portów jest zablokowany.
    Jest parę możliwości.
    1. Program którym każdorazowo trzeba sobie odblokować port chyba ComPort czy jakoś tak
    2. Sterownik - o ile pamiętam np razem z ComPort'em była DLL'ka
    3. Wykorzystanie funkcji WinAPI
  • REKLAMA
  • #5 9115637
    gutekhkey
    Poziom 10  
    Posty: 31
    Ocena: 4
    Czy można zatem napisać jakiś skrypt, który by odblokował port RS232 tym razem pod Windows XP (dostosuję się, aby tylko dało się wogóle wysterować port)?

    Po odblokowaniu portu mógłby wtedy ustalić stan wysoki na TxD, poczekać sekundę i ustalić stan niski.

    Czy ten COMPort to jakieś narzędzie typu wiersz poleceń, czy też wersja okienkowa?

    Jeśli możliwe, to chciałbym móc pisać skrypty w JAKNAJPROSTSZYM narzędziu programistycznym. Zainstalowałem kiedyś sobie Visual Basic 2008, ale jak zobaczyłem co to jest i z czym to się je - szczęka mi opadła. Nie wiedziałem za co się zabrać, od czego zacząć, aby cokolwiek napisać.

    Umiem trochę pisać w notatniku pod postacią .vbs oraz .js.
    Ciekaw jestem czy właśnie taki skrypt .vbs w odwołaniu do biblioteki inpout32.dll wysteruje linię TxD portu RS232.

    Jeśli można, prosiłbym o jakieś przykłady sterowania portami RS232 oraz LPT (wysłanie bajtów na rejestr danych ale także na sterujący i kontrolny).
    Jeśli nie będzie to kłopotem, możecie napisać jakiś którki programik/skrypcik sterujący RS'em i wystawić go na forum. Dla zawodowych programistów to błachostka.

    Będę bardzo wdzięczny.
  • #6 9115669
    pubus
    Poziom 30  
    Posty: 1289
    Pomógł: 139
    Ocena: 32
    Poszukaj na forum bo temat była wałkowany n-razy.
    ComPort to driver a jest jeszcze Userport i to jest o ile dobrze pamiętam okienkowa aplikacja.
  • REKLAMA
  • #7 9115675
    gutekhkey
    Poziom 10  
    Posty: 31
    Ocena: 4
    Przypadkiem znalazłem taki wątek na forum, ale nie bardzo rozumiem tego sterowania https://www.elektroda.pl/rtvforum/topic514127.html.

    Opisane jest tam sterowanie przyciskami, a ja chciałbym sterować z automatu, właśnie przez jakiś program/skrypt, który można wywołać z pliku wsadowego poleceniem call/start, np. call skrypt.vbs i wtedy wytoerowana została by linia TxD
  • #8 9118123
    gutekhkey
    Poziom 10  
    Posty: 31
    Ocena: 4
    No dobra.
    Załóżmy, że mam już ten COMPort ściągnięty i zainstalowany.
    Ale jak tym sterować?
    Czy będę potrzebował zewnętrznego programu do sterowania (kompilacji) - coś jak Visual Basic 5?

    Jak widzę, w archiwum mam kilka plików w katalogu source - jak się domyślam, rozszerzenie .pas to Turbo Pascal (od razu piszę, że nie wiem z czym to się je).
    W examples mam cbuilder czyli Borland oraz delphi.
    Ale nadal nie wiem nawet jak odpalić sobie te przykładowe pliki, nie mówiąc już o pisaniu własnego programu i to sterowanego automatycznie.

    Czy można więcej porad/instrukcji/wskazówek?

Podsumowanie tematu

LABEL_AI_GENERATED
Użytkownik poszukuje pomocy w stworzeniu skryptu do automatycznego sterowania linią TxD portu RS-232 w systemie Windows, preferując rozwiązania działające w wierszu poleceń lub skrypty VBS. Wskazuje, że ma już program do sterowania liniami RTS, DTR i TXD w Windows, ale chce zautomatyzować ten proces. Odpowiedzi na forum sugerują, że bezpośredni dostęp do portów w Windows XP i 7 jest zablokowany, a użytkownik musi zainstalować odpowiednie sterowniki, takie jak ComPort lub UserPort. Użytkownik jest również zainteresowany prostymi narzędziami programistycznymi, aby móc pisać skrypty, oraz prosi o przykłady kodu do sterowania portami RS232 i LPT.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA