Knihovna ModbusRTUlib Komunikace protokolem Modbus RTU master. TXV vydání únor 2010 změny vyhrazeny

Podobné dokumenty
Knihovna DMX512lib Komunikace protokolem DMX512. TXV prvé vydání srpen 2010 změny vyhrazeny

Knihovna EpsnetLib TXV první vydání září 2012 změny vyhrazeny

Knihovna ModbusRTUlib

Knihovna SolarMonitorLib

Knihovna GalaxyLib TXV druhé vydání srpen 2012 změny vyhrazeny

Knihovna DataBoxLib TXV první vydání prosinec 2010 změny vyhrazeny

Knihovna JablotronLib TXV druhé vydání květen 2014 změny vyhrazeny

Knihovna XBMCLib TXV druhé vydání květen 2014 změny vyhrazeny

Knihovna MeteoGiom3000Lib TXV první vydání Prosinec 2010 změny vyhrazeny

Knihovna RecDBXLib ZÁZNAMY V DATABOXU TXV

Knihovna DebugComLib

Knihovna XmlLib TXV druhé vydání říjen 2012 změny vyhrazeny

Knihovna WebGraphLib

Knihovna ParadoxLib TXV druhé vydání březen 2013 změny vyhrazeny

Knihovna XmlLib TXV první vydání prosinec 2010 změny vyhrazeny

Knihovna XmlLibEx TXV druhé vydání prosinec 2013 změny vyhrazeny

Albatros MultiV ALBATROS MultiV ALBATROS MultiV-R Datový převodník LG PI485 / MODBUS TCP LG PI485 / MODBUS RTU s možností rozpočítávání spotřeby elekt

Knihovna pro GSM TXV šesté vydání Prosinec 2010 změny vyhrazeny

Knihovna ComLib TXV osmé vydání červenec 2013 změny vyhrazeny

Moduly MicroUnit serie. všechny typy s výjimkou řady MU-43x, MU-44x a MU-84x

Formát rámce MODBUS pro MORSE

Knihovna LightsLib TXV první vydání prosinec 2011 změny vyhrazeny

Knihovna CoolMasterLib

Uživatelský manuál. KNX232e / KNX232e1k

Knihovna ServoLib Řízení servopohonu bez zpětné vazby. TXV první vydání březen 2009 změny vyhrazeny

Knihovna TecoRouteLib

Komunikační protokol MODBUS RTU v jednotce M4016. Seznam služeb protokolu MODBUS podporovaných řídící jednotkou M4016 je v tabulce.

Komunikační protokol MODBUS RTU v přípojné desce EPD.

MEK1 - Modul externí komunikace RS-232 / MODBUS_RTU.

Aplikační profily v PLC Tecomat

Knihovna ConvertLib TXV první vydání září 2013 změny vyhrazeny

Knihovna KnxLib TXV první vydání prosinec 2012 změny vyhrazeny

SML 33 / SMM 33 / SMN 33

Komunikační protokol MODBUS RTU v displejích TDS

Komunikační protokol MODBUS RTU v displejích TDS

Protokol S-BUS pro MORSE Popis protokolu

SÉRIOVÁ KOMUNIKACE PROGRAMOVATELNÝCH AUTOMATŮ TECOMAT - MODEL 32 BITŮ

Vyčtení / zapsání hodnot z/do OMC8000 pomocí protokolu UDP

Komunikační protokol snímače rel. vlhkosti SV-xxx-x

JEDNOTKA SNÍMAČŮ 1-WIRE (DALLAS) TUDS-40-MOD

TQS3. popis modifikace s protokolem MODBUS RTU. 29. února 2008 w w w. p a p o u c h. c o m 0199

Uživatelský manuál. KNXgw232

Modbus RTU v DA2RS. kompletní popis protokolu. 13. března 2018 w w w. p a p o u c h. c o m

SÉRIOVÁ KOMUNIKACE PROGRAMOVATELNÝCH AUTOMATŮ TECOMAT - MODEL 32 BITŮ

Knihovna WeatherLib TXV první vydání srpen 2012 změny vyhrazeny

Popis funkcí a parametrů programu. Reliance External communicator. Verze 1.5.0

Knihovna LG_HVAC_Lib

Reliance. Komunikační driver Johnson Controls verze 1.5.4

