@oimlsmart/primmel-packages 0.8.0 → 0.10.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.
@@ -21,3 +21,9 @@ condition_set multi-dimensional-instrument-rated-conditions {
21
21
  ref derives-from "urn:oiml:pub:r:129-1:2020#clause-4.2.1"
22
22
  }
23
23
 
24
+ common_test_condition dimensional-performance-tests {
25
+ title "Performance test conditions"
26
+ reference "urn:oiml:pub:r:129-2:2020#clause-A"
27
+ description "Test objects of known dimensions covering the measuring range; the zero or ready condition set before each measurement series; reference conditions 20 °C ± 5 °C and (50 ± 15) % RH unless the procedure states otherwise."
28
+ }
29
+
@@ -22,6 +22,13 @@ calculation lookupMPE {
22
22
  }
23
23
  output : number { unit "cm" name "mpe" description "Maximum permissible error" }
24
24
  expression "ocl{1.0 * d}"
25
+ variant engine {
26
+ type expression
27
+ label "Maximum Permissible Error"
28
+ description "MPE = ±1.0 d per R 129-1, 4.1.2"
29
+ params { d }
30
+ expression "1.0 * p.d"
31
+ }
25
32
  ref derives-from "urn:oiml:pub:r:129-1:2020#clause-4.1.2"
26
33
  }
27
34
 
@@ -35,6 +42,13 @@ calculation lookupMinDimension {
35
42
  }
36
43
  output : number { unit "cm" name "min_dimension" description "Minimum dimension lower limit" }
37
44
  expression "ocl{if d <= 2 then 10 * d else (if d <= 10 then 20 * d else 50 * d endif) endif}"
45
+ variant engine {
46
+ type expression
47
+ label "Minimum Dimension"
48
+ description "Min dimension lower limit per R 129-1, Table 2"
49
+ params { d }
50
+ expression "p.d <= 0.02 ? 10 * p.d : (p.d <= 0.1 ? 20 * p.d : 50 * p.d)"
51
+ }
38
52
  ref derives-from "urn:oiml:pub:r:129-1:2020#clause-4.1.1"
39
53
  }
40
54
 
@@ -50,6 +64,13 @@ calculation dimensionalVolume {
50
64
  }
51
65
  output : number { unit "cm3" name "dimensional_volume" description "Dimensional volume" }
52
66
  expression "ocl{indication_l * indication_w * indication_h}"
67
+ variant engine {
68
+ type expression
69
+ label "Dimensional Volume"
70
+ description "DV = L × W × H"
71
+ params { L W H }
72
+ expression "p.L * p.W * p.H"
73
+ }
53
74
  ref derives-from "urn:oiml:pub:r:129-1:2020#clause-2.2.4"
54
75
  }
55
76
 
@@ -78,6 +99,13 @@ calculation determinePassFail {
78
99
  }
79
100
  output : boolean { unit "1" name "pass" description "True when the absolute error does not exceed the MPE" }
80
101
  expression "ocl{abs(error) <= abs(mpe)}"
102
+ variant engine {
103
+ type pass_fail
104
+ label "Pass/Fail Determination"
105
+ description "|error| <= |mpe| -> pass, else fail"
106
+ params { error mpe }
107
+ expression "Math.abs(p.error) <= Math.abs(p.mpe)"
108
+ }
81
109
  ref derives-from "urn:oiml:pub:r:129-1:2020#clause-4.1.2"
82
110
  }
83
111
 
@@ -44,3 +44,57 @@ condition_set gas-analytical-system-limiting-conditions {
44
44
  ref derives-from "urn:oiml:pub:r:144-1:2013#clause-8.8"
45
45
  }
46
46
 
