RTV forum PL | NewsGroups PL

Jak zagwarantowana jest kolejność wykonania linii w języku drabinkowym PLC?

PLC - hazardy w jezyku drabinkowy

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Jak zagwarantowana jest kolejność wykonania linii w języku drabinkowym PLC?

Goto page 1, 2  Next

J.F.
Guest

Mon Sep 27, 2010 9:28 am   



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.

Miłosz Skowyra
Guest

Mon Sep 27, 2010 10:56 am   



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

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.

Mario
Guest

Mon Sep 27, 2010 12:37 pm   



W dniu 2010-09-27 12:56, Miłosz Skowyra pisze:
Quote:
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

J.F.
Guest

Mon Sep 27, 2010 12:59 pm   



Użytkownik "Miłosz Skowyra" <mewashek@wyciecie.epf.pl> napisał
Quote:
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

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

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

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

Miłosz Skowyra
Guest

Mon Sep 27, 2010 1:50 pm   



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

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

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

--
Pozdrawiam Miłosz.

Desoft
Guest

Mon Sep 27, 2010 3:05 pm   



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

Quote:

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.

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

Tak, dokładnie.

Quote:
Czyli bit1 mignie tylko chwile.

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

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

--
Desoft

Andrzej
Guest

Mon Sep 27, 2010 3:08 pm   



W dniu 2010-09-27 14:59, J.F. pisze:
Quote:
Użytkownik "Miłosz Skowyra" <mewashek@wyciecie.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

Desoft
Guest

Mon Sep 27, 2010 3:14 pm   



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

i tez sie pytac co wtedy Smile

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

Mario
Guest

Mon Sep 27, 2010 3:15 pm   



W dniu 2010-09-27 17:05, Desoft pisze:
Quote:
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

J.F.
Guest

Mon Sep 27, 2010 3:32 pm   



Użytkownik "Desoft" <NICK@interia.pl> napisał w wiadomości
news:i7qbr9$d9j$1@news.onet.pl...
Quote:
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 Smile
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".

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

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

Pascal to prosty jezyk, powiedz co wyjdzie w C z
a=5 ; b=a++ - a-- ; Smile
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.

Szymon
Guest

Mon Sep 27, 2010 4:03 pm   



Użytkownik "Desoft" <NICK@interia.pl> napisał w wiadomości
news:i7qbr9$d9j$1@news.onet.pl...
Quote:
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.

Quote:

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?

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

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

Pozdrawiam,
Szymon

Quote:
--
Desoft



Desoft
Guest

Mon Sep 27, 2010 5:18 pm   



Quote:
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 Smile

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

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

W kolejności numeracji linii

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

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

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

Quote:
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"

Quote:
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"


Quote:

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

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


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

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


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

Quote:

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

J.F.
Guest

Mon Sep 27, 2010 7:49 pm   



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

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

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

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

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

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

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

Desoft
Guest

Tue Sep 28, 2010 9:14 am   



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

i tez sie pytac co wtedy Smile

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

Desoft
Guest

Tue Sep 28, 2010 9:22 am   



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

Goto page 1, 2  Next

elektroda NewsGroups Forum Index - Elektronika Polska - Jak zagwarantowana jest kolejność wykonania linii w języku drabinkowym PLC?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map