Řízení modelu křižovatky s volbou režimu

tutoriál

Tutoriál porogramování PLC systémů

Řízení modelu křižovatky s možností volby režimu

Úkol této kapitoly:

  • založit nový projekt
  • konfiguraci načíst z předchozího projektu
  • vytvořit funkční bloky pro řízení křižovatky ve více režimech
  • funkční bloky podmíněně volat z hlavního programu
  •  program odladit

Zadání úlohy
Sestavte program pro řízení modelu křižovatku ve třech režimech:

  • vše vypnuto
  • blikání oranžových světel
  • časování dle zadaného diagramu

K volbě režimu použijte celočíselnou proměnnou, kterou budeme zatím měnit ručně z počítače, později pomocí menu, které si vytvoříme ve webovém rozhraní. K tvorbě a editaci webu slouží nástroj WebMaker, který si předvedme v další kapitole. 

Založení nového projektu

Spustíme vývojové prostředí Mosaic a využijeme projekt vytvořený v minulé lekci. Je uložený v záložce Předchozí projekty

Z menu Soubor vybereme Nový, projekt pojmenujeme. HW konfiguraci včetně alias zkopírujeme z předchozího projektu pomocí I/O konfigurátoru volbou Načíst konfiguraci z projektu – viz obrázek

Založíme program, nazveme ho např. prgMain, zvolíme jazyk ST a deklarujeme instanci programu.

Založení funkčních bloků 

Pro každý z režimů založíme funkční blok, pojmenujeme ho a zvolíme programovací jazyk. Použité POU mohou být vytvořeny v různých programovacích jazycích. Z cvičných důvodů si ukážeme si kombinaci jazyku ST, LD a FBD

Postup založení funkčního bloku je stejný jako při založení programu. 

Pravým tlačítkem myši vyvoláme v IEC manageru na položce Funkční blok lokální menu s nabídkou Přidat programovou organizační jednotku, zvolíme jméno a jazyk.

Na obrázku vidíme založení fbVypnuto v jazyce FBD.

Funkční blok vypnutí světel

Funkční blok pro vypnutí všech světel na semaforech je triviální. Na všechny výstupy pošleme úroveň false – viz obrázek

Funkční blok blikání oranžových světel

Jednou z možností je použití časovače s odpovídající předvolbou. 

Předvedeme si další  řešení s použitím systémových registrů. Systémové registry jsou částí tzv. zápisníkové paměti, se kterou „hospodaří“ PLC. 
Význam jednotlivých registrů najdeme v příručce programátora, která je součástí nápovědy Mosaic.
Pro naše účely použijeme bit S13.2 registru časových jednotek, který mění svůj stav s periodou 1s.

Připravíme si globální proměnnou a zvolíme umístění na %S13.2 – viz obrázek.

Při založení funkčního bloku jsme zvolili jazyk LD, náš FB bude vypadat takto:

První příčka slouží k vynulování všech výstupů, kde můžeme využít fbVypnuto – popsaný v předchozím textu. Druhá příčka obsluhuje výstupy OH a OV.

Funkční blok časování

Funkční blok časového režimu fbCasvani je totožný s programem řešeným v předchozí kapitole, můžeme tedy kód zkopírovat a využít v našem FB. 

Vzhledem k tomu, že můžeme POU volat s vstupními parametry, tak doporučuji připravit si proměnné typu VAR_INPUT (vstupní parametry) a nahradit jimi zlomové časy našeho kódu.

Program funkčního bloku vidíme na obrázku.

Hlavní program

Funkční bloky jsou sice naprogramované, ale zatím nejsou funkční. PLC je začne řešit až v okamžiku zavolání z programu, nebo jiného funkčního bloku.

Náš hlavní program bude řešit jen volání funkčních bloků podle hodnoty připravené proměnné volbaRezimu

V deklarační části připravíme instance funkčních bloků a celočíselnou proměnnou volbaRezimu

Ve výkonné části programu budeme příkazem IF nebo CASE volat podle hodnoty proměnné příslušné funkční bloky 

Při volání funkčního bloku fbCasovani zadáváme vstupní parametry. Budeme-li chtít jiný časový průběh, do funkčního bloku nezasahujeme, jen změníme parametry při voláni

Pokračování
V příští kapitole tutoriálu doplníme náš projekt řízení modelu křižovatky systému EDU-mod  o vizualizaci, kterou vytvoříme nástrojem WebMaker..

Dotazy k této kapitole pište do formuláře v úvodu tutoriálu.