47
+ common_test_condition calibration-before-tests {
48
+ title "Calibration before type evaluation tests"
49
+ reference "urn:oiml:pub:r:144-1:2013#clause-8"
50
+ description "Prior to the type evaluation tests, or when specified by the manufacturer, the gas analytical system shall be calibrated against the calibration gas mixture (CGM) according to the operating manual procedures and under reference conditions (if not specified otherwise)."
51
+ }
52
+
53
+ common_test_condition cgm-composition {
54
+ title "CGM composition and certification"
55
+ reference "urn:oiml:pub:r:144-1:2013#clause-A"
56
+ description "CGMs shall be supplied from a gas cylinder under pressure or a gas mixture generator (ISO 6142, ISO 6143, ISO 6145-1), certified with composition uncertainty of 2 % or less of the certified value for the components to be determined (3 % for other components), blend tolerance not exceeding 10 %, traceable to (inter)national gaseous measurement standards (R 144-1, Annex A.1, A.2)."
57
+ }
58
+
59
+ common_test_condition cgm-test-points {
60
+ title "CGM test points for error determination"
61
+ reference "urn:oiml:pub:r:144-1:2013#clause-A.1.4"
62
+ description "For error determination, three binary gas mixtures at (5 + 5) %, (50 + 5) % and (95 - 5) % of the measuring range are used (R 144-1, A.1.4); R 144-2, 1.2 recommends minimum +10 %, average ±10 %, maximum -10 % for linear calibration characteristics (at least five uniformly distributed points for nonlinear). Three-component mixtures CO + NO + N2 and CO + NO2 + N2 are permitted (A.1.4 NOTE)."
63
+ }
64
+
65
+ common_test_condition cgm-uncertainty-ratio {
66
+ title "CGM uncertainty ratio"
67
+ reference "urn:oiml:pub:r:144-1:2013#clause-7.2.2.2"
68
+ description "The ratio between the absolute value of the uncertainty of the CGM and the maximum permissible error of the gas analytical system at the given point of the measurement range shall be not more than 1:3 (the responsible legal authority may allow 1:2)."
69
+ }
70
+
71
+ common_test_condition zero-gas {
72
+ title "Zero gas"
73
+ reference "urn:oiml:pub:r:144-1:2013#clause-A.3"
74
+ description "Ambient air drawn through a charcoal filter or equivalent system, or high pure nitrogen directly, is used to set zero (R 144-1, A.3; 5.1.4)."
75
+ }
76
+
77
+ common_test_condition cgm-supply-pressure {
78
+ title "CGM supply pressure"
79
+ reference "urn:oiml:pub:r:144-2:2013#clause-1.5.2"
80
+ description "The calibration gas mixture shall be supplied to the sampling probe at ambient pressure with a deviation of ±0.8 kPa (±750 Pa for the response time test, R 144-2, 1.20.1)."
81
+ }
82
+
83
+ common_test_condition single-influence-quantity {
84
+ title "One influence quantity at a time"
85
+ reference "urn:oiml:pub:r:144-1:2013#clause-8.4"
86
+ description "Only one influence quantity shall be varied during a test, while all others are maintained at their reference values."
87
+ }
88
+
89
+ common_test_condition separate-units-testing {
90
+ title "Testing of separate units"
91
+ reference "urn:oiml:pub:r:144-1:2013#clause-7.1.3.1"
92
+ description "Tests should be carried out with a completely mounted gas analytical system; tests on separate units or devices are permitted when testing the system as a whole is impossible due to size or configuration, provided the operating conditions for that unit can be simulated. Separate components shall not be dismantled for testing."
93
+ }
94
+
95
+ common_test_condition leak-check-before-measurement {
96
+ title "Leak check before measurement"
97
+ reference "urn:oiml:pub:r:144-2:2013#clause-B.3"
98
+ description "A leak check of the gas handling system shall be performed at least once a day and after each disassembly; any leakage shall be repaired and a successful leak check performed before measurement (R 144-2, Annex B.3, B.4)."
99
+ }
100
+
@@ -9,6 +9,13 @@ calculation measurementError {
9
9
  }
10
10
  output : number { unit "ppm" quantity_kind volume-fraction name "e_x" description "Error of the gas analytical system" }
11
11
  expression "ocl{x_ind - x_ref}"
12
+ variant engine {
13
+ type expression
14
+ label "Measurement Error E"
15
+ description "E = x_ind − x_ref"
16
+ params { x_ind x_ref }
17
+ expression "p.x_ind - p.x_ref"
18
+ }
12
19
  ref derives-from "urn:oiml:pub:r:144-1:2013#clause-2.13"
13
20
  }
14
21
 
@@ -36,6 +43,13 @@ calculation mpeIntrinsic {
36
43
  }
37
44
  output : number { unit "ppm" quantity_kind volume-fraction name "mpe" description "Maximum permissible intrinsic error at this point" range { min 0 } }
38
45
  expression "ocl{max(2, 0.05 * abs(measured_value))}"
46
+ variant engine {
47
+ type expression
48
+ label "Maximum Permissible Intrinsic Error"
49
+ description "MPE = max(2 ppm, 5 % of measured value) per R 144-1, 4.3.1"
50
+ params { measured_value }
51
+ expression "Math.max(2, 0.05 * Math.abs(p.measured_value))"
52
+ }
39
53
  ref derives-from "urn:oiml:pub:r:144-1:2013#clause-4.3.1"
40
54
  }
41
55
 
@@ -49,6 +63,13 @@ calculation mpeVerification {
49
63
  }
50
64
  output : number { unit "ppm" quantity_kind volume-fraction name "mpe_v" description "Maximum permissible error under rated operating conditions at this point" range { min 0 } }
51
65
  expression "ocl{max(5, 0.10 * abs(measured_value))}"
66
+ variant engine {
67
+ type expression
68
+ label "MPE on Verification (rated operating conditions)"
69
+ description "MPE = max(5 ppm, 10 % of measured value) per R 144-1, 4.3.2"
70
+ params { measured_value }
71
+ expression "Math.max(5, 0.10 * Math.abs(p.measured_value))"
72
+ }
52
73
  ref derives-from "urn:oiml:pub:r:144-1:2013#clause-4.3.2"
53
74
  }
54
75
 
@@ -103,6 +124,13 @@ calculation driftChange {
103
124
  }
104
125
  output : number { unit "ppm" quantity_kind volume-fraction name "drift_x" description "Change in indication over the stated period" }
105
126
  expression "ocl{indication_at_time - initial_indication}"
