KB-28439: Problemas ao usar a função SetTag()
Descrição: Por que estão ocorrendo algumas problemas ao usar a função SetTag()? Solução: Para usar a função SetTag(), é necessário colocar o nome dos tags entre parênteses e entre aspas duplas. Por exemplo: SetTag("Nome do tag").
KB-38308: Pedindo confirmação antes de escrever em um tag
Descrição: Como pedir uma confirmação para o usuário antes de escrever em um tag? Solução: Para isso, deve-se usar a função MessageBox() para pedir a confirmação. Depois, dependendo da resposta retornada pela MessageBox(), a escrita é feita ou não. No exemplo abaixo, ao retornar 6 (Sim), a escri ...
KB-38238: Formatting texts by using the Chr() function
Question: Is it possible to apply a bold format to a text by using the Chr() function? Solution: The ASC table does not have codes to format texts. So, it is not possible to apply a bold format to a text by using the Chr() function.
KB-38238: Formatando textos com a função Chr()
Descrição: É possível colocar um texto em negrito usando a função Chr()? Solução: A tabela ASC não tem códigos para formatação de texto. Portanto, não é possível colocar um texto em negrito com a função Chr().
KB-28077: Atributo CurrentTime usado dentro de script aparece sem formatação
Descrição: Por que o atributo CurrentTime de uma aplicação SCADA usado em um script está sendo exibido sem formatação (ele não para de ser incrementado)? Solução: Isso acontece porque o valor está em milissegundos, assim ele não para de ser incrementado. Para formatar essa data, deve-se usar a f ...
KB-27732: Usando a função **
Descrição: O que faz a função ** ? Solução: É uma função de exponenciação do SCADA.
KB-28105: Sons no alarme
Descrição: Como deixar um som de alarme e ao reconhecer o alarme o som pare. Solução: Utilizar no evento OnActive a função PlayWave e no evento OnAck a função StopWave.
KB-29400: Como inserir uma string em uma tag dependendo do valor corrente de uma outra tag?
Descrição: Como inserir uma string em uma tag dependendo do valor corrente de uma outra tag? Solução: No evento OnValueChanged da tag utilizar o seguinte script: IF tag001 == 0 status = "Desligado" ELSEIF tag001 == 1 status = "Ligado" ELSEIF tag001 == 2 status = "Automático" ENDIF
KB-14132: Valor do atributo PerformanceCount
Descrição: Como o SCADA realiza o cálculo para atualizar o valor do atributo PerformanceCount? Solução: O cálculo é realizado a cada segundo, e é medido o tempo que a aplicação leva para responder. Quanto pior estiver a performance da aplicação, menor será o valor desta propriedade. Se o computa ...
Exibindo variáveis em uma MessageBox
Descrição: Como exibir variáveis em uma MessageBox? Solução: Para isso, siga esses passos: - Coloque as mensagens fixas entre aspas; - Coloque as variáveis sem aspas; - Use o sinal "+" para concatenar as mensagens fixas com as variáveis. Por exemplo: MessageBox("O valor do tag é: " + Str(tag001) ...
KB-36787: Script do evento OnSetFocus() sendo executado várias vezes
Descrição: Em uma aplicação, ao clicar em um Botão, a função SetFocus() é executada em um segundo Botão, que possui um script no evento OnSetFocus() que exibe uma MessageBox(). Entretanto, ao fechar a MessageBox(), o script no evento OnSetFocus(), é executado novamente. Como resolver esse proble ...
KB-36861: Diferença entre as funções Print() e PrinToFile() do Relatório do SCADA
Descrição: Qual a diferença entre as funções Print() e PrinToFile() do Relatório do SCADA? Solução: A função PrintToFile() imprime o Relatório em um arquivo TXT no local que for configurado. No caso abaixo, por exemplo, o arquivo será criado na pasta da aplicação: Relatorio.PrintToFile("arquivo. ...
KB-36741: Habilitando a troca de janelas de acordo com nível de acesso do usuário
Descrição: Como habilitar a troca de janelas (Alt+Tab) que foi bloqueada de acordo com o nível de acesso do usuário? Solução: Para isso, deve-se escrever um script para alterar a propriedade Exclusive da aplicação. Por exemplo: IF Aplicação.userAccessLevel == 1 Aplicação.exclusive = Not Apl ...
KB-36011: Executando um IF ELSE ENDIF em um Tag Expressão
Descrição: É possível executar um IF ELSE ENDIF em um Tag Expressão? Solução: Não, isso não é possível.
KB-36478: Filtrando tags de equipamentos desconectados
Descrição: Ao desconectar um equipamento de uma rede de CLPs comunicando com o SCADA via driver Modbus serial, a comunicação torna-se lenta. Como evitar isso? Solução: Para isso, deve-se criar um script no evento OnCommError do Driver utilizando as funções GetErrorInfo() e AddFilter(): dim strFi ...
KB-36129: Comparação de valor alfanumérico com Tag RAM não funciona
Descrição: Por que a comparação de um valor alfanumérico com o conteúdo de um Tag RAM, através de um IF, não está funcionando? Solução: Para resolver esse problema, deve-se colocar o código entre aspas duplas na comparação do IF. Por exemplo: IF TagRam == "420a7e51f5" TagPLC = 1 ENDIF
KB-36115: Aumentando o tamanho da fonte dos scripts
Descrição: Como aumentar o tamanho da fonte dos scripts? Solução: Para isso, na área de edição do script, segure a tecla Ctrl e clique com o botão direito do mouse, ou use o atalho Ctrl + Shift + F10. Uma janela de configuração será aberta.
KB-36006: Função para retornar caracteres de uma string
Descrição: Existe uma função que retorne um determinado número de caracteres de uma string? Solução: Sim, para isso, podem-se usar as funções Right(), Left() e Mid().
KB-35595: Gravando registros no Histórico de acordo com o valor de um tag
Descrição: Como configurar o Histórico para gravar registros de acordo com o valor de um tag e não de forma automática? Solução: Para isso, deve-se desabilitar a opção de gravação automática do Histórico. Depois, no tag que deve acionar a gravação, crie um script no evento OnValueChanged para ex ...
KB-35848: Salvando o valor do último campo de um Histórico em um Tag RAM
Descrição: Como salvar o valor do último campo de um Histórico em um tag RAM? Solução: Para isso, deve-se escrever o seguinte script: Hist1.Open() Hist1.GetLastRec() tag002 = Hist1.tag001 Hist1.Close() Onde, nesse script: - tag001 é o nome do campo de dados do Histórico; - tag002 é o nome do Tag ...