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

S7-300 - Wykrycie zbocza narastającego

21 Cze 2013 09:17 2712 2
  • Poziom 15  
    Witam,
    Mam pytanie odnośnie wykrycia zbocza narastającego w Step 7. Jak zachowają się bity M400.0 i M400.1 w poniższym przykładzie gdy pojawi się sygnał na wejściu #ON?

    S7-300 - Wykrycie zbocza narastającego

    Wydaje mi się że powyższe zapisy są tożsame. Mylę się?
  • SterControl
  • Poziom 12  
    W instrukcji S7-300 jest napisane:

    Instrukcja P:
    The Positive RLO Edge Detection instruction detects a change from 0 to 1 (rising edge) at the
    specified address and indicates this with an RLO of 1 after the instruction. The current signal state at
    the RLO is compared with the signal state of the address (the edge memory bit). If the signal state of
    the address is 0 and the RLO is 1 before the instruction, the RLO will be 1 (pulse) after the instruction,
    in all other cases the RLO is 0. The RLO prior to the instruction is stored in the address.

    Instrukcja POS:
    Description
    The Address Positive Edge Detection instruction compares the signal state of <address1> with the
    signal state of the previous signal check that is stored in the parameter M_BIT. If there has been a
    change from 0 to 1, output Q has the value 1, in all other cases it has the value 0.

    Działanie kodu:
    start programu cyklu
    #ON=0 i #pom1_s=0 (nie jakie masz wartości inicjalizacyjne, założyłem że 0)

    Jak #ON=0 i #pom1_s=0 to M400.0 będzie 0

    przechodzimy do drugiej linii
    ponieważ #ON jest 0 więc #pom1_s=0 i M400.1 będzie 0

    czyli kawałek kodu nie robi praktycznie nic, chyba że gdzieś indziej jest nadpisywana #pom1_s

    działanie obu linii nie jest tożsame, zmienna M_BIT jest pamięcią stanu poprzedniego, nie powinieneś jej używać jako zmiennej do -(P)-



    Zbiór instrukcji:
    http://www.automation.siemens.com/doconweb/pdf/SINUMERIK_SINAMICS_02_2012_E/S7_FUP.pdf
  • SterControl
  • Poziom 15  
    W kodzie jest mały błąd: aby porównać jak się zachowają obie te linijki po podaniu zbocza narastającego na wejściu #ON, w drugiej gałęzi musi być inna zmienna pomocnicza np pom_2 (zamiast pom_1).

    Sprawdziłem na symulatorze:
    Gdy #ON=0 to pom_1=0 i pom_2=0 oraz M400.0=0 i M400.1=0

    Gdy na #ON pojawi się zbocze narastające #ON=0->1 wówczas pom_1=1 i pom_2=1 a na bitach M400.0 i M400.1 generowany jest impuls o czasie trwania jednego skanu.

    Obie linie wydają się być tożsame...

    Można te impulsy wykorzystać do identyfikacji zbocza na jakimś wejściu. Jaka jest więc różnica pomiędzy zastosowaniem funkcji POS i szeregowym połączeniem cewki -| | i -(P) ? Czy jest jakaś różnica?