KATEDRA AUTOMATYKI NAPDU ELEKTRYCZNEGO
Laboratorium Przemysłowych Sieci Informatycznych
Przesył informacji przy wykorzystaniu
interfejsu RS232
Instrukcja do ćwiczenia laboratoryjnego nr 6
Gdańsk 2009
Opracował : Janusz Szewczyk
Wersja 1.0 (10.2009)
1
Spis treści
1. Cel ćwiczenia
2. Ogólna charakterystyka interfejsu RS232
3. Moduł komunikacyjny ADAM 4570
3.1. Ogólna charakterystyka modułu
3.2. Konfiguracja modułu
4. Połączenie komputera z przekształtnikiem MMB10 za pośrednictwem wirtualnego portu
COM komputera i modułu ADAM 4570
4.1. Obsługa portu RS232 przy wykorzystaniu WindowsAPI
4.2. Kod zródłowy programu w środowisku Borland Builder
5. Przebieg ćwiczenia
2
1. Cel ćwiczenia
Celem ćwiczenia jest zapoznanie się z szeregowym interfejsem RS232. Obsługa interfejsu
od strony komputera PC w taki sposób aby możliwa była transmisja danych pomiędzy komputerem
a przekształtnikiem wykorzystującym do komunikacji interfejs szeregowy. Do połączenia
komputera z przekształtnikiem wykorzystywany jest moduł komunikacyjny firmy Advantech model
ADAM-4570.
W ramach ćwiczenia należy
skonfigurować konwerter Ethernet na RS232/RS485 firmy Advantech model ADAM-4570
napisać prosty program obsługujący port COM komputera, wysyłający określone dane do
przekształtnika
zarejestrować na oscyloskopie i zdekodować przesyłane dane (pomiędzy komputerem a
przekształtnikiem)
2. Ogólna charakterystyka interfejsu RS232
RS 232 ( Recommended Standard ) jest najpopularniejszym najpowszechniej stosowany
standardem do szeregowej wymiany danych cyfrowych pomiędzy urządzeniami. Dane przesyłane
są pomiędzy urządzeniem które jest odbiorcą danych DTE(ang. Data Terminal Equipment), zwykle
komputer, oraz urzÄ…dzeniem komunikacyjnym DCE(Data Communications Equipment) np.
modem. Standard RS232 określa wszystkie elementy potrzebne do zestawienia komunikacji
pomiędzy urządzeniami tzn. nazwy styków, złącz, kabli oraz format pojedynczych bajtów w
przesyłanych ramkach.
W komputerach typu PC interfejs ten występuje jako jeden port lub szereg portów COM.
Popularność interfejsu sprawiła iż istnieje szereg konwerterów różnych protokołów na RS232 np.
RS232 na Ethernet, Wi-Fi, Bluetooth, Can, ProfiBus, RS485, USB, ZigBee itd.
Dane przesyłane są w postaci ramki zwanej SDU ( Seria Data Unit ). Jest to najmniejsza
porcja danych, która może zostać wysłana jednorazowo przez łącze szeregowe. Na ramkę składają
się: bity danych, bit startu ( znacznik początku ramki ), bit parzystości oraz bity stopu ( znacznik
końca ramki ).
Bit startu służy do sygnalizacji początku ramki. Dane przesyłane są asynchronicznie (tzn.
bez zegara taktujące poszczególne bity) zatem jest on obowiązkowy, bez niego urządzenie
odbierające nie rozpoznałoby początku ramki. Bit startu zawsze przyjmuje wartość zero, natomiast
linia łącza danych w stanie spoczynku utrzymywana jest w stanie logicznym 1. Dzięki temu bit
startu jest wyraznym wskaznikiem początku transmisji. Bit startu jest jałowy z punktu widzenia
przesyłanej informacji, służy jedynie celom synchronizacyjnym.
Po bicie startu przesyłane są bity danych. Ramka może zawierać od 5 do 8 bitów danych.
Bity te są przesyłane w kolejności od najmniej znaczącego, do najbardziej znaczącego.
Po bitach danych może wystąpić bit parzystości. Bit parzystości jest wykorzystywany do
zabezpieczenia danych przed przekłamaniem podczas przekazu. Bit parzystości ma wartość
logiczną równą sumie modulo 2 wszystkich bitów danych. Może oznaczać parzystą lub nieparzystą
liczbę ustawionych bitów w polu danych. Kontrola parzystości polega na sprawdzeniu ilości
jedynek na polu danych i ustawieniu bitu kontrolnego na "1", w przypadku nieparzystej ilości
jedynek, lub na "0" w przypadku parzystej ilości jedynek. Podczas kontroli nieparzystości bit
zabezpieczający ustawia się na jeden, w przypadku parzystej ilości jedynek na polu danych, lub na
zero, jeżeli ilość jedynek jest nieparzysta. Bit kontroli parzystości pozwala wykryć fakt
przekłamania znaku na polu danych, pod warunkiem, że ilość przekłamań jest nieparzysta. Bit ten
może być ustawiony na stałe lub też może być na stałe wyzerowany, może być także pominięty.
3
Ramka zakończona jest bitami stopu. Liczba bitów stopu może wynosić 1, 1.5, lub 2. Bit
stopu zamyka ramkÄ™ po czym Å‚Ä…cze wraca do spoczynku lub realizuje kolejnÄ… transmisje.
1 bit startu 5-8bitów danych 1 bit parzystości 1-2 bity stopu
(obowiÄ…zkowy) (obowiÄ…zkowe) (opcjonalny) (obowiÄ…zkowe)
Rys. 1. Format ramki RS232.
Rys. 2. Przykład ramki SDU. 7 bitów danych, 1 bit parzystości, 2 bity stopu
Czas trwania bitu w jednostce informacyjnej nazywa się odstępem jednostkowym i jest
oznaczany przez Tb. Jego odwrotność ( f = 1/Tb ) określa szybkość transmisji w bodach ( 1 bd = 1
bit/s ). Typowe wartości szybkości transmisji przy asynchronicznej transmisji znakowej wynoszą:
1200, 2400, 4800, 9600, 14400, 19200, 38400, 57600, 115200 bd, co przy założeniu 10-bitowej
długości jednostki informacyjnej i przesyłaniu znaków bezpośrednio jeden za drugim odpowiada
120, 240, 480, 960 itd. znakom na sekundÄ™. Przy asynchronicznej transmisji znakowej przyjmuje
się, że zarówno odbiornik jak i nadajnik pracują z tą samą częstotliwością, jakkolwiek takty
nadawania i odbioru nie są zsynchronizowane. Ze względu na małą długość jednostki
informacyjnej, niewielka różnica częstotliwości generatorów taktu w nadajniku i odbiorniku nie
powoduje błędnego odbioru znaków. Wspomniany bit kontrolny jest najczęściej bitem parzystości,
którego stan określa się według jednej z dwóch zasad: kontrola parzystości ( even parity ), kontrola
nieparzystości ( odd parity ).
Od strony komputera PC najbardziej rozpowszechnionym portem z interfejsem RS232 jest
port COM ze złączem DB9. W starszych rozwiązaniach używane były również złącza DB25.
Wykorzystywane są również inne rozwiązania złącz jak RJ45 lub RJ11. Na złącze DB9 składa się 9
pinów opisanych w tabeli poniżej.
Nr pinu Oznaczenie Opis
DB9
1 DCD Data Carrier Detected. Sygnał wykrycia nośnej.
2 RxD Receive Data. Linia do odbioru danych.
3 TxD Transmit Data. Linia do nadawania danych.
4 DTR Data Terminal Ready. Sygnał gotowości do odbioru danych.
5 GND Signal Ground. Masa sygnałów.
6 DSR Data Set Ready. Gotowość do transmisji danych.
7 RTS Request to Send Data. Żądanie wysłania danych.
8 CTS Clear to Send Data. Zezwolenie na wysłanie danych.
9 RING Ring indicator. Wskaznik dzwonka.
4
Komunikacja pomiędzy urządzeniem nadawczym DTE ( Data Terminal Equipment np.
komputer ) i odbiorczym DCE ( Data Communication Equipment np. modem ) może odbywać
w trojaki sposób:
qð tryb simpleks Å‚Ä…cze skonfigurowane jest na staÅ‚e na jeden z możliwych kierunków
transmisji: DTE Ò! DCE lub DCE Ò! DTE. W tym przypadku jedno z urzÄ…dzeÅ„ nie
uwzględnia sygnałów od drugiego.
qð tryb półdupleks zarówno DTE jak i DCE mogÄ… być stronÄ… nadajÄ…cÄ… oraz odbierajÄ…cÄ…,
jednak nie mogą transmitować danych w tym samym czasie. Urządzenia do dyspozycji
posiadają jeden kanał, który wykorzystywany jest naprzemiennie w obydwu kierunkach
( pytanie odpowiedz ).
qð tryb dupleks dane mogÄ… być przekazywane jednoczeÅ›nie w obu kierunkach pomiÄ™dzy DTE
oraz DCE. Żadna ze stron nie musi uzyskać zezwolenia na nadawanie, kanał logiczny
połączenia jest otwarty na stałe w obie strony.
Przykład transmisji półdupleks z wykorzystaniem wszystkich linii RS232 pomiędzy komputerem z
podłączonym przez port COM modemem, komunikujący się z innym urządzeniem np. odległym
komputerem:
Po nawiązaniu połączenia komputer przechodzi do trybu przesyłania danych. Zakłada się istnienie
jednej tylko linii transmisyjnej pomiędzy komputerami, po której oba komputery mogą przesyłać
dane, oczywiście niejednocześnie. Sterowanie transmisją na dwukierunkowym, półdupleksowym
łączu jest następujące: komputer, który chce wysłać dane zawiadamia o tym współpracujący z nią
modem uaktywniając sygnał RTS ( Request To Send). Modem po stwierdzeniu aktywnego stanu na
linii RTS musi sprawdzić, czy łącze nie jest zajęte przez odległy komputer. O zajętości łącza
świadczy sygnał DCD ( Data Carrier Detected), uaktywniany przez modem w sytuacji, gdy odległy
komputer przesyła dane do modemu. Załączony sygnał DCD oznacza, że odległy komputer
transmituje dane i że on właśnie posiada kontrolę nad łączem. W takim przypadku lokalny
komputer nie może transmitować danych. Jeżeli sygnał DCD wystawiany przez modem jest
wyłączony ( a zatem łącze jest wolne ), to modem zezwala na wysłanie danych uaktywniając
sygnał CTS ( Clear To Send). Od tej chwili lokalny komputer może nadawać dane przez wyjście
TxD.
Tryb półdupleks może także odbywać się bez wykorzystania dodatkowych linii
występujących w interfejsie RS232 (DCD, DSR, RTS, CTS oraz RING). Ma to miejsce np. w
przypadku komunikacji między urządzeniami na zasadzie MASTER-SLAVE. Współpraca urządzeń
na tej zasadzie polega na tym iż urządzenie MASTER wysyła ramkę zapytania do urządzenia
SLAVE, po czym urzÄ…dzenie SLAVE odpowiada urzÄ…dzeniu MASTER na zapytanie. UrzÄ…dzenie
SLAVE nie może bez zapytania wysyłać danych do urządzenia MASTER. Z tego względu na
liniach danych oba urządzenia nie wysyłają danych jednocześnie i możliwe jest istnienie tylko
jednego kanału transmisji. W ćwiczeniu wykorzystano właśnie ten typ współpracy pomiędzy
urządzeniami. Urządzeniem MASTER jest komputer PC, a urządzeniem SLAVE jest przekształtnik
odpowiadający na zapytania wysyłane przez komputer. Linie, dodatkowe, występujące w interfejsie
RS232 nie sÄ… wykorzystane.
3. Moduł komunikacyjny ADAM 4570
3.1. Ogólna charakterystyka modułu
Moduł ADAM 4570 jest urządzeniem które za pośrednictwem sieci Ethernet przekazuje dane
wysyłane na wirtualny port COM komputera PC do odległego urządzenia obsługującego jeden z
interfejsów szeregowych RS232, RS422, RS485. Dla oprogramowania komunikującego się z
odległym urządzeniem moduł jest niewidoczny. Oprogramowanie wysyła dane do odległego
5
urządzenia w taki sam sposób jakby było podłączone bezpośrednio do komputera PC. W
rzeczywistości dane wysyłane są przez kartę sieciową komputera do modułu ADAM który
konwertuje odebrane dane na jeden z wybranych interfejsów np. RS232.
Moduł komunikacyjny ADAM 4570 charakteryzuje się następującymi parametrami :
" 2 porty konwersji Ethernet Ò! RS232/RS422/RS485 ;
" protokół transmisji TCP, UDP, IP ;
" port sieciowy : 10 Base-T IEEE 802.3 ; 100 Base-TX IEEE 802.3u ; RJ-45 ;
" port szeregowy : RS-232/485/422 ;
" szybkość transmisji : RS-232 : 300 bps Ò! 115.2 Kbps ; RS-485 : 300 bps Ò! 230.4 Kbps ;
" format transmisji : kontrola parzystości , kontrola nieparzystości , brak kontroli
" liczba bitów danych : 5, 6, 7, 8 ;
" liczba bitów stopu : 1, 1.5, 2 ;
" kontrola modemu : pełna , RS-232 ;
" kompatybilność : Ethernet version 2.0/IEEE 802.3 , IEEE 802.3u
Rys. 3. Moduł komunikacyjny ADAM 4570
3.2. Konfiguracja modułu
Do konfiguracji modułu należy użyć następującego oprogramowania: EDG COMPort
Configuration Utility oraz EDG COMPort Mapping Utility. Przebieg konfiguracji przy użyciu
tych programów został opisany poniżej.
6
Konfigurację modułu rozpoczyna się od programu EDG COMPort Configuration Utility. Po
uruchomieniu aplikacji pojawia się ekran startowy (Rysunek 3.), na którym widać pasek postępu
podczas wyszukiwania wszystkich urządzeń typu EDG ( Ethernet Data Gateway ). Są to urządzenia
podłączone do sieci komputerowej przewodowej lub bezprzewodowej.
Rys. 4. Ekran startowy po uruchomieniu programu EDG COMPort Configuration Utility
Po uruchomieniu programu po lewej stronie (Rysunek 5) widoczne są nazwy wszystkich urządzeń
EDG. Możemy teraz przystąpić do konfiguracji modułu. Klikając na nazwę urządzenia, ADAM-
4570-H11W-12, przechodzi się do ustawień dotyczących wybranego sprzętu. Do dyspozycji są
cztery zakładki Device Properties dotyczące ustawień ADAMa: System, Network, Port, Security.
Widok zawartości zakładki System przedstawia rysunek 5. W zakładce SYSTEM widoczna jest
nazwa urządzenia w polu Device Name. Nie należy zmieniać domyślnej nazwy.
7
Rys. 5. Przykładowy wygląd okna programu EDG Configuration Utility - zakładka System
Rys. 6. Przykładowy wygląd okna programu EDG Configuration Utility - zakładka Network
8
Zakładka Network służy do konfiguracji ustawień połączenia sieciowego. Nie należy zmieniać
domyślnych ustawień, tylko upewnić się czy są one następujące:
Opcja Wartość
MAC Address 00 D0 C9 A2 57 25
Link Speed Auto Mode
Duplex Mode Auto Mode
IP Address 192.168.41.12
Subnet Mask 255.255.255.0
Default Gateway 192.168.41.1
W następnej zakładce Port należy dokonać zmian ustawienia portu szeregowego PORT1. Należy
wpisać ustawienia portu takie same jakie zostały wybrane przy tworzeniu programu testowego.
Domyślnie są to następujące ustawienia portu pierwszego (PORT 1):
Opcja Wartość
Rodzaj portu RS485
szeregowego
Prędkość transmisji 19200
Liczba bitów stopu 2
Kontrola parzystości Brak
Kontrola transmisji Brak
Liczba bitów danych 8
Jako rodzaj portu szeregowego należy wybrać RS485, ponieważ przekształtnik do którego
podłączony jest moduł ADAM obsługuje właśnie ten rodzaj portu. W tym przypadku ramka danych
dla tego portu jest taka sama jak dla portu RS232. Różnica jest w poziomie napięć na liniach szyn
danych.
9
Rys. 7. Przykładowe okno programu EDG Configuration Utility - zakładka Port
Ostatnia zakładka Security umożliwia zdefiniowanie numerów IP komputerów, które mogą
łączyć się z modułem ADAM. Należy zaznaczyć opcje Allow any IP access która umożliwi
łączenie się z modułem z każdego komputera w sieci, w laboratorium.
Rysunek 8. Przykładowe okno programu EDG Configuration Utility - zakładka Security.
10
Po odpowiednim skonfigurowaniu modułu, należy przycisnąć przycisk Apply. Można przejść do
sprawdzenia komunikacji z Adamem poprzez wykorzystanie sieci Ethernetowej. W systemie
Windows przechodzimy do trybu wiersza poleceń (Start->Uruchom-> cmd ) wpisujemy komendę
ping 192.168.41.12 ( jest to numer IP modułu ADAM ). W przypadku prawidłowej komunikacji
odpowiedzią wynikową od modułu jest 0% utraconych pakietów
Po wykonaniu konfiguracji modułu możemy przejść do ustawiania portu COM przy użyciu
programu EDG COMPort Mapping Utility (Rysunek 9). Program ten pozwoli na stworzenie
wirtualnego portu COM z którego korzystać będzie przykładowy program komunikujący się z
przekształtnikiem. Po lewej stronie okna głównego dostępne są informacje na temat obecnie
używanych portów COM ( Used Ports ), wolnych portów ( Unused Ports ) oraz portów używanych
przez moduły Adam. W celu stworzenia portu COM, który będzie obsługiwany przez ADAM a np.
COM5 , klikamy na (unused Ports) wybieramy COM5, podajemy następujące informacje:
model ADAM a(ADAM 4570) który będzie wykorzystywał w/w port, numer IP modułu
(192.168.41.12) oraz wybieramy port (Port1), który w module będzie przypisany do portu COM5
komputera. Po ustawieniu klikamy Apply. W programie EDG COMPort Mapping Utility w
zakładce modułu Adam 4570 powinien pojawić się COM5 wcześniej przez nas skonfigurowany.
ADAM 4570 jest gotowy do pracy.
Opcja Wartość
Model of Installed Device ADAM 4570
IP Address of Installed Device 192.168.41.12
Port of Installed Device Port 1
Rysunek 9. Przykładowe okno programu EDG COMPort Mapping Utility - przyporządkowanie
portu COM3 do portu1 Adama.
11
4. Połączenie komputera z przekształtnikiem MMB10 za pośrednictwem wirtualnego
portu COM komputera i modułu ADAM 4570
Jednym z zadań jakie należy wykonać w ramach ćwiczenia jest napisanie prostego
programu obsługującego port COM komputera. Program powinien wysyłać ramkę RS232 złożoną z
pięciu bajtów do przekształtnika MMB10 firmy MMB Drives. Ramka wysyłana powinna być na
wirtualny port COM stworzony przy pomocy oprogramowania modułu ADAM. Przekształtnik po
odebraniu ramki odsyła ją z powrotem do komputera w celu potwierdzenia odebrania danych. Cała
ramka przesyłana jest za pośrednictwem modułu ADAM 4570 połączonym z jednej strony do sieci
Ethernet laboratorium a z drugiej strony do przekształtnika za pośrednictwem interfejsu RS485
(rysunek 10). Dane zawarte w wysyłanej do przekształtnika ramce są dowolne. Program należy
napisać w środowisku Borland Builder według opisu znajdującego się w podpunkcie 4.2.
Ethernet
TCP/IP
Sieć H11W
ADAM 4570
Ethernet
RS485
TCP/IP
Komputer PC MMB10
Rys. 10. Połączenie komputera z przekształtnikiem MMB10
4.1. Obsługa portu RS232 przy wykorzystaniu WindowsAPI
W systemie Windows zaimplementowano funkcje, dostępne za pośrednictwem interfejsu
programistycznego WinAPI, do obsługi portów COM. Funkcje te są łatwe w implementacji i
pozwalają na pełną kontrolę nad danymi przesyłanymi za pośrednictwem portu COM. Opis
podstawowych funkcji API potrzebnych do napisania prostego programu wysyłającego paczkę
danych przez port COM przedstawiono poniżej:
" CreateFile - funkcja otwierająca port. Parametrami funkcji są między innym: numer portu
jaki ma zostać otwarty oraz rodzaj dostępu do portu (zapis/odczyt). Funkcja zwraca uchwyt
który wykorzystywany jest do uzyskania dostępu do portu. Przykładowe wywołanie funkcji
w celu otwarcia portu nr 5 w celu zapisu i odczytu danych
CreateFile("COM5",GENERIC_READ|
GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
" GetCommState oraz SetCommState funkcja odczytujÄ…ca i ustawiajÄ…ca podstawowe
parametry portu takie jak prędkość transmisji, ilość bitów danych itd.
" GetCommTimeouts oraz SetCommTimeouts funkcje ustawiajÄ…ce timeout portu np. czas
oczekiwania na dane od urządzeń połączonych do portu COM. Bez ustawienia czasu
oczekiwania na dane jakie ma odebrać komputer przez port, jeśli z jakiś przyczyn dane
zwrotne nie zostaną wysłane (np. ponieważ przekształtnik zostanie wyłączony) program
12
przestanie reagować.
" WriteFile funkcja wysyłająca określoną tablice danych poprzez port.
" ReadFile funkcja odczytując dane jakie zostają wysłane na port komputera
4.2. Programowanie
" Należy uruchomić program Borland Builder a następnie utworzyć nowy projekt. W tym celu
należy z menu File wybrać New Application.
" Na formie Form1 umieścić kontrolkę przycisku. W tym celu z zakładki Standard wybrać
Button i przeciągnąć ją na formę. Przycisk posłuży pózniej do wysyłania ramki poprzez port
COM.
" Na formie umieścić kontrolkę Memo. W tym celu z zakładki Standard wybrać Memo i
przeciągnąć ją na formę. Kontrolka memo posłuży pózniej do wyświetlenia danych
odebranych z przekształtnika.
" Przy pomocy przycisku F12 przełączyć się do widoku kodu zródłowego
" Zadeklarować następujące zmienne na samej górze pliku zródłowego
HANDLE hCom;
DCB dcb;
COMMTIMEOUTS CommTimeouts;
13
" W konstruktorze klasy Tform1 pomiędzy znakami {} wpisać następujący kod
// wyczyszczenie kontrolki memo
Memo1->Lines->Clear();
// otwarcie portu nr 5
hCom=CreateFile("COM5",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
// sprawdzenie czy port został prawidłowo otwarty
if (hCom == INVALID_HANDLE_VALUE)
{
Application->MessageBoxA("Nie otworzono portu","error",0);
}
else
{
// ustawienie parametrów portu
GetCommState(hCom,&dcb);
dcb.BaudRate = CBR_19200;
dcb.ByteSize = 8;
dcb.Parity = NOPARITY;
dcb.StopBits = TWOSTOPBITS;
SetCommState(hCom,&dcb);
// ustawienie timeout-ów portu
GetCommTimeouts(hCom,&CommTimeouts);
CommTimeouts.ReadIntervalTimeout = 150;
CommTimeouts.ReadTotalTimeoutMultiplier = 1;
CommTimeouts.ReadTotalTimeoutConstant = 150;
CommTimeouts.WriteTotalTimeoutMultiplier = 10;
CommTimeouts.WriteTotalTimeoutConstant = 150;
SetCommTimeouts(hCom,&CommTimeouts);
}
14
" Przycisnąć przycisk F12 aby Przejść do widoku Formy
" Przejść do zakładki Events w panelu Object Inspector znajdujący się po lewej stronie.
" Dwukrotnie przycisnąć opcje OnDestroy. Widok automatycznie zostanie przeniesiony do
widoku kodu zródłowego, co pozwoli na obsługę funkcji OnDestroy.
15
" W funkcji OnDestroy wpisać następujący kod:
CloseHandle(hCom);
funkcja OnDestroy jest wykonywana na zakończenie programu, w funkcji tej wykonywany
jest powyższy kod który zamyka port po wyłączeniu programu.
16
" Ponownie przejść do widoku formy przyciskiem F12
" Dwukrotnie przycisnąć postawiony wcześniej przycisk (Button). Spowoduje to
automatyczne przeniesienie do widoku kodu zródłowego i możliwość oprogramowania
funkcji związanej z naciśnięciem przycisku. W programie tym, po naciśnięciu przycisku ma
zostać wysłana ramka danych przez port COM. W tym celu należy wpisać następujący kod
char do_wyslania[5]; // deklaracja tablicy z elementami do wysłania
char odebrane[5]; // dekalracja tablicy z elementami odebranymi
unsigned long zapisano_bajtow,odczytano_bajtow; //zmienne określające ile danych odebrano i
zapisano poprzez port COM
Memo1->Lines->Clear(); // wyczyszczenie kontroli memo
if (hCom == NULL) return; // sprawdzenie czy port został wcześniej prawidłowo otwarty
do_wyslania[0] = 1; // jedna z pięciu danych wysyłanych poprzez port COM
do_wyslania[1] = 85; // jedna z pięciu danych wysyłanych poprzez port COM
do_wyslania[2] = 0; // jedna z pięciu danych wysyłanych poprzez port COM
do_wyslania[3] = 255 ; // jedna z pięciu danych wysyłanych poprzez port COM
do_wyslania[4] = 1 ; // jedna z pięciu danych wysyłanych poprzez port COM
WriteFile(hCom,do_wyslania,5,&zapisano_bajtow,NULL); // wysłanie bufora
ReadFile(hCom,odebrane,5, &odczytano_bajtow,NULL); // odbiór bufora
if (odczytano_bajtow!=0) // sprawdzenie czy przyszło potwierdzeni ramki z przekształtnika
for (int i=0; i< 5; i++) // wyświetlenie odebranych danych w kontrolce memo
Memo1->Lines->Add((int)odebrane[i]);
else Memo1->Lines->Add("Brak odpowiedzi");
" Uruchomić program naciskając klawisz F9 lub przyciskając zielony przycisk Run
17
5. Przebieg ćwiczenia
" Zapoznać się z budową stanowiska laboratoryjnego (załączyć zasilanie modułu ADAM oraz
przekształtnika podłączonego do modułu)
" Skonfigurować moduł ADAM 4570 według opisu z rozdziału 3 (skonfigurować port modułu
oraz stworzyć wirtualny port COM)
" Napisać program testujący komunikacje z przekształtnikiem według opisu z rozdziału 4.
" Zarejestrować, za pomocą oscyloskopu, pojedynczą paczkę danych SDU (1 bajt).
Zdekodować poszczególne bity i sprawdzić czy zdekodowana wartość pokrywa się z
wartością jaka jest wysyłana przez program testujący
" Zarejestrować, za pomocą oscyloskopu, całą ramkę (5 bajtów), sprawdzić czy wartości
poszczególnych bajtów w ramce odpowiada wartością przesyłanym przez program testujący
" Zmienić w programie testującym oraz w konfiguracji modułu ilość bajtów stopu
" Zarejestrować ponownie, za pomocą oscyloskopu, pojedynczą paczkę danych SDU i
porównać ją z wcześniej zarejestrowaną
18
Wyszukiwarka
Podobne podstrony:
Informacja dotyczaca wykorzystanych materialowSterowanie rejestrami przesuwnymi z wykorzystaniem interfejsu SPI na przykładzie 6 cyfrowego wyświetlab2Zarzadzanie dostepem do zasobów przy wykorzystaniu grupPrzetwornik? z interfejsem RS23227 Scharakteryzuj schemat przesylania informacjidwukierunkowy interfejs RS232 RS 485interfejs RS232 C dla Commodore16 stykowa klawiatura z interfejsem RS2324 Scharakteryzuj schemat przesyłania informacjiMożliwości wykorzystania przez PSE Operator formuły ppp przy rozbudowie infrastruktury przesyłowejSN017a Informacje uzupełniające Nośność połączeń z przykładką środnika przy ścinaniuRS232 interfaceWykorzystanie technologii informacyjnej 2008więcej podobnych podstron