CYCLE_CTRL

Este bloco tem por função controlar a habilitação de operação de 2 a 4 equipamentos baseado em tempos de operação. O bloco cicla o equipamento que será acionado e recebe informações de falha (DIS) e inatividade (HOLD) utilizadas para temporizar e identificar qual o canal de saida deve ser ativado em um dado momento.

Nota

Este bloco está obsoleto e é mantido na biblioteca apenas para compatibilidade com aplicações legadas.

Considere a possibilidade de utilizar o bloco MOT_CYCLE que possui os mesmos recursos e suporte para qualquer número de equipamentos (motores).

Bloco

                 CYCLE_CTRL
          +----------------------+
 BOOL ----|EN                 ENO|---- BOOL
          |                      |
 BOOL ----|RUN                EVT|---- BOOL
          |                      |
 BOOL ----|SWITCH       ON_CYC_SW|---- BOOL
          |                      |
 BOOL ----|ACK_CYC_SW        FAIL|---- BOOL
          |                      |
USINT ----|MAX_CH         END_CYC|---- TIME
          |                      |
 TIME ----|CYC_TIME              |
          |                      |
 BOOL ----|HOLD ---------------- |----
          |                      |
 BOOL ----|DIS ----------------- |----
          |                      |
 BOOL ----|OUT ----------------- |----
          |                      |
  INT ----|SEL_OUT ------------- |----
          +----------------------+

Operação do bloco

Este bloco recebe um vetor de até 4 canais digitais e é responsável por definir um canal ativo em um dado momento, baseado nos seguintes critérios:

  • tempo de ciclo;

  • comutação por evento;

  • desabilitação do canal;

Tempo de ciclo

O parâmetro de entrada CYC_TIME é responsável por definir um periodo de tempo para manter um dado canal ativo. Em uma condição normal de operação os canais de saida (OUT) serão ativados cíclicamente a cada intervalo de tempo definido por CYC_TIME, conforme indicado no diagrama a seguir:

   |
   |----------+                                +----------+
   |          |                                |          |
O3 |          +--------------------------------+          +-----------------
   |
   |          +----------+                                +---------+
   |          |          |                                |         |
O2 |----------+          +--------------------------------+         +-------
   |
   |                     +----------+                               +-------
   |                     |          |                               |
O1 |---------------------+          +-------------------------------+
   |
   |                                +----------+
   |                                |          |
O0 +--------------------------------+          +---------------------------
                                    : CYC_TIME :

Comutação por evento

Sempre que a entrada SWITCH alterar o estado de inativo para ativo (transição de subida) é acionada uma nova transição das saídas, mesmo que o tempo de ciclo definido não tenha transcorrido. Quando a nova saída selecionada for ativada o tempo de ciclo é reinicializado.

       : CYC_TIME :                     : CYC_TIME :
       |----------+                     +----------+
       |          |                     |          |
    O3 |          +---------------------+          +-----------------
       |                                           : CYC_TIME :
       |          +--+                             +----------+
       |          |  |                             |          |
    O2 |----------+  +-----------------------------+          +------
       |             : CYC_TIME :
       |             +----------+                             +------
       |             |          |                             |
    O1 |-------------+          +-----------------------------+
       |
       |                        +------+
       |                        |      |
    O0 +------------------------+      +-----------------------------
       |
       |             +--+              +-+
       |             |  |              | |
SWITCH +-------------+  +--------------+ +---------------------------

Desabilitação do canal

O parâmetro de entrada DIS é um vetor que define quais canais estão desabilitados para serem selecionados como canal ativo. Quando o valor estiver ativo o canal associado não participa da seleção do próximo canal. Se o canal desabilitado for o canal ativo o bloco seleciona o próximo canal disponível automaticamente.

O gráfico seguinte apresenta cenários do comportamento dos canais em função da ocôrrencia de alguma falha sinalizada nas entradas DIS.

     |                >| CYC |<
     |-----+           +-----+        +-----+                 +-----+           +---
     |     |           |     |        |     |                 |     |           |
  O3 |     +-----------+     +--------+     +-----------------+     +-----------+
     |     +-----+           +-----+        +-----+                 +-----+
     |     |     |           |     |        |     |                 |     |
  O2 |-----+     +-----------+     +--------+     +-----------------+     +----------
     |                                            +-----+                 +-----+
     |                                            |     |                 |     |
  O1 |--------------------------------------------+     +-----------------+     +----
     |           +-----+           +--+
     |           |     |           |  |
  O0 +-----------+     +-----------+  +----------------------------------------------

     |
     |
