Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Mikrokontroler a sterownik PLC

rtom 16 Sep 2004 22:12 9791 36
SterControl
  • #1
    rtom
    Level 18  
    Mam pytanie dotyczace sterownika programowalnego PLC. Moze ktos wie, jaki rodzaj mikrokontrolerow, jakiego rodzaju pamiec stosuje sie np. w sterowniku micro GeFanuc?
  • SterControl
  • #2
    wisiena
    Level 18  
    Witam i pozdrawiam !!!
    Zwykle w tego typu sterownikach stosuje się C166 Siemens'a. W starych typach, tych bez CAN'a były procki C51 z rodziny C515 Siemens'a.

    (M.)
  • SterControl
  • #3
    GienekS
    Level 32  
    Ja natomiast zrobiłem własny sterownik PLC. Oparłem go na procku ATmega32 i jestem na etapie wdrażania pierwszego kompletu do sterowania taką sobie prostą maszyną o napędzie hydraulicznym.
  • #4
    elektryk
    Level 42  
    Czasem pakują nawet do środka motorolki 32bitowe.
  • #5
    wisiena
    Level 18  
    Elektryk ma pewnie racje, ale takie duże maszyny to już do systemów które mają panele pontrolne z ekranami lcd. Zwykłe PLC to najczęściej "czarna skrzynka" z końcówkami mocy i wejściami pomiarowymi jak w S7.

    (M.)
  • #6
    GienekS
    Level 32  
    Do S7 też się podłącza panele operatorski i to nie byle jakie. Wisi to oczywiście na MPI
  • #7
    fantom
    Level 31  
    GienekS wrote:
    Ja natomiast zrobiłem własny sterownik PLC. Oparłem go na procku ATmega32 i jestem na etapie wdrażania pierwszego kompletu do sterowania taką sobie prostą maszyną o napędzie hydraulicznym.

    A czy chodzi na jakims RTOS-ie ? Jesli nie to nie ma mowy o sterowniku PLC.
  • #8
    rtom
    Level 18  
    Rtos? System operacyjnu czasu rzeczywistego? Ale po co ?
    Mam za to inne pytanie, jak to jest zrobione w sterowniku, iz piszac program np. w VersiePro traktuje sie wszsystki "drabiny" jakby uruchamiane byly jednoczenie. Czy to za sprawą oprogramowania tak sie dzieje, a to ze nie widac opoznien to po prostu szybki procek. Bo przeceiz skoro sa tam zwykle procki to nie dzialaja one w jakims systemie rownoleglym ,a wykonuja instrukcje jedna po drugiej (nie wszystkie naraz).
  • #9
    kursant
    Level 18  
    Wiadomo że program wykonuje się rung po rungu z góry w dół z lwej do prawej, ale sterownik najpierw zbiera wszystkie dane - czyta wejścia, wykonyje program a następnie ustawia wszystkie wyjścia dlatego dzieje się to szybko bo samo wykonanie programu zajmuje niewiela czasu, poza tym sterownik potrzebuje czas na komunikację systemowąi z innymi specjalizowanymi modułami. Procesory w PLC wcale nie są szybkie w porównaniu do stosowanych w PC'tach.
  • #10
    fantom
    Level 31  
    rtom wrote:
    Rtos? System operacyjnu czasu rzeczywistego? Ale po co ?
    Mam za to inne pytanie, jak to jest zrobione w sterowniku, iz piszac program np. w VersiePro traktuje się wszsystki "drabiny" jakby uruchamiane byly jednoczenie. Czy to za sprawą oprogramowania tak się dzieje, a to ze nie widac opoznien to po prostu szybki procek. Bo przeceiz skoro sa tam zwykle procki to nie dzialaja one w jakims systemie rownoleglym ,a wykonuja instrukcje jedna po drugiej (nie wszystkie naraz).

    No wlasnie dlatego ze siedzi tam RTOS :wink:.Gdyby program wykonywal sie sekwencyjnie nie bylo by takich mozliwosci albo byly by bardzo ograniczone.
  • #11
    GienekS
    Level 32  
    Wszystko się dzieje w czasie rzeczywistym. Oczywiście że w systemie jest pomiar czasu rzeczywistego bo jak inaczej możesz sobie wyobrazić wykonanie jakiś timerów czy pomiaru czasu. Na tym procku niema z tym problemu.
  • #12
    Udios
    Level 12  
    fantom wrote:
    rtom wrote:
    Rtos? System operacyjnu czasu rzeczywistego? Ale po co ?
    Mam za to inne pytanie, jak to jest zrobione w sterowniku, iz piszac program np. w VersiePro traktuje się wszsystki "drabiny" jakby uruchamiane byly jednoczenie. Czy to za sprawą oprogramowania tak się dzieje, a to ze nie widac opoznien to po prostu szybki procek. Bo przeceiz skoro sa tam zwykle procki to nie dzialaja one w jakims systemie rownoleglym ,a wykonuja instrukcje jedna po drugiej (nie wszystkie naraz).

    No wlasnie dlatego ze siedzi tam RTOS :wink:.Gdyby program wykonywal się sekwencyjnie nie bylo by takich mozliwosci albo byly by bardzo ograniczone.


    Witam
    Sam się kiedyś nad tym zastanawaiłem, i doszedłem do wniosku, że nie konicznie musi występować w nich praca równoległa.
    program wykonuje się sekwencyjnie.
    Według mnie dzieje się to wszystko w jednej pętli
    najpierw sterownik odczytuje dane z wejść,
    wykonuje program drabinkowy,
    a następnie wysyła dane wyjściowe (załącza, wyłącza I/O).
    i od nowa. o ile pamiętam to większości instrukcji do sterowników zawiera schematy blokowe pracy sterownika i określenie czasów trwania poszczególnych faz cyklu dzięki czemu można obliczyć czas trwania pełnego cyklu (przynajmiej w GE FANUC mikro widziałem i chyba w Telemechaniku)

    Drabinka?? co to jest??
    Nic tylko ciąg warunków do sprawdzenia.
    Jezęli I0.1 jest załączone, I0.2 jest rozwarte, a licznik przekroczył 100 załącz O0.4

    dlatego drabinki są wykonywane w określony sposób,
    z lewej do prawej
    a następnie po koleji szczebel po szczeblu z góry na dół

    mniejwięcej coś w tym stylu:

    obsługa wejść
    wykonanie programu sterującego (część logiczna)
    obsługa wyjść
    komunikacja z innymi urządzeniami
    diagnostyka
    i od nowa
    obsługa wejść
    .
    .
    .

    Praca równoległa raczej była by ciężka do wykonania (ale nie wykluczam, że niektóre sterowniki mogą w ten sposób działać). Mikroprocesor nie może wykonywać dwóch poleceń naraz więc musi przerwać wykonywanie jedznej części programu na rzecz drugiej, w tym zapamiętać zmienne które właśnie przeliczał, zapamiętać gdzie przerwał program i przeskoczyć do drógiej części, potem do trzeciej itd, żeby w końcu powrócić do pierwszej przerwanej. Jest to możliwe (i działa np na PCtach) ale trudne do wykonania. Łatwiejsza jest praca sekwencyjna.
    Jeżeli chodzi o timery . nic prostrzego. Wystarczy ustawić odpowiedno timer mikroprocesora, żeby wykonywał przerwanie np co 100ms.
    a w tym przerwaniu inkrementuje(lub dekrementuje) wykorzystane liczniki w programie. i wten sposób mamy licznik o podstawie czasu 100ms.
    poprzez odpowiedni warunek(szczebel) jest zerowany, a w inny warunk sprawdza czy została już uzyskana właściwa wartość i odpowidnio do tego działa.

    Jeżeli chodzi o procek to czym szybszy tym lepszy. Nigdy nie waidomo co będzie potrzeba wykonać. Lepiej mieć zapas mocy niż jego brak.
    W telemecanique TSX 17 widziałem chyba poczciwe 80C52
    W GE FANUC 90-micro są H8/3003
    W nowszych stosują już szybkie 16 lub nawet 32bitowe.


    Takie są moje przemyślenia na temat pracy sterowników. Przymierzam się wkrótce do wykonania sterownika na Atmega 128 (płytka juz jest prawie skończon). Jest to mój pierwszy taki projekt więc w niektórych sprawach mogę się mylić.


    Pozdrawiam
    J.S.
  • #13
    rtom
    Level 18  
    Wracajac do jednego z forumowiczow ktory napisal ze storwniki maja zaimplementowane systemy czasu rzaczywistego. Wdlug mnie to jaks bzdura. pRzeceiz taki system zajmowalby megabajty a nie kilobajty pamieci flasz procka. Do tego ta cala quasirownolegla praca w sterownika, przynajmniej z tym co ja sie spotkalem przeszkadza. Piszac program na drabinach caly czas trzeba uwazac zeby gorne lub dolne drabiny przez przypadek sie nie zalaczyly, gdyu wykonuje sie drabina srodkowa. Trzeba wstawiac dodtakowe zmienne. Przy pisaniu programow np. do obslugi swiatel na skrzyzowaniu, czy obslugi jakeigos procesu technologiucznego przez to trzeba budowac wielkie programy. Programy te w porownaniu do asseblerowskich czy tych z C sa o wiele bardziej rozbudowane. Wiec pytam sie po co to?? (mam nadzieje ze odpowiedzia nie jest to, iz programisci PLC nie znaja ani C ani assmblera i jest to produkt dla mas). Dlaczego PLC sa takie drogie? Ja swoj wykonalaem za okolo 200zl. Sam algorytm dzialania byl krotki w porownainu z drabinami. Oczywoscie trrzeba bylo zatroszczyc sie o obsluge wszystkich ukladow I/O (w sterownikach nie trzeba sie tym przejmowac). Do tego protokol przesylu ModBus, tez sieda zrobic w C++, nawet wizualizacje (nie trzeba miec Intouch'a!). Wiec posumowujac jesli chodzi o jednorazowe projekty mozna zastapic PLC 10krotnie tanszym mikroprockiem i nie dac nabijac kasy Simensowi!
  • #14
    Xitami
    Level 29  
    a ja właśnie odpowiem tak jak nie chcesz, no i co?
    no właśnie drabinki są dla ludzi którzy od stu lat robią to co robią. I to nie są masy, są to automatycy którzy wiedzą co robią.
    A wiesz. wszystko da się zrobić, ja to wiem, Ty to wiesz, ale nie wszyscy to wiedzą, ale ale... ;) swoją drogą, wiesz czym sięróżni testowanie od weryfikacji? jak myślisz ile zwojów mają transformatory predykatów?
  • #15
    rtom
    Level 18  
    A wiesz co to jest utrudnianie i komplikowanie?
  • #16
    Xitami
    Level 29  
    utrudnianie i komplikowanie? owszem jeśli się wie o czym mowa
  • #17
    rtom
    Level 18  
    No wlasnie. Wiec odpowiedz na pytanie jesli wiesz cos na temat dzialania PLC.
  • #18
    Xitami
    Level 29  
    Wiesz, pytanie było o GeFunca, a bo ja wiem co oni tam robią? no bo co mnie to obchodzi?
    (myślałem że rozpocznę polemikę, a tu wyszła woja ;)
  • #19
    rtom
    Level 18  
    Simensa podalem akurat bo byl pod reka. Chodzi mi ogolenie o sterowniki z naciskiem na GeFanuc seria 90 micro. Ponoc jest tam procek hittachi h83003? Z tego co przeczytalem to jest to uklad 32 bitowy 16Mhz, 512KB ram, przetwornik A/C10bit. Ktos napisal, iz PLceki posiadaja systemy RTOS, jakbys mogl to wytlumaczyc i na jakiej zasadzie te quasi rownolegle przetwarzanie to bymbyl wdzieczny. No i napisal celowosc takiego wykonywania. Bo dal mnie to jest na razie wada, nie zaleta.Ale moze mi cos rozjasnisz?
  • #20
    fantom
    Level 31  
    Czlowieku jakie megabajty co ty z ksiezyca sie urwales ??? Ty myslisz ze tam jest Windows postawiony czy co ??? Jadro systemu czasu rzeczywistego zajmuje kilkanascie kilobajtow !!!
    A teraz dlaczego stosuje sie PLC.Stworzyles swoj uklad i ok a czy jestes w stanie zapewnic i dac gwarancje ze w okreslonych warunkach uklad bedzie prawidlowo pracowal ? Czy jestes w stanie reczyc za to glowa ? A co jesli twoj uklad zadziala niepoprawnie i jakas maszyna kogos zabije ? Wezmiesz za to odpowiedzialnosc ? Jak twoj uklad zareaguje na wady sprzetu ? Widzisz systemy RTOS maja to do siebie ze potrafia bardzo efektywnie zareagowac nawet na wady i nieprawidlowe dzialanie sprzetu.Radzil bym najpierw zapoznac sie z tematyka dokladniej zamiast glosic jakies dziwne teorie.Poczytac naprzyklad o systemie OS9 i jemu podobnych ktory to wlasnie glownie siedzi w takich sterownikach.
  • #21
    W.K
    Level 15  
    fantom wrote:
    A teraz dlaczego stosuje się PLC.Stworzyles swoj uklad i ok a czy jestes w stanie zapewnic i dac gwarancje ze w okreslonych warunkach uklad bedzie prawidlowo pracowal ? Czy jestes w stanie reczyc za to glowa ? A co jesli twoj uklad zadziala niepoprawnie i jakas maszyna kogos zabije ? Wezmiesz za to odpowiedzialnosc ? Jak twoj uklad zareaguje na wady sprzetu ?

    W firmie , w której pracuję jest wiele maszyn opartych na sterowaniu przekaźnikowym.Pomyślałem sobie , że można by coś dorobić do pensji unowocześniając je. Nawet zacząłem projektować takie własne "PLC".
    Dałem sobie jednak spokój gdy zapytano czy to urządzenie będzie miało atest bezpieczeństwa.Pewnie taki atest można gdześ "wyrobić" ale koszty tego spowodują , że przedsięwziecie straci ekonomiczny sens.
    Pozdrawiam!
  • #22
    rtom
    Level 18  
    Fantom chyba nie zrozumiales tego co napiaslem, z reszta musisz byc fanatykiem PLC, moze reprezentujesz jakies Lobby? Wiadomo, ze jesli chodzi o sprawe atestow, norm bezpieczenstwa, certyfikatow, to pojedyncza jednostka temu nigdy nie sprosta, bo za tym stoja korporacje i grube miliony. Chodzilo mi o samo urzadzenie i jego dzialanie. Chyba nie pomyslales,ze mam zamiar sprzedawac te swoje PLCEKI! Pytalem o cel stosowania RTOS w sterownikach i dalej nie otrzymalem odpowiedzi. Moge sie tylko domyslac. Nie wiem, dzieki temu np. mamy na biezaco analize stanow wszystkich wejsc? Nie trzeba czekac, az program dojdzie do linijki gdzie jest sprawdzany stan czujnika? Ale co jeszcze?
  • #23
    fantom
    Level 31  
    Nie,nie jestem zadnym fanem bo wcale z nich nie korzystam tylko tak jak ty robie wlasne systemiki.Podalem po prostu dlaczego sie z nich korzysta i w jakim celu.Co do RTOS-ow to ich zaleta jest przede wszystkim wspolbieznosc.Kazdy watek ma przydzielony scisle okreslony czas w jakim moze sie wykonac i po tym czasie musi sie zakonczyc.Daje to korzysci w sytuacji gdy zaden z watkow nie moze czekac dluzej niz z gory okreslony czas co z kolei powoduje bardzo duza niezawodnosc takich systemow przez co sa one stosowane wlasnie w PLC-kach.Zeby nie bylo ze jestem z kolei fanem RTOS-ow dodam ze sam na mikrokontrolerki pisze oczywiscie programy sekwencyjne tyle ze o jak najszybszym czasie zakonczenia kazdego watku ale RTOS-em tego oczywiscie nazwac nie mozna.
  • #24
    rtom
    Level 18  
    No dobra, rozpatrz taki przypadek. Urzedzenie steruje ukladami, ktorym liczba przekracza 100, co jest rozwnowazne z wykonywaniem 100 watkow naraz,a co wiaze sie z podzialem mocy obliczeniowej, czasu procesora itp. Wiec potrzeba tu bardzo "silnej" maszyny, ktory by to pociagnal. Cena takeigo ukladu od razu rosnie! Jak piszesz wszystkie PLC maja RTOS, wiec musza byc przygotowane na obsluge duzej ilosci urzadzen. Zalozmy, ze potrzeba sterownika do sterowania kilkoma pompkami i zaworkami. Tu potrzeba niewielkiego sterownika, wystarczy zwykly mikrokontroler za 5zl. Zupelnie niepotrzebny staje sie RTOS, ktory tylko przeszkadza przy pisaniu prostego programiku. Wiec co w takim przypadku sie stosuje? Jakis sterownik w wersji micro? Ale on tez jest drogi ma RTOS, procek pewnie jest albo 16 albo 32 bitowy, po co to?
    Przeciez to zwykle wyrzucanie pieniedzy!!!
  • #25
    elektryk
    Level 42  
    Ja jestem opinii że drabinki wykonuja się po kolei od góry do dołu, ale jakby w kawałkach a w PLC nie jest konieczny nawet system operacyjny. PLC pracuje w cyklach, najpierw czyta dane wejściowe (po kolei tak jak są zapisane w drabinkach, procek ma poprostu liste wejść do sprawdzenia). Potem realizuje wszystkie rządane operacje (także wg listy) a na końcu następuje cykl zapisu który uaktualnia wyjścia. Nawet jeśli są dwa wyjścia zależne od siebie, to przy takim działaniu nic się nie stanie, bo wszystkie operacje zapisu są wykonywane dopiero jak nowy stan każdego wyjścia będzie "obliczony". Do tego nie potrzeba wielowątkowości ani innych dodatków. Nawet wątpie czy do celów diagnostycznych PLC mógłby wykorzystać kilka równoległych procedur, bo sam system operacyjny wprowadza kolejny element który mógłby źle pracować i by wywaliło połowe fabryki.
  • #26
    rtom
    Level 18  
    To ciekawe, połowa odpowiedzi jest ,ze są RTOS-y połowa, ze nie.
    Może ktoś wie, gdzie na necie można znalezc po polsku informacje dotyczace sterownikow PLC?
  • #27
    fantom
    Level 31  
    Przeciez programowanie PLC nie ogranicza sie tylko do drabinek a w jezykach wyzszego poziomu mozna rozdzielic program na kilka watkow wspolbieznych i co wtedy ? Co do zastosowan to PLC stosuje sie do zadan naprawde krytycznych (fabryki) a jest rzecza oczywista ze wszystko zalezy od konkretnego zastosowania i nie bede uzywal PLC do obslugi akwarium :wink: .
  • #28
    elektryk
    Level 42  
    fantom wrote:
    Przeciez programowanie PLC nie ogranicza się tylko do drabinek a w jezykach wyzszego poziomu mozna rozdzielic program na kilka watkow wspolbieznych i co wtedy ?
    Szczerze w to wątpie, chociaż nie wykluczam że może być taka możliwość.
  • #29
    tszewc
    Level 16  
    elektryk wrote:
    ... a w PLC nie jest konieczny nawet system operacyjny ...

    To przepraszam - dlaczego działa? Wejścia zapalają wyjścia? ;)

    A wracając do drabinki - ma ona jedną, olbrzymią zaletę (poza licznymi wadami) - łatwość i szybkość diagnostyki programu. Oto dlaczego wykorzystuje się ten język a nie pisze się na przykład w C, asm, itp.
  • #30
    Xitami
    Level 29  
    I tu się raczej nie zgodzę, na moje oko drabinki są dla ludzi ze "starymi" przyzwyczajeniami, dla takich co automatykę robili jeszcze na przekaźnikach! Starocie? może ale czemu zmieniać coś co jest dobre?