Spjegazzjoni dettaljata tal-protokoll ta' komunikazzjoni MODBUS _ RTU
MODBUS _ RTU Il-protokoll huwa protokoll ta' komunikazzjoni miftuħ ibbażat fuq konnessjoni serjali (RS232 jew RS485), li juża l-port serjali taċ-ċippa biex jibgħat u jirċievi messaġġi tad-dejta.
I. Modalità ta' Trażmissjoni
Modalità ta' trasmissjoni hija serje ta' strutturi ta' dejta indipendenti fi ħdan qafas ta' informazzjoni u regola finita għat-trasmissjoni tad-dejta. Il-protokoll MODBUS _ RTU jikkomunika fuq il-Modbus fil-modalità RTU. Kull byte ta' 8-bit fil-messaġġ huwa maqsum f'żewġ karattri eżadeċimali ta' 4-bit. Kull messaġġ għandu jiġi trasmess konsekuttivament.
Sistema ta' kodiċi
- Binarju ta' 8-bit, eżadeċimali 0~9, A~F
- Kull qasam ta' 8 bits fil-messaġġ jikkonsisti f'żewġ karattri eżadeċimali
Bits għal kull Byte
- 1bit tal-bidu
- 8 bits tad-dejta, l-inqas bit sinifikanti jintbagħat l-ewwel
- Bit ta' parità wieħed, xejn jekk ma jkunx hemm parità
- 1bit ta' waqfien, 2 bits (mingħajr kontroll)
Dominju ta' skoperta ta' żbalji
- CRC (Kontroll tar-Redundanza Ċiklika)
II. Ftehim
Meta frame jasal fl-apparat finali, jidħol fl-apparat indirizzat permezz ta' "port" sempliċi. L-apparat ineħħi l-"envelop" (header) tal-frame tad-dejta, jaqra d-dejta, u jekk ma jkunx hemm żbalji, iwettaq il-kompitu mitlub mid-dejta. Imbagħad iżid id-dejta li jiġġenera mal-"envelop" akkwistat u jirritorna l-frame tad-dejta lil min bagħat. Id-dejta tar-rispons mibgħuta fiha l-kontenut li ġej: l-indirizz tal-iskjav tat-terminal (Address), il-kmand eżegwit (Function), id-dejta mitluba (Data) iġġenerata mill-kmand eżegwit, u kodiċi ta' kontroll (Check). Ma jkun hemm l-ebda rispons ta' suċċess għal kwalunkwe żball.

1) Qafas ta' informazzjoni

It-tul massimu permess tal-frejm tal-informazzjoni Modbus huwa ta' 256 byte, jiġifieri, il-medda ta' N hija akbar minn jew ugwali għal żero u inqas minn jew ugwali għal 252.
2) Qasam tal-indirizz
Il-qasam tal-indirizz tal-qafas tal-messaġġ (indirizz tal-messaġġ) jinsab fil-bidu tal-qafas u jikkonsisti minn 8 bits. L-indirizzi validi tal-apparat skjav ivarjaw minn 0 sa 247 (deċimali). Il-medda tal-indirizzar għal kull apparat skjav hija minn 1 sa 247. Il-master ipoġġi l-indirizz tal-iskjav fiż-żona tal-indirizz tal-qafas tal-informazzjoni u jindirizza l-iskjav. Meta l-iskjav jirrispondi, ipoġġi l-indirizz tiegħu stess fiż-żona tal-indirizz tal-messaġġ tar-rispons, sabiex il-master ikun jista' jidentifika l-indirizz tal-iskjav li jkun wieġeb.
L-indirizz 0 huwa indirizz ta' xandir u huwa rikonoxxut mill-iskjavi kollha. Meta l-protokoll Modbus jintuża f'netwerk avvanzat, ix-xandir jew alternattivi oħra mhumiex permessi.

