configurações para integração entre ifix e bancos de dados ... · configuração da conexão...

19
Mekatronik Configura iFix e ban Carolina Fardo Gi ações para integraçã ncos de dados relaci iacomelli ão entre ionais

Upload: phamquynh

Post on 08-Nov-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Configurações para integração entre iFix e bancos de dados ... · Configuração da conexão ODBC Se há alguma dúvida quanto a esses dados, o “MySQL Administrator” os fornece

Mekatronik

Configurações para integração entre

iFix e bancos de dados relacionais

Carolina Fardo Giacomelli

Configurações para integração entre

iFix e bancos de dados relacionais

Carolina Fardo Giacomelli

Configurações para integração entre

iFix e bancos de dados relacionais

Page 2: Configurações para integração entre iFix e bancos de dados ... · Configuração da conexão ODBC Se há alguma dúvida quanto a esses dados, o “MySQL Administrator” os fornece

Carolina Fardo Giacomelli junho 2010

1

Este tutorial visa mostrar de maneira simples, em 6 passos, como configurar o iFix e o

MySQL para transferências de dados do supervisório para um banco de dados relacional, e vice

versa.

� Passo 1. Criar o banco de dados

� Passo 2. Configurar o DSN

� Passo 3. Criar tabelas

Primeiramente deve-se frisar que na instalação do MySQL devem ser instalados três

componentes:

� O Servidor do Banco de Dados

� O Administrados

� O Conector ODBC

Passo 1. Criar o banco de dados

Primeiramente é preciso criar o banco de dados. Esta etapa depende muito do banco

de dados que será usado. Aqui será um banco de dados do MySQL. Esta criação é simples e

pode ser vista nas figuras abaixo.

Figura 1. Ambiente MySQL

� Passo 4. Criar consultas

� Passo 5. Configurar o SCU

� Passo 6. Criar os blocos SQL

Page 3: Configurações para integração entre iFix e bancos de dados ... · Configuração da conexão ODBC Se há alguma dúvida quanto a esses dados, o “MySQL Administrator” os fornece

Carolina Fardo Giacomelli junho 2010

2

Figura 2. Detalhe da criação do BDR

Passo 2. Configurar o DSN

Agora é preciso configurar o DSN. Um DSN, ou Data Source Name é utilizado para

definir dois componentes essenciais à comunicação:

1. O driver ODBC

2. A localização do servidor do banco de dados e suas tabelas.

No “Painel de Controle”, na pasta “Ferramentas Administrativas”, está o ícone de

“Fontes de Dados (ODBC)”

Aqui se criará uma nova conexão ODBC com o banco de dados criado.

Figura 3. Fontes de Dados (ODBC)

Clique em adicionar, procure o driver adequado...

Page 4: Configurações para integração entre iFix e bancos de dados ... · Configuração da conexão ODBC Se há alguma dúvida quanto a esses dados, o “MySQL Administrator” os fornece

Carolina Fardo Giacomelli junho 2010

3

Figura 4. Localização do driver adequado ao programa utilizado para gerenciar o BDR

...e preencha corretamente a aba a seguir.

Figura 5. Configuração da conexão ODBC

Se há alguma dúvida quanto a esses dados, o “MySQL Administrator” os fornece.

Figura 6. MySQL Administrator

Page 5: Configurações para integração entre iFix e bancos de dados ... · Configuração da conexão ODBC Se há alguma dúvida quanto a esses dados, o “MySQL Administrator” os fornece

Carolina Fardo Giacomelli junho 2010

4

Figura 7. Teste de conexão com o banco

Pronto! Esta etapa está terminada.

Figura 8. Conexão ODBC recém criada

Passo 3. Criar tabelas

Ao menos 3 tabelas serão criadas.

Tabela de dados - armazena os dados desejados

Tabela SQLLIB - armazena as instruções para as transferências do/para o banco

Tabela SQLERR - registra erros durante o processo

