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 |
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
);
// ...