Úvod
ProfiLab expert je zajímavý produkt od německé společnosti
Abacom Electronic Software,
která mimochodem vyvinula vynikající SW Bascom (Basic) pro
programování jednočipových mikropočítačů Atmel (Atmega), či SW pro
návrh desek plošných spojů a kreslení schémat. Zvažoval jsem, zda
ProfiLab expert uvedu na stránkách o základech programování nebo
někde jinde. Nakonec jsem volil variantu v kapitole užitečných
aplikací pro desktopy.
Charakteristika programu Abacom Expert z mého
pohledu
Licence: Placený program, kategorie levných
programů pro jednotlivce, licence na uživatele, cena cca 99 Euro.
Druh: Vývojové prostředí. Program je objektově orientovaný.
Grafické prostředí obsahuje obrovské množství objektů (displeje,
spínače, zdroje signálu, generátory, analogové a logické objekty,
nástroje pro komunikaci). Objekty se vkládají na pracovní plochu,
obdobně, jako schématické značky a jejich vizuální interpretace se
po vložení zobrazuje také na tzv. front panelu (čelní panel).
Objekty se spojují logickými spoji, tak, jako piny součástí ve
schématu. Demoverze umožňuje spustit nakreslený program po dobu 3
minut. Projekt nelze uložit ani exportovat. Placená verze umožňuje
projekt nejen ukládat, ale také kompilovat (jedno kliknutí). Po
kompilaci se vytvoří jediný spustitelný soubor (.exe), který lze
spustit pod Windows. Proto, na rozdíl od některých systémů typu
SCADA, považuji ProfiLab za vývojové prostředí.
Ovládání: Ovládání je velice intuitivní. Na rozdíl od jiných
programů jste schopni po jeho instalaci schopni nakreslit svůj první
program, spustit ho a vyzkoušet si jeho chování.
Webový server: ProfiLab Expert obsahuje jakousi demoverzi www
serveru. Pokud ve vývoj. prostředí nastavíme, aby byla aplikace
přístupná na webu, program vytvoří a spustí stránku s ovládacími
prvky, které lze zobrazovat, případně jimi ovládat aplikaci pouze s
www prohlížečem.
Silné stránky: Jednoduché kreslení programu, mnoho
použitelných objektů, komunikační rozhraní pro různá zařízení (od RS
232, přes různá rozhraní PLC), vytvoření spustitelného exe souboru
pod Windows.
Slabé stránky: Považujte mé hodnocení jako velice
subjektivní. Jako neprogramátor jsem se naučil základy
procedurálního i objektového programování v různých vývojových
prostředích (Visual Basic, Gambas) a s pomocí různých jazyků (Visual
C++, Visual Basic, Gambas). Nikdy jsem však neprogramoval např. v
jazyce C, ale rovněž jsem ani neprogramoval systémy SCADA. Přestože
jsem rychle přivykl myšlení a filosofii použité v systému ProfiLab,
stejně rychle jsem začal postrádat nějaký hezký skriptovací jazyk
(např. Basic), pro psaní vlastních procedur. Také jsem si nevšiml,
zda má ProfiLab nástroje pro tvorbu vlastních objektů. Předpokládám,
že nemá.
Zkoušky
První program:
První program je
jednoduchý. Jsou použity dva generátory (systémový čas a
systémový datum), které generují čas a datum. Tyto objekty jsou
propojeny se dvěma displeji. Po spuštění programu běží na front
panelu datum a čas (viz obrázek vpravo). |
|
|
|
Objekty
Vývojové prostředí obsahuje mnoho užitečných objektů. Jsou
rozčleněné do několika kategorií a zobrazují se v levém menu.
Obsahují prvky pro zobrazování veličin a jejich hodnot nebo
průběhů. A to od signalizačních LED diod, přes bargrafy,
displeje, až po simulátory osciloskopů, plotrů (X, Y, Y(t)) nebo
vícekanálový logický analyzátor. Menu obsahuje rovněž prvky pro
zadávání vstupů, a to od tlačítek, spínačů, přepínačů, přes
potenciometry a slidery až po generátory. V jiných kategoriích
jsou pak objekty různých analogových obvodů (hradla, invertory,
kombinační obvody, sekvenční obvody, registry, čítače ...). Ale
lepší než spousta slov je pár obrázků. Vždy se snažím ukázat
namalované schéma a spuštěný program:
|
|
Vpravo na obrázku je menu, ve kterém jsou vidět
kategorie objektů a podrobné menu s tzv. HW komponety, které
obsahují jednak komponenty např. pro komunikaci RS-232,
Modbus/TCP nebo komunikaci s multimetrem Metex.
Ve spodní části jsou rozdělené objekty pro
použití se zařízením různých výrobců.
Na obrázku dole je v menu ukázané tlačítko,
které zkompiluje projekt do spustitelného exe souboru:
|
|
|
|
Příklad osciloskopu (vlevo
schéma, zleva slidery na nastavení frekvence amplitudy,
uprostřed schéma funkčního generátoru, vpravo objekt
osciloskopu). Na pravé straně je spuštěný program. Vlevo nahoře
jsou slidery na nastavování f a A, vpravo zobrazení průběhu
výstupů funkčního generátoru na dvou kanálech.
|
|
|
|
|
|
|
Obdobně pracuje
plotter - schéma vpravo, záznam dole: |
|
|
|
|
Objektů
je opravdu mnoho. Některé jsou nevizuální, provádějí nám např.
to, kvůli čemu programujeme v jiných jazycích procedury a
funkce. Dole je ukázka použití tzv. objektu Formula, který
provádí aritmetickou operaci (nebo matematickou funkci) se
vstupní hodnotou. Způsob zadávání je v nápovědě. Příklady:
10-E0, 3*E0, E0 + E1 ....E0, E1, atd. jsou vstupy objektů, asi
od Eingang, A, je výstup, asi Ausgang ...
|
|
|
|
Sériová komunikace
Vyzkoušíme si ji na jednoduchém schématu (viz
pod textem). Ke zkoušce potřebujeme USB - RS232 převodník (obr.
vpravo) s tzv. nulovým modemem, což v praxi znamená, že jsou
propojené špičky TX do RX (č. pinů 2 a 3), obrázek vpravo.
Na Windows PC, kde to zkouším, tak už byl
převodník dříve zasunut. Tento, s čipem FTDI se ve správci
zařízení hlási jako COM3.
Na mém PC se jiný čip FTDI hlásí na COM4, čipy CH340 na COM5,
další čipy na COM6 a COM7, ale to není důležité.
|
|
Podíváme se však do správce zařízení, kde náš COM
máme a ve vlastnostech objektů COM ho nastavíme stejně.
Vlastnosti objektů (Properties) umožňují
nastavit také tzv. preambuli přenosu. Schéma jsem zapojil takto
(obrázek pod textem). Použil jsem generátory konstant (řetězců),
do jednoho jsem dal konstantu "Ahoj", do druhého "Nazdar".
Generátory jsem připojil k objektům COM, které umí vysílat
řetězec znaků - viz levá část schématu.
V pravé části jsem spojil objekt COM, který
umí přijímat řetězec ze sériového portu. Všechny objekty musí
mít nastavený stejný COM, tj. zde COM3 a také stejnou preambuli,
tj. bajty, které se přenesou před znaky dat (já jsem zadal
posloupnost 254 254 118 224), což reprezentuje hodnoty bajtů (0
až 255 je přípustné a odpovídá to 00 až FF hexadecimálně).
Na COM přijímače jsem připojil generátor na
hodiny. To způsobí, že to vyčítá příjem z portu periodicky s
ohledem na takt generátoru.
Na COM vysílačů jsem přidělal tlačítko. Když
ho dvakrát stiskneme, odešle řetězec do portu COM3. Proč
dvakrát, na to jsem nepřišel. Zkoušel jsem to jen v demoverzi
ProfiLab, která neumožňuje ukládat projekt. Takže jsem si nemohl
dát na špičku SND u objektu COM analyzátor, abych se podíval, co
se děje. Možná tlačítko nedá celý pulz s náběžnou i sestupnou
hranou, možná jsou objekty naprogramované opravdu tak, že se
jednou hranou vyčte vstup a druhou se odešle do portu. Objekty
jsou zapouzdřené, proto do jejich algoritmů nevidíme. A ani si
to autoři nepřejí. Pro nás, uživatele se chovají jako černé
skříňky. |
|
Důležité je, že sériová komunikace funguje.
|
Chyby?
Také jsem nějaké našel. Možná jsem dobře neprozkoumal
použité objekty, ale např. v tomto schématu (dole) jsem použil
dva generátory (systémový čas a systémový datum) a jeden
displej. S tím, že si budu vstup displeje přepínat páčkovým
přepínačem. No, když jsem dal na každý výstup z generátorů
displej, byly tam datum a čas spřávně (viz první příklad, tedy
15:59:43 a 15.07.2019). Když jsem to prohnal skrz přepínač, byl
řetězec pošahaný (zobrazovalo se 1507 místo 15.07.2019). Tož,
není to drát, ale zapouzdřený SW objekt, který za mě
naprogramoval programátor (asi v C, C++) a testem na to
nepřišel, protože to možná na přenos řetězce netestoval, hi.
|
|
|
Webový server Webový server se
prodává samostatně (asi za 80 Euro) a v ProfiLab Expert je pouze
jakási demoverze. Samozřejmě, že jsem vyzkoušel. Upřímně,
nenadchla mě až tak. Viz příklad dole. Udělal jsem si zdroj, kde
na každý slider, kterým nastavuji napětí jsem připojil voltmetr.
Jednou digitální (nahoře), podruhé analogový (měřák dole).
Program jsem nastavil tak, aby byl publikován na webu během jeho
chodu. To se stalo. Byl na mém PC spuštěn webový server, který
běžel na IP adrese 127.0.0.1 a na stránce v prohlížeči jsem měl
použité komponenty z front panelu. Pomocí sliderů se dalo
štelovat napětí, voltmetry ukazovaly to, co na hlavním panelu
spuštěné aplikace. No, stránku moc editovat nešlo. Je to
demoverze, lepší, než drátem do oka. Znám však systémy SCADA,
které umí hezčí prezentaci na webu.
|
|
Webový server obsahuje také zkompilovanou
demoverzi hodin od tvůrců programu. Vypadá takto nějak:
|
|
|
Závěr
I když je Profilab Expert verze 4. placeným programem (jedním z
levnějších), obsahuje veliké množství naprogramovaných objektů,
se kterými snadno a doslova během několika minut vytvoříme
použitelnou aplikaci pro ovládání měřicích přístrojů, pro
zobrazování naměřených dat, a to včetně grafické a tabulkové
prezentace výsledků. Program má mnoho komunikačních rozhraní,
včetně RS-232. Jedná se o skutečně vývojový prostředek, který
nám po kompilaci dá oblíbený stand alone exe program, který
můžeme spouštet pod systémy Windows.
Poznámka:
Na této stránce vidíte, co jsem stihnul otestovat na demoverzi
programu v expresu, který jede z Budějovic do Prahy a zpátky.
Tedy souhrnem asi za 4 hodiny. Aniž bych kdykoliv předtím
ProfiLab viděl. USB převodník s nulovým modemem jsem si
připravil předem, protože právě zkouška komunikace mě zajímala
nejvíc. |
|
|