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.