{"id":27784,"date":"2024-11-24T13:05:07","date_gmt":"2024-11-24T12:05:07","guid":{"rendered":"https:\/\/sklep-plcspace.pl\/?p=27784"},"modified":"2024-12-16T10:41:27","modified_gmt":"2024-12-16T09:41:27","slug":"praktyczne-zastosowanie-blokow-danych-array","status":"publish","type":"post","link":"https:\/\/sklep-plcspace.pl\/en\/blog\/praktyczne-zastosowanie-blokow-danych-array\/","title":{"rendered":"Praktyczne zastosowanie blok\u00f3w danych ARRAY w programach u\u017cytkownika"},"content":{"rendered":"<p><strong>Bloki danych ARRAY to <a href=\"https:\/\/sklep-plcspace.pl\/en\/blog\/globalne-bloki-danych-db-co-musisz-wiedziec\/?wmc-currency=EUR\">globalne bloki danych<\/a>, kt\u00f3re sk\u0142adaj\u0105 si\u0119 wy\u0142\u0105cznie z ARRAY. Blok danych z tagiem typu danych ARRAY jest wystarczaj\u0105cy dla wi\u0119kszo\u015bci aplikacji, poniewa\u017c dost\u0119p mo\u017cna programowa\u0107 intuicyjnie za pomoc\u0105 tagu typu danych ARRAY (na przyk\u0142ad, #myArray[#index]) i oferuje lepsz\u0105 wydajno\u015b\u0107 w czasie wykonywania ni\u017c bloki danych ARRAY. W pewnych scenariuszach jednak konieczne jest przetwarzanie ARRAY z r\u00f3\u017cnymi d\u0142ugo\u015bciami. Blok danych ARRAY jest szczeg\u00f3lnie odpowiedni dla tych scenariuszy.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Jak zastosowa\u0107 bloki danych ARRAY w programach u\u017cytkownika<\/strong><\/h2>\n\n\n\n<p>W poni\u017cszym przyk\u0142adzie pokazano, jak mo\u017cna u\u017cy\u0107 bloku danych ARRAY.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Przyk\u0142ad programowania<\/strong><\/h3>\n\n\n\n<p>Poszczeg\u00f3lne elementy materia\u0142u s\u0105 transportowane na ta\u015bmie transportowej. Te elementy materia\u0142u przechodz\u0105 przez skaner, kt\u00f3ry mo\u017ce odczyta\u0107 informacje, kt\u00f3re dany element materia\u0142u ze sob\u0105 niesie. Informacje s\u0105 odczytywane i przesy\u0142ane do panelu. Poniewa\u017c skaner i panel maj\u0105 r\u00f3\u017cne cykle zegarowe\/szybko\u015bci, informacje o materiale musz\u0105 by\u0107 buforowane w ka\u017cdym przypadku.<\/p>\n\n\n\n<p>W poni\u017cszym przyk\u0142adzie programowania pokazujemy, jak zaprogramowa\u0107 kod programu do przekazywania informacji o materiale. W tym celu u\u017cywasz bloku danych ARRAY.<\/p>\n\n\n\n<p>Przyk\u0142ad jest skonfigurowany tak, aby by\u0142 elastyczny, aby\u015b nie musia\u0142 wiedzie\u0107 w momencie tworzenia kodu programu, kt\u00f3ry blok danych ARRAY b\u0119dzie odczytywany lub zapisywany ani jak du\u017cy on jest. Mo\u017cesz zatem u\u017cywa\u0107 ARRAY o r\u00f3\u017cnych d\u0142ugo\u015bciach. U\u017cycie typu danych DB_ANY daje ci t\u0119 elastyczno\u015b\u0107.<\/p>\n\n\n\n<p>Typ danych VARIANT jest u\u017cywany, aby\u015b mia\u0142 r\u00f3wnie\u017c elastyczno\u015b\u0107 przy okre\u015blaniu warto\u015bci, kt\u00f3ra ma by\u0107 odczytana lub zapisana.<\/p>\n\n\n\n<p>Dopiero w czasie wykonywania blok danych ARRAY jest przenoszony, aby nast\u0119pnie uzyska\u0107 dost\u0119p do warto\u015bci w bloku programu. Typ danych element\u00f3w ARRAY i typ danych warto\u015bci, kt\u00f3ra ma by\u0107 odczytana lub zapisana, s\u0105 okre\u015blane.<\/p>\n\n\n\n<p>Mo\u017cesz okre\u015bli\u0107 liczb\u0119 obiekt\u00f3w i poziom nape\u0142nienia bloku danych ARRAY za pomoc\u0105 specjalnych instrukcji.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXdA3rDiC1rDm1jOskwD-WlbRRGiL1a73zXBN-q9bXirXYIq3IYWBare_QPaIflSXZUCLLvwQJUFh_oX2yjDmd6HPgThJwh_3FDQi-yN5ZfQwSk9WgzntblKS8kx5DmxMDNZQIhmf9MQLpx2dBLFIWQ?key=hkFTKVId7Q_8A6lWMJ2s0IXA\" alt=\"\"><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Procedure<\/strong><\/h2>\n\n\n\n<p>Utw\u00f3rz typ danych PLC &#8222;UDT_Queue&#8221;. Ten typ danych PLC jest u\u017cywany przez obie funkcje (&#8222;FC_Enqueue&#8221; i &#8222;FC_Dequeue&#8221;). Jest to wa\u017cne, na przyk\u0142ad, dla dost\u0119pu do tagu #Queue.Used, poniewa\u017c funkcja &#8222;FC_Enqueue&#8221; zwi\u0119ksza tag o jeden, a funkcja &#8222;FC_Dequeue&#8221; zmniejsza tag o jeden.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Kliknij dwukrotnie polecenie &#8222;<strong>Dodaj nowy typ danych<\/strong>&#8221; w folderze &#8222;<strong>PLC data types<\/strong>&#8221; w drzewie projektu.<\/li>\n\n\n\n<li><strong>Nowa tabela deklaracji do tworzenia typu danych PLC zostanie utworzona i otwarta.<\/strong><\/li>\n\n\n\n<li><strong>Zadeklaruj nast\u0119puj\u0105ce linie w typie danych PLC:<\/strong>\n<ul class=\"wp-block-list\">\n<li>DB &gt; Typ danych: DB_ANY<\/li>\n\n\n\n<li>Rozmiar &gt; Typ danych: DINT<\/li>\n\n\n\n<li>U\u017cywany &gt; Typ danych: DINT<\/li>\n\n\n\n<li>ReadPos &gt; Typ danych: DINT<\/li>\n\n\n\n<li>WritePos &gt; Typ danych: DINT<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXfJ6hRLMTb2lN1biyIiw2tLfxy8abTTfc30EW3BHs5nIiPckZ3GU-as3bnatcPuhJbHvcFwNgzFFtXPGKQXhYxQU7MTLvllKn-Adb61l1e02uE8MFAPoOV05WF86CYrMuZ51Ql4LAU6h8h18dgnpA?key=hkFTKVId7Q_8A6lWMJ2s0IXA\" alt=\"\"><\/figure>\n\n\n\n<p>Zaprogramuj funkcj\u0119 &#8222;FC_Enqueue&#8221;, kt\u00f3ra zapisuje warto\u015bci informacji o materiale do bloku danych ARRAY. Konkretnego bloku danych ARRAY i typu danych warto\u015bci nie trzeba zna\u0107 w tym momencie, poniewa\u017c interfejsy s\u0105 programowane z typami danych VARIANT i DB_ANY.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Utw\u00f3rz funkcj\u0119 SCL i nazwij j\u0105 &#8222;FC_Enqueue&#8221;.<\/strong><\/li>\n\n\n\n<li><strong>Zadeklaruj interfejs bloku w nast\u0119puj\u0105cy spos\u00f3b:<\/strong><\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXc8S30NDnJl6QtHaneB1tkQyIfwQMuEn3uOwkSIkUk0es_c7rb-OHbTab3MnTE0jJ8SJWODnfGdOdRUONiFaw_vhHxm5m05B4XyVBLBf8lSF-iOIpVU3DL8J55smrHmPa6yzPM-s47wbSeucawA6xQ?key=hkFTKVId7Q_8A6lWMJ2s0IXA\" alt=\"\"><\/figure>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>Napisz nast\u0119puj\u0105cy kod programu:<\/strong><\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXfPS8JrqhkajBfk6-4ohX3EsgplxRXnOgl5eiyjNJND5tmdxjagZJf7N4OUf_bu6IG_q8pYL0jYaBsVTjpWLcKOkjUfDrbnxUsxeRX1ep0TrE0CUXzM4P6TDaM27tCy_WuMbA0iVPX61cgyd_YR074?key=hkFTKVId7Q_8A6lWMJ2s0IXA\" alt=\"\"><\/figure>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li>Za pomoc\u0105 tej funkcji sprawdzasz, czy w bloku danych jest jeszcze wolne miejsce. Je\u015bli tak, zapisz warto\u015b\u0107, kt\u00f3ra jest okre\u015blona w parametrze value, do bloku danych w parametrze db. Przy ka\u017cdym nowym elemencie informacji o materiale, kt\u00f3ry jest zapisywany, tag #Queue.Used i tag wska\u017anika #Queue.WritePos s\u0105 zwi\u0119kszane o jeden. Gdy kursor osi\u0105gnie koniec bloku danych, jest resetowany do 0. Je\u015bli blok danych jest pe\u0142ny, zwracany jest kod b\u0142\u0119du #4711.<\/li>\n<\/ol>\n\n\n\n<p>Zaprogramuj funkcj\u0119 <strong>&#8222;FC_Dequeue&#8221;<\/strong>, kt\u00f3ra odczytuje informacje o materiale z bloku danych ARRAY i zapisuje je na panelu. Konkretnego bloku danych ARRAY i typu danych warto\u015bci nie trzeba zna\u0107 w tym momencie, poniewa\u017c interfejsy s\u0105 programowane z typami danych VARIANT i DB_ANY. Informacje o materiale mog\u0105 by\u0107 nast\u0119pnie wy\u015bwietlane na panelu, na przyk\u0142ad:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Utw\u00f3rz funkcj\u0119 SCL i nazwij j\u0105 &#8222;FC_Dequeue&#8221;.<\/strong><\/li>\n\n\n\n<li><strong>Zadeklaruj interfejs bloku w nast\u0119puj\u0105cy spos\u00f3b:<\/strong><\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXdbQG0OvsdJN240o5-IGx0F6pSHfXLTHwRJ3cXN3TMyduoMBufhzZr7lrnanmeLnXQ8-Rinix45yLUP2QokQ3jCpP5YyDyIUgVLgd26xbIfPn8S_LzXvkMIkC5lr1QDtFkZxJKTO01x5uoFTIdb1Zo?key=hkFTKVId7Q_8A6lWMJ2s0IXA\" alt=\"\"><\/figure>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>Napisz nast\u0119puj\u0105cy kod programu:<\/strong><\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXfw8EMf6KiYj5ZfmzkbFmqygDV6wBscsCPfTW1YI0NtqYjnzXg0uwiWz9FBHhQvkWdb_WCLSa_y4tT4YQOHTB7bBaeohkNsFtuFuGMrr2Fb2zvmeceSNVVqVvxIIaDiuUXi5v8KqNWzHnbj-7IwAPM?key=hkFTKVId7Q_8A6lWMJ2s0IXA\" alt=\"\"><\/figure>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li>Za pomoc\u0105 tej funkcji sprawdzasz, czy w bloku danych s\u0105 dost\u0119pne informacje o materiale. Je\u015bli tak, odczytaj warto\u015b\u0107, do kt\u00f3rej wskazuje wska\u017anik <strong>#Queue.ReadPos, i zapisz j\u0105 do tagu #Value<\/strong>. Przy ka\u017cdym elemencie informacji o materiale, kt\u00f3ry jest odczytywany, tag #Queue.Used jest zmniejszany o jeden, a tag wska\u017anika #Queue.ReadPos jest zwi\u0119kszany o jeden. Gdy kursor osi\u0105gnie koniec bloku danych, jest resetowany do 0. Je\u015bli blok danych jest pusty, zwracany jest kod b\u0142\u0119du #4712.<\/li>\n<\/ol>\n\n\n\n<p>Aby zapisa\u0107 dane materia\u0142owe, utw\u00f3rz blok danych ARRAY. U\u017cyj typu danych PLC &#8222;UDT_Material&#8221; jako typu danych bloku danych ARRAY.<\/p>\n\n\n\n<p>Najpierw utw\u00f3rz typ danych PLC &#8222;UDT_Material&#8221;. Ten typ danych PLC zawiera struktur\u0119 dla informacji o materiale dostarczonych przez skaner.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Kliknij dwukrotnie polecenie &#8222;<strong>Dodaj nowy typ danych<\/strong>&#8221; w folderze &#8222;<strong>PLC data types<\/strong>&#8221; w drzewie projektu.<\/li>\n\n\n\n<li><strong>Nowa tabela deklaracji do tworzenia typu danych PLC zostanie utworzona i otwarta.<\/strong><\/li>\n\n\n\n<li><strong>Zadeklaruj nast\u0119puj\u0105ce linie w typie danych PLC:<\/strong>\n<ul class=\"wp-block-list\">\n<li>ArticleNumber &gt; Typ danych: DINT<\/li>\n\n\n\n<li>ArticleName &gt; Typ danych: STRING<\/li>\n\n\n\n<li>Amount &gt; Typ danych: REAL<\/li>\n\n\n\n<li>Unit &gt; Typ danych: STRING<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXfS-_iUVzi7CfJzY4RKppWyVkdubWViVJW7L3TXHOGjx6YGHeMqzZf8sFzUSymkuadhLMEN5BFiBP67FxScUucr8WxihXn3ejRMP4GYqeG9tivO6xB4OqaaZP8Y_QZVbW_h5sqfgvi8JJyP7k6UmRU?key=hkFTKVId7Q_8A6lWMJ2s0IXA\" alt=\"\"><\/figure>\n\n\n\n<p>Utw\u00f3rz blok danych ARRAY &#8222;DB_MaterialBuffer&#8221;. Blok danych ARRAY ma zawiera\u0107 rekordy danych z informacjami o materiale typu &#8222;UDT_Material&#8221;. Informacje o materiale s\u0105 zapisywane do bloku danych ARRAY za pomoc\u0105 funkcji &#8222;FC_Enqueue&#8221;.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Kliknij dwukrotnie polecenie &#8222;<strong>Dodaj nowy blok<\/strong>&#8222;.<\/li>\n\n\n\n<li>Otwiera si\u0119 okno dialogowe &#8222;<strong>Dodaj nowy blok<\/strong>&#8222;.<\/li>\n\n\n\n<li>Kliknij &#8222;<strong>Blok danych (DB)<\/strong>&#8222;.<\/li>\n\n\n\n<li>Wprowad\u017a nazw\u0119 &#8222;<strong>DB_MaterialBuffer<\/strong>&#8222;.<\/li>\n\n\n\n<li>Wybierz typ bloku danych &#8222;<strong>ARRAY DB<\/strong>&#8222;.<\/li>\n\n\n\n<li><strong>Wybierz typ danych PLC &#8222;UDT_Material&#8221; jako typ danych ARRAY.<\/strong><\/li>\n\n\n\n<li><strong>Okre\u015bl &#8222;1000&#8221; jako g\u00f3rny limit ARRAY.<\/strong><\/li>\n\n\n\n<li><strong>Kliknij &#8222;OK&#8221;.<\/strong><\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXeEBLxzVC5J6EhnqEvHPIQiO7MSQ-uuf0KFEu1wjqCJVNLYI9XRBWOHTavBWWTtiD20looNAyGP4KXon-9olV8KcVijeGSU1Bh8-HWbvVKlu5JVbWMpT5B40TaBs8U12R31lMdfdBxH147j6WBZ94c?key=hkFTKVId7Q_8A6lWMJ2s0IXA\" alt=\"\"><\/figure>\n\n\n\n<p>Utw\u00f3rz blok danych &#8222;DB_MaterialQueue&#8221;. Blok danych ma zawiera\u0107 informacje typu &#8222;UDT_Queue&#8221; w bloku danych ARRAY. Informacje s\u0105 zapisywane za pomoc\u0105 OB &#8222;OB_MaterialQueue&#8221;.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Kliknij dwukrotnie polecenie &#8222;<strong>Dodaj nowy blok<\/strong>&#8222;.<\/li>\n\n\n\n<li>Otwiera si\u0119 okno dialogowe &#8222;<strong>Dodaj nowy blok<\/strong>&#8222;.<\/li>\n\n\n\n<li>Kliknij &#8222;<strong>Blok danych (DB)<\/strong>&#8222;.<\/li>\n\n\n\n<li>Wprowad\u017a nazw\u0119 &#8222;<strong>DB_MaterialQueue<\/strong>&#8222;.<\/li>\n\n\n\n<li><strong>Wybierz typ danych PLC &#8222;UDT_Queue&#8221; jako typ danych.<\/strong><\/li>\n\n\n\n<li><strong>Kliknij &#8222;OK&#8221;.<\/strong><\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXfKj-jQyJ79S8DS3VMyOS9_-4rvrAu6Cf25aaC6AkeIy2dkn9zFX5Nw_n4c0BFJXvdonGElfAf1mm5R_m1grSbqKNkDgOGgpnJbvPH37na97Yw4EqFNJEehHMcLpV1O-paxHwwcAwV61Q48_i7iJRk?key=hkFTKVId7Q_8A6lWMJ2s0IXA\" alt=\"\"><\/figure>\n\n\n\n<p>Utw\u00f3rz blok organizacyjny startowy (OB) &#8222;OB_MaterialQueue&#8221;. W tym bloku organizacyjnym inicjalizujesz tagi DB i Size.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Kliknij dwukrotnie polecenie &#8222;<strong>Dodaj nowy blok<\/strong>&#8222;.<\/li>\n\n\n\n<li>Otwiera si\u0119 okno dialogowe &#8222;<strong>Dodaj nowy blok<\/strong>&#8222;.<\/li>\n\n\n\n<li>Kliknij przycisk &#8222;<strong>Blok organizacyjny (OB)<\/strong>&#8222;.<\/li>\n\n\n\n<li>Wprowad\u017a nazw\u0119 &#8222;<strong>OB_MaterialQueue<\/strong>&#8222;.<\/li>\n\n\n\n<li>Wybierz typ &#8222;<strong>Startup<\/strong>&#8222;.<\/li>\n\n\n\n<li><strong>Wybierz SCL jako j\u0119zyk bloku organizacyjnego.<\/strong><\/li>\n\n\n\n<li><strong>Kliknij &#8222;OK&#8221;.<\/strong><\/li>\n\n\n\n<li><strong>Napisz nast\u0119puj\u0105cy kod programu:<\/strong><\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXcxP4aqbxsQRwy-8225WghipH2-8-EGWcmD2yP6UBoh7q88a_V6eqpKi5PzoWby90ujPhVD5FZPaHwFZ5PNn8SBSBBQypOEpHvS1oMfXuAGy67sbiIBYMLLXoZD94gSjlZt4IJU84W48rBn_LyLmsk?key=hkFTKVId7Q_8A6lWMJ2s0IXA\" alt=\"\"><\/figure>\n\n\n\n<p>Wprowad\u017a rozmiar bloku danych ARRAY w parametrze Size. Warto\u015b\u0107 pocz\u0105tkowa parametru Used wynosi &#8222;0&#8221;. Pierwszy element informacji o materiale jest zatem zapisywany do elementu ARRAY &#8222;0&#8221;.<\/p>\n\n\n\n<p>Przypisuj\u0105c blok danych, \u0142\u0105czysz blok danych ARRAY &#8222;DB_MaterialBuffer&#8221; z funkcjami SCL &#8222;FC_Enqueue&#8221; i &#8222;FC_Dequeue&#8221;.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Zadeklaruj nast\u0119puj\u0105ce tagi w &#8222;Domy\u015blnej tabeli tag\u00f3w&#8221;:<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXeVo7PCVjtcSx_gcoQzyi6k6Mmhn5qa-xS0kHK_3umywZptetuYoW8Eg7qjbo_gT24KJ0Ng_zXtxH3Yf8VvTNBUFoJ_F2zTiJxEV5YP1RvOBn-cFv3X9fElWIwaoMTmJStUzuXjz66FVUEv2yA_eg?key=hkFTKVId7Q_8A6lWMJ2s0IXA\" alt=\"\"><\/figure>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>Wywo\u0142aj funkcj\u0119 SCL &#8222;FC_Enqueue&#8221; w bloku funkcyjnym, w kt\u00f3rym skaner odczytuje informacje o materiale.<\/li>\n\n\n\n<li>W sekcji &#8222;Temp&#8221; interfejsu bloku zadeklaruj tagi &#8222;ConnectionToUDT&#8221; (typ danych &#8222;UDT_Material&#8221;) i &#8222;Error&#8221; (typ danych INT):<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXfIZPRf5YLcAu828fl1CvdCqa85DzwapH7xQMlU-rWb_wvPr-pmbCNm2PkGa3lavt3Nc37q0J_PfqUJLSRwLa-XOXIox2ZMcEbQo2nxbtzNeR8hrCWJdvnDyL6ZBGBTd8QsAzzjYJKRnNgiiti_onU?key=hkFTKVId7Q_8A6lWMJ2s0IXA\" alt=\"\"><\/figure>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li>Po\u0142\u0105cz wywo\u0142anie funkcji z nast\u0119puj\u0105cymi tagami i w wej\u015bciu w\u0142\u0105czaj\u0105cym EN utw\u00f3rz zbocze sygna\u0142u &#8222;P: Odczyt operandu dla dodatniego zbocza sygna\u0142u&#8221;. Po\u0142\u0105cz zbocze sygna\u0142u z globalnymi tagami z domy\u015blnej tabeli tag\u00f3w:<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXeSnziCvwRovhUTtwLeZb4gXz9iA15ciOor89NP8cNeAm9qTgxPAT-G-08ewfIRoHXiqpZCG3OXFkSTbt_NaFBoQAwpWuFJuX9s2awRh-zCBq8DiYDZ3fCP-1zcrnJqzTXBpQFmXxIpkmEt_zh60wo?key=hkFTKVId7Q_8A6lWMJ2s0IXA\" alt=\"\"><\/figure>\n\n\n\n<ol start=\"5\" class=\"wp-block-list\">\n<li>Wywo\u0142aj funkcj\u0119 SCL &#8222;FC_Dequeue&#8221;.<\/li>\n\n\n\n<li>Po\u0142\u0105cz wywo\u0142anie funkcji z nast\u0119puj\u0105cymi tagami i w wej\u015bciu w\u0142\u0105czaj\u0105cym EN utw\u00f3rz zbocze sygna\u0142u &#8222;P\u201d: Odczyt operandu dla dodatniego zbocza sygna\u0142u&#8221;. Po\u0142\u0105cz zbocze sygna\u0142u z globalnymi tagami z domy\u015blnej tabeli tag\u00f3w:<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXdX8ScywER_bT-9lMIvXKA15i_L_3YXGm3_yjbpXX2fBj4xMFQIg4C-Q_9jOHFNocPsgK26HwBEoADxx8enjFGn57H_v_IDkVlXUhTBCUHb2n8-NgJniEoaGlBqxTWr9F1YcUytM85GFE5WrLTuQVo?key=hkFTKVId7Q_8A6lWMJ2s0IXA\" alt=\"\"><\/figure>\n\n\n\n<h5 class=\"wp-block-heading\"><strong>Result<\/strong><\/h5>\n\n\n\n<p>Gdy tylko wyst\u0105pi dodatnie zbocze sygna\u0142u, informacje o materiale s\u0105 zapisywane do bloku danych ARRAY za pomoc\u0105 instrukcji &#8222;WriteToArrayDB&#8221; i przesy\u0142ane do panelu za pomoc\u0105 instrukcji &#8222;ReadFromArrayDB&#8221;.<\/p>\n\n\n\n<p>If you would like to enhance your knowledge and skills in programming and configuration of automation systems, we recommend enrolling in the<a href=\"https:\/\/sklep-plcspace.pl\/en\/thank-you-for-placing-the-order-9\/?wmc-currency=EUR\"> <\/a><strong><a href=\"https:\/\/sklep-plcspace.pl\/en\/thank-you-for-placing-the-order-9\/?wmc-currency=EUR\" target=\"_blank\" rel=\"noreferrer noopener\">free PLC course<\/a><\/strong>!<\/p>\n\n\n\n<p><strong>Przeczytaj tak\u017ce: <a href=\"https:\/\/sklep-plcspace.pl\/en\/blog\/kiedy-stosowac-bloki-danych-instancji\/?wmc-currency=EUR\" target=\"_blank\" data-type=\"link\" data-id=\"https:\/\/sklep-plcspace.pl\/blog\/kiedy-stosowac-bloki-danych-instancji\/\" rel=\"noreferrer noopener\">Kiedy stosowa\u0107 bloki danych instancji w programowaniu?<\/a><\/strong><\/p>","protected":false},"excerpt":{"rendered":"<p>Bloki danych ARRAY to globalne bloki danych, kt\u00f3re sk\u0142adaj\u0105 si\u0119 wy\u0142\u0105cznie z ARRAY. Blok danych z tagiem typu danych ARRAY jest wystarczaj\u0105cy dla wi\u0119kszo\u015bci aplikacji, poniewa\u017c dost\u0119p mo\u017cna programowa\u0107 intuicyjnie za pomoc\u0105 tagu typu danych ARRAY (na przyk\u0142ad, #myArray[#index]) i oferuje lepsz\u0105 wydajno\u015b\u0107 w czasie wykonywania ni\u017c bloki danych ARRAY. W pewnych scenariuszach jednak konieczne [&hellip;]<\/p>","protected":false},"author":2505,"featured_media":27754,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1],"tags":[],"class_list":["post-27784","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bez-kategorii"],"acf":[],"_links":{"self":[{"href":"https:\/\/sklep-plcspace.pl\/en\/wp-json\/wp\/v2\/posts\/27784","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sklep-plcspace.pl\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sklep-plcspace.pl\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sklep-plcspace.pl\/en\/wp-json\/wp\/v2\/users\/2505"}],"replies":[{"embeddable":true,"href":"https:\/\/sklep-plcspace.pl\/en\/wp-json\/wp\/v2\/comments?post=27784"}],"version-history":[{"count":0,"href":"https:\/\/sklep-plcspace.pl\/en\/wp-json\/wp\/v2\/posts\/27784\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sklep-plcspace.pl\/en\/wp-json\/wp\/v2\/media\/27754"}],"wp:attachment":[{"href":"https:\/\/sklep-plcspace.pl\/en\/wp-json\/wp\/v2\/media?parent=27784"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sklep-plcspace.pl\/en\/wp-json\/wp\/v2\/categories?post=27784"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sklep-plcspace.pl\/en\/wp-json\/wp\/v2\/tags?post=27784"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}