Utangulizi wa itifaki ya modbus katika Kirusi. Itifaki ya mtandao - Modbus. Kushughulikia data katika itifaki ya Modbus

6.3. Msururu wa MODBUS

Mitandao ya kwanza ya MODBUS ilitokana na laini za mawasiliano zisizolingana na ziliitwa MODBUS RTU Na MODBUS ASCII . Washa kiwango cha kimwili wanatumia miingiliano ya kawaida ya serial na hali ya maambukizi ya tabia (ona Mchoro 6.1).

Hivi sasa, katika MODBUS-IDA mitandao hii inaitwa MODBUS juu ya Mstari wa Serial na zimefafanuliwa katika kiwango husika. Inabainisha sheria na mapendekezo ya matumizi katika viwango vya kiungo na kimwili.

Kwa kuwa mtandao wa MODBUS RTU/ASCII unaweza kuwa na topolojia ya basi, njia ya kufikia basi inafafanuliwa kuwa kielelezo cha Mwalimu/Mtumwa. Katika mitandao ya MODBUS RTU na MODBUS ASCII, Mchakato Mkuu daima ni Mteja, na Michakato ya Watumwa ni Seva. Hii ina maana kwamba Bwana hutuma maombi, na Watumwa kuyashughulikia. Ombi hili linaweza kushughulikiwa kwa nodi ya mtu binafsi au Watumwa wote kwenye basi (matangazo).

Washa kiwango cha kiungo MODBUS RTU/ASCII hutumia anwani ya kitambulisho chenye mwelekeo wa nodi.Kila Mtumwa lazima awe na anwani yake ya kipekee (1-247), Bwana hawezi kushughulikiwa. Kwa maombi ya mtu binafsi, Kiongozi (pamoja na Mchakato wa mteja) huunda fremu yenye ujumbe wa ombi na kuutuma kupitia anwani maalum. Mtumwa (na Mchakato wa seva) hupokea fremu hii na kuchakata ujumbe. Baada ya kuichakata, Mtumwa huunda fremu yenye ujumbe wa majibu na kuurudisha kwa Kiongozi. Fremu iliyo na ujumbe wa majibu pia hufanya kazi kama fremu ya uthibitishaji, ambayo Mwalimu Mkuu ataingoja kutoka kwa Mtumwa kwa muda uliobainishwa na muda wa kuisha.

Kwa maombi ya utangazaji, anwani 0 inatumiwa. Maombi ya utangazaji hayahitaji kukiri, kwa hivyo baada ya kutuma fremu ya utangazaji, Mwalimu hasubiri sura ya majibu.

6.3.1. Safu ya Kiungo cha Data

Mchoro 6.11 unaonyesha fomu ya jumla Sura ya MODBUS Serial. Tafadhali kumbuka kuwa tofauti kati ya fremu na aina cheki haijaorodheshwa hapa kwa sababu inategemea hali ya maambukizi ya ASCII au RTU. Katika uwanja wa anwani ya kifaa, Mwalimu (wakati anaomba) anaonyesha anwani ya mpokeaji, na Mtumwa (wakati anajibu) - anwani yake. Sehemu za MODBUS PDU zimefafanuliwa hapo juu.

Mchoro wa muda katika Mchoro 6.12 unaonyesha tatu hali za kawaida uendeshaji wa kielelezo cha Master-Slave kwenye MODBUS Serial. Hali ya kwanza ni ubadilishanaji wa kawaida katika hali ya unicast, ya pili iko katika hali ya utangazaji, ya tatu ni majibu ya Mtumwa kwa kosa la mawasiliano.

6.3.2. MODBUS RTU

Hali hii hutumia bits 8 za data katika ishara ya 11-bit, ambayo inakuwezesha kuhamisha byte moja kwa kila ishara. Umbizo la herufi katika modi ya RTU: biti 1 ya kuanzia, biti 8 za data (kidogo kidogo hupitishwa kwanza), biti 1 ya usawa + biti 1 ya kusimama bits au hakuna usawa + 2 kuacha bits.

Umbizo la fremu la MODBUS RTU linaonyeshwa kwenye Mchoro 6.13. Tofauti kati ya viunzi hufanywa kwa kutumia pause kati ya herufi. Sura mpya haipaswi kuonekana kwenye basi mapema kuliko 3.5 * Тс kutoka kwa uliopita, ambapo Тс ni wakati wa maambukizi ya tabia moja. Ikiwa kutokuwepo kwa ishara kwenye mstari (muda wa ukimya) ni kubwa kuliko 1.5 * Tc, mpokeaji hutambua mwisho wa sura. Kwa upande mwingine, kuonekana kwa sura mpya mapema zaidi ya 3.5 * Tc pia itasababisha kosa.

Sehemu za anwani na msimbo wa kazi katika modi ya RTU huchukua baiti moja kila moja, kwani kila baiti hupitishwa kama herufi moja. Baiti mbili zinazokokotolewa kwa kutumia algoriti ya CRC16 hutumika kama hesabu ya hundi.


6.3.3. MODBUS ASCII

KATIKA hali hii kila baiti ya ujumbe hupitishwa kama vibambo viwili vya ASCII vya uwakilishi wao wa heksadesimali, i.e. thamani ya byte 03 16 itatumwa kama nambari ya ASCII ya herufi "0" na "3" (0110000 0110011) Kwa hivyo, baiti za data, nambari ya kazi na byte ya uwanja wa hundi itapitishwa kwa nambari.herufi 0-9, A-F. Umbizo la tabia katika hali ya ASCII: 1 kuanza kidogo, bits 7 za data (kidogo kidogo hupitishwa kwanza); Biti 1 ya usawa + 1 ya kusimama kidogo au hakuna usawa + 2 biti za kuacha.

Muundo wa sura unaonyeshwa kwenye Mchoro 6.14. Kama unavyoona, herufi ya kuanza ":" na mlolongo wa kuacha "CR LF" hutumiwa kutofautisha kati ya fremu. Wapokeaji kwenye basi wanaendelea kufuatilia ":" tabia, ambayo inaonyesha kipekee mwanzo wa sura. Inapopokelewa, wapokeaji huchukua uwanja wa anwani, nk. Hii ni njia rahisi sana ya kusawazisha ambayo hukuruhusu kutokosoa usitishaji kati ya herufi (hadi sekunde 1). Anwani ya Mtumwa na msimbo wa kazi huchukua herufi mbili kila moja, kulingana na thamani ya baiti moja. Ifuatayo njoo n * herufi 2 za data, ambapo n ni idadi ya baiti za data. Katika hali ya ASCII, algoriti ya LRC inatumika kukokotoa hundi. Zaidi ya hayo, checksum inafanywa kwa baiti zote za fremu, isipokuwa kwa mlolongo wa kuanza na kuacha wa wahusika.

Hali ya ASCII huweka mahitaji machache kwenye maunzi kwa kutumia mfuatano wa kuanza na kuchapisha ili kuweka mipaka ya fremu, na haizingatii usitishaji mkubwa kati ya vibambo. Lakini faida hizi zinaonyeshwa katika hasara zake. Hali ya RTU inahitajika zaidi kwenye vipindi kati ya fremu, lakini ina tija zaidi kulikoASCII.

Mfano 6.4. MODBUS. Uhesabuji wa muda wa upigaji kura wa watumwa kwenye MODBUS-RTU.

Kazi . Tengeneza viunzi vya ombi na umbizo la ujumbe wa majibu kwa MODBUS RTU na ukokotoa jumla ya muda wa kupiga kura kwa vigeu 10 vya analogi 16 kwa watumwa 4 (Mchoro 6.15). Kiwango kidogo cha uhamisho wa data - 19200 bps. Mchakato wa Mteja Mkuu (TSX Premium) na Michakato ya Seva ya Watumwa (TSX Micro PLC) hupokea ujumbe mwanzoni mwa mzunguko na kutuma ujumbe mwishoni mwa mzunguko. Wakati wa mzunguko wa bwana = 10 ms, Mtumwa - 5s.

Kamilisha kazi. Vigezo vya ndani vya analogi vya TSX Micro vinapatikana kupitia chaguo za kukokotoa 03 au 04, kwa hivyo umbizo la fremu litaonekana kama Mchoro 6.16.

Kwa kuzingatia kwamba muundo wa muafaka mwingine ni sawa, hakuna maana katika kuwasilisha muundo wao.
Vile vile kwa Mchoro 6.12, tutajenga mchoro wa wakati wa kubadilishana (Mchoro 6.17).

Kutoka upande wa maombi ya mteja, ujumbe wa ombi huzalishwa kwa kutumia kazi ya mawasiliano, data ambayo hutumwa kupitia bandari ya mawasiliano mwishoni mwa mzunguko wa kazi, na kupokea kutoka kwenye bandari mwanzoni mwa mzunguko. Tabia hii ya upande wa mteja inaendana na utekelezwaji mwingi wa PLC mbalimbali.

Katika seva ya TSX Micro MODBUS inatekelezwa katika kiwango cha mfumo wa uendeshaji. Umaalumu wa utekelezaji ni kwamba mfumo hupokea maombi ya MODBUS kutoka kwa bandari ya mawasiliano mwanzoni mwa mzunguko, na kutuma ujumbe wa majibu mwishoni.

Ikumbukwe kwamba utekelezaji wa seva ya MODBUS inaweza kuungwa mkono kwa kiwango cha moduli ya mawasiliano, na kubadilishana data na kumbukumbu ya kifaa yenyewe hufanyika kwa njia ya buffers ya mawasiliano. Katika kesi hii, majibu ya seva ya MODBUS yatakuwa kasi zaidi na haitategemea mzunguko wa programu. Ili kuhesabu muda wa malipo kwa aina nyingine za mifumo, unahitaji kujifahamisha na maelezo yake ya utekelezaji.