As duas últimas são tabelas padrão do iFix e devem ser criadas segundo as seguintes

especificações:

Page 6: Configurações para integração entre iFix e bancos de dados ... · Configuração da conexão ODBC Se há alguma dúvida quanto a esses dados, o “MySQL Administrator” os fornece

Carolina Fardo Giacomelli junho 2010

5

Figura 9. Tabela SQLERR

Observar os tipos de dados e tamanhos dos campos na tabela.

Nome do Campo Tipo de dado (tamanho)

td Data/Hora

node Texto (8)

tag Texto (10 a 30)

sqlname Texto (8)

fix_err Texto (100)

sql_err Texto (250)

prog_err Texto (100)

Tabela 1. Campos da tabela “SQLERR”

Page 7: Configurações para integração entre iFix e bancos de dados ... · Configuração da conexão ODBC Se há alguma dúvida quanto a esses dados, o “MySQL Administrator” os fornece

Carolina Fardo Giacomelli junho 2010

6

Figura 10. Tabela SQLLIB

Nome do Campo Tipo de dado (tamanho)

sqlname Texto (8)

sqlcmd Texto (100 a 255)

Tabela 2. Campos da tabela “SQLLIB”

Page 8: Configurações para integração entre iFix e bancos de dados ... · Configuração da conexão ODBC Se há alguma dúvida quanto a esses dados, o “MySQL Administrator” os fornece

Carolina Fardo Giacomelli junho 2010

7

Figura 11. Exemplo de tabela de dados

Este é um exemplo de tabela de dados. Mais adiante será feito um exemplo utilizando

blocos do iFix transferindo dados para ela.

Com esta tabela criada, encerramos esta etapa.

Passo 4. Criar consultas

Na tabela SQLLIB deverão ser inseridas as instruções para transferência de dados do e

para o banco de dados relacional. Os comandos são escritos em SQL (Structure Query

Language) cuja estrutura não será abordada aqui.

Importante: Deve-se certificar-se que a ordem dos tags no bloco SQD é a mesma

ordem dos itens da sua consulta.

Page 9: Configurações para integração entre iFix e bancos de dados ... · Configuração da conexão ODBC Se há alguma dúvida quanto a esses dados, o “MySQL Administrator” os fornece

Carolina Fardo Giacomelli junho 2010

8

Figura 12. Inserindo o comando na tabela SQLLIB

Com o comando “Edit” acionado, é possível editar os campos da tabela. Esta é uma das

formas de inserir o nome e o conteúdo do comando na tabela SQLLIB.

As interrogações no lugar dos valores indicam que este dado virá de uma conexão

ODBC. Aqui, esses dados serão tags do iFix que ficaram explícitos no bloco SQD que será visto

mais adiante. É importante reparar que a ordem desses dados é importante, como já foi dito

mais acima, pois deverá ser igual à ordem dos tags no bloco SQD.

Passo 5. Configurar o “System Configuration Utility” (SCU)

Agora a tarefa SQL será adicionada e configurada. Será criada uma conta que permitirá

uma conexão com o banco por meio do DSN previamente configurado.

No SCU, clique no ícone do “SQL Accounts”:

Page 10: Configurações para integração entre iFix e bancos de dados ... · Configuração da conexão ODBC Se há alguma dúvida quanto a esses dados, o “MySQL Administrator” os fornece

Carolina Fardo Giacomelli junho 2010

9

Figura 13. SCU

Figura 14. SQL Accounts

Clicando em “adicionar”, aparecerá a janela para configuração da conta. No campo

“Database Type” seria colocado MySQL Server se houvesse esta opção. Como não, coloca-se

“outros”. E no campo “Database Identifier” coloca-se a conexão ODBC criada no Passo 2.

Figura 15. Configuração da conta

Page 11: Configurações para integração entre iFix e bancos de dados ... · Configuração da conexão ODBC Se há alguma dúvida quanto a esses dados, o “MySQL Administrator” os fornece

