@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.
Files changed (460) hide show
  1. package/AGENTS.md +60 -0
  2. package/LICENSE +21 -0
  3. package/README.md +68 -0
  4. package/acme-cgm-200/model/cgm200.prl +284 -0
  5. package/acme-cgm-200/model/r144-map.prl +337 -0
  6. package/acme-cgm-200/package.primmel +39 -0
  7. package/acme-cgm-system/model/cgm-system.prl +125 -0
  8. package/acme-cgm-system/model/r144-map.prl +75 -0
  9. package/acme-cgm-system/model/sample-line.prl +42 -0
  10. package/acme-cgm-system/package.primmel +23 -0
  11. package/acme-lc500/model/lc500.prl +218 -0
  12. package/acme-lc500/model/passport.prl +43 -0
  13. package/acme-lc500/model/r60-map.prl +161 -0
  14. package/acme-lc500/model/twin-cert-map.prl +114 -0
  15. package/acme-lc500/package.primmel +35 -0
  16. package/acme-md3xx/model/md350.prl +317 -0
  17. package/acme-md3xx/model/r129-map.prl +346 -0
  18. package/acme-md3xx/package.primmel +49 -0
  19. package/acme-rs180/model/r91-map.prl +234 -0
  20. package/acme-rs180/model/rs180.prl +236 -0
  21. package/acme-rs180/package.primmel +47 -0
  22. package/ims-demo/model/ims.prl +23 -0
  23. package/ims-demo/model/isms-map.prl +60 -0
  24. package/ims-demo/model/qms-map.prl +73 -0
  25. package/ims-demo/package.primmel +42 -0
  26. package/isms-ref/model/isms.prl +34 -0
  27. package/isms-ref/package.primmel +35 -0
  28. package/iso-iec-17000/package.primmel +8 -0
  29. package/iso-iec-17000/terminology.prl +268 -0
  30. package/iso-iec-17025/package.primmel +10 -0
  31. package/iso-iec-17025/specification/requirements/lab.prl +474 -0
  32. package/iso-iec-17025/terminology.prl +72 -0
  33. package/iso-iec-17065/package.primmel +10 -0
  34. package/iso-iec-17065/specification/requirements/body.prl +446 -0
  35. package/iso-iec-17065/terminology.prl +103 -0
  36. package/iso-iec-17067/package.primmel +10 -0
  37. package/iso-iec-17067/specification/requirements/scheme-content.prl +300 -0
  38. package/iso-iec-17067/terminology.prl +24 -0
  39. package/oiml-cs/package.primmel +10 -0
  40. package/oiml-cs/specification/discrepancies.prl +26 -0
  41. package/oiml-cs/specification/requirements/cs.prl +515 -0
  42. package/oiml-cs-dataspace/.primmel-allowlist.prl +25 -0
  43. package/oiml-cs-dataspace/package.primmel +9 -0
  44. package/oiml-cs-dataspace/specification/dataspace.prl +73 -0
  45. package/oiml-cs-dataspace/specification/policies.prl +68 -0
  46. package/oiml-integrated-ref/model/probe-pairing.prl +71 -0
  47. package/oiml-integrated-ref/package.primmel +10 -0
  48. package/oiml-r129/.primmel-allowlist.prl +2 -0
  49. package/oiml-r129/evaluation/processes.prl +152 -0
  50. package/oiml-r129/evaluation/workflow.prl +48 -0
  51. package/oiml-r129/execution/forms/admin/adjustments-modifications.prl +30 -0
  52. package/oiml-r129/execution/forms/admin/checklist.prl +70 -0
  53. package/oiml-r129/execution/forms/admin/configuration.prl +31 -0
  54. package/oiml-r129/execution/forms/admin/equipment-info.prl +27 -0
  55. package/oiml-r129/execution/forms/admin/general-info.prl +63 -0
  56. package/oiml-r129/execution/forms/admin/identification.prl +49 -0
  57. package/oiml-r129/execution/forms/admin/sample-selection.prl +30 -0
  58. package/oiml-r129/execution/forms/admin/summary-results.prl +50 -0
  59. package/oiml-r129/execution/forms/emc/bursts.prl +88 -0
  60. package/oiml-r129/execution/forms/emc/esd.prl +66 -0
  61. package/oiml-r129/execution/forms/emc/low-voltage-battery.prl +58 -0
  62. package/oiml-r129/execution/forms/emc/rf-immunity-conducted.prl +59 -0
  63. package/oiml-r129/execution/forms/emc/rf-immunity-radiated.prl +59 -0
  64. package/oiml-r129/execution/forms/emc/surge.prl +61 -0
  65. package/oiml-r129/execution/forms/emc/voltage-dips.prl +62 -0
  66. package/oiml-r129/execution/forms/emc/voltage-variation.prl +58 -0
  67. package/oiml-r129/execution/forms/env/damp-heat-cyclic.prl +43 -0
  68. package/oiml-r129/execution/forms/env/damp-heat-steady.prl +50 -0
  69. package/oiml-r129/execution/forms/env/static-temperatures.prl +61 -0
  70. package/oiml-r129/execution/forms/shared/headers.prl +86 -0
  71. package/oiml-r129/execution/forms/tests/acoustics.prl +44 -0
  72. package/oiml-r129/execution/forms/tests/ambient-light.prl +46 -0
  73. package/oiml-r129/execution/forms/tests/construction-examination.prl +46 -0
  74. package/oiml-r129/execution/forms/tests/examination-checklist.prl +51 -0
  75. package/oiml-r129/execution/forms/tests/object-shape.prl +43 -0
  76. package/oiml-r129/execution/forms/tests/orientation-position.prl +31 -0
  77. package/oiml-r129/execution/forms/tests/repeatability.prl +65 -0
  78. package/oiml-r129/execution/forms/tests/speed-movement.prl +59 -0
  79. package/oiml-r129/execution/forms/tests/surface-characteristics.prl +44 -0
  80. package/oiml-r129/execution/forms/tests/warm-up-time.prl +35 -0
  81. package/oiml-r129/execution/subforms/dimension-measurement.prl +93 -0
  82. package/oiml-r129/layers.prl +50 -0
  83. package/oiml-r129/model/attributes.prl +243 -0
  84. package/oiml-r129/model/behaviors.prl +79 -0
  85. package/oiml-r129/model/capabilities.prl +29 -0
  86. package/oiml-r129/model/characteristics.prl +8 -0
  87. package/oiml-r129/model/conditions.prl +23 -0
  88. package/oiml-r129/model/instrument.prl +67 -0
  89. package/oiml-r129/model/state.prl +22 -0
  90. package/oiml-r129/model/twin.prl +23 -0
  91. package/oiml-r129/package.primmel +15 -0
  92. package/oiml-r129/payload/application.yaml +40 -0
  93. package/oiml-r129/payload/conditions-common-test.yaml +8 -0
  94. package/oiml-r129/payload/formulas-variants.yaml +33 -0
  95. package/oiml-r129/payload/promises.yaml +102 -0
  96. package/oiml-r129/payload/sample-data.yaml +300 -0
  97. package/oiml-r129/references.prl +306 -0
  98. package/oiml-r129/sources-prd/coverage.json +59 -0
  99. package/oiml-r129/sources-prd/r129-1.sentences.json +4238 -0
  100. package/oiml-r129/sources-prd/r129-2.sentences.json +1139 -0
  101. package/oiml-r129/sources-prd/r129-3.sentences.json +3809 -0
  102. package/oiml-r129/sources-prd/r129-4.sentences.json +1227 -0
  103. package/oiml-r129/specification/calculations.prl +83 -0
  104. package/oiml-r129/specification/conformance/disturbance-tests.prl +212 -0
  105. package/oiml-r129/specification/conformance/effect-tests.prl +70 -0
  106. package/oiml-r129/specification/conformance/examinations.prl +83 -0
  107. package/oiml-r129/specification/conformance/metrological-tests.prl +178 -0
  108. package/oiml-r129/specification/formulas.prl +9 -0
  109. package/oiml-r129/specification/requirements/electronic.prl +46 -0
  110. package/oiml-r129/specification/requirements/metrological.prl +83 -0
  111. package/oiml-r129/specification/requirements/object-limitations.prl +99 -0
  112. package/oiml-r129/specification/requirements/software.prl +57 -0
  113. package/oiml-r129/specification/requirements/technical.prl +134 -0
  114. package/oiml-r129/specification/symbols.prl +187 -0
  115. package/oiml-r129/specification/tables.prl +74 -0
  116. package/oiml-r129/terminology.prl +415 -0
  117. package/oiml-r129/value-types.prl +40 -0
  118. package/oiml-r144/.primmel-allowlist.prl +2 -0
  119. package/oiml-r144/entities/instrument.prl +360 -0
  120. package/oiml-r144/entities/test-execution.prl +228 -0
  121. package/oiml-r144/entities/workflow.prl +2075 -0
  122. package/oiml-r144/evaluation/processes.prl +152 -0
  123. package/oiml-r144/evaluation/workflow.prl +48 -0
  124. package/oiml-r144/execution/forms/sec-3-report/03-01-laboratory-info.prl +19 -0
  125. package/oiml-r144/execution/forms/sec-3-report/03-02-test-location.prl +14 -0
  126. package/oiml-r144/execution/forms/sec-3-report/03-03-manufacturer-info.prl +18 -0
  127. package/oiml-r144/execution/forms/sec-3-report/03-04-applicant-info.prl +19 -0
  128. package/oiml-r144/execution/forms/sec-3-report/03-05-type-identification.prl +80 -0
  129. package/oiml-r144/execution/forms/sec-3-report/03-06-type-composition.prl +31 -0
  130. package/oiml-r144/execution/forms/sec-3-report/03-07-visual-examination.prl +46 -0
  131. package/oiml-r144/execution/forms/sec-3-report/03-08-test-conclusions.prl +46 -0
  132. package/oiml-r144/execution/forms/sec-3-report/03-09-general-conclusion.prl +19 -0
  133. package/oiml-r144/execution/forms/sec-3-report/03-10-responsible-persons.prl +27 -0
  134. package/oiml-r144/execution/forms/sec-tests/ambient-pressure-test.prl +59 -0
  135. package/oiml-r144/execution/forms/sec-tests/bursts-mains-test.prl +52 -0
  136. package/oiml-r144/execution/forms/sec-tests/bursts-signal-test.prl +55 -0
  137. package/oiml-r144/execution/forms/sec-tests/cold-test.prl +48 -0
  138. package/oiml-r144/execution/forms/sec-tests/cross-sensitivity-test.prl +92 -0
  139. package/oiml-r144/execution/forms/sec-tests/damp-heat-test.prl +50 -0
  140. package/oiml-r144/execution/forms/sec-tests/documentation-examination.prl +52 -0
  141. package/oiml-r144/execution/forms/sec-tests/drift-test.prl +83 -0
  142. package/oiml-r144/execution/forms/sec-tests/dry-heat-test.prl +53 -0
  143. package/oiml-r144/execution/forms/sec-tests/error-determination.prl +37 -0
  144. package/oiml-r144/execution/forms/sec-tests/esd-test.prl +53 -0
  145. package/oiml-r144/execution/forms/sec-tests/flow-spillover-test.prl +83 -0
  146. package/oiml-r144/execution/forms/sec-tests/leakproofness-test.prl +41 -0
  147. package/oiml-r144/execution/forms/sec-tests/low-battery-test.prl +48 -0
  148. package/oiml-r144/execution/forms/sec-tests/power-reduction-test.prl +49 -0
  149. package/oiml-r144/execution/forms/sec-tests/power-supply-test.prl +57 -0
  150. package/oiml-r144/execution/forms/sec-tests/repeatability-test.prl +60 -0
  151. package/oiml-r144/execution/forms/sec-tests/response-time-test.prl +43 -0
  152. package/oiml-r144/execution/forms/sec-tests/rf-emf-test.prl +47 -0
  153. package/oiml-r144/execution/forms/sec-tests/shock-test.prl +50 -0
  154. package/oiml-r144/execution/forms/sec-tests/surge-test.prl +52 -0
  155. package/oiml-r144/execution/forms/sec-tests/vibration-test.prl +58 -0
  156. package/oiml-r144/execution/forms/sec-tests/warm-up-time-test.prl +69 -0
  157. package/oiml-r144/execution/forms/shared/headers.prl +132 -0
  158. package/oiml-r144/execution/subforms/cgm-point.prl +99 -0
  159. package/oiml-r144/layers.prl +44 -0
  160. package/oiml-r144/model/attributes.prl +679 -0
  161. package/oiml-r144/model/behaviors.prl +117 -0
  162. package/oiml-r144/model/capabilities.prl +99 -0
  163. package/oiml-r144/model/characteristics.prl +27 -0
  164. package/oiml-r144/model/conditions.prl +46 -0
  165. package/oiml-r144/model/instrument.prl +85 -0
  166. package/oiml-r144/model/state.prl +18 -0
  167. package/oiml-r144/model/twin.prl +25 -0
  168. package/oiml-r144/package.primmel +15 -0
  169. package/oiml-r144/payload/application.yaml +80 -0
  170. package/oiml-r144/payload/attributes-pair-list.yaml +18 -0
  171. package/oiml-r144/payload/conditions-common-test.yaml +74 -0
  172. package/oiml-r144/payload/formulas-variants.yaml +32 -0
  173. package/oiml-r144/payload/promises.yaml +118 -0
  174. package/oiml-r144/payload/sample-data.yaml +643 -0
  175. package/oiml-r144/references.prl +594 -0
  176. package/oiml-r144/sources-prd/coverage.json +114 -0
  177. package/oiml-r144/sources-prd/r144-1.sentences.json +2797 -0
  178. package/oiml-r144/sources-prd/r144-2.sentences.json +1627 -0
  179. package/oiml-r144/sources-prd/r144-3.sentences.json +838 -0
  180. package/oiml-r144/specification/calculations.prl +123 -0
  181. package/oiml-r144/specification/conformance/examination.prl +87 -0
  182. package/oiml-r144/specification/conformance/performance-tests.prl +755 -0
  183. package/oiml-r144/specification/formulas.prl +37 -0
  184. package/oiml-r144/specification/reference-materials.prl +87 -0
  185. package/oiml-r144/specification/requirements/controls.prl +51 -0
  186. package/oiml-r144/specification/requirements/metrological.prl +299 -0
  187. package/oiml-r144/specification/requirements/report.prl +35 -0
  188. package/oiml-r144/specification/requirements/technical.prl +455 -0
  189. package/oiml-r144/specification/symbols.prl +357 -0
  190. package/oiml-r144/specification/tables.prl +95 -0
  191. package/oiml-r144/specification/test-point-sets.prl +15 -0
  192. package/oiml-r144/terminology.prl +308 -0
  193. package/oiml-r144/value-types.prl +49 -0
  194. package/oiml-r60/.primmel-allowlist.prl +2 -0
  195. package/oiml-r60/entities/workflow.prl +2079 -0
  196. package/oiml-r60/evaluation/processes.prl +152 -0
  197. package/oiml-r60/evaluation/workflow.prl +48 -0
  198. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-01-authority-info.prl +76 -0
  199. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-02-synopsis.prl +20 -0
  200. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-03-01-examinations.prl +27 -0
  201. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-03-02-a-performance-general.prl +81 -0
  202. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-03-02-b-performance-digital.prl +104 -0
  203. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-04-01-manufacturer.prl +21 -0
  204. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-04-02-applicant.prl +44 -0
  205. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-04-03-testing-laboratories.prl +69 -0
  206. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-05-load-cell-type-info.prl +83 -0
  207. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-06-accessories.prl +41 -0
  208. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-07-sample-selection.prl +71 -0
  209. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-01-general-info.prl +103 -0
  210. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-02-performance-info.prl +66 -0
  211. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-03-digital-info.prl +35 -0
  212. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-04-photographs.prl +12 -0
  213. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-05-documentation.prl +27 -0
  214. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-06-inscriptions.prl +126 -0
  215. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-07-model-range.prl +143 -0
  216. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-12-previous-tests.prl +26 -0
  217. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-01-force-generating-system.prl +89 -0
  218. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-02-weights.prl +61 -0
  219. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-03-temperature-chamber.prl +96 -0
  220. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-04-climate-chamber.prl +96 -0
  221. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-05-indicator.prl +92 -0
  222. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-06-terminal.prl +86 -0
  223. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-07-barometric-pressure-meter.prl +62 -0
  224. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-08-thermometer.prl +62 -0
  225. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-09-moisture-analyser.prl +62 -0
  226. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-10-additional-test-equipment.prl +69 -0
  227. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-11-remarks.prl +11 -0
  228. package/oiml-r60/execution/forms/sec-4-evaluation-report/test-usage-matrix.prl +85 -0
  229. package/oiml-r60/execution/forms/sec-5-examination/documentation-examination.prl +53 -0
  230. package/oiml-r60/execution/forms/sec-5-examination/marking-examination.prl +104 -0
  231. package/oiml-r60/execution/forms/sec-5-examination/software-examination.prl +86 -0
  232. package/oiml-r60/execution/forms/sec-5-examination/suitability-examination.prl +56 -0
  233. package/oiml-r60/execution/forms/sec-6-performance-tests/barometric-pressure.prl +176 -0
  234. package/oiml-r60/execution/forms/sec-6-performance-tests/bursts.prl +129 -0
  235. package/oiml-r60/execution/forms/sec-6-performance-tests/conducted-emc.prl +170 -0
  236. package/oiml-r60/execution/forms/sec-6-performance-tests/creep-dr.prl +327 -0
  237. package/oiml-r60/execution/forms/sec-6-performance-tests/emc-susceptibility.prl +115 -0
  238. package/oiml-r60/execution/forms/sec-6-performance-tests/esd.prl +224 -0
  239. package/oiml-r60/execution/forms/sec-6-performance-tests/humidity-ch.prl +300 -0
  240. package/oiml-r60/execution/forms/sec-6-performance-tests/humidity-sh.prl +235 -0
  241. package/oiml-r60/execution/forms/sec-6-performance-tests/initial-tests.prl +129 -0
  242. package/oiml-r60/execution/forms/sec-6-performance-tests/load-cell-errors.prl +280 -0
  243. package/oiml-r60/execution/forms/sec-6-performance-tests/load-test.prl +29 -0
  244. package/oiml-r60/execution/forms/sec-6-performance-tests/performance-test-summary.prl +82 -0
  245. package/oiml-r60/execution/forms/sec-6-performance-tests/power-voltage.prl +166 -0
  246. package/oiml-r60/execution/forms/sec-6-performance-tests/repeatability.prl +189 -0
  247. package/oiml-r60/execution/forms/sec-6-performance-tests/short-time-power.prl +98 -0
  248. package/oiml-r60/execution/forms/sec-6-performance-tests/span-stability.prl +242 -0
  249. package/oiml-r60/execution/forms/sec-6-performance-tests/surge.prl +142 -0
  250. package/oiml-r60/execution/forms/sec-6-performance-tests/temperature-mdlo.prl +180 -0
  251. package/oiml-r60/execution/forms/sec-6-performance-tests/warm-up-time.prl +207 -0
  252. package/oiml-r60/execution/forms/shared/headers.prl +255 -0
  253. package/oiml-r60/execution/subforms/load-test-row.prl +55 -0
  254. package/oiml-r60/execution/subforms/test-procedures.prl +33 -0
  255. package/oiml-r60/layers.prl +46 -0
  256. package/oiml-r60/model/attributes.prl +642 -0
  257. package/oiml-r60/model/behaviors.prl +165 -0
  258. package/oiml-r60/model/capabilities.prl +57 -0
  259. package/oiml-r60/model/characteristics.prl +27 -0
  260. package/oiml-r60/model/conditions.prl +50 -0
  261. package/oiml-r60/model/instrument.prl +96 -0
  262. package/oiml-r60/model/processes.prl +54 -0
  263. package/oiml-r60/model/state.prl +22 -0
  264. package/oiml-r60/model/twin.prl +16 -0
  265. package/oiml-r60/package.primmel +16 -0
  266. package/oiml-r60/payload/annexes-part4.yaml +122 -0
  267. package/oiml-r60/payload/application.yaml +83 -0
  268. package/oiml-r60/payload/conditions-common-test.yaml +121 -0
  269. package/oiml-r60/payload/formulas-variants.yaml +55 -0
  270. package/oiml-r60/payload/promises.yaml +224 -0
  271. package/oiml-r60/payload/sample-data.yaml +5025 -0
  272. package/oiml-r60/payload/symbols-formula-notes.yaml +21 -0
  273. package/oiml-r60/references.prl +549 -0
  274. package/oiml-r60/sources-prd/coverage.json +740 -0
  275. package/oiml-r60/sources-prd/r60-1.sentences.json +2173 -0
  276. package/oiml-r60/sources-prd/r60-2.sentences.json +2961 -0
  277. package/oiml-r60/sources-prd/r60-3.sentences.json +4212 -0
  278. package/oiml-r60/sources-prd/r60-a.sentences.json +3361 -0
  279. package/oiml-r60/specification/calculations.prl +318 -0
  280. package/oiml-r60/specification/conformance/class-specific.prl +1120 -0
  281. package/oiml-r60/specification/conformance/electronic.prl +483 -0
  282. package/oiml-r60/specification/conformance/examination.prl +183 -0
  283. package/oiml-r60/specification/conformance/metrological.prl +478 -0
  284. package/oiml-r60/specification/constraints.prl +58 -0
  285. package/oiml-r60/specification/formulas-used.prl +43 -0
  286. package/oiml-r60/specification/formulas.prl +20 -0
  287. package/oiml-r60/specification/requirements/class-specific.prl +655 -0
  288. package/oiml-r60/specification/requirements/classification.prl +114 -0
  289. package/oiml-r60/specification/requirements/electronic.prl +222 -0
  290. package/oiml-r60/specification/requirements/metrological.prl +381 -0
  291. package/oiml-r60/specification/requirements/technical.prl +146 -0
  292. package/oiml-r60/specification/symbols.prl +599 -0
  293. package/oiml-r60/specification/tables.prl +182 -0
  294. package/oiml-r60/specification/test-sequences.prl +72 -0
  295. package/oiml-r60/terminology.prl +920 -0
  296. package/oiml-r60/value-types.prl +46 -0
  297. package/oiml-r91/.primmel-allowlist.prl +3 -0
  298. package/oiml-r91/entities/instrument.prl +359 -0
  299. package/oiml-r91/entities/workflow.prl +2075 -0
  300. package/oiml-r91/evaluation/processes.prl +152 -0
  301. package/oiml-r91/evaluation/workflow.prl +48 -0
  302. package/oiml-r91/execution/forms/evidence-file.prl +41 -0
  303. package/oiml-r91/execution/forms/report-evaluation/appraisal.prl +30 -0
  304. package/oiml-r91/execution/forms/report-evaluation/checklist-summary.prl +43 -0
  305. package/oiml-r91/execution/forms/report-evaluation/checklist.prl +76 -0
  306. package/oiml-r91/execution/forms/report-evaluation/configuration-samples.prl +22 -0
  307. package/oiml-r91/execution/forms/report-evaluation/corrective-actions.prl +24 -0
  308. package/oiml-r91/execution/forms/report-evaluation/descriptions.prl +47 -0
  309. package/oiml-r91/execution/forms/report-evaluation/evaluation-identification.prl +219 -0
  310. package/oiml-r91/execution/forms/report-evaluation/test-report-summary.prl +33 -0
  311. package/oiml-r91/execution/forms/report-general/adjustments.prl +12 -0
  312. package/oiml-r91/execution/forms/report-general/alignment-aiming.prl +17 -0
  313. package/oiml-r91/execution/forms/report-general/checking-facility.prl +17 -0
  314. package/oiml-r91/execution/forms/report-general/configuration.prl +12 -0
  315. package/oiml-r91/execution/forms/report-general/identification.prl +216 -0
  316. package/oiml-r91/execution/forms/report-general/indications-controls.prl +17 -0
  317. package/oiml-r91/execution/forms/report-general/sealing.prl +21 -0
  318. package/oiml-r91/execution/forms/report-general/software-description.prl +26 -0
  319. package/oiml-r91/execution/forms/report-general/summary-environmental.prl +35 -0
  320. package/oiml-r91/execution/forms/report-general/summary-tests.prl +35 -0
  321. package/oiml-r91/execution/forms/report-general/test-equipment.prl +36 -0
  322. package/oiml-r91/execution/forms/report-general/test-interface.prl +16 -0
  323. package/oiml-r91/execution/forms/report-tests/01-01-field-test.prl +84 -0
  324. package/oiml-r91/execution/forms/report-tests/01-02-statistical-analysis.prl +76 -0
  325. package/oiml-r91/execution/forms/report-tests/01-03-image-evidence.prl +30 -0
  326. package/oiml-r91/execution/forms/report-tests/02-01-dynamic-performance.prl +92 -0
  327. package/oiml-r91/execution/forms/report-tests/02-02-speed-linearity.prl +23 -0
  328. package/oiml-r91/execution/forms/report-tests/02-03-distance-linearity.prl +67 -0
  329. package/oiml-r91/execution/forms/report-tests/02-04-angle-linearity.prl +59 -0
  330. package/oiml-r91/execution/forms/report-tests/03-01-dry-heat-operating.prl +38 -0
  331. package/oiml-r91/execution/forms/report-tests/03-02-dry-heat-storage.prl +48 -0
  332. package/oiml-r91/execution/forms/report-tests/03-03-cold-operating.prl +40 -0
  333. package/oiml-r91/execution/forms/report-tests/03-04-cold-storage.prl +48 -0
  334. package/oiml-r91/execution/forms/report-tests/03-05-damp-heat-cyclic.prl +40 -0
  335. package/oiml-r91/execution/forms/report-tests/03-06-water.prl +48 -0
  336. package/oiml-r91/execution/forms/report-tests/03-07-sand-and-dust.prl +48 -0
  337. package/oiml-r91/execution/forms/report-tests/03-08-salt-mist.prl +48 -0
  338. package/oiml-r91/execution/forms/report-tests/03-09-vibration-random.prl +40 -0
  339. package/oiml-r91/execution/forms/report-tests/03-10-mechanical-shock.prl +48 -0
  340. package/oiml-r91/execution/forms/report-tests/03-11-dc-mains-voltage-variation.prl +40 -0
  341. package/oiml-r91/execution/forms/report-tests/03-12-ripple-on-dc-mains.prl +47 -0
  342. package/oiml-r91/execution/forms/report-tests/03-13-ac-mains-voltage-variation.prl +40 -0
  343. package/oiml-r91/execution/forms/report-tests/03-14-ac-mains-frequency-variation.prl +40 -0
  344. package/oiml-r91/execution/forms/report-tests/03-15-dc-mains-voltage-dips.prl +46 -0
  345. package/oiml-r91/execution/forms/report-tests/03-16-ac-mains-voltage-dips.prl +46 -0
  346. package/oiml-r91/execution/forms/report-tests/03-17-ac-mains-frequency-harmonics.prl +47 -0
  347. package/oiml-r91/execution/forms/report-tests/03-18-vlf-lf-disturbances.prl +46 -0
  348. package/oiml-r91/execution/forms/report-tests/03-19-bursts-ac-dc-mains.prl +44 -0
  349. package/oiml-r91/execution/forms/report-tests/03-20-surges-ac-dc-mains.prl +45 -0
  350. package/oiml-r91/execution/forms/report-tests/03-21-bursts-signal-lines.prl +45 -0
  351. package/oiml-r91/execution/forms/report-tests/03-22-surges-signal-lines.prl +46 -0
  352. package/oiml-r91/execution/forms/report-tests/03-23-ac-mains-magnetic-field.prl +45 -0
  353. package/oiml-r91/execution/forms/report-tests/03-24-conducted-rf-common-mode.prl +46 -0
  354. package/oiml-r91/execution/forms/report-tests/03-25-rf-electromagnetic-fields.prl +49 -0
  355. package/oiml-r91/execution/forms/report-tests/03-26-electrostatic-discharges.prl +47 -0
  356. package/oiml-r91/execution/forms/report-tests/03-27-internal-battery-low-voltage.prl +40 -0
  357. package/oiml-r91/execution/forms/report-tests/03-28-road-vehicle-battery.prl +40 -0
  358. package/oiml-r91/execution/forms/report-tests/03-29-transient-supply-lines.prl +47 -0
  359. package/oiml-r91/execution/forms/report-tests/03-30-transient-other-lines.prl +45 -0
  360. package/oiml-r91/execution/forms/report-tests/03-31-battery-cranking.prl +45 -0
  361. package/oiml-r91/execution/forms/report-tests/03-32-load-dump.prl +47 -0
  362. package/oiml-r91/execution/forms/report-tests/03-33-acceleration.prl +66 -0
  363. package/oiml-r91/execution/forms/report-tests/03-34-further-influence.prl +60 -0
  364. package/oiml-r91/execution/forms/report-tests/03-35-installation-alignment.prl +29 -0
  365. package/oiml-r91/execution/forms/report-tests/04-01-doppler-radar.prl +43 -0
  366. package/oiml-r91/execution/forms/report-tests/04-02-range-finding.prl +42 -0
  367. package/oiml-r91/execution/forms/report-tests/04-03-average-speed.prl +41 -0
  368. package/oiml-r91/execution/forms/report-tests/04-04-fixed-distance.prl +40 -0
  369. package/oiml-r91/execution/forms/report-tests/04-05-image-based.prl +41 -0
  370. package/oiml-r91/execution/forms/report-tests/04-06-across-road.prl +42 -0
  371. package/oiml-r91/execution/forms/report-tests/05-01-moving-field-test.prl +29 -0
  372. package/oiml-r91/execution/forms/report-tests/05-02-ego-field-test.prl +57 -0
  373. package/oiml-r91/execution/forms/report-tests/05-03-moving-traffic-simulation.prl +31 -0
  374. package/oiml-r91/execution/forms/report-tests/06-01-software-general.prl +25 -0
  375. package/oiml-r91/execution/forms/report-tests/06-02-software-protection.prl +25 -0
  376. package/oiml-r91/execution/forms/report-tests/06-03-software-hardware-support.prl +24 -0
  377. package/oiml-r91/execution/forms/report-tests/06-04-software-separation.prl +25 -0
  378. package/oiml-r91/execution/forms/report-tests/06-05-software-maintenance.prl +24 -0
  379. package/oiml-r91/execution/forms/report-tests/07-general-remarks.prl +11 -0
  380. package/oiml-r91/execution/forms/shared/header-a.prl +63 -0
  381. package/oiml-r91/execution/subforms/software-matrix-row.prl +30 -0
  382. package/oiml-r91/execution/subforms/speed-measurement-row.prl +38 -0
  383. package/oiml-r91/layers.prl +46 -0
  384. package/oiml-r91/model/artifacts.prl +29 -0
  385. package/oiml-r91/model/attributes.prl +698 -0
  386. package/oiml-r91/model/behaviors.prl +142 -0
  387. package/oiml-r91/model/capabilities.prl +88 -0
  388. package/oiml-r91/model/characteristics.prl +27 -0
  389. package/oiml-r91/model/conditions.prl +37 -0
  390. package/oiml-r91/model/instrument.prl +147 -0
  391. package/oiml-r91/model/state.prl +22 -0
  392. package/oiml-r91/model/twin.prl +17 -0
  393. package/oiml-r91/package.primmel +14 -0
  394. package/oiml-r91/payload/application.yaml +201 -0
  395. package/oiml-r91/payload/conditions-common-test.yaml +19 -0
  396. package/oiml-r91/payload/promises.yaml +142 -0
  397. package/oiml-r91/payload/sample-data.yaml +464 -0
  398. package/oiml-r91/references.prl +72 -0
  399. package/oiml-r91/sources-prd/coverage.json +106 -0
  400. package/oiml-r91/sources-prd/r91-1.sentences.json +4696 -0
  401. package/oiml-r91/sources-prd/r91-2.sentences.json +2067 -0
  402. package/oiml-r91/sources-prd/r91-3.sentences.json +5210 -0
  403. package/oiml-r91/sources-prd/r91-4.sentences.json +474 -0
  404. package/oiml-r91/specification/calculations.prl +26 -0
  405. package/oiml-r91/specification/conformance/influence-disturbance.prl +1792 -0
  406. package/oiml-r91/specification/conformance/metrological.prl +906 -0
  407. package/oiml-r91/specification/formulas.prl +10 -0
  408. package/oiml-r91/specification/requirements/class-specific.prl +308 -0
  409. package/oiml-r91/specification/requirements/metrological.prl +176 -0
  410. package/oiml-r91/specification/requirements/technical.prl +173 -0
  411. package/oiml-r91/specification/symbols.prl +323 -0
  412. package/oiml-r91/specification/tables.prl +136 -0
  413. package/oiml-r91/terminology.prl +535 -0
  414. package/oiml-r91/value-types.prl +26 -0
  415. package/oiml-smart-core/entities/comments.prl +101 -0
  416. package/oiml-smart-core/entities/cs-operations.prl +492 -0
  417. package/oiml-smart-core/entities/cs-participants.prl +470 -0
  418. package/oiml-smart-core/entities/engagement.prl +323 -0
  419. package/oiml-smart-core/entities/instrument.prl +359 -0
  420. package/oiml-smart-core/entities/module-b.prl +214 -0
  421. package/oiml-smart-core/entities/operated-schemes.prl +141 -0
  422. package/oiml-smart-core/entities/parties.prl +429 -0
  423. package/oiml-smart-core/entities/payment-records.prl +92 -0
  424. package/oiml-smart-core/entities/verification.prl +187 -0
  425. package/oiml-smart-core/entities/workflow.prl +2075 -0
  426. package/oiml-smart-core/evaluation/roles.prl +65 -0
  427. package/oiml-smart-core/evaluation/state-machines.prl +1157 -0
  428. package/oiml-smart-core/package.primmel +10 -0
  429. package/oiml-smart-core/specification/competence-kinds.prl +64 -0
  430. package/oiml-smart-core/specification/constraints.prl +40 -0
  431. package/oiml-smart-core/specification/invariants.prl +90 -0
  432. package/oiml-smart-core/specification/predicates.prl +116 -0
  433. package/oiml-smart-module-emc-disturbances/package.primmel +10 -0
  434. package/oiml-smart-module-env-iec60068/package.primmel +10 -0
  435. package/oiml-smart-module-examination-docs/package.primmel +10 -0
  436. package/oiml-smart-module-reference-materials/package.primmel +10 -0
  437. package/oiml-smart-module-report-headers/package.primmel +10 -0
  438. package/oiml-smart-module-software-d31/package.primmel +10 -0
  439. package/oiml-smart-module-specimen-governance/entities/test-execution.prl +228 -0
  440. package/oiml-smart-module-specimen-governance/package.primmel +10 -0
  441. package/oiml-twin-cert/documents/tw-1/document.yaml +454 -0
  442. package/oiml-twin-cert/evaluation/roles.prl +15 -0
  443. package/oiml-twin-cert/execution/forms/probe-creep.prl +179 -0
  444. package/oiml-twin-cert/execution/forms/probe.prl +99 -0
  445. package/oiml-twin-cert/execution/forms/static-conformance.prl +50 -0
  446. package/oiml-twin-cert/model/attributes.prl +243 -0
  447. package/oiml-twin-cert/model/behaviors.prl +8 -0
  448. package/oiml-twin-cert/model/characteristics.prl +18 -0
  449. package/oiml-twin-cert/model/monitors.prl +16 -0
  450. package/oiml-twin-cert/package.primmel +16 -0
  451. package/oiml-twin-cert/specification/conformance/twin-fidelity.prl +176 -0
  452. package/oiml-twin-cert/specification/requirements/twin-fidelity.prl +137 -0
  453. package/oiml-twin-cert/specification/symbols.prl +36 -0
  454. package/oiml-twin-cert/terminology.prl +8 -0
  455. package/oimlsmart-primmel-packages-0.1.0.tgz +0 -0
  456. package/package.json +17 -0
  457. package/qms-ref/model/qms.prl +31 -0
  458. package/qms-ref/package.primmel +38 -0
  459. package/quarry-belt-scale/model/ops.prl +115 -0
  460. package/quarry-belt-scale/package.primmel +36 -0
@@ -0,0 +1,37 @@
1
+ calculation lookupMPE {
2
+ name "lookupMPE"
3
+ type expression
4
+ label "Maximum Permissible Error (intrinsic, alias of mpeIntrinsic)"
5
+ description "MPE = max(2 ppm, 5 % of measured value) per R 144-1, 4.3.1"
6
+ params { measuredValue }
7
+ expression "Math.max(2, 0.05 * Math.abs(p.measuredValue))"
8
+ }
9
+
10
+ calculation lookupRange {
11
+ name "lookupRange"
12
+ type table_lookup
13
+ label "Measuring range envelope per component"
14
+ description "Returns the { min, max } envelope of R 144-1, 4.2 for a component (CO, NO, NO2)"
15
+ params { component }
16
+ lookup { key component }
17
+ profile profiles.measuring_ranges
18
+ }
19
+
20
+ calculation lookupProfile {
21
+ name "lookupProfile"
22
+ type profile_lookup
23
+ label "Dimension-keyed profile lookup"
24
+ description "Returns the binding of a dimension-keyed profile from the profiles: section of tables.yaml for a classification dimension value, e.g. lookupProfile('measuring_ranges', 'CO') -> { min: 10, max: 20000 }. For range bindings a missing max means unbounded above."
25
+ params { profile dimension_value }
26
+ lookup { key dimension_value }
27
+ profile profiles
28
+ }
29
+
30
+ calculation determinePassFail {
31
+ name "determinePassFail"
32
+ type pass_fail
33
+ label "Pass/Fail Determination"
34
+ description "|computedValue| <= |limit| -> pass, else fail"
35
+ params { computedValue limit }
36
+ }
37
+
@@ -0,0 +1,87 @@
1
+ reference_material cgm {
2
+ kind certified_gas_mixture
3
+ name "Certified gas mixture (CGM)"
4
+ definition "Gas mixture of known composition used as the metrological reference for calibration and testing of gas analytical systems."
5
+ ref derives-from "urn:oiml:pub:r:144-1:2013#clause-A"
6
+ identity_fields {
7
+ field composition { description "Component(s) and nominal concentrations" }
8
+ field certified_value { description "Certified concentration per component, ppm" unit "ppm" required true }
9
+ field uncertainty { description "Expanded uncertainty (k=2), ppm" unit "ppm" required true }
10
+ field certification_authority { description "Issuing laboratory / national metrology institute" }
11
+ field certificate_id { description "Certificate number" }
12
+ field expiry { description "Certificate expiry date" type date }
13
+ field traceability { description "Traceability chain to SI (A.1.1)" }
14
+ field manufacturer_serial { description "Manufacturer of the gas cylinder and serial number (A.1.1)" }
15
+ field temperature_limits { description "Temperature limits for use and storage (A.1.1)" }
16
+ field certification_date { description "Date of certification (A.1.1)" type date }
17
+ field marking { description "The “calibration gas mixture” designation marking (A.1.1)" }
18
+ field preparation_method { description "Method of preparation: gravimetric according to ISO 6142:2001 and ISO 6143:2001 (A.1.1)" }
19
+ }
20
+ constraints {
21
+ constraint supply_mode {
22
+ description "The CGM shall be supplied either from a gas cylinder under pressure or from a gas mixture generator (A.1.1)."
23
+ rule "supply_mode = 'cylinder' or supply_mode = 'generator'"
24
+ ref derives-from "urn:oiml:pub:r:144-1:2013#clause-A.1.1"
25
+ }
26
+ constraint cylinder_identification {
27
+ description "Each gas cylinder shall be identified with the following information (included as a mark, label, and/or certificate): manufacturer of the gas cylinder and serial number; composition of the gas mixture; amount of substance of each component and the corresponding measurement uncertainty (k=2); statement about the traceability of the measurement results to accepted (inter)national gaseous measurement standards; temperature limits for use and storage; date of certification and expiry date; name of the authority that carried out the certification; the marking “calibration gas mixture”; and the method of preparation: gravimetric according to ISO 6142:2001 and ISO 6143:2001 (A.1.1)."
28
+ rule "manufacturer_serial <> '' and composition <> '' and certified_value > 0 and uncertainty > 0 and traceability <> '' and temperature_limits <> '' and certification_date <> '' and certification_authority <> '' and marking <> '' and preparation_method <> ''"
29
+ ref derives-from "urn:oiml:pub:r:144-1:2013#clause-A.1.1"
30
+ }
31
+ constraint generator_dynamic_method {
32
+ description "The gases obtained from the gas mixture generator using the dynamic method shall meet the requirements of ISO 6145-1:2003 and in addition the requirements of B.1.2, B.2 and B.1.1.a) concerning amount of substance, measurement uncertainty and accepted (inter)national traceability to gaseous measurement standards (A.1.1)."
33
+ rule "supply_mode = 'generator' implies iso_6145_1_conformity"
34
+ ref derives-from "urn:oiml:pub:r:144-1:2013#clause-A.1.1"
35
+ }
36
+ constraint certified_composition {
37
+ description "The composition of the CGM used for type approval and verification shall be certified as complying with the requirements of B.2 by a competent authority (A.1.2). The unit of volume fraction for the components to be determined shall be traceable to national, regional or international standards (A.1.2)."
38
+ rule "certification_authority <> '' and traceability <> ''"
39
+ ref derives-from "urn:oiml:pub:r:144-1:2013#clause-A.1.2"
40
+ }
41
+ constraint other_purpose_certification {
42
+ description "For all other purposes the CGMs (except those indicated in B.1.2) shall be certified by the supplier of the gases and shall be traceable to the appropriate measurement standards (A.1.3)."
43
+ rule "supplier_certified and traceability <> ''"
44
+ ref derives-from "urn:oiml:pub:r:144-1:2013#clause-A.1.3"
45
+ }
46
+ constraint cylinder_inertness {
47
+ description "The material of gas cylinders shall be inert to the gases contained therein (A.1.5)."
48
+ rule "cylinder_material_inert"
49
+ ref derives-from "urn:oiml:pub:r:144-1:2013#clause-A.1.5"
50
+ }
51
+ constraint handling_safety {
52
+ description "The appropriate safety regulations shall be followed when handling the gases (A.1.6)."
53
+ rule "safety_regulations_followed"
54
+ ref derives-from "urn:oiml:pub:r:144-1:2013#clause-A.1.6"
55
+ }
56
+ constraint volume_fraction_unit {
57
+ description "The volume fraction for the components to be determined in N2 in cylinders or in a gas mixture obtained from the generator shall be given in parts per million (ppm) (A.2.1, see 4.1)."
58
+ rule "volume_fraction_unit = 'ppm'"
59
+ ref derives-from "urn:oiml:pub:r:144-1:2013#clause-A.2.1"
60
+ }
61
+ constraint blend_tolerance {
62
+ description "Blended CGM composition shall not deviate from nominal by more than 10 % (A.2.2)"
63
+ rule "abs(composition - nominal) <= 0.10 * nominal"
64
+ ref derives-from "urn:oiml:pub:r:144-1:2013#clause-A.2.2"
65
+ }
66
+ constraint composition_uncertainty {
67
+ description "Composition uncertainty shall not exceed 2 % (3 % for concentrations below 50 ppm) (A.2.3)"
68
+ rule "uncertainty <= (certified_value >= 50 ? 0.02 : 0.03) * certified_value"
69
+ evidence { uncertainty: cgm_uncertainty certified_value: cgm_reference }
70
+ ref derives-from "urn:oiml:pub:r:144-1:2013#clause-A.2.3"
71
+ }
72
+ constraint uncertainty_ratio_to_mpe {
73
+ description "The expanded uncertainty of the CGM shall not exceed one third of the maximum permissible error at the test point; the issuing authority may allow one half (R 144-1, 7.2.2.2)."
74
+ rule "uncertainty <= mpe_at_point / 3"
75
+ evidence { uncertainty: cgm_uncertainty mpe_at_point: mpe }
76
+ override { rule "uncertainty <= mpe_at_point / 2" by issuing_authority evidence cgm_uncertainty_override_approved }
77
+ on_violation invalidate
78
+ ref derives-from "urn:oiml:pub:r:144-1:2013#clause-7.2.2.2"
79
+ }
80
+ constraint type_approval_conformance {
81
+ description "The contents and metrological characteristics of calibration gas mixtures used during type approval shall conform to those specified in Annex A (7.1.3.1)."
82
+ rule "composition <> '' and certified_value > 0 and uncertainty > 0 and traceability <> ''"
83
+ ref derives-from "urn:oiml:pub:r:144-1:2013#clause-7.1.3.1"
84
+ }
85
+ }
86
+ }
87
+
@@ -0,0 +1,51 @@
1
+ requirement_class /req/controls {
2
+ title "Metrological controls"
3
+ name "Metrological controls for gas analytical systems"
4
+ description "General provisions for the type evaluation and the initial verification of gas analytical systems (R 144-1, 7.1 and 7.2; R 144-2, 1.1 and 2)."
5
+ subject "gas analytical system"
6
+ }
7
+
8
+ requirement /req/controls/type-evaluation-units {
9
+ name "Type evaluation units"
10
+ statement "Type evaluation shall be carried out on at least one unit, which represents the definitive type."
11
+ verification { method definitional }
12
+ ref derives-from "urn:oiml:pub:r:144-1:2013#clause-7.1.2"
13
+ }
14
+
15
+ requirement /req/controls/completely-mounted-testing {
16
+ name "Testing with a completely mounted system"
17
+ statement "Where possible, tests should be carried out with a completely mounted gas analytical system. However, it is permitted to perform the test on separate units or devices of the gas analytical system if it is impossible to test the system as a whole due to its size or configuration, or when testing only the operation of that separate unit or device. Such tests can only be performed in cases where it is possible to simulate the operating conditions for that separate unit or device included in a gas analytical system."
18
+ obligation should
19
+ verification { method definitional }
20
+ ref derives-from "urn:oiml:pub:r:144-1:2013#clause-7.1.3.1"
21
+ }
22
+
23
+ requirement /req/controls/correctness-of-operation-check {
24
+ name "Correctness of operation during compliance testing"
25
+ statement "When testing a gas analytical system for compliance with the requirements of 4 of this Recommendation, the correctness of its operation shall be checked."
26
+ verification { method definitional }
27
+ ref derives-from "urn:oiml:pub:r:144-1:2013#clause-7.1.3.3"
28
+ }
29
+
30
+ requirement /req/controls/initial-verification {
31
+ name "Initial verification"
32
+ statement "A new gas analytical system shall undergo initial verification only after type approval (depending on the legislation in each specific country). The initial verification shall be carried out using suitable testing means and calibration gas mixture."
33
+ verification { method definitional }
34
+ ref derives-from "urn:oiml:pub:r:144-1:2013#clause-7.2.1"
35
+ }
36
+
37
+ requirement /req/controls/test-preparation-documents {
38
+ name "Referenced documents studied prior to tests"
39
+ statement "Prior to the type evaluation tests, the referenced documents shall be studied."
40
+ verification { method definitional }
41
+ ref derives-from "urn:oiml:pub:r:144-2:2013#clause-1.1"
42
+ }
43
+
44
+ requirement /req/controls/initial-verification-tests {
45
+ name "Initial verification test set"
46
+ statement "The initial verification of a gas analytical system should include: the power supply voltage and frequency check at the location of use (R 144-2, 2.1); the warm-up lockout activation check (2.2); the error determination after warm-up per R 144-1, 7.2.2.2 (2.3); the air-tightness leak check per R 144-2, 1.22 (2.4); the gas flow rate device activation check per 1.21 (2.5); and the response time check per 1.20 (2.6)."
47
+ obligation should
48
+ verification { method definitional }
49
+ ref derives-from "urn:oiml:pub:r:144-2:2013#clause-2"
50
+ }
51
+
@@ -0,0 +1,299 @@
1
+ requirement_class /req/metrological {
2
+ title "Metrological requirements"
3
+ name "Metrological requirements for gas analytical systems"
4
+ description "Requirements for measurement units, measuring ranges, maximum permissible errors, repeatability, influence quantities, response time, warm-up time, and drift applicable to all gas analytical systems covered by R 144."
5
+ subject "gas analyzer metrology"
6
+ }
7
+
8
+ requirement /req/metrological/measurement-units {
9
+ name "Presentation of measurement results"
10
+ statement "The measurement results of the concentration of carbon monoxide and nitrogen oxides in the sample shall be expressed in the units of volume fraction and reduced to reference conditions (temperature 273.15 K, pressure 101.325 kPa). In this Recommendation, ppm is used for the volume fraction unit (ISO 80000-9, 9.15)."
11
+ binds_to { model.parameters.indication_unit model.behaviors.reference-condition-reduction }
12
+ limit {
13
+ expression "ocl{model.parameters.indication_unit = 'ppm'}"
14
+ notes "The reduction-to-reference-conditions half of 4.1 binds to the reference-condition-reduction behavior (declared behavior verified by documentation examination, not a machine-checked computation)."
15
+ uses { model.parameters.indication_unit model.behaviors.reference-condition-reduction }
16
+ }
17
+ report_row unit-of-measurement
18
+ acceptance_criteria {
19
+ type: "qualitative"
20
+ description: "Results expressed in ppm, reduced to reference conditions 273.15 K / 101.325 kPa"
21
+ items:
22
+ - description: "Volume fraction expressed in ppm"
23
+ - description: "Results reduced to reference conditions (273.15 K, 101.325 kPa)"
24
+ }
25
+ verification { method inspection description "Verify that the display and documentation use ppm units and reference conditions." }
26
+ ref derives-from "urn:oiml:pub:r:144-1:2013#clause-4.1"
27
+ }
28
+
29
+ requirement /req/metrological/measuring-range {
30
+ name "Measuring range"
31
+ statement "The gas analyzer shall provide measurements of a volume fraction of the components determined in the following ranges: carbon monoxide: 10 ppm to 20000 ppm; nitrogen monoxide: 10 ppm to 5000 ppm; nitrogen dioxide: 10 ppm to 500 ppm. These measuring ranges may be divided into sub-ranges."
32
+ binds_to { model.parameters.co_range_min model.parameters.co_range_max model.parameters.no_range_min model.parameters.no_range_max model.parameters.no2_range_min model.parameters.no2_range_max model.parameters.nox_range_min model.parameters.nox_range_max model.classification.measurand_components }
33
+ limit {
34
+ expression "ocl{(not model.classification.measurand_components->includes('co') or (model.parameters.co_range_min >= 10 and model.parameters.co_range_max <= 20000)) and (not model.classification.measurand_components->includes('no') or (model.parameters.no_range_min >= 10 and model.parameters.no_range_max <= 5000)) and (not model.classification.measurand_components->includes('no2') or (model.parameters.no2_range_min >= 10 and model.parameters.no2_range_max <= 500)) and (not model.classification.measurand_components->includes('nox') or (model.parameters.no_range_min + model.parameters.no2_range_min >= 20 and model.parameters.no_range_max + model.parameters.no2_range_max <= 5500))}"
35
+ notes "NOx-only analyzers check the derived sum range (envelope = NO + NO2 component envelopes per R 144-1, 4.2; NOx = NO + NO2 per the 1.1/2.4 NOTE derived attributes nox_range_min/max)."
36
+ uses { model.classification.measurand_components table:measuring_ranges }
37
+ }
38
+ report_row measuring-range
39
+ acceptance_criteria {
40
+ type: "qualitative"
41
+ description: "Declared measuring range (or sub-range) lies within the R 144-1, 4.2 envelope for each measured component"
42
+ items:
43
+ - description: "CO range within 10 ppm to 20000 ppm (when CO is measured)"
44
+ - description: "NO range within 10 ppm to 5000 ppm (when NO is measured)"
45
+ - description: "NO2 range within 10 ppm to 500 ppm (when NO2 is measured)"
46
+ }
47
+ verification { method testing description "Verify using CGMs at range endpoints (R 144-2, 1.2)." }
48
+ ref derives-from "urn:oiml:pub:r:144-1:2013#clause-4.2"
49
+ }
50
+
51
+ requirement /req/metrological/mpe-intrinsic {
52
+ name "Maximum permissible intrinsic error"
53
+ statement "For any measurement within the measuring range or sub-range under the reference conditions specified in clause 8, the MPE, positive or negative, is the larger of the two following values: 2 ppm; 5 % of the measured value."
54
+ binds_to { model.parameters.mpe }
55
+ limit {
56
+ expression "ocl{abs(e_x) <= max(2, 0.05 * abs(x_ref))}"
57
+ quantity { kind volume-fraction unit "ppm" }
58
+ uses { observable:e_x observable:x_ref model.parameters.mpe formula:mpeIntrinsic }
59
+ }
60
+ parameters {
61
+ param measured_value: number { description "The measured volume fraction in ppm" unit "ppm" }
62
+ }
63
+ channel measurand_components
64
+ acceptance_criteria {
65
+ type: "threshold"
66
+ description: "MPE is max(2 ppm, 5% of measured value)"
67
+ limit:
68
+ expression: "|error|"
69
+ operator: "lte"
70
+ threshold_expression: "max(2 ppm, 0.05 × measured_value)"
71
+ unit: "ppm"
72
+ }
73
+ verification { method testing description "Determine error at 3+ points using CGMs per R 144-2, 1.2." }
74
+ ref derives-from "urn:oiml:pub:r:144-1:2013#clause-4.3.1"
75
+ }
76
+
77
+ requirement /req/metrological/mpe-operating {
78
+ name "MPE on verification under rated operating conditions"
79
+ statement "The MPE, positive or negative, under the rated operating conditions specified in 4.5.1 may be equal to or greater than the maximum permissible intrinsic errors, taking into account the actual values of the influence quantities, but they should not exceed the larger of the two following values: 5 ppm; 10 % of the measured value."
80
+ binds_to { model.parameters.mpe_verification }
81
+ limit {
82
+ modality should
83
+ expression "ocl{abs(e_x) <= max(5, 0.10 * abs(x_ref))}"
84
+ notes "R 144-1, 4.3.2 modality is SHOULD (recommendation), not shall — the limit is pointwise-defeasible taking into account the actual influence quantities. Task 08 formalizes should-modality (observation, not blocker)."
85
+ quantity { kind volume-fraction unit "ppm" }
86
+ uses { observable:e_x observable:x_ref model.parameters.mpe_verification formula:mpeVerification }
87
+ }
88
+ acceptance_criteria {
89
+ type: "threshold"
90
+ description: "MPE under operating conditions is max(5 ppm, 10% of measured value)"
91
+ limit:
92
+ expression: "|error|"
93
+ operator: "lte"
94
+ threshold_expression: "max(5 ppm, 0.10 × measured_value)"
95
+ unit: "ppm"
96
+ }
97
+ verification { method testing description "Determine error under rated operating conditions per R 144-2, 1.5–1.9." }
98
+ ref derives-from "urn:oiml:pub:r:144-1:2013#clause-4.3.2"
99
+ }
100
+
101
+ requirement /req/metrological/repeatability {
102
+ name "Repeatability"
103
+ statement "An estimate of the standard deviation is used as a characteristic of repeatability (R 144-2, 1.4). The estimate of the standard deviation shall not exceed 1/3 of the maximum permissible intrinsic error at the given point of the measuring range."
104
+ binds_to { model.parameters.repeatability_limit model.parameters.mpe }
105
+ limit {
106
+ expression "ocl{s <= max(2, 0.05 * abs(x_ref)) / 3}"
107
+ quantity { kind volume-fraction unit "ppm" }
108
+ uses { observable:s observable:x_ref model.parameters.repeatability_limit model.parameters.mpe formula:mpeIntrinsic table:repeatability_runs }
109
+ }
110
+ parameters {
111
+ param n: integer { description "Number of measurements for repeatability" default 20 }
112
+ }
113
+ channel measurand_components
114
+ acceptance_criteria {
115
+ type: "threshold"
116
+ description: "Standard deviation ≤ |MPE| / 3"
117
+ limit:
118
+ expression: "s"
119
+ operator: "lte"
120
+ threshold_expression: "|MPE| / 3"
121
+ unit: "ppm"
122
+ }
123
+ verification { method testing description "20 repeated measurements per R 144-2, 1.4 (R 144-1, 8.3)." }
124
+ ref derives-from "urn:oiml:pub:r:144-1:2013#clause-4.4"
125
+ }
126
+
127
+ requirement /req/metrological/rated-conditions {
128
+ name "Rated operating conditions"
129
+ statement "The gas analyzer shall operate within the permissible limits under the rated operating conditions: temperature 5 °C to 40 °C; relative humidity up to 90 % at 25 °C; atmospheric pressure 86 kPa to 106 kPa; AC mains voltage nominal value with deviation -15 % to +10 %; frequency nominal value ±2 %. If a battery is used, the limits of power supplied shall be within the manufacturer's specifications. The rated ranges for temperature, relative humidity and atmospheric pressure may be extended."
130
+ binds_to { family.parameters.t_min family.parameters.t_max family.parameters.rh_max family.parameters.p_atm_min family.parameters.p_atm_max model.parameters.supply_voltage model.parameters.supply_frequency model.parameters.battery_voltage_min model.classification.power_supply model.parameters.mpe_verification }
131
+ limit {
132
+ expression "ocl{abs(e_x) <= max(5, 0.10 * abs(x_ref))}"
133
+ quantity { kind volume-fraction unit "ppm" }
134
+ uses { observable:e_x observable:x_ref family.parameters.t_min family.parameters.t_max family.parameters.rh_max family.parameters.p_atm_min family.parameters.p_atm_max model.parameters.supply_voltage model.parameters.supply_frequency model.parameters.mpe_verification formula:mpeVerification }
135
+ }
136
+ acceptance_criteria {
137
+ type: "qualitative"
138
+ description: "Instrument operates within the 4.3.2 MPE across the rated conditions"
139
+ items:
140
+ - description: "Temperature: 5 °C to 40 °C (or extended manufacturer rating)"
141
+ - description: "Relative humidity: up to 90 % at 25 °C"
142
+ - description: "Atmospheric pressure: 86 kPa to 106 kPa"
143
+ - description: "AC supply voltage: nominal -15 % to +10 %"
144
+ - description: "Supply frequency: nominal ±2 %"
145
+ - description: "Battery (if used): within manufacturer specifications"
146
+ }
147
+ verification { method testing description "Tests per R 144-2, 1.5–1.9 (dry heat, cold, damp heat, atmospheric pressure, power supply variation)." }
148
+ ref derives-from "urn:oiml:pub:r:144-1:2013#clause-4.5.1"
149
+ }
150
+
151
+ requirement /req/metrological/cross-sensitivity {
152
+ name "Cross sensitivity"
153
+ statement "The indications of the gas analyzer shall not vary by more than half the absolute value of the maximum permissible intrinsic error at the given point of the measurement range if the value of the volume fraction of the gas components other than the measurand does not exceed the maximum permissible value."
154
+ guidance "The manufacturer shall provide the list of gas components other than the measurand and their maximum permissible concentrations in the operating instructions (4.5.2 NOTE)."
155
+ binds_to { model.parameters.interfering_components model.parameters.mpe }
156
+ limit {
157
+ quantity { kind volume-fraction unit "ppm" }
158
+ accepts {
159
+ verdict cross_sensitivity_variation
160
+ op lte
161
+ limit "ocl{0.5 * max(2, 0.05 * abs(x_ref))}"
162
+ }
163
+ uses { observable:reading_interferent observable:reading_zero_gas observable:x_ref model.parameters.interfering_components model.parameters.mpe formula:mpeIntrinsic }
164
+ }
165
+ acceptance_criteria {
166
+ type: "threshold"
167
+ description: "Cross-sensitivity effect ≤ 0.5 × |MPE|"
168
+ limit:
169
+ expression: "|Δindication|"
170
+ operator: "lte"
171
+ threshold_expression: "0.5 × |MPE|"
172
+ unit: "ppm"
173
+ }
174
+ verification { method testing description "Test per R 144-2, 1.10." }
175
+ ref derives-from "urn:oiml:pub:r:144-1:2013#clause-4.5.2"
176
+ }
177
+
178
+ requirement /req/metrological/vibration {
179
+ name "Vibration resistance"
180
+ statement "The gas analyzer shall be protected against the effects of vibration. The manufacturer shall indicate in the specifications the requirements for the vibration parameters, at which the metrological characteristics of the gas analyzer are within the permissible limits (4.3.2). The minimum requirements should correspond to severity level 1 of OIML D 11:2013, 11.1."
181
+ guidance "Test severity is the manufacturer-declared vibration_severity (minimum OIML D 11 level 1); the declaration obligation itself is modelled under the operating-manual requirement (R 144-1, 6.1)."
182
+ binds_to { model.parameters.vibration_severity model.parameters.mpe_verification }
183
+ limit {
184
+ expression "ocl{abs(delta_x) <= max(5, 0.10 * abs(x_ref))}"
185
+ quantity { kind volume-fraction unit "ppm" }
186
+ uses { observable:delta_x observable:x_ref model.parameters.vibration_severity model.parameters.mpe_verification formula:mpeVerification }
187
+ }
188
+ acceptance_criteria {
189
+ type: "qualitative"
190
+ description: "Reading variation under vibration within the manufacturer-specified limits (minimum D 11 level 1)"
191
+ items:
192
+ - description: "Manufacturer specifies vibration parameters in the specifications"
193
+ - description: "Metrological characteristics within permissible limits (4.3.2) under vibration"
194
+ }
195
+ verification { method testing description "Random vibration test per R 144-2, 1.11.1." }
196
+ ref derives-from "urn:oiml:pub:r:144-1:2013#clause-4.5.3"
197
+ }
198
+
199
+ requirement /req/metrological/disturbances {
200
+ name "Disturbances"
201
+ statement "The error of the gas analyzer shall lie within the permissible limits, or its failure shall be detected by the checking facility for the following disturbances: mechanical shocks; short time power reduction; voltage pulses from the mains; electrostatic discharges; radio frequency electromagnetic fields. The disturbance norms and test methods are described in R 144-2."
202
+ binds_to { model.parameters.mpe_verification }
203
+ limit {
204
+ expression "ocl{(abs(e_x) <= max(5, 0.10 * abs(x_ref))) or fault_detected}"
205
+ quantity { kind volume-fraction unit "ppm" }
206
+ uses { observable:e_x observable:x_ref observable:fault_detected model.parameters.mpe_verification formula:mpeVerification }
207
+ }
208
+ acceptance_criteria {
209
+ type: "qualitative"
210
+ description: "Error within MPE or fault detected for each disturbance"
211
+ items:
212
+ - description: "Mechanical shocks — error within MPE or fault detected"
213
+ - description: "Short time power reduction — error within MPE or fault detected"
214
+ - description: "Voltage pulses — error within MPE or fault detected"
215
+ - description: "Electrostatic discharges — error within MPE or fault detected"
216
+ - description: "RF electromagnetic fields — error within MPE or fault detected"
217
+ }
218
+ verification { method testing description "Tests per R 144-2, 1.11.2, 1.12–1.17." }
219
+ ref derives-from "urn:oiml:pub:r:144-1:2013#clause-4.5.4"
220
+ }
221
+
222
+ requirement /req/metrological/response-time {
223
+ name "Response time"
224
+ statement "When a volume fraction of a component being determined at the input changes abruptly from 0 % to 100 %, the reading of the gas analyzer shall reach, within four minutes, a value of at least 90 %."
225
+ binds_to { model.parameters.response_time }
226
+ limit {
227
+ expression "ocl{t_90 <= 240}"
228
+ quantity { kind time unit "s" }
229
+ uses { observable:t_90 model.parameters.response_time }
230
+ }
231
+ channel measurand_components
232
+ report_row response-time
233
+ acceptance_criteria {
234
+ type: "threshold"
235
+ description: "Response time ≤ 4 minutes (240 s)"
236
+ limit:
237
+ expression: "t_response"
238
+ operator: "lte"
239
+ threshold_expression: "4 min"
240
+ unit: "min"
241
+ }
242
+ verification { method testing description "Test per R 144-2, 1.20 with CGM at 90 % of the maximum range value." }
243
+ ref derives-from "urn:oiml:pub:r:144-1:2013#clause-4.6"
244
+ }
245
+
246
+ requirement /req/metrological/warm-up-time {
247
+ name "Warm-up time"
248
+ statement "After switching on the gas analytical system and after the warm-up time specified by the manufacturer of this system, it shall meet the metrological requirements stated in this Recommendation."
249
+ guidance "R 144-2, 1.19: measurements immediately after the warm-up period and at 2, 5 and 15 min after warm-up; the difference between any of the four measured values shall not exceed the absolute value of the MPE on initial verification (4.3.2)."
250
+ binds_to { model.parameters.warm_up_time model.parameters.mpe_verification }
251
+ limit {
252
+ expression "ocl{pairwise_max_difference(warm_up_indications) <= max(5, 0.10 * abs(x_ref))}"
253
+ notes "R 144-2, 1.19: 'the difference between ANY of the four measured values' — pairwise max difference, not difference-from-first (see form's series-declared per-CGM evaluation)."
254
+ quantity { kind volume-fraction unit "ppm" }
255
+ uses { observable:warm_up_indications observable:x_ref model.parameters.warm_up_time model.parameters.mpe_verification formula:mpeVerification }
256
+ }
257
+ report_row warm-up-time
258
+ acceptance_criteria {
259
+ type: "qualitative"
260
+ description: "System meets metrological requirements immediately after the manufacturer-specified warm-up time"
261
+ items:
262
+ - description: "Manufacturer specifies warm-up time (operating manual, 6.2 item 4)"
263
+ - description: "Indications after warm-up within MPE on initial verification"
264
+ }
265
+ verification { method testing description "Test per R 144-2, 1.19 at reference conditions and at 5 °C." }
266
+ ref derives-from "urn:oiml:pub:r:144-1:2013#clause-4.7"
267
+ }
268
+
269
+ requirement /req/metrological/drift {
270
+ name "Stability with time (drift)"
271
+ statement "When a gas analyzer equipped with semi-automatic adjustment means is operated in accordance with its operating instructions under stable environmental conditions, its error shall remain within the maximum permissible errors (4.3.1) for at least seven days from the moment of adjustment of the gas analyzer using the CGM. If the gas analyzer is equipped with a means for drift compensation, the action of these adjustments shall not produce any indication that can be confused with a measurement result."
272
+ binds_to { model.parameters.mpe model.classification.adjustment_means }
273
+ limit {
274
+ quantity { kind volume-fraction unit "ppm" }
275
+ accepts {
276
+ verdict drift_error
277
+ op lte
278
+ limit "ocl{max(2, 0.05 * abs(cgm_certified_value))}"
279
+ }
280
+ uses { observable:indication observable:cgm_certified_value model.parameters.mpe model.classification.adjustment_means formula:mpeIntrinsic }
281
+ }
282
+ channel measurand_components
283
+ applicability {
284
+ adjustment_means: [semi-automatic, automatic]
285
+ }
286
+ acceptance_criteria {
287
+ type: "threshold"
288
+ description: "Error remains within |MPE| for 7 days"
289
+ limit:
290
+ expression: "|error|"
291
+ operator: "lte"
292
+ threshold_expression: "|MPE|"
293
+ unit: "ppm"
294
+ per_condition: "over 7 days, measured at least every 24 hours"
295
+ }
296
+ verification { method testing description "Test per R 144-2, 1.3 — seven days, largest and smallest CGM volume fractions." }
297
+ ref derives-from "urn:oiml:pub:r:144-1:2013#clause-4.8"
298
+ }
299
+
@@ -0,0 +1,35 @@
1
+ requirement_class /req/report {
2
+ title "Test report content rules"
3
+ name "Test report content rules for gas analytical systems"
4
+ description "Rules for the content of the test report — the recommended test numbers and values in the OIML-CS framework, the indication of test means, the assurance of alternatives and equivalence, and the recording of observed problems and test conditions (R 144-3, clause 2)."
5
+ subject "gas analytical system test report"
6
+ }
7
+
8
+ requirement /req/report/cs-recommended-values {
9
+ name "Recommended numbers and values in the OIML-CS framework"
10
+ statement "Where this Recommendation indicates a recommended number of tests, or recommended test values, these numbers and values shall be used in the framework of the OIML Certificate System."
11
+ verification { method inspection }
12
+ ref derives-from "urn:oiml:pub:r:144-3:2013#clause-2"
13
+ }
14
+
15
+ requirement /req/report/test-means-indication {
16
+ name "Indication of test means"
17
+ statement "The test report shall indicate what test means were used. Where test means did not conform to this Recommendation, their necessary metrological and technical characteristics shall be given."
18
+ verification { method inspection }
19
+ ref derives-from "urn:oiml:pub:r:144-3:2013#clause-2"
20
+ }
21
+
22
+ requirement /req/report/alternative-assurance {
23
+ name "Assurance of alternatives and equivalence"
24
+ statement "Where this Recommendation offers an alternative, the assurance of its requirements shall be indicated. Any arguments or results of tests necessary to demonstrate the equivalence of results shall be given."
25
+ verification { method inspection }
26
+ ref derives-from "urn:oiml:pub:r:144-3:2013#clause-2"
27
+ }
28
+
29
+ requirement /req/report/test-observations {
30
+ name "Observed problems and test conditions"
31
+ statement "Any problem (fault to be repaired) observed during tests shall be mentioned. Any useful information about test conditions (ambient temperature, humidity, etc.) shall be indicated."
32
+ verification { method inspection }
33
+ ref derives-from "urn:oiml:pub:r:144-3:2013#clause-2"
34
+ }
35
+