Elektroda.pl
Elektroda.pl
X
SterControl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Jak ustawić woltomierz w PLC

17 Gru 2009 11:17 3384 20
  • Poziom 12  
    Może wyjasnie dokładniej, Jak symulowac woltomierz w znanym programie znanej firmy niemieckiej. np, chces ustawic wyjscia zaleznie od napiecia na woltomierzu.

    Przepraszam że tak zawile pisze ale moje posty sa usuwane, nie wiem dla czego, pisałem do modratora, ale łatwiej jest usunac niz odpowiedziec dlaczego sie usuwa, Jedyne co mogło złamac regulamin, to nazwa firmy wiec celowo jej nie umiesciiłem
  • SterControl
  • Poziom 15  
    Chcac symulowac napiecie na wejsciu analogowym musisz wpisac jakas wartosc do slowa PIW 0, itd... numer slowa zalezy od adresu jaki nadales wejsciom analogowym w HWConfig.

    Jesli chodzi o kwestii ustawiania wyjsc, to zalezy jakie warunki stworzysz w programie, ale ogolnie w twoim przypadku uzywasz komparatora wartosci Integer.
  • Poziom 12  
    jest takie zadanie:
    zrealizowac funkcje woltomierza odczytujaca napiecie podane na wejsciu modulu analogowego

    adres_AI - parametr wejsciowy WORD - okresla adres kanału dla którego powinna zostac okreslona wartosc npiecia

    zakres - parametr wejsciowy REAL - max wartosc zakresu pomiarowego

    wart_analog - parmetr wyjsciowy REAL - wartosc napiecia mierzonego w kodzie rzeczywistym

    wg HWConfig wejscie analogowe zaczyna sie od 256 - 271

    Zrobiłem deklaracje:: in adres_AI WORD; in zakres REAL: out wart_analog REAL
    blok OB 1
    CALL FC 21
    zakres :=5.000000e+000
    adres_AI :=PIW251
    warto_analog:=MD40

    blok FC 21
    L #adres_AI
    ITD
    DTR
    L 2.764800e+004
    /R
    L #zakres
    *R
    T #warto_analog


    Kiedy wpisuje jakas wartosc w komorce PIW251 (np 4)
    to w MD40 pojawia sie dziwna liczba ( w tym przypadku - 977117488)

    Nie wiem czy mam zle "skonfigurowany woltomierz" czy co innego?
    Prosiłbym o jakies wskazówki (jestem poczatkujacy i jakos ciazko mi to ogarnac)
  • SterControl
  • Pomocny post
    Specjalista Automatyk
    twój błąd polega na odczytaniu wyniku.Musisz także podgląd wartości ustawić na REAL.
    Adresy PIW 256/271 a użyłeś adresu 251 ?
    Poza tym PIW to Integer a nie Word (wartość może być ujemna)
    Zakres pomiaru należy także ustawić w HKonfig (w przypadku realnego sterowania lub realnej symulacji)
  • Poziom 12  
    rzeczywiscie, głupi bład, Mam teraz PIW 257
    wart_analog - parmetr wyjsciowy jest ustawiony na REAL (odczyt w komorce MD40)

    w HKonfig ustawione jest na wejsciu i wyjscie +- 10 V (measuring range - measuring type E )

    No nie wiem co jest

    Dodano po 8 [minuty]:

    arek.m napisał:
    Witam
    Można zrobić to za pomocą bloku FC105, i wywołując go z OB35.
    Przesyłam przykład.


    RANY!!! jak to otworzyc? No nie moge, moze wklej kod
  • Poziom 22  
    Otwiera się ze Step 7 tylko trzeba rozpakować winzip'em
  • Specjalista Automatyk
    Cytat:
    wg HWConfig wejscie analogowe zaczyna sie od 256 - 271

    Cytat:
    rzeczywiscie, głupi bład, Mam teraz PIW 257

    ????
    w Step7 adresowanie jest bajtowe:
    1. PIW 256 (2 bajty)
    2. PIW 258
    itd.
    Dlaczego więc użyłeś adresu PIW 257 zamiast PIW 256 ?
    W twoim przypadku (woltomierz) zdefiniowany zakres w programie musi się zgadzać
    z zakresem w HKonfig ponieważ tylko przy 100% wysterowaniu wejścia otrzymasz 27648.
    Chcesz wykorzystać zakres -10 +10V zastosuj do skalowania FC105
  • Poziom 12  
    ciagle sie ucze, głupi bląd

    czy moze ktos napisac jak taki program
    jest zbiornik wody, który ma np 100l pojemnosci i chcemy odczywywac aktualna wartosc wody w zbiorniku. aby pokazywało że zbiornik jest wypełnoiny w 75 (tutaj procentach)
  • Poziom 12  
    nikt nie wie jak to napisac, ja napisałem taki

    zbierana jest deszczowka do zbiornika 1, on zasila zbiornik 2, jesli nie ma wody w zbiorniku 1 to zbiornik 2 zasilany jest z sieci


    AN I 0.0 // jesli czujnik 1 zalany = 0
    A I 0.1 // i czujnik 2 zalany = 1
    = Q 0.0 // zbiornik pełny i moze zasilac zbiornik 2

    // blad czujnikow w zbiornikow
    A I 0.0
    A I 0.1
    = Q 0.2 // blad czujnika
    //////


    A Q 0.0
    A I 0.2 // czujnik 3 zalany = 1 -- trzeba spuscic wode ze zbornika (bo zbiornik 2 przeleje sie)
    = Q 1.0 // spuszczanie wody ze zbiornika

    A Q 0.0 // zbiornik pełny i moze zasilac zbiornik 2
    AN I 0.3 // zbiornik 2 pusty = 0
    = Q 1.1 //zalacz zawor ( zasilanie zbiornika 2)


    AN I 0.3 // zbiornik 2 pusty = 0
    AN Q 0.0 // i zbiornik pusty
    = Q 1.2 // zasilanie zbiornika 2 z sieci

    ale nie wiem jak to zrobic na analogach, chce zastapic trzy czujniki binarne w zbiorniku 1 na analogowe, czy ktos moze mi pomoc????
  • Specjalista Automatyk
    najpierw zrób rysunek z rozmieszczeniem czujników.
    W programie stosuj raczej SET (S) i RESET (R) zamiast "=".
    Program w tym stanie jaki jest - nie będzie działać poprawnie.
    Jeżeli z tym się uporasz to możemy przejść do analogzch pomiarów ilości wody.
  • Poziom 12  
    Na sylumatorze wszystko dziala, oczywiscie jest to prosty program, mogłby byc pewnie lepszy ale poki co taki mi wyszedł i działa. Postaram sie zrobic z SET i Reset. Mam tu rysunek (nie wiem czy o taki chodziło)
    Jak ustawić woltomierz w PLC
  • Specjalista Automatyk
    Cytat:

    AN I 0.0 // jesli czujnik 1 zalany = 0
    A I 0.1 // i czujnik 2 zalany = 1
    = Q 0.0 // zbiornik pełny i moze zasilac zbiornik 2

    Przyjmuję,że zbiornik 1 ma pojemność 100l.
    Czyli pełny= 100l, niepełny 99,5l (czujnik binarny).Zbiornik 2 będzie napełniany tylko wtedy gdy w zbiorniku 1 będzie między 100-99,5 litrów wody tzn. do zbiornika 2 przelejesz 0,5l wody.
    Ten problem występuje także w dalszej części programu.Dlatego napisałem, ze program nie będzie działać poprawnie.
  • Poziom 12  
    jesli czujnik 1 i czujnik 2 sa zalane, znaczy że zbiornik 1 moze zasilac zbornik 2, ze ma tyle wody aby napełnic zbiornik 2, czujnik 2 moze byc umieszczony na pozionie aby zapelnic zbiornik 2, a wiec nieaktywny czujnik 2 dopiero powoduje zasilanie z sieci zbiorkina 2,
    zalezy tylko gdzie umiescimy czujniki, oczywiscie rysynek jest pogladowy. Wykonanie tego na czujnikach binarnych jest troche bez sensu dlatego interesuje mnie zastosowanie analogów
  • Pomocny post
    Specjalista Automatyk
    Cytat:
    Wykonanie tego na czujnikach binarnych jest troche bez sensu dlatego interesuje mnie zastosowanie analogów

    jak najbardziej ma sens !!
    Przy czujnikach analogowych i zaworach digitalnych (załącz - wyłącz) dojdziesz do takiego punktu,że będziesz musiał zdefiniować merker (flag ) , który załączy lub wyłączy zawór np. od 100L do 10L w zbiorniku 1 = możliwe napełnianie zbiornika 2 i będzie to sygnał binarny.
    Napisz poprawnie program dla czujników a potem będzie go można zmodyfikować (zamiast wejść I0.0,0.1,0.2,0.3 wprowadzi się merkery) wprowadzając czujniki analogowe.
  • Poziom 12  
    no to zastapiłem je markerami, mam nadzieje ze o to chodziło, czy mozesz zastapic binarne analogami


    A I 0.0
    = M 0.0
    A I 0.1
    = M 0.1
    A I 0.2
    = M 0.2
    A I 0.3
    = M 0.3

    AN M 0.0 // jesli czujnik 1 zalany = 0
    A M 0.1 // i czujnik 2 zalany = 1
    = Q 0.0 // zbiornik pełny i moze zasilac zbiornik 2


    A Q 0.0
    A M 0.2 // czujnik 3 zalany = 1 -- trzeba spuscic wode ze zbornika
    = Q 1.0 // spuszczanie wody ze zbiornika

    A Q 0.0 // zbiornik pełby i moze zasilac zbiornik 2
    AN M 0.3 // zbiornik 2 pusty = 0
    = Q 1.1 //zalacz zawor ( zasilanie zbiornika 2)


    AN M 0.3 // zbiornik 2 pusty = 0
    AN Q 0.0 // i zbiornik pusty
    = Q 1.2 // zasilanie zbiornika 2 z sieci

    wg mnie to trzeba by zdefiniowac cos takiego
    CALL FC 24
    wejscie:= jakies wejscie np PIWxxx
    wysok_zbiornika:=jakas wartosc
    promien :=jakas wartosc
    biezwysok :=MD10 (odczytanie poziomu wody w zbiorniku
  • Specjalista Automatyk
    nie czytasz uważnie moich postów :cry:
    co napisałem o markerach ?
    dlaczego program jest niepoprawny ?
  • Poziom 9  
    Hej,

    jesli chcesz skowertowac wejscie analogowe (IW/PIW) do poziomu zbiornika (REAL), mozesz uzyc takiego prostego programiku:

    // w OB1 wywolujesz FC12:

    CALL FC 12
    Wejsc_INT :=PIW0 //Twoje wejscie analogowe (integer)
    Poziom_MAX:=1.000000e+002 //Twoj maksymalny poziom zbiornika (tu np. 100)
    Poziom :=QD0 //Aktualny poziom zbiornika

    // w FC 12:

    L #Wejsc_INT
    ITD
    T #Temp_D
    DTR
    T #Temp_R

    L 27648
    ITD
    T #Temp2_D
    DTR
    T #Temp2_R

    L #Temp_R
    L #Temp2_R
    /R
    T #Stosunek



    L #Stosunek
    L #Poziom_MAX
    *R
    T #Poziom

    Tak w posty sposob mozesz zamienic wejscie analogowe integer na poziom zbiornika real :) Dalsza czesc programu powinna juz byc prosta. Porownujesz wartosc zbiornika z Twoimi limitami i ustalasz co ma sie dziac;) Pozdrawiam ;)
  • Poziom 12  
    czytam uwaznie, ale jak pisalem wczesniej dopiero zaczynam przygode z PLC i nie potrawie w lot zrozumiec o to chodzi, dlatego pytam na forum.
    ciagle walcze z programam (dzieki apacz - moze uda mi sie wpasowac jakos to co napisales- moze dla Ciebie to jest proste).
    Andy, moze napisz jak Ty to bys zrobił, bo ja nie jestem w stanie tego zrobic tak jak chcesz, wole miec napisany i przeanalizowac go, a nie krecic sie w koło
  • Poziom 12  
    wielkie dzieki za pomoc