{"id":10001,"date":"2022-01-19T20:13:29","date_gmt":"2022-01-19T20:13:29","guid":{"rendered":"https:\/\/bryceautomation.com\/?p=10001"},"modified":"2022-01-19T20:13:32","modified_gmt":"2022-01-19T20:13:32","slug":"controllogix-for-do-statement","status":"publish","type":"post","link":"https:\/\/bryceautomation.com\/index.php\/2022\/01\/19\/controllogix-for-do-statement\/","title":{"rendered":"ControlLogix For \/ Do Statement"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">Introduction to ControlLogix For \/ Do Statement<\/h3>\n\n\n\n<p>The ControlLogix For \/ Do Statement is similar to what you might think of as a FOR \/ NEXT loop.  Basically, it is a construct that executes the same code a number of times.  It does this by incrementing a tag.  <\/p><div id=\"bryce-3782363126\" class=\"bryce-afterfirst bryce-entity-placement\"><script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js?client=ca-pub-8316758073402323\" crossorigin=\"anonymous\"><\/script><ins class=\"adsbygoogle\" style=\"display:block;\" data-ad-client=\"ca-pub-8316758073402323\" \ndata-ad-slot=\"7728240895\" \ndata-ad-format=\"auto\"><\/ins>\n<script> \n(adsbygoogle = window.adsbygoogle || []).push({}); \n<\/script>\n<\/div>\n\n\n\n<p>For example, we might have an array of 32 tanks.    We might use the For \/ Do construct to execute the same logic 32 times.  Each time the code executes, it will increment the value of a tag.  We can use this tag for an indirect address.  In other words, the first time our code executes, we perform all the math on tank[0].  The next time our code executes we perform on logic on tank[1].  We would do this with indirect addressing.  Instead of specifying which tank, we simply insert a tag as an array element.   In this case, all of our logic might execute using tank[MyIndex].  MyIndex will increment by 1 each time our loop executes.<\/p>\n\n\n\n<p>We must use extreme care when using this loop.  The For \/ Do construct could greatly increase the scan time of your processor.   If this happens, you could fault the processor.  You would trip the watchdog timer.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Create Your Tags<\/h3>\n\n\n\n<p>We want to keep our example simple.  For this reason, we will write some logic with no practical purpose.  The only purpose of this logic is to prove how the construct works.<\/p>\n\n\n\n<p>Let&#8217;s create a couple tags.  &#8220;Tank&#8221; will have the data type of DINT[32].  Likewise, create &#8220;MyIndex&#8221; as a simple DINT.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"429\" height=\"113\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/01\/image-46.png\" alt=\"\" class=\"wp-image-10004 lazyload\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/01\/image-46.png 429w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/01\/image-46-300x79.png 300w\" data-sizes=\"(max-width: 429px) 100vw, 429px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 429px; --smush-placeholder-aspect-ratio: 429\/113;\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Write the logic for the ControlLogix For \/ Do Statement<\/h3>\n\n\n\n<p>It&#8217;s important to realize, we need a structured text routine.  I will create the structured text routine.  After that, I will add a JSR statement into the main routine.  This will cause the subroutine to execute.<\/p>\n\n\n\n<p>Within the structured text routine, I&#8217;ll add the following logic.  As I said before, this is just to prove how the logic works.  Our goal will be to place the value of 1 into Tank[0].  Likewise, we&#8217;ll place the value of 1 into Tank[1], and so on.<\/p>\n\n\n\n<p>In reality, you would have different logic that performs various calculations for each tank.  Examples of this might be a tank level or volume.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"319\" height=\"214\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/01\/image-48.png\" alt=\"\" class=\"wp-image-10006 lazyload\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/01\/image-48.png 319w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/01\/image-48-300x201.png 300w\" data-sizes=\"(max-width: 319px) 100vw, 319px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 319px; --smush-placeholder-aspect-ratio: 319\/214;\" \/><\/figure>\n\n\n\n<p>As you can see, MyIndex will execute 32 times.  Once the loop begins, MyIndex will start at 0.  Therefore, Tank[MyIndex] refers to Tank[0].  We set this to MyIndex, which is zero.<\/p>\n\n\n\n<p>The next time the loop executes, MyIndex will equal 1.  Therefore, we refer to Tank[1] this time.  Once gain, we set this element to MyIndex, which also has the value of 1.  <\/p>\n\n\n\n<p>The loop repeats 32 times PER LOGIC SCAN.<\/p>\n\n\n\n<p>For more information on Indirect Addressing in ControlLogix, refer to <a href=\"https:\/\/bryceautomation.com\/index.php\/2017\/06\/12\/controllogix-indirect-addressing\/\">this post.<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Test your Work!<\/h3>\n\n\n\n<p>At this point, we&#8217;ll finalize all edits.  After that, let&#8217;s go back to our tags.  Expand your &#8220;Tank&#8221; Array, and let&#8217;s see if the loop worked as expected.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"304\" height=\"274\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/01\/image-49.png\" alt=\"\" class=\"wp-image-10007 lazyload\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/01\/image-49.png 304w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/01\/image-49-300x270.png 300w\" data-sizes=\"(max-width: 304px) 100vw, 304px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 304px; --smush-placeholder-aspect-ratio: 304\/274;\" \/><\/figure>\n\n\n\n<p>Obviously, our logic is working properly.  One thing to consider is our scan time.  Let&#8217;s go to the properties of the task.  After that, we&#8217;ll click on &#8220;Monitor&#8221;.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"433\" height=\"242\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/01\/image-50.png\" alt=\"\" class=\"wp-image-10008 lazyload\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/01\/image-50.png 433w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/01\/image-50-300x168.png 300w\" data-sizes=\"(max-width: 433px) 100vw, 433px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 433px; --smush-placeholder-aspect-ratio: 433\/242;\" \/><\/figure>\n\n\n\n<p>It looks like our maximum scan time is about 23ms.  Let&#8217;s go to &#8220;Configuration&#8221; to make sure we aren&#8217;t running close to a watchdog fault.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"437\" height=\"242\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/01\/image-51.png\" alt=\"\" class=\"wp-image-10009 lazyload\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/01\/image-51.png 437w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/01\/image-51-300x166.png 300w\" data-sizes=\"(max-width: 437px) 100vw, 437px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 437px; --smush-placeholder-aspect-ratio: 437\/242;\" \/><\/figure>\n\n\n\n<p>As you can see, our watchdog is set to 500ms.  This is half of 1 second.  We are probably not in danger of faulting the processor at this time.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Summary<\/h3>\n\n\n\n<p>In short, we use the FOR \/ DO statement to execute the same code a number of times.  Usually, we&#8217;ll use this with arrays.  We can use the index of the For \/ Do loop to specify which element to operate on each time the loop executes.  Although we incremented the index by 1 each time, we can choose how much to increment the index for each execution.  We must be careful to monitor our scan time of the task.  If we execute the loop too many times, we could be in danger of faulting the processor.  At the same time, we could slow down the processor from executing other important logic.<\/p>\n\n\n\n<p>For more information, visit the <a href=\"https:\/\/bryceautomation.com\/index.php\/category\/controllogix\/\">ControlLogix Category Page!<\/a><\/p>\n\n\n\n<p>&#8212; Ricky Bryce<\/p>\n<div id=\"bryce-308349038\" class=\"bryce-after-content bryce-entity-placement\"><script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js?client=ca-pub-8316758073402323\" crossorigin=\"anonymous\"><\/script><ins class=\"adsbygoogle\" style=\"display:block;\" data-ad-client=\"ca-pub-8316758073402323\" \ndata-ad-slot=\"4667596182\" \ndata-ad-format=\"auto\"><\/ins>\n<script> \n(adsbygoogle = window.adsbygoogle || []).push({}); \n<\/script>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Introduction to ControlLogix For \/ Do Statement The ControlLogix For \/ Do Statement is similar to what you might think of as a FOR \/ NEXT loop. Basically, it is a construct that executes the same code a number of times. It does this by incrementing a tag. For example, we might have an array <a class=\"moretag btn btn-primary\" href=\"https:\/\/bryceautomation.com\/index.php\/2022\/01\/19\/controllogix-for-do-statement\/\">Read More \u00bb<\/a><\/p>\n","protected":false},"author":1,"featured_media":10006,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[436,433],"class_list":{"0":"post-10001","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-controllogix","8":"tag-for-do","9":"tag-structured-text","10":"czr-hentry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>ControlLogix For \/ Do Statement - Bryce Automation<\/title>\n<meta name=\"description\" content=\"How to setup and utilize the ControlLogix For \/ Do Statement in a structured text routine. We&#039;ll set up an example with indirect addressing.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/bryceautomation.com\/index.php\/2022\/01\/19\/controllogix-for-do-statement\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"ControlLogix For \/ Do Statement - Bryce Automation\" \/>\n<meta property=\"og:description\" content=\"How to setup and utilize the ControlLogix For \/ Do Statement in a structured text routine. We&#039;ll set up an example with indirect addressing.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/bryceautomation.com\/index.php\/2022\/01\/19\/controllogix-for-do-statement\/\" \/>\n<meta property=\"og:site_name\" content=\"Bryce Automation\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/ricky.bryce.7\" \/>\n<meta property=\"article:published_time\" content=\"2022-01-19T20:13:29+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-01-19T20:13:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/01\/image-48.png\" \/>\n\t<meta property=\"og:image:width\" content=\"319\" \/>\n\t<meta property=\"og:image:height\" content=\"214\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Ricky\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/01\\\/19\\\/controllogix-for-do-statement\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/01\\\/19\\\/controllogix-for-do-statement\\\/\"},\"author\":{\"name\":\"Ricky\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/#\\\/schema\\\/person\\\/5d5b0f6f6ad768f1ee52968338e63af7\"},\"headline\":\"ControlLogix For \\\/ Do Statement\",\"datePublished\":\"2022-01-19T20:13:29+00:00\",\"dateModified\":\"2022-01-19T20:13:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/01\\\/19\\\/controllogix-for-do-statement\\\/\"},\"wordCount\":692,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/01\\\/19\\\/controllogix-for-do-statement\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/image-48.png\",\"keywords\":[\"For DO\",\"structured text\"],\"articleSection\":[\"ControlLogix\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/01\\\/19\\\/controllogix-for-do-statement\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/01\\\/19\\\/controllogix-for-do-statement\\\/\",\"url\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/01\\\/19\\\/controllogix-for-do-statement\\\/\",\"name\":\"ControlLogix For \\\/ Do Statement - Bryce Automation\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/01\\\/19\\\/controllogix-for-do-statement\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/01\\\/19\\\/controllogix-for-do-statement\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/image-48.png\",\"datePublished\":\"2022-01-19T20:13:29+00:00\",\"dateModified\":\"2022-01-19T20:13:32+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/#\\\/schema\\\/person\\\/5d5b0f6f6ad768f1ee52968338e63af7\"},\"description\":\"How to setup and utilize the ControlLogix For \\\/ Do Statement in a structured text routine. We'll set up an example with indirect addressing.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/01\\\/19\\\/controllogix-for-do-statement\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/01\\\/19\\\/controllogix-for-do-statement\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/01\\\/19\\\/controllogix-for-do-statement\\\/#primaryimage\",\"url\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/image-48.png\",\"contentUrl\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/image-48.png\",\"width\":319,\"height\":214,\"caption\":\"for DO\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2022\\\/01\\\/19\\\/controllogix-for-do-statement\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/bryceautomation.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"ControlLogix For \\\/ Do Statement\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/#website\",\"url\":\"https:\\\/\\\/bryceautomation.com\\\/\",\"name\":\"Bryce Automation\",\"description\":\"Automating Home and Industry...\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/bryceautomation.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/#\\\/schema\\\/person\\\/5d5b0f6f6ad768f1ee52968338e63af7\",\"name\":\"Ricky\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/wphb-cache\\\/gravatar\\\/a8f\\\/a8fe6bf79d292b388ffee281ccb12488x96.jpg\",\"url\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/wphb-cache\\\/gravatar\\\/a8f\\\/a8fe6bf79d292b388ffee281ccb12488x96.jpg\",\"contentUrl\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/wphb-cache\\\/gravatar\\\/a8f\\\/a8fe6bf79d292b388ffee281ccb12488x96.jpg\",\"caption\":\"Ricky\"},\"sameAs\":[\"http:\\\/\\\/bryceautomation.com\",\"https:\\\/\\\/www.facebook.com\\\/ricky.bryce.7\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/ricky-bryce-4367a416\\\/\"],\"url\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/author\\\/ricky\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"ControlLogix For \/ Do Statement - Bryce Automation","description":"How to setup and utilize the ControlLogix For \/ Do Statement in a structured text routine. We'll set up an example with indirect addressing.","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:\/\/bryceautomation.com\/index.php\/2022\/01\/19\/controllogix-for-do-statement\/","og_locale":"en_US","og_type":"article","og_title":"ControlLogix For \/ Do Statement - Bryce Automation","og_description":"How to setup and utilize the ControlLogix For \/ Do Statement in a structured text routine. We'll set up an example with indirect addressing.","og_url":"https:\/\/bryceautomation.com\/index.php\/2022\/01\/19\/controllogix-for-do-statement\/","og_site_name":"Bryce Automation","article_author":"https:\/\/www.facebook.com\/ricky.bryce.7","article_published_time":"2022-01-19T20:13:29+00:00","article_modified_time":"2022-01-19T20:13:32+00:00","og_image":[{"width":319,"height":214,"url":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/01\/image-48.png","type":"image\/png"}],"author":"Ricky","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/bryceautomation.com\/index.php\/2022\/01\/19\/controllogix-for-do-statement\/#article","isPartOf":{"@id":"https:\/\/bryceautomation.com\/index.php\/2022\/01\/19\/controllogix-for-do-statement\/"},"author":{"name":"Ricky","@id":"https:\/\/bryceautomation.com\/#\/schema\/person\/5d5b0f6f6ad768f1ee52968338e63af7"},"headline":"ControlLogix For \/ Do Statement","datePublished":"2022-01-19T20:13:29+00:00","dateModified":"2022-01-19T20:13:32+00:00","mainEntityOfPage":{"@id":"https:\/\/bryceautomation.com\/index.php\/2022\/01\/19\/controllogix-for-do-statement\/"},"wordCount":692,"commentCount":0,"image":{"@id":"https:\/\/bryceautomation.com\/index.php\/2022\/01\/19\/controllogix-for-do-statement\/#primaryimage"},"thumbnailUrl":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/01\/image-48.png","keywords":["For DO","structured text"],"articleSection":["ControlLogix"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/bryceautomation.com\/index.php\/2022\/01\/19\/controllogix-for-do-statement\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/bryceautomation.com\/index.php\/2022\/01\/19\/controllogix-for-do-statement\/","url":"https:\/\/bryceautomation.com\/index.php\/2022\/01\/19\/controllogix-for-do-statement\/","name":"ControlLogix For \/ Do Statement - Bryce Automation","isPartOf":{"@id":"https:\/\/bryceautomation.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/bryceautomation.com\/index.php\/2022\/01\/19\/controllogix-for-do-statement\/#primaryimage"},"image":{"@id":"https:\/\/bryceautomation.com\/index.php\/2022\/01\/19\/controllogix-for-do-statement\/#primaryimage"},"thumbnailUrl":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/01\/image-48.png","datePublished":"2022-01-19T20:13:29+00:00","dateModified":"2022-01-19T20:13:32+00:00","author":{"@id":"https:\/\/bryceautomation.com\/#\/schema\/person\/5d5b0f6f6ad768f1ee52968338e63af7"},"description":"How to setup and utilize the ControlLogix For \/ Do Statement in a structured text routine. We'll set up an example with indirect addressing.","breadcrumb":{"@id":"https:\/\/bryceautomation.com\/index.php\/2022\/01\/19\/controllogix-for-do-statement\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/bryceautomation.com\/index.php\/2022\/01\/19\/controllogix-for-do-statement\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/bryceautomation.com\/index.php\/2022\/01\/19\/controllogix-for-do-statement\/#primaryimage","url":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/01\/image-48.png","contentUrl":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2022\/01\/image-48.png","width":319,"height":214,"caption":"for DO"},{"@type":"BreadcrumbList","@id":"https:\/\/bryceautomation.com\/index.php\/2022\/01\/19\/controllogix-for-do-statement\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/bryceautomation.com\/"},{"@type":"ListItem","position":2,"name":"ControlLogix For \/ Do Statement"}]},{"@type":"WebSite","@id":"https:\/\/bryceautomation.com\/#website","url":"https:\/\/bryceautomation.com\/","name":"Bryce Automation","description":"Automating Home and Industry...","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/bryceautomation.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/bryceautomation.com\/#\/schema\/person\/5d5b0f6f6ad768f1ee52968338e63af7","name":"Ricky","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/bryceautomation.com\/wp-content\/wphb-cache\/gravatar\/a8f\/a8fe6bf79d292b388ffee281ccb12488x96.jpg","url":"https:\/\/bryceautomation.com\/wp-content\/wphb-cache\/gravatar\/a8f\/a8fe6bf79d292b388ffee281ccb12488x96.jpg","contentUrl":"https:\/\/bryceautomation.com\/wp-content\/wphb-cache\/gravatar\/a8f\/a8fe6bf79d292b388ffee281ccb12488x96.jpg","caption":"Ricky"},"sameAs":["http:\/\/bryceautomation.com","https:\/\/www.facebook.com\/ricky.bryce.7","https:\/\/www.linkedin.com\/in\/ricky-bryce-4367a416\/"],"url":"https:\/\/bryceautomation.com\/index.php\/author\/ricky\/"}]}},"_links":{"self":[{"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/posts\/10001","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/comments?post=10001"}],"version-history":[{"count":0,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/posts\/10001\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/media\/10006"}],"wp:attachment":[{"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/media?parent=10001"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/categories?post=10001"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/tags?post=10001"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}