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

Seabra

S7-300 DB inicializada quando acrescento uma variável

Mensagens Recomendadas

Seabra

Olá

No TIA Portal quando acrescento uma variável a uma DB, depois de actualizar para a CPU verifico que toda a DB foi inicializada para os valores que tinha por defeito. Na fase de teste da máquina estamos constantemente a actualizar os valores no terminal, e a acrescentar novas variáveis, se os valores forem inicializados temos que os colocar novamente no terminal e por vezes também leva à paragem da máquina que está em testes. Nesta altura do "campionato" não percebo como é que a Siemens mantem esta filosofia.

Pergunto o seguinte:

Como é que é hábito fazer para contornar isto?

Há formas simples para manter a DB com os mesmos valores sem alterar os valores por defeito?

Alguém me pode enviar um projecto de uma maquina S7300 com terminal Confort para eu poder avaliar a forma de programação de outras pessoas?

girafabranca@gmail.com

Obrigado

Cumprimentos

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bubulindo

Viva,

Acho que o problema que estás a ver é algo com que me deparo de quando em vez.

Só para ter uma ideia de como estás a fazer, quando adicionas uma variável e escreves o valor defeito, mudas de modo? Isto é, fazes Ctrl+4 (ou será Ctrl+5), adicionas o valor que pretendes ter como defeito e depois então é que mandas a DB para o PLC?

Para guardares o que tens no PLC, tens de fazer upload da DB no PLC para o PC, alterar como queres a DB e mandar a DB para o PLC. Assim, e se o processo não está em funcionamento, deve fazer o que pretendes.

Dito isto, se a máquina já está a funcionar... não devias estar a adicionar variáveis a DBs, ou devias?


include <ai se te avio>

Mãe () {

}

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Seabra

Viva,

Acho que o problema que estás a ver é algo com que me deparo de quando em vez.

Só para ter uma ideia de como estás a fazer, quando adicionas uma variável e escreves o valor defeito, mudas de modo? Isto é, fazes Ctrl+4 (ou será Ctrl+5), adicionas o valor que pretendes ter como defeito e depois então é que mandas a DB para o PLC?

Para guardares o que tens no PLC, tens de fazer upload da DB no PLC para o PC, alterar como queres a DB e mandar a DB para o PLC. Assim, e se o processo não está em funcionamento, deve fazer o que pretendes.

Dito isto, se a máquina já está a funcionar... não devias estar a adicionar variáveis a DBs, ou devias?

Eu estou a trabalhar com o TIA Portal e não encontro o Ctrl+4 nem Ctrl+5, isso deve ser noutras versões.

O problema surge quando crio uma nova variável num DB e todas as variáveis da DB são alteradas para o valor por defeito.

Já imaginaste quando um forno, por exemplo, está a trabalhar e na fase de arranque e de ajustes de programa, não o posso parar o forno e tenho que acrescentar qualquer variával que seja oportuna no processo. Isso não faz qualquer sentido! É perfeitamente normal alterar os DBs com o sistema em funcionamento.

Fazer o upload do DB para o PC, alteral e voltar a enviar é perder tempo.

Imagina que pretendo inserir um outro botão no terminal. Crio a variável no DB, insiro o contacto na malha do programa e envio para o PLC. Assim é que deveria ser, tal como acontece noutras marcas de PLCs. Se para fazer isto tenho que parar a maquina então é complicado.

Cumprimentos

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
nokPT

A Siemens não é perfeita, mas em muitos aspetos está há frente dos concorrentes que tentam acompanhar a Siemens.

Eu por norma, deixo reservas no meio da DB (chego a deixar 50% ou mais de reserva), dá jeito nestes casos em que aparece mais uma variável ou por questões de organização...

O que o bubulindo estava a falar é Step7, no TIA Portal, quando abres a DB, carregas com o botão do lado direito no cabeçalho das colunas e ativas "Default Value", "Start Value" ou "Snapshot" (não estou online, pelo que não posso dizer qual é que pretendes)


Ricardo Timóteo

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bubulindo

Já imaginaste quando um forno, por exemplo, está a trabalhar e na fase de arranque e de ajustes de programa, não o posso parar o forno e tenho que acrescentar qualquer variával que seja oportuna no processo. Isso não faz qualquer sentido! É perfeitamente normal alterar os DBs com o sistema em funcionamento.

Eu compreendo o custo de iniciar um forno e levá-lo à temperatura de funcionamento. Obviamente que quanto menos energia gastares nisso, melhor.

Mas o meu comentário referia-se ao facto de dares a ideia que estavas a fazer o programa, ou parte do programa, de controlo com o forno em funcionamento. Isso pode dar asneira e da grossa. O facto de adicionares variáveis a uma DB indica também que ainda estás a fazer o desenvolvimento do sistema e não a ajustá-lo como dizes.

Eu, como tu, sou culpado de fazer o mesmo... mas a mim isso já me saiu caro e estou apenas a deixar um conselho. Tu trabalhas como queres. :)


include <ai se te avio>

Mãe () {

}

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Seabra

OK

Quando deixam variáveis de reservas, que nomes é que lhes dão? É que normalmente dou o nome da função que ela vai ter. Se posteriormente utilizamos uma variável de reserva, das duas uma, ou fica com um nome da variavel de reserva que pode não ter nada a ver com o que ela vai fazer, ou se mudamos o nome e enviamos para o PLC todas as variáveis da DB serão inicializadas, e aí voltamos ao mesmo problema.

Bubulindo,

Quantas vezes é que temos que testar várias formas de funcionamento, ajustar, intercalar uma segurança que por lapso falhou, com o processo em funcionamento?! Éra bom que se desenvolvesse um programa chegasse-mos à maquina e fosse só descarregar, testar e pronto estava tudo bém!

Tenho máquinas não com Siemens, mas com outra marca, que levaram semanas a optimizar o funcionamento, nomeadamente caldeiras, fornos, sistemas de aspiração, etc. Se de cada vez que necessito de mais uma variável tivesse que voltar a reconfigurar dezenas variáveis analógicas que estão na DB em caisa, era complicado.

Era precisamente para ver como é que um programador que trabalha diáriamente com siemens organiza um projecto, que eu no início vos peço um projecto não identificado claro, para eu poder ver.

Mais uma vez obrigado a todos.

Cumprimentos

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bubulindo

OK

Quando deixam variáveis de reservas, que nomes é que lhes dão? É que normalmente dou o nome da função que ela vai ter. Se posteriormente utilizamos uma variável de reserva, das duas uma, ou fica com um nome da variavel de reserva que pode não ter nada a ver com o que ela vai fazer, ou se mudamos o nome e enviamos para o PLC todas as variáveis da DB serão inicializadas, e aí voltamos ao mesmo problema.

Bubulindo,

Quantas vezes é que temos que testar várias formas de funcionamento, ajustar, intercalar uma segurança que por lapso falhou, com o processo em funcionamento?! Éra bom que se desenvolvesse um programa chegasse-mos à maquina e fosse só descarregar, testar e pronto estava tudo bém!

Tenho máquinas não com Siemens, mas com outra marca, que levaram semanas a optimizar o funcionamento, nomeadamente caldeiras, fornos, sistemas de aspiração, etc. Se de cada vez que necessito de mais uma variável tivesse que voltar a reconfigurar dezenas variáveis analógicas que estão na DB em caisa, era complicado.

Era precisamente para ver como é que um programador que trabalha diáriamente com siemens organiza um projecto, que eu no início vos peço um projecto não identificado claro, para eu poder ver.

Mais uma vez obrigado a todos.

Cumprimentos

Ok... cada caso é um caso. Caldeiras e fornos são sistemas lentos e como tal uma asneira no programa ainda dá tempo para corrigir.

Imagina agora um guincho com a capacidade de 1000 toneladas e a capacidade de se mover a 2m/s (não com 1000 toneladas obviamente.... mas por volta das 200 é o ponto ideal em termos de potência x velocidade/aceleração) e alterar o programa enquanto se mexe a máquina... uma asneira ali pode não dar tempo para parar o sistema antes duma colisão. E mesmo que se pare, pode existir problemas caros de resolver.

O mesmo se pode dizer de bombas de alta pressão (com capacidades até 1000 bar e elevado volume)... uma asneira ali e as coisas podem sair caras ou mesmo fatais.

Daí a minha preocupação quando falas em alterar um programa com o sistema em funcionamento. Não leves a mal, a nossa experiência é baseada em sistemas diferentes e em companhias com filosofias diferentes certamente.

A minha empresa investe (e não é pouco) em simuladores de software (escritos para PLC) e num caso em específico um simulador físico para desenvolvimento. De forma a que realmente seja chegar à máquina, fazer download, testar e pronto. Claro que, mesmo com tudo isto ainda são feitos ajustes na máquina no terreno, mas são coisas diminutas na maior parte das vezes.

Aquela dica do modo de visualização ajudou?

Quanto ao nome das variáveis, eu crio arrays

Se for só um array chamo-o de Spare

Se houver mais Spare1, Spare2,...

Se tiver de encher valores entre variáveis, uso Spare_posicao_de_memoria.

Imagina que quero encher um bit, uso o nome Spare_25_7 onde o bit fica na posição 25.7

Se quiser encher um byte, word, etc... Spare_50.

Quanto ao projecto da Siemens, eu uso o Simatic Manager e não o TIA Portal, mas posso criar um projecto lá para teres uma ideia do que estava a falar. Manda-me a tua morada de email e eu passo-te isso.


include <ai se te avio>

Mãe () {

}

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Seabra

Ok... cada caso é um caso. Caldeiras e fornos são sistemas lentos e como tal uma asneira no programa ainda dá tempo para corrigir.

Imagina agora um guincho com a capacidade de 1000 toneladas e a capacidade de se mover a 2m/s (não com 1000 toneladas obviamente.... mas por volta das 200 é o ponto ideal em termos de potência x velocidade/aceleração) e alterar o programa enquanto se mexe a máquina... uma asneira ali pode não dar tempo para parar o sistema antes duma colisão. E mesmo que se pare, pode existir problemas caros de resolver.

O mesmo se pode dizer de bombas de alta pressão (com capacidades até 1000 bar e elevado volume)... uma asneira ali e as coisas podem sair caras ou mesmo fatais.

Daí a minha preocupação quando falas em alterar um programa com o sistema em funcionamento. Não leves a mal, a nossa experiência é baseada em sistemas diferentes e em companhias com filosofias diferentes certamente.

A minha empresa investe (e não é pouco) em simuladores de software (escritos para PLC) e num caso em específico um simulador físico para desenvolvimento. De forma a que realmente seja chegar à máquina, fazer download, testar e pronto. Claro que, mesmo com tudo isto ainda são feitos ajustes na máquina no terreno, mas são coisas diminutas na maior parte das vezes.

Aquela dica do modo de visualização ajudou?

Quanto ao nome das variáveis, eu crio arrays

Se for só um array chamo-o de Spare

Se houver mais Spare1, Spare2,...

Se tiver de encher valores entre variáveis, uso Spare_posicao_de_memoria.

Imagina que quero encher um bit, uso o nome Spare_25_7 onde o bit fica na posição 25.7

Se quiser encher um byte, word, etc... Spare_50.

Quanto ao projecto da Siemens, eu uso o Simatic Manager e não o TIA Portal, mas posso criar um projecto lá para teres uma ideia do que estava a falar. Manda-me a tua morada de email e eu passo-te isso.

Pelo que percebo temos éreas de trabalho diferentes, com necessidades diferentes.

Com o modo de visualização que indicaste vejo o valor actual de todas as variáveis, mas não permite resolver o problema.

O meu mail é girafabranca@gmail.com

Cumprimentos

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bubulindo

Ok.

Eu crio um projecto com diferentes DBs para tentar ilustrar o que quero dizer.


include <ai se te avio>

Mãe () {

}

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
nokPT

OK

Quando deixam variáveis de reservas, que nomes é que lhes dão? É que normalmente dou o nome da função que ela vai ter. Se posteriormente utilizamos uma variável de reserva, das duas uma, ou fica com um nome da variavel de reserva que pode não ter nada a ver com o que ela vai fazer, ou se mudamos o nome e enviamos para o PLC todas as variáveis da DB serão inicializadas, e aí voltamos ao mesmo problema.

...

No Step7 isso não acontece, com se trabalha com endereços absolutos, podemos mudar o nome que não há problema, nem é necessário fazer download p/ o PLC (se mudares o tipo, já depende).


Ricardo Timóteo

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Seabra

No Step7 isso não acontece, com se trabalha com endereços absolutos, podemos mudar o nome que não há problema, nem é necessário fazer download p/ o PLC (se mudares o tipo, já depende).

Pois... nesse caso poderá facilitar.

Mas o Step7 está a ser substituído pelo TIA não é?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bubulindo

Isso não sei. Eu tenho a última versão do Step7 instalada há menos de um ano... funcionários da Siemens têm o Step7 em vez do TIA portal nos computadores deles. Mas a Siemens é gigante e pode ter a ver com o grupo onde eles trabalham (normalmente drives).


include <ai se te avio>

Mãe () {

}

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
jmsmoreira

No meu caso, e se não posso mesmo parar o equipamento,crio uma nova DB com a (as) variáveis que necessito de adicionar.

Quando o equipamento parar para manutenção (ou por outro motivo), "arrumo" o programa novamente como deve ser.

Isto acontece-me várias vezes porque trabalho essencialmente em protótipos.

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.