Page 1 of 1

Vyvolání události po zápisu do proměnné

PostPosted: Fri 02. Mar 2018 7:57:08
by kmpc
Mám proměnnou v PmData. Do této proměnné skriptem zapisuji hodnotu po ukončení komunikace s ŘS. Potřeboval bych vyvolat událost, která mi bude signalizovat zápis do této proměnné, kterou provedl uživatel a to v PmPanel a nebo v inspektoru.

Možná by bylo vhodné napsat, že přes událost onDataEditAccept prvku PmiWEdit bych to chtěl udělat až pokud to nepůjde jinak.

Je to možné udělat?

Re: Vyvolání události po zápisu do proměnné

PostPosted: Fri 02. Mar 2018 8:51:39
by admin
Dobrý den,

pro tento účel můžete použít datové rozšíření WriteAction:

https://www.promotic.eu/cz/pmdoc/Object ... Action.htm
https://www.promotic.eu/cz/pmdoc/Object ... ExtCfg.htm

Re: Vyvolání události po zápisu do proměnné

PostPosted: Fri 02. Mar 2018 9:00:40
by kmpc
Přesně takhle to mám udělané, ale událost se mi vyvolává i když přepíšu hodnotu po ukončení komunikace. Abych to rozepsal více... Mám skript, který se mi volá po ukončení komunikace s Amitem. V tomto skriptu přiřadím získaná data dané proměnné:
pMe.Pm("../"Analogy"/#vars/"Teplota).Value=10

Potom mám datové rozšíření na tuto proměnnou WriteAction / onItemAfterWrite.

Problém je v tom, že tato událost se mi vyvolá vždy i když zapíšu hodnotu po ukončení komunikace.

Potřeboval bych vyvolat událost po zápisu dat uživatelem. Tím bych mohl detekovat, že uživatel změnil data a já to musím zapsat do ŘS.

Re: Vyvolání události po zápisu do proměnné

PostPosted: Fri 02. Mar 2018 12:56:33
by Kazimierz Heczko
Dobrý den,
bohužel v tomto případě nelze systémově rozlišit, zda se proměnná změní skriptem spuštěným z komunikace nebo zápisem uživatele v grafickém prvku.
Dalo by se asi podchytit, že zápis byl proveden operátorem zadáním hodnoty v grafickém prvku (kdy by ten prvek neměl datovou vazbu na danou proměnnou).
Ale toto řešení není zase obecné.
Asi nejlepším řešením v této věci by bylo pro zápis udělat si novou proměnnou, a při zápisu do této proměnné (třeba v události onItemAfterWrite) provést odeslání příslušné hodnoty do PLC.

S pozdravem