Carolina Fardo Giacomelli junho 2010

10

Finalizado isto, deve-se configurar a tarefa SQL como se segue:

Figura 16. Configuração da tarefa SQL

Por último, no SCU, devemos verificar se uma tarefa foi adicionada na lista. O

WSQLODC. Geralmente, ela é adicionada automaticamente junto a essas configurações. Mas,

se ela não estiver lá, é preciso colocá-la.

Page 12: Configurações para integração entre iFix e bancos de dados ... · Configuração da conexão ODBC Se há alguma dúvida quanto a esses dados, o “MySQL Administrator” os fornece

Carolina Fardo Giacomelli junho 2010

11

Figura 17. SCU - detalhe da localização da lista de tarefas

Figura 18. Lista de tarefas do iFix

Para adicionar a tarefa, no caso dela não estar lá, basta seguir o procedimento simples a

seguir:

Page 13: Configurações para integração entre iFix e bancos de dados ... · Configuração da conexão ODBC Se há alguma dúvida quanto a esses dados, o “MySQL Administrator” os fornece

Carolina Fardo Giacomelli junho 2010

12

Figura 19. Adicionando tarefas no SCU (I)

Figura 20. Adicionando tarefas no SCU (II)

Passo 6. Configurar os blocos SQL na base de dados do iFix – SQT e SQD

O iFix possui dois blocos que lidam com conexões com banco de dados relacionais. O

SQL Trigger (SQT) e o SQL Data (SQD) e eles funcionam em cadeias.

SQT Comandos que não exigem transferência de dados, como o de

remoção, por exemplo.

SQT � SQD Comandos com transferência de até 20 tags

SQT � SQD � ... � SQD Comandos com transferência de mais de 20 tags.

Page 14: Configurações para integração entre iFix e bancos de dados ... · Configuração da conexão ODBC Se há alguma dúvida quanto a esses dados, o “MySQL Administrator” os fornece

Carolina Fardo Giacomelli junho 2010

13

SQT – Esse é o gatilho do transporte de dados. Deverão ser fornecidos o nome do comando

configurado na tabela SQLLIB, a conta configurada no SCU, o tipo de gatilho, por tempo ou por

evento, e o bloco de dados correspondente àquele gatilho.

Figura 21. Bloco SQT

OBS!: O “Confirm Tag” avisa que o comando de transferência foi executado, mas não garante

que os dados foram transferidos corretamente.

SQD – esse bloco é o secundário numa cadeia com o SQT. Ele contém os dados que serão

transportados e a direção do transporte, se para o banco ou do banco. Deve-se tomar muito

cuidado com a ordem e o tipo de dados inseridos nesse bloco. Eles devem estar na mesma

ordem que o comando na tabela SQLLIB e não deve haver inconsistência no tipo desses dados.

No bloco há espaço para 20 tags. Se não for suficiente, outro bloco SQD pode ser posto em

cadeia no campo “Next” do SQD.

OU

Tag digital que vai para

1 com a transferência

para o BDR

Tag que disparará o

gatilho. Pode ser

digital ou analógico

Bloco de dados

correspondente

Gatilho por

tempo

Gatilho por

evento

Nome do comando

configurado na

tabela SQLLIB

Nome da conta

configurada no SCU

Page 15: Configurações para integração entre iFix e bancos de dados ... · Configuração da conexão ODBC Se há alguma dúvida quanto a esses dados, o “MySQL Administrator” os fornece

Carolina Fardo Giacomelli junho 2010

14

Figura 22. Bloco SQD

Note que a direção de transferência OUT é usada para inserir valores no BDR utilizando

os comandos INSERT ou UPDATE. Já a direção IN é usada para consultar dados já armazenados

no BDR trazendo-os para o iFix utilizando o comando SELECT.

Assim, quando é preciso armazenar algumas informações importantes de forma

segura, como o iFix não possui tags de caráter retentivo, pode-se usar como alternativa o

