LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Construção de variável numérica

Olá!

 

Estou fazendo um projeto que precisa ler alguns endereços de um CLP via Modbus, e tenho 2 dúvidas:

- Estou usando como base para construir meu programa a VI modbus fundamentals. Para acessar os dados, em um certo ponto é usado uma array constant, que dentro dela tem diversos shared variable refnum in, que eu não consegui construir. Como eu consigo fazer este bloco?

 

- Estou utilizando um CLP da Atos (MPC4004), e o software deste equipamento me deu como endereços ModBus do 30001 a 30011, que são endereços que não existem na livraria do exemplo citado acima. Nesta situação, qual a forma mais adequada para conseguir acessar esses endereços: é necessário trocar a livraria? Preciso de alguma informação específica do CLP?

 

Obrigado

0 Kudos
Message 1 of 6
(3,354 Views)

Olá, Ricardo.

 

Respondendo sua primeira pergunta, você pode clicar com o botão direito na entrada shared variable refnum in, por exemplo, do VI Open Variable Connection ou Write Variable, e escolher Create>>Constante. Nesse caso será criada apenas uma constante e não um array, no entanto você pode pegar na paleta Array uma constante de array (Array constant) e colocar a constante de shared variable dentro. 

 

Quanto a segunda dúvida, primeiramente você deve criar a sua biblioteca com suas variáveis e para isso você pode seguir o tutorial abaixo.

http://www.ni.com/white-paper/13911/en

 

A partir da seção "Writing to Modbus Addresses in LabVIEW', o tutorial ensinará como acessar as variáveis usando diretamente uma Shared Variable e não como acessá-la programaticamente como você está tentando fazer. Para isso, bastará continuar seguindo o exemplo anexo, nesse estágio você já encontrará a variável clicando na shared variable refnum em Browse..>>Current project (no combo box Browse). Mas caso você não tenha muitas variáveis e achei o processo no tutorial mais simples, você pode escolher fazer como ele ensina sem prejuizo algum.

 

Espero ter respondido tudo, mas caso algo não tenha ficado claro, por favor, sinta-se à vontade em perguntar novamente.

 

Cordialmente,

 

Plínio Costa
Senior Techinical Support Engineer
National Instruments Brazil



Message 2 of 6
(3,313 Views)

Obrigado pela resposta, que foi muito boa.

 

Agora, tive uma dúvida: gerei uma biblioteca específica e para escrever endereços Modbus via lab view, criei a VI write (em anexo). Joguei no meu arquivo principal, mas percebi que da forma que fiz terei problemas: é possível criar uma subVI para atender as minhas necessidades?

Obrigado

Download All
0 Kudos
Message 3 of 6
(3,292 Views)

Ricardo, tem como você me explicar melhor o que você deseja fazer? Eu dei uma olhada no seu VI Write, no entanto não entendi o que você fez. Você havia dito que deseja ler endereços específicos, porém no seu Vi write todas as shared variable são do tipo escrita.

 

Cordialmente,

Plínio Costa
Senior Techinical Support Engineer
National Instruments Brazil



0 Kudos
Message 4 of 6
(3,283 Views)

Bom dia Plinio!

 

O meu objetivo é ler num determinado momento estes endereços e em outro momento escrever nos mesmos endereços (analisar que os endereços que estão no diagrama de blocos do Projeto), os endereços do novo-vm (escrita) e progr-vm (leitura) são iguais, bem como novo-am e progr-am, além de novo-vd e progr-vd.

Isto é possível?

0 Kudos
Message 5 of 6
(3,275 Views)

Olá, Ricardo.

 

Desculpa pela demora na resposta, eu estive a última semana fora do escritório.

 

Sim, é possível. Desde que o endereço que você está usando é Read/Write, você pode ler e escrever normalmente nele.

 

http://zone.ni.com/reference/en-XX/help/371618D-01/lvmve/dsc_modbus_using/

 

Para ter a mesma variável no LV tanto como escrita como leitura basta fazer uma cópia dela e clicando com o botão direito trocar o modo de acesso. 

 

>>Botão direito>>Access mode>>Read

 

Cordialmente,

Plínio Costa
Senior Techinical Support Engineer
National Instruments Brazil



0 Kudos
Message 6 of 6
(3,232 Views)