Domů Nápověda Vyhledávání Přihlásit Registrovat
Novinky:               PROSÍME VŠECHNY UŽIVATELE, PŘED POUŽITÍM DISKUSÍ ČTĚTE MÍSTNÍ PRAVIDLA! ZDE ...!


+  Diskuse Elektrika.cz
|-+  HYBRIDNÍ zóna
| |-+  Firemní podpora
| | |-+  TECO - Foxtrot chytré instalace. ODBORNÍCI radí spotřebitelům!
| | | |-+  Technická podpora výrobce TECO Kolín radí odborníkům
| | | | |-+  Jak řešit dvojstisk/trojstisk tlačítka v prostředí Mosaic (strukturovaný text)?
0 uživatelů a 1 Host prohlíží toto téma. « předchozí další »
Stran: [1] Dolů Poslední příspěvky Tisk

Upozornění!
Odpovědi na témata nejsou právně závazné!
Na elektrickém zařízení smí pracovat pouze osoba s příslušnou kvalifikací dle nařízení vlády 194/2022 Sb. Podrobnosti zde!

Autor Téma: Jak řešit dvojstisk/trojstisk tlačítka v prostředí Mosaic (strukturovaný text)?  (Přečteno 10481 krát)
Michal Hozak
« kdy: 21.05.2012, 14:13 »

Jak správně řešit v jazyce strukturovanéh o textu v Mosaicu dvojstisk, trojstisk tlačítka případně dlouhé podržení tlačítka? Požadavek je jednoduchý. Při jednom krátkém stisku vyhodnotit jako povel A při krátkém dvojstisku povel B při trojstisku povel C, při dlouhém držení povel D.

Pravidla diskusí   Nahlásit moderátorovi   Stěžovat si na moderátora   Zaznamenáno
SMILEK
« Odpověď #1 kdy: 21.05.2012, 23:23 »

Teoreticky to samozřejmě řešitelné je  Mrknutí,  ale:

Ty dvoj/trojstisky nejsou úplně praktické,  protože je nutné chvilku počkat, zda po stisku nepřijde ještě další stisk a tedy vyhodnocení povelu "A" nepřijde okamžitě,  ale až po uplynutí nějaké doby od uvolnění tlačítka. Nebo se smířit s nutností dodatečně změnit typ přijatého povelu (pokud to povaha aplikace umožňuje).

A navíc některá tlačítka neumožňují (kombinací svého mechanického provedení a prodlev CIB sběrnice) dostatečně spolehlivě rozlišit několik rychlejších stisků za sebou.

Jedno z možných SW řešení je od okamžiku prvního stisku nechat běžet dva časové intervaly. První bude vyhodnocovat "délku" samotného stisku a rozliší,  zda jde o krátký/dlouhý. Druhý bude určovat dobu, v níž musí být tlačítko stisknuto podruhé/potřetí,  aby to bylo považováno za dvojstisk, nebo trojstisk.
Ale cest k dosažení výsledku je jistě více, záleží na fantazii programátora.
Pravidla diskusí   Nahlásit moderátorovi   Stěžovat si na moderátora   Zaznamenáno
Stýskalík Jiří
Neverifikovaný uživatel @1

Offline Offline



WWW
« Odpověď #2 kdy: 22.05.2012, 10:37 »

K dispozici je funkční blok fbSimpleButton, který řeší dvojstisk, resp. rozlišení dlouhého a krátkého stisku s možností definice doby vyhodnocení dlouhého stisku. Tento funkční blok je součástí knihovny LightsLib.
Pravidla diskusí   Nahlásit moderátorovi   Stěžovat si na moderátora   Zaznamenáno

GEOVAP, spol. s r.o.
SCADA/HMI systém Reliance, řidicí systémy Tecomat
Jindra_K
« Odpověď #3 kdy: 22.05.2012, 10:45 »

K předchozím příspěvkům ještě doplním:
Pro vyhodnocení krátkého a dlouhého stisku tlačítka lze použít vstupní modul C-IT-0908S (obslouží 8 tlačítek),  který přímo vyhodnocuje délku stisku a uživateli předává v datech informaci, zda se jednalo o krátký, nebo dlouhý stisk. Rozhodovací mez kratký/dlouhý stisk je v modulu konfigurovatel ná. Tato funkce bude již standardní součástí všech nově do prodeje uváděných modulů CFox.
Vyhodnocení dvojstisku a trojstisku se musí řešit na úrovni uživatelského programu (čítat indikované krátké stisky z modulu).   
Při použití jiných CFox vstupních modulů  se vyhodnocení stisku musí řešit uživatelským programem, (krátké stisky jsou těmito CFox moduly indikovány cca. 200 - 250ms pulsem),  takže se např. časovačem TON měří délka stisku.

Pravidla diskusí   Nahlásit moderátorovi   Stěžovat si na moderátora   Zaznamenáno
Pavel Urbancik
Neverifikovaný uživatel @1