127
+ variant engine {
128
+ type expression
129
+ label "Drift Change"
130
+ description "Change in indication over the stated drift period"
131
+ params { indication_at_time initial_indication }
132
+ expression "p.indication_at_time - p.initial_indication"
133
+ }
106
134
  ref derives-from "urn:oiml:pub:r:144-1:2013#clause-2.23"
107
135
  }
108
136
 
@@ -48,3 +48,111 @@ condition_set load-cell-limiting-conditions {
48
48
  ref derives-from "urn:oiml:pub:r:60-1:2021#clause-3.5.16"
49
49
  }
50
50
 
51
+ common_test_condition test-equipment {
52
+ title "Test equipment"
53
+ reference "urn:oiml:pub:r:60-2:2021#clause-2.7.2"
54
+ description "Test equipment used for the tests shall be calibrated and traceable to national or international standards. The equipment shall have adequate precision for the measurements to be performed."
55
+ }
56
+
57
+ common_test_condition environmental-conditions {
58
+ title "Environmental conditions"
59
+ reference "urn:oiml:pub:r:60-2:2021#clause-2.7.3.1"
60
+ description "The test shall be conducted under stable ambient conditions as specified in R 60-2 §2.6.1."
61
+ }
62
+
63
+ common_test_condition acceleration-of-gravity {
64
+ title "Acceleration of gravity"
65
+ reference "urn:oiml:pub:r:60-2:2021#clause-2.7.3.2"
66
+ description "The value of the acceleration of gravity used in the calculation of the force applied shall be the local value or the value declared for the testing laboratory."
67
+ }
68
+
69
+ common_test_condition loading-conditions {
70
+ title "Loading conditions"
71
+ reference "urn:oiml:pub:r:60-2:2021#clause-2.7.3.3"
72
+ description "Loads shall be applied axially and without shock. The points of force application shall be defined for each load direction (compression, tension, beam)."
73
+ }
74
+
75
+ common_test_condition measuring-range-limits {
76
+ title "Measuring range limits"
77
+ reference "urn:oiml:pub:r:60-2:2021#clause-2.7.3.4"
78
+ description "Tests shall be conducted within the measuring range defined by D_min and D_max of the load cell under test."
79
+ }
80
+
81
+ common_test_condition reference-standards {
82
+ title "Reference standards"
83
+ reference "urn:oiml:pub:r:60-2:2021#clause-2.7.3.5"
84
+ description "Reference standards of mass (or force) used for calibration shall have an uncertainty appropriate to the measurements."
85
+ }
86
+
87
+ common_test_condition stabilisation-period {
88
+ title "Stabilisation period"
89
+ reference "urn:oiml:pub:r:60-2:2021#clause-2.7.3.6"
90
+ description "A stabilisation period shall be allowed after changing temperature or load before recording indications."
91
+ }
92
+
93
+ common_test_condition temperature-conditions {
94
+ title "Temperature conditions"
95
+ reference "urn:oiml:pub:r:60-2:2021#clause-2.7.3.7"
96
+ description "Tests shall be conducted at the temperatures specified in R 60-2 §2.10 (typically 20°C reference plus T_high and T_low). Temperature is considered stable when the difference between extreme temperatures noted during the test does not exceed one fifth of the temperature range of the load cell under test, without being greater than 2 °C (R 60-2, 2.7.3.1)."
97
+ }
98
+
99
+ common_test_condition barometric-pressure-effects {
100
+ title "Barometric pressure effects"
101
+ reference "urn:oiml:pub:r:60-2:2021#clause-2.7.3.8"
102
+ description "Atmospheric pressure changes shall be recorded during the test for correction of barometric-pressure-sensitive readings."
103
+ }
104
+
105
+ common_test_condition humidity-effects-condition {
106
+ title "Humidity effects"
107
+ reference "urn:oiml:pub:r:60-2:2021#clause-2.7.3.9"
108
+ description "Humidity shall be controlled per the test specification (typically 50% RH for non-humidity tests, cyclic or steady-state for humidity tests)."
109
+ }
110
+
111
+ common_test_condition indicating-instrument-checking {
112
+ title "Indicating instrument checking"
113
+ reference "urn:oiml:pub:r:60-2:2021#clause-2.7.3.10"
114
+ description "The indicating instrument used to read the load cell output shall be checked for accuracy before each test series."
115
+ }
116
+
117
+ common_test_condition other-conditions {
118
+ title "Other conditions"
119
+ reference "urn:oiml:pub:r:60-2:2021#clause-2.7.3.11"
120
+ description "Any other conditions specified by the manufacturer or by the testing laboratory's procedures."
121
+ }
122
+
123
+ common_test_condition time-date-format {
124
+ title "Time and date format"
125
+ reference "urn:oiml:pub:r:60-2:2021#clause-2.7.3.12"
126
+ description "All time and date recordings shall use ISO 8601 format."
127
+ }
128
+
129
+ common_test_condition errors-conditions {
130
+ title "Conditions for error determination"
131
+ reference "urn:oiml:pub:r:60-2:2021#clause-2.8.1"
132
+ description "Conditions for the determination of measurement errors shall be as specified in R 60-2 §2.7."
133
+ }
134
+
135
+ common_test_condition errors-limits {
136
+ title "Limits of error"
137
+ reference "urn:oiml:pub:r:60-2:2021#clause-2.8.2"
138
+ description "The MPE values per R 60-1 §5.3 shall be used as the limits of error during type evaluation."
139
+ }
140
+
141
+ common_test_condition initial-readings {
142
+ title "Initial readings"
143
+ reference "urn:oiml:pub:r:60-2:2021#clause-2.8.3"
144
+ description "Initial minimum test load indications shall be recorded before each test series."
145
+ }
146
+
147
+ common_test_condition loading-unloading-times {
148
+ title "Loading/unloading times"
149
+ reference "urn:oiml:pub:r:60-2:2021#clause-2.8.3.1"
150
+ description "Loading and unloading shall be performed smoothly without shock. Times for loading and unloading shall be recorded."
151
+ }
152
+
153
+ common_test_condition loading-times-adherence {
154
+ title "Adherence to loading/unloading times"
155
+ reference "urn:oiml:pub:r:60-2:2021#clause-2.8.3.2"
156
+ description "Loading/unloading times per R 60-2, Table 1. When the specified times cannot be achieved the applicant shall be consulted; for the minimum dead load output return test the time may be increased from 100 % to a limit of 150 % of the specified time, provided the permissible variation of the result is proportionally reduced from 100 % to 50 % (C_DR <= 0.5(1-(x-1)) v, R 60-3, 2.1.5.6)."
157
+ }
158
+
@@ -57,6 +57,13 @@ calculation loadCellError {
57
57
  }
