O documento descreve um treinamento sobre operações binárias e digitais, incluindo objetivos de aprendizagem como programar lógicas binárias, usar temporizadores, contadores e comparadores. Ele fornece instruções sobre esses tópicos e exercícios para praticar programação de esteiras, sinaleiros, contagem de peças e temporização de transporte.
ConteúdoPágina
Objetivos da aprendizagem...................................................................................................................2
Instruções.……......................................................................................................................................3
Mover: MOVE….....................................................................................................................................4
Mover: MOVE_BLK..…………...............................................................................................................5
Mover: UMOVE_BLK.………….............................................................................................................6
Lógica binária: Set, reset…………….....................................................................................................7
Lógica binária: SET_BF, RESET_BF….................................................................................................8
Lógica binária: avaliação de borda de sinal / RLO….............................................................................9
Controle de programa: JMP, LABEL......................................................................................................10
Controle do programa: JMPN, RET.………...........................................................................................11
Funções matemáticas: LIMIT, MOD…...................................................................................................12
Funções matemáticas: MIN, MAX………...............................................................................................13
Operações lógicas: DECO, ENCO.........................................................................................................14
Operações lógicas: SEL, MUX...…….....................................................................................................15
Instruções de conversão: NORM_X, SCALE_X.....................................................................................16
Comparadores: IN_RANGE, OUT_RANGE...........................................................................................17
Relógio + calendário: RD_SYS_T...……................................................................................................18
String + Char: VAL_STRG..…................................................................................................................19
Exercício 7-1: Esteira em automático (extensão do FC 16)...................................................................20
Exercício 7-2: Ative os sinaleiros do modelo da esteira "FC_Signal" (FC14)........................................21
Contadores: CTU....................................................................................................................................22
Temporizadores: TON........................................................................................…................................23
Exercício 7-3a: Contagem de peças a serem transportadas "FB_Statistic" (FB18)..............................24
Exercício 7-3b: Contagem de peças a serem transportadas "FB_Statistic" (FB18)..............................25
Exercício 7-4: Tempo de supervisão de transporte, expansão do "FC_ConvMotor" (FC 16)……........26
MOVE(mover) Você pode utilizar a operação "Move value" para transferir o conteúdo de um operando da entrada IN para o operando na saída OUT1. A transferência é sempre feita na direção do endereço crescente.
A operação somente será executada se o estado lógico na entrada EN for "1" habilitando o bloco. Neste caso a saída ENO também estará no estado lógico "1".
MOVE_BLK(mover bloco) Você pode utilizar a operação "Move block" para copiar o conteúdo de uma área de memória (área fonte) para outra área de memória (área destino). A quantidade de elementos a ser copiada para área destino é especificada no parâmetro COUNT. A largura dos elementos a serem copiados é definida pela largura do elemento na entrada IN. A operação de cópia é executada na direção dos endereços ascendentes.
A operação somente será executada se o estado lógico na entrada EN for "1". Se nenhum erro ocorrer durante a execução da operação, a saída ENO também apresentará estado lógico "1".
A habilitação de saída ENO apresentará o estado lógico "0" se uma das seguintes se uma das seguintes condições for atendida:
A entrada EN está em estado lógico "0".
A quantidade de dados da área destino for menor do que a quantidade especificada na operação.
UMOVE_BLK(mover bloco ininterruptamente) Você pode utilizar a operação "Move block uninterruptible" para copiar o conteúdo de uma área de memória (área fonte) para outra área de memória (área destino) sem interrupções. A quantidade de elementos a serem copiados para a área destino é especificada com o parâmetro COUNT. A largura dos elementos a serem copiados é definida pela largura do elemento na entrada IN. O conteúdo da área fonte será copiada para área destino na direção dos endereços ascendentes. A operação de cópia não pode ser interrompida por outra atividade do sistema operacional. É por isto que o tempo de reação de alarme da CPU aumenta durante a execução da operação "Move block uninterruptible".A operação somente será executada se o estado lógico na entrada de habilitação EN for "1“. Se nenhum erro ocorrer durante a execução da operação, a saída ENO também apresentará estado lógico "1". A habilitação de saída ENO apresentará o estado lógico "0" se uma das seguintes se uma das seguintes condições for atendida:
A entrada EN está em estado lógico "0".
A quantidade de dados da área destino for menor do que a quantidade especificada na operação.
Output coil (saída bobina) Você pode utilizar a operação "Output coil" para definir o estado lógico de um operando. Quando o resultado lógico da operação (RLO – result of logic operation) na entrada da bobina for "1“, o operando especificado ficará no estado lógico "1". Quando o resultado lógico da operação (RLO) na entrada da bobina for “0“, o operando especificado ficará no estado lógico “0".A operação não influenciará o RLO. O RLO na entrada da bobina é imediatamente enviado para a saída.
Set output(saída set) Você pode utilizar a operação "Set output" para definir o estado lógico de um operando em "1". A operação somente será executada se o resultado lógico da operação (RLO) na entrada da bobina “set” for "1". Se houver passagem de sinal para a bobina (RLO for "1"), o operando especificado é levado para "1". Se o resultado lógico da operação na entrada da bobina “set” for "0" (sem passagem de sinal para a bobina), o estado lógico do operando especificado permanecerá inalterado.A operação não influencia o RLO. O RLO na entrada da bobina é imediatamente enviado para a saída.
Reset output (saída reset) Você pode utilizar a operação “Reset output" para definir o estado lógico de um operando em “0". A operação somente será executada se o resultado lógico da operação (RLO) na entrada da bobina “reset” for "1". Se houver passagem de sinal para a bobina (RLO for "1"), o operando especificado é levado para "0". Se o resultado lógico da operação na entrada da bobina “reset” for "0" (sem passagem de sinal para a bobina), o estado lógico do operando especificado permanecerá inalterado.A operação não influencia o RLO. O RLO na entrada da bobina é imediatamente enviado para a saída.
Flip-flopUm flip-flop possui uma entrada “set” e uma “reset”. A memória será levada para “1” ou “0” dependendo do sinal aplicado nas entradas com RLO = "1“.
Se RLO = "1" for aplicado a ambas entradas simultaneamente, entretanto, isto será uma questão de prioridade.
PrioridadeEm LAD e FBD, diferentes símbolos são usados para funções de memória com prioridade "Set" e aqueles com prioridade "Reset". Em STL, a instrução executada por último será prioritária.
RESET_BFVocê pode utilizar a operação "Reset bit field" para levar para zero (reset) diversos bits começando de um endereço específico. Você especifica a quantidade de bits a zerar no parâmetro N. O endereço do primeiro bit a ser zerado é determinado pelo operando especificado (<Operand>). Se o valor do parâmetro N for maior do que a quantidade de bits em um byte selecionado, os bits do byte seguinte serão zerados. Os bits permanecem zerados até que eles sejam levados para “1”, por exemplo, por outra operação.
A operação somente será executada com sinal "1" na entrada EN. Com sinal “0” na entrada EN, a operação não será executada.
PVocê pode utilizar a operação "Scan positive signal edge at operand" (deteção de borda positiva no operando) para determinar se existe uma mudança de "0" para "1" no estado de um operando específico (<operand1>). A operação compara o estado atual do sinal do operando <operand1> para o estado do sinal previamente salvo no operando <operand2>. Se a operação detectar uma mudança no resultado lógico da operação de "0" para "1", existe uma borda de subida.
Se uma borda de subida for detectada, a saída da operação apresentará estado lógico "1". Em todos os outros casos, o estado do sinal na saída da operação será "0".
P=Você pode utilizar a operação "Set operand on positive signal edge" (tornar “1” o operando na borda positiva do sinal) para tornar “1” um operando específico quando existir uma mudança de "0" para "1" no fluxo de sinal. A operação compara o resultado atual da operação lógica (RLO) com o resultado da operação da varredura anterior, o qual está salvo no bit de memória de borda. Quando a operação detectar uma mudança no fluxo de sinal de "0" para "1", existe uma borda de subida, uma transição positiva.
Quando existir uma transição positiva, o <operand1> será levado para "1" por um ciclo de programa. Em todos os outros casos, o operando terá estado lógico "0".
P_TRIGVocê pode utilizar a operação "Set output on positive signal edge" (tornar “1” a saída na borda positiva do sinal) para detectar uma mudança de estado lógico do resultado lógico da operação de "0" para "1". A operação compara o estado lógico atual do resultado lógico operacional (RLO) ao estado do sinal da varredura anterior, o qual está salvo no bit de memória de borda. Se a operação detectar uma mudança do RLO de "0" para "1", existe uma borda de subida, uma transição positiva.
Se uma borda de subida for detectada, a saída da operação terá o estado de sinal "1". Em todos os outros casos, o estado do sinal na saída da operação será "0".
JMP(jump = salto ou desvio) Você pode utilizar a operação "Jump in block if 1 (conditionally)" para interromper a execução linear do programa e continuar em um outro network. O network alvo deve ser identificado por um rótulo de salto. O nome deste rótulo de salto é especificado para execução da operação. O rótulo de salto especificado fica localizado acima da operação.
O rótulo do salto especificado deve estar no mesmo bloco no qual a operação é executada. O nome que você especificar deve ser único dentro daquele bloco.
Se o resultado da operação lógica (RLO) na entrada da operação for "1", o salto para o network identificado pelo rótulo do salto será executado. O salto pode ser para um network anterior ou posterior ao network atual.
Se a condição na entrada da operação não for atendida (RLO = 0), o salto não ocorre e o bloco continua normalmente sem saltar.
LABEL(rótulo) Você pode utilizar "Jump label" para especificar o network destino, no qual a execução do programa deverá continuar após o salto. O nome do rótulo de salto pode conter letras, números ou traço em baixo da linha (underscores).
O rótulo do salto e a operação na qual o rótulo de salto for especificado devem ser localizados dentro do mesmo bloco. Um nome de um rótulo de salto somente pode ser atribuído uma única vez por bloco.
Um único rótulo de salto pode receber saltos de diversos pontos do programa.
JMPNVocê pode utilizar a operação "Jump in block if 0 (conditionally)" para interromper a execução linear do programa e continuar em um outro network, quando o resultado lógico da operação na entrada da operação for "0". O network alvo deve ser identificado por um rótulo de salto. O nome deste rótulo de salto é especificado para execução da operação. O rótulo de salto especificado fica localizado acima da operação.
O rótulo do salto especificado deve estar no mesmo bloco no qual a operação é executada. O nome que você especificar deve ser único dentro daquele bloco.
Se o resultado da operação lógica (RLO) na entrada da operação for “0", o salto para o network identificado pelo rótulo do salto será executado. O salto pode ser para um network anterior ou posterior ao network atual.
Se a condição na entrada da operação for atendida (RLO = 1), o salto não ocorre e o bloco continua normalmente sem saltar.
LIMITVocê pode utilizar a operação "Set limit value" para limitar o valor na entrada IN aos valores das entradas MIN e MAX. Se o valor na entrada IN satisfizer a condição MIN < IN < MAX, ele será copiado para a saída OUT. Se a condição não for satisfeita e o valor de entrada estiver abaixo do limite inferior, a saída apresentará o valor que se encontra na entrada MIN. Se o limite superior for excedido, a saída OUT recebe o valor escrito na entrada MAX.
A operação somente será executada se o estado lógico na entrada EN for “1”. Se nenhum erro ocorrer durante a execução da operação, a saída de habilitação também será apresentará o estado lógico “1”.
A saída de habilitação ENO retorna o estado lógico "0" se uma das seguintes condições estiverem presentes:
A entrada EN está em nível lógico "0".
Os tags especificados não são do mesmo tipo de dado.
Um tag de entrada possui um valor não válido.
O valor na entrada MIN for maior que o valor na entrada MAX.
MODVocê pode utilizar a operação "Return remainder of division" (devolve o resto da divisão) para dividir o valor na entrada IN1 pelo valor na entrada IN2 e colocar o valor do resto na saída OUT.
A operação somente será executada se o estado do sinal na entrada EN for "1". Se nenhum erro ocorrer durante a execução da operação, a saída ENO também terá estado lógico "1".
A operação não será executada se o estado do sinal na entrada EN for “0”. Neste caso, a saída ENO será zerada.
MINA operação "Get minimum" compara o valor na entrada IN1 com o valor na entrada IN2 e escreve o menor valor na saída OUT. A operação somente será executada se os tags de todos os parâmetros forem do mesmo tipo de dado.A operação somente será executada se o estado lógico na entrada EN for “1”. Se nenhum erro ocorrer durante a execução da operação, a saída de habilitação também apresentará o estado lógico “1”.A saída de habilitação ENO retorna o estado lógico "0" se uma das seguintes condições estiverem presentes:
A entrada EN está em nível lógico "0".
Os tags especificados não são do mesmo tipo de dado.
Um tag com tipo de dado REAL na entrada tiver um valor não válido.
MAXA operação "Get maximum" compara o valor na entrada IN1 com o valor na entrada IN2 e escreve o maior valor na saída OUT. A operação somente será executada se os tags de todos os parâmetros forem do mesmo tipo de dado.A operação somente será executada se o estado lógico na entrada EN for “1”. Se nenhum erro ocorrer durante a execução da operação, a saída de habilitação também apresentará o estado lógico “1”.A saída de habilitação ENO retorna o estado lógico "0" se uma das seguintes condições estiverem presentes:
A entrada EN está em nível lógico "0".
Os tags especificados não são do mesmo tipo de dado.
Um tag com tipo de dado REAL na entrada tiver um valor não válido.
DECOVocê pode utilizar a operação "Decode" (decodificar) para levar um bit para “1” no valor de saída conforme especificado no valor de entrada.
A operação "Decode" lê o valor da entrada IN e leva para “1” o bit no valor da saída, cuja posição do bit corresponde ao do valor lido. Os outros bits no valor de saída são preenchidos com zeros. Quando o valor na entrada IN for maior que 31, uma operação módulo 32 será executada.
A operação "Decode" somente será iniciada quando o estado do sinal na entrada EN for "1". Se nenhum erro ocorrer durante a execução da operação, a saída ENO também apresentará o estado lógico "1".
Se o estado do sinal na entrada de habilitação EN for "0", a saída de habilitação ENO apresentará o nível lógico "0".
ENCOVocê pode utilizar a operação "Encode" para ler a posição do bit em “1” a partir do bit menos significativo no valor de entrada e informá-la na saída OUT.
A operação "Encode" seleciona o bit menos significativo do valor da entrada IN e escreve a posição deste bit no tag da saída OUT.
A operação "Encode" somente será iniciada quando o estado do sinal na entrada EN for "1". Se nenhum erro ocorrer durante a execução da operação, a saída ENO também apresentará o estado lógico "1".
Se o estado do sinal na entrada de habilitação EN for "0", a saída de habilitação ENO apresentará o nível lógico "0".
SELA operação "Select" seleciona uma das entradas IN0 ou IN1 dependendo de uma chave (parâmetro G) e copia seu conteúdo para a saída OUT. Se o parâmetro G tiver nível lógico "0", o valor da entrada IN0 será copiado. Quando o parâmetro G tiver nível lógico “1", o valor da entrada IN1 será copiado para a saída OUT.
A operação somente será executada se o estado lógico na entrada EN for “1”. Se nenhum erro ocorrer durante a execução da operação, a saída de habilitação também apresentará o estado lógico "1".
A saída de habilitação ENO é levada para “0” quando a entrada de habilitação EN estiver em nível lógico "0" ou ocorrência de erros durante a execução da operação.
MUXVocê pode utilizar a operação "Multiplex" para copiar o conteúdo de uma entrada selecionada para a saída OUT. O número de entradas selecionáveis na caixa MUX podem ser expandidas. As entradas são automaticamente numeradas na caixa. A numeração começa por IN0 e será incrementada continuamente para cada nova entrada. Você pode utilizar o parâmetro K para determinar a entrada cujo conteúdo deve ser copiado para a saída OUT. Se o valor do parâmetro K for maior do que o número de entradas disponíveis, o conteúdo do parâmetro ELSE será copiado para a saída OUT e a saída de habilitação ENO terá nível lógico "0".
A operação "Multiplex" somente pode ser executada quando os tags de todas as entradas e da saída OUT forem de mesmo tipo de dado. O parâmetro K é uma excessão, uma vez que somente permite formato inteiro em sua especificação.
A operação somente será executada se o estado do sinal na entrada EN for "1“. Se nenhum erro ocorrer durante a execução, a saída ENO terá nível lógico "1".
A saída de habilitação ENO retorna o estado lógico "0" se uma das seguintes condições estiverem presentes:
A entrada EN está em nível lógico "0".
O valor do parâmetro K será maior do que a quantidade de entradas disponíveis.
Ocorrência de erros durante o processamento da operação.
NORM_XVocê pode utilizar a operação "Normalize" para normalizar o valor do tag da entrada VALUE pelo mapeamento em uma escala linear. Você pode utilizar os parâmetros MIN e MAX para definir os limites de uma faixa de valores que será aplicada à escala. O resultado na saída OUT será calculada e armazenada como um número ponto flutuante dependendo do local do valor normalizado nesta faixa de valores. Se o valor a ser normalizado for igual ao valor da entrada MIN, a saída OUT retorna o valor "0.0". Se o valor a ser normalizado for igual ao valor da entrada MAX, a saída OUT terá nível lógico "1.0".
SCALE_XVocê pode utilizar a operação "Scale" para por em escala o valor da entrada VALUE pelo mapeamento dele em uma faixa de valores específicos. Quando a operação "Scale" for executada, o valor ponto flutuante da entrada VALUE for escalonada para a faixa de valores, os quais são definidos nos parâmetros MIN e MAX. O resultado do escalonamento é um inteiro, o qual será armazenado na saída OUT.
A operação "Scale" somente será executada se o estado do sinal for "1" na entrada de habilitação EN. Neste caso, a saída de habilitação ENO também terá nível lógico "1".
A saída de habilitação ENO retorna o estado lógico "0" se uma das seguintes condições estiverem presentes :
A entrada EN está em nível lógico "0".
O valor na entrada MIN for maior do que ou igual ao valor da entrada MAX.
O valor de um tag REAL especificado estiver fora da faixa dos números normalizados de acordo com IEEE-754.
Ocorrer um estouro de escala.
O valor da entrada VALUE for NaN (resultado de uma operação aritmétrica inválida).
IN_RANGEVocê pode utilizar a operação "Value within range" para determinar se o valor na entrada VAL está dentro da faixa de valores especificados. Você especifica os limites da faixa de valores entre os parâmetros MIN e MAX. Quando a consulta for processada, a operação "Value within range" compara o valor da entrada VAL com os valores dos parâmetros MIN e MAX e envia o resultado para a saída da caixa. Se o valor na entrada VAL atender à comparação MIN <= VALUE <= MAX, a saída da caixa terá nível lógico "1". Se a comparação não for atendida, o estado do sinal será "0" na saída da caixa.Se o estado do sinal na entrada da caixa for "0", a operação "Value within range" não será executada.A função comparação somente será executada se os valores a serem comparados forem do mesmo tipo de dados e a saída da caixa estiver interconectada.
OUT_RANGEVocê pode utilizar a operação "Value outside range" para consultar se o valor da entrada VAL está ou não fora da faixa especificada. Você especifica os limites da faixa de valores entre os parâmetros MIN e MAX. Quando a consulta for processada, a operação "Value outside range" compara o valor da entrada VAL com os valores dos parâmetros MIN e MAX e envia o resultado para a saída da caixa. Se o valor na entrada VAL atender à comparação MIN > VAL ou VAL > MAX, a saída da caixa terá nível lógico "1". Se a comparação não for atendida, o estado do sinal será "0" na saída da caixa.Se o estado do sinal na entrada da caixa for "0", a operação "Value outside range" não será executada.A função comparação somente será executada se os valores a serem comparados forem do mesmo tipo de dados e a saída da caixa estiver interconectada.
RD_SYS_TVocê pode utilizar RD_SYS_T para ler a data e horário atuais do relógio da CPU. A data será fornecida em formato DTL na saída OUT da instrução. Os valores fornecidos não incluem informações sobre o fuso horário e horário de verão. Na saída RET_VAL, você pode consultar se erros ocorreram durante a execução da instrução.
VAL_STRGUtilizando VAL_STRG, você converte um valor numérico em um conjunto de caracteres (string). Você especifica o valor a ser convertido na entrada IN. Você decide o formato do valor numérico pela seleção do tipo de dado. Você consulta o resultado da conversão na saída OUT.
IN Valor a ser convertido.
SIZECom o parâmetro SIZE você especifica quantos caracteres da string serão escritos. Estes serão contados pelos caracteres especificados no parâmetro P. Se o comprimento definido pelos parâmetros P e SIZE não forem adequados, a saída de habilitação ENO será "0". Se o valor de saída for menor que o comprimento especificado, o resultado será escrito no conjunto de caracteres alinhados pela direita. As posições vazias serão preenchidas com espaços em branco.
Os caracteres permitidos para a conversão são os números de 0 a 9, o ponto decimal, a vírgula, notações "E" e "e" e os caracteres mais e menos. A conversão pode ser interrompida por caracteres não válidos. Neste caso, a saída de habilitação ENO será "0".
PRECNúmero de casas decimais.
FORMATCom o parâmetro FORMAT, você especifica como o valor numérico será interpretado durante a conversão e escrita para o conjunto de caracteres (string). Somente tags do tipo de dado USINT pode ser especificado pelo parâmetro FORMAT.
P Com o parâmetro P, você especifica o caractere no string começando ao qual o resultado é escrito. Se, por exemplo, o valor "2" for especificado no parâmetro P, o valor convertido será salvo começando pelo segundo caractere da string.
OUTResultado da conversão.
Função préviaCom o modo de operação desligado (Q4.1 – "L_Operation"), a esteira pode ser movimentada para a direita e para a esquerda em jog usando os dois botões do simulador "T_Right" (I0.2) e "T_Left" (I0.3).
TarefaComplemente o bloco "FC_ConvMotor" (FC16) como descrito:
Através do modo de operação ligado, sinaleiro "L_Operation" (Q4.1), peças devem ser transportadas da estação (bay) 1 ou 2 através da barreira de luz (ver o diagrama).
A ação da esteira começa quando uma peça é colocada na esteira em frente do sensor de presença e o correspondente botão da estação for pressionado. Somente uma estação pode estar ocupada; se ambas as estações forem ocupadas, a esteira não pode ser ligada (ver diagrama). A esteira para tão logo tenha passado pela barreira de luz ou "L_Operation" (Q4.1) tenha sido desligada.
Procedimento1.Abra o bloco "FC_ConvMotor" (FC16).
2.Programe a expansão de funções solicitada.
3.Carregue o bloco na CPU e teste todas as funções.
4.Salve seu projeto.
Descrição da tarefaCom "L_Operation" (Q4.1) ligada, os sinaleiros das estações 1 e 2 e o sinaleiro da barreira de luz devem ser ativados conforme segue:
Os sinaleiros nas estações 1 e 2 indicam …
•Aceso constante quando uma nova peça for colocada na esteira(motor da esteira desligado e os sensores das estações e barreira de luz indicando esteira vazia).
•Pisca em 1 Hz na estação cujo sensor detectou presença de peça com a esteira parada.
•Todos os sinaleiros piscam em 2 Hz enquanto o motor da esteira estiver ligado.
Procedimento1.Insira um novo bloco "FC_Signal" (FC14) e programe as funções solicitadas.
2.Programe a chamada para o FC 14 no OB1.
3.Transfira todos os blocos para a CPU e teste seu programa.
4.Salve seu projeto.
CTUVocê pode utilizar a operação "Count up" (contagem crescente) para contar em ordem crescente o valor na saída CV. Quando o estado do sinal na entrada CU mudar de "0" para "1" (transição positiva), a operação será realizada e o valor atual de contagem na saída CV será incrementado de um. Quando a operação for realizada pela primeira vez, o valor atual de contagem na saída CV será zero. O valor do contador será incrementado cada vez que uma transição positiva for detectada até o limite superior para aquele tipo de dado especificado para a saída CV. Quando o limite superior for alcançado, o estado do sinal na entrada CU não afetará mais a operação ou deixará de ser contado.
O estado do contador pode ser avaliado na saída Q. O estado do sinal na saída Q é determinado pelo parâmetro PV. Quando o valor atual do contador for maior ou igual ao valor do parâmetro PV, a saída Q será levada para nível lógico "1". Em todos os outros casos o nível lógico da saída Q será "0".
O valor na saída CV será levado para zero quando o estado do sinal na entrada R mudar para "1". Assim que o sinal da entrada R for para "1", o estado do sinal na entrada CU deixa de ter efeito na operação.
Quando a operação "Count up" for inserida, um DB instance será criado no qual os dados da operação serão salvos.
TONVocê pode utilizar a operação "On delay" (atraso na ligação) para atrasar uma borda de subida com o valor do tempo PT. A operação será executada quando o resultado da operação lógica (RLO) na entrada IN mudar de "0" para "1" (borda de subida). O tempo PT começa a correr quando a operação inicia. Quando a temporização PT tiver decorrido, a saída Q passa para nível lógico "1". A saída Q permanecerá em “1” enquanto o sinal da entrada permanecer em "1". Quando o estado do sinal na entrada de partida mudar de "1" para "0", a saída Q será resetada. A função temporização será novamente iniciada quando uma nova borda de subida for detectada pela entrada de partida.
A saída ET fornece o tempo decorrido desde a última borda de subida na entrada IN. Este tempo inicia em T # 0 s e termina quando o tempo PT for alcançado. O tempo decorrido pode ser avaliado na saída ET desde que a entrada IN esteja em “1”. Quando a entrada IN mudar para "0", a saída ET muda para o valor T # 0.
Quando a operação "ON delay" for inserida, um DB instance será criado no qual os dados da operação serão salvos.
TarefaCom "L_Operation" (Q4.1) ligada:
•As peças transportadas da estação 1 ou 2 devem ser contadas assim que elas tenham passado através da barreira de luz "LB“ (I 8.0).
•Deve ser possível inserir um valor desejado (setpoint) da quantidade de peças a produzir que quando alcançada levam o bit de memória "M_Act=Setp" (M18.4) para "1".
Assim que o bit de memória "M_Act=Setp" (M18.4) for para '1' ...
... o sinaleiro "L_Bay-LB" piscará com 1 Hz(esta lógica deve ser programada no "FC_Signal" (FC14)).
... a esteira ficará bloqueada, não poderá ser religada das estações 1 ou 2
(o intertravamento deve ser programado no "FC_ConvMotor" (FC16)).
•A quantidade atual deve ser salva na variável "MW_ACT" (MW20).
O contador deve ser zerado quando um reconhecimento for recebido através do botão "T_Ack" (I8.4) na entrada Reset do FB ou através do acionamento de "L_Operation" (Q 4.1) para "0".
ProgramaçãoAs funções descritas acima devem ser programadas em um novo bloco chamado
Padrão IEC"FB_Statistic" (FB18). Este deve ser criado de acordo com o padrão IEC, isto é, nenhum operando global (entradas, saídas, bits de memória e blocos de dados globais) terão seu uso permitido dentro do bloco, somente operandos locais (parâmetros locais e variáveis locais). Por esta razão, a função contador necessária internamente deve ser criada como um multi instance.
ProcedimentoInsira o novo "FB_Statistic" (FB18) e declare a interface necessária conforme mostrado.
Procedimento 1.Programe as funções necessárias. Declare o contador como um multi instance (ver slide).
2.Programe a chamada do FB18 no OB1.
3.Carregue todos os blocos na CPU e teste a função.
4.Salve seu projeto.
Função préviaPeças são transportadas a partir das estações 1 ou 2 através da barreira de luz. Uma ação de transporte será iniciada assim que uma peça for colocada na esteira em frente a estação 1 ou 2 e o correspondente botão da estação for pressionado. A ação de transporte termina assim que a peça passar pela barreira de luz.
TarefaA ação de transporte automático deve ter seu tempo supervisionado. A monitoração deve ser como descrito abaixo:
•Se uma ação de transporte exceder 6 segundos, uma falha ocorrerá e o motor da esteira será automaticamente desligado.
•A falha será indicada pelo LED do simulador "L_Conv_Fault" (Q 5.0) piscando em 2 Hz.
•A falha pode ser reconhecida utilizando o botão do simulador "T_Ackn_Fault“
(I 1.0).
•Uma nova ação de transporte não pode ser iniciada enquanto uma falha não reconhecida estiver ativa.
Procedimento:1.Complemente o bloco "FC_ConvMotor" (FC16) com a função de supervisão descrita. Utilize o bloco temporizador "TON" como uma chamada simples de instância através do bloco de dados instance “DB_TON" (DB16).
2.Carregue todos os na CPU e teste a função.
3.Salve seu projeto.