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

Jak wykonać pracę krokową w Step7 z zatrzymaniem po każdym kroku?

Goompas 19 Mar 2007 13:54 3744 19
  • #1 3694909
    Goompas
    Poziom 13  
    Posty: 123
    Pomógł: 3
    Ocena: 2
    Jak sie wogole za to zabrac?
    Tzn chodzi aby po wykonaniu jednego kroku program sie zatrzymal i czekal na danie sygnalu do wykonania nastepnego kroku.
    Program ktory mam napisac bedzie bardzo rozbudowany i nie wydaje mi sie najlepszym i madrym rozwiazaniem ustawiac jakies znaczniki po wykonaniu kazdego kroku. Nie mam wogole koncepcji. Bede wdzieczny za kazda pomoc.
  • #2 3695267
    ziemson

    Poziom 16  
    Posty: 123
    Pomógł: 11
    Ocena: 4
    Z tymi znacznikami to nie taki zly pomysl chyba:) Ja program krokowy pisze w ten sposob (nawet bardzo rozbudowany), ze zakladam sobie kolejno np.: M100.0 = krok1, M100.1=krok2, M100.2=krok3, M100.3=krok4... itd. Program wykonywany jest w ten sposob, ze kolejny krok to reset bitu aktualnego i set bitu nastepnego. W ten sposob latwo mozna skakac sobie po wszystkich krokach jak i wykonywac pelna sekwencje od poczatku do konca procesu.
    Konto firmowe:
    PTControl Z.Smyk, R.Karczewski Sp.J.
    Montwiłła 55, Grodzisk Mazowiecki, 05-825
  • #3 3695972
    andy1955
    Specjalista Automatyk
    Posty: 700
    Pomógł: 136
    Ocena: 50
    bardzo szybkim rozwiązaniem twojego problemu jest zaprogramowanie kroków w S7 Graph.Tym sposobem możesz szybko rozgałęziać skoki (symultan albo alternatywnie)
    Inną metodą jest metoda oparta na skokach oraz rozkazie SPL (tłumacząc dosłownie: listwa skoków ) ale wymagane jest przy tym doświadczenie w tego typu programowaniu.
  • #4 3697179
    Goompas
    Poziom 13  
    Posty: 123
    Pomógł: 3
    Ocena: 2
    Tylko w przypadku znacznikow bedzie problem, program bedzie bardzo rozbudowany, obsluga 3 gniazd, 2 paletyzerow, to wyjdzie pewnie ponad 100 znacznikow.
    Chyba bede musial poszukac materialow o tym SPL.
  • Pomocny post
    #5 3697753
    andy1955
    Specjalista Automatyk
    Posty: 700
    Pomógł: 136
    Ocena: 50
    w tym przypadku zaprogramuj to w S7Graph.
    ponieważ w metodzie skokowej stracisz po pewnym czasie orientację (100 kroków = 100 skoków) a kiedy będziesz musiał kilka kroków uruchomić równolegle (symultan) lub alternatywnie - to będziesz miał problem-gigant.
    W s7Graph masz przegląd sytuacji w każdej chwili. Nie ma problemu z rozdzieleniem kroków i zaprogramowaniu kilku funkcji, które np. mogą jednocześnie biegnąć lub też alternatywnie (albo funkcja 1 albo funkcja 2 w zależności od uwarunkowań). Nie ma problemu jeśli potrzebujesz skoku do środka łańcucha (ażeby powtórzyć jakąś czynność) lub do początku.
    Możesz także zaprogramować w jednym FB kilka łańcuchów (funkcji) które będziesz wybierał i startował wg. potrzeby z głównego (pierwszego) łańcucha
    I to wszystko zmieścisz w jednym FB. A śledzenie przebiegu programu oraz wykrywanie usterek należy w tym wypadku do komfortu !
  • #6 3697859
    ziemson

    Poziom 16  
    Posty: 123
    Pomógł: 11
    Ocena: 4
    Nie znam algorytmu tego obiektu, ale 5 urzadzen do sterowania to chyba nie zbyt ogromna ilosc. Oczywiscie wrzucenie wszystkiego do jednego worka i napisanie calego programu w OB1 "zje" i 1000 krokow:D Ja od kilku lat uruchamiam kompleksowo linie produkcyjne i nigdy nie uzylem wiecej niz 10 krokow... Oczywiscie wszystko zalezy jak sie podejdzie do problemu.
    Konto firmowe:
    PTControl Z.Smyk, R.Karczewski Sp.J.
    Montwiłła 55, Grodzisk Mazowiecki, 05-825
  • #7 3698042
    Goompas
    Poziom 13  
    Posty: 123
    Pomógł: 3
    Ocena: 2
    A ja dopiero zaczynam :)
    Chodzi o to aby krokowo byl wykonywany kazdy pojedynczy ruch a np do obslugi jednego gniazda bedzie uzyte 6 silownikow, kilka chwytakow itd
    Czyli krok 1: otwarcie chwytaka, 2: podniesienie silownika, reszta urzadzen caly czas stoi, itd
    Kazdy kolejny krok jest wykonywany po nacisnieciu przycisku.
    Moze ktos by zademonstrowal na byle przykladzie?
  • #8 3698101
    ziemson

    Poziom 16  
    Posty: 123
    Pomógł: 11
    Ocena: 4
    To ja proponuje tak: 1 krok to otwarcie chwytaka, nastepnie timer i podniesienie silownika. Wszystko w pierwszym kroku. Przemysl ile tak naprawde potrzebujesz krokow i nie koniecznie musi byc tak, ze krok to jedno urzadzenie... W jednym kroku mozesz wlaczac/wylaczac kilka urzadzen np, przy pomocy timerow.
    Konto firmowe:
    PTControl Z.Smyk, R.Karczewski Sp.J.
    Montwiłła 55, Grodzisk Mazowiecki, 05-825
  • #9 3698143
    Goompas
    Poziom 13  
    Posty: 123
    Pomógł: 3
    Ocena: 2
    Tzn takie wytyczne dostalem.
    W pracy krokowej urzadzenia ma wykonac tylko jeden ruch jakims elementem i czekac na wcisniecie przycisku(moze to trwac 5s a moze i 50m), dopiero wtedy moze wykonac kolejny ruch i tak az do wykonania pelnego cyklu. Z praca automatyczna problemu nie bedzie, ale nie wiem wlasnie jak to przystopowac po kazdym ruchu gdy przelacznik nie bedzie na auto ale na krok i skad ma wiedziec jaki krok nastepny.
  • #10 3698190
    ziemson

    Poziom 16  
    Posty: 123
    Pomógł: 11
    Ocena: 4
    Przyklad kawalka programu. Wersja najprostsza:)
    Załączniki:
    • Jak wykonać pracę krokową w Step7 z zatrzymaniem po każdym kroku? praca krokowa.JPG (49.16 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    Konto firmowe:
    PTControl Z.Smyk, R.Karczewski Sp.J.
    Montwiłła 55, Grodzisk Mazowiecki, 05-825
  • #11 3698238
    Goompas
    Poziom 13  
    Posty: 123
    Pomógł: 3
    Ocena: 2
    Wlasnie o takim czyms myslalem jako najprostszym rozwiazaniu, ale program bedzie bardzo rozbudowany czyli bedzie mysle grubo ponad 100 krokow.
    A moze da rade to zrobic na jakims licznikiu, ktory z kazdym nacisnieciem przycisku gdy przelacznik jest w pozycji krok, bedzie zwiekszal sie o jeden. Tylko jak wtedy wykonywac skos odwolujac sie do tego licznika.
    Zreszta na jedno chyba wyjdzie, bo kazdy krok i tak bedzie musial byc ponumerowany.
  • Pomocny post
    #12 3698242
    ziemson

    Poziom 16  
    Posty: 123
    Pomógł: 11
    Ocena: 4
    No dokladnie, wtedy zamiast styku "krok" trzebe bedzie urzyc komparatora, co niepotrzebnie zabierze pamiec CPU.
    Konto firmowe:
    PTControl Z.Smyk, R.Karczewski Sp.J.
    Montwiłła 55, Grodzisk Mazowiecki, 05-825
  • #13 3698257
    Goompas
    Poziom 13  
    Posty: 123
    Pomógł: 3
    Ocena: 2
    No nic, dziekuje Ci bardzo.
    Skorzystam chyba z tego rozwiazania.
    Chyba ze ktos ma jeszcze jakies pomysly.
    Nie wiem jak z tym S7Graph bo niestety nie posiadam ;/

    Dodano po 38 [minuty]:

    Ale juz widze problem w tym rozwiazaniu.
    Jezeli urzadzenie bedzie pracowalo normalnie i ktos nagle przelaczy z Auto na Krok, nie wiadomo w jakiej pozycji znajduja sie poszczegolne elementy, a tutaj odrazu zakladamy ze wystartuje od poczatku, a chcialbym zeby w tej sytuacji cykl byl kontynuowany, ale krokowo.
  • #14 3698362
    ziemson

    Poziom 16  
    Posty: 123
    Pomógł: 11
    Ocena: 4
    No niestety w trzech networkach za wiele sie zrobic nie da:) To jak bedzie sie zachowywal program w sytuacji nietypowej, zalezy tylko od programisty. Jesli kazde urzadzenie ma sygnal zwrotny o swoim stanie mozna zalozyc, ze dany krok identyfikuje stan urzadzen. Trzeba wtedy kontrolowac stan kazdego urzadzenia w kazdym kroku. Ale nikt nie mowil, ze bedzie lekko:)
    Konto firmowe:
    PTControl Z.Smyk, R.Karczewski Sp.J.
    Montwiłła 55, Grodzisk Mazowiecki, 05-825
  • #15 3698991
    Goompas
    Poziom 13  
    Posty: 123
    Pomógł: 3
    Ocena: 2
    Jednak w tym co zalaczyles jest problem.
    Po wcisnieciu NextKrok program przelatuje do samego konca, poniewaz dostaje impuls od NextKrok, uaktywnia nastepny krok, ale trwa to minimalna chwile, wiec uaktywnia sie nastepny krok, tak jakby "lawinowo". Trzeba to ograniczyc do kazdorazowego nacisniecia przycisku NextKrok.
    Trzeba badz wstawic zwloke czasowa po kazdym NextKrok, badz rozwiazac to w inny sposob.
  • #16 3699010
    ziemson

    Poziom 16  
    Posty: 123
    Pomógł: 11
    Ocena: 4
    Rzeczywiscie:) Zalaczam poprawke!
    Załączniki:
    • Jak wykonać pracę krokową w Step7 z zatrzymaniem po każdym kroku? praca krokowa1.JPG (42.25 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    Konto firmowe:
    PTControl Z.Smyk, R.Karczewski Sp.J.
    Montwiłła 55, Grodzisk Mazowiecki, 05-825
  • #17 3699500
    Goompas
    Poziom 13  
    Posty: 123
    Pomógł: 3
    Ocena: 2
    Ladnie :)
    O to chodzi, dorobilem obsluge pracy automatycznej(w zalacznikach)
    Jednak przy pracy automatycznej, jeszcze chcialbym, aby pamietal, gdy przelacze z auto na krok, swoj ostatni wykonywany krok i go kontynuowal.
    Załączniki:
    • Jak wykonać pracę krokową w Step7 z zatrzymaniem po każdym kroku? 1.JPG (28.83 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    • Jak wykonać pracę krokową w Step7 z zatrzymaniem po każdym kroku? 2.JPG (22.21 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    • Jak wykonać pracę krokową w Step7 z zatrzymaniem po każdym kroku? 3.JPG (32.55 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #18 3701714
    ziemson

    Poziom 16  
    Posty: 123
    Pomógł: 11
    Ocena: 4
    Ale dlaczgo ma nie pamietac kroku? Przeciez krok jest "zasetowany" i jest podtrzymywany. Mozna nawet zapisac kroki w DB i nawet po zaniku zasilania sterownika beda pamietane.
    Konto firmowe:
    PTControl Z.Smyk, R.Karczewski Sp.J.
    Montwiłła 55, Grodzisk Mazowiecki, 05-825
  • #19 3701753
    Goompas
    Poziom 13  
    Posty: 123
    Pomógł: 3
    Ocena: 2
    Chodzi o to ze nie pamieta przechodzac z pracy auto na krok.
  • #20 3722514
    step
    Poziom 11  
    Posty: 14
    Witam!
    Ja widzę to tak jak ja bym to zrobił.
    1.Wybrał bym język LAD.
    2.Stworzył bym blok FB.
    3.Sparametryzował bym go na wartościach lokalnych wszystkie wejścia jako in wszystkie wejścia out wyjścia w start wszystkie zmienne pomocnicze oraz stworzył bym jedną zmienną pomocniczą w formacie int posłużyła mi by do stworzenia sekwencera.W tym bloku można sobie sparametryzować timery nie koniecznie zgodne z formatem siemensa np. funkcje TON.
    4.Pisząc program początek cyklu przypisał bym jako krok pierwszy a po zakończeniu kroku czyli określonego warunku wpisywał bym nastempny krok.Używając timera Ton sparametryzowanego wcześniej można użyć do zabezpieczenia układu czyli ile dany krok musi być wykonywany tzw.watch dogi.
    5.Wywołujemy blok FB wraz z blokiem DB np.OB1
    6.Jeśli używasz funkcji Ton należy jak pobrać z listy SFB4
    7.jeśli używasz w bloku FB wartości lokalnych musisz przed przed każdym adresem poprzedzić #.
    8.Nie pozostaje jak podstawić adresy wejść i wyjść w wywołanym bloku OB1.
    Jeśli napiszesz w ten sposób to kroki będą pamiętane w bloku DB i po wyłączeniu napięcia sterownik będzie pamiętał w jakim kroku skończył.
    Pozdrawiam.

Podsumowanie tematu

✨ Dyskusja dotyczy implementacji pracy krokowej w środowisku Step7, gdzie program ma zatrzymywać się po wykonaniu każdego kroku i oczekiwać na sygnał do przejścia do następnego. Proponowane rozwiązania obejmują stosowanie znaczników bitowych (np. M100.0, M100.1 itd.) do oznaczania kolejnych kroków, z resetowaniem i ustawianiem bitów dla przejścia między krokami. Jednak przy dużej liczbie kroków (ponad 100) taka metoda może być niepraktyczna. Alternatywnie rekomendowane jest użycie S7Graph, który umożliwia graficzne programowanie sekwencji kroków, obsługę rozgałęzień (symultan, alternatywnie) oraz łatwe zarządzanie wieloma łańcuchami funkcji w jednym bloku funkcyjnym (FB). S7Graph pozwala na lepszą kontrolę i śledzenie przebiegu programu, co jest istotne przy rozbudowanych aplikacjach z wieloma urządzeniami. W przypadku braku dostępu do S7Graph, sugerowano implementację licznika kroków zwiększanego przy każdym naciśnięciu przycisku, co wymaga jednak dodatkowej logiki i komparatorów. Poruszono też problem zachowania stanu kroków przy przełączaniu trybu pracy z automatycznego na krokowy, co wymaga monitorowania stanów urządzeń i zapisywania kroków w pamięci (np. w DB). Przykładowe fragmenty kodu i poprawki do obsługi impulsów przycisku NextKrok zostały omówione, aby uniknąć wielokrotnego przejścia przez kolejne kroki. Wskazano również na możliwość użycia timerów TON do zabezpieczenia i synchronizacji kroków oraz na konieczność modularnego podejścia do programowania w języku LAD z blokami FB i DB.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA