| Field | Type | Required | Notes |
|---|---|---|---|
id | str (slug) | yes | Stable signal identifier. |
name | str | yes | Vendor-neutral logical name. |
signal_type | enum | yes | digital, analog, can, i2c, 1-wire, uart. |
category | enum | yes | command, permission_interlock, feedback, safety, mode, monitoring. |
subtype | list[str] | no | E.g. nc, no, pulse. |
processing | object | no | filtered, delay, moving_average. |
attributes | object | no | scaling, sampling, fail-safe, redundancy, sync/async, compatibility. |
value_mapping | ValueMapping | no | Optional raw/physical mapping. |
vendor_io_mappings | list[VendorIOMapping] | no | Per-vendor IO tag bindings (party_id, item, direction, terminals). |
assumed | bool | no | Mark inferred values (true) vs. values extracted from vendor documentation. |
source_doc_ref | str | no | Provenance pointer to the source document or datasheet. |
notes | str | no | Free-text notes. |
Ontology linkage. Signals are linked to ports through
actUpon. Connectivity
between ports is modeled by Connection edges.signals.yaml
YAMLsignals:
- id: start_cmd
name: START COMMAND OF HYDRAULIC PUMP
signal_type: digital
category: command
subtype: [no, pulse]
processing:
filtered: false
delay_ms: 0
moving_average_window: null
attributes:
scaling: 1.0
sampling_interval_ms: 100
fail_safe_mode: hold_last
redundant_sil: false
sync_mode: sync
compatibility_note: "Hardwired command path"
value_mapping:
kind: discrete
entries:
- { raw: 0, meaning: "no command" }
- { raw: 1, meaning: "start request" }
- id: speed_setpoint
name: SPEED SETPOINT
signal_type: analog
category: command
processing:
filtered: true
delay_ms: 100
moving_average_window: 5
attributes:
scaling: 1.0
sampling_interval_ms: 500
sync_mode: async
compatibility_note: "0-10V command profile"