3) Dominju tal-funzjoni
Il-kodiċi tal-qasam tal-funzjoni ta' dak il-qafas tal-informazzjoni jgħid lit-terminal indirizzat liema funzjoni għandu jwettaq. Il-kodiċijiet validi jvarjaw minn 1 sa 225 deċimali. Xi kodiċijiet japplikaw għall-kontrolluri kollha, oħrajn japplikaw għal ċerti kontrolluri, u oħrajn huma riżervati għal użu fil-futur.
Meta l-master jibgħat informazzjoni lill-iskjavi, il-kodiċi tal-funzjoni jindika lill-iskjavi l-azzjoni li għandha tiġi eżegwita, bħall-qari tal-istatus ON/OFF ta' grupp ta' kolji diskreti jew sinjali ta' input, il-qari tad-dejta ta' grupp ta' reġistri, il-qari tal-istatus dijanjostiku tal-iskjavi, il-kitba tal-kolji (jew reġistri), il-permess tat-tniżżil, ir-reġistrazzjoni, u l-konferma tal-programm fl-iskjavi, eċċ.
Meta l-iskjav jirrispondi lill-master, il-kodiċi tal-funzjoni jista' jindika li l-iskjav wieġeb normalment jew li seħħ żball (jiġifieri, ma wieġebx normalment). Fil-każ ta' rispons normali, l-iskjav sempliċement jirritorna l-kodiċi tal-funzjoni oriġinali; fil-każ ta' rispons anormali, l-iskjav jirritorna kodiċi ekwivalenti għall-kodiċi oriġinali u jistabbilixxi l-bit l-aktar sinifikanti għal "1".
Pereżempju, meta l-kaptan jitlob lill-iskjav biex jaqra grupp ta' reġistri ta' żamma, il-kodiċi tal-funzjoni tal-informazzjoni trażmessa huwa 0000 0011 (eżadeċimali 03). Jekk l-apparat skjav jirċievi l-informazzjoni tal-azzjoni mitluba b'mod korrett, jirritorna l-istess valur tal-kodiċi bħal rispons normali; jekk jirċeviha b'mod żbaljat, jirritorna informazzjoni ta' rispons anormali: 1000 0011 (eżadeċimali 83). L-iskjav jimmodifika l-kodiċi tal-funzjoni u jpoġġi kodiċi speċjali fiż-żona tad-dejta tal-messaġġ ta' rispons biex jgħid lill-kaptan it-tip ta' żball u r-raġuni għar-rispons anormali. Il-programm tal-applikazzjoni tal-apparat kaptan huwa responsabbli għall-immaniġġjar tar-rispons anormali. Il-proċess tipiku huwa li l-kaptan jibgħat it-test u d-dijanjosi tal-informazzjoni lill-iskjav u jinnotifika lill-operatur.
It-tabella li ġejja telenka l-kodiċijiet tal-funzjoni użati b'mod komuni tal-apparati kollha, it-tifsiriet tagħhom u l-funzjonijiet inizjali tagħhom.
| Kodiċi | Isem | Azzjoni |
| 01 | Aqra l-istatus tal-kolja | Ikseb l-istat attwali ta' sett ta' kolji loġiċi (ON/OFF) |
| 02 | Aqra l-istatus tal-input | Ikseb l-istat attwali ta' sett ta' inputs tas-swiċċ (ON/OFF) |
| 03 | Aqra r-reġistru tal-azjendi | Irkupra l-valur binarju attwali minn reġistru wieħed jew aktar ta' żamma |
| 04 | Aqra r-reġistru tal-input | Irkupra l-valur binarju attwali minn reġistru wieħed jew aktar tal-input |
| 05 | Forza l-kolja waħda | Forza l-istat mixgħul-mitfi ta' kolja loġika |
| 06 | Reġistru wieħed issettjat minn qabel | Poġġi valur binarju speċifiku f'reġistru wieħed |
| 07 | Aqra l-istatus tal-eċċezzjoni | Ikseb l-istatus mixgħul/mitfi ta' 8 kolji interni |
| 15 | Kolja multipla sfurzata | Forzament mixgħul u mitfi ta' serje ta' kolja loġika kontinwa |
| 16 | Reġistru multiplu predefinit | Poġġi serje speċifika ta' valuri binarji f'serje ta' reġistri multipli |
| 17 | Irrapporta l-ID tal-iskjavi | Il-kaptan jista' jiġġudika t-tip tal-iskjav indirizzat u l-istat tad-dawl indikatur tal-operazzjoni tal-iskjav |
4) Dominju tad-dejta
Il-qasam tad-dejta fih id-dejta meħtieġa mit-terminal biex iwettaq funzjoni speċifika jew id-dejta miġbura mit-terminal b'reazzjoni għal mistoqsija. Il-kontenut ta' din id-dejta jista' jkun valur numeriku, indirizz ta' referenza, jew valur limitu.
Pereżempju, il-kodiċi tal-qasam tal-funzjoni jgħid lit-terminal biex jaqra reġistru, filwaqt li l-qasam tad-dejta jindika minn liema reġistru jibda u kemm dejta għandu jaqra. L-indirizz u d-dejta inkorporati jvarjaw skont it-tip u l-kapaċità ta' rispons tal-iskjav. Jekk ma jseħħ l-ebda żball, il-messaġġ ta' rispons mill-iskjav lill-master ikun fih id-dejta tat-talba; Jekk ikun hemm żball, ikun hemm kodiċi anormali fid-dejta, sabiex il-host ikun jista' jiġġudika u jagħmel l-azzjoni li jmiss. It-tul taż-żona tad-dejta jista' jkun "żero" biex jindika ċertu tip ta' informazzjoni.
5) Qasam tal-verifika tal-iżbalji
Dan id-dominju jippermetti lill-hosts u lit-terminals jivverifikaw għal żbalji waqt it-trażmissjoni. Kultant, minħabba storbju elettriku u interferenza oħra, sett ta’ dejta jista’ jinbidel fuq il-wajer hekk kif jivvjaġġa minn apparat għal ieħor. Il-verifika tal-iżbalji tista’ tiżgura li l-host jew it-terminal ma jirrispondix għal dejta li tkun inbidlet waqt it-trażmissjoni, u dan itejjeb is-sigurtà u l-effiċjenza tas-sistema. Il-verifika tal-iżbalji tuża metodu ta’ ridondanza ċiklika ta’ 16-il bit, jew verifika CRC.
Il-qasam ta' skoperta ta' żbalji huwa ta' 16-il bit (implimentat b'żewġ karattri ta' 8 bit). Il-kontenut tal-qasam ta' skoperta ta' żbalji huwa derivat billi jiġi applikat metodu ta' skoperta ta' verbosità ċiklika għall-kontenut tal-messaġġ. Il-qasam CRC huwa miżjud fl-aħħar tal-messaġġ bil-byte baxx segwit mill-byte għoli, għalhekk il-byte għoli tas-CRC huwa l-aħħar byte tal-messaġġ trażmess.
6) Trażmissjoni kontinwa ta' karattri
Meta l-messaġġi jiġu trażmessi fuq netwerk standard tas-serje Modbus, kull karattru jew byte jintbagħat f'ordni mix-xellug għal-lemin: l-inqas bit sinifikanti (LSB) … l-aktar bit sinifikanti (MSB).
Is-sekwenza tal-bits hija:
Hemm parità

L-ebda parità

III. Sejbien ta' żbalji
1) Parità
L-utent jista' jikkonfigura jekk il-kontrollur huwiex ta' parità fard, parità par, jew mingħajr parità. Dan jiddetermina kif il-bits tal-parità huma ssettjati f'kull karattru.
Jekk tiġi speċifikata parità fard jew parità par, in-numru ta' bits ta' "1" jingħadd fin-numru ta' bits ta' kull karattru (7 bits tad-dejta fil-modalità ASCII u 8 bits tad-dejta fil-modalità RTU). Pereżempju, il-qafas tal-karattri RTU fih it-8 bits tad-dejta li ġejjin: 1 1 0 1 0 1, u n-numru totali ta' "1" huwa 4. Jekk tintuża parità par, il-bit tal-parità tal-qafas ikun 0, sabiex in-numru totali ta' "1" s xorta jkun 4. Jekk tintuża parità fard, il-bit tal-parità tal-qafas ikun 1, sabiex in-numru totali ta' "1" s ikun 5. Jekk ma jiġi speċifikat l-ebda bit ta' parità, it-trażmissjoni sseħħ mingħajr bit ta' parità u mingħajr skoperta ta' parità.
2) Sejbien tas-CRC
Il-metodu CRC jintuża biex jikkalkula l-kodiċi tal-verifika tal-iżball, u s-CRC jivverifika d-dejta kollha trażmessa. Jinjora l-metodu tal-verifika tal-parità għad-dejta tal-karattri individwali fil-messaġġ.
Il-qasam tal-Kontroll tar-Redundanza Ċiklika (CRC) jokkupa żewġ bytes u fih valur binarju ta' 16-il bit. Il-valur tas-CRC jiġi kkalkulat mill-apparat li jittrażmetti u mbagħad jiżdied mal-qafas tad-dejta. L-apparat li jirċievi jerġa' jikkalkula l-valur tas-CRC meta jirċievi d-dejta u mbagħad iqabbilha mal-valur fil-qasam tas-CRC li jkun irċieva. Jekk iż-żewġ valuri mhumiex ugwali, ikun seħħ żball.
Is-CRC jibda billi jissettja s-16-il bit kollha tar-reġistru għal "1", u mbagħad ipoġġi d-dejta ta' żewġ bytes ta' 8-bit biswit xulxin fir-reġistru kurrenti. Id-dejta ta' 8-bit biss ta' kull karattru tintuża biex tiġġenera s-CRC, u l-bit tal-bidu, il-bit tal-waqfien, u l-bit tal-parità ma jiżdiedux mas-CRC.
Fil-ġenerazzjoni tas-CRC, kull byte ta' 8-bit jiġi sottomess għal XOR bil-kontenut tar-reġistru u r-riżultat jiġi mċaqlaq lejn il-bits l-aktar baxxi, bil-bits ta' fuq jiġu supplimentati b'"0". L-inqas bit sinifikanti (LSB) jiġi mċaqlaq 'il barra u jiġi skopert. Jekk ikun 1, ir-reġistru jiġi sottomess għal XOR b'valur fiss predefinit. Jekk l-inqas bit sinifikanti jkun 0, ma jsir xejn.
Il-proċess ta' hawn fuq jiġi ripetut sakemm jitwettqu t-8 operazzjonijiet ta' shift. Wara li l-aħħar bit (it-8 bit) jiġi shiftjat, il-byte ta' 8 bit li jmiss jiġi XORjat bil-valur attwali tar-reġistru. It-8 shift XORs l-oħra jsiru wkoll. Meta l-bytes kollha fil-qafas tad-dejta jiġu pproċessati, il-valur finali ġġenerat huwa l-valur CRC.
Il-proċess tal-ġenerazzjoni ta' CRC huwa kif ġej:
① Issettja minn qabel reġistru ta' 16-il bit għal 0FFFFH (kollha 1s), imsejjaħ ir-reġistru CRC.
② Agħmel Xor tal-ewwel byte ta' 8-bit fil-qafas tad-dejta mal-byte baxx fir-reġistru CRC, u aħżen ir-riżultat lura fir-reġistru CRC.
③ Iċċaqlaq ir-reġistru CRC lejn il-lemin b'bit wieħed, imla l-ogħla bit b'0, u iċċaqlaq 'il barra l-inqas bit għad-detezzjoni.
④ Jekk l-aktar bit baxx huwa 0: irrepeti l-pass 3 (xift li jmiss). Jekk l-inqas bit sinifikanti huwa 1: Agħmel Xor għar-reġistru CRC b'valur fiss issettjat minn qabel (0 A001H).
⑤ Irrepeti l-passi 3 u 4 sakemm ikun hemm 8 xiftijiet. B'dan il-mod, jiġu pproċessati tmien bits sħaħ.
⑥ Irrepeti l-passi 2 sa 5 biex tipproċessa l-octet li jmiss sakemm il-bytes kollha jiġu pproċessati.
⑦ Il-valur finali tar-reġistru CRC huwa l-valur CRC.
Il-valuri CRC huma miżjuda mal-informazzjoni bil-bits tal-ordni baxx l-ewwel u l-bits tal-ordni għoli l-aħħar.










