03/01/2017
Hello,
I have some questions regarding EventNotifier and source hierarchy (6.2, Part 9, Version 1.04).
Assuming we have the following example address space structure (based on IOLink Spec):
Root
|__Objects
|__Master
| |__Alarms_Folder (Component of Master)
| | |__Master_Condition (Component of Alarms_Folder, TypeDefintion = MasterConditionType)
| |
| |__Master_Property_1
| |__Port_1 (Component of Master)
| |__Alarms_Folder (Component of Port_1)
| | |__Port_1_Condition (Component of Alarms_Folder, TypeDefintion = PortConditionType)
| |
| |__Port_Property_1
|
|__Server
1- Should the Server object explicitly provide HasEventSource references to Master and Port_1 Objects even if there are no specific Notifier areas? Or is it allowed to leave all HasEventSource references from the Server object assuming there is a way that monitoring the Server object will guarantie receiving all Events?
2- Should HasCondition reference be provided from Master and Port_1 objects to Master_Condition and Port_1_Condition objects respectivly, even when there are HasComponent references to Alarms_Folder provided?
3- Should HasEventSource reference be provided from Master object to Port_1 object?
Best regards
Sameer
Moderators-Specifications
Moderators-Companion
Moderators-Implementation
Moderators-Certification
Moderators-COM
02/24/2014
For "1"- the Server Object is required to provided all Events/Alarms generated in the server, it does not need any references.
for "2" &"3" Is the Master Object configured to be a notifier - i.e. does the master object have the EventNotifier bit set to true, so a client can subscribe to events from the master object directly? if the master Object is an event source, then providing the HasCondition reference to the Master_Condition object make sense. The Port_1_condition could be model in more ways, the Port_1 object could be an EventNotifier and have a HasNotifier refernce between it and the Master object, in which case the HasCondition reference would exist between the Port_1 object and the Port_1_condition Object. If the notifier tree does not exist then the master object would have a HasEventSource Reference to Port_1 object, which would have the HasCondition Refeence [At least I'm assumming in your example that the Port_1_condition is nto really associated with the Master but with the Port. when a client is looking for event related information it browses along these reference types, not the HasComponent references.
Paul
Paul Hunkar - DSInteroperability
03/01/2017
Thank you for the answer!
Regarding 2 and 3, yes, the Master and Port_1 objects are both Notifiers. Port_1_Condition is associated only with Port_1 object. If I understood you correctly, then using HasComponent References in this case is not correct, and HasNotifier/ HasEventSource and HasCondition references should be used instead?
Would that mean that the Alarms_Folders would have to provide Organizes references to Master_Condition and Port_Condition respectively?
Best regards
Sameer
Moderators-Specifications
Moderators-Companion
Moderators-Implementation
Moderators-Certification
Moderators-COM
02/24/2014
Using the HasComponent reference is not incorrect, the model as you depicted it in the original question can be fine, if that is what the device model is suppose to look like.
What is important with respect to alarms is the HasNotifier, HasEventSource, HasCondition reference that are used b the model. Say I have machine that has two motors in it and another machine that has three motors in it. I also have a controller that is not part of either machine. The object models for the machine have a hierarchy that includes the motors, the control has its own model. But The controller also reports all alarms related to the motors, so it has HasNotifier references to the motors, and the motor may have a HasCondition reference to the Conditions the motor could report (say speed alarms), In addition the Machine has a temperature sensor that is part of machine, and the motor can have a HasEventSource reference to the sensor to report the alarm associate with temperate since that can effect the motor behavior (the temperature alarms might also be reports in another alarm stream).
[Note: in many implementations alarm instance do not exist in the server. Say an Object could report 10 different alarms, and the server has several hundred of these objects, the number of alarm instance grows very fast. Most of these Alarm instance will never occur or be used (since say 1 or 2 of them are all that might be active at the same time) So the Server maintains the Alarms in separate code, the information model only indicates what alarm the object can generate (points to types). The Alarm instance behavior is handled in code, when an alarm occurs (dynamically created as needed) - this all has to do with what is desire, what the server capabilities are etc.
Paul
Paul Hunkar - DSInteroperability
1 Guest(s)