Novinky u zařízení pro sériovou komunikaci. Michal Kahánek

Komunikační protokol

Knihovna EnergyLib TXV čtvrté vydání červen 2012 změny vyhrazeny

APL-017 rev. 9/2015. M4016 MODBUS master. Obecný popis

Komunikace MODBUS pro převodníky AIM600, AIM615. UINT16 Bezznaménkový celočíselný datový typ o velikosti 16bitů rozsah 0 až 65535

Komunikační protokol MODBUS RTU v senzoru vlhkosti a teploty THT

Komunikace AMREG v síti MODBUS TCP

MIDAM Verze 1.1. Hlavní okno :

Práce s vysokorychlostní sběrnicí. SPEED-Bus digitální signály

Komunikace s snímačem ph485 protokolem Modbus-RTU

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE FAKULTA STROJNÍ

Popis programu EnicomD

Ing. Michal Martin. Spojení PLC CLICK s NA-9289

NAPOJENÍ ZAŘÍZENÍ S KOMUNIKACÍ BELIMO MP-BUS NA SÍŤ AUTOMATŮ MICROPEL

Obsah. Popis funkcí. RS485/MODBUS-RTU ver Komunikace s převodníkem probíhá na principu MASTER - SLAVE. Protokol MODBUS mát tuto strukturu:

Elektroměr s integrovaným sériovým rozhraním Modbus EEM230-D -MO-MID

Uživatelský manuál. KNXnet

Modul analogových vstupů M-AI4

Modbus TCP. integrovaný ethernet přepínač umožňuje liniovou topologii 2x konektor M12, 4pinový, kódování D pro připojení na ethernet

Malý distribuovaný I/O modul

Komunikační protokol

Quido - MODBUS. Kompletní popis protokolů MODBUS RTU a TCP v I/O modulech Quido. 20. listopadu 2015 w w w. p a p o u c h.

Knihovna AstroLib TXV první vydání listopad 2010 změny vyhrazeny

1. ÚVODNÍ USTANOVENÍ 2. NAHRÁNÍ VLOŽENÉHO PROGRAMU

Telemetrický komunikační protokol JETI

4x vstup pro měření unifikovaného signálu 0 10 V, 0 20 ma, 4 20 ma. komunikace linkami RS232 nebo RS485

Snímače teploty a vlhkosti s komunikací po RS485 protokolem Modbus RTU - řada PHM

VComNet uživatelská příručka. VComNet. Uživatelská příručka Úvod. Vlastnosti aplikace. Blokové schéma. «library» MetelCom LAN

Knihovna FlashLib TXV první vydání listopad 2009 změny vyhrazeny

Revize FW jednotek RTU7

Knihovna EnergyLib TXV páté vydání červen 2012 změny vyhrazeny

HART RS/ETH. Převodníky rozhraní HART na Modbus TCP (Ethernet) resp. na Modbus RTU (RS485) 30. září 2013 w w w. p a p o u c h.

SIMATIC S IT. Micro Automation. Promoters Meeting October Představení CP IT SPIDER CONTROL TELESERVIS. TESTOVACÍ server.

Montáž. Izolační vlastnosti. Technické parametry. EMC/odolnost proti rušení

APL-113 Čtení hodnot z indukčních průtokoměrů KROHNE prostřednictvím protokolu Modbus-RTU

Nástroj Project Loader TXV Šesté vydání Září 2013 změny vyhrazeny

Modul digitálních vstupů M-DI8

Technická data. Upozornění ohledně bezpečnosti

Komunikační driver Sauter EY2400. Reliance. Komunikační driver SAUTER EY2400 verze 2.4.3

Protokoly: IP, ARP, RARP, ICMP, IGMP, OSPF

EVA.E EVA.E8 uživatelský manuál Revize: /8

teploty po protokolu Modbus RTU

RS485/MODBUS-RTU ver. 4 s rozšířením pro R24

Uživatelský manuál. KNXgal. řízení zabezpečovacích ústředen. Galaxy ze sběrnice KNX. napájeno ze sběrnice KNX. indikace komunikace na KNX

Modul analogových výstupů M-AO2

SEMESTRÁLNÍ PROJEKT Y38PRO

ACASYS-KS Komunikace v systému ACASYS

Model ver SYSTEM EXCLUSIVE KOMUNIKACE CHD Elektroservis

