RS-485 / Modbus :

  1. BUSZ bővítő csatlakozó IN (szalagkábeles)
  2. BUSZ bővítő csatlakozó OUT (szalagkábeles)
  3. DC 24V tápfeszültség csatlakozó
  4. BUSZ bővítő csatlakozó (csavaros)
  5. BUSZ lezáró ellenállás kapcsoló
  6. RGB LED
  7. Funkció gomb
  8. Adat GND
  9. RS-485/Modbusz csatlakozó

Kommunikáció:

  • RS-485
  • Modbus RTU
  • Modbus ASII
  • RS-232 *

MEGJEGYZÉS: *Az eszköz műszaki adatlapja megemlíti az eszköz RS-232-es adatok feldolgozásának képességét, de ezt még nem teszteltük.

Comexio RS-485 Modbus Extension

Tápfeszültség:                                        DC 24 V
Energiafogyasztás (max.):                    1 W 
Sorkapocs max.:                                     1,31 mm²
Meghúzási nyomaték:                            0,2 Nm

Általános: 
Környezeti hőmérséklet:                       0-40 °C
Páratartalom:                                         5-90% relatív páratartalom
Méret (Szé x Ma x Mé):                         (54x90x60)mm
DIN:                                                          3TE
Védettség:                                               IP-20
Súly (N/B):                                               0,1kg/0,235 Kg
Harmonizált szabvány:                          EN61000-6-3
Védelmi osztály:                                      III

