mirror of
https://github.com/OPCFoundation/UA-.NETStandard.git
synced 2026-10-23 18:39:26 +08:00
ca89ac85a7
# Description Adds a **Generators companion-specification sample** alongside the existing pump sample, and a **`SiteCompositionServer`** that composes several device servers into one OpenUSD scene at a supervisory level — demonstrating that servers can be aggregated without mirroring their address spaces. Three things, in dependency order: ### 1. `GeneratorServer` A self-contained server realising the draft Generators spec (`http://opcfoundation.org/UA/Generators/`) end to end: N simulated generating sets, DI + Machinery integration, a twelve-state operating state machine, four protection alarms per set, six control methods, and a per-set OpenUSD twin. The organising idea is that **load fraction is the only independent variable**. Everything else is a function of it: ``` V̇_f(x) = 3.67 + 100·x fuel rate [L/h] η(x) = P(x) / (V̇_f(x) · ρ · LHV) efficiency S = P / PF I = S / (√3·V_LL) f = N·p / 120 ``` This is not stylistic. When each measurement is an independent oscillator — as the pump sample's simulation once was — a server happily publishes a duty point no real machine could occupy, and no test can catch it because there is nothing for the values to be inconsistent *with*. Deriving them from one variable means `P = √3·V·I·PF` and `η = P/(V̇·ρ·LHV)` hold at every tick by construction. The published `DATASHEET.md`, the engineering ranges, the trip points and the simulation all read the same constants in `GeneratorDatasheet.cs`, so the document and the server cannot describe different machines. The machine is a fictitious **SimGen Systems GenX-500** (400 kW prime / 440 kW standby, 400/230 V, 50 Hz, four-pole). Figures are representative of a real industrial genset class; no vendor is named anywhere in the code or docs. ### 2. Cross-server composition in the connector `RemoteSessionFactory` already existed in the client library but the connector CLI never set it, so cross-server composition was unreachable. `--federate` wires it up: the connector opens a session to each server named by a component binding, discovers its representations and drives its bindings into the same stage. It is **opt-in** because the endpoint the connector dials comes from the server being rendered rather than from the operator, which makes honouring it a trust decision. Federation is best-effort per component — a subordinate that is down is logged and skipped, and the rest of the scene still renders — which is the only `src/` change in this PR. ### 3. `SiteCompositionServer` Owns no devices. It publishes a site stage plus one cross-server component binding per subordinate, carrying that server's `ComponentServerUri` and `ComponentEndpointUrl`. Nothing is mirrored, so there is no cache to invalidate and no second copy of the truth. ## Notes for reviewers **Everything interesting in this PR was found by running the servers, not by reading the code.** Six defects, none of which looked wrong in review: - `IsShutdown` and `SubsystemName` are *optional* on `GeneratorProtectionAlarmType`, so the generated factory does not materialise them. `CreateOrReplace` alone produces a child that exists, appears in `GetChildren` and holds the right value — but carries **no `ReferenceTypeId`**, so no browse can reach it. Every alarm was publishing its trip without saying whether the trip stops the machine or which subsystem to go to. `AddXxx(context)` first is what gives the child its `HasProperty` reference. - **The protections could never fire.** Every trip point sits outside the band the datasheet curves produce — that is what a datasheet *means* — so all four alarms, the shutdown class, `ResetFaults` and the whole `Fault` branch of the state machine were unreachable while the README documented them as observable. Overload was worse: the load clamp ceiling was set to exactly the trip point, making a strictly-greater-than comparison unsatisfiable. Faults are now injectable, and the first set — the one the hero camera frames — develops one on a slow rotation. - **A shutdown trip removes the condition that caused it**, because oil pressure and coolant temperature are only supervised while the engine turns. Each alarm went active for one tick and cleared, leaving an operator with a stopped machine and no indication of why. Shutdown-class alarms now latch until the set leaves the shutdown state. Every unit test that checked the *condition* passed throughout — the defect only appears when the trip and the supervision interact over time. - **`Synchronizing` and `Paralleled` were declared, drawn in the README and never entered.** The first set now energises a dead bus and closes onto it while every other set synchronises to a live one — both how a real plant parallels, and what makes the two states observable. - **The tick raced client method calls.** The simulation tick runs on a thread-pool thread while method calls arrive on request threads, and both transition sets and write the same nodes. A tick moving a set to `Cooldown` and a concurrent `EmergencyStop` could interleave the paired `CurrentState` / `CurrentState.Id` writes and leave a client with a state *name* from one transition and a state *node* from the other — the exact failure the paired write exists to prevent, reintroduced by the threading model. Both paths now take one gate. - Low oil pressure supervised from raw speed **tripped every set during cranking**, because pressure has not built yet. Now gated on `IsSpinning`, which is what a real start-up bypass does. Smaller fixes: shutdown trips are applied after the whole evaluation pass (stopping mid-loop made the remaining conditions read healthy, collapsing simultaneous trips to whichever came first in the table); `ResetFaults` reports its clears as events (a client learns of condition state changes only through events, so a silent clear leaves an alarm-list client showing it forever); the start counter moved into the transition so commanded starts are counted; the federated connector closes the remote session if the connector constructor throws between taking ownership and registering it; and `prepare_machinery_nodeset.py` now *asserts* the IA namespace is last before removing it rather than only claiming so in its docstring — removing any earlier entry would silently renumber every namespace after it and rebind their NodeIds. **A model limitation is left visible rather than papered over.** `GeneratorStateMachineType` declares an emergency stop only out of `Running`, `Loaded` and `Paralleled`, so the sample refuses `EmergencyStop` from `Starting` and `Warmup`. A real panel stops from anywhere. That is the specification's shape, not this sample's choice, so it is pinned by a test and named in the docs. **`Model/` vendors a reduced Machinery nodeset**, derived mechanically by whitelist. The full official nodeset does not survive the model source generator (`MODELGEN003`) and drags in IA through a single optional `Stacklight` member a generating set does not have. Deriving it by script keeps the provenance checkable; the whitelist is the only thing to edit when more types are needed. **Never hand-edit the generated output.** **The federated scene renders end to end.** Getting there surfaced three more defects, all of which produced a plausible-looking scene with nothing in it: the generator sample's plant aggregation was created under an already-registered `DeviceSet` and so was invisible to every client (it had *never* rendered geometry, standalone or federated); the connector's asset fetch ran on the primary session only, so composition referenced layers that were never downloaded; and both generator colour bindings wrote `primvars:displayColor` to prims that did not declare it, so the renderer rejected every update while the file still looked correct. Cross-server components compose under the subordinate's own root, so the site layer now *places* `/Plant` and `/Powerhouse` rather than leaving them stacked on the origin. **`OpenUsdRepresentation` is now mounted with `HasAddIn`, not `HasComponent`** (review feedback). The nodeset says so explicitly — *"Mounted with HasAddIn"* — but every server in the tree used plain `HasComponent`. It survived because `HasAddIn` is a *subtype* of `HasComponent`: the representation still browses, still aggregates and still drives a twin, so every functional test passed before the fix and after it, and only a conformance checker could tell. Seven mount sites corrected. `PumpDeviceIntegrationServer` and `MinimalRobotServer` had hand-rolled the mount instead of calling the shared `CreateRepresentation` helper, which is exactly how they drifted from it. Both sample E2E suites now assert the reference type across **every** discovered representation — a narrower check would have missed the plant-level representation that arrived later from master still carrying `HasComponent`. **Live colour is not achievable in the current OpenUSD viewer, and that is now documented rather than worked around.** Proven with a standalone probe: `primvars:displayColor` resolves as `color3f[]` from the `UsdGeomGprim` schema whatever the layer declares, and the `OpenUsd 0.4.0-alpha` managed API has no writer for that type. Bound `UsdPreviewSurface` materials are not shaded either, so geometry renders grey unless it also carries an explicit `displayColor` primvar. The **visibility** bindings carry no such caveat and are what the samples rely on to show state. Filed upstream as [openusd-dotnet#2](https://github.com/marcschier/openusd-dotnet/issues/2), [#3](https://github.com/marcschier/openusd-dotnet/issues/3) and [#4](https://github.com/marcschier/openusd-dotnet/issues/4), and linked from `docs/OpenUsd.md` so a reader can check whether they have since been fixed. ## Related Issues No tracking issue — this is additive sample and documentation work with a single small, self-contained change to `src/` (per-component error isolation and session-ownership hardening in `OpenUsdConnector.Composition.cs`). Happy to open one if maintainers would prefer it tracked. ## Checklist - [x] I have signed the [CLA](https://opcfoundation.org/license/cla/ContributorLicenseAgreementv1.0.pdf) and read the [CONTRIBUTING](https://github.com/OPCFoundation/UA-.NETStandard/blob/master/CONTRIBUTING.md) doc. - [x] I have added tests that prove my fix is effective or that my feature works and increased code coverage. - [x] I have added all necessary documentation. - [x] I have verified that my changes do not introduce (new) build or analyzer warnings. - [x] I ran **all** tests locally using the **UA.slnx** solution against at least .net **framework** and .net **10**, and all passed. - [ ] I fixed **all** failing and flaky tests in the CI pipelines and **all** CodeQL warnings. - [ ] I have addressed **all** PR feedback received. ### Testing The generator fixtures live in `tests/Opc.Ua.OpenUsd.Tests/Generator` — **82 tests**, no new project. `Opc.Ua.Di.Tests` would have been the natural home next to the pump fixtures, but both device samples source-generate their own reduced `Opc.Ua.Machinery` model and expose it via `InternalsVisibleTo`, so referencing both from one assembly makes every Machinery type ambiguous (CS0433); `Opc.Ua.OpenUsd.Tests` references no other sample and already hosts `RobotAssetContractTests`. The suite runs **870** on net10.0 and net48 (784 existing + 86) and **788** on net472, where the sample does not exist and only the framework-independent asset-contract tests run — forgetting exactly that exclusion broke CI on the sibling pump PR. The tests target the things in this sample that fail *quietly*: - **Datasheet conformance** holds the model to its own claim — rated speed is `120·f/p`, rated current follows from the rating, the fuel curve reproduces the published table, and `η = P/(V̇·ρ·LHV)` reconciles at every load. Efficiency is swept across the whole simulated range to show it stays inside (0,100) and rises monotonically; a fit that goes negative somewhere in its range is a coincidence that happens to look right at the duty point, not a model. A further test reads `DATASHEET.md` and checks the document quotes the figures the server actually serves. - **Drift between the two descriptions of the state machine** — the physics' `IsLegalTransition` and the model's `GeneratorStateMap` — is checked in *both* directions. A transition the physics permits but the map lacks moves a machine without telling a client; one the map holds but the physics refuses is dead weight that looks supported. - **Reachability at run time**, not just in the declared table — the test that catches states the model declares and nothing ever enters. - **That every protection can actually fire**, which is the half of the alarm contract that "a healthy set annunciates nothing" does not cover. A **hosted end-to-end fixture** connects a real client and asserts what the address space actually exposes — the aggregation at `/Powerhouse/Generators`, its component binding, and every per-set twin. That is the only kind of test that catches the registration defect above: the node object had the right browse name, binding and asset reference, so every test that inspected objects passed while no client could see it. **Every state-machine and protection fix was checked by mutation.** Restoring the clamp ceiling, the direct `Running → Loaded` path, the old start-counter placement, or removing the alarm opt-in each makes the corresponding test fail, naming the specific defect. A test that has never been seen to fail has not been shown to work. Verified against a running plant: `Synchronizing`, `Paralleled` and `Fault` all observed on a two-set server, with `HighCoolantTemperatureAlarm` seen active on the fault subject. Method behaviour verified separately — per-set distinct `CurrentState` nodes, `EmergencyStop` → `EmergencyStopped` with `Start` then refused as `BadInvalidState`, `ResetFaults` → `Off`, `SetOperatingMode(9999)` refused with the mode unchanged, and the other sets untouched throughout. Also verified as a three-server federated stage. 0 warnings on a clean Release rebuild of both samples, the client library, the connector and the tests, across every TFM. --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: fe608993-f3c9-4779-a6b9-9a9eabfc24ba
454 lines
24 KiB
CSV
454 lines
24 KiB
CSV
GeneratorOperatingModeEnum,3001,DataType
|
|
GeneratorOperatingModeEnum_EnumStrings,3901,Variable
|
|
FuelTypeEnum,3002,DataType
|
|
FuelTypeEnum_EnumStrings,3902,Variable
|
|
GeneratorApplicationRatingEnum,3003,DataType
|
|
GeneratorApplicationRatingEnum_EnumStrings,3903,Variable
|
|
ElectricalConnectionEnum,3004,DataType
|
|
ElectricalConnectionEnum_EnumStrings,3904,Variable
|
|
ExcitationTypeEnum,3005,DataType
|
|
ExcitationTypeEnum_EnumStrings,3905,Variable
|
|
CoolingMethodEnum,3006,DataType
|
|
CoolingMethodEnum_EnumStrings,3906,Variable
|
|
AspirationEnum,3007,DataType
|
|
AspirationEnum_EnumStrings,3907,Variable
|
|
EmissionsStandardEnum,3008,DataType
|
|
EmissionsStandardEnum_EnumStrings,3908,Variable
|
|
CanBusStateEnum,3009,DataType
|
|
CanBusStateEnum_EnumStrings,3909,Variable
|
|
TransferSwitchPositionEnum,3010,DataType
|
|
TransferSwitchPositionEnum_EnumStrings,3910,Variable
|
|
TransferTransitionTypeEnum,3011,DataType
|
|
TransferTransitionTypeEnum_EnumStrings,3911,Variable
|
|
AtsOperatingStateEnum,3012,DataType
|
|
AtsOperatingStateEnum_EnumStrings,3912,Variable
|
|
AlarmSeverityEnum,3013,DataType
|
|
AlarmSeverityEnum_EnumStrings,3913,Variable
|
|
GeneratorProtectionFunctionEnum,3014,DataType
|
|
GeneratorProtectionFunctionEnum_EnumStrings,3914,Variable
|
|
ParallelingSystemStateEnum,3015,DataType
|
|
ParallelingSystemStateEnum_EnumStrings,3915,Variable
|
|
AftertreatmentStateEnum,3016,DataType
|
|
AftertreatmentStateEnum_EnumStrings,3916,Variable
|
|
J1939LampStatusEnum,3017,DataType
|
|
J1939LampStatusEnum_EnumStrings,3917,Variable
|
|
DiagnosticTroubleCodeType,3050,DataType
|
|
DiagnosticTroubleCodeType_DefaultBinary,6001,Object
|
|
DiagnosticTroubleCodeType_DefaultXml,6002,Object
|
|
GeneratorIdentificationType,1016,ObjectType
|
|
GeneratorIdentificationType_SpecificationNumber,6003,Variable
|
|
GeneratorIdentificationType_ProductFamily,6004,Variable
|
|
GeneratorIdentificationType_EngineModel,6005,Variable
|
|
GeneratorIdentificationType_EngineSerialNumber,6006,Variable
|
|
GeneratorIdentificationType_AlternatorModel,6007,Variable
|
|
GeneratorIdentificationType_AlternatorSerialNumber,6008,Variable
|
|
GeneratorIdentificationType_ControllerModel,6009,Variable
|
|
GeneratorIdentificationType_FuelType,6010,Variable
|
|
GeneratorIdentificationType_EmissionsStandard,6011,Variable
|
|
GeneratorIdentificationType_RatedRealPower,6012,Variable
|
|
GeneratorIdentificationType_RatedRealPower_EngineeringUnits,6013,Variable
|
|
GeneratorIdentificationType_RatedApparentPower,6014,Variable
|
|
GeneratorIdentificationType_RatedApparentPower_EngineeringUnits,6015,Variable
|
|
GeneratorIdentificationType_RatedVoltage,6016,Variable
|
|
GeneratorIdentificationType_RatedVoltage_EngineeringUnits,6017,Variable
|
|
GeneratorIdentificationType_RatedFrequency,6018,Variable
|
|
GeneratorIdentificationType_RatedFrequency_EngineeringUnits,6019,Variable
|
|
GeneratorIdentificationType_SoundRatingAt7m,6020,Variable
|
|
GeneratorStateMachineType,1011,ObjectType
|
|
GeneratorStateMachineType_Off,6021,Object
|
|
GeneratorStateMachineType_Off_StateNumber,6022,Variable
|
|
GeneratorStateMachineType_Ready,6023,Object
|
|
GeneratorStateMachineType_Ready_StateNumber,6024,Variable
|
|
GeneratorStateMachineType_Starting,6025,Object
|
|
GeneratorStateMachineType_Starting_StateNumber,6026,Variable
|
|
GeneratorStateMachineType_Warmup,6027,Object
|
|
GeneratorStateMachineType_Warmup_StateNumber,6028,Variable
|
|
GeneratorStateMachineType_Running,6029,Object
|
|
GeneratorStateMachineType_Running_StateNumber,6030,Variable
|
|
GeneratorStateMachineType_Loaded,6031,Object
|
|
GeneratorStateMachineType_Loaded_StateNumber,6032,Variable
|
|
GeneratorStateMachineType_Synchronizing,6033,Object
|
|
GeneratorStateMachineType_Synchronizing_StateNumber,6034,Variable
|
|
GeneratorStateMachineType_Paralleled,6035,Object
|
|
GeneratorStateMachineType_Paralleled_StateNumber,6036,Variable
|
|
GeneratorStateMachineType_Cooldown,6037,Object
|
|
GeneratorStateMachineType_Cooldown_StateNumber,6038,Variable
|
|
GeneratorStateMachineType_Stopping,6039,Object
|
|
GeneratorStateMachineType_Stopping_StateNumber,6040,Variable
|
|
GeneratorStateMachineType_Fault,6041,Object
|
|
GeneratorStateMachineType_Fault_StateNumber,6042,Variable
|
|
GeneratorStateMachineType_EmergencyStopped,6043,Object
|
|
GeneratorStateMachineType_EmergencyStopped_StateNumber,6044,Variable
|
|
GeneratorStateMachineType_OffToReady,6045,Object
|
|
GeneratorStateMachineType_OffToReady_TransitionNumber,6046,Variable
|
|
GeneratorStateMachineType_ReadyToStarting,6047,Object
|
|
GeneratorStateMachineType_ReadyToStarting_TransitionNumber,6048,Variable
|
|
GeneratorStateMachineType_ReadyToOff,6049,Object
|
|
GeneratorStateMachineType_ReadyToOff_TransitionNumber,6050,Variable
|
|
GeneratorStateMachineType_StartingToWarmup,6051,Object
|
|
GeneratorStateMachineType_StartingToWarmup_TransitionNumber,6052,Variable
|
|
GeneratorStateMachineType_StartingToFault,6053,Object
|
|
GeneratorStateMachineType_StartingToFault_TransitionNumber,6054,Variable
|
|
GeneratorStateMachineType_WarmupToRunning,6055,Object
|
|
GeneratorStateMachineType_WarmupToRunning_TransitionNumber,6056,Variable
|
|
GeneratorStateMachineType_RunningToLoaded,6057,Object
|
|
GeneratorStateMachineType_RunningToLoaded_TransitionNumber,6058,Variable
|
|
GeneratorStateMachineType_RunningToSynchronizing,6059,Object
|
|
GeneratorStateMachineType_RunningToSynchronizing_TransitionNumber,6060,Variable
|
|
GeneratorStateMachineType_SynchronizingToParalleled,6061,Object
|
|
GeneratorStateMachineType_SynchronizingToParalleled_TransitionNumber,6062,Variable
|
|
GeneratorStateMachineType_SynchronizingToRunning,6063,Object
|
|
GeneratorStateMachineType_SynchronizingToRunning_TransitionNumber,6064,Variable
|
|
GeneratorStateMachineType_ParalleledToLoaded,6065,Object
|
|
GeneratorStateMachineType_ParalleledToLoaded_TransitionNumber,6066,Variable
|
|
GeneratorStateMachineType_LoadedToCooldown,6067,Object
|
|
GeneratorStateMachineType_LoadedToCooldown_TransitionNumber,6068,Variable
|
|
GeneratorStateMachineType_RunningToCooldown,6069,Object
|
|
GeneratorStateMachineType_RunningToCooldown_TransitionNumber,6070,Variable
|
|
GeneratorStateMachineType_CooldownToStopping,6071,Object
|
|
GeneratorStateMachineType_CooldownToStopping_TransitionNumber,6072,Variable
|
|
GeneratorStateMachineType_StoppingToOff,6073,Object
|
|
GeneratorStateMachineType_StoppingToOff_TransitionNumber,6074,Variable
|
|
GeneratorStateMachineType_RunningToFault,6075,Object
|
|
GeneratorStateMachineType_RunningToFault_TransitionNumber,6076,Variable
|
|
GeneratorStateMachineType_LoadedToFault,6077,Object
|
|
GeneratorStateMachineType_LoadedToFault_TransitionNumber,6078,Variable
|
|
GeneratorStateMachineType_ParalleledToFault,6079,Object
|
|
GeneratorStateMachineType_ParalleledToFault_TransitionNumber,6080,Variable
|
|
GeneratorStateMachineType_FaultToOff,6081,Object
|
|
GeneratorStateMachineType_FaultToOff_TransitionNumber,6082,Variable
|
|
GeneratorStateMachineType_RunningToEmergencyStopped,6083,Object
|
|
GeneratorStateMachineType_RunningToEmergencyStopped_TransitionNumber,6084,Variable
|
|
GeneratorStateMachineType_LoadedToEmergencyStopped,6085,Object
|
|
GeneratorStateMachineType_LoadedToEmergencyStopped_TransitionNumber,6086,Variable
|
|
GeneratorStateMachineType_ParalleledToEmergencyStopped,6087,Object
|
|
GeneratorStateMachineType_ParalleledToEmergencyStopped_TransitionNumber,6088,Variable
|
|
GeneratorStateMachineType_EmergencyStoppedToOff,6089,Object
|
|
GeneratorStateMachineType_EmergencyStoppedToOff_TransitionNumber,6090,Variable
|
|
J1939DiagnosticInterfaceType,1010,ObjectType
|
|
J1939DiagnosticInterfaceType_ProtocolName,6091,Variable
|
|
J1939DiagnosticInterfaceType_NetworkName,6092,Variable
|
|
J1939DiagnosticInterfaceType_SourceAddress,6093,Variable
|
|
J1939DiagnosticInterfaceType_Baudrate,6094,Variable
|
|
J1939DiagnosticInterfaceType_BusState,6095,Variable
|
|
J1939DiagnosticInterfaceType_AmberWarningLamp,6096,Variable
|
|
J1939DiagnosticInterfaceType_RedStopLamp,6097,Variable
|
|
J1939DiagnosticInterfaceType_MalfunctionIndicatorLamp,6098,Variable
|
|
J1939DiagnosticInterfaceType_ProtectLamp,6099,Variable
|
|
J1939DiagnosticInterfaceType_ActiveDiagnosticTroubleCodes,6100,Variable
|
|
J1939DiagnosticInterfaceType_PreviouslyActiveDiagnosticTroubleCodes,6101,Variable
|
|
J1939DiagnosticInterfaceType_ClearPreviouslyActiveDtcs,6102,Method
|
|
ExhaustAftertreatmentType,1018,ObjectType
|
|
ExhaustAftertreatmentType_AftertreatmentState,6103,Variable
|
|
ExhaustAftertreatmentType_DefLevel,6104,Variable
|
|
ExhaustAftertreatmentType_DefLevel_EngineeringUnits,6105,Variable
|
|
ExhaustAftertreatmentType_DefTemperature,6106,Variable
|
|
ExhaustAftertreatmentType_DefTemperature_EngineeringUnits,6107,Variable
|
|
ExhaustAftertreatmentType_DefQuality,6108,Variable
|
|
ExhaustAftertreatmentType_DefQuality_EngineeringUnits,6109,Variable
|
|
ExhaustAftertreatmentType_DpfSootLoad,6110,Variable
|
|
ExhaustAftertreatmentType_DpfSootLoad_EngineeringUnits,6111,Variable
|
|
ExhaustAftertreatmentType_DpfAshLoad,6112,Variable
|
|
ExhaustAftertreatmentType_DpfAshLoad_EngineeringUnits,6113,Variable
|
|
ExhaustAftertreatmentType_ExhaustGasTemperature,6114,Variable
|
|
ExhaustAftertreatmentType_ExhaustGasTemperature_EngineeringUnits,6115,Variable
|
|
ExhaustAftertreatmentType_RegenerationRequired,6116,Variable
|
|
ExhaustAftertreatmentType_RegenerationInhibited,6117,Variable
|
|
ExhaustAftertreatmentType_InitiateRegeneration,6118,Method
|
|
ExhaustAftertreatmentType_InhibitRegeneration,6119,Method
|
|
ExhaustAftertreatmentType_InhibitRegeneration_InputArguments,6120,Variable
|
|
EngineType,1002,ObjectType
|
|
EngineType_Speed,6121,Variable
|
|
EngineType_Speed_EngineeringUnits,6122,Variable
|
|
EngineType_PercentLoad,6123,Variable
|
|
EngineType_PercentLoad_EngineeringUnits,6124,Variable
|
|
EngineType_PercentTorque,6125,Variable
|
|
EngineType_PercentTorque_EngineeringUnits,6126,Variable
|
|
EngineType_OilPressure,6127,Variable
|
|
EngineType_OilPressure_EngineeringUnits,6128,Variable
|
|
EngineType_OilTemperature,6129,Variable
|
|
EngineType_OilTemperature_EngineeringUnits,6130,Variable
|
|
EngineType_CoolantTemperature,6131,Variable
|
|
EngineType_CoolantTemperature_EngineeringUnits,6132,Variable
|
|
EngineType_CoolantPressure,6133,Variable
|
|
EngineType_CoolantPressure_EngineeringUnits,6134,Variable
|
|
EngineType_FuelRate,6135,Variable
|
|
EngineType_FuelRate_EngineeringUnits,6136,Variable
|
|
EngineType_FuelTemperature,6137,Variable
|
|
EngineType_FuelTemperature_EngineeringUnits,6138,Variable
|
|
EngineType_IntakeManifoldPressure,6139,Variable
|
|
EngineType_IntakeManifoldPressure_EngineeringUnits,6140,Variable
|
|
EngineType_IntakeManifoldTemperature,6141,Variable
|
|
EngineType_IntakeManifoldTemperature_EngineeringUnits,6142,Variable
|
|
EngineType_ExhaustGasTemperature,6143,Variable
|
|
EngineType_ExhaustGasTemperature_EngineeringUnits,6144,Variable
|
|
EngineType_BarometricPressure,6145,Variable
|
|
EngineType_BarometricPressure_EngineeringUnits,6146,Variable
|
|
EngineType_EngineHours,6147,Variable
|
|
EngineType_EngineHours_EngineeringUnits,6148,Variable
|
|
EngineType_NumberOfStarts,6149,Variable
|
|
EngineType_Aspiration,6150,Variable
|
|
EngineType_Displacement,6151,Variable
|
|
EngineType_Displacement_EngineeringUnits,6152,Variable
|
|
EngineType_CylinderCount,6153,Variable
|
|
EngineType_RatedSpeed,6154,Variable
|
|
EngineType_RatedSpeed_EngineeringUnits,6155,Variable
|
|
EngineType_CanInterface,6156,Object
|
|
EngineType_Aftertreatment,6157,Object
|
|
AlternatorPhaseType,1004,ObjectType
|
|
AlternatorPhaseType_LineToNeutralVoltage,6158,Variable
|
|
AlternatorPhaseType_LineToNeutralVoltage_EngineeringUnits,6159,Variable
|
|
AlternatorPhaseType_LineToLineVoltage,6160,Variable
|
|
AlternatorPhaseType_LineToLineVoltage_EngineeringUnits,6161,Variable
|
|
AlternatorPhaseType_Current,6162,Variable
|
|
AlternatorPhaseType_Current_EngineeringUnits,6163,Variable
|
|
AlternatorPhaseType_RealPower,6164,Variable
|
|
AlternatorPhaseType_RealPower_EngineeringUnits,6165,Variable
|
|
AlternatorPhaseType_ReactivePower,6166,Variable
|
|
AlternatorPhaseType_ReactivePower_EngineeringUnits,6167,Variable
|
|
AlternatorPhaseType_ApparentPower,6168,Variable
|
|
AlternatorPhaseType_ApparentPower_EngineeringUnits,6169,Variable
|
|
AlternatorPhaseType_PowerFactor,6170,Variable
|
|
AlternatorType,1003,ObjectType
|
|
AlternatorType_Frequency,6171,Variable
|
|
AlternatorType_Frequency_EngineeringUnits,6172,Variable
|
|
AlternatorType_AverageLineToLineVoltage,6173,Variable
|
|
AlternatorType_AverageLineToLineVoltage_EngineeringUnits,6174,Variable
|
|
AlternatorType_AverageLineToNeutralVoltage,6175,Variable
|
|
AlternatorType_AverageLineToNeutralVoltage_EngineeringUnits,6176,Variable
|
|
AlternatorType_AverageCurrent,6177,Variable
|
|
AlternatorType_AverageCurrent_EngineeringUnits,6178,Variable
|
|
AlternatorType_TotalRealPower,6179,Variable
|
|
AlternatorType_TotalRealPower_EngineeringUnits,6180,Variable
|
|
AlternatorType_TotalReactivePower,6181,Variable
|
|
AlternatorType_TotalReactivePower_EngineeringUnits,6182,Variable
|
|
AlternatorType_TotalApparentPower,6183,Variable
|
|
AlternatorType_TotalApparentPower_EngineeringUnits,6184,Variable
|
|
AlternatorType_AveragePowerFactor,6185,Variable
|
|
AlternatorType_TotalRealEnergy,6186,Variable
|
|
AlternatorType_TotalRealEnergy_EngineeringUnits,6187,Variable
|
|
AlternatorType_LoadPercent,6188,Variable
|
|
AlternatorType_LoadPercent_EngineeringUnits,6189,Variable
|
|
AlternatorType_WindingTemperature1,6190,Variable
|
|
AlternatorType_WindingTemperature1_EngineeringUnits,6191,Variable
|
|
AlternatorType_WindingTemperature2,6192,Variable
|
|
AlternatorType_WindingTemperature2_EngineeringUnits,6193,Variable
|
|
AlternatorType_WindingTemperature3,6194,Variable
|
|
AlternatorType_WindingTemperature3_EngineeringUnits,6195,Variable
|
|
AlternatorType_BearingTemperatureDriveEnd,6196,Variable
|
|
AlternatorType_BearingTemperatureDriveEnd_EngineeringUnits,6197,Variable
|
|
AlternatorType_BearingTemperatureNonDriveEnd,6198,Variable
|
|
AlternatorType_BearingTemperatureNonDriveEnd_EngineeringUnits,6199,Variable
|
|
AlternatorType_Connection,6200,Variable
|
|
AlternatorType_ExcitationType,6201,Variable
|
|
AlternatorType_NumberOfPoles,6202,Variable
|
|
AlternatorType_VoltageSetpoint,6203,Variable
|
|
AlternatorType_VoltageSetpoint_EngineeringUnits,6204,Variable
|
|
AlternatorType_FieldCurrent,6205,Variable
|
|
AlternatorType_FieldCurrent_EngineeringUnits,6206,Variable
|
|
AlternatorType_L1,6207,Object
|
|
AlternatorType_L2,6208,Object
|
|
AlternatorType_L3,6209,Object
|
|
FuelSystemType,1005,ObjectType
|
|
FuelSystemType_FuelType,6210,Variable
|
|
FuelSystemType_FuelLevel,6211,Variable
|
|
FuelSystemType_FuelLevel_EngineeringUnits,6212,Variable
|
|
FuelSystemType_FuelVolume,6213,Variable
|
|
FuelSystemType_FuelVolume_EngineeringUnits,6214,Variable
|
|
FuelSystemType_FuelConsumptionRate,6215,Variable
|
|
FuelSystemType_FuelConsumptionRate_EngineeringUnits,6216,Variable
|
|
FuelSystemType_FuelPressure,6217,Variable
|
|
FuelSystemType_FuelPressure_EngineeringUnits,6218,Variable
|
|
FuelSystemType_FuelTemperature,6219,Variable
|
|
FuelSystemType_FuelTemperature_EngineeringUnits,6220,Variable
|
|
FuelSystemType_GasSupplyPressure,6221,Variable
|
|
FuelSystemType_GasSupplyPressure_EngineeringUnits,6222,Variable
|
|
FuelSystemType_RuntimeRemaining,6223,Variable
|
|
FuelSystemType_RuntimeRemaining_EngineeringUnits,6224,Variable
|
|
FuelSystemType_TotalFuelConsumed,6225,Variable
|
|
FuelSystemType_TotalFuelConsumed_EngineeringUnits,6226,Variable
|
|
FuelSystemType_WaterInFuel,6227,Variable
|
|
CoolingSystemType,1006,ObjectType
|
|
CoolingSystemType_CoolantTemperature,6228,Variable
|
|
CoolingSystemType_CoolantTemperature_EngineeringUnits,6229,Variable
|
|
CoolingSystemType_CoolantLevel,6230,Variable
|
|
CoolingSystemType_CoolantLevel_EngineeringUnits,6231,Variable
|
|
CoolingSystemType_CoolantPressure,6232,Variable
|
|
CoolingSystemType_CoolantPressure_EngineeringUnits,6233,Variable
|
|
CoolingSystemType_CoolingMethod,6234,Variable
|
|
CoolingSystemType_AmbientTemperature,6235,Variable
|
|
CoolingSystemType_AmbientTemperature_EngineeringUnits,6236,Variable
|
|
CoolingSystemType_RadiatorFanRunning,6237,Variable
|
|
CoolingSystemType_JacketWaterHeaterActive,6238,Variable
|
|
LubricationSystemType,1007,ObjectType
|
|
LubricationSystemType_OilPressure,6239,Variable
|
|
LubricationSystemType_OilPressure_EngineeringUnits,6240,Variable
|
|
LubricationSystemType_OilTemperature,6241,Variable
|
|
LubricationSystemType_OilTemperature_EngineeringUnits,6242,Variable
|
|
LubricationSystemType_OilLevel,6243,Variable
|
|
LubricationSystemType_OilLevel_EngineeringUnits,6244,Variable
|
|
LubricationSystemType_OilFilterDifferentialPressure,6245,Variable
|
|
LubricationSystemType_OilFilterDifferentialPressure_EngineeringUnits,6246,Variable
|
|
StartingSystemType,1008,ObjectType
|
|
StartingSystemType_BatteryVoltage,6247,Variable
|
|
StartingSystemType_BatteryVoltage_EngineeringUnits,6248,Variable
|
|
StartingSystemType_BatteryChargingCurrent,6249,Variable
|
|
StartingSystemType_BatteryChargingCurrent_EngineeringUnits,6250,Variable
|
|
StartingSystemType_BatteryChargerActive,6251,Variable
|
|
StartingSystemType_StartAttempts,6252,Variable
|
|
GeneratorControllerType,1009,ObjectType
|
|
GeneratorControllerType_ControllerFamily,6253,Variable
|
|
GeneratorControllerType_FirmwareVersion,6254,Variable
|
|
GeneratorControllerType_ApplicationSoftwareVersion,6255,Variable
|
|
GeneratorControllerType_ConfigurationVersion,6256,Variable
|
|
GeneratorControllerType_InAutoMode,6257,Variable
|
|
GeneratorControllerType_NotInAuto,6258,Variable
|
|
GeneratorControllerType_RemoteStartEnabled,6259,Variable
|
|
GeneratorControllerType_RemoteControlEnabled,6260,Variable
|
|
GeneratorControllerType_CloudConnected,6261,Variable
|
|
GeneratorControllerType_ModbusEnabled,6262,Variable
|
|
GeneratorControllerType_SignalStrength,6263,Variable
|
|
GeneratorControllerType_SignalStrength_EngineeringUnits,6264,Variable
|
|
GeneratorRatingType,1012,ObjectType
|
|
GeneratorRatingType_ApplicationRating,6265,Variable
|
|
GeneratorRatingType_RatedRealPower,6266,Variable
|
|
GeneratorRatingType_RatedRealPower_EngineeringUnits,6267,Variable
|
|
GeneratorRatingType_RatedApparentPower,6268,Variable
|
|
GeneratorRatingType_RatedApparentPower_EngineeringUnits,6269,Variable
|
|
GeneratorRatingType_RatedPowerFactor,6270,Variable
|
|
GeneratorRatingType_RatedVoltage,6271,Variable
|
|
GeneratorRatingType_RatedVoltage_EngineeringUnits,6272,Variable
|
|
GeneratorRatingType_RatedCurrent,6273,Variable
|
|
GeneratorRatingType_RatedCurrent_EngineeringUnits,6274,Variable
|
|
GeneratorRatingType_RatedFrequency,6275,Variable
|
|
GeneratorRatingType_RatedFrequency_EngineeringUnits,6276,Variable
|
|
GeneratorRatingType_RatedSpeed,6277,Variable
|
|
GeneratorRatingType_RatedSpeed_EngineeringUnits,6278,Variable
|
|
GeneratorRatingType_PhaseCount,6279,Variable
|
|
GeneratorRatingType_Connection,6280,Variable
|
|
GeneratorRatingType_AmbientTemperature,6281,Variable
|
|
GeneratorRatingType_AmbientTemperature_EngineeringUnits,6282,Variable
|
|
GeneratorRatingType_Altitude,6283,Variable
|
|
GeneratorRatingType_Altitude_EngineeringUnits,6284,Variable
|
|
GeneratorProtectionAlarmType,1017,ObjectType
|
|
GeneratorProtectionAlarmType_ProtectionFunction,6285,Variable
|
|
GeneratorProtectionAlarmType_GeneratorAlarmSeverity,6286,Variable
|
|
GeneratorProtectionAlarmType_IsShutdown,6287,Variable
|
|
GeneratorProtectionAlarmType_Spn,6288,Variable
|
|
GeneratorProtectionAlarmType_Fmi,6289,Variable
|
|
GeneratorProtectionAlarmType_SubsystemName,6290,Variable
|
|
GeneratorSetType,1001,ObjectType
|
|
GeneratorSetType_Identification,6291,Object
|
|
GeneratorSetType_MachineryBuildingBlocks,6292,Object
|
|
GeneratorSetType_MachineryBuildingBlocks_MachineryItemState,6293,Object
|
|
GeneratorSetType_MachineryBuildingBlocks_MachineryOperationMode,6294,Object
|
|
GeneratorSetType_OperatingState,6295,Object
|
|
GeneratorSetType_OperatingMode,6296,Variable
|
|
GeneratorSetType_EmissionsStandard,6297,Variable
|
|
GeneratorSetType_Application,6298,Variable
|
|
GeneratorSetType_GeneratorBreakerClosed,6299,Variable
|
|
GeneratorSetType_GeneratorBreakerAvailable,6300,Variable
|
|
GeneratorSetType_RemoteStartInput,6301,Variable
|
|
GeneratorSetType_RunRequest,6302,Variable
|
|
GeneratorSetType_LoadInhibit,6303,Variable
|
|
GeneratorSetType_AvailableToLoad,6304,Variable
|
|
GeneratorSetType_Engine,6305,Object
|
|
GeneratorSetType_Alternator,6306,Object
|
|
GeneratorSetType_Controller,6307,Object
|
|
GeneratorSetType_FuelSystem,6308,Object
|
|
GeneratorSetType_CoolingSystem,6309,Object
|
|
GeneratorSetType_LubricationSystem,6310,Object
|
|
GeneratorSetType_StartingSystem,6311,Object
|
|
GeneratorSetType_Ratings,6312,Object
|
|
GeneratorSetType_Ratings_Rating,6313,Object
|
|
GeneratorSetType_Start,6314,Method
|
|
GeneratorSetType_Stop,6315,Method
|
|
GeneratorSetType_EmergencyStop,6316,Method
|
|
GeneratorSetType_ResetFaults,6317,Method
|
|
GeneratorSetType_SetOperatingMode,6318,Method
|
|
GeneratorSetType_SetOperatingMode_InputArguments,6319,Variable
|
|
GeneratorSetType_StartTest,6320,Method
|
|
GeneratorSetType_StartTest_InputArguments,6321,Variable
|
|
TransferSwitchSourceType,1019,ObjectType
|
|
TransferSwitchSourceType_Available,6322,Variable
|
|
TransferSwitchSourceType_Acceptable,6323,Variable
|
|
TransferSwitchSourceType_Voltage,6324,Variable
|
|
TransferSwitchSourceType_Voltage_EngineeringUnits,6325,Variable
|
|
TransferSwitchSourceType_Frequency,6326,Variable
|
|
TransferSwitchSourceType_Frequency_EngineeringUnits,6327,Variable
|
|
TransferSwitchSourceType_PhaseRotation,6328,Variable
|
|
AutomaticTransferSwitchType,1013,ObjectType
|
|
AutomaticTransferSwitchType_Identification,6329,Object
|
|
AutomaticTransferSwitchType_Position,6330,Variable
|
|
AutomaticTransferSwitchType_OperatingState,6331,Variable
|
|
AutomaticTransferSwitchType_TransitionType,6332,Variable
|
|
AutomaticTransferSwitchType_Source1,6333,Object
|
|
AutomaticTransferSwitchType_Source2,6334,Object
|
|
AutomaticTransferSwitchType_PreferredSource,6335,Variable
|
|
AutomaticTransferSwitchType_Source1Connected,6336,Variable
|
|
AutomaticTransferSwitchType_Source2Connected,6337,Variable
|
|
AutomaticTransferSwitchType_TransferInhibited,6338,Variable
|
|
AutomaticTransferSwitchType_TransferInhibitReason,6339,Variable
|
|
AutomaticTransferSwitchType_RatedCurrent,6340,Variable
|
|
AutomaticTransferSwitchType_RatedCurrent_EngineeringUnits,6341,Variable
|
|
AutomaticTransferSwitchType_PoleCount,6342,Variable
|
|
AutomaticTransferSwitchType_ServiceEntranceRated,6343,Variable
|
|
AutomaticTransferSwitchType_LoadCurrent,6344,Variable
|
|
AutomaticTransferSwitchType_LoadCurrent_EngineeringUnits,6345,Variable
|
|
AutomaticTransferSwitchType_TransferCount,6346,Variable
|
|
AutomaticTransferSwitchType_LastTransferTime,6347,Variable
|
|
AutomaticTransferSwitchType_EngineStartDelay,6348,Variable
|
|
AutomaticTransferSwitchType_TransferToEmergencyDelay,6349,Variable
|
|
AutomaticTransferSwitchType_RetransferToNormalDelay,6350,Variable
|
|
AutomaticTransferSwitchType_CooldownDelay,6351,Variable
|
|
AutomaticTransferSwitchType_Transfer,6352,Method
|
|
AutomaticTransferSwitchType_Retransfer,6353,Method
|
|
AutomaticTransferSwitchType_InhibitTransfer,6354,Method
|
|
AutomaticTransferSwitchType_InhibitTransfer_InputArguments,6355,Variable
|
|
ParallelingControllerType,1014,ObjectType
|
|
ParallelingControllerType_SystemState,6356,Variable
|
|
ParallelingControllerType_BusVoltage,6357,Variable
|
|
ParallelingControllerType_BusVoltage_EngineeringUnits,6358,Variable
|
|
ParallelingControllerType_BusFrequency,6359,Variable
|
|
ParallelingControllerType_BusFrequency_EngineeringUnits,6360,Variable
|
|
ParallelingControllerType_TotalBusRealPower,6361,Variable
|
|
ParallelingControllerType_TotalBusRealPower_EngineeringUnits,6362,Variable
|
|
ParallelingControllerType_TotalBusReactivePower,6363,Variable
|
|
ParallelingControllerType_TotalBusReactivePower_EngineeringUnits,6364,Variable
|
|
ParallelingControllerType_SynchronizationAngle,6365,Variable
|
|
ParallelingControllerType_SynchronizationAngle_EngineeringUnits,6366,Variable
|
|
ParallelingControllerType_SlipFrequency,6367,Variable
|
|
ParallelingControllerType_SlipFrequency_EngineeringUnits,6368,Variable
|
|
ParallelingControllerType_VoltageDifference,6369,Variable
|
|
ParallelingControllerType_VoltageDifference_EngineeringUnits,6370,Variable
|
|
ParallelingControllerType_FrequencyDifference,6371,Variable
|
|
ParallelingControllerType_FrequencyDifference_EngineeringUnits,6372,Variable
|
|
ParallelingControllerType_SyncCheckPermissive,6373,Variable
|
|
ParallelingControllerType_DeadBus,6374,Variable
|
|
ParallelingControllerType_LoadSharePercent,6375,Variable
|
|
ParallelingControllerType_LoadSharePercent_EngineeringUnits,6376,Variable
|
|
ParallelingControllerType_AvailableCapacity,6377,Variable
|
|
ParallelingControllerType_AvailableCapacity_EngineeringUnits,6378,Variable
|
|
ParallelingControllerType_SpinningReserve,6379,Variable
|
|
ParallelingControllerType_SpinningReserve_EngineeringUnits,6380,Variable
|
|
ParallelingControllerType_GeneratorBreakerClosed,6381,Variable
|
|
ParallelingControllerType_UtilityBreakerClosed,6382,Variable
|
|
ParallelingControllerType_UtilityImportPower,6383,Variable
|
|
ParallelingControllerType_UtilityImportPower_EngineeringUnits,6384,Variable
|
|
ParallelingControllerType_UtilityExportPower,6385,Variable
|
|
ParallelingControllerType_UtilityExportPower_EngineeringUnits,6386,Variable
|
|
ParallelingControllerType_ConnectToBus,6387,Method
|
|
ParallelingControllerType_DisconnectFromBus,6388,Method
|
|
GeneratorSystemType,1015,ObjectType
|
|
GeneratorSystemType_GeneratorSets,6389,Object
|
|
GeneratorSystemType_GeneratorSets_GeneratorSet,6390,Object
|
|
GeneratorSystemType_ParallelingController,6391,Object
|
|
GeneratorSystemType_TransferSwitches,6392,Object
|
|
GeneratorSystemType_TransferSwitches_TransferSwitch,6393,Object
|
|
GeneratorSystemType_NumberOfGeneratorSets,6394,Variable
|
|
GeneratorSystemType_TotalSystemCapacity,6395,Variable
|
|
GeneratorSystemType_TotalSystemCapacity_EngineeringUnits,6396,Variable
|
|
GeneratorSystemType_TotalSystemLoad,6397,Variable
|
|
GeneratorSystemType_TotalSystemLoad_EngineeringUnits,6398,Variable
|
|
GeneratorSystemType_RedundancyScheme,6399,Variable
|