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

Codesys - timery - odpowiednie wykorzystanie

30 Lis 2012 11:31 1833 6
  • Poziom 9  
    WItam, dopiero uczę się korzystać z Codesys. Mam napisać prosty program z wykorzystaniem timerów. Pare zadanych programów już zrobiłem jednak napotkałem na przeszkodę, której nie potrafię przejść. Otóz w odpowiedzi na sygnał I1 pojawia się sygnał Q1 w taki sposób:
    i1:0011111111110000
    q1:001101100000000

    jedno 0 - to stan niski trwający 1 sekundę, analogicznie 1 to sygnał wysoki trwający 1 sekundę.

    Początek q1 zrobiłem za pomocą timera tp ustawionego na czas wyłaczenia 2sekundy, jednak nie potrafię potem po sekundzie stanu niskiego wrócić na stan wysoki.

    Prosiłbym o jakieś porady, nakierunkowanie, nie podanie na tacy wszystkiego.

    Z góry dziękuję za pomoc.
    Pozdrawiam
  • Specjalista Automatyk
    Tak na pierwszy rzut oka to można by spróbować rozwiązać to za pomocą timerów TON oraz TOF.

    TON może dawać przez 1s stan niski
    TOF po pojawieniu się 1 na wejściu będzie ją podtrzymywać przez 1s po jej zniknięciu
  • Poziom 9  
    Właśnie ten TON wszystko mi psuje, ponieważ jak zadam stan wysoki to Q1 ma być od razu w stanie wysokim i trwać przez 2 sekundy a TON to opóźnia i Q1 nie jest od razu w stanie wysokim.

    Próbowałem tak:
    na początek TP które będzie trwało 2 sekundy w stanie wysokim i za tym TON, który by przetrzymał przez sekundę stan niski i wskoczył na wysoki i znów TP, które będzie trwać 2 sekundy. Ten TON wszystko psuje.
  • Specjalista Automatyk
    Na początek użyj 2 razy TON będzie ci trzymać dwa razy po 1 s na wyjściu 0. A później TOF który odrazu da tobie 1 i przytrzyma wysoką 1 przez 1s po zniknięciu wejścia.
  • Poziom 9  
    i1:0011111111110000
    q1:001101100000000

    Te dwa zera na początku oznaczają chyba, że jak nie zadaje sygnału wysokiego to jest na wyjściu sygnał niski, a wszystko zaczyna się dopiero jak dam sygnał wysoki.

    Czy jest różnica czy dam 2x TON po 1s, czy dam jeden TON po 2s?

    To co napisałeś chyba niewiele zdziała, ponieważ TON zadziała dopiero jak dostanie wysoki sygnał czyli w 3. sekundzie (i1:0011111111110000). Czyli jeśli dobrze Ciebie zrozumiałem po dwóch sekundach początkowych stanu niskiego dwa TONy odliczałyby po 1s aż się załączą, zatem na wyjściu Q1 miałbym przez pierwsze 4 sekundy stan niski.

    Dziękuję za próbę pomocy i proszę o jeszcze :)
  • Pomocny post
    Specjalista Automatyk
    Nie do końca rozumiem czemu miałoby służyć to zadanie ale ok.
    Mi chodziło o coś takiego

    1) Jeżeli 0 na wejściu i 0 na wyjściu przez 1 s
    ---|/|[I]-----|/|[TON.Q]----[bloczek timera TON 1s]
    ---| |[TON.Q]----()[Q]
    Czyli jeżeli mamy 0 na wejściu przez 1s mamy 0 na wyjściu

    2) Jeżeli 1 na wejściu i 1 na wyjściu przez 1 s
    ---| |[I]-----| |[TOF.Q]----[bloczek timera TOF 1s]
    ---| |[TOF.Q]-----()[Q]

    3)Jeżeli 1 na wejściu i 0 na wyjściu przez 1 s
    ---| |[I]-----|/|[TON.Q]----[bloczek timera TON 1s]
    ---| |[TON.Q]----()[Q]


    Trzeba to by jakoś ładnie ułożyć w sekwencje. Nie rozwiązuje tobie zadania tylko podrzucam pomysł na zastosowanie podstawowych timerów.
  • Poziom 9  
    Pokombinowałem trochę i rozwiązałem zadanie, podłączyłem dwa TP równolegle i do jednego z TP dorzuciłem TON :)

    Tylko teraz kolejny problem:
    i1: 001111111xx1110000000000000
    q4:000000000xx0001110000000000

    Czyli q4 ma się załączyć po tym jak wyłączę I1...