eGospodarka.pl
eGospodarka.pl poleca

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

  • 11. Data: 2010-09-27 16:03:16
    Temat: Re: PLC - hazardy w jezyku drabinkowy
    Od: "Szymon" <g...@p...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.
    >
    >>
    >> 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

    cyklu pzetwarzania sterownika? zgasnie od razu. w normalnych PLC operacje sa
    wykonywane na pamieci od razu w miejscu instrukcji. W kolejnym szczeblu
    bedzie juz niski.
    Problemem nie jest to czy on zgasnie od razu tylko jak dziala "kompilator".
    zrobilem test w Melsecu IEC - bit1 jest czytany oddzielnie dla drugiej
    galezi (paskudztwo). W Stepie RLO po operacji przeczytania bitu1 na poczatku
    bedzie przechowane do konca networka jako rezultat posredni.

    >
    >>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.

    Maly komentarz...
    Po pierwsze bit1 nie jest wejsciem (w sensie IO) i nie mozna na nim wykonac
    operacji wyjściowej.

    Po drugie dane wyjsciowe (w sensie IO) nie sa owszem aktualizowane od razu
    (chyba ze z uzyciem specjalnych instrukcji w niektorych typach sterownikow),
    ale tablica wyjsc (obszar pamieci) jest odswiezony natychmiast. Myle sie?

    > 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 ?
    > :-)))))

    Dla J.F. Tam w srodku jest w koncu zwykly procesor:)

    Pozdrawiam,
    Szymon

    > --
    > Desoft
    >
    >


  • 12. Data: 2010-09-27 17:18:08
    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.
    >
    > Ja sie pytam czy to jest zagwarantowane :-)

    To musisz sprawdzić w dokumentacji sterownika. Nie spotkałem takiego który
    nie robiłby tego sekwencyjnie.

    > Czy obliczenia beda w kolejnosci numeracji "linii" programu, czy w
    > dowolnej,

    W kolejności numeracji linii

    > czy sterownik moze miec dwa procesory/rdzenie i wykonac dwie naraz czy
    > nie,

    raczej 32k rdzeni, jak mała pamięć to 8k rdzeni

    > no i najciekawsze - jak to wyglada dla jednej "linii" "programu".
    >

    Podstawowym językiem programowania jest IL. I takie dywagacje należałoby
    sprowadzać do tego języka. Nie wiem czy Każdy kompilator tłumaczy STL do
    IL...
    IL też musi być tłumaczony na język maszynowy, mimo wszystko to nie jest
    prawdziwy asembler.

    >> 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 ?

    Tutaj pewnie zależy to od producenta sterownika.
    To jest kwestia "czy z tego sterownika można zrobić buzzer"

    > i np prosty zapis
    > -|1|-(2)-
    > -|2|-(3)-
    > -|3|-(4)-
    >
    > to jest rejestr przesuwajacy o jeden bit na cykl ?

    Zbyt ogólnie. Norma wręcz zabrania przenoszenia pionowego pomiędzy liniami.
    Więc musisz uściślić: czy to jedna linia czy trzy.
    Jeżeli będę maił czas jutro to potestuję te "hazardy"


    >
    >> 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

    Bardzo często środowiska języka LD umożliwiają przełączenie się z LD na STL
    za pomocą jednego kliknięcia. A językowi STL bliżej do pascala niż C


    > a=5 ; b=a++ - a-- ; :-)
    > a wykorzystujac obiekty .. no, jestem ciekaw czy udaloby sie doprowadzic
    > do zawieszania pierwszego przykladu :-)

    My tu się licytujemy czy dyskutujemy o właściowściach LD?


    > 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.

    W LD? Norma nie przewiduje pętli, więc musiałby być to indywidualny pomysł
    producenta sterownika.

    >
    > Pomysl Unitronicsa, czy wszystko zgodnie z norma ?

    Norma nie przewiduje bardzo wielu rzeczy, wręcz nic nie normuje.
    Od kilku tygodni gryzę ten temat i nic nie wynika z tej normy. Nie znalazłem
    żadnego sterownika który byłby w 100% zgodny z normą.

    --
    Desoft


  • 13. Data: 2010-09-27 19:49:59
    Temat: Re: PLC - hazardy w jezyku drabinkowy
    Od: J.F. <j...@p...onet.pl>

    On Mon, 27 Sep 2010 19:18:08 +0200, Desoft wrote:
    >>> 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 :-)
    >To musisz sprawdzić w dokumentacji sterownika.

    No ba, gdyby bylo to bym nie pytal :-)

    >Nie spotkałem takiego który nie robiłby tego sekwencyjnie.

    Trudno nie robic sekwencyjnie jak jest jeden procesor.
    Ale sterowniki sie rozwijaja, kiedys wstawia Core4 :-)

    >> czy sterownik moze miec dwa procesory/rdzenie i wykonac dwie naraz czy
    >> nie,
    >raczej 32k rdzeni, jak mała pamięć to 8k rdzeni

    Nie bardzo sobie wyobrazam az tyle rdzeni sprzetowych. Moze za 10 lat.
    Chyba ze ktos to zacznie robic na FPGA

    >>> 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 ?
    >
    >Tutaj pewnie zależy to od producenta sterownika.
    >To jest kwestia "czy z tego sterownika można zrobić buzzer"

    Buzzer akurat sie daje i moich watpliwosci nie budzi.

    >> i np prosty zapis
    >> -|1|-(2)-
    >> -|2|-(3)-
    >> -|3|-(4)-
    >> to jest rejestr przesuwajacy o jeden bit na cykl ?
    >
    >Zbyt ogólnie. Norma wręcz zabrania przenoszenia pionowego pomiędzy liniami.
    >Więc musisz uściślić: czy to jedna linia czy trzy.

    Trzy osobne linie. Tylko czy druga wezmie stan bitu 2 z poczatku
    cyklu, czy ten przed chwila obliczony w linii pierwszej ?

    >> 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.
    >W LD? Norma nie przewiduje pętli, więc musiałby być to indywidualny pomysł
    >producenta sterownika.

    Az sobie spojrzalem do konkurencji - S7 tez maja takie skoki.

    I ma "midline output", czyli jak rozumiem - natychmiastowe.

    J.



  • 14. Data: 2010-09-28 09:14:13
    Temat: Re: PLC - hazardy w jezyku drabinkowy
    Od: "Desoft" <D...@i...pl>

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

    Na Moellerze wyszedł piękny buzer.

    Chyba że zrobisz coś takiego :
    -|B1|--*--S2
    *--S3
    *--R1
    *--|B1|--S8
    *--S4

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

    Pomijając błąd logiczny, wszystko się zgadza.
    Najprawdopodobniej każde wyjście (każde dojście do prawej pionowej linii) to
    nowa linia w STL.

    --
    Desoft


  • 15. Data: 2010-09-28 09:22:49
    Temat: Re: PLC - hazardy w jezyku drabinkowy
    Od: "Desoft" <D...@i...pl>

    > i np prosty zapis
    > -|1|-(2)-
    > -|2|-(3)-
    > -|3|-(4)-
    >
    > to jest rejestr przesuwajacy o jeden bit na cykl ?

    Nie wiem, czy rejestr przesuwny (kwestia interpretacji zapisu), ale zapala
    mi kolejno poszczególne wyjścia - co cykl.

    --
    Desoft


  • 16. Data: 2010-09-28 09:29:48
    Temat: Re: PLC - hazardy w jezyku drabinkowy
    Od: "Desoft" <D...@i...pl>

    >>> 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.
    >>W LD? Norma nie przewiduje pętli, więc musiałby być to indywidualny pomysł
    >>producenta sterownika.
    >
    > Az sobie spojrzalem do konkurencji - S7 tez maja takie skoki.

    LD jest "przełączalny" na STL, z tym że w STL można zrobić więcej.
    STL z definicji posiada pętle. W LD trzeba aby producent utworzył taki
    bloczek.
    Nie znalazłem nigdzie coby norma IEC61131-3 coś mówiła o pętlach dla LD.
    Tak jak wspomniałem wcześniej ta norma to raczej _próba_ znormalizowania
    tych języków.
    Podstawowe rzeczy robione są zgodnie z normą, pozostałe według uznania
    producenta.

    --
    Desoft


    >
    > I ma "midline output", czyli jak rozumiem - natychmiastowe.
    >
    > J.
    >
    >


  • 17. Data: 2010-09-28 09:34:41
    Temat: Re: PLC - hazardy w jezyku drabinkowy
    Od: "Desoft" <D...@i...pl>


    Użytkownik "Desoft" <D...@i...pl> napisał w wiadomości
    news:i7sc5a$f7e$1@news.onet.pl...
    >> i np prosty zapis
    >> -|1|-(2)-
    >> -|2|-(3)-
    >> -|3|-(4)-
    >>
    >> to jest rejestr przesuwajacy o jeden bit na cykl ?
    >
    > Nie wiem, czy rejestr przesuwny (kwestia interpretacji zapisu), ale zapala
    > mi kolejno poszczególne wyjścia - co cykl.

    Pomyłka, wszystkie jednocześnie.

    --
    Desoft


  • 18. Data: 2010-09-28 10:18:59
    Temat: Re: PLC - hazardy w jezyku drabinkowy
    Od: Mario <m...@p...onet.pl>

    W dniu 2010-09-28 11:34, Desoft pisze:
    >
    > Użytkownik "Desoft" <D...@i...pl> napisał w wiadomości
    > news:i7sc5a$f7e$1@news.onet.pl...
    >>> i np prosty zapis
    >>> -|1|-(2)-
    >>> -|2|-(3)-
    >>> -|3|-(4)-
    >>>
    >>> to jest rejestr przesuwajacy o jeden bit na cykl ?
    >>
    >> Nie wiem, czy rejestr przesuwny (kwestia interpretacji zapisu), ale
    >> zapala mi kolejno poszczególne wyjścia - co cykl.
    >
    > Pomyłka, wszystkie jednocześnie.
    >

    Zmień kolejność to będzie cyklicznie.
    -|4|------S(1)
    |
    --R(4)

    -|3|------S(4)
    |
    --R(3)

    -|2|------S(3)
    |
    --R(2)

    -|1|------S(2)
    |
    --R(1)

    --
    Pozdrawiam
    MD


  • 19. Data: 2010-09-29 09:31:02
    Temat: Re: PLC - hazardy w jezyku drabinkowy
    Od: "J.F." <j...@p...onet.pl>

    Użytkownik "Desoft" <N...@i...pl> napisał w
    >> 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.

    Buzzer to jedna sprawa, ma wyjsc, ale do dalszych galezi po *
    wezmiemy stan wejsciowy B1 czy przed momentem wyliczony ? :-)

    Jak to Szymon pisze - Step przydziela zmienna tymczasowa, Moeller
    nie, czeski film :-)

    J.


  • 20. Data: 2010-09-29 10:53:49
    Temat: Re: PLC - hazardy w jezyku drabinkowy
    Od: Artur <n...@g...com>

    On 27 Wrz, 11:28, "J.F." <j...@p...onet.pl> wrote:
    > 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)---
    >

    U jakiego producenta można łączyć cewki szeregowo?

    --
    Artur

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: