Este tutorial tem o objetivo de apresentar as funções Random para utilização em projetos da série Nexto por meio do software MasterTool IEC XE.
Componentes
Software: MasterTool IEC XE v3.23
CLP: XP340
Seções do Tutorial
1. ARQUITETURA
2. DESENVOLVIMENTO
2.1. Instalando e adicionando a biblioteca Random no MasterTool IEC XE
2.2. Funções Random
2.2.1. Função Random RDM_REAL
2.2.2. Função Random RDM_INT
2.2.3. Função Random RDM_DWORD
2.3. Bloco Funcional Random FB_RDM
3. RESULTADO
1. ARQUITETURA
Na arquitetura deste tutorial, conectou-se a porta Ethernet da XP340 na porta Ethernet do computador através do cabo NX9202.
2. DESENVOLVIMENTO
Neste tutorial será explicado como utilizar as funções e bloco funcional da biblioteca Random (biblioteca externa desenvolvida para o MasterTool IEC XE). As funções Random são utilizadas para gerar números aleatórios, podendo ser utilizados em testes e simulações em que não deseja-se determinar o valor da variável.
A biblioteca Random está disponível para download ao final deste tutorial, bem como o projeto criado na construção deste tutorial.
2.1. Instalando e adicionando a biblioteca Random no MasterTool IEC XE
Para instalar e adicionar uma biblioteca ao MasterTool IEC XE, siga o procedimento explicado no tutorial: “Como adicionar uma biblioteca externa no MasterTool IEC XE”, cujo link está abaixo:
Após realizar o procedimento explicado no tutorial do link acima com a biblioteca Random, a mesma estará presente nas bibliotecas do MasterTool, conforme a imagem abaixo:
2.2. Funções Random
Existem três funções Random presentes nesta biblioteca externa que foi instalada e elas serão apresentadas detalhadamente nas próximas subseções.
Para inserir cada uma dessas funções na POU UserPrg, em Caixa de Ferramentas, expanda o campo Geral e arraste o objeto Caixa até a opção Iniciar aqui.
Clique no campo ‘???’ dentro da caixa que foi inserida (1) e então clique no quadrado branco que será exibido ao lado (2).
A janela Assistente de Entrada abrirá. Na aba Pesquisa de Texto, escreva “rdm” para que todas as funções e blocos funcionais Random sejam exibidos. Selecione a função que desejar e clique em OK.
A janela Assistente de Entrada fechará automaticamente, dê Enter para finalizar a inserção da função desejada.
2.2.1. Função Random RDM_REAL
A função RDM_REAL calcula um número randômico do tipo REAL na seguinte faixa: 0 <= número calculado < 1. Esse número é calculado através de um temporizador interno do CLP lido e convertido em um número pseudoaleatório. Sendo uma função, ela não pode armazenar dados entre duas chamadas.
É recomendado chamar essa função apenas uma vez por ciclo da MainTask. Caso essa função seja chamada mais de uma vez por ciclo, ela fornece o mesmo número, pois o temporizador do CLP ainda está com o mesmo valor. Se existir a necessidade de chamar essa função repetidamente dentro de um único ciclo, é necessário que a entrada (ULTIMO) receba um valor diferente para cada chamada da função.
2.2.1. Função Random RDM_INT
A função RDM_INT calcula um número randômico do tipo INTEIRO na faixa determinada pelas entradas LOW e HIGH. Esse número é calculado através de um temporizador interno do CLP lido e convertido em um número pseudoaleatório.
Se a função for utilizada apenas uma vez por ciclo da MainTask, o valor da entrada ULTIMO pode permanecer constante. Caso a função seja chamada mais de uma vez por ciclo e o valor da entrada ULTIMO seja constante em todas as chamadas, é possível que a função forneça o mesmo número, pois o temporizador do CLP ainda está com o mesmo valor. Esse efeito pode ser evitado utilizando um contador de loop como valor inicial na entrada ULTIMO, ou adicionando um contador de loop com a saída da função como valor para a entrada ULTIMO.
2.2.1. Função Random RDM_DWORD
A função RDM_DWORD calcula um número randômico do tipo DWORD (32 bits) na faixa de valores de uma variável de 32 bits. Esse número é calculado através de um temporizador interno do CLP lido e convertido em um número pseudoaleatório. Sendo uma função, ela não pode armazenar dados entre duas chamadas.
Assim como a função RDM_REAL, é recomendado chamar essa função apenas uma vez por ciclo da MainTask. Caso essa função seja chamada mais de uma vez por ciclo, ela fornece o mesmo número, pois o temporizador do CLP ainda está com o mesmo valor. Se existir a necessidade de chamar essa função repetidamente dentro de um único ciclo, é necessário que a entrada ULTIMO receba um valor diferente para cada chamada da função.
2.3. Bloco Funcional Random FB_RDM
O bloco funcional FB_RDM é um gerador de sinal aleatório. Ele gera na variável SAIDA um novo valor a cada intervalo de tempo determinado na entrada PT. A saída booleana Q é verdadeiro (TRUE) durante um ciclo se o valor em SAIDA for alterado. As entradas AMP e OFFSET definem a amplitude e o offset da variável SAIDA, respectivamente. Caso as entradas AMP e OFFSET não estejam conectadas, o valor padrão para cada uma delas é zero.
Para adicionar o bloco funcional FB_RDM à POU UserPrg, pode-se adotar o mesmo procedimento explicado na introdução da seção 2.2. deste tutorial.
É possível monitorar o funcionamento deste bloco funcional adicionando uma ferramenta Trace ao projeto e inserindo um diagrama para cada saída do bloco (Q e SAIDA).
Obs.: Como não é o objetivo deste tutorial, não será detalhado a configuração do objeto Trace. Caso existam dúvidas quanto a configuração dele, pode-se abrir o projeto que está disponível para download ao final do tutorial e analisar como o mesmo foi configurado e também, ler o tutorial que explica como utilizar a ferramenta Trace, cujo link está abaixo:
3. RESULTADO
Realize Login no CLP e execute o projeto. Na aba UserPrg é possível visualizar o funcionamento das funções e do bloco funcional.
Comentários
0 comentário
Por favor, entre para comentar.