Tak odpovídám si sám - k mému velkému údivu si Mosaic správně nenačetl model PLC, takže ačkoliv jsem žádné dodatečné moduly nenastavoval, už ten základní měl problém. Poté, co jsem nastavil správnou verzi PLC, mi již vše šlape. Dokonce jsem si nastavil i ty další moduly a celé je to báječné.
Měl bych dva dotazy - zkoušel jsem trochu pátrat, ale moc se mi to nepovedlo.
První se týká časovačů - na řadu automatizovaných činností budu potřebovat časovače. A to dvojího typu - spuštění v konkrétní čas (např. "v 8:15") a potom spuštění za nějaký interval ("za 10 minut"). Teď to mám naimplementováno velice tupě tak, že přečtu aktuální čas a zkoumám, zda je menší než ten naplánovaný a pokud ano, spustím.
Druhý dotaz se týká proměnných. Mám několik stejných ovladačů na žaluzie. U každého mě zajímá stav tlačítka nahoru a stav tlačítka dolů a stejně tak u každého ovládám motor nahoru a motor dolů. Snažím se tam mít nějakou chytrou logiku ve smyslu krátký stisk - automatický výjezd nahoru/dolů, dlouhý stisk - motor jede jen po dobu držení, dvojstisk - automatické spuštění do polovny atp. Čili každý ovladač má dva boolovské vstupy a dva boolovské výstupy.
Rád bych měl ve strukture tOvladac proměnnou hardware, do které by se přiřadil odpovídající "ovládací modul". Ovladače žaluzií jsou všechny stejné, tzn. u každého je .DI1 tlačítko nahoru a .DI2 tlačítko dolů apod., takže pak by stačilo inicializovat pole struktur tOvladac tak, že by se nastavil ovladac[1].hardware = RoletovyOvladacObyvak, ovladac[2].hardware = RoletovyOvladacLoznice apod. Bohužel jsem nepřišel na to, jak přesně toto udělat.