Funções definidas pelo usuário

O
FactoryTalk Design Workbench
suporta a criação e o gerenciamento de funções definidas pelo usuário (user-defined functions, UDF) para reutilizar a lógica do programa e tornar nosso programa mais legível. Use uma UDF para cálculos simples que requerem uma única saída.
Os UDFs não podem acessar as variáveis locais no programa de chamada. As variáveis locais no programa de chamada devem ser passadas para o UDF como parâmetros de entrada.
IMPORTANTE:
Um parâmetro de entrada definido pelo usuário não pode habilitar ou desabilitar UDFs, porque o parâmetro de entrada apenas habilita ou desabilita as instruções dentro da UDF.
Para habilitar ou desabilitar uma UDF, ative ou desative
EN/ENO
no painel
Propriedades
.
Quando
EN/ENO
for desativado, a UDF não será executada e os parâmetros de saída não serão sobrescritos.
Se uma UDF for executada várias vezes por varredura de programa, não é recomendável usar instruções que precisam de mais de uma varredura de programa para serem concluídas, como instruções de temporizador, movimento, mensagem e contador. Essas instruções retêm estados entre as varreduras do programa.

Usar UDFs em vez de blocos de função definidos pelo usuário (user-defined function blocks, UDFB)

  • Para um cálculo simples que requer apenas uma saída, como
    Y=MX+B.
  • Para as instruções sem estado que não requerem o salvamento de valores de variáveis locais de execução para execução, como SIN.
  • Quando o parâmetro de saída não requer um tipo de dados de matriz ou estruturado.
  • Sempre que possível, porque uma UDF consome menos memória.
    Quando múltiplas instâncias são necessárias, usar um UDFB pode consumir menos memória que uma UDF, já que um UDFB não existe em um programa até que uma instância seja criada como uma variável.

Use um UDFB em vez de uma UDF

  • Para cálculos complexos que possuem várias saídas.
  • Quando é necessário salvar valores de variáveis locais de execução para execução (salva o estado).
  • Quando múltiplas instâncias são necessárias. Usar um UDFB pode consumir menos memória que uma UDF, já que um UDFB em um projeto não existe em um programa até que uma instância seja criada como uma variável.
  • Quando o parâmetro de saída requer um tipo de dados de matriz ou estruturado.
  • Quando mais de uma mensagem é enviada simultaneamente.
    Quando um UDF contiver uma instrução de mensagem, como MSG_CIPGENERIC, o UDF enviará apenas uma mensagem por vez, mesmo que seja chamado várias vezes por varredura do programa.

Considere as seguintes práticas recomendadas ao usar UDFs

  • Use encapsulamento de dados.
    UDFs podem acessar variáveis globais. Não é recomendado acessar variáveis globais de um UDFB.
  • Antes de chamar uma UDF várias vezes em seu projeto, depure o programa da UDF porque:
    • Monitorar a lógica de uma UDF quando ela é chamada várias vezes é difícil.
    • Não é possível monitorar uma UDF chamada a partir de um programa de interrupção.
  • Inicialize variáveis locais a cada execução.
    Por padrão, as variáveis locais em um programa de UDF não são automaticamente reinicializadas cada vez que a UDF é chamada. Como várias instâncias não são suportadas para UDFs, é recomendado inicializar as variáveis locais de UDF para a execução com os parâmetros de entrada ou uma constante.
Dê sua opinião
Tem dúvidas ou comentários sobre esta documentação? Por favor, envie seu comentário aqui.
Normal