{"id":1929,"date":"2019-10-10T23:50:50","date_gmt":"2019-10-10T23:50:50","guid":{"rendered":"http:\/\/bryceautomation.com\/?p=1929"},"modified":"2020-11-19T15:28:43","modified_gmt":"2020-11-19T15:28:43","slug":"controllogix-trapping","status":"publish","type":"post","link":"https:\/\/bryceautomation.com\/index.php\/2019\/10\/10\/controllogix-trapping\/","title":{"rendered":"ControlLogix Trapping"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">Introduction to ControlLogix Trapping<\/h3>\n\n\n\n<p>ControlLogix trapping is important for locating fast moving bits, or infrequent bits.    An example would include equipment guard doors.   Periodically, a guard door might loose connection, and shut down your equipment.    Intermittent problems are very difficult to locate.   Since the condition existed for only a fraction of a second, we do not know which guard door is to fault.  We could also use this feature for alarms to log which alarms go high.  Since one condition can cause a cascade of events, you can look at your trap log to see which alarm was true first.<\/p><div id=\"bryce-450462093\" 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>Once you have a trapping program set up in a PLC, you can just modify the logic to change the bits that you need to trap for a given problem.   A big advantage of having a trapping program is that you do not need to leave your computer on the plant floor.   When a failure occurs, simply open the trap log to see which condition caused the failure.  Before utilizing this document in any way, be sure you are familiar with ControlLogix, and Electrical safety.   This document is as-is and example only.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Create the Program, and add Parameters<\/h3>\n\n\n\n<p>First, create a program for ControlLogix Trapping.   To do this, I will right-click the main task, and add a program.   I&#8217;ll just name the program &#8220;Trap&#8221;.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"246\" height=\"110\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2019\/10\/createprogram.png\" alt=\"\" class=\"wp-image-1930 lazyload\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 246px; --smush-placeholder-aspect-ratio: 246\/110;\" \/><\/figure>\n\n\n\n<p>Notice, I also renamed the MainRoutine to &#8220;TrapRoutine&#8221;.   This is where we will add all of our logic.  Next, within the trap program, open &#8220;Parameters, and Local Tags&#8221;.   Likewise, if you have an earlier version, this might be called &#8220;Program Tags&#8221;.   Add the following local tags.   <strong> Be sure to pay attention to the data types.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"594\" height=\"168\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2019\/10\/LocalTags.png\" alt=\"\" class=\"wp-image-1931 lazyload\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2019\/10\/LocalTags.png 594w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2019\/10\/LocalTags-300x85.png 300w\" data-sizes=\"(max-width: 594px) 100vw, 594px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 594px; --smush-placeholder-aspect-ratio: 594\/168;\" \/><\/figure>\n\n\n\n<p>First of all, let&#8217;s discuss what the purpose will be for each tag:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>ChangeMe (DINT) &#8212; This will be used as a &#8220;place holder&#8221; in logic.   When you set up a trap later on, you will replace the ChangeMe bits with the bits you wish to monitor.<\/li><li>ClearData (BOOL) &#8212; This is a bit that you can toggle to clear your fault log when you start a new trap.<\/li><li>CurrentData (DINT) &#8212; This is a buffer that your trap conditions will be stored into.   This allows you to represent all of your bits within a single word to simplify our logic.<\/li><li>FaultLog (DINT[100]) &#8212; This is an array of 100 DINTs.  This is the log where your bit changes will be stored.<\/li><li>LastData (DINT) &#8212; We will use this to compare against the current data.    If the CurrentData changes, then it no longer matches the LastData.   This will prompt the logic to log the change to the FaultLog.<\/li><li>Pointer (DINT) &#8212; This will allow our indirect addressing to know the next location to log data in the fault log.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Write the Logic<\/h3>\n\n\n\n<p>First, we&#8217;ll write the logic that stores our conditions into the CurrentData tag.   Remember, when you are ready to use the trap, just replace the &#8220;ChangeMe&#8221; bits with the conditions you want to trap.  I&#8217;ll give you the first three rungs, but be sure to continue this pattern all the way through Bits 31.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"430\" height=\"294\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2019\/10\/changeme.png\" alt=\"\" class=\"wp-image-1932 lazyload\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2019\/10\/changeme.png 430w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2019\/10\/changeme-300x205.png 300w\" data-sizes=\"(max-width: 430px) 100vw, 430px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 430px; --smush-placeholder-aspect-ratio: 430\/294;\" \/><\/figure>\n\n\n\n<p>Secondly, we&#8217;ll write the logic that performs the trapping of our fault conditions:  I&#8217;m using Indirect addressing to index through the fault log.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"502\" height=\"351\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2019\/10\/FaultLog.png\" alt=\"\" class=\"wp-image-1933 lazyload\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2019\/10\/FaultLog.png 502w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2019\/10\/FaultLog-300x210.png 300w\" data-sizes=\"(max-width: 502px) 100vw, 502px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 502px; --smush-placeholder-aspect-ratio: 502\/351;\" \/><\/figure>\n\n\n\n<p>I&#8217;ll explain this rung in plain English.  If the CurrentData is not equal to the LastData, that means a change has occurred in the conditions we wish to trap.   This has happened since the last time we&#8217;ve logged our data.  So if we have this mismatch, move the current data to the next element of the FaultLog.   Remember how indirect addressing works with FaultLog[Pointer].   Simply substitute the value of the pointer tag for it&#8217;s name, and that is where the data is logged.  Furthermore, we have an ADD instruction.   After we log the data, increment the pointer by 1.  This ensures the next data logged will go to the next element of our FaultLog.  Lastly, we will move the value of the CurrentData to the LastData.   This way, we will not log anything else until another change occurs in our trapped conditions.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Reset the FaultLog<\/h3>\n\n\n\n<p>Above all, we do not want to fault the processor.  If the previous rung tries to write to an element that does not exist, the processor will fault.   We are trying to solve problems, not create more.    We&#8217;ll also give ourselves a way to reset the fault log manually.    <\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"497\" height=\"348\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2019\/10\/cleardata-1.png\" alt=\"\" class=\"wp-image-1935 lazyload\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2019\/10\/cleardata-1.png 497w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2019\/10\/cleardata-1-300x210.png 300w\" data-sizes=\"(max-width: 497px) 100vw, 497px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 497px; --smush-placeholder-aspect-ratio: 497\/348;\" \/><\/figure>\n\n\n\n<p>Again, in plain English.   If the pointer tries to go too high, or if we manually toggle our ClearData bit, we want to do a few things.   Move 0 into the pointer.   This will allow rung 32 to start logging at the top of the FaultLog tag again.   Next we will move 0 to LastData.   This is a known state to compare against.   Then, we will fill the FaultLog with 0&#8217;s to wipe it clean.  Finally, if you manually initiated this event, unlatch the &#8220;ClearData&#8221; bit.   This way, you don&#8217;t have to manually toggle it again for the FaultLog to work.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Reading the FaultLog for ControlLogix Trapping<\/h3>\n\n\n\n<p>To view any changes since the FaultLog was last cleared, open Parameters and Local Tags (Program Tags).<\/p>\n\n\n\n<p>Next, change the STYLE of your whole FaultLog tag to &#8220;Binary&#8221;.  Click the + next to the fault log.<\/p>\n\n\n\n<p>As you can see, in this case, bit 3 is the last bit to drop out.  Originally the first 8 bits were on.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"691\" height=\"107\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2019\/10\/binary.png\" alt=\"\" class=\"wp-image-1936 lazyload\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2019\/10\/binary.png 691w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2019\/10\/binary-300x46.png 300w\" data-sizes=\"(max-width: 691px) 100vw, 691px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 691px; --smush-placeholder-aspect-ratio: 691\/107;\" \/><\/figure>\n\n\n\n<p>If you forget what condition bit 3 represents, simply scroll up to Rung 3.  You will see the condition that you mapped to Bit 3.<\/p>\n\n\n\n<p>For more information on ControlLogix, visit the <a href=\"https:\/\/bryceautomation.com\/index.php\/category\/controllogix\/\">ControlLogix Category<\/a> Page!<\/p>\n\n\n\n<p>&#8212; Ricky Bryce<\/p>\n<div id=\"bryce-3939559059\" 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 Trapping ControlLogix trapping is important for locating fast moving bits, or infrequent bits. An example would include equipment guard doors. Periodically, a guard door might loose connection, and shut down your equipment. Intermittent problems are very difficult to locate. Since the condition existed for only a fraction of a second, we do <a class=\"moretag btn btn-primary\" href=\"https:\/\/bryceautomation.com\/index.php\/2019\/10\/10\/controllogix-trapping\/\">Read More \u00bb<\/a><\/p>\n","protected":false},"author":1,"featured_media":1933,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[11],"class_list":{"0":"post-1929","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-controllogix","8":"tag-controllogix","9":"czr-hentry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>ControlLogix Trapping -- How to trap and log changed bits.<\/title>\n<meta name=\"description\" content=\"We will build controllogix trapping tags and logic to trap specific bit changes in your ControlLogix processor.\" \/>\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\/2019\/10\/10\/controllogix-trapping\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"ControlLogix Trapping -- How to trap and log changed bits.\" \/>\n<meta property=\"og:description\" content=\"We will build controllogix trapping tags and logic to trap specific bit changes in your ControlLogix processor.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/bryceautomation.com\/index.php\/2019\/10\/10\/controllogix-trapping\/\" \/>\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=\"2019-10-10T23:50:50+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-11-19T15:28:43+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2019\/10\/FaultLog.png\" \/>\n\t<meta property=\"og:image:width\" content=\"502\" \/>\n\t<meta property=\"og:image:height\" content=\"351\" \/>\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\\\/2019\\\/10\\\/10\\\/controllogix-trapping\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2019\\\/10\\\/10\\\/controllogix-trapping\\\/\"},\"author\":{\"name\":\"Ricky\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/#\\\/schema\\\/person\\\/5d5b0f6f6ad768f1ee52968338e63af7\"},\"headline\":\"ControlLogix Trapping\",\"datePublished\":\"2019-10-10T23:50:50+00:00\",\"dateModified\":\"2020-11-19T15:28:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2019\\\/10\\\/10\\\/controllogix-trapping\\\/\"},\"wordCount\":938,\"commentCount\":3,\"image\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2019\\\/10\\\/10\\\/controllogix-trapping\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/uploads\\\/2019\\\/10\\\/FaultLog.png\",\"keywords\":[\"ControlLogix\"],\"articleSection\":[\"ControlLogix\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2019\\\/10\\\/10\\\/controllogix-trapping\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2019\\\/10\\\/10\\\/controllogix-trapping\\\/\",\"url\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2019\\\/10\\\/10\\\/controllogix-trapping\\\/\",\"name\":\"ControlLogix Trapping -- How to trap and log changed bits.\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2019\\\/10\\\/10\\\/controllogix-trapping\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2019\\\/10\\\/10\\\/controllogix-trapping\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/uploads\\\/2019\\\/10\\\/FaultLog.png\",\"datePublished\":\"2019-10-10T23:50:50+00:00\",\"dateModified\":\"2020-11-19T15:28:43+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/#\\\/schema\\\/person\\\/5d5b0f6f6ad768f1ee52968338e63af7\"},\"description\":\"We will build controllogix trapping tags and logic to trap specific bit changes in your ControlLogix processor.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2019\\\/10\\\/10\\\/controllogix-trapping\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2019\\\/10\\\/10\\\/controllogix-trapping\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2019\\\/10\\\/10\\\/controllogix-trapping\\\/#primaryimage\",\"url\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/uploads\\\/2019\\\/10\\\/FaultLog.png\",\"contentUrl\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/uploads\\\/2019\\\/10\\\/FaultLog.png\",\"width\":502,\"height\":351,\"caption\":\"ControlLogix Trapping\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2019\\\/10\\\/10\\\/controllogix-trapping\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/bryceautomation.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"ControlLogix Trapping\"}]},{\"@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 Trapping -- How to trap and log changed bits.","description":"We will build controllogix trapping tags and logic to trap specific bit changes in your ControlLogix processor.","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\/2019\/10\/10\/controllogix-trapping\/","og_locale":"en_US","og_type":"article","og_title":"ControlLogix Trapping -- How to trap and log changed bits.","og_description":"We will build controllogix trapping tags and logic to trap specific bit changes in your ControlLogix processor.","og_url":"https:\/\/bryceautomation.com\/index.php\/2019\/10\/10\/controllogix-trapping\/","og_site_name":"Bryce Automation","article_author":"https:\/\/www.facebook.com\/ricky.bryce.7","article_published_time":"2019-10-10T23:50:50+00:00","article_modified_time":"2020-11-19T15:28:43+00:00","og_image":[{"width":502,"height":351,"url":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2019\/10\/FaultLog.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\/2019\/10\/10\/controllogix-trapping\/#article","isPartOf":{"@id":"https:\/\/bryceautomation.com\/index.php\/2019\/10\/10\/controllogix-trapping\/"},"author":{"name":"Ricky","@id":"https:\/\/bryceautomation.com\/#\/schema\/person\/5d5b0f6f6ad768f1ee52968338e63af7"},"headline":"ControlLogix Trapping","datePublished":"2019-10-10T23:50:50+00:00","dateModified":"2020-11-19T15:28:43+00:00","mainEntityOfPage":{"@id":"https:\/\/bryceautomation.com\/index.php\/2019\/10\/10\/controllogix-trapping\/"},"wordCount":938,"commentCount":3,"image":{"@id":"https:\/\/bryceautomation.com\/index.php\/2019\/10\/10\/controllogix-trapping\/#primaryimage"},"thumbnailUrl":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2019\/10\/FaultLog.png","keywords":["ControlLogix"],"articleSection":["ControlLogix"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/bryceautomation.com\/index.php\/2019\/10\/10\/controllogix-trapping\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/bryceautomation.com\/index.php\/2019\/10\/10\/controllogix-trapping\/","url":"https:\/\/bryceautomation.com\/index.php\/2019\/10\/10\/controllogix-trapping\/","name":"ControlLogix Trapping -- How to trap and log changed bits.","isPartOf":{"@id":"https:\/\/bryceautomation.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/bryceautomation.com\/index.php\/2019\/10\/10\/controllogix-trapping\/#primaryimage"},"image":{"@id":"https:\/\/bryceautomation.com\/index.php\/2019\/10\/10\/controllogix-trapping\/#primaryimage"},"thumbnailUrl":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2019\/10\/FaultLog.png","datePublished":"2019-10-10T23:50:50+00:00","dateModified":"2020-11-19T15:28:43+00:00","author":{"@id":"https:\/\/bryceautomation.com\/#\/schema\/person\/5d5b0f6f6ad768f1ee52968338e63af7"},"description":"We will build controllogix trapping tags and logic to trap specific bit changes in your ControlLogix processor.","breadcrumb":{"@id":"https:\/\/bryceautomation.com\/index.php\/2019\/10\/10\/controllogix-trapping\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/bryceautomation.com\/index.php\/2019\/10\/10\/controllogix-trapping\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/bryceautomation.com\/index.php\/2019\/10\/10\/controllogix-trapping\/#primaryimage","url":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2019\/10\/FaultLog.png","contentUrl":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2019\/10\/FaultLog.png","width":502,"height":351,"caption":"ControlLogix Trapping"},{"@type":"BreadcrumbList","@id":"https:\/\/bryceautomation.com\/index.php\/2019\/10\/10\/controllogix-trapping\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/bryceautomation.com\/"},{"@type":"ListItem","position":2,"name":"ControlLogix Trapping"}]},{"@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\/1929","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=1929"}],"version-history":[{"count":0,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/posts\/1929\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/media\/1933"}],"wp:attachment":[{"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/media?parent=1929"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/categories?post=1929"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/tags?post=1929"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}