Tagy: 
M2M API

Aplikační poznámka AN27 demonstruje ovládání chytrých elektrických zásuvek NETIO 4x a PowerCable Modbus pomocí protokolu Modbus/TCP. Protokol Modbus/TCP je de facto standard v průmyslu pro připojení senzorů a zařízení k PLC, ale také k SCADA a systémech pro řízení chytrých domů. NETIO produkty lze po Modbus/TCP ovládat jako bitový výstup (coil), ale také měřit hodnoty a pokročilé ovládání (registers).

 

Můžeme Vám nějak pomoci?

Modbus/TCP je jeden z preferovaných protokolů.

Výhody protokolu Modbus/TCP:

 

  • Rozšířený standard, který podporuje většina průmyslových zařízení a aplikací.
  • Díky podpoře IP Filtru v NETIO lze přenos základně zabezpečit.
  • Pro Modbus/TCP existuje řada ladících nástrojů.
  • Protokol umožňuje zápis hodnot (ovládání výstupů) i čtení hodnot elektrických měření ze zařízení.

 

 

Akce které lze aplikovat na každý výstup (elektrickou zásuvku)

NETIO elektrické zásuvky používají ve všech M2M protokolech stejné akce, které lze vykonávat na jednotlivých zásuvkách. Do každého výstupu lze například zapsat akci typu Toggle=přepni na druhý stav, nebo Short Off=vypni na několik sekund. Pro Short On a Short Off příkazy má Modbus/TCP vlastní čas „short“, který se definuje přes Modbus.

 

Přečíst lze ale jen stav zásuvky v okamžik čtení (0 / 1), akce výstupu lze do zařízení pouze zapsat.
 

  • 0 = Akce vypnutí výstupu  (Off)
  • 1 = Akce zapnutí výstupu (On)
  • 2 = Akce vypnutí výstupu na krátkou dobu (short Off)
  • 3 = Akce zapnutí výstupu na krátkou dobu (short On)
  • 4 = Akce přepnutí výstupu z jednoho stavu do druhého (toggle)
  • 5 = Akce ponechání stavu výstupu (no change)


Modbus/TCP  funkce

  • 01 = Read Coils (NETIO: přečte stav jednoho výstupu On/Off)
  • 02 = Read Discrete Input
  • 03 = Read Holding Registers (NETIO: přečte například počet výstupů)
  • 04 = Read Input Registers (NETIO: čtení měřených hodnot)
  • 05 = Write Single Coil (NETIO: nastavení stavu výstupu On/Off)
  • 06 = Write Single Register (NETIO: provede vybranou akci s výstupem (například přepnutí stavu))
  • 15 (0x0F) = Write Multiple Coils       
  • 16 (0x10) = Write Multiple Registers

 

Stáhněte si Modbus / TCP specifikaci

 

Podporovaná zařízení: NETIO 4AllNETIO PowerPDU 4CNETIO 4, PowerCable ModbusPowerBOX 3Px, PowerPDU 4PS, PowerDIN 4PzPowerBOX 4Kx, PowerPDU 8QS

 

Nastavení zařízení

Ve webové administraci NETIO 4x (NETIO 4 / 4All / 4C) v sekci M2M API Protocols - Modbus/TCP, povolte Enable Modbus/TCP, popřípadě nastavte číslo portu. Pro možnost ovládání jednotlivých výstupů je nutné povolit možnost Enable WRITE. Dále je zde možné nastavit filter pro IP adresy (viz níže).

 

Pro NETIO PowerCable Modbus je nastavení obdobné.

 

Otestování Modbus/TCP API pomocí online dema

Co to je Online Demo

Online demo je reálné zařízení NETIO, připojené na internetu na veřejné IP adrese. Do zařízení se vstupuje přihlašovacím jménem a heslem „demo“ / „demo“ a lze otestovat chování web rozhraní zařízení a ovládat jednotlivé výstupy.

Online dema nelze překonfigurovat.

Na Online demo každého produktu se dostanete z ikony „TRY ON-LINE DEMO“ na stránce každého produktu.

 

Poznámka:

  • Online demo pro NETIO 4All a NETIO 4 umožňuje čtení i zápis protokolem Modbus/TCP.
  • Online demo pro NETIO 4C má povoleno pouze čtení hodnot.

 

Online dema:

 

IP adresa zařízení

