Caminho:  Equipamentos (Dispositivos) > RUW100 > Ladder > Math > Math Util >

MAX

Valor Máximo

Previous pageReturn to chapter overviewNext page

Bloco que compara os valores de Value1 e Value2 e armazena o maior deles em Result.

 

Representação Ladder

 

MAX_block

 

Estrutura do Bloco

 

Tipo de Variável

Nome

Tipo de Dado

Descrição

VAR_INPUT

EN

BOOL

Habilitação do bloco

Value1

BYTE USINT SINT WORD UINT INT DWORD UDINT DINT REAL

Primeiro valor da comparação

Value2

BYTE USINT SINT WORD UINT INT DWORD UDINT DINT REAL

Segundo valor da comparação

VAR_OUTPUT

Done

BOOL

Fim de operação

Result

BYTE USINT SINT WORD UINT INT DWORD UDINT DINT REAL

Maior dos valores comparados

 

Funcionamento

 

Este bloco, quando tem um valor TRUE em EN, envia para a saída Result o maior valor na comparação entre Value1 e Value2. Não havendo erros, a variável Done é setada. Caso haja algum erro na operação, Done não é setado, permanecendo em estado FALSE, enquanto Result permanece com seu valor inalterado.

 

Quando EN possui valor FALSE, Result permanece inalterado e Done permanece em FALSE.

 

Fluxograma do Bloco

 

MAX_flowchart

 

Exemplo em Ladder

 

MAX_example01

 

O exemplo acima calcula o valor máximo entre as variáveis VALUE1 e VALUE2, armazenando o resultado final em RESULT. O bloco finaliza com sucesso e a saída Done é ativada.

 

MAX_example02

 

O exemplo acima calcula o valor máximo entre as variáveis VALUE1 e VALUE2, armazenando o resultado final em RESULT. O bloco finaliza com sucesso e a saída Done é ativada. Observe que os tipos das variáveis de entrada podem ser diferentes, sem causar problemas de execução.

 

MAX_example03

 

O exemplo acima calcula o valor máximo entre as variáveis VALUE1 e VALUE2, armazenando o resultado final em RESULT. Como o resultado é superior ao valor máximo suportado pelo tipo SINT, o bloco gera um erro e a saída Done é desativada.

 

Exemplo em ST

 

 O exemplo abaixo, exibe as instruções para aplicação do exemplo acima na linguagem ST.

 

 

VAR

   VALUE1 : REAL := 89.8;

   VALUE2 : SINT := 50;

   RESULT : SINT;

END_VAR

 

RESULT := FB_MAX(

   EN:=DI1,

   Value1:=VALUE1,

   Value2:=VALUE2,

  Done=>DO1);