AN27 Protokol Modbus/TCP a NETIO zařízení | Chytré zásuvky NETIO ovládané pomocí WiFi a LAN
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 4CNETIO 4, PowerCable Modbus

 

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: 0 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:

3.1.0 a novější (firmware archív)


 

 

Tato Aplikační poznámka může být použita v:

Smart power socket NETIO

 

NETIO 4

NETIO 4 je PDU modul čtyř zásuvek 230V/8A s připojením do počítačové sítě pomocí LAN a WiFi. Každou ze zásuvek lze individuláně vypnout/zapnout pomocí různých M2M API protokolů. NETIO 4 je unikátní produkt, který najde uplatnění v IT, průmyslu, chytrých domech, multimediálních instalacích atd. Všude, kde potřebujete zásuvky na 230V ovládané z mobilní aplikace, z nějakého programu (M2M API), z uživatelského skriptu (Lua), z funkcí časovač (Scheduler) a automatický restartér (IP WatchDog). 

Více o zařízení NETIO 4

 

Smart power socket NETIO 4All

 

NETIO 4All

NETIO 4All je PDU modul čtyř elektrických zásuvek 230V/8A s měřením spotřeby na každé zásuvce, který lze připojit do počítačové sítě pomocí LAN a WiFi. Každou ze čtyř zásuvek lze individuálně vypnout/zapnout přes web nebo pomocí různých M2M API protokolů. Na každé zásuvce lze měřit její spotřebu elektřiny (A, W, kWh). Chytré zásuvky NETIO 4All jsou určeny pro aplikace vzdáleného měření a ovládání elektrických zásuvek.

Více o zařízení NETIO 4All

Smart power socket NETIO

 

NETIO 4C

NETIO 4C je malé PDU (Power Distribution Unit) na 110/230V se čtyřmi ovládanými výstupy na IEC-320 C13 max 8A. Obsahuje Ethernet switch a 2x LAN port na připojení do sítě. Každý ze čtyř výstupů napájení lze individuálně vypnout/zapnout přes web, z mobilní aplikace nebo pomocí různých M2M API (SNMP, MQTT, XML, Modbus/TCP, ..). V NETIO 4C lze spouštět přímo v zařízení běžící zákaznické Lua skripty. Specialitou NETIO 4C je sériový port RS-232 (3-pin), který lze ovládat z Lua scriptu, nebo jako vzdálený sériový port.

Více o zařízení NETIO 4C

 

Zeptejte se na cenu nebo technické parametry

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