DIS3 |-------------------------------------------------------------------------------
     |
     |
DIS2 |-------------------------------------------------------------------------------
     |        +-------------------------------+
     |        |<- falha no eqp 1              |
DIS1 |--------+                               +--------------------------------------
     |                                +----------------------------------------------
     |                                |<- falha no eqp 0
DIS0 +--------------------------------+

Parâmetros

Nome

Parâmetro

Tipo Dado

V. Ini.

Descrição

EN

Entrada

BOOL

TRUE

Habilita operação do bloco

RUN

Entrada

BOOL

FALSE

Desativa (0) /Ativa (1) controle

SWITCH

Entrada

BOOL

FALSE

Força um troca de saída

ACK_CYC_SW

Entrada

BOOL

TRUE

Autoriza a comutação do motor por tempo

MAX_CH

Entrada

USINT

2

Nro de canais a serem utilizados

CYC_TIME

Entrada

TIME

T#2h

Tempo de ciclo das saídas de controle

HOLD

Entrada/Saída

BOOL

FALSE

Congela o tempo de ciclo do canal associado, quando selecionado

DIS

Entrada/Saída

BOOL

FALSE

Desabilita operação das saídas

OUT

Entrada/Saída

BOOL

FALSE

Saídas de controle dos equipamentos

SEL_OUT

Entrada/Saída

INT

0

Nro do canal de saída ativo. -1 se nenhuma saída ativa

ENO

Saída

BOOL

FALSE

Saída de habilitação

EVT

Saída

BOOL

FALSE

Pulso de evento de alteração das saídas

ON_CYC_SW

Saída

BOOL

FALSE

Ativa para indicar que sera comutado o motor por tempo

FAIL

Saída

BOOL

FALSE

Falha no processamento do bloco

END_CYC

Saída

TIME

T#0ms

Tempo restante para o fim do ciclo corrente

[RUN] Ativação do bloco

A entrada RUN quando inativa mantém todos os canais (OUT) desligados e a contagem de tempo de ciclo congelada. Quando ativada esta entrada, o canal corrente será ativado (se exisitir um) caso o tempo de ciclo não tenha sido completado. Caso o tempo de ciclo tiver sido completado, o proximo canal disponível será ativado e o tempo de ciclo reinicializaddo com o valor definido definido pelo parâmetros CYC_TIME.

Nota

O critério para ativação dos canais é baseado na procura do primeiro canal disponivel em ordem crescente do nro do canal a partir do canal corrente.

Exemplo: Considere que o bloco esta controlando 4 canais (equipamentos) e o canal corrente é o canal 2. O próximo canal a ser selecionado será o canal 3 (se a entrada DIS[3] não estiver ativa), o seguinte seria o canal 0, depois o 1 e assim sucessivamente.

Importante

Se todos os canais estiverem desabilitados pela entrada DIS, os canais estarão todos inativos e a saída FAIL será ativada para indicar esta condição.

[MAX_CH] Número de canais a serem utilizados

Este parâmetro de entrada indica quantos canais devem ser tratados pelo bloco nos vetores OUT, HOLD e DIS. Em outras palavras, define o nro de equipamentos que o bloco irá controlar. São aceitos os valores entre 1 a 4.

Importante

Os vetores fornecidos nos parâmetros OUT, HOLD e DIS devem possuir um tamanho igual ou maior que o valor especificado neste parâmetro. Caso contrário o bloco irá manter todas os canais (OUT) inativos e irá ativar a saída FAIL indicando uma condição inválida de operação.

[CYC_TIME] Tempo de ciclo

Este parâmetro define o tempo que um dado canal permanecerá ativo. Em uma condição normal de operação cada canal será mantido ativo pelo tempo definido neste parâmetro, conforme indicado neste gráfico. Note que, o tempo será contabilizado apenas quando a entrada HOLD associada ao canal estiver inativa.

Nota

O tempo mínimo aceito para este parâmetro é de 10 segundos. Se especificado um tempo menor que 10 segundos, os canais de saida (OUT) permanecerão inativos e a saida FAIL será ativada indicando uma condição inválida de operação.

Quando não definida esta entrada pela aplicação, o tempo de ciclo default é de 2 horas.

[SWITCH] Evento de alteração do canal ativo

Esta entrada opera por transição de subida (Inativo->Ativo). Quando detectada uma transição, o bloco executa o procedimento de troca da saída ativa, desligando o canal corrente e ativando o próximo canal disponível, conforme exemplificado neste gráfico.

[HOLD] Pausa temporização do ciclo

