{"id":12235,"date":"2021-05-14T13:47:09","date_gmt":"2021-05-14T11:47:09","guid":{"rendered":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/?p=12235"},"modified":"2023-04-07T14:27:47","modified_gmt":"2023-04-07T12:27:47","slug":"user-defined-function-blocks-tworzenie-wlasnych-blokow-funkcyjnych-w-oprogramowaniu-cscape","status":"publish","type":"post","link":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/user-defined-function-blocks-tworzenie-wlasnych-blokow-funkcyjnych-w-oprogramowaniu-cscape\/","title":{"rendered":"User Defined Function Blocks \u2013 tworzenie w\u0142asnych blok\u00f3w funkcyjnych w oprogramowaniu Cscape"},"content":{"rendered":"\n<div class=\"dowiesz-sie\">\n<h3>Z tego artyku\u0142u dowiesz si\u0119:<\/h3>\n<ul class=\"bulleted\">\n<li>Czym s\u0105 bloki UDFB, <\/li>\n<li>Jak stworzy\u0107 sw\u00f3j w\u0142asny blok funkcyjny w oprogramowaniu Cscape, <\/li>\n<li>Jak przebiega proces tworzenia w\u0142asnych blok\u00f3w w Cscape<\/li>\n<li>Jakie mo\u017cliwo\u015bci oferuj\u0105 bloki UDFB<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Czym s\u0105 w\u0142\u0105\u015bciwie UDFB?<\/h2>\n\n\n\n<p>Jak sama nazwa wskazuje UDFB (User Defined Function Blocks) to bloki funkcyjne, kt\u00f3re s\u0105 tworzone przez u\u017cytkownik\u00f3w. To bardzo efektywny proces tworzenia kodu wielokrotnego u\u017cytku. Bloki te s\u0105 obs\u0142ugiwane zar\u00f3wno w j\u0119zyku LD, ST, FDB oraz IL. Sk\u0142adaj\u0105 si\u0119 one ze standardowych instrukcji. Do definiowania blok\u00f3w konieczne jest korzystanie z oprogramowania <strong>Cscape w wersji 9.90 SP3<\/strong> lub nowszej. <\/p>\n\n\n\n<div class=\"link-box d-flex align-items-center\">\r\n\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/themes\/poradnik\/public\/images\/icons\/icon-link.svg\" alt=\"arrow\" class=\"ml-3\">\r\n\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<div><p>Oprogramowanie mo\u017cna pobra\u0107 za darmo z <a href=\"https:\/\/www.astor.com.pl\/produkty\/sterowanie\/oprogramowanie-narzedziowe\/cscape.html\" target=\"_blank\" rel=\"noopener\">naszej strony<\/a><\/p>\n<\/div>\r\n\t\t\t\t\t<\/div>\r\n\t\n\n\n\n<p><\/p>\n\n\n\n<p>Por\u00f3wnanie bloku UDFB do podprogramu:<\/p>\n\n\n\n<ul class=\"bulleted wp-block-list\">\n<li>Wywo\u0142ywanie\n<ul class=\"wp-block-list\">\n<li>Podprogramy s\u0105 wywo\u0142ywane za pomoc\u0105 instrukcji call<\/li>\n\n\n\n<li>UDFB mog\u0105 by\u0107 umieszczane bezpo\u015brednio w g\u0142\u00f3wnych blokach logicznych<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Instancje\n<ul class=\"wp-block-list\">\n<li>Podprogramy maj\u0105 jedn\u0105 instancj\u0119<\/li>\n\n\n\n<li>Bloki UDFB mog\u0105 mie\u0107 wiele instancji<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Zmienne\n<ul class=\"wp-block-list\">\n<li>Podprogramy posiadaj\u0105 pojedynczy zestaw zmiennych<\/li>\n\n\n\n<li>UDFB posiada zestaw zmiennych dla ka\u017cdej instancji<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Jak wygl\u0105da proces wprowadzania blok\u00f3w UDFB?<\/strong><\/p>\n\n\n\n<p>1. Tworzenie w\u0142asnego bloku UDFB<br>2. U\u017cycie instancji bloku w schemacie logicznym<br>3. Proces debugowania pojedynczego przypadku<br>4. Namna\u017canie kolejnych instancji bloku UDFB, gdziekolwiek ich potrzebujesz w swoim programie<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Jak wygl\u0105da proces tworzenia bloku UDFB<\/strong><\/p>\n\n\n\n<p>1. Nazwanie bloku UDFB<br>2. Przypisanie zmiennych wej\u015bciowych<br>3. Przypisanie zmiennych lokalnych dla danego bloku funkcyjnego<br>4. Przypisanie zmiennych wyj\u015bciowych<br>5. Stworzenie logiki<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Zobaczysz teraz jak stworzy\u0107 prosty blok funkcyjny, kt\u00f3ry oblicza obj\u0119to\u015b\u0107 cieczy w pionowym cylindrycznym zbiorniku. W przypadku tego bloku zmienne rozk\u0142adaj\u0105 si\u0119 w nast\u0119puj\u0105cy spos\u00f3b:<\/p>\n\n\n\n<ul class=\"bulleted wp-block-list\">\n<li>Zmienne wej\u015bciowe\n<ul class=\"wp-block-list\">\n<li>\u015arednica zbiornika w jednostkach liniowych (np. metry)<\/li>\n\n\n\n<li>Wysoko\u015b\u0107 nape\u0142nienia zbiornika w jednostkach liniowych (np. metry)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Zmienne lokalne\n<ul class=\"wp-block-list\">\n<li>Brak<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Zmienne wyj\u015bciowe\n<ul class=\"wp-block-list\">\n<li>Obj\u0119to\u015b\u0107 cieczy w jednostkach sze\u015bciennych (np. metry<sup>3<\/sup>)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p>Aby obliczy\u0107 obj\u0119to\u015b\u0107, blok funkcyjny musi skorzysta\u0107 z wzoru na pole podstawy zbiornika, kt\u00f3re jest r\u00f3wne&nbsp; \u03c0r<sup>2<\/sup>.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Tworzenie bloku w Cscape<\/strong><\/h2>\n\n\n\n<p>Przejd\u017a teraz do oprogramowania Cscape, aby stworzy\u0107 sw\u00f3j blok funkcyjny.<\/p>\n\n\n\n<p>Masz problemy ze \u015brodowiskiem Cscape? Zapraszamy na<a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/kurs-programowania-plc-od-podstaw-dla-elektrykow-i-automatykow\/\"> kurs PLC<\/a>, gdzie od podstaw nauczysz si\u0119 jak pracowa\u0107 w tym \u015brodowisku. ????<\/p>\n\n\n\n<p>Zanim rozpoczniesz, upewnij si\u0119 \u017ce masz w\u0142\u0105czon\u0105 logik\u0119 drabinkow\u0105 opart\u0105 na tagach. Aby to zrobi\u0107 wejd\u017a w menu <strong>Tools<\/strong>, nast\u0119pnie wybierz <strong>Application<\/strong> <strong>Settings. <\/strong>Upewnij si\u0119, \u017ce zaznaczone na zdj\u0119ciu poni\u017cej okienko jest wybrane. Je\u017celi nie jest, to wybierz je i nast\u0119pnie zatwierd\u017a przyciskiem <strong>OK<\/strong>.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"731\" height=\"596\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/05\/advanced_tag_ladder.png\" alt=\"\" class=\"wp-image-12278\"\/><figcaption class=\"wp-element-caption\">Wybieranie logiki drabinkowej opartej na tagach<\/figcaption><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Nast\u0119pnie, aby utworzy\u0107 nowy projekt z j\u0119zykiem drabinkowym opartym na tagach kliknij przycisk <strong>File<\/strong>. Uka\u017ce si\u0119 nast\u0119puj\u0105ce okno. Wybierz opcj\u0119 zaznaczon\u0105 na zdj\u0119ciu poni\u017cej i nast\u0119pnie kliknij przycisk <strong>OK.<\/strong><\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"460\" height=\"155\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/05\/Wybieranie-opcji-Advanced-ladder.png\" alt=\"\" class=\"wp-image-12253\"\/><figcaption class=\"wp-element-caption\">Wybieranie opcji Advanced ladder<\/figcaption><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Po upewnieniu si\u0119, \u017ce wszystko jest poprawnie przygotowane przejd\u017a do g\u00f3rnego rogu ekranu.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"532\" height=\"473\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/05\/Wybieranie-w-menu-UDFB-modules..png\" alt=\"\" class=\"wp-image-12255\"\/><figcaption class=\"wp-element-caption\">Wybieranie w menu opcji UDFB modules.<\/figcaption><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Nast\u0119pnie kliknij prawym przyciskiem myszy na <strong>UDFB Modules <\/strong>i wybierz opcj\u0119 <strong>New Enhanced Ladder Logic UDFB.<\/strong><\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"292\" height=\"54\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/05\/Dodawanie-nowego-bloku-UDFB.png\" alt=\"\" class=\"wp-image-12256\"\/><figcaption class=\"wp-element-caption\">Dodawanie nowego bloku UDFB<\/figcaption><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Po wybraniu bloku nazwij go <strong>Liq_Vol. <\/strong>Po utworzeniu bloku funkcyjnego mo\u017cesz zobaczy\u0107 ekran, kt\u00f3ry przypomina podprogram.&nbsp; (Pami\u0119taj, \u017ce to nie jest to samo).<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"605\" height=\"279\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/05\/Ekran-bloku-UDFB-w-oprogramowaniu-Cscape.png\" alt=\"\" class=\"wp-image-12257\"\/><figcaption class=\"wp-element-caption\">Ekran bloku UDFB w oprogramowaniu Cscape<\/figcaption><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Dla wybranego bloku zosta\u0142a utworzona nowa pozycja w oknie zmiennych naszego projektu.<\/p>\n\n\n\n<p>Zaczynij od przypisania zmiennych potrzebnych do obliczenia obj\u0119to\u015bci cieczy. W oknie <strong>Program Variables<\/strong> zaznacz blok <strong>Liq_Vol<\/strong> i kliknij go prawym przyciskiem myszy.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"605\" height=\"223\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/05\/Deklaracja-zmiennych-w-oknie-program-variables.png\" alt=\"\" class=\"wp-image-12258\"\/><figcaption class=\"wp-element-caption\">Deklaracja zmiennych w oknie program variables<\/figcaption><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Nast\u0119pnie wybierz opcj\u0119 <strong>Add Variable <\/strong>w celu dodania zmiennej.<strong><br><\/strong><\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"471\" height=\"453\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/05\/Dodawanie-zmiennej-w-oknie-program-variables.png\" alt=\"\" class=\"wp-image-12259\"\/><figcaption class=\"wp-element-caption\">Dodawanie zmiennej w oknie program variables<\/figcaption><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Poka\u017ce si\u0119 okno z mo\u017cliwo\u015bci\u0105 wyboru typu zmiennej. Tak jak na pocz\u0105tku artyku\u0142u wspominali\u015bmy, mamy do wyboru zmienne wej\u015bciowe, lokalne oraz wyj\u015bciowe.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"200\" height=\"115\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/05\/Wybor-typu-zmiennej.png\" alt=\"\" class=\"wp-image-12260\"\/><figcaption class=\"wp-element-caption\">Wyb\u00f3r typu zmiennej<\/figcaption><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>W przypadku naszego bloku musimy zdefiniowa\u0107 zmienne wej\u015bciowe oraz wyj\u015bciowe. Przejd\u017a najpierw do zmiennych wej\u015bciowych. W tym celu wybierz pozycj\u0119 <strong>Input Parameter<\/strong>.<\/p>\n\n\n\n<p>Nast\u0119pnie zmie\u0144 nazw\u0119 zmiennej na <strong>Diameter<\/strong> (oznaczaj\u0105cy \u015brednic\u0119).<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"419\" height=\"45\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/05\/Dodawanie-nazwy-zmiennej.png\" alt=\"\" class=\"wp-image-12262\"\/><figcaption class=\"wp-element-caption\">Przypisywanie nazwy zmiennej<\/figcaption><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Nast\u0119pnie zmie\u0144 typ zmiennej na <strong>REAL<\/strong><\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"390\" height=\"235\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/05\/Zmiana-typu-zmiennej.png\" alt=\"\" class=\"wp-image-12263\"\/><figcaption class=\"wp-element-caption\">Zmiana typu zmiennej<\/figcaption><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>W kolejnym kroku analogicznie jak wy\u017cej dodaj kolejn\u0105 zmienna wej\u015bciowa \u2013 <strong>Fill_Level.<\/strong> Ustaw jej typ r\u00f3wnie\u017c jako <strong>REAL.<\/strong><\/p>\n\n\n\n<p>Ostatni\u0105 zmienn\u0105, kt\u00f3r\u0105 musisz doda\u0107 do swojego projektu jest obj\u0119to\u015b\u0107. Post\u0119puj analogicznie jak w przypadku dw\u00f3ch pierwszych zmiennych, tylko na pocz\u0105tku zamiast Input Parameter wybierz <strong>Output<\/strong> <strong>Parameter,<\/strong> oznaczaj\u0105cy zmienn\u0105 wyj\u015bciow\u0105. W tym przypadku nazwij j\u0105 Volume oraz ustal jej typ jako <strong>REAL. <\/strong>Finalnie twoje okno zmiennych powinno wygl\u0105da\u0107 nast\u0119puj\u0105co:<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"605\" height=\"206\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/05\/Finalny-wyglad-okna-ze-zmiennymi.png\" alt=\"\" class=\"wp-image-12264\"\/><figcaption class=\"wp-element-caption\">Finalny wygl\u0105d okna ze zmiennymi<\/figcaption><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Nast\u0119pnie w oknie programu (przypominaj\u0105cym podprogram) dodaj styk normalnie otwarty i nazwij go s[6].<\/p>\n\n\n\n<p>Kolejnym krokiem jest zdefiniowanie operacji matematycznej. W tym celu rozwi\u0144 menu <strong>Math<\/strong> <strong>Operations <\/strong>i wybierz blok <strong>Expression. <\/strong>Dodaj go do linii, w kt\u00f3rej masz styk s[6].<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"596\" height=\"348\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/05\/Dodawanie-bloku-operacji-matematycznej-do-programu.png\" alt=\"\" class=\"wp-image-12265\"\/><figcaption class=\"wp-element-caption\">Dodawanie bloku operacji matematycznej do programu<\/figcaption><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Nast\u0119pnie konieczne jest zdefiniowanie wyra\u017cenia matematycznego wewn\u0105trz bloku. W tym celu kliknij na wcze\u015bniej dodany blok.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"605\" height=\"414\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/05\/Definiowanie-wyrazenia-matematycznego-wewnatrz-bloku.png\" alt=\"\" class=\"wp-image-12266\"\/><figcaption class=\"wp-element-caption\">Definiowanie wyra\u017cenia matematycznego wewn\u0105trz bloku<\/figcaption><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>W oknie Math Operations wpisz wyra\u017cenie odpowiadaj\u0105ce naszej szukanej obj\u0119to\u015bci. Finalnie wyra\u017cenie powinno mie\u0107 posta\u0107 jak na zdj\u0119ciu ni\u017cej.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"356\" height=\"261\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/05\/Finalna-postac-wyrazenia-matematycznego-wpisanego-w-bloku-funkcyjnym.png\" alt=\"\" class=\"wp-image-12267\"\/><figcaption class=\"wp-element-caption\">Finalna posta\u0107 wyra\u017cenia matematycznego wpisanego w bloku funkcyjnym<\/figcaption><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Blok zostanie zapisany w oknie <strong>[UDFBs]. <\/strong>B\u0119dziesz go m\u00f3g\u0142 dodawa\u0107 z poziomu menu.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"328\" height=\"416\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/05\/Dodawanie-bloku-UDFB-z-poziomu-menu.png\" alt=\"\" class=\"wp-image-12268\"\/><figcaption class=\"wp-element-caption\">Dodawanie bloku UDFB z poziomu menu<\/figcaption><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>UWAGA: Za ka\u017cdym razem, gdy u\u017cywasz UDFB w logice, musisz nada\u0107 mu nazw\u0119, poniewa\u017c ka\u017cda instancja UDFB ma unikalny zestaw zmiennych.<\/p>\n\n\n\n<p>Nast\u0119pnie mo\u017cesz przej\u015b\u0107 do okna <strong>Data<\/strong> <strong>Watch <\/strong>w celu sprawdzenia poprawno\u015bci oblicze\u0144. Kliknij na okienko odpowiadaj\u0105ce za funkcj\u0119 <strong>Data<\/strong> <strong>Watch.<\/strong><\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"686\" height=\"463\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/05\/Sprawdzanie-poprawnosci-bloku-za-pomoca-funkcji-Data-Watch.png\" alt=\"\" class=\"wp-image-12269\"\/><figcaption class=\"wp-element-caption\">Sprawdzanie poprawno\u015bci bloku za pomoc\u0105 funkcji Data Watch<\/figcaption><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Pokazane zostan\u0105 warto\u015bci naszych zmiennych oraz warto\u015b\u0107 wyj\u015bciowa \u2013 obj\u0119to\u015b\u0107. Mo\u017cesz dowolnie zmienia\u0107 warto\u015bci i obserwowa\u0107 zmian\u0119 wyniku. Jak wida\u0107 na za\u0142\u0105czonym zdj\u0119ciu obliczenia zosta\u0142y wykonane poprawnie.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"756\" height=\"333\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/05\/Obliczenia-wykonane-w-bloku-funkcyjnym.png\" alt=\"\" class=\"wp-image-12270\"\/><figcaption class=\"wp-element-caption\">Obliczenia wykonane w bloku funkcyjnym<\/figcaption><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Mo\u017cliwo\u015bci oraz ograniczenia wynikaj\u0105ce z zastosowania blok\u00f3w UDFB:<\/strong><\/p>\n\n\n\n<ul class=\"bulleted wp-block-list\">\n<li>Mo\u017cna je \u0142\u0105czy\u0107 szeregowo (maksymalnie 1 UDFB na szczebel w naszym programie)<\/li>\n<\/ul>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"840\" height=\"284\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/05\/Szeregowe-laczenie-blokow-UDFB-840x284.jpg\" alt=\"\" class=\"wp-image-12271\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/05\/Szeregowe-laczenie-blokow-UDFB-840x284.jpg 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/05\/Szeregowe-laczenie-blokow-UDFB-768x260.jpg 768w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/05\/Szeregowe-laczenie-blokow-UDFB.jpg 1382w\" sizes=\"auto, (max-width: 840px) 100vw, 840px\" \/><figcaption class=\"wp-element-caption\">Szeregowe \u0142\u0105czenie blok\u00f3w UDFB<\/figcaption><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<ul class=\"bulleted wp-block-list\">\n<li>Bloki UDFB mog\u0105 by\u0107 chronione przez ochron\u0119 OEM<\/li>\n\n\n\n<li>Bloki UDFB mog\u0105 by\u0107 zar\u00f3wno importowane jak i eksportowane<\/li>\n<\/ul>\n\n\n\n<div class=\"link-box d-flex align-items-center\">\r\n\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/themes\/poradnik\/public\/images\/icons\/icon-link.svg\" alt=\"arrow\" class=\"ml-3\">\r\n\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<div><p>Zach\u0119camy tak\u017ce do zapoznania si\u0119 z pozosta\u0142ymi mo\u017cliwo\u015bciami oprogramowania Cscape i nauki jego u\u017cytkowania podczas naszego darmowego <a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/kurs-programowania-plc-od-podstaw-dla-elektrykow-i-automatykow\/\" target=\"_blank\" rel=\"noopener\" data-rich-text-format-boundary=\"true\">kursu programowania PLC od podstaw<\/a>.<\/p>\n<\/div>\r\n\t\t\t\t\t<\/div>\r\n\t\n\n\n\n<div style=\"height:38px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Czym s\u0105 bloki UDFB? W tym artykule dowiesz si\u0119 jak stworzy\u0107 sw\u00f3j w\u0142asny blok funkcyjny. w oprogramowaniu Cscape.<\/p>\n","protected":false},"author":50,"featured_media":12333,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[21],"class_list":["post-12235","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bez-kategorii","tag-horner"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\r\n<title>User Defined Function Blocks \u2013 tworzenie w\u0142asnych blok\u00f3w funkcyjnych w oprogramowaniu Cscape | Poradnik Automatyka<\/title>\r\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\r\n<link rel=\"canonical\" href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/user-defined-function-blocks-tworzenie-wlasnych-blokow-funkcyjnych-w-oprogramowaniu-cscape\/\" \/>\r\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\r\n<meta property=\"og:type\" content=\"article\" \/>\r\n<meta property=\"og:title\" content=\"User Defined Function Blocks \u2013 tworzenie w\u0142asnych blok\u00f3w funkcyjnych w oprogramowaniu Cscape | Poradnik Automatyka\" \/>\r\n<meta property=\"og:description\" content=\"Czym s\u0105 bloki UDFB? W tym artykule dowiesz si\u0119 jak stworzy\u0107 sw\u00f3j w\u0142asny blok funkcyjny. w oprogramowaniu Cscape.\" \/>\r\n<meta property=\"og:url\" content=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/user-defined-function-blocks-tworzenie-wlasnych-blokow-funkcyjnych-w-oprogramowaniu-cscape\/\" \/>\r\n<meta property=\"og:site_name\" content=\"Poradnik Automatyka\" \/>\r\n<meta property=\"article:published_time\" content=\"2021-05-14T11:47:09+00:00\" \/>\r\n<meta property=\"article:modified_time\" content=\"2023-04-07T12:27:47+00:00\" \/>\r\n<meta property=\"og:image\" content=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/05\/Wybieranie-w-menu-UDFB-modules..jpg\" \/>\r\n\t<meta property=\"og:image:width\" content=\"532\" \/>\r\n\t<meta property=\"og:image:height\" content=\"473\" \/>\r\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\r\n<meta name=\"author\" content=\"Mateusz Fas\" \/>\r\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\r\n<meta name=\"twitter:label1\" content=\"Napisane przez\" \/>\n\t<meta name=\"twitter:data1\" content=\"Mateusz Fas\" \/>\n\t<meta name=\"twitter:label2\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minut\" \/>\r\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/user-defined-function-blocks-tworzenie-wlasnych-blokow-funkcyjnych-w-oprogramowaniu-cscape\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/user-defined-function-blocks-tworzenie-wlasnych-blokow-funkcyjnych-w-oprogramowaniu-cscape\\\/\"},\"author\":{\"name\":\"Mateusz Fas\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/#\\\/schema\\\/person\\\/7029e2ba4cc4e4e1c9bfd3b6a47a8b67\"},\"headline\":\"User Defined Function Blocks \u2013 tworzenie w\u0142asnych blok\u00f3w funkcyjnych w oprogramowaniu Cscape\",\"datePublished\":\"2021-05-14T11:47:09+00:00\",\"dateModified\":\"2023-04-07T12:27:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/user-defined-function-blocks-tworzenie-wlasnych-blokow-funkcyjnych-w-oprogramowaniu-cscape\\\/\"},\"wordCount\":1034,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/user-defined-function-blocks-tworzenie-wlasnych-blokow-funkcyjnych-w-oprogramowaniu-cscape\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/wp-content\\\/uploads\\\/2021\\\/05\\\/Wybieranie-w-menu-UDFB-modules..jpg\",\"keywords\":[\"Horner APG\"],\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/user-defined-function-blocks-tworzenie-wlasnych-blokow-funkcyjnych-w-oprogramowaniu-cscape\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/user-defined-function-blocks-tworzenie-wlasnych-blokow-funkcyjnych-w-oprogramowaniu-cscape\\\/\",\"url\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/user-defined-function-blocks-tworzenie-wlasnych-blokow-funkcyjnych-w-oprogramowaniu-cscape\\\/\",\"name\":\"User Defined Function Blocks \u2013 tworzenie w\u0142asnych blok\u00f3w funkcyjnych w oprogramowaniu Cscape | Poradnik Automatyka\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/user-defined-function-blocks-tworzenie-wlasnych-blokow-funkcyjnych-w-oprogramowaniu-cscape\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/user-defined-function-blocks-tworzenie-wlasnych-blokow-funkcyjnych-w-oprogramowaniu-cscape\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/wp-content\\\/uploads\\\/2021\\\/05\\\/Wybieranie-w-menu-UDFB-modules..jpg\",\"datePublished\":\"2021-05-14T11:47:09+00:00\",\"dateModified\":\"2023-04-07T12:27:47+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/user-defined-function-blocks-tworzenie-wlasnych-blokow-funkcyjnych-w-oprogramowaniu-cscape\\\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/user-defined-function-blocks-tworzenie-wlasnych-blokow-funkcyjnych-w-oprogramowaniu-cscape\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/user-defined-function-blocks-tworzenie-wlasnych-blokow-funkcyjnych-w-oprogramowaniu-cscape\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/wp-content\\\/uploads\\\/2021\\\/05\\\/Wybieranie-w-menu-UDFB-modules..jpg\",\"contentUrl\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/wp-content\\\/uploads\\\/2021\\\/05\\\/Wybieranie-w-menu-UDFB-modules..jpg\",\"width\":532,\"height\":473},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/user-defined-function-blocks-tworzenie-wlasnych-blokow-funkcyjnych-w-oprogramowaniu-cscape\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Bez kategorii\",\"item\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/category\\\/bez-kategorii\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"User Defined Function Blocks \u2013 tworzenie w\u0142asnych blok\u00f3w funkcyjnych w oprogramowaniu Cscape\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/#website\",\"url\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/\",\"name\":\"Poradnik Automatyka\",\"description\":\"Poradnik Automatyka to przydatne kursy, u\u017cyteczne artyku\u0142y i merytoryczne webinary dla ka\u017cdego automatyka i elektryka.\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/#organization\",\"name\":\"ASTOR\",\"url\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/wp-content\\\/uploads\\\/2018\\\/08\\\/ASTOR_zwykly_sam_logotyp.png\",\"contentUrl\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/wp-content\\\/uploads\\\/2018\\\/08\\\/ASTOR_zwykly_sam_logotyp.png\",\"width\":3322,\"height\":1078,\"caption\":\"ASTOR\"},\"image\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/#\\\/schema\\\/person\\\/7029e2ba4cc4e4e1c9bfd3b6a47a8b67\",\"name\":\"Mateusz Fas\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/M.-Fas.jpg\",\"url\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/M.-Fas.jpg\",\"contentUrl\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/M.-Fas.jpg\",\"caption\":\"Mateusz Fas\"},\"description\":\"Absolwent Mechaniki i Budowy Maszyn na AGH. Absolwent Zarz\u0105dzania i In\u017cynierii Produkcji. W ASTOR aktualnie zajmuje si\u0119 opiek\u0105 nad produktami z oferty Astraada HMI oraz PC.\",\"sameAs\":[\"www.linkedin.com\\\/in\\\/mateusz-fas-38a6631a3\\\/\"],\"url\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/autor\\\/mateuszf\\\/\"}]}<\/script>\r\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"User Defined Function Blocks \u2013 tworzenie w\u0142asnych blok\u00f3w funkcyjnych w oprogramowaniu Cscape | Poradnik Automatyka","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/user-defined-function-blocks-tworzenie-wlasnych-blokow-funkcyjnych-w-oprogramowaniu-cscape\/","og_locale":"pl_PL","og_type":"article","og_title":"User Defined Function Blocks \u2013 tworzenie w\u0142asnych blok\u00f3w funkcyjnych w oprogramowaniu Cscape | Poradnik Automatyka","og_description":"Czym s\u0105 bloki UDFB? W tym artykule dowiesz si\u0119 jak stworzy\u0107 sw\u00f3j w\u0142asny blok funkcyjny. w oprogramowaniu Cscape.","og_url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/user-defined-function-blocks-tworzenie-wlasnych-blokow-funkcyjnych-w-oprogramowaniu-cscape\/","og_site_name":"Poradnik Automatyka","article_published_time":"2021-05-14T11:47:09+00:00","article_modified_time":"2023-04-07T12:27:47+00:00","og_image":[{"width":532,"height":473,"url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/05\/Wybieranie-w-menu-UDFB-modules..jpg","type":"image\/jpeg"}],"author":"Mateusz Fas","twitter_card":"summary_large_image","twitter_misc":{"Napisane przez":"Mateusz Fas","Szacowany czas czytania":"9 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/user-defined-function-blocks-tworzenie-wlasnych-blokow-funkcyjnych-w-oprogramowaniu-cscape\/#article","isPartOf":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/user-defined-function-blocks-tworzenie-wlasnych-blokow-funkcyjnych-w-oprogramowaniu-cscape\/"},"author":{"name":"Mateusz Fas","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#\/schema\/person\/7029e2ba4cc4e4e1c9bfd3b6a47a8b67"},"headline":"User Defined Function Blocks \u2013 tworzenie w\u0142asnych blok\u00f3w funkcyjnych w oprogramowaniu Cscape","datePublished":"2021-05-14T11:47:09+00:00","dateModified":"2023-04-07T12:27:47+00:00","mainEntityOfPage":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/user-defined-function-blocks-tworzenie-wlasnych-blokow-funkcyjnych-w-oprogramowaniu-cscape\/"},"wordCount":1034,"commentCount":0,"publisher":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#organization"},"image":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/user-defined-function-blocks-tworzenie-wlasnych-blokow-funkcyjnych-w-oprogramowaniu-cscape\/#primaryimage"},"thumbnailUrl":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/05\/Wybieranie-w-menu-UDFB-modules..jpg","keywords":["Horner APG"],"inLanguage":"pl-PL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.astor.com.pl\/poradnikautomatyka\/user-defined-function-blocks-tworzenie-wlasnych-blokow-funkcyjnych-w-oprogramowaniu-cscape\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/user-defined-function-blocks-tworzenie-wlasnych-blokow-funkcyjnych-w-oprogramowaniu-cscape\/","url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/user-defined-function-blocks-tworzenie-wlasnych-blokow-funkcyjnych-w-oprogramowaniu-cscape\/","name":"User Defined Function Blocks \u2013 tworzenie w\u0142asnych blok\u00f3w funkcyjnych w oprogramowaniu Cscape | Poradnik Automatyka","isPartOf":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/user-defined-function-blocks-tworzenie-wlasnych-blokow-funkcyjnych-w-oprogramowaniu-cscape\/#primaryimage"},"image":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/user-defined-function-blocks-tworzenie-wlasnych-blokow-funkcyjnych-w-oprogramowaniu-cscape\/#primaryimage"},"thumbnailUrl":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/05\/Wybieranie-w-menu-UDFB-modules..jpg","datePublished":"2021-05-14T11:47:09+00:00","dateModified":"2023-04-07T12:27:47+00:00","breadcrumb":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/user-defined-function-blocks-tworzenie-wlasnych-blokow-funkcyjnych-w-oprogramowaniu-cscape\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.astor.com.pl\/poradnikautomatyka\/user-defined-function-blocks-tworzenie-wlasnych-blokow-funkcyjnych-w-oprogramowaniu-cscape\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/user-defined-function-blocks-tworzenie-wlasnych-blokow-funkcyjnych-w-oprogramowaniu-cscape\/#primaryimage","url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/05\/Wybieranie-w-menu-UDFB-modules..jpg","contentUrl":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2021\/05\/Wybieranie-w-menu-UDFB-modules..jpg","width":532,"height":473},{"@type":"BreadcrumbList","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/user-defined-function-blocks-tworzenie-wlasnych-blokow-funkcyjnych-w-oprogramowaniu-cscape\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Bez kategorii","item":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/category\/bez-kategorii\/"},{"@type":"ListItem","position":2,"name":"User Defined Function Blocks \u2013 tworzenie w\u0142asnych blok\u00f3w funkcyjnych w oprogramowaniu Cscape"}]},{"@type":"WebSite","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#website","url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/","name":"Poradnik Automatyka","description":"Poradnik Automatyka to przydatne kursy, u\u017cyteczne artyku\u0142y i merytoryczne webinary dla ka\u017cdego automatyka i elektryka.","publisher":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#organization","name":"ASTOR","url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#\/schema\/logo\/image\/","url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2018\/08\/ASTOR_zwykly_sam_logotyp.png","contentUrl":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2018\/08\/ASTOR_zwykly_sam_logotyp.png","width":3322,"height":1078,"caption":"ASTOR"},"image":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#\/schema\/person\/7029e2ba4cc4e4e1c9bfd3b6a47a8b67","name":"Mateusz Fas","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/04\/M.-Fas.jpg","url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/04\/M.-Fas.jpg","contentUrl":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/04\/M.-Fas.jpg","caption":"Mateusz Fas"},"description":"Absolwent Mechaniki i Budowy Maszyn na AGH. Absolwent Zarz\u0105dzania i In\u017cynierii Produkcji. W ASTOR aktualnie zajmuje si\u0119 opiek\u0105 nad produktami z oferty Astraada HMI oraz PC.","sameAs":["www.linkedin.com\/in\/mateusz-fas-38a6631a3\/"],"url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/autor\/mateuszf\/"}]}},"_links":{"self":[{"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/posts\/12235","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/users\/50"}],"replies":[{"embeddable":true,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/comments?post=12235"}],"version-history":[{"count":0,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/posts\/12235\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/media\/12333"}],"wp:attachment":[{"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/media?parent=12235"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/categories?post=12235"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/tags?post=12235"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}