Jump to content
koutinho

Problema com ligação entre Termostato Digital e Autómato

Recommended Posts

koutinho

Boa Tarde,

Tenho tentado no trabalho a comunicação entre um autómato Schneider (iRIO) e um termostato digital (Smart Temp) que controla uma rooftop.

O objectivo era através do autómato definir os set-points no Termostato e os seus períodos de funcionamento.

O problema é que os registos que tenho que alterar são "Holding Registers" e aparentemente não estou a conseguir fazer isso como deve ser.

No manual vem a indicar que o endereço par o set-point de temperatura é o 40354. É este o endereço que tenho que definir no autómato ou tenho que o converter de alguma forma?

Gostava que alguém que já tivesse feito este tipo de comunicação que viesse aqui mandar uns "bitaites"!!

Obrigado,

Abraço

Koutinho

Share this post


Link to post
Share on other sites
bubulindo

Vejo que és novo no fórum por isso vou mandar uns bitaites gerais...

No fórum, apesar de não ser dedicado à automacão, existe gente experiente nesse ramo. No entanto, nem todos tivemos a "sorte" de trabalhar com material Schneider ou com um termostato digital (do qual não sabemos a marca, modelo ou modo de comunicacão).

Por isso, se pretendes ajuda de alguém, deves incluir o máximo de informacão para que, mesmo quem nunca trabalhou com isso possa dar o seu bitaite.

Agora proponho um exercício para ti. Esquece o que sabes sobre este problema, volta a esta página e lê o teu primeiro post. Achas que conseguirias sequer dar alguma ajuda?


include <ai se te avio>

Mãe () {

}

Share this post


Link to post
Share on other sites
nokPT

Tal como disse o bubulindo, tens que dar o máximo de informação possível, caso contrário podemos estar a mandar uns bitaites completamente ao poste...

Como não dizes, que tipo de comunicação, mas como falas em HR e no endereço 40354, imagino que seja MODBUS.

Bitaitando, então:

Já usei Modbus, mas nunca usei os autómatos da Schneider, pelo que não sei como é que se programa a parte de comunicação.

No entanto, numa comunicação tens sempre pelo menos 2 partes, e quando a comunicação não funciona, por norma, nunca sabes onde está o erro, que parte é que não está a comunicar...

Para modbus há vários softwares na net para fazer testes, num caso, para enviar valores, noutro caso para leres valores.

A vantagem de usares os software do PC, é que pode não funcionar, mas pelo menos tens feed-back, pelo menos vais sabendo o que se passa, e vais conseguindo corrigir.

Dizes que queres escrever no setpoint, e não queres ler a temperatura actual?

Podes começar por partes, por exemplo a parte de escrever, podes usar um desses softwares, como Slave e do autómato mandas escrever no Slave (software do PC) o que queres, se não funcionar, pelo menos descobriste uma parte do problema.

Depois de conseguires escrever no Slave com o PLC, tens que ler do Slave com o PLC.

Depois de afinares as comunicações PLC-Slave PC, tens que fazer o mesmo entre o Termostato e o SLAVE ou MASTER PC.

No fim, ligas o PLC ao termostato...

Por outro lado, pode não ser modbus, e estive a mandar bitaites ao poste...


Ricardo Timóteo

Share this post


Link to post
Share on other sites
koutinho

Boa noite, antes de mais obrigado pelas respostas e desculpem a falta de informação.

Escrevi à pressa, estava no telemóvel.

O que se passa é o seguinte:

Tenho um autómato/Datalogger da Schneider (iRIO) que uso para para a monitorização dos consumos de energia. Ou seja, este autómato está ligado por RS485 Modbus, a contadores de energia, registando os seus valores numa base de dados.

Agora, surgiu a oportunidade de além de monitorizar os consumos de energia, controlar determinados equipamentos, no caso umas roof tops, o que permitiria optimizar o consumo de energia da instalação. Para isso, pretendia utilizar o mesmo autómato, que, ligado também por RS485 Modbus ao termóstato que controla a rooftop (Smart temp SMT - 770), permitiria além de saber as temperaturas do local, conseguir controlar os seus set points e por exemplo, desligar a máquina remotamente.

Isto é tudo muito bonito, o problema é que para isso tenho que conseguir comunicar com o térmostato, de forma a ler os seus registos e escrever neles. 

Eu consigo comunicar com o térmostato e consigo ler e alterar alguns registos, os coil registers, que neste caso correspondem ás saídas dos relés (consigo ler e actuar nos relés através do autómato).

