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

Siemens Simatic zliczanie impulsów

gregordabrowski 07 Gru 2009 12:49 3539 10
  • Poziom 2  
    WITAM wszystkich forumowiczów

    Od niedawna zaczełem się zaajmować programowaniem sterowników PLC typu siemens simatic . Ostanio napotkałem problem w którym musze napisać program w którym muszę kontrolować prędkość elementu wirującego (zastosowany jest czujnik indukcyjny dający impulsy 24V) . Wiem że muszę zliczać te impulsy w bloku np OB35 (przerwanie 1000ms) ale niewiem jak to zrobić programowo. wiem że muszę użyć licznika zliczjącego i ressetować go po każdym przerwaniu ale jak dokładnie to niewiem. Będę wdzięczny za odpowiedz
  • SterControl
  • Poziom 32  
    Nie wiem w jaki sposób programujesz ale programując blokowo wstawiając jeden licznik i parę styków na odpowiednim wyjściu możesz to zrealizować
  • SterControl
  • Poziom 12  
    Podpinasz czujnik pod szybkie wejście i podajesz wejście na licznik jakiś C w zwykłym cyklu programu (pamiętaj by cykl programu nie był dłuższy od okresu impulsu z czujnika bo będziesz gubił impulsy). W OB 35 musisz tę wartość odczytać i przeskalować do żądanej wielkości fizycznej, normalnie będziesz miał imp/s. Jeśli chcesz na minutę, to razy 60. I na koniec w bloku OB 35 zeruj ten licznik. Wot i wsjo.
    Jak chcesz dokładniej, to musisz zastosować szybkie wejście licznikowe i specjalny do tego bloczek.
  • Poziom 2  
    wszystko ok wstawiam licznik w OB1 zliczam te impulsy ale gdzie zapisywać tą wartość do pamięci i potem jak ten licznik zerować . Kolego Krzysztofie jesli byś wytłumaczył kroczek po kroczku bedę wdzięczny
  • Poziom 12  
    Na przykład w OB1:
    A I0.0 \\ czujnik
    FP M0.0 \\ Flaga pomocnicza zbocze narastające
    JNB M001 \\ Skok do etykiety jeśli RLO =0
    L 1 \\ ładuj wartość jeden
    L MW10 \\ wartość zliczana np. w słowie MW
    +I \\ dodajemy
    T MW10 \\ zwiększamy wartość licznika o 1
    M001: NOP 0 \\ Napiszesz to STL. Jak zrobisz to dobrze to w LAD będzie to również przedstawiać.

    W OB35 piszesz:
    L MW 10 \\ czytaj wartość licznika
    T MW 12 \\ zapamiętaj w MW 12 i tu masz wartość bieżącą impulsów na sekundę
    L 0 \\ ładuj zero
    T MW10 \\ zerowanie licznika

    I to wszystko. W MW 12 masz wartość imp/s, musisz to jeszcze sobie przeliczyć na żądaną jednostkę.

    To jest tylko jeden ze sposobów.
    Pozdrawiam
  • Poziom 2  
    dzieki Krzysztof to bardzo dużo. Niewiem czy mogę to zrobić w ob1 ponieważ wykorzystuje w nim czasówki i czas trwania bedzie dłuższy o wiele niż czas trwania impulsu. Jesli mógłbyś cos poradzic tylko o ile możesz w LAD albo FB
  • Poziom 12  
    To nie ma nic do rzeczy. Sprawdź czas trwania cyklu procesora, będzie prawdopodobniej poniżej 1 ms. Jeśli tak, to program biędzie mógł odczytać powyżej 1000 impulsów. Tylko problem będzie gdzie indziej, a mianowicie ważne jest jak szybkie jest wejście cyfrowe i jak szybki jest czujnik. Musisz to wszystko podsumować i obliczyć ewentualnu błąd pomiaru.
  • Poziom 2  
    AHA czyli jeżeli to co napisałes zapisze to powinno zliczać te impulsy a co do czujnika te impulsy bedą zliczane powoli ponieważ bęben nie kręci się tak szybko
  • Poziom 12  
    Program będzie działał jeśli też sygnał nie będzie zbyt wolny. Musisz sobie to policzyć, jakiej ilości impulsów się spodziewać. Jeśli impils z czujnika będzie co ok 1 s, to pomiar będzie bzdurny. W takim przypadku należy powielić liczbę impulsów montując tzw koło pomiarowe. Na kole instaluje się podziałkę wykonano z metalowych elementów (np. śruby wkręcone w ternamidowe koło) Podziałkę dopasowuje się do żądanej ilości otrzymywanych impulsów. Zamontowany czujnik będzie w takim wypadku czytał kilka impulsów na jeden obrót. Dodatkowo w programie możesz czytać wartość liczonych impulsów i kasować licznik nie co 1s, tylko np. co 3 lub 5s. Pomiar będzie opóźniony ale bardziej dokładny.
  • Użytkownik usunął konto  
  • Poziom 10  
    Jeżeli chcesz kontrolować obroty na np. bębnie taśmy to obroty nie są zbyt duże. Możesz to zrobić na jednym zegarze. Gdy urządzenie rusza (Q0.0) uruchamia czas (T1) a impulsy z czujnika (I0.0) kasują go . Jeżeli czas między impulsami jest większy od czasu nastawionego to ustawia się wyjście zegara i można użyć ten sygnał jako awaria taśmy. Programik można przekonwertować na LAD.
    A Q 0.0
    L S5T#1S
    SD T 1
    A(
    A I 0.0
    FP M 0.0
    ON Q 0.0
    )
    R T 1
    NOP 0
    NOP 0
    NOP 0