Hirdetés

Új hozzászólás Aktív témák

  • And

    veterán

    válasz kip.kop #1451 üzenetére

    "Gondolom ha nem is tudnam melyik regiszterben mit tudok kiolvasni, akkor is valamit ki tudnak kiolvasni a "04 - Read Input Registers" es a "03 - Read Holding Registers"-bol."
    Az az érzésem, hogy még mindig félreérted a protokoll lényegét. Ez a két (egyébként általában hexadecimális formában megadott) 04h ill. 03h nem egy-egy konkrét regiszter, amelyet olvasol, hanem funkciókód, amely megmondja a lekérdezett slave-nek, hogy mit szeretnénk tőle. Ha megnézed az #1432-ben adott első linket, abban a doksiban szépen fel vannak sorolva az elérhető funkciókódok, és a hozzájuk tartozó kérdés (master) / válasz (slave) adatstruktúrák. Egyébként a modbus-t támogató eszközök nem feltétlenül ismerik az összes lehetséges funkciót. De pl. a "03h" valószínűleg az egyik leggyakrabban alkalmazott modbus-funkció, egy slave több (egymás utáni című) adatregiszterének lekérdezésére szolgál. A kérésben meg kell adni a lekérdezett slave címét, a funkciókódot (jelen esetben 0x03-at), a kiolvasandó regisztercím-tartomány kezdőcímét (16 biten) és hosszát (szintén 16 biten, de legfeljebb 125 lehet a tartomány hossza). A válaszban visszakapod a kért regiszterek tartalmát, egyenként 16 biten. Ha olyan regisztereket olvasunk, amelyek a slave-ben nem 2 byte-on tárolódnak, akkor a a kért adatokat esetenként a master-nek kell a megfelelő formátumra visszakonvertálnia.
    Az interfészt (adatformátum: ASCII / RTU, bitsebesség, paritás fajtája, stopbitek száma, slave esetén: cím) nyilván megfelelően kell beállítani az eszközökben, és a fizikai konverterek beállításait sem szabad a véletlenre bízni.
    #1452: Az általad linkelt oldalon vannak példák a paraméterezésre. Mondjuk 4 db. 16-bites word kiolvasása a 8-as, RS485 illesztővel rendelkező slave 670-es számú (című, ahol az első regiszter címe a nulla) regiszterétől kezdődően, modbus RTU-n, 19600 8N1 portbeállítás mellett, a PC COM1 portján (majd RS485 konverteren) keresztül:
    modpoll -a 8 -r 670 -c 4 -l -0 -b 19200 -p none -4 5 COM1
    A többi beállítás default értéken van hagyva, ill. RS485 / Modbus RTU esetén szükségtelen. Ez a segédprogram - mint a weboldala is említi - egy master-szimulátor, vagyis az ezt futtató géppel csak slave(ek) fűzhető(k) össze. Képes a kiolvasott n*16-bites word-öket más adatformátumra gyúrni, ill. felcserélhetőek vele a nem szokványos sorrendű (big-endian) 32 bites integer v. lebegőpontos formátumok adatszavai.

    [ Szerkesztve ]

Új hozzászólás Aktív témák