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.