Sterowanie pecetem.



Masz problem? Zapytaj na forum elektroda.pl

Poprzedni Następny
Wiadomo¶ć
Spis tre¶ci
From: "Kpt.Zbik" <krzysiekr_at_nospam_aldec.katowice.pl>
Subject: Sterowanie pecetem.
Date: Wed, 23 Feb 2000 12:33:55 GMT


Mam robote polegajaca na sterowaniu pecetem wielu mikrokotrolerow, te
mikrokontrolery juz sa oprogramowane, lecz teraz interesuje mnie
informacja jak to zrobic od strony peceta:
-po jakim zlaczu, lub karcie
-protokoly komunikacyjne
-sam kod(c++,c) lub psudokod-nie chodzi mi o gotowy kod, tylko cos co
pozwoli mi zaczac- nawet najprostsze rzeczy.

zgory dziekuje.



Poprzedni Następny
Wiadomo¶ć
Spis tre¶ci
From: =?iso-8859-2?Q?Pawe=B3?= Sklarow <p.sklarow_at_nospam_mikrotel.com.pl>
Subject: Re: Sterowanie pecetem.
Date: Wed, 23 Feb 2000 14:05:39 -0100


Najtaniej i najprosciej bedzie po RS'ie, sygnał przesyłany różnicowo (RS-485).

Podsylam Ci moją odpowiedz na wczesniejsze takie zapytanie:

(...) najlepszym rozwiazaniem wydaje sie skorzystanie z
istniejacych protokolow.
Najprostszy jest protokol "MODBUS". Sprawdz te linki:

http://main.tuniv.szczecin.pl/linux/doc/other/SAL/Z/1/MODBUS.html
http://gateway.proloc.com.pl/zdzich/Porownanie_sieci.htm

Duzo informacji znajduje sie w ksiazce:
"Szeregowe interfejsy cyfrowe",
Wojciech Mielczarek,
Helion 1993,
ISBN 83-85701-23-0

Uproszczony opis protokolu MODBUS (przepisalem z ww ksiazki):

Kontrolery urzadzen pracujacych w systemie MODBUS komunikuja sie przy
wykorzystaniu protokolu MASTER-SLAVE, tylko jedno urzadzenie moze
inicjowac transakcje (MASTER), pozostale odpowiadaja jedynie na zapytania
mastera. Transakcja sklada sie z zapytania MASTER->SLAVE i odpowiedzi
SLAVE->MASTER. Odpowiedz zawiera żądane dane lub potwierdzenie realizacji
zlecenia. (...)
Protokol okresla format wiadomosci (...). Zawiera on adres odbiorcy, kod
funkcji reprezentujacy żądane polecenie, dane oraz sume kontrolna.
(...) Jesli slave wykryje blad przy odbiorze wiadomosci lub nie jest w
stanie zrealizowac polecenia przesylaspecjalny komunikat o bledzie
do mastera. W systemie wiadomosci sa zorganizowane w ramki o okreslonym
poczatku i koncu.
(...) definiuje sie dwa typy ramek: ASCII lub RTU.
Ramka ASCII:
Kazdy bajt przesylany w postaci dwoch znakow ASCII. Zaleta jest to, ze
pozwala na dlugie
okresy miedzy znakami bez powodowania bledow. Format znaku jest
nastepujacy:
- system kodowania: hex, znaki ASCII '0'-'9', 'A'-'F'
- jednostka informacyjna: ograniczona znakami start i stop, 10-bitowa
(czyli np. standardowe
9600,8,n,1)
Stosuje sie zabezpieczenie czesci inforamcyjnej ramki kodem LRC.
Znacznikiem poczatku ramki jest znak ":" (ascii 3ah). (...) Urzadzenie
po wykryciu znacznika
pocz. ramki sprawdza, czy pole adresowe zawiera jego adres wlasny. Jesli
tak to odczytuje
zawartosc pola funkcji i zwiazana z nia zawartosc pola danych.
Czesc informacyjna ramki (bez znaku ":") zabezpiecza pole kontrolne LRC.
Ramka konczy sie
przeslaniem dwoch znakow CR i LF.

Format ramki:

Znacznik poczatku | Adres | Funkcja | dane | LRC | zn.konca
1 znak ":" | 2 znaki | 2 znaki | n znakow | 2 znaki | CR LF


LRC: obliczanie polega na sumowaniu kolejnych bajtow wiadomosci,
odrzuceniu przeniesien,
i na koniec wyznaczeniu uzupelnienia dwojkowego wyniku. Obejmuje cala
wiadomosc za wyjatkiem znacznikow pocz. i konca ramki.

char lrcgen(unsigned char *fptr,unsigned nb)
{
unsigned char lrc, sum = 0;
while (nb--)
sum+=*fptr++;
lrc = ~sum + 1;
return rlc;
}

Ramka w trybie RTU wyglada z grubsza tak jak ASCII, tylko ze inne sa
znaczniki poczatku i konca ramki (kryterium czasowe), bajty danych sa
przesylane jawnie (jeden bajt - jeden znak), i liczona jest suma kontrolna
CRC16. Nie bede dokladniej opisywal ramek RTU, poniewaz wydaje mi sie, ze
wystarcza Ci ramki ASCII.

Poprzedni Następny
Wiadomo¶ć
Spis tre¶ci
From: "chris" <krzysiekr_at_nospam_aldec.katowice.pl>
Subject: Re: Sterowanie pecetem.
Date: Wed, 23 Feb 2000 15:13:37 GMT


Wielkie Dzieki!!!