Knihovna DaliLibEx Komunikace protokolem DALI. TXV vydání Řijen 2014 změny vyhrazeny

Paměti Flash. Paměti Flash. Základní charakteristiky

Ganitor. Monitorovací a řídicí I/O moduly pro systém C dubna 2011 w w w. p a p o u c h. c o m v.1.2

Praktické úlohy- 2.oblast zaměření

Transkript:

Knihovna ModbusRTUlib Komunikace protokolem Modbus RTU master TXV 003 52.01 3. vydání únor 2010 změny vyhrazeny

Historie změn Datum Vydání Popis změn Duben 2009 1 První vydání knihovny ModbusRTUlib_V10 Srpen 2009 2 Opraven rozsah StAdr (0000..9999) Doplněn odkaz na konstanty pro chancode Přídán parametr MBtimeOut pro nastavení doby čekání na odpověď. nová verze knihovny ModbusRTUlib_V11 Únor 2010 3 Opraveno vypisování ErrCode přenášené z ComLib Opraveny kódy chybových hlášení v tabulce kap.2.5 nová verze knihovny ModbusRTUlib_V12 OBSAH 1Úvod...3 1.1 Protokol Modbus RTU...3 1.2 Kodování dat v paměti...3 1.3 Funkce protokolu Modbus...4 1.4 Datový model Modbus...4 2 Funkce a Funkční blok pro Modbus RTU master...5 2.1 Popis řízení komunikace Modbus master...5 2.2 Funkce ModbusCmd...6 2.3 Funkční_blok ModbusRTUmas...8 2.4 Funkce GetModbusErrTxt...9 2.5 Kódy chybových hlášení...10 3 Nastavení komunikačních kanálů...11 3.1 Nastavení seriových kanálů pro Modbus master...11 3.2 Nastavení Ethernet kanálů pro Modbus master...12 4 Příklady programu komunikace Modbus master...13 4.1 Topologie sítě zařízení Modbus...13 4.2 1. Příklad - komunikace seriovým kanálem...13 4.3 2. Příklad - jednoduchá komunikace Modbus TCP...14 2 TXV 003 52.01

1 ÚVOD Knihovny funkcí a funkčních bloků jsou nedílnou součástí instalace programovacího prostředí Mosaic. Z hlediska jejich výstavby je možné knihovny rozdělit na následující typy: vestavěné (built-in) knihovny standardně dodávané externí knihovny uživatelsky definované knihovny Knihovna obsahuje deklarace funkcí, funkčních bloků, datových typů a globálních proměnných pro komunikaci Modbus master. Knihovna ModbusRTUlib_V12 používá některé funkce z knihoven ComLib a CrcLib. Knihovna je dodávaná jako součást instalace prostředí Mosaic od verze v 2.0.16.0. Funkce a funkční bloky knihovny ModbusRTUlib_V12 jsou podporovány v centrálních jednotkách řady K (TC700 CP-7004 a všechny varianty systému Foxtrot) od verze v 4.4. a vyšší. 1.1 Protokol Modbus RTU Modbus RTU je otevřený seriový protokol zveřejněný firmou Modicon již v roce 1979. Modbus standard je definován jako aplikační vrstva v 7 úrovňovém OSI modelu, která vykonává Client/Server komunikaci mezi dvěma zařízeními spojenými různými typy sběrnic, nebo komunikačními sítěmi. Na sériových linkách protokol provádí výměnu dat mezi jednou stanicí master a jednou nebo více stanicemi slave v jednom okamžiku. To znamená, že jedna stanice řídí komunikaci a ostatní stanice odpovídají na dotazy. Varianta pro Ethernet se nazývá Modbus TCP. Má v sítích Ethernet vyhrazené své číslo portu 502. Princip přenosu dat a a komunikační funkce jsou stejné jako u Modbus RTU. V sítích Ethernet může komunikace probíhat současně i mezi více klienty a více servery najednou. Popisem protokolu Modbus se podrobně zabývají dokumenty na http://www.modbus-ida.org : Modbus_Application_Protocol_V1_1b.pdf Modbus_over_serial_line_V1_02.pdf Modbus_Messaging_Implementation_Guide_V1_0b.pdf Open Modbus/TCP Specification.pdf 1.2 Kódování dat v paměti Modbus používá k ukládání dat v paměťovém prostoru model používaný firmou Motorola, který se nazývá Big Endian. Čísla uložená v paměti ve více bytech, např 16 bitové typu WORD je uloženo v paměti tak, že byte s vyššími řády leží na nižší adrese a byte s nižšími řády na vyšší adrese. A v tomto pořadí se odesílají datové části jednotlivých telegramů Hodnota 0x1234 je uložena nejdříve 0x12, potom 0x34 Hodnota 0x5678 je uložena nejdříve 0x56, potom 0x78 adresa data 0 0x12 1 0x34 2 0x56 3 0x78 3 TXV 003 52.01

