急急急急急急急急急急急急急急急急急!!!!! private  void button15_Click(object sender, EventArgs e)
        {
            try
            {                string GroupName = tbx_GroupName.Text.ToString();
                KepGroup = KepServer.OPCGroups.Add(GroupName);
                KepGroup.IsActive = true;
                KepGroup.IsSubscribed = true;
                KepGroup.DeadBand = 0;
                KepGroup.UpdateRate = 1000;//刷新频率,注意与服务器的刷新频率
                KepItems = KepGroup.OPCItems;                            }
            catch (Exception error)
            {
                MessageBox.Show("添加组失败:" + error.Message, "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            try
            {
                itemServerHandle = new int[itemHandleNum + 1];//设置句柄数组长度
                itemServerHandle[0] = 0;                AddItem(item_G1_K1, "Channel_1.Device_1.G1_K1", 1, itemServerHandle);
                AddItem(item_G1_V1, "Channel_1.Device_1.G1_V1", 2, itemServerHandle);
                AddItem(item_G1_I1, "Channel_1.Device_1.G1_I1", 3, itemServerHandle);                AddItem(item_G2_K1, "Channel_1.Device_1.G2_K1", 4, itemServerHandle);
                AddItem(item_G2_V1, "Channel_1.Device_1.G2_V1", 5, itemServerHandle);
                AddItem(item_G2_I1, "Channel_1.Device_1.G2_I1", 6, itemServerHandle);                AddItem(item_G3_K1, "Channel_1.Device_1.G3_K1", 7, itemServerHandle);
                AddItem(item_G3_V1, "Channel_1.Device_1.G3_V1", 8, itemServerHandle);
                AddItem(item_G3_I1, "Channel_1.Device_1.G3_I1", 9, itemServerHandle);                AddItem(item_G4_K1, "Channel_1.Device_1.G4_K1", 10, itemServerHandle);
                AddItem(item_G4_V1, "Channel_1.Device_1.G4_V1", 11, itemServerHandle);
                AddItem(item_G4_I1, "Channel_1.Device_1.G4_I1", 12, itemServerHandle);
                //----------------------------------------------------------------------
                AddItem(item_G5_K1, "Channel_1.Device_1.G5_K1", 13, itemServerHandle);
                AddItem(item_G5_V1, "Channel_1.Device_1.G5_V1", 14, itemServerHandle);
                AddItem(item_G5_I1, "Channel_1.Device_1.G5_I1", 15, itemServerHandle);                AddItem(item_G5_K2, "Channel_1.Device_1.G5_K2", 16, itemServerHandle);
                AddItem(item_G5_V2, "Channel_1.Device_1.G5_V2", 17, itemServerHandle);
                AddItem(item_G5_I2, "Channel_1.Device_1.G5_I2", 18, itemServerHandle);                AddItem(item_G5_K3, "Channel_1.Device_1.G5_K3", 19, itemServerHandle);
                AddItem(item_G5_V3, "Channel_1.Device_1.G5_V3", 20, itemServerHandle);
                AddItem(item_G5_I3, "Channel_1.Device_1.G5_I3", 21, itemServerHandle);                AddItem(item_G5_K4, "Channel_1.Device_1.G5_K4", 22, itemServerHandle);
                AddItem(item_G5_V4, "Channel_1.Device_1.G5_V4", 23, itemServerHandle);
                AddItem(item_G5_I4, "Channel_1.Device_1.G5_I4", 24, itemServerHandle);                AddItem(item_G5_K5, "Channel_1.Device_1.G5_K5", 25, itemServerHandle);
                AddItem(item_G5_V5, "Channel_1.Device_1.G5_V5", 26, itemServerHandle);
                AddItem(item_G5_I5, "Channel_1.Device_1.G5_I5", 27, itemServerHandle);                //------------------------------------------------------------------------
                AddItem(item_G6_K1, "Channel_1.Device_1.G6_K1", 28, itemServerHandle);
                AddItem(item_G6_V1, "Channel_1.Device_1.G6_V1", 29, itemServerHandle);
                AddItem(item_G6_I1, "Channel_1.Device_1.G6_I1", 30, itemServerHandle);                AddItem(item_G6_K2, "Channel_1.Device_1.G6_K2", 31, itemServerHandle);
                AddItem(item_G6_V2, "Channel_1.Device_1.G6_V2", 32, itemServerHandle);
                AddItem(item_G6_I2, "Channel_1.Device_1.G6_I2", 33, itemServerHandle);                AddItem(item_G6_K3, "Channel_1.Device_1.G6_K3", 34, itemServerHandle);
                AddItem(item_G6_V3, "Channel_1.Device_1.G6_V3", 35, itemServerHandle);
                AddItem(item_G6_I3, "Channel_1.Device_1.G6_I3", 36, itemServerHandle);                AddItem(item_G6_K4, "Channel_1.Device_1.G6_K4", 37, itemServerHandle);
                AddItem(item_G6_V4, "Channel_1.Device_1.G6_V4", 38, itemServerHandle);
                AddItem(item_G6_I4, "Channel_1.Device_1.G6_I4", 39, itemServerHandle);                AddItem(item_G6_K5, "Channel_1.Device_1.G6_K5", 40, itemServerHandle);
                AddItem(item_G6_V5, "Channel_1.Device_1.G6_V5", 41, itemServerHandle);
                AddItem(item_G6_I5, "Channel_1.Device_1.G6_I5", 42, itemServerHandle);
                lbl_message.Text = "创建成功!";
                KepGroup .AsyncReadComplete +=new DIOPCGroupEvent_AsyncReadCompleteEventHandler(KepGroup_AsyncReadComplete);
                KepGroup .DataChange +=new DIOPCGroupEvent_DataChangeEventHandler(KepGroup_DataChange);                               btn_AddGroup.Enabled = false;
}
            catch (Exception error1)
            {
                MessageBox.Show("添加标签失败:" + error1.Message, "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }}
---------------------------------------------
void KepGroup_DataChange(int TransactonID, int NumItems, ref Array ClientHandles, ref Array ItemValues, ref Array Quantities, ref Array TimeStamps, ref Array Errors)
        {
//这里面是一些数据处理的方法
}
显示错误:
错误 3 “KepGroup_DataChange”的重载均与委托“OPCAutomation.DIOPCGroupEvent_DataChangeEventHandler”不匹配 D:\My Documents\Visual Studio 2005\Interface\OPC客户端(医院)\OPC客户端(医院)\Form1.cs 351 40 OPC客户端(医院)
----------------------------------------------------
我用的是OPC自动化接口开发客户端,也KEPSERVR通讯,不是为什么,订阅事件会报委托不匹配

解决方案 »

  1.   

    找到原因了
    void KepGroup_DataChange(int TransactonID, int NumItems, ref Array ClientHandles, ref Array ItemValues, ref Array Quantities, ref Array TimeStamps, ref Array Errors)
    应把红色部分去掉。。哈哈。。
      

  2.   


    subscription.AddItems(items);
    subscription.DataChanged += new DataChangedEventHandler(subscription_DataChanged);
    subscription_DataChanged(object subscriptionHandle, object requestHandle, ItemValueResult[] values)
    {
      ....
    }