Posts de Março, 2007|Página de posts mensais

OPC – Simples instanciamento de um server OPC

IOPCServer* p_IOPCServer = NULL; // IOPCServer interface
CoInitialize(NULL); // DCOM
p_IOPCServer = opc_DI.InstantiateServer(L"ProcessIT.SimulationSvr.1")

// simple OPC Server instantiate
IOPCServer* COPC_DI::InstantiateServer(wchar_t* ServerName)
{
CLSID CLSID_OPCServer;
HRESULT hr;

// CLSID from the OPC Server
if(FAILED(hr = CLSIDFromProgID(ServerName, &CLSID_OPCServer)))
exit(0); // abort

// queue of the class instances to create
LONG cmq = 1; // how many create
MULTI_QI queue[1] =
{{&IID_IOPCServer,
NULL,
0}};

// create instance
if(FAILED(hr = CoCreateInstanceEx(CLSID_OPCServer, NULL, CLSCTX_SERVER, /* &CoServerInfo */ NULL, cmq, queue)))
exit(0); // abort

// return a pointer to the IOPCServer interface
return(IOPCServer*) queue[0].pItf;
}

[ ]´s
Francismar|Padawan

“O que se vê no youtube”

Chad Vader – Episode 1 ~ 7
http://www.youtube.com/watch?v=4wGR4-SeuJ0

[ ]´s
Francismar|Padawan

OPC – IDL files

IDL – Interface Description Language ou Interface Definition Language. Utilizada para descrever as interfaces de software.
Partindo do princípio que já foram lidos os documentos citados no post anterior, vc já terá idéia que existem interfaces para trabalhar com o OPC Server, OPC Groups, OPC Items.

No final da OPC DA 2.05a Specification e OPC Common 1.10 Specification será encontrada a IDL Specification para cada um deles assim como, o comando e a maneira para serem manipuladas.

Os arquivos gerados, conforme norma, não devem ser modificados!

Os headers (.h) precisam ser incluídos em todas as implementações de Clients e/ou Servers.
Os sources (.c) definem as interfaces IDs* e deve ser linkado em todos os Clients e/ou Servers.

[ ]´s
Francismar|Padawan

*CLSIDs uniquely identify interfaces, objects, components

OPC – Ponta pé inicial

Neste post (e outros que possam vir sobre o assunto), gostaria de deixar dicas, experiências sobre a implementação de um OPC Client. Minha pendência atual na empresa onde trabalho.
Longe fazer frente ao blog do meu amigo Ronaldo. Indico este blog como leitura obrigatória para quem quer conhecer OPC.

Para iniciar, vamos colocar algumas referências de leitura obrigatória.
É isto mesmo! Leitura obrigatória. Espero que seu inglês esteja afiado. Documentações sobre este assunto na língua tupiniquim são raros ou inexistentes.
1. DCOM (Distributed Component Object Model) – é a base de tudo.
2. OPC Overview 1.00 – tudo que vc queria saber sobre OPC, mas tinha vergonha de perguntar
;)
3. OPC DA 2.05a Specification – especificações OPC versão 2.05a. É a norma em si. Neste documento serão encontradas todas as boas maneiras e descrição das interfaces. Existe a versão 3.00, mas os servers da empresa seguem a 2.05a desta forma, devo seguir a mesma. Por isto tudo que eu for escrever, exemplificar aqui, será baseada nesta versão.
4. OPC Common 1.10 Specification – especificações que são comuns para diversos tópicos.

Por enquanto é só.
Bons estudos…

[ ]´s
Francismar|Padawan

“O que se vê no youtube”

Mac vs. PC Parody by Christ Follower
http://www.youtube.com/watch?v=8RtfNdg1fQk
São quatro episódios.
E…
Um meio que preconceituoso… Mas…
http://www.youtube.com/watch?v=JixbzFjv_cU

[ ]´s
Francismar|Padawan