Neste tutorial estão descritas orientações e procedimentos para estabelecer uma conexão com Banco de Dados SQL Server e apresentação do mesmo em um data grid da IHM dos modelos X2, não suportado pela IHM X2 Base V2.
Componentes
IHM: X2
Seções do Tutorial
1. ARQUITETURA
2. DESENVOLVIMENTO
2.1. Configuração da IHM
2.2. Configurações para a criação de telas para a leitura e escrita de valores no banco através da IHM
2.3. Configuração do Banco de Dados
1. ARQUITETURA
A arquitetura para realização deste tutorial consiste em apenas energizar a IHM, devendo estar conectada a um computador. É necessário respeitar a tensão de alimentação e a instalação elétrica informadas no manual.
2. DESENVOLVIMENTO
Neste tutorial será mostrado como estabelecer uma conexão banco de dados sql server e apresentação do mesmo em um data grid de uma IHM X2 de qualquer modelo da série.
Vale ressaltar a importância de ter em mãos o Manual da Série X2 permitindo a consulta do usuário nas etapas da aplicação. Esse documento irá lhe orientar sobre as características técnicas, instalação mecânica, programação inicial, configurações e futuras manutenções.
O script de controle está na própria tela da IHM nesse exemplo.
Esse exemplo a IHM está sendo cliente de um banco de dados server da Microsoft ( SQL SERVER EXPRESS ) esse banco é um banco free.
Nesse exemplo foi utilizado o SQL server Express da Microsoft.
2.1. Configuração da IHM
Inicialmente adicionaremos a .dll na IHM, para isso, clique na aba Projetos, posteriormente em Assemblies de referência e clique em Adicionar, conforme destacado na imagem abaixo:
Após, localize a dll system.Data.SqlClient.dll na pasta e clique em abrir, conforme mostrado na figura abaixo. Lembre-se de retirá-la do Zip para que seja possível abri-la.
2.2. Configurações para a criação de telas para a leitura e escrita de valores no banco através da IHM
Para criar uma nova tela, na aba Home, clique em Add Screen:
A nova screen aparecerá junto com as demais na aba screens da árvore de Project Explorer, clique com o botão direito do mouse em cima desta nova tela e selecione Rename para renomeá-la, esta, chamamos de Escrita_Banco:
Tag
Na árvore de informações sobre o projeto, Project Explorer, aba Functions, poderá encontrar a TAG, marcada em vermelho na imagem abaixo, clique nela. Para adicionar uma TAG é preciso inicialmente adicionar um controller, neste caso com o protocolo modbus master. Assim, conforme a imagem a seguir, na aba controllers clique em add, Modcon, selecione o protocolo modbus master e clique em OK:
Em controllers, clique em Settings e configure as informações da janela que abrirá, Modbus Master, na sessão settings, conforme imagem abaixo:
Communication mode: Ethernet TCP/IP
Default station: 1
Modbus Protocol: RTU
Start address: 1-based
Na sessão stations desta mesma janela, configure as seguintes informações destacadas em vermelho:
Ao abrir a aba das Tags, clique em Add, para adicioná-las na tabela. Conforme a imagem, as Tags e informações das mesmas, nas quais usaremos no projeto estão destacadas em verde:
Os valores da coluna transmissor na tabela destacada em verde apresenta os endereços para o funcionamento de funções do transmissor de peso, a descrição da função de cada um deles está disponível no manual de utilização do transmissor de peso ALT-X1, disponível no site da Altus.
Criando a tela Escrita_Banco:
Numérico Analógico.
Para adicionar o numérico analógico entre em Início, clique no objeto, destacado em azul, conforme a imagem abaixo e posteriormente em Numérico Analógico no qual está marcado em amarelo na mesma figura.
Com objeto na tela, clique em cima dele, como destacado na imagem a seguir, entre em suas propriedades e determine o nome do mesmo para depois utilizar no Script, é possível colocar um nome diferente do existente no projeto, mas deve-se atentar para que eles estejam alterados no código também:
Atentar-se de que este objeto da imagem anterior é uma String, e isso deve ser definido também, conforme:
O objeto Numérico Analógico para definir a variável COR, tem como nome ValDigCor, como a anterior esta também é uma String, e isso deve ser definido da mesma maneira.
Neste objeto usaremos uma TAG, de valor DINT, para adicioná-la, clique na seta para baixo destacada em amarelo na imagem e selecione a TAG desejada pelo nome, neste caso, Peso_DINT, defina o formato como Inteiro em Display Format:
A variável peso, neste projeto foi demonstrada de duas formas, como um número inteiro e outro flutuante, como no caso da imagem abaixo:
Para adicionar a mesma, clique na seta para baixo ao lado da TAG e selecione-a, neste contexto, Peso_FLOAT, defina o formato como Decimal em Display Format:
Este próximo objeto Numérico Analôgico têm a funcionalidade de transmitir mensagens de erros da gravação no banco, caso houverem:
Por tanto, ela funciona também com uma TAG, segue:
O Script abaixo executa a conexão com o Banco e depois executa a escrita dos valores digitados na IHM nas colunas do Banco.
A imagem anterior mostra o script que tem extrema importância para o funcionamento da escrita no banco de dados. O IP destacado em azul, 192.168.15.2 é o IP do local onde está o banco, que neste caso, é o computador. Você deve alterar para o IP do local onde está o seu banco.
IHM, destacado em verde, é o nome que demos ao banco.
sa, destacado em amarelo, é o nome que demos ao usuário, para o login no banco de dados.
Altus@1982, em vermelho, é a senha para o acesso ao banco.
As informações do login do banco podem ser alteradas se desejar.
OBS: Todo o script desse exemplo está comentado para facilitar o entendimento de cada trecho.
Tela de escrita de valores nos campos da tabela do Banco de Dados:
Criando a tela Screen1:
A imagem acima está mostrando a configuração do nome do primeiro objeto, DATASOURCE, onde para defini-lo deve-se ir em Proprety Grid, Extended, e posteriormente na linha Name, defina o nome, conforme o script do programa para não ocorrer problemas de conexão, e caso for modificar atente-se de que os nomes no objeto e o script estejam iguais, os demais objetos seguem com a mesma configuração. Segue a lista deles:
Data Source: DATASOURCE
Database: INITIALCATALOG
Query: strStatement
SQL User Name: SQLUserName
SQL Password: SQLPassword
O botão Troca Tela, tem uma configuração para que aconteça de fato a ação de trocar a tela para outra, para que isso seja possível deve-se adicionar o botão. Clique na aba home, destacada em vermelho, em seguida, clique no objeto botão, destacado em azul, conforme a figura:
Por fim, arraste o botão selecionado na tela e o posicione conforme desejado.
Posteriormente, selecione o botão recém colocado, em Property Grid, clique em Actions, em Trigger será o modo que acionará a esta lógica, neste caso, quando clicar no botão, então, selecione o Click.
O nome do botão no código é apresentado em Extended, da árvore Property Grid:
Conforme ilustra a imagem abaixo, clique na seta para baixo que se encontra no campo Select Action, destacado em vermelho, a ação ocorrerá justamente para trocar de uma tela para outra específica, então, clique no + de Screen, destacado em azul, neste caso queremos que ao clicar mude para a Screen2 do programa, desta forma, selecione a mesma.
Já para o botão Tela Grava Banco segue, basicamente, as mesmas configurações anteriores, adicione ele na tela, posteriormente, em Property Grid, clique em Actions, em Trigger selecione o Click, em seguida o show Screen e abaixo disso, selecione a tela que deseja trocar quando clicar no botão, neste caso, Escrita Banco, o nome do botão no código é apresentado em Extended, em Property Grid:
Seguindo, para o Run Query, ou seja, o botão de execução, adicione-o na tela e siga as configurações conforme destacadas na imagem a seguir:
Ou seja, dê um nome, Button1, e em text que é o nome que sobressai no botão escreva Run Query.
Obs: O nome do botão, neste caso, Button1, é de extrema importância na lógica do código, então se quiser mudá-lo, certifique-se que esteja alterada no código também.
Data Grid.
O data grid é um elemento de interface gráfica que permite mostrar os dados do banco, ele não é um objeto padrão, mas você pode adicionar o mesmo na IHM para ser utilizado de forma especial.
Para adicioná-lo vá em Home, em Objects, clique na seta para baixo, conforme destacado em vermelho na imagem posterior, por fim, clique em Add Control:
Localize o Data Grid na tela conforme imagem abaixo, clique em cima, e por fim, no OK.
Após, a seção Objects aparecerá já com o Data Grid quando clicar na seta para baixo como destacado:
Agora já é possível adicioná-lo na tela. No projeto, seu nome está definido como DataGrid:
O próximo objeto, assim como a tela anterior, é um objeto de saída, utilizando de uma TAG, onde nele aparece mensagens se pertinente sobre o programa:
Desenvolvendo o script para controle do banco e leitura do mesmo para o datagrid:
Estando com a tela aberta na Screen1, clique em Script, localizado no canto esquerdo inferior:
Esses dois itens destacados em vermelho na imagem abaixo, são criados automaticamente.Os itens Using são classes necessárias para o funcionamento da tela. O script que está logo abaixo do public partial class screen1 entre os { } será executado sempre sem problemas.
Agora iremos adicionar um script que será executado sempre que pressionar um botão na tela. Anteriormente já o criamos, denominado Button1, localize o mesmo pelo nome na árvore do script ao lado esquerdo e depois click com o mouse na opção Click, assim ele irá criar o item no script conforme imagem abaixo:
O script que será executado quando pressionar o botão deve ficar entre os { } após o item criado, como a imagem anterior.
Os itens marcados em vermelho abaixo nesse script tratam-se dos nomes dados nos objeto Numérico Analógico como demonstrado acima, pois quando você escrever o valor no objeto na tela o mesmo irá parar no item de conexão do Banco.
O item marcado abaixo é o nome dado no objeto Numérico Analógico na tela que recebe o comando SQL digitado pelo operador.
Caso queira se conectar no Banco sem precisar digitar na tela, basta você editar o script de conexão informado acima, conforme o exemplo abaixo. Colocando o IP, Nome do Banco(IHM), Usuário (as) e login (altus1982.)
myConnection = new SqlConnection( "Data Source=" + "192.168.14.101" + ";Initial Catalog=" + "IHM" + ";User Id=" + "sa" + ";Password=" + "altus1982.");
Criando a tela Screen2:
Esta tela tem como objetivo mostrar a Tara do transmissor de peso, medida pela balança e também limpar a tara quando desejado, esta configuração não está interligada com o banco de dados, mas sim entre o transmissor e a IHM.
Com as Tags já cadastradas nos passos anteriores, em um botão adicionado na tela, configuramos uma ação de click nele, e como consequência da ação colocaremos Toggle Tag, e nela a Tag Tara, isso significa que ao clicar no botão deixará a Tag ativada e ao clicar novamente irá desativá-la. Este valor da tara é dado pelo próprio transmissor de peso. Segue a imagem destacando as configurações feitas:
Para o próximo botão, as configurações são nos mesmos locais, o LimpaTara também tem a ação de click e Toggle Tag, este, tem a função de limpar a tara que havia sido registrada anteriormente:
O botão Troca Tela, desta Screen, tem a funcionalidade de uma ação, que ao clicá-lo trocará para a Screen anterior, ou seja, a Screen1:
Os objetos numéricos analógicos de valor DINT e FLOAT apenas mostram o valor da pesagem vindo do transmissor de peso, a imagem a seguir contempla as configurações necessárias para seu funcionamento, em vermelho está destacado as configurações para o DINT e em verde para FLOAT:
2.3. Configuração do Banco de Dados
Instalação e configuração do banco MSSQL
O tutorial para a instalação e configuração do banco você pode acessar aqui.
As informações de login na configuração do banco de dados podem ser alteradas conforme desejar, sendo apenas necessário mudar o código.
Neste programa o nome do banco, denominamos por IHM. O login foi definido como sa. A senha, definimos por altus@1982.
Criação do banco de dados
Para adicionar um novo banco no sistema, clique com o botão direito do mouse em Database, e em seguida, em New Database:
Dê um nome ao banco, neste, chamamos de IHM, conforme o script do programa, caso queira alterar este nome, certifique-se que esteja alterado no script também, caso contrário, não funcionará adequadamente, pois chamará no programa o banco incorreto.
Para criarmos uma tabela no banco, encontre o mesmo na árvore da aba Object Explorer, se não o encontrar, dê um refresh, clicando na seta destacada em azul da imagem abaixo. Clique com o botão direito em Table, posteriormente em New e Table novamente:
Automaticamente aparecerá a nova tabela:
Neste caso, nomeamos a tabela como CAIXA, conforme o script.
A seguinte tabela terá os nomes dos dados que serão coletados ou até mesmo inseridos no banco, neste contexto, inserimos a COR, PRODUTO e PESO, os mesmos estão também declarados no script do projeto:
Para adicionarmos uma requisição, clique com o botão direito no banco criado, IHM, e com o botão esquerdo em New Query:
Execução das telas
Com o programa em execução poderá visualizar as telas a seguir e configurá-las conforme as explicações e observações dos próximos textos.
Nesta imagem configuramos as informações de login, conforme o programado anteriormente, para que seja
feita a conexão com o banco e possamos visualizar os valores e escritas da tabela com as informações de peso, cor e produto (observe que a linha marcada em azul possuia a novas informações do Banco):
Data Source: Digitar o local do Banco de dados, nesse exemplo foi digitado o IP onde se encontra o banco.
Data Base: Digitar o nome do Banco configurado no SQL Server.
Query: Digitar o comando SQL. Nesse exemplo solicitamos para ler toda a tabela Caixa. (Select*from Caixa)
SQL User Name: Digitar o usuário do Banco configurado no SQL server express.
SQL Password: Digitar a senha do Banco configurado no SQL server express.
Tela de escrita de valores nos campos da tabela do Banco de Dados:
Produto: Deve-se digitar um nome desejado.
Cor: Deve-se digitar a cor, como desejado.
Peso: Tanto a variável como um Dint ou Float são carregadas da própria balança conectada ao transmissor de peso, ou seja, é salva conforme o peso do objeto em cima dela no momento em que clicar no Botão Grava Banco
BOTÃO GRAVA BANCO: Ao clicá-lo, o mesmo salva os dados anteriores (Produto, Cor e Peso) no banco, conforme script.
Quando executada, estas informações adicionadas aparecem na tabela do banco de dados. Caso queira trocar de tela para a inicial clique no botão preto.
Tela de valores do transmissor de peso:
Nesta tela, quando o transmissor estiver pesando, os valores da balança são transmitidos por ela. Também é possível adicionar uma tara, ao clicar no botão denominado por “Var Tara (INT16)” o valor pesado naquele momento é configurado para ser a tara, e quando desejar é pode-se limpar a tara clicando no botão “Var LimpaTara (INT16)”. Ainda sim, é possível alterar para outra tela quando clicar no botão no canto inferior esquerdo “Troca Tela”.
Comentários
0 comentário
Por favor, entre para comentar.