540 likes | 762 Views
ODVA Object & Device Profile Definition (Process & Recommendations). System SIG 1998 Annual Meeting. Core System SIG Members. Allen-Bradley Control Technology Cutler-Hammer National Instruments OMRON Turck. Device Profiles. SIG Creation Identifying Objects Control Attributes
E N D
ODVAObject & Device ProfileDefinition (Process & Recommendations) System SIG 1998 Annual Meeting
Core System SIG Members • Allen-Bradley • Control Technology • Cutler-Hammer • National Instruments • OMRON • Turck
Device Profiles • SIG Creation • Identifying Objects • Control Attributes • Behavior • Configuration Attributes • IO Assemblies • Device Model • External Events • Fault Behaviors • Test Plans • Electronic Data Sheets
SIG Creation Step 1: Create a SIG • If an appropriate Special Interest Group does not exist, contact the Chief Technical Officer of Technical Review Board • Submit a “SIG Charter” to TRB • A “call for participants” will be distributed to all ODVA members
SIG Creation Step 2: First Meeting • Determine voting rules • Clarify scope of SIG • Submit final charter to TRB for approval
Device Profiles • SIG Creation • Identifying Objects • Control Attributes • Behavior • Configuration Attributes • IO Assemblies • Device Model • External Events • Fault Behaviors • Test Plans • Electronic Data Sheets
Identifying Objects EXAMPLE: Throttling Valve Step 3: Begin Profile(s) • Initially focus on sensor/actuator • Define minimal device functionality first
Identifying Objects • Identify “inputs” Position Step 4: Identify Preliminary Object(s) • Use physical view as first guess
Device Profiles • SIG Creation • Identifying Objects • Control Attributes • Behavior • Configuration Attributes • IO Assemblies • Device Model • External Events • Fault Behaviors • Test Plans • Electronic Data Sheets
Control Attributes Step 5: Create “Instance Attribute” Table • Since all instances have a state transition diagram, recommend “State” as attribute identifier #1 (Assumes “Invalid State for Service” error response is supported.) • Place “input(s)” as next attribute(s) NOTE: Object definition INDEPENDENT OF SUBNET
Control Attributes Step 6: Define Semantics of “Position” • Range of “Position” from zero (0) to one hundred (100) percent (or full range based on data type?) • Zero (0) percent is closed • One hundred (100) percent is fully open
Control Attributes Step 7: Determine Data Type of “Position” • Should “Position” have 100 increments, 1000 increments, or 10000 increments? (See Appendix J, Volume I for data types)
Control Attributes Step 8: Create “Attribute Descriptions” • Further clarify any value restrictions or support requirements in attribute descriptions following Instance Attributes table. • Position • Value determines desired valve position in hundredths of a percent, where • zero (0) is fully closed, 10000 is fully open. Some valves may not support the full resolution, but shall accept full range of values. Values greater than 10000 shall be interpreted as “fully open”.
Control Attributes Actual Setpoint Step 9: Identify object “Outputs” To avoid confusion, input name changed to“Setpoint”
Throttling Valve + Actual Throttling Valve + Zero + Span Step 10: Inheritance • Start Simple • Review existing objects for possible reuse • Add functionality maintaining technologyindependence(positioner may be pneumatic, stepping motor, etc.) NOTE: When making decisions THINK OF THE CUSTOMER! Basic Throttling Valve State Setpoint
Control Attributes Step 11: Add “Attribute Description” • Actual • Value identifies actual valve position in hundredths of a percent, where zero (0) is fully closed, 10000 is fully open. Some valves may not support the full resolution, thus providing “actual” indications in greater increments, like; 0, 100, 200 and so forth. This attribute is optional.
Device Profiles • SIG Creation • Identifying Objects • Control Attributes • Behavior • Configuration Attributes • IO Assemblies • Device Model • External Events • Fault Behaviors • Test Plans • Electronic Data Sheets
Behavior IDLE IDLE IDLE RUNNING RUNNING Step 12: Define Behavior • Use template NON-EXISTENT NON-EXISTENT Create or Power Up/ Delete or Power Down/ Set or Get Attribute/ IDLE Apply/ Reset/ Get Attribute/ RUNNING
Device Profiles • SIG Creation • Identifying Objects • Control Attributes • Behavior • Configuration Attributes • IO Assemblies • Device Model • External Events • Fault Behaviors • Test Plans • Electronic Data Sheets
Configuration Attributes Step 13: Identify “Configuration Attributes” • Relative to IDLE state, are there any configuration attributes? NOTE: Send Member to System SIG and Conformance SIG EARLY in definition process.
Configuration Attributes Step 14: Attribute Relationships • Does a common calibration behavior exist? • Does “Zero” adjust affect “Span”? • Device Calibration • To calibrate, place valve in IDLE state via an explicit “Reset” service. • ZERO ADJUST: • While in IDLE state, perform a “Set Attribute” on “Setpoint” with a value of zero (0) to the instance. Visually check valve. If partially open, perform a “Get Attribute” of “Zero”,decrement value by desired amount, then perform a “SetAttribute” to “Zero” attribute. Continue until valve is fully closed. • SPAN ADJUST: • While in IDLE state, perform a “Set Attribute” on “Setpoint” with a value of 10000. Visually check valve. Depending upon position, perform a “Get Attribute” of “Span” and increment/decrement value by desired amount, then perform a “Set Attribute” to “Span” attribute. Increment or decrement value until valve is fully open.
Configuration Attributes Step 15: Complete Attribute Definition When is value “saved” to non volatile memory? Prior to a “Set Attribute Response”? Only upon receipt of a “Save” or “Apply” request to the “Throttling Valve” object? (For consistency with other objects, specify in Device Profile, not in Throttling Object profile.) NOTE: Signed 16 Bit integers used here. • Zero • If optional attribute supported, it shall be maintained in Non Volatile memory. Value may be factory set, therefore, a default value does not exist. Value may only be set while in IDLE state. • Span • If optional attribute supported, it shall be maintained in Non Volatile memory. Value may be factory set, therefore, a default value does not exist. Value may only be set while in IDLE state.
Node accepts 800 or 900, not 870 Set_Attribute_Req, Throttling_Valve, 1, Setpoint, 870 Set_Attribute_Resp, 800 Success response contains actual value accepted. Step 16: Define Unique Dialogs • Define dialogs when an “unsupported” value is set within node. Throttling Valve Node Client Configuration Tool
Step 17: Revise Object Profile • Setpoint • Value determines desired valve position in hundredths of a percent, where • zero (0) is fully closed, 10000 is fully open. Values greater than 10000 shall be interpreted as “fully open”. Some valves may not support • the full resolution, but shall accept the full range of values. For this attribute, the successful response to a “Set Attribute Single” shall always contain the value accepted, which shall be rounded down when full range not supported. • EXAMPLE: • Set_Attribute_Req, Throttling_Valve, 1, Setpoint, 870 • Set_Attribute_Resp, 800
Configuration Attributes Step 18: Class Attributes • All objects in Volume II have been updated to reference a common set of class attributes shared by all classes. • Specify in Device Profile if any class attributes are required. • Only specify additional class attributes, when necessary.
Device Profiles • SIG Creation • Identifying Objects • Control Attributes • Behavior • Configuration Attributes • IO Assemblies • Device Model • External Events • Fault Behaviors • Test Plans • Electronic Data Sheets
IO Assemblies Input Assembly Instance 2 Output Assembly Instance 1 Step 19: Define “IO Assemblies” Size (length) of “Assemblies” are currently fixed, since IO Messages of lengths other than that specified by the “consumed connection size” may result in an error at the consuming node. This may be due to invalid configurations between two nodes. (Deviations SHALL be specified in Device Profile.)
IO Assemblies Assembly [7] Assembly [6] Assembly [5] produced_connection_path consumed_connection_path Assembly [4] Assembly [3] Assembly [2] Assembly [1] “Generic Tools” prefer “Assembly” instance specified using “Appendix I, Logical Encoding”. (EXAMPLE: Class8, Assembly, Instance8, 1, Attribute8, Data) (Required support & encoding defined in Device Profile) Step 20: “IO Assemblies” Selection Client tools shall set; consumed size, consumed_connection_path, produced size, produced_connection_path, consistent with length of produced and consumed assemblies. Connection (Polled IO) Device Net
External Events Assembly [100] NON EXISTENT Create Explicit Request Explicit Request Create, Assembly, 0 INACTIVE CreateResp, 100 Explicit Response SetAttribSingle, Assembly, 100, MemberList, ..Actual.. Explicit Request SetAttrib, MemberList, ..Actual.. SetAttrResp SetAttrResp Explicit Response Apply Apply, Assembly, 100 ACTIVE Explicit Response ApplyResp ApplyResp Step 21: Dynamic Assemblies(“Create” serviceconditionalon Dynamic Assembly support.) Device Net Connection Polled Assembly [0] ESTABLISHED RUNNING ACTIVE Does transition of Assembly [100] from INACTIVE to ACTIVE guarantee that all informationin the Member List attribute is valid? (Define meaning of “ApplyResp” in Device Profile.)
IO Assemblies Step 22: “IO Assemblies” Selection Assembly [100] {Member List::= Class8,Valve, Instance8, 1 Attrib8, Actual Class8,Identity, Instance8, 1 Attrib8,Status} Throttling Valve State, Actual, Setpoint Connection (Polled IO) Identity Status, Device Net Member List of “DynamicAssembly” instance specified using “Appendix I, Logical Encoding”. If desired, rules on “layout order” defined. (Required encoding defined in Device Profile)
Device Profiles • SIG Creation • Identifying Objects • Control Attributes • Behavior • Configuration Attributes • IO Assemblies • Device Model • External Events • Fault Behaviors • Test Plans • Electronic Data Sheets
Device Model • Identify object relationships and dialogs Connection (Cyclic/COS IO) Ack Handler Assembly [2] (Produced Input) Connection (Polled IO) Throttling Valve Assembly [1] (Consumed Output) Connection (Explicit) Device Net Identity Message Router Step 23: Create “Device Profile” • Identify required & optional objects (DeviceNet, Connection, Identity, Message Router)
Device Profiles • SIG Creation • Identifying Objects • Control Attributes • Behavior • Configuration Attributes • IO Assemblies • Device Model • External Events • Fault Behaviors • Test Plans • Electronic Data Sheets
External Events Step 24: Identify External Events • Receive Idle (Zero length IO Message) • Receive Data (Normal IO Message) • Receive Data (Invalid length IO Message) • Receive Data (Invalid local configuration) • Local Power Applied (Subnet power applied before local) • Local Power Removed (while Subnet power applied) • Object Faults • Device Modes (Manual, Auto, Program, Calibrate)
External Events IDLE IDLE IDLE INACTIVE INACTIVE “Vendor Specific” behavior INACTIVE ACTIVE Step 25: Identify “Master Sequence of Events” NON-EXISTENT NON-EXISTENT Create or Power Up/ Delete or Power Down/ Set or Get Attribute/ IDLE Scanner Reset/ Stop Sending IO Messages Scanner Started/ Allocate & Send Idle Messages INACTIVE Application Stopped/ Send Idle Messages Application Started/ Send IO Messages ACTIVE
External Events Connection (Polled IO) Poll Response Poll Response Assembly [2] (Produced Input) Actual Connection (Polled IO) Actual Throttling Valve Receive Data Assembly [1] (Consumed Output) Received Data Device Net Device Net Setpoint Step 26: Define Normal Behavior(Assume all objects in operational state) Ack Handler Connection (Cyclic/COS IO) Assembly [2] (Produced Input) Connection (Polled IO) Throttling Valve Assembly [1] (Consumed Output) Connection (Explicit) Device Net Identity Message Router
External Events Poll Request Receive Data ACTIVE Setpoint RUNNING Actual ACTIVE Actual Poll Response Step 27: Message Sequence Chart(First “Receive Data” Event) Device Net Connection Polled Assembly [1] Assembly [2] Throttling Valve IDLE ESTABLISHED RUNNING INACTIVE INACTIVE Is receipt of “Setpoint”an implied “Apply” OR ignored if not “RUNNING”? (Clarify in Device Profile)
External Events Poll Request Receive Idle ? IDLE? Actual? Actual Poll Response Step 28:Message Sequence Chart( “Receive Idle” Event while “RUNNING”) Device Net Connection Polled Assembly [1] Assembly [2] Throttling Valve ESTABLISHED RUNNING ACTIVE RUNNING ACTIVE Does“Assembly” detect zero length message and “Reset” valve OR does “Assembly” pass “Position = 0” to valve? (Clarify in Device Profile) Is there a response to a “Receive Idle”? (Clarify in Device Profile)
External Events “End of Consumption” INACTIVE “End of Production” INACTIVE “Reset” IDLE Step 29:Message Sequence Chart( “Connection Timeout” Event while “RUNNING”) Device Net Connection Polled Assembly [1] Assembly [2] Throttling Valve ESTABLISHED RUNNING ACTIVE RUNNING ACTIVE TIMED OUT (Define “inter object” dialogs within Device Profile.)
External Events Step 30: Update Behavior(if required) NON-EXISTENT Create or Power Up/ Delete or Power Down/ Set or Get Attribute/ IDLE Apply/ Reset/ Get Attribute/ RUNNING If setting of some or all attributes allowed in this state, clearly specify in object profile. ODVA RULING: If a “Set Attribute” is allowed on “Setpoint” while in RUNNING state, it shall be overwritten by the next consumed IO Message. If only “Explicit Messages” are used for control (no IO Message allocated), connection timeout faults may not be detected unless specified otherwise in Device Profile!
External Events Step 31: Update Behavior • If COS, is an “Actual” IO Messages sent upon receipt of “Setpoint”, then at interval equal to “production inhibit time”? • Is an error generated if “Actual <> Setpoint” after a period of time? 100 90 80 70 60 50 Actual If “Actual” attribute wanders, does valve continually produce IO Messages at interval equal to “production inhibit time or is a “dead band” attribute required? (Specify desired behavior in Device Profile.) Setpoint = 90 @ t4 0 10 20 30 40 Time
External Events Step 32: “External Events” • A “good” Device Profile has evidence that the various “event scenarios” were discussed, resolved and SIG decisions documented. (DSE-68-59) DO NOT place “communications specific” signals in “Application Objects”. The RELATIONSHIPS shall be placed in the Device Profile.
Device Profiles • SIG Creation • Identifying Objects • Control Attributes • Behavior • Configuration Attributes • IO Assemblies • Device Model • External Events • Fault Behaviors • Test Plans • Electronic Data Sheets
Fault Behaviors Step 33: Device Fault Indications • Assume previous “Fault Events” occurred in device. How does a “controller or tool know” what happened? • TODAY: Generally “Vendor Specific” behavior, with few profiles specifying how specific faults are “determined”. (Indication in “Heartbeat” or “Bit in Produced IO Message”)
Fault Behaviors Step 34: Existing Profiles
Fault Behaviors Step 35: Determining “Fault Details” • Device Profile should specify a common interface to read faults, even when they are “vendor specific”. • Common interface simplifies “user programming”. • Common interface allows support by “general tools”.
Fault Behaviors Step 36: “Queue” for Faults • System SIG defining a common object where all faults may be retrieved via “Explicit Message” requests. • Prefer faults be encoded using “Appendix I/J” for interpretation by common client dialog.
Fault Behaviors Insert Member, Valve, 1, Position Timeout “Error Flag” (bit 7 = TRUE) Poll Request “IO Message” Poll Response Explicit Request Await client “diagnostic application” delay Remove Member, Queue, 1, List, 1 1,C8,Valve,I8, 1,UINT, Position Timeout Explicit Response “Error Flag” (bit 7 = FALSE) Step 37: Sample Dialog Device Net Connection Polled Queue Throttling Valve Connection Explicit Assembly [2] FAULTED ESTABLISHED ESTABLISHED RUNNING ACTIVE RUNNING Await next scan delay
Device Profiles • SIG Creation • Identifying Objects • Control Attributes • Behavior • Configuration Attributes • IO Assemblies • Device Model • External Events • Fault Behaviors • Test Plans • Electronic Data Sheets
Test Plans Step 38: Test Plans • SIG submitting the Device Profile to the TRB shall provide “Test Plan” to the Conformance SIG • “Test Plan” shall ONLY test items specified in “Device Profile” • “Test Plan” shalltest items specified in related Application Objects