第四步,同步读数据,
private void
Btn_Read_S_Click(
object
sender,
EventArgs
e)
//同步读数据
{
……
MyOpcItem1.Read(1,
out
ItemValues,
out
Qualities,
out
TimeStamps);
//ItemValues,Qualities,TimeStamps分别是值,质量码及时间
//也可以通过调用SyncRead函数,参数可参考异步读函数
……
}
第四步,同步写数据
private void
Btn_Write_S_Click(
object
sender,
EventArgs
e)
{
……
MyOpcItem1.Write(Txt_W1.Text);
//也可以通过调用SyncWrite函数,参数可参考异步写函数
……
}
第五步,异步事件定义,
在异步操作情况下,需要定义相应的异步事件
MyOpcGroup.DataChange +=
new
DIOPCGroupEvent_DataChangeEventHandler
(MyOpcGroup_DataChange);
//
//订阅方式下数据改变
iteComplete +=
new
DIOPCGroupEvent_AsyncWriteCompleteEventHandler
(MyOpcGroup_WriteComplete);
//写完成事件
MyOpcGroup.AsyncReadComplete +=
new
DIOPCGroupEvent_AsyncReadCompleteEventHandler
(MyOpcGroup_ReadComplete);
//读完成事件
MyOpcGroup.AsyncCancelComplete +=
new
DIOPCGroupEvent_AsyncCancelCompleteEventHandler
(MyOpcGroup_CancelComplete);
//取消操作事件
在使用中注意,其事件函数要按照特定接口:
void
MyOpcGroup_DataChange(
int
TransactionID,
int
NumItems,
ref
Array
ClientHandles,
ref
Array
ItemValues,
ref
Array
Qualities,
ref
Array
TimeStamps)
void
MyOpcGroup_WriteComplete(
int
TransactionID,
int
NumItems,
ref
Array
ClientHandles,
ref
Array
Errors)
void
MyOpcGroup_ReadComplete(
int
TransactionID,
int
NumItems,
ref
System.
Array
ClientHandles,
ref
System.
Array
ItemValues,
ref
System.
Array
Qualities,
ref
System.
Array
TimeStamps,
ref
System.
Array
Errors)
void
MyOpcGroup_CancelComplete(
int
CancelID)
第六步订阅方式读
void
MyOpcGroup_DataChange(
int
TransactionID,
int
NumItems,
ref
Array
ClientHandles,
ref
Array