{"id":2357,"date":"2020-03-02T13:08:04","date_gmt":"2020-03-02T13:08:04","guid":{"rendered":"http:\/\/bryceautomation.com\/?p=2357"},"modified":"2020-03-02T13:08:06","modified_gmt":"2020-03-02T13:08:06","slug":"buffering-inputs-and-outputs","status":"publish","type":"post","link":"https:\/\/bryceautomation.com\/index.php\/2020\/03\/02\/buffering-inputs-and-outputs\/","title":{"rendered":"Buffering Inputs and Outputs"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">Introduction to Buffering Inputs and Outputs<\/h3>\n\n\n\n<p>There are several reasons for Buffering Inputs and Outputs.   First, the tags are easier to understand for those doing troubleshooting.  Secondly, it holds data the same for one scan.   Thirdly, I\/O changes (Input and Output changes) to your system are easier to make.<\/p><div id=\"bryce-799973068\" 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>Today, I&#8217;ll walk you through creating a User Defined Data Type.   We will then create tags to utilize this data type.   Finally, we&#8217;ll buffer the data into our user-friendly tag names.  We are going to use a simple example of a valve with only the open and closed limit switches, and open and close solenoid in this example.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Create the UDT<\/h3>\n\n\n\n<p>At this time, I&#8217;m going to create a User Defined Data Type (UDT) for the valve.   This will make organization and troubleshooting much easier!   Right-click the User Defined folder under Data Types in the Controller Organizer window.   Then, create a new data type.   I set up the valve data type as follows:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"474\" height=\"338\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2020\/03\/buffervalve.png\" alt=\"\" class=\"wp-image-2361 lazyload\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2020\/03\/buffervalve.png 474w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2020\/03\/buffervalve-300x214.png 300w\" data-sizes=\"(max-width: 474px) 100vw, 474px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 474px; --smush-placeholder-aspect-ratio: 474\/338;\" \/><\/figure>\n\n\n\n<p>Afterwards, I&#8217;ll create a couple tags that use this data type.   To create the tags, go to Controller Tags.   This is at the top of the controller organizer window.  I created 3 tags for 3 valves.   As can be seen, when I expand one of the valves, all of the members of the data type are inherited.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"503\" height=\"301\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2020\/03\/buffertags.png\" alt=\"\" class=\"wp-image-2362 lazyload\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2020\/03\/buffertags.png 503w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2020\/03\/buffertags-300x180.png 300w\" data-sizes=\"(max-width: 503px) 100vw, 503px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 503px; --smush-placeholder-aspect-ratio: 503\/301;\" \/><\/figure>\n\n\n\n<p>You will also notice by looking at the tags, that I have an Input module in slot 5, and an output module in slot 6.<\/p>\n\n\n\n<p>Our goal is to take the tags such as Local:5:I.Data.0, and &#8220;copy&#8221; that to a user-friendly tag, such as BypassValve.OpenedLS.   Afterwards, the programmer can use the buffered tag throughout logic.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Write the Logic<\/h3>\n\n\n\n<p>We&#8217;ll create two subroutines:  One for Input Buffering and another for Output Buffering.  Don&#8217;t forget to add the JSR instructions to the MainRoutine.  For more information on this, visit the <a href=\"https:\/\/bryceautomation.com\/index.php\/2017\/05\/28\/controllogix-simple-subroutines\/\">simple subroutines<\/a> post.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"775\" height=\"392\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2020\/03\/buffersbr.png\" alt=\"\" class=\"wp-image-2364 lazyload\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2020\/03\/buffersbr.png 775w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2020\/03\/buffersbr-300x152.png 300w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2020\/03\/buffersbr-768x388.png 768w\" data-sizes=\"(max-width: 775px) 100vw, 775px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 775px; --smush-placeholder-aspect-ratio: 775\/392;\" \/><\/figure>\n\n\n\n<p>Next, open the InputBuffering routine, and we&#8217;ll buffer data into the correct tags.   Be sure the real input that you are buffering from corresponds with the tag that you buffer into!  Repeat this process until all of your inputs are buffered to a user friendly tag name.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"453\" height=\"276\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2020\/03\/bufferinginputs.png\" alt=\"\" class=\"wp-image-2365 lazyload\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2020\/03\/bufferinginputs.png 453w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2020\/03\/bufferinginputs-300x183.png 300w\" data-sizes=\"(max-width: 453px) 100vw, 453px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 453px; --smush-placeholder-aspect-ratio: 453\/276;\" \/><\/figure>\n\n\n\n<p>Likewise, buffer the Outputs.    Here is a sample of logic for the OutputBuffering routine.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"454\" height=\"275\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2020\/03\/bufferingoutputs.png\" alt=\"\" class=\"wp-image-2366 lazyload\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2020\/03\/bufferingoutputs.png 454w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2020\/03\/bufferingoutputs-300x182.png 300w\" data-sizes=\"(max-width: 454px) 100vw, 454px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 454px; --smush-placeholder-aspect-ratio: 454\/275;\" \/><\/figure>\n\n\n\n<p>Likewise, repeat this process until all of your outputs are buffered.  Notice the user friendly tags are moving onto the real world output this time.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Main Logic<\/h3>\n\n\n\n<p>In your main program logic, use the buffered tags in your code.  the inputbuffering, and output buffering tags take care of the rest!   <\/p>\n\n\n\n<p>Here is a sample of how you might use the buffered tags.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"570\" height=\"251\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2020\/03\/finallogic.png\" alt=\"\" class=\"wp-image-2367 lazyload\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2020\/03\/finallogic.png 570w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2020\/03\/finallogic-300x132.png 300w\" data-sizes=\"(max-width: 570px) 100vw, 570px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 570px; --smush-placeholder-aspect-ratio: 570\/251;\" \/><\/figure>\n\n\n\n<p>&#8212; Ricky Bryce<\/p>\n<div id=\"bryce-3643478415\" 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 Buffering Inputs and Outputs There are several reasons for Buffering Inputs and Outputs. First, the tags are easier to understand for those doing troubleshooting. Secondly, it holds data the same for one scan. Thirdly, I\/O changes (Input and Output changes) to your system are easier to make. Today, I&#8217;ll walk you through creating <a class=\"moretag btn btn-primary\" href=\"https:\/\/bryceautomation.com\/index.php\/2020\/03\/02\/buffering-inputs-and-outputs\/\">Read More \u00bb<\/a><\/p>\n","protected":false},"author":1,"featured_media":2362,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[186,132,134],"class_list":{"0":"post-2357","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-controllogix","8":"tag-buffering","9":"tag-input","10":"tag-output","11":"czr-hentry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Buffering Inputs and Outputs in the ControlLogix processor<\/title>\n<meta name=\"description\" content=\"Buffering Inputs and outputs to hold the data valid for one scan, and provide more user friendly tag names. I\/O changes are also much easier!\" \/>\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\/2020\/03\/02\/buffering-inputs-and-outputs\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Buffering Inputs and Outputs in the ControlLogix processor\" \/>\n<meta property=\"og:description\" content=\"Buffering Inputs and outputs to hold the data valid for one scan, and provide more user friendly tag names. I\/O changes are also much easier!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/bryceautomation.com\/index.php\/2020\/03\/02\/buffering-inputs-and-outputs\/\" \/>\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=\"2020-03-02T13:08:04+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-03-02T13:08:06+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2020\/03\/buffertags.png\" \/>\n\t<meta property=\"og:image:width\" content=\"503\" \/>\n\t<meta property=\"og:image:height\" content=\"301\" \/>\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\\\/2020\\\/03\\\/02\\\/buffering-inputs-and-outputs\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2020\\\/03\\\/02\\\/buffering-inputs-and-outputs\\\/\"},\"author\":{\"name\":\"Ricky\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/#\\\/schema\\\/person\\\/5d5b0f6f6ad768f1ee52968338e63af7\"},\"headline\":\"Buffering Inputs and Outputs\",\"datePublished\":\"2020-03-02T13:08:04+00:00\",\"dateModified\":\"2020-03-02T13:08:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2020\\\/03\\\/02\\\/buffering-inputs-and-outputs\\\/\"},\"wordCount\":447,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2020\\\/03\\\/02\\\/buffering-inputs-and-outputs\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/uploads\\\/2020\\\/03\\\/buffertags.png\",\"keywords\":[\"Buffering\",\"Input\",\"Output\"],\"articleSection\":[\"ControlLogix\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2020\\\/03\\\/02\\\/buffering-inputs-and-outputs\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2020\\\/03\\\/02\\\/buffering-inputs-and-outputs\\\/\",\"url\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2020\\\/03\\\/02\\\/buffering-inputs-and-outputs\\\/\",\"name\":\"Buffering Inputs and Outputs in the ControlLogix processor\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2020\\\/03\\\/02\\\/buffering-inputs-and-outputs\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2020\\\/03\\\/02\\\/buffering-inputs-and-outputs\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/uploads\\\/2020\\\/03\\\/buffertags.png\",\"datePublished\":\"2020-03-02T13:08:04+00:00\",\"dateModified\":\"2020-03-02T13:08:06+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/#\\\/schema\\\/person\\\/5d5b0f6f6ad768f1ee52968338e63af7\"},\"description\":\"Buffering Inputs and outputs to hold the data valid for one scan, and provide more user friendly tag names. I\\\/O changes are also much easier!\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2020\\\/03\\\/02\\\/buffering-inputs-and-outputs\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2020\\\/03\\\/02\\\/buffering-inputs-and-outputs\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2020\\\/03\\\/02\\\/buffering-inputs-and-outputs\\\/#primaryimage\",\"url\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/uploads\\\/2020\\\/03\\\/buffertags.png\",\"contentUrl\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/uploads\\\/2020\\\/03\\\/buffertags.png\",\"width\":503,\"height\":301,\"caption\":\"BufferingTags\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2020\\\/03\\\/02\\\/buffering-inputs-and-outputs\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/bryceautomation.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Buffering Inputs and Outputs\"}]},{\"@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":"Buffering Inputs and Outputs in the ControlLogix processor","description":"Buffering Inputs and outputs to hold the data valid for one scan, and provide more user friendly tag names. I\/O changes are also much easier!","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\/2020\/03\/02\/buffering-inputs-and-outputs\/","og_locale":"en_US","og_type":"article","og_title":"Buffering Inputs and Outputs in the ControlLogix processor","og_description":"Buffering Inputs and outputs to hold the data valid for one scan, and provide more user friendly tag names. I\/O changes are also much easier!","og_url":"https:\/\/bryceautomation.com\/index.php\/2020\/03\/02\/buffering-inputs-and-outputs\/","og_site_name":"Bryce Automation","article_author":"https:\/\/www.facebook.com\/ricky.bryce.7","article_published_time":"2020-03-02T13:08:04+00:00","article_modified_time":"2020-03-02T13:08:06+00:00","og_image":[{"width":503,"height":301,"url":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2020\/03\/buffertags.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\/2020\/03\/02\/buffering-inputs-and-outputs\/#article","isPartOf":{"@id":"https:\/\/bryceautomation.com\/index.php\/2020\/03\/02\/buffering-inputs-and-outputs\/"},"author":{"name":"Ricky","@id":"https:\/\/bryceautomation.com\/#\/schema\/person\/5d5b0f6f6ad768f1ee52968338e63af7"},"headline":"Buffering Inputs and Outputs","datePublished":"2020-03-02T13:08:04+00:00","dateModified":"2020-03-02T13:08:06+00:00","mainEntityOfPage":{"@id":"https:\/\/bryceautomation.com\/index.php\/2020\/03\/02\/buffering-inputs-and-outputs\/"},"wordCount":447,"commentCount":0,"image":{"@id":"https:\/\/bryceautomation.com\/index.php\/2020\/03\/02\/buffering-inputs-and-outputs\/#primaryimage"},"thumbnailUrl":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2020\/03\/buffertags.png","keywords":["Buffering","Input","Output"],"articleSection":["ControlLogix"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/bryceautomation.com\/index.php\/2020\/03\/02\/buffering-inputs-and-outputs\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/bryceautomation.com\/index.php\/2020\/03\/02\/buffering-inputs-and-outputs\/","url":"https:\/\/bryceautomation.com\/index.php\/2020\/03\/02\/buffering-inputs-and-outputs\/","name":"Buffering Inputs and Outputs in the ControlLogix processor","isPartOf":{"@id":"https:\/\/bryceautomation.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/bryceautomation.com\/index.php\/2020\/03\/02\/buffering-inputs-and-outputs\/#primaryimage"},"image":{"@id":"https:\/\/bryceautomation.com\/index.php\/2020\/03\/02\/buffering-inputs-and-outputs\/#primaryimage"},"thumbnailUrl":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2020\/03\/buffertags.png","datePublished":"2020-03-02T13:08:04+00:00","dateModified":"2020-03-02T13:08:06+00:00","author":{"@id":"https:\/\/bryceautomation.com\/#\/schema\/person\/5d5b0f6f6ad768f1ee52968338e63af7"},"description":"Buffering Inputs and outputs to hold the data valid for one scan, and provide more user friendly tag names. I\/O changes are also much easier!","breadcrumb":{"@id":"https:\/\/bryceautomation.com\/index.php\/2020\/03\/02\/buffering-inputs-and-outputs\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/bryceautomation.com\/index.php\/2020\/03\/02\/buffering-inputs-and-outputs\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/bryceautomation.com\/index.php\/2020\/03\/02\/buffering-inputs-and-outputs\/#primaryimage","url":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2020\/03\/buffertags.png","contentUrl":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2020\/03\/buffertags.png","width":503,"height":301,"caption":"BufferingTags"},{"@type":"BreadcrumbList","@id":"https:\/\/bryceautomation.com\/index.php\/2020\/03\/02\/buffering-inputs-and-outputs\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/bryceautomation.com\/"},{"@type":"ListItem","position":2,"name":"Buffering Inputs and Outputs"}]},{"@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\/2357","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=2357"}],"version-history":[{"count":0,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/posts\/2357\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/media\/2362"}],"wp:attachment":[{"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/media?parent=2357"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/categories?post=2357"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/tags?post=2357"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}