PLC - hazardy w jezyku drabinkowy

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

Reply to
J.F.
Loading thread data ...

W dniu 2010-09-27 10:28, J.F. pisze:

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.

Reply to
Miłosz Skowyra

W dniu 2010-09-27 12:56, Miłosz Skowyra pisze:

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

Reply to
Mario

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

[...]

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

Reply to
Miłosz Skowyra

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

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

Reply to
Andrzej

W dniu 2010-09-27 17:05, Desoft pisze:

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.

Reply to
Mario

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

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

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

Buzzer akurat sie daje i moich watpliwosci nie budzi.

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

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

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

J.

Reply to
J.F.

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.

Reply to
Desoft

W dniu 2010-09-28 11:34, Desoft pisze:

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)

Reply to
Mario

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

Reply to
Artur

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.