Mchoro 6.17 unaonyesha kuwa kuwasili kwa fremu hufika mahali fulani ndani ya kitanzi. Hii inamaanisha kuwa utayarishaji wao na utayarishaji wa majibu utachukua takriban mizunguko 1.5. Inapaswa kueleweka kuwa hii ni thamani ya wastani kwa makadirio mabaya zaidi ni bora kuhifadhi mara 2 za mzunguko (yaani wakati fremu ilipofika mara baada ya kupigia kura bandari ya mawasiliano). Kwa hivyo, muda wa manunuzi kwa PLC moja, kwa mfano PLC1 (TT1), itakuwa sawa na:

TT1=C5+T1.req+2*C1+T1.res+C5*2 (6.1)

TT1 inakokotolewa kwa kuzingatia mizunguko 2 inayotumiwa na Mtumwa kutoa jibu kwa ujumbe wa ombi. Ikiwa shughuli hiyo haikufanywa mara kwa mara, kulingana na hali ya kazi, lakini juu ya tukio la tukio, basi wakati wa manunuzi pia itakuwa muhimu kujumuisha mzunguko mwingine wa Mwalimu. Ni rahisi kuonyesha muda wa kupiga kura kwa watumwa wote:

ТТall=C5*9+C1*2+C2*2+C3*2+C4*2+T1.req+T1.res+ T2.req+T2.res+ T3.req+T3.res+ T4.req+T4.res (6.2)

Ikizingatiwa kuwa mizunguko ya Watumwa ni sawa, na muafaka wa ombi na muafaka wa majibu kwa watumwa wote una muundo sawa, formula ya jumla itaonekana kama hii:

TTall= C5*9 + C1*8 + (T1.req+T2.req)*4(6.3)

Hebu tuhesabu nyakati T1.req na T2.req.

Muda wa utumaji wa fremu (Tframe) unaweza kukadiriwa takriban kwa idadi ya alama (Nsymb) katika fremu na muda wa utumaji wa ishara moja (Tsymb):

Tframe=Nsymb*Tsymb (6.4)

Muda wa uwasilishaji wa herufi moja umehesabiwa:

muda wa maambukizi kwa ishara = idadi ya bits kwa ishara / kiwango kidogo;
Muda wa usambazaji wa fremu utakuwa sawa na (div. Mchoro 6.16 na Mtini. 6.17):

T1.req=8*(11/19200)=4.58 ms

T1.res=25*(11/19200)=14.33 ms

TTall=90+40+ (4.58+14.33)*4= 206 ms.

Kwa hivyo, kupigia kura vigezo 10 kutoka kwa Watumwa 4 kwa kasi ya 19200 bps, inachukua takriban 206 ms. Ikiwa upigaji kura wa mara kwa mara unahitajika, inashauriwa kuhifadhi muda fulani, kwa mfano mwingine 100 ms.

Katika baadhi ya matukio, utekelezaji wa kazi za Mteja wa MODBUS huanguka kwenye mfumo wa uendeshaji, na upatikanaji wao katika mpango wa PLC hutokea kupitia kazi za mawasiliano ya interface. Hasa, hii ni ya kawaida kwa PLC nyingi kutoka kwa Scneider Electric (Momentum, Quantum, TSX Micro, TSX Premium, M340). Katika idadi ya mifumo mingine - upande wa mteja kiwango cha maombi lazima ielezwe kikamilifu katika mpango wa PLC, na interface hutolewa tu kwa kubadilishana na bandari ya mawasiliano. Katika kesi hii, mfumo hutoa huduma za kutuma na kupokea ujumbe (ambazo huzalishwa na kuchambuliwa na programu ya mtumiaji yenyewe), na kuzalisha na kuthibitisha hundi.Hebu tuangalie mfano.

Mfano 6.5. MODBUS. Utekelezaji wa mteja wa MODBUS kwenye TSX Twido.

Kazi . Andika kipande cha programu kwa Twido PLC ili kusoma rejista 3 kutoka kwa Slave zenye anwani 1 (Mchoro 6.18).

Suluhisho . Katika Twido, upande wa mteja wa MODBUS unahitaji kutekelezwa kupitia kazi ya ulimwengu wote EXCHx, ambayo hutuma na/au kupokea data kupitia nambari ya bandari ya mawasiliano x. Vigezo vya utendakazi ni jedwali la maneno (%MW), ambalo lina data ya udhibiti wa utendakazi, data ya kutumwa, na bafa ya kupokea. Ikiwa ubadilishanaji unafanyika kupitia bandari ya mawasiliano 2, basi simu ya kazi itakuwa na muundo ufuatao:

EXCH2 %MWy:n,

ambapo y ni nambari ya tofauti ya kwanza ya jedwali lililochaguliwa, n ni idadi ya maneno katika jedwali.

Umbizo la jedwali, yaani, data inayohitaji kujazwa, na eneo la data la kupokea ni sawa kwa aina zote za mawasiliano. Kwa vipengele 03/04 (kusoma maneno ya N) kupitia MODBUS-RTU, jedwali hili litakuwa na fomu iliyoonyeshwa katika Jedwali 6.2).

Jedwali la parameter lina sehemu 3 - subtables. Jedwali la kudhibiti utendakazi hubainisha vigezo vya chaguo la kukokotoa lenyewe. Kwa hiyo katika byte ya juu ya neno la 0 inaonyeshwa kuwa kazi hii inafanya kazi kwa pande zote mbili, i.e. Baada ya kutuma data, lazima usubiri jibu. Byte ya chini ya neno moja inaonyesha urefu wa jedwali la maambukizi (katika kesi hii byte 6), ili mfumo ujue kuhusu byte zinazohitaji kupitishwa (kutoka neno la 2 hadi la 4) na ambapo buffer ya kupokea huanza. (kutoka neno la 5). Kukabiliana katika kusambaza na kupokea ni muhimu ili kuoanisha data katika vihifadhi kwa maneno.

Jedwali la uhamisho lina ombi yenyewe, i.e. fremu bila msimbo wa CRC. Jedwali la kupokea ni bafa ambayo mfumo utajaza na fremu ya majibu ikiwa matokeo ni chanya. Kwa hiyo, kabla ya kutumia kazi hii, ni muhimu kujenga sura ya ombi na majibu bila kujumuisha uwanja wa CRC (Mchoro 6.19)

Jedwali 6.2

Jedwali la parameter

Index katika jedwali

Juu byte

Baiti ya chini

Jedwali la kudhibiti Comm kazi

01 (aina ya kazi kutuma+kupokea)

06 (urefu wa jedwali la maambukizi)

03 (upendeleo katika mapokezi)

00 (kuhama kwa usambazaji)

Jedwali la uhamishaji

Anwani ya mtumwa

03 (nambari ya kazi)

kuanzia anwani ya usajili

idadi ya rejista

Jedwali la mapokezi (jibu-ujumbe)

Anwani za mtumwa

03 (nambari ya kazi)

00 (byte kwa kukabiliana)

kaunta ya byte

rejista ya kwanza

rejista ya pili

...

N+6

Daftari la N

Kama unaweza kuona, ombi lina ka 6. Kiasi hiki lazima kiingizwe kwenye byte ya chini ya neno la 0 la jedwali. Jibu linatarajiwa kuwa baiti 9. Ikiwa byte za sura ya majibu zimewekwa katika mlolongo wa maneno (katika Schneider Electric PLC kumbukumbu inashughulikiwa kwa maneno), basi byte ya juu ya rejista ya kwanza iliyopokelewa (kulingana na hali, hii ni% MW100) itakuwa. iko kwenye baiti ya chini ya neno la 2 la bafa, na baiti ya chini ya rejista iliyopokelewa itakuwa imewashwa.byte ya juu ya neno la 3 kwenye bafa. Kwa hivyo, maneno yote yaliyokubaliwa yatahamishwa na itakuwa ngumu kusoma. Ili kutatua tatizo hili, jedwali la kigezo cha chaguo la kukokotoa lina uga wa msito wa kupokea ambao unabainisha nambari ya baiti katika bafa ya kupokea ambayo itahamisha mfuatano mzima.

Kipande cha programu kitaonekana kama kwenye Mchoro 6.20.
Mlolongo wa juu wa LD ni wa kujaza meza ya udhibiti wa kazi na kujaza meza ya maambukizi.

Katika mlolongo wa pili, kazi inaitwa moja kwa moja. Tofauti ya %MSG2.D hurejesha Boolean "1" wakati kitendakazi cha EXCH2 kinachakatwa na matokeo kupokelewa. Matumizi yake huzuia mtandao "kufurika" na idadi kubwa ya fremu, kwa sababu hakuna jibu kwa ombi la awali au muda wa kuisha haujapita, ombi jipya haiwezi kutumwa.

Msururu wa mwisho unakusudiwa kuandika matokeo ya usomaji kwa vigeu %MW0:3 (meza yenye maneno 3 kuanzia %MW0). Tofauti ya %MSG2.E itakuwa sawa na 1 kunapokuwa na hitilafu katika simu ya kukokotoa.

6.3.4. Utekelezaji wa safu ya kimwili ya MODBUS Serial

Tofauti na maelezo ya awali, ambayo yalipunguzwa kuelezea sura, kiwango cha MODBUS-IDA pia kinaelezea sheria za kutekeleza mtandao kwenye safu ya kimwili. MODBUS juu ya Laini ya Serial inategemea matumizi miingiliano ya serial RS-485, RS-422 na RS-232.

Topolojia imefafanuliwa kwa RS-485 - hii ni basi ambayo hutoa njia tatu za kuunganisha vifaa (Mchoro 6.21):

- Moja kwa moja kwa cable ya shina, hakuna matawi;

- Kupitia sanduku la uunganisho la passiv na cable ya tawi (Derivation);

- Kupitia kisanduku kinachofanya kazi na kebo maalum ya tawi.

Njia za kuingiliana kati ya nyaya na vipengele vya mtandao zina sifa zifuatazo (tazama Mchoro 6.21): ITr - interface kwa cable ya uti wa mgongo; IDv - interface kati ya kifaa na sanduku passiv; AUI - interface kati ya kifaa na sanduku la kazi; LT - vituo vya mstari.
Viwango vya biti vinafafanuliwa kama bps 9600 na bps 19200 (chaguo-msingi). Kasi zingine ni za hiari.Njia ya usimbaji ya NRZ inatumika.

Wakati wa kutumia RS-485, kiwango kinafafanua sheria za kuunganisha vifaa kwa kutumia mpango wa 2-waya na 4-waya, pamoja na sheria za utangamano wa interfaces 2-waya na 4-waya kwenye mstari mmoja. Hapo chini tunazingatia uunganisho wa waya 2 tu, msaada ambao ni wa lazima.

Kimsingi, kiunganisho cha waya-2 ni kiunganisho cha waya-3, kwani kwa kuongeza mistari A-( D0 ) na B+( D1 ) pia hutumiwa mstari wa kawaida C( Kawaida ), ambayo ni ya lazima (Mchoro 6.22).

Jumla ya idadi ya vifaa ni mdogo: vifaa 32 kwenye sehemu moja ya RS-485 bila kurudia (matumizi ya kurudia inaruhusiwa). Urefu wa urefu wa cable hutegemea kasi, aina ya cable, idadi ya mizigo na usanidi wa mtandao (2-waya au 4-waya). Kwa kasi ya biti 9600 na kebo ya AWG26 urefu wa juu mdogo kwa 1000m. Kebo ya kudondosha lazima iwe fupi kuliko mita 20. Ikiwa visanduku vingi vilivyo na bandari za n vinatumiwa, basi kila kebo ya kudondosha ina kikomo cha urefu wa 40/n m.

Waya ya ishara ya kawaida (Ya kawaida) lazima iunganishwe kwenye skrini wakati mmoja kwenye basi, kwa kawaida karibu na nodi ya Mwalimu au sanduku la tawi lake.

Ili kukandamiza kuakisi kwa wimbi, visimamishaji vya mstari (LT) huwekwa kwenye ncha za mstari kati ya D1 na D0. Terminators wanaruhusiwa kusakinishwa tu kwenye cable kuu.Ifuatayo inaweza kutumika kama terminal:

- Resistor yenye thamani ya nominella ya 150 Ohms na nguvu ya 0.5 W;

- Capacitor iliyounganishwa ya mfululizo (nF 1, kima cha chini cha 10 V) na kipingamizi cha ohm 120 (0.25 W) kwa kutumia mgawanyiko wa laini

Kiwango cha Ufuatiliaji wa MODBUS hufafanua sheria za kutekeleza upendeleo wa kinga (mgawanyiko), ambao hutoa kwa kuunganisha usambazaji wa umeme wa 5 V kati ya D1 na D0 kupitia vipingamizi vya PullUp na PullDown ili kudumisha "1" ya kimantiki kwenye laini wakati hakuna usambazaji.Thamani ya kupinga huchaguliwa kutoka 450 Ohm hadi 650 Ohm kulingana na idadi ya vifaa (650 Ohm kwa idadi kubwa). Mabadiliko ya kujihami hufanyika tu kwa hatua moja kwenye mstari, kwa kawaida upande wa Uongozi. Idadi ya juu ya vifaa vilivyo na polarization iliyotekelezwa imepunguzwa na 4 ikilinganishwa na mfumo bila polarization. Polarization ni ya hiari. Hata hivyo, mawasiliano kwenye vifaa yanaweza kushindwa ikiwa hakuna ishara ya mantiki. Ikiwa ndivyo ilivyo, basi polarization lazima itekelezwe kwa kujitegemea, au kutumia nyaya zilizopo, ikiwa hutolewa na vifaa.

Kiwango pia kinafafanua interface ya mitambo, i.e. aina za viunganishi, plugs na mawasiliano ya ishara kwenye anwani. Kama terminal ya mitambo, unaweza kutumia kizuizi cha terminal, kilichohifadhiwa RJ-45 (Mchoro 6.23) au kiunganishi cha SUB-D9 kilicholindwa (Mchoro 6.24).

Jedwali 6.3 linaonyesha mgawo wa anwani kwa viunganishi vilivyo na 2 uunganisho wa waya kupitia RS-485, na katika jedwali 6.4 kupitia RS-232

Jedwali 6.3

Kusudi la mawasiliano ya kontakt wakati wa kuunganisha kupitia RS-485

nambari za mawasiliano

mahitaji ya upatikanaji

Mzunguko wa IDv

Mlolongo wa ITr

jina RS-485

maoni

(tazama sehemu ya 3)

RJ45

SUB-D9

hiari

P.M.C.

udhibiti wa hali ya com bandari

Lazima

D1

B/B"

voltage V1, V1>V0 kwa logi. "1"

Lazima

D0

A/A"

voltage V0, V0>V1 kwa logi. "0"

ikiwezekana

Ugavi wa umeme 5…24 VDC

Lazima

Kawaida

Kawaida

C/C"

Nguvu na ardhi ya ishara

Jedwali 6.4

Kusudi la mawasiliano ya kontakt wakati wa kuunganisha kupitia RS-232

DCE (modemu)

mzunguko

DTE

nambari za mawasiliano

mahitaji ya upatikanaji

Jina

maoni

(tazama sehemu ya 3)

chanzo

RS-232

mahitaji ya upatikanaji

nambari

wawasiliani

RJ45

SUB-D9

RJ45

SUB-D9

Lazima

TxD

Data Iliyopitishwa

<< DTE

Lazima

Lazima

RxD

Data Iliyopokelewa

DCE >>

Lazima

hiari

CTS

Wazi Kutuma

DCE >>

hiari

hiari

RTS

Ombi la Kutuma

<< DTE

hiari

Lazima

Kawaida

Ishara ya Kawaida

Lazima

Kama nyaya za aina ya uunganisho wa waya-2, kiwango kinafafanua jozi iliyosokotwa yenye ngao mbili ya aina 4 (hadi 600m) au 5 (hadi 1000m), ambapo jozi moja ina ishara za usawa D0 na D1, na ya pili ina Kawaida. ardhi ya ishara. Rangi za cable zilizopendekezwa: D1 njano; D0 kahawia; Grey ya kawaida.

Mfano 6.6. MODBUS. Mchoro wa unganisho la mtandao wa MODBUS RTU.

Kazi . Chora mchoro wa miunganisho ya mtandao kwa utekelezaji wa waya-2 wa basi la MODBUS RTU na nodi zifuatazo:

- PLC1: VIPA CPU 115SER 6BL32 (Mwalimu) kupitia kijengee ndani bandari ya serial moduli ya processor;

- PLC2: TSX Twido TWDLMDA40DTK (Mtumwa) kupitia moduli ya mawasiliano TWD NOZ 485T

- PLC3: TSX Twido TWDLMDA40DTK (Mtumwa) kupitia moduli ya mawasiliano TWD NOZ 485T

Suluhisho . Mchoro 6.25 unaonyesha mchoro wa miunganisho ya mtandao kwa kazi uliyopewa. Ufafanuzi wa vifaa vya mtandao hutolewa katika Jedwali 6.5.

Kama inavyoonekana kutoka kwenye Mchoro 6.25, PLC1 imeunganishwa kwa basi kupitia kisanduku cha passiv, au tuseme kupitia kizuizi cha terminal, ambacho kimsingi ni sawa. Hii ni kutokana na ukweli kwamba viunganisho kwa PLC vinafanywa kwa kutumia kiunganishi cha 9-pin SUB-D, ambacho kinahitaji maendeleo ya cable yako mwenyewe, mchoro wa uunganisho (makutano) ambayo kwa kontakt na kwa block block imeonyeshwa. chini ya mchoro mkuu.

Kwa hivyo, waya za kebo ya KM2 lazima ziuzwe kwa kuziba KK1.Ugawaji wa pini za soketi ya SER hailingani na ile ya kawaida. Pini 8 na 3 (A (D0) na B (D1, kwa mtiririko huo)) huenda kwa jozi moja, kisha uunganishe kwa XT1: 1 na XT1: 2; 5 na 6 (M5V (-5V) na P5V (+5 V, mtawalia)) huenda kwenye jozi nyingine iliyopotoka ya kebo ya KM2. Ugavi wa 5V unahitajika ili kutekeleza upendeleo wa kinga (asymmetry) kwa mujibu wa kiwango. Mbali na hiloM5Vni uwanja wa ishara (Kawaida).

Cable KM2 imeunganishwa na XT1 kulingana na mchoro ulioonyeshwa kwenye Mchoro 6.25. Ngao ya cable imeunganishwa na ardhi ya ishara kwa mujibu wa mahitaji ya kiwango. Inapaswa kukumbuka kuwa VIPA PLC katika mfumo huu ni Mwalimu, kwa hiyo, kukabiliana na ulinzi na viunganisho vya ngao hadi ardhi lazima kutekelezwa mahali hapa. Upendeleo wa walinzi huzalishwa kwa kutumia nguvu ya 5V, ambayo inachukuliwa kutoka kwa bandari ya SER na vipinga viwili.

Jedwali 6.5.

Uainishaji wa Vifaa vya Mtandao

Uteuzi

Jina

Rejea

Kolic

Kumbuka

PLC1

PLC VIPA 100

VIPA CPU 115SER 6BL32

1 PC.

VIPA

PLC2, PLC3

Twido PLC

TWDLMDA40DTK

2 pcs.

Schneider Electric

MK1, MK2

moduli ya mawasiliano ya kutekeleza kiolesura cha RS-485, uunganisho wa screw

TWD NOZ 485T

2 pcs.

Schneider Electric

KK1

Kiunganishi cha kiume cha SUB-D cha pini 9

1 PC.

XT1

Kizuizi cha terminal cha pini 4

1 PC.

TL1,TL2

vimaliza vya mstari

2 pcs

zinatengenezwa na pos. 7 na 8

Kizuia 120 Ohm (0.25 W)

2 pcs.

imejumuishwa katika kipengele cha 6

Capacitor 1 nF (> 10 V)

2 pcs.

kama sehemu ya pos. 6

Ru,Rd

Kizuia 500 Ohm (0.25 W)

2 pcs

KM1

AWG26

300 m

KM2

cable yenye ngao mbili jozi iliyopotoka Jamii ya 5 AWG26

2 m

KM3