recurso de consultas a banco de dados relacionais.

Esse caminho do fluxo de dados é detalhado no final.

Mais uma vez, vale à pena enfatizar: A ordem dos tags devem estar de acordo com a

ordem no comando SQL (e não necessariamente igual à ordem dos campos declarados na

tabela) e o campo deve estar de acordo com o tipo de variável pedida pela tabela.

Figura 23. Detalhe do comando SQL na tabela SQLLIB

Bloco gatilho

correspondente

Tags a serem

gravados no DBR

Direção da transferência:

OUT – do iFix para o banco

IN – do banco para o iFix

Se forem necessários

mais tags, coloca-se

outro SQD em cadeia

Ordem dos tags

Page 16: Configurações para integração entre iFix e bancos de dados ... · Configuração da conexão ODBC Se há alguma dúvida quanto a esses dados, o “MySQL Administrator” os fornece

Carolina Fardo Giacomelli junho 2010

15

Figura 24. Detalhe da tabela tab_teste

Note que, no dado “data_hora” pedido, foi colocado no bloco SQD a palavra chave

TMDT. Existem outras que podem ser usadas:

NODENAME Nome do nó SCADA local

SQTBLK Nome do bloco SQT

TMDT A hora e a data atuais

TIME A hora atual

DATE A data atual

Tabela 3. Palavras chaves que podem ser usadas nos campos do bloco SQD

Para exemplificar será feito o seguinte teste: O tag digital “COMANDO_TESTE” será

usado, como já foi visto na descrição do tag SQT “SQT_TESTE”, como disparo quando seu valor

for de nível baixo para nível alto. O disparo irá gerar a gravação do valor do tag analógico

“VALOR_TESTE”, da data e hora e do tag que gerou o disparo na tabela correspondente no

BDR.

Tipo esperado

dos tags

Page 17: Configurações para integração entre iFix e bancos de dados ... · Configuração da conexão ODBC Se há alguma dúvida quanto a esses dados, o “MySQL Administrator” os fornece

Carolina Fardo Giacomelli junho 2010

16

Figura 25. Tags digital “COMANDO_TESTE” e analógico “VALOR_TESTE”

Figura 26. Visualização da tabela “tab_teste” no MySQL

Page 18: Configurações para integração entre iFix e bancos de dados ... · Configuração da conexão ODBC Se há alguma dúvida quanto a esses dados, o “MySQL Administrator” os fornece

Carolina Fardo Giacomelli junho 2010

17

IMPORTANTE: O “Mission Control” possui uma aba chamada “SQL” onde é possível monitorar

este processo. É muito importante na identificação de possíveis erros.

Figura 27. Mission Control

Iniciar/parar

processo

Verificar conexão

Verificar conta

Page 19: Configurações para integração entre iFix e bancos de dados ... · Configuração da conexão ODBC Se há alguma dúvida quanto a esses dados, o “MySQL Administrator” os fornece

Carolina Fardo Giacomelli junho 2010

18

Detalhamento do fluxo de dados

As figuras seguintes são adaptadas da apostila do curso “iFix Avançado” desenvolvida

pela GE Fanuc Automation.

Comando de leitura – SELECT

Figura 28. Fluxo na leitura

Comandos de escrita – INSERT e UPDATE

Figura 29. Fluxo na escrita

Comando de remoção – DELETE

Figura 30. Fluxo na remoção

Base de Dados iFix

Banco de Dados Relac. MySQL

1 2

6 4

Gatilho SQL

Dados SQL

Dados

SQLLIB

Tarefa SQL de tempo

real

3

5

Base de Dados iFix

Banco de Dados Relac. MySQL

1 2

5

Gatilho SQL

Dados SQL

Dados

SQLLIB

Tarefa SQL de tempo

real

3

4

Base de Dados iFix

Banco de Dados Relac. MySQL

1 2

4

Gatilho SQL

Dados

SQLLIB

Tarefa SQL de tempo

real

3