Introdução

Familia de drivers Siemens S7. Baseado na biblioteca LibNodave de Thomas Hergenhahn (thomas.hergenhahn@web.de). Este driver não usa Libnodave, ele é uma reescrita da mesma.

 

Tags suportados pelo driver TISOTCPDriver

O Driver TISOTCPDriver suporta as seguintes classes de tag:

  • TPLCTagNumberplctagnumber
  • TPLCBlockplcblock
  • TPLCStructplcstruct
  • TPLCStringplcstring

 

 

Tipo de conexão do driver tisotcpdriver

O driver TISOTCPDriver utiliza um socket TCP/IPv4 para estabelecer a conexão lógica com o CLP. Este fato o torna num driver 1 para 1, ou seja, para cada CLP adicionado ao projeto, será necessário inserir um novo componente de porta de comunicação e um novo componente de protocolo para representá-lo dentro da sua aplicação.  O mesmo acontece com outros protocolos que operam sobre TCP/IP, tal como o Modbus TCP.

 

Sequencia básica de configuração

Para configurar um ou mais tags para comunicar com um CLP Siemens através protocolo S7 você deve fazer:

  1. Insira uma porta de comunicação da classe TTCP_UDPPort na sua aplicação;
  2. Configure a porta (passo 1) para conectar no endereço IPv4 do seu CLP, porta 102/TCP e ative-a;
  3. Insira instancia da classe TISOTCPDriver na sua aplicação;
  4. Configure as propriedades PLCStation, PLCRack e PLCSlot da instancia do driver de protocolo (inserido no passo 3) para que estas reflitam o endereçamento do CLP desejado.
  5. Conecte o protocolo (passo 3) com a porta (passo 1), através da propriedade CommunicationPort;
  6. Insira os tags manualmente ou através da ferramenta “Tag builder”
  7. Caso inserir os tags manualmente, configurar as propriedades dos tags inseridos conforme descrito a seguir;
  8. Conectar o tag ao driver de protocolo através da propriedade ProtocolDriver presente em cada tag.

Para configurar as tag manualmente, é necessário preencher as propriedades MemAddress e MemReadFunction. Caso a variável esteja dentro de um DB, preencha também a propriedade MemFile_DB com o número do DB. O tipo da variável é escolhida na propriedade TagType.

Caso o tipo da variável seja Word, ShortInt, LongInt, DWord ou Real é necessário que as propriedades SwapBytes e SwapWord sejam iguais a true para que os valores fiquem iguais aos do CLP.

Para escolher o tipo (área de memória) que se deseja ler, preencha a propriedade MemReadFunction de acordo com a tabela abaixo:

Area Valor Observação
Inputs, Entradas 1
Outputs, Saidas 2
Flags ou M’s 3
DB e VM no S7-200 4
Counter, S7 300/400 5 Precisa que a propriedade TagType seja igual pttWord
Timer, S7 300/400 6 Precisa que a propriedade TagType seja igual pttWord
Special Memory, SM, S7-200 7
Entrada analógica, S7-200 8
Saída analógica, S7-200 9
Counter, S7-200 10 Precisa que a propriedade TagType seja igual pttWord
Timer, S7-200 11 Precisa que a propriedade TagType seja igual pttWord
Entrada analógica (PIW), S7 300/400 12 Precisa que a propriedade TagType seja igual pttWord

 

Configurações a serem feitas no CLP

Para configurar variáveis em CLP’s familia S7-1200, S7-1500 e ET-200SP, você deve desabilitar o acesso simbólico para que o protocolo consiga acessar estas variáveis, principalmente se estas variáveis estiverem em DataBlocks (DB) ou em Instance DataBlocks (DB criado a partir de um FB).

Você também terá que ir na configuração de hardware dos CLP’s S7-1200, S7-1500 e ET-200SP,  localizar o item “Protection & security” => “Connection mechanisms” e marcar a opção “Permit access with PUT/GET communication from remote partner” .

Continuando no item “Protection & security” => “Access level” configure o nível de acesso que a aplicação de supervisão terá dentro do CLP. Nota: Senhas não são ainda suportadas.

A imagem abaixo mostra estas configurações, que devem ser feitas no Tia Portal.

Exemplos

Acessando o byte de entradas digitais 3 (IB3):

  • MemReadFunction = 1, conforme tabela acima)
  • MemAddress = 3
  • TagType = pttByte

 

Para acessar a MD100 (DWord):

  • MemReadFunction = 5, conforme tabela acima
  • MemAddress = 100
  • TagType = pttDword
  • SwapBytes = true
  • SwapWords = true

 

Para acessar a DB10.DBD512 como real:

  • MemReadFunction = 4, conforme tabela acima
  • MemAddress = 512
  • MemFile_DB = 10
  • TagType = pttFloat
  • SwapBytes = true
  • SwapWords = true

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *