Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Luxo

S7-1200 Enviar Alarmes para as Consolas (HMI)

Mensagens Recomendadas

Luxo

Ok tenho de perguntar.

Quanto ao programa vou trabalhando no da empresa que é XP. Tens mexido muito com o Software?não me consegues tirar uma duvida?estou a tentar chamar na consola os alarmes. Só que não estou a conseguir chamar uma posição de uma word  de um DB. Pelo que me explicaram no S7 -200 fazia por exemplo "%DB1.DBX0.0". Só que agora neste da me um erro. Se me conseguires ajudar agradeço.

Carlos Pinho

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
nokPT

Honestamente, no S7-1200 ainda não tive grande oportunidade de trabalhar, mas no S7-200 não é bem assim.

Os alarmes na Siemens são um bocadinho confusos, e podiam melhorar drasticamente.

O funcionamento dos alarmes no S7-200/300/400 -> HMI  é o seguinte:

* No lado do autómato reservas, ou dedicas Words (16 bits) para enviar para a consola

* No lado da consola crias as tags de Alarmes, as Words que tinhas reservado no autómato

* No lado do autómato quando tens um alarme, activas um bit dessa word

* No lado da consola (é aqui a confusão, mais chata), configuras as mensagens de alarme e apontas para a tag (word) e para o nº do bit

Ou seja, não é directo, não tens 1 bit que vai activar uma mensagem. Tens um bit de uma word que vais activar uma mensagem.

A confusão está no BigIndian e no LitleIndian, ou seja, a stack de memória do autómato é de 8 bits, uma word tem 16 bits, para ler uma Word no autómato, a consola Lê o Byte N e o Byte N+1, até tudo bem.

O Byte N é o LSB e Byte N+1 é o MSB (acho que não estou a errar) ou seja, o Byte N vai ter os bits 8 a 15 e o Byte N+1 vai ter os bits de 0 a 7, ou seja, o mais provável é trocares as mensagens.

Exemplificando:

Imagina que tens uma tag MW10 ou DB1.DBW0 (como no teu exemplo)

1ª mensagem = DB1.DBX1.0 -> (bit 0 do 2º Byte )

2ª mensagem = DB1.DBX1.1 -> (bit 1 do 2º Byte )

...

8ª mensagem = DB1.DBX1.7 -> (bit 7 do 2º Byte )

9º Mensagem = DB1.DBX0.0 -> (bit 0 do 1º Byte )

...

16º Mensagem = DB1.DBX0.7 -> (bit 7 do 1º Byte )

Se não tiveres este cuidado, atiras alarmes errados ou activas alarmes que não têm mensagens configuradas, por isso não funcionam.

Eu recomendo, nestas situações, criar sempre os 16 alarmes (para cada tag), nem que seja a dizer Alarme Nº X, pelo menos aparece alguma coisa e ficas a saber que há algo de errado.

Relativamente ao S7-1200, não tive ainda possibilidade de testar, quando poder digo.


Ricardo Timóteo

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
nokPT

Estive a brincar um bocadinho com o software do S7-1200 e há algumas diferenças.

Em primeiro lugar (tinha-me esquecido), para usares o endereço DB1.DBX0.0, tens que ao criar a DB dizer que não queres que use apenas endereço simbólico (é um visto que para lá anda), se só usares o endereço simbólico não tens acesso aos endereços da DB.

Em segundo lugar, não encontrei (não quer dizer que não seja possível) maneira de alterar (set ou reset) um bit num byte, word, dword, etc...

Ou seja, em quanto no S7-300 ao endereçares DB1.DBX0.0, estás a dizeres que queres alterar o bit 0, do byte 0, da DB1.

No S7-1200, quando metes uma instrução binária (set, reset, ...) as tags que te aparecem são todas booleanas e não te permitem fazer esta manobra que simplifica muito as coisas.

Tirando estas 2 diferenças, disparar a mensagem de 1 alarme, é mais ao menos como te disse no tópico acima, a diferença é que tens mais um bocadinho de trabalho no código, por exemplo:

*para ligares o bit 3 da word (DB1.Alarme), tens que fazer um OR da word (DB1.Alarme), para a word (DB1.Alarme) com 2#0000 0000 0000 0100 (sem espaços)

