Příklad komunikace mezi automaty

V tomto příkladu je ukázka komunikace mezi dvěma automaty po sériové lince. Program přenáší vstupy jednoho automatu na výstupy druhého a vstupy druhého na výstupy prvního.

Jeden automat (master) obsahuje tento program, druhý automat (slave) je prázdný bez programu je jen spuštěný (RUN). Oba automaty jsou spojené sériovým kabelem buď RS485 1:1 nebo RS232 tzv. null modem. Tento program je tedy jen v automatu master! Na master PLC je použit port 1 (je tedy nutné použít rozšiřující komunikační desku CBxx), na slave PLC lze použít jakýkoli komunikační port. Jedno z nejjednodušších řešení je použít na obou PLC rozšiřující desku CB5 nebo CB55 a propojit porty 1 kabelem 1:1. Při použití RS485 je třeba na konce vedení zaterminovat. V tomto případě tedy přepnout přepínače (oba!) do polohy T a to na obou deskách. Oba použité sériové porty musí být nastaveny na stejnou přenosovou rychlost a ostatní parametry sériového přenosu. Oba PLC mají nastavenou adresu 1.

Parametry sériového portu 1 lze měnit v menu PLCSettingPort 1 Parameter. Adresu automatu pak lze nastavit v menu PLCSettingStation Number.

 

 

Komunikaci přitom řídí master. Sám od sebe se snaží po sériové lince posílat příkazy pro slave PLC. Slave je naopak pasivní sám od sebe komunikaci nenavazuje a pouze odpovídá na příkazy od mastera. Při použití rozhraní typu RS485 lze sestavit síť automatů, kdy jeden je master (a řídí komunikaci) a ostatní jsou slave. Komunikace pak probíhá vždy mezi masterem a jedním slave PLC. Všechny PLC musí mít definovány své adresy.

Základem programu je síť N5 obsahující instrukci CLINK aktivovaná speciálním bitem M1960. Tento bit má význam připravenosti sériového portu 1 a je v log. 1 v případě, že je sériový port 1 připravený k provozu. Instrukce CLINK naváže komunikaci podle komunikační tabulky na adrese D0 (parametr SR:D0) na portu 1 (Pt:1) ve FATEK protokolu – módu 0 (MD:0) a bude používat ke své činnosti 8 registrů od D1000 (WR:D1000), které nesmí být použity k žádnému jinému účelu.

V síti N5 instrukce CLINK podle své tabulky (viz dále) přenáší vstupy X0 – X15 (word WX0) ze slave PLC a ukládá je do WM800 master PLC a dále zapisuje registr master PLC WM1200 na výstupy slave PLC. V síti N1 se jen přepisují místně vstupy WX0 do WM1200 a v N3 WM800 na výstupy WY0 vše v rámci master PLC.

Celý program se tedy chová tak, že v PLC master se přečtou jeho vstupy WX0 a uloží se do „bufferu” WM1200. Instrukce CLINK pak obsah WM1200 pošle na výstupy WY0 slave PLC. V opačném směru instrukce CLINK přečte vstupy WX0 slave PLC a uloží je do WM800 master PLC odkud jsou pak přepsány na jeho výstupy WY0. Program tedy přenáší vstupy jednoho automatu na výstupy druhého a vstupy druhého na výstupy prvního. Bylo by možné samozřejmě vynechat pomocné registry WM800 a WM1200 a vstupy resp. výstupy přenášet přímo. Tento postup byl zvolen kvůli větší přehlednosti.

 

 

 

Instrukce CLINK instrukce k vlastní komunikaci, čerpá z komunikační tabulky, jejíž adresa je uvedena v parametru SR. Tuto tabulku lze vytvořit ve WinProladderu v menu Project / Link Table příkazem New Link Table. Tabulka je součástí projektu.

 

 

V přiloženém příkladu priklad_com se jmenuje LinkTable. Kliknutím na její jméno ji lze prohlédnout případně editovat.

 

 

Na řádku 0 (Seq. 0) je uvedeno, že se přečtou (Read) z automatu s adresou 1 (Slave) vstupy WX0 (Slave Data) o délce 1 word (Data Size) a uloží se do master automatu do WM800 (Master Data). Na dalším řádku 1 se zapíše jeden word WM1200 z master automatu na výstupy WY0 slave automatu s adresou 1.

Řádky v tabulce je možno přidávat, ubírat nebo modifikovat pomocí tlačítek Add, Insert, Edit a Delete. Příkazy z tabulky se vykonávají popořadě. Jejich pořadí lze v tabulce měnit pomocí Move Up a Move Down. Celkové nastavení vlastností tabulky je možné pomocí Setup (hlavně nastavení adresy začátku tabulky).

Při požadavku použití portu 2 pro komunikaci (na straně master, na starně slave lze použít libovolný port) stačí modifikovat síť N5 podle následujícího obrázku. Tj. použít speciální bit M1962 (připravenost portu 2 k provozu) a v CLINK změnit parametr Pt na 2.

 

 

Příloha: priklad_com