kebo ya jozi iliyosokotwa yenye ngao mbili, kitengo cha 5 AWG26

300 m

PLC2 na PLC3 zimeunganishwa kwenye basi kwa kutumia moduli ya mawasiliano yenye kizuizi cha wastaafu. Hii inaruhusu muunganisho bila matawi. Hata hivyo, kuzuia haitoi hatua ya uunganisho kwa ngao, hivyo cable inalindwa tofauti.

Vipitisho vya mstari vinatekelezwa uunganisho wa serial resistors na capacitors kwa sababu basi ni upendeleo.

Hivi sasa, Serial ya MODBUS inatumika wote katika ngazi ya mtawala na katika ngazi ya sensor (kwa vifaa vya pembeni vilivyosambazwa). Matumizi yake ni shida wakati kuna vifaa kadhaa kwenye basiSCADA/ HMI, ambayo katika usanifu wa seva ya mteja lazima wawe Wateja, kwa sababu kwenye MODBUS RTU/ASCII tu Mwalimu anaweza kuwa Mteja. Lakini hata katika hali hiyo, inawezekana kuandaa utoaji wa data kwa nodes zote zinazohitajika, ikiwa zinasaidia hali hii.

Kulingana na hapo juu, unaweza kuchagua basi ya serial ya MODBUS ikiwa:

- vifaa vyote vya Seva vinaunga mkono MODBUS RTU / ASCII katika hali ya Mtumwa;

- kifaa kimoja tu cha Mteja kinahitajika, ambacho kinahitaji kuanzisha mabadilishano kwenye basi, kusaidia MODBUS RTU/ASCII kama Mwalimu;

- kasi ya kurejesha data- inakidhi hali ya shida;
hakuna haja ya

Naam, ni wakati wa kufikiria nini itifaki Modbus TCP tofauti na itifaki Modbus RTU. Kwa kuwa hakuna tofauti nyingi sana, makala haitakuwa ndefu sana.
Kwa hiyo, katika makala iliyotangulia kuhusu kazi Modbus RTU unaweza kujua ni kazi gani na umbizo lao la binary. Sasa inafaa kusema ni nini Modbus TCP jinsi inavyotumika na jinsi inavyotofautiana na kiwango Modbus RTU.

ModbusRTUkupitia TCPkiwanja

Njia rahisi zaidi ya kubadilishana Modbus ujumbe kupitia mtandao - rahisi kusambaza Modbus RTU vifurushi kupitia Soketi ya TCP(kiwanja). Katika kesi hii, muundo wa pakiti ni sawa na kwa Modbus RTU itifaki. Kimsingi, hii inaweza kuwa mwisho wa aina hii ya itifaki.

ModbusTCP

Kwa kubadilishana Modbsu ujumbe kupitia mtandao uliamua kutumia itifaki iliyorekebishwa. Tulichukua ile ya kawaida Modbus RTU na kuibadilisha kidogo. Kwanza, ka 2 za mwisho ziliondolewa kutoka kwake CRC16. Kwa kuwa kila pakiti ya TCP/IP ina hundi yake, tuliamua kuwa hakuna haja ya kukiangalia tena. Kwa kuongeza, byte ya kwanza iliondolewa Kitambulisho cha Mtumwa. Kimsingi, kama itakavyoonekana baadaye, haikuondolewa, lakini ilibadilishwa jina tu. Hizi ni ka, bila Kitambulisho cha Mtumwa Na CRC16 kuitwa PDU - Kitengo cha Data ya Itifaki.

Kwa mfano, hebu tuchukue ombi Modbus RTU, ambayo inasoma kadhaa KUSHIKA sajili kutoka kwa kifaa #17 (Kitambulisho cha Mtumwa = 17)

11 03 006B 0003 7687

Sasa tunaondoa ka 2 za kwanza na za mwisho. Tunapata PDU!

03 006B 0003

Kila kitu kinaonekana wazi na hii. Sasa ili kupata kifurushi kamili Modbus TCP tunahitaji kuongeza mbele Kichwa cha MBAP - Kichwa cha Maombi ya Modbus. Wale. tunahitaji kuongeza kichwa kidogo. Kichwa hiki kinajumuisha Kitambulisho cha muamala, Kitambulisho cha itifaki, Urefu Na Kitambulisho cha kitengo.

Kitambulisho cha muamala- Baiti 2 ambazo zimewekwa na mteja ili kutambua kila ombi kwa njia ya kipekee. Wale. ni nambari kutoka 0 hadi 65535 ambayo ni ya kipekee kwa kila ombi.

Kitambulisho cha itifaki- Baiti 2 zinazoamua toleo la itifaki. Katika utekelezaji wa sasa lazima iwe sawa na 0x00 0x00

Urefu- Baiti 2 zinazofafanua urefu wa pakiti (bila kujumuisha ka Kitambulisho cha itifaki, Kitambulisho cha muamala Na Urefu)

Kitambulisho cha kitengo- anwani ya kipekee ya kifaa ambacho kinapigwa kura na amri hii. Sawa Kitambulisho cha Mtumwa.

Kicheko kidogo kuhusu kushughulikia. Hii inaweza kuonekana kuwa sio lazima, kwani Uunganisho wa TCP inaweza tu kuwekwa kwa anwani maalum ya IP na mlango. Wale. tayari tunayo anwani maalum ya seva, kwa hivyo mgawo huo Kitambulisho cha kitengo si wazi kabisa.

Lakini kwa kweli, ni kawaida kabisa kwa kuwa na seva ambayo inapita tu Modbus RTU maombi kwa vifaa vingine ambavyo vimeunganishwa nayo kupitia njia mbalimbali(LAN, bandari ya serial, CAN kiolesura) Kwa hivyo mteja anaweza kutumia Modbus TCP seva kama lango ( Lango) kuwasiliana na vifaa vilivyo nyuma yake.

Mfano wa seva ya Modbus TCP, ambayo hutumika kama lango la kuelekeza maombi kwa vifaa vya Modbus RTU.

Hapa kuna mfano kutoka kwa maisha. Kuna kifaa fulani kulingana na Linux. Kifaa hiki kinajitokeza Modbus TCP seva. Mteja yeyote anaweza kuunganisha kwa anwani ya IP ya umma kwenye bandari 502 na kuanzisha Modbus TCP kiwanja. Kwa hili Kifaa cha Linux sensorer zimeunganishwa kwa kutumia bandari ya serial ya RS485. Kuna sensorer nyingi, ni rahisi sana na haziwezi kushikamana na mtandao, zina bandari ya RS485 tu na wanaelewa tu. Modbus RTU. Ndio maana wateja hutuma Modbus TCP maombi kutoka Kitambulisho cha kitengo vihisi vimewashwa Modbus TCP Seva. Misimbo ya seva Modbus TCP omba na kuibadilisha kuwa Modbus RTU na hutuma kwa bandari ya RS485. Baada ya sensor kujibu, inabadilisha Modbus RTU jibu ndani Modbus TCP jibu na kuirudisha kwa Modbus TCP kwa mteja aliyeanzisha ombi. Kwa hivyo, kwa anwani moja tu ya IP ya umma, unaweza kuhoji mamia ya vitambuzi mtandaoni ambavyo haviwezi kuunganishwa kwenye Mtandao au mtandao wa ndani.

Na sasa mchoro wa kuona wa jinsi inavyotofautiana Modbus RTU ombi kutoka Modbus TCP ombi.

Wacha tuangalie mfano wa ka kwa maombi mawili:

Modbus RTU: 11 03 006B 0003 7687 Modbus TCP: 0001 0000 0006 11 03 006B 0003

Jibu la mfano:

Modbus TCP: 0001 0000 0009 11 03 06 AE41 5652 4340 Modbus RTU: 11 03 06 AE41 5652 4340 49AD

Kama unaweza kuona, badilisha maombi kati ya Modbus RTU Na Modbus TCP rahisi sana. Ingawa utekelezaji Modbus RTU TCP inaweza kuonekana kama njia rahisi zaidi ya kutuma maombi, lakini kwa kweli Modbus TCP kuna pointi kadhaa chanya:

  • Hakuna haja ya kuhesabu CRC16
  • Inawezekana kutambua jozi ya jibu/ombi kwa kutumia Kitambulisho cha muamala
  • Unaweza kuongeza matoleo yako ya itifaki kwa urahisi kwa kubadilisha ya mara kwa mara Kitambulisho cha itifaki


Muundo wa ujumbe wa itifaki ya Modbus ni kama ifuatavyo:

  1. anwani ya mtumwa ni anwani ya kifaa ambacho ujumbe huu Itifaki ya Modbus. Vifaa hujibu tu ujumbe ambao umeelekezwa kwao mahususi. Jibu huanza na anwani ya mtumwa. Anwani inatofautiana ndani ya 1…247. Anwani 0 katika ujumbe wa itifaki ya Modbus imehifadhiwa kwa ujumbe wa matangazo, 248..255 ni anwani zilizohifadhiwa.
  2. nambari ya kazi - 1 byte ya data.
  3. data - uwanja huu una habari kuhusu kazi ya kufanywa, au data ambayo mtumwa hutuma kwa bwana wa itifaki ya Modbus.
  4. kizuizi cha kugundua makosa (CRC) - hundi ambayo huhesabiwa kutoka kwa byte zote zilizopita kwa kutumia algorithm ya mzunguko-robin na bit-elimination.

Tafadhali kumbuka kuwa unaposoma kupitia itifaki ya Modbus, katika ujumbe mmoja unaweza kusoma thamani ya pembejeo za discrete au za analog na matokeo ziko kwenye safu, ambayo ni, kuweka anwani ya thamani ya kwanza na nambari yao.

