{"id":390,"date":"2016-07-19T09:12:08","date_gmt":"2016-07-19T12:12:08","guid":{"rendered":"http:\/\/apcmode.com\/?page_id=390"},"modified":"2020-07-04T18:08:08","modified_gmt":"2020-07-04T21:08:08","slug":"implementacao-em-clp","status":"publish","type":"page","link":"https:\/\/apcmode.com\/?page_id=390","title":{"rendered":"Implementa\u00e7\u00e3o em CLP"},"content":{"rendered":"<table style=\"width: 100%;\" border=\"1\" cellpadding=\"5\">\n<tbody>\n<tr>\n<td><a href=\"https:\/\/apcmode.com\/?page_id=388\">Retorna para t\u00f3pico anterior<\/a><\/td>\n<td>Conte\u00fado deste t\u00f3pico<br \/>\n&#8211;&nbsp;<a href=\"#p1\">CLPs Baseados em Ciclo de Scan \u00danico<\/a><br \/>\n&#8211; <a href=\"#p2\">Efeitos de Ciclos de Execu\u00e7\u00e3o Irregulares<\/a><br \/>\n&#8211; <a href=\"#p3\">M\u00e9todo de Temporiza\u00e7\u00e3o<\/a><\/td>\n<td><a href=\"https:\/\/apcmode.com\/?page_id=916\">Avan\u00e7a para pr\u00f3ximo t\u00f3pico<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>A figura abaixo&nbsp;mostra o esquema de uma malha de controle baseada em CLP. O c\u00e1lculo PID \u00e9 realizado no CLP por meio de opera\u00e7\u00f5es matem\u00e1ticas programadas ou utilizando um bloco funcional dedicado. A intera\u00e7\u00e3o com o processo se d\u00e1 por meio de cart\u00f5es anal\u00f3gicos de entrada e sa\u00edda, que funcionam como conversores A\/D e D\/A respectivamente.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1106\" src=\"https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-107.png\" alt=\"Capturar\" width=\"707\" height=\"429\" srcset=\"https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-107.png 707w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-107-300x182.png 300w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-107-100x61.png 100w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-107-150x91.png 150w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-107-200x121.png 200w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-107-450x273.png 450w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-107-600x364.png 600w\" sizes=\"auto, (max-width: 707px) 100vw, 707px\" \/><\/p>\n<p>A cada ciclo de <em>scan<\/em>, o sinal de entrada (vari\u00e1vel controlada) \u00e9 processado e uma a\u00e7\u00e3o de controle \u00e9 gerada e transmitida para o atuador. A Figura 21, \u00e0 esquerda, mostra um fragmento de um programa em Ladder com a chamada de um bloco PID em um CLP comercial. Um temporizador \u00e9 utilizado para determinar o intervalo de execu\u00e7\u00e3o (ou tempo de ciclo) do bloco. Para configura\u00e7\u00e3o do bloco, devem-se informar os valores dos par\u00e2metros de sintonia (P, I e D), os endere\u00e7os das vari\u00e1veis para leitura dos sinais (PV\/SP) e o endere\u00e7o da vari\u00e1vel para escrita da sa\u00edda (MV). \u00c0 direita, a figura mostra a janela de configura\u00e7\u00e3o do bloco, onde alguns dos par\u00e2metros s\u00e3o:<\/p>\n<ul>\n<li><em>\u201cPID Equation<\/em>: <em>Independent\u201d<\/em> (algoritmo do tipo paralelo);<\/li>\n<li><em>\u201cDerivative Of: PV\u201d<\/em> (a\u00e7\u00e3o derivativa a partir da PV)<\/li>\n<li><em>\u201cControl Action: SP-PV\u201d<\/em> (A\u00e7\u00e3o de controle direta)<\/li>\n<li><em>\u201cPV Tracking: No\u201d<\/em> (Transfer\u00eancia suave do tipo <em>PV-Track<\/em> desativada)<\/li>\n<li><em>\u201cUpdate Time (Secs): 0.5\u201d<\/em> (Tempo de amostragem do bloco de 500 ms)<\/li>\n<li><em>Engineering Units e Input Range<\/em> (Valores para normaliza\u00e7\u00e3o de escala da PV e SP)<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1108\" src=\"https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-108.png\" alt=\"Capturar\" width=\"867\" height=\"329\" srcset=\"https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-108.png 867w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-108-300x114.png 300w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-108-768x291.png 768w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-108-100x38.png 100w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-108-150x57.png 150w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-108-200x76.png 200w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-108-450x171.png 450w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-108-600x228.png 600w\" sizes=\"auto, (max-width: 867px) 100vw, 867px\" \/><\/p>\n<p>&nbsp;<\/p>\n<h3 id=\"p1\"><span style=\"color: #993300;\">CLPs Baseados em Ciclo de <em>Scan<\/em> \u00danico<\/span><\/h3>\n<p>CLPs modernos incorporaram tecnologias de gerenciamento de tarefas herdadas dos sistemas operacionais multi-tarefas com escalonamento preemptivo ou n\u00e3o-preemptivo de tarefas. Nesses sistemas, as instru\u00e7\u00f5es s\u00e3o divididas em tarefas com per\u00edodos de <em>scan<\/em> e n\u00edveis de prioridades determinados. Este tipo de CLP \u00e9 mais adequado para implementa\u00e7\u00e3o de malhas de controle, pois consegue garantir um intervalo de execu\u00e7\u00e3o regular para os blocos as instru\u00e7\u00f5es de controle.<\/p>\n<p>Por\u00e9m at\u00e9 o final da d\u00e9cada de 1990, todos os CLPs executavam as l\u00f3gicas como uma seq\u00fc\u00eancia \u00fanica de instru\u00e7\u00f5es que eram \u201cquebradas\u201d apenas por desvios condicionais (chamadas a sub-rotinas) ou incondicionais (<em>jump\u2019s<\/em>). Chamaremos estes controladores de <strong>CLPs baseado em ciclo de <em>scan<\/em> \u00fanico<\/strong>.<\/p>\n<p>A Figura abaixo \u00e9 uma representa\u00e7\u00e3o do ciclo t\u00edpico de opera\u00e7\u00e3o de um CLP.<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1109\" src=\"https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-109.png\" alt=\"Capturar\" width=\"509\" height=\"316\" srcset=\"https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-109.png 509w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-109-300x186.png 300w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-109-100x62.png 100w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-109-150x93.png 150w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-109-200x124.png 200w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-109-450x279.png 450w\" sizes=\"auto, (max-width: 509px) 100vw, 509px\" \/><\/p>\n<p>O tempo que se leva para completar um ciclo depende da quantidade de pontos de Entrada e Sa\u00edda (E\/S) e do tamanho do programa. Ciclos de <em>scan<\/em> t\u00edpicos s\u00e3o de 10 a 200 mseg, apesar de poderem variar de poucos milissegundos a v\u00e1rios segundos. As partes de inicializa\u00e7\u00e3o e a atualiza\u00e7\u00e3o de E\/S normalmente n\u00e3o variam de um ciclo para outro. Entretanto, o per\u00edodo de um ciclo de <em>scan<\/em> pode mudar devido \u00e0 chamada de subrotinas ou devido ao tratamento de interrup\u00e7\u00f5es e eventos de comunica\u00e7\u00e3o.<\/p>\n<p>A linha de tempo abaixo&nbsp;mostra a tend\u00eancia do per\u00edodo de <em>scan<\/em> de um CLP cujo programa faz chamada para uma sub-rotina de c\u00e1lculos. Em dado momento, o per\u00edodo de scan pulou de 50 para mais de 100 ms.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1110\" src=\"https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-110.png\" alt=\"Capturar\" width=\"684\" height=\"257\" srcset=\"https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-110.png 684w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-110-300x113.png 300w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-110-100x38.png 100w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-110-150x56.png 150w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-110-200x75.png 200w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-110-450x169.png 450w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-110-600x225.png 600w\" sizes=\"auto, (max-width: 684px) 100vw, 684px\" \/><\/p>\n<p>Esse ciclo de <em>scan<\/em> vari\u00e1vel ir\u00e1 causar erros no c\u00e1lculo do bloco PID de n\u00e3o for considerado. A chamada a um bloco PID deve ser realizada em intervalos rigidamente regulares. Se isso n\u00e3o for poss\u00edvel, as varia\u00e7\u00f5es no tempo de <em>scan<\/em> devem ser compensadas no c\u00e1lculo do PID.<\/p>\n<hr>\n<h3 id=\"p2\"><span style=\"color: #993300;\">Efeitos de Ciclos de Execu\u00e7\u00e3o Irregulares<\/span><\/h3>\n<p>O tempo de execu\u00e7\u00e3o de um controlador PID \u00e9 determinado via programa\u00e7\u00e3o mas em muitos controladores ele tamb\u00e9m deve ser informado como um par\u00e2metro interno do bloco PID. Este par\u00e2metro, chamado \u201cupdate time\u201d ou \u201ctempo de atualiza\u00e7\u00e3o\u201d, \u00e9 utilizado diretamente no c\u00e1lculo dos termos integral e derivativo (ver equa\u00e7\u00e3o abaixo).<\/p>\n<p>Equa\u00e7\u00e3o PID na forma discreta<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1111\" src=\"https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-111.png\" alt=\"Capturar\" width=\"795\" height=\"73\" srcset=\"https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-111.png 795w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-111-300x28.png 300w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-111-768x71.png 768w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-111-100x9.png 100w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-111-150x14.png 150w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-111-200x18.png 200w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-111-450x41.png 450w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-111-600x55.png 600w\" sizes=\"auto, (max-width: 795px) 100vw, 795px\" \/><\/p>\n<p>Dessa forma, para que o c\u00e1lculo seja executado corretamente, o par\u00e2metro <em>Update Time<\/em> deve ser necessariamente igual ao per\u00edodo em que o bloco \u00e9 executado. Por\u00e9m, quando o tempo de scan do CLP varia, esta condi\u00e7\u00e3o deixa de existir, pois o <em>UpdateTime<\/em> \u00e9 geralmente um par\u00e2metro fixo. A conseq\u00fc\u00eancia \u00e9 um erro no c\u00e1lculo do controlador, ilustrado na Figura 24. Este problema \u00e9 significativo quando a varia\u00e7\u00e3o do ciclo de <em>scan<\/em> do CLP representa mais de 10% do tempo de atualiza\u00e7\u00e3o do bloco PID.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1112\" src=\"https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-112.png\" alt=\"Capturar\" width=\"871\" height=\"455\" srcset=\"https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-112.png 871w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-112-300x157.png 300w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-112-768x401.png 768w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-112-100x52.png 100w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-112-150x78.png 150w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-112-200x104.png 200w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-112-450x235.png 450w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-112-600x313.png 600w\" sizes=\"auto, (max-width: 871px) 100vw, 871px\" \/><\/p>\n<hr>\n<h3 id=\"p3\"><span style=\"color: #993300;\">M\u00e9todo de Temporiza\u00e7\u00e3o<\/span><\/h3>\n<p>Para contornar o problema causada pela varia\u00e7\u00e3o no ciclo de scan, uma solu\u00e7\u00e3o \u00e9 o uso de um temporizador controlando a execu\u00e7\u00e3o do bloco PID e o uso de uma instru\u00e7\u00e3o para corre\u00e7\u00e3o do par\u00e2metro interno UPD Time com o valor do \u00faltimo tempo de <em>scan<\/em>. O <em>preset<\/em> do temporizador deve ser ajustado com o maior valor poss\u00edvel, respeitando as recomenda\u00e7\u00f5es sobre o tempo de amostragem do controlador.<\/p>\n<p>A Figura 25 mostra um exemplo de uma implementa\u00e7\u00e3o de malha PID. A chamada do bloco PID (PD18:11) \u00e9 determinada pelo temporizador T9:416, com um intervalo de execu\u00e7\u00e3o de 200ms. Note que, ap\u00f3s o final da contagem, o valor acumulado no temporizador \u00e9 movido para o par\u00e2metro PD18:11.UPD (<em>UpdateTime<\/em> do bloco PID). Esta opera\u00e7\u00e3o, feita sempre que o PID \u00e9 ativado, considera as varia\u00e7\u00f5es de ciclo de Scan, aumentando a precis\u00e3o do c\u00e1lculo do controlador.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1113\" src=\"https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-113.png\" alt=\"Capturar\" width=\"724\" height=\"429\" srcset=\"https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-113.png 724w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-113-300x178.png 300w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-113-100x59.png 100w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-113-150x89.png 150w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-113-200x119.png 200w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-113-450x267.png 450w, https:\/\/apcmode.com\/wp-content\/uploads\/2016\/07\/Capturar-113-600x356.png 600w\" sizes=\"auto, (max-width: 724px) 100vw, 724px\" \/><\/p>\n<p class=\"Texto\">Esta solu\u00e7\u00e3o, no entanto, funciona bem para PIDs com atualiza\u00e7\u00e3o acima de 100ms. Para valores inferiores, recomenda-se o uso de instru\u00e7\u00f5es de tempo real dispon\u00edveis em alguns CLPs. Estas instru\u00e7\u00f5es s\u00e3o executadas como interrup\u00e7\u00f5es independentes do ciclo de execu\u00e7\u00e3o.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Retorna para t\u00f3pico anterior Conte\u00fado deste t\u00f3pico &#8211;&nbsp;CLPs Baseados em Ciclo de Scan \u00danico &#8211; Efeitos de Ciclos de Execu\u00e7\u00e3o Irregulares &#8211; M\u00e9todo de Temporiza\u00e7\u00e3o Avan\u00e7a para pr\u00f3ximo t\u00f3pico A figura abaixo&nbsp;mostra o esquema de uma malha de controle baseada &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"more-link\" href=\"https:\/\/apcmode.com\/?page_id=390\"> <span class=\"screen-reader-text\">Implementa\u00e7\u00e3o em CLP<\/span> Read More &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":380,"menu_order":75,"comment_status":"closed","ping_status":"closed","template":"full-width-page.php","meta":{"footnotes":""},"class_list":["post-390","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/apcmode.com\/index.php?rest_route=\/wp\/v2\/pages\/390","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/apcmode.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/apcmode.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/apcmode.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/apcmode.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=390"}],"version-history":[{"count":2,"href":"https:\/\/apcmode.com\/index.php?rest_route=\/wp\/v2\/pages\/390\/revisions"}],"predecessor-version":[{"id":1241,"href":"https:\/\/apcmode.com\/index.php?rest_route=\/wp\/v2\/pages\/390\/revisions\/1241"}],"up":[{"embeddable":true,"href":"https:\/\/apcmode.com\/index.php?rest_route=\/wp\/v2\/pages\/380"}],"wp:attachment":[{"href":"https:\/\/apcmode.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=390"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}