Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

eduardohrn

Como fazer uma aplicação OPC Client no Delphi

Recommended Posts

Olá para todos!

 

Preciso de ajuda para o desenvolvimento de uma aplicação que funcione como um cliente OPC.

Esse tipo de comunicação é muito utilizada no meio industrial.

A ideia é ter um servidor OPC capaz de ler/escrever dados de um ou mais CLP's e ter o cliente OPC conectado a esse servidor OPC, sendo assim capaz de monitorar e variar as variaveis lidas/escritas por meio do servidor OPC.

Servidores OPC existem varios como o KepServer ou o Matrikon(gratuito).

Dessa forma, gostaria de obter informações sobre como desenvolver um OPC Client capaz de se conectar a esses servidores e trocar dados. Alguem ja teve essa experiencia?

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, eu ja fiz sistemas de comunicação com CLP, trabalhei como cliente. Para começar você deve definir que tipo de comunicação, protocolo, etc. estão disponíveis e vai utilizar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola! Obrigado pela atenção.

 

A comunicação com o CLP ja está feita e funcionando. Possuo um servidor OPC da Kepware que faz a leitura/escrita dos dados no CLP.

 

O que preciso agora é desenvolver uma aplicação OPC Client capaz de comunicar com esse servidor OPC.

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois esntão, você tem que descobrir que comunicação estara disponivel (ex.: Modbus) e depois fazer o Delphi falar com o servidor.. : D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois esntão, você tem que descobrir que comunicação estara disponivel (ex.: Modbus) e depois fazer o Delphi falar com o servidor.. : D

 

Eduardo,

 

Se você descarregou o KEPServerEx e fez a instalação de todos os componentes verifique no grupo que o KEPServerEx cria no menu iniciar do Windows. Lá você encontra exemplos de cliente OPC criados em VB ou em C++.

 

Além disso a Kepware oferece o ClientACE, uma biblioteca pronta para você criar um cliente OPC. Esta biblioteca opera com o Visual Studio 2003, 2005 e 2008.

 

Qualquer dúvida, você pode entrar em contato conosco na Exata (somos o distribuidor Kepware para o Brasil).

 

Um abraço e boa sorte

 

Ola! Obrigado pela atenção.

 

A comunicação com o CLP ja está feita e funcionando. Possuo um servidor OPC da Kepware que faz a leitura/escrita dos dados no CLP.

 

O que preciso agora é desenvolver uma aplicação OPC Client capaz de comunicar com esse servidor OPC.

 

Abraços.

 

 

Eduardo,

 

O se você instalou todos os componentes do Kepware, ele cria um grupo no menu iniciar do Windows. Dentro deste grupo existem exemplos em VB e C++ de clientes OPC.

 

Além disso, a Kepware tem um produto, o ClientACE, que tem uma biblioteca pronta para você criar um aplicativo cliente OPC. É só fazer a interface entre as rotinas da biblioteca e o aplicativo que você está criando.

 

O ClientACE funciona com o VisualStudio da Microsoft, edições 2003, 2005 e 2008.

 

Qualquer outra dúvida é só me procurar na Exata Sistemas (somos o distribuidor Kepware no Brasil).

 

Um abraço e boa sorte

 

Murilo Bevilaqua

www.exatasistemas.com.br

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola, estou desenvolvendo uma aplicação muito semelhante mas em C#, onde tenho que manipular as informações em um servidor OPC, estou usando o KEPware para isso.

Consegui uma DLL de comunicação propria para a plataforma DOTNET, pporem esta dando um erro quando tento adicionar um item ao OPCItems, como no código abaixo.

na linha do opc_items.AddItems ocorre o seguinte erro

[b]"ArgumentExeption was unhandled user code. O valor não recai no intervalo esperado"[/b]

 

desde ja agradeço.

protected void btnOPC_Click(object sender, EventArgs e)
        {
       
            
            //cls_OPC teste = new cls_OPC();
            string strServerName, strTAG, strMAchineName;
            strServerName = "KepWare.kepServerEnterprise.v5";
            strTAG = "_System.TotalTagCount";
            strMAchineName = "cep_143";
            //MessageBox.Show(teste.getvalores(ref strServerName, ref strTAG, ref strMAchineName));

            OPCServer  opc_server = new OPCServer();
            opc_server.Connect(strServerName, strMAchineName);

            
            //Response.Write("<script>alert('conectou')</script>");
            //Response.Write(opc_server.ServerName.ToString());

            OPCGroup opc_group;
            OPCGroups  opc_groups;
            OPCItems opc_items;
            
            System.Array strVTag = Array.CreateInstance(typeof(string),1) ; //= new string[1]{strTAG};
            System.Array ClinteHandle = Array.CreateInstance(typeof(Int32), 1); //new Int32[1]{1};
            System.Array opc_error = Array.CreateInstance(typeof(string), 1);//new string[1];
            System.Array serverHandles = Array.CreateInstance(typeof(int), 1); //new float[1];
            object RequestDataTypesOPC = new object();
            string AccessPathOPC = String.Empty;//new object(); 
            
            strVTag.SetValue(strTAG, 0);
            
            opc_groups =  opc_server.OPCGroups;
            opc_group = opc_groups.Add("grupo1");
            opc_items = opc_group.OPCItems;

            int teste1, teste2,teste3 = 10;
            teste1 = clsTeste.teste(ref teste3, out teste2);
            ClinteHandle.SetValue(1, 0);
            opc_items.AddItems(1, ref strVTag, ref  ClinteHandle, out serverHandles, out opc_error, RequestDataTypesOPC, AccessPathOPC);
        }

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.