58
58
  output : number { unit "v" name "e_l" description "Load cell error in verification units" }
59
59
  expression "ocl{(avgIndication - referenceIndication) / conversion_factor_f}"
60
+ variant engine {
61
+ type expression
62
+ label "Load Cell Error E_L"
63
+ description "E_L = (I - I_ref) / f"
64
+ params { avgIndication referenceIndication conversion_factor_f }
65
+ expression "(p.avgIndication - p.referenceIndication) / p.conversion_factor_f"
66
+ }
60
67
  ref derives-from "urn:oiml:pub:r:60-3:2021#clause-2.1.2"
61
68
  ref derives-from "urn:oiml:pub:r:60-3:2021#clause-2.1.2"
62
69
  ref derives-from "urn:oiml:pub:r:60-3:2021#clause-2.1.2.1"
@@ -80,6 +87,13 @@ calculation repeatabilityError {
80
87
  }
81
88
  output : number { unit "v" name "e_r" description "Repeatability error in verification units" }
82
89
  expression "ocl{(indications->max() - indications->min()) / conversion_factor_f}"
90
+ variant engine {
91
+ type expression
92
+ label "Repeatability Error E_R"
93
+ description "E_R = (max - min) / f across runs"
94
+ params { indications conversion_factor_f }
95
+ expression "(Math.max(...Object.values(p.indications)) - Math.min(...Object.values(p.indications))) / p.conversion_factor_f"
96
+ }
83
97
  ref derives-from "urn:oiml:pub:r:60-3:2021#clause-2.1.3"
84
98
  ref derives-from "urn:oiml:pub:r:60-3:2021#clause-2.1.3"
85
99
  ref derives-from "urn:oiml:pub:r:60-3:2021#clause-2.1.3.1"
@@ -99,6 +113,13 @@ calculation creep {
99
113
  }
100
114
  output : number { unit "v" name "c_c" description "Creep change in verification units" }
101
115
  expression "ocl{(indicationAtTime - initialIndication) / conversion_factor_f}"
116
+ variant engine {
117
+ type expression
118
+ label "Creep C_C"
119
+ description "C_C = (I_t - I_0) / f"
120
+ params { indicationAtTime initialIndication conversion_factor_f }
121
+ expression "(p.indicationAtTime - p.initialIndication) / p.conversion_factor_f"
122
+ }
102
123
  ref derives-from "urn:oiml:pub:r:60-3:2021#clause-2.1.5"
103
124
  ref derives-from "urn:oiml:pub:r:60-3:2021#clause-2.1.5"
104
125
  ref derives-from "urn:oiml:pub:r:60-3:2021#clause-2.1.5.1"
@@ -124,6 +145,13 @@ calculation deadLoadOutputReturn {
124
145
  }
125
146
  output : number { unit "v" name "c_dr" description "Dead load output return in verification units" }
126
147
  expression "ocl{(minLoadIndication2 - minLoadIndication1) / conversion_factor_f}"
148
+ variant engine {
149
+ type expression
150
+ label "Dead Load Output Return DR"
151
+ description "DR = (I_min2 - I_min1) / f"
152
+ params { minLoadIndication2 minLoadIndication1 conversion_factor_f }
153
+ expression "(p.minLoadIndication2 - p.minLoadIndication1) / p.conversion_factor_f"
154
+ }
127
155
  ref derives-from "urn:oiml:pub:r:60-3:2021#clause-2.1.5.4"
128
156
  ref derives-from "urn:oiml:pub:r:60-3:2021#clause-2.1.5.4"
129
157
  }
@@ -140,6 +168,13 @@ calculation barometricPressureEffect {
140
168
  }
141
169
  output : number { unit "v" name "change_v" description "Pressure-induced change in verification units" }
142
170
  expression "ocl{(indication2 - indication1) / conversion_factor_f}"
171
+ variant engine {
172
+ type expression
173
+ label "Barometric Pressure Effect C_P"
174
+ description "C_P = |I_2 - I_1| / f"
175
+ params { indication1 indication2 conversion_factor_f }
176
+ expression "Math.abs(p.indication2 - p.indication1) / p.conversion_factor_f"
177
+ }
143
178
  ref derives-from "urn:oiml:pub:r:60-3:2021#clause-2.1.6"
144
179
  ref derives-from "urn:oiml:pub:r:60-3:2021#clause-2.1.6"
145
180
  ref derives-from "urn:oiml:pub:r:60-3:2021#clause-2.1.6.1"
@@ -235,6 +270,13 @@ calculation maxAllowableSpanVariation {
235
270
  }
236
271
  output : number { unit "v" name "maxVariation" description "Maximum allowable variation" }
237
272
  expression "ocl{max(0.5, 0.5 * abs(lookupMPE(d_max, accuracy_class, 1.0)))}"
273
+ variant engine {
274
+ type expression
275
+ label "Max Allowable Span Variation"
276
+ description "max(0.5, 0.5*|MPE|)"
277
+ params { d_max accuracy_class p_lc }
278
+ expression "Math.max(0.5, 0.5 * Math.abs(compute('lookupMPE', [p.d_max, p.accuracy_class, p.p_lc])))"
279
+ }
238
280
  ref derives-from "urn:oiml:pub:r:60-1:2021#clause-5.7.2.6"
239
281
  }
240
282
 
