-
Tratamento de dados lidos em Profibus pelo PLC Pacsystem
Posted by joaovilela on 11/01/2023 at 10:28Bom dia Senhores, tudo bem? Feliz Ano Novo para todos!
Um dispositivo gera valores em REAL e os transmite pela Profibus para um PLC Pacsystem Rx3i. Na tabela de dados do plc, um dado do dispositivo ocupa duas words, 4 bytes cada dado Quando leio pela RS-485 utilizando o Modbus Poll, descobri que o valor que preciso ler está em formato “32 Bits Float big Endian”. Alguém saberia me orientar em como pegar esses dados no PacSystem e converter para este formato final?
[Comentário postado no fórum do iToT Hub: Hub Automação em nome de Moisés]
Octavio replied 1 year, 10 months ago 1 Member · 5 Replies -
5 Replies
-
0 Itotcoins
Não conheço nada sobre PacSystem, mas no Control Expert, geralmente movemos cada byte para uma Double Word (corrigindo qualquer swap necessário) e ao final, uma conversão de Word para Real
Talvez o conceito possa ser aplicado tb. Achei um vídeo que mostra um exemplo:
https://www.youtube.com/watch?v=b0TFJ5rfPaA
[Comentário postado no fórum do iToT Hub: Hub Automação em nome de Fernando Rodrigues]
-
0 Itotcoins
Grato pelo retorno. Eu assisti ao vídeo e já tinha feito tudo isso. Mas o resultado não ficou correto. Creio que é a ordem dos bytes que não está de acordo. Mas deu pra ver que estou no caminho certo! Muito obrigado, por enquanto!
[Comentário postado no fórum do iToT Hub: Hub Automação em nome de Moisés]
-
-
0 Itotcoins
Bacana @Moisés
Eu uso bastante essa calculadora de Float/IEE754 para testar esse tipo de conversão
https://www.h-schmidt.net/FloatConverter/IEEE754.html
Simulo alguns valores, pego o hexa
[Comentário postado no fórum do iToT Hub: Hub Automação em nome de Fernando Rodrigues]
-
0 Itotcoins
Show!
@Moisés eu já fiz uma conversão de float 64 para 32 pegando bit a bit e jogando fora os menos significativos, simplesmente pq o plc não tinha nada para fazer a conversão. Estava lendo um medidor de vazão e o acumulador era em float64 E era um m340. Em ultimo caso é algo a se pensar.
Agora falando de endianness, Big endian são os bytes mais significativos “a esquerda” 0xFFEE1100 nesse caso FFEE? Em little endian o mesmo valor seria 0x110OFFEE. E ainda em cima disso tem o swap bytes.
Big swapped = 0xEEFF0011. Little swap = 0x0011EEFF
[Comentário postado no fórum do iToT Hub: Hub Automação em nome de Moisés]
-
0 Itotcoins
A um tempo atras tbm tive esses problemas com um Macromedidor, mandei mensagem pra Schneider eles me responderam com isso:
– EcoStruxure™ Control Expert – Standard Block Library: https://www.se.com/ww/en/download/document/33002519K01000/
No manual acima, capitulo 13, página 83, você encontrará a descrição do bloco MAX.
[Comentário postado no fórum do iToT Hub: Hub Automação em nome de Fernando Rodrigues]
- This reply was modified 1 year, 10 months ago by Hub_Automacao.
-
-
Log in to reply.