Componentes
Software: MasterTool Xtorm 2.14
CLP: HX3040; Firmware: 1.11.2.0
Outros: Cabo Ethernet e Switch
Seções do Tutorial
1. ARQUITETURA
2. DESENVOLVIMENTO
2.1. Criando um novo projeto no MasterTool
2.2. Criando GVL
2.3. Adicionando o dispositivo
2.4. Criando o programa
2.5. Configurando o Server
3. RESULTADOS
1. ARQUITETURA
2. DESENVOLVIMENTO
Neste tutorial, vamos desenvolver um exemplo de comando LATCH ON e LATCH OFF executado pelo Driver DNP3 Client para um IED. O software utilizado será o MasterTool Xtorm na sua versão 2.14, um software desenvolvido pela Altus para a programação da Série Hadron Xtorm.
2.1. Criando novo projeto no MasterTool
Crie um novo projeto clicando em "Novo Projeto", coloque o nome e o caminho da pasta na qual você deseja salvá-lo.
Para o desenvolvimento deste tutorial, iremos utilizar um HX3040 e a linguagem de programação em Ladder (LD); lembre-se de que além de configurar a CPU, você deve configurar o bastidor em que a Xtorm está e a fonte utilizada. Clique em próximo e é nesta etapa que você define as linguagens de programação como desejar. Após isso, o programa será aberto.
2.2. Criando GVL
Após criar o projeto, devemos declarar a variável que será utilizada para executar o comando da comunicação. Para isso, vamos criar uma GVL (Lista de Variáveis Globais) clicando com o botão direito em UserGVLs >> Acrescentar Objeto >> Lista de Variáveis Globais e iremos nomeá-la como "Comandos". Ao abrir a GVL, mude para o formato textual e apague a primeira frase que aparece, assim não iremos precisar chamar o nome da lista de variáveis global. Em seguida, declare uma variável "Ponto_Digital" do tipo BOOL.
2.3. Adicionando o dispositivo
Depois de declarar a variável, você deve mapeá-la para executar o comando. Para que isso seja possível, você precisa primeiro adicionar os dispositivos necessários referente ao protocolo DNP3.
Clique com o botão direito sobre a aba NET1 >> Acrescentar Dispositivo. A aba de Acrescentar Dispositivo vai abrir e clique em "+" ao lado esquerdo do nome DNP3 >> DNP3 Ethernet >> DNP3 Client, clique sobre o DNP3 Client e vá em Acrescentar. Em seguida, faça o mesmo procedimento de clicar com o botão direito mas agora sobre o dispositivo que recém adicionamos (DNP3 Client) e adicione o Outstation.
A configuração na NET1 deve ficar como na imagem abaixo.
Clique em DNP3_Client e configure o Endereço (Mestre) em Camada de Enlace. Você vai notar que o endereço padrão de fábrica é 4, neste tutorial vamos deixar o endereço em 3.
Após, entre na aba de Outstation e vá em Mapeamentos. Nesta aba você vai adicionar a variável que declaramos anteriormente, a Ponto_Digital, em Variável de Valor. O Grupo Estático vamos deixar em g10 - Saída Digital e o índice vamos deixar em 2 (um exemplo). Em seguida, você deve gerar variável de qualidade que vai servir para utilizar na aplicação para identificar o status do Device.
Ao clicar em Gerar Variáveis de Qualidade, você vai perceber que vai estar associada em UserGVLs >> Qualities.
Os valores possíveis na variável de qualidade estão disponíveis no Manual de Utilização da Xtorm na página 73. A conversão dessa qualidade interna para qualidade do DNP3 também está descrita no Manual de Utilização, na mesma página.
Ainda em Outstation, na aba de Camada de Enlace, você deve configurar o Endereço (Escravo) que deve estar diferente do Mestre. No caso deste tutorial, definimos o endereço do mestre em 3, então colocamos o do escravo em 4. O Endereço IP deve ser definido com o IP do Server.
2.4. Criando o programa
Para executar o comando, devemos criar um programa que consiga realizar essa funcionalidade. Clique com o botão direito sobre a aba UserPOUs >> Acrescentar Objeto >> POU. Irá abrir uma janela de acrescentar POU e aqui você pode definir o nome que deseja, o tipo e a linguagem de implementação. Vamos definir o nome como Comando, o tipo como Programa e a linguagem será em Texto Estruturado (ST).
Em princípio, no campo de declaração de variáveis, mude para o formato textual e declare o bloco funcional que iremos utilizar que será do tipo DNP3_BinaryCommand. Abaixo do campo de declaração de variáveis, você vai criar o código para executar o comando de LATCH ON e LATCH OFF.
Primeiro, vinculamos a variável criada para o comando na entrada do bloco funcional. Depois, chamamos o bloco funcional no programa e carregamos na partida e em um único ciclo alguns valores iniciais necessários para o funcionamento do bloco, porque dessa forma, preparamos o mesmo para executar no primeiro comando um LATCH ON. Após, preparamos o bloco para executar um novo LATCH ON após o mesmo executar um LATCH OFF e em seguida, preparamos o bloco para executar um novo LATCH OFF após ele executar um LATCH ON.
Criando o programa e realizando as configurações anteriores, a aplicação está pronta para que seja possível fazer login na CPU e colocá-la em Run.
2.5. Configurando o Server
Em outro projeto, devemos configurar o Server DNP3. Neste tutorial, estamos utilizando outra Xtorm HX3040 como Server, então iremos repetir o processo de criar um novo projeto no MasterTool Xtorm. Seguindo o processo, devemos declarar a variável utilizada para executar o comando em UserPrg, a Ponto_Digital. Em seguida, adicione os dispositivos na NET1, mesmo processo que para o Client, porém adicionando o DNP3 Server e depois o Client, onde iremos inserir as configurações do DNP3 Client.
Primeiro, declare a variável Ponto_Digital na aba Mapeamentos e configure da seguinte maneira.
Em Camada de Enlace configure com as informações que utilizamos no Client, como Endereço (Escravo) igual a 4 e Endereço (Mestre) igual a 3.
Depois de configurar conforme descrito acima, podemos realizar login na CPU e colocar em Run.
3. RESULTADOS
Por fim, com as duas CPU's em Run, você já pode executar a aplicação. Antes de executar algum comando, deve-se verificar a variável de qualidade que geramos ao mapear a variável de comando. Vá em UserGVLs e em Qualities. Certifique-se de que em VALIDITY o valor esteja em VALIDITY_GOOD e que todas as FLAGS estejam em FALSE. Se assim estiver, para executar um comando novo na aplicação, basta gerar um pulso na variável Funcao_comand_Dig.bRequest, ou seja, preparar e enviar um valor de TRUE para a variável.
Após enviar TRUE para a variável bRequest, verifique se a variável de comando Ponto_Digital recebeu o comando de LATCH ON, ou seja, se ela assumiu TRUE.
Caso queira realizar um novo comando, deve gerar novamente um pulso na variável bRequest. Se o comando anterior foi um LATCH ON, o próximo comando será de LATCH OFF, seguindo as configurações realizadas na programação feita anteriormente na POU Comando.
Comentários
0 comentário
Por favor, entre para comentar.