{"id":9668,"date":"2021-12-22T15:58:27","date_gmt":"2021-12-22T15:58:27","guid":{"rendered":"https:\/\/bryceautomation.com\/?p=9668"},"modified":"2022-03-01T12:36:46","modified_gmt":"2022-03-01T12:36:46","slug":"feed-forward-for-plantpax-pid","status":"publish","type":"post","link":"https:\/\/bryceautomation.com\/index.php\/2021\/12\/22\/feed-forward-for-plantpax-pid\/","title":{"rendered":"Feed Forward for PlantPAx PID"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">Introduction to Feed Forward for PlantPAx PID<\/h3>\n\n\n\n<p>With Feed Forward for PlantPAx PID, we can adjust the control variable directly.  For example, if the load increases from a tank, we can immediately provide a higher setpoint to the inflow.  This can drastically improve response time.  Additionally, it will usually reduce overshooting and undershooting the setpoint.<\/p><div id=\"bryce-3687484479\" 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>In this section, we&#8217;ll set up feed forward for PlantPAx PID.  When we pull more product from a tank, we&#8217;ll feed that load directly to the setpoint of the feed pump.  Recall that in the last section, we have already tuned the <a href=\"https:\/\/bryceautomation.com\/index.php\/2021\/12\/22\/cascading-pid-with-plantpax\/\">Level PID Controller.<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"580\" height=\"304\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-96.png\" alt=\"Feed Forward Diagram\" class=\"wp-image-9297 lazyload\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-96.png 580w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-96-300x157.png 300w\" data-sizes=\"(max-width: 580px) 100vw, 580px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 580px; --smush-placeholder-aspect-ratio: 580\/304;\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Configure the Feed Forward Analog Input<\/h3>\n\n\n\n<p>Obviously, we need a way to read the amount of draw, or load, from our system.  We&#8217;ll do this with an additional analog input.  In your LevelControl Routine, let&#8217;s set up our analog input as follows:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"234\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-245-1024x234.png\" alt=\"\" class=\"wp-image-9669 lazyload\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-245-1024x234.png 1024w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-245-300x68.png 300w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-245-768x175.png 768w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-245.png 1047w\" data-sizes=\"(max-width: 1024px) 100vw, 1024px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/234;\" \/><\/figure>\n\n\n\n<p>The LevelLoad tag is an alias that points directly to the analog input channel that we get our load information from.  This is a raw value.  We&#8217;ll also create a tag called &#8220;LevelLoadScaled&#8221;.  This tag has a &#8220;REAL&#8221; data type.  This means, it will hold values that contain a decimal point.   Be sure to edit the tag names of your P_AIChan, and P_AIn.  The tag names are LevelFF_Input_Chan, and LevelFF_Input.  The name of the channel is especially important.  Since it belongs to the P_AIn instruction, it needs to have the exact same name with &#8220;_Chan&#8221; appended to the name.  Download or finalize your work.  Be sure to save your changes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Add the Forward Feed Faceplate<\/h3>\n\n\n\n<p>At this point, add a P_AIn object to your Level Control display.  Under Global objects, you will find this in the (RA-BAS) P_Ain Graphics library.   Let&#8217;s add text above the object &#8220;Level FF&#8221;.<\/p>\n\n\n\n<p>Launch your client.  If your client is already running, go back to the main screen, then back to the Level Control Screen.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-246.png\" alt=\"\" class=\"wp-image-9670 lazyload\" width=\"402\" height=\"228\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-246.png 790w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-246-300x170.png 300w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-246-768x436.png 768w\" data-sizes=\"(max-width: 402px) 100vw, 402px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 402px; --smush-placeholder-aspect-ratio: 402\/228;\" \/><\/figure>\n\n\n\n<p>As you can see, we have a signal failure on our Feed Forward Analog Input value.  We need to set up the scaling and thresholds for this object.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Configure the P_AIn Faceplate<\/h3>\n\n\n\n<p>Remember, our logic will flow from the analog input module, through the P_AIChan, then into the P_AIn instruction.  This allows us two opportunities to scale the tag.  The Channel instruction will scale the raw value to 4000 to 20000.  This will give us a known standard raw value into the P_AIn instruction.  Next, the P_AIn instruction will scale 4000 to 20000 back into 0 to 100%.<\/p>\n\n\n\n<p>The purpose of the channel is to condition the values, and provide information about channel faults.<\/p>\n\n\n\n<p>First, let&#8217;s find the Maximum Raw value of our load.  Increase your load to 100% on the level controller.  By looking at the LevelLoad tag, we see the maximum value is 6890 in this case.  Realize yours will be different.  Write down whatever value you have for the maximum raw load value.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"205\" height=\"62\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-247.png\" alt=\"\" class=\"wp-image-9671 lazyload\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 205px; --smush-placeholder-aspect-ratio: 205\/62;\" \/><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Configure the Channel<\/h4>\n\n\n\n<p>At this point, we&#8217;ll configure the channel.  Remember our input raw is 0 to 6890.   On the other hand, our scaled value <strong>from the channel <\/strong>is 4000 to 20000.<\/p>\n\n\n\n<p>Click the Analog Input object on your Level display for Feed Forward.  Go to Maintenance | Display Advanced Properties | HMI Configuration.  Keep in mind that our Analog Input tag has the name LevelFF_Input.  Let&#8217;s enter this information into the Label and Tag.  Additionally, we need to enable navigation to the channel object.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"495\" height=\"271\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-248.png\" alt=\"\" class=\"wp-image-9672 lazyload\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-248.png 495w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-248-300x164.png 300w\" data-sizes=\"(max-width: 495px) 100vw, 495px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 495px; --smush-placeholder-aspect-ratio: 495\/271;\" \/><\/figure>\n\n\n\n<p>Go to Diagnostics, and click on the raw input of your channel.  After that, go to the Channel&#8217;s Maintenance display, and enter your low and high threshold values for a signal failure.  Keep in mind the threshold shows %, but this is a bug in PlantPAx.  It should be the raw data that you enter.  We just need a value outside of our normal values to initiate a signal fault. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"563\" height=\"179\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-252.png\" alt=\"\" class=\"wp-image-9676 lazyload\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-252.png 563w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-252-300x95.png 300w\" data-sizes=\"(max-width: 563px) 100vw, 563px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 563px; --smush-placeholder-aspect-ratio: 563\/179;\" \/><\/figure>\n\n\n\n<p>Next, we&#8217;ll set up the scaling.  Go to HMI Advanced Configuration.  Keep in mind that it&#8217;s the channel that we are configuring. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"615\" height=\"222\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-251.png\" alt=\"\" class=\"wp-image-9675 lazyload\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-251.png 615w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-251-300x108.png 300w\" data-sizes=\"(max-width: 615px) 100vw, 615px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 615px; --smush-placeholder-aspect-ratio: 615\/222;\" \/><\/figure>\n\n\n\n<p>At this point, you have scaled the channel.  Next we need to configure the Analog Input object.<\/p>\n\n\n\n<p>Be sure to save your data in RSLogix \/ Studio 5000.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Configure the Analog Input<\/h4>\n\n\n\n<p>Besides configuring the channel, we also need to configure the P_Ain instruction.  Go to Maintenance of the P_AIn instruction, and configure the input thresholds on page 2.  Please make sure it&#8217;s not the channel that you are setting, but the P_AIn.  Check your title bar on the faceplates.  <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"412\" height=\"155\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-253.png\" alt=\"\" class=\"wp-image-9677 lazyload\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-253.png 412w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-253-300x113.png 300w\" data-sizes=\"(max-width: 412px) 100vw, 412px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 412px; --smush-placeholder-aspect-ratio: 412\/155;\" \/><\/figure>\n\n\n\n<p>At this time, go to Display Advanced properties.  As I&#8217;ve said before, we are scaling the value from 4000 to 20000 into 0 to 100%.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"469\" height=\"219\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-254.png\" alt=\"\" class=\"wp-image-9678 lazyload\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-254.png 469w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-254-300x140.png 300w\" data-sizes=\"(max-width: 469px) 100vw, 469px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 469px; --smush-placeholder-aspect-ratio: 469\/219;\" \/><\/figure>\n\n\n\n<p>At this point, your analog signal is configured.  Check the Level display screen to verify we still have a FF Value of  around 100%.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"163\" height=\"72\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-255.png\" alt=\"\" class=\"wp-image-9680 lazyload\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 163px; --smush-placeholder-aspect-ratio: 163\/72;\" \/><\/figure>\n\n\n\n<p>Set your Level Load back to 50%.<\/p>\n\n\n\n<p>Once again, be sure to save your work in RSLogix \/ Studio 5000.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Set up Feed Forward for PlantPAx PID.<\/h3>\n\n\n\n<p>Setting up feed forward for PlantPAx PID is very simple at this point.  Basically, we just send the Feed Forward value into the Level PID controller.<\/p>\n\n\n\n<p>Go to the properties of your Level PID Controller.  Set the visibility field for Inp_FF.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"481\" height=\"160\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-256.png\" alt=\"\" class=\"wp-image-9681 lazyload\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-256.png 481w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-256-300x100.png 300w\" data-sizes=\"(max-width: 481px) 100vw, 481px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 481px; --smush-placeholder-aspect-ratio: 481\/160;\" \/><\/figure>\n\n\n\n<p>At this point, simply tie your LevelLoadScaled value into the Inp_FF node on the Level PID.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"871\" height=\"273\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-257.png\" alt=\"\" class=\"wp-image-9682 lazyload\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-257.png 871w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-257-300x94.png 300w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-257-768x241.png 768w\" data-sizes=\"(max-width: 871px) 100vw, 871px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 871px; --smush-placeholder-aspect-ratio: 871\/273;\" \/><\/figure>\n\n\n\n<p>Finalize your work, or download to the processor.  Because our PID is already tuned, we are ready to test our work.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Test your work with Feed Forward for PlantPAx PID<\/h3>\n\n\n\n<p>With your loads for flow and level set on 50%, let&#8217;s make sure we are maintaining the level setpoint.<\/p>\n\n\n\n<p>Now change your load to 25%.  Let the process variable settle, then change your load to 50%.  Once again, allow the process variable to settle, then change the load to 75%.<\/p>\n\n\n\n<p><strong><em>Note:  If you wish to adjust how much effect the load changes have on your CV, you can simply scale the value with the SCL Instruction.<\/em><\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"328\" height=\"139\" data-src=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-258.png\" alt=\"\" class=\"wp-image-9684 lazyload\" data-srcset=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-258.png 328w, https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-258-300x127.png 300w\" data-sizes=\"(max-width: 328px) 100vw, 328px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 328px; --smush-placeholder-aspect-ratio: 328\/139;\" \/><\/figure>\n\n\n\n<p>As you can see, when we suddenly have a smaller load, the control variable drastically lowers based on the new demand.  On the other hand, if we have an increase in load, the control variable drastically increases in anticipation of the tank level drop.<\/p>\n\n\n\n<p>Lead and Lag<\/p>\n\n\n\n<p>Sometimes, you need to delay, or ramp the feed forward value before sending it to the PID.  To accomplish this, use the LDLG instruction.  The LDLG can cause the feed forward value to &#8220;lead&#8221;, or lag the variable we wish to use for the FF input.  For more information on LDLG, <a href=\"https:\/\/bryceautomation.com\/index.php\/2022\/03\/01\/controllogix-lead-lag-instruction-ldlg\/\">visit this post.<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Summary<\/h3>\n\n\n\n<p>To summarize, we simply need a value to tell us the demand on the system.  We feed this value into the Inp_FF node on the PID block.  When the load changes, the Feed Forward provides a bias directly, and instantly to the control variable.  This provides a much better response of our loop.  You can use this for any type of disturbance, providing that you offset the control variable in the right direction.<\/p>\n\n\n\n<p>&#8212; Ricky Bryce<\/p>\n<div id=\"bryce-35651849\" 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 Feed Forward for PlantPAx PID With Feed Forward for PlantPAx PID, we can adjust the control variable directly. For example, if the load increases from a tank, we can immediately provide a higher setpoint to the inflow. This can drastically improve response time. Additionally, it will usually reduce overshooting and undershooting the setpoint. <a class=\"moretag btn btn-primary\" href=\"https:\/\/bryceautomation.com\/index.php\/2021\/12\/22\/feed-forward-for-plantpax-pid\/\">Read More \u00bb<\/a><\/p>\n","protected":false},"author":1,"featured_media":9684,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,410,195],"tags":[419,413,48,247],"class_list":{"0":"post-9668","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-controllogix","8":"category-pid","9":"category-plantpax","10":"tag-feedforward","11":"tag-p_pide","12":"tag-pid","13":"tag-pide","14":"czr-hentry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Feed Forward for PlantPAx PID - Bryce Automation<\/title>\n<meta name=\"description\" content=\"Set up Feed Forward for PlantPAx PID. This improves our response time by immediately offsetting the control variable during disturbances.\" \/>\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\/2021\/12\/22\/feed-forward-for-plantpax-pid\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Feed Forward for PlantPAx PID - Bryce Automation\" \/>\n<meta property=\"og:description\" content=\"Set up Feed Forward for PlantPAx PID. This improves our response time by immediately offsetting the control variable during disturbances.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/bryceautomation.com\/index.php\/2021\/12\/22\/feed-forward-for-plantpax-pid\/\" \/>\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=\"2021-12-22T15:58:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-03-01T12:36:46+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-258.png\" \/>\n\t<meta property=\"og:image:width\" content=\"328\" \/>\n\t<meta property=\"og:image:height\" content=\"139\" \/>\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\\\/2021\\\/12\\\/22\\\/feed-forward-for-plantpax-pid\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2021\\\/12\\\/22\\\/feed-forward-for-plantpax-pid\\\/\"},\"author\":{\"name\":\"Ricky\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/#\\\/schema\\\/person\\\/5d5b0f6f6ad768f1ee52968338e63af7\"},\"headline\":\"Feed Forward for PlantPAx PID\",\"datePublished\":\"2021-12-22T15:58:27+00:00\",\"dateModified\":\"2022-03-01T12:36:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2021\\\/12\\\/22\\\/feed-forward-for-plantpax-pid\\\/\"},\"wordCount\":1162,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2021\\\/12\\\/22\\\/feed-forward-for-plantpax-pid\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/uploads\\\/2021\\\/12\\\/image-258.png\",\"keywords\":[\"FeedForward\",\"P_PIDE\",\"PID\",\"PIDE\"],\"articleSection\":[\"ControlLogix\",\"PID\",\"PlantPAx\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2021\\\/12\\\/22\\\/feed-forward-for-plantpax-pid\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2021\\\/12\\\/22\\\/feed-forward-for-plantpax-pid\\\/\",\"url\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2021\\\/12\\\/22\\\/feed-forward-for-plantpax-pid\\\/\",\"name\":\"Feed Forward for PlantPAx PID - Bryce Automation\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2021\\\/12\\\/22\\\/feed-forward-for-plantpax-pid\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2021\\\/12\\\/22\\\/feed-forward-for-plantpax-pid\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/uploads\\\/2021\\\/12\\\/image-258.png\",\"datePublished\":\"2021-12-22T15:58:27+00:00\",\"dateModified\":\"2022-03-01T12:36:46+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/#\\\/schema\\\/person\\\/5d5b0f6f6ad768f1ee52968338e63af7\"},\"description\":\"Set up Feed Forward for PlantPAx PID. This improves our response time by immediately offsetting the control variable during disturbances.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2021\\\/12\\\/22\\\/feed-forward-for-plantpax-pid\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2021\\\/12\\\/22\\\/feed-forward-for-plantpax-pid\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2021\\\/12\\\/22\\\/feed-forward-for-plantpax-pid\\\/#primaryimage\",\"url\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/uploads\\\/2021\\\/12\\\/image-258.png\",\"contentUrl\":\"https:\\\/\\\/bryceautomation.com\\\/wp-content\\\/uploads\\\/2021\\\/12\\\/image-258.png\",\"width\":328,\"height\":139,\"caption\":\"Disturbance Offset\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/bryceautomation.com\\\/index.php\\\/2021\\\/12\\\/22\\\/feed-forward-for-plantpax-pid\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/bryceautomation.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Feed Forward for PlantPAx PID\"}]},{\"@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":"Feed Forward for PlantPAx PID - Bryce Automation","description":"Set up Feed Forward for PlantPAx PID. This improves our response time by immediately offsetting the control variable during disturbances.","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\/2021\/12\/22\/feed-forward-for-plantpax-pid\/","og_locale":"en_US","og_type":"article","og_title":"Feed Forward for PlantPAx PID - Bryce Automation","og_description":"Set up Feed Forward for PlantPAx PID. This improves our response time by immediately offsetting the control variable during disturbances.","og_url":"https:\/\/bryceautomation.com\/index.php\/2021\/12\/22\/feed-forward-for-plantpax-pid\/","og_site_name":"Bryce Automation","article_author":"https:\/\/www.facebook.com\/ricky.bryce.7","article_published_time":"2021-12-22T15:58:27+00:00","article_modified_time":"2022-03-01T12:36:46+00:00","og_image":[{"width":328,"height":139,"url":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-258.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\/2021\/12\/22\/feed-forward-for-plantpax-pid\/#article","isPartOf":{"@id":"https:\/\/bryceautomation.com\/index.php\/2021\/12\/22\/feed-forward-for-plantpax-pid\/"},"author":{"name":"Ricky","@id":"https:\/\/bryceautomation.com\/#\/schema\/person\/5d5b0f6f6ad768f1ee52968338e63af7"},"headline":"Feed Forward for PlantPAx PID","datePublished":"2021-12-22T15:58:27+00:00","dateModified":"2022-03-01T12:36:46+00:00","mainEntityOfPage":{"@id":"https:\/\/bryceautomation.com\/index.php\/2021\/12\/22\/feed-forward-for-plantpax-pid\/"},"wordCount":1162,"commentCount":0,"image":{"@id":"https:\/\/bryceautomation.com\/index.php\/2021\/12\/22\/feed-forward-for-plantpax-pid\/#primaryimage"},"thumbnailUrl":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-258.png","keywords":["FeedForward","P_PIDE","PID","PIDE"],"articleSection":["ControlLogix","PID","PlantPAx"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/bryceautomation.com\/index.php\/2021\/12\/22\/feed-forward-for-plantpax-pid\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/bryceautomation.com\/index.php\/2021\/12\/22\/feed-forward-for-plantpax-pid\/","url":"https:\/\/bryceautomation.com\/index.php\/2021\/12\/22\/feed-forward-for-plantpax-pid\/","name":"Feed Forward for PlantPAx PID - Bryce Automation","isPartOf":{"@id":"https:\/\/bryceautomation.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/bryceautomation.com\/index.php\/2021\/12\/22\/feed-forward-for-plantpax-pid\/#primaryimage"},"image":{"@id":"https:\/\/bryceautomation.com\/index.php\/2021\/12\/22\/feed-forward-for-plantpax-pid\/#primaryimage"},"thumbnailUrl":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-258.png","datePublished":"2021-12-22T15:58:27+00:00","dateModified":"2022-03-01T12:36:46+00:00","author":{"@id":"https:\/\/bryceautomation.com\/#\/schema\/person\/5d5b0f6f6ad768f1ee52968338e63af7"},"description":"Set up Feed Forward for PlantPAx PID. This improves our response time by immediately offsetting the control variable during disturbances.","breadcrumb":{"@id":"https:\/\/bryceautomation.com\/index.php\/2021\/12\/22\/feed-forward-for-plantpax-pid\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/bryceautomation.com\/index.php\/2021\/12\/22\/feed-forward-for-plantpax-pid\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/bryceautomation.com\/index.php\/2021\/12\/22\/feed-forward-for-plantpax-pid\/#primaryimage","url":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-258.png","contentUrl":"https:\/\/bryceautomation.com\/wp-content\/uploads\/2021\/12\/image-258.png","width":328,"height":139,"caption":"Disturbance Offset"},{"@type":"BreadcrumbList","@id":"https:\/\/bryceautomation.com\/index.php\/2021\/12\/22\/feed-forward-for-plantpax-pid\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/bryceautomation.com\/"},{"@type":"ListItem","position":2,"name":"Feed Forward for PlantPAx PID"}]},{"@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\/9668","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=9668"}],"version-history":[{"count":0,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/posts\/9668\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/media\/9684"}],"wp:attachment":[{"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/media?parent=9668"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/categories?post=9668"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bryceautomation.com\/index.php\/wp-json\/wp\/v2\/tags?post=9668"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}