* para desligares o mesmo bit, tens que fazer um AND com 2#1111 1111 1111 10111

Isto para todos os alarmes

Amanhã vou ver se encontro outra maneira mais simples como nos restantes Simatics


Ricardo Timóteo

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
nokPT

Mais simples,então.

Tens 2 hipóteses:

1ª - Não usar as DBs e usar as M (PLC Tags), nas PLC Tags podes definir uma (ou várias) tag com word (por exemplo) Alarme=Word=MW10 e depois definir os bits da mesma tag Alarme1=bool=M11.0...Alarme8=bool=M10.0...

Ao definires assim, podes usar directamente no programa a Tag Word e os bits da Word, podes fazer =, Set ou Reset de bits mais facilmente, do lado da consola só vez a Word.

2ª - Definires uma DB sem acesso simbólico, ao criares as tags (na DB) tens que definir as Words de Alarme, por exemplo Alarme=Word=0

Ao definires assim, podes fazer o mesmo que na hipótese acima mas com algumas limitações, em quanto que na outra hipótese como definiste tags e mnemónicas e comentários, sabes o que é cada bit e cada word, nesta hipótese, isso já não acontece, em primeiro porque não defines simbólico (ou mnemónicas) para os bits, em segundo caso porque o Step7 não copia (mascara) nenhum simbólico para o endereço ou seja:

Imagina que criaste a DB10 com o nome de Alarme, e dentro da DB10, criaste a DB10.DBW0 como relés térmicos e cada bit será o alarme correspondente a cada relé térmico, No programa para endereçares por exemplo o bit 0, tens que meter DB10.DBX0.0 (ou %DB10.DBX0.0, é igual)), depois de meteres este endereço o Step7 valida-o mas não passa para "Alarmes"."Relés Térmicos".0, tornando o código mais difícil de ler.


Ricardo Timóteo

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Luxo

Bom dia,

Desde já queria te agradecer nokPT pelas respostas já deram algum jeito. E tive de fazer com DBS por causa de estas serem retentivas. e é preferível.

Mas tinhas outra estão para te fazer! lol Consegues fazer a ligação entre CPU, Consola(HMI) e computador?é que não estou a conseguir, pois não consigo mudar o IP da consola, nem da CPU. Sabes como se faz Step para conseguir mudar o IP?

Carlos Pinho

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Luxo

nokPT já consegui fazer a interligação, mas na consola não consigo mudar o IP,

Olha queria te pedir outra ajuda. lol Já devo estar a ser chato!eheh

Queria te pedir se me sabias explicar, ou dizer se é possível na consola HMI , ao se carregar um BUTTON ou num switch ON/OFF é possivel abrir um caixa de texto para escolha de duas opções?por exemplo tendo uma tecla para ligar um sistema e ter a possibilidade de escola AUT ou Manual numa caixa como as do windows em que podes por ok ou cancelar.é possível?e como se faz?

Carlos Pinho

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
nokPT

Luxo, dúvidas novas (ou diferentes) -> Tópico novo, OK?

Por partes:

O endereço IP só pode ser alterado na consola, não tenho nenhuma pelo que não posso dizer-te passo a passo o que tens que fazer, mas algures nas configurações da própria consola deves ter lá o endereço IP.

Relativamente à aparecer uma mensagem tipo windows:

A consola que tens, é uma KTP600, não é? Esta consola não é um computador, tem um sistema operativo muito mais limitado...

Para fazeres o que queres tens que desenhar um rectângulo e os botões, depois vais às propriedades e adicionas a visibilidade (em cada objecto que desenhaste e queres esconder) e apontas para uma tag (interna). No botão mandas ligar a tag, nos outros mandas desligar...


Ricardo Timóteo

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
log on

Boa tarde,

No seguimento deste tópico já antigo, alguém me sabe dizer pff se é possível enviar esses mesmos alarmes para uma lista na HMI (libraries - controls - alarm vies) que nos indicará a hora e o alarme?

Obrigado

Cp

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
nokPT

Por norma, a Data e Hora são apresentadas no AlarmView.

Caso não te apareça, podes configurar e fazer novo download p/ a consola.


Ricardo Timóteo

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.