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

Toto je hlavní technické fórum pro diskusi o problémech při vytváření PROMOTIC aplikací a jejich řešení.

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

Postby kmpc » Fri 02. Mar 2018 7:57:08

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?
kmpc
 
Posts: 31
Joined: Thu 12. May 2016 6:39:20

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

Postby admin » Fri 02. Mar 2018 8:51:39

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
admin
Administrátor
 
Posts: 68
Joined: Wed 12. Dec 2012 15:43:09

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

Postby kmpc » Fri 02. Mar 2018 9:00:40

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.
kmpc
 
Posts: 31
Joined: Thu 12. May 2016 6:39:20

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

Postby Kazimierz Heczko » Fri 02. Mar 2018 12:56:33

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
Kazimierz Heczko
 
Posts: 68
Joined: Thu 13. Dec 2012 9:28:56


Return to Nevím jak...

Who is online

Users browsing this forum: No registered users and 3 guests

cron