Většina SW nástrojů na práci s protokolem Modbus/TCP vyžaduje IP adresu jako číslo a není možné vložit adresu zařízení jako DNS. Pro vyzkoušení protokolu Modbus/TCP pomocí online dema je nutné zjistit jeho současnou IP adresu (ta se dlouhodobě mění).

 

Snadný způsob jak zjistit číselnou IP adresu je použít příkaz PING.  Do příkazové řádky napište příkaz: ping netio-4all.netio-products.com. V odpovědi na Ping se zobrazí číselná IP adresa zařízení.

 

QmodMaster debug software pro Modbus/TCP

K vyzkoušení protokolu Modbus/TCP je možné použít například software QModMaster (ke stažení na stránkách https://sourceforge.net/projects/qmodmaster/).

 

QModMaster využívá Wire Adresy pro jednotlivé cívky a registry.
Wire Address =  Register Address – 1
Jednoduše řešeno Wire Address začíná od 0, Register Address začíná od 1..

 

1) Nastavit Modbus Mode na TCP

 

2) V záložce Options vybrat Modbus TCP

 

3) Nastavení IP adresy a portu NETIO zařízení


Software akceptuje pouze číselné vložení IP adresy.

 

4) Pomocí tlačítka Connect připojit se k NETIO zařízení

 

5) Po úspěšném připojení k NETIO zařízení se změní barva kolečka v levém dolním rohu

 

Čtení hodnot z NETIO zařízení

  • Zařízení NETIO 4 / NETIO 4C  umožňují vyčítat stavy výstupů O1 až O4.
  • Zařízení NETIO 4All / PowerCable Modbus podporují elektrické měření a přes M2M protokol Modbus/TCP zobrazují i naměřené hodnoty.

 

Čtení frekvence a napětí

 

  • Function Code: Read Input Registers (0x04)
  • Start Address: 0 Dec
  • Number of Coils: 2
  • Data Format: Dec

 

Požadavek se odešle pomocí tlačítka Read/Write vedle tlačítka Connect.

 

 

V hlavním poli by se měly zobrazit 2 hodnoty.

  • Frekvence * 100 [Hz]
  • Napětí v elektrické síti * 10 [V]

 

Čtení stavu výstupů (elektrických zásuvek)

 

  • Function Code: Read Holding Registers (0x03)
  • Start Address: 101 Dec
  • Number of Coils: 4
  • Data Format: Dec

 

Odeslání požadavku tlačítkem Read/Write.

V hlavním poli se zobrazí stavy jednotlivých výstupů (0 = OFF, 1 = ON).

 

Sepnutí výstupu O1 (bitová operace)

Pro zápis do výstupu podporují produkty NETIO 4x a PowerCable Modbus bitové operace (coils) i wordové operace (registers).

 

  • Function Code: Write Single Coil (0x05)
  • Start Address: 101 Dec
  • Number of Coils: 1
  • Data Format: Dec
  • Okno v hlavním poli: 1 (ON)

 

Odeslání požadavku tlačítkem Read/Write.

 

Přepnutí stavu výstupu O1 (register – Toggle output)

Při zápisu nutné vyplnit hodnotu, která se má zapisovat. V tomto případě číslo (akce), která se má s výstupem vykonat (číslo výstupu je nastaveno adresou, O1 = 101, O4 = 104)

 

Akce jsou stejné jako ve všech ostatních M2M protokolech v NETIO:

  • 0 = vypnout výstup
  • 1 = zapnout výstup
  • 2 = “short off” (krátké vypnutí výstupu)
  • 3 = “short on” (krátké zapnutí výstupu)
  • 4 = toggle (přepnutí stavu výstupu)
  • 5 = ponechání stavu

 

 

  • Function Code: Write Single Register (0x06)
  • Start Address: 101 Dec
  • Number of Registers: 1
  • Data Format: Dec
  • Write field: 4

 

Odeslání požadavku tlačítkem Read/Write.

 

 

Pokud máte zařízení na stole, tak přepnutí ihned uvidíte. V online demu je možné ověřit, že došlo k přepnutí stavu výstupu otevřením web stránky v okně vedle.

 

NETIO Modbus/TCP

Přehled Adresy cívek (coils) a registrů (registers)

  • Následuje zkrácený popis adresy cívek a registrů pro NETIO Modbus/TCP
  • Celou specifikaci NETIO Modbus/TCP protokolu si vyžádejte od výrobce