Naproti tomu PLC Tecomat používá kódování v paměti podle firmy Intel, které se nazývá Little Endian. Čísla uložená v paměti ve více bytech, např 16 bitové typu WORD je uloženo v paměti tak, že byte s nižšími řády leží na nižší adrese a byte s vyššími řády na vyšší adrese. Hodnota 0x1234 je uložena nejdříve 0x34, potom 0x12 Hodnota 0x5678 je uložena nejdříve 0x78, potom 0x56 adresa data 0 0x34 1 0x12 2 0x78 3 0x56 1.3 Funkce protokolu Modbus Tab.1 Seznam podporovaných funkcí protokolu MODBUS Kód Funkce Popis 01 Read Coil Status čtení výstupů (paměť 0X) 02 Read Input Status čtení vstupů (paměť 1X) 03 Read Holding Registers čtení registrů (paměť 4X) 04 Read Input Registers čtení vstupních registrů (paměť 3X) 05 Force Single Coil nastavení jednoho výstupu (paměť 0X) 06 Preset Single Register nastavení jednoho registru (paměť 4X) 07 Read Exception Status *) informace o stavu automatu 08 Diagnostics *) diagnostické funkce 15 Force Multiple Coils nastavování výstupů (paměť 0X) 16 Preset Multiple Registers nastavování holding registrů (paměť 4X) 17 Report Slave ID *) vrací identifikační číslo automatu *) Funkce aplikované pouze pro sériové linky 1.4 Datový model Modbus Objekty typ objektu přístup typicky poskytuje oblast Cívky pole jednotlivých bitů Čtení i zápis aplikační program 0xxxx Diskrétní vstupy pole jednotlivých bitů Pouze čtení I/O systém 1xxxx Vstupní registry pole 16-bitových wordů Pouze čtení I/O systém 3xxxx Vnitřní registry pole 16-bitových wordů Čtení i zápis aplikační program 4xxxx Číslování objektů v systémech MODICON začíná číslem jedna. Objekty v oblastech 0xxxx a 1xxxx jsou číslovány jako jednotlivé po sobě jdoucí bity. Pokud se zadává počet přenášených objektů, jedná se tedy o počet přenášených bitů. Objekty v oblastech 3xxxx a 4xxxx jsou číslovány jako 16-ti bitová slova a počet přenášených objektů je tedy počtem po sobě jdoucích slov typu word. 4 TXV 003 52.01

2 FUNKCE A FUNKČNÍ BLOK PRO MODBUS RTU MASTER Knihovna ModbusRTULib obsahuje následující funkční bloky a funkce: ModbusCmd funkce pro sestavení příkazu popisujícího jednu komunikaci ModbusRTUmas FB provádějící komunikace podle příkazů GetModbusErrTxt funkce pro převod chybového kódu na text Funkční blok využívá další funkční bloky z knihovny ComLib a z knihovny CRClib. Tyto knihovny musí být také přidány do projektu, než spustíme první překlad projektu. 2.1 Popis řízení komunikace Modbus master V aplikaci je typicky třeba vyměňovat data mezi více zařízeními a z různých míst uvnitř těchto zařízení. K tomu účelu je potřeba tyto výměny popsat ve formě pole příkazů. Příkaz popisující komunikaci má následující strukturu TCmdStruct: Kde: Proměnná Význam Gr číslo skupiny příkazů pro řízení v automatickém módu nebo manuálním modu (1..255) SNo FNC číslo slave stanice od 1 do 247; 0 je rezervována pro broadcast; >247 je rezervována kód funkce Modbus ( viz tab.1) StAdr počáteční adresa objektů uvnitř stanice Modbus (0000..9999) NoPoint PtrData Počet datových objektů, které budou čteny nebo zapsány ( type BOOL 1... 2000 or WORD 1... 125 ) ukazatel na počátek pole proměnných v PLC Tecomat přenášených tímto příkazem Každý příkaz popisuje jednu komunikační funkci, odkud a kam se data budou přenášet a kolik se jich přenese. Příkazy lze vykonávat v manuálním režimu jednotlivě, nebo v automatickém režimu cyklicky, podle následujících pravidel: Příkazy s číslem Gr = 1 jsou v automatickém módu vždy vykonávány cyklicky. Příkazy s číslem Gr = 255 jsou v automatickém módu vykonávány jen jednou v inicializaci. Příkazy s jinými hodnotami Gr mohou být do cyklického režimu zařazeny podmíněně. 5 TXV 003 52.01

