eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika › PLC - hazardy w jezyku drabinkowy
Ilość wypowiedzi w tym wątku: 22

  • 1. Data: 2010-09-27 09:28:17
    Temat: PLC - hazardy w jezyku drabinkowy
    Od: "J.F." <j...@p...onet.pl>


    Ponoc jezyk drabinkowy doczekal sie normy, a ja czytam sobie
    materialy od unitronicsa .. i paru rzeczy zapomnieli napisac :-)

    Poszczegolne "linie" sa wykonywane kolejno ? jest to zagwarantowane
    ?

    A i tak widze mozliwy hazard w jednej "linii", np

    --|B1|--*---(S2)----(R1)---
    |
    |
    ---(S3)---(S4)--(S5)---


    jak bit1 jest ustawiony, to zalaczamy bit2, potem (?) resetujemy
    bit1,

    Czyli bit1 mignie tylko chwile. Ustawia sie bity 3, 4, 5, czy nie
    zdaza ?

    Bardziej mnie interesuja inne bloki funkcyjne, gdzie jest wejscie
    EN i wyjscie(?) ENO, domyslam sie ze sluzy wlasnie do ustalenia
    kolejnosci .. ale zapomnieli tego napisac :-)

    --
    J.


  • 2. Data: 2010-09-27 10:56:19
    Temat: Re: PLC - hazardy w jezyku drabinkowy
    Od: Miłosz Skowyra <m...@w...epf.pl>

    W dniu 2010-09-27 10:28, J.F. pisze:
    >
    > Ponoc jezyk drabinkowy doczekal sie normy, a ja czytam sobie materialy
    > od unitronicsa .. i paru rzeczy zapomnieli napisac :-)
    >
    > Poszczegolne "linie" sa wykonywane kolejno ? jest to zagwarantowane ?
    >
    > A i tak widze mozliwy hazard w jednej "linii", np
    >
    > --|B1|--*---(S2)----(R1)---
    > |
    > |
    > ---(S3)---(S4)--(S5)---
    > jak bit1 jest ustawiony, to zalaczamy bit2, potem (?) resetujemy bit1,
    > Czyli bit1 mignie tylko chwile. Ustawia sie bity 3, 4, 5, czy nie zdaza ?


    Tak bardzo skrótowo i ogólnie...
    Wyobraź sobie że operujesz na pamięci nie na wejściach i wyjściach.
    Znane mi PLCki mają niejako 3 fazy obróbki danych (które składają się na
    jeden cykl wykonawczy).
    1 - Zeskanowanie stanu wejść do pamięci
    2 - Obróbka danych w pamięci na podstawie drabinki (od góry w dół, od
    lewa do prawa)
    3 - Ustawienie wyjść na podstawie pamięci.

    Czyli to co ustawisz w danym cyklu na wyjściu pojawi się dopiero w
    następnym cyklu jeśli odczytasz to na wejściu...

    Dla Twojego przykładu (o ile B1 będzie zanegowane czyli -|\B1|-) to
    będzie tak że w pierwszym cyklu:
    Jeżeli B1 = 0 to ustawi S2 = 1 R1 = 1
    w kolejnej drabince ustawi S3 = 1 S4 = 1 S5 = 1
    Wypchnie dane na wyjście.
    W kolejnym cyklu:
    Ponieważ B1 = 1 to S2 = 0, R1 = 0
    S3 = 0 S4 = 0 S5 = 0
    Wypchnie dane na wyjście
    W kolejnym cyklu powtórzy od początku i będzie tak machał z
    częstotliwością wykonywania cykli.

    Poza tym wydaje mi się że wyjścia nie powinny być łączone szeregowo
    tylko równolegle, przynajmniej zawsze tak robiłem.
    Trochę dawno temu miałem kontakt z drabinkami i PLC ale na 80% wydaje mi
    się że napisałem dobrze. Niech mnie ktoś potwierdzi lub poprawi.
    Poza tym pamiętam że na stronie Alan i Bradley mieli całe oprogramowanie
    z symulatorem parę lat temu.

    --
    Pozdrawiam Miłosz.


  • 3. Data: 2010-09-27 12:37:07
    Temat: Re: PLC - hazardy w jezyku drabinkowy
    Od: Mario <m...@p...onet.pl>

    W dniu 2010-09-27 12:56, Miłosz Skowyra pisze:
    > W dniu 2010-09-27 10:28, J.F. pisze:
    >>
    >> Ponoc jezyk drabinkowy doczekal sie normy, a ja czytam sobie materialy
    >> od unitronicsa .. i paru rzeczy zapomnieli napisac :-)
    >>
    >> Poszczegolne "linie" sa wykonywane kolejno ? jest to zagwarantowane ?
    >>
    >> A i tak widze mozliwy hazard w jednej "linii", np
    >>
    >> --|B1|--*---(S2)----(R1)---
    >> |
    >> |
    >> ---(S3)---(S4)--(S5)---
    >> jak bit1 jest ustawiony, to zalaczamy bit2, potem (?) resetujemy bit1,
    >> Czyli bit1 mignie tylko chwile. Ustawia sie bity 3, 4, 5, czy nie zdaza ?
    >
    >
    > Tak bardzo skrótowo i ogólnie...
    > Wyobraź sobie że operujesz na pamięci nie na wejściach i wyjściach.
    > Znane mi PLCki mają niejako 3 fazy obróbki danych (które składają się na
    > jeden cykl wykonawczy).
    > 1 - Zeskanowanie stanu wejść do pamięci
    > 2 - Obróbka danych w pamięci na podstawie drabinki (od góry w dół, od
    > lewa do prawa)
    > 3 - Ustawienie wyjść na podstawie pamięci.

    W sumie to on chyba ma na myśli komórki pamięci/markery a nie I/O. Na
    komórkach możesz działać i zmienia ci natychmiast (?). Swoją drogą po co
    pisać tak żeby prosić się o kłopoty. Mógł przecież stanem bitu 1
    poustawiać wszystkie inne a dopiero później go skasować.


    --
    Pozdrawiam
    MD


  • 4. Data: 2010-09-27 12:59:53
    Temat: Re: PLC - hazardy w jezyku drabinkowy
    Od: "J.F." <j...@p...onet.pl>

    Użytkownik "Miłosz Skowyra" <m...@w...epf.pl> napisał
    >W dniu 2010-09-27 10:28, J.F. pisze:
    >> A i tak widze mozliwy hazard w jednej "linii", np
    >> --|B1|--*---(S2)----(R1)---
    >> |
    >> |
    >> ---(S3)---(S4)--(S5)---
    >> jak bit1 jest ustawiony, to zalaczamy bit2, potem (?) resetujemy
    >> bit1,
    >> Czyli bit1 mignie tylko chwile. Ustawia sie bity 3, 4, 5, czy
    >> nie zdaza ?
    >
    > Tak bardzo skrótowo i ogólnie...
    > Wyobraź sobie że operujesz na pamięci nie na wejściach i
    > wyjściach.

    Akurat mialem na mysli wlasnie operowanie na pamieci [MB]
    S i R - set i reset

    > Dla Twojego przykładu (o ile B1 będzie zanegowane czyli -|\B1|-)
    > to

    Nie, ma wlasnie byc niezanegowane. Jesli bit 1 jest ustawiony - to
    go skasuj.
    Ale zrob tez cos wiecej.

    Ustawianie jest w innym miejscu.

    Choc oczywiscie moglbym zrobic buzzer
    --|\B1|--*---(S2)----(B1)---

    i tez sie pytac co wtedy :-)

    > Poza tym wydaje mi się że wyjścia nie powinny być łączone
    > szeregowo tylko równolegle, przynajmniej zawsze tak robiłem.

    Rozsadnie - ale w przykladach maja szeregowo.
    Poza tym wlasciwie to pytanie pozostaje - polacze powiedzmy
    --|B1|--*---(S2)--
    *--(S3)---
    *--(R1)---
    *--(S4)---

    i co z tego wyjdzie ?

    Wlasciwie to mnie interesuja funkcyjne, gdzie jest niby jakies
    wejscie/wyjscie sterujace.

    > Poza tym pamiętam że na stronie Alan i Bradley mieli całe
    > oprogramowanie z symulatorem parę lat temu.

    Bardziej mnie interesuje co norma na to, bo jesli nic ... no to
    chyba najlepiej unikac hazardow podwojnie :-)

    J.


  • 5. Data: 2010-09-27 13:50:03
    Temat: Re: PLC - hazardy w jezyku drabinkowy
    Od: Miłosz Skowyra <m...@w...epf.pl>

    W dniu 2010-09-27 13:59, J.F. pisze:

    [...]
    > Bardziej mnie interesuje co norma na to, bo jesli nic ... no to chyba
    > najlepiej unikac hazardow podwojnie :-)

    Niestety... dalej nie pomogę. Pamięć nie ta ;(

    --
    Pozdrawiam Miłosz.


  • 6. Data: 2010-09-27 15:05:13
    Temat: Re: PLC - hazardy w jezyku drabinkowy
    Od: "Desoft" <N...@i...pl>

    > Poszczegolne "linie" sa wykonywane kolejno ? jest to zagwarantowane ?

    Nie, jest to wymuszone. Sterownik nie jest w stanie uruchomić tylu wątków
    jednocześnie, aby przetworzyć każdy szczebel LD w tym samym czasie.
    Dlatego robi to sekwenycjnie.

    >
    > A i tak widze mozliwy hazard w jednej "linii", np
    >
    > --|B1|--*---(S2)----(R1)---
    > |
    > |
    > ---(S3)---(S4)--(S5)---
    >

    Co nazywasz hazardem? nie widzę tutaj stanów niedozwolonych.

    --| Not S1 |--(Q1)--
    Czy tutaj jest hazard?
    Brzęczący przekaźnik nie jest hazardem, a raczej dobrym odwzorowaniem
    rzeczywistości: identycznie zachowa się prawdziwy przekaźnik.

    > jak bit1 jest ustawiony, to zalaczamy bit2, potem (?) resetujemy bit1,

    Tak, dokładnie.

    > Czyli bit1 mignie tylko chwile.

    Nie, bit1 zgaśnie dopiero w następnym cyklu

    >Ustawia sie bity 3, 4, 5, czy nie zdaza ?

    Zdążą.
    Wszystkie wejścia czytane są przed rozpoczęciem cyklu, Dane wejściowe danej
    linii nie są aktualizowane w czasie wyliczania tej linii. Dane wyjściowe
    aktualizowane są po zakończeniu cyklu.
    Jeżeli w pascalu napiszesz a := not a to program się zawiesi?
    przecież po wykonaniu linii a, jest not a, więc wejściowe a nie jest a tylko
    not a, ale wcześniej było a, czyli teraz powinno być a czy not a ? :-)))))

    --
    Desoft


  • 7. Data: 2010-09-27 15:08:06
    Temat: Re: PLC - hazardy w jezyku drabinkowy
    Od: Andrzej <w...@w...pl>

    W dniu 2010-09-27 14:59, J.F. pisze:
    > Użytkownik "Miłosz Skowyra" <m...@w...epf.pl> napisał
    >> W dniu 2010-09-27 10:28, J.F. pisze:
    >>> A i tak widze mozliwy hazard w jednej "linii", np
    >>> --|B1|--*---(S2)----(R1)---
    >>> |
    >>> |
    >>> ---(S3)---(S4)--(S5)---
    >>> jak bit1 jest ustawiony, to zalaczamy bit2, potem (?) resetujemy bit1,
    >>> Czyli bit1 mignie tylko chwile. Ustawia sie bity 3, 4, 5, czy nie
    >>> zdaza ?
    >>
    >> Tak bardzo skrótowo i ogólnie...
    >> Wyobraź sobie że operujesz na pamięci nie na wejściach i wyjściach.
    >
    > Akurat mialem na mysli wlasnie operowanie na pamieci [MB]
    > S i R - set i reset
    >
    >> Dla Twojego przykładu (o ile B1 będzie zanegowane czyli -|\B1|-) to
    >
    > Nie, ma wlasnie byc niezanegowane. Jesli bit 1 jest ustawiony - to go
    > skasuj.
    > Ale zrob tez cos wiecej.
    >
    > Ustawianie jest w innym miejscu.
    >
    > Choc oczywiscie moglbym zrobic buzzer
    > --|\B1|--*---(S2)----(B1)---
    >
    > i tez sie pytac co wtedy :-)
    >
    >> Poza tym wydaje mi się że wyjścia nie powinny być łączone szeregowo
    >> tylko równolegle, przynajmniej zawsze tak robiłem.
    >
    > Rozsadnie - ale w przykladach maja szeregowo.
    > Poza tym wlasciwie to pytanie pozostaje - polacze powiedzmy
    > --|B1|--*---(S2)--
    > *--(S3)---
    > *--(R1)---
    > *--(S4)---
    >
    > i co z tego wyjdzie ?
    >
    > Wlasciwie to mnie interesuja funkcyjne, gdzie jest niby jakies
    > wejscie/wyjscie sterujace.
    >
    >> Poza tym pamiętam że na stronie Alan i Bradley mieli całe
    >> oprogramowanie z symulatorem parę lat temu.
    >
    > Bardziej mnie interesuje co norma na to, bo jesli nic ... no to chyba
    > najlepiej unikac hazardow podwojnie :-)
    >
    > J.
    >
    Normą jest, że jak program wejdzie do gałęzi to wykonuje ją do końca,
    nawet jak w niej zmienisz stan bitu zezwalającego.
    Po prostu, jak już wejdzie to stan bitu inicjującego nie ma w tym
    przebiegu znaczenia.
    Twój reset wpłynie na wykonanie programu dopiero w następnym cyklu.
    Chyba że zrobisz coś takiego :
    -|B1|--*--S2
    *--S3
    *--R1
    *--|B1|--S8
    *--S4

    tu s8 nie zostanie nigdy ustawiony, ale S4 jak najbardziej.

    Pozdrawiam
    A



  • 8. Data: 2010-09-27 15:14:40
    Temat: Re: PLC - hazardy w jezyku drabinkowy
    Od: "Desoft" <N...@i...pl>

    > Choc oczywiscie moglbym zrobic buzzer
    > --|\B1|--*---(S2)----(B1)---
    >
    > i tez sie pytac co wtedy :-)

    Jeżeli wyjdzie buzzer to chyba nic? przecież chciałeś zrobić buzzer.

    Chyba Need ma taką opcję edytora, że można przełączać się pomiędzy dwiema
    opcjami języka LD.
    Jedna jest taka standardowa - pionowa, z tymi wszystkimi znaczkami. Druga
    pozioma. Zamiast -( )- jest cewka przekaźnika, zamiast --| |-- jest
    rysunek zwykłego styku, itd.
    Programowanie nie jest programowaniem, tylko rysowaniem schematu.
    Tylko przekręcając monitor o 90* zobaczymy LD.

    --
    Desoft


    --
    Desoft


  • 9. Data: 2010-09-27 15:15:00
    Temat: Re: PLC - hazardy w jezyku drabinkowy
    Od: Mario <m...@p...onet.pl>

    W dniu 2010-09-27 17:05, Desoft pisze:
    >> Poszczegolne "linie" sa wykonywane kolejno ? jest to zagwarantowane ?
    >
    > Nie, jest to wymuszone. Sterownik nie jest w stanie uruchomić tylu
    > wątków jednocześnie, aby przetworzyć każdy szczebel LD w tym samym czasie.
    > Dlatego robi to sekwenycjnie.
    >
    >>
    >> A i tak widze mozliwy hazard w jednej "linii", np
    >>
    >> --|B1|--*---(S2)----(R1)---
    >> |
    >> |
    >> ---(S3)---(S4)--(S5)---
    >>
    >
    > Co nazywasz hazardem? nie widzę tutaj stanów niedozwolonych.
    >
    > --| Not S1 |--(Q1)--
    > Czy tutaj jest hazard?
    > Brzęczący przekaźnik nie jest hazardem, a raczej dobrym odwzorowaniem
    > rzeczywistości: identycznie zachowa się prawdziwy przekaźnik.
    >
    >> jak bit1 jest ustawiony, to zalaczamy bit2, potem (?) resetujemy bit1,
    >
    > Tak, dokładnie.
    >
    >> Czyli bit1 mignie tylko chwile.
    >
    > Nie, bit1 zgaśnie dopiero w następnym cyklu
    >
    >> Ustawia sie bity 3, 4, 5, czy nie zdaza ?
    >
    > Zdążą.
    > Wszystkie wejścia czytane są przed rozpoczęciem cyklu, Dane wejściowe
    > danej linii nie są aktualizowane w czasie wyliczania tej linii. Dane
    > wyjściowe aktualizowane są po zakończeniu cyklu.

    OIDP to porty we są czytane na początku skanu a Out są zapisywane na
    jego koniec. Markery czy komórki pamięci są aktualizowane na bieżąco.



    --
    Pozdrawiam
    MD


  • 10. Data: 2010-09-27 15:32:16
    Temat: Re: PLC - hazardy w jezyku drabinkowy
    Od: "J.F." <j...@p...onet.pl>

    Użytkownik "Desoft" <N...@i...pl> napisał w wiadomości
    news:i7qbr9$d9j$1@news.onet.pl...
    >> Poszczegolne "linie" sa wykonywane kolejno ? jest to
    >> zagwarantowane ?
    > Nie, jest to wymuszone. Sterownik nie jest w stanie uruchomić
    > tylu wątków jednocześnie, aby przetworzyć każdy szczebel LD w tym
    > samym czasie.
    > Dlatego robi to sekwenycjnie.

    Ja sie pytam czy to jest zagwarantowane :-)
    Czy obliczenia beda w kolejnosci numeracji "linii" programu, czy w
    dowolnej,
    czy sterownik moze miec dwa procesory/rdzenie i wykonac dwie naraz
    czy nie,
    no i najciekawsze - jak to wyglada dla jednej "linii" "programu".

    >> A i tak widze mozliwy hazard w jednej "linii", np
    >>
    >> --|B1|--*---(S2)----(R1)---
    >> |
    >> |
    >> ---(S3)---(S4)--(S5)---
    >>
    > Co nazywasz hazardem? nie widzę tutaj stanów niedozwolonych.
    >> Czyli bit1 mignie tylko chwile.
    > Nie, bit1 zgaśnie dopiero w następnym cyklu
    >>Ustawia sie bity 3, 4, 5, czy nie zdaza ?
    > Zdążą.
    > Wszystkie wejścia czytane są przed rozpoczęciem cyklu, Dane
    > wejściowe danej linii nie są aktualizowane w czasie wyliczania
    > tej linii. Dane wyjściowe aktualizowane są po zakończeniu cyklu.

    No dobra, to by wyjasnialo wiele niejasnosci.
    Czyli wszystkie "linie" sa obliczane niejako rownoczesnie ?

    i np prosty zapis
    -|1|-(2)-
    -|2|-(3)-
    -|3|-(4)-

    to jest rejestr przesuwajacy o jeden bit na cykl ?

    > Jeżeli w pascalu napiszesz a := not a to program się zawiesi?
    > przecież po wykonaniu linii a, jest not a, więc wejściowe a nie
    > jest a tylko not a, ale wcześniej było a, czyli teraz powinno być
    > a czy not a ? :-)))))

    Pascal to prosty jezyk, powiedz co wyjdzie w C z
    a=5 ; b=a++ - a-- ; :-)
    a wykorzystujac obiekty .. no, jestem ciekaw czy udaloby sie
    doprowadzic do zawieszania pierwszego przykladu :-)

    Stop, zaraz wrocmy do laddera - nawet jest przyklad jak realizowac
    petle, umieszczamy etykiete np w linii siodmej programu, a w linii
    np dziewiatej dajemy do niej skok. I wedle opisu będa sie
    wykonywaly linie 7,8,9,7,8,9,7,8,9,.. az warunek nie dopusci do
    skoku.
    Czyli obliczane jest jednak na biezaco.

    Pomysl Unitronicsa, czy wszystko zgodnie z norma ?

    J.

strony : [ 1 ] . 2 . 3


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: