Comunicação S7 unilateral no Simatic. Como organizar a troca PLC-PLC programando e carregando apenas um PLC?

As conexões S7 usadas para trocar informações entre os dispositivos das séries S7-300, 400, 1200, 1500 são configuráveis. Isso significa que você deve informar explicitamente aos dispositivos quem está se comunicando com quem. Em geral, essas conexões são bidirecionais (bidirecionais ou bilateralmente), ou seja, a adição de uma conexão configurável ocorre para ambos os PLCs, o que resulta na necessidade de fazer o download de ambos os PLCs. Isso não causa nenhum problema particular se ambos os PLCs estiverem no departamento de controle do sistema de controle de processo da empresa e para ambos os PLCs houver um software aplicativo real disponível. Mas também há casos especiais - é necessário estabelecer uma troca entre o "antigo" S7-300 e o "novo" S7-1500, além disso, o código-fonte do antigo programa foi perdido. Bem, ou a operação simplesmente tem medo de tocar no PLC. Ou simplesmente não há operação, a tarefa de organizar a troca "depende" do integrador do "novo" sistema,o que leva à condição anterior - ninguém realmente quer mexer no software de um sistema desconhecido.





Nesses casos, a capacidade existente de configurar uma conexão unilateralmente, torná-la ativa (ou seja, “nosso” PLC iniciará a conexão), adicionar blocos de programa de comunicação PUG / GET (este método não funciona com outros blocos, todos os outros blocos são bidirecionais ) e baixe apenas um PLC. Assumiremos que preservamos de alguma forma as informações sobre o conteúdo dos blocos de dados - seja da documentação do sistema, seja da descrição das tags do sistema SCADA.





Um resumo sobre conexões unilaterais e bidirecionais está escrito na base de conhecimento no link .





Herr Berger escreve muitas coisas interessantes sobre o assunto:





Hans Berger "Automating with SIMATIC S7-1500", p. 761





: S7- CPU, «» (active side), PUT/GET « », connection resource  03. , 03 , S7-.





«» ET200S CPU, S7-300 din-. ip- , .





ip-: 192.168.43.4





: DB1.DBD0, DB1.DBD4, DB1.DBD8





«» S7-1516, .





, . DB13. , PUT/GET «» .





Devices & networks.





Connections S7 connection





CPU Add new connection





S7-1516 , , . X1. Local ID (0x100) — , GET.





Add, Connections





ip-





Address details rack/slot , Connection resource 03. Rack — «», slot — «», «» CPU Simatic. ( «» ) 0/2.





OB1 GET .





GET , Properties ( ), . .





Req — , .





ID — , 0x100





ADDR_1 — , ANY





RD_1 — , , ANY. , .





DB1.DBD0.





ADDR_1. — ANY, Simatic. P#DB1.DBX0.0 BYTE 4





DB1 — 1





DBX0.0 — 0 ( 0 )





BYTE 4 — 4





P#DB1.DBX0.0 BYTE 4 DB1.DBD0. , , TIA Portal .





R0 "xEchangeDB".R0 ( ANY , P#DB13.DBX0.0 BYTE 4).





( Tag_1) , . , REQ , / .





Tag_1 :





, , 666. CPU S7-300 , . , 4 . , R1 R2 — .





3 ANY :





:





. , GET: NDR — , ERROR — STATUS — , . , «» , , . .





ANY, . GET ( ), PUT ( ). , PUT STATUS. .





GET . () PUT. , . R0 DB13. PUT .









Em seguida, escreveremos os dados definindo o valor da variável Tag_7 igual a "1". Bem, agora, para ser honesto, vamos olhar o valor dessa variável na "caixa preta".





A gravação de dados foi bem-sucedida. Assim, mesmo sem ter o programa controlador original em mãos, podemos tanto ler as informações dele quanto gravá-las. A quantidade de dados é limitada e depende do tipo de CPU. EMNIP, para a "série tricentésima" o pacote é limitado a 160 bytes, você pode descobrir mais na documentação. A ausência da necessidade de alterações no software aplicativo é válida apenas para as séries 300 e 400, para milhares de unidades é necessário permitir o acesso à CPU pelo método PUT / GET marcando a caixa correspondente nas configurações do sistema.








All Articles