2.2 Funkce ModbusCmd Funkce ModbusCmd sestavuje příkaz pro řízení komunikace. Jednotlivé vstupní parametry funkce jsou vepsány do výsledné struktury typu TCmdStruct Definice funkce v jazyku ST: FUNCTION ModbusCmd : BOOL; VAR_INPUT Gr : USINT; SNo : USINT; FNC : USINT; StAdr : UINT; NoPoint : UINT; PtrData : UDINT; END_VAR VAR_IN_OUT Cmd : TCmdStruct; END_VAR END_FUNCTION Popis proměnných : Proměnná Typ VAR_INPUT Význam Knihovna : ModbusRTUlib Gr USINT Číslo skupiny příkazů pro řízení v automatickém módu nebo manuálním modu (1..255) SNo USINT Číslo slave stanice od 1 do 247; Nula je určena pro broadcast a větší než čísla 247 jsou rezervována pro jiné použití. FNC USINT Kód funkce Modbus (viz tab.1) StAdr UINT Počáteční adresa objektů uvnitř stanice Modbus (0000..9999) NoPoint UINT Počet datových objektů, které budou čteny nebo zapsány ( type BOOL 1... 2000 or WORD 1... 125 ) PtrData VAR_IN_OUT Cmd ModbusCmd PTR_TO USINT Ukazatel na počátek pole proměnných v PLC Tecomat přenášených tímto příkazem TCmdStruct Výsledný příkaz pro řízení jedné komunikace Q BOOL Návratová hodnota 1, když Gr <>0 6 TXV 003 52.01

Příklad volání funkcí v jazyku ST pro inicializaci dvou příkazů pro komunikační kanál CH2: VAR_GLOBAL Teplota : REAL; // teploty Teplot1 : REAL; Tlak : REAL; // tlaky Tlak1 : REAL; Tlak2 : REAL; CmdCH2 : ARRAY [1..5] OF TCmdStruct; // pole příkazů Modbus pro řízení kanálu CH2 END_VAR PROGRAM prgmain ModbusCmd(Gr:=1,FNC:=03,SNo:=1,StAdr:=1,NoPoint:=4,PtrData:=adr(Teplota),Cmd:=CmdCH2[1]); ModbusCmd(Gr:=1,FNC:=03,SNo:=2,StAdr:=5,NoPoint:=6,PtrData:=adr(Tlak), Cmd:=CmdCH2[2]); END_PROGRAM První příkaz bude funkcí 03 Read Holding Registers vyčítat ze stanice s adresou 1, počínaje prvním objektem, čtyři wordy do proměnných počínaje proměnnou Teplota. Druhý příkaz bude funkcí 03 Read Holding Registers vyčítat ze stanice s adresou 2, počínaje pátým objektem, šest wordů do proměnných počínaje proměnnou Tlak. Oba příkazy se zapíší do pole struktur CmdCH2. Proměnná typu REAL zaujímá dva wordy. Proto parametr NoPoint je dvojnásobný než je počet proměnných. 7 TXV 003 52.01