Hebu tuangalie kuu vipengele vya kawaida kwa nambari zao (katika muundo wa decimal na hexadecimal):
1 (0x01) - kusoma matokeo kadhaa tofauti
2 (0x02) - kusoma pembejeo kadhaa tofauti
3 (0x03) - kusoma rejista kadhaa za kati au matokeo ya analog
4 (0x04) - kusoma pembejeo kadhaa za analog
Ikiwa, kwa mfano, idadi ya pembejeo tofauti ambazo hutolewa katika ombi sio nyingi ya nane, basi idadi ya baiti za maadili huzungushwa hadi upande mkubwa na, ipasavyo, kupata, kwa mfano, maadili ya pembejeo 15 tofauti, nambari hii itakuwa sawa na ka mbili.
Kabla ya data ya ujumbe wa Modbus, byte moja hupitishwa, thamani ambayo ni idadi ya byte za data.
5 (0x05) - rekodi thamani ya moja pato tofauti
6 (0x06) - kuandika thamani ya pato moja la analog au rejista
Amri ya Modbus ina anwani na thamani halisi (baiti 2). Jibu la kawaida ni marudio ya ombi la itifaki ya Modbus.
15 (0x0F) - maadili ya uandishi kwa matokeo kadhaa tofauti
16 (0x10) - huandika maadili ya matokeo au rejista kadhaa za analog
Jibu lina anwani ya kuanzia ya rejista na idadi ya maadili yaliyobadilishwa.
Ombi la itifaki ya Modbus/mfano wa jibu:

Makosa ya maambukizi yanagawanywa katika aina 2 - uharibifu wa maambukizi na mantiki. Upotoshaji unafuatiliwa na wakati wa "kimya". Muda wa kawaida kati ya ujumbe ni muda unaohitajika kusambaza herufi 3.5. Ikiwa pause ya zaidi ya herufi 1.5 itatokea wakati wa uwasilishaji wa ujumbe wa itifaki ya Modbus, pakiti hutupwa.

Hitilafu za kimantiki katika itifaki ya Modbus hutokea ikiwa mtumwa hawezi kupokea ujumbe kabisa, au kuupokea lakini kuzalisha hitilafu. Katika kesi hii, kosa hugunduliwa na kuisha kwa muda. Mtumwa anakubali ombi, lakini hawezi kulishughulikia (kwa mfano, kupata anwani isiyopo) - katika kesi hii, ujumbe wa makosa hutumwa.

Mfano wa ujumbe wa makosa ya Modbus kwa ombi:

Nambari za kawaida za makosa ya itifaki ya Modbus:
01 -Kitendo hakiwezi kushughulikiwa kwa mtumwa.
02 - Anwani ya data haipo.
03 - Thamani katika sehemu ya data ya ombi si sahihi kwa salve.
04 - Hitilafu mbaya ilitokea wakati mtumwa alipokuwa akijaribu kufanya kitendo.
05 - Mtumwa alikubali ombi na akaanza kulishughulikia, lakini hii itachukua muda. Msimbo huu huzuia bwana kutupa hitilafu ya kuisha.
06 - Mtumwa anashughulika kushughulikia amri, Bwana lazima atume tena ujumbe baadaye wakati mtumwa yuko huru.
07 -Mtumwa hawezi kutekeleza chaguo la kukokotoa kutoka kwa ombi. Mwalimu lazima atume ombi habari za uchunguzi au kupokea taarifa ya makosa kutoka kwa mtumwa.
08 - Mtumwa anajaribu kusoma eneo la kumbukumbu, lakini hitilafu ya usawa imegunduliwa. Mwalimu anaweza kurudia ombi, lakini kwa kawaida katika hali hiyo ukarabati unahitajika.

Muundo wa sura ya Modbus TCP:

Wapi:
Kitambulisho cha muamala - ka mbili
Kitambulisho cha Itifaki - ka mbili (sifuri nne)
urefu wa pakiti - ka mbili, ukubwa wa mashamba ya ujumbe unaofuata
anwani ya mtumwa - anwani ya mtumwa ambayo ombi la itifaki ya Modbus linashughulikiwa.
Kipengele maalum cha itifaki ya Modbus TCP ni kutokuwepo kwa checksum, tangu safu ya usafiri Itifaki ya TCP hukagua CRC. Kwa hiyo, kuangalia checksum katika muundo wa RTU haina maana.

Katika makala haya, utajifunza kuhusu itifaki ya Modbus TCP, ambayo ni mageuzi ya itifaki ya Modbus RTU. Toleo la Kiingereza Nakala zinapatikana kwa ipc2u.com.

Wapi kutuma amri ya Modbus TCP?

Kwenye mtandao wa Ethaneti, anwani ya kifaa ni anwani yake ya IP. Kwa kawaida, vifaa viko kwenye subnet sawa, ambapo anwani za IP ni tofauti tarakimu za mwisho 192.168.1.20 wakati wa kutumia mask ya kawaida ya subnet 255.255.255.0.

Kiolesura ni mtandao Ethaneti, itifaki ya uhamishaji data - TCP/IP.

Bandari ya TCP imetumika: 502 .

Maelezo ya itifaki ya Modbus TCP

Amri ya TCP ya Modbus ina sehemu ya ujumbe wa Modbus RTU na kichwa maalum.

Kutoka kwa ujumbe wa Modbus RTU, anwani ya SlaveID mwanzoni na cheki ya CRC mwishoni huondolewa, ambayo huunda PDU, Kitengo cha Data ya Itifaki.

Ufuatao ni mfano wa ombi la Modbus RTU la kupata thamani ya toleo la analogi ya AO (rejista za kushikilia) kutoka kwa rejista #40108 hadi 40110 zilizo na anwani ya kifaa 17.

11 03 006B 0003 7687

Tunatupa anwani ya kifaa cha SlaveID na hundi ya CRC na kupata PDU:

03 006B 0003

Kichwa kipya cha baiti 7 kinachoitwa Kichwa cha MBAP (Kichwa cha Maombi ya Modbus) kinaongezwa mwanzoni mwa ujumbe unaotokana wa PDU. Kichwa hiki kina data ifuatayo:

Kitambulisho cha Muamala: Baiti 2 zimewekwa na Mwalimu ili kutambua kila ombi kwa njia ya kipekee. Inaweza kuwa yoyote. Baiti hizi zitarudiwa na Mtumwa katika jibu kwa sababu majibu ya Mtumwa huenda yasipokewe kila mara kwa mpangilio sawa na maombi.

Kitambulisho cha Itifaki: 2 byte zimewekwa na Mwalimu, daima itakuwa = 00 00, ambayo inalingana na itifaki ya Modbus.

Urefu: Baiti 2 zimewekwa na Mwalimu, akibainisha idadi ya baiti katika ujumbe unaofuata. Huhesabu kutoka kwa Kitambulisho cha Kitengo hadi mwisho wa ujumbe.

Kitambulisho cha Kitengo: Baiti 1 imewekwa kuwa Mwalimu. Inarudiwa na kifaa cha Mtumwa ili kutambua kifaa cha Mtumwa kwa njia ya kipekee.

Kwa jumla tunapata:

Modbus RTUKitambulisho cha MtumwaOmbiCRC
Modbus RTU 11 03 006B 0003 7687
0001 0000 0006 11 03 006B 0003
PDU
ADU Data ya Maombi Kitengo

Kwa majibu kutoka kwa Modbus TCP Vifaa vya watumwa tutapata:

0001 0000 0009 11 03 06 022B 0064 007F

0001 Kitambulisho cha muamala Kitambulisho cha Muamala
0000 Kitambulisho cha itifaki Kitambulisho cha Itifaki
0009 Urefu(Baiti 9 zinafuata)Urefu wa Ujumbe
11 Anwani ya kifaa(17 = 11 hex)Kitambulisho cha Kitengo
03 Msimbo wa kazi(soma Rejesta za Analogi za Kushikilia Pato)Kanuni ya Kazi
06 Idadi ya baiti zaidi(Baiti 6 zinafuata)Hesabu ya Byte
02 (02 hex)Thamani ya usajili Hi (AO0)
2B (2B hex)Thamani ya usajili Lo (AO0)
00 Thamani ya sehemu muhimu zaidi ya rejista(00 hex)Thamani ya usajili Hi (AO1)
64 Sajili thamani ya LSB(hex 64)Thamani ya usajili Lo (AO1)
00 Thamani ya sehemu muhimu zaidi ya rejista(00 hex)Thamani ya usajili Hi (AO2)
7F Sajili thamani ya LSB(7F hex)Thamani ya usajili Lo (AO2)

Rejesta ya pato la analogi AO0 ina thamani 02 2B HEX au 555 katika desimali.

Rejesta ya pato la analogi AO1 ina thamani 00 64 HEX au 100 katika mfumo wa desimali.

Rejesta ya pato la analogi AO2 ina thamani 00 7F HEX au 127 katika mfumo wa desimali.

Aina za Amri za Modbus TCP

Hapa kuna jedwali lililo na nambari za kazi za kusoma na kuandika rejista za Modbus TCP.

Msimbo wa kaziJe, kazi hufanya niniAina ya thamaniAina ya ufikiaji
01 (0x01)Kusoma FANYASoma Hali ya CoilTofautiKusoma
02 (0x02)Kusoma DISoma Hali ya IngizoTofautiKusoma
03 (0x03)Kusoma AOSoma Rejesta za Kushikilia16 kidogoKusoma
04 (0x04)Kusoma AISoma Rejesta za Kuingiza Data16 kidogoKusoma
05 (0x05)Andika DO mojaLazimisha Coil MojaTofautiRekodi
06 (0x06)Inarekodi AO mojaWeka Sajili Moja mapema16 kidogoRekodi
15 (0x0F)Kurekodi kwa DO nyingiLazimisha Coils NyingiTofautiRekodi
16 (0x10)Kurekodi AO nyingiWeka Sajili Nyingi mapema16 kidogoRekodi

Jinsi ya kutuma amri ya Modbus TCP kusoma pato tofauti? Amri 0x01

Amri hii inatumika kusoma maadili ya pato la DO digital.

Ombi la PDU linabainisha anwani ya kuanzia ya rejista ya kwanza ya DO na nambari inayofuata ya maadili ya DO inayohitajika. Katika PDU, thamani za DO hushughulikiwa kuanzia sifuri.

Thamani za DO katika jibu ziko katika byte moja na zinalingana na maana ya bits.

