Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

ABB wyświetlanie błędu po przekroczeniu czasu oczekiwania na sygnał

DZWILU88 15 Mar 2019 11:15 87 3
  • #1 15 Mar 2019 11:15
    DZWILU88
    Poziom 13  

    Cześć, w jaki sposób mogę rozdzielić sygnały :
    - e_py_1_schowane
    - e_py_2_schowane
    - e_py_1_wysuniete
    Są to sygnały z siłowników, jeżeli któregoś nie mam przez czas dłuższy niż 2 sekundy, to jest alarm.

    W tej chwili mam alarm zbiorczy i nie wiem na który sygnał czekałem , a nie chce pisać trzech oddzielnych procedur. Da się jakoś rozdzielić alarm dla każdego sygnału osobno

    PROC Otwieranie_blokady_1 ()
    Reset s_Fermer_Pince1;
    Set s_Ouvrir_Pince1;
    WaitUntil e_py_1_schowane=1 AND e_py_1_wysuniete=0 \MaxTime:=2;
    Reset s_defaut_Robot;
    ERROR
    IF ERRNO=ERR_WAIT_MAXTIME THEN
    TPErase;
    TPWrite " BLAD OTWARCIA BLOKAD ";
    TPWrite " SPRAWDZ CZY, e_py_1_schowane=1 ";
    TPWrite " LUB ";
    TPWrite " SPRAWDZ CZY, e_py_2_schowane=1 ";
    TPWrite " LUB ";
    TPWrite " SPRAWDZ CZY, e_py_1_wysuniete=0 ";
    TPWrite " Lub brak sprezonwgo powietrza w sieci";
    Set s_defaut_Robot;
    TPReadFK reg1,"Sprawdz szczypce 1 : ?","","","","","Ok";
    RETRY;
    ENDIF
    !
    ENDPROC

    Tak jest ładniej :))))
    ABB wyświetlanie błędu po przekroczeniu czasu oczekiwania na sygnał

    0 3
  • #2 15 Mar 2019 20:06
    Radzio M.
    Poziom 33  

    Do każdego timeout-u możesz przypisać określone ID używając IF-ELSIF-ELSE.
    Np.
    IF e_py_1_schowane_timeout THEN
    timeout_ID = 1;
    ELSIF e_py_2_schowane_timeout THEN
    timeout_ID = 2;
    ELSIF e_py_1_wysuniete_timeout THEN
    timeout_ID
    ELSIF presostat_timeout THEN
    timeout_ID = 100;
    END_IF


    Później zrób instrukcję CASE i w zależności od ID wyświetlasz odpowiedni komunikat.

    0
  • #3 18 Mar 2019 06:52
    DZWILU88
    Poziom 13  

    Mógłbyś mi jeden przykładzik zrobić

    0
  • #4 18 Mar 2019 14:51
    Radzio M.
    Poziom 33  

    Przykład jest wyżej, w instrukcji CASE lub SELECT, nie mam pojęcia jaką masz tam dostępną, zrobisz wyświetlenie komunikatu w zależności od ID, np.
    CASE timeout_ID OF
    1: komunikat := "Blad nr 1";
    1: komunikat := "Blad nr 2";
    1: komunikat := "Blad nr 3";
    END_CASE

    0