Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Phoenix Contact tworzenie bloków funkcyjnych

amilo_pa 28 Aug 2012 19:44 3069 19
  • #1
    amilo_pa
    Level 9  
    Witam :)
    Ostatnimi czasy bawię się PC WORX-em i mam mały problem, otóż potrzebuje stworzyć z kawałka kodu programu blok funkcyjny z zadeklarowanymi przeze mnie wejściami i wyjściami. Szukałem trochę na internecie, w manualach ale niestety nie natrafiłem na rozwiązanie tego problemu. Jeśli ktoś miał styczność z tym środowiskiem to proszę o podpowiedź jak to zrobić:)
    z góry dziękuje za pomoc :)
    [28-30.06.2022, targi] PowerUP EXPO 2022 - zasilanie w elektronice. Zarejestruj się za darmo
  • #2
    PhoenixContact
    Level 10  
    Witam
    Należy stworzyć w drzewie projektu (prawy przycisk myszy na Logical POU's, Insert , Function Block) nową funkcję
    pisząc kod i deklarując zmienne należy zaznaczyć (właściwości Usage zmiennej) czy zmienna ma być lokalna (VAR) globalna (Var_External) wejściowa FB (VAR_INPUT) , wyjściowa (VAR_OUTPUT) , wejściowo-wyjściowa (VAR_IN_OUT)
    Po napisaniu kodu , FB zamknąć , zapisać , skompilować (F9) następnie funkcję w programie wywołać (np wybrać z okna Edit Wizard z grupy , która nazywa się tak samo jak projekt).
    Jeśli chcemy funkcję używać w innych projektach to w projekcie należy usunąć wszystkie niepotrzebne części (Physical Hardware, biblioteki , deklaracje typów zmiennych) , projekt skompilować , następnie otworzyć nowy projekt a funkcję "zaciągnąć" jako bibliotekę (Libraries, Insert , User Library )
  • #3
    amilo_pa
    Level 9  
    Bardzo dziękuje za wyczerpującą odpowiedź:)
    Dokładnie o to mi chodziło :)
    Czy w przypadku dodatkowych pytań mogę pisać na pw?
  • #4
    PhoenixContact
    Level 10  
    Proszę bardzo
  • #5
    jestam
    Automation specialist
    amilo_pa wrote:
    Czy w przypadku dodatkowych pytań mogę pisać na pw?


    Gdyby koledzy zdecydowali się pozostać na forum publicznym, z odpowiedzi kol. PhoenixContact mogliby skorzystać także inni.
  • #6
    amilo_pa
    Level 9  
    Witam:)
    Posiadam sterownik PLC ILC 150 ETH, utworzyłem w PC WORX-ie najprostszy generator przebiegu prostokątnego (załączony plik).
    I teraz moje pytanie: Jaką najmniejszą wartość czasu mogę wstawić pod zmienną V019?
    Z tego co wyczytałem w danych technicznych dotyczących tego sterownika, najkrótszy czas cyklu (Shortest cycle time (for cyclic task)) wynosi 1ms a więc najmniejszą wartość wpisaną w zmienną może być 1ms?
    Bardzo proszę o szybką odpowiedź :)
    Pozdrawiam serdecznie:)
  • #7
    PhoenixContact
    Level 10  
    należy sprawdzić jaki jest cykl programu w sterowniku (Default task cycle) parametr dostępny w Online/Project Control ... przycisk Info , zakładka Resource
    I ustawić najlepiej dwukrotnie większy w zmiennej V019
  • #8
    amilo_pa
    Level 9  
    A co jeśli "Default task cycle" wynosi 0ms?
    Tzn, że mogę wstawić dowolną wartość?
    Generator ten jest wykorzystywany do tworzenia przebiegu piłokształtnego, tzn częstotliwość pracy tego generatora determinuje szybkość przełączeń pomiędzy kolejnymi wartościami w przebiegu piłokształtnym ( od -100 do 100) i chciałbym aby ta częstotliwość była jak największa.
  • #9
    PhoenixContact
    Level 10  
    to znaczy że serownik jest w trybie STOP
    należy "wystartować" sterownik - przyciski Cold , Warm lub Hot na poprzednik oknie
  • #10
    amilo_pa
    Level 9  
    OK :P

    Cykl programu wyszedł 4 ms.
    Jest możliwość aby ten czas zmniejszyć?
  • #11
    PhoenixContact
    Level 10  
    nie bardzo
    to zależy co sterownik musi robić
    generalnie program do generowania impulsu w tasku Default - pozostałe POU w taskach cyklicznych
  • #12
    amilo_pa
    Level 9  
    Quote:
    generalnie program do generowania impulsu w tasku Default - pozostałe POU w taskach cyklicznych

    Nie rozumiem, można trochę jaśniej?:)
  • #13
    ElMapet
    Level 20  
    Witam

    Z tego co słyszałem sterowniki Phoenix zamontowane w fabrykach Audi same generują wizualizację.
    Czy ta funkcja jest dostępna tylko dla konkretnych zastosowań, czy uniwersalna?
  • #14
    amilo_pa
    Level 9  
    Między czasie pojawiły się dwa nowe problemy :/
    1. Dlaczego po zaimplementowaniu sterownika ILC 150 GSM/GPRS oraz modułu wejść analogowych w PC WORX-ie przejściu do zakładki przypisywania danych nie wyświetlają się wejścia i wyjście sterownika ILC150?
    Phoenix Contact tworzenie bloków funkcyjnych

    Czyżby powodem był fakt, że wejścia i wyjścia można deklarować tylko w obszarze pracy?

    2. Czy jest możliwość zaimplementowania modułu PWM w tym sterowniku? Ponieważ przy próbach zaimplementowania bloczku DIO_PWM wyskakuje komunikat, że nie jest on wdrożony dla ILC 150?
    Phoenix Contact tworzenie bloków funkcyjnych


    Bardzo proszę o anielską cierpliwość ponieważ są to moje pierwsze kontakty z tym sterownikiem i środowiskiem software-owym :)
  • #15
    amilo_pa
    Level 9  
    Witam.
    Bardzo proszę o odpowiedź na powyższe posty ponieważ jest mi to niezmiernie potrzebne.
  • #16
    PhoenixContact
    Level 10  
    Wejścia i wyjścia samego sterownika są już zadeklarowane jako zmienne Globalne
    ON_BOARD_INPUT_BIT0 .. ON_BOARD_OUTPUT_BIT0 ...
    Obsługa funkcji DIO_PWM nie jest zaimplementowana w sterowniku ILC 150 GSM/GPRS
  • #17
    sztomi
    Level 17  
    Bloczek DIO_PWM wymaga znacznie większych zasobów systemowych, nie da się go użyć w sterownikach klasy ILC 1xx (musi to być przynajmniej ILC 200).
    W tego typu sterownikach sygnał PWM najłatwiej zrealizujesz korzystając z dodatkowego modułu np. IB IL PWM/2, który ma dwa wyjścia PWM.
    Jego obsługa jest banalnie prosta - częstotliwością i wypełnieniem sterujesz za pomocą właściwie dwóch rejestrów.
  • #18
    amilo_pa
    Level 9  
    sztomi wrote:
    Jego obsługa jest banalnie prosta - częstotliwością i wypełnieniem sterujesz za pomocą właściwie dwóch rejestrów.


    Możesz to trochę rozwinąć ponieważ nie za bardzo rozumiem jak to zrealizować;/
  • #19
    sztomi
    Level 17  
    amilo_pa wrote:
    Możesz to trochę rozwinąć ponieważ nie za bardzo rozumiem jak to zrealizować;/

    Kolego,
    a czytałeś dokumentację do tego modułu ? Co z niej nie rozumiesz ?
    Podłączasz moduł do sterownika, dodajesz go do projektu wyszukując po magistrali Interbus w PC Worxie, przypisujesz zmienne,
    częstotliwością i wypełnieniem sterujesz wpisując odpowiednie wartości do rejestrów wskazanych w dokumentacji.

    Co jest dla Ciebie nie jasne?
    W ogóle podłączyłeś fizycznie moduł czy Twoje rozważania są czysto teoretyczne?
  • #20
    amilo_pa
    Level 9  
    Na chwile musiałem zaniechać prace z tym oprogramowaniem ;/
    Niestety podczas dalszej pracy napotkałem na małe komplikacje...

    sztomi wrote:

    W ogóle podłączyłeś fizycznie moduł czy Twoje rozważania są czysto teoretyczne?


    Jest to praca/projekt wykonywany w symulatorze więc nie zostało nic podłączone fizycznie.


    1.
    Po napisaniu programu wykorzystującego moduł PWM chciałem przypisać zmienne odpowiednim wyjściom ale nie jestem do końca pewien jak to zrobić.
    Zmienna "WZBUDZENIE_OUT" jest zmienną o częstotliwości 500 Hz a więc zgodnie z dokumentacją modułu PWM powinna zostać przypisana do DO1;
    zmienna "FREQUENCY_OUT" jest zmienną o częstotliwości 50 kHz a więc powinna zostać przypisana do wyjścia ~D01.
    Niestety w PC WORX nie ma takich oznaczeń i nie wiem jak to odpowiednio połączyć aby nie wyskakiwały błędy i ostrzeżenia.


    2.
    Drugi problem pojawił się przy module AI. O ile dobrze zrozumiałem z dokumentacji to chcąc mierzyć sygnał zmieniający się w zakresie 0-10V, bez filtra, w formacie IB IL muszę na poszczególne pozycje danych wstawić zera bądź jedynki, Tak jak zaznaczyłem to poniżej
    Phoenix Contact tworzenie bloków funkcyjnych

    Czy jest to dobrze pozaznaczane?
    I ostatni problem, po podłączeniu zmiennych U_SIECI i U_GENERATORA wyskoczył błąd:
    Za dużo wejść/wyjść w konfiguracji I/0.

    Jak mam go rozumieć i co jest jego przyczyną?

    Jest to mój pierwszy tak duży kontakt z PLC-kami i niestety mam problemy ze zrozumieniem rzeczy które niektórym mogą wydawać się banalne, więc proszę o wyrozumiałość i cierpliwość :)