Przycisk jednostanowy

Główne forum techniczne dla dyskusji dotyczących problemów przy wytwarzaniu aplikacji PROMOTIC oraz sposobach ich rozwiązania.

Przycisk jednostanowy

Postby TJ_ZEIP » Sat 06. Apr 2013 21:10:44

Witam serdecznie
Proszę o podpowiedź na przykładzie np. S7-300. A więc chcę jednym przyciskiem zrobić "RST" markera np. M0.1. Jeśli chodzi o dwustanowy to nie mam problemu bo w "PmiButtonTwo" jest opcja: "Stan Przycisku" w którą wpisujemy zmienną którą chcemy sterować. Ja potrzebuję umieścić przycisk jednostanowy i tu mam problem gdzie wstawić zmienną aby jednym kliknięciem zrobić właśnie ten reset.
Pozdrawiam i z góry dziękuję za pomoc.
TJ_ZEIP
 
Posts: 4
Joined: Sat 06. Apr 2013 20:51:18

Re: Przycisk jednostanowy

Postby Kazimierz Heczko » Mon 08. Apr 2013 17:50:19

Witam
W tym przypadku jest już konieczne pisanie skryptu. W tym przypadku należy w zdarzeniu OnButtonUp danego przycisku ustawić wartość wymaganej danej na 0 np. w następujący sposób:
Code: Select all
pMe.PmPanel.Pm("/S7_1200/Data/#vars/M_0_1").Value = 0

Powyższy przykład będzie jednak działać tylko w aplikacji lokalnej, nie w aplikacji WEBowej.
Aby wszystko działało również w WEB aplikacji należy wytworzyć metodę danego panelu, która wykona wyżej wymieniony skrypt i taką metodę można uruchomić w skrypcie przycisku. Ten mechanizm funkcjonuje zarówno w aplikacji lokalnej jak również w WEB aplikacji.
Kazimierz Heczko
 
Posts: 69
Joined: Thu 13. Dec 2012 9:28:56

Re: Przycisk jednostanowy

Postby TJ_ZEIP » Mon 08. Apr 2013 21:27:45

I o to mi chodziło, już działa :D . Serdecznie dziękuje za pomoc.
Wszystkiego dobrego życzę i pozdrawiam.
TJ_ZEIP
 
Posts: 4
Joined: Sat 06. Apr 2013 20:51:18

Re: Przycisk jednostanowy

Postby rambus_100lica@o2.pl » Thu 27. Nov 2014 2:19:29

Witam,

Interesuje mnie zapisanie wartości rejestru nazwanego Rol_Kuchnia za pomocą przycisku jednostanowego za pośrednictwem WEB aplikacji
próbowałem dodać metodę zarówno w pmroot jak i w panelu
Pm("/NadSwidrem/Salon/Dane").Item("Rol_Kuchnia") = 0

i wywołać z poziomu przycisku poprzez zdarzenie onMousePress - pMe.PmPanel.Methods.roleta0()

Niestety działa jedynie za pomocą panelu aplikacji lokalnej


Będę wdzięczny za podpowiedź
rambus_100lica@o2.pl
 
Posts: 1
Joined: Thu 27. Nov 2014 2:06:18

Re: Przycisk jednostanowy

Postby Kazimierz Heczko » Wed 22. Jul 2015 10:02:32

Witam,

w Pana przypadku zalecam sprawdzenie, czy dany panel jest udostępniony do WEB-u (zakładam że jest) oraz jaki język skryptów jest ustawiony w tym panelu.
Kolejnym problemem mogą być uprawnienia do wykonywania metod i/lub uprawnienia do odczytu/zapisu z WEB-u.
W przypadku zdarzenia onMousePress zalecam również sprawdzanie, do jakiej czynności doszło, patrz przykład w opisie zdarzenia onMousePress:

http://www.promotic.eu/pl/pmdoc/Objects/GraphicObjects/PmiItem/Event/onMousePress.htm

Pozdrawiam
Kazimierz Heczko
 
Posts: 69
Joined: Thu 13. Dec 2012 9:28:56

Re: Przycisk jednostanowy

Postby kOOyOOte » Thu 17. Mar 2016 15:23:53

Witam
Mam problem z zapisywaniem wartości zmiennej (Protokół Modbus) za pomocą przycisku jednostanowego.
W obiekcie przycisku w zakładce Zdarzenia dodałem wpis: pMe.PmPanel.Pm("/CommModbus/Comm/Data/#vars/iReset").value = 1.
Po uruchomieniu aplikacji wartość nie zmienia się, a w oknie Info System Errors -> Scripts wyświetla się informacja "Obiekt nie obsługuje tej właściwości lub metody".
Z góry dziękuję za pomoc
Pozdrawiam
kOOyOOte
 
Posts: 1
Joined: Thu 17. Mar 2016 14:50:13

Re: Przycisk jednostanowy

Postby Kazimierz Heczko » Tue 22. Mar 2016 10:30:18

Witam,
zapisywanie w ten sposób wartości do danych w edytorze aplikacji może działać tylko w przypadku, kiedy dany panel jest w trybie języka VBScript i do tego tylko w aplikacji lokalnej.
Czyli jeżeli panel jest przełączony do trybu języka JavaScript, to ten zapis nie będzie działać.
Rozwiązaniem jest wytworzenie własnej metody panelu (obiektu PmPanel), która może wykonać zapis do zmiennych aplikacji ponieważ jest wykonywana na serwerze. I taka metoda będzie zawsze napisana w języku VBScript bez względu na to, jaki język skryptów ma dany panel wybrany. Ów tryb dotyczy bowiem tylko zawartości danego panelu, czyli tego, co jest wytwarzane w edytorze paneli graficznych - skrypty w elementach graficznych są wykonywane po stronie klienta.
Po wytworzeniu metody obiektu PmPanel należy taką metodę tylko wywołać z dowolnego elementu graficznego w danym panelu przy pomocy zapisu:
Code: Select all
res = pMe.PmPanel.Methods.NazwaMetody(par1, par2)

Oczywiście metoda nie musi posiadać żadnych parametrów jak również nie musi zwracać żadnego rezultatu, podany przykład należy w takich wypadkach dostosować do danej metody.
Pozdrawiam
Kazimierz Heczko
 
Posts: 69
Joined: Thu 13. Dec 2012 9:28:56


Return to Nie wiem jak zrobić...

Who is online

Users browsing this forum: No registered users and 4 guests