Lépjen be az Eszközök (Devicesmenübe:

Kattintson az új eszköz hozzáadása gombra:

A megnyíló ablakban az Keressen helyi bővítményeket (1 Search for local extensions) gombra kattintva megindul az eszközök keresése, megjelenik egy  figyelmeztető ablak (2.).
Ha a rendszer megtalálta az extensiont, akkor megjelenik a sorozatszáma. (3). Valamint az IP-cím mezőben(6) a local mint elérési útvonal.
Ha még nincs meg az eszköz, akkor offline módban is létrehozható.
A Bővítmény hozzáadása offline módban (4  Add extension offline) jelölőnégyzet kipipálása után megjelenik egy legördülő ablak,  ahol választhatunk a bővítmények közül.
Az offline módban létrehozott eszközök ugyanúgy használhatók a programozásban mint az oneline eszközök.

Ha létrehozta az eszközt adjon neki egy egyedi nevet (5), ezzel a névvel fog fent megjelenni az eszközlistában.

A beállítások végeztével kattintson a  Bővítmény hozzáadása (7 Add extension) gombra. 

Lépjen be az Eszközök (Devicesmenübe:

  1. Válassza ki a modbus extensiont.
  2. Nyissa le a konfiguráció alatti fület .

A legördülő ablak két területre oszlik.

1.Terület:

Ez a terület a soros busz beállítására szolgál.
Az itt található paramétereknek meg kell, hogy egyezzenek a buszon található összes eszközzel.
A mai eszközök többségében ez már szabadon konfigurálható, de néhány régbbi eszköz csak fix beállításokkal üzemel.
Ezeket a beállításokat minden eszközön el kell végezni, a beállítás módja mindig a gépkönyvekben található.

Megjegyzés: nagyobb gépeknél célszerű a gépek beállítását a beüzemelővel közösen elvégezni.

Átviteli sebesség (Baudrate):              50, 75, 110, 124, 150, 200, 300, 600, 1200, 1800,  2400, 4800, 9600, 19200, 38400, 57600, 115200 (Baud)
Adatbitek (Databits):                             5, 6, 7, 8 
Stop bitek száma (Stopbits):                1, 2
Paritás (Parity):                                       Páros (Even), Páratlan (Odd), Egyik sem (None)
Stopbyte:                                                  Az  üzenet végét jelző karakter.
Az üzenetek közötti minimális idő:    Ha nincs Stopbyte megadva, akkor az üzenetek között minimális időnek kell eltelnie ahhoz, hogy felismerhető legyen az üzenet hossza.

2. Terület:

Itt két a adatpontot aktiválhatunk, ami megjelenik a programozói területen az eszköz alatt:

TL1:    A Modbusz extension hőmérséklete   (Onboard Temperature )
UL1:    A Modbusz extension tápfeszültsége (Supply Volatage)

Ha végzett a beállításokkal kattintson a Mentés (Save) gombra.

Lépjen be az Eszközök (Devicesmenübe:

Kattintson az új soros eszköz hozzáadás gombra:

Név (Name):                                                        A Modbus eszköz neve.
Leírás (Description):                                          Rövid leírás ,megjegyzés.
Fix címet használ ? (Use fixed address?):   Kipipálva megjelenik Cím megadása beviteli mező.
Cím (Address):                                                   A Szolga (slave) eszköz címe.
Protocol:**                                                           Ha Egyik sem (None)-t választ, akkor kézzel kell megadni az RS-485 parancssort.         

Ha elkészült kattintson a Mentés (Save) gombra.

*MEGJEGYZÉS: A Modbus RTU megköveteli, hogy az eszközcímet minden üzenet elejéhez hozzáfűzzék.  Ha kiválasztja a Fix címet használ dobozt, minden üzenet automatikusan beszúrja a címet az üzenet első helyére. Ha a pipa nincs beállítva, a címet, manuálisan kell beállítani minden egyes üzenethez.

**MEGJEGYZÉS: A Modbus protokoll CRC hibaészlelési módszert használ. Minden üzenet végéhez két bájtot fűz. A végberendezések összehasonlítják a CRC bájtokat, hogy észleljék, történt-e hiba az átvitel során. Válassza az Egyik sem (None)-t, ha a végeszközök nem rendelkeznek CRC-ellenőrzéssel. A hiányzó CRC azt okozhatja, hogy figyelmen kívül hagyja az összes bejövő üzenetet a végeszközön.

5.9.6. Eszköz exportálása :

Lépjen be az Eszközök (Devicesmenübe:

Kattintson a Konfiguráció mentése ( Save configuration) gombra, majd a megnyíló ablakban a szintén a Konfiguráció mentése gombra.

A konfiguráció letöltődik a böngészőbe, .cson kiterjesztéssel.

Megjegyzés: Mentéskor az összes létrehozott eszköz egyszerre kerül elmentésre. Célszerű egyesével létrehozni és elmenteni az eszközöket,  a későbbi hasznosítás végett.

5.9.7. Eszköz importálása :

Lépjen be az Eszközök (Devicesmenübe:

Kattintson a Konfiguráció mentése ( Save configuration) gombra, majd a megnyíló ablakban a  a Fájl kiválasztása gombra. Válassza ki egy .cson kiterjesztésű fájlt, majd kattintson a Konfiguráció feltöltése (Upload Configuration) gombra.

Megjegyzés: Egy .cson fájl akár több eszközt is tartalmazhat. A

  • Az információkat a Slave eszközben négy különböző táblázat tartalmazza.
  • Minden tábla 9999 értéket tartalmaz.
  • Minden tekercs vagy érintkező 1 bit, és 0000 és 270E közötti adatcímmel rendelkezik 
  • Minden regiszter 1 szó = 16 bit = 2 bájt, és az adatcíme 0000 és 270E között van 
Modbus RTU Tárolt értékekKezdő címÍrOlvas
adattípus
Digitális kimenetekBináris értékek (bit)00001-09999xx
Digitális bemenetekBináris érték (bit)10001-19999 x
Analóg bemenetekAnalóg értékek, változók (bájt)30001-39999 x
Analóg kimenetekAnalóg értékek, változók (bájt)40001-49999xx

FONTOS! A legtöbb leírásban a más elnevezéseket használnak.
A fenti táblázatot a könnyebb megértés miatt módosítottam

Az adattípusok többségének elnevezésében közrejátszott, hogy régen főleg reléket használtak:

  • Digitális kimenet:    (0xxx)   tekercs (coil)
  • Digitákis bemenet:  (1xxx)  diszkrét bemenet (discrete input) vagy kapcsoló (contact)
  • Analóg bemenet:     (3xxx)  bemeneti regiszter (input regiszter)
  • Analóg kimenet:      (4xxx)  szó-változók (holding register)

A regiszterek címét az eltolási értékkel határozzuk meg.
Mindegyik tábla más eltolással rendelkezik. 1, 10001, 30001 és 40001
Például a 40001 első Holding Regiszter rendelkezik a 0000 Adatcímmel .
A két érték közötti különbség az eltolás . 

Adat típus

Formátum

Tartomány

16-bit előjel nélküli integer

egész szám

0

-tól

65 535

-ig

16-bit előjeles integer

egész szám

-32 768

-tól

32 767

-ig

32-bit előjel nélküli integer

egész szám

0

-tól

4 294 967 295

-ig

32-bit előjeles integer

egész szám

-2 147 483 648

-tól

2 147 483 647

-ig

32-bit lebegőpontos szám

     

Ez a parancs a digitális kimenetek olvasására szolgál.

RS-485 buszon megjelenő adatsor: 11 01 00 13 00 25 0E 84
Ez a parancs a 17-es szolga eszközről kéri a   20 – 56 -ig  „tekercsek”(coil-ok) tartalmát. (0:KI vagy 1:BE)

11:         (17)       Szolga cím
01:         (1)         Funkciókód (FC01: olvassuk a digitális bemenetek állapotát)
00 13:   (19)        Az első olvasandó bemenet adatcíme. (19,+1 (eltolás) = 20)
00 25:   (37)        Kért bemenetek száma, (37) (jelen esetben olvassa be a 2056-ig a digitális bemenetek állapotát)
0E 84:   CRC       (ciklikus redundancia ellenőrzés) a hibaellenőrzéshez.

Válasz:  11 01 05 CD 6B B2 0E 1B 45 E6

11:         (1)         Szolga cím
01:         (1)         Funkciókód (FC01: olvassuk a digitális bemenetek állapotát)
05:         (5)         Adatbájtok száma. (37 tekercs 8 bit/bájt= 5 bájt)
CD:        (205)    Tekercsek 2720 ig (1100 1101)
6B:        (107)    Tekercsek 3528 ig (0110 1011)
B2:        (178)    Tekercsek 4336 ig (1011 0010)
0E:        (14)       Tekercsek 5144 ig (0000 1110)
1B:        (27)       Tekercsek 5652 ig (0001 1011)
45 E6:   CRC      (ciklikus redundancia ellenőrzés) a hibaellenőrzéshez.

MEGJEGYZÉS:
Piros szám:         HEXadecimális
Fekete szám:      DECimális
Lila szám:            BINáris

A Bitek sorrendje: Tekercsek 2720 (1100 1101): 27:1, 26:1, 25:0, 24:0, 23:1, 22:1, 21:0, 20:0
Az utolsó Byte-ban az első 3 Bit 0, mivel csak 37 bitet kérdeztünk le és 5x8= 40, így a hiányzó 3 bit 0-val töltődik fel. 

Ez a parancs a digitális bemenetek olvasására szolgál.

RS-485 buszon megjelenő adatsor:  11 02 00 C4 00 16 BA A9
Ez a parancs a 17-es szolga eszközről kéri a 1019710218 -ig a bemenetek tartalmát. (0:KI vagy 1:BE)

11:        (17)    Szolga cím
02:        (2)      Funkciókód (olvassuk a bemenetek állapotát)
00 C4:  (196)  Az első olvasandó bemenet adatcíme. (196, + 10001 (eltolás) = 10197 bmenet)
00 16:   (22)    A kért bemenetek száma. (olvassa ki a 197-től 218 -ig, 22 bemenet)
BA A9:  CRC   (ciklikus redundancia ellenőrzés) a hibaellenőrzéshez.

Válasz:

11 02 03 AC DB 35 20 18
11:        (17)    Szolga cím
02:        (2)      Funkciókód (olvassuk a bemenetek állapotát)
03:        (3)       Adatbájtok száma (22 bemenet, 8 bit/byte = 3 bájt)
AC:        (172)  Bemenetek 1020410197 (1010 1100)
DB:        (219)  Bemenetek 1021210205 (1101 1011)
35:         (53)    Bemenetek 1021810213 (0011 0101)
20 18:   CRC   (ciklikus redundancia ellenőrzés) a hibaellenőrzéshez

MEGJEGYZÉS:
Piros szám:         HEXadecimális
Fekete szám:      DECimális
Lila szám:            BINáris

A Bitek sorrendje: Bemenetek 1020410197 (1010 1100): 10204:1, 10203:0, 10102:1, 10101:0,…….. 10197:0
Az utolsó Byte-ban az első 2 Bit 0, mivel csak 22 bitet kérdeztünk le és 3x8= 24, így a hiányzó 2 bit 0-val töltődik fel. 

Ez a parancs analóg kimenet(ek) olvasására szolgál.
Példánkban egy N4D8C12 12 csatornás relékártya egyes reléjének állapotát fogjuk kiolvasni.

RS-485 buszon megjelenő adatsor: 01 03 00 01 00 01 D5 CA
Ez a parancs a 1-es szolga eszköz 40002. regiszterét olvassa ki.

01:         (1)         Szolga cím
03:         (3)         Funkciókód (FC03 analóg kimenet(ek) olvasása)
00 01:   (1)          Az első kért regiszter adatcíme. (40001,+1 (eltolás) = 40002)
00 01:   (1*        Kért regiszterek száma, jelen esetben 1 ( 40002-40002)
D5 CA:   CRC      (ciklikus redundancia ellenőrzés) a hibaellenőrzéshez.

Válasz:  01 03 02 00 01 79 84

01:         (1)         Szolga cím
03:         (3)         Funkciókód (FC03 regiszter(ek) olvasása)
02:         (2)         Adatbájtok száma. (1* regiszter x2 bájt= 2 bájt)
00 01:    (1)         A 40002 regiszter tartalma 1
* MEGJEGYZÉS: ha a kért regiszterek száma több (pl.3 ) ,akkor itt jelenne meg sorban a többi regiszter tartalma: 
00 08     (8)         A 40003 regiszter tartalma 8
00 3F     (63)       A 40004 regiszter tartalma 63
79 84:   CRC      (ciklikus redundancia ellenőrzés) a hibaellenőrzéshez.

MEGJEGYZÉS:
Piros szám:         HEXadecimális
Fekete szám:      DECimális

Comexio  stúdióban az alábbi beállításokat kell elvégezni, a tolmácskód automatikusan létrejön , de igény esetén módosítható. (LUA programnyelv)

Név (Name):                   Parancs egyedi neve.
Leírás (Description):     Rövid megjegyzés.
Digitális:                          Itt kehet megadni, hogy az adatpont aminek a változására lefusson a parancs digitális, vagy analóg legyen.
Comexio bemenet:        Itt most kimenetet (Output) kell választani.

Funkció kód:                   Maga a parancs jelen esetben FC03 modbus regiszter  olvasása ( Read Holding Regiszter)
Regiszter cím:               Az regiszter adatcíme. (40001,+1 (eltolás) = 40002)
Regiszterek száma:     A kiolvasandó regiszterek száma.

MEGJEGYZÉS: Az eszköz címe, amit az eszköz létrehozásakor megadtunk automatikusan kiíródik a paransor elé a buszra, de a tolmácskódban nem látszik. Valamint a CRC-se látható.

Parancs ablak beállítása:

Válasz ablak beállítása:

Comexio  stúdióban az alábbi beállításokat kell elvégezni, a tolmácskód automatikusan létrejön , de igény esetén módosítható. (LUA programnyelv)

Név (Name):                   Parancs egyedi neve.
Leírás (Description):     Rövid megjegyzés.
Digitális:                          Itt lehet megadni, hogy az adatpont amit a programban használni szeretnénk digitális, vagy analóg legyen.
Comexio bemenet:        Itt most bemenetet (Input) kell választani.

Válasz hossza:               Alapértelmezett=0, ebben az esetben figyelmen kívül hagyja a rendszer. 
Feladat:                           Itt válassza a fenti parancsablakban létrehozott parancsot.

MEGJEGYZÉS: Az eszköz címe, amit az eszköz létrehozásakor megadtunk automatikusan kiíródik a paransor elé a buszra, de a tolmácskódban nem látszik. Valamint a CRC-se látható.

Válasz elemzése:

Válaszban a 01 03 02 bájtsorozatnak meg kell jelennie a végeszköztől érkező üzenetben.

function rs_interpreter (v) a függvény v értékével tér vissza, ezt az értéket veszi fel a létrehozott adatpont.
answerBytes = comexio.string2byteArray(v) az eszköz válasza egy tömbbe van írva az egybájtos értékekkel.
valueBytes = trade.tableChunk  (answerBytes, 4, 5) a válaszból nekünk csak a 4-es 5-ös bájton lévő adatra van szükség, mert ez a regiszter tartalma  01 03 02 00 01 79 84, ezért csonkoljuk a tömböt .
returncomexio.byteArray2dec (valueBytes) a csonkolt két bájt tartalmát decimálissá alakítjuk.
end a függvény vége

Trigger hatására : 
Kiolvasásra kerül a regiszter:  

Ez a parancs az analóg bemenet(ek) olvasására szolgál.

RS-485 buszon megjelenő adatsor 11 04 00 08 00 01 B2 98

Ez a parancs a17-es szolga eszközről kéri az 3009 -es analóg bemeneti regiszter tartalmát.

11:         (17)     Szolga cím
04:         (4)       Funkciókód (analog bemeneti regiszter olvasása)
00 08:    (8)       Az első kért regiszter adatcíme. (8, + 30001 (eltolás) = 30009)
00 01:    (1)       A kért regiszterek száma. (olvassa ki a 30009-regisztert)
B2 98:    CRC    (ciklikus redundancia ellenőrzés) a hibaellenőrzéshez.

Válasz: 11 04 02 00 0A F8 F4

11:         (17)    Szolga cím
04:         (4)      Funkciókód (olvassuk el az analóg bemeneti regisztert)
02:         (2)      Adatbájtok száma (1 regiszter x 2 byte = 2 bájt)
00 0A:    A 30009 regiszter tartalma
F8 F4:     A CRC (ciklikus redundancia ellenőrzése).

MEGJEGYZÉS:
Piros szám:         HEXadecimális
Fekete szám:      DECimális

Ez a parancs  egy digitális kimenet írására szolgál.

RS-485 buszon megjelenő adatsor: 11 05 00 AC FF 00 4E 8B

Ez a parancs a 17-es szolga eszköz 173. „tekercsét”(coil)-t kapcsolja be.

11:         (17)         Szolga cím
05:         (5)            Funkciókód (egy coil írása)
00 AC:   (172)       Az első kért regiszter adatcíme. (172,+1 (eltolás) = 173)
FF 00:    (65280)   Írás (FF 00: BE, 00 00: KI )
4E 8B:    CRC         (ciklikus redundancia ellenőrzés) a hibaellenőrzéshez.

Válasz: 11 05 00 AC FF 00 4E 8B

11:         (17)          Szolga cím
05:         (5)            Funkciókód (egy coil írása)
00 AC:   (172)       Az első kért regiszter adatcíme. (172,+1 (eltolás) = 173)
FF 00:    (65280)   Írás (FF 00: BE, 00 00: KI )
4E 8B:    CRC        (ciklikus redundancia ellenőrzés) a hibaellenőrzéshez.

MEGJEGYZÉS:
Piros szám:         HEXadecimális
Fekete szám:      DECimális

Ez a parancs egy analóg kimenet írására szolgál.
Példánkban egy N4D8C12 12 csatornás relékártya egyes reléjét fogjuk váltani (Toggle)

RS-485 buszon megjelenő parancs: 01 06 00 01 03 00 D8 FA
Ez a parancs a 1-es szolga eszköz 40002. regiszterbe ír 3-at

01:         (1)         Szolga cím
06:         (6)         Funkciókód (FC06 egy analóg kimenet írása)
00 01:   (1)          Az regiszter adatcíme. (40001,+1 (eltolás) = 40002)
03 00:   (768)     Beírandó érték: 768
D8 FA:   CRC      (ciklikus redundancia ellenőrzés) a hibaellenőrzéshez.

Válasz: 

01:         (1)         Szolgacím
06:         (6)         Funkciókód (FC06 egyanalóg kimenet írása)
00 01:   (1)          Az regiszter adatcíme. (40001,+1 (eltolás) = 40002)
03 00:   (768)     Beírt érték: 768
D8 FA:   CRC      (ciklikus redundancia ellenőrzés) a hibaellenőrzéshez.

MEGJEGYZÉS:
Piros szám:         HEXadecimális
Fekete szám:      DECimális 

Comexio  stúdióban az alábbi beállításokat kell elvégezni, a tolmácskód automatikusan létrejön.

Név (Name):                   Parancs egyedi neve.
Leírás (Description):     Rövid megjegyzés.
Digitális:                          Itt kehet megadni, hogy az adatpont digitális vagy analóg bemenettel rendelkezzen.
Comexio bemenet:       Itt adható meg, hogy modbius bemenetet vagy  kimenetet akarunk létrehozni.

Funkció kód:                   Maga a parancs jelen esetben FC06 egy modbus regiszter írása
Regiszter cím:               Az regiszter adatcíme. (40001,+1 (eltolás) = 40002)

MEGJEGYZÉS: Az eszköz címe, amit az eszköz létrehozásakor megadtunk automatikusan kiíródik a paransor elé a buszra, de a tolmácskódban nem látszik. Valamint a CRC-se látható.

Adat: Fix érték választása esetén, trigger hatására a mezőbe írt érték lesz beírva a regiszterbe.

Adat: Bemenet választása esetén az adatponthoz kapcsolt analóg érték írodik be a regiszterbe, változás esetén.

Ez a parancs  több digitális kimenet írására szolgál.

RS-485 buszon megjelenő adatsor: 11 0F 00 13 00 0A 02 CD 01 BF 0B

Ez a parancs a 17-es szolga eszköz 20. -tól 29. tekercsét írja.

11:         (17)      Szolga cím
0F:         (15)      Funkciókód (FC15 több tekercs írása)
00 13:    (19)     Az regiszter adatcíme. (19,+1 (eltolás) =20)
00 0A:   (10)      Az írandó tekercsek száma: 10
02:          (2)       Adatbájtok száma (10 tekercs 8bit/ byte = 2 bájt)
CD:         (205)   Tekercsek 2720 (1100 1101)
01:          (1)       Tekercsek 2928 (0000 0001)
BF 0B:    CRC (ciklikus redundancia ellenőrzés) a hibaellenőrzéshez.

A Bitek sorrendje: Kimenetek 2720 (1100 1100): 27:1, 26:1, 25:0, 24:0, 23:1, 22:1, 21:0, 20:0
Az utolsó Byte-ban az első 6 Bit 0, mivel csak 10 bitet kérdeztünk le és 4x8= 16, így a hiányzó 6 bit 0-val töltődik fel.

Válasz 11 0F 00 13 00 0A 26 99

11:         (17)      Szolga cím
0F:         (15)      Funkciókód (FC15 több tekercs írása)
00 13:    (19)     Az regiszter adatcíme. (19,+1 (eltolás) =20)
00 0A:    (10) Az írt tekercsek száma: 10
26 99:     CRC (ciklikus redundancia ellenőrzés) a hibaellenőrzéshez. 

MEGJEGYZÉS:
Piros szám:         HEXadecimális
Fekete szám:      DECimális
Lila szám:            BINáris

Ez a parancs  több analóg kimenet írására szolgál.

RS-485 buszon megjelenő adatsor: 11 10 00 01 00 02 04 00 0A 01 02 C6 F0

Ez a parancs a 17es szolga eszköz 40002. és 40003. kimeneti regiszterét írja.
11:         (17)     Szolga cím
10:         (16)     Funkciókód (FC16 több analóg kimenet írása)
00 01:    (1)       Az első regiszter adatcíme. (1,+40001 (eltolás) =40002)
00 02:    (2)       Az írandó regiszterek száma: 2
04:         (4)       Adatbájtok száma (2 regiszter *2 byte = 4 bájt)
00 0A:   (10)     A 40002 Regiszterbe írandó szám: 10
01 02:    (258)  A 40003 Regiszterbe írandó szám: 258
CF F0:    CRC (ciklikus redundancia ellenőrzés) a hibaellenőrzéshez.

Válasz: 11 10 00 01 00 02 12 98

11:         (17)     Szolga cím
10:         (16)     Funkciókód (FC16 több analóg kimenet írása)
00 01:    (1)       Az első regiszter adatcíme. (1,+40001 (eltolás) =40002)
00 02:    (2)       Az írt regiszterek száma: 2
12 98:    CRC    (ciklikus redundancia ellenőrzés) a hibaellenőrzéshez

MEGJEGYZÉS:
Piros szám:         HEXadecimális
Fekete szám:      DECimális