Register Address Wire Address R / W Type Function Description Read / Write Values
102 101 W bit 05 Zapnout 1.výstup
{coil)
1 True
104 103 W bit 05 Vypnout 3.výstup
{coil)
0 False
102 101 W uInt16 06 Přepnout stav 1.výstupu 4
105 104 W uInt16 06 Krátké vypnutí 4.výstupu 3
102 101 R bit 03 Přečtení stavu 1.výstupu 0 or 1
303 302 R uInt16 04 Horní 2 byty celkové spotřeby 1.výstupu 0 to 216-1
304 303 R uInt16 04 Dolní 2 byty celkové spotřeby 1.výstupu 0 to 216-1

 

IP filtr

  • Kvůli zvýšení bezpečnosti Modbus/TCP protokolu je v zařízeních NETIO implementován filtr IP adres.
  • IP filtr je možné nastavit přes web rozhraní zařízení

 

  • První pole (Start IP) vymezuje začátek intervalu povolených IP adres.
  • Druhé pole (End IP) ukončuje interval povolených IP adres (interval zahrnuje i tuto IP adresu).
  • Pokud chcete nastavit IP filtr jen na jednu IP adresu (například 192.168.101.115) do obou polí vyplňte danou adresu (viz obrázek):

 

  • IP adresu ze které přistupujete k zařízení NETIO je možné ověřit v poli Last connection from.
  • Pokud přistupujete do zařízení v jiné síti, bude se lišit IP ze které přichází požadavek a IP která se zobrazuje v síti. Je tedy nutné ověřit ze které IP NETIO přijímá požadavek.

 

EasyModbus Client

  • Pro vyzkoušení protokolu Modbus/TCP je možné využít i jiné utility, například EasyModbus Client (http://easymodbustcp.net/).
  • Tento software narozdíl od QModMaster využívá Register Adresy (hodnota adresy je vždy posunutá o jedna).
  • Pro připojení je nutné nastavit mód, IP adresu, port a poté kliknout na tlačítko Connect.

 

Ukázka přečtení stavu všech výstupů pomocí bitového přístupu (coil).
EasyModbus Client používá Register adresu, ne Wire Adresu = adresa čtení Output 1 je 102 (v utilitě QmodMaster byla 101):

 

Ukázka přepnutí stavu všech výstupů:

 

FAQ:

 

1) Proč se při pokusu o přepnutí výstupu číslo 1 přepne výstup číslo 2?

Kvůli historickému vývoji protokolu Modbus některé softwary používají Wire Adresy, které jsou posunuty o 1 níže.

 

2) Je možné přepnout více výstupů najednou?

Ano, stačí použít funkci Write Multiple Coils 0x0f nebo Write Multiple Registers 0x10 a nastavit počet v sekci Number of Registers. Start Address pak nastavuje určuje číslo prvního registru.

 

3) Lze modbus zabezpečit pomocí hesla?

Ne, lze je ale možné zapnout IP filtr a omezit IP adresy, ze kterých lze k zařízení NETIO pomocí Modbusu přistupovat.

 

4) Co je v registrech, ve kterých u NETIO 4All jsou měřené hodnoty, u NETIO 4 a NETIO 4C?

Tyto registry obsahují nulu.

 

5) QModMaster mi při pokusu o zápis stavu hlásí “Write data failed”.

Pravděpodobně není na zařízení NETIO povolen zápis nebo je adresa mimo rozsah IP filtru. Zkontrolujte zda je povolený ve webové aplikaci (Enable WRITE (Enable output control)).

 

6) Mohu použít jinou Modbus/TCP utilitu než ty zde popsané?

Ano, můžeme doporučit například Modbus Poll.

 

7) Liší se nějak Modbus/TCP v produktech NETIO 4x a PowerCable Modbus?

Ne, produkt NETIO PowerCable Modbus má pouze jeden výstup a ten je namapován jako Output 1. Hodnoty pro měření jsou shodné.

 


 

Podporované verze FW pro NETIO 4x:

3.1.0 a vyšší (Archiv firmware)

 

Podporované verze FW pro PowerCable xxx:

2.0.2 a vyšší (Archiv firmware)

 


 

Zeptejte se na cenu nebo technické parametry

Pro otestování zařízení použijte jméno/heslo demo/demo