@oimlsmart/primmel-packages 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +60 -0
- package/LICENSE +21 -0
- package/README.md +68 -0
- package/acme-cgm-200/model/cgm200.prl +284 -0
- package/acme-cgm-200/model/r144-map.prl +337 -0
- package/acme-cgm-200/package.primmel +39 -0
- package/acme-cgm-system/model/cgm-system.prl +125 -0
- package/acme-cgm-system/model/r144-map.prl +75 -0
- package/acme-cgm-system/model/sample-line.prl +42 -0
- package/acme-cgm-system/package.primmel +23 -0
- package/acme-lc500/model/lc500.prl +218 -0
- package/acme-lc500/model/passport.prl +43 -0
- package/acme-lc500/model/r60-map.prl +161 -0
- package/acme-lc500/model/twin-cert-map.prl +114 -0
- package/acme-lc500/package.primmel +35 -0
- package/acme-md3xx/model/md350.prl +317 -0
- package/acme-md3xx/model/r129-map.prl +346 -0
- package/acme-md3xx/package.primmel +49 -0
- package/acme-rs180/model/r91-map.prl +234 -0
- package/acme-rs180/model/rs180.prl +236 -0
- package/acme-rs180/package.primmel +47 -0
- package/ims-demo/model/ims.prl +23 -0
- package/ims-demo/model/isms-map.prl +60 -0
- package/ims-demo/model/qms-map.prl +73 -0
- package/ims-demo/package.primmel +42 -0
- package/isms-ref/model/isms.prl +34 -0
- package/isms-ref/package.primmel +35 -0
- package/iso-iec-17000/package.primmel +8 -0
- package/iso-iec-17000/terminology.prl +268 -0
- package/iso-iec-17025/package.primmel +10 -0
- package/iso-iec-17025/specification/requirements/lab.prl +474 -0
- package/iso-iec-17025/terminology.prl +72 -0
- package/iso-iec-17065/package.primmel +10 -0
- package/iso-iec-17065/specification/requirements/body.prl +446 -0
- package/iso-iec-17065/terminology.prl +103 -0
- package/iso-iec-17067/package.primmel +10 -0
- package/iso-iec-17067/specification/requirements/scheme-content.prl +300 -0
- package/iso-iec-17067/terminology.prl +24 -0
- package/oiml-cs/package.primmel +10 -0
- package/oiml-cs/specification/discrepancies.prl +26 -0
- package/oiml-cs/specification/requirements/cs.prl +515 -0
- package/oiml-cs-dataspace/.primmel-allowlist.prl +25 -0
- package/oiml-cs-dataspace/package.primmel +9 -0
- package/oiml-cs-dataspace/specification/dataspace.prl +73 -0
- package/oiml-cs-dataspace/specification/policies.prl +68 -0
- package/oiml-integrated-ref/model/probe-pairing.prl +71 -0
- package/oiml-integrated-ref/package.primmel +10 -0
- package/oiml-r129/.primmel-allowlist.prl +2 -0
- package/oiml-r129/evaluation/processes.prl +152 -0
- package/oiml-r129/evaluation/workflow.prl +48 -0
- package/oiml-r129/execution/forms/admin/adjustments-modifications.prl +30 -0
- package/oiml-r129/execution/forms/admin/checklist.prl +70 -0
- package/oiml-r129/execution/forms/admin/configuration.prl +31 -0
- package/oiml-r129/execution/forms/admin/equipment-info.prl +27 -0
- package/oiml-r129/execution/forms/admin/general-info.prl +63 -0
- package/oiml-r129/execution/forms/admin/identification.prl +49 -0
- package/oiml-r129/execution/forms/admin/sample-selection.prl +30 -0
- package/oiml-r129/execution/forms/admin/summary-results.prl +50 -0
- package/oiml-r129/execution/forms/emc/bursts.prl +88 -0
- package/oiml-r129/execution/forms/emc/esd.prl +66 -0
- package/oiml-r129/execution/forms/emc/low-voltage-battery.prl +58 -0
- package/oiml-r129/execution/forms/emc/rf-immunity-conducted.prl +59 -0
- package/oiml-r129/execution/forms/emc/rf-immunity-radiated.prl +59 -0
- package/oiml-r129/execution/forms/emc/surge.prl +61 -0
- package/oiml-r129/execution/forms/emc/voltage-dips.prl +62 -0
- package/oiml-r129/execution/forms/emc/voltage-variation.prl +58 -0
- package/oiml-r129/execution/forms/env/damp-heat-cyclic.prl +43 -0
- package/oiml-r129/execution/forms/env/damp-heat-steady.prl +50 -0
- package/oiml-r129/execution/forms/env/static-temperatures.prl +61 -0
- package/oiml-r129/execution/forms/shared/headers.prl +86 -0
- package/oiml-r129/execution/forms/tests/acoustics.prl +44 -0
- package/oiml-r129/execution/forms/tests/ambient-light.prl +46 -0
- package/oiml-r129/execution/forms/tests/construction-examination.prl +46 -0
- package/oiml-r129/execution/forms/tests/examination-checklist.prl +51 -0
- package/oiml-r129/execution/forms/tests/object-shape.prl +43 -0
- package/oiml-r129/execution/forms/tests/orientation-position.prl +31 -0
- package/oiml-r129/execution/forms/tests/repeatability.prl +65 -0
- package/oiml-r129/execution/forms/tests/speed-movement.prl +59 -0
- package/oiml-r129/execution/forms/tests/surface-characteristics.prl +44 -0
- package/oiml-r129/execution/forms/tests/warm-up-time.prl +35 -0
- package/oiml-r129/execution/subforms/dimension-measurement.prl +93 -0
- package/oiml-r129/layers.prl +50 -0
- package/oiml-r129/model/attributes.prl +243 -0
- package/oiml-r129/model/behaviors.prl +79 -0
- package/oiml-r129/model/capabilities.prl +29 -0
- package/oiml-r129/model/characteristics.prl +8 -0
- package/oiml-r129/model/conditions.prl +23 -0
- package/oiml-r129/model/instrument.prl +67 -0
- package/oiml-r129/model/state.prl +22 -0
- package/oiml-r129/model/twin.prl +23 -0
- package/oiml-r129/package.primmel +15 -0
- package/oiml-r129/payload/application.yaml +40 -0
- package/oiml-r129/payload/conditions-common-test.yaml +8 -0
- package/oiml-r129/payload/formulas-variants.yaml +33 -0
- package/oiml-r129/payload/promises.yaml +102 -0
- package/oiml-r129/payload/sample-data.yaml +300 -0
- package/oiml-r129/references.prl +306 -0
- package/oiml-r129/sources-prd/coverage.json +59 -0
- package/oiml-r129/sources-prd/r129-1.sentences.json +4238 -0
- package/oiml-r129/sources-prd/r129-2.sentences.json +1139 -0
- package/oiml-r129/sources-prd/r129-3.sentences.json +3809 -0
- package/oiml-r129/sources-prd/r129-4.sentences.json +1227 -0
- package/oiml-r129/specification/calculations.prl +83 -0
- package/oiml-r129/specification/conformance/disturbance-tests.prl +212 -0
- package/oiml-r129/specification/conformance/effect-tests.prl +70 -0
- package/oiml-r129/specification/conformance/examinations.prl +83 -0
- package/oiml-r129/specification/conformance/metrological-tests.prl +178 -0
- package/oiml-r129/specification/formulas.prl +9 -0
- package/oiml-r129/specification/requirements/electronic.prl +46 -0
- package/oiml-r129/specification/requirements/metrological.prl +83 -0
- package/oiml-r129/specification/requirements/object-limitations.prl +99 -0
- package/oiml-r129/specification/requirements/software.prl +57 -0
- package/oiml-r129/specification/requirements/technical.prl +134 -0
- package/oiml-r129/specification/symbols.prl +187 -0
- package/oiml-r129/specification/tables.prl +74 -0
- package/oiml-r129/terminology.prl +415 -0
- package/oiml-r129/value-types.prl +40 -0
- package/oiml-r144/.primmel-allowlist.prl +2 -0
- package/oiml-r144/entities/instrument.prl +360 -0
- package/oiml-r144/entities/test-execution.prl +228 -0
- package/oiml-r144/entities/workflow.prl +2075 -0
- package/oiml-r144/evaluation/processes.prl +152 -0
- package/oiml-r144/evaluation/workflow.prl +48 -0
- package/oiml-r144/execution/forms/sec-3-report/03-01-laboratory-info.prl +19 -0
- package/oiml-r144/execution/forms/sec-3-report/03-02-test-location.prl +14 -0
- package/oiml-r144/execution/forms/sec-3-report/03-03-manufacturer-info.prl +18 -0
- package/oiml-r144/execution/forms/sec-3-report/03-04-applicant-info.prl +19 -0
- package/oiml-r144/execution/forms/sec-3-report/03-05-type-identification.prl +80 -0
- package/oiml-r144/execution/forms/sec-3-report/03-06-type-composition.prl +31 -0
- package/oiml-r144/execution/forms/sec-3-report/03-07-visual-examination.prl +46 -0
- package/oiml-r144/execution/forms/sec-3-report/03-08-test-conclusions.prl +46 -0
- package/oiml-r144/execution/forms/sec-3-report/03-09-general-conclusion.prl +19 -0
- package/oiml-r144/execution/forms/sec-3-report/03-10-responsible-persons.prl +27 -0
- package/oiml-r144/execution/forms/sec-tests/ambient-pressure-test.prl +59 -0
- package/oiml-r144/execution/forms/sec-tests/bursts-mains-test.prl +52 -0
- package/oiml-r144/execution/forms/sec-tests/bursts-signal-test.prl +55 -0
- package/oiml-r144/execution/forms/sec-tests/cold-test.prl +48 -0
- package/oiml-r144/execution/forms/sec-tests/cross-sensitivity-test.prl +92 -0
- package/oiml-r144/execution/forms/sec-tests/damp-heat-test.prl +50 -0
- package/oiml-r144/execution/forms/sec-tests/documentation-examination.prl +52 -0
- package/oiml-r144/execution/forms/sec-tests/drift-test.prl +83 -0
- package/oiml-r144/execution/forms/sec-tests/dry-heat-test.prl +53 -0
- package/oiml-r144/execution/forms/sec-tests/error-determination.prl +37 -0
- package/oiml-r144/execution/forms/sec-tests/esd-test.prl +53 -0
- package/oiml-r144/execution/forms/sec-tests/flow-spillover-test.prl +83 -0
- package/oiml-r144/execution/forms/sec-tests/leakproofness-test.prl +41 -0
- package/oiml-r144/execution/forms/sec-tests/low-battery-test.prl +48 -0
- package/oiml-r144/execution/forms/sec-tests/power-reduction-test.prl +49 -0
- package/oiml-r144/execution/forms/sec-tests/power-supply-test.prl +57 -0
- package/oiml-r144/execution/forms/sec-tests/repeatability-test.prl +60 -0
- package/oiml-r144/execution/forms/sec-tests/response-time-test.prl +43 -0
- package/oiml-r144/execution/forms/sec-tests/rf-emf-test.prl +47 -0
- package/oiml-r144/execution/forms/sec-tests/shock-test.prl +50 -0
- package/oiml-r144/execution/forms/sec-tests/surge-test.prl +52 -0
- package/oiml-r144/execution/forms/sec-tests/vibration-test.prl +58 -0
- package/oiml-r144/execution/forms/sec-tests/warm-up-time-test.prl +69 -0
- package/oiml-r144/execution/forms/shared/headers.prl +132 -0
- package/oiml-r144/execution/subforms/cgm-point.prl +99 -0
- package/oiml-r144/layers.prl +44 -0
- package/oiml-r144/model/attributes.prl +679 -0
- package/oiml-r144/model/behaviors.prl +117 -0
- package/oiml-r144/model/capabilities.prl +99 -0
- package/oiml-r144/model/characteristics.prl +27 -0
- package/oiml-r144/model/conditions.prl +46 -0
- package/oiml-r144/model/instrument.prl +85 -0
- package/oiml-r144/model/state.prl +18 -0
- package/oiml-r144/model/twin.prl +25 -0
- package/oiml-r144/package.primmel +15 -0
- package/oiml-r144/payload/application.yaml +80 -0
- package/oiml-r144/payload/attributes-pair-list.yaml +18 -0
- package/oiml-r144/payload/conditions-common-test.yaml +74 -0
- package/oiml-r144/payload/formulas-variants.yaml +32 -0
- package/oiml-r144/payload/promises.yaml +118 -0
- package/oiml-r144/payload/sample-data.yaml +643 -0
- package/oiml-r144/references.prl +594 -0
- package/oiml-r144/sources-prd/coverage.json +114 -0
- package/oiml-r144/sources-prd/r144-1.sentences.json +2797 -0
- package/oiml-r144/sources-prd/r144-2.sentences.json +1627 -0
- package/oiml-r144/sources-prd/r144-3.sentences.json +838 -0
- package/oiml-r144/specification/calculations.prl +123 -0
- package/oiml-r144/specification/conformance/examination.prl +87 -0
- package/oiml-r144/specification/conformance/performance-tests.prl +755 -0
- package/oiml-r144/specification/formulas.prl +37 -0
- package/oiml-r144/specification/reference-materials.prl +87 -0
- package/oiml-r144/specification/requirements/controls.prl +51 -0
- package/oiml-r144/specification/requirements/metrological.prl +299 -0
- package/oiml-r144/specification/requirements/report.prl +35 -0
- package/oiml-r144/specification/requirements/technical.prl +455 -0
- package/oiml-r144/specification/symbols.prl +357 -0
- package/oiml-r144/specification/tables.prl +95 -0
- package/oiml-r144/specification/test-point-sets.prl +15 -0
- package/oiml-r144/terminology.prl +308 -0
- package/oiml-r144/value-types.prl +49 -0
- package/oiml-r60/.primmel-allowlist.prl +2 -0
- package/oiml-r60/entities/workflow.prl +2079 -0
- package/oiml-r60/evaluation/processes.prl +152 -0
- package/oiml-r60/evaluation/workflow.prl +48 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-01-authority-info.prl +76 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-02-synopsis.prl +20 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-03-01-examinations.prl +27 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-03-02-a-performance-general.prl +81 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-03-02-b-performance-digital.prl +104 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-04-01-manufacturer.prl +21 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-04-02-applicant.prl +44 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-04-03-testing-laboratories.prl +69 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-05-load-cell-type-info.prl +83 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-06-accessories.prl +41 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-07-sample-selection.prl +71 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-01-general-info.prl +103 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-02-performance-info.prl +66 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-03-digital-info.prl +35 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-04-photographs.prl +12 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-05-documentation.prl +27 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-06-inscriptions.prl +126 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-07-model-range.prl +143 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-12-previous-tests.prl +26 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-01-force-generating-system.prl +89 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-02-weights.prl +61 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-03-temperature-chamber.prl +96 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-04-climate-chamber.prl +96 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-05-indicator.prl +92 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-06-terminal.prl +86 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-07-barometric-pressure-meter.prl +62 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-08-thermometer.prl +62 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-09-moisture-analyser.prl +62 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-10-additional-test-equipment.prl +69 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-11-remarks.prl +11 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/test-usage-matrix.prl +85 -0
- package/oiml-r60/execution/forms/sec-5-examination/documentation-examination.prl +53 -0
- package/oiml-r60/execution/forms/sec-5-examination/marking-examination.prl +104 -0
- package/oiml-r60/execution/forms/sec-5-examination/software-examination.prl +86 -0
- package/oiml-r60/execution/forms/sec-5-examination/suitability-examination.prl +56 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/barometric-pressure.prl +176 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/bursts.prl +129 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/conducted-emc.prl +170 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/creep-dr.prl +327 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/emc-susceptibility.prl +115 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/esd.prl +224 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/humidity-ch.prl +300 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/humidity-sh.prl +235 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/initial-tests.prl +129 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/load-cell-errors.prl +280 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/load-test.prl +29 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/performance-test-summary.prl +82 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/power-voltage.prl +166 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/repeatability.prl +189 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/short-time-power.prl +98 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/span-stability.prl +242 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/surge.prl +142 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/temperature-mdlo.prl +180 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/warm-up-time.prl +207 -0
- package/oiml-r60/execution/forms/shared/headers.prl +255 -0
- package/oiml-r60/execution/subforms/load-test-row.prl +55 -0
- package/oiml-r60/execution/subforms/test-procedures.prl +33 -0
- package/oiml-r60/layers.prl +46 -0
- package/oiml-r60/model/attributes.prl +642 -0
- package/oiml-r60/model/behaviors.prl +165 -0
- package/oiml-r60/model/capabilities.prl +57 -0
- package/oiml-r60/model/characteristics.prl +27 -0
- package/oiml-r60/model/conditions.prl +50 -0
- package/oiml-r60/model/instrument.prl +96 -0
- package/oiml-r60/model/processes.prl +54 -0
- package/oiml-r60/model/state.prl +22 -0
- package/oiml-r60/model/twin.prl +16 -0
- package/oiml-r60/package.primmel +16 -0
- package/oiml-r60/payload/annexes-part4.yaml +122 -0
- package/oiml-r60/payload/application.yaml +83 -0
- package/oiml-r60/payload/conditions-common-test.yaml +121 -0
- package/oiml-r60/payload/formulas-variants.yaml +55 -0
- package/oiml-r60/payload/promises.yaml +224 -0
- package/oiml-r60/payload/sample-data.yaml +5025 -0
- package/oiml-r60/payload/symbols-formula-notes.yaml +21 -0
- package/oiml-r60/references.prl +549 -0
- package/oiml-r60/sources-prd/coverage.json +740 -0
- package/oiml-r60/sources-prd/r60-1.sentences.json +2173 -0
- package/oiml-r60/sources-prd/r60-2.sentences.json +2961 -0
- package/oiml-r60/sources-prd/r60-3.sentences.json +4212 -0
- package/oiml-r60/sources-prd/r60-a.sentences.json +3361 -0
- package/oiml-r60/specification/calculations.prl +318 -0
- package/oiml-r60/specification/conformance/class-specific.prl +1120 -0
- package/oiml-r60/specification/conformance/electronic.prl +483 -0
- package/oiml-r60/specification/conformance/examination.prl +183 -0
- package/oiml-r60/specification/conformance/metrological.prl +478 -0
- package/oiml-r60/specification/constraints.prl +58 -0
- package/oiml-r60/specification/formulas-used.prl +43 -0
- package/oiml-r60/specification/formulas.prl +20 -0
- package/oiml-r60/specification/requirements/class-specific.prl +655 -0
- package/oiml-r60/specification/requirements/classification.prl +114 -0
- package/oiml-r60/specification/requirements/electronic.prl +222 -0
- package/oiml-r60/specification/requirements/metrological.prl +381 -0
- package/oiml-r60/specification/requirements/technical.prl +146 -0
- package/oiml-r60/specification/symbols.prl +599 -0
- package/oiml-r60/specification/tables.prl +182 -0
- package/oiml-r60/specification/test-sequences.prl +72 -0
- package/oiml-r60/terminology.prl +920 -0
- package/oiml-r60/value-types.prl +46 -0
- package/oiml-r91/.primmel-allowlist.prl +3 -0
- package/oiml-r91/entities/instrument.prl +359 -0
- package/oiml-r91/entities/workflow.prl +2075 -0
- package/oiml-r91/evaluation/processes.prl +152 -0
- package/oiml-r91/evaluation/workflow.prl +48 -0
- package/oiml-r91/execution/forms/evidence-file.prl +41 -0
- package/oiml-r91/execution/forms/report-evaluation/appraisal.prl +30 -0
- package/oiml-r91/execution/forms/report-evaluation/checklist-summary.prl +43 -0
- package/oiml-r91/execution/forms/report-evaluation/checklist.prl +76 -0
- package/oiml-r91/execution/forms/report-evaluation/configuration-samples.prl +22 -0
- package/oiml-r91/execution/forms/report-evaluation/corrective-actions.prl +24 -0
- package/oiml-r91/execution/forms/report-evaluation/descriptions.prl +47 -0
- package/oiml-r91/execution/forms/report-evaluation/evaluation-identification.prl +219 -0
- package/oiml-r91/execution/forms/report-evaluation/test-report-summary.prl +33 -0
- package/oiml-r91/execution/forms/report-general/adjustments.prl +12 -0
- package/oiml-r91/execution/forms/report-general/alignment-aiming.prl +17 -0
- package/oiml-r91/execution/forms/report-general/checking-facility.prl +17 -0
- package/oiml-r91/execution/forms/report-general/configuration.prl +12 -0
- package/oiml-r91/execution/forms/report-general/identification.prl +216 -0
- package/oiml-r91/execution/forms/report-general/indications-controls.prl +17 -0
- package/oiml-r91/execution/forms/report-general/sealing.prl +21 -0
- package/oiml-r91/execution/forms/report-general/software-description.prl +26 -0
- package/oiml-r91/execution/forms/report-general/summary-environmental.prl +35 -0
- package/oiml-r91/execution/forms/report-general/summary-tests.prl +35 -0
- package/oiml-r91/execution/forms/report-general/test-equipment.prl +36 -0
- package/oiml-r91/execution/forms/report-general/test-interface.prl +16 -0
- package/oiml-r91/execution/forms/report-tests/01-01-field-test.prl +84 -0
- package/oiml-r91/execution/forms/report-tests/01-02-statistical-analysis.prl +76 -0
- package/oiml-r91/execution/forms/report-tests/01-03-image-evidence.prl +30 -0
- package/oiml-r91/execution/forms/report-tests/02-01-dynamic-performance.prl +92 -0
- package/oiml-r91/execution/forms/report-tests/02-02-speed-linearity.prl +23 -0
- package/oiml-r91/execution/forms/report-tests/02-03-distance-linearity.prl +67 -0
- package/oiml-r91/execution/forms/report-tests/02-04-angle-linearity.prl +59 -0
- package/oiml-r91/execution/forms/report-tests/03-01-dry-heat-operating.prl +38 -0
- package/oiml-r91/execution/forms/report-tests/03-02-dry-heat-storage.prl +48 -0
- package/oiml-r91/execution/forms/report-tests/03-03-cold-operating.prl +40 -0
- package/oiml-r91/execution/forms/report-tests/03-04-cold-storage.prl +48 -0
- package/oiml-r91/execution/forms/report-tests/03-05-damp-heat-cyclic.prl +40 -0
- package/oiml-r91/execution/forms/report-tests/03-06-water.prl +48 -0
- package/oiml-r91/execution/forms/report-tests/03-07-sand-and-dust.prl +48 -0
- package/oiml-r91/execution/forms/report-tests/03-08-salt-mist.prl +48 -0
- package/oiml-r91/execution/forms/report-tests/03-09-vibration-random.prl +40 -0
- package/oiml-r91/execution/forms/report-tests/03-10-mechanical-shock.prl +48 -0
- package/oiml-r91/execution/forms/report-tests/03-11-dc-mains-voltage-variation.prl +40 -0
- package/oiml-r91/execution/forms/report-tests/03-12-ripple-on-dc-mains.prl +47 -0
- package/oiml-r91/execution/forms/report-tests/03-13-ac-mains-voltage-variation.prl +40 -0
- package/oiml-r91/execution/forms/report-tests/03-14-ac-mains-frequency-variation.prl +40 -0
- package/oiml-r91/execution/forms/report-tests/03-15-dc-mains-voltage-dips.prl +46 -0
- package/oiml-r91/execution/forms/report-tests/03-16-ac-mains-voltage-dips.prl +46 -0
- package/oiml-r91/execution/forms/report-tests/03-17-ac-mains-frequency-harmonics.prl +47 -0
- package/oiml-r91/execution/forms/report-tests/03-18-vlf-lf-disturbances.prl +46 -0
- package/oiml-r91/execution/forms/report-tests/03-19-bursts-ac-dc-mains.prl +44 -0
- package/oiml-r91/execution/forms/report-tests/03-20-surges-ac-dc-mains.prl +45 -0
- package/oiml-r91/execution/forms/report-tests/03-21-bursts-signal-lines.prl +45 -0
- package/oiml-r91/execution/forms/report-tests/03-22-surges-signal-lines.prl +46 -0
- package/oiml-r91/execution/forms/report-tests/03-23-ac-mains-magnetic-field.prl +45 -0
- package/oiml-r91/execution/forms/report-tests/03-24-conducted-rf-common-mode.prl +46 -0
- package/oiml-r91/execution/forms/report-tests/03-25-rf-electromagnetic-fields.prl +49 -0
- package/oiml-r91/execution/forms/report-tests/03-26-electrostatic-discharges.prl +47 -0
- package/oiml-r91/execution/forms/report-tests/03-27-internal-battery-low-voltage.prl +40 -0
- package/oiml-r91/execution/forms/report-tests/03-28-road-vehicle-battery.prl +40 -0
- package/oiml-r91/execution/forms/report-tests/03-29-transient-supply-lines.prl +47 -0
- package/oiml-r91/execution/forms/report-tests/03-30-transient-other-lines.prl +45 -0
- package/oiml-r91/execution/forms/report-tests/03-31-battery-cranking.prl +45 -0
- package/oiml-r91/execution/forms/report-tests/03-32-load-dump.prl +47 -0
- package/oiml-r91/execution/forms/report-tests/03-33-acceleration.prl +66 -0
- package/oiml-r91/execution/forms/report-tests/03-34-further-influence.prl +60 -0
- package/oiml-r91/execution/forms/report-tests/03-35-installation-alignment.prl +29 -0
- package/oiml-r91/execution/forms/report-tests/04-01-doppler-radar.prl +43 -0
- package/oiml-r91/execution/forms/report-tests/04-02-range-finding.prl +42 -0
- package/oiml-r91/execution/forms/report-tests/04-03-average-speed.prl +41 -0
- package/oiml-r91/execution/forms/report-tests/04-04-fixed-distance.prl +40 -0
- package/oiml-r91/execution/forms/report-tests/04-05-image-based.prl +41 -0
- package/oiml-r91/execution/forms/report-tests/04-06-across-road.prl +42 -0
- package/oiml-r91/execution/forms/report-tests/05-01-moving-field-test.prl +29 -0
- package/oiml-r91/execution/forms/report-tests/05-02-ego-field-test.prl +57 -0
- package/oiml-r91/execution/forms/report-tests/05-03-moving-traffic-simulation.prl +31 -0
- package/oiml-r91/execution/forms/report-tests/06-01-software-general.prl +25 -0
- package/oiml-r91/execution/forms/report-tests/06-02-software-protection.prl +25 -0
- package/oiml-r91/execution/forms/report-tests/06-03-software-hardware-support.prl +24 -0
- package/oiml-r91/execution/forms/report-tests/06-04-software-separation.prl +25 -0
- package/oiml-r91/execution/forms/report-tests/06-05-software-maintenance.prl +24 -0
- package/oiml-r91/execution/forms/report-tests/07-general-remarks.prl +11 -0
- package/oiml-r91/execution/forms/shared/header-a.prl +63 -0
- package/oiml-r91/execution/subforms/software-matrix-row.prl +30 -0
- package/oiml-r91/execution/subforms/speed-measurement-row.prl +38 -0
- package/oiml-r91/layers.prl +46 -0
- package/oiml-r91/model/artifacts.prl +29 -0
- package/oiml-r91/model/attributes.prl +698 -0
- package/oiml-r91/model/behaviors.prl +142 -0
- package/oiml-r91/model/capabilities.prl +88 -0
- package/oiml-r91/model/characteristics.prl +27 -0
- package/oiml-r91/model/conditions.prl +37 -0
- package/oiml-r91/model/instrument.prl +147 -0
- package/oiml-r91/model/state.prl +22 -0
- package/oiml-r91/model/twin.prl +17 -0
- package/oiml-r91/package.primmel +14 -0
- package/oiml-r91/payload/application.yaml +201 -0
- package/oiml-r91/payload/conditions-common-test.yaml +19 -0
- package/oiml-r91/payload/promises.yaml +142 -0
- package/oiml-r91/payload/sample-data.yaml +464 -0
- package/oiml-r91/references.prl +72 -0
- package/oiml-r91/sources-prd/coverage.json +106 -0
- package/oiml-r91/sources-prd/r91-1.sentences.json +4696 -0
- package/oiml-r91/sources-prd/r91-2.sentences.json +2067 -0
- package/oiml-r91/sources-prd/r91-3.sentences.json +5210 -0
- package/oiml-r91/sources-prd/r91-4.sentences.json +474 -0
- package/oiml-r91/specification/calculations.prl +26 -0
- package/oiml-r91/specification/conformance/influence-disturbance.prl +1792 -0
- package/oiml-r91/specification/conformance/metrological.prl +906 -0
- package/oiml-r91/specification/formulas.prl +10 -0
- package/oiml-r91/specification/requirements/class-specific.prl +308 -0
- package/oiml-r91/specification/requirements/metrological.prl +176 -0
- package/oiml-r91/specification/requirements/technical.prl +173 -0
- package/oiml-r91/specification/symbols.prl +323 -0
- package/oiml-r91/specification/tables.prl +136 -0
- package/oiml-r91/terminology.prl +535 -0
- package/oiml-r91/value-types.prl +26 -0
- package/oiml-smart-core/entities/comments.prl +101 -0
- package/oiml-smart-core/entities/cs-operations.prl +492 -0
- package/oiml-smart-core/entities/cs-participants.prl +470 -0
- package/oiml-smart-core/entities/engagement.prl +323 -0
- package/oiml-smart-core/entities/instrument.prl +359 -0
- package/oiml-smart-core/entities/module-b.prl +214 -0
- package/oiml-smart-core/entities/operated-schemes.prl +141 -0
- package/oiml-smart-core/entities/parties.prl +429 -0
- package/oiml-smart-core/entities/payment-records.prl +92 -0
- package/oiml-smart-core/entities/verification.prl +187 -0
- package/oiml-smart-core/entities/workflow.prl +2075 -0
- package/oiml-smart-core/evaluation/roles.prl +65 -0
- package/oiml-smart-core/evaluation/state-machines.prl +1157 -0
- package/oiml-smart-core/package.primmel +10 -0
- package/oiml-smart-core/specification/competence-kinds.prl +64 -0
- package/oiml-smart-core/specification/constraints.prl +40 -0
- package/oiml-smart-core/specification/invariants.prl +90 -0
- package/oiml-smart-core/specification/predicates.prl +116 -0
- package/oiml-smart-module-emc-disturbances/package.primmel +10 -0
- package/oiml-smart-module-env-iec60068/package.primmel +10 -0
- package/oiml-smart-module-examination-docs/package.primmel +10 -0
- package/oiml-smart-module-reference-materials/package.primmel +10 -0
- package/oiml-smart-module-report-headers/package.primmel +10 -0
- package/oiml-smart-module-software-d31/package.primmel +10 -0
- package/oiml-smart-module-specimen-governance/entities/test-execution.prl +228 -0
- package/oiml-smart-module-specimen-governance/package.primmel +10 -0
- package/oiml-twin-cert/documents/tw-1/document.yaml +454 -0
- package/oiml-twin-cert/evaluation/roles.prl +15 -0
- package/oiml-twin-cert/execution/forms/probe-creep.prl +179 -0
- package/oiml-twin-cert/execution/forms/probe.prl +99 -0
- package/oiml-twin-cert/execution/forms/static-conformance.prl +50 -0
- package/oiml-twin-cert/model/attributes.prl +243 -0
- package/oiml-twin-cert/model/behaviors.prl +8 -0
- package/oiml-twin-cert/model/characteristics.prl +18 -0
- package/oiml-twin-cert/model/monitors.prl +16 -0
- package/oiml-twin-cert/package.primmel +16 -0
- package/oiml-twin-cert/specification/conformance/twin-fidelity.prl +176 -0
- package/oiml-twin-cert/specification/requirements/twin-fidelity.prl +137 -0
- package/oiml-twin-cert/specification/symbols.prl +36 -0
- package/oiml-twin-cert/terminology.prl +8 -0
- package/oimlsmart-primmel-packages-0.1.0.tgz +0 -0
- package/package.json +17 -0
- package/qms-ref/model/qms.prl +31 -0
- package/qms-ref/package.primmel +38 -0
- package/quarry-belt-scale/model/ops.prl +115 -0
- package/quarry-belt-scale/package.primmel +36 -0
|
@@ -0,0 +1,337 @@
|
|
|
1
|
+
# ─────────────────────────────────────────────────────────────────────
|
|
2
|
+
# ACME CGM-200 → OIML R 144 — the conformance claim made computable
|
|
3
|
+
# (TODO.v2/08's R 144 phase; TODO.roadmap/36; doctrine ch. 15 §15.2).
|
|
4
|
+
#
|
|
5
|
+
# The decisive act of the product reference model: every conformance-
|
|
6
|
+
# relevant aspect and promise is mapped to the Recommendation's — aspect
|
|
7
|
+
# by aspect, node to node, promise to requirement. The map targets are
|
|
8
|
+
# the package's own `oiml-r144#…` alias declarations (the implementation
|
|
9
|
+
# declares local copies of the reference elements it maps to — C21); the
|
|
10
|
+
# platform's product-coverage gate resolves the unqualified ids against
|
|
11
|
+
# the real R 144 package (data/r144's requirement vocabulary), so no
|
|
12
|
+
# clause reference dangles.
|
|
13
|
+
#
|
|
14
|
+
# 100 % of the tested characteristics are covered: every block-form
|
|
15
|
+
# promise is a mapping source (C82 product-unmapped-promises stays
|
|
16
|
+
# silent), and every promise target (the two per-channel error
|
|
17
|
+
# characteristics and the behaviors the standard's tests exercise —
|
|
18
|
+
# drift, step response, warm-up, cross-sensitivity, the adjustments,
|
|
19
|
+
# the self-check, the reference reduction) is reachable through one.
|
|
20
|
+
#
|
|
21
|
+
# The honest boundary (the coverage audit): the map claims the
|
|
22
|
+
# METROLOGICAL core the twin serves evidence for — 4.1 units, 4.2
|
|
23
|
+
# ranges, 4.3.1 intrinsic MPE, 4.4 repeatability, 4.5.1 rated conditions
|
|
24
|
+
# (whose limit IS the 4.3.2 verification MPE — a SHOULD, subsumed here,
|
|
25
|
+
# never claimed as a separate promise), 4.5.2 cross-sensitivity, 4.5.4
|
|
26
|
+
# disturbances, 4.6 response time, 4.7 warm-up, 4.8 drift — plus the
|
|
27
|
+
# three technical requirements the twin interface itself touches (5.1.6
|
|
28
|
+
# flow check, 5.5.2 flow supervision, 5.7.1 adjustment access). The
|
|
29
|
+
# remaining technical requirements (construction, display, printing,
|
|
30
|
+
# markings, documentation) are examination/inspection matters of the
|
|
31
|
+
# Recommendation's own type evaluation program — the product reference
|
|
32
|
+
# model makes no computable claim about them and the map says so rather
|
|
33
|
+
# than decorating them.
|
|
34
|
+
# ─────────────────────────────────────────────────────────────────────
|
|
35
|
+
|
|
36
|
+
requirement oiml-r144#/req/metrological/measurement-units {
|
|
37
|
+
name "alias: R 144 presentation of measurement results"
|
|
38
|
+
statement "Local alias of the Recommendation's measurement-units requirement — ppm, reduced to the reference conditions 273.15 K / 101.325 kPa (the product reference model declares local copies of the reference elements it maps to — C21)."
|
|
39
|
+
verification { method examination description "Verified in the Recommendation's own type evaluation program." }
|
|
40
|
+
source { doc "urn:oiml:pub:r:144-1:2013" clause "4.1" }
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
requirement oiml-r144#/req/metrological/measuring-range {
|
|
44
|
+
name "alias: R 144 measuring range"
|
|
45
|
+
statement "Local alias of the Recommendation's measuring-range requirement (the 4.2 envelopes per component; sub-ranges admitted)."
|
|
46
|
+
verification { method examination description "Verified in the Recommendation's own type evaluation program." }
|
|
47
|
+
source { doc "urn:oiml:pub:r:144-1:2013" clause "4.2" }
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
requirement oiml-r144#/req/metrological/mpe-intrinsic {
|
|
51
|
+
name "alias: R 144 maximum permissible intrinsic error"
|
|
52
|
+
statement "Local alias of the Recommendation's intrinsic-MPE requirement — the larger of 2 ppm and 5 % of the measured value."
|
|
53
|
+
verification { method examination description "Verified in the Recommendation's own type evaluation program." }
|
|
54
|
+
source { doc "urn:oiml:pub:r:144-1:2013" clause "4.3.1" }
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
requirement oiml-r144#/req/metrological/repeatability {
|
|
58
|
+
name "alias: R 144 repeatability"
|
|
59
|
+
statement "Local alias of the Recommendation's repeatability requirement — the estimated standard deviation within one third of the intrinsic MPE."
|
|
60
|
+
verification { method examination description "Verified in the Recommendation's own type evaluation program." }
|
|
61
|
+
source { doc "urn:oiml:pub:r:144-1:2013" clause "4.4" }
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
requirement oiml-r144#/req/metrological/rated-conditions {
|
|
65
|
+
name "alias: R 144 rated operating conditions"
|
|
66
|
+
statement "Local alias of the Recommendation's rated-operating-conditions requirement (temperature, humidity, pressure, supply — the 4.3.2 verification MPE across them)."
|
|
67
|
+
verification { method examination description "Verified in the Recommendation's own type evaluation program." }
|
|
68
|
+
source { doc "urn:oiml:pub:r:144-1:2013" clause "4.5.1" }
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
requirement oiml-r144#/req/metrological/cross-sensitivity {
|
|
72
|
+
name "alias: R 144 cross sensitivity"
|
|
73
|
+
statement "Local alias of the Recommendation's cross-sensitivity requirement — interferents up to their declared maxima shift the indication by no more than half the intrinsic MPE."
|
|
74
|
+
verification { method examination description "Verified in the Recommendation's own type evaluation program." }
|
|
75
|
+
source { doc "urn:oiml:pub:r:144-1:2013" clause "4.5.2" }
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
requirement oiml-r144#/req/metrological/disturbances {
|
|
79
|
+
name "alias: R 144 disturbances"
|
|
80
|
+
statement "Local alias of the Recommendation's disturbances requirement — the error within limits or the failure detected by the checking facility."
|
|
81
|
+
verification { method examination description "Verified in the Recommendation's own type evaluation program." }
|
|
82
|
+
source { doc "urn:oiml:pub:r:144-1:2013" clause "4.5.4" }
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
requirement oiml-r144#/req/metrological/response-time {
|
|
86
|
+
name "alias: R 144 response time"
|
|
87
|
+
statement "Local alias of the Recommendation's response-time requirement — 90 % of the stable value within four minutes for a 0 % to 100 % step."
|
|
88
|
+
verification { method examination description "Verified in the Recommendation's own type evaluation program." }
|
|
89
|
+
source { doc "urn:oiml:pub:r:144-1:2013" clause "4.6" }
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
requirement oiml-r144#/req/metrological/warm-up-time {
|
|
93
|
+
name "alias: R 144 warm-up time"
|
|
94
|
+
statement "Local alias of the Recommendation's warm-up-time requirement — the system meets the metrological requirements after the manufacturer-specified warm-up time."
|
|
95
|
+
verification { method examination description "Verified in the Recommendation's own type evaluation program." }
|
|
96
|
+
source { doc "urn:oiml:pub:r:144-1:2013" clause "4.7" }
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
requirement oiml-r144#/req/metrological/drift {
|
|
100
|
+
name "alias: R 144 stability with time (drift)"
|
|
101
|
+
statement "Local alias of the Recommendation's drift requirement — the error within the intrinsic MPE for at least seven days from adjustment (semi-automatic adjustment means)."
|
|
102
|
+
verification { method examination description "Verified in the Recommendation's own type evaluation program." }
|
|
103
|
+
source { doc "urn:oiml:pub:r:144-1:2013" clause "4.8" }
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
requirement oiml-r144#/req/technical/gas-flow-meter {
|
|
107
|
+
name "alias: R 144 gas flow meter"
|
|
108
|
+
statement "Local alias of the Recommendation's gas-flow-meter requirement — the user can check the manufacturer-specified measuring mode."
|
|
109
|
+
verification { method examination description "Verified in the Recommendation's own type evaluation program." }
|
|
110
|
+
source { doc "urn:oiml:pub:r:144-1:2013" clause "5.1.6" }
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
requirement oiml-r144#/req/technical/gas-flow-monitoring {
|
|
114
|
+
name "alias: R 144 gas flow monitoring"
|
|
115
|
+
statement "Local alias of the Recommendation's gas-flow-monitoring requirement — the device signals flow unavailable or outside the manufacturer-specified limits."
|
|
116
|
+
verification { method examination description "Verified in the Recommendation's own type evaluation program." }
|
|
117
|
+
source { doc "urn:oiml:pub:r:144-1:2013" clause "5.5.2" }
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
requirement oiml-r144#/req/technical/adjustment-security {
|
|
121
|
+
name "alias: R 144 adjustment access control"
|
|
122
|
+
statement "Local alias of the Recommendation's adjustment-access requirement — zero-setting and CGM adjustment inaccessible to the operator; access by code or equivalent."
|
|
123
|
+
verification { method examination description "Verified in the Recommendation's own type evaluation program." }
|
|
124
|
+
source { doc "urn:oiml:pub:r:144-1:2013" clause "5.7.1" }
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
# The governed twin interface aliases (TODO.v2/16 — the projection's
|
|
128
|
+
# map side): the product's projection pairs name the BACKING components
|
|
129
|
+
# — the endpoint and the per-register backing attributes — never the
|
|
130
|
+
# serve bindings (derived from the Recommendation's twin.prl, not
|
|
131
|
+
# mapped). Composition `all`: every governed element IN THE PRODUCT'S
|
|
132
|
+
# MEASURAND SET must be backed. The R 144 interface is component-scoped
|
|
133
|
+
# (indication_<component> per the measurand_components vocabulary):
|
|
134
|
+
# this product measures CO + NOx, so indication_no and indication_no2
|
|
135
|
+
# are outside its scope — governed by the Recommendation, not served
|
|
136
|
+
# here, never a gap (the projection gate's scope filter).
|
|
137
|
+
process oiml-r144#/twin/interface {
|
|
138
|
+
name "alias: the R 144 governed twin interface — the projection itself"
|
|
139
|
+
process oiml-r144#/twin/interface/endpoint/gas_analytical_api {
|
|
140
|
+
name "alias: the governed endpoint gas_analytical_api (rest_json: per-component indication queries, watch_op_state subscribe, the calibration/self-check invokes)"
|
|
141
|
+
}
|
|
142
|
+
process oiml-r144#/twin/interface/serve/indication_co {
|
|
143
|
+
name "alias: governed register sample.indication_co (via get_indication_co, fresh_within 5s)"
|
|
144
|
+
}
|
|
145
|
+
process oiml-r144#/twin/interface/serve/indication_no {
|
|
146
|
+
name "alias: governed register sample.indication_no (via get_indication_no, fresh_within 5s) — outside this product's measurand set"
|
|
147
|
+
}
|
|
148
|
+
process oiml-r144#/twin/interface/serve/indication_no2 {
|
|
149
|
+
name "alias: governed register sample.indication_no2 (via get_indication_no2, fresh_within 5s) — outside this product's measurand set"
|
|
150
|
+
}
|
|
151
|
+
process oiml-r144#/twin/interface/serve/indication_nox {
|
|
152
|
+
name "alias: governed register sample.indication_nox (via get_indication_nox, fresh_within 5s)"
|
|
153
|
+
}
|
|
154
|
+
process oiml-r144#/twin/interface/serve/state {
|
|
155
|
+
name "alias: governed register sample.state (via watch_op_state, fresh_within 1s)"
|
|
156
|
+
}
|
|
157
|
+
process oiml-r144#/twin/interface/serve/environmental_context {
|
|
158
|
+
name "alias: governed register sample.environmental_context (via watch_op_state, fresh_within 1s)"
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
map_profile oiml-r144 {
|
|
163
|
+
description "CGM-200 → R 144: the manufacturer's conformance claim, made computable — every conformance-relevant aspect and promise mapped to the Recommendation (doctrine ch. 15 §15.2). The metrological core plus the twin-touched technical requirements; the examination-side technical requirements are the Recommendation's own inspection program (the header's honest boundary)."
|
|
164
|
+
mapping {
|
|
165
|
+
mpe_within_co -> oiml-r144#/req/metrological/mpe-intrinsic {
|
|
166
|
+
description "The CO channel's error promise answers the intrinsic-MPE requirement."
|
|
167
|
+
justification "Same quantity, same clause definition — our error_hold_co characteristic is the quantity the error-of-indication test computes on the CO channel (R 144-2, 1.2; §15.2)."
|
|
168
|
+
}
|
|
169
|
+
mpe_within_nox -> oiml-r144#/req/metrological/mpe-intrinsic {
|
|
170
|
+
description "The NOx channel's error promise answers the intrinsic-MPE requirement."
|
|
171
|
+
justification "Same quantity on the NOx sum channel — NOx = NO + NO2 (R 144-1, 1.1/2.4 NOTE), the range and MPE inherit from the component channels."
|
|
172
|
+
}
|
|
173
|
+
repeatability_co -> oiml-r144#/req/metrological/repeatability {
|
|
174
|
+
description "The CO repeatability promise answers the repeatability requirement."
|
|
175
|
+
justification "Same characteristic — the estimated standard deviation of the 20-run series (R 144-2, 1.4), bounded by one third of the intrinsic MPE."
|
|
176
|
+
}
|
|
177
|
+
repeatability_nox -> oiml-r144#/req/metrological/repeatability {
|
|
178
|
+
description "The NOx repeatability promise answers the repeatability requirement."
|
|
179
|
+
justification "Same characteristic on the NOx channel, computed by the same test series."
|
|
180
|
+
}
|
|
181
|
+
response_time_within -> oiml-r144#/req/metrological/response-time {
|
|
182
|
+
description "The step-response promise answers the response-time requirement."
|
|
183
|
+
justification "Our step_response behavior is the behavior the standard's response-time test exercises (R 144-2, 1.20) — declared t_90 = 180 s against the 240 s limit."
|
|
184
|
+
}
|
|
185
|
+
warm_up_declared -> oiml-r144#/req/metrological/warm-up-time {
|
|
186
|
+
description "The warm-up promise answers the warm-up-time requirement."
|
|
187
|
+
justification "The manufacturer-specified 30 min warm-up is the period the requirement conditions on; the post-warm-up indications hold the verification MPE (R 144-2, 1.19)."
|
|
188
|
+
}
|
|
189
|
+
drift_within -> oiml-r144#/req/metrological/drift {
|
|
190
|
+
description "The drift promise answers the seven-day drift requirement."
|
|
191
|
+
justification "Our drift behavior is the behavior the standard's drift test exercises (R 144-2, 1.3), at the same adjustment-means applicability (semi-automatic)."
|
|
192
|
+
}
|
|
193
|
+
cross_sensitivity_within -> oiml-r144#/req/metrological/cross-sensitivity {
|
|
194
|
+
description "The cross-sensitivity promise answers the cross-sensitivity requirement."
|
|
195
|
+
justification "Our cross_sensitivity behavior is the behavior the standard's cross-sensitivity test exercises (R 144-2, 1.10), bounded by half the intrinsic MPE."
|
|
196
|
+
}
|
|
197
|
+
rated_envelope -> oiml-r144#/req/metrological/rated-conditions {
|
|
198
|
+
description "The rated-envelope promise answers the rated-operating-conditions requirement."
|
|
199
|
+
justification "The declared envelope (5…40 °C, ≤ 90 %RH, 86–106 kPa, 230 V −15 %/+10 %, 50 Hz ±2 %) is the requirement's condition tier, held at the 4.3.2 verification MPE — the requirement's own limit."
|
|
200
|
+
}
|
|
201
|
+
fault_annunciation -> oiml-r144#/req/metrological/disturbances {
|
|
202
|
+
description "The self-check promise answers the disturbances requirement."
|
|
203
|
+
justification "The checking facilities detect a significant fault and the state machine annunciates it — the detection half of the requirement's within-limits-or-detected disjunction."
|
|
204
|
+
}
|
|
205
|
+
flow_supervision -> oiml-r144#/req/technical/gas-flow-monitoring {
|
|
206
|
+
description "The flow-supervision promise answers the gas-flow-monitoring requirement."
|
|
207
|
+
justification "The self-check's flow supervision signals flow unavailable or outside the declared 0.5–3.0 L/min window — the behaviour the requirement demands."
|
|
208
|
+
}
|
|
209
|
+
adjustment_access -> oiml-r144#/req/technical/adjustment-security {
|
|
210
|
+
description "The adjustment-access promise answers the adjustment access-control requirement."
|
|
211
|
+
justification "Zero/span adjustment is code-protected on the instrument and authority-scoped on the twin endpoint — the same protection, declared in both media."
|
|
212
|
+
}
|
|
213
|
+
ppm_presentation -> oiml-r144#/req/metrological/measurement-units {
|
|
214
|
+
description "The presentation promise answers the measurement-units requirement."
|
|
215
|
+
justification "Our reference_reduction behavior is the reduction the requirement demands; the twin serves ppm at reference conditions only."
|
|
216
|
+
}
|
|
217
|
+
co_range_min -> oiml-r144#/req/metrological/measuring-range {
|
|
218
|
+
description "Our CO range lower limit is R 144's CO envelope lower bound."
|
|
219
|
+
justification "Same quantity, same clause definition (R 144-1, 4.2) — 10 ppm against the 10 ppm envelope bound."
|
|
220
|
+
}
|
|
221
|
+
co_range_max -> oiml-r144#/req/metrological/measuring-range {
|
|
222
|
+
description "Our CO range upper limit lies within R 144's CO envelope."
|
|
223
|
+
justification "Same quantity (R 144-1, 4.2) — 5000 ppm against the 20000 ppm envelope bound; a sub-range, admitted by the clause."
|
|
224
|
+
}
|
|
225
|
+
no_range_min -> oiml-r144#/req/metrological/measuring-range {
|
|
226
|
+
description "Our NO range lower limit is R 144's NO envelope lower bound."
|
|
227
|
+
justification "Same quantity (R 144-1, 4.2) — 10 ppm against the 10 ppm envelope bound."
|
|
228
|
+
}
|
|
229
|
+
no_range_max -> oiml-r144#/req/metrological/measuring-range {
|
|
230
|
+
description "Our NO range upper limit lies within R 144's NO envelope."
|
|
231
|
+
justification "Same quantity (R 144-1, 4.2) — 2000 ppm against the 5000 ppm envelope bound."
|
|
232
|
+
}
|
|
233
|
+
no2_range_min -> oiml-r144#/req/metrological/measuring-range {
|
|
234
|
+
description "Our NO2 range lower limit is R 144's NO2 envelope lower bound."
|
|
235
|
+
justification "Same quantity (R 144-1, 4.2) — 10 ppm against the 10 ppm envelope bound."
|
|
236
|
+
}
|
|
237
|
+
no2_range_max -> oiml-r144#/req/metrological/measuring-range {
|
|
238
|
+
description "Our NO2 range upper limit lies within R 144's NO2 envelope."
|
|
239
|
+
justification "Same quantity (R 144-1, 4.2) — 400 ppm against the 500 ppm envelope bound."
|
|
240
|
+
}
|
|
241
|
+
response_time -> oiml-r144#/req/metrological/response-time {
|
|
242
|
+
description "Our declared t_90 is the quantity the response-time requirement limits."
|
|
243
|
+
justification "Same quantity (R 144-1, 4.6) — the declared 180 s design value against the 240 s limit, exercised per channel by the promise above."
|
|
244
|
+
}
|
|
245
|
+
warm_up_time -> oiml-r144#/req/metrological/warm-up-time {
|
|
246
|
+
description "Our declared warm-up time is the period the warm-up requirement conditions on."
|
|
247
|
+
justification "Same quantity (R 144-1, 4.7) — the manufacturer-specified 30 min, declared in the operating manual (R 144-1, 6.2 item 4)."
|
|
248
|
+
}
|
|
249
|
+
gas_flow_rate_nominal -> oiml-r144#/req/technical/gas-flow-meter {
|
|
250
|
+
description "Our nominal flow rate is the manufacturer-specified measuring mode the user checks at the flow meter."
|
|
251
|
+
justification "Same quantity (R 144-1, 5.1.6) — 1.5 L/min, checkable by the user via the gas flow meter."
|
|
252
|
+
}
|
|
253
|
+
gas_flow_rate_min -> oiml-r144#/req/technical/gas-flow-monitoring {
|
|
254
|
+
description "Our flow window lower limit is the limit the monitoring device signals below."
|
|
255
|
+
justification "Same quantity (R 144-1, 5.5.2) — 0.5 L/min, the manufacturer-specified lower limit."
|
|
256
|
+
}
|
|
257
|
+
gas_flow_rate_max -> oiml-r144#/req/technical/gas-flow-monitoring {
|
|
258
|
+
description "Our flow window upper limit is the limit the monitoring device signals above."
|
|
259
|
+
justification "Same quantity (R 144-1, 5.5.2) — 3.0 L/min, the manufacturer-specified upper limit."
|
|
260
|
+
}
|
|
261
|
+
t_min -> oiml-r144#/req/metrological/rated-conditions {
|
|
262
|
+
description "Our rated minimum temperature is the requirement's temperature tier lower bound."
|
|
263
|
+
justification "Same quantity (R 144-1, 4.5.1) — 5 °C, the default rated range lower limit."
|
|
264
|
+
}
|
|
265
|
+
t_max -> oiml-r144#/req/metrological/rated-conditions {
|
|
266
|
+
description "Our rated maximum temperature is the requirement's temperature tier upper bound."
|
|
267
|
+
justification "Same quantity (R 144-1, 4.5.1) — 40 °C, the default rated range upper limit."
|
|
268
|
+
}
|
|
269
|
+
rh_max -> oiml-r144#/req/metrological/rated-conditions {
|
|
270
|
+
description "Our rated maximum humidity is the requirement's humidity tier."
|
|
271
|
+
justification "Same quantity (R 144-1, 4.5.1) — 90 %RH at 25 °C, the default rated condition."
|
|
272
|
+
}
|
|
273
|
+
p_atm_min -> oiml-r144#/req/metrological/rated-conditions {
|
|
274
|
+
description "Our rated minimum atmospheric pressure is the requirement's pressure tier lower bound."
|
|
275
|
+
justification "Same quantity (R 144-1, 4.5.1) — 86 kPa, the default rated range lower limit."
|
|
276
|
+
}
|
|
277
|
+
p_atm_max -> oiml-r144#/req/metrological/rated-conditions {
|
|
278
|
+
description "Our rated maximum atmospheric pressure is the requirement's pressure tier upper bound."
|
|
279
|
+
justification "Same quantity (R 144-1, 4.5.1) — 106 kPa, the default rated range upper limit."
|
|
280
|
+
}
|
|
281
|
+
supply_voltage -> oiml-r144#/req/metrological/rated-conditions {
|
|
282
|
+
description "Our nominal supply voltage is the requirement's supply tier (deviation −15 %/+10 %)."
|
|
283
|
+
justification "Same quantity (R 144-1, 4.5.1) — 230 V nominal, marked on the instrument (R 144-1, 5.8)."
|
|
284
|
+
}
|
|
285
|
+
supply_frequency -> oiml-r144#/req/metrological/rated-conditions {
|
|
286
|
+
description "Our nominal supply frequency is the requirement's frequency tier (±2 %)."
|
|
287
|
+
justification "Same quantity (R 144-1, 4.5.1) — 50 Hz nominal, marked on the instrument (R 144-1, 5.8)."
|
|
288
|
+
}
|
|
289
|
+
# The twin projection pairs (TODO.v2/16): the BACKING components —
|
|
290
|
+
# the endpoint and the per-register backing attributes — never the
|
|
291
|
+
# serve bindings (derived from the Recommendation's twin.prl). Scope:
|
|
292
|
+
# this product's measurand set is {co, nox}; the Recommendation's
|
|
293
|
+
# indication_no / indication_no2 registers are outside it (the scope
|
|
294
|
+
# filter's convention) and are deliberately unpaired.
|
|
295
|
+
cgm_api -> oiml-r144#/twin/interface/endpoint/gas_analytical_api {
|
|
296
|
+
description "The CGM-200's twin endpoint IS the R 144 projection surface for this measurand set: the per-component indication queries (CO, NOx), the op-state watch, and the calibration/self-check invokes — the same access scopes, the same rest_json profile — derived from the Recommendation's twin.prl, never hand-mirrored."
|
|
297
|
+
justification "The endpoint is part of the type definition (doctrine ch. 14 §14.3): the product serves exactly what the Recommendation governs for the components it measures; the full twin's richer anatomy is filtered out above this surface."
|
|
298
|
+
coverage full
|
|
299
|
+
}
|
|
300
|
+
indication_co -> oiml-r144#/twin/interface/serve/indication_co {
|
|
301
|
+
description "The exhibited CO indication attribute backs the governed register sample.indication_co, served via get_indication_co with the Recommendation's 5 s freshness."
|
|
302
|
+
justification "Same quantity, same sample scope (R 144-1, 2.4/4.1): the product's CO indication, reduced to reference conditions, is the value the projection reads."
|
|
303
|
+
coverage full
|
|
304
|
+
}
|
|
305
|
+
indication_nox -> oiml-r144#/twin/interface/serve/indication_nox {
|
|
306
|
+
description "The exhibited NOx indication attribute backs the governed register sample.indication_nox, served via get_indication_nox with the Recommendation's 5 s freshness."
|
|
307
|
+
justification "Same quantity on the NOx sum channel (R 144-1, 1.1/2.4 NOTE), reduced to reference conditions — the value the projection reads."
|
|
308
|
+
coverage full
|
|
309
|
+
}
|
|
310
|
+
cgm_api -> oiml-r144#/twin/interface/serve/state {
|
|
311
|
+
description "The endpoint's watch_op_state subscribe operation serves the governed register sample.state — the subject's has.state cgm_operational machine — with the Recommendation's 1 s freshness."
|
|
312
|
+
justification "The operational state machine is the served aspect; at component granularity the endpoint is the serving surface (the serve binding itself is derived from the Recommendation's twin.prl — the mapping names its backing component)."
|
|
313
|
+
coverage full
|
|
314
|
+
}
|
|
315
|
+
cgm_api -> oiml-r144#/twin/interface/serve/environmental_context {
|
|
316
|
+
description "The endpoint's watch_op_state subscribe operation serves the governed register sample.environmental_context — the D 11 conditions the measurement is taken under — with the Recommendation's 1 s freshness."
|
|
317
|
+
justification "The environmental context rides the same watch as the operational state (the contract's watch_op_state serves both); at component granularity the endpoint is the serving surface."
|
|
318
|
+
coverage full
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
coverage {
|
|
322
|
+
# C23 tripwires over the alias forest: the projection is computed
|
|
323
|
+
# full FOR THIS PRODUCT'S MEASURAND SET — every governed register in
|
|
324
|
+
# scope backed (the endpoint + the four serves carry their own full
|
|
325
|
+
# lines). The roll-up alias carries NO line: the calculus computes
|
|
326
|
+
# partial over the whole governed interface because indication_no /
|
|
327
|
+
# indication_no2 are unpaired — they are outside this product's
|
|
328
|
+
# declared measurand set {co, nox} (the scope convention — the
|
|
329
|
+
# twin-projection gate's, not the kernel calculus's), so `full` on
|
|
330
|
+
# the roll-up would be authored coverage, not computed.
|
|
331
|
+
oiml-r144#/twin/interface/endpoint/gas_analytical_api full
|
|
332
|
+
oiml-r144#/twin/interface/serve/indication_co full
|
|
333
|
+
oiml-r144#/twin/interface/serve/indication_nox full
|
|
334
|
+
oiml-r144#/twin/interface/serve/state full
|
|
335
|
+
oiml-r144#/twin/interface/serve/environmental_context full
|
|
336
|
+
}
|
|
337
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# ─────────────────────────────────────────────────────────────────────
|
|
2
|
+
# ACME CGM-200 — the product reference package for R 144 territory
|
|
3
|
+
# (TODO.v2/08's R 144 phase; TODO.roadmap/36; doctrine ch. 15, the model
|
|
4
|
+
# supply chain). The SECOND product reference package, after acme-lc500.
|
|
5
|
+
#
|
|
6
|
+
# The manufacturer side of the supply chain: ACME Analytics' CGM-200
|
|
7
|
+
# continuous gas monitor as a SUBJECT model (the oiml-rec methodology
|
|
8
|
+
# applied by the manufacturer — full IS/HAS/DOES anatomy), with every
|
|
9
|
+
# conformance-relevant aspect and promise mapped aspect-by-aspect to
|
|
10
|
+
# R 144 (model/r144-map.prl). The mapping is the manufacturer's
|
|
11
|
+
# conformance claim made computable: "our CO range is your 4.2 envelope;
|
|
12
|
+
# our drift characteristic answers your 4.8 requirement" (§15.2).
|
|
13
|
+
#
|
|
14
|
+
# The package is a REFERENCE model — it states what the product is and
|
|
15
|
+
# claims; it is not derived from the Recommendation and composes nothing
|
|
16
|
+
# from it (no uses edge): the two are related by mapping only.
|
|
17
|
+
#
|
|
18
|
+
# FICTIONAL DEMONSTRATION PRODUCT. ACME Analytics GmbH is a fictional
|
|
19
|
+
# demo manufacturer (the acme-lc500 demo spirit; the qms-ref/isms-ref
|
|
20
|
+
# fictional doctrine): no real company, no real certificate, no real
|
|
21
|
+
# type evaluation — a teaching product for the simulated-twin and
|
|
22
|
+
# twin-certification work. The twin-cert program's R 144 expansion
|
|
23
|
+
# (oiml-twin-cert maps_to oiml-r144, pinning this package) is a FUTURE
|
|
24
|
+
# leg — deliberately not done here.
|
|
25
|
+
# ─────────────────────────────────────────────────────────────────────
|
|
26
|
+
package {
|
|
27
|
+
id acme-cgm-200
|
|
28
|
+
kind product_reference
|
|
29
|
+
manufacturer "ACME Analytics GmbH (fictional demonstration manufacturer)"
|
|
30
|
+
product "CGM-200"
|
|
31
|
+
title "ACME CGM-200 continuous gas monitor — product reference model (FICTIONAL demo product)"
|
|
32
|
+
version "2026"
|
|
33
|
+
editions { 2026 }
|
|
34
|
+
status current
|
|
35
|
+
validity { from 2026-03-01 }
|
|
36
|
+
maps_to { oiml-r144 }
|
|
37
|
+
default_spelling eng-Latn
|
|
38
|
+
description "ACME Analytics' CGM-200 continuous gas monitor (CO + NOx; NDIR for CO, chemiluminescence for NOx; extractive sampling, semi-automatic adjustment) as a product reference model: the full subject anatomy, the cgm_api twin endpoint with per-component indication serves, and the aspect-by-aspect mapping to OIML R 144 — the manufacturer's conformance claim made computable (TODO.v2/08; TODO.roadmap/36, doctrine ch. 15). FICTIONAL demonstration product: ACME Analytics GmbH is a demo manufacturer; every certificate and report identifier is a demo value."
|
|
39
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
# The composite subject (TODO.v3/03): the CGM-200 SYSTEM's own twin
|
|
2
|
+
# interface. The served registers mirror the R 144 governed projection
|
|
3
|
+
# verbatim (the rec governs at every level of the graph); the sampling
|
|
4
|
+
# line's flow rides as composite richness (beyond the governed set — the
|
|
5
|
+
# projection is the minimum, never the ceiling). The DECOMPOSITION of
|
|
6
|
+
# every register to its component is the NORMATIVE composed_of
|
|
7
|
+
# construct below (TODO.integration/14 — the payload/composition.yaml
|
|
8
|
+
# sidecar is generated from it, never hand-edited).
|
|
9
|
+
|
|
10
|
+
attribute_definition indication_co {
|
|
11
|
+
symbol "x_CO"
|
|
12
|
+
name "CO indication (composite)"
|
|
13
|
+
definition "The served live CO volume-fraction reading of the CGM-200 system — supplied by the analyzer component's projection (the decomposition), reduced to the reference conditions (273.15 K, 101.325 kPa) — R 144-1, 4.1."
|
|
14
|
+
quantity_kind volume-fraction
|
|
15
|
+
unit "ppm"
|
|
16
|
+
value_type QuantityValue
|
|
17
|
+
origin measured
|
|
18
|
+
scope sample
|
|
19
|
+
category metrological
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
attribute_definition indication_nox {
|
|
23
|
+
symbol "x_NOx"
|
|
24
|
+
name "NOx indication (composite)"
|
|
25
|
+
definition "The served live NOx volume-fraction reading of the CGM-200 system (the sum channel, NO + NO2) — supplied by the analyzer component's projection, reduced to the reference conditions (273.15 K, 101.325 kPa) — R 144-1, 4.1 with the 1.1/2.4 NOTE."
|
|
26
|
+
quantity_kind volume-fraction
|
|
27
|
+
unit "ppm"
|
|
28
|
+
value_type QuantityValue
|
|
29
|
+
origin measured
|
|
30
|
+
scope sample
|
|
31
|
+
category metrological
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
state_machine cgm_system_operational {
|
|
35
|
+
kind operational
|
|
36
|
+
initial off
|
|
37
|
+
states { off warming_up ready measuring calibrating fault }
|
|
38
|
+
transition off -> warming_up action power_on
|
|
39
|
+
transition warming_up -> ready action warmed
|
|
40
|
+
transition ready -> measuring action start_measurement
|
|
41
|
+
transition measuring -> ready action stop_measurement
|
|
42
|
+
transition ready -> calibrating action start_adjustment
|
|
43
|
+
transition calibrating -> ready action adjustment_done
|
|
44
|
+
transition [off, warming_up, ready, measuring, calibrating] -> fault action fault_detected {
|
|
45
|
+
guard "a component serves fault — the composite's own state rule computes it (any_fault_else_analyzer, the decomposition) — R 144-1, 4.5.4 — declarative; not evaluated on fire"
|
|
46
|
+
}
|
|
47
|
+
transition fault -> off action power_off
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
behavior zero_adjustment {
|
|
51
|
+
kind procedural
|
|
52
|
+
stimulus invoke
|
|
53
|
+
response "Zero-setting against zero gas through the SYSTEM's checking facilities — the reading is brought to zero without affecting the span (R 144-1, 5.6.1 zero-setting adjustment facility); access-protected (R 144-1, 5.7.1)."
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
behavior span_adjustment {
|
|
57
|
+
kind procedural
|
|
58
|
+
stimulus invoke
|
|
59
|
+
response "Span adjustment against a certified calibration gas mixture (CGM) through the SYSTEM's checking facilities — the readings are brought into conformity with the certified volume fraction of the component (R 144-1, 5.6.1/5.6.2); access-protected (R 144-1, 5.7.1)."
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
behavior self_check {
|
|
63
|
+
kind procedural
|
|
64
|
+
stimulus invoke
|
|
65
|
+
response "The SYSTEM's checking facilities run: gas-flow supervision against the declared flow window (R 144-1, 5.5.2 — supplied by the sampling-line component), readiness and fault detection (R 144-1, 4.5.4) — a detected significant fault is annunciated: the composite state drives to fault and measurement is refused."
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
subject CGMSystem {
|
|
69
|
+
is {
|
|
70
|
+
metadata {
|
|
71
|
+
name "CGM-200 gas analytical system (composite twin)"
|
|
72
|
+
designation "CGM-200 extractive CO + NOx continuous gas monitor as a hierarchical twin — analyzer + sampling line components"
|
|
73
|
+
}
|
|
74
|
+
provenance {
|
|
75
|
+
manufacturer "ACME Analytics GmbH (fictional demonstration manufacturer)"
|
|
76
|
+
certificate "COMPOSITE — the twin certificate derives from the components' certified fidelities (the composition calculus; a declared partial state while any component is uncertified)"
|
|
77
|
+
}
|
|
78
|
+
endpoint cgm_system_api {
|
|
79
|
+
operation get_indication_co { kind query serves { indication_co } payload { quantity_kind volume-fraction unit ppm timestamp true } }
|
|
80
|
+
operation get_indication_nox { kind query serves { indication_nox } payload { quantity_kind volume-fraction unit ppm timestamp true } }
|
|
81
|
+
operation watch_op_state { kind subscribe serves { state environmental_context } payload { quantity_kind state unit dimensionless timestamp true } }
|
|
82
|
+
operation zero_calibration { kind invoke does { zero_adjustment } payload { quantity_kind adjustment_report unit dimensionless timestamp true } }
|
|
83
|
+
operation span_calibration { kind invoke does { span_adjustment } payload { quantity_kind adjustment_report unit dimensionless timestamp true } }
|
|
84
|
+
operation run_self_check { kind invoke does { self_check } payload { quantity_kind diagnostic_report unit dimensionless timestamp true } }
|
|
85
|
+
access { public { get_indication_co get_indication_nox } registered { watch_op_state } authority { zero_calibration span_calibration run_self_check } }
|
|
86
|
+
profile rest_json
|
|
87
|
+
}
|
|
88
|
+
composed_of {
|
|
89
|
+
component analyzer {
|
|
90
|
+
product acme-cgm-200@2026
|
|
91
|
+
endpoint cgm_api
|
|
92
|
+
serial "CGM200-DEMO-0001"
|
|
93
|
+
certificate null
|
|
94
|
+
}
|
|
95
|
+
component sample_line {
|
|
96
|
+
product acme-cgm-system/sample-line@2026
|
|
97
|
+
endpoint sample_line_api
|
|
98
|
+
serial "CGM200-SL-0001"
|
|
99
|
+
certificate null
|
|
100
|
+
}
|
|
101
|
+
decomposition {
|
|
102
|
+
sample.indication_co -> analyzer.indication_co
|
|
103
|
+
sample.indication_nox -> analyzer.indication_nox
|
|
104
|
+
sample.environmental_context -> analyzer.environmental_context
|
|
105
|
+
sample.test_context.flow -> sample_line.flow
|
|
106
|
+
sample.state -> rule any_fault_else_analyzer
|
|
107
|
+
}
|
|
108
|
+
revision 1
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
has {
|
|
112
|
+
attributes {}
|
|
113
|
+
dimensions { measurand_components in {co,nox} measuring_principle in {ir,chemiluminescence} sampling_approach in {extractive} }
|
|
114
|
+
state cgm_system_operational
|
|
115
|
+
serve sample.indication_co via get_indication_co { fresh_within 5s }
|
|
116
|
+
serve sample.indication_nox via get_indication_nox { fresh_within 5s }
|
|
117
|
+
serve sample.state via watch_op_state { fresh_within 1s }
|
|
118
|
+
serve sample.environmental_context via watch_op_state { fresh_within 1s }
|
|
119
|
+
}
|
|
120
|
+
does {
|
|
121
|
+
behavior zero_adjustment
|
|
122
|
+
behavior span_adjustment
|
|
123
|
+
behavior self_check
|
|
124
|
+
}
|
|
125
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# ─────────────────────────────────────────────────────────────────────
|
|
2
|
+
# ACME CGM-200 SYSTEM → OIML R 144 — the composite's twin projection
|
|
3
|
+
# pairs (TODO.v3/03 + TODO.v2/16): the composite's endpoint backs the R 144
|
|
4
|
+
# governed twin interface FOR ITS MEASURAND SET {co, nox} (the scope
|
|
5
|
+
# convention); the register decompositions (which component supplies each
|
|
6
|
+
# register) live in payload/composition.yaml — the mapping names the
|
|
7
|
+
# BACKING surfaces only.
|
|
8
|
+
# ─────────────────────────────────────────────────────────────────────
|
|
9
|
+
|
|
10
|
+
process oiml-r144#/twin/interface {
|
|
11
|
+
name "alias: the R 144 governed twin interface — the composite's projection itself"
|
|
12
|
+
process oiml-r144#/twin/interface/endpoint/gas_analytical_api {
|
|
13
|
+
name "alias: the governed endpoint gas_analytical_api"
|
|
14
|
+
}
|
|
15
|
+
process oiml-r144#/twin/interface/serve/indication_co {
|
|
16
|
+
name "alias: governed register sample.indication_co (via get_indication_co, fresh_within 5s)"
|
|
17
|
+
}
|
|
18
|
+
process oiml-r144#/twin/interface/serve/indication_no {
|
|
19
|
+
name "alias: governed register sample.indication_no — outside the composite's measurand set"
|
|
20
|
+
}
|
|
21
|
+
process oiml-r144#/twin/interface/serve/indication_no2 {
|
|
22
|
+
name "alias: governed register sample.indication_no2 — outside the composite's measurand set"
|
|
23
|
+
}
|
|
24
|
+
process oiml-r144#/twin/interface/serve/indication_nox {
|
|
25
|
+
name "alias: governed register sample.indication_nox (via get_indication_nox, fresh_within 5s)"
|
|
26
|
+
}
|
|
27
|
+
process oiml-r144#/twin/interface/serve/state {
|
|
28
|
+
name "alias: governed register sample.state (via watch_op_state, fresh_within 1s)"
|
|
29
|
+
}
|
|
30
|
+
process oiml-r144#/twin/interface/serve/environmental_context {
|
|
31
|
+
name "alias: governed register sample.environmental_context (via watch_op_state, fresh_within 1s)"
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
map_profile oiml-r144 {
|
|
36
|
+
description "CGM-200 SYSTEM → R 144: the composite's twin projection — the cgm_system_api endpoint serves exactly the R 144 governed interface for the composite's measurand set {co, nox} (the analyzer component's projection underneath, per payload/composition.yaml); the calibration/self-check invokes are authority-scoped as the Recommendation demands."
|
|
37
|
+
mapping {
|
|
38
|
+
cgm_system_api -> oiml-r144#/twin/interface/endpoint/gas_analytical_api {
|
|
39
|
+
description "The composite's twin endpoint IS the R 144 projection surface for this measurand set: the per-component indication queries (CO, NOx), the op-state watch, and the calibration/self-check invokes — derived from the Recommendation's twin.prl, never hand-mirrored."
|
|
40
|
+
justification "The composite serves exactly what the Recommendation governs for the components it measures; the analyzer component's projection (the acme-cgm-200 twin) supplies the registers underneath (the decomposition declaration)."
|
|
41
|
+
coverage full
|
|
42
|
+
}
|
|
43
|
+
cgm_system_api -> oiml-r144#/twin/interface/serve/indication_co {
|
|
44
|
+
description "The composite's CO indication register backs the governed register sample.indication_co (supplied by the analyzer component's projection, payload/composition.yaml), served via get_indication_co with the Recommendation's 5 s freshness."
|
|
45
|
+
justification "Same quantity (R 144-1, 2.4/4.1), reduced to reference conditions — the value the projection reads."
|
|
46
|
+
coverage full
|
|
47
|
+
}
|
|
48
|
+
cgm_system_api -> oiml-r144#/twin/interface/serve/indication_nox {
|
|
49
|
+
description "The composite's NOx indication register backs the governed register sample.indication_nox (the analyzer's sum channel), served via get_indication_nox with the Recommendation's 5 s freshness."
|
|
50
|
+
justification "Same quantity (R 144-1, 1.1/2.4 NOTE), reduced to reference conditions."
|
|
51
|
+
coverage full
|
|
52
|
+
}
|
|
53
|
+
cgm_system_api -> oiml-r144#/twin/interface/serve/state {
|
|
54
|
+
description "The composite's operational state backs the governed register sample.state — composite-own, derived by the declared rule (fault when ANY component serves fault; otherwise the analyzer's operational state), served via watch_op_state with the Recommendation's 1 s freshness."
|
|
55
|
+
justification "The composition's state rule is declared in payload/composition.yaml; at component granularity the composite endpoint is the serving surface."
|
|
56
|
+
coverage full
|
|
57
|
+
}
|
|
58
|
+
cgm_system_api -> oiml-r144#/twin/interface/serve/environmental_context {
|
|
59
|
+
description "The composite's environmental context backs the governed register sample.environmental_context (the analyzer's D 11 conditions), served via watch_op_state with the Recommendation's 1 s freshness."
|
|
60
|
+
justification "The conditions the measurement is taken under, supplied by the analyzer's projection."
|
|
61
|
+
coverage full
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
coverage {
|
|
65
|
+
# C23 tripwires — full FOR THE COMPOSITE'S MEASURAND SET {co, nox};
|
|
66
|
+
# indication_no / indication_no2 carry no lines (outside the set —
|
|
67
|
+
# the scope convention), and the roll-up is honestly unasserted (the
|
|
68
|
+
# kernel calculus computes partial over the unpaired children).
|
|
69
|
+
oiml-r144#/twin/interface/endpoint/gas_analytical_api full
|
|
70
|
+
oiml-r144#/twin/interface/serve/indication_co full
|
|
71
|
+
oiml-r144#/twin/interface/serve/indication_nox full
|
|
72
|
+
oiml-r144#/twin/interface/serve/state full
|
|
73
|
+
oiml-r144#/twin/interface/serve/environmental_context full
|
|
74
|
+
}
|
|
75
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# The sampling-line component (TODO.v3/03): the extractive sampling
|
|
2
|
+
# subsystem as its own (small) twin — the flow register it supplies to
|
|
3
|
+
# the composite, per the R 144 model's sampling attributes
|
|
4
|
+
# (gas_flow_rate_* with the declared window the self-check supervises,
|
|
5
|
+
# R 144-1, 5.5.2).
|
|
6
|
+
|
|
7
|
+
attribute_definition flow {
|
|
8
|
+
name "Sample-line gas flow rate"
|
|
9
|
+
definition "Gas flow rate through the sampling line in the measuring mode specified by the manufacturer (R 144-1, 5.1.6), checkable by the user via the gas flow meter; supervised against the declared window (R 144-1, 5.5.2) by the analyzer's checking facilities."
|
|
10
|
+
source { doc "urn:oiml:pub:r:144-1:2013" clause "5.1.6" }
|
|
11
|
+
quantity_kind volume-flow-rate
|
|
12
|
+
unit "L/min"
|
|
13
|
+
value_type QuantityValue
|
|
14
|
+
origin measured
|
|
15
|
+
scope sample
|
|
16
|
+
category metrological
|
|
17
|
+
is_dimension false
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
subject SampleLine {
|
|
21
|
+
is {
|
|
22
|
+
metadata {
|
|
23
|
+
name "CGM-200 sampling line (component twin)"
|
|
24
|
+
designation "Extractive sampling probe + gas handling line of the CGM-200 system (R 144-1, 2.1)"
|
|
25
|
+
}
|
|
26
|
+
provenance {
|
|
27
|
+
manufacturer "ACME Analytics GmbH (fictional demonstration manufacturer)"
|
|
28
|
+
certificate "COMPONENT — certified through the composite's basis (its own certificate reference when the program covers sampling components)"
|
|
29
|
+
}
|
|
30
|
+
endpoint sample_line_api {
|
|
31
|
+
operation get_sample_flow { kind query serves { flow } payload { quantity_kind volume-flow-rate unit "L/min" timestamp true } }
|
|
32
|
+
access { public { get_sample_flow } }
|
|
33
|
+
profile rest_json
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
has {
|
|
37
|
+
attributes {
|
|
38
|
+
flow : volume-flow-rate test_dependent
|
|
39
|
+
}
|
|
40
|
+
serve sample.test_context.flow via get_sample_flow { fresh_within 5s }
|
|
41
|
+
}
|
|
42
|
+
}
|