Conteúdo
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:
- TPLCTagNumber
- TPLCBlock
- TPLCStruct
- TPLCString
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:
- Insira uma porta de comunicação da classe TTCP_UDPPort na sua aplicação;
- Configure a porta (passo 1) para conectar no endereço IPv4 do seu CLP, porta 102/TCP e ative-a;
- Insira instancia da classe TISOTCPDriver na sua aplicação;
- 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.
- Conecte o protocolo (passo 3) com a porta (passo 1), através da propriedade CommunicationPort;
- Insira os tags manualmente ou através da ferramenta “Tag builder”
- Caso inserir os tags manualmente, configurar as propriedades dos tags inseridos conforme descrito a seguir;
- 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
bom dia
parabéns gostei muito, tenho uma pergunta
este protocolo tem restrição de tamanho ou quantidade de variáveis
pois tenho 6.000 variáveis e não estou conseguindo coletar todas
Qual o clp que está utilizando?