<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Archiwa jump - ASCONS</title>
	<atom:link href="https://www.ascons.pl/tag/jump/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.ascons.pl/tag/jump/</link>
	<description>Praktyczne podejście do przetwórstwa tworzyw sztucznych</description>
	<lastBuildDate>Fri, 06 Jan 2023 20:21:56 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://www.ascons.pl/wp-content/uploads/2021/11/cropped-ASCONS-300DPI-bez-tla-1-e1636903758380-32x32.png</url>
	<title>Archiwa jump - ASCONS</title>
	<link>https://www.ascons.pl/tag/jump/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Podprogramy Wittmann</title>
		<link>https://www.ascons.pl/podprogramy-wittmann/</link>
					<comments>https://www.ascons.pl/podprogramy-wittmann/#comments</comments>
		
		<dc:creator><![CDATA[Ascons]]></dc:creator>
		<pubDate>Tue, 16 Feb 2021 13:15:26 +0000</pubDate>
				<category><![CDATA[Roboty]]></category>
		<category><![CDATA[ascons]]></category>
		<category><![CDATA[battenfeld]]></category>
		<category><![CDATA[call]]></category>
		<category><![CDATA[consulting]]></category>
		<category><![CDATA[doradztwo technologiczne]]></category>
		<category><![CDATA[formy wtryskowe]]></category>
		<category><![CDATA[injection]]></category>
		<category><![CDATA[injection molding]]></category>
		<category><![CDATA[injection moulding]]></category>
		<category><![CDATA[jump]]></category>
		<category><![CDATA[podprogram]]></category>
		<category><![CDATA[programowanie robota]]></category>
		<category><![CDATA[programowanie wittmann]]></category>
		<category><![CDATA[ret]]></category>
		<category><![CDATA[robot]]></category>
		<category><![CDATA[subr]]></category>
		<category><![CDATA[subroutine]]></category>
		<category><![CDATA[szkolenia ustawiaczy]]></category>
		<category><![CDATA[szkolenia z wtrysku]]></category>
		<category><![CDATA[tworzywa sztuczne]]></category>
		<category><![CDATA[ustawiacz]]></category>
		<category><![CDATA[wittmann]]></category>
		<category><![CDATA[wsparcie technologiczne]]></category>
		<category><![CDATA[wtryskiwanie]]></category>
		<category><![CDATA[wtryskiwanie tworzyw]]></category>
		<guid isPermaLink="false">http://nastawiacz.pl/?p=909</guid>

					<description><![CDATA[<p>Jeżeli jeszcze nie wiesz co to są podprogramy w robotach Wittmann to ten wpis wszystko Ci wyjaśni. A jeżeli już z nich korzystasz to również zachęcam do lektury, być może ...</p>
<p>Artykuł <a href="https://www.ascons.pl/podprogramy-wittmann/">Podprogramy Wittmann</a> pochodzi z serwisu <a href="https://www.ascons.pl">ASCONS</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Jeżeli jeszcze nie wiesz co to są podprogramy w robotach Wittmann to ten wpis wszystko Ci wyjaśni. A jeżeli już z nich korzystasz to również zachęcam do lektury, być może dowiesz się czegoś więcej, czegoś co pozwoli Ci jeszcze przejrzyściej programować <img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Zanim jednak omówimy sobie jak wykorzystać podprogramy pisząc program przebiegu dla robota <a href="https://www.wittmann-group.com/pl">Wittmann</a> powiem kilka słów na temat programowania strukturalnego.</p>
<p>Dawno temu kiedy powstawały pierwsze programy nikt nie zwracał uwagi na jego czytelność. Dlaczego? Bo programy były bardzo krótkie, mieściły się na jednej kartce A4. Pisano je wtedy przy wykorzystaniu tzw. &#8222;spaghetti code&#8221;. Aktualnie wraz z rozwojem programowania, kod jest coraz dłuższy, a jego interpretacja coraz trudniejsza. Programowanie strukturalne to była pierwsza próba nadania struktury programom, tak, żeby stały się one czytelne m.in. dzięki zastosowaniu podziału na funkcje, bloki i podprogramy.</p>
<h2>Czy warto stosować komentarze w programowaniu?</h2>



<p>Wykorzystując podprogramy podczas pisania kodu dla robotów Wittmann czynisz program czytelnym i w przyszłości będziesz go mógł łatwiej rozbudować. Jest jeszcze jedna istotna rzecz, o której musisz pamiętać &#8211; komentarze. Tak, są one bardzo istotne w każdym programie przebiegu. Dzięki nim jeszcze lepiej jest zrozumieć sposób działania danego programu. Możesz je pisać jako oddzielne wiersze w swoim programie lub możesz zastosować programowanie samo komentujące się <img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Co to oznacza? Już wyjaśniam. Programowanie samo komentujące się to nic innego jak logiczne i łatwe w interpretacji nadawanie nazw wierszom, blokom, podprogramom lub zmiennym, które od razu będą opisywać funkcję jaką pełnią. Tyle i aż tyle <img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Może przytoczę przykład, żebyśmy wiedzieli co mam na myśli. Załóżmy, że w naszym programie używamy zmiennej do oznaczenia sztuki wadliwej. Jeżeli użyjesz zmiennej podczas programowania to będzie ona miała domyślną nazwę:</p>
<ul>
<li>&#8222;variable 001&#8221;</li>
</ul>
<p>Już pewnie się domyślasz, że po napotkaniu takiej zmiennej w programie nie będzie łatwo zrozumieć za co ona odpowiada. A teraz nadajmy tej samej zmiennej nazwę:</p>
<ul>
<li>&#8222;część wadliwa&#8221;</li>
</ul>
<p>Jeżeli spotkasz tak nazwaną zmienną w programie to jej interpretacja będzie zdecydowanie łatwiejsza. I wcale nie użyliśmy tu dodatkowego komentarza w programie.</p>
<p>Jak widzisz jest to ważny czynnik, który nada Twojemu programowi lekkości i czytelności i na tym nam powinno zależeć.</p>
<h2>Podprogramy Wittmann CALL &#8211; SUBR &#8211; RET</h2>
<p>Program przebiegu w robotach austriackiego producenta wykonywany jest zasadniczo wiersz po wierszu począwszy od wiersza 0001, z zachowaniem rosnącej kolejności. Jeżeli jednak chcesz reagować na różne zdarzenia podczas pracy jesteś zmuszony do zmiany tej kolejności.</p>
<p>Przy pomocy poleceń <strong><em>Call &#8211; Subr &#8211; Ret</em></strong>, które masz dostępne w menu, możesz utworzyć strukturę programu przebiegu opartą na podprogramach i wywoływać te podprogramy warunkowo lub bezwarunkowo.</p>
<p>

</p>
<p>Wywoływania podprogramów pozwalają rozgałęzić program na szereg różnych instrukcji. Jeżeli robot wykona dany podprogram, wraca ponownie do wiersza, który znajduje się po powyższym wywołaniu. Dzięki temu masz możliwość wielokrotnego wywoływania danej instrukcji, która może być zaprogramowana tylko jeden raz. To stanowi duże uproszczenie i pozwala łatwiej czytać program.</p>
<p>Podczas programowania programu przebiegu mamy dostępne trzy podstawowe polecenia:</p>
<p>

</p>
<ol class="wp-block-list">
<li>Polecenie <strong>CALL</strong> &#8211; za pomocą polecenia &#8222;CALL nazwa&#8221; wywołujesz podprogram &#8222;nazwa&#8221;. Robot po powyższym poleceniu rozpoczyna wykonywanie poleceń w podprogramie.</li>
<li>Polecenie <strong>SUBR </strong>(SUBROUTINE) &#8211; przez polecenie &#8222;SUBR nazwa&#8221; definiujesz początek podprogramu.</li>
<li>Polecenie <strong>RETURN </strong>&#8211; jeżeli chcesz zakończyć podprogram to musisz skorzystać z komendy RET, która przenosi Cię ponownie do programu głównego do wiersza znajdującego się po poleceniu CALL.</li>
</ol>
<p>Teraz zwróć uwagę na &#8222;Rysunek 1&#8221;. Tu właśnie widzisz przykład programowania strukturalnego.</p>



<div class="wp-block-image">
<figure class="aligncenter size-medium"><img fetchpriority="high" decoding="async" class="aligncenter wp-image-914 size-full" title="programowanie strukturalne WIttmann" src="https://www.ascons.pl/wp-content/uploads/2020/08/Obraz1-1.png" alt="programowanie strukturalne wittmann robot" width="180" height="508" srcset="https://www.ascons.pl/wp-content/uploads/2020/08/Obraz1-1.png 180w, https://www.ascons.pl/wp-content/uploads/2020/08/Obraz1-1-106x300.png 106w" sizes="(max-width: 180px) 100vw, 180px" />
<figcaption><br />Rysunek 1: Przykład programu strukturalnego dla robotów firmy Wittmann.</figcaption>
</figure>
</div>



<p>Cała logika naszego programu zawiera się w pierwszych pięciu wierszach.</p>
<ul>
<li>CALL INIT to podprogram, który będzie wykonany raz, podczas uruchomienia robota.</li>
<li>START: to tzw. etykieta do której będziemy zawsze wracać po zakończeniu programu.</li>
<li>CALL REMOVAL to podprogram, który będzie odpowiadał za pobranie wypraski z formy wtryskowej.</li>
<li>CALL PLACE to instrukcje odłożenia wypraski na taśmociąg.</li>
<li>JMP START powoduje skok do etykiety START, którą wyżej opisałem.</li>
</ul>



<h3 class="wp-block-heading">Podprogramy &#8211; wytyczne</h3>



<p>Teraz przedstawię ci kilka wytycznych, których powinieneś przestrzegać podczas pisania programu aby zagwarantować możliwość ich realizowania:</p>



<ul class="wp-block-list">
<li>Podprogramy muszą być zakończone poleceniem <strong>RET</strong>.</li>
<li>Nie opuszczaj podprogramu przy wykorzystaniu polecenia <strong>JUMP</strong>, (jeżeli &#8222;wyskakiwanie&#8221; z podprogramu będzie występowało okazyjnie to nie będzie problemu, ale jeżeli w każdym przebiegu będzie następowało takie wyjście to możesz spodziewać się cyklicznego błędu o zbyt częstej liczbie opuszczenia podprogramu przy pomocy funkcji JUMP).</li>
<li>Podprogram standardowy (Routine) nigdy nie może być wykonywany bez wywołania poleceniem <strong>CALL</strong>.</li>
</ul>





<p>Poniżej możesz zapoznać się z przykładowym programem który napisałem dla formy typu tandem. Programowanie strukturalne pomaga mi przy późniejszej korekcie programu oraz zmniejsza jego wielkość ułatwiając analizę i zrozumienie.</p>



<div class="wp-block-image">
<figure class="aligncenter size-medium">
<figure id="attachment_913" aria-describedby="caption-attachment-913" style="width: 532px" class="wp-caption aligncenter"><img decoding="async" class="wp-image-913 size-full" title="programowanie strukturalne Wittmann" src="https://www.ascons.pl/wp-content/uploads/2020/08/Obraz2-1.png" alt="programowanie strukturalne wittmann robot" width="532" height="570" srcset="https://www.ascons.pl/wp-content/uploads/2020/08/Obraz2-1.png 532w, https://www.ascons.pl/wp-content/uploads/2020/08/Obraz2-1-280x300.png 280w" sizes="(max-width: 532px) 100vw, 532px" /><figcaption id="caption-attachment-913" class="wp-caption-text">Drzewo programu robota Wittmann</figcaption></figure>
<figcaption>Rysunek 2: Program przebiegu robota na wtryskarce dla formy typu tandem.</figcaption>
</figure>
</div>



<p>Zdecydowanie zachęcam Cię do pisania programów przebiegu dla robotów w przedstawiony przeze mnie sposób. W przeciwieństwie do &#8222;spaghetti code&#8221; możemy wielokrotnie wracać do danego podprogramu.</p>
<p>Przy kolejnych formach czy też nowych projektach będzie Ci łatwiej wykorzystać pewne bloki co istotnie przyspieszy uruchomienie produkcji.</p>
<p>Zachęcam Cię także do zapoznania się z wpisami na temat <a href="https://ascons.pl/programowanie-instrukcje-warunkowe/">skoków i instrukcji warunkowych</a> oraz <a href="https://ascons.pl/programowanie-robotow-zlacze-euromap-67/">EUROMAP 67</a>, gdzie uzyskasz dodatkowe informacje w tematyce programowania robotów.</p>
<p>A jeżeli chcesz przeszkolić siebie, swoich pracowników lub współpracowników to zapoznaj się z moją ofertą dotyczącą <a href="https://ascons.pl/programowanie-robotow-wittmann/">programowania robotów Wittmann</a>. Podczas takiego kursu nauczysz się wykorzystywać podprogramy i dużo więcej <img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> </p>
<p>Na zakończenie chciałbym raz jeszcze przypomnieć jak ważne jest wykorzystanie podprogramów w kodzie. Formy wtryskowe, które uruchamiasz na wtryskarce są coraz bardziej złożone. Niewątpliwe wymusza to na Tobie pisanie jeszcze bardziej złożonych programów odbioru.</p>


<p>Artykuł <a href="https://www.ascons.pl/podprogramy-wittmann/">Podprogramy Wittmann</a> pochodzi z serwisu <a href="https://www.ascons.pl">ASCONS</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.ascons.pl/podprogramy-wittmann/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Programowanie robotów &#8211; skoki i instrukcje warunkowe IF</title>
		<link>https://www.ascons.pl/programowanie-instrukcje-warunkowe/</link>
					<comments>https://www.ascons.pl/programowanie-instrukcje-warunkowe/#comments</comments>
		
		<dc:creator><![CDATA[Ascons]]></dc:creator>
		<pubDate>Sat, 18 Aug 2018 07:34:07 +0000</pubDate>
				<category><![CDATA[Roboty]]></category>
		<category><![CDATA[call]]></category>
		<category><![CDATA[if]]></category>
		<category><![CDATA[JMP]]></category>
		<category><![CDATA[jump]]></category>
		<category><![CDATA[podprogram]]></category>
		<category><![CDATA[programowanie]]></category>
		<category><![CDATA[roboty]]></category>
		<category><![CDATA[skoki]]></category>
		<category><![CDATA[wittmann]]></category>
		<guid isPermaLink="false">http://nastawiacz.pl/?p=617</guid>

					<description><![CDATA[<p>Podczas programowania robotów napotkamy się na instrukcje warunkowe IF oraz skoki  warunkowe. W tym tekście przedstawię gdzie i jak należy ich używać. Na początek przypomnę wcześniej prezentowany algorytm naszego przyszłego ...</p>
<p>Artykuł <a href="https://www.ascons.pl/programowanie-instrukcje-warunkowe/">Programowanie robotów &#8211; skoki i instrukcje warunkowe IF</a> pochodzi z serwisu <a href="https://www.ascons.pl">ASCONS</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Podczas programowania robotów napotkamy się na instrukcje warunkowe IF oraz skoki  warunkowe. W tym tekście przedstawię gdzie i jak należy ich używać.<span id="more-617"></span></p>
<p>Na początek przypomnę wcześniej prezentowany algorytm naszego przyszłego programu z <a href="https://www.ascons.pl/programowanie_robotow-algorytmy/">wcześniejszego wpisu</a> o algorytmach.</p>
<p><figure id="attachment_558" aria-describedby="caption-attachment-558" style="width: 794px" class="wp-caption alignnone"><img decoding="async" class="wp-image-558 size-full" src="https://ascons.pl/wp-content/uploads/2018/05/algorytm_2-1-1.jpg" alt="" width="794" height="1123" /><figcaption id="caption-attachment-558" class="wp-caption-text">Alg. 2</figcaption></figure></p>
<p>Aby stworzyć działający program nasze bloki i linie musimy zamienić na zestaw instrukcji zrozumiałych dla robota.</p>
<h6>Instrukcje warunkowe</h6>
<ul>
<li>IF &#8211; jeżeli</li>
<li>ELSE &#8211; inaczej, w przeciwnym razie</li>
<li>ELSEIF &#8211; stosujemy jeżeli warunek posiada więcej niż dwa rozwiązania (odpowiednik CASE)</li>
<li>ENDIF &#8211; koniec instrukcji warunkowej</li>
</ul>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-620 size-full" src="https://ascons.pl/wp-content/uploads/2018/08/alg_if.jpg" alt="" width="732" height="381" /></p>
<p>Instrukcja warunkowa IF to nic innego jak pytanie jeżeli. W naszym przypadku pytamy o to czy detal jest wybrakowany czy dobry. Informacje tą otrzymujemy ze złącza euromap 67 <a href="https://www.ascons.pl/programowanie-robotow-zlacze-euromap-67/">opisywanego wcześniej</a>. Należy zwrócić uwagę że wtryskarka na styku ZA5 za pomocą sygnału wysokiego informuje nas o detalu wybrakowanym, nas interesuje detal dobry, czyli sytuacja w której na styku nie ma sygnału .  Nasze pytanie brzmi zatem: czy detal  nie jest wybrakowany? W programie zapiszemy to jako: IF DETAL WYBRAKOWANY=0</p>
<p>W przypadku spełnienia warunku  zostaną wykonane instrukcje znajdujące się pod zapytaniem IF</p>
<p>Jeżeli warunek nie został spełniony  program przechodzi do instrukcji umieszczonych pod poleceniem ELSE.</p>
<p>Wprowadzenie do programu instrukcji warunkowych zawsze powoduje jego rozgałęzienie tak jak to widać na powyższym algorytmie. Aby zakończyć instrukcje warunkową IF i połączyć rozgałęzienie musimy użyć polecenia ENDIF.</p>
<pre>IF DETAL WYBRAKOWANY=0
* tutaj wprowadzamy instrukcje 
* odpowiedzialne za odłożenie 
* dobrego detalu
* i uruchomienie taśmociągu
ELSE 
* tutaj wprowadzamy instrukcje
* odpowiedzialne za odłożenie
* złego detalu
ENDIF</pre>
<p>Jeśli zachodzi sytuacja w której program ma nic nie robić jeżeli warunek jest nie spełniony wtedy za poleceniem ELSE nie ma żadnych instrukcji. Na schemacie blokowym była by strzałka bezpośrednio do polecenia ENDIF.    W takim przypadku  stosujemy zapis bez polecenia ELSE. Poniżej przykład zastosowania dla programu paletyzacji.</p>
<pre>IF PALETA PELNA=1
* przewiń taśmociąg
* zresetuj licznik paletowania 
ENDIF</pre>
<h6>Skoki</h6>
<p>Skoki służą do przemieszczania się wewnątrz programu, najczęściej stosuje się je do zapętlenia programu i stworzenia w ten sposób pętli głównej która powtarzana jest co cykl maszyny. Aby można użyć polecenia JMP wcześniej trzeba zdefiniować miejsce w programie do jakiego chcemy się przenieść, miejsce to nazwane jest etykietą. Etykiete umieszczamy w programie nad linią do której chcemy się przemieścić i nadajemy jej nazwę sugerującą funkcje jaką dany skok pełni. I tak dla skoku zapętlającego program sugeruję etykietę CYKL: lub START:</p>
<ul>
<li><img loading="lazy" decoding="async" class="alignnone wp-image-623 size-full" src="https://ascons.pl/wp-content/uploads/2018/08/skok_-do_START.jpg" alt="" width="251" height="479" />ETYKIETA &#8211; znacznik miejsca w programie</li>
<li>JMP &#8211; skok do etykiety</li>
<li>JMP z warunkiem -skok warunkowy</li>
</ul>
<p>&nbsp;</p>
<p style="text-align: left;">Jak widać stosowanie instrukcji warunkowych oraz skoków jest niezbędne do stworzenia programu który będzie elastyczny i zoptymalizowany pod kątem potrzeb produkcyjnych oraz przyjazny dla  osoby obsługującej robota. Z łatwością możemy dodać takie funkcje jak odkładnie detalu do kontroli jakości, wprowadzanie cykli rozruchowych czy też ręcznego sortowania detali.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Artykuł <a href="https://www.ascons.pl/programowanie-instrukcje-warunkowe/">Programowanie robotów &#8211; skoki i instrukcje warunkowe IF</a> pochodzi z serwisu <a href="https://www.ascons.pl">ASCONS</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.ascons.pl/programowanie-instrukcje-warunkowe/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
	</channel>
</rss>
