Keresés

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

  • And

    veterán

    válasz #90088192 #64615 üzenetére

    Ok, ez világos. Az ofszet egyébként eredendően nem eszközfüggetlen, én is találkoztam már vele, de teljesen rendszerfüggő. Újabb Schneider PLC-k (magát a Modbus-t is az egyik jogelődje, a Modicon hozta létre) esetén például egyáltalán nincs ilyen, okosabb master-eszközök (HMI-k) esetén egyenesen beállítható ez a tulajdonság, attól függően, hogy miféle implementációval rendelkező slave-ekhez kapcsolódnak. Ugyanúgy igaz ez az 1-gyel történő eltolásra (a 0-ás regisztert akkor kapom meg, ha az 1-est kérdezem), ami szintén nem általánosan igaz, vagy legalább kezelhető.
    Tehát amit írsz, az a master vezérlő (amelyik kérdez) tulajdonsága, vagy eleve úgy implementálták a slave-et (a töltő gondolom ilyen), hogy hozzáadták a belső regiszter sorszámához ezt a lekérdező / írási funkciókódtól függő 30/40 ezres értéket. Létezik PC-re is ingyenes (a legegyszerűbb esetben parancssoros) Modbus master szimulátor - pl.: Win32 alá a modpoll.exe ([link]) - az képes soros / TCP Modbus kérést indítani, és abban sem kell ezeket a sok tízezres ofszeteket beállítani (csak ha maga a lekérdezett slave teszi ténylegesen ilyen őrült címekre az elérhető regisztereit), a 0-based vagy 1-based címzést viszont képes kezelni. TCP-n viszonylag egyszerű használni, ahhoz nem kell külön illesztő, ha a gépen amúgy is van hálókártya, RS422 vagy -485 soros buszhoz viszont nyilván kell valamilyen interfész a gépre, lehetőleg VCP- (virtuális soros port) driver társaságában.
    Példa: ha van egy PLC-m (slave), amiből a master a 10-es című belső 16-bites memóriaregisztert (%MW10) szeretné lekérdezni 3-as funkciókóddal, akkor az teljesen a master implementációjától / címzési rendszerétől függ, hogy nála ehhez milyen (kezdő)címet kell beállítani: lehet az a 10 (0-based), 11 (1-based), vagy akár a 30011-es is, de a valós Modbus-kérésben úgyis a 10-es fog szerepelni, ha minden jól megy. Az említett szimpla parancssoros master-szimulátornál például külön opció, hogy milyen funkciókóddal kérem az adatot, nem kell azt a lekérdezni kívánt regisztercímmel semmilyen formában összegyúrni.

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