{"id":5283,"date":"2020-01-23T16:02:05","date_gmt":"2020-01-23T15:02:05","guid":{"rendered":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/?p=5283"},"modified":"2023-08-22T11:24:32","modified_gmt":"2023-08-22T09:24:32","slug":"jak-tworzyc-oraz-konfigurowac-baze-zmiennych-w-srodowisku-cscape-kurs-plc-3","status":"publish","type":"post","link":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/jak-tworzyc-oraz-konfigurowac-baze-zmiennych-w-srodowisku-cscape-kurs-plc-3\/","title":{"rendered":"Jak tworzy\u0107 oraz konfigurowa\u0107 baz\u0119 zmiennych w \u015brodowisku Cscape? | Kurs programowania PLC od podstaw | Odc. 3"},"content":{"rendered":"\n<div class=\"dowiesz-sie\">\n<h3>Z tego artyku\u0142u dowiesz si\u0119:<\/h3>\n<ul class=\"bulleted\">\n<li>Jakie s\u0105 typy zmiennych dost\u0119pnych w Cscape?<\/li>\n<li>Jak tworzy\u0107 zmienne w obiekcie I\/O Names?<\/li>\n<li>Jak tworzy\u0107 zmienne z poziomu programu logicznego?<\/li>\n<li>Jak zrobi\u0107 import i export listy zmiennych?<\/li>\n<li>Jak wykorzysta\u0107 zmienne w programie steruj\u0105cym?<\/li>\n\n<\/ul>\n<\/div>\n\n\n\n<div style=\"height:23px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>W poprzednim artykule\npozna\u0142e\u015b\/a\u015b \u015brodowisko Cscape oraz nauczy\u0142e\u015b\/a\u015b si\u0119 organizacji pracy podczas tworzenia\nprojekt\u00f3w. Teraz czas na dalsze dzia\u0142ania i nauk\u0119 kolejnych podstaw niezb\u0119dnych\ndo programowania sterownik\u00f3w Horner. Kolejnym wa\u017cnym dla Ciebie krokiem b\u0119dzie przygotowanie\nlisty zmiennych oraz nauka w\u0142a\u015bciwego ich wykorzystania w programie steruj\u0105cym.\nUmiej\u0119tno\u015b\u0107 t\u0119 b\u0119dziesz wykorzystywa\u0142 w ka\u017cdym tworzonym projekcie, dlatego\nzapraszamy do dalszej lektury!<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"dowiesz-sie\" style=\"margin-top:40px; margin-bottom:40px\">\n<a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/kurs-programowania-plc-od-podstaw-dla-elektrykow-i-automatykow\/\"><h3>Kurs programowania PLC od podstaw dla automatyk\u00f3w i elektryk\u00f3w<\/h3><\/a>\n\n<h4 style=\"font-size:20px; margin-top:25px;\">Podstawy programowania sterownik\u00f3w PLC<\/h4>\n<li><a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wprowadzenie-jak-skonfigurowac-podlaczyc-oraz-uruchomic-sterownik-plc-kurs-plc-1\/\">1. Wprowadzenie. Jak skonfigurowa\u0107, pod\u0142\u0105czy\u0107 oraz uruchomi\u0107 sterownik PLC?<\/a><\/li>\n<li><a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/jak-tworzyc-i-edytowac-projekty-w-oprogramowaniu-cscape-kurs-plc-2\/\">2. Jak tworzy\u0107 i edytowa\u0107 projekty w oprogramowaniu Cscape?<\/a><\/li>\n<h4 style=\"font-size:20px; margin-top:25px;\">Programowanie sterownika PLC w j\u0119zyku drabinkowym<\/h4>\n<li><a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/jak-tworzyc-oraz-konfigurowac-baze-zmiennych-w-srodowisku-cscape-kurs-plc-3\/\">3. Jak tworzy\u0107 oraz konfigurowa\u0107 baz\u0119 zmiennych w \u015brodowisku Cscape?<\/a><\/li>\n<li><a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/jak-korzystac-ze-stykow-cewek-i-blokow-operacji-arytmetycznych-w-programie-sterujacym-kurs-plc-4\/\">4. Jak korzysta\u0107 ze styk\u00f3w, cewek i blok\u00f3w operacji arytmetycznych w programie steruj\u0105cym?<\/a><\/li>\n<li><a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/jak-odmierzac-czas-w-programie-sterujacym-i-jak-konfigurowac-timery-kurs-plc-5\/\">5. Jak odmierza\u0107 czas w programie steruj\u0105cym i jak konfigurowa\u0107 timery?<\/a><\/li>\n<li><a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/jak-porownywac-wartosci-i-wykorzystac-wyniki-operacji-logicznych-kurs-plc-6\/\">6. Jak por\u00f3wnywa\u0107 warto\u015bci i wykorzysta\u0107 wyniki operacji logicznych?<\/a><\/li>\n<li><a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/jak-zliczac-impulsy-i-konfigurowac-liczniki-kurs-plc-7\/\">7. Jak zlicza\u0107 impulsy i konfigurowa\u0107 liczniki?<\/a><\/li>\n<li><a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/8-jak-konwertowac-typy-zmiennych-i-przemieszczac-zmienne-w-programie-kurs-plc-8\/\">8. Jak konwertowa\u0107 typy zmiennych i przemieszcza\u0107 zmienne w programie?<\/a><\/li>\n<li><a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/jak-sterowac-wykonywaniem-programu-logicznego-instrukcja-skoku-warunkowego-kurs-plc-9\/\">9. Jak sterowa\u0107 wykonywaniem programu logicznego? Instrukcja skoku warunkowego<\/a><\/li>\n<h4 style=\"font-size:20px; margin-top:25px;\">Programowanie zintegrowanego panelu HMI<\/h4>\n<li><a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/jak-budowac-ekrany-operatorskie-z-obiektami-do-wizualizacji-i-zadawania-wartosci-zmiennych-kurs-plc-10\/\">10. Jak budowa\u0107 ekrany operatorskie z obiektami do wizualizacji i zadawania warto\u015bci zmiennych?<\/a><\/li>\n<li><a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/jak-zaprojektowac-nawigacje-miedzy-ekranami-operatorskimi-oraz-jak-korzystac-z-gotowych-obiektow-graficznych-kurs-plc-11\/\">11. Jak umo\u017cliwi\u0107 nawigacj\u0119 mi\u0119dzy ekranami operatorskimi oraz jak korzysta\u0107 z gotowych obiekt\u00f3w graficznych w \u015brodowisku Cscape?<\/a><\/li>\n<li><a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/jak-wizualizowac-zmienne-analogowe-oraz-jak-modyfikowac-ich-wartosci-przy-pomocy-obiektow-graficznych-kurs-plc-12\/\">12. Jak wizualizowa\u0107 zmienne analogowe oraz jak modyfikowa\u0107 ich warto\u015bci przy pomocy obiekt\u00f3w dost\u0119pnych w oprogramowaniu Cscape?<\/a><\/li>\n<li><a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/jak-korzystac-z-obiektu-menu-kurs-plc-13\/\">13. Jak korzysta\u0107 z obiektu menu?<\/a><\/li>\n<li><a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/konfiguracja-i-obsluga-alarmow-w-sterownikach-plc-kurs-plc-14\/\">14. Konfiguracja i obs\u0142uga alarm\u00f3w w sterownikach PLC<\/a><\/li>\n<li><a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/jak-konfigurowac-obiekt-trendow-kurs-plc-15\/\">15. Kontrolka Data Trend<\/a><\/li>\n<h4 style=\"font-size:20px; margin-top:25px;\">Komunikacja sterownik\u00f3w PLC w sieci szeregowej i Ethernet<\/h4>\n<li><a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/komunikacja-po-protokole-modbus-rtu-odc-16-kurs-programowania-plc-od-podstaw\/\">16. Komunikacja szeregowa Modbus RTU Master i Slave<\/a><\/li>\n<li><a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/komunikacja-w-sieci-cscan-kurs-plc-17\/\">17. Komunikacja CsCAN<\/a><\/li>\n<li><a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/komunikacja-w-sieci-modbus-tcp-kurs-plc-18\/\">18. Komunikacja Ethernet Modbus TCP<\/a><\/li>\n<li><a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wysylanie-wiadomosci-email-w-sterowniku-plc-kurs-plc-19\/\">19. Wysy\u0142anie wiadomo\u015bci Email w sterowniku PLC<\/a><\/li>\n<h4 style=\"font-size:20px; margin-top:25px;\">Zaawansowane funkcje sterownika PLC<\/h4>\n<li><a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/regulator-pid-kurs-programowania-plc-od-podstaw-odc-20\/\">20. Regulator PID<\/a><\/li>\n<li><a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/skladowanie-danych-data-logging-kurs-programowania-plc-od-podstaw-odc-21\/\">21. Sk\u0142adowanie danych: Data logging<\/a><\/li>\n<li><a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/skladowanie-danych-karta-microsd-kurs-programowania-plc-od-podstaw-odc-22\/\">22. Sk\u0142adowanie danych: karta MicroSD<\/a><\/li>\n<li><a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/trendy-historyczne-oraz-receptury-kurs-programowania-plc-od-podstaw-odc-23\/\">23. Trendy historyczne oraz receptury w programie<\/a><\/li>\n<li><a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/setpoint-backup-i-restore-danych-oraz-generowanie-raportow-z-poziomu-sterownika-kurs-programowania-plc-od-podstaw-odc-24\/\">24. Setpoint, backup i restore danych oraz generowanie raport\u00f3w z poziomu sterownika<\/a><\/li>\n<li><a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/hasla-i-zabezpieczenia-w-programie-ustawienia-jezyka-oraz-edytor-dostepny-w-narzedziu-opcja-autodokumentacji-dodatkowe-ustawienia-i-mozliwosci-edycji-kurs-programowania-plc-od-podstaw-odc-25\/\">25. Has\u0142a i zabezpieczenia w programie, ustawienia j\u0119zyka oraz edytor dost\u0119pny w narz\u0119dziu, opcja autodokumentacji \/ Dodatkowe ustawienia i mo\u017cliwo\u015bci edycji<\/a><\/li>\n\n\n<\/div>\n\n\n\n<div style=\"height:27px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Krok 1: Jakie typy zmiennych wykorzystywane s\u0105 w \u015brodowisku Cscape?<\/h3>\n\n\n\n<p>Zmienna to podstawowy element program\u00f3w steruj\u0105cych w\nsterownikach PLC, posiadaj\u0105cy cztery podstawowe atrybuty:<\/p>\n\n\n\n<ul class=\"bulleted wp-block-list\">\n<li>unikaln\u0105 nazw\u0119 (identyfikator, tag) \u2013 s\u0142u\u017cy do\nidentyfikowania zmiennej w programie,<\/li>\n\n\n\n<li>unikalny adres referencyjny \u2013 umo\u017cliwia dost\u0119p\ndo miejsca przechowywania zmiennej w wewn\u0119trznej pami\u0119ci sterownika PLC,<\/li>\n\n\n\n<li>typ \u2013 okre\u015bla rodzaj przechowywanych w niej\ndanych oraz spos\u00f3b reprezentacji jej warto\u015bci. W zale\u017cno\u015bci od typu, zmienna\nprzechowywana jest w okre\u015blonym obszarze pami\u0119ci sterownika,<\/li>\n\n\n\n<li>bie\u017c\u0105c\u0105 warto\u015b\u0107 \u2013 warto\u015b\u0107 zmiennej, kt\u00f3ra mo\u017ce\nby\u0107 zmieniana oraz odczytywana w trakcie wykonywania programu.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:43px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>W zale\u017cno\u015bci od typu warto\u015bci, jakie zmienna mo\u017ce\nprzyjmowa\u0107, okre\u015blany jest jej rodzaj. Sterowniki Horner pozwalaj\u0105 na obs\u0142ug\u0119\nnast\u0119puj\u0105cych typ\u00f3w zmiennych:<\/p>\n\n\n\n<ul class=\"bulleted wp-block-list\">\n<li>zmienne bitowe \u2013 s\u0142u\u017c\u0105 do opisywania stan\u00f3w, a ich warto\u015bci interpretowane s\u0105 jako ci\u0105gi bit\u00f3w (ka\u017cdy bit mo\u017ce przyjmowa\u0107 warto\u015b\u0107 0 lub 1),<\/li>\n<\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<center><table class=\"wp-block-table is-style-stripes\" style=\"width:100%\"><tbody>\n\n<tr><td><strong><center>Typ<\/center><\/strong><\/td>\n<td><strong><center>Nazwa<\/center><\/strong><\/td>\n<td><strong><center>Ilo\u015b\u0107 bit\u00f3w<\/strong><\/td>\n<td style=\"width:55%\"><strong><center>Opis<\/center><\/strong><\/td><\/tr>\n<tr><td><strong><center>Bool<\/center><\/strong><\/td>\n<td><center>Boolean<\/center><\/td>\n<td><center>1<\/center><\/td>\n<td>Pojedynczy bit. Mo\u017ce on posiada\u0107 tylko warto\u015b\u0107 \u20180\u2019 lub \u20181\u2019.<\/td><\/tr>\n<tr><td><strong><center>byte<\/strong><\/td>\n<td><center>Byte<\/center><\/td>\n<td><center>8<\/center><\/td><td>Ci\u0105g 8 kolejnych bit\u00f3w. Warto\u015bci typu bajt s\u0105 stosowane, je\u017celi ustawienia poszczeg\u00f3lnych bit\u00f3w maj\u0105 wi\u0119ksze znaczenie ni\u017c sama warto\u015b\u0107.<\/td><\/tr>\n<tr><td><strong><center>word<\/center><\/strong><\/td>\n<td><center>Word<\/center><\/td>\n<td><center>16<\/center><\/td>\n<td>Ci\u0105g 16 kolejnych bit\u00f3w. Warto\u015bci typu bajt s\u0105 stosowane, je\u017celi ustawienia poszczeg\u00f3lnych bit\u00f3w maj\u0105 wi\u0119ksze znaczenie ni\u017c sama warto\u015b\u0107.<\/td><\/tr>\n<tr><td><strong><center>Dword<\/center><\/strong><\/td>\n<td><center>Double Word<\/center><\/td>\n<td><center>32<\/center><\/td>\n<td>Ci\u0105g 32 kolejnych bit\u00f3w. Warto\u015bci typu bajt s\u0105 stosowane, je\u017celi ustawienia poszczeg\u00f3lnych bit\u00f3w maj\u0105 wi\u0119ksze znaczenie ni\u017c sama warto\u015b\u0107.<\/td><\/tr><\/tbody><\/table><\/center>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<ul class=\"bulleted wp-block-list\">\n<li>zmienne rejestrowe \u2013 s\u0142u\u017c\u0105 do przechowywania\nwarto\u015bci liczbowej (np. 123.5) i wykorzystywane do obs\u0142ugi poszczeg\u00f3lnych\nblok\u00f3w funkcyjnych; pojedynczy rejestr jest 16-bitowy,<\/li>\n<\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<table class=\"wp-block-table aligncenter is-style-stripes\" style=\"width:100%\">\n<tbody>\n<tr><td style=\"width:15%\"><strong><center>Typ<\/center><\/strong><\/td>\n<td style=\"width:15%\"><strong><center>Nazwa<\/center><\/strong><\/td>\n<td style=\"width:15%\"><strong><center>Ilo\u015b\u0107 bit\u00f3w<\/center><\/strong><\/td>\n<td style=\"width:55%\"><strong><center>Opis<\/center><\/strong><\/td><\/tr>\n<tr><td style=\"width:15%\"><strong><center>int<\/center><\/strong><\/td>\n<td><center>Integer<\/center><\/td>\n<td><center>16<\/center><\/td>\n<td>Warto\u015b\u0107 16-bitowa ze znakiem. Typ ten jest stosowany, je\u017celi przewidywane jest, \u017ce warto\u015b\u0107 b\u0119dzie mie\u015bci\u0107 si\u0119 w przedziale -32&nbsp;768 do +32 768<\/td><\/tr>\n<tr><td><strong><center>dint<\/center><\/strong><\/td>\n<td><center>Double Integer<\/center><\/td>\n<td><center>32<\/center><\/td>\n<td>Warto\u015b\u0107 32-bitowa ze znakiem. Typ ten jest stosowany, je\u017celi przewidywane jest, \u017ce warto\u015b\u0107 b\u0119dzie mie\u015bci\u0107 si\u0119 w przedziale -2&nbsp;147&nbsp;483&nbsp;648 do +2&nbsp;147&nbsp;483&nbsp;648<\/td><\/tr>\n<tr>\n<td><strong><center>real<\/strong><\/td>\n<td><center>Floating Point<\/center><\/td>\n<td><center>32<\/center><\/td>\n<td>Warto\u015b\u0107 32-bitowa. Warto\u015bci te s\u0105 przechowywane i przetwarzane w formacie IEEE pojedynczej precyzji (sze\u015b\u0107 cyfr). Warto\u015b\u0107 musi mie\u015bci\u0107 si\u0119 w przedziale od \u2013 3.40282E+38do +3.40282E+38<\/td><\/tr>\n<tr>\n<td><strong><center>Lreal<\/center><\/strong><\/td>\n<td><center>Long Floating Point<\/center><\/td>\n<td><center>64<\/center><\/td>\n<td>Warto\u015b\u0107 64-bitowa. Warto\u015bci te s\u0105 przechowywane i przetwarzane w formacie IEEE   pojedynczej precyzji (sze\u015b\u0107 cyfr). Warto\u015b\u0107 musi mie\u015bci\u0107 si\u0119 w przedziale od \u20131.797693E+308 do +1.797693E+308<\/td>\n<\/tr><\/tbody><\/table>\n\n\n\n<div style=\"height:39px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<ul class=\"bulleted wp-block-list\">\n<li>zmienne string \u2013 przechowuj\u0105 kody znak\u00f3w ASCII,<\/li>\n<\/ul>\n\n\n\n<center><table class=\"wp-block-table is-style-stripes\" style=\"width:100%\"><tbody>\n<tr><td style=\"width:15%\">\n  <strong><center>Typ<\/center><\/strong>\n  <\/td><td style=\"width:15%\">\n  <strong><center>Nazwa<\/center><\/strong>\n  <\/td><td style=\"width:15%\">\n  <strong><center>Ilo\u015b\u0107 bit\u00f3w<\/center><\/strong>\n  <\/td><td>\n  <strong><center>Opis<\/center><\/strong>\n  <\/td><\/tr><tr><td>\n  <strong><center>string<\/center><\/strong>\n  <\/td><td><center>String<\/center>\n  <\/td><td><center>Jeden znak na 8 bitach<\/center>\n  <\/td><td>Ci\u0105g znak\u00f3w o zmiennej d\u0142ugo\u015bci. Ka\u017cdy ze znak\u00f3w jest reprezentowany przez jeden bajt.<\/td><\/tr><\/tbody><\/table><\/center>\n\n\n\n<div style=\"height:32px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n            <div id=\"mailerlite-form_9\" data-temp-id=\"69e30dd64ff20\">\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=\"6cd4373302\"\/>\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=\"69e30dd64ff20\"] 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\n\n\n<div style=\"height:28px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Krok 2: Jak zorganizowana jest pami\u0119\u0107 w sterownikach Horner?<\/h3>\n\n\n\n<p>Zmienne wykorzystywane w programie mog\u0105 wykorzystywa\u0107 poni\u017csze obszary pami\u0119ci:<\/p>\n\n\n\n<table class=\"wp-block-table aligncenter is-style-stripes\" style=\"width:100%\"><tbody>\n<tr><td style=\"width:15%\"><strong><center>Obszar pami\u0119ci<\/center><\/strong><\/td>\n<td style=\"width:15%\"><strong><center>typ zmiennej<\/center><\/strong><\/td>\n<td style=\"width:15%\"><strong><center>rozmiar zmiennej<\/center><\/strong><\/td>\n<td style=\"width:15%\"><strong><center>ilo\u015b\u0107 zmiennych<\/center><\/strong><\/td>\n<td style=\"width:40%\"><strong><center>opis<\/center><\/strong><\/td><\/tr>\n<tr><td><strong><center>%s<\/center><\/strong><\/td>\n<td><center>bit systemowy<\/center><\/td>\n<td><center>1 bit<\/center><\/td>\n<td><center>256<\/center><\/td>\n<td>1-bit systemowy sygna\u0142 dyskretny<\/td><\/tr>\n\n<tr>\n<td><strong><center>%SR<\/center><\/strong><\/td>\n<td><center>rejestr systemowy<\/center><\/td>\n<td><center>16 bit\u00f3w<\/center><\/td>\n<td><center>256<\/center><\/td>\n<td>16-bitowy rejestr systemowy<\/td><\/tr>\n<tr>\n<td><strong><center>%T<\/center><\/strong><\/td>\n<td><center>bit bez podtrzymania<\/center><\/td>\n<td><center>1 bit<\/center><\/td>\n<td><center>16384<\/center><\/td>\n<td>1-bitowy sygna\u0142 dyskretny bez podtrzymania warto\u015bci po zaniku napi\u0119cia zasilania<\/td><\/tr>\n<tr>\n<td><strong><center>%M<\/strong><\/td>\n<td><center>bit z podtrzymaniem<\/td>\n<td><center>1 bit<\/td>\n<td><center>16384<\/center><\/td>\n<td>1-bitowy sygna\u0142 dyskretny z podtrzymaniem warto\u015bci po zaniku napi\u0119cia zasilania<\/td><\/tr>\n<tr>\n<td><strong><center>%R<\/center><\/strong><\/td>\n<td><center>rejestry z podtrzymaniem<\/center><\/td>\n<td><center>16 bit\u00f3w<\/center><\/td>\n<td><center>50000<\/center><\/td>\n<td>16-bitowe rejestry z podtrzymaniem warto\u015bci po zaniku napi\u0119cia zasilania<\/td><\/tr>\n<tr><td><strong><center>%K<\/center><\/strong><\/td>\n<td><center>bit klawiatury<\/center><\/td>\n<td><center>1 bit<\/center><\/td>\n<td><center>256<\/center><\/td>\n<td>1-bitowy sygna\u0142 dyskretny daj\u0105cy bezpo\u015bredni dost\u0119p z poziomu programu do wszystkich przycisk\u00f3w umieszczonych na panelu HMI<\/td><\/tr><tr>\n<td><strong><center>%D<\/center><\/strong><\/td>\n<td><center>bit ekranowy<\/center><\/td>\n<td><center>1 bit<\/center><\/td>\n<td><center>1023<\/center><\/td>\n<td>Flagi cyfrowe wykorzystywane do sterowania wy\u015bwietlanymi ekranami na panelu HMI. Je\u015bli bit jest ustawiony, pojawi si\u0119 dany ekran.<\/td><\/tr><\/tbody><\/table>\n\n\n\n<div style=\"height:45px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Pami\u0119\u0107 odpowiedzialna za rejestrowanie stan\u00f3w sygna\u0142\u00f3w wej\u015bciowych i wyj\u015bciowych zorganizowana jest w nast\u0119puj\u0105cy spos\u00f3b:<\/p>\n\n\n\n<table class=\"wp-block-table aligncenter is-style-stripes\" style=\"width:100%\">\n<tbody>\n<tr><td style=\"width:15%\"><strong><center>Obszar pami\u0119ci<\/center><\/strong><\/td>\n<td style=\"width:15%\"><strong><center>typ zmiennej<\/center><\/strong><\/td>\n<td style=\"width:15%\"><strong><center>rozmiar zmiennej<\/center><\/strong><\/td>\n<td style=\"width:15%\"><strong><center>ilo\u015b\u0107 zmiennych<\/center><\/strong><\/td>\n<td><strong><center>opis<\/center><\/strong><\/td><\/tr><tr>\n<td><strong><center>%i<\/center><\/strong><\/td>\n<td><center>Wej\u015bcie dyskretne<\/center><\/td>\n<td><center>1 bit<\/center><\/td>\n<td><center>2048<\/center><\/td>\n<td>1-bitowe wej\u015bcie dyskretne, najcz\u0119\u015bciej wykorzystywane do pod\u0142\u0105czenia prze\u0142\u0105cznik\u00f3w czynnik\u00f3w dyskretnych<\/td><\/tr><tr>\n<td><strong><center>%q<\/center><\/strong><\/td>\n<td><center>Wyj\u015bcie dyskretne<\/center><\/td>\n<td><center>1 bit<\/center><\/td>\n<td><center>2048<\/center><\/td>\n<td>1-bitowe wyj\u015bcie dyskretne, najcz\u0119\u015bciej wykorzystywane do pod\u0142\u0105czenia fizycznych wyj\u015b\u0107<\/td><\/tr>\n<tr>\n<td><strong><center>%ai<\/center><\/strong><\/td>\n<td><center>Wej\u015bcie analogowe<\/center><\/td>\n<td><center>16 bit\u00f3w<\/center><\/td>\n<td><center>512<\/center><\/td>\n<td>16-bitowe rejestry wej\u015bciowe analogowe stosowane w celu zebrania danych wej\u015bciowych, takich jak napi\u0119cia, temperatury pochodz\u0105cych z do\u0142\u0105czonych urz\u0105dze\u0144<\/td><\/tr>\n<tr><td><strong><center>%aq<\/center><\/strong><\/td>\n<td><center>Wyj\u015bcie analogowe<\/center><\/td>\n<td><center>16 bit\u00f3w<\/center><\/td>\n<td><center>512<\/center><\/td>\n<td>16-bitowe rejestry wyj\u015bciowe do przesy\u0142ania informacji analogowych takich jak napi\u0119cia, pr\u0105dy pod\u0142\u0105czonych urz\u0105dze\u0144<\/td><\/tr><\/tbody><\/table>\n\n\n\n<div style=\"height:45px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Krok 3: Jak zarz\u0105dza\u0107&nbsp;zmiennymi w oprogramowaniu Cscape?<\/h3>\n\n\n\n<p>Operacje na zmiennych takie jak dodawanie, usuwanie i edycja mo\u017cliwe s\u0105 po wybraniu opcji<strong> I\/O Names<\/strong>, znajduj\u0105cej si\u0119 w oknie Project Navigator oprogramowania Cscape.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2019\/09\/Szkolenie_Horner_APG_Lab_3_1_1.png\" alt=\"\" class=\"wp-image-5322\" width=\"272\" height=\"293\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:46px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Now\u0105 zmienn\u0105 <strong>dodasz,<\/strong> wybieraj\u0105c przycisk <em>Add, <\/em>a nast\u0119pnie uzupe\u0142niaj\u0105c parametry odnosz\u0105ce si\u0119 do jej adresu, typu i unikalnej nazwy. Opcjonalnie wykorzystuj\u0105c pole komentarza mo\u017cesz poda\u0107 informacj\u0119, do czego wykorzystywana b\u0119dzie tworzona zmienna.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2019\/09\/Szkolenie_Horner_APG_Lab_3_2_1.png\" alt=\"\" class=\"wp-image-5323\" width=\"715\" height=\"459\"\/><\/figure>\n<\/div>\n\n\n<p>Nowa zmienna pojawia si\u0119 na li\u015bcie dost\u0119pnych zmiennych w programie.<\/p>\n\n\n\n<div style=\"height:71px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image external-link\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/www.astor.com.pl\/produkty\/producenci\/horner-apg.html\"><img loading=\"lazy\" decoding=\"async\" width=\"840\" height=\"200\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2020\/01\/Horner_baner_1-840x200.png\" alt=\"\" class=\"wp-image-18855\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2020\/01\/Horner_baner_1-840x200.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2020\/01\/Horner_baner_1-768x183.png 768w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2020\/01\/Horner_baner_1-1536x366.png 1536w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2020\/01\/Horner_baner_1.png 1680w\" sizes=\"auto, (max-width: 840px) 100vw, 840px\" \/><\/a><\/figure>\n<\/div>\n\n\n<div style=\"height:71px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"> Programowanie w akcji!<\/h2>\n\n\n\n<p>Dodasz teraz zmienne, kt\u00f3re wykorzystasz w programie.<\/p>\n\n\n\n<p>W spos\u00f3b zaprezentowany powy\u017cej uzupe\u0142nij baz\u0119 kolejnymi zmiennymi:<\/p>\n\n\n\n<figure class=\"wp-block-table aligncenter is-style-stripes\"><table><tbody><tr><td>\n  %m00001\n  <\/td><td>\n  1\n  <\/td><td>\n  Impuls_100ms&nbsp; \n  <\/td><\/tr><tr><td>\n  %m00002\n  <\/td><td>\n  1\n  <\/td><td>\n  Zawor_napelniajacy_ZB1\n  <\/td><\/tr><tr><td>\n  %m00003\n  <\/td><td>\n  1\n  <\/td><td>\n  Zawor_oprozniajacy_ZB1\n  <\/td><\/tr><tr><td>\n  %m00004\n  <\/td><td>\n  1\n  <\/td><td>\n  Zawor_napelniajacy_ZB2\n  <\/td><\/tr><tr><td>\n  %m00005\n  <\/td><td>\n  1\n  <\/td><td>\n  Zawor_oprozniajacy_ZB2\n  <\/td><\/tr><tr><td>\n  %m00006\n  <\/td><td>\n  1\n  <\/td><td>\n  Zawor_oprozniajacy_ZB3\n  <\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Aby <strong>usun\u0105\u0107<\/strong> lub <strong>zmodyfikowa\u0107<\/strong> zmienn\u0105, zaznacz konkretn\u0105\npozycj\u0119 na li\u015bcie i wybierz przycisk <em>Remove<\/em>\nlub <em>Edit<\/em>.<\/p>\n\n\n\n<p>Dodatkowo dost\u0119pna jest opcja <em>Where, <\/em>kt\u00f3ra poinformuje Ci\u0119, <strong>gdzie\nwybrana zmienna zosta\u0142a wykorzystana<\/strong> w kodzie. <\/p>\n\n\n\n<p>\u015arodowisko Cscape daje mo\u017cliwo\u015b\u0107 <strong>importowania<\/strong> bazy zmiennych z arkusza kalkulacyjnego. W tym celu skopiuj\nprzygotowany zestaw zmiennych przy u\u017cyciu schowka systemowego, a nast\u0119pnie\nwklej je do okna I\/O Names, u\u017cywaj\u0105c przycisku <em>Paste. <\/em><\/p>\n\n\n\n<p><em>Uwaga: <\/em>Przy tworzeniu zestawu w arkuszu kalkulacyjnym zwr\u00f3\u0107 uwag\u0119, by pierwsza kolumna zawiera\u0142a <strong>adres zmiennej<\/strong>, kolejna kolumna &#8211; <strong>liczb\u0119 bit\u00f3w<\/strong>, a ostatnia kolumna &#8211; unikaln\u0105 <strong>nazw\u0119<\/strong>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2019\/09\/Szkolenie_Horner_APG_Lab_3_3_1.png\" alt=\"\" class=\"wp-image-5324\" width=\"492\" height=\"530\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:47px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2019\/09\/Szkolenie_Horner_APG_Lab_3_4_1.png\" alt=\"\" class=\"wp-image-5325\" width=\"718\" height=\"461\"\/><\/figure>\n<\/div>\n\n\n<p>Mo\u017cliwy jest tak\u017ce eksport zmiennych przy u\u017cyciu opcji <em>Copy all. <\/em>Nast\u0119pnie w arkuszu\nkalkulacyjnym wybierz polecenie <em>Wklej<\/em>.\nNa wyeksportowanych elementach mo\u017cesz dalej pracowa\u0107, dowolnie je edytuj\u0105c.<\/p>\n\n\n\n<p>Teraz w arkuszu kalkulacyjnym przygotuj list\u0119 zmiennych z\nponi\u017cszej grafiki i wklej j\u0105 do bazy zmiennej w programie Cscape.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"454\" height=\"578\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2019\/09\/image.png\" alt=\"\" class=\"wp-image-5326\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:48px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Dodawanie zmiennych mo\u017cliwe jest r\u00f3wnie\u017c z poziomu programu steruj\u0105cego.\n<\/p>\n\n\n\n<div style=\"height:38px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Czas rozpocz\u0105\u0107 programowanie w j\u0119zyku drabinkowym! <\/strong><\/p>\n\n\n\n<p>W tym celu w projekcie utw\u00f3rz pierwszy szczebel kodu. Z\ng\u00f3rnego paska wybierz ikon\u0119 styku i umie\u015b\u0107 j\u0105 na szarym tle. Obok umie\u015b\u0107 ikon\u0119\ncewki. <\/p>\n\n\n\n<p>Elementy drabinki b\u0119d\u0105 om\u00f3wione w dalszej cz\u0119\u015bci kursu, na razie wykorzystamy tylko te dwa na potrzeb\u0119 stworzenia zmiennych.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2019\/09\/Szkolenie_Horner_APG_Lab_3_6_11.png\" alt=\"\" class=\"wp-image-5357\" width=\"802\" height=\"376\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2019\/09\/Szkolenie_Horner_APG_Lab_3_6_11.png 802w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2019\/09\/Szkolenie_Horner_APG_Lab_3_6_11-768x360.png 768w\" sizes=\"auto, (max-width: 802px) 100vw, 802px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Kolejno kliknij dwukrotnie na wybranym elemencie i w oknie\nedycyjnym podaj adres i nazw\u0119 zmiennej. Typ zmiennej konfigurowany jest\nautomatycznie. Tak wprowadzone dane wystarcz\u0105 do utworzenia nowej zmiennej w\nbazie programu. <\/p>\n\n\n\n<p>Jest to bardzo szybkie rozwi\u0105zanie, jednak nie polecane do\ntworzenia du\u017cego i z\u0142o\u017conego zestawu zmiennych &#8211; nie daje ono pe\u0142nej kontroli i\npodgl\u0105du tworzonej bazy. Bardzo u\u017cyteczne okazuje si\u0119 w przypadku tworzenia\npojedynczych zmiennych pomocniczych.<\/p>\n\n\n\n<p>Przypisywanie zmiennych z bazy do wybranych element\u00f3w\ndrabinki realizowane jest t\u0105 sam\u0105 drog\u0105. W otwartym oknie, otwieraj\u0105cym si\u0119 po\nklikni\u0119ciu w element, wpisujemy nazw\u0119 lub adres, pod kt\u00f3rym znajduje si\u0119\nzmienna.<\/p>\n\n\n\n<div style=\"height:45px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Na potrzeby tworzonego programu do styku normalnie otwartego\nprzypisz zmienn\u0105 programow\u0105 o nazwie T_100ms i adresie %S004 (wystarczy w\nmiejscu <strong>Address<\/strong> wpisa\u0107 \u201es4\u201d),\nnatomiast do cewki przypisz zmienn\u0105 o nazwie Impuls_100ms i adresie %M00001\n(wystarczy w miejscu <strong>Address<\/strong> wpisa\u0107\n\u201e<em>m1<\/em>\u201d). <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2019\/09\/Szkolenie_Horner_APG_Lab_3_7_1.png\" alt=\"\" class=\"wp-image-5358\" width=\"709\" height=\"336\"\/><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2019\/09\/Szkolenie_Horner_APG_Lab_3_8_1.png\" alt=\"\" class=\"wp-image-5359\" width=\"758\" height=\"336\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Zmienna T_100ms o adresie %S004 ustawia warto\u015b\u0107 1 co 100 ms, co powoduje przep\u0142yw sygna\u0142u co kolejne 100 ms i cykliczne zasilanie cewki. Inne zmienne programowe znale\u017a\u0107 mo\u017cna w tablicy I\/O names.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2019\/09\/Szkolenie_Horner_APG_Lab_3_9_1.png\" alt=\"\" class=\"wp-image-5361\" width=\"708\" height=\"145\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<p><em>W kolejnym artykule z cyklu&nbsp;k<\/em>urs \u201eProgramowanie oraz konfiguracja sterownik\u00f3w PLC zintegrowanych z hmi\u201d: <strong><a href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/programowanie-plc-od-podstaw-kurs-dla-automatykow-i-elektrykow-4-jak-korzystac-ze-stykow-cewek-i-blokow-operacji-arytmetycznych-w-programie-sterujacym\/\">Jak korzysta\u0107 ze styk\u00f3w, cewek i blok\u00f3w operacji arytmetycznych w programie steruj\u0105cym?<\/a><\/strong><\/p>\n\n\n\n<ul class=\"bulleted wp-block-list\">\n<li>Jak doda\u0107 do programu steruj\u0105cego styki, cewki i bloki arytmetyczne w \u015brodowisku Cscape?<\/li>\n\n\n\n<li>Jak utworzy\u0107 prost\u0105 logik\u0119 programu steruj\u0105cego?<\/li>\n\n\n\n<li>Jak skompilowa\u0107 stworzony program i wgra\u0107 go do sterownika?<\/li>\n\n\n\n<li>Jak \u015bledzi\u0107 wykonywany program i jak monitorowa\u0107 warto\u015bci wykorzystanych zmiennych?<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n","protected":false},"excerpt":{"rendered":"<p>Sprawd\u017a, jak tworzy\u0107 zmienne w \u015brodowisku Cscape oraz jakie typy zmiennych wyst\u0119puj\u0105 w programach steruj\u0105cych. <\/p>\n","protected":false},"author":4,"featured_media":7170,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[21,186],"class_list":["post-5283","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bez-kategorii","tag-horner","tag-kurs-plc"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\r\n<title>Jak tworzy\u0107 oraz konfigurowa\u0107 baz\u0119 zmiennych w \u015brodowisku Cscape? | Kurs programowania PLC od podstaw | Odc. 3 | Poradnik Automatyka<\/title>\r\n<meta name=\"description\" content=\"W poprzednim artykule pozna\u0142e\u015b\/a\u015b \u015brodowisko Cscape Teraz czas na dalsze dzia\u0142ania i nauk\u0119 kolejnych podstaw do programowania sterownik\u00f3w Horner.\" \/>\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\/jak-tworzyc-oraz-konfigurowac-baze-zmiennych-w-srodowisku-cscape-kurs-plc-3\/\" \/>\r\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\r\n<meta property=\"og:type\" content=\"article\" \/>\r\n<meta property=\"og:title\" content=\"Jak tworzy\u0107 oraz konfigurowa\u0107 baz\u0119 zmiennych w \u015brodowisku Cscape? | Kurs programowania PLC od podstaw | Odc. 3 | Poradnik Automatyka\" \/>\r\n<meta property=\"og:description\" content=\"W poprzednim artykule pozna\u0142e\u015b\/a\u015b \u015brodowisko Cscape Teraz czas na dalsze dzia\u0142ania i nauk\u0119 kolejnych podstaw do programowania sterownik\u00f3w Horner.\" \/>\r\n<meta property=\"og:url\" content=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/jak-tworzyc-oraz-konfigurowac-baze-zmiennych-w-srodowisku-cscape-kurs-plc-3\/\" \/>\r\n<meta property=\"og:site_name\" content=\"Poradnik Automatyka\" \/>\r\n<meta property=\"article:published_time\" content=\"2020-01-23T15:02:05+00:00\" \/>\r\n<meta property=\"article:modified_time\" content=\"2023-08-22T09:24:32+00:00\" \/>\r\n<meta property=\"og:image\" content=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2020\/01\/hor.png\" \/>\r\n\t<meta property=\"og:image:width\" content=\"900\" \/>\r\n\t<meta property=\"og:image:height\" content=\"446\" \/>\r\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\r\n<meta name=\"author\" content=\"Kamil Zajdel\" \/>\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=\"Kamil Zajdel\" \/>\n\t<meta name=\"twitter:label2\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 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\\\/jak-tworzyc-oraz-konfigurowac-baze-zmiennych-w-srodowisku-cscape-kurs-plc-3\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/jak-tworzyc-oraz-konfigurowac-baze-zmiennych-w-srodowisku-cscape-kurs-plc-3\\\/\"},\"author\":{\"name\":\"Kamil Zajdel\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/#\\\/schema\\\/person\\\/2eff1c7d27097dc02ee167d1c4df035e\"},\"headline\":\"Jak tworzy\u0107 oraz konfigurowa\u0107 baz\u0119 zmiennych w \u015brodowisku Cscape? | Kurs programowania PLC od podstaw | Odc. 3\",\"datePublished\":\"2020-01-23T15:02:05+00:00\",\"dateModified\":\"2023-08-22T09:24:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/jak-tworzyc-oraz-konfigurowac-baze-zmiennych-w-srodowisku-cscape-kurs-plc-3\\\/\"},\"wordCount\":1460,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/jak-tworzyc-oraz-konfigurowac-baze-zmiennych-w-srodowisku-cscape-kurs-plc-3\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/hor.png\",\"keywords\":[\"Horner APG\",\"Kurs PLC\"],\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/jak-tworzyc-oraz-konfigurowac-baze-zmiennych-w-srodowisku-cscape-kurs-plc-3\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/jak-tworzyc-oraz-konfigurowac-baze-zmiennych-w-srodowisku-cscape-kurs-plc-3\\\/\",\"url\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/jak-tworzyc-oraz-konfigurowac-baze-zmiennych-w-srodowisku-cscape-kurs-plc-3\\\/\",\"name\":\"Jak tworzy\u0107 oraz konfigurowa\u0107 baz\u0119 zmiennych w \u015brodowisku Cscape? | Kurs programowania PLC od podstaw | Odc. 3 | Poradnik Automatyka\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/jak-tworzyc-oraz-konfigurowac-baze-zmiennych-w-srodowisku-cscape-kurs-plc-3\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/jak-tworzyc-oraz-konfigurowac-baze-zmiennych-w-srodowisku-cscape-kurs-plc-3\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/hor.png\",\"datePublished\":\"2020-01-23T15:02:05+00:00\",\"dateModified\":\"2023-08-22T09:24:32+00:00\",\"description\":\"W poprzednim artykule pozna\u0142e\u015b\\\/a\u015b \u015brodowisko Cscape Teraz czas na dalsze dzia\u0142ania i nauk\u0119 kolejnych podstaw do programowania sterownik\u00f3w Horner.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/jak-tworzyc-oraz-konfigurowac-baze-zmiennych-w-srodowisku-cscape-kurs-plc-3\\\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/jak-tworzyc-oraz-konfigurowac-baze-zmiennych-w-srodowisku-cscape-kurs-plc-3\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/jak-tworzyc-oraz-konfigurowac-baze-zmiennych-w-srodowisku-cscape-kurs-plc-3\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/hor.png\",\"contentUrl\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/hor.png\",\"width\":900,\"height\":446},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/jak-tworzyc-oraz-konfigurowac-baze-zmiennych-w-srodowisku-cscape-kurs-plc-3\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Bez kategorii\",\"item\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/category\\\/bez-kategorii\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Jak tworzy\u0107 oraz konfigurowa\u0107 baz\u0119 zmiennych w \u015brodowisku Cscape? | Kurs programowania PLC od podstaw | Odc. 3\"}]},{\"@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\\\/2eff1c7d27097dc02ee167d1c4df035e\",\"name\":\"Kamil Zajdel\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/K.-Zajdel.jpg\",\"url\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/K.-Zajdel.jpg\",\"contentUrl\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/K.-Zajdel.jpg\",\"caption\":\"Kamil Zajdel\"},\"description\":\"Absolwent Akademii G\u00f3rniczo \u2013 Hutniczej na kierunku Automatyka i Robotyka. Od kilku lat zwi\u0105zany z ASTORem i programowaniem sterownik\u00f3w PLC. Wsp\u00f3\u0142tw\u00f3rca kursu programowania PLC dla automatyk\u00f3w i elektryk\u00f3w.\",\"sameAs\":[\"https:\\\/\\\/pl.linkedin.com\\\/in\\\/kamil-zajdel-a7803399?trk=people-guest_people_search-card\"],\"url\":\"https:\\\/\\\/www.astor.com.pl\\\/poradnikautomatyka\\\/autor\\\/kamilza\\\/\"}]}<\/script>\r\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Jak tworzy\u0107 oraz konfigurowa\u0107 baz\u0119 zmiennych w \u015brodowisku Cscape? | Kurs programowania PLC od podstaw | Odc. 3 | Poradnik Automatyka","description":"W poprzednim artykule pozna\u0142e\u015b\/a\u015b \u015brodowisko Cscape Teraz czas na dalsze dzia\u0142ania i nauk\u0119 kolejnych podstaw do programowania sterownik\u00f3w Horner.","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\/jak-tworzyc-oraz-konfigurowac-baze-zmiennych-w-srodowisku-cscape-kurs-plc-3\/","og_locale":"pl_PL","og_type":"article","og_title":"Jak tworzy\u0107 oraz konfigurowa\u0107 baz\u0119 zmiennych w \u015brodowisku Cscape? | Kurs programowania PLC od podstaw | Odc. 3 | Poradnik Automatyka","og_description":"W poprzednim artykule pozna\u0142e\u015b\/a\u015b \u015brodowisko Cscape Teraz czas na dalsze dzia\u0142ania i nauk\u0119 kolejnych podstaw do programowania sterownik\u00f3w Horner.","og_url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/jak-tworzyc-oraz-konfigurowac-baze-zmiennych-w-srodowisku-cscape-kurs-plc-3\/","og_site_name":"Poradnik Automatyka","article_published_time":"2020-01-23T15:02:05+00:00","article_modified_time":"2023-08-22T09:24:32+00:00","og_image":[{"width":900,"height":446,"url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2020\/01\/hor.png","type":"image\/png"}],"author":"Kamil Zajdel","twitter_card":"summary_large_image","twitter_misc":{"Napisane przez":"Kamil Zajdel","Szacowany czas czytania":"10 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/jak-tworzyc-oraz-konfigurowac-baze-zmiennych-w-srodowisku-cscape-kurs-plc-3\/#article","isPartOf":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/jak-tworzyc-oraz-konfigurowac-baze-zmiennych-w-srodowisku-cscape-kurs-plc-3\/"},"author":{"name":"Kamil Zajdel","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#\/schema\/person\/2eff1c7d27097dc02ee167d1c4df035e"},"headline":"Jak tworzy\u0107 oraz konfigurowa\u0107 baz\u0119 zmiennych w \u015brodowisku Cscape? | Kurs programowania PLC od podstaw | Odc. 3","datePublished":"2020-01-23T15:02:05+00:00","dateModified":"2023-08-22T09:24:32+00:00","mainEntityOfPage":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/jak-tworzyc-oraz-konfigurowac-baze-zmiennych-w-srodowisku-cscape-kurs-plc-3\/"},"wordCount":1460,"commentCount":0,"publisher":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#organization"},"image":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/jak-tworzyc-oraz-konfigurowac-baze-zmiennych-w-srodowisku-cscape-kurs-plc-3\/#primaryimage"},"thumbnailUrl":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2020\/01\/hor.png","keywords":["Horner APG","Kurs PLC"],"inLanguage":"pl-PL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.astor.com.pl\/poradnikautomatyka\/jak-tworzyc-oraz-konfigurowac-baze-zmiennych-w-srodowisku-cscape-kurs-plc-3\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/jak-tworzyc-oraz-konfigurowac-baze-zmiennych-w-srodowisku-cscape-kurs-plc-3\/","url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/jak-tworzyc-oraz-konfigurowac-baze-zmiennych-w-srodowisku-cscape-kurs-plc-3\/","name":"Jak tworzy\u0107 oraz konfigurowa\u0107 baz\u0119 zmiennych w \u015brodowisku Cscape? | Kurs programowania PLC od podstaw | Odc. 3 | Poradnik Automatyka","isPartOf":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/jak-tworzyc-oraz-konfigurowac-baze-zmiennych-w-srodowisku-cscape-kurs-plc-3\/#primaryimage"},"image":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/jak-tworzyc-oraz-konfigurowac-baze-zmiennych-w-srodowisku-cscape-kurs-plc-3\/#primaryimage"},"thumbnailUrl":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2020\/01\/hor.png","datePublished":"2020-01-23T15:02:05+00:00","dateModified":"2023-08-22T09:24:32+00:00","description":"W poprzednim artykule pozna\u0142e\u015b\/a\u015b \u015brodowisko Cscape Teraz czas na dalsze dzia\u0142ania i nauk\u0119 kolejnych podstaw do programowania sterownik\u00f3w Horner.","breadcrumb":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/jak-tworzyc-oraz-konfigurowac-baze-zmiennych-w-srodowisku-cscape-kurs-plc-3\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.astor.com.pl\/poradnikautomatyka\/jak-tworzyc-oraz-konfigurowac-baze-zmiennych-w-srodowisku-cscape-kurs-plc-3\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/jak-tworzyc-oraz-konfigurowac-baze-zmiennych-w-srodowisku-cscape-kurs-plc-3\/#primaryimage","url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2020\/01\/hor.png","contentUrl":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2020\/01\/hor.png","width":900,"height":446},{"@type":"BreadcrumbList","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/jak-tworzyc-oraz-konfigurowac-baze-zmiennych-w-srodowisku-cscape-kurs-plc-3\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Bez kategorii","item":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/category\/bez-kategorii\/"},{"@type":"ListItem","position":2,"name":"Jak tworzy\u0107 oraz konfigurowa\u0107 baz\u0119 zmiennych w \u015brodowisku Cscape? | Kurs programowania PLC od podstaw | Odc. 3"}]},{"@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\/2eff1c7d27097dc02ee167d1c4df035e","name":"Kamil Zajdel","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/04\/K.-Zajdel.jpg","url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/04\/K.-Zajdel.jpg","contentUrl":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2023\/04\/K.-Zajdel.jpg","caption":"Kamil Zajdel"},"description":"Absolwent Akademii G\u00f3rniczo \u2013 Hutniczej na kierunku Automatyka i Robotyka. Od kilku lat zwi\u0105zany z ASTORem i programowaniem sterownik\u00f3w PLC. Wsp\u00f3\u0142tw\u00f3rca kursu programowania PLC dla automatyk\u00f3w i elektryk\u00f3w.","sameAs":["https:\/\/pl.linkedin.com\/in\/kamil-zajdel-a7803399?trk=people-guest_people_search-card"],"url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/autor\/kamilza\/"}]}},"_links":{"self":[{"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/posts\/5283","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\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/comments?post=5283"}],"version-history":[{"count":2,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/posts\/5283\/revisions"}],"predecessor-version":[{"id":18859,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/posts\/5283\/revisions\/18859"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/media\/7170"}],"wp:attachment":[{"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/media?parent=5283"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/categories?post=5283"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/tags?post=5283"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}