2.3 Funkční_blok ModbusRTUmas Funkční blok ModbusRTUmas sestavuje komunikační relace podle pole připravených řídících příkazů a prostřednictvím zvoleného komunikačního kanálu vyměňuje data mezi PLC master a připojenými zařízeními typu slave. Popis proměnných : Proměnná Typ Význam VAR_INPUT En BOOL Uvolnění činnosti FB. Knihovna : ModbusRTUlib GrSel USINT Vybírá skupiny příkazů pro komunikaci 0 - manuální mód 1 - auto mód, cyklicky vykonává příkazy, kde Gr = 1 >1 - auto mód, cyklicky vykonává příkazy, kde Gr = 1 a Gr = GrSel CmdNo SINT Číslo příkazu, který se vykoná v manuálním módu Start BOOL R_EDGE Na náběžnou hranu vykoná příkaz v manuálním módu MaxCmd SINT Max. počet příkazů, které jsou prohledávány v řídicím poli příkazů chancode UINT Komunikační kanál, kterým probíhá komunikace Endian BOOL Uložení wordu v komunikaci; 0 - BigEndian; 1 - LittleEndian MBtimeOut TIME Modbus timeout (implicitně = 2 [sec]) VAR_IN_OUT Commands VAR_OUTPUT TCmdStru ct Pole příkazů pro řízení komunikace Modbus Done BOOL Komunikace dokončena bez chyby LastCmd SINT Číslo naposledy vykonávaného příkazu ErrCode USINT Chybový kód 8 TXV 003 52.01

Manuální mód ( GrSel = 0) : FB ModbusRTUmas zpracovává jednorázově příkaz daný číslem CmdNo na náběžnou hranu signálu Start, je-li proměnná En nastavena na hodnotu true. Automatický mód ( GrSel > 0 ) Vždy po nastavení proměnné En na hodnotu true se v prvním cyklu vykonávají pouze příkazy s Gr = 255. Tyto povely slouží k případné inicializaci slave zařízení. V následujících cyklech se vždy vykonávají příkazy, které mají Gr = 1 a Gr = GrSel a to v pořadí v jakém jsou zapsány v poli příkazů pro řízení komunikace Modbus. Parametr chancode: V PLC Tecomat jsou sériové komunikační kanály označovány jako CH1_UNI,... CH10_UNI. Mohou být osazeny různými rozhraními RS-232, RS-485, RS-422 apod. Pro přenos přes Ethernet jsou komunikační kanály označovány ETH1_UNI0,... ETH1_UNI7. Volbou komunikačního kanálu typu Ethernet jsou automaticky datové telegramy sestavovány funkčním blokem podle specifikace Modbus TCP. Jména CH1_UNI,... CH10_UNI a ETH1_UNI0,... ETH1_UNI7 jsou jména konstant typu UINT definovaných v knihovně ComLib. 2.4 Funkce GetModbusErrTxt Funkce GetModbusErrTxt generuje z chybového kódu, který vystupuje z funkčního bloku ModbusRTUmas, text s chybovým hlášením v anglickém jazyce a ukládá jej do proměnné typu STRING. Popis proměnných : Proměnná Typ Význam VAR_INPUT ErrorCode USINT Chybový kód VAR_IN_OUT ErrTxt STRING Chybový text GetModbusErrTxt Q BOOL Návratová hodnota 1, když ErrorCode <> 0 Knihovna : ModbusRTUlib 9 TXV 003 52.01