Offline Offline



« Odpověď #4 kdy: 22.05.2012, 11:27 »

Řešil jsem stejný problém a napsal si vlastní funkci která rozlišuje držení, stisknutí a dvouklik.

Vyhodnocování krátkého a dlouhého stisku má taky celkem vtipný důsledek, protože musíme počkat až uživatel pustí tlačítko a tak si většina návštěv nedokáže rozsvítit :-)
Možná by stačilo poladit čas pro rozlišení, ale takto je to větší zábava.
Pravidla diskusí   Nahlásit moderátorovi   Stěžovat si na moderátora   Zaznamenáno
Slavomír Skopalík
*
Offline Offline



« Odpověď #5 kdy: 01.07.2012, 11:06 »

Pro vycestisk pouzivam tento kod:

Sv1On:=R112_WS1IN.BTN.UP1 or R112_WS2IN.BTN .UP1 or R112_WS3IN.BTN .UP1 or R112_WS4IN.BTN .UP1;

// Postupne rozsvetceni sekci
R112.Svetlo1a. BtnUp:=Sv1On;
if Sv1On and not R112.Svetlo1a. Old_BtnUp then   // Hack for positive edge on button
  if R112.Svetlo1a. OutputBool then
    R112.Svetlo1b. BtnUp:=true;
  end_if;
  if R112.Svetlo1b. OutputBool then
    R112.Svetlo1c. BtnUp:=true;
  end_if;
end_if;

Tento kod postupne (na kazdy stisk jedna sekce) rozvetcuje lustr o 3 sekcich.

Jinak v beznych PLC se na to pouziva prikaz "Positive edge",  ale jeho pouziti u foxtrotu je trochu krkolomne, ale principialne mozne.


Řešil jsem stejný problém a napsal si vlastní funkci která rozlišuje držení, stisknutí a dvouklik.

Vyhodnocování krátkého a dlouhého stisku má taky celkem vtipný důsledek, protože musíme počkat až uživatel pustí tlačítko a tak si většina návštěv nedokáže rozsvítit :-)
Možná by stačilo poladit čas pro rozlišení, ale takto je to větší zábava.
Pravidla diskusí   Nahlásit moderátorovi   Stěžovat si na moderátora   Zaznamenáno
Stran: [1] Nahoru Poslední příspěvky Tisk 
« předchozí další »
SLEDUJTE PODOBNÁ TÉMATA ZDE!

