logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak połączyć symulację w Matlabie/LabView z PLC SAIA dla wizualizacji?

cegreg 22 Mar 2007 13:51 7787 11
  • #1 3706610
    cegreg
    Poziom 11  
    Posty: 67
    Ocena: 17
    Witam,
    Mam zrobić taki projekt: sterowanie przez PLC symulowanego procesu i do tego mam zrobić wizualizacje.
    Wiem, jak napisać program dla PLC(sterownik SAIA - nie pamiętam modelu), zrobić wizualizacje(wizualizacje mam zrobić w Wizcon) ale nie ma pojęcia w czym zrobić tą symulację i jak to z komunikować z PLC.
    Mam do wyboru kilka symulacji:
    1. ster. piecem z podajnikiem(chyba do spalania biomasy)
    2. ster. pasteryzatorem
    3. kotłem z mieszaczem i podgrzewaniem itp mogę też sobie coś sam wymyślić

    W skrócie to ma wyglądać tak, PLC cały czas czyta jakieś z dwa albo trzy parametry z symulatora np temperaturę i przepływ i na podstawie tego ma wygenerować jakieś sterowanie kolejnymi dwoma parametrami np stopień otwarcia zaworu i temp.
    Reasumując ten symulator musi zarówno nadawać dane jak i je odbierać.

    Tą symulację wstępnie myślałem zrobić w Matlabie albo w LabView, tylko nie wiem za bardzo jak to komunikować z PLC. Myślałem że może przekazywać dane przez DDE z programu symulacyjnego do Wizcona i dalej PLC będzie pobierał dane z Wizcona, ale DDE działa chyba tylko w jedną stronę albo jest serwerem albo klientem. No i sprawa się rypła.

    Ma ktoś może jakiś pomysł jak to zrobić?
    A może są jakieś specjalne programy do tego celu?
    Może ktoś z Waz wie czy np. dałoby się tak zrobić DDE tak żeby jeden program był zarówno klientem i serwerem?
    Czy coś takiego w ogóle da się zrobić?

    Za wszelkie sugestie z góry dziękuję
    Pozdrawiam cegreg
  • #2 3708034
    Oskarr
    Poziom 13  
    Posty: 71
    Pomógł: 3
    Ocena: 6
    a nie możesz poprostu zrobić jakiś zadajników prądowych lub napięciowych i podpiąć je bezpośrednio do sterownika :?:

    Co do tego DDE to raczej sie nie zgodze że to jest jednokierunkowe
    Ja robiłem taka symulacje na InTouch'u i InControl'u Astora. Komunikacja była w dwie strony.

    A wyglądało to tak :!:
    - Program dla PLC w InControl'u
    - Wizualizacja w InTouchu
    - I model dyskretny napisany w skrypcie InTouch'owym
    :D
  • #3 3709767
    fantasta
    Poziom 29  
    Posty: 1696
    Pomógł: 48
    Ocena: 100
    Za duzo zachodu. Wez 3 potecjometry, LM317, zrob reg zrodlo pradowe i napieciowe i masz symulator jak znalazl.
  • #4 3710300
    cegreg
    Poziom 11  
    Posty: 67
    Ocena: 17
    Witam i dzięki za odpowiedzi!

    Właśnie podobne rozwiązanie zaproponowałem mojemu "góru", ale powiedział on, że takie rozwiązanie jest "sztywne" i nie inżynierskie ( a w końcu mam kiedyś nim byc). A moje argumenty typu, że ja chce jedynie pouczyć się programowania PLC i poznać środowisko SCADA, zostały odparte tym, że inżynier powinien być elastyczny!(no i zonk).
    Pomocy ani wskazówek nie dostałem (a nie mam zielonego pojęcia jak to połączyć), więc szukam jej po forach i w googlach.

    Jak narazie dowiedziałem się, że komunikacja DDE może odbywać się w dwie strony, a to trochę zmiania postać rzeczy (na plus oczywiście). Teraz muszę dowiedzieć się jak to zrobić - jak połączyć mój program symulacyjny(labview albo matlab -nie jestem pewien czy matlab obsługuje DDE) z wizualizacyjnym(Wizconem), a to będzie duży problem :(. Szkoda, że nie mam tego pakietu intouch i incontrol:(
    Może ktoś z Was coś takiego robił?

    Dzięki za pomoc cegreg!
  • Pomocny post
    #5 3715082
    .:. june jive
    Poziom 12  
    Posty: 18
    Pomógł: 4
    Ocena: 2
    Nie wiem czy dobrze zrozumiałem...ale może spróbuj tak:

    1.
    PLC wysyła dane przez RSa. Odbierane są przez software, a dokładnie przez gotowy komponent do kom. z RS-em. Oprogramowanie najlepiej zrobić w Visual Basicu (ma funkcje dedykowane DDE, który też jakby nie patrzeć jest produktem MICROSOFTU). Dane wejsciowe są przesyłane dalej (server DDE do SCADA) oraz na ich podstawie przeliczane są dane wyjsciowe (wg algorytmu symulowanego procesu) wysyłane do PLC.

    2.
    Inna wersja powyzszego: PLC> Oryginalny Driver DDE > klient DDE (DELPHI) > obliczanie stanu wyjść - algorytm procesu (DELPHI) > wysyłanie danych do SCADA i PLC (klient DDE). W delphi są gotowe komponenty łatwe w uzyciu.

    3.
    MATLAB - posiada blok do kom. przez RS-a, ale musiałbyś bawić się formowaniem pakietów, a poza tym nie widziałem, żeby miał mozliwość wymiany danych przez DDE. Tego nie jestem pewien.

    4.
    LABVIEW - nie bawiłem sie tym, ale wydaje mi się, że tu sprawa wyglada najprościej. Jako źródło danych (bloczek) oryginalny (tj. dostarczony przez producenta PLC) DDE. Reszta analogicznie jak wyżej, z tym że proces i wysłanie danych opisane będą na bloczkach.

    Należy tylko pamiętać aby w DDE kliencie i serverze nazwy TOPIC I ITEMS nie były takie same.
  • #6 3826697
    cegreg
    Poziom 11  
    Posty: 67
    Ocena: 17
    Witam,

    Coś mi się udało zrobić, ale jeszcze długa droga przede mną:(.
    Udało mi się coś takiego zrobić, mam model w labview (narazie tylko prowizorka) mam wizualizację w Wizconie nawiązałem między nimi komunikację w dwie strony wykorzystując DDE. Za sterownik PLC narazie robi drugi program w labview który też komunikuje się po przez DDE z symulatorem i wizualizatorem.
    W zasadzie zostały mi dwie rzeczy do zrobienia
    1. Zbudować poprawny model(wybrałem pasteryzator) - zamodelować równaniami różniczkowymi
    2. Dołączyć do tego PLC zamiast tego tymczasowego programu sterującego. Czyli PLC ma czytać dane z symulatora i wysyłać do niego dane.
    Wysyłanie danych wymyśliłem sobie tak, że Wizcon sobie odczyta wyj sterownika, a dalej po przez DDE odczyta sobie to mój symulator czyli LabView.
    Może to zabrzmi laikowato, ale nie mogę sobie wyobrazić takiej komunikacji w drugą stronę. tzn symulator czyli LabView przysyła dane do Wizcona - oki to mi działa, ale jak dalej te dane ma sobie odczytać PLC :?: Nie siedziałem za bardzo w tym ale wydaje mi się trochę to nie wykonalne programowo, bo przecież muszę odczytać wartość analogową (temperaturę).
    Trochę ostatnio się pobawiłem i jak narazie doszedłem, że mogę jedynie ustawiać wyjścia PLC z pod Wizcona. Może rozwązanie jest bardzo proste ale ja jakoś sobie tego nie mogę wyobrazić :(

    Z góry dziękuję za wszelką POMOC :!:
    Pozdrawiam cg
  • #7 3833297
    .:. june jive
    Poziom 12  
    Posty: 18
    Pomógł: 4
    Ocena: 2
    Cytat:
    że mogę jedynie ustawiać wyjścia PLC z pod Wizcona.


    Tu chyba zawarta jest odpowiedź. Wartość jakiejś zmiennej w PLC, którą ustawiasz 'z ręki' z poziomu Wizcona, na pewno (? nie znam wizcona) da się wpisać 'z zewnątrz'(nie ważne czy będzie to plik, DDE).

    Przykładowo, jeśli przełączasz jakąś wirtualną wajchę, to jakaś tam zmiena dostaje nową wartość. Ta zmienna musi mieć jakąś nazwę (adres, wskaźnik). Wystarczy wiedzieć jaką. W odpowienim miejscu przypisać wartość przychodzącą z LabView do tej zmiennej (jeśli nie da się bezposrednio).

    Czy dobrze rozumuję?


    Cytat:
    Nie siedziałem za bardzo w tym ale wydaje mi się trochę to nie wykonalne programowo, bo przecież muszę odczytać wartość analogową (temperaturę).


    Mikroprocesor nie wykonuje 2 operacji na raz. Oczywiście w makroskali moze nam sie wydawać, że coś wykonywane jest jednocześnie. Po to aby jakkolwiek komunikacja przebiegała bez konfliktów wymyślono protokoły, standardy, etc. O to więc głowa spokojna!

    Połaczenie między Wizconem a PLC najlepiej zrealizuj przez OPC.

    Mam nadzieję, że te kilka moich zdań okaże sie pomocnych i podniosą Cię na duchu. Sprawa wydaje się prosta w rozwiązaniu. Zwłaszcza po uwzględnieniu już zrealizowanej części projektu.


    Pozdrawiam i czekam na ciąg dalszy.
  • #8 5356088
    dzik312
    Poziom 11  
    Posty: 15
    Pomógł: 1
    Ocena: 8
    Odświeżę trochę temat dla szukających podobnych rozwiązań.
    Generalnie zrobiłem coś podobnego na pracę dyplomową w tym roku. Już obroniona :))))))

    Sterownik: Beckhoff CX9000
    Wizualizacja: Wizcon
    Środowisko modelowania obiektu: Matlab/Simulink

    W Simulinku zrobiłem model oczyszczalni ścieków - łącznie około 30 napędów (z wprowadzeniem równań dynamiki itd.), plus oczywiście procesy (napowietrzanie, temperatura, itp.) i zbiorniki (bilans masy).
    Całość komunikuje się przez serwer OPC Beckhoff'a. W Matlabie jest gotowy toolbox OPC, Wizcon oczywiście też ma taki drajwer w standardzie.

    Pozdrawiam
  • #9 6296397
    paduda
    Poziom 11  
    Posty: 18
    Ocena: 2
    OPC to zdecydowanie dobry pomysł, każda SCADA ma driver w postaci klienta OPC!, a symulator można przygotować bez sterownika przemysłowego: wystarczy użyć CommServer, i stworzyć dla niego symulator przy pomocy DataProvider RDK.
  • #10 14473067
    plcsystem
    Poziom 15  
    Posty: 255
    Pomógł: 5
    Ocena: 17
    Wiem, że to bardzo stary temat, ale potrzebne mi są pewne informacje. Dlatego jeżeli użytkownicy Paduda Dzik312 i JuneJiv są aktywni jeszcze na forum to proszę o odzew.
  • #11 14475696
    gervee
    Specjalista Automatyk
    Posty: 1077
    Pomógł: 100
    Ocena: 94
    Możesz z panelu użytkownika zobaczyć kiedy dana osoba był ostatnio na forum - ewentualnie możesz wysłać PW (prywatną wiadomość) to może się odezwą.
  • #12 14476154
    plcsystem
    Poziom 15  
    Posty: 255
    Pomógł: 5
    Ocena: 17
    @dzik312 Dzięki za odzew na mailu. Tak jak pisałeś opiszę swój problem:
    Wymyśliłem, że jako prace inżynierską zrobię projekt sterowania i wizualizacji pracy kotła parowego. Robienie samego programu i wizualizacji nie mając żadnych sygnałów I/O jest trochę bez sensu. Stwierdziłem więc, że konieczne będzie symulowanie w czasie rzeczywistym obiektu. Wyznaczenie modelu matematycznego tego obiektu może być bardzo skomplikowane, ale na podstawie działania fizycznego obiektu można to dość w prosty sposób zrobić. Mając ten model, mogę wyznaczyć transmitancje, równania różniczkowe itd. I teraz chciałbym ten model skomunikować z jakimś sterownikiem PLC (najlepiej Unitronics) i jakąś SCADĄ np. TraceMode.
    Przeczytałem, w temacie, że robiłeś podobną rzecz, dlatego chciałbym żebyś się podzielił doświadczeniem, na co zwrócić uwagę, z jakich materiałów korzystałeś. Szczególnie chodzi mi o sam program w Matlabie, i skorzystanie z tego matlabowego Toolboxa OPC.
    I ogólnie jak wyglądał twój system? W taki sposób: Matlab<->ToolboxOPC<->RS232<->PLC<->OPC sterownika<->SCADA ?

    Pozdrawiam

