Esempio n. 1
0
        //Initialize OPC Server and obtain the IOPCSyncIO interface
        private bool InitializeServer()
        {
            OPCServerLib.Server server = new OPCServerLib.Server();
            int    TimeBias            = 0;
            float  DeadBand            = 0.0f;
            uint   phServerGroup;
            uint   UpdateRate;
            var    id = typeof(OPC.IOPCItemMgt).GUID;
            object p;

            server.AddGroup("Group1", 1, 10, 1, ref TimeBias, ref DeadBand, 0, out phServerGroup, out UpdateRate, ref id, out p);

            //Obtain IOPCItemMgt interface
            OPC.IOPCItemMgt pOPCItemMgt = (OPC.IOPCItemMgt)p;
            Item[]          items       = { new Item("ItemY1", 1, VarEnum.VT_R8, VarEnum.VT_EMPTY, false, null),
                                            new Item("ItemY2",                2, VarEnum.VT_R8, VarEnum.VT_EMPTY, false, null),
                                            new Item("ItemY3",                3, VarEnum.VT_R8, VarEnum.VT_EMPTY, false, null) };

            IntPtr itemPtr = OPCHelper.GetIntPtrfromItemArray(items);
            IntPtr dataPtr;
            IntPtr errorsPtr;

            pOPCItemMgt.AddItems(3, itemPtr, out dataPtr, out errorsPtr);

            //Obtain IOPCSyncIO interface
            syncIO = (OPC.IOPCSyncIO)p;

            return(true);
        }