CANBUS (Controller Area Network) võrkude kasutusala
Sissejuhatus
CAN (Controller Area Network) on robustne serial kommunikatsiooniprotokoll, mida kasutatakse laialdaselt tööstusautomaatikas ja transpordisüsteemides. Algselt arendas Bosch selle 1980ndatel autotööstuse vajaduste rahuldamiseks, et võimaldada erinevate elektrooniliste juhtseadmete (ECU) vahel kiiret ja usaldusväärset andmevahetust. Tänu oma tõhususele, usaldusväärsusele ja vigade taluvusele on CAN võrgud leidnud kasutust paljudes teistes tööstusharudes.
Kasutusalad
- Autotööstus
- Elektrilised juhtseadmed (ECU-d): CAN-võrku kasutatakse peaaegu kõigis kaasaegsetes sõidukites erinevate ECU-de vaheliseks kommunikatsiooniks, sealhulgas mootori juhtimise, pidurite, kliimaseadmete ja muude oluliste süsteemide juhtimiseks.
- Mehaanilised süsteemid: CAN võimaldab koordineerida keerukaid mehhanisme, nagu ABS (antiblokeerimissüsteem), EPS (elektriline roolivõimendi) ja turvapadjad.
- Infotainment ja mugavussüsteemid: CAN-võrk ühendab ka mugavus- ja meelelahutussüsteeme, sealhulgas navigatsiooni, audio-video seadmeid ja keskkontrollisüsteeme.
- Tööstusautomaatika
- Masinate ja robootika juhtimine: CAN-võrke kasutatakse laialdaselt tööstuslike masinate ja robotite juhtimisel, võimaldades usaldusväärset andmevahetust juhtseadmete ja sensorite vahel.
- Protsesside järelevalve ja kontroll: CAN-võrk aitab optimeerida protsesside juhtimist ja jälgimist, pakkudes reaalajas andmeid masina seisundi ja toimivuse kohta.
- Meditsiinitehnoloogia
- Meditsiiniseadmed: CAN-võrku kasutatakse mitmesugustes meditsiiniseadmetes, sealhulgas MRI-aparaatides, patsiendi jälgimissüsteemides ja kirurgiarobotites, et tagada kriitiliste andmete kiire ja usaldusväärne vahetus.
- Patsiendi jälgimissüsteemid: CAN võimaldab meditsiiniseadmetel suhelda omavahel, näiteks patsiendi jälgimissüsteemid, mis ühendavad mitmesuguseid sensoreid ja kuvaseadmeid, et tagada patsiendi seisundi pidev jälgimine.
- Lennundus ja kaitsetööstus
- Lennuki elektroonikasüsteemid: CAN-võrke kasutatakse lennuki elektroonikasüsteemides, sealhulgas navigatsiooni- ja juhtimissüsteemides, et tagada andmete kiire ja täpne edastamine kriitiliste komponentide vahel.
- Sõjaväesüsteemid: CAN-võrke kasutatakse ka sõjaliste sõidukite ja seadmete juhtimisel, pakkudes usaldusväärset ja turvalist andmevahetust isegi äärmuslikes tingimustes.
- Raudteetransport ja laevandus
- Raudteesüsteemid: CAN-võrke kasutatakse rongide ja trammide juhtimissüsteemides, sealhulgas mootorijuhtimises, pidurisüsteemides ja reisijainfotahvlites.
- Laevade juhtimissüsteemid: CAN-võrku kasutatakse ka laevade juhtimissüsteemides, et koordineerida navigatsiooni-, mootori- ja turvaseadmeid.
Järeldus
CAN-võrgud on oma paindlikkuse, töökindluse ja suutlikkuse tõttu leidnud laialdast kasutust mitmesugustes tööstusharudes. Alates autotööstusest ja tööstusautomaatikast kuni meditsiinitehnoloogia ja lennunduseni on CAN-võrgud hädavajalikud paljude kriitiliste süsteemide tõhusaks ja turvaliseks toimimiseks.
Viited ja kasulikud lingid
- Bosch – CAN Specification
- CAN in Automation (CiA)
- Texas Instruments – Introduction to the CAN Protocol
- Vector – CAN Protocol Overview
Need viited ja lingid pakuvad põhjalikku teavet CAN-võrkude kohta ning aitavad sügavamalt mõista nende kasutusala ja eeliseid erinevates tööstusharudes.
1. Tööväljavõrgu CANBUS protokolli kirjeldus
Kontrollersidevõrk (Controller Area Network, CAN) on jadaliides andmete reaalajaliseks edastamiseks kiirusega kuni 1 Mbit/s (megabitti sekundis), mille eeliseks on suurepärased veaparanduse võimalused. Seda kasutatakse kõrge kiirusega ISO 11898 andmete ülekandmiseks ja ka madala kiirusega ISO 11519 rakendustes. Seadmetevaheliseks kommunikatsiooniks kasutatakse OKI, MICROCHIP, MOTOROLA jt toodetud liideseadaptereid.
Füüsiline võrgu elemendiks on paralleeljuhtme liin (pilt 6.1).
Pilt 6.1. Paralleeljuhtme liin [64]
Mööda CANi siini saadetakse samaaegselt edastatavad andmed kõigile võrguseadmetele laiali (pilt 6.2).
Pilt 6.2. CANi siin [64]
Tööpõhimõte
CAN-võrkude tööpõhimõte baseerub faktil, et iga moodul on võimeline sõnumeid edastama, kui siin vaba. Kuna igal sõnumil on prioriteet, siis mitme ülekandemooduli puhul edastatakse kõige kõrgema prioriteediga sõnum enne kui madalama prioriteediga. Analoogsel moel, kui mõnda moodulisse jõuab samaaegselt rohkem kui üks sõnum, siis käib vastuvõtmine vastavalt nende prioriteedile. Iga CAN-võrku kuuluv moodul võib nõuda sõnumite saatmist temale, saates selleks päringuid. Iga korrektselt vastu võetud sõnum kinnitatakse, saates vastav kinnitussõnum. Vastus saadetakse ka siis, kui sõnumi vastuvõtmine või täitmine ebaõnnestus mingi vea tõttu. CAN-võrk tunneb ära püsivigade esinemise ja sulgeb automaatselt vigase mooduli.
Sõnumi sisusse on kodeeritud spetsiaalne identifikaator – CAN-võrgu spetsiifiline, mis kannab informatsiooni edastatava sõnumi kohta (t, P, F).Kõik vastuvõtjad võtavad informatsiooni vastu ja igaüks testib identifikaatorit, et vaadata kas see sõnum on mõeldud vastuvõtjale. Kui sõnum on vastuvõtjale sobilik, võetakse see vastu ja töödeldakse, kui mitte, jäetakse see sõnum vahele. Identifikaator sisaldab infot sõnumi prioriteedi kohta, mis jaotatakse vähemalt kahele tasandile: kõrge ja madal. Informatsiooni edastamine käib üle paralleelse keerutatud juhtmepaari või telefoniliini, kui tekkivad häired ei ole kõrged.
CAN-võrk on paindlik ja võimaldab lisada uusi seadmeid juba toimivasse CAN-võrku ilma, et selles oleks vaja teha uusi riistvaralisi või tarkvaralisi lisamuudatusi.
CAN kasutabNRZ (Non Return to Zero) meetodit andmete kodeerimiseks. NRZ-kodeerimine tekitab lühikesed sõnumid minimaalse arvu üleminekutega ja ei ole väliste häirete poolt oluliselt mõjutatav.
CAN-võrkudes antakse kõrgem prioriteet nendele parameetritele (informatsioonile), mis muutuvad teistest kiiremini. Näiteks automootori pöörded muutuvad sagedamini kui selle temperatuur.
Parameetrite prioriteedi määramiseks kasutatakse liikluse ja põrke tuvastusega pöördusmeetodit (Carrier Sense, Multiple Access with Collision Detect (CSMA/CD). Sõnumi prioriteet salvestatakse identifikaatorisse süsteemi (CAN-võrgu) kavandamise esmases faasis. Kõige kõrgem prioriteet antakse kõige madalama digiväärtusega identifikaatorile.
1.1 Andmepaketi kirjeldus
CAN-süsteemis edastatakse ja võetakse vastu informatsioon andmepaketi formaadis (sõnumi kaader, message frame).
CAN-ist on 2 versiooni – 2.0А ja 2.0В. 2.0А versiooni iseloomustab 11-bitine identifikaator ja ehtne Bosh-i protokoll, samal ajal kui 2.0В versiooni iseloomustab 21-bitine identifikaator. Viimane on arendatud USAs Ameerika autotööstuse vajaduste tarbeks.
2.0A versioonile vastavad CAN-võrgud võtavad vastu ja edastavad informatsiooni seadmete vahel, mis on ehitatud ainult selle standardi kohaselt. 2.0B versiooni puhul võetakse vastu ja edastatakse informatsiooni segatud võrkudes, mis võivad sisaldada mõlema CAN versiooni kontrollereid.
2.0A versiooni kaader on kujutatud pildil 6.3.
Fig. 6.3. 2.0A versiooni kaader
d ’dominantne’, r ’retsessiivne’
Pilt 6.4.
Andmebaitide arv | Andmepikkuse kood | ||||
DLC3 | DLC2 | DLC1 | DLC0 | ||
0 | D | d | d | d | |
1 | D | d | d | r | |
2 | D | d | r | d | |
3 | D | d | r | r | |
4 | D | r | d | d | |
5 | D | r | d | r | |
6 | D | r | r | d | |
7 | D | r | r | r | |
8 | R | d | d | d |
Pilt 6.5. CDR väli
Pilt 6.6. ACK väli
Algselt edastatakse mööda liini impulss mis muutub kõrgest potentsiaalist madalani mida kutsutakse alguskaadriks (StartOfFrame, SOF). Alguskaadrile järgneb 11-bitine identifikaator (arbitration), millesse on kodeeritud edastuse sisu. Sellele järgneb 1 bitine informatsioon kaugedastuspäringuna (Remote Transmission Request, RTR), mille abil küsitakse saatjalt autoriseeringut informatsiooni edastamiseks vastuvõtjale. Bitid r0 ja r1 on protokollis tühjad. Andmepikkuskoodi (Data Length Code, DLC) välja suurus on 4 bitti ja see sisaldab informatsiooni edastatava andmemahu kohta, mis edastatakse andmeintervalli ajal. Selle intervalli pikkus on 0 kuni 8 impulssi, mis on väljendatud andmepikkuskoodiga. DLC’le järgneb andmeväli (suurus 0 kuni 8 baiti), kuhu on salvestatud edastatav informatsioon. Järgmised 15 bitti moodustavad tsükkelkoodkontrolli (Cycle Redundance Code, CRC), mida kasutatakse vastuvõetud informatsiooni korrektsuse kontrollimiseks. Sellele järgneb DEL-ajavahemik. Informatsiooni edastava seadme tuvastamiseks kasutatakse kaht jaatusimpulssi (ACK), mis järgnevad DEL-ile. Andmepakett lõppeb kaadrilõpumärgiga (EOF), mille pikkus on 7 impulssi. Paketi lõppu tähistatakse 3 vaheaja (INTERMISSION) bitiga, peale mida vabastatakse liin järgmiste sõnumite jaoks.
Pilt 6.7.
Retsessiivne ja dominantne bitt
Ülekandemeediumist isoleerimise huvides väldib CAN binaarsete „0“ ja „1“ väärtustega sõnumi kirjeldamist. Selle asemel võetakse vastu „retsessiivseid“ ja „dominantseid“ signaale. Näiteks optilise ühenduse puhul võib „retsessiivne“ signaal olla pimedus ja „dominantne“ valgus. Elektriliste signaalide puhul võib „retsessiivne“ signaal tähendada kõrget elektrilist signaali ning „dominantne“ signaal selle puudumist.
Kaadrite tüübid
CAN-protokollis eristatakse neli kaadrit:
- Andmekaader – edastab andmeid;
- Päringukaader – esitab andmekaadrite edastamise päringuid antud identifikaatori kohta;
- Ülelaadimise kaader – kindlustab andmekaadrite või päringute vahelised vahed;
- Veakaader – see edastatakse sõlmest (jaamast), kus tuvastati viga.
Andmekaadrid ja päringu-on eelnevatest kaadritest eraldatud vahedega.
Päringukaadri formaat vastab CANi standardsele kaadrile või laiendatud formaadile kahe erandiga:
RTR-väljas on „dominantne“ signaal asendatud „retsessiivse“ signaaliga;
Andmeväli puudub.
1.2 Arbitreerimine andmeedastuse ajal
Kui siin on vaba võib iga sõlm CAN-võrgus alustada suvalisel ajal andmete edastamist. Andmeedastuse arbitreerimine toimub, kui kahest või enamast sõlmest (tööjaamast) edastatakse mitu kaadrit samaaegselt (pilt 6.8).
Prioriteet edastatakse koos sõnumiga, mis on salvestatud 11-bitisesse seadme identifikaatorisse (seadme aadressisse). Kõige madalama binaarväärtusega identifikaator on kõige kõrgema prioriteediga. Sõnumite prioriteet määratakse võrgu arendamise ajal ja seda ei saa dünaamiliselt (hiljem) muuta. Mitme kaardi edastamise ajal toimuvad kaadrite kokkupõrked lahendatakse igas tööjaamas omistatud identifikaatori numbrite võrdlemise teel. Pildil 6.8 on näide, mis illustreerib kirjeldatud juhtumit. Selles näites tahavad kolm CAN-sõlme oma andmeid edastada. Erinevalt Ethernet’ist ei ole CAN-võrgus pakettide kadu, nagu ka kokkupõrgete tekitamine, lubatud. CAN-võrgu suurimaks puuduseks on, et madala prioriteediga sõnumeid ei pruugi jõuda CAN-võrku ehk siis ei välju vastavast tööjaamast.
Pilt 6.8. Andmeedastuse arbitreerimine
Veajuhtimine
CANi suureks eeliseks on mitmete veajuhtimise ja vigade vältimise mehhanismide olemasolu:
- Andmeülekande juhtimine: Andmeülekande ajal võrreldakse võrgu bititasandit edastatavate bittidega;
- Biti täitmine: Peale viie identse biti jadamisi edastamist järgneb automaatne vastupidise tähendusega biti edastus. Sel moel on kõik andmeväljad ja päringukaader kodeeritud, ainukeseks erandiks on kontrollsumma (CRC) eraldaja ja EOF-märk.
- Kontrollsumma: Saatja arvutab andmepaketi kontrollsumma ning lisab selle edastatavasse kaadrisse. Vastuvõtja loeb reaalajas juhtringi, arvutab vastuvõetud kaadri kontrollsumma ja võrdleb neid;
- Töövälja väärtuse kontrollimine sõnumi edastamise ajal.
Edastamiskiirus ja võrgu pikkus
Kiiruse ulatus
Kõik võrgu sõlmed peaksid tegutsema võrdsel kiirusel. CAN-standard ei määra edastamiskiirust, siiski kasutavad enamus CAN-võrkusid katkematut edastust kiirusega 20;Kbit/s kuni 1;Mbit/s. Loomulikult on olemas ka lahendusi, mis töötavad väljaspool seda vahemikku.
Kriitiline võrgu pikkus
Ülalkirjeldatud veajuhtimise meetodid eeldavad üle kogu võrgu hajutamist kuni selle arvutamise hetkeni. See omakorda määrab ära võrgu maksimaalse pikkuse. Mida kõrgem on ülekande kiirus, seda väiksem on võrgu pikkus. Järgnevalt on esitatud sõnumi edastamiskiirus ja sellele vastava võrgu kriitiline pikkus ISO 11898 standardi järgi:
- 1 Mbit/s – 40 m;
- 500 Kbit/s – 100 m;
- 125 Kbit/s – 500 m;
- 10 Kbit/s – 5000 m;
Kõrgtaseme/kihi protokollid
CAN põhispetsifikatsioon pakub terve hulga lisa võimalusi nagu 8 baidist pikema andmehulga edastamine; automaatne sõlmedevaheline identifikaatorite jaotamine, homogeenne erinevat tüüpi ja erineva tootlikkusega seadmete juhtimine. Selle tõttu on kõrgema tasandi CAN protokolli modifikatsioonid olnud selle loomisest saadik pidevas arenduses. Kõrgema tasandi CAN protokollid on:
- CANopen;
- DeviceNet;
- CAN Kingdom;
- J1939;
- SDS.
CANi eelised
- Võimalus tegutseda fikseeritud reaalajalises režiimis;
- Lihtne rakendada ja minimaalsed operatiivkulud;
- Kõrge häirekindlus;
- Võrgu ligipääsu arbitreerimine ilma mahukadudeta;
- Usaldatav veajuhtimine sõnumi ülekandmise ja vastuvõtmise ajal;
- Lai sõnumi edastamiskiiruse ulatus;
- Suur seadmetevaliku.
CANi puudused
- Võrgu kriitiline pikkus on pöördvõrdelises seoses edastamiskiirusega;
- Suur teenusega (CANi protokolliga) seotud andmete hulk edastatavas sõnumis (võrreldes kasulike andmetega);
- Kõrgema tasandi CANi protokollide konventsionaalse standardi puudumine.
Standardne võrk pakub laialdasi võimalusi praktiliseks turvaliseks andmeedastuseks sõlmede vahel. Järgnevad tabelid sisaldavad CAN-võrgu ühenduseks kõige sagedamini kasutatavaid konnektoreid ja nende jalgade (pistiku kontaktide) kirjeldusi.
9 Pin (male) D-Sub CAN Bus PinOut | ||
Jalg # | Signaalinimed | Signaali kirjeldus |
1 | Reserveeritud | Ülenduse rada |
2 | CAN_L | Dominant, madal |
3 | CAN_GND | Maandus |
4 | Reserveeritud | Ülenduse rada |
5 | CAN_SHLD | Kilp, valikuline |
6 | GND | Maandus, valikuline |
7 | CAN_H | Dominant, kõrge |
8 | Reserveeritud | Ülenduse rada |
9 | CAN_V+ | Võimsus, valikuline |
10-Pin Header CAN Bus PinOut | ||
Pin # | Signal Names | Signal Description |
1 | Reserveeritud | Ülenduse rada |
2 | GND | Maandus, valikuline |
3 | CAN_L | Dominant, madal |
4 | CAN_H | Dominant, kõrge |
5 | CAN_GND | Maandus |
6 | Reserveeritud | Ülenduse rada |
7 | Reserveeritud | Ülenduse rada |
8 | CAN_V+ | Võimsus, valikuline |
9 | Reserveeritud | Ülenduse rada |
10 | Reserveeritud | Ülenduse rada |
7-Pin Open Style CAN Bus PinOut | ||
Jalg # | Signaalinimed | Signaali kirjeldus |
1 | CAN_GND | Maandus |
2 | CAN_L | Dominant, madal |
3 | CAN_SHLD | Kilp, valikuline |
4 | CAN_H | Dominant, kõrge |
5 | CAN_V+ | Võimsus, valikuline |
5-Pin Micro/Mini CAN Bus PinOut | ||
Jalg # | Signaalinimed | Signaali kirjeldus |
1 | CAN_SHLD | Kilp, valikuline |
2 | CAN_V+ | Võimsus, valikuline |
3 | CAN_GND | Maandus |
4 | CAN_H | Dominant, kõrge |
5 | CAN_L | Dominant, madal |
RJ10, RJ45 CAN Bus PinOut | |||
RJ45 Jalg # | RJ10 Jalg # | Signaalinimi | Signaali kirjeldus |
1 | 2 | CAN_H | Dominant, kõrge |
2 | 3 | CAN_L | Dominant, madal |
3 | 4 | CAN_GND | Maandus |
4 | – | Reserveeritud | Ülenduse rada |
5 | – | Reserveeritud | Ülenduse rada |
6 | – | CAN_SHLD | CAN kilp, valikuline |
7 | – | CAN_GND | Maandus |
8 | 1 | CAN_V+ | Võimsus, valikuline |
CAN Siini sisend/väljund omadused | |
CANbus signaalitüüp | Digitaalne liides |
Väljundpinge (kõrge) | VOH +4 volti min, +5.5 volti maks |
Väljundpinge (madal) | VOL +0 volti min, +1.5 volti maks |
Väljundpinge | +16 volti (absoluutne maksimum) |
Väljundvool | 100mA |
Takistus | 124 oomi lõpetamine +/- terminalide vahel |
Lülituse tüüp | Diferentsiaalne |
Bitiajad | 1uS @ 1Mb/s; 2uS @ .5Mb/s 4uS @ .25Mb/s |
Kodeerimisformaat | Non-Return-to-Zero (NRZ) |
Edastuse/vastuvõtu sagedus | 1Mbit/s @ 40 meetrit |
Topoloogia | Punkt-punkt |
Meedium | Elektriline keerutatud paar (shielded Twisted pair, STP) 9-nõelaga D-Sub |
Ligipääsu juhtimine | Liikluse ja põrke tuvastusega pöördus (carrier sense multiple access with collision detection, CSMA/CD) Bitikaupa säilearbitreerimine (non-destructive bitwise arbitration) |
Ümar CAN Bus PinOut | ||||
9-Pin # | 8-Pin # | 7-Pin # | Signaali nimed | Signaali kirjeldus |
1 | 3 | 3 | CAN-H | Dominantne kõrge |
2 | 4 | 4 | CAN-H | Dominantne madal |
3 | 5 | 2 | CAN_GND | Maandus |
4 | 6 | – | – | Reserveeritud |
5 | 7 | – | – | Reserveeritud |
6 | 8 | – | – | Reserveeritud |
7 | 1 | 1 | CAN_V+ | Võimsus, valikuline |
8 | 2 | – | GND | Maandus |
9 | – | – | – | Reserveeritud |
– | – | 5 | DIL-1 | DIP lüliti 1 ühenduses CAN_V+ |
– | – | 6 | DIL-2 | DIP lüliti 2 ühenduses CAN_V+ |
– | – | 7 | DIL-3 | DIP lüliti 3 ühenduses CAN_V+ |
9/12-Pin Round Flange Style CAN Bus PinOut | |||
12-Pin # | 9-Pin # | Signaali nimed | Signaali kirjeldus |
1 | – | – | Reserveeritud |
2 | 7 | CAN-H | Dominantne madal |
3 | 8 | CAN_GND | Maandus |
4 | 9 | – | Reserveeritud |
5 | – | – | Reserveeritud |
6 | – | – | Reserveeritud |
7 | 2 | CAN-H | Dominantne kõrge |
8 | – | – | Ei kasutata |
9 | – | – | Reserveeritud |
10 | – | GND | Maandus, valikuline |
11 | – | – | Reserveeritud |
12 | 1 | CAN_V+ | Võimsus, valikuline |
– | 3 | DIL-1 | DIP lüliti 1 ühenduses CAN_V+ |
– | 4 | DIL-2 | DIP lüliti 2 ühenduses CAN_V+ |
– | 5 | DIL-3 | DIP lüliti 3 ühenduses CAN_V+ |
– | 6 | DIL-4 | DIP lüliti 4 ühenduses CAN_V+ |
2. Tööväljavõrk MODBUS
MODBUS võrkude kasutusala
Sissejuhatus
MODBUS on kommunikatsiooniprotokoll, mis töötati välja 1979. aastal Modicon (nüüd Schneider Electric) poolt tööstuslike rakenduste ja automatiseeritud seadmete jaoks. Selle avatud standardi tõttu on MODBUS saanud laialdaselt kasutatavaks erinevates tööstusharudes, pakkudes lihtsat ja usaldusväärset viisi andmevahetuseks kontrollerite ja teiste seadmete vahel.
Kasutusalad
- Tööstusautomaatika
- PLC ja HMI ühendamine: MODBUS-i kasutatakse laialdaselt programmeeritavate loogikakontrollerite (PLC) ja inim-masin liideste (HMI) ühendamiseks. See võimaldab PLC-del ja HMI-del suhelda ja vahetada andmeid, mis on oluline protsesside juhtimisel ning jälgimisel.
- Andurite ja seadmete integreerimine: MODBUS võimaldab integreerida erinevaid andureid ja täiturmehhanisme tootmisliinidel, tagades reaalajas andmevahetuse ning juhtimise.
- Energiasektor
- Energiaseire ja -haldus: MODBUS-i kasutatakse elektriarvestite, energiaseire seadmete ja muude energiaseadmete ühendamiseks keskse juhtimissüsteemiga. See võimaldab koguda ja analüüsida energiatarbimise andmeid, mis aitab optimeerida energiakasutust.
- Taastuvenergia süsteemid: MODBUS võimaldab päikese- ja tuuleenergia süsteemide komponentide vahel andmevahetust, mis on oluline tootmisprotsessi jälgimisel ning optimeerimisel.
- Vee- ja reoveetöötlus
- Pumbasüsteemid: MODBUS-i kasutatakse pumbasüsteemide juhtimiseks ja jälgimiseks, tagades tõhusa veevarustuse ja reovee käitlemise.
- Kvaliteedikontroll: MODBUS võimaldab integreerida erinevaid veekvaliteedi andureid ja seiresüsteeme, mis aitavad tagada veekvaliteedi normide täitmise.
- Hooneautomaatika
- Küte, ventilatsioon ja kliimaseade (HVAC): MODBUS-i kasutatakse laialdaselt HVAC-süsteemide juhtimiseks ja jälgimiseks, tagades energiatõhusa ja mugava sisekliima.
- Valgustuse juhtimine: MODBUS võimaldab valgustussüsteemide kaugjuhtimist ja automatiseerimist, mis aitab säästa energiat ja parandada mugavust.
- Transport ja logistika
- Liikumise juhtimine: MODBUS-i kasutatakse transpordisüsteemides, nagu konveierid ja kraanad, tagades tõhusa ja koordineeritud liikumise.
- Ladustamissüsteemid: MODBUS võimaldab laosüsteemide, nagu riiulisüsteemide ja tõstukite, integreerimist ja juhtimist, mis parandab ladustamise efektiivsust ja täpsust.
Tehnilised eelised
- Lihtsus ja töökindlus: MODBUS on tuntud oma lihtsa protokolli ja töökindluse poolest, mis teeb selle sobivaks laialdaseks kasutamiseks erinevates tööstusharudes.
- Skaalautuvus: MODBUS võimaldab hõlpsalt lisada uusi seadmeid ja laiendada süsteeme, mis on oluline kasvavates ning muutuvates tööstuskeskkondades.
- Ühilduvus: MODBUS on ühilduv paljude erinevate tootjate seadmetega, mis järgivad MODBUS standardit, tagades sujuva kommunikatsiooni.
Viited ja kasulikud lingid
- Modbus Organization
- Schneider Electric – Modbus Protocol
- Omega Engineering – Introduction to Modbus
- ProSoft Technology – Modbus Solutions
Need viited ja lingid pakuvad põhjalikku teavet MODBUS võrkude kohta ning aitavad sügavamalt mõista nende kasutusala ning eeliseid erinevates tööstusharudes.
Tööväljavõrgu MODBUS protokolli kirjeldus
Tööväljavõrgu Modbus sideprotokoll põhineb klient-server-arhitektuuril. See leiab laialdast kasutust tööstuses kontrolleritevahelise andmeside loomiseks. Andmete edastamiseks kasutatakse jadakanalied nagu RS-485, RS-422, RS-232 (pilt 6.9), või Ethernet võrku TCP/IP (Modbus TCP) (pilt 6.10).
Pilt 6.9.RS-485, RS-422, RS-232
Pilt 6.10. Ethernet võrk TCP/IP
Modbus on seotud OSI võrgumudeli rakendustasandi protokollidega. Kontrollerid, mis töötavad Modbusi võrgus, kasutavad klient-server-mudelit, mis baseerub päringutest ja vastustest koosnevatest andmeedastustest.
Tavaliselt on võrgus ainult üks ülemseade (server) ja mitu alluvseadet (klienti). Ülemseade algatab andmeedastused (sidepäringud), pöördudes individuaalselt iga alluvseadme poole või alluvseadmete grupi poole (pilt 6.11). Alluvseade omakorda moodustab sõnumi ülemseadmele poolt nõutud informatsioonist ja saadab selle ülemseadmele tagasi. Grupipäringu saamisel ei moodustata vastust.
Pilt 6.11. Serveri ja kliendi pöördumised
2.1 Kaadri (andmepaketi) formaat
Modbusi spetsifikatsioon kirjeldab päringute ja vastuste kaadrite formaat. Elementaarse paketijuhtimise tasandil nimetatakse neid kaadreid ka protokolliandmeüksusteks (Protocol Data Unit, PDU). Protokolliandmeüksuse formaat ei sõltu ühendusliini tüübist. See sisaldab juhtinfot ning andmevälja . Juhtinfo on kodeeritud ühe baidi pikkusesse välja ja võib vastu võtta väärtusi vahemikus 1..127. Vahemik 128..255 on reserveeritud veakoodile. Andmeväli on muutuva pikkusega ja selle pikkuse piirab protokolliandmeüksuse andmepaketi suuruse piirang, milleks on 253 baiti (pilt 6.12).
Modbus PDU | |
Funktsiooni-kood | Andmed |
1 bait | N < 253 (baiti) |
Pilt 6.12.
Protokolliandmeüksus paneb lisaväljade sisu teise andmepaketti, et võimaldada paketi edastamist üle ühenduse füüsilise liini. Seda andmepaketti nimetatakse rakendusandmeüksuseks (Application Data Unit, ADU). Selle formaat sõltub ühendusliini tüübist.
Pilt 6.13. Üldine MODBUS kaader
Tööväljavõrgu Modbus protokollil on kolm põhilist rakendust. Kaks andmete edastamiseks mööda jadaliidest, modem EIA/TIA-232-E (RS-232), EIA-422, EIA/TIA-485-A (RS-485), optline ja raadioühendus:
Modbus RTU;
Modbus ASCII;
Kolmas rakendus on andmete edastamiseks mööda Etherneti TCP/IP võrku:
Modbus TCP.
Modbus RTU informatsiooni kaardi rakendusandmeüksuse üldine struktuur on kirjeldatud pildil 6.14:
Pilt 6.14. MODBUS RTU kaader
See koosneb järgmistest osadest:
- Tööjaama aadress – see on alluvseadme aadress, millele kirje (sõnum) on suunatud. Iga seade vastab ainult kirjele, mis sisaldab seadme enda aadressi või seadmepaketi aadressi kuhu antud seade kuulub. Vastus algab samamoodi alluvseadme aadressiga. Seadmete aadressid on vahemikust 1 kuni 247. Aadressi 0 kasutatakse seadmetepaketi adresseerimiseks ja seda tunnevad kõik seadmed; aadressid vahemikus 248..255 on reserveeritud;
- Juhtinfo – ühe baidine väli, milles hoitakse täitmiskäsku (funktsiooni number);
- Andmed – sisaldab infot, mida seade vajab ülemseadme käsu täitmiseks või infot, mis on vajalik vastamiseks. Selle välja pikkus sõltub funktsiooni numbrist ja on vahemikus 0..252 baiti;
- Veakontroll (tsükkelkoodkontroll, CRC) – kontrollsumma kaadrisiseseks veakontrolliks. Liini sõnumi ülekande ajal kirjutatakse esimesena madalama järgu kontrollsumma bait.
Rakendusandmeüksuse maksimaalne suurus jadavõrgus RS232/RS485 on 256 baiti ja Ethernet TCP võrgus on see 260 baiti.
Modbus ASCII informatsiooni kaadri formaat on kirjeldatud pildil 6.15:
Pilt 6.15. Modbus ASCII informatsiooni kaader
Modbus ASCII kaadri individuaalsete väljade tähendused on esitatud tabelis 6.9.
Tabel 6.9
Nimi | Pikkus | Funktsioon |
Algus | 1 märk | Kaardi algust tähistatakse kooloniga (;: , ASCII on selle väärtuseks 3A hex) |
Aadress | 2 märki | Tööjaama aadress |
Juhtinfo | 2 märki | Viitab juhtinfole (funktsiooni koodile) nagu näiteks loe keerde/sisendite väärtusi |
Andmed | n märki | Andmed – pikkus valitakse sõltuvalt sõnumi tüübist ja edastatavast andmemahust |
LRC kontroll | 2 märki | Veakontroll |
Lõpp | 2 märki | Kaardi lõppu tähistatakse reavahetuse märgipaariga (CRLF, ASCII on selle väärtuseks 0D& 0A hex) |
Modbus TCP informatsiooni kaadri struktuur on järgmine:
Pilt 6.16. Modbus TCP informatsiooni kaader
Pilt 6.17. Modbus TCP andmepaketi koostamine
Modbus TCP kaader koosneb järgmistest osadest:
- Tehingu ID – kahebaidine tehingu identifitseerimisnumber;
- Protokolli ID – kahebaidine protokolli identifitseerimisnumber;
- Pikkus – edastatavate andmete pikkus salvestatud kahes baidis;
- Üksuse ID – selle seadme aadress, millele päring on adresseeritud. Tavaliselt ignoreeritakse seda, kui side toimub ainult ühe seadmega.
Modbus TCP kaadril puudub kontrollsumma välja.
Pilt 6.18. Modbus TCP kaader
2.2 Juhtinfo kategooriad
Modbusis kasutatavates protokollides on kolm juhtinfo (juhtfunktsioonide) kategooriat: Standardiseeritud käsud; kasutajakäsud ja reserveeritud käsud (pilt 6.19).
Pilt 6.19.
2.3 Standardiseeritud käsud
Nende kirjeldus tuleb avaldada ja selle kinnitab Modbus-IDA. See kategooria hõlmab nii jaotatud kui ka vabu koode.
Tabel 6.10
Funktsiooni nr | Vastused | |||||
1 (0x01) Loe diskreetne väärtus (Read Coil Status) | A1 | A0 | Q1 | Q0 | ||
N | D (N baiti) | |||||
2 (0x02) Loe diskreetsed sisendid (Read Discrete Inputs) | A1 | A0 | Q1 | Q0 | ||
N | D (N baiti) | |||||
3 (0x03) Loe ooteregistrid (Read Holding Registers) | A1 | A0 | Q1 | Q0 | ||
N | D (N baiti) | |||||
4 (0x04) Loe sisendregistrid (Read Input Registers) | A1 | A0 | Q1 | Q0 | ||
N | D (N baiti) | |||||
5 (0x05) Kasuta üksik diskreetne väärtus (Force Single Coil) | A1 | A0 | D1 | D0 | ||
A1 | A0 | D1 | D0 | |||
6 (0x06) Töötle üksik register (Preset Single Register) | A1 | A0 | D1 | D0 | ||
A1 | A0 | D1 | D0 | |||
15 (0x0F) Kasuta mitu diskreetset väärtust (Force Multiple Coils) | A1 | A0 | Q1 | Q0 | N | D (N baiti) |
A1 | A0 | Q1 | Q0 | |||
16 (0x10) Töötle mitu registrit (Preset Multiple Registers) | A1 | A0 | Q1 | Q0 | N | D (N baiti) |
A1 | A0 | Q1 | Q0 | |||
A1 ja A0 — elementide aadressQ1 ja Q0 — elementide arvN — andmebaitide arvD — andmed |
Andmete lugemine
Väärtuste lugemiseks kasutatakse käskusid väärtustega 1 kuni 4.
- 1 (0x01) (Read Coil Status);– tagastab väärtuse mitmele olekuregistrile;
- 2 (0x02) (Read Discrete Inputs) – tagastab väärtuse mitmele diskreetsele sisendile;
- 3 (0x03) (Read Holding Registers);– tagastab väärtuse ooteregistritele;
- 4 (0x04) (Read Input Registers);– tagastab väärtuse mõnedele sisendregistritele;’
Päring koosneb esimesest elemendi aadressist, elemendi suurusest, ja loetavate elementide arvust. Nii aadress kui suurus omistatakse 16-bitise numbrina. Päritud andmed saadakse vastusega. Andmetele järgneb bait, mis sisaldab edastatud andmete suurust.
Tabel 6.11
Alamfunktsiooni kood | Nimi | |
Hex | Dec | |
00 | 00 | Tagasta päringu andmed (Return Query Data) |
01 | 01 | Taaskäivita kommunikatsioon (Restart Communications Option) |
02 | 02 | Tagasta diagnostika register (Return Diagnostic Register) |
03 | 03 | Muuda ASCII sisenderaldaja (Change ASCII Input Delimiter) |
04 | 04 | Juuruta ainult kuulamise reziim (Force Listen Only Mode) |
J | 05..09 | Reserveeritud |
0A | 10 | Nulli loendurid ja diagnostika register (Clear Counters and Diagnostic Register) |
0B | 11 | Tagasta siini sõnumiteloenduri väärtus (Return Bus Message Count) |
0C | 12 | Tagasta siini sidevigade loenduri väärtus (Return Bus Communication Error Count) |
0D | 13 | Tagasta siini erandolukordade loenduri väärtus (Return Bus Exception Error Count) |
0E | 14 | Tagasta alluvseadme sõnumiloenduri väärtus (Return Slave Message Count) |
0F | 15 | Tagasta alluvseadme puuduvate vastuste loenduri väärtus (Return Slave No Response Count) |
10 | 16 | Tagasta alluvseadme eituste loenduri väärtus (Return Slave NAK Count) |
11 | 17 | Tagasta alluvseadme hõivatud staatuse loenduri väärtus (Return Slave Busy Count) |
12 | 18 | Tagasta siini märkide ülejooksu loenduri väärtus (Return Bus Character Overrun Count) |
13 14N.A | 19 2021…65535 | Reserveeritud |
Nulli ülejooksu loendur ja lipp (Clear Overrun Counter and Flag) | ||
Reserveeritud |
Kasutaja käsud
Need sisalduvad kahes koodivahemikus (65..72 ja 100..110), milles on võimalik realiseerida mitmeid erinevaid funktsioone kasutaja poolt. Siiski ei ole mingit kindlust, et need käsud ei ole kasutuses teistes seadmetes mingite funktsioonide realiseerimiseks.
Reserveeritud käsud
See funktsioonide sisendkoodide kategooria ei ole standardiseeritud, siiski kasutatakse neid erinevate firmade poolt toodetud seadmetes. Need koodid on: 9, 10, 13, 14, 41, 42, 90, 91, 125, 126 ja 127.
Andmemudel
Üks selle protokolli poolt teostatavaid standardiseeritud tegevusi on kontrollerite registrites andmete lugemine ja kirjutamine. Protokolli spetsifikatsioon määratleb neli andmetabelit, mis on toodud tabelis 6.12.
Tabel 6.12
Primaarsed tabelid | Objekti tüüp | Tüüp | Kommentaarid |
Diskreetne sisend | Üksik bitt | Kirjutuskaitsega (read-only) | Seda tüüpi andmed annab sisend/väljund süsteem. |
Diskreetne väärtus | Üksik bitt | Lugemine-kirjutamine | Seda tüüpi andmeid saavad muuta kõik rakendusprogrammid. |
Sisendregistrid | 16-bitine sõna | Kirjutuskaitsega (read-only) | Seda tüüpi andmed annab sisend/väljund süsteem. |
Ooteregistrid | 16-bitine sõna | Lugemine-kirjutamine | Seda tüüpi andmeid saavad muuta kõik rakendusprogrammid. |
Igas tabelis toimub elementidele ligipääs 16-bitise aadressiga; esimene asukoht vastab aadressile 0. Sel moel võib iga tabel sisaldada kuni 65536 elementi. Spetsifikatsioon ei määra tabelis asuvate elementide füüsilist pikkust ega sisemist aadressi, millele need vastavad. Näiteks on võimalik moodustada kattuvaid tabeleid. Sellisel juhul käsud, mis töötavad diskreetsete andmetega ja 16-bitised registritega võivad adresseerida tegelikult sarnaseid andmeid.
2.4 Veakontroll Modbus RTU protokollis
Andmevahetusel Tööväljavõrgus Modbus RTUs võib tekkida kahte tüüpi vigu:
- Vead, mis on seotud informatsiooni moonutamisega andmete ülekandmisel;
- Loogikavead.
Esimest tüüpi vead tuvastatakse kaadri sümboli, paarsuskontrolli ja tsükkelkoodkontroll summa CRC-16-IBM (kasutatakse numbrilist polünoomi = 0xA001 ) abil.
Teist tüüpi vigade tuvastamiseks eeldab Modbus RTU protokoll, et seade ei ole vastust kätte saanud või vastus ise sisaldas veakoodi (tabel 6.13).Seda et vastus võib sisaldada veasõnumit, näitab käsukoodi kõrgema järgu bitt. Tööjaam tööväljavõrgus Modbus töötab vastavalt allpool olevale skeemile:
- Kui alluvseade on kätte saanud korrektse päringu ja on võimeline seda töötlema standardsel moel, saadab ta tagasi standardse vastuse;
- Kui alluvseade ei ole saanud ühtegi väärtust, ei genereeri ta ühtegi vastust. Sellisel juhul diagnoosib ülemseade aegumise (timeout) vea.
- Kui alluvseade on saanud päringu, kuid on ühtlasi tuvastanud ka vea (paarsus, LRC või CRC), siis ei genereeri ta ühtegi vastust. Sellisel juhul diagnoosib ülemseade aegumise (timeout) vea;
- Kui alluvseade on saanud päringu, kuid mingil põhjusel ei suuda seda töödelda, genereerib ta vastuse, mis näitab tekkinud vea tüüpi.
Tabel 6.13
Andmeedastuse suund | Alluvseadme aadress | Funktsiooni number | Andmed (või veakood) | CRC |
Järjekord (Ülem→Alluv) | 0x01 | 0x77 | 0xDD | 0xC7 0xA9 |
Päring (Alluv→Ülem) | 0x01 | 0xF7 | 0xEE | 0xE6 0x7C |
Tabel 6.14
Viga # | Veateade |
0 | Ei ole vigu |
1 | Keelatud toiming |
2 | Keelatud andmeaadress |
3 | Keelatud andmeväärtus |
4 | Ülemseade aegumine – – timeout |
5 | Side puudub |
6 | Sobimatu üksuse ID |
7 | Sobimatu käsk |
8 | Sõnumi pikkus |
9 | Funktsioon ei ole toetatud |
10 | Keelatud formaat |
11 | Sobimatud vastuvõetud andmed |