Podsumowanie tematu

✨ Dyskusja dotyczy integracji symulacji procesu w Matlabie lub LabView z PLC SAIA oraz wizualizacją w systemie Wizcon. Głównym problemem jest dwukierunkowa komunikacja między symulatorem a sterownikiem PLC, gdzie PLC odczytuje parametry symulowanego procesu (np. temperaturę, przepływ) i na ich podstawie generuje sygnały sterujące (np. otwarcie zaworu). Proponowane rozwiązania obejmują wykorzystanie protokołów komunikacyjnych takich jak DDE (Dynamic Data Exchange) oraz OPC (OLE for Process Control). DDE umożliwia dwukierunkową wymianę danych między LabView, Matlabem i Wizconem, choć Matlab ma ograniczone wsparcie dla DDE. OPC jest rekomendowany jako bardziej uniwersalny i stabilny interfejs komunikacyjny, obsługiwany przez sterowniki Beckhoff i system Wizcon oraz dostępny w Matlabie poprzez toolbox OPC. Alternatywnie sugerowano symulację sprzętową z użyciem źródeł prądowych i napięciowych podłączonych bezpośrednio do PLC, jednak rozwiązanie to uznano za mniej elastyczne i inżynierskie. Przykłady realizacji obejmują modelowanie procesów w Simulinku (np. oczyszczalnia ścieków) i komunikację przez serwer OPC Beckhoff. Wskazano również na możliwość tworzenia symulatorów w środowisku CommServer z DataProvider RDK. W dyskusji podkreślono znaczenie znajomości protokołów komunikacyjnych i adresowania zmiennych w PLC oraz wykorzystania gotowych komponentów programistycznych (np. w Delphi, Visual Basic) do implementacji algorytmów symulacji i komunikacji.
Wygenerowane przez model językowy.
REKLAMA