Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
cs:sw:01-mervis:setting-modbus-server-hidden [2020/06/08 11:39] – [Nastavení Modbus slave (serverového) zařízení] avsetulacs:sw:01-mervis:setting-modbus-server-hidden [2024/07/24 14:35] (aktuální) – [Nastavení Modbus TCP serveru (slave)] kcerny
Řádek 6: Řádek 6:
 <WRAP half column 15%> <WRAP half column 15%>
 ;;# ;;#
-<html><span class="dev-tag dev-axon">Axon</span></html> \\+<html><span class="dev-tag dev-patron">Patron</span></html> \\
 <html><span class="dev-tag dev-neuron">Neuron</span></html> \\ <html><span class="dev-tag dev-neuron">Neuron</span></html> \\
-<html><span class="dev-tag dev-extens">Extension</span></html>+<html><span class="dev-tag dev-gate">Gate</span></html> \\ 
 +<html><span class="dev-tag dev-unipi11">Unipi&nbsp1.1</span></html> \\ 
 +<html><span class="dev-tag dev-axon">Axon</span></html>
 ;;# ;;#
 </WRAP> </WRAP>
 </WRAP> </WRAP>
 +
 +
 ===== Fyzická vrstva ===== ===== Fyzická vrstva =====
 Prvním krokem je rozhodnutí, jaký typ fyzické vrstvy budeme používat. U PLC Unipi se spuštěným Mervis IDE máme na výběr buď RS485 (protokol Modbus RTU), případně ethernet (protokol Modbus TCP). Tato volba je založena na zbytku existující infrastruktury, a na možnostech zařízení, která mají s PLC komunikovat.  Prvním krokem je rozhodnutí, jaký typ fyzické vrstvy budeme používat. U PLC Unipi se spuštěným Mervis IDE máme na výběr buď RS485 (protokol Modbus RTU), případně ethernet (protokol Modbus TCP). Tato volba je založena na zbytku existující infrastruktury, a na možnostech zařízení, která mají s PLC komunikovat. 
  
