{"id":35334,"date":"2025-05-31T14:47:29","date_gmt":"2025-05-31T12:47:29","guid":{"rendered":"https:\/\/sklep-plcspace.pl\/?p=35334"},"modified":"2025-08-04T14:01:27","modified_gmt":"2025-08-04T12:01:27","slug":"cmp-not-equal-plc-siemens","status":"publish","type":"post","link":"https:\/\/sklep-plcspace.pl\/en\/blog\/cmp-not-equal-plc-siemens\/","title":{"rendered":"Sprawdzanie nier\u00f3wno\u015bci w PLC \u2013 instrukcja CMP"},"content":{"rendered":"<h3 class=\"wp-block-heading\"><strong>Opis instrukcji CMP<\/strong><\/h3>\n\n\n\n<p>Mo\u017cesz u\u017cy\u0107 instrukcji &#8222;Not equal&#8221; do okre\u015blenia, czy pierwsza warto\u015b\u0107 por\u00f3wnawcza (&lt;Operand1&gt;) nie jest r\u00f3wna drugiej warto\u015bci por\u00f3wnawczej (&lt;Operand2&gt;).<\/p>\n\n\n\n<p>Je\u015bli warunek por\u00f3wnania jest spe\u0142niony, instrukcja zwraca wynik operacji logicznej (RLO) &#8222;1&#8221;. Je\u015bli warunek por\u00f3wnania nie jest spe\u0142niony, instrukcja zwraca RLO &#8222;0&#8221;. RLO instrukcji jest logicznie po\u0142\u0105czone z RLO ca\u0142ego rz\u0119du w nast\u0119puj\u0105cy spos\u00f3b:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Przez AND, gdy instrukcja por\u00f3wnania jest po\u0142\u0105czona szeregowo.<\/li>\n\n\n\n<li>Przez OR, gdy instrukcja por\u00f3wnania jest po\u0142\u0105czona r\u00f3wnolegle.<\/li>\n<\/ul>\n\n\n\n<p>Okre\u015bl pierwsz\u0105 warto\u015b\u0107 por\u00f3wnawcz\u0105 (&lt;Operand1&gt;) w miejscu na operand powy\u017cej instrukcji. Okre\u015bl drug\u0105 warto\u015b\u0107 por\u00f3wnawcz\u0105 (&lt;Operand2&gt;) w miejscu na operand poni\u017cej instrukcji.<\/p>\n\n\n\n<p>Je\u015bli sprawdzenie IEC jest w\u0142\u0105czone, por\u00f3wnywane operandy musz\u0105 by\u0107 tego samego typu danych. Je\u015bli sprawdzenie IEC nie jest w\u0142\u0105czone, szeroko\u015b\u0107 operand\u00f3w musi by\u0107 taka sama.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\"><strong>Por\u00f3wnanie liczb zmiennoprzecinkowych<\/strong><\/h5>\n\n\n\n<p>Je\u015bli chcesz por\u00f3wna\u0107 typy danych REAL lub LREAL, zamiast instrukcji &#8222;CMP &lt;&gt;: Not equal&#8221; zalecamy u\u017cycie instrukcji &#8222;OUT_RANGE: Warto\u015b\u0107 poza zakresem&#8221;.<\/p>\n\n\n\n<p>Je\u015bli por\u00f3wnywane s\u0105 liczby zmiennoprzecinkowe, por\u00f3wnywane operandy musz\u0105 by\u0107 tego samego typu danych, niezale\u017cnie od ustawienia sprawdzenia IEC.<\/p>\n\n\n\n<p>Specjalne wzorce bitowe nieprawid\u0142owych liczb zmiennoprzecinkowych (NaN), kt\u00f3re s\u0105 wynikiem nieokre\u015blonych wynik\u00f3w (np. pierwiastek z -1), nie mog\u0105 by\u0107 por\u00f3wnywane. Oznacza to, \u017ce je\u015bli jeden z operand\u00f3w ma warto\u015b\u0107 NaN, instrukcja &#8222;CMP &lt;&gt;: Not equal&#8221; zwraca wynik FALSE.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\"><strong>Por\u00f3wnanie ci\u0105g\u00f3w znak\u00f3w<\/strong><\/h5>\n\n\n\n<p>Por\u00f3wnanie ci\u0105g\u00f3w znak\u00f3w opiera si\u0119 na analizie kolejnych liter wed\u0142ug ich warto\u015bci kod\u00f3w ASCII. <a href=\"https:\/\/sklep-plcspace.pl\/en\/thank-you-for-placing-the-order-6\/?wmc-currency=EUR\" data-type=\"link\" data-id=\"https:\/\/sklep-plcspace.pl\/scl-programowanie\/\">Programowanie sterownik\u00f3w w SCL<\/a> to nowoczesna metoda umo\u017cliwiaj\u0105ca wykorzystanie zaawansowanych funkcji j\u0119zyka, kt\u00f3re mog\u0105 u\u0142atwi\u0107 obs\u0142ug\u0119 takich danych. Poszczeg\u00f3lne znaki s\u0105 por\u00f3wnywane na podstawie ich kodu (na przyk\u0142ad, 'a&#8217; jest wi\u0119ksze ni\u017c 'A&#8217;) podczas por\u00f3wnania ci\u0105g\u00f3w. Por\u00f3wnanie odbywa si\u0119 od lewej do prawej. Pierwszy r\u00f3\u017cni\u0105cy si\u0119 znak decyduje o wyniku por\u00f3wnania.<\/p>\n\n\n\n<p>Poni\u017csza tabela pokazuje przyk\u0142ady por\u00f3wna\u0144 ci\u0105g\u00f3w:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>&lt;Operand1&gt;<\/strong><\/td><td><strong>&lt;Operand2&gt;<\/strong><\/td><td><strong>RLO instrukcji<\/strong><\/td><\/tr><tr><td>&#8217;AA&#8217;<\/td><td>&#8217;aa&#8217;<\/td><td>1<\/td><\/tr><tr><td>&#8217;Hello World&#8217;<\/td><td>&#8217;HelloWorld&#8217;<\/td><td>1<\/td><\/tr><tr><td>&#8217;AA&#8217;<\/td><td>&#8217;AA&#8217;<\/td><td>0<\/td><\/tr><tr><td>&#8217;aa&#8217;<\/td><td>&#8217;aaa&#8217;<\/td><td>1<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Mo\u017cesz r\u00f3wnie\u017c por\u00f3wnywa\u0107 poszczeg\u00f3lne znaki ci\u0105gu. Numer znaku do por\u00f3wnania jest okre\u015blony w nawiasach kwadratowych obok nazwy operand\u00f3w. &#8222;MyString[2]&#8221;, na przyk\u0142ad, por\u00f3wnuje drugi znak ci\u0105gu &#8222;MyString&#8221;.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\"><strong>Por\u00f3wnanie znacznik\u00f3w typu WORD z znacznikami typu S5TIME<\/strong><\/h5>\n\n\n\n<p>Oba znaczniki s\u0105 konwertowane na typ danych TIME podczas por\u00f3wnania znacznika typu WORD z znacznikiem typu S5TIME. Znacznik WORD jest interpretowany jako warto\u015b\u0107 S5TIME. Je\u015bli jeden z dw\u00f3ch znacznik\u00f3w nie mo\u017ce by\u0107 skonwertowany, por\u00f3wnanie nie jest przeprowadzane, a wynik to FALSE. Je\u015bli konwersja jest udana, por\u00f3wnanie jest przeprowadzane na podstawie wybranej instrukcji por\u00f3wnania.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\"><strong>Por\u00f3wnanie struktur<\/strong><\/h5>\n\n\n\n<p>Mo\u017cesz por\u00f3wnywa\u0107 warto\u015bci dw\u00f3ch operand\u00f3w strukturalnych, gdy oba znaczniki s\u0105 tego samego typu danych strukturalnych. Podczas por\u00f3wnania struktur, por\u00f3wnywane operandy musz\u0105 mie\u0107 ten sam typ danych, niezale\u017cnie od ustawienia sprawdzenia IEC. Wyj\u0105tkiem s\u0105 por\u00f3wnania, w kt\u00f3rych jeden z dw\u00f3ch operand\u00f3w jest VARIANT lub ANY. Je\u015bli typ danych nie jest jeszcze znany w momencie tworzenia programu, mo\u017cesz u\u017cy\u0107 typu danych VARIANT. W takim przypadku mo\u017cesz r\u00f3wnie\u017c por\u00f3wnywa\u0107 operand z oznaczeniem strukturalnym dowolnego typu danych. Mo\u017cesz r\u00f3wnie\u017c por\u00f3wnywa\u0107 dwa znaczniki typu VARIANT lub ANY ze sob\u0105.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\"><strong>Parametry<\/strong><\/h5>\n\n\n\n<p>Poni\u017csza tabela pokazuje parametry instrukcji &#8222;Not equal&#8221;:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Parametry<\/strong><\/td><td><strong>Deklaracja<\/strong><\/td><td><strong>Typ danych<\/strong><\/td><td><strong>Obszar pami\u0119ci<\/strong><\/td><td><strong>Description<\/strong><\/td><\/tr><tr><td>&lt;Operand1&gt;<\/td><td>Wej\u015bcie<\/td><td>Ci\u0119\u017cary bitowe, liczby ca\u0142kowite, liczby zmiennoprzecinkowe, ci\u0105gi znak\u00f3w, timery, daty i czasy, ARRAY typu &lt;data type&gt; z ustalonymi i zmiennymi granicami ARRAY, STRUKTURA, VARIANT, ANY, typ danych PLC<\/td><td>I, Q, M, D, L, P lub sta\u0142a<\/td><td>Pierwsza warto\u015b\u0107 por\u00f3wnawcza<\/td><\/tr><tr><td>&lt;Operand2&gt;<\/td><td>Wej\u015bcie<\/td><td>Ci\u0119\u017cary bitowe, liczby ca\u0142kowite, liczby zmiennoprzecinkowe, ci\u0105gi znak\u00f3w, timery, daty i czasy, ARRAY typu &lt;data type&gt; z ustalonymi i zmiennymi granicami ARRAY, STRUKTURA, VARIANT, ANY, typ danych PLC<\/td><td>I, Q, M, D, L, P lub sta\u0142a<\/td><td>Druga warto\u015b\u0107 do por\u00f3wnania<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h5 class=\"wp-block-heading\"><strong>Example<\/strong><\/h5>\n\n\n\n<p>Poni\u017cszy przyk\u0142ad pokazuje, jak dzia\u0142a instrukcja:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXdwe3KXZQYZq-zCjIBGpoOxuCnQPuYx_ytF10wLa0VJNi7oVbk_uO3i0SGX5ncsWXr4ogkY8uD3vqpueOvncwWj1-pZUPx8nS_WWNmqMzLy6I72K1OkJkU2yJt3CBThBmDWF9y7lziLFqKQmKBYYrY?key=OxNcKrTKWUWMXRSM_6rvtw\" alt=\"Example\"\/><\/figure>\n\n\n\n<p>Wyj\u015bcie &#8222;TagOut&#8221; jest ustawione, gdy spe\u0142nione s\u0105 nast\u0119puj\u0105ce warunki:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Operandy &#8222;TagIn_1&#8221; i &#8222;TagIn_2&#8221; maj\u0105 stan sygna\u0142u &#8222;1&#8221;.<\/li>\n\n\n\n<li>Warunek instrukcji por\u00f3wnania jest spe\u0142niony, je\u015bli &#8222;Tag_Value1&#8221; &lt;&gt; &#8222;Tag_Value2&#8221;.<\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>Opis instrukcji CMP Mo\u017cesz u\u017cy\u0107 instrukcji &#8222;Not equal&#8221; do okre\u015blenia, czy pierwsza warto\u015b\u0107 por\u00f3wnawcza (&lt;Operand1&gt;) nie jest r\u00f3wna drugiej warto\u015bci por\u00f3wnawczej (&lt;Operand2&gt;). Je\u015bli warunek por\u00f3wnania jest spe\u0142niony, instrukcja zwraca wynik operacji logicznej (RLO) &#8222;1&#8221;. Je\u015bli warunek por\u00f3wnania nie jest spe\u0142niony, instrukcja zwraca RLO &#8222;0&#8221;. RLO instrukcji jest logicznie po\u0142\u0105czone z RLO ca\u0142ego rz\u0119du w nast\u0119puj\u0105cy [&hellip;]<\/p>","protected":false},"author":2505,"featured_media":35335,"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-35334","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\/35334","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=35334"}],"version-history":[{"count":2,"href":"https:\/\/sklep-plcspace.pl\/en\/wp-json\/wp\/v2\/posts\/35334\/revisions"}],"predecessor-version":[{"id":38635,"href":"https:\/\/sklep-plcspace.pl\/en\/wp-json\/wp\/v2\/posts\/35334\/revisions\/38635"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sklep-plcspace.pl\/en\/wp-json\/wp\/v2\/media\/35335"}],"wp:attachment":[{"href":"https:\/\/sklep-plcspace.pl\/en\/wp-json\/wp\/v2\/media?parent=35334"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sklep-plcspace.pl\/en\/wp-json\/wp\/v2\/categories?post=35334"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sklep-plcspace.pl\/en\/wp-json\/wp\/v2\/tags?post=35334"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}