Příbuzné diskuse a články z Elektrika.cz

 Lze přecházet mezi FoxTool a Mosaic bez nutnosti výměny jednotek?
 Ako pouzit Mosaic (SW) s CU2-01M jednotkou?
 Jak dostat NSlookUP do globalnich dat?
 Lze změnit podobu webového rozhraní projektu ve FoxToolu?
 Byl by zajem o utilitku pro sber dat z Foxtrotu?
 Co je to "0:[Xpro:Error] SYSGEN\ZAPOTOCI_PLC1$2.MAS (2806): unknown POU name"?
 Pracuje Mosaic správně s polem ukazatelů na BOOL?
 Proč v průzkumníku knihoven nelze načíst *.MJF soubory?
 Fóry foxtrotího fóra?
 jak funguje #def v Mosaicu?
 Jak v Mosaicu generovat náhodná čísla?
 Jak nadefinovat C-RC-0003R v Mosaicu 2013.1 SP2 / 2013.3?
 Proc po kompilaci nefunguje odesilani hodnot?
 Dá se propojit program z Mosaicu s programem v Reliance?
 Jak správně použít funkci SunAzimuth?
 Existuje volná implementa m-busu do mosaicu?
 Je toto chyba v mosaic při určité definici vlastního typu proměnné ?
 Proč nelze vytvořit nový projekt v Mosaic 2014.1 RC3?
 Co u CP 1000 znamená error A3-00-3805?
 Existuje pro CP1000 mosaic detekce změny hodiny skutečného času?
 Jak nakonfigurovat modul GSM2-01 k CP-1000 v Mosaicu?
 Jak regulovat třícestný ventil v Mosaicu?
 Jak změnit konstantu LONG_CLICK_TIME v Mosaicu?
 Jak změnit hodnotu RGB_STEP a stmívání konkrétního světla přes web?
 Jak v nahradit v jazyce CFC void?
 Jak ve Web Maker zobrazit obrázek ze souboru?
 Jak nastavit sériový kanál CP1000 CH2 v Mosaicu?
 Jak se připojit k Mosaicu přes internet?
 Je nějak v CP1000 omezena paměť pro proměnné ukládané do Global Retain?
 Jak řešit chybu dialogu na panelu ID18?
 Jak obcházíte v CFC nemožnost přiř. polí do vstupních proměnn. funkčního bloku?
 Proč nelze přepínat do relátkového zobrazení v Mosaicu?
 Co znamená v Mosaicu chyba při překladu "nedostatek 'R' operandů"?
 Je v Mosaicu nějaká obdoba křížových referencí?
 Je možné definovat místo v paměti pro danou instanci?
 Obsahuje simulator PLC v Mosaicu take simulator webserveru ?
 Dělal někdo fb na komunikaci s meteostanici Netatmo?
 TECO: Nová verze Mosaicu ke stažení
 Jak ošetřit chybové stavy v PLC?
 Mohli byste mi prosím pomoci s vytvořením programu v jazyce ST?
 Proč nenajde Mosaic 2015.4 HW klíč ve Windows 10 a RDP spojeni?
 TECO: Nová verze Mosaicu 2015.4
 Bude Mosaic možné provozovat v prostředí Linux?
 Jak zabranit restartu Windows 10 64 build 10656 po zasunuti HW klice?
 Jak zvysit pocet svetel v LightsLib?
 Poskytne někdo jednoduché programy pro Tecomat?
 Kdo mi naprogramuje v Praze PLC Tecomat?
 Prečo od 24.3.2016 nefunguje komunikácia so serverom YahooWeather?
 Ako rozbehat CP-1000KEY2-01+Mosaic z různých komponent?
 Jaký je rozdíl v licencích na Mosaic?
 Ako aktivovať podsvietenie ID-31 pri zobrazení alarmu?
 Lze provozovat Mosaic na Windows server 2008/2012?
 Jak spravne nastavit kanal komunikace GSMLib?
 Proč Mosaic neukazuje v datové struktuře pro modul C-RQ-0600 hodnotu pro CO2?
 Jak simulovat přítomnost osob v MOSAIC?
 Lze do vlastní knihovny zahrnout POU "Program"?
 Jak vyřešit komunikaci GSM UC-1205 s CP-1001 připojenou na kanálu CH1 RS232?
 Existují knihovny pro řízení krokového motoru pro Foxtrot 1003?
 Potřebuji HW klíč když chci komunikovat přes ethernet v režimu UNI?
 Lze nejak zjistit, ze modul na R-Fox poslal novou hodnotu?
 Jakým způsobem se dá provádět zápis do proměnné v jazyce ST?
 Jak vytvořit set/reset proměnné v CFC?
 Jak v Mosaicu adresovat proměnné tak, aby panel Weintek s PLC komunikoval?
 Ako do podadresara v korenovom www zapisovat z vonka z PC?
 Lze u modulu C-IB-1800M nastavit úrovně vyhodnocení?
 Lze u modulu C-IB-1800M vyčíst hodnotu odporu smyčky?
 Jak přecházet pomocí stavu proměnné mezi stránkami - WebMaker?
 Jaké je správné vyhodnocení funkce "real_to_string()"?
 TECO vydalo novou verzi Mosaic 2018.2
 Jak "odchytit" stlačení tlačítka pro odeslání?
 Lze v mosaicu zakázat optimalizaci uživ. registrů? Či jiné řešení problému?
 Ako správne nastaviť a skompilovať Dataloger?
 Jak kombinovat program v .CFC s programem v .ST ?
 Jak ve Webmakeru vnořit do sebe dvě pole?
 Lze ve webmakeru vytvořit slidovací prvky? šoupátka pro ID 31-36?
 Jak je to s omezeními Mosaic Lite? Jsou zde rozdíly v kombinaci s Foxtrot 2?
 Jak lze v Mosaicu redefinovat promene?
 Jak rozchodit v Mosaicu synchronizaci času PLC přes NTP server??
 Jak se řeší v Mosaicu proporcionální řízení hlavice C-HC-0201F-E?
 Jak se vzdáleně připojit na PLC přes veřejnou IP?
 Jak odstranit error ID20 na YahooWeather?
 Existuje firma / programátor u koho lze objednat programování TECO?
 Je mozne u FB pouzit ve VAR_INPUT promenou typu ARRAY?
 Proč Mosaic ztrácí spojení s Foxtrotem v gigabit LAN na které běží streamování?
 Jak proměnné uložit do paměti PLC, změnit a obnovit?
 Jak udělat ve WebMakeru prohlížeč alarmů?
 Jak konvertovat ascii code znaku na string?
 Jak převést ascii cód znaku v usint na string ?
 Jak u MOSAIC funguje stažení programu z PLC?
 Jak odesílat data přes JSON nebo XML z Arduina nebo ESP32 na Foxtrot?
 Ako z prostredia Mosaic interpretovať namerané dáta online?
 Jak v Mosaicu počítat počet sepnutí výstupu?
 Dá se někde reportovat chyba v Mosaicu?
 Je možné sloučení projektu v PLC a Mosaic?

Příbuzné diskuse a články z Kutil.elektrika.cz

Aktuální slova (1)



Poháněno MySQL Poháněno PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines Validní XHTML 1.0! Validní CSS!
+420 910 100 100
Stránka vytvořena za 0.06 sekund, 23 dotazů.