Thamani ndogo hufafanuliwa kama 1 = ON na 0 = ZIMWA.

Sehemu ndogo zaidi ya baiti ya data ya kwanza ina thamani ya DO ambayo anwani yake ilibainishwa katika ombi. Thamani zilizosalia za DO huendelea kwa mpangilio wa kupanda hadi thamani ya baiti muhimu zaidi. Wale. kutoka kulia kwenda kushoto.

Ikiwa chini ya thamani nane za DO ziliombwa, biti zilizobaki kwenye jibu zitajazwa na sufuri (mwelekeo wa chini hadi wa juu wa baiti). Sehemu ya Hesabu ya Byte Idadi ya baiti zaidi inaonyesha idadi ya baiti kamili za data katika jibu.

ByteOmbiByteJibu
(Hex)Jina la shamba(Hex)Jina la shamba
01 Kitambulisho cha muamala 01 Kitambulisho cha muamala
02 02
00 Kitambulisho cha itifaki 00 Kitambulisho cha itifaki
00 00
00 Urefu wa ujumbe 00 Urefu wa ujumbe
06 04
01 Anwani ya kifaa01 Anwani ya kifaa
01 Msimbo wa kazi01 Msimbo wa kazi
00 01 Idadi ya baiti zaidi
00 02 DO thamani ya usajili 0-1
00 Idadi ya rejista Hi ka
02 Idadi ya rejista Lo ka

Majimbo ya matokeo DO0-1 yanaonyeshwa kama maadili ya byte 02 hex, au katika mfumo wa binary 0000 0010.

Thamani ya DO1 itakuwa ya pili kutoka kulia, na DO0 itakuwa ya kwanza kutoka kulia (LSB).

Biti sita zilizobaki zimejazwa na zero kwa byte kamili, kwa sababu hawakuombwa.

Moduli za Pato la Tofauti: ioLogik E1211, ET-7060, ADAM-6060

Jinsi ya kutuma amri ya Modbus TCP kusoma pembejeo tofauti? Amri 0x02

Amri hii inatumika kusoma maadili ya DI.

Ombi na majibu ya DI ni sawa na ombi la DO.

ByteOmbiByteJibu
(Hex)Jina la shamba(Hex)Jina la shamba
01 Kitambulisho cha muamala 01 Kitambulisho cha muamala
02 02
00 Kitambulisho cha itifaki 00 Kitambulisho cha itifaki
00 00
00 Urefu wa ujumbe 00 Urefu wa ujumbe
06 04
01 Anwani ya kifaa01 Anwani ya kifaa
02 Msimbo wa kazi02 Msimbo wa kazi
00 Anwani ya rejista ya kwanza Hi byte01 Idadi ya baiti zaidi
00 Anwani ya rejista ya kwanza Lo byte03 Thamani ya usajili wa DI 0-1
00 Idadi ya rejista Hi ka
02 Idadi ya rejista Lo ka

Hali za matokeo DI 0-1 zinaonyeshwa kama thamani za byte 03 hex, au kwa binary 0000 0011.

Thamani ya DI1 itakuwa ya pili kutoka kulia, na thamani ya DI0 itakuwa ya kwanza kutoka kulia (LSB).

Biti sita zilizobaki zimejaa zero.

Moduli za pembejeo tofauti: ioLogik E1210, ET-7053, ADAM-6050

Jinsi ya kutuma amri ya Modbus TCP kusoma pato la analog? Amri 0x03

Amri hii inatumika kusoma maadili ya matokeo ya analog ya AO.

ByteOmbiByteJibu
(Hex)Jina la shamba(Hex)Jina la shamba
01 Kitambulisho cha muamala 01 Kitambulisho cha muamala
02 02
00 Kitambulisho cha itifaki 00 Kitambulisho cha itifaki
00 00
00 Urefu wa ujumbe 00 Urefu wa ujumbe
06 07
01 Anwani ya kifaa01 Anwani ya kifaa
03 Msimbo wa kazi03 Msimbo wa kazi
00 Anwani ya rejista ya kwanza Hi byte04 Idadi ya baiti zaidi
00 Anwani ya rejista ya kwanza Lo byte02 Thamani ya usajili wa habari (AO0)
00 Idadi ya rejista Hi ka2BThamani ya usajili wa Lo (AO0)
02 Idadi ya rejista Lo ka00 Thamani ya usajili wa habari (AO1)
64 Thamani ya usajili wa Lo (AO1)

Majimbo ya matokeo ya AO0 yanaonyeshwa kama thamani za byte 02 2B hex, au desimali 555.

Majimbo ya matokeo ya AO1 yanaonyeshwa kama thamani za baiti 00 64 hex, au desimali 100.

Moduli za pembejeo tofauti: ioLogik E1210, ET-7053, ADAM-6050

Jinsi ya kutuma amri ya Modbus TCP kusoma pembejeo ya analog? Amri 0x04

Amri hii inatumika kusoma maadili ya pembejeo za analog za AI.

ByteOmbiByteJibu
(Hex)Jina la shamba(Hex)Jina la shamba
01 Kitambulisho cha muamala 01 Kitambulisho cha muamala
02 02
00 Kitambulisho cha itifaki 00 Kitambulisho cha itifaki
00 00
00 Urefu wa ujumbe 00 Urefu wa ujumbe
06 07
01 Anwani ya kifaa01 Anwani ya kifaa
04 Msimbo wa kazi04 Msimbo wa kazi
00 Anwani ya rejista ya kwanza Hi byte04 Idadi ya baiti zaidi
00 Anwani ya rejista ya kwanza Lo byte00 Thamani ya usajili wa Hi (AI0)
00 Idadi ya rejista Hi ka0AThamani ya usajili wa Lo (AI0)
02 Idadi ya rejista Lo ka00 Thamani ya usajili wa Hi (AI1)
64 Thamani ya usajili wa Lo (AI1)

Majimbo ya matokeo ya AI0 yanaonyeshwa kama thamani za baiti 00 0A hex, au desimali 10.

Hali za pato za AI1 zinaonyeshwa kama thamani za baiti 00 64 hex, au desimali 100.

Moduli za pembejeo za Analogi: ioLogik E1240, ET-7017-10, ADAM-6217

Jinsi ya kutuma amri ya Modbus TCP kuandika pato tofauti? Amri 0x05

Amri hii inatumika kuandika thamani moja ya DO.

Thamani FF 00 hex huweka pato kuwa ON.

Thamani 00 00 hex huweka pato KUZIMWA.

Thamani zingine zote ni batili na hazitaathiri hali ya pato.

Jibu la kawaida kwa ombi kama hilo ni mwangwi (kurudia ombi katika jibu), iliyorejeshwa baada ya hali ya DO kubadilishwa.

ByteOmbiByteJibu
(Hex)Jina la shamba(Hex)Jina la shamba
01 Kitambulisho cha muamala 01 Kitambulisho cha muamala
02 02
00 Kitambulisho cha itifaki 00 Kitambulisho cha itifaki
00 00
00 Urefu wa ujumbe 00 Urefu wa ujumbe
06 06
01 Anwani ya kifaa01 Anwani ya kifaa
05 Msimbo wa kazi05 Msimbo wa kazi
00 Hi jiandikishe anwani byte00 Hi jiandikishe anwani byte
01 Jisajili anwani Lo byte01 Jisajili anwani Lo byte
FFHi byte thamaniFFHi byte thamani
00 Thamani ya Lo byte00 Thamani ya Lo byte

Moduli za Pato la Tofauti: ioLogik E1211, ET-7060, ADAM-6060

Jinsi ya kutuma amri ya Modbus TCP kuandika pato la analog? Amri 0x06

Amri hii inatumiwa kuandika thamani moja ya pato la analog AO.

ByteOmbiByteJibu
(Hex)Jina la shamba(Hex)Jina la shamba
01 Kitambulisho cha muamala 01 Kitambulisho cha muamala
02 02
00 Kitambulisho cha itifaki 00 Kitambulisho cha itifaki
00 00
00 Urefu wa ujumbe 00 Urefu wa ujumbe
06 06
01 Anwani ya kifaa01 Anwani ya kifaa
06 Msimbo wa kazi06 Msimbo wa kazi
00 Hi jiandikishe anwani byte00 Hi jiandikishe anwani byte
01 Jisajili anwani Lo byte01 Jisajili anwani Lo byte
55 Hi byte thamani55 Hi byte thamani
FFThamani ya Lo byteFFThamani ya Lo byte

Hali ya pato la AO0 imebadilika hadi heksi 55 FF, au 22015 katika desimali.

Moduli za Pato za Analogi: ioLogik E1241, ET-7028, ADAM-6224

Jinsi ya kutuma amri ya Modbus TCP kuandika pini nyingi za dijiti? Amri 0x0F

Amri hii inatumika kuandika maadili mengi ya DO.

ByteOmbiByteJibu
(Hex)Jina la shamba(Hex)Jina la shamba
01 Kitambulisho cha muamala 01 Kitambulisho cha muamala
02 02
00 Kitambulisho cha itifaki 00 Kitambulisho cha itifaki
00 00
00 Urefu wa ujumbe 00 Urefu wa ujumbe
08 06
01 Anwani ya kifaa01 Anwani ya kifaa
0FMsimbo wa kazi0FMsimbo wa kazi
00 Anwani ya rejista ya kwanza Hi byte00 Anwani ya rejista ya kwanza Hi byte
00 Anwani ya rejista ya kwanza Lo byte00 Anwani ya rejista ya kwanza Lo byte
00 Idadi ya rejista Hi ka00
02 Idadi ya rejista Lo ka02
01 Idadi ya baiti zaidi
02 Thamani ya Byte

Hali ya pato la DO1 imebadilishwa kutoka ZIMWA hadi KUWASHA.

Hali ya pato la DO0 inasalia IMEZIMWA.

Moduli za Pato la Tofauti: ioLogik E1211, ET-7060, ADAM-6060

Jinsi ya kutuma amri ya Modbus TCP kuandika pini nyingi za analog? Amri 0x10

Amri hii inatumika kuandika thamani nyingi za pato za analogi za AO.

