Top Banner
101

PBWW234%20-%20Understanding%20and%20Troubleshooting%20OPC%20Connectivity%20-%20FINAL[1].ppt

Nov 11, 2015

Download

Documents

dmmingo1271
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 2010 Invensys. All Rights Reserved. The names, logos, and taglines identifying the products and services of Invensys are proprietary marks of Invensys or its subsidiaries. All third party trademarks and service marks are the proprietary marks of their respective owners.

    Invensys 00/00/00Invensys proprietary & confidentialSlide *PBWW234Wonderware: Understanding & Troubleshooting OPC ConnectivityPresented by:Gary Alldredge and Dan Scott

    November 2011

    Slide *

    Invensys Enterprise Control OfferingsManufacturing / Production OperationsCorporateAutomation Invensys and Third Party

    Enterprise Control System

    Slide *

    Where The Offerings We Will Discuss Fit Within TheInFusion Enterprise Control System

    Slide *

    IntroductionThis presentation will give you a better understanding of what OPC is, how it works internally, and how to troubleshoot problems when integrating OPC communications into Wonderware products.We will discuss some OPC configuration best practices, review some of the common problems we see in customer systems, and share how we typically solve those problems.

    Slide *

    Getting to Know OPC

    Slide *

    What is OPC?OPC is an acronym for OLE (Object Linking and Embedding) for Process ControlOpen yet secure connectivity via open standard specifications for interfacing process control (hardware) and manufacturing automation applications (software)Originally based on Microsofts OLE COM and DCOM technologies providing a framework for third party development

    Slide *

    OPC StandardsStandards are formed by the OPC Foundation. Before standards, every hardware vendor had to provide a customer driver to communicate to their devices. This was costly and difficult to configure and maintain.http://www.opcfoundation.org

    Slide *

    OPC StandardsThere are a variety of different OPC Standards that are used in different ways and have different behaviors and interface methods.OPC Data Access: The original standards. Real-time data from PLCs, DCS, etc. to HMI and other display clients. Currently supported by Wonderware OPC products.OPC Alarms & Events: On-demand alarm and event notificationOPC Batch: Specialized for batch processesOPC Data eXchange: Server/server communication instead of client/server

    Slide *

    OPC StandardsOPC Historical Data Access: OPC access to historical archive dataOPC XML-DA: Exposing plant floor data via XML. Leverages SOAP and Web Services.OPC Unified Architecture (UA): New multi-spec standard, not based on COM, for cross-platform communications. Future support is planned for Wonderware products.

    Slide *

    OPC Data Access SpecificationThis is currently the only specification available within Wonderware products; however, there are different revisions of the specification.1.0: Initial specificationDA 1.0a: Data Access (DA) name adopted to differentiate from other spec types being developed. Limited support by Wonderware.DA 2.0-2.05a: Numerous modifications and clarifications. Most commonly utilized revision. Supported by Wonderware.DA 3.0: Further modifications and clarifications. Relatively new and not widely utilized yet. Not currently supported by Wonderware.Not all clients and servers are backwards compatible. 3rd party products do exist to mediate revision compatibility.

    Slide *

    OPC Server Activation MethodsAn OPC Client uses one of two activation methodsOut-of-Process (Out-of-Proc; other terms: exe or local)An Out-of-Proc server is implemented as an exe. The executable is a separate process from the client.Can be used for local or remote connectionsAllows for multiple concurrent clientsIn-Process (In-Proc; other term: DLL) An In-Proc server is implemented in a Windows DLL and is mapped directly into the address space of the process that uses it.Local connection by only one client

    Slide *

    OPC Data AccessCommunications MechanismsThere are four different mechanisms for data requests and retrievalAsynchronous CallsClient issues a read or write request and the thread is immediately releasedThe values are returned laterSynchronous calls (not supported by Wonderware products) Client issues a read or write request and the thread is not released until the values are returned

    Slide *

    OPC Data AccessCommunications MechanismsRefresh (Pull callback mechanism)Client issues a refresh call, OPC server returns current values asynchronouslyUseful when switching from one view to anotherSubscription (Push callback mechanism) Lowers transactional overheadClient requests items of interest. Using event-based triggers, server notifies client only when changes occur.

    Slide *

    OPC Enumeration vs. OperationThere is a significant difference when you are browsing for servers and items during configuration-time versus launching and accessing data during run-time.OPCEnum (enumeration)Browse for available OPC servers on a nodeBrowse items on that serverOperationConnect to the OPC Server or Launch the OPC ServerAccess the OPC serverRequest data to be polledSometimes only one or the other works, sometimes both or neither.

    Slide *

    COM: ProgID vs. CLSIDThere are two different ways to uniquely identify an OPC ServerProgID: PROGrammatic IDentifierHuman readable name of componentThis is what is seen when browsing for a list of OPC ServersCLSID: CLasS IDentifer (also referred to as GUID) Actual internal identifier used by interacting programsCan be located in Component Services, DCOM properties for OPC Server. Appears on General tab as Application ID.Can be manually entered in OPC client if ProgID is not able to be browsed due to broken OPCEnum. (Include the curly brackets)

    Slide *

    Example Subscription OPC Communications ScenarioClient connects to serverClient adds OPC group with requested update rate and deadbandClient adds itemsServer validates items and returns success or failureServer polls field deviceServer sends initial update data type and VTQ. (Value, Time, Quality)Server polls the device at the requested rate for those itemsServer responds to client with VTQ when there is a change in the VTQAsynchronous read/write calls can be made at any time after subscription is established

    Slide *

    Wonderware OPC Products

    Slide *

    Wonderware OPC Client Solutions:FactorySuite Gateway (FSGateway)Supports OPC DA 2.05aPlanned future support for OPC UAConfigured via DAServer Manager in the System Management Console (SMC)Supports Suitelink, OPC, DDE clientsSupports activation of OPC server in-proc and out-of-proc

    Slide *

    Wonderware OPC Client Solutions:OPCClient ArchestrA Device Integration ObjectSupports OPC DA 2.05aPlanned future support for OPC UAConfigured via ArchestrA IDE, deployed to platformsProvides data to ArchestrA galaxy objects via Message Exchange (MX) protocolSupports activation of OPC server in-proc and out-of-procSupports Block Reads and Writes

    Slide *

    Wonderware OPC Client Solutions:OPCLinkSupports OPC DA 1.0a and 2.05aConfigured via its own user interfaceSupports Suitelink, DDE clientsItem prefix is required to specify data typeSupports activation of OPC server in-proc and out-of-procLegacy application not supported on current Operating Systems

    Slide *

    Wonderware OPC Server Solutions:FSGatewayConnects to various data sourcesSuitelinkDDEInTouch View ApplicationArchestrA Galaxy objects (a platform must be deployed locally)OPC serversSupports only Out-Of-Proc activation by clientsCan be an OPC, Suitelink, or DDE serverCannot be OPC and DDE server at the same timeDDE limitations on newer Operating Systems (see readme)

    Slide *

    Wonderware OPC Server Solutions:All Wonderware DAServersConnect to various 3rd party field devicesModbusRockwellGESiemensMany othersSupports only Out-Of-Proc activationToolkit available for custom DAS development to connect to other devicesCan be an OPC, Suitelink, or DDE server

    Slide *

    Sample OPC ConfigurationTips and Tricks

    Slide *

    FSGateway OPC Configuration:Create an OPC ObjectServer Node: Computer Name or IP address hosting the OPC ServerServer Name: ProgID or ClSIDReconnection Attempts: Number of times FSGateway attempts to reconnect to the OPC ServerReconnect Period: Delay between reconnect attemptsActivate Server Out of Proc: If checked OPC server is activated out of proc. If unchecked OPC server is activated in-proc

    Slide *

    FSGateway OPC Configuration:Create an OPC Group ObjectDevice Group Name: Name of the topic that a DDE or SuiteLink client will use. Value is the concatenation of the OPC object name , an underscore and the OPCGroup object name.Update rate: Value in ms that FSGateway will request the OPC server to use as the fastest rate at which data changes may be sent.OPC Item ID Prefix: String prefixed to all item names added to the OPC group.

    Slide *

    FSGateway OPC Configuration:Create an OPC Group ObjectUse Group Name as Access Path: The name of the OPC group object is used as the OPC Access Path for all items added to the OPC Group.Read Only: Makes all items in the OPC Group read only. Unchecking this box only removes FSGateway imposed read-only qualifications, not read-only items in the device.Demand Read After Poke: Forces FSGateway to read back all written values after the write has been processed.

    Slide *

    FSGateway OPC Configuration:Device Item AliasDevice Items list is not requiredRight column is OPC servers required item syntaxAllows you to shorten item namesAllows FSGateway items to be browseable by OPC ClientsGood tool for confirming proper item syntaxGood tool for determining proper syntax for Item Prefix

    Slide *

    Why Cant I Read DataFrom My OPC Server?

    Slide *

    Death by DCOMDCOM security issues are by far the most common OPC-related issues we encounterDCOM components are generally secure by defaultResolving DCOM security is particularly difficult when dealing with multi-node configurations that are not on a domain

    Slide *

    DCOM Preparation for OPC:Windows SecurityTemporarily disable Windows FirewallSetup transactional usersAll users and passwords must matchShould be in Administrators groupCommon domain user is preferredUse loosened security to get setup, then tighten later

    Slide *

    DCOM Preparation for OPC:Simple File SharingDisable Simple File SharingUsually a workgroup problemIn ExplorerTools/Folder Options, View tabUncheck Use Simple File SharingOR in Admin Tools - Local Security policiesSecurity OptionsSet Network Access: Sharing and security model for local accounts to Classic

    Slide *

    DCOM Preparation for OPC:Default PropertiesDCOMCNFG (Component Services)My Computer/PropertiesDefault PropertiesEnable Distributed COM (reboot required)Default Authentication Level = ConnectDefault Impersonation Level = IdentifyDefault ProtocolsConnection-oriented TCP/IP is all that OPC requires

    Slide *

    DCOM Preparation for OPC:Components Services SecurityDCOMCNFG (Component Services)My Computer/PropertiesCOM SecurityAccess Permissions/Edit DefaultAdd EveryoneAccess Permissions/Edit LimitsAdd Everyone, Anonymous LogonLaunch and Activation Permissions/Edit DefaultAdd EveryoneLaunch and Activation Permissions/Edit LimitsAdd Everyone

    Slide *

    DCOM Preparation for OPC:OPC Server DCOM SecurityLocate the specific OPC server DCOM entryPropertiesAuthentication level sometimes needs to be NoneIdentityInteractive: OPC server runs as logged-on user. Not recommended since someone needs to be logged in.Launching User: OPC server runs as user who called for launch. If more than one user calls for launch, multiple OPC server instances will be attempted, which can be a problem. Must be admin user.This User: OPC server runs as specific user. Required by some OPC server vendors.System Account: Preferred, but not available if server is not a Windows Service.

    Slide *

    DCOM Preparation for OPC:Secure CommunicationsApply Security Often overlooked if focus is on get it working!Re-enable Windows FirewallAdd application exceptionsTCP/135 will need to be open always at a minimumTweak COM SecurityRemove Anonymous Logon access if desiredAllow or Deny specific accounts

    Slide *

    Common OPC Problemsand Solutions

    Slide *

    Problem #1:Cant Browse for List of OPC ServersCan be particularly difficult on remote serversUtilizes OPCEnum to retrieve the listList contains ProgIDConnection to OPC server is not madeDoes not mean OPC server is workingIf unable to resolve, you can manually enter the CLSID including curly brackets

    Slide *

    Problem #1: Troubleshooting Cant Browse for List of OPC Servers

    OPCEnum is Not InstalledVerify OPCEnum service is present on all servers and not disabled (manual preferred)Usually installed along with an OPC client or server as a redistributableNo Anonymous Logon accessRequired for OPCEnum with workCheck if Anonymous Access is granted in the default Windows COM SecurityDCOMCNFG/My Computer/COM Security

    Slide *

    Problem #2:Cant Connect to Remote OPC ServerUnrelated to OPCEnum browsing successErrors in log like failed to activate remote serverPossible causes and solutionsMake sure OPC Server service is not disabledReview DCOM security for problemsUser executing FSGateway does not have launch and activate or access privilegeSimple File Sharing is enabledOPC Server DCOM Identity setting is wrongFirewall is blocking connection

    Slide *

    Problem #3:Connection Made, but Items BadMessage in log that connection to OPC Server was successfulSometimes get failed to add item errors in the logPossible causes and solutionsImproper item syntaxTry browsing for items and adding to basketCheck Item Prefix settingsEnd device is not accessibleCheck OPC Server for errorsDelayed data-type validation failureReview DCOM security for problems

    Slide *

    Problem #4:Good Item Quality, but No Item UpdatesMessage in log that connection to OPC Server was successfulNo failed to add item errorsPossible causes and solutionsSubscription-based means no change, no updateFirewall blocking updatesSimple File Sharing enabledReview DCOM security for problems

    Slide *

    OPC Trace of FSGatewayTo OPC ServerCommunications

    Slide *

    Advise ItemsFSGateway connects to the OPC Server

    FSGatewayOPC ServerConnectGroup (1000 ms)Create GroupAdd ItemsPump SpeedTank LevelMotor AmpsFSGatewayPump Speed = 47Tank Level = 85.4Motor Amps = 48.2FSGateway sets the client name

    FSGateway adds a group to the OPC Server

    FSGateway adds item(s) to the Group

    OPC Server pushes data changes to FSGateway

    Pump Speed = 48Tank Level = 84.6Motor Amps = 46.8Pump Speed = 50Tank Level = 89.4Motor Amps = 49.2

    Slide *

    Advise One ItemFSGateway connects to the OPC Server13:02:58.406 - IOPCCommon::SetClientNameGeneral:HRESULT: 0x00000000 S_OK

    In Parameters:szName: Wonderware FSGateway

    Set Client Name

    FSGateway sends its name to the OPC Server

    Slide *

    Advise One ItemFSGateway adds a group to the OPC Server13:02:58.421 - IOPCServer::AddGroup -General:HRESULT: 0x00000000 S_OK

    In Parameters:szName: OPC.GroupbActive: TRUEriid: IID_IOPCItemMgtpPercentDeadband: NULLdwLCID: 0x0LOCALE_NEUTRALhClientGroup: 0x1000000pTimeBias: NULLdwRequestedUpdateRate: 1000

    Out Parameters:pRevisedUpdateRate: 1000phServerGroup: 0x195830ppUnk: 0x195854

    Slide *

    Advise One ItemFSGateway adds a group to the OPC Server13:02:58.421 - IOPCServer::AddGroup -General:HRESULT: 0x00000000 S_OK

    In Parameters:szName: OPC.GroupbActive: TRUEriid: IID_IOPCItemMgtpPercentDeadband: NULLdwLCID: 0x0LOCALE_NEUTRALhClientGroup: 0x1000000pTimeBias: NULLdwRequestedUpdateRate: 1000

    Out Parameters:pRevisedUpdateRate: 1000phServerGroup: 0x195830ppUnk: 0x195854Name of Group

    The Group name is the FSGateway OPC object name and the OPC Group object name separated by a period.

    Slide *

    Advise One ItemFSGateway adds a group to the OPC Server13:02:58.421 - IOPCServer::AddGroup -General:HRESULT: 0x00000000 S_OK

    In Parameters:szName: OPC.GroupbActive: TRUEriid: IID_IOPCItemMgtpPercentDeadband: NULLdwLCID: 0x0LOCALE_NEUTRALhClientGroup: 0x1000000pTimeBias: NULLdwRequestedUpdateRate: 1000

    Out Parameters:pRevisedUpdateRate: 1000phServerGroup: 0x195830ppUnk: 0x195854Create group as active

    FSGateway creates the group as active

    Slide *

    Advise One ItemFSGateway adds a group to the OPC Server13:02:58.421 - IOPCServer::AddGroup -General:HRESULT: 0x00000000 S_OK

    In Parameters:szName: OPC.GroupbActive: TRUEriid: IID_IOPCItemMgtpPercentDeadband: NULLdwLCID: 0x0LOCALE_NEUTRALhClientGroup: 0x1000000pTimeBias: NULLdwRequestedUpdateRate: 1000

    Out Parameters:pRevisedUpdateRate: 1000phServerGroup: 0x195830ppUnk: 0x195854Client Handle

    FSGateway provides the handle for this group

    Slide *

    Advise One ItemFSGateway adds a group to the OPC Server13:02:58.421 - IOPCServer::AddGroup -General:HRESULT: 0x00000000 S_OK

    In Parameters:szName: OPC.GroupbActive: TRUEriid: IID_IOPCItemMgtpPercentDeadband: NULLdwLCID: 0x0LOCALE_NEUTRALhClientGroup: 0x1000000pTimeBias: NULLdwRequestedUpdateRate: 1000

    Out Parameters:pRevisedUpdateRate: 1000phServerGroup: 0x195830ppUnk: 0x195854Requested Update Rate

    FSGateway specifies the rate at which data changes may be sent

    Slide *

    Advise One ItemFSGateway adds a group to the OPC Server13:02:58.421 - IOPCServer::AddGroup -General:HRESULT: 0x00000000 S_OK

    In Parameters:szName: OPC.GroupbActive: TRUEriid: IID_IOPCItemMgtpPercentDeadband: NULLdwLCID: 0x0LOCALE_NEUTRALhClientGroup: 0x1000000pTimeBias: NULLdwRequestedUpdateRate: 1000

    Out Parameters:pRevisedUpdateRate: 1000phServerGroup: 0x195830ppUnk: 0x195854Revised Update Rate

    The OPC Server returns the value it will actually use for the Update Rate. This may differ from the requested update rate.

    Slide *

    Advise One ItemFSGateway adds a group to the OPC Server13:02:58.421 - IOPCServer::AddGroup -General:HRESULT: 0x00000000 S_OK

    In Parameters:szName: OPC.GroupbActive: TRUEriid: IID_IOPCItemMgtpPercentDeadband: NULLdwLCID: 0x0LOCALE_NEUTRALhClientGroup: 0x1000000pTimeBias: NULLdwRequestedUpdateRate: 1000

    Out Parameters:pRevisedUpdateRate: 1000phServerGroup: 0x195830ppUnk: 0x195854Server Handle

    The OPC Server generated handle to the group. The client (FSGateway) will use this handle for functions such as adding items to the group.

    Slide *

    Advise One ItemFSGateway Subscribes to Items13:02:58.593 - IOPCItemMgt::AddItemsGeneral:GroupName: OPC.GroupGroupServerHandle: 0x195830HRESULT: 0x00000000 S_OK

    In Parameters:pItemArray: Item 0:AccessPath = ItemID = port.plc.400001ActiveState = 1ClientHandle = 0x01000000Blob size = 0Requ. DataType = 0 (VT_EMPTY)Reserved = 0dwCount: 1

    Slide *

    Advise One ItemFSGateway Subscribes to Items13:02:58.593 - IOPCItemMgt::AddItemsGeneral:GroupName: OPC.GroupGroupServerHandle: 0x195830HRESULT: 0x00000000 S_OK

    In Parameters:pItemArray: Item 0:AccessPath = ItemID = port.plc.400001ActiveState = 1ClientHandle = 0x01000000Blob size = 0Requ. DataType = 0 (VT_EMPTY)Reserved = 0dwCount: 1

    Slide *

    Advise One ItemFSGateway Subscribes to Items13:02:58.593 - IOPCItemMgt::AddItemsGeneral:GroupName: OPC.GroupGroupServerHandle: 0x195830HRESULT: 0x00000000 S_OK

    In Parameters:pItemArray: Item 0:AccessPath = ItemID = port.plc.400001ActiveState = 1ClientHandle = 0x01000000Blob size = 0Requ. DataType = 0 (VT_EMPTY)Reserved = 0dwCount: 1

    Slide *

    Advise One ItemFSGateway Subscribes to Items13:02:58.593 - IOPCItemMgt::AddItemsGeneral:GroupName: OPC.GroupGroupServerHandle: 0x195830HRESULT: 0x00000000 S_OK

    In Parameters:pItemArray: Item 0:AccessPath = ItemID = port.plc.400001ActiveState = 1ClientHandle = 0x01000000Blob size = 0Requ. DataType = 0 (VT_EMPTY)Reserved = 0dwCount: 1pItemArrayThis contains the OPC item definitions.

    AccessPathThere is no access path defined in this example

    Slide *

    Advise One ItemFSGateway Subscribes to Items13:02:58.593 - IOPCItemMgt::AddItemsGeneral:GroupName: OPC.GroupGroupServerHandle: 0x195830HRESULT: 0x00000000 S_OK

    In Parameters:pItemArray: Item 0:AccessPath = ItemID = port.plc.400001ActiveState = 1ClientHandle = 0x01000000Blob size = 0Requ. DataType = 0 (VT_EMPTY)Reserved = 0dwCount: 1ItemIDThe name of the item in the OPC Server.

    Slide *

    Advise One ItemFSGateway Subscribes to Items13:02:58.593 - IOPCItemMgt::AddItemsGeneral:GroupName: OPC.GroupGroupServerHandle: 0x195830HRESULT: 0x00000000 S_OK

    In Parameters:pItemArray: Item 0:AccessPath = ItemID = port.plc.400001ActiveState = 1ClientHandle = 0x01000000Blob size = 0Requ. DataType = 0 (VT_EMPTY)Reserved = 0dwCount: 1ActiveStateAdds the item as active.

    Slide *

    Advise One ItemFSGateway Subscribes to Items13:02:58.593 - IOPCItemMgt::AddItemsGeneral:GroupName: OPC.GroupGroupServerHandle: 0x195830HRESULT: 0x00000000 S_OK

    In Parameters:pItemArray: Item 0:AccessPath = ItemID = port.plc.400001ActiveState = 1ClientHandle = 0x01000000Blob size = 0Requ. DataType = 0 (VT_EMPTY)Reserved = 0dwCount: 1ClientHandleThe handle the client associates with the item.

    Slide *

    Advise One ItemFSGateway Subscribes to Items13:02:58.593 - IOPCItemMgt::AddItemsGeneral:GroupName: OPC.GroupGroupServerHandle: 0x195830HRESULT: 0x00000000 S_OK

    In Parameters:pItemArray: Item 0:AccessPath = ItemID = port.plc.400001ActiveState = 1ClientHandle = 0x01000000Blob size = 0Requ. DataType = 0 (VT_EMPTY)Reserved = 0dwCount: 1Requ. DataTypeFSGateway requests the data type as not specified (VT_EMPTY). Passing VT_EMPTY means FSGateway will accept the servers data type that will be returned.

    Slide *

    Advise One ItemFSGateway Subscribes to Items13:02:58.593 - IOPCItemMgt::AddItemsGeneral:GroupName: OPC.GroupGroupServerHandle: 0x195830HRESULT: 0x00000000 S_OK

    In Parameters:pItemArray: Item 0:AccessPath = ItemID = port.plc.400001ActiveState = 1ClientHandle = 0x01000000Blob size = 0Requ. DataType = 0 (VT_EMPTY)Reserved = 0dwCount: 1dwCountThe number of items to be added.

    Slide *

    Advise One ItemFSGateway Subscribes to ItemsOut Parameters:ppErrors: [000]0x00000000 S_OKppAddResults: Item 0:AccessRights = 3 (ReadWrite (0x00000003)) BlobSize = 0ServerHandle = 0x01000001Can. DataType = VT_UI2Reserved = 0

    Slide *

    Advise One ItemFSGateway Subscribes to ItemsOut Parameters:ppErrors: [000]0x00000000 S_OKppAddResults: Item 0:AccessRights = 3 (ReadWrite (0x00000003)) BlobSize = 0ServerHandle = 0x01000001Can. DataType = VT_UI2Reserved = 0AccessRightsOPC Server indicates if this item is read only, write only or read/write.

    Slide *

    Advise One ItemFSGateway Subscribes to ItemsOut Parameters:ppErrors: [000]0x00000000 S_OKppAddResults: Item 0:AccessRights = 3 (ReadWrite (0x00000003)) BlobSize = 0ServerHandle = 0x01000001Can. DataType = VT_UI2Reserved = 0ServerHandleThe server handle used to refer to this item.

    Slide *

    Advise One ItemFSGateway Subscribes to ItemsOut Parameters:ppErrors: [000]0x00000000 S_OKppAddResults: Item 0:AccessRights = 3 (ReadWrite (0x00000003)) BlobSize = 0ServerHandle = 0x01000001Can. DataType = VT_UI2Reserved = 0Can. DataTypeThe native data type within the OPC server for this item.

    VT_UI2Indicates a 2 byte unsigned integer.

    Slide *

    Advise One ItemOPC Server Pushes Data Changes to FSGateway13:02:59.593 IOPCDataCallBack::OnDataChangeGeneral:HRESULT: 0x00000000 S_OKGroupName: OPC.GroupnumCallbacks: 1GroupServerHandle: 0x195830

    In Parameters:hrMasterquality: 0x00000000 S_OKpvValues: [000]VT_UI2 25185dwCount: 1hrMastererror: 0x00000000 S_OKpftTimeStamps: [000]2011-09-07T20:02:59.968dwTransid: 0phClientItems: [000] 0x01000000hGroup: 0x1000000pwQualities: [000]0x00c0 OPC_QUALITY_GOODpErrors: [000]0x00000000 S_OK

    Slide *

    Advise One ItemOPC Server Pushes Data Changes to FSGateway13:02:59.593 IOPCDataCallBack::OnDataChangeGeneral:HRESULT: 0x00000000 S_OKGroupName: OPC.GroupnumCallbacks: 1GroupServerHandle: 0x195830

    In Parameters:hrMasterquality: 0x00000000 S_OKpvValues: [000]VT_UI2 25185dwCount: 1hrMastererror: 0x00000000 S_OKpftTimeStamps: [000]2011-09-07T20:02:59.968dwTransid: 0phClientItems: [000] 0x01000000hGroup: 0x1000000pwQualities: [000]0x00c0 OPC_QUALITY_GOODpErrors: [000]0x00000000 S_OKList of Client Handles

    List of client handles for the items which have changed

    Slide *

    Advise One ItemOPC Server Pushes Data Changes to FSGateway13:02:59.593 IOPCDataCallBack::OnDataChangeGeneral:HRESULT: 0x00000000 S_OKGroupName: OPC.GroupnumCallbacks: 1GroupServerHandle: 0x195830

    In Parameters:hrMasterquality: 0x00000000 S_OKpvValues: [000]VT_UI2 25185dwCount: 1hrMastererror: 0x00000000 S_OKpftTimeStamps: [000]2011-09-07T20:02:59.968dwTransid: 0phClientItems: [000] 0x01000000hGroup: 0x1000000pwQualities: [000]0x00c0 OPC_QUALITY_GOODpErrors: [000]0x00000000 S_OKNumber of Items

    The number of items in the client handle list

    Slide *

    Advise One ItemOPC Server Pushes Data Changes to FSGateway13:02:59.593 IOPCDataCallBack::OnDataChangeGeneral:HRESULT: 0x00000000 S_OKGroupName: OPC.GroupnumCallbacks: 1GroupServerHandle: 0x195830

    In Parameters:hrMasterquality: 0x00000000 S_OKpvValues: [000]VT_UI2 25185dwCount: 1hrMastererror: 0x00000000 S_OKpftTimeStamps: [000]2011-09-07T20:02:59.968dwTransid: 0phClientItems: [000] 0x01000000hGroup: 0x1000000pwQualities: [000]0x00c0 OPC_QUALITY_GOODpErrors: [000]0x00000000 S_OKList of Values and Data types

    Contains the data type and values for the items which have changed

    Slide *

    Advise One ItemOPC Server Pushes Data Changes to FSGateway13:02:59.593 IOPCDataCallBack::OnDataChangeGeneral:HRESULT: 0x00000000 S_OKGroupName: OPC.GroupnumCallbacks: 1GroupServerHandle: 0x195830

    In Parameters:hrMasterquality: 0x00000000 S_OKpvValues: [000]VT_UI2 25185dwCount: 1hrMastererror: 0x00000000 S_OKpftTimeStamps: [000]2011-09-07T20:02:59.968dwTransid: 0phClientItems: [000] 0x01000000hGroup: 0x1000000pwQualities: [000]0x00c0 OPC_QUALITY_GOODpErrors: [000]0x00000000 S_OKList of Timestamps

    Slide *

    Advise One ItemOPC Server Pushes Data Changes to FSGateway13:02:59.593 IOPCDataCallBack::OnDataChangeGeneral:HRESULT: 0x00000000 S_OKGroupName: OPC.GroupnumCallbacks: 1GroupServerHandle: 0x195830

    In Parameters:hrMasterquality: 0x00000000 S_OKpvValues: [000]VT_UI2 25185dwCount: 1hrMastererror: 0x00000000 S_OKpftTimeStamps: [000]2011-09-07T20:02:59.968dwTransid: 0phClientItems: [000] 0x01000000hGroup: 0x1000000pwQualities: [000]0x00c0 OPC_QUALITY_GOODpErrors: [000]0x00000000 S_OKList of Quality Values

    Slide *

    Advise One ItemOPC Server Pushes Data Changes to FSGateway13:02:59.593 IOPCDataCallBack::OnDataChangeGeneral:HRESULT: 0x00000000 S_OKGroupName: OPC.GroupnumCallbacks: 1GroupServerHandle: 0x195830

    In Parameters:hrMasterquality: 0x00000000 S_OKpvValues: [000]VT_UI2 25185dwCount: 1hrMastererror: 0x00000000 S_OKpftTimeStamps: [000]2011-09-07T20:02:59.968dwTransid: 0phClientItems: [000] 0x01000000hGroup: 0x1000000pwQualities: [000]0x00c0 OPC_QUALITY_GOODpErrors: [000]0x00000000 S_OKClient Handle of the Group

    Slide *

    FSGateway writes a value to the item

    Write a ValueFSGateway adds the item to the Group

    FSGatewayOPC ServerGroup....Add ItemPump StartPump Start = TrueOPC Server sends a Write Complete to FSGateway

    FSGateway removes the item from the Group

    Write CompleteRemove Pump Start

    Slide *

    Write a ValueFSGateway Adds the item14:05:32.265 - IOPCItemMgt::AddItemsGeneral:GroupName: OPC.GroupGroupServerHandle: 0x195830HRESULT: 0x00000000 S_OK

    In Parameters:pItemArray: Item 0:AccessPath = ItemID = port.plc.400001ActiveState = 0ClientHandle = 0x04000001Blob size = 0Requ. DataType = 18 (VT_UI2)Reserved = 0dwCount: 1FSGateway adds the item.

    The item is added to the OPC Server even if it is already subscribed. Creating a new item for writing is done to prevent the value from bouncing between the read value and the written value in the client application.

    Since we do not want to read from this item, it is not activated

    Slide *

    Write a ValueFSGateway Writes to the Item14:05:32.265 - IOPCAsyncIO2::WriteGeneral:GroupName: OPC.GroupGroupServerHandle: 0x195830HRESULT: 0x00000000 S_OK

    In Parameters:pItemValues: [000]VT_UI2 248dwCount: 1phServer: [000] 0x04000002dwTransactionID: 67108864

    Out Parameters:pdwCancelID: 67108864ppErrors: [000]0x00000000 S_OK

    Slide *

    Write a ValueFSGateway Writes to the Item14:05:32.265 - IOPCAsyncIO2::WriteGeneral:GroupName: OPC.GroupGroupServerHandle: 0x195830HRESULT: 0x00000000 S_OK

    In Parameters:pItemValues: [000]VT_UI2 248dwCount: 1phServer: [000] 0x04000002dwTransactionID: 67108864

    Out Parameters:pdwCancelID: 67108864ppErrors: [000]0x00000000 S_OKValue to be written

    Can contain a single item value or multiple item values

    Slide *

    Write a ValueFSGateway Writes to the Item14:05:32.265 - IOPCAsyncIO2::WriteGeneral:GroupName: OPC.GroupGroupServerHandle: 0x195830HRESULT: 0x00000000 S_OK

    In Parameters:pItemValues: [000]VT_UI2 248dwCount: 1phServer: [000] 0x04000002dwTransactionID: 67108864

    Out Parameters:pdwCancelID: 67108864ppErrors: [000]0x00000000 S_OKServer Handle of the Item to be Written

    Slide *

    Write a ValueFSGateway Writes to the Item14:05:32.265 - IOPCAsyncIO2::WriteGeneral:GroupName: OPC.GroupGroupServerHandle: 0x195830HRESULT: 0x00000000 S_OK

    In Parameters:pItemValues: [000]VT_UI2 248dwCount: 1phServer: [000] 0x04000002dwTransactionID: 67108864

    Out Parameters:pdwCancelID: 67108864ppErrors: [000]0x00000000 S_OKTransaction ID

    This transaction ID is used in the Write complete information returned from the OPC Server

    Slide *

    Write a ValueFSGateway Writes to the Item14:05:32.265 - IOPCAsyncIO2::WriteGeneral:GroupName: OPC.GroupGroupServerHandle: 0x195830HRESULT: 0x00000000 S_OK

    In Parameters:pItemValues: [000]VT_UI2 248dwCount: 1phServer: [000] 0x04000002dwTransactionID: 67108864

    Out Parameters:pdwCancelID: 67108864ppErrors: [000]0x00000000 S_OKErrors returned by the OPC Server

    Lists errors for each item written to.

    Slide *

    Write a ValueOPC Server notifies Client of Write Complete14:05:32.281 - IOPCDataCallback::OnWriteCompleteGeneral:GroupName: OPC.GroupGroupServerHandle: 0x195830HRESULT: 0x00000000 S_OKnumCallbacks: 4

    In Parameters:hrMastererror: 0x00000000 S_OKhGroup: 0x0dwCount: 1pErrors: [000]0x00000000 S_OKdwTransid: 67108864phClientItems: [000] 0x04000001

    Slide *

    Write a ValueOPC Server notifies Client of Write Complete14:05:32.281 - IOPCDataCallback::OnWriteCompleteGeneral:GroupName: OPC.GroupGroupServerHandle: 0x195830HRESULT: 0x00000000 S_OKnumCallbacks: 4

    In Parameters:hrMastererror: 0x00000000 S_OKhGroup: 0x0dwCount: 1pErrors: [000]0x00000000 S_OKdwTransid: 67108864phClientItems: [000] 0x04000001List of results

    Lists results for each item written to.

    Example return result:S_OKOPC_E_BADRIGHTSOPC_INVALIDHANDLEOPC_E_UNKNOWNITEMID

    Slide *

    Write a ValueOPC Server notifies Client of Write Complete14:05:32.281 - IOPCDataCallback::OnWriteCompleteGeneral:GroupName: OPC.GroupGroupServerHandle: 0x195830HRESULT: 0x00000000 S_OKnumCallbacks: 4

    In Parameters:hrMastererror: 0x00000000 S_OKhGroup: 0x0dwCount: 1pErrors: [000]0x00000000 S_OKdwTransid: 67108864phClientItems: [000] 0x04000001Client Item Handles

    Lists the client item handles for the items which were written

    Slide *

    Write a ValueOPC Server notifies Client of Write Complete14:05:32.281 - IOPCDataCallback::OnWriteCompleteGeneral:GroupName: OPC.GroupGroupServerHandle: 0x195830HRESULT: 0x00000000 S_OKnumCallbacks: 4

    In Parameters:hrMastererror: 0x00000000 S_OKhGroup: 0x0dwCount: 1pErrors: [000]0x00000000 S_OKdwTransid: 67108864phClientItems: [000] 0x04000001Transaction ID

    The Transaction ID returned to the client.

    Slide *

    Write a ValueFSGateway Removes the Item14:05:32.281 - IOPCItemMgt::RemoveItemsGeneral:GroupName: OPC.GroupGroupServerHandle: 0x195830HRESULT: 0x00000000 S_OK

    In Parameters:dwCount: 1phServer: [000] 0x04000002

    Out Parameters:ppErrors: [000]0x00000000 S_OK

    Slide *

    Write a ValueFSGateway Removes the Item14:05:32.281 - IOPCItemMgt::RemoveItemsGeneral:GroupName: OPC.GroupGroupServerHandle: 0x195830HRESULT: 0x00000000 S_OK

    In Parameters:dwCount: 1phServer: [000] 0x04000002

    Out Parameters:ppErrors: [000]0x00000000 S_OKServer Item Handles

    Server Item Handles for the items to be removed

    Slide *

    Write a ValueFSGateway Removes the Item14:05:32.281 - IOPCItemMgt::RemoveItemsGeneral:GroupName: OPC.GroupGroupServerHandle: 0x195830HRESULT: 0x00000000 S_OK

    In Parameters:dwCount: 1phServer: [000] 0x04000002

    Out Parameters:ppErrors: [000]0x00000000 S_OKList of results

    Lists results for each item removed.

    Example return result:S_OKOPC_INVALIDHANDLE

    Slide *

    Deactivate/Activate ItemFSGateway Deactivates an Item14:01:08.812 - IOPCItemMgt::SetActiveStateGeneral:GroupName: OPC.GroupGroupServerHandle: 0x195830HRESULT: 0x00000000 S_OK

    In Parameters:bActive: FALSEdwCount: 1phServer: [000] 0x01000001

    Out Parameters:ppErrors: [000]0x00000000 S_OK

    Slide *

    Deactivate/Activate ItemFSGateway Deactivates an Item14:01:08.812 - IOPCItemMgt::SetActiveStateGeneral:GroupName: OPC.GroupGroupServerHandle: 0x195830HRESULT: 0x00000000 S_OK

    In Parameters:bActive: FALSEdwCount: 1phServer: [000] 0x01000001

    Out Parameters:ppErrors: [000]0x00000000 S_OKbActiveTrue = ActivateFalse = Deactivate

    dwCountNumber of items to be affected

    phServerServer Item Handles

    ppErrorsList of results from the OPC Server

    Slide *

    Advise a Bad ItemFSGateway subscribes to a Bad Item14:08:32.890 - IOPCItemMgt::AddItemsGeneral:GroupName: OPC.GroupGroupServerHandle: 0x195830HRESULT: 0x00000001 S_FALSE

    In Parameters:pItemArray: Item 0:AccessPath = ItemID = port.plc.BadItemActiveState = 1ClientHandle = 0x02000000Blob size = 0Requ. DataType = 0 (VT_EMPTY)Reserved = 0dwCount: 1

    Slide *

    Advise a Bad ItemFSGateway subscribes to a Bad ItemOut Parameters:ppErrors: [000]0xc0040008 OPC_E_INVALIDITEMIDppAddResults: Item 0:AccessRights = 0 (None (0x00000000)) BlobSize = 0ServerHandle = 0x00000000Can. DataType = VT_EMPTYReserved = 0DASProtFailFSGatewayFailed to add Item 'port.plc.BadItem' to OPC Group 'OPC.Group', HRESULT = c0040008Error ID Return Code0xc0040008 indicates an Invalid Item IDLogger MessageShows the Itemname, which group the item belongs to and the Error ID Return code from the OPC Server.

    Slide *

    Quality ValuesFSGateway Diagnostics

    Slide *

    Quality ValuesOPC Server Pushes Data Changes to FSGateway14:59:22.421 - IOPCDataCallback::OnDataChangeGeneral:HRESULT: 0x00000000 S_OKGroupName: OPC.GroupnumCallbacks: 2GroupServerHandle: 0x195718

    In Parameters:hrMasterquality: 0x00000001 S_FALSEpvValues: [000] VT_R4 3.402823E+38dwCount: 1hrMastererror: 0x00000000 S_OKpftTimeStamps:[000] 2011-09-07T21:59:22.421phClientItems:[000] 0x02000000hGroup: 0x1000000pwQualities:[000] 0x0040 OPC_QUALITY_UNCERTAINpErrors: [000] 0x00000000 S_OK

    Slide *

    Quality ValuesOPC Server Pushes Data Changes to FSGateway14:59:22.421 - IOPCDataCallback::OnDataChangeGeneral:HRESULT: 0x00000000 S_OKGroupName: OPC.GroupnumCallbacks: 2GroupServerHandle: 0x195718

    In Parameters:hrMasterquality: 0x00000001 S_FALSEpvValues: [000] VT_R4 3.402823E+38dwCount: 1hrMastererror: 0x00000000 S_OKpftTimeStamps:[000] 2011-09-07T21:59:22.421phClientItems:[000] 0x02000000hGroup: 0x1000000pwQualities:[000] 0x0040 OPC_QUALITY_UNCERTAINpErrors: [000] 0x00000000 S_OKhrMasterqualityS_OK if all item qualities returned are good, S_False is returned otherwise.

    pwQualitiesQualities for individual items

    Slide *

    Delayed Item ValidationSome servers are unable to determine the Native Datatype at the time an item is added or validated.

    It is common practice for such servers to return VT_EMPTY as the native datatype.

    Such servers will return the data in the requested or native type when the data becomes available and the actual type can be determined.

    OPCDA standard recommends that clients be prepared to deal with an initial return of VT_EMPTY.

    Slide *

    Delayed Item ValidationFSGateway Adds and Activates an Item14:13:14.031 - IOPCItemMgt::AddItemsGeneral:GroupName: OPC.GroupGroupServerHandle: 0x1956f8HRESULT: 0x00000000 S_OK

    In Parameters:pItemArray: Item 0:AccessPath = ItemID = port.enet.bp.plc.array32[1]ActiveState = 1ClientHandle = 0x01000000Blob size = 0Requ. DataType = 0 (VT_EMPTY)Reserved = 0dwCount: 1

    Slide *

    Delayed Item ValidationFSGateway Adds and Activates an Item14:13:14.031 - IOPCItemMgt::AddItemsGeneral:GroupName: OPC.GroupGroupServerHandle: 0x1956f8HRESULT: 0x00000000 S_OK

    In Parameters:pItemArray: Item 0:AccessPath = ItemID = port.enet.bp.plc.array32[1]ActiveState = 1ClientHandle = 0x01000000Blob size = 0Requ. DataType = 0 (VT_EMPTY)Reserved = 0dwCount: 114:13:14.031 - IOPCItemMgt::AddItemsGeneral:GroupName: OPC.GroupGroupServerHandle: 0x1956f8HRESULT: 0x00000000 S_OK

    In Parameters:pItemArray: Item 0:AccessPath = ItemID = port.enet.bp.plc.array32[1]ActiveState = 1ClientHandle = 0x01000000Blob size = 0Requ. DataType = 0 (VT_EMPTY)Reserved = 0dwCount: 1

    Slide *

    Delayed Item ValidationFSGateway Adds and Activates an ItemOut Parameters:ppErrors: [000]0x00000000 S_OKppAddResults: Item 0:AccessRights = 3 (ReadWrite (0x00000003)) BlobSize = 0ServerHandle = 0x01000001Can. DataType = VT_EMPTYReserved = 0

    Slide *

    Delayed Item ValidationFSGateway Adds and Activates an ItemOut Parameters:ppErrors: [000]0x00000000 S_OKppAddResults: Item 0:AccessRights = 3 (ReadWrite (0x00000003)) BlobSize = 0ServerHandle = 0x01000001Can. DataType = VT_EMPTYReserved = 0Data Type is returned as VT_Empty because the OPC Server does not yet know the Data Type

    Slide *

    Delayed Item ValidationOPC Server Pushes Data Changes to FSGatewayIOPCDataCallback::OnDataChangeGeneral:HRESULT: 0x00000000 S_OKGroupName: OPC.GroupnumCallbacks: 1GroupServerHandle: 0x1956f8

    In Parameters:hrMasterquality: 0x00000000 S_OKpvValues:[000]VT_BOOL -1dwCount: 1hrMastererror: 0x00000000 S_OKpftTimeStamps:[000]2011-09-07T21:13:16.109dwTransid: 0phClientItems:[000] 0x01000000hGroup: 0x1000000pwQualities:[000]0x00c0 OPC_QUALITY_GOODpErrors: [000]0x00000000 S_OK

    Slide *

    Delayed Item ValidationOPC Server Pushes Data Changes to FSGatewayIOPCDataCallback::OnDataChangeGeneral:HRESULT: 0x00000000 S_OKGroupName: OPC.GroupnumCallbacks: 1GroupServerHandle: 0x1956f8

    In Parameters:hrMasterquality: 0x00000000 S_OKpvValues:[000]VT_BOOL -1dwCount: 1hrMastererror: 0x00000000 S_OKpftTimeStamps:[000]2011-09-07T21:13:16.109dwTransid: 0phClientItems:[000] 0x01000000hGroup: 0x1000000pwQualities:[000]0x00c0 OPC_QUALITY_GOODpErrors: [000]0x00000000 S_OKIOPCDataCallback::OnDataChangeGeneral:HRESULT: 0x00000000 S_OKGroupName: OPC.GroupnumCallbacks: 1GroupServerHandle: 0x1956f8

    In Parameters:hrMasterquality: 0x00000000 S_OKpvValues:[000]VT_BOOL -1dwCount: 1hrMastererror: 0x00000000 S_OKpftTimeStamps:[000]2011-09-07T21:13:16.109dwTransid: 0phClientItems:[000] 0x01000000hGroup: 0x1000000pwQualities:[000]0x00c0 OPC_QUALITY_GOODpErrors: [000]0x00000000 S_OKOPC Server sends the Data Type and value.

    Slide *

    Questions?

    *As you heard in the opening sessions, addressing the need to move to Enterprise Control is critical for all organizations today as they look to optimize their business performance.

    By way of a quick reminder, at the simplest level, Enterprise Control is achieved by integrating the two major Manufacturing/Production Operations capabilities with your corporate systems and embracing the IT platform that is already in place.

    Invensys enables the creation of your Enterprise Control system by providing:

    a single integration platform that brings together the two operations components and integrates tightly with your existing IT infrastructure. This platform allows you to align Invensys and non-Invensys offerings a wide range of leading hardware and software and solution offerings at the automation and production software levels, extended by offerings from our extensive partner ecosystem proven expertise in designing, implementing and supporting complete Enterprise Control solutions, beginning with consulting services to help you identify the opportunities within your organization and deliver an execution plan*In its fullest form, an Enterprise Control System brings together a large number of functional capabilities. For the purposes of this presentation, well be focusing on the component that you see highlighted, but it is important to note that all these offerings, both Invensys and 3rd party, can be an element of an Enterprise Control System. ********************************************If write was successful there will be an OnDataChange for the subscribed item*If write was successful there will be an OnDataChange for the subscribed item*If write was successful there will be an OnDataChange for the subscribed item*If write was successful there will be an OnDataChange for the subscribed item*If write was successful there will be an OnDataChange for the subscribed item************