Como posso configurar um comando do Elipse Power para escrever em bits de tags?
Solução:
Para isto, associe o bit à propriedade OperateWriteTag da unidade de comando e adapte o script do template de comando para escrever neste bit. Para adaptar o script do template, siga estes procedimentos:
1. Crie um novo template de comando. Para isto, utilize a opção Adicionar na aba Comandos do objeto ConfiguraçãoPower. Neste exemplo, foi criado um template de comando discreto chamado Escreve_bit:
2. Após ter criado o comando discreto, crie as semânticas deste comando. A figura abaixo mostra as semânticas Escreve_1 e Escreve_0, e todos os seus valores (Operate Value, Operate Feedback, Select Value, Select Feedback, Cancel Value, Cancel Feedback) foram configurados como 1 ou 0 , de acordo com o número da semântica.
NOTA: Não é preciso criar um novo template de comando, sendo possível apenas editar um já existente.
3. Crie o seguinte script no método OnOperate do comando:
auxBit = Right(OperateWriteTag, 5)
Set Tag = Application.GetObject(element)
Execute “Tag.” & auxBit & ” = ” & WriteValue
Failed = False
Observação: Ao adaptar o script desta forma, não haverá mais sinalização de falha na escrita.
4. Este script retira o bit do caminho do tag, o que torna possível buscar o tag pelo método GetObjetct. Após isto, o bit é novamente concatenado e a escrita é feita no bit.
Exemplo: O seguinte tag foi associado à propriedade OperateWriteTag:
“Driver1.Tag1.Bit02”
De acordo com o script sugerido, a variável elemento irá receber:
“Driver1.Tag1”
Já a variável auxBit irá receber:
“bit02”
Após isto, o método GetObject busca o tag correspondente a partir da variável element, neste caso “Driver1.Tag1”. Finalmente, a escrita é feita no bit do tag, a partir do objeto (tag) concatenado com o bit correspondente (auxBit).
5. Por último, associe a propriedade OperateWriteTag da unidade de comando com o bit do tag desejado, de acordo com a imagem abaixo:
NOTA: Lembre-se de que para utilizar os bits de um tag, é necessário habilitar sua propriedade UsebitFields.
Fiz esse script porém ele dá o erro ‘Operate’- Falhou a execução do script do comando. O que mais pode estar errado? Estou utilizando o MPROt e um Siemens S7-1200.
Boa tarde Juliano,
Você chegou a habilitar a propriedade “UseBitFields” do respectivo IOTag? Para acessar os bits de uma variável você deve habilitar esta propriedade do respectivo IOTag.
De forma que possamos identificar aonde está o problema, peço que você verifique o seguinte:
1) Você está conseguindo realizar a escrita diretamente no bit (sem utilizar a estrutura do Elipse Power)?
2) Se sim, o comando foi configurado corretamente? Favor verificar se a conversão está correta, e principalmente se a “CommandName” da unidade de comando foi preenchida corretamente.
Se o problema persistir, favor entrar em contato através do e-mail: eduardo@elipse.com.br
Como colocar em um evento click de um botao ,uma tag interna em true?
Olá Fabiano,
Basta atribuir o valor ao tag interno:
Sub CommandButton1_Click()
Application.GetObject(“Dados.TagInterno1”).Value = true
End Sub
Se quiser inverter o valor utilize o Pick “Inverter valor”, ou utilize o seguinte script:
Application.GetObject(“Dados.TagInterno1”).Value = not (Application.GetObject(“Dados.TagInterno1”).Value)
Olá. Tenho uma aplicação que dispõe de 1 barramento com 10 disjuntores conectados a ele. Atualmente, o operador tem que ir em cada disjuntor e enviar o comando de abrir/fechar indo em cada um e abrindo uma tela de comando.
Teria como criar um único botão que realizasse a abertura e/ou fechamento dos disjuntores de forma automática? Por exemplo:
1 passo: operador clicar no botão de abertura automática dos disjuntores ( abrir disjuntores 1 a 10)
2 passo: abrir automaticamente a tela de confirmação do comando de abrir do disjuntor 1 e operador da ok;
3 passo: esperar 5 segundos
4 passo: abrir automaticamente a tela de confirmação do comando de abrir do disjuntor 2 e operador da ok;
5 passo: esperar 5 segundos
e continua até o 10