2.5 Kódy chybových hlášení Knihovna pro komunikaci protokolem Modbus RTU master 0... No error Bez chyby 1... Channel is not in uni mode Kanál není v uni módu 2... Sending data are too long Posílaná data jsou příliš dlouhá 3... Received data are too long Přijímaná data jsou příliš dlouhá 4... Wrong channel code Chybný kód kanálu 5... Previous message is not sent yet Předchozí zpráva není ještě odeslána 6 Length of data to sent is zero Nulová délka vysílaných dat 16... Invalid start delimiter Neplatný startovací znak 17... Parity error Chyba parity 18... Maximum message length exceeded Překročena max. délka zprávy 19... Invalid second byte of acknowledgment Neplatný druhý byte potvrzení 20... Invalid second byte of end delimiter Neplatný druhý byte koncového znaku 24... Check sum error Chyba kontrolního součtu 25... Invalid end delimiter Neplatný koncový znak 49... Invalid length of sent data Neplatná délka posílané zprávy 50... Length of data to sent is zero Nulová délka vysílaných dat 64... Timeout not held Nedodržena přestávka 129... Response with other slave address Odpověď s jinou podřízenou adresou 130... Response with other FNC Odpověď s jinou FNC 131... Checksum error in reception Chyba kontrolního součtu během příjmu 132... Unknown FNC in transmit command Neznámý FNC ve vysílaném příkazu 133... Response with Unknown FNC Odpověď s neznámým FNC 135... Response Timeout Error Uplynul čas čekání na odpověď 137... Exception: ILLEGAL FUNCTION Výjimka: Nepovolená funkce 138... Exception: ILLEGAL DATA ADDRESS Výjimka: Nepovolená adresa dat 139... Exception: ILLEGAL DATA VALUE Výjimka: Nepovolená hodnota dat 140... Exception: SLAVE DEVICE FAILURE Výjimka: Neschopné podřízené zařízení 141... Exception: ACKNOWLEDGE Výjimka: Potvrzení 142... Exception: SLAVE DEVICE BUSY Výjimka: Podřízené zařízení zaměstnáno 144... Exception: MEMORY PARITY ERROR Výjimka: Chyba parity paměti 146... Exception: GATEWAY PATH UNAVAILABLE Výjimka: Nepoužitelná cesta bránou 147... GATEWAY TARGET DEVICE FAILED Výjimka: Cílové zařízení nepřístupné TO RESPOND touto bránou Chyby 1..64 jsou obecné chyby komunikace přebírané od funkcí z knihovny ComLib. Chyby 137..147 jsou hlášeny v odpovědi připojeného zařízení slave. Jejich podrobný popis je uveden v manuálu Modbus_Application_Protocol_V1_1b.pdf 10 TXV 003 52.01

3 NASTAVENÍ KOMUNIKAČNÍCH KANÁLŮ ModbusRTU funkce vyžadují nastavení komunikačních kanálů do UNI módu. Toto nastaveni se provede v manažeru projektu. 3.1 Nastavení sériových kanálů pro Modbus master Otevřít nastavení parametrů kanálů v Manažeru projektu konfigurace HW (žlutá ikona u CPU) Nastavit žádaný kanál ( například CH2) do UNI módu. Otevřít nastavení kanálu v univerzálním módu (žlutá ikona ve zvoleném kanálu). Délka přijímací a vysílací zóny musí být nastavena na 256 bytů a minimální doby klidu na lince nastavit na nenulové hodnoty. Podle podřízených zařízení nastavit komunikační rychlost, formát dat a paritu. Pracuje-li podřízené zařízení bez parity musí se nastavit v dialogu parita trvale 1, aby byla splněna podmínka dvou stop bitů. Kanál musí být osazen submodulem MR-01xx podle varianty linky RS-232,485,422. Poznámka: Pro úplnost doplňme, že Modbus slave je v CPU Tecomat dostupný, když je na kanálu nastaven režim MDB. 11 TXV 003 52.01

3.2 Nastavení Ethernet kanálů pro Modbus master Otevřít nastavení parametrů kanálů v Manažeru projektu konfigurace HW (žlutá ikona u CPU) Uvolnit ETH-uni kanál v dialogu nastavení ETH. Otevřít nastavení kanálu v univerzálním módu ( žlutá ikona u ETH-uni). Vybrat ouško kanálu UNI0... UNI7 ( další se přidávají tlačítky + a - ). Délka přijímací a vysílací zóny musí být nastavena na 260 bytů a pro Modbus povinný vzdálený port 502. Podle podřízených zařízení nastavit vzdálenou IP adresu a typ protokolu ( TCP master nebo UDP). Poznámka: TCP má lepší zabezpečení přenosu, ale má delší doby zotavení. Je vhodný pro rozsáhlé sítě. UDP je pružnější a vhodný pro menší lokální sítě, nebo spojení bod-bod. Poznámka: Pro úplnost doplňme, že Modbus slave na Ethernetu v CPU Tecomat je od verze SW 4.4. dostupný na portu 502 automaticky ve formě max. dvou přístupových soketů, v režimu ETH MDB. To znamená, že ke každému PLC slave mohou přistupovat současně dvě stanice master protokolem Modbus. 12 TXV 003 52.01

