| Field | Type | Required | Notes |
|---|---|---|---|
id | str (slug) | yes | Stable function identifier. |
name | str | yes | e.g. VFD Start/Stop (Remote). |
component_id | str | yes | ID of the component this function is allocated to, if already allocated. |
modes | list[str] | yes | References to Component.modes[*].id where this function is allowed to execute. |
input_signals | list[Signal] | no | Signals consumed by the function. |
output_signals | list[Signal] | no | Signals produced by the function. |
parameters | list[Parameter] | no | Typed function parameters with name and type. |
function_description | str | yes | Required vendor free text describing function behavior for SI mapping. Include applicable standards and references (e.g., DNV-RP-0684 Annex A, SysML v2, or domain-specific standards) with version, section, and relevant constraints. |
Vendor input focus. Keep
function_description practical and operational: purpose,
trigger/preconditions, outputs, dependencies, and failure/degraded behavior. Use function_description to include standards references (DNV-RP-0684 Annex A, SysML v2, domain specs) when
applicable.Mode References
| Field | Type | Required | Notes |
|---|---|---|---|
mode_id | str (slug) | yes | Must match one value from Component.modes[*].id on the same component. |
functions.yaml
YAMLfunctions:
- id: fn.vfd_start
name: VFD Start
component_id: VFD
modes:
- local_start
input_signals:
- id: vfd_ready
name: VFD READY
signal_type: digital
category: feedback
output_signals:
- id: start_cmd
name: START COMMAND
signal_type: digital
category: command
parameters:
- name: start_pulse_ms
type: int
function_description: |
SysML v2 (simple):
action def VFDStart {
in start_cmd: StartCommand;
out vfd_ready: Boolean;
}
If vfd_ready is true, send one start_cmd pulse to VFD.