Categories: 学习经验

西门子PID功能块FB58(TCONT_CP)高级功能2

<h2>FB58(TCONT&lowbar;CP)高级功能之二<&sol;h2>&NewLine;<h3>自整定参数的保存&lpar;SAVE&lowbar;PAR&rpar;&sol;重载&lpar;UNDO&lowbar;PAR&rpar;<&sol;h3>&NewLine;<p>表1&period; 自整定参数的保存与重载<&sol;p>&NewLine;<table border&equals;"1" width&equals;"100&percnt;">&NewLine;<tbody>&NewLine;<tr>&NewLine;<th scope&equals;"col" width&equals;"10&percnt;"><span style&equals;"font-size&colon; 10pt&semi;">MAN&lowbar;ON<&sol;span><&sol;th>&NewLine;<th scope&equals;"col" width&equals;"10&percnt;"><span style&equals;"font-size&colon; 10pt&semi;">SAVE&lowbar;PAR<&sol;span><&sol;th>&NewLine;<th scope&equals;"col" width&equals;"10&percnt;"><span style&equals;"font-size&colon; 10pt&semi;">UNDO&lowbar;PAR<&sol;span><&sol;th>&NewLine;<th scope&equals;"col" width&equals;"70&percnt;"><span style&equals;"font-size&colon; 10pt&semi;">状态<&sol;span><&sol;th>&NewLine;<&sol;tr>&NewLine;<tr>&NewLine;<th scope&equals;"row"><span style&equals;"font-size&colon; 10pt&semi;">1<&sol;span><&sol;th>&NewLine;<td><span style&equals;"font-size&colon; 10pt&semi;">1<&sol;span><&sol;td>&NewLine;<td><span style&equals;"font-size&colon; 10pt&semi;">0<&sol;span><&sol;td>&NewLine;<td><span style&equals;"font-size&colon; 10pt&semi;">将当前参数保存至结构变量&colon;PAR&lowbar;SAVE<&sol;span><&sol;td>&NewLine;<&sol;tr>&NewLine;<tr>&NewLine;<th scope&equals;"row"><span style&equals;"font-size&colon; 10pt&semi;">1<&sol;span><&sol;th>&NewLine;<td><span style&equals;"font-size&colon; 10pt&semi;">0<&sol;span><&sol;td>&NewLine;<td><span style&equals;"font-size&colon; 10pt&semi;">1<&sol;span><&sol;td>&NewLine;<td><span style&equals;"font-size&colon; 10pt&semi;">将结构变量&colon;PAR&lowbar;SAVE内的参数重载入当前参数<&sol;span><&sol;td>&NewLine;<&sol;tr>&NewLine;<tr>&NewLine;<th scope&equals;"row"><span style&equals;"font-size&colon; 10pt&semi;">0<&sol;span><&sol;th>&NewLine;<td><span style&equals;"font-size&colon; 10pt&semi;">0<&sol;span><&sol;td>&NewLine;<td><span style&equals;"font-size&colon; 10pt&semi;">1<&sol;span><&sol;td>&NewLine;<td><span style&equals;"font-size&colon; 10pt&semi;">无法装载<&sol;span><&sol;td>&NewLine;<&sol;tr>&NewLine;<tr>&NewLine;<th scope&equals;"row"><span style&equals;"font-size&colon; 10pt&semi;">0<&sol;span><&sol;th>&NewLine;<td><span style&equals;"font-size&colon; 10pt&semi;">1<&sol;span><&sol;td>&NewLine;<td><span style&equals;"font-size&colon; 10pt&semi;">0<&sol;span><&sol;td>&NewLine;<td><span style&equals;"font-size&colon; 10pt&semi;">将当前参数保存至结构变量&colon;PAR&lowbar;SAVE<&sol;span><&sol;td>&NewLine;<&sol;tr>&NewLine;<&sol;tbody>&NewLine;<&sol;table>&NewLine;<h3>PI、PID参数的装载&lpar;LOAD&lowbar;PID&sol;PID&lowbar;ON&rpar;<&sol;h3>&NewLine;<p>表2&period; PID参数装载<&sol;p>&NewLine;<table border&equals;"1" width&equals;"100&percnt;">&NewLine;<tbody>&NewLine;<tr>&NewLine;<th scope&equals;"col" width&equals;"10&percnt;"><span style&equals;"font-size&colon; 10pt&semi;">MAN&lowbar;ON<&sol;span><&sol;th>&NewLine;<th scope&equals;"col" width&equals;"10&percnt;"><span style&equals;"font-size&colon; 10pt&semi;">LOAD&lowbar;PID<&sol;span><&sol;th>&NewLine;<th scope&equals;"col" width&equals;"10&percnt;"><span style&equals;"font-size&colon; 10pt&semi;">PID&lowbar;ON<&sol;span><&sol;th>&NewLine;<th scope&equals;"col" width&equals;"70&percnt;"><span style&equals;"font-size&colon; 10pt&semi;">状态<&sol;span><&sol;th>&NewLine;<&sol;tr>&NewLine;<tr>&NewLine;<th scope&equals;"row"><span style&equals;"font-size&colon; 10pt&semi;">1<&sol;span><&sol;th>&NewLine;<td><span style&equals;"font-size&colon; 10pt&semi;">1<&sol;span><&sol;td>&NewLine;<td><span style&equals;"font-size&colon; 10pt&semi;">1<&sol;span><&sol;td>&NewLine;<td><span style&equals;"font-size&colon; 10pt&semi;">将结构变量&colon;PID&lowbar;CON内的参数写入当前变量<&sol;span><&sol;td>&NewLine;<&sol;tr>&NewLine;<tr>&NewLine;<th scope&equals;"row"><span style&equals;"font-size&colon; 10pt&semi;">1<&sol;span><&sol;th>&NewLine;<td><span style&equals;"font-size&colon; 10pt&semi;">1<&sol;span><&sol;td>&NewLine;<td><span style&equals;"font-size&colon; 10pt&semi;">0<&sol;span><&sol;td>&NewLine;<td><span style&equals;"font-size&colon; 10pt&semi;">将结构变量&colon;PI&lowbar;CON内的参数写入当前变量<&sol;span><&sol;td>&NewLine;<&sol;tr>&NewLine;<tr>&NewLine;<th scope&equals;"row"><span style&equals;"font-size&colon; 10pt&semi;">0<&sol;span><&sol;th>&NewLine;<td><span style&equals;"font-size&colon; 10pt&semi;">-<&sol;span><&sol;td>&NewLine;<td><span style&equals;"font-size&colon; 10pt&semi;">-<&sol;span><&sol;td>&NewLine;<td><span style&equals;"font-size&colon; 10pt&semi;">无法装载<&sol;span><&sol;td>&NewLine;<&sol;tr>&NewLine;<&sol;tbody>&NewLine;<&sol;table>&NewLine;<p>注意&colon;<&sol;p>&NewLine;<p>当结构变量&colon;PID&lowbar;CON&sol;PI&lowbar;CON中的GAIN参数为0时,由于控制带公式&colon;CON&lowbar;ZONE&equals;250&sol;GAIN&comma;故无法装载参数<&sol;p>&NewLine;<h3>脉冲输出<&sol;h3>&NewLine;<p>与FB41&OpenCurlyDoubleQuote;CONT&lowbar;C”不同,FB58 &OpenCurlyDoubleQuote;TCONT&lowbar;CP&OpenCurlyDoubleQuote;集成有脉宽调制输出的功能,通过将PID的运算结果换算成对应的脉冲占空比来达到加热&sol;冷却的控制。<&sol;p>&NewLine;<p>表3&period; 脉冲输出主要参数<&sol;p>&NewLine;<table border&equals;"1" width&equals;"100&percnt;">&NewLine;<tbody>&NewLine;<tr>&NewLine;<th scope&equals;"col" width&equals;"50&percnt;"><span style&equals;"font-size&colon; 10pt&semi;">参数<&sol;span><&sol;th>&NewLine;<th scope&equals;"col" width&equals;"50&percnt;"><span style&equals;"font-size&colon; 10pt&semi;">功能<&sol;span><&sol;th>&NewLine;<&sol;tr>&NewLine;<tr>&NewLine;<th scope&equals;"row"><span style&equals;"font-size&colon; 10pt&semi;">PULSE&lowbar;ON<&sol;span><&sol;th>&NewLine;<td><span style&equals;"font-size&colon; 10pt&semi;">脉冲输出使能<&sol;span><&sol;td>&NewLine;<&sol;tr>&NewLine;<tr>&NewLine;<th scope&equals;"row"><span style&equals;"font-size&colon; 10pt&semi;">PER&lowbar;TM<&sol;span><&sol;th>&NewLine;<td><span style&equals;"font-size&colon; 10pt&semi;">脉冲输出的周期时间<&sol;span><&sol;td>&NewLine;<&sol;tr>&NewLine;<tr>&NewLine;<th scope&equals;"row"><span style&equals;"font-size&colon; 10pt&semi;">CYCLE&lowbar;P<&sol;span><&sol;th>&NewLine;<td><span style&equals;"font-size&colon; 10pt&semi;">脉冲输出的刷新时间<&sol;span><&sol;td>&NewLine;<&sol;tr>&NewLine;<tr>&NewLine;<th scope&equals;"row"><span style&equals;"font-size&colon; 10pt&semi;">P&lowbar;B&lowbar;TM<&sol;span><&sol;th>&NewLine;<td><span style&equals;"font-size&colon; 10pt&semi;">最小脉冲&sol;断开时间<&sol;span>&nbsp&semi;<&sol;p>&NewLine;<p><span style&equals;"font-size&colon; 10pt&semi;">脉冲输出高电平时间&lt&semi;P&lowbar;B&lowbar;TM&colon;不输出脉冲;<&sol;span><br &sol;>&NewLine;<span style&equals;"font-size&colon; 10pt&semi;">脉冲输出高电平时间&gt&semi;PER&lowbar;TM - P&lowbar;B&lowbar;TM&colon;整个周期输出高电平 。<&sol;span><&sol;td>&NewLine;<&sol;tr>&NewLine;<&sol;tbody>&NewLine;<&sol;table>&NewLine;<p>在FB58 &OpenCurlyDoubleQuote;TCONT&lowbar;CP&OpenCurlyDoubleQuote;中,脉冲输出和PID计算是两个相对独立的过程,各自有自己的计算周期。对于PID计算来说,CYCLE参数可以看成是PID计算的循环周期时间,例如,PID在OB35每次执行的过程中都会调用,而硬件组态过程中OB35的周期时间被设置为500ms,则CYCLE应该填写0&period;5。对于脉冲输出来说,其循环周期是参数CYCLE&lowbar;P。这两个时间参数可以一样,也可以不一样。PID的计算计算周期主要是由被测量的变化规律所决定,而脉冲输出的CYCLE&lowbar;P参数由要求的脉冲输出精度决定。<&sol;p>&NewLine;<p>为了协调PID和脉冲输出之间的矛盾,FB58 &OpenCurlyDoubleQuote;TCONT&lowbar;CP&OpenCurlyDoubleQuote;提供了"SELECT" 参数,其具体使用如下所示&colon;<&sol;p>&NewLine;<p>表4&period; SELECT选择<&sol;p>&NewLine;<table border&equals;"1" width&equals;"100&percnt;">&NewLine;<tbody>&NewLine;<tr>&NewLine;<th scope&equals;"col" width&equals;"33&percnt;"><span style&equals;"font-size&colon; 10pt&semi;">功能<&sol;span><&sol;th>&NewLine;<th scope&equals;"col" width&equals;"33&percnt;"><span style&equals;"font-size&colon; 10pt&semi;">块调用<&sol;span><&sol;th>&NewLine;<th scope&equals;"col" width&equals;"33&percnt;"><span style&equals;"font-size&colon; 10pt&semi;">应用场合<&sol;span><&sol;th>&NewLine;<&sol;tr>&NewLine;<tr>&NewLine;<th scope&equals;"row"><span style&equals;"font-size&colon; 10pt&semi;">在同一周期性中断OB中执行PID控制器和脉冲输出<&sol;span><&sol;th>&NewLine;<td><span style&equals;"font-size&colon; 10pt&semi;">在周期性中断OB(OB32&sol;OB35)中通过SELECT&equals;0进行调用<&sol;span><&sol;td>&NewLine;<td><span style&equals;"font-size&colon; 10pt&semi;">适用于脉冲发生器不是特别短的时候。<&sol;span><&sol;td>&NewLine;<&sol;tr>&NewLine;<tr>&NewLine;<th scope&equals;"row"><span style&equals;"font-size&colon; 10pt&semi;">在OB1中执行PID控制器<&sol;span><&sol;th>&NewLine;<td><span style&equals;"font-size&colon; 10pt&semi;">在OB1中通过SELECT&equals;1执行条件调用,此时QC&lowbar;ACT&equals;TURE。<&sol;span><&sol;td>&NewLine;<td rowspan&equals;"2"><span style&equals;"font-size&colon; 10pt&semi;">在S7-300中,适用于脉冲发生器的采样时间较短的时候。<&sol;span><&sol;td>&NewLine;<&sol;tr>&NewLine;<tr>&NewLine;<th scope&equals;"row"><span style&equals;"font-size&colon; 10pt&semi;">在周期性中断OB中执行脉冲输出<&sol;span><&sol;th>&NewLine;<td><span style&equals;"font-size&colon; 10pt&semi;">在周期性中断OB中通过SELECT&equals;2进行调用<&sol;span><&sol;td>&NewLine;<&sol;tr>&NewLine;<tr>&NewLine;<th scope&equals;"row"><span style&equals;"font-size&colon; 10pt&semi;">在低速周期性中断OB中执行PID控制器<&sol;span><&sol;th>&NewLine;<td><span style&equals;"font-size&colon; 10pt&semi;">在低速周期性中断OB中通过SELECT&equals;3进行调用<&sol;span><&sol;td>&NewLine;<td rowspan&equals;"2"><span style&equals;"font-size&colon; 10pt&semi;">在S7-400中,适用于脉冲发生器的采样时间较短的时候。<&sol;span><&sol;td>&NewLine;<&sol;tr>&NewLine;<tr>&NewLine;<th scope&equals;"row"><span style&equals;"font-size&colon; 10pt&semi;">在高速周期性中断OB中执行脉冲输出<&sol;span><&sol;th>&NewLine;<td><span style&equals;"font-size&colon; 10pt&semi;">在高速周期性中断OB中通过SELECT&equals;2进行调用<&sol;span><&sol;td>&NewLine;<&sol;tr>&NewLine;<&sol;tbody>&NewLine;<&sol;table>&NewLine;<h3>脉冲同步&colon;高电平输出状态更新<&sol;h3>&NewLine;<p>表5&period; 脉冲输出参数<&sol;p>&NewLine;<table border&equals;"1" width&equals;"100&percnt;">&NewLine;<tbody>&NewLine;<tr>&NewLine;<th scope&equals;"col" width&equals;"20&percnt;">参数<&sol;th>&NewLine;<th scope&equals;"col" width&equals;"20&percnt;">数值<&sol;th>&NewLine;<th scope&equals;"col" width&equals;"60&percnt;">说明<&sol;th>&NewLine;<&sol;tr>&NewLine;<tr>&NewLine;<th scope&equals;"row">PER&lowbar;TM<&sol;th>&NewLine;<td>20&lpar;s&rpar;<&sol;td>&NewLine;<td rowspan&equals;"3">在每1s,为可调节变量计算一个新值;<br &sol;>&NewLine;在每0&period;1s,将该数值和最新的脉冲长度或断开长度做比较<&sol;td>&NewLine;<&sol;tr>&NewLine;<tr>&NewLine;<th scope&equals;"row">CYCLE<&sol;th>&NewLine;<td>1&lpar;s&rpar;<&sol;td>&NewLine;<&sol;tr>&NewLine;<tr>&NewLine;<th scope&equals;"row">CYCLE&lowbar;P<&sol;th>&NewLine;<td>0&period;1&lpar;s&rpar;<&sol;td>&NewLine;<&sol;tr>&NewLine;<&sol;tbody>&NewLine;<&sol;table>&NewLine;<p>条件&colon;当前占空比 30&percnt;,更新占空比 50&percnt;<&sol;p>&NewLine;<p><img class&equals;"aligncenter wp-image-1512 size-full" src&equals;"https&colon;&sol;&sol;www&period;xuezdh&period;com&sol;wp-content&sol;uploads&sol;2021&sol;02&sol;01FB58PULSE1&period;png" alt&equals;"FB58同步更新,脉冲延长" width&equals;"569" height&equals;"332" &sol;><&sol;p>&NewLine;<p>图1&period; 同步更新,脉冲延长<&sol;p>&NewLine;<p>由上图可见,当前占空比30&percnt;,当同步时刻在脉宽未达到30&percnt;时到来,自动同步到占空比50&percnt;<&sol;p>&NewLine;<p>条件&colon;当前占空比 80&percnt;,更新占空比 25&percnt;<&sol;p>&NewLine;<p><img class&equals;"aligncenter wp-image-1513 size-full" src&equals;"https&colon;&sol;&sol;www&period;xuezdh&period;com&sol;wp-content&sol;uploads&sol;2021&sol;02&sol;02FB58PULSE2&period;png" alt&equals;"FB58同步更新,脉冲中断" width&equals;"565" height&equals;"327" &sol;><&sol;p>&NewLine;<p>图2&period; 同步更新,脉冲中断<&sol;p>&NewLine;<p>由上图可见,当前占空比80&percnt;,当同步时刻在脉宽超过25&percnt;时到来,脉冲立即停止,下个周期同步到25&percnt;<&sol;p>&NewLine;<h3>脉冲同步&colon;低电平输出状态更新<&sol;h3>&NewLine;<p>条件&colon;当前占空比70&percnt;,低电平&lpar;100&percnt;-70&percnt;&equals;30&percnt;&rpar;&comma;更新占空比15&percnt;&comma;低电平&lpar;100&percnt;-15&percnt;&equals;85&percnt;&rpar;<&sol;p>&NewLine;<p><img class&equals;"aligncenter wp-image-1514 size-full" src&equals;"https&colon;&sol;&sol;www&period;xuezdh&period;com&sol;wp-content&sol;uploads&sol;2021&sol;02&sol;03FB58PULSE3&period;png" alt&equals;"FB58同步更新,低电平延长" width&equals;"565" height&equals;"326" &sol;><&sol;p>&NewLine;<p>图3&period; 同步更新,低电平延长<&sol;p>&NewLine;<p>由上图可见&comma;当前低电平时间为30&percnt;,当同步时刻在低电平未达到30&percnt;时到来,自动同步到低电平85&percnt;<&sol;p>&NewLine;<p>条件&colon;当前占空比15&percnt;,低电平&lpar;100&percnt;-15&percnt;&equals;85&percnt;&rpar;&comma;更新占空比80&percnt;&comma;低电平&lpar;100&percnt;-80&percnt;&equals;20&percnt;&rpar;<&sol;p>&NewLine;<p><img class&equals;"aligncenter wp-image-1515 size-full" src&equals;"https&colon;&sol;&sol;www&period;xuezdh&period;com&sol;wp-content&sol;uploads&sol;2021&sol;02&sol;04FB58PULSE4&period;png" alt&equals;"FB58同步更新,脉冲输出" width&equals;"564" height&equals;"330" &sol;><&sol;p>&NewLine;<p>图4&period; 同步更新,脉冲输出<&sol;p>&NewLine;<p>由上图可见,当前低电平为85&percnt;,当同步时刻在低电平超过20&percnt;时到来,立即输出脉冲<&sol;p>&NewLine;<h3>无扰动切换<&sol;h3>&NewLine;<p>对比FB41&OpenCurlyDoubleQuote;CONT&lowbar;C” &comma;FB58 &OpenCurlyDoubleQuote;TCONT&lowbar;CP&OpenCurlyDoubleQuote;在手&sol;自动切换时可以实现<a href&equals;"https&colon;&sol;&sol;www&period;xuezdh&period;com&sol;tag&sol;&percnt;e6&percnt;97&percnt;a0&percnt;e6&percnt;89&percnt;b0&percnt;e5&percnt;88&percnt;87&percnt;e6&percnt;8d&percnt;a2&sol;" title&equals;"查看与 无扰切换 相关的文章" target&equals;"&lowbar;blank"><span class&equals;"tag-key">无扰切换<&sol;span><&sol;a>,无需编程。<&sol;p>&NewLine;

最新文章

西门子TIA Portal V16虚拟机分享,含更新

Windows操作系统版本 W…

7 月 ago

西门子TIA Portal V21虚拟机分享下载

Windows操作系统版本 V…

7 月 ago

S7-200 SMART V3.0 新增功能

只有固件版本为 V3.0 的 …

1 年 ago