Jste zde

TEST - PLC s HMI panelem IDEC FT1A Touch - 3. díl ModbusTCP

Zatímco v předchozích dílech testu o IDEC FT1A Touch jsem se zabýval obecnými informacemi, teď se konkrétně podíváme na zprovoznění ethernetové průmyslové komunikace Modbus-TCP jak v režimu Server (slave), tak Klient (master).

V předchozích dvou dílech  "TEST - PLC s HMI panelem IDEC FT1A Touch - 1.díl hardware" a "TEST - PLC s HMI panelem IDEC FT1A Touch - 2. díl programování" jste se mohli obecně seznámit s hardwarem, resp. programovacími možnostmi kombinovaného PLC a HMI řídící jednotky FT1A Touch od společnosti IDEC.

IDEC FT1A Touch a Modbus

Každá jednotka IDEC FT1A Touch (např. konkrétně typ IDEC FT1A-C14SA-W) má již v sobě v základu ethernetové rozhraní v podobě klasického konektoru RJ-45. Toto rozhraní lze snadno použít nejen pro napojení na PC pro potřeby nahrávání a ladění programu jednotky, ale také využít pro vzájemné propojení a komunikaci mezi různými PLC a HMI výrobce IDEC, pro napojení a sdílení dat i s PLC různých jiných výrobců (např. OMRON, Mitsubishi, Siemens, Koyo, Fuji aj.). Lze tak snadno přenášet dat do či z jejich paměťových registrů bez složité konfigurace. A nakonec je tu v záloze i podpora univerzální komunikace prostřednictvím protokolu Modbus-TCP. Tak lze prakticky připojit řídící jednotku k zcela jakémukoliv zařízení, který také tento otevřený komunikační protokol podporuje.

Modbus-TCP komunikace přes ethernetový port lze nejen využít pro připojení k jiným zařízením IDEC, ale k libovolnému zařízení libovolného výrobce, který Modbus-TCP propojení podporuje.

Nastavení Modbus-TCP komunikace

IDEC FT1A Touch podporuje v Modbus-TCP komunikační hierarchii jak nadřazenou jednotku typu Klient (Master) například pro nastavení a sběr dat ze snímačů a měřících jednotek, tak i podřízenou jednotku typu Server (Slave) umožňující snadný přístup nadřazeného PLC či PC systému pro odečítání hodnot nebo naopak zasílání řídících informací.

Volba zda bude daná konkrétní jednotka IDEC FT1A Touch pracovat jako Klient (Master) nebo Server (slave) je nutné nastavit napevno hned při zakládání nového projektu. Po volbě „New->Interactive Quick Start” se po vložení jména daného projektu a okně výběru konkrétního typu jednotky FT1A Touch ("Select Product Series") zobrazí okno "Select Communication Driver". Zde je nutné rozkliknout nabídku "Manufacture" a pro univerzální Modbus komunikace zvolit trošku nenápadnou položku „Modicon“. Zde pak již zvolit buď "Modbus/TCP Client" nebo "Modbus/TCP Server" pro ethernetovou komunikaci, či případně "Modbus RTU Master" či "Modbus RTU Slave" pro sériovou komunikaci připojitelnou nezvykle prostřednictvím šroubovacích svorek na boku jednotku FT1A Touch. Bohužel nelze současně provozovat Modbus-TCP a Modbus-RTU a sériovým Modbusem bude zaobírat někdy příště. Ale základní princip jeho použití je obdobný jako u Modbus-TCP.

Postup volby Modbus-TCP komunikace v režimu "Server (Slave)" při zakládání nového projektu/programu pro jednotku IDEC FT1A Touch, konkrétně typ IDEC FT1A-C14SA-W.

Následně se po potvrzení se již nabídka přesune do nastavovacího okna „Projects Settings“, které je pak kdykoliv přístupné položkou umístěnou v okně  stromu rychlý voleb ("Project") v levé části programovací obrazovky. Zde je nutné nejprve v záložce „Communication Interface“ nastavit vlastní ethernetové parametry jednotky IDEC Touch, tedy buď zvolit přidělení od DHCP severu či ručně zadat IP adresu, Masku a případně Gateway, pokud bude nutné komunikovat mimo základní vnitřní lokální ethernetovou síť (například přístup na internet). Zatržením/odtržením položky „Forbid Maintenance Communication“ se jen zakazuje / povoluje možnost nahrávání a ladění programu jednotky z PC pro ethernetu. Pokud je zatrženo, je nutné použít pro připojení k PC rozhraní USB.