Esta entrada permite que cada canal defina quando o tempo de ciclo deve ser contabilizado ou não. Se a entrada associada ao canal corrente estiver ativa, o tempo de ciclo se mantem pausado até que a mesma se torne inativa.

Importante

Note que, se esta entrada estiver indefinidamente ativa o bloco desabilita a comutação dos canais por tempo de ciclo, passando a alterar os canais apenas pela entradas SWITCH ou DIS.

[DIS] Remove canal para operação

Este parâmetro é utilizado para remover o equipamento do processo de seleção de um novo canal ativo gerado por [CYC_TIME] Tempo de ciclo ou [SWITCH] Evento de alteração do canal ativo. Quando o canal associado estiver ativo neste parâmetro, a saída OUT associada se mantem inativa em qualquer condição de operação.

Esta entrada permite então, que um equipamento que esta inoperante por algum motivo (ex: falha, manutençâo etc.) possa ser removido temporariamente do ciclo de controle e inserido posteriormente, conforme exemplificado neste gráfico.

[OUT] Canal de operação

Este parâmetro é controlado pelo bloco para indicar qual o equipamento ou processo que esta ativo em um dado momento. Apenas um equipamento estará ativo por vez. Se o bloco identificar alguma condição de falha todas as saídas permanecerão inativas e a saída FAIL indicará esta condição.

[SEL_OUT] Número do canal de saída ativo

Este parâmetro apresenta ao usuário o número do canal que esta ativo no momento. Este valor deverá estar entre -1 a (MAX_CH - 1). O valor -1 indica que não existe nenhum canal de saida ativo.

Adicionalmente o usuário pode redefinir um novo canal de saída para o bloco, atribuindo um valor a este parâmetro. Quando for atribuido no novo valor a este perâmetro pelo usuário o mesmo será inicialmente consistido com os limites validos e será verificado se o canal especificado esta habilitado (entrada DIS inativa). No caso de alguma falha, o valor especificado é ignorado sendo mantido o valor corrente. Uma vez validado o valor especificado, a saída associada será ativada e o tempo de ciclo será reinicializado.

[FAIL] Falha no processamento do bloco

Este parâmetro, quando ativado pelo bloco indica uma condição não operacional. Nesta condição todas as saídas (OUT) associadas ao bloco estão inativas. As condições de FAIL avaliadas pelo bloco são:

  • Parâmetro MAX_CH inválido (menor que 2 ou maior que 4);

  • Tamanho do vetor associado ao parâmetro OUT menor que o parâmetro MAX_CH;

  • Tamanho do vetor associado ao parâmetro DIS menor que o parâmetro MAX_CH;

  • Tamanho do vetor associado ao parâmetro HOLD menor que o parâmetro MAX_CH;

  • Tempo de ciclo menor que 10 segundos.

[EVT] Pulso de notificação de alteração da saída ativa

Esta saída gera um pulso sempre que houver alteração no valor da saída ativa.

[END_CYC] Tempo restante para o término do ciclo corrente

Esta saída disponibiliza o tempo para término do ciclo corrente.

[ON_CYC_SW] Notifica que a saida corrente será trocadaa por tempo

Esta saída quando ativada indica que o tempo de troca programada da saida corrente foi atingido. Nesta condição, no próximo ciclo, o bloco irá verificar o estado da entrada ACK_CYC_SW. Se ela estiver ativa a saída será comutada. Esta entrada portando permite sincronizar a mudança da saída.

Exemplo

Declaração de Variáveis

Nome

Tipo

Valor Inicial

Descrição

CYC

CYCLE_CTRL

Bloco de controle

DIS

BOOL

FALSE

Vetor de condição de falha dos canais

RUN

BOOL

FALSE

Habilitação do bloco

HOLD

BOOL

FALSE

Vetor de pausa de temporização dos canais

SWITCH

BOOL

FALSE

Entrada de chaveamento da saida

MAX_CH

UINT

4

Nro maximo de canais

OUT

BOOL

FALSE

Vetor de saidas de controle do bloco

CUR_CHN

SINT

Nro do canal ativo corrente

TC

TIME

T#1m

Tempo de ciclo do bloco

Clique aqui para baixar a tabela de variáveis

Código ST

// ...
// Ativa o bloco de controle de ciclo com os parâmetros definidos
CYC(
  EN       := TRUE,
  RUN      := RUN,
  CYC_TIME := TC,
  SWITCH   := SWITCH,
  MAX_CH   := MAX_CH,
  HOLD     := HOLD,
  DIS      := DIS,
  OUT      := OUT,
  SEL_OUT  := CUR_CHN
  );

// ...