Jak změnit konstantu LONG_CLICK_TIME v Mosaicu?

(1/1)

pavka_O:

Používám fbSimplebutton z knihovny lightslib jak lze změnit konstantu LONG_CLICK_TIM E pro dlouhý stisk, defaultně je nastavena na 500ms a chtěl bych ji prodloužit na 1s.

Milan Bydžovský:
Pokud používáte LightLib16 nebo  LightLib32 je tato konstanta pevně daná.
Možnosti jsou dvě, buď použít MJF knihovnu  LightLib, kde je možnost (nutnost) tyto konstanty nastavit (viz nápověda ke knihovně LightsLib). Nebo použít vlastní blok následujícího znění:

Kód:

FUNCTION_BLOCK fbMySimpleButton
  VAR_INPUT
    in        : BOOL;      // vstup
  END_VAR
  VAR_OUTPUT
    out       : BOOL;      // kopie vstupu
    click     : BOOL;      // kratky stisk
    press     : BOOL;      // dlouhy stisk
  END_VAR
  VAR
    in_Ftrig  : F_TRIG;
    in_ton    : TON;
  END_VAR

  out := in;                                        // prosta kopie vstupu
  in_Ftrig(CLK := in);                              // sestupna hrana na vstupu
  click := in_Ftrig.Q AND NOT press;                // kratky stisk
  in_ton( IN := in, PT := T#1s, Q => press);  // dlouhy stisk
END_FUNCTION_BLOCK

Lukáš Klauda:
v CFC používám tuto konstrukci:

Milan Bydžovský:
Citace: Lukáš Klauda  04.04.2014, 09:33

v CFC používám tuto konstrukci:


To je také řešení, dokonce nemusíte za blokem TON použít ten AND s výstupem Out.

Určitě bych doporučil zvláště pro větší instalace, použít upravený blok  viz můj příspěvek výše.

Navigace

[0] Index zpráv