ID Modbus Comunicação

Certo

Agora você teria algum exemplo de algum a aplicação para intendimento melhor .

Att

@Araujo, não tenho nada pronto.

É interessante que passe mais detalhes do que precisa, de como pretende fazer essas modificações (setpoint, botão, evento, etc) e etc para poder lhe auxiliar com mais precisão.

Sds.

Então vou ter 10 controles neles vão ter as seguintes informações em cada um.
Sinal “via Radio”
Nível de bateria
Acionamento
E um led .
Isso tudo monitorado pelo supervisório
Cada controle tem que ter seu id caso algum tenha defeito ou a bateria esgote ser feita a troca e o sistema não pare imediatamente .

@Araujo,

Então serão 10 controladores independentes (cada um com um IP), certo?

Não entendi esta parte. Por favor, poderia esclarecer?

Sds.

Certo cada um com um IP
Agora a comunicação vai ser via serial entre o modulo e os controles.
Supomos que só estamos usando 8 controle em de problema vai ter que ser feita a troca dele por outro.

Att

@Araujo,

Certo. Então os dispositivos que estavam configurados 1 por IP agora serão uma rede serial com 8 dispositivos.

Se eles estarão em uma rede serial (RS-485, por exemplo) e um deles der defeito, acredito que a melhor solução é trocar por um outro dispositivo com mesmo endereço escravo. Entretanto, não sendo possível, deve-se substituir o valor da propriedade N1 dos tags deste dispositivo pelo endereço do novo em Studio.

Sds.

Certo , então como eu faria para escrever na tela de Viewer o ip do do controle e mudar no drive .
Att

@Araujo,

Acredito que este tópico irá lhe ajudar:

Sds.

Esse artigo é para mudar o IP ,gostaria de saber coou mudar o N1, já que ele representa meu endereço do controle sabendo que vamos temos 10 controles .

Att

@Araujo,

Se quer modificá-lo em Runtime, cria um Setpoint e associa bidirecional ao N1 da tag ou passa o valor para o N1 tag via script.

É importante observar que modificar o valor do N1 em Runtime irá consumir pontos IO do seu hardkey. Sugiro que realize as modificações em Studio.

Sds.

Bom dia

Desculpa a demora para responder ,a questão maior como é que eu faria para mudar o ip do controle.
Exemplo

Controle 1
Endereço Modbus 10001
10002
10003
10004
Sabendo que o ip dele é 10 no N1
Agora eu quero mudar para outro controle ,e o ip dele é 9 sabendo quando eu mudar terá que acontecer nos 4 endereços modbus do controle juntos ,e isso tem que ser feito na tela de Viewer

Espero que tenha entendido minha duvida .

Att

@Araujo, bom dia.

Acredito, pelo contexto, que está tentando mudar o ID (endereço escravo) que é o N1 do tag ao invés do IP do dispositivo.

Entretanto ainda não consegui entender exatamente o que precisa, mas, por favor, confirma para mim qual pensamento está correto:

  1. Quando mudar o parâmetro N1, deve-se manter os endereços do registros (N4) iguais ao do ID anterior; ou
  2. Adicionar o valor do ID (N1) aos dos registros (por exemplo, se no Controle 1 o N1 era 1 e o N4 era 10001, se mudar para o N1 = 5, então o N4 será 10006)?

Sobre mudar em Runtime:

Sds.

As duas formas estão corretas agora qual eu consigo aplicar melhor ?

Att

@Araujo,

Em teoria eles são excludentes, mas se acha que pode fazer um ou outro, sugiro o item 1.

Sds.

E como seria eu faria o item 1 ?

Att

@Araujo,

  • Cria um setpoint com a propriedade Name “spID”;

  • Cria um commandbutton e no evento Click insere o seguinte script:

      Sub CommandButton1_Click()
      SetFocus()
      set Driver = Application.GetObject("Driver1")
          FuncRecursiv(Driver)
          Driver.Save()
      End Sub 
    
      Sub FuncRecursiv(pasta)
          for each obj in pasta
              if typename(obj) = "IOFolder" then
      			FuncRecursiv(obj)
              else
                if typename(obj) = "IOTag" then
        			obj.N1 = Screen.Item("spID").Value
       			elseif typename(obj) = "IOBlock" then
      				obj.B1 = Screen.Item("spID").Value
      			end if
      		end if
      	next
      End Sub
    
    

Lembrando que antes de clicar no botão deve preencher o setpoint.

Artigos de referência:


Sds.

Boa Tarde
Testei aqui e funcionou ,agora eu tenho que cadastra 10 controles vou ter que ter 10 drives para configura cada um ?
Att

@Araujo,

Se estiverem na mesma rede, não. Basta configurá-los com N1 diferentes.

Mais detalhes:


Sds.

Bom dia

Estou fazendo um aplicação onde faço a comunicação através da tela de view entre meu dispositivo e o supervisório , modbus rtu .
Gostaria sabe se tem alguma tag do browser que posso associar para falar que meu dispositivo esta conectado portacom_teste .

@Araujo, bom dia.

Pode-se utilizar o PhysicalLayerStatus ou a propriedade Quality de um tag de comunicação que saiba que está funcionando.

Seguem artigos de referências:



Sds.