V záložce „Communication Driver“ je možné doladit tzv. reakční doby. Tyto hodnoty by měli být zvoleny ve shodě s ostatními Modbus-TCP komunikujícími zařízeními. Někdy může být vypadávající nebo nespolehlivá komunikace právě příčinou špatně nastavených těchto hodnot. Hodnota "Transmission Wait" definuje záměrné zpoždění odeslání odpovědi na obdržení žádosti, hodnota "Time Out" definuje limit čekání na reakci (odpověď / potvrzení) vzdáleného zařízení než se vyhlásí chyba komunikace a hodnota "Retry Cycles" je počet pokusů opětovného odeslání odpovědi pro neobdržení žádného nebo chybového hlášení od vzdáleného zařízení.

Položky poslední Modbus relevantní záložky „Communication Driver Extension“, pak prakticky závisí na tom, zda je provozován režim „Client“ nebo „Server“.

IDEC FT1A jako Modbus-TCP server (slave)

IDEC FT1A provozovaný jako Modbus-TCP server (slave) je na nastavování ta trošku jednodušší varianta a slouží pro aplikace, kde veškeré snímače či naopak akční členy jsou ovládány prostřednictvím „klasických“ digitálních (dvoustavových) nebo analogových vstupů a výstupů. Pak z pohledu nadřazeného systému hlavního (velkého) PLC či PC řízení aplikace, např. celé výrobní linky, je pak dané IDEC FT1A v pozici podřízené jednotky, například pro ovládání jednoho malého stroje v lince, přičemž dostává od hlavního PLC informace související s chodem další předcházejících a navazujících strojů a naopak dává k dispozici ke čtení vlastní lokální hodnoty a naměřená data nejen pro řízení, ale třeba i pro centrální vizualizační / ovládací HMI panel celé linky.

V tomto režimu tak není nutné a ani nelze na úrovni IDEC FT1A Touch nijak adresovat své okolí připojené na společné sběrnici, ale jen je možné v záložce  „Communication Driver Extension“ definovat, jaké zařízení (jaké IP adresy) mají povoleno se připojit a data číst. Buď je možné povolit všechny (zatržením položky "Refuse Access From Unknown Clients" v záložce „Communication Driver“) nebo jen definovat max. 4 konkrétních IP adres. Je to taková nejjednodušší ochrana proti nějakému neoprávněnému „hackerskému“ přístupu. Mimo to je také důležité zkontrolovat "Port Number". Nejlepší je používat standardních 502 určených pro Modbus-TCP. Hodnota "Time Out" zde definuje po jakou dobu zůstane Server (Slave) s komunikací ve spojení na Klient (Master) po navázání prvního kontaktu.

Pak již stačí jen na úrovni řídícího programu IDEC FT1A Touch definovat, jaké proměnné (hodnoty) budou k dispozici ke čtení. Tak se prakticky programátorsky vytvoří ona „Modbus adresovací tabulka“, kterou musí mít k dispozici uživatel / programátor Modbus Klient (master) jednotky, aby věděl, co v jaké registru je obsaženo ke čtení či zápisu.

Hodnoty k dispozici ke čtení je nutné v programu kopírovat, zapisovat či přesunovat do registrů označených v položce "Target" jako „Host“. Ne tedy jako do standardních registrů v paměti PLC nebo HMI panelu pod položkou "Local". Pak již stačí jen podle typů dat zvolit položku "Device type" jako "Coil", "Holding Registers" nebo "Input Registers" a pak v položce "Address" zvolit číslo přiřazeného Modbus registru. Tedy již z pohledu Modbusu standardní věci a volby. Takto lze například rovno vložit v HMI programovací části na obrazovku položku vložení zadání hodnoty "Input number" a pak přímo přiřadit Modbus registr, přičemž není vůbec nutné hodnotu předem ukládat do lokální paměti PLC či HMI. Ale jinak lze s Modbus registry pracovat stejně jako s vnitřními registry, takže v programovací sekci PLC lze použít příkaz MOV k překopírování hodnoty z vnitřního WORD registru Dxxxx do Modbus Holding registru např. 400xxx (např. z D0100 do Modbus HR400001 atd.).

