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

s7-1200 odczyt wejść analogowych 0-10V i symulacja - dziwne zachowanie wyjść

mixja2 08 Sty 2017 03:20 2865 5
  • #1 16181805
    mixja2
    Poziom 9  
    Posty: 95
    Ocena: 10
    Czesc

    pare krotkich pytan

    1. jesli mam wejscie napieciowe 0-10 to na bloku norm_X na wejsciu daje int czy Uint min 0 max 27648 a wartosc iw64
    2. Czy jesli robie symulacje programu z wejsciami jak wyzej to w symulatorze podaje wartosci od 0 do 27648 i jest to jednoznaczne z tym jakby do sterownika dochodzi napiecie od 0 - 10 V czyli np 5V to 13824 a 10V to 27648.
    3. Robie program z wykorzystaniem czujnika osi x/y (2 wejscia nalogowe 0-10V ) i na symulacji dziala wszystko ladnie pieknie a po przeniesieniu na sterownik dziwnie sie zachowuje, jak by wszystko sie pomieszalo.
    Po podlaczeniu sterownika i sprawdzeniu online (czujnik w reku a wyniki na ekranie pc ) wszystko tez ladnie dziala jak nalezy ale na fizycznych wyjsciach (4 wyjscia w 8 roznych konfiguracjach) ze sterownika dzieja sie dziwne sprawy, albo zadne sie wyjscie nie załączy albo jedno

    [/center]
  • Pomocny post
    #2 16182035
    and_rog
    Poziom 23  
    Posty: 910
    Pomógł: 66
    Ocena: 150
    1:
    jak mam wejścia analogowe, to w zmiennych (PLC Tags) zawsze definiuje je jako int, niezależnie czy mam wejście 0-10V czy -10 +10V. Wyjście NORM_X to zawsze Real, z zakresu 0-1V

    2: tak.

    3:
    No i tu także trzeba sprawdzić algortym (koncepcję) programu. Jak możesz to załącz program do postu.
  • #3 16183125
    mixja2
    Poziom 9  
    Posty: 95
    Ocena: 10
    Udalo mi sie rozwiazac problem z pk3. chodzilo o to ze z funkcji wychodziły mi rożne zależności, na 4 wyjscia cyfrowe przypadalo 8 roznych kombinacji. W programie OB zrobilem 8 stykow NO i kazdy odpowiadal za inna kombinacje, i do stykow dodalem wyjscia (czyli wyjscia sie powtarzaly 8 kombinacji czyli 1 wyjscie w 3 roznych miejscach bylo powtorzone) i w symulatorze wychodzilo wszystko ok a sterownik sie motal, gdy zrobilem w programie tylko 4 wyjscia (czyli nie powtarzaly sie ) a dopasowalem po 3 wejscia do 1 wyjscia.

    Troche namotalem chodzi o to ze gdy mialem
    8 stykow NO na 4 wyjscia
    czyli np:
    i0.1---------q0.1
    i0.2---------q0.1-----q0.2
    i0.3---------q0.1-----q0.3
    i0.4---------q.02
    i0.5---------q0.2-----q0.3
    itd... do i0.8
    w taki sposob symulator czytal dobrze a sterownik wariowal
    gdy zapisalem to w taki sposob

    i0.1---------------q0.1
    i0.2------/
    i0.3------/

    i.02--------------q0.2
    i0.4------/
    i0.5-----/
    czyli 1 wyjscie na 3 wejscia i symulator i sterownik odczytali wszystko dobrze

    czyli z tad moje pytanie czy wyjscie cyfrowe np. q0.1 moze wystepowac tylko raz w projekcie i do niego musze dopasowac wejscia czy moge w roznych miejscach w projekcie dac to wyjscie zeby bylo sterowane z kilku punktow, z tego co wyzej napisalem i z mojego malego projektu wychodzi na to ze jesli to samo wyjscie jest stosowane w kilku miejscach to sterownik sie gubi
  • Pomocny post
    #4 16183541
    Andy74
    Poziom 25  
    Posty: 525
    Pomógł: 103
    Ocena: 24
    mixja2 napisał:
    czyli z tad moje pytanie czy wyjscie cyfrowe np. q0.1 moze wystepowac tylko raz w projekcie i do niego musze dopasowac wejscia czy moge w roznych miejscach w projekcie dac to wyjscie zeby bylo sterowane z kilku punktow, z tego co wyzej napisalem i z mojego malego projektu wychodzi na to ze jesli to samo wyjscie jest stosowane w kilku miejscach to sterownik sie gubi

    To nie sterownik się gubi w tym wypadku, tylko programista który nie zna zasady jego działania. Tak w skrócie mówiąc PLC wykonuje program w tzw. cyklach. Każdy cykl składa się z kilku faz, z których trzy najważniejsze z punktu widzenia programisty, to: odczyt stanu wejść fizycznych => wykonanie całego programu => zapis wynikowego stanu wyjść do wyjść fizycznych. Tak więc jeśli zmienisz w programie (w trakcie jednego cyklu) stan wyjścia choćby i 10-ciokrotnie, to fizycznie przyjmie ono tylko taki stan, jaki wynika z ostatniego działania na nim.

    Pozdrawiam
  • #5 16183612
    mixja2
    Poziom 9  
    Posty: 95
    Ocena: 10
    od tygodnia sie uczę makulatury mam maly stosik ale napisane jest to w taki sposób ze jak ktos wie o co chodzi to zrozumie bez problemu a jak ktoś nowy czyta to ciężko to wszystko zrozumieć wiec robie jeszcze podstawowe błędy (nie znalazlem kursu dla opornych :/) .
    sądziłem ze program idzie linia po lini i ze jak trafi na sygnała na wyjscie to da a jesli w nastepnej linicie bedzie brak sygnalu na to wyjscie to zostanie dalej zalaczone itd... a tu jesli dobrze zrozumialem najpierw caly program powinien byc a na koncu projektu dopiero sygnaly skierowane do wyjsc.

    Czyli rozumiem ze pierwszy sposób byl blednie zapisany a drugi poprawnie ? czy moze w jeszcze inny sposob to zrobic ?

    P.S. prawie 3 dni meczylem sie by odpalic sterownik w programi, az w koncu dowiedzialem sie ze Win10 nie jest kompatybilny z Tia portal, po formacie i wielogodzinnym instalowaniu wszystkiego od nowa udalo sie odpalic na win 7 bez problemu
  • Pomocny post
    #6 16183754
    Andy74
    Poziom 25  
    Posty: 525
    Pomógł: 103
    Ocena: 24
    mixja2 napisał:
    jesli dobrze zrozumialem najpierw caly program powinien byc a na koncu projektu dopiero sygnaly skierowane do wyjsc

    Tak, dobrze zrozumiałeś. To jest jedna z podstawowych różnic w działaniu pomiędzy uC a PLC o której trzeba pamiętać. Generalnie robi się to tak (przynajmniej ja tak robię), że stan do wyjścia przypisuje się tylko raz w całym programie.
    "Kursu dla opornych" nie widziałem w dziedzinie PLC, ale po zaledwie tygodniu nauki, to myślę że i tak sobie dobrze radzisz. Tu niestety trzeba cierpliwości, bo dziedzina bardzo szeroka, a doświadczenie przychodzi z czasem. Poza tym Siemens udostępnia za darmo całkiem przystępnie według mnie napisane podręczniki na swojej stronie, jak również wysyłkowo w wersji papierowej.

    PS. W razie uzasadnionej potrzeby jest sposób na obejście opisanej zasady pracy. Wystarczy (jeśli dobrze pamiętam) na końcu tagu przypisanego do wyjścia, czy samego odwołania do wyjścia dodać :P (mam nadzieję że nie podstawi mordki - dwukropek i P jak by co), czyli np:
    Out1:P   %Q0.1:P
    Wtedy stan wyjścia zostanie przypisany natychmiast.

    Pozdrawiam i powodzenia.;)
REKLAMA