O mal é que os outros registos, onde estão os set-points e outros aspectos importantes do funcionamento do termostato, estão noutros registos, holding registers, que aparentemente não estou a conseguir aceder da melhor forma.

Segundo o fabricante os dados estão no formato Int 16, porém quando escolho este tipo de dados, nos respectivos endereços, não obtenho nenhum valor real.

Alguém faz ideia se o acesso a este tipo de registos obriga a alguma parametrização especial? Será que o autómato não consegue ler estes registos?

Uma vez mais obrigado.

Abraço

Koutinho

Share this post


Link to post
Share on other sites
bubulindo

Int16 não é um valor "REAL". Isto se por Real, pretendes dizer floating point.

Que mais é que o manual diz sobre este valor? Não terás de o converter para floating point com base na medição mais elevada?

E como estás a fazer o setting dessa variável? Pode ser que a consola apenas aceite valores dentro duma determinada gama e tu não estejas a usar o tipo de dados correcto.

Tens um link para o manual das comunicações?


include <ai se te avio>

Mãe () {

}

Share this post


Link to post
Share on other sites
koutinho

Boas,

Como real queria dizer mesmo real, ou seja estava a tentar aceder a um valor da temperatura no local, portanto o que eu queria dizer era depois das conversões que teria que fazer, esperava obter o valor real da temperatura, no caso qualquer coisa como 24º.

O manual também não é muito explicito, o Int 16 por exemplo foi o fornecedor que me indicou, não sei se é correcto ou não. De qualquer forma já experimentei os outros tipos disponíveis e também não consegui.

http://pt.scribd.com/doc/6345658/SMT-770-Installer-Manual-Addendum-Modbus-Communications

Por exemplo uma duvida que tenho, como faço para aceder ao registo 4030 ou 40030? Como distingo os 2?

Share this post


Link to post
Share on other sites
bubulindo

De certeza que o registo 4030 está num sítio diferente do 40030, não?

Se isto fosse profibus com um interface Siemens, terias de definir a ligacão do autómato ao termostato e lá terias a definicão dos enderecos para usares. ModBus nunca usei, por isso não sei como será a configuracão.


include <ai se te avio>

Mãe () {

}

Share this post


Link to post
Share on other sites
koutinho

Neste manual não diz, mas no outro que tenho em papel vem o 4030 e o 40030 como sendo ambos holding registers.

A minha duvida é então como consigo distinguir os 2, como endereço um e o outro...

Share this post


Link to post
Share on other sites
bubulindo

Eu consigo comunicar com o térmostato e consigo ler e alterar alguns registos, os coil registers, que neste caso correspondem ás saídas dos relés (consigo ler e actuar nos relés através do autómato).

O mal é que os outros registos, onde estão os set-points e outros aspectos importantes do funcionamento do termostato, estão noutros registos, holding registers, que aparentemente não estou a conseguir aceder da melhor forma.

Neste manual não diz, mas no outro que tenho em papel vem o 4030 e o 40030 como sendo ambos holding registers.

A minha duvida é então como consigo distinguir os 2, como endereço um e o outro...

Há aqui qualquer coisa que não bate certo, primeiro dizes que comunicas, lês e escreves certos registos, e depois dizes que não sabes como enderecar registos?

Como é que conseguiste enderecar os registos onde estão as temperaturas actuais?


include <ai se te avio>

Mãe () {

}

Share this post


Link to post
Share on other sites
koutinho

Há aqui qualquer coisa que não bate certo, primeiro dizes que comunicas, lês e escreves certos registos, e depois dizes que não sabes como enderecar registos?

Como é que conseguiste enderecar os registos onde estão as temperaturas actuais?

Bom dia, tal como eu disse, consigo ler e escrever certos registos "coil registers", que corresponde aos endereços 0001 a 0005, esses endereço directamente com os numeros 1 a 5.

As temperaturas actuais estão nos holding registers, que eu não estou a conseguir aceder da melhor forma.

Share this post


Link to post
Share on other sites
nokPT

Sabes que o comando/função para ler Coils e Holdings é diferente, certo?

O comando do Coils é 01 e dos HR é 03...


Ricardo Timóteo

Share this post


Link to post
Share on other sites
koutinho

Boa Noite,

Obrigado pelo interesse no caso. Já consegui resolver o problema, já consigo comunicar.

Sim eu sei essa questão dos codigos para leitura serem diferentes.

O problema é que os endereços que tinha não estavam correctos e o formato de leitura tb não era o que me foi dito.

Obrigado mais uma vez.

Cumprimentos,

Koutinho

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.