4 PŘÍKLADY PROGRAMU KOMUNIKACE MODBUS MASTER 4.1 Topologie sítě zařízení Modbus Komunikace po sériových linkách může probíhat jako Master-Slave současně na více kanálech. V síti Ethernet je možné zařízení libovolně kombinovat. Master Modbus může směřovat až do 8-mi zařízení s různými IP adresami najednou. Přitom může probíhat zároveň i jiná komunikace, například s vývojovým prostředím Mosaic, nebo s jiným PLC. 4.2 1. Příklad - komunikace sériovým kanálem Příklad komunikace sériovým kanálem na dvě stanice slave. Kanál CH2 musí být osazen submodulem MR-0114 s rozhraním RS-485. Volání funkcí ModbusCmd v jazyku ST pro inicializaci dvou příkazů pro komunikační kanál CH2 nastavený v režimu UNI. VAR_GLOBAL Teplota : REAL; // teploty Teplot1 : REAL; Tlak : REAL; // tlaky Tlak1 : REAL; Tlak2 : REAL; CmdCH2 : ARRAY [1..5] OF TCmdStruct; // pole příkazů Modbus pro řízení kanálu CH2 END_VAR PROGRAM prgmain VAR END_VAR ModbusCmd(Gr:=1,FNC:=03,SNo:=1,StAdr:=1,NoPoint:=4,PtrData:=adr(Teplota),Cmd:=CmdCH2[1]); ModbusCmd(Gr:=1,FNC:=03,SNo:=2,StAdr:=5,NoPoint:=6,PtrData:=adr(Tlak), Cmd:=CmdCH2[2]); END_PROGRAM 13 TXV 003 52.01

Volání FB ModbusRTUmas je napsáno v grafickém jazyku FBD. Používá komunikační kanál CH2. Zobrazení je přepnuto v ladícím režimu. FB právě vrací chybové hlášení během vykonávání příkazu číslo 1. V obvodu 0002 je funkce GetModbusErrTxt, která převádí chybový kód z proměnné ErrCode1 do textového řetězce a ukládá jej do proměnné ErrorTxt1. Poznámka: Ukázáním kurzoru myši do místa odkazu na textovou proměnnou se po chvíli začne zobrazovat její obsah v bublinovém okénku. 4.3 2. Příklad - jednoduchá komunikace Modbus TCP Příklad jednoduché komunikace Modbus TCP zapsaný v jazyku ST. Nejdříve nastavíme komunikační kanál Ethernet jak bylo uvedeno v kapitole 3.2 Komunikační kanál ETH1_UNI1 má nastavenu vzdálenou IP adresu, vzdálený port 502 - Modbus, typ protokolu a velikosti komunikačních zón. 14 TXV 003 52.01

V IEC manažeru knihovny, použitím pravého tlačítka myši zvolit volbu Přidat knihovnu Postupně přidat knihovny ComLib, CRClib a ModbusRTULib.. Pořadí je důležité pro překladač a lze jej dodatečně měnit v nástroji Soubory v projektu, který je levém okně prostředí Mosaic. Program periodicky čte 6 wordů z koncového zařízení připojeného přes Ethernet. Nepoužité vstupní a výstupní parametry volaného FB není třeba vypisovat a ony zůstanou v implicitních hodnotách ( false nebo nula podle typu proměnné). Řídící pole příkazů má jenom jeden příkaz. Je-li třeba komunikaci naředit v čase, můžeme proměnnou En ovládat vhodným periodickým signálem. VAR_GLOBAL Tempr1 : REAL; // teploty Tempr2 : REAL; Tempr3 : REAL; CmdTCP1 : ARRAY [1..2] OF TCmdStruct;// pole příkazů Modbus pro řízení kanálu ETH1_UNI1 END_VAR PROGRAM prgmain VAR MDB_TCP : ModbusRTUmas; // definice instance FB ModbusRTUmas Done2 : BOOL; LastCmd2: SINT; ErrCode2: USINT; END_VAR ModbusCmd(Gr:=1,FNC:=03,SNo:=0,StAdr:=1,NoPoint:=6,PtrData:=adr(Tempr1),Cmd:=CmdTCP1[1]); MDB_TCP(EN := true, GrSel := 1, MaxCmd := 2, chancode := ETH1_UNI1, LastCmd => LastCmd2, ErrCode => ErrCode2, Commands := CmdTCP1[1]); END_PROGRAM 15 TXV 003 52.01

TXV 003 52.01 Výrobce si vyhrazuje právo na změny dokumentace. Poslední aktuální vydání je k dispozici na internetu www.tecomat.cz