typedef
class OPCGrp
{
public:
String GrpName; // 组名
int Rate; // 更新速率
IUnknown * ptrGroup; // 组指针
IOPCSyncIO * ptrSyncIO;
wchar_t ** Item; // 项名数组
int ItemCount; // 项数
IOPCItemMgt * ptrItem; // 项指针
DWORD * hItem; // 项句柄数组
OPCITEMSTATE * Data; // 存放数据
void ReadGrp(); // 读一组数据
void ReadBuf(VARIANT v[]); // 读一组数据到缓冲
void Read(int i,VARIANT &v); // 读一个数据,第i个
void Write(int i,VARIANT v); // 写一个数据,第i个
void Write(int i,int n,VARIANT v[]); // i起,写N个
OPCGrp();
OPCDATASOURCE DataSource; // 数据源 OPC_DS_CACHE/DEVICE
} OPCGrp;
typedef
class OPCServer
{
public:
String ID; // OPC标识串
String IP; // 远程 IP,本地为空
IOPCServer *opcObject;
OPCGrp *opcGrp[10]; // OPCGrp *[]
int GrpCount; // 组数
bool AddGrp(OPCGrp *grp); // 增加组对象
bool Connected; // 是否已联接
bool Connect(); // 连接
void Disconnect(); // 断开并释放资源
OPCServer();
} OPCServer;
//调用举例
OPCServer *opc=NULL;
void __fastcall TForm1::Button3Click(TObject *Sender)
{
bool opc_connected=false;
opc=new OPCServer;
opc->ID="KEPware.KEPServerEx.V4";
opc->IP=IP->Text.Trim();
opc_connected=opc->Connect();
if (!opc_connected)
{
ShowMessage("Connect Failed!");
return;
}
wchar_t *items[]={
L"Channel_4.Device_6.Word_2",
L"Channel_2.Device_3.Tag_2",
L"Channel_1.Device_1.Bool_1"
};
OPCGrp *grp1=new OPCGrp();
grp1->GrpName="Group1";
grp1->Rate=100;
grp1->Item=items;
grp1->ItemCount=3;
if (!opc->AddGrp(grp1))
{
ShowMessage("Add Group Failed!");
return;
}
VARIANT v[3];
while (opc->Connected && !Application->Terminated)
{
opc->opcGrp[0]->Read(0,v[0]);
opc->opcGrp[0]->Read(1,v[1]);
opc->opcGrp[0]->Read(2,v[2]);
Label1->Caption=v[0].iVal;
Label2->Caption=v[1].iVal;
Label3->Caption=v[2].boolVal?1:0;
Application->ProcessMessages();
}
}
工程项目监控软件源码三合一
1.vb6开发的锅炉监控软件完整源码,有登陆界面、操作界面、历史数据记录和查询界面、报警数据记录
和查询界面及相关报表功能,历史曲线查询。(下位机是西门子S7-200,以太网通讯)
2.delphi7开发的回转窑监控软件完整源码,有登陆界面、操作界面、历史数据记录和查询界面、报警数
据记录和查询界面及相关报表功能。(下位机是OMRON CJ1G,以太网通讯)
3.VC++6.0开发的石灰窑监控软件完整源码,有登陆界面、操作界面、历史数据记录和查询界面、报警数
据记录和查询界面及相关报表功能,历史曲线查询。(数据源是OPC Server,报表纯手工编写,具有很大
的灵活性)。
目前都已经稳定运行在自控项目上了。这些源码稍作修改就可以应用在其他项目上。
有需要的请联系QQ:790013363
EMAIL:lgr980423@126.com 可以先运行打包安装文件,查看效果。有偿服务,非诚勿扰!