-Fyzická vrstva RS485 je typicky limitovaná svou max. rychlostí (115 200 bps) a povahou [[https://en.wikipedia.org/wiki/Duplex_(telecommunications)#Half_duplex|poloduplexní komunikace]], která rychlost snižuje ještě více. Na druhou stranu je vrstva RS485 snadná na implementaci a stále jde na poli průmyslové automatizace o velmi populární volbu. +Fyzická vrstva RS485 je typicky limitovaná svou max. rychlostí (115200 bps) a povahou [[https://en.wikipedia.org/wiki/Duplex_(telecommunications)#Half_duplex|poloduplexní komunikace]], která rychlost snižuje ještě více. Na druhou stranu je vrstva RS485 snadná na implementaci a stále jde na poli průmyslové automatizace o velmi populární volbu. 
  
 K nastavení komunikace mezi master a slave je nutné používat nějakou formu adresace. V protokolu Modbus RTU musí mít každé slave zařízení unikátní identifikaci, či **adresu**, která může být v rozsahu 0-255.  K nastavení komunikace mezi master a slave je nutné používat nějakou formu adresace. V protokolu Modbus RTU musí mít každé slave zařízení unikátní identifikaci, či **adresu**, která může být v rozsahu 0-255. 
Řádek 26: Řádek 30:
  
 V Modbus TCP probíhá adresování skrze IP adresu a port. Výchozím portem je port 502.  V Modbus TCP probíhá adresování skrze IP adresu a port. Výchozím portem je port 502. 
 +
  
 ===== Nastavení Modbus RTU serveru (slave) ===== ===== Nastavení Modbus RTU serveru (slave) =====
Řádek 32: Řádek 37:
 {{ :en:sw:01-mervis:modbus-server-01-workspace.png?direct |}} {{ :en:sw:01-mervis:modbus-server-01-workspace.png?direct |}}
  
-Nyní je třeba přidat **kanál serveru**. V **levém panelu** klikněte pravým tlačíkem na **PLC** a v kontextovém menu klikněte na **Přidat kanál serveru**. +Nyní je třeba přidat **kanál serveru**. V **levém panelu** klikněte pravým tlačítkem na **PLC** a v kontextovém menu klikněte na **Přidat kanál serveru**. 
  
 {{ :en:sw:01-mervis:modbus-server-02-add-server-channel.png?direct |}} {{ :en:sw:01-mervis:modbus-server-02-add-server-channel.png?direct |}}
Řádek 40: Řádek 45:
 </WRAP> </WRAP>
  
-Pod **PLC** se objeví položka **server-channel**. Dvojitě na ni klikněte a v panelu **Vlastnosti** změňte jeho název na něco více popisného. Kanál bude sloužit pro komunikaci Modbus RTU v režimu master, nazvěme jej proto třeba **Modbus RTU-master**.+Pod **PLC** se objeví položka **server-channel**. Dvojitě na ni klikněte a v panelu **Vlastnosti** změňte jeho název na něco více popisného. Kanál bude sloužit pro komunikaci Modbus RTU v režimu slave, nazvěme jej proto třeba **ModbusRTU-slave**.
  
 {{ :en:sw:01-mervis:modbus-server-03-channel-name.png?direct |}} {{ :en:sw:01-mervis:modbus-server-03-channel-name.png?direct |}}
Řádek 56: Řádek 61:
 {{ :en:sw:01-mervis:modbus-server-06-add-server-device.png?direct |}} {{ :en:sw:01-mervis:modbus-server-06-add-server-device.png?direct |}}
  
-Pod kanálem **ModbusRTU-master** se objeví nové zařízení. Dvojitě na něj klikněte a v panelu **Vlastnosti** změňte **Adresu zařízení** na něco více popisného. Můžeme změnit i jméno, na tomto kanálu ale budeme mít pouze jedno zařízení. +Pod kanálem **ModbusRTU-slave** se objeví nové zařízení. Dvojitě na něj klikněte a v panelu **Vlastnosti** změňte **Adresu zařízení** na něco více popisného. Můžeme změnit i jméno, na tomto kanálu ale budeme mít pouze jedno zařízení. 
  
 {{ :en:sw:01-mervis:modbus-server-07-device.png?direct |}} {{ :en:sw:01-mervis:modbus-server-07-device.png?direct |}}
  
 Nyní máme připravené vše potřebné k tomu, abychom mohli ostatním zařízením povolit číst a zapisovat proměnné na naše PLC skrze protokol Modbus RTU. Posledním krokem je definovat Modbus registry a coily, a namapovat je na naše proměnné. Tento proces probíhá stejně i na serveru Modbus TCP, u něj proto můžete přejít do sekce [[#definice_registru_a_coilu|Definice registrů]] Nyní máme připravené vše potřebné k tomu, abychom mohli ostatním zařízením povolit číst a zapisovat proměnné na naše PLC skrze protokol Modbus RTU. Posledním krokem je definovat Modbus registry a coily, a namapovat je na naše proměnné. Tento proces probíhá stejně i na serveru Modbus TCP, u něj proto můžete přejít do sekce [[#definice_registru_a_coilu|Definice registrů]]
 +
  
 ===== Nastavení Modbus TCP serveru (slave) ===== ===== Nastavení Modbus TCP serveru (slave) =====
Řádek 96: Řádek 102:
 **IP adresu zařízení** můžete ponechat na výchozí hodnotě (0.0.0.0). Mervis IDE interně nastaví adresu stejnou jako pro PLC.  **IP adresu zařízení** můžete ponechat na výchozí hodnotě (0.0.0.0). Mervis IDE interně nastaví adresu stejnou jako pro PLC. 
  
-Naopak **Port zařízení** je třeba nastavit. Obvyklým Modbus TCP portem je port 502, na něm již ale jedna aplikace běží. Nastavte jej proto např. na 503. +Od verze Mervis IDE 2.6.5 byl port 502 uvolněn volně k použití, pro starší verze platí následující: **Port zařízení** je třeba nastavit. Obvyklým Modbus TCP portem je port 502, na něm již ale jedna aplikace běží. Nastavte jej proto např. na 503. 
 </WRAP> </WRAP>
  
 {{ :en:sw:01-mervis:modbus-server-12-device-port.png?direct |}} {{ :en:sw:01-mervis:modbus-server-12-device-port.png?direct |}}
  
-Nyní máme připravené vše potřebné k tomu, abychom mohli ostatním zařízením povolit číst a zapisovat proměnné na naše PLC skrze protokol Modbus RTU. Posledním krokem je definovat Modbus registry a coily, a namapovat je na naše proměnné. +Nyní máme připravené vše potřebné k tomu, abychom mohli ostatním zařízením povolit číst a zapisovat proměnné na naše PLC skrze protokol Modbus TCP. Posledním krokem je definovat Modbus registry a coily, a namapovat je na naše proměnné.  
  
 ===== Definice registrů a coilů ===== ===== Definice registrů a coilů =====
 Komunikace přes Modbus je určena pouze pro výměnu dat. Master zařízení vyčítá a nastavuje datové body, které jsou nakonfigurovány na slave zařízení. V protokolu Modbus existují čtyři druhy datových bodů pro čtení i zápis, které ale mohou používat pouze dva datové typy - boolean a word (16-bitový integer). Toto omezení je zde kvůli stáří protokolu Modbusu (více než 40 let) a k udržení komunikace co nejjednodušší. Jakýkoliv jiný datový typ (32-bit real, string aj.) je třeba nejprve převést na 16-bitovou hodnotu, například použitím více datových bodů.  Komunikace přes Modbus je určena pouze pro výměnu dat. Master zařízení vyčítá a nastavuje datové body, které jsou nakonfigurovány na slave zařízení. V protokolu Modbus existují čtyři druhy datových bodů pro čtení i zápis, které ale mohou používat pouze dva datové typy - boolean a word (16-bitový integer). Toto omezení je zde kvůli stáří protokolu Modbusu (více než 40 let) a k udržení komunikace co nejjednodušší. Jakýkoliv jiný datový typ (32-bit real, string aj.) je třeba nejprve převést na 16-bitovou hodnotu, například použitím více datových bodů. 
  
-==== Datové body  ==== 
  
 +==== Datové body  ====
 **Coil** je booleanovský datový bod, u kterého může master zařízení provádět čtení i zápis. Coily se obvykle používají pro ovládání digitálních či reléových výstupů, které mohou nabývat pouze hodnot ''TRUE'' nebo ''FALSE'' **Coil** je booleanovský datový bod, u kterého může master zařízení provádět čtení i zápis. Coily se obvykle používají pro ovládání digitálních či reléových výstupů, které mohou nabývat pouze hodnot ''TRUE'' nebo ''FALSE''
  
Řádek 115: Řádek 122:
  
 Druhý datový bod typu word má název **vstupní registr**. Z něj může master pouze vyčítat. Obvykle se tento datový bod používá pro odečty teploty.  Druhý datový bod typu word má název **vstupní registr**. Z něj může master pouze vyčítat. Obvykle se tento datový bod používá pro odečty teploty. 
 +
  
 ==== Vytvoření datového bodu ==== ==== Vytvoření datového bodu ====