-
Comunicação Citect (Plant SCADA) com SQL Server
Olá!
Realizamos uma aplicação onde tínhamos 2 servidores, onde um servidor estava Citect e outro estava a base de dados (SQL Server), para buscar alguns dados utilizamos a comunicação ODBC Server que através dela podemos enviar um comando query, para buscar alguns dados que precisamos desse banco de dados para apresentar na tela do citect
Primeiro iremos começar com a configuração necessária no banco de dados que precisamos ter para existir uma comunicação entre o Citect com o Banco de dados.
1. Clicando com o botão direto no banco de dados, iremos abrir as propriedades desse BD
2. Primeiro iremos visualizar a “Security” do BD, iremos deixar selecionado o modo “SQL Server and Windows Authentication mode”. Por que assim dessa forma iremos conseguir acessar o banco de dados através de um usuário SQL que poderemos criar nesse banco.
3. Após mudar esse modo de autenticação iremos para a pagina de “Connections”, nesta pagina iremos deixar selecionado o campo “Allow remote connections to this server” onde ele irá permitir acessos remotos do banco de dados, após essas modificações pode clicar em OK
4. Neste banco o “SQL Server Agent” precisa estar sempre ativo, por que é com ele que o citect vai conseguir acessar o BD de dados, para ativar ele basta clicar com botão direito sob ele e dar um “Start”
5. Após isso iremos criar um login neste banco, que é através desse login que iremos buscar as informações que precisamos pelo citect. Clique em “Security”, assim que abrir você irá clicar com botão direito em “Login” e selecionar “New Login”.
6. Após isso, irá abrir uma nova caixa que iremos configurar nosso usuário, primeiro se da um nome a esse usuário, após isso selecionamos “SQL Server authentication”, após isso configure uma senha para esse login, tirei a seleção abaixo de “Enforce passaword policy”
7. Seleciona agora “Server Roles”, nesta tela selecione os privilégios do usuário, tanto “public” como “sysadmin”
8. Selecione agora “User Mapping”, aqui você vai configurar qual BD ele vai ter acesso de modificação e além disso, assim que você selecionar o BD abaixo você vai configurar qual vai fazer parte selecione “db_owner”, após isso você pode clicar em OK
9. Depois dessas modificações, iremos configurar o “SQL Server Configuration Manager”, na procura Windows procure o aplicativo e abra ele
10. Após isso abrir, clique em configuração de rede do SQL Server, quando clicar selecione o protocolo do seu BD.
11. Ao lado direito, iremos habilitar “TCP/IP”, clique com botão direito e Habilite o protocolo
12. Clique com o botão direito e vá para propriedades, você poderá ver a Porta TCP que geralmente é padrão 1433 do SQL Server.
13. Sendo assim terá que aplicar uma regra de saída do Firewall para seu IP do outro servidor aplicando na porta padrão 1433 e o IP do servidor que irá solicitar os dados do BD.
14. Após essas configurações no servidor do Banco de dados, está tudo pronto.
Após essas configurações iremos para o servidor do Citect que irá solicitar esses dados, para isso iremos fazer essa comunicação via ODBC.
1. Baixe o ODBC Data Sources correto para a sua máquina 32 ou 64 bits.
2. Após baixar ODBC você irá configurar o ‘DSN de Sistema’ é atrás dele que você irá buscar os dados que necessita, após selecionar a aba de ‘DSN Sistema’ você irá clicar em adicionar.
3. Após clicar em Adicionar irá aparecer uma outra caixa para você selecionar a fonte de dados, para a nossa aplicação utilizamos SQL Server, selecione ele e clique em concluir.
4. Após clicar irá aparecer mais uma tela onde primeiro irá colocar o nome do DSN, que pode ser da sua escolha.
5. Abaixo iremos selecionar qual Servidor você irá se conectar, ali iremos colocar o IP publico do nosso servidor do BD de dados e no final a porta que iremos querer acessar no caso a padrão que seria 1433 – ***.***.***.***,1433
6. Após colocar o servidor e a porta clique em avançar você será direcionado para a página de autenticidade que você irá selecionar autenticação do SQL, que é aquele login e senha criado lá no início, então coloque login e senha criado e clica em avançar, se ele não avançar você tem algum problema, de autenticação ou conexão com servidor, volte desde o inicio e veja se não esqueceu nenhum passo
7. Depois você vai selecionar a opção “Alterar o banco de dados padrão para:”, selecionando esse banco iremos selecionar o banco de dados que iremos fazer a pesquisa, após selecionar o banco clique em avançar.
8. Irá para a próxima página, nesta não é preciso se alterar nada, somente clicar em concluir.
9. Após clicar em concluir, poderá testar a fonte de dados se existe conexão entre eles, se clicar e dar êxito está tudo correto, se não volte novamente e veja se não está faltando nada, depois disso clique OK e seu DNS está tudo okay.
Assim temos configurado tanto o banco de dados como o ODBC que irá realizar essa conversa com outro servidor, agora já no Citect, você irá configurar seu cicode utilizando as funções SQL. Abaixo irei colocar um exemplo de Cicode
FUNCTION GravacaoValores()
INT hSQL;
INT i = 0;
INT status;
hsQL = SQLConnect(“DSN=TesteSQL;UID=Teste01;PWD=teste”)
IF hSQL <> –1 THEN
status = SQLExec(hSQL, “SELECT ds_dispositivo FROM dispositivo”);
IF status = 0 THEN
WHILE SQLNext(hSQL) = 0 DO
sInfo[0][i] = StrToInt(SQLGetField(hSQL,“ds_dispositivo”));
i = i + 1;
END
SQLEnd(hSQL);
ELSE
Message(“Information”, SQLErrMsg(“Nenhum valor”), 48);
END
ELSE
Message(“Information”, SQLErrMsg(“Banco não carregou”), 48);
END
SQLDisconnect(hSQL);
END
SQLConnect – Nesta função iremos colocar o nome do DSN criado do ODBC Server, UID seria o nome do usuário criado e PWD a senha que foi criado
SQLExec – Executa essa query no BD de dados, indicado no SQLConnect
SQLNext – Vai fazer assim ele percorrer os dados buscados do SQLExec
Assim essa função está gravando os valores num vetor
Para saber mais indico utilizar o Help do próprio citect das funções SQL ali terá diversas funções e exemplos que você pode utilizar para aplicar.
Assim está tudo configurado é através disso que você pode executar query no SQL Server utilizando o citect, buscando assim informações que você precisa dessa base de dados.
Log in to reply.