ByteOmbiByteJibu
(Hex)Jina la shamba(Hex)Jina la shamba
01 Kitambulisho cha muamala 01 Kitambulisho cha muamala
02 02
00 Kitambulisho cha itifaki 00 Kitambulisho cha itifaki
00 00
00 Urefu wa ujumbe 00 Urefu wa ujumbe
0B06
01 Anwani ya kifaa01 Anwani ya kifaa
10 Msimbo wa kazi10 Msimbo wa kazi
00 Anwani ya rejista ya kwanza Hi byte00 Anwani ya rejista ya kwanza Hi byte
00 Anwani ya rejista ya kwanza Lo byte00 Anwani ya rejista ya kwanza Lo byte
00 Idadi ya rejista Hi ka00 Idadi ya reg iliyorekodiwa. Hi byte
02 Idadi ya rejista Lo ka02 Idadi ya reg iliyorekodiwa. Lo ka
04 Idadi ya baiti zaidi
00 Hi thamani AO0 byte
0AThamani ya kweli baiti AO0
01 Hi thamani AO1 byte
02 Thamani ya kweli AO1 baiti

Hali ya pato la AO0 imebadilika hadi 00 0A hex, au 10 katika desimali.

Katika Somo la 48, nilionyesha mfano wa itifaki isiyo ya kawaida ya kubadilishana data kupitia kiolesura cha UART. Kama kawaida, kila kitu kisicho cha kawaida hukuruhusu kuongeza utekelezwaji wa kazi, na kila kitu cha ulimwengu hurahisisha maendeleo ya kazi.

Kuna itifaki ya mawasiliano ya ModBus rahisi, ya ulimwengu wote ambapo upunguzaji wa data na utendakazi huwekwa kwa kiwango cha chini. Labda hii ndiyo itifaki ya kawaida ya kuandaa mifumo ndogo iliyosambazwa. Katika masomo yanayofuata nitatumia kubadilishana data kati ya vifaa kwa kutumia itifaki hii.

Maelezo ya jumla ya itifaki.

ModBus itifaki wazi kubadilishana data katika mitandao midogo ya ndani. Kama sheria, hutumiwa kusambaza data kupitia miingiliano ya RS-232, RS-485, RS-422, katika TCP/IP, mitandao ya UDP. Kwa sababu ya unyenyekevu na matumizi mengi, ModBus imeenea na imekuwa kiwango cha ukweli katika mifumo ndogo ya kompyuta iliyosambazwa. Takriban vidhibiti vyote vya kisasa vinaunga mkono mitandao ya ModBus.

Katika mtandao wa ModBus, vidhibiti kawaida huunganishwa kwa kutumia topolojia ya "Basi la Kawaida". Uingiliano wa watawala hutokea kwa mujibu wa mfano wa bwana-mtumwa (bwana-mtumwa).

Kuna kifaa kuu kwenye mtandao - bwana. Na pia vifaa kadhaa vya watumwa - watumwa. Kubadilishana kunaweza kuanzishwa tu na kifaa kikuu.

Muamala (msururu wa shughuli wakati wa ubadilishanaji wa data) huwa na ombi na jibu.

Kifaa kikuu kinaweza kushughulikia ombi kwa kidhibiti chochote cha watumwa au kuanzisha tangaza ujumbe, kwa vifaa vyote vya watumwa kwa wakati mmoja.

Kifaa cha mtumwa, baada ya kuamua anwani yake katika ombi, hutoa jibu.

Ombi kutoka kwa kifaa kikuu lazima liwe na msimbo wa kazi, i.e. nini cha kufanya. Pia, kulingana na kazi, ombi linaweza kuwa na data.

Kuna anuwai 3 za itifaki ya ModBus.

  • ModBus ASCII - itifaki ya maandishi. Inatumia tu Wahusika wa ASCII. Kila baiti hupitishwa kama herufi mbili za heksadesimali.
  • ModBus RTU ni itifaki ya nambari. Data huhamishiwa kwa binary. Byte inayopitishwa kwenye mtandao ni nambari ya itifaki.
  • ModBus TCP ni itifaki ya usambazaji wa data katika mitandao ya TCP/IP.

Nambari na itifaki za maandishi Nililinganisha nyuma. Kwa upande wa utendaji na kasi ya kubadilishana, itifaki za nambari hakika zina faida. Katika masomo yajayo tutatumia ModBus RTU. Taarifa ifuatayo katika somo hili imetolewa kwa chaguo hili.

Itifaki ya ModBus RTU.

Vifaa (vidhibiti) vimeunganishwa kwenye mtandao kwa kutumia topolojia ya "Common Bus". Kiwango cha ModBus kinaruhusu kufanya kazi pamoja hadi vidhibiti 247.

Kila kidhibiti kina data, kwa kweli, ambayo vifaa hubadilishana.

Kiwango cha ModBus kinafafanua aina 4 za data.

Aina ya data Ukubwa Operesheni Sahihi
Rejesta ya Bendera (Coils) 1 kidogo Andika na usome
Ingizo Tofauti 1 kidogo Kusoma
Kushikilia Rejesta 16 kidogo Andika na usome
Sajili za Kuingiza 16 kidogo Kusoma

Utenganishaji huu wa utendaji wa data umefutwa na kwa kweli hautumiki. Data yote hatimaye inasomwa kutoka kwa kumbukumbu ya mtawala na sio muhimu sana ambapo waliingia ndani yake kutoka kwa pembejeo au kutoka kwa rejista za pembejeo.

Katika mazoezi, Rejesta hizi za Holding pekee ndizo zinazotumiwa. Data inapatikana kupitia anwani ya 16-bit. Hatimaye:

  • data katika kila mtawala ni meza ya rejista 16-bit;
  • jedwali la data linaweza kuwa na hadi vipengele 65536;
  • idadi ya vipengele huanza kutoka 0.

Kifaa kikuu huanzisha shughuli - kubadilishana data. Muamala unaweza kuwa wa mtu binafsi (majibu ya ombi) au matangazo (vifaa vyote vya watumwa vinashughulikiwa kwa wakati mmoja). Muamala una sura moja ya ombi na fremu moja ya majibu. Katika shughuli ya utangazaji, tu sura ya ombi inatumiwa.

Data ya fremu hupitishwa kama mtiririko unaoendelea. Pause kati ya maambukizi ya data haipaswi kuzidi muda wa utumaji wa vibambo 1.5. Ishara ya sura mpya ni kutokuwepo kwa kubadilishana kwenye mtandao (kimya) wakati unaohitajika kwa maambukizi ya wahusika 3.5. Ikiwa wakati huu laini ya mtandao ilikuwa katika hali ya kutofanya kazi, basi vifaa vya watumwa huona data iliyopokelewa kwanza kama mwanzo wa fremu.

Kwa ujumla, sura ya ombi ina umbizo lifuatalo.


Anwani (8 bits).

Sura huanza na uga wa anwani, ambao una biti 8. Ina anwani ya kifaa cha mtumwa ambacho ujumbe kutoka kwa bwana unakusudiwa. Kila kifaa cha mtumwa lazima kiwe na anwani ya kipekee kutoka 1 hadi 247. Na tu kifaa cha mtumwa kinachoweza kushughulikiwa lazima kijibu ombi la bwana. Jibu linamwambia bwana ni mtumwa gani anayewasiliana.

Anwani 0 inatumika katika hali ya utangazaji. Watumwa wote hufanya kazi iliyoainishwa katika ombi, lakini usitume kukiri.

Kazi (8 bits).

Sehemu ya utendaji inamwambia mtumwa aliyeshughulikiwa ni operesheni gani ya kufanya.

Sehemu muhimu zaidi ya byte ya chaguo la kukokotoa imewekwa kuwa 1 katika jibu la mtumwa ili kumjulisha bwana kuwa operesheni ilikamilishwa kimakosa. Ikiwa operesheni imefaulu, jambo muhimu zaidi ni 0.

  • Amri za kawaida. Misimbo iliyofafanuliwa na kiwango cha itifaki ya ModBus.
  • Maagizo maalum. Kwa nambari 65 ... 72 na 100 ... 110, mtumiaji anaweza kugawa kazi ya kiholela.
  • Timu zilizohifadhiwa. Hizi ni kanuni ambazo hazikufafanuliwa awali na kiwango, lakini tayari hutumiwa katika vifaa kutoka kwa wazalishaji tofauti.

Idadi kubwa ya vidhibiti vya ModBus hutumia vitendaji 3 pekee.

Muundo wa majibu hutegemea kitendakazi. Mara nyingi, jibu la kawaida hurudia ombi zima au kwa sehemu.

Data (N * 8 bits).

Sehemu ya data ina habari inayohitajika na mtawala wa mtumwa kutekeleza kazi iliyopewa au shamba lina data iliyopitishwa na kifaa cha mtumwa kwa ombi la bwana. Urefu na muundo wa uwanja wa data hutegemea msimbo wa kazi. Baadhi ya jumbe zinaweza kukosa data.

Kila data ina biti 16 (baiti 2). Data hupitishwa kwa baiti muhimu zaidi kwanza. Kwa mfano, uhamisho unaofuatana wa rejista zilizo na anwani 0 na 1 unapaswa kutokea kama ifuatavyo:

  • kiwango cha juu cha usajili 0 ->
  • chini byte ya rejista 0 ->
  • daraja la juu la usajili 1 ->
  • chini byte ya rejista 1 ->.

Wakati wa kusambaza nambari ya 4-byte, kwa mfano, na hatua ya kuelea, mlolongo ni sawa. Nambari imegawanywa katika rejista mbili za 16-bit na katika kila moja byte muhimu zaidi hupitishwa kwanza (1-> 0-> 3-> 2->).

Checksum (biti 16).

Uga wa udhibiti wa uadilifu wa data ya ujumbe. Inakuruhusu kuangalia fremu kwa hitilafu. Ni kuhusu kuhusu makosa yanayotokea wakati wa kuhamisha data.

