Documente Academic
Documente Profesional
Documente Cultură
RCIII
RCIII
2007
Index
Protocoale de comunicatie......................................................................................3 MODBUS.................................................................................................................4 Comunicatie Client Server...................................................................................................4 Descriere generala................................................................................................................ .5 . Modelul de date MODBUS.....................................................................................................7 Modelul de adresare MODBUS..............................................................................................7 Tranzactii MODBUS.......................................................................................................... .....8 . Tipuri de functii................................................................................................................ .......8 . Tipuri de MODBUS.................................................................................................................9 MODBUS RTU..................................................................................................9 MODBUS ASCII.............................................................................................10 MODBUS/TCP................................................................................................10 Controller Area Network (CAN)............................................................................11 Broadcast..............................................................................................................................11 Magistrala CAN.....................................................................................................................11 Descriere protocol CAN........................................................................................................11 Mesaje CAN.............................................................................................................. ...........12 . Detectarea erorilor................................................................................................................13 PROFIBUS.............................................................................................................14 Fieldbus................................................................................................................................ 14 . Descriere generala PROFIBUS............................................................................................15 Variante de PROFIBUS........................................................................................................16 PROFIBUS-FMS.............................................................................................16 PROFIBUS-DP................................................................................................16 PROFIBUS-PA................................................................................................16 Tehnologii de transmisie.......................................................................................................17 Comparatie intre MODBUS, CAN si PROFIBUS...................................................17 Bibliografie............................................................................................................18
1 Protocoale de comunicatie
Un protocol de comunicatie este prin definitie un set de reguli necesare pentru a transmite informatie printr-un canal de comunicatie. Aceste reguli se aplica pentru reprezentarea datelor, pentru transmisie, autentificare si detectare de erori ce pot aparea in timpul transmisiei. Un protocol de comunicatie trebuie sa urmereasca urmatoarele principii: 1. sa fie usor de implementat. Acest lucru poate fi realizat prin impartirea protocolului in nivele interconectate, fiecare nivel realizand un anumit numar de operatii. Se incearca separarea clara a acestor nivele, interactiunea dintre ele sa fie minima, un nivel interactionand numai cu nivelul de deasupra sau cu cel de dedesubt. Prin aceasta separare pe nivele, protocolul este mult mai usor de testat pentru ca se poate testa fiecare nivel separat si nu necesita cazuri de test foarte complicate. Cel mai utilizat model pe nivele este modelul OSI (Open Systems Interconnection Basic Reference Model). Acest model are 7 nivele: nivelul aplicatie nivelul prezentare nivelul sesiune nivelul transport nivelul retea nivelul legatura de date nivelul fizic
2. siguranta se refera la detectarea erorilor si corectarea lor. Masura calitatii protocolului este data prin numarul de biti eronati / numar de biti transmisi. De exemplu in telefonie o rata de 10-4 BER (bir error rate) este considerata defect de comunicatie. O rata de 10-5 BER este acceptabila dar sunt necesare lucrari de mentenanta pentru ca aceste erori sunt sesizabile la nivelul conversatiei. Pentru transmiterea de date este necesara o rata de eroare de maxim 10-12BER . O rata mai mare de eroare ar afecta datele, care pot fi date de importanta foarte mare, precum cele transmise de banci. Daca apare o rata de eroare mai mare, atunci aceste erori trebuie detectate si 3
corectate. In general detectarea erorilor se face prin tranmiterea a unor informatii suplimentare odata cu datele efective. De exemplu, protocolul TCP(Transmission Control Protocol) presupune trimiterea sumei bitilor din pachet in headerul pachetului. Dar aceasta suma nu acopera erorile de anulare ale pachetelor sau de ordine de transmitere. Pentru a detecta cat mai multe erori este necasar de cat mai multe informatii suplimentare. Dar cu cat exista mai multa informatie suplimentara protocolul devine din ce in ce mai costisitor atat ca putere de calcul, dar si ca largime de banda. 3. flexibilitate se refera la capacitatea protocolului de a descoperi problemele de topologie ale retelei. In continuare sunt prezentate 3 dintre cele mai cunoscute protocoale de comunicatie folosite in mediul industrial.
2 MODBUS
2.1 Comunicatie Client Server
Figura 1: Comunicatia Client - Server MODBUS Comunicatia Client-Server este o forma de comunicatie in care avem 2 tipuri de entitati: Client si Server. Atat clientul cat si serverele conectate la retea sunt noduri ale acelei retele. In acest tip de comunicare clientul face cereri catre server pentru anumite servicii. Serverul trebuie sa indeplineasca aceste servicii dand clientului un raspuns corespunzator. Cel mai intalnit model client/server este acela in care avem un server (daemon) care este tot timpul activ si mai multi clienti. Un exemplu elecvent este un server de WEB care primeste cereri concurente de la mai multi clienti (browser) de WEB. Putem intalni deasemenea si o relatie de master/slave (stapan/sclav). In aceasta relatie un master este raspunzator pentru mai multi slave. In momentul in care comunicatia sa stabilit directia de control este intodeauna de la master catre slave. 4
se poate implementa foarte usor lucreaza cu biti si cuvinte fara sa puna restrictii asupra producatorilor nu exista o licenta comerciala, specificatiile fiind publice.
MODBUS ofera un mod de comunicatie intre mai multe sisteme diferite conectate la aceeasi retea. De exemplu prin intermediul acestui protocol un sistem de masurare a temperaturii si a umiditatii poate transimite unui calculator rezultatele obtinute. Acest protocol este cel mai des folosit pentru a conecta un calculator supervizor cu un terminal la distanta (RTU : remote terminal unit) sau in achizitia de date (SCADA). Intr-o retea pot exista un master si maxim 247 de slaves. Protocolul MODBUS defineste o unitate de date PDU (Protocol Data Unit) care este independenta de modalitatea de comunicare intre dispozitive. Deasemenea defineste si o alta unitate de date ADU(Application Data Unit) la nivel de apliatie. Maparea protocolului pe diferite magistrale sau retele poate aduce diferite modificari pentru aceasta unitate. Protocolul defineste forma cererii formulate de client si forma raspunsului oferit de server.
Figura 2: Cadrul unui mesaj MODBUS O unitate ADU este construita de client atunci cand initiaza o tranzactie MODBUS. 5
Codul de functie spune serverului ce fel de actiune sa execute. Este codat pe 8biti, deci exista 256 de coduri de functii. Valorile intre 128 si 255 sunt rezervate pentru a coda raspunsurile in caz de eroare. Codul 0 nu este valid. Pentru a defini actiuni multiple se pot adauga coduri de subfunctii. Campul de date din ADU contine informatie aditionala care va fi folosita de server in actiunea pe care trebuie sa o execute. Acest camp poate contine informatie legata de registrii, de cantitatea de date care trebuie procesata sau numarul de octeti cu informatie reala din camp. Acest camp poate fi si gol, in acest caz serverul nu are nevoie de informatie suplimentara pentru a executa actiunea indicata de codul de functie. Daca totul decurge fara nici o problema, serverul executand actiunea dictata de codul de functie, campul de date din raspuns va contine informatia ceruta. In cazul unei erori de executie a functiei ceruta de client campul va contine un cod de eroare care va dicta modul in care eroarea va fi interpretata.
Figura 3: Tranzactie fara erori Atunci cand un server trimite un raspuns clientului se foloseste de campul functie pentru a indica un raspuns normal(error-free) sau aparitia unei erori (exception response). Pentru un raspuns normal serverul va pune in codul functie acelasi cod primit pentru executie. In cazul unei erori serverul va trimite un cod care este echivalent cu codul primit pentru executie dar in care cel mai semnificativ bit este trecut pe 1.
Figura 4: Tranzactie cu erori Dimensiunea unui PDU este limitata de dimensiunea primei implementari a unei linii seriale (max. RS485 ADU = 256 bytes) PDU pentru o comunicare seriala = 256 Adresa server (1 byte) CRC (2Bytes) = 253 bytes. ADU serial = 256 bytes ADU TCP = 253 + Header (7 bytes) = 260 bytes Protocolul MODBUS defineste 3 tipuri de PDU-uri: PDU cerere, mb_req_pdu PDU raspuns, mb_rsp_pdu PDU raspuns eroare, mb_excep_rsp_pdu Pentru codarea datelor si a adreselor MODBUS foloseste o reprezentare big-Endian. In acesta reprezentare atunci cand un numar nu poate fi reprezentat doar pe un byte, cel mai semnificativ octet este trimis primul.
intrare Registrii temporari Cuvant de 16 biti Read-Write Acest tip de date poate fi modificat de orice aplicatie
Diferentele intre intrari si iesiri, intre date pe 1 bit sau 16 biti nu impun o tratare speciala la nivel de aplicatie. Nu este nici o problema si in practica se foloseste foarte des suprapunerea celor 4 tabele. Pentru fiecare tabela primara protocolul permite selectia a 65536 de variabile.
Figura 5: Tipuri de functii Coduri de functii publice: sunt garantat unice bine definite validate de comunitatea MODBUS-IDA.org au o documentatie publica au fost testate de-a lungul timpului pe langa codurile care definesc functii folosite la momentul actual exista si coduri care sunt rezervate pentru utilizari viitoare
Coduri de functii definite de utilizatori: utilizatorul poate alege un cod si implementa o functie care nu este definita prin specificatiile oficiale Codurile sunt implementate de fiecare utilizator in parte, acelasi cod putand fi implementat diferit de utilizatori diferiti daca un utilizator vrea sa mute o functie din codurile utilizator in codurile publice trebuie sa initieze un RFC prin care sa faca cunoscuta publicului noua functie, iar daca functia este considerata suficient de importanta ii va fi atribuit un cod din lista de coduri publice nefolosite Coduri rezervate de functii sunt coduri de functii rezervate pentru anumite companii 9
MODBUS ASCII este caracterizat de o reprezentare a datelor care este usor de inteles de catre un operator uman. Cea mai recenta versiune de MODBUS peste TCP/IP(Ethernet) este MODBUS/TCP. Este mai usor de implementat decat MODBUS/ASCII sau MODBUS/RTU pentru ca nu necesita calculul sumelor de control deoarece verificarea corectitudinii comunicatiei este deja implementata la nivel de TCP.
inceput prin caracterul special : iar la final prin caracterul special carriage return/linefeed. Mesajele ASCII sunt mai putin eficiente si mai putin sigure decat mesajele RTU. Una din cele frecvente aplicatii a protocolului MODBUS ASCII este in retelele de comunicatie unde protocolul MODBUS RTU nu poate fi folosit din cauza caracterelelor care nu pot fi transmise ca un flux continuu de date catre dispozitivul slave. Ca si MODBUS RTU , MODBUS ASCII este state-less. Deasemenea nu necesita restabilirea conexiunii sau urmarea unor proceduri speciale pentru detectarea si tratarea erorilor. Deasemenea erorile sunt semnalate de neprimirea unui raspuns de la dispozitivul slave.
2.7.3 MODBUS/TCP
MODBUS/TCP este varianta TCP a protocolului MODBUS bazat pe MODBUS RTU. Acesta versiune de protocol poate fi folosita pentru uzul Intranet sau Internet. MODBUS/TCP foloseste o codare binara a datelor, plus mecanismul de detectare a erorilor de transmisie oferit de TCP/IP. Spre deosebine de ASCII si RTU, MODBUS/TCP este un protocol orientat pe conexiune. Permite mai multe conexiuni concurente catre acelasi dispozitiv slave sau mai multe conexiuni concurente catre mai multe dispozitive slave. In cazul unor erori de timeout sau de protocol dispozitivul master va restabili conexiunea si va repeta mesajul. La momentul actual portul TCP 502 este folosit ca port standard MODBUS/TCP .
Magistrala CAN este o magistrala seriala, diferentiala, de broadcast care a fost dezvoltata in anii 1980 de Robert Bosch GmbH pentru a conecta mai multe module de control pentru dispozitive electronice. Comunicatia diferentiala este o metoda de a trimite electronic informatia prin separarea semnalelor complementare si trimiterea lor pe 2 fire separate. La capatul receptor al comunicatiei se realizeaza scaderea celor 2 semnale ceea ce accentueaza semnalul util si anuleaza zgomotul de fond. Acest lucru face ca acest tip de comunicatie sa fie potrivit pentru medii cu voltaj scazut si in plus ofera rezistenta in cazul interferentelor electromagnetice. Magistrala CAN a fost proiectata in special electromagnetice si poate ajunge pana o rata de 1Mbps. pentru medii cu interferente
Spre deosebire de Ethernet CAN nu poate trimite blocuri mari de mesaje de la un nod la altul sub controlul unui dispozitiv master.
12
Figura 6: Arhitectura pe nivele ISO 11898 Celelalte nivele din OSI sunt acoperite de un alt protocol, de exemplu CANopen sau CANKingdom. CANOpen este dezvoltat si intretinut de un grup international de utilizatori, CAN in Automation (CIA).
Mesajele broadcast sunt scurte de maxim 94 de biti. Acestea nu contin explicit o adresa destinatie, dar datorita continutului lor se pot adresa numai anumitor destinatari. Exista 4 tipuri de mesaje CAN: mesaj de date : mesajul care contine o informatie utila mesaj eroare : contine eroarea aparuta in executie. Nodul care transmite eroarea va incerca sa trimita mesajul de mai multe ori urmarind un algoritm al carui scop este de a nu supra incarca reteaua mesaj de supraincarcare : este similar cu mesajul de eroare si anunta cand un nod este supraincarcat mesaj cerere : este similar unei cereri catre un nod pentru a trimite o informatie Nodul X trimite un mesaj catre toti participatii : doresc datele care poarta numele Y Datele pe care le primeste trebuie sa aiba aceeasi dimensiune ca dimensiunea indicata in cerere. Aceste 4 tipuri de mesaje vin in 2 formate : format de baza si format extins. Cele 2 formate difera prin lungimea identificatorului care stabileste prioritatea mesajului 13
si care pentru formatul de baza este de 11 biti iar pentru cel extins este de 29 de biti:
Figura 7: Formatul de baza a mesajelor CAN SOF Start of Frame RTR Remote Transmission Request folosit pentru a diferentia un mesaj de date de unul cerere. IDE Identifier Extension care diferentiaza un cadru de baza de unul extins DLC Data Length Code numarul de biti din campul de date CRC care sifgura integritatea cadrului de date EOF End of Frame IFS Intermission Frame Space numarul minim de biti care separa 2 mesaje consecutive
Figura 8: Formatul extins al mesajelor CAN Spre deosebire de formatul de baza formatule extins are cateva dezavantaje: latenta mai mare pentru ca necesita cu 20% mai multa banda iar nivelul de detectare a erorilor este mai scazut.
semnalelor de pe magistrala. Fiecare nod care transmite poate observa nivelul bitilor pe care ii trimite si nivelul bitilor pe care ii primeste. In acest mod se pot detecta erori globale sau erori locale ale nodului sursa bit stuffing codarea datelor este testata la nivel de bit Daca o eroare este detectata automat se genereaza un mesaj de eroare care va anunta celelalte noduri sa ignore mesajul primit.
4 PROFIBUS
4.1 Fieldbus
Fieldbus este o magistrala pentru retelele distribuite industriale in timp real. Un sistem industrial, de exemplu o linie de asamblare, are nevoie de un sistem ierahizat de control pentru a functiona in parametrii normali. In aceasta ierarhie exista la nivelul superior o interfata Om-Masina (HMI - Human Machine Interface), de unde un operator poate monitoriza si controla intregul sistem. Acesta interfata comunica cu urmatorul nivel, care e de obicei reprezentat prin controlere logice programabile (PLC), printr-un sistem care poate fi in timp real sau nu, de exemplu Ethernet. La cel mai jos nivel gasim magistrala Fieldbus care conecteaza PLC-urile la componentele care realizeaza diverse actiuni, de exemplu senzori, motoare, console, intrerupatoare, contacte etc. Sistemele analoage de control produc semnale de 4-20mA care sunt plimbate intre centrul de control si unitatile de procesare. Necesitatea transmiterii acestor semnale de la un nivel la altul in sistemul ierarhizat de control a dus la aparitia unui numar foarte mare de cabluri. Cu cat sistemul este mai complex cu atat numarul de cabluri este mai mare. De aceea a aparut necesitatea construirii unei magistrale comune la care aceste instrumente sa fie conectate, eliminind astfel un numar mare de cabluri.
Datorita cererilor diferite de pe piata au aparut mai multe implementari ale acestui tip de magistrala. In timp principalele caracteristici ale diferitelor magistrale au fost implementate in PROFIBUS. Folosirea intensa a Internetului in mai toate domeniile industriei a dus la aparitia unei versiuni de protocol peste Ethernet care poarta denumirea de PROFInet.
Figura 11: Versiuni PROFIBUS Pe langa aceste 3 tipuri in functie de profil mai pot fi adaugate PROFIsafe, specific aplicatiilor de securitate si PROFIdrive pentru aplicatiile de control a miscarii
16
4.3.2 PROFIBUS-DP
PROFIBUS-DP (Descentralized Peripherals) este cea mai rapida varianta de PROFIBUS necesitand mai putin de 2ms pentru transmisia unui 1Kbyte de date de intrare sau iesire. Este un protocol optimizat pentru comunicare intre sisteme automate descentralizate. Comunicarea se face prin transferuri periodice. Fiecare dispozitiv din retea trimite periodic datele de intrare si iesire catre dispozitivul de control automat si catre dispozitivul master de clasa 1. Procesele care au loc in retea sunt monitorizate cu un dispozitiv special, diferit de automatul de control. Acest dispozitiv poarta denumirea de master de clasa 2 si se ocupa cu diferite functii de monitorizare si control. Desi initial nu a fost necesarea implementarii de operatii aciclice , ulterior a aparut o noua varianta a PROFIBUS-DP , PROFIBUS-DPV1 Pe langa operatiile periodice acest protocol pune la dispozitia utilizatorului si functii acicle precum mesaje de alarma, de diagnostic, monitorizare si parametrizare
4.3.3 PROFIBUS-PA
Acest protocol bazat pe PROFIBUS-DPV1 a fost special proiectat pentru automatizarea de procese. Spre deosebire de liniile de productie care necesita o perioada de ciclu mica de cateva milisecunde, aici sunt luate in considerare alte criterii. Transmisia sa fie sigura unele dispozitive sunt alimentate de cablurile magistralei 17
18
6 Bibliografie
http://www.modbus.org/ http://www.modbus.org/tech.php http://en.wikipedia.org/wiki/MODBUS http://www.protocessor.com/techsupport/MODBUS_RTU_Protocol_Overview.asp http://www.modbusdriver.com/doc/libmbusmaster/modbus.html http://www.simplymodbus.ca/FAQ.htm http://en.wikipedia.org/wiki/OSI_model http://en.wikipedia.org/wiki/Communications_protocol http://en.wikipedia.org/wiki/Client-server http://searchnetworking.techtarget.com/sDefinition/0,,sid7_gci211796,00.html http://searchnetworking.techtarget.com/sDefinition/0,,sid7_gci783492,00.html http://www.can-cia.org http://en.wikipedia.org/wiki/Controller_Area_Network http://www.mjschofield.com/index.htm http://www.kvaser.com/can/ http://focus.ti.com/lit/an/sloa101/sloa101.pdf http://en.wikipedia.org/wiki/Broadcasting_%28computing%29 http://en.wikipedia.org/wiki/Differential_signaling http://www.kvaser.com/can/intro/index.htm http://www.yokogawa.com/fbs/fbs-whatis-en.htm http://www.samson.de/pdf_en/l453en.pdf http://www.omega.com/literature/transactions/volume2/digitalsignal4.html http://en.wikipedia.org/wiki/Fieldbus http://www.profibus.com/pall/meta/downloads/article/00454
19