@@ -1,3 +1,11 @@
1
+ # OIML R 91 — common_test_conditions register note (the YAML twin's
2
+ # register-level `note`, metadata prose with no construct home):
3
+ # R 91-2 structures tests as: documentation/visual inspection;
4
+ # rated-condition and linearity tests at reference conditions;
5
+ # influence-factor tests per Table 1 points A-H; disturbance tests;
6
+ # category-specific tests incl. moving metrological FIELD tests with real
7
+ # traffic and dynamic performance tests via traffic simulation. Field tests
8
+ # require a reference speed meter or simulator (v_ref, unrounded).
1
9
  condition_set speed-meter-reference {
2
10
  role reference
3
11
  description "Reference conditions for linearity and type-evaluation measurements (R 91-2, 6.2; all influence quantities minimized). Temperature and humidity shall not vary by more than 5 °C and 30 % RH within the reference intervals during a test."
@@ -35,3 +43,19 @@ condition_set speed-meter-limiting {
35
43
  ref derives-from "urn:oiml:pub:r:91-1:2025#clause-6.16"
36
44
  }
37
45
 
46
+ common_test_condition measurement_counts {
47
+ description "Minimum valid measurements per test context (R 91-2, 4.4/5.3/7.7.1; see tables.yaml measurement_counts)."
48
+ source {
49
+ doc "urn:oiml:pub:r:91-3:2025"
50
+ clause "symbols"
51
+ }
52
+ }
53
+
54
+ common_test_condition reference_speed_meter {
55
+ description "Reference speed measurement by reference speed meter or simulator (R 91-3 symbols: v_ref), used unrounded with sufficient significant digits (R 91-1, 6.3 Note)."
56
+ source {
57
+ doc "urn:oiml:pub:r:91-1:2025"
58
+ clause "6.3"
59
+ }
60
+ }
61
+
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oimlsmart/primmel-packages",
3
- "version": "0.8.0",
3
+ "version": "0.10.0",
4
4
  "description": "The OIML SMART platform's authoritative model content: every Recommendation, the OIML-CS scheme, the CASCO foundations, the shared modules, and the product/program reference packages as Primmel (.prl) packages — the single source of truth the platform's data trees regenerate from. Consumed by the smart monorepo (oimlsmart/smart) at a pinned version (TODO.repos/02).",
5
5
  "type": "module",
6
6
  "repository": {
@@ -1,8 +0,0 @@
1
- # GENERATED package payload (task 31b) — content with no PRL construct; composed back by regenerate-data + build-primmel-cache. Do not edit by hand.
2
- common_test_conditions:
3
- - id: dimensional-performance-tests
4
- title: Performance test conditions
5
- reference: urn:oiml:pub:r:129-2:2020#clause-A
6
- description: >
7
- Test objects of known dimensions covering the measuring range; the zero or ready condition set before each
8
- measurement series; reference conditions 20 °C ± 5 °C and (50 ± 15) % RH unless the procedure states otherwise.
@@ -1,33 +0,0 @@
1
- # GENERATED package payload (task 31b) — content with no PRL construct; composed back by regenerate-data + build-primmel-cache. Do not edit by hand.
2
- formulas:
3
- - name: lookupMPE
4
- type: expression
5
- label: Maximum Permissible Error
6
- params:
7
- - d
8
- description: MPE = ±1.0 d per R 129-1, 4.1.2
9
- expression: 1.0 * p.d
10
- - name: lookupMinDimension
11
- type: expression
12
- label: Minimum Dimension
13
- params:
14
- - d
15
- description: Min dimension lower limit per R 129-1, Table 2
16
- expression: 'p.d <= 0.02 ? 10 * p.d : (p.d <= 0.1 ? 20 * p.d : 50 * p.d)'
17
- - name: dimensionalVolume
18
- type: expression
19
- label: Dimensional Volume
20
- params:
21
- - L
22
- - W
23
- - H
24
- description: DV = L × W × H
25
- expression: p.L * p.W * p.H
26
- - name: determinePassFail
27
- type: pass_fail
28
- label: Pass/Fail Determination
29
- params:
30
- - error
31
- - mpe
32
- description: '|error| <= |mpe| -> pass, else fail'
33
- expression: Math.abs(p.error) <= Math.abs(p.mpe)
@@ -1,74 +0,0 @@
1
- # GENERATED package payload (task 31b) — content with no PRL construct; composed back by regenerate-data + build-primmel-cache. Do not edit by hand.
2
- common_test_conditions:
3
- - id: calibration-before-tests
4
- title: Calibration before type evaluation tests
5
- reference: urn:oiml:pub:r:144-1:2013#clause-8
6
- description: |
7
- Prior to the type evaluation tests, or when specified by the manufacturer,
8
- the gas analytical system shall be calibrated against the calibration gas
9
- mixture (CGM) according to the operating manual procedures and under
10
- reference conditions (if not specified otherwise).
11
- - id: cgm-composition
12
- title: CGM composition and certification
13
- reference: urn:oiml:pub:r:144-1:2013#clause-A
14
- description: |
15
- CGMs shall be supplied from a gas cylinder under pressure or a gas
16
- mixture generator (ISO 6142, ISO 6143, ISO 6145-1), certified with
17
- composition uncertainty of 2 % or less of the certified value for the
18
- components to be determined (3 % for other components), blend tolerance
19
- not exceeding 10 %, traceable to (inter)national gaseous measurement
20
- standards (R 144-1, Annex A.1, A.2).
21
- - id: cgm-test-points
22
- title: CGM test points for error determination
23
- reference: urn:oiml:pub:r:144-1:2013#clause-A.1.4
24
- description: |
25
- For error determination, three binary gas mixtures at (5 + 5) %,
26
- (50 + 5) % and (95 - 5) % of the measuring range are used (R 144-1,
27
- A.1.4); R 144-2, 1.2 recommends minimum +10 %, average ±10 %, maximum
28
- -10 % for linear calibration characteristics (at least five uniformly
29
- distributed points for nonlinear). Three-component mixtures
30
- CO + NO + N2 and CO + NO2 + N2 are permitted (A.1.4 NOTE).
31
- - id: cgm-uncertainty-ratio
32
- title: CGM uncertainty ratio
33
- reference: urn:oiml:pub:r:144-1:2013#clause-7.2.2.2
34
- description: |
35
- The ratio between the absolute value of the uncertainty of the CGM and
36
- the maximum permissible error of the gas analytical system at the given
37
- point of the measurement range shall be not more than 1:3 (the
38
- responsible legal authority may allow 1:2).
39
- - id: zero-gas
40
- title: Zero gas
41
- reference: urn:oiml:pub:r:144-1:2013#clause-A.3
42
- description: |
43
- Ambient air drawn through a charcoal filter or equivalent system, or
44
- high pure nitrogen directly, is used to set zero (R 144-1, A.3; 5.1.4).
45
- - id: cgm-supply-pressure
46
- title: CGM supply pressure
47
- reference: urn:oiml:pub:r:144-2:2013#clause-1.5.2
48
- description: |
49
- The calibration gas mixture shall be supplied to the sampling probe at
50
- ambient pressure with a deviation of ±0.8 kPa (±750 Pa for the response
51
- time test, R 144-2, 1.20.1).
52
- - id: single-influence-quantity
53
- title: One influence quantity at a time
54
- reference: urn:oiml:pub:r:144-1:2013#clause-8.4
55
- description: |
56
- Only one influence quantity shall be varied during a test, while all
57
- others are maintained at their reference values.
58
- - id: separate-units-testing
59
- title: Testing of separate units
60
- reference: urn:oiml:pub:r:144-1:2013#clause-7.1.3.1
61
- description: |
62
- Tests should be carried out with a completely mounted gas analytical
63
- system; tests on separate units or devices are permitted when testing
64
- the system as a whole is impossible due to size or configuration,
65
- provided the operating conditions for that unit can be simulated.
66
- Separate components shall not be dismantled for testing.
67
- - id: leak-check-before-measurement
68
- title: Leak check before measurement
69
- reference: urn:oiml:pub:r:144-2:2013#clause-B.3
70
- description: |
71
- A leak check of the gas handling system shall be performed at least
72
- once a day and after each disassembly; any leakage shall be repaired
73
- and a successful leak check performed before measurement (R 144-2,
74
- Annex B.3, B.4).
@@ -1,32 +0,0 @@
1
- # GENERATED package payload (task 31b) — content with no PRL construct; composed back by regenerate-data + build-primmel-cache. Do not edit by hand.
2
- formulas:
3
- - name: mpeIntrinsic
4
- type: expression
5
- label: Maximum Permissible Intrinsic Error
6
- params:
7
- - measured_value
8
- description: MPE = max(2 ppm, 5 % of measured value) per R 144-1, 4.3.1
9
- expression: Math.max(2, 0.05 * Math.abs(p.measured_value))
10
- - name: mpeVerification
11
- type: expression
12
- label: MPE on Verification (rated operating conditions)
13
- params:
14
- - measured_value
15
- description: MPE = max(5 ppm, 10 % of measured value) per R 144-1, 4.3.2
16
- expression: Math.max(5, 0.10 * Math.abs(p.measured_value))
17
- - name: measurementError
18
- type: expression
19
- label: Measurement Error E
20
- params:
21
- - x_ind
22
- - x_ref
23
- description: E = x_ind − x_ref
24
- expression: p.x_ind - p.x_ref
25
- - name: driftChange
26
- type: expression
27
- label: Drift Change
28
- params:
29
- - indication_at_time
30
- - initial_indication
31
- description: Change in indication over the stated drift period
32
- expression: p.indication_at_time - p.initial_indication
@@ -1,121 +0,0 @@
1
- # GENERATED package payload (task 31b) — content with no PRL construct; composed back by regenerate-data + build-primmel-cache. Do not edit by hand.
2
- common_test_conditions:
3
- - id: test-equipment
4
- title: Test equipment
5
- reference: urn:oiml:pub:r:60-2:2021#clause-2.7.2
6
- description: |
7
- Test equipment used for the tests shall be calibrated and
8
- traceable to national or international standards. The equipment
9
- shall have adequate precision for the measurements to be performed.
10
- - id: environmental-conditions
11
- title: Environmental conditions
12
- reference: urn:oiml:pub:r:60-2:2021#clause-2.7.3.1
13
- description: |
14
- The test shall be conducted under stable ambient conditions as
15
- specified in R 60-2 §2.6.1.
16
- - id: acceleration-of-gravity
17
- title: Acceleration of gravity
18
- reference: urn:oiml:pub:r:60-2:2021#clause-2.7.3.2
19
- description: |
20
- The value of the acceleration of gravity used in the calculation
21
- of the force applied shall be the local value or the value
22
- declared for the testing laboratory.
23
- - id: loading-conditions
24
- title: Loading conditions
25
- reference: urn:oiml:pub:r:60-2:2021#clause-2.7.3.3
26
- description: |
27
- Loads shall be applied axially and without shock. The points of
28
- force application shall be defined for each load direction
29
- (compression, tension, beam).
30
- - id: measuring-range-limits
31
- title: Measuring range limits
32
- reference: urn:oiml:pub:r:60-2:2021#clause-2.7.3.4
33
- description: |
34
- Tests shall be conducted within the measuring range defined by
35
- D_min and D_max of the load cell under test.
36
- - id: reference-standards
37
- title: Reference standards
38
- reference: urn:oiml:pub:r:60-2:2021#clause-2.7.3.5
39
- description: |
40
- Reference standards of mass (or force) used for calibration
41
- shall have an uncertainty appropriate to the measurements.
42
- - id: stabilisation-period
43
- title: Stabilisation period
44
- reference: urn:oiml:pub:r:60-2:2021#clause-2.7.3.6
45
- description: |
46
- A stabilisation period shall be allowed after changing
47
- temperature or load before recording indications.
48
- - id: temperature-conditions
49
- title: Temperature conditions
50
- reference: urn:oiml:pub:r:60-2:2021#clause-2.7.3.7
51
- description: |
52
- Tests shall be conducted at the temperatures specified in
53
- R 60-2 §2.10 (typically 20°C reference plus T_high and T_low).
54
- Temperature is considered stable when the difference between
55
- extreme temperatures noted during the test does not exceed one
56
- fifth of the temperature range of the load cell under test,
57
- without being greater than 2 °C (R 60-2, 2.7.3.1).
58
- - id: barometric-pressure-effects
59
- title: Barometric pressure effects
60
- reference: urn:oiml:pub:r:60-2:2021#clause-2.7.3.8
61
- description: |
62
- Atmospheric pressure changes shall be recorded during the test
63
- for correction of barometric-pressure-sensitive readings.
64
- - id: humidity-effects-condition
65
- title: Humidity effects
66
- reference: urn:oiml:pub:r:60-2:2021#clause-2.7.3.9
67
- description: |
68
- Humidity shall be controlled per the test specification
69
- (typically 50% RH for non-humidity tests, cyclic or steady-state
70
- for humidity tests).
71
- - id: indicating-instrument-checking
72
- title: Indicating instrument checking
73
- reference: urn:oiml:pub:r:60-2:2021#clause-2.7.3.10
74
- description: |
75
- The indicating instrument used to read the load cell output
76
- shall be checked for accuracy before each test series.
77
- - id: other-conditions
78
- title: Other conditions
79
- reference: urn:oiml:pub:r:60-2:2021#clause-2.7.3.11
80
- description: |
81
- Any other conditions specified by the manufacturer or by the
82
- testing laboratory's procedures.
83
- - id: time-date-format
84
- title: Time and date format
85
- reference: urn:oiml:pub:r:60-2:2021#clause-2.7.3.12
86
- description: |
87
- All time and date recordings shall use ISO 8601 format.
88
- - id: errors-conditions
89
- title: Conditions for error determination
90
- reference: urn:oiml:pub:r:60-2:2021#clause-2.8.1
91
- description: |
92
- Conditions for the determination of measurement errors shall
93
- be as specified in R 60-2 §2.7.
94
- - id: errors-limits
95
- title: Limits of error
96
- reference: urn:oiml:pub:r:60-2:2021#clause-2.8.2
97
- description: |
98
- The MPE values per R 60-1 §5.3 shall be used as the limits
99
- of error during type evaluation.
100
- - id: initial-readings
101
- title: Initial readings
102
- reference: urn:oiml:pub:r:60-2:2021#clause-2.8.3
103
- description: |
104
- Initial minimum test load indications shall be recorded before
105
- each test series.
106
- - id: loading-unloading-times
107
- title: Loading/unloading times
108
- reference: urn:oiml:pub:r:60-2:2021#clause-2.8.3.1
109
- description: |
110
- Loading and unloading shall be performed smoothly without shock.
111
- Times for loading and unloading shall be recorded.
112
- - id: loading-times-adherence
113
- title: Adherence to loading/unloading times
114
- reference: urn:oiml:pub:r:60-2:2021#clause-2.8.3.2
115
- description: |
116
- Loading/unloading times per R 60-2, Table 1. When the specified
117
- times cannot be achieved the applicant shall be consulted; for the
118
- minimum dead load output return test the time may be increased from
119
- 100 % to a limit of 150 % of the specified time, provided the
120
- permissible variation of the result is proportionally reduced from
121
- 100 % to 50 % (C_DR <= 0.5(1-(x-1)) v, R 60-3, 2.1.5.6).
@@ -1,55 +0,0 @@
1
- # GENERATED package payload (task 31b) — content with no PRL construct; composed back by regenerate-data + build-primmel-cache. Do not edit by hand.
2
- formulas:
3
- - name: loadCellError
4
- type: expression
5
- label: Load Cell Error E_L
6
- params:
7
- - avgIndication
8
- - referenceIndication
9
- - conversion_factor_f
10
- description: E_L = (I - I_ref) / f
11
- expression: (p.avgIndication - p.referenceIndication) / p.conversion_factor_f
12
- - name: repeatabilityError
13
- type: expression
14
- label: Repeatability Error E_R
15
- params:
16
- - indications
17
- - conversion_factor_f
18
- description: E_R = (max - min) / f across runs
19
- expression: (Math.max(...Object.values(p.indications)) - Math.min(...Object.values(p.indications))) / p.conversion_factor_f
20
- - name: creep
21
- type: expression
22
- label: Creep C_C
23
- params:
24
- - indicationAtTime
25
- - initialIndication
26
- - conversion_factor_f
27
- description: C_C = (I_t - I_0) / f
28
- expression: (p.indicationAtTime - p.initialIndication) / p.conversion_factor_f
29
- - name: deadLoadOutputReturn
30
- type: expression
31
- label: Dead Load Output Return DR
32
- params:
33
- - minLoadIndication2
34
- - minLoadIndication1
35
- - conversion_factor_f
36
- description: DR = (I_min2 - I_min1) / f
37
- expression: (p.minLoadIndication2 - p.minLoadIndication1) / p.conversion_factor_f
38
- - name: barometricPressureEffect
39
- type: expression
40
- label: Barometric Pressure Effect C_P
41
- params:
42
- - indication1
43
- - indication2
44
- - conversion_factor_f
45
- description: C_P = |I_2 - I_1| / f
46
- expression: Math.abs(p.indication2 - p.indication1) / p.conversion_factor_f
47
- - name: maxAllowableSpanVariation
48
- type: expression
49
- label: Max Allowable Span Variation
50
- params:
51
- - d_max
52
- - accuracy_class
53
- - p_lc
54
- description: max(0.5, 0.5*|MPE|)
55
- expression: Math.max(0.5, 0.5 * Math.abs(compute('lookupMPE', [p.d_max, p.accuracy_class, p.p_lc])))
@@ -1,19 +0,0 @@
1
- # GENERATED package payload (task 31b) — content with no PRL construct; composed back by regenerate-data + build-primmel-cache. Do not edit by hand.
2
- common_test_conditions:
3
- measurement_counts:
4
- description: Minimum valid measurements per test context (R 91-2, 4.4/5.3/7.7.1; see tables.yaml measurement_counts).
5
- source:
6
- clause: symbols
7
- doc: urn:oiml:pub:r:91-3:2025
8
- note: >
9
- R 91-2 structures tests as: documentation/visual inspection; rated-condition and linearity tests at reference
10
- conditions; influence-factor tests per Table 1 points A-H; disturbance tests; category-specific tests incl. moving
11
- metrological FIELD tests with real traffic and dynamic performance tests via traffic simulation. Field tests require
12
- a reference speed meter or simulator (v_ref, unrounded).
13
- reference_speed_meter:
14
- description: >-
15
- Reference speed measurement by reference speed meter or simulator (R 91-3 symbols: v_ref), used unrounded with
16
- sufficient significant digits (R 91-1, 6.3 Note).
17
- source:
18
- clause: '6.3'
19
- doc: urn:oiml:pub:r:91-1:2025