Ukázka Modbus-TCP komunikace IDEC FT1A Touch (konkrétně IDEC FT1A-C14SA-W) naprogramovaná v režimu "Server" připojená k počítači, který v zde funguje jako Modbus-TCP Client (využívá se software EasyModbus Server - viz článek TEST - PC software EasyModbus pro testování Modbus-RTU / TCP).

IDEC FT1A jako Modbus-TCP Client (Master)

V režimu funkce jednotky jako Modbus-TCP Client, tedy jako řídící jednotky, je na první pohled mnoho věcí společných s režimem "server". Jedná se o nastavení vlastních ethernetových parametrů a v zásadě i čtení a zápis hodnot do Modbus registrů. Hlavní odlišnosti pramení z faktu, že v režimu "server" jednotka jen čeká a reaguje na požadavky, zde sama požadavky vytváří.

Postup volby Modbus-TCP komunikace režimu "Client (Master)"  pro jednotku IDEC FT1A Touch, konkrétně IDEC FT1A-C14SA-W.

V nastavovacím okně „Projects Settings“ se hlavně liší záložka „Communication Driver Extension“, kde se definuje kompletní seznam cílových Modbus-TCP server jednotek, kterým budou požadavky vysílány a od nichž budou data sbírána. Každý řádek přiřazuje vnitřnímu "Station" číslu IP adresu cílové jednotky. "Station" číslo (tj. číslo řádku v tabulce) se pak v HMI nebo PLC programu dané "klient" IDEC FT1A Touch jednotky využívá pro rozlišení Modbus registrů. Tedy například hodnota v Modbus registru "0: HR 400001" je sdílena (čtena nebo zapisována) s Modbus server jednotkou s IP adresou v tabulce uvedenou na prvním řádku (v mém testu tedy jedinou jednotkou s IP 192.168.11.1). Hodnota v registru 1: HR 400001 by pak odpovídala jiné jednotce s IP adresou v tabulce v řádku 1 a tak dále.

V záložce „Communication Driver“ pak přibyla důležitá zaškrtávající položka "Use function6 instead of function16", což definuje, zda pro zápis hodnoty v "Holding Registers" 400xxx do server jednotky se bude využívat zápisový funkce (příkaz) č. 6, tedy zápis pouze jedné hodnoty, nebo č. 16 pro současný hromadný zápis více hodnot do více Modbus Registrů.

Ukázka Modbus-TCP komunikace IDEC FT1A Touch (konkrétně IDEC FT1A-C14SA-W) naprogramovaná v režimu "Client" připojená k počítači, který v zde funguje jako Modbus-TCP Server (využívá se software EasyModbus Server - viz článek TEST - PC software EasyModbus pro testování Modbus-RTU / TCP).

Závěr

Ethernetová Modbus-TCP komunikace je u jednotek IDEC FT1A Touch již ve standardu, což u levných PLC s HMI do 10 tis. Kč není stále běžné. Nastavení sice trošku krkolomné, např. proti daleko intuitivnějšímu nastavení u samostatných PLC FT1A (viz článek Jak na Modbus-TCP/RTU komunikaci v PLC IDEC SmartAxis Lite/Pro?).

V příštím díle se blíže podíváme na možnosti a použití "běžných" dvoustavových a analogových vstupů a výstupů řídící jednotky IDEC FT1A Touch, konkrétně mého typu IDEC FT1A-C14SA-W. 

Odkazy:

Hodnocení článku: 

Komentáře

Dobrý den,

U testovaného PLC se mi nepodařilo v ladder programu přesunout hodnotu libovolného registru do HR registru nutného pro komunikaci modbus. HR registry nejsou nabízeny. Zatím se mi to podařilo pouze prostřednictvím scriptu.

Zdravím.