É possível endereçar um objeto com mais de um endereço de memoria .
Att
Endereço de objeto
@Paulo_Oliveira, bom dia.
Se estiver se tratando de tag de comunicação, não. Cada tag representa apenas um endereço.
É possível modificar o endereço em Runtime, mas cada novo endereço configurado representará um novo tag e não o mesmo.
Sds.
Obrigado
Att…
Bom dia
Então eu quero que um botão tenha 5 endereços nele para acionar 5 dispositivos diferente é possível ?
Att
Como eu faço ?
Att;…
Supondo:
- 1 driver para cada equipamento;
- 1 tag de comunicação digital para cada driver.
Pode fazer este comando utilizando um CommandButton:
Sub CommandButton1_Click()
Application.GetObject("Driver1.Tag1").WriteEx 1
Application.GetObject("Driver2.Tag1").WriteEx 1
Application.GetObject("Driver3.Tag1").WriteEx 1
Application.GetObject("Driver4.Tag1").WriteEx 1
Application.GetObject("Driver5.Tag1").WriteEx 1
' Ou
' For i=1 to 5
' Application.GetObject("Driver"&i&".Tag1").WriteEx 1
' Next
End Sub
Sds.
Obs.: Sempre que possível, passa mais detalhes como nome dos tags, nome dos drivers, tipo, etc.
Então eu tenho que fazer um teste em 10 dispositivos acionando um botão , vou fazer comunicação modbus rtu onde configuro a porta COM na tela de Viewer a chances de dar problema ??
Sugiro assistir a estes dois vídeos:
- Configurando o driver Modbus: https://youtu.be/LQ7GadbsIGo
- Escrevendo em um tag de comunicação: https://youtu.be/0xYVDiXb6LA
Sds.
Agradeço pelos videos e informação .
Att
Boa tarde segue exemplo
Então fiz o código que você mandou só que ele só faz o acionamento como faço pra desacionar .
Att
@Paulo_Oliveira, boa tarde.
Semelhante ao anterior, mas trocando o 1 por 0.
Pode fazer este comando utilizando um CommandButton:
Sub CommandButton1_Click()
Application.GetObject("Driver1.Tag1").WriteEx 0
Application.GetObject("Driver2.Tag1").WriteEx 0
Application.GetObject("Driver3.Tag1").WriteEx 0
Application.GetObject("Driver4.Tag1").WriteEx 0
Application.GetObject("Driver5.Tag1").WriteEx 0
' Ou
' For i=1 to 5
' Application.GetObject("Driver"&i&".Tag1").WriteEx 0
' Next
End Sub
Sds.
Faz da seguinte forma:
- Cria dois botões sendo um para ligar (visível) e outro para desligar (invisível);
- Desmembra o script entre esses botões;
- Na associação do objeto retângulo, ao invés de conexão bidirecional, utiliza conexão simples.
Sds.
Desculpe incomodar novamente mas é possível fazer só com um botão?
Se não agradeço enormemente pela ajudar .
Att
Sim, é possível. Mas se quer manter o retângulo visível, precisa inverter a ordem: primeiro passa o zero e depois o 1.
Ou, na associação, utiliza o NOT para inverter o valor recebido pela tag, posto que o último comando está sendo False (0) e para ficar visível precisa receber True (1).
Exemplo: NOT(CBool(Dados.saida2.Value))
Mais informações:
Sds.
Agradeço pela Atenção .
Attt
essa citação abaixo se o 1 estiver entre parenteses tem diferença?
Application.GetObject(“Driver1.Tag1”).WriteEx (1) Desse jeito
@Raphael_pecontrol, boa tarde.
Fiz alguns testes e, neste caso, não deu erro, mas sugiro sem os parênteses.
Sds.