{"id":15678,"date":"2023-03-01T11:05:00","date_gmt":"2023-03-01T10:05:00","guid":{"rendered":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/?p=15678"},"modified":"2024-10-11T16:03:18","modified_gmt":"2024-10-11T14:03:18","slug":"podstawy-pisania-skryptow-dla-paneli-astraada-hmi","status":"publish","type":"post","link":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/podstawy-pisania-skryptow-dla-paneli-astraada-hmi\/","title":{"rendered":"Podstawy pisania skrypt\u00f3w dla paneli Astraada HMI"},"content":{"rendered":"\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"dowiesz-sie\">\n<h3>Z tego artyku\u0142u dowiesz si\u0119:<\/h3>\n<ul class=\"bulleted\">\n<li>czym s\u0105 skrypty w panelach operatorskich Astraada HMI,<\/li>\n<li>jakie s\u0105 rodzaje skrypt\u00f3w i jak mo\u017cna je wywo\u0142ywa\u0107,<\/li>\n<li>jak wygl\u0105da sk\u0142adnia j\u0119zyka skryptowego,<\/li>\n<li>jakich typ\u00f3w danych, operator\u00f3w i instrukcji mo\u017cesz u\u017cy\u0107 w skryptach.<\/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<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<p><strong>Makra, czyli niewielkie skrypty, wykorzystywane s\u0105 w programowaniu <a href=\"https:\/\/www.astor.com.pl\/produkty\/sterowanie\/panele-operatorskie\/astraada-hmi-panel.html\" target=\"_blank\" rel=\"noreferrer noopener\">paneli operatorskich Astraada HMI<\/a>, aby usprawni\u0107 dzia\u0142anie aplikacji i doda\u0107 jej funkcjonalno\u015bci. Dzi\u0119ki nim programista mo\u017ce cho\u0107by zawrze\u0107 w swojej aplikacji nieskomplikowan\u0105 logik\u0119. Sk\u0142adnia makr podobna jest do klasycznego j\u0119zyka C, dlatego ka\u017cdy, kto mia\u0142 ju\u017c kiedy\u015b styczno\u015b\u0107 z programowaniem, nie powinien mie\u0107 najmniejszego problemu ze zrozumieniem, jak pisa\u0107 w pe\u0142ni funkcjonalne i u\u017cyteczne makra. W tym artykule opisujemy rodzaje makr oraz ich najpopularniejsze funkcje i instrukcje wraz z przyk\u0142adami.<\/strong><\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Rodzaje makr<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Global Macro<\/h3>\n\n\n\n<p>Jest to makro, kt\u00f3re mo\u017ce by\u0107 u\u017cywane przez wszystkie aplikacje panelowe w tym samym projekcie. Dzi\u0119ki niemu aplikacje w projekcie mog\u0105 dzieli\u0107 wsp\u00f3lne funkcje bez konieczno\u015bci posiadania tego samego zestawu makr lokalnie. W makrach globalnych mo\u017cna u\u017cywa\u0107 tylko zmiennych wewn\u0119trznych.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Local Macro<\/h3>\n\n\n\n<p>Mo\u017ce by\u0107 u\u017cywane jedynie przez aplikacj\u0119, w kt\u00f3rej si\u0119 znajduje.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Sub-macro<\/h3>\n\n\n\n<p>To rodzaj makra, kt\u00f3re mo\u017ce by\u0107 uruchamiane przez inne makra, za pomoc\u0105 polecenia <strong><em>CALL<\/em><\/strong>. Po jego napotkaniu podczas wykonywania makra nadrz\u0119dnego, program zaczyna wykonywa\u0107 makro podrz\u0119dne. Ostatnie polecenie w Sub-macro musi by\u0107 poleceniem <strong><em>RET<\/em><\/strong>, kt\u00f3re zwraca sterowanie do makra nadrz\u0119dnego. Program zacznie si\u0119 wtedy wykonywa\u0107 od nast\u0119pnego polecenia po poleceniu <strong><em>CALL<\/em><\/strong>.<\/p>\n\n\n\n<p>Poprzez implementacj\u0119 wsp\u00f3lnych funkcji w makrach podrz\u0119dnych dla innych makr, twoje programy mog\u0105 by\u0107 podzielone na \u0142atwe do zrozumienia i utrzymania modu\u0142y.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Sposoby wywo\u0142ywania makr<\/h2>\n\n\n\n<p>W jednej aplikacji na panel HMI Astraada mo\u017ce znajdowa\u0107 si\u0119 wiele oddzielnych makr. Ka\u017cde z nich mo\u017ce by\u0107 wywo\u0142ywane na jeden z poni\u017cszych sposob\u00f3w:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Startup Macro<\/h3>\n\n\n\n<p>Jest ono uruchamiane tylko raz podczas startu aplikacji. Panel HMI nie wy\u015bwietli ekranu startowego, dop\u00f3ki to makro nie zostanie zako\u0144czone. Mo\u017cesz u\u017cy\u0107 go, aby zainicjowa\u0107 globalne dane i ustawienia startowe aplikacji. Makro startowe ustawiasz w zak\u0142adce <strong><em>General Setup<\/em><\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Main Macro<\/h3>\n\n\n\n<p>Makro, kt\u00f3re jest uruchamiane cyklicznie przez ca\u0142y czas dzia\u0142ania aplikacji. Jest ono wybierane w zak\u0142adce <strong><em>General Setup<\/em><\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Event Macro<\/h3>\n\n\n\n<p>Jest ono uruchamiane w odpowiedzi na zdarzenie, kt\u00f3re sygnalizowane jest za\u0142\u0105czeniem konkretnego bitu. W jednej aplikacji mo\u017cna umie\u015bci\u0107 maksymalnie cztery makra tego typu. Definiujemy je w zak\u0142adce <strong><em>General Setup<\/em><\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Time Macro<\/h3>\n\n\n\n<p>Jest to makro uruchamiane okresowo zgodnie z konfigurowalnym interwa\u0142em czasowym. Aplikacja mo\u017ce posiada\u0107 maksymalnie cztery takie makra. Ka\u017cde z nich posiada inny zestaw opcji przedzia\u0142\u00f3w czasu, kt\u00f3re mo\u017cna wybra\u0107 w celu okre\u015blenia cz\u0119stotliwo\u015bci uruchamiania tego makra. Konfiguracji makr czasowych dokonujemy w zak\u0142adce <strong><em>General Setup<\/em><\/strong>.<\/p>\n\n\n\n<p>To s\u0105 najcz\u0119\u015bciej u\u017cywane i najpopularniejsze rodzaje makr u\u017cywanych w aplikacjach na panele HMI. Nie s\u0105 to jednak wszystkie rodzaje.&nbsp; Poza nimi wyr\u00f3\u017cniamy:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Open Macro, Cycle Macro, Close Macro \u2013 wykorzystywane do zarz\u0105dzania ekranami, <\/strong><strong><\/strong><\/li>\n\n\n\n<li><strong>On Macro, Off Macro, Object Macro \u2013 wykorzystywane do zarz\u0105dzania obiektami,<\/strong><\/li>\n\n\n\n<li><strong>Query Processing Macro \u2013 wykorzystywane do zarz\u0105dzania alarmami,<\/strong><strong><\/strong><\/li>\n\n\n\n<li><strong>Data Logging Macro <\/strong>\u2013 wykorzystywane do zarz\u0105dzania Data Loggerami,<\/li>\n\n\n\n<li><strong>Start Macro, End Macro <\/strong>\u2013 wykorzystywane do obs\u0142ugi harmonogram\u00f3w.<\/li>\n<\/ul>\n\n\n\n<p>Wi\u0119cej o ka\u017cdym z nich mo\u017cesz dowiedzie\u0107 si\u0119 w <strong>Pomocy<\/strong> oprogramowania <a href=\"https:\/\/www.astor.com.pl\/wsparcie\/dokumentacja-techniczna\/id\/9593\" target=\"_blank\" rel=\"noreferrer noopener\">Astraada HMI CFG<\/a>.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Sk\u0142adnia<\/h2>\n\n\n\n<p>Sk\u0142adnia makr jest podobna do sk\u0142adni j\u0119zyka C. <strong>NIE <\/strong>wymaga jednak u\u017cywania \u015brednik\u00f3w na ko\u0144cu polece\u0144.Wci\u0119cia nie maj\u0105 zasadniczo znaczenia, s\u0105 one jednak u\u0142atwieniem dla programisty, dlatego zalecamy ich stosowanie. Deklaracji zmiennych symbolicznych nie dokonuje si\u0119 ramach konkretnych makr, mo\u017cna to zrobi\u0107 w oknie Tags, b\u0105d\u017a \u201ew locie\u201d korzystaj\u0105c z wygodnego edytora.<\/p>\n\n\n\n<p>Podczas wprowadzania sta\u0142ych u\u017cywamy sufiks\u00f3w w formie liter K, k, D lub d do okre\u015blenia, \u017ce to liczba ca\u0142kowita, litery B lub b do okre\u015blenia bitu oraz liter F lub f do liczb zmiennoprzecinkowych. Bez sufiksu kompilator mo\u017ce rozpozna\u0107 te liczby jako adresy.<\/p>\n\n\n\n<p>Istniej\u0105 dwa sposoby zapisu komentarzy. Komentarz jednoliniowy mo\u017ce rozpoczyna\u0107 si\u0119 od dw\u00f3ch znak\u00f3w dzielenia <strong><em>\/\/<\/em><\/strong>. Komentarz wieloliniowy powinien by\u0107 zapisany pomi\u0119dzy znakami <strong><em>\/* <\/em><\/strong>a <strong>* \/<\/strong>.<\/p>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-ad2f72ca wp-block-group-is-layout-flex\">\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>Dowiedz si\u0119 wi\u0119cej na temat <a href=\"https:\/\/www.astor.com.pl\/oferta\/automatyzacja\/panele-operatorskie\/astraada-hmi-panel.html\">paneli HMI<\/a>.<\/p>\n<\/div>\r\n\t\t\t\t\t<\/div>\r\n\t\n\n\n\n<div style=\"height:20px;width:0px\" aria-hidden=\"true\" class=\"wp-block-spacer wp-container-content-62aae154\"><\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Typy danych<\/h2>\n\n\n\n<p>Notacja s\u0142u\u017c\u0105ca do wskazywania typu zmiennej lub sta\u0142ej, kt\u00f3ry mo\u017ce by\u0107 akceptowany dla okre\u015blonego argumentu funkcji (za pomoc\u0105 tych znak\u00f3w opisywane s\u0105 argumenty funkcji w edytorze):<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"840\" height=\"234\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/tabela1-840x234.png\" alt=\"\" class=\"wp-image-15687\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/tabela1-840x234.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/tabela1-768x214.png 768w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/tabela1.png 1211w\" sizes=\"auto, (max-width: 840px) 100vw, 840px\" \/><\/figure>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Notacja s\u0142u\u017c\u0105ca do okre\u015blania typu danych zwracanego przez funkcj\u0119:<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"840\" height=\"182\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/tabela2-840x182.png\" alt=\"\" class=\"wp-image-15688\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/tabela2-840x182.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/tabela2-768x167.png 768w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/tabela2.png 1211w\" sizes=\"auto, (max-width: 840px) 100vw, 840px\" \/><\/figure>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Operacje matematyczne<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Operacje arytmetyczne<\/h3>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"840\" height=\"156\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/tabela3-840x156.png\" alt=\"\" class=\"wp-image-15690\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/tabela3-840x156.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/tabela3-768x143.png 768w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/tabela3.png 1211w\" sizes=\"auto, (max-width: 840px) 100vw, 840px\" \/><\/figure>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Pozosta\u0142e operacje arytmetyczne maj\u0105 identyczn\u0105 budow\u0119. S\u0105 to odejmowanie (-), mno\u017cenie (*), dzielenie (\/) oraz reszta z dzielenia (%).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Inne operacje matematyczne<\/h3>\n\n\n\n<p>Operacji matematycznych dost\u0119pnych w oprogramowaniu Astraada HMI CFG jest wiele. Od najbardziej podstawowych (np. wyliczanie pierwiastka \u2013 SQRT, wyliczanie pot\u0119gi POW) do bardziej wymagaj\u0105cych (ASIN, ATAN, TAN \u2013 kolejno arcus sinsus, arcus cosinus, tangens). List\u0119 wszystkich dost\u0119pnych operacji matematycznych znajdziesz w <strong><em>User Manual<\/em><\/strong> w rozdziale 15 w zak\u0142adkach <strong><em>Calculation<\/em><\/strong> oraz <strong><em>Math Operation<\/em><\/strong>.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Operacje logiczne<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">OR ( || )<\/h3>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"840\" height=\"156\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/tabela4-840x156.png\" alt=\"\" class=\"wp-image-15691\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/tabela4-840x156.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/tabela4-768x143.png 768w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/tabela4.png 1211w\" sizes=\"auto, (max-width: 840px) 100vw, 840px\" \/><\/figure>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">AND ( &amp;&amp; )<\/h3>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"840\" height=\"157\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/tabela5-840x157.png\" alt=\"\" class=\"wp-image-15692\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/tabela5-840x157.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/tabela5-768x143.png 768w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/tabela5.png 1211w\" sizes=\"auto, (max-width: 840px) 100vw, 840px\" \/><\/figure>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">EXOR ( ^ )<\/h3>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"840\" height=\"180\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/tabela6-840x180.png\" alt=\"\" class=\"wp-image-15693\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/tabela6-840x180.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/tabela6-768x165.png 768w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/tabela6.png 1212w\" sizes=\"auto, (max-width: 840px) 100vw, 840px\" \/><\/figure>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Zaprzeczenie ( ! )<\/h3>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"840\" height=\"132\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/tabela7-840x132.png\" alt=\"\" class=\"wp-image-15694\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/tabela7-840x132.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/tabela7-768x120.png 768w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/tabela7.png 1211w\" sizes=\"auto, (max-width: 840px) 100vw, 840px\" \/><\/figure>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Oczywi\u015bcie nie s\u0105 to wszystkie dost\u0119pne operacje logiczne. Wi\u0119cej ich znajdziesz w <strong><em>User Manual<\/em><\/strong> w rozdziale 15 w zak\u0142adce <strong><em>Logical Operation<\/em><\/strong>.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Instrukcja warunkowa IF<\/h2>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"763\" height=\"266\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/image1.png\" alt=\"\" class=\"wp-image-15682\"\/><\/figure>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Instrukcja wybiera rozwi\u0105zanie w zale\u017cno\u015bci od tego, kt\u00f3ry warunek jest prawdziwy. Je\u017celi \u017caden nie jest prawdziwy, program wykonuje polecenia zawarte pomi\u0119dzy instrukcjami <strong><em>ELSE <\/em><\/strong>i <strong><em>ENDIF<\/em><\/strong>. Warunkiem mog\u0105 by\u0107 klasyczne por\u00f3wnania znane z j\u0119zyka C (==, &lt;=, &lt;, itp.) lub konkretne zmienne binarne z programu.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">P\u0119tla FOR<\/h2>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"758\" height=\"256\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/image2.png\" alt=\"\" class=\"wp-image-15683\"\/><\/figure>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>P\u0119tla <strong><em>FOR <\/em><\/strong>realizuje w makrach swoje podstawowe zadanie \u2013 wykonywanie jednej komendy okre\u015blon\u0105 liczb\u0119 razy. Jej koniec wyznacza polecenie <strong><em>NEXT<\/em><\/strong>. Powy\u017cej pokazano przyk\u0142ad jej u\u017cycia w postaci dw\u00f3ch zagnie\u017cd\u017conych p\u0119tli.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Skok programu \u2013 Instrukcja JMP<\/h2>\n\n\n\n<p>Po jej napotkaniu program przeskakuje do fragmentu makra oznaczonego odpowiedni\u0105 etykiet\u0105. Ma dwie postacie: bezwarunkow\u0105 i warunkow\u0105.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"840\" height=\"339\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/image3-840x339.png\" alt=\"\" class=\"wp-image-15684\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/image3-840x339.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/image3-768x310.png 768w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/image3.png 1113w\" sizes=\"auto, (max-width: 840px) 100vw, 840px\" \/><\/figure>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Zarz\u0105dzanie ekranami<\/h2>\n\n\n\n<p>Mo\u017cesz zarz\u0105dza\u0107 ekranami z poziomu makra. S\u0142u\u017c\u0105 do tego polecenia <strong><em>OpenScreen<\/em><\/strong> oraz <strong><em>CloseScreen<\/em><\/strong>.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"840\" height=\"109\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/image4-840x109.png\" alt=\"\" class=\"wp-image-15685\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/image4-840x109.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/image4-768x99.png 768w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/image4.png 973w\" sizes=\"auto, (max-width: 840px) 100vw, 840px\" \/><\/figure>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Z poziomu programu mo\u017cesz tak\u017ce ustawi\u0107 czas, po jakim w\u0142\u0105czy si\u0119 wygaszacz ekranu. S\u0142u\u017cy do tego komenda <strong><em>SetScreenSaver<\/em><\/strong>, kt\u00f3ra jako parametr przyjmuje czas oczekiwania w minutach.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Podsumowanie<\/h2>\n\n\n\n<p>Powy\u017cej przedstawiono jedynie podstawowe informacje dotycz\u0105ce sk\u0142adni makr, aby m\u00f3c rozpocz\u0105\u0107 samodzielnie prac\u0119 z nimi. Wi\u0119cej informacji na ten temat mo\u017cna znale\u017a\u0107 w <strong><em>User Manual<\/em><\/strong> programu Astraada HMI CFG, w rozdziale 15. Jest on w ca\u0142o\u015bci po\u015bwi\u0119cony pisaniu i konfigurowaniu makr. Znajdziesz tam bardziej zaawansowane instrukcje logiczne, matematyczne oraz polecenia u\u017cywane do sterowania programem. Wszystkie pokazane s\u0105 z przyk\u0142adowym zastosowaniem oraz wyja\u015bnieniem, jak dok\u0142adnie dzia\u0142aj\u0105.<\/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>Sprawd\u017a ofert\u0119 paneli operatorskich <a href=\"https:\/\/www.astor.com.pl\/sklep\/sterowanie\/panele-operatorskie\/astraada-hmi-panel.html\">sklepie internetowym firmy ASTOR<\/a>.<\/p>\n<\/div>\r\n\t\t\t\t\t<\/div>\r\n\t\n\n\n\n            <div id=\"mailerlite-form_9\" data-temp-id=\"69e809e0f14fb\">\n                <div class=\"mailerlite-form\">\n                    <form action=\"\" method=\"post\" novalidate>\n                                                    <div class=\"mailerlite-form-title\"><h3>Newsletter Poradnika Automatyka<\/h3><\/div>\n                                                <div class=\"mailerlite-form-description\"><p>Czytaj trendy i inspiracje, podstawy automatyki, automatyk\u0119 w praktyce<\/p>\n<\/div>\n                        <div class=\"mailerlite-form-inputs\">\n                                                                                            <div class=\"mailerlite-form-field\">\n                                    <label for=\"mailerlite-9-field-email\">Email<\/label>\n                                    <input id=\"mailerlite-9-field-email\"\n                                           type=\"email\" required=\"required\"                                            name=\"form_fields[email]\"\n                                           placeholder=\"Email\"\/>\n                                <\/div>\n                                                        <div class=\"mailerlite-form-loader\">Please wait...<\/div>\n                            <div class=\"mailerlite-subscribe-button-container\">\n                                <button class=\"mailerlite-subscribe-submit\" type=\"submit\">\n                                    Zapisz si\u0119                                <\/button>\n                            <\/div>\n                            <input type=\"hidden\" name=\"form_id\" value=\"9\"\/>\n                            <input type=\"hidden\" name=\"action\" value=\"mailerlite_subscribe_form\"\/>\n                            <input type=\"hidden\" name=\"ml_nonce\" value=\"327f04c76a\"\/>\n                        <\/div>\n                        <div class=\"mailerlite-form-response\">\n                                                            <h4><p>Dzi\u0119kujemy za zapis do newslettera!<\/p>\n<\/h4>\n                                                    <\/div>\n                    <\/form>\n                <\/div>\n            <\/div>\n        <script type=\"text\/javascript\" src='https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/plugins\/official-mailerlite-sign-up-forms\/assets\/js\/localization\/validation-messages.js'><\/script>\n         <script type=\"text\/javascript\"> var selectedLanguage = \"pl\"; var validationMessages = messages[\"en\"]; if(selectedLanguage) { validationMessages = messages[selectedLanguage]; } window.addEventListener(\"load\", function () { var form_container = document.querySelector(`#mailerlite-form_9[data-temp-id=\"69e809e0f14fb\"] form`); let submitButton = form_container.querySelector('.mailerlite-subscribe-submit'); submitButton.disabled = true; fetch('https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-admin\/admin-ajax.php', { method: 'POST', headers:{ 'Content-Type': 'application\/x-www-form-urlencoded', }, body: new URLSearchParams({ \"action\" : \"ml_create_nonce\", \"ml_nonce\" : form_container.querySelector(\"input[name='ml_nonce']\").value }) }) .then((response) => response.json()) .then((json) => { if(json.success) { form_container.querySelector(\"input[name='ml_nonce']\").value = json.data.ml_nonce; submitButton.disabled = false; } }) .catch((error) => { console.error('Error:', error); }); form_container.addEventListener('submit', (e) => { e.preventDefault(); let data = new URLSearchParams(new FormData(form_container)).toString(); let validationError = false; document.querySelectorAll('.mailerlite-form-error').forEach(el => el.remove()); Array.from(form_container.elements).forEach((input) => { if(input.type !== 'hidden') { if(input.required) { if(input.value == '') { validationError = true; let error = document.createElement(\"span\"); error.className = 'mailerlite-form-error'; error.textContent = validationMessages.required; input.after(error); return false; } } if((input.type == \"email\") && (!validateEmail(input.value))) { validationError = true; let error = document.createElement(\"span\"); error.className = 'mailerlite-form-error'; error.textContent = validationMessages.email; input.after(error); return false; } } }); if(validationError) { return false; } fade.out(form_container.querySelector('.mailerlite-subscribe-button-container'), () => { fade.in(form_container.querySelector('.mailerlite-form-loader')); }); fetch('https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-admin\/admin-ajax.php', { method: 'POST', headers:{ 'Content-Type': 'application\/x-www-form-urlencoded', }, body: data }) .then((response) => { fade.out(form_container.querySelector('.mailerlite-form-inputs'), () => { fade.in(form_container.querySelector('.mailerlite-form-response')); }); }) .catch((error) => { console.error('Error:', error); }); }); }, false); var fade = { out: function(el, fn = false) { var fadeOutEffect = setInterval(function () { if (!el.style.opacity) { el.style.opacity = 1; } if (el.style.opacity > 0) { el.style.opacity -= 0.1; } else { el.style.display = 'none'; clearInterval(fadeOutEffect); } }, 50); if( typeof (fn) == 'function') { fn(); } }, in: function(el) { var fadeInEffect = setInterval(function () { if (!el.style.opacity) { el.style.opacity = 0; } if (el.style.opacity < 1) { el.style.opacity = Number(el.style.opacity) + 0.1; } else { el.style.display = 'block'; clearInterval(fadeInEffect); } }, 50); } }; function validateEmail(email){ if(email.match( \/^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$\/ )) { return true; } return false; } <\/script> \n<\/div><\/div>\n\n\n\n<div style=\"height:60px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Makra, czyli niewielkie skrypty, wykorzystywane s\u0105 w programowaniu paneli, aby usprawni\u0107 dzia\u0142anie aplikacji i doda\u0107 jej funkcjonalno\u015bci. W tym artykule opisujemy rodzaje makr oraz ich najpopularniejsze funkcje i instrukcje wraz z przyk\u0142adami.<\/p>\n","protected":false},"author":50,"featured_media":15682,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[234],"tags":[96],"class_list":["post-15678","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-automatyka-w-praktyce","tag-astraada-hmi-panel"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\r\n<title>Podstawy pisania skrypt\u00f3w dla paneli Astraada HMI | Poradnik Automatyka<\/title>\r\n<meta name=\"description\" content=\"Makra wykorzystywane s\u0105 w programowaniu paneli, aby usprawni\u0107 dzia\u0142anie aplikacji i doda\u0107 jej funkcjonalno\u015bci. Zobacz, jak ich u\u017cy\u0107.\" \/>\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\/podstawy-pisania-skryptow-dla-paneli-astraada-hmi\/\" \/>\r\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\r\n<meta property=\"og:type\" content=\"article\" \/>\r\n<meta property=\"og:title\" content=\"Podstawy pisania skrypt\u00f3w dla paneli Astraada HMI | Poradnik Automatyka\" \/>\r\n<meta property=\"og:description\" content=\"Makra wykorzystywane s\u0105 w programowaniu paneli, aby usprawni\u0107 dzia\u0142anie aplikacji i doda\u0107 jej funkcjonalno\u015bci. Zobacz, jak ich u\u017cy\u0107.\" \/>\r\n<meta property=\"og:url\" content=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/podstawy-pisania-skryptow-dla-paneli-astraada-hmi\/\" \/>\r\n<meta property=\"og:site_name\" content=\"Poradnik Automatyka\" \/>\r\n<meta property=\"article:published_time\" content=\"2023-03-01T10:05:00+00:00\" \/>\r\n<meta property=\"article:modified_time\" content=\"2024-10-11T14:03:18+00:00\" \/>\r\n<meta property=\"og:image\" content=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/image1.png\" \/>\r\n\t<meta property=\"og:image:width\" content=\"763\" \/>\r\n\t<meta property=\"og:image:height\" content=\"266\" \/>\r\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\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\\\/podstawy-pisania-skryptow-dla-paneli-astraada-hmi\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/podstawy-pisania-skryptow-dla-paneli-astraada-hmi\\\/\"},\"author\":{\"name\":\"Mateusz Fas\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/#\\\/schema\\\/person\\\/7029e2ba4cc4e4e1c9bfd3b6a47a8b67\"},\"headline\":\"Podstawy pisania skrypt\u00f3w dla paneli Astraada HMI\",\"datePublished\":\"2023-03-01T10:05:00+00:00\",\"dateModified\":\"2024-10-11T14:03:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/podstawy-pisania-skryptow-dla-paneli-astraada-hmi\\\/\"},\"wordCount\":1139,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/podstawy-pisania-skryptow-dla-paneli-astraada-hmi\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/wp-content\\\/uploads\\\/2023\\\/03\\\/image1.png\",\"keywords\":[\"Astraada HMI Panel\"],\"articleSection\":[\"Automatyka w praktyce\"],\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/podstawy-pisania-skryptow-dla-paneli-astraada-hmi\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/podstawy-pisania-skryptow-dla-paneli-astraada-hmi\\\/\",\"url\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/podstawy-pisania-skryptow-dla-paneli-astraada-hmi\\\/\",\"name\":\"Podstawy pisania skrypt\u00f3w dla paneli Astraada HMI | Poradnik Automatyka\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/podstawy-pisania-skryptow-dla-paneli-astraada-hmi\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/podstawy-pisania-skryptow-dla-paneli-astraada-hmi\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/wp-content\\\/uploads\\\/2023\\\/03\\\/image1.png\",\"datePublished\":\"2023-03-01T10:05:00+00:00\",\"dateModified\":\"2024-10-11T14:03:18+00:00\",\"description\":\"Makra wykorzystywane s\u0105 w programowaniu paneli, aby usprawni\u0107 dzia\u0142anie aplikacji i doda\u0107 jej funkcjonalno\u015bci. Zobacz, jak ich u\u017cy\u0107.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/podstawy-pisania-skryptow-dla-paneli-astraada-hmi\\\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/podstawy-pisania-skryptow-dla-paneli-astraada-hmi\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/podstawy-pisania-skryptow-dla-paneli-astraada-hmi\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/wp-content\\\/uploads\\\/2023\\\/03\\\/image1.png\",\"contentUrl\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/wp-content\\\/uploads\\\/2023\\\/03\\\/image1.png\",\"width\":763,\"height\":266},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/podstawy-pisania-skryptow-dla-paneli-astraada-hmi\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Automatyka w praktyce\",\"item\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/category\\\/automatyka-w-praktyce\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Podstawy pisania skrypt\u00f3w dla paneli Astraada HMI\"}]},{\"@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":"Podstawy pisania skrypt\u00f3w dla paneli Astraada HMI | Poradnik Automatyka","description":"Makra wykorzystywane s\u0105 w programowaniu paneli, aby usprawni\u0107 dzia\u0142anie aplikacji i doda\u0107 jej funkcjonalno\u015bci. Zobacz, jak ich u\u017cy\u0107.","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\/podstawy-pisania-skryptow-dla-paneli-astraada-hmi\/","og_locale":"pl_PL","og_type":"article","og_title":"Podstawy pisania skrypt\u00f3w dla paneli Astraada HMI | Poradnik Automatyka","og_description":"Makra wykorzystywane s\u0105 w programowaniu paneli, aby usprawni\u0107 dzia\u0142anie aplikacji i doda\u0107 jej funkcjonalno\u015bci. Zobacz, jak ich u\u017cy\u0107.","og_url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/podstawy-pisania-skryptow-dla-paneli-astraada-hmi\/","og_site_name":"Poradnik Automatyka","article_published_time":"2023-03-01T10:05:00+00:00","article_modified_time":"2024-10-11T14:03:18+00:00","og_image":[{"width":763,"height":266,"url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/image1.png","type":"image\/png"}],"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\/podstawy-pisania-skryptow-dla-paneli-astraada-hmi\/#article","isPartOf":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/podstawy-pisania-skryptow-dla-paneli-astraada-hmi\/"},"author":{"name":"Mateusz Fas","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#\/schema\/person\/7029e2ba4cc4e4e1c9bfd3b6a47a8b67"},"headline":"Podstawy pisania skrypt\u00f3w dla paneli Astraada HMI","datePublished":"2023-03-01T10:05:00+00:00","dateModified":"2024-10-11T14:03:18+00:00","mainEntityOfPage":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/podstawy-pisania-skryptow-dla-paneli-astraada-hmi\/"},"wordCount":1139,"commentCount":0,"publisher":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#organization"},"image":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/podstawy-pisania-skryptow-dla-paneli-astraada-hmi\/#primaryimage"},"thumbnailUrl":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/image1.png","keywords":["Astraada HMI Panel"],"articleSection":["Automatyka w praktyce"],"inLanguage":"pl-PL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.astor.com.pl\/poradnikautomatyka\/podstawy-pisania-skryptow-dla-paneli-astraada-hmi\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/podstawy-pisania-skryptow-dla-paneli-astraada-hmi\/","url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/podstawy-pisania-skryptow-dla-paneli-astraada-hmi\/","name":"Podstawy pisania skrypt\u00f3w dla paneli Astraada HMI | Poradnik Automatyka","isPartOf":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/podstawy-pisania-skryptow-dla-paneli-astraada-hmi\/#primaryimage"},"image":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/podstawy-pisania-skryptow-dla-paneli-astraada-hmi\/#primaryimage"},"thumbnailUrl":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/image1.png","datePublished":"2023-03-01T10:05:00+00:00","dateModified":"2024-10-11T14:03:18+00:00","description":"Makra wykorzystywane s\u0105 w programowaniu paneli, aby usprawni\u0107 dzia\u0142anie aplikacji i doda\u0107 jej funkcjonalno\u015bci. Zobacz, jak ich u\u017cy\u0107.","breadcrumb":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/podstawy-pisania-skryptow-dla-paneli-astraada-hmi\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.astor.com.pl\/poradnikautomatyka\/podstawy-pisania-skryptow-dla-paneli-astraada-hmi\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/podstawy-pisania-skryptow-dla-paneli-astraada-hmi\/#primaryimage","url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/image1.png","contentUrl":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/03\/image1.png","width":763,"height":266},{"@type":"BreadcrumbList","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/podstawy-pisania-skryptow-dla-paneli-astraada-hmi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Automatyka w praktyce","item":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/category\/automatyka-w-praktyce\/"},{"@type":"ListItem","position":2,"name":"Podstawy pisania skrypt\u00f3w dla paneli Astraada HMI"}]},{"@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\/15678","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=15678"}],"version-history":[{"count":2,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/posts\/15678\/revisions"}],"predecessor-version":[{"id":21462,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/posts\/15678\/revisions\/21462"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/media\/15682"}],"wp:attachment":[{"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/media?parent=15678"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/categories?post=15678"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/tags?post=15678"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}