5.2 Evaluation des capacit´es dynamiques d’un champ neuronal
5.2.1 Propri´et´es dynamiques souhaitables et crit`eres d’optimalit´e
A comunicação utilizando o protocolo TCP/IP para troca de dados por meio da interface de Ethernet Industrial PROFINET presente na CPU 314C-2 PN/DP é possível através dos blocos disponíveis na biblioteca “Communication Blocks” do
software Siemens SIMATIC STEP 7. Essa biblioteca e os blocos mencionados são
apresentados na Figura 69.
Figura 69 - Blocos de comunicação TCP/IP para a CPU 314C-2 PN/DP. Fonte: Os Autores (2019).
Os dados de conexão TCP/IP são armazenados numa estruturada de dados que deve ser configurada pelo usuário e armazenada num bloco de dados. Para criação e configuração desses dados o fabricante Siemens disponibiliza em sua
página um software assistente chamado “Open Communication Wizard” que deve ser utilizado em conjunto com o software Siemens SIMATIC STEP 7.
Após a instalação do software “Open Communication Wizard” é necessário criar um projeto no software Siemens SIMATIC STEP 7 e a partir dele é possível iniciar a parametrização dos dados da conexão TCP/IP (Ver Figura 70).
Figura 70 - Assistente para criação dos dados da comunicação TCP/IP. Fonte: Os Autores (2019).
Na primeira janela apresentada com a inicialização do software “Open
Communication Wizard” a partir do projeto criado é necessário selecionar o bloco de
dados em que se deseja armazenar a estrutura de dados a ser parametrizada ou criar um outro bloco para tal tarefa (Ver Figura 71).
Figura 71 - Criando um bloco de dados para os parâmetros da conexão TCP/IP. Fonte: Os Autores (2019).
No passo seguinte é necessário selecionar o tipo de conexão a ser configurada, nesse caso o tipo é “TCP Native” (Ver Figura 72).
Figura 72 - Selecionado o tipo de conexão a ser configurada. Fonte: Os Autores (2019).
No terceiro passo (Ver Figura 73) seleciona-se apenas o parceiro de comunicação A (CPU 314C-2 PN/DP S7-300) para configuração e destaca-se que o parceiro B não é uma S7-CPU (no caso será o PLC XC-CPU201-XV da Moeller).
Figura 73 - Selecionando e identificando os parceiros de comunicação TCP/IP. Fonte: Os Autores (2019).
No quarto passo (Ver Figura 74) define-se o ID de comunicação do parceiro A, um nome para a conexão, a forma como a conexão será estabelecida (nesse caso Passiva, pois o PLC Siemens será Servidor TCP), seleciona-se a CPU utilizada (CPU 314) e informa-se a IP do parceiro B (Cliente TCP, o PLC Moeller).
Figura 74 - Propriedades dos parceiros de comunicação TCP/IP. Fonte: Os Autores (2019).
No quinto passo (Ver Figura 75) define-se o número da porta local do parceiro A (no caso do PLC Siemens será a porta 2001) através da qual a conexão TCP/IP ocorrerá.
Figura 75 - Número da porta local de conexão TCP/IP para o PLC Siemens. Fonte: Os Autores (2019).
No sexto passo (Ver Figura 76) é necessário definir um nome para o bloco de dados (nesse caso será DB1) que armazenará a estrutura de dados com as propriedades da conexão TCP/IP.
Figura 76 - Nome para o bloco da estrutura de dados da conexão TCP/IP. Fonte: Os Autores (2019).
No sétimo passo (Ver Figura 77) é possível conferir as propriedades da conexão TCP/IP e, se necessário, retornar a algum passo anterior para efetuar as devidas correções ou avançar para o próximo passo (Ver Figura 78) onde um relatório de erros e avisos relacionados a compilação dos dados criados indica o sucesso ou fracasso do procedimento.
Figura 77 - Propriedades da conexão TCP/IP. Fonte: Os Autores (2019).
Figura 78 - Relatório acerca da compilação dos dados da conexão TCP/IP. Fonte: Os Autores (2019).
A estrutura de dados da conexão TCP/IP (chamada OUCW_1) agora está armazenada no bloco de dados DB1 (Ver Figura 80).
Figura 79 - Estrutura de dados da conexão TCP/IP no bloco de dados DB1. Fonte: Os Autores (2019).
O passo seguinte a parametrização da conexão TCP/IP com a criação da respectiva estrutura de dados é copiar da biblioteca “Communication Blocks” os blocos de função FB63 "TSEND", FB64 "TRCV", FB65 "TCON" e FB66 "TDISCON" para o programa do usuário, armazenado no bloco OB1 e executado ciclicamente.
O bloco de função FB65 "TCON” é o primeiro a ser copiado para o bloco de operação OB1 e deve ser associado a um bloco de dados que nesse caso será o DB25 que armazenará a estrutura de dados dos parâmetros de entrada e saída do FB65 (Ver Figura 80).
Figura 80 - Bloco de função FB65 "TCON” em operação. Fonte: Os Autores (2019).
É a partir do bloco de função FB65 "TCON” que se inicia e estabelece a conexão com o parceiro, sendo necessário que o parâmetro de entrada REQ
(REQUEST) seja levado a nível lógico 1 através de uma borda de subida.
A borda de subida utilizada no parâmetro REQ do FB65 "TCON” é promovida pela memória clock M0.3 cujo período é de 500 ms. Essa memória é habilitada durante a configuração de hardware do PLC Siemens e garante que a conexão seja reestabelecida caso ocorra desconexão do meio físico ou outro tipo de desconexão não prevista.
A Figura 81 ilustra o procedimento para habilitar a memória clock no PLC Siemens a partir da janela de configuração de hardware.
Figura 81 - Habilitando a memória clock no PLC Siemens. Fonte: Os Autores (2019).
O parâmetro de entrada ID faz referência à conexão a ser estabelecida com o parceiro remoto e deve ser preenchido com o mesmo valor definido durante a criação da estrutura de dados de conexão TCP/IP, sendo que os demais blocos de comunicação também devem ser associados a esse mesmo ID.
O parâmetro de entrada CONNECT é um ponteiro para a estrutura de dados criada com os parâmetros da conexão TCP/IP associada (DB1.OUCW_1) e seu preenchimento junto ao bloco é fundamental para que o mesmo opere de forma adequada.
O parâmetro de saída DONE apresenta nível lógico 0 quando a tarefa não foi iniciada ou ainda está em execução e apresenta nível lógico 1 quando a tarefa foi executada sem erros.
O parâmetro de saída BUSY em nível lógico 1 indica que a tarefa ainda está em execução e em nível lógico 0 indica que a tarefa foi concluída.
Os parâmetros de saída ERROR e STATUS estão associados. Enquanto o primeiro em nível lógico 1 indica a ocorrência de um erro, o segundo apresenta a descrição acerca do erro ocorrido.
O bloco de função FB64 "TRCV" é o seguinte a ser copiado para o bloco OB1. Ele também deve ser associado a um bloco de dados, nesse caso DB64, que armazenará a estrutura de dados dos parâmetros de entrada e saída do FB64 (Ver Figura 82).
Figura 82 - Bloco de função FB64 "TRCV” em operação. Fonte: Os Autores (2019).
O bloco de função FB64 "TRCV" é responsável por receber os dados enviados por uma conexão estabelecida pelo bloco de função FB65 "TCON". Ele está apto a receber dados quando o parâmetro de entrada EN_R estiver em nível lógico igual a 1.
O parâmetro de entrada ID faz referência à conexão a ser estabelecida com o parceiro remoto e deve ser preenchido com o mesmo valor definido durante a criação da estrutura de dados de conexão TCP/IP e usado no bloco de função FB65 "TCON".
O parâmetro de entrada LEN é utilizado para especificar o comprimento da área de recebimento se for diferente de zero. Se LEN for igual a zero o comprimento da área de recebimento será definido pelo comprimento do dado recebido.
O parâmetro DATA é um ponteiro para um ARRAY de bytes chamado de DADOS (por exemplo), armazenado num bloco de dados, nesse caso o DB2 (“DB_Server_Recebe”), e que deve preenchido com os dados recebidos. É importante que o parâmetro DATA sempre receba as especificações completas do parâmetro DB (P#DB2.DBX0.0, por exemplo).
O parâmetro de saída NDR apresenta nível lógico 0 quando a tarefa não foi iniciada ou ainda está em execução e apresenta nível lógico 1 quando a tarefa foi executada com sucesso.
O parâmetro de saída BUSY em nível lógico 1 indica que a tarefa ainda não foi concluída e em nível lógico 0 indica que a tarefa foi concluída.
Os parâmetros de saída ERROR e STATUS estão associados. Enquanto o primeiro em nível lógico 1 indica a ocorrência de um erro, o segundo apresenta a descrição acerca do erro ocorrido.
O parâmetro de saída RCVD_LEN indica em bytes a quantidade de dados realmente recebidos.
Para avaliar e demonstrar o sucesso da interoperabilidade entre PLCs em rede Ethernet TCP/IP foi necessário mover o byte “DB_Server_Recebe”.DADOS[0] recebido do PLC Moeller através do bloco de função FB64 "TRCV" para o byte de saída digital PQB137 do PLC Siemens (Ver Figura 83).
Figura 83 - Movendo os dados do PLC Moeller através da conexão Ethernet TCP/IP para as saídas digitais do PLC Siemens.
O bloco de função FB63 "TSEND" também deve ser copiado para o bloco OB1 e associado a um bloco de dados, nesse caso DB63, que armazenará a estrutura de dados dos parâmetros de entrada e saída do FB63 (Ver Figura 84).
Figura 84 - Bloco de função FB63 "TSEND” em operação. Fonte: Os Autores (2019).
O bloco de função FB63 "TSEND" é responsável por enviar os dados através de uma conexão estabelecida pelo bloco de função FB65 "TCON". Ele está apto a enviar dados quando o parâmetro de entrada REQ (REQUEST) é levado a nível lógico 1 através de uma borda de subida.
A borda de subida mencionada é promovida pela memória M2.0. Um bloco de desigualdade compara o valor do byte de entrada digital PIB136 do PLC Siemens com os dados anteriormente enviados pelo bloco de função FB63 "TSEND" e, caso a desigualdade seja verdadeira, leva a memória M2.0 ao nível lógico 1 (Ver Figura 84). Essa lógica foi criada para a garantir que o canal de saídas digitais do PLC Moeller cliente TCP/IP, compartilhado pelos PLCs Siemens e Phoenix Contact através da conexão TCP/IP, seja atualizado apenas quando ocorra mudança nas entradas digitais de um dos dois PLCs servidores TCP/IP.
Figura 85 - Lógica para modificação da memória M2.0 e atualização do byte de envio de dados. Fonte: Os Autores (2019).
O parâmetro de entrada ID faz referência à conexão a ser estabelecida com o parceiro remoto e deve ser preenchido com o mesmo valor definido durante a criação da estrutura de dados de conexão TCP/IP e usado no bloco de função FB65 "TCON".
O parâmetro de entrada LEN é utilizado para especificar o número máximo de bytes a serem enviados.
O parâmetro DATA é um ponteiro para um ARRAY de bytes chamado de DADOS (por exemplo), armazenado num bloco de dados, nesse caso o DB3 (“DB_Server_Envia”), e que deve ser preenchido com os dados a enviar. É importante que o parâmetro DATA sempre receba as especificações completas do parâmetro DB (P#DB3.DBX0.0, por exemplo).
O parâmetro de saída DONE apresenta nível lógico 0 quando a tarefa não foi iniciada ou ainda está em execução e apresenta nível lógico 1 quando os dados a serem enviados foram completamente transmitidos.
O parâmetro de saída BUSY em nível lógico 1 indica que a tarefa ainda está em execução e em nível lógico 0 indica que a tarefa foi concluída.
Os parâmetros de saída ERROR e STATUS estão associados. Enquanto o primeiro em nível lógico 1 indica a ocorrência de um erro, o segundo apresenta a descrição acerca do erro ocorrido.
O bloco de função FB66 "TDISCON" é responsável por encerrar a conexão estabelecida pelo bloco de função FB65 "TCON" com o parceiro de comunicação. Embora tenha sido movido para o programa do usuário nesse projeto, não foi associado a nenhum bloco de dados nem mesmo utilizado no processo de comunicação, pois optou-se por manter o PLC Siemens como servidor apto a receber conexão do cliente TCP/IP (PLC Moeller) a qualquer momento, sendo esse último o único responsável por encerrar a conexão.
Parâmetros e configurações associados ao bloco de função FB66 "TDISCON" podem ser facilmente conferidos através dos guias de ajuda disponíveis no software Siemens SIMATIC STEP 7 ou em manuais disponibilizados pelo fabricante.
5.2 CONFIGURAÇÃO DOS BLOCOS DE COMUNICAÇÃO TCP/IP NO PLC PHOENIX CONTACT AXC 1050
A comunicação utilizando o protocolo TCP/IP para troca de dados por meio da interface Ethernet presente no PLC AXC 1050 da Phoenix Contact é administrada pelos blocos “IP_CONNECT”, “IP_USEND” e “IP_URCV” disponíveis na biblioteca “Function Blocks” do software Phoenix Contact PC Worx (Ver Figura 86).
Figura 86 - Blocos de comunicação TCP/IP para o PLC AXC 1050. Fonte: Os Autores (2019).
O bloco de função “IP_CONNECT” é o primeiro a ser adicionado ao programa do usuário (Ver Figura 87). Uma de suas funções é estabelecer conexão entre um sistema de controle e qualquer dispositivo Ethernet via TCP/IP.
Figura 87 - Bloco de função “IP_CONNECT” em operação. Fonte: Os Autores (2019).
O parâmetro de entrada EN_C, quando em nível lógico 1, permite que bloco estabeleça conexão com um parceiro através de Ethernet via TCP/IP a partir das configurações definidas no parâmetro de entrada PARTNER.
Para conexões TCP/IP entre um sistema de controle e outro dispositivo Ethernet compatível com TCP/IP, é necessário que um parceiro seja configurado como ATIVO (cliente TCP/IP) e o outro como PASSIVO (servidor TCP/IP). Essa configuração é realizada com auxílio de uma STRING associada ao parâmetro de entrada PARTNER, que além dessa configuração também deve conter número da porta a ser utilizada pelo parceiro PASSIVO, através da qual ocorrerá a conexão, e o endereço IP do parceiro ATIVO caso pretenda-se permitr apenas a conexão com o mesmo. No programa desenvolvido essa STRING tem o formato '/PASSIVE
/PORT=3001 /IP=10.19.1.200'.
O parâmetro de saída VALID em nível lógico 1 indica que uma conexão valida foi estabelecida com um dispositivo Ethernet compatível com TCP/IP. Essa saída permanece em nível lógico 1 enquanto a conexão existir.
Os parâmetros de saída ERROR e STATUS estão associados. Enquanto o primeiro em nível lógico 1 indica a ocorrência de um erro, o segundo apresenta a descrição acerca do erro ocorrido.
O parâmetro de saída ID identifica de forma exclusiva uma conexão e, se existirem outras conexões, é possível diferenciá-las através desse parâmetro.
O bloco de função “IP_URCV” tem como função receber dados enviados por um dispositivo parceiro Ethernet compatível com TCP/IP (Ver Figura 88).
Figura 88 - Bloco de função “IP_URCV” em operação. Fonte: Os Autores (2019).
O parâmetro de entrada EN_R, quando em nível lógico 1, prepara o bloco para recepção de dados. No programa desenvolvido ele foi associado ao parâmetro de saída VALID do bloco de função “IP_CONNECT” através da variável “Conexao_Estabelecida”, de forma a garantir que a recepção de dados só esteja habilitada com existir uma conexão.
O parâmetro de entrada ID informa o bloco de recebimento "IP_URCV" sobre o parceiro de comunicação que enviará os dados a serem recebidos. NO programa desenvolvido ele foi associado ao parâmetro de saída ID do bloco de função “IP_CONNECT” através da variável “ID_Conexao”.
O parâmetro RD_1 é o buffer de recebimento do bloco.
Buffers de envio/recebimento usuais são ARRAYS do tipo byte, word e double word.
Para o programa desenvolvido foi criado um novo tipo de dados (Data Type) fundamentado num ARRAY de bytes de oito posições. A Figura 88 ilustra o início da desse procedimento.
Figura 89 - Inserindo novo tipo de dado no software Phoenix Contact PC Worx. Fonte: Os Autores (2019).
A Figura 90 demonstra o procedimento de declaração e criação do novo tipo de dados chamado “AR_0_7_B”.
Figura 90 - Declaração de tipo de dado no software Phoenix Contact PC Worx. Fonte: Os Autores (2019).
A variável “Buffer_Recebimento” foi criada utilizando o novo tipo de dados “AR_0_7_B” e associada ao parâmetro RD_1 do bloco de função “IP_URCV”.
A primeira posição do ARRAY “Buffer_Recebimento”, isto é, o byte “Buffer_Recebimento[0]” é utilizada para informar o comprimento dos dados recebidos, enquanto a segunda posição, o byte “Buffer_Recebimento[1]”, informa a partir de que posição os dados devem ser lidos no ARRAY “Buffer_Recebimento” que pode iniciar a partir da terceira posição, isto é, o byte “Buffer_Recebimento[2]”.
No programa desenvolvido, após o recebimento dos dados enviados pelo PLC Moeller, o byte “Buffer_Recebimento[2]” é movido para o byte “Saidas_Digitais_Phoenix.B0” associado as saídas digitais do PLC Phoenix.
O parâmetro de saída NDR indica se o bloco recebeu com sucesso todos os dados transmitidos pelo parceiro.
Os parâmetros de saída ERROR e STATUS estão associados. Enquanto o primeiro em nível lógico 1 indica a ocorrência de um erro, o segundo apresenta a descrição acerca do erro ocorrido.
O bloco de função “IP_USEND” tem como função transmistir dados para por um dispositivo parceiro Ethernet compatível com TCP/IP (Ver Figura 91).
Figura 91 - Bloco de função “IP_USEND” em operação. Fonte: Os Autores (2019).
O parâmetro de entrada REQ, quando levado a nível lógico 1 através de uma borda de subida, habilita o bloco para transmissão de dados.
A variável booleana “Envia_Dado” é uma das condições para promover a borda de subida mencionada. Um bloco de desigualdade compara o valor do byte de entrada digital do PLC Phoenix associado a variável “Entradas_Digitais_Phoenix.B1” com os dados anteriormente enviados pelo bloco de função "IP_USEND" e, caso a desigualdade seja verdadeira, leva a variável booleana “Envia_Dado” ao nível lógico 1. Essa lógica foi criada para a garantir que o canal de saídas digitais do PLC Moeller cliente TCP/IP, compartilhado pelos PLCs Siemens e Phoenix através da conexão TCP/IP, seja atualizado apenas quando ocorra mudança nas entradas digitais de um dos dois PLCs servidores TCP/IP.
O parâmetro de entrada ID informa o bloco de transmissão "IP_URCV" sobre o parceiro de comunicação que receberá os dados a serem transmitidos. No programa desenvolvido ele foi associado ao parâmetro de saída ID do bloco de função “IP_CONNECT” através da variável “ID_Conexao”.
O parâmetro SD_1 é o buffer de transmissão do bloco.
Buffers de envio/recebimento usuais são ARRAYS do tipo byte, word e double word.
Para o programa desenvolvido foi criado o tipo de dado “AR_0_7_B” mencionado anteriormente (ARRAY de bytes de oito posições).
A variável “Buffer_Transmissao” foi criada utilizando o novo tipo de dados “AR_0_7_B” e associada ao parâmetro SD_1 do bloco de função “IP_USEND”.
A primeira posição do ARRAY “Buffer_Transmissao”, isto é, o byte “Buffer_ Transmissao[0]” é utilizada para informar o comprimento dos dados recebidos, enquanto a segunda posição, o byte “Buffer_Transmissao[1]”, informa a partir de que posição os dados devem ser lidos pelo parceiro de comunicação no ARRAY “Buffer_ Transmissao” que pode iniciar a partir da terceira posição, isto é, o byte “Buffer_ Transmissao[2]”.
No programa desenvolvido, o valor do byte “Entradas_Digitais_Phoenix.B1” associado as entradas digitais do PLC Phoenix é movido para o byte “Buffer_Transmissao[2]” antes da transmissão dos dados para o PLC Moeller.
O parâmetro de saída DONE em nível lógico 1 indica que o bloco transmitiu todos os dados completamente e com sucesso.
Os parâmetros de saída ERROR e STATUS estão associados. Enquanto o primeiro em nível lógico 1 indica a ocorrência de um erro, o segundo apresenta a descrição acerca do erro ocorrido.
5.3 CONFIGURAÇÃO DOS BLOCOS DE COMUNICAÇÃO TCP/IP NO PLC MOELLER XC-CPU201-XV
Antes da configuração dos blocos de comunicação TCP/IP no PLC Moeller XC-CPU201-XV é necessário iniciar um novo projeto no software easy Soft
CoDeSys (Ver Figura 92).
Figura 92 - Iniciando um novo projeto no software easy Soft CoDeSys. Fonte: Os Autores (2019).
Na criação do novo projeto seleciona-se o hardware a ser utilizado, nesse caso o PLC Moeller XC-CPU201-EC512K-8DI-6DO-XV (Ver Figura 93).
Figura 93 - Seleção do PLC XC-CPU201-XV no software easy Soft CoDeSys. Fonte: Os Autores (2019).
O passo seguinte é selecionar o tipo de Unidade de Organização do Programa (POU - Program Organization Unit), definir um nome para ela e a linguagem de programação a ser utilizada. A Figura 94 ilustra esses procedimentos.
Figura 94 - Configurando a POU no software easy Soft CoDeSys. Fonte: Os Autores (2019).
Para configurar a comunicação via Ethernet é necessário ir até o menu
“Online” e selecionar a opção “Communication Parameters” (Ver Figura 95).
Figura 95 - Acesso a opção “Communication Parameters” no software easy Soft CoDeSys. Fonte: Os Autores (2019).
Na janela “Communication Parameters” clica-se no botão “New”, define-se um nome para o novo canal de comunicação e seleciona-se o dispositivo “Tcp/Ip
(Level 2 Route)” (Ver Figura 96).
Figura 96 - Criando canal de comunicação TCP/IP com PLC no software easy Soft CoDeSys. Fonte: Os Autores (2019).
No passo seguinte seleciona-se o item “localhost” na coluna “Value” do novo canal de comunicação, digita-se o endereço IP atual do PLC e clica-se no botão
“OK”. No início do projeto o PLC Moeller estava com seu IP de fábrica
192.168.119.200 (Ver Figura 97).
Figura 97 - Inserindo o endereço IP atual do PLC Moeller no software easy Soft CoDeSys. Fonte: Os Autores (2019).
Para definir um novo endereço IP para o PLC Moeller é necessário entrar em modo ONLINE. Para tanto é necessário ir até o menu “Online” e selecionar a opção “Login” (Ver Figura 98).
Figura 98 - Entrar em modo ONLINE com PLC no software easy Soft CoDeSys. Fonte: Os Autores (2019).
Em seguida é necessário selecionar a aba “Resources” e clicar duas vezes sobre o item “PLC - Browser” para ter acesso a janela onde comandos padrão