Nitajaribu niwezavyo muhtasari wa jumla zungumza juu ya kanuni ya udhibiti. Ni bora kuruka aya hii. Kichwa chako kinaweza kupasuka. Ninapogusa mada hii, mimi hupata maumivu ya kichwa kila wakati. Katika somo lijalo nitatambulisha utekelezaji wa vitendo Mahesabu ya nambari ya kudhibiti ModBus.

Nambari ya upunguzaji wa muda wa mzunguko (CRC) inatumika kama hundi. Biti zote za fremu ya upitishaji hukusanywa kuwa kubwa nambari ya binary. Imegawanywa na kanuni ya polynomial inayozalisha. Sehemu iliyobaki ya mgawanyiko ni nambari ya udhibiti.

Moduli ya 2 ya hesabu ya polynomial inatumika. Hii ina maana kwamba vitendo vyote wakati wa kukokotoa CRC ni shughuli za hesabu hakuna uhamisho. Kutoa na kuongeza hutokea kidogo, bila kuzingatia kubeba, ndiyo sababu shughuli hizi hutoa matokeo sawa na inaweza kubadilishwa na operesheni ya "kipekee au". Wakati wa kugawanya, badala ya kuondoa mgawanyiko kutoka kwa mgawanyiko, operesheni ya "kipekee au" pia hutumiwa. Hii kanuni ya jumla Mahesabu ya CRC. Katika mazoezi, mahesabu yanafanywa kwa kutumia algorithms yenye ufanisi zaidi.

Cheki inamaliza fremu ya upitishaji. Baada ya kupokea sura, kifaa cha mtumwa, kwa kutumia algorithm sawa, huhesabu hundi ya data iliyopokelewa na kuilinganisha na nambari ya hundi iliyopitishwa mwishoni mwa fremu. Matokeo yake, uadilifu wa data ya sura unathibitishwa.

Kiwango cha ModBus RTU kinatumia kiwango kanuni ya mzunguko CRC-16 inayozalisha polynomial X 16 +X 15 +X 2 +1. Huu ni msimbo wa biti 16, mgawo wa binary ni 1 1000 0000 0000 0101 (8005h katika hexadecimal).

Ujumbe unachukuliwa kama nambari moja ya mfuatano ya binary ambapo biti muhimu zaidi hupitishwa kwanza. Nambari hii inazidishwa na X 16 (imebadilishwa kushoto na nafasi 16), na kugawanywa na X 16 +X 15 +X 2 +1 (1 1000 0000 0000 0101). Salio ya biti 16 (iliyoanzishwa awali na zote) ni msimbo wa kudhibiti ujumbe.

Kushughulikia makosa ya kimantiki.

Mbali na makosa yanayohusiana na uharibifu wa data wakati wa maambukizi, kunaweza kuwa na makosa ya kimantiki wakati ombi linapokelewa bila makosa, lakini haiwezi kutekelezwa. Kwa kawaida, makosa hayo yanahusishwa na anwani, data, misimbo, n.k. Vidhibiti vingi vya ModBus vinaunga mkono aina zifuatazo za makosa.

Msimbo wa hitilafu Jina Maelezo
01 KAZI HARAMU Msimbo wa utendakazi hautumiki katika kidhibiti
02 ANWANI YA DATA HARAMU Anwani ya data si sahihi
03 THAMANI YA DATA HARAMU Thamani za data zisizo sahihi
04 KUSHINDWA KWA KIFAA CHA MTUMWA Hitilafu ilitokea wakati wa kufanya operesheni

Ikiwa hitilafu itatokea katika jibu, biti muhimu zaidi huwekwa kwenye uga wa msimbo wa kazi kisha msimbo wa hitilafu hutumwa badala ya data ya kawaida.

Uchunguzi wa kina wa kazi.

Kazi 03 - soma rejista za kushikilia.

Inatumika kusoma maadili ya rejista nyingi za kushikilia. Ombi hupeleka anwani ya kipengele cha kwanza cha jedwali la rejista, thamani ambayo inapaswa kusomwa, na idadi ya rejista za kusoma. 16 inatumika kwa anwani na wingi namba kidogo. Byte muhimu zaidi hupitishwa kwanza.

Data iliyoombwa iko kwenye jibu. Kabla ya kizuizi cha data, byte hupitishwa ambayo ina idadi ya data iliyosomwa kwa baiti.

Omba umbizo la kazi ya rejista za uhifadhi wa kusoma.

Nambari ya Byte Nambari ya Byte katika kigezo Kigezo
0 0 Anwani ya kidhibiti 01 01
1 0 Kazi 03 03
2 1 Anwani ya kuanzia ya rejista 0008 00
3 0 08
4 1 Idadi ya rejista 0002 00
5 0 02
6 1 Angalia jumla 45C9 45
7 0 C9

Jibu (anwani ya mtumwa, msimbo wa kazi, idadi ya baiti zilizosomwa, maadili ya rejista).

Nambari ya Byte Nambari ya Byte katika kigezo Kigezo Mfano wa rejista za kusoma zilizo na anwani 8 na 9
0 0 Anwani ya kidhibiti 01 01
1 0 Kazi 03 03
2 0 Idadi ya baiti zilizosomwa 04 04
3 1 Thamani ya usajili 8 12A5 12
4 0 A5
5 1 Thamani ya usajili 9 E020 E0
6 0 20
7 1 Angalia jumla A770 A7
8 0 70

Kazi 06 - andika kwa rejista moja ya kushikilia.

Inatumika kuandika kwa rejista moja. Ombi hupitisha anwani ya usajili na thamani yake. Ikiwa imefanikiwa, mtawala wa mtumwa anajibu na nakala ya ombi.

Rejesta moja ya kushikilia andika umbizo la ombi la utendaji.

Nambari ya Byte Nambari ya Byte katika kigezo Kigezo
0 0 Anwani ya kidhibiti 01 01
1 0 Kazi 06 06
2 1 Anwani ya usajili 0009 00
3 0 09
4 1 Thamani ya usajili 12A5 12
5 0 A5
6 1 Angalia jumla 9513 95
7 0 13

Jibu (kurudia ombi).

Nambari ya Byte Nambari ya Byte katika kigezo Kigezo Mfano wa kuandika thamani 12A5 kusajili 9
0 0 Anwani ya kidhibiti 01 01
1 0 Kazi 06 06
2 1 Anwani ya usajili 0009 00
3 0 09
4 1 Thamani ya usajili 12A5 12
5 0 A5
6 1 Angalia jumla 9513 95
7 0 13

Kazi ya 16 - kuandika maadili kwa rejista za uhifadhi.

Inatumika kuandika kwa rejista kadhaa ziko kwa mpangilio kwenye jedwali.

Ombi hupeleka anwani ya rejista ya kwanza, idadi ya rejista na maadili yao.

Jibu hurejesha anwani ya kuanzia na idadi ya rejista iliyorekebishwa.

Umbizo la ombi la kitendakazi cha kuandika rejista ya hifadhi.

Nambari ya Byte Nambari ya Byte katika kigezo Kigezo
0 0 Anwani ya kidhibiti 01 01
1 0 Kazi 10 10
2 1 Anwani ya kuanzia ya rejista 0008 00
3 0 08
4 1 Idadi ya rejista 0002 00
5 0 02
6 0 Kaunta ya Byte 04 04
7 1 Thamani ya usajili 8 12A5 12
8 0 A5
9 1 Thamani ya usajili 9 E020 E0
10 0 20
11 1 Angalia jumla AF4A A.F.
12 0 4A

Jibu (anwani ya mtumwa, msimbo wa kazi, anwani ya kuanza na idadi ya rejista).

Nambari ya Byte Nambari ya Byte katika kigezo Kigezo Mfano wa kuandika rejista zilizo na anwani 8 na 9
0 0 Anwani ya kidhibiti 01 01
1 0 Kazi 10 10
2 1 Anwani ya kuanzia ya rejista 0008 00
3 0 08
4 1 Idadi ya rejista 0002 00
5 0 02
6 1 Angalia jumla C00A C0
7 0 0A

ModBus na itifaki maalum.

Sasa unaweza kulinganisha itifaki ya ModBus na itifaki maalumu kutoka .

Nambari ya Byte Muundo wa nambari Kusudi
0 … 3 kuelea Halijoto
4 … 7 kuelea Voltage
8 kwaheri Hali ya kitufe
9 kwaheri Hifadhi
10, 11 int Cheki (jumla ya baiti 0 ... 9 ^ 0xa1e3)

Ikilinganishwa na itifaki maalum:

  • ModBus ni polepole na ina utendaji wa chini. Ili kupata kiasi sawa cha habari, data nyingi zaidi hupitishwa kwenye mtandao.
  • Utekelezaji wake ni mgumu zaidi. Inahitaji kidhibiti kidogo zaidi na rasilimali za mtandao.

Lakini faida katika hali nyingi ni muhimu zaidi.

  • Kutokana na ukaguzi changamano zaidi na taarifa zisizohitajika, hitilafu za mtandao hubainishwa kwa uhakika zaidi na utegemezi wa data ni wa juu zaidi.
  • Mtandao unapanuliwa kwa urahisi. Ni rahisi sana kuongeza vifaa vipya.
  • ModBus ni itifaki ya kawaida. Watawala wengi kutoka kwa wazalishaji tofauti wanaunga mkono.

Pengine, sababu kuu matumizi ya itifaki zisizo za kawaida inamaanisha rasilimali za kutosha za kompyuta za mfumo.

Kweli, kuna sababu nyingine ya kutumia itifaki isiyo ya kawaida. Ikiwa ni pamoja na, shukrani ambayo kampuni yetu ilishinda zabuni kubwa. Hakuna mtu mwingine isipokuwa wasanidi programu atakayeweza kuunganisha kwenye vifaa vilivyo na itifaki maalum na kuvidhibiti. Wale. kinyume kabisa itifaki za kawaida ubora. Sheria ya kifalsafa ya umoja wa wapinzani inafanya kazi.

Katika somo linalofuata tutatekeleza mawasiliano kati ya bodi ya Arduino na kompyuta kwa kutumia itifaki ya ModBus.

Jamii:. Unaweza kualamisha.