first
This commit is contained in:
329
config.yaml
Normal file
329
config.yaml
Normal file
@@ -0,0 +1,329 @@
|
||||
# arnold config.yaml — Terminator I/O server configuration
|
||||
# ─────────────────────────────────────────────────────────────────────────────
|
||||
# DEVICES
|
||||
# Each device is a Terminator I/O EBC100 Ethernet base controller.
|
||||
# Modules are listed in physical slot order (left-to-right after the EBC100).
|
||||
# Supported module types: T1H-08TDS, T1H-08ND3, T1H-16ND3, T1H-08NA (inputs)
|
||||
# T1H-08TD1, T1H-08TD2, T1H-16TD1, T1H-08TA, T1H-08TRS (outputs)
|
||||
# ─────────────────────────────────────────────────────────────────────────────
|
||||
|
||||
devices:
|
||||
- id: ebc100_main
|
||||
host: 192.168.3.202
|
||||
port: 502
|
||||
unit_id: 1
|
||||
poll_interval_ms: 50 # 20 Hz — well within EBC100 capability
|
||||
modules:
|
||||
- slot: 1
|
||||
type: T1H-08TDS # 8-point 24VDC sinking digital input
|
||||
points: 8
|
||||
- slot: 2
|
||||
type: T1H-08TDS
|
||||
points: 8
|
||||
- slot: 3
|
||||
type: T1H-08TDS
|
||||
points: 8
|
||||
# ── Uncomment and adapt when output modules are added ──────────────────
|
||||
# - slot: 4
|
||||
# type: T1H-08TD1 # 8-point 24VDC sourcing digital output
|
||||
# points: 8
|
||||
|
||||
|
||||
# ─────────────────────────────────────────────────────────────────────────────
|
||||
# LOGICAL I/O
|
||||
# Give human-readable names to individual I/O points.
|
||||
# device: must match a devices[].id above
|
||||
# slot: physical slot number (1-based, matches modules list)
|
||||
# point: point within that module (1-based, 1–8 for 8-pt modules)
|
||||
# direction: must match the module type (input or output)
|
||||
# ─────────────────────────────────────────────────────────────────────────────
|
||||
|
||||
logical_io:
|
||||
# ── Slot 1 — Module 1 inputs ───────────────────────────────────────────────
|
||||
- name: input_1_1
|
||||
device: ebc100_main
|
||||
slot: 1
|
||||
point: 1
|
||||
direction: input
|
||||
|
||||
- name: input_1_2
|
||||
device: ebc100_main
|
||||
slot: 1
|
||||
point: 2
|
||||
direction: input
|
||||
|
||||
- name: input_1_3
|
||||
device: ebc100_main
|
||||
slot: 1
|
||||
point: 3
|
||||
direction: input
|
||||
|
||||
- name: input_1_4
|
||||
device: ebc100_main
|
||||
slot: 1
|
||||
point: 4
|
||||
direction: input
|
||||
|
||||
- name: input_1_5
|
||||
device: ebc100_main
|
||||
slot: 1
|
||||
point: 5
|
||||
direction: input
|
||||
|
||||
- name: input_1_6
|
||||
device: ebc100_main
|
||||
slot: 1
|
||||
point: 6
|
||||
direction: input
|
||||
|
||||
- name: input_1_7
|
||||
device: ebc100_main
|
||||
slot: 1
|
||||
point: 7
|
||||
direction: input
|
||||
|
||||
- name: input_1_8
|
||||
device: ebc100_main
|
||||
slot: 1
|
||||
point: 8
|
||||
direction: input
|
||||
|
||||
# ── Slot 2 — Module 2 inputs ───────────────────────────────────────────────
|
||||
- name: input_2_1
|
||||
device: ebc100_main
|
||||
slot: 2
|
||||
point: 1
|
||||
direction: input
|
||||
|
||||
- name: input_2_2
|
||||
device: ebc100_main
|
||||
slot: 2
|
||||
point: 2
|
||||
direction: input
|
||||
|
||||
- name: input_2_3
|
||||
device: ebc100_main
|
||||
slot: 2
|
||||
point: 3
|
||||
direction: input
|
||||
|
||||
- name: input_2_4
|
||||
device: ebc100_main
|
||||
slot: 2
|
||||
point: 4
|
||||
direction: input
|
||||
|
||||
- name: input_2_5
|
||||
device: ebc100_main
|
||||
slot: 2
|
||||
point: 5
|
||||
direction: input
|
||||
|
||||
- name: input_2_6
|
||||
device: ebc100_main
|
||||
slot: 2
|
||||
point: 6
|
||||
direction: input
|
||||
|
||||
- name: input_2_7
|
||||
device: ebc100_main
|
||||
slot: 2
|
||||
point: 7
|
||||
direction: input
|
||||
|
||||
- name: input_2_8
|
||||
device: ebc100_main
|
||||
slot: 2
|
||||
point: 8
|
||||
direction: input
|
||||
|
||||
# ── Slot 3 — Module 3 inputs ───────────────────────────────────────────────
|
||||
- name: input_3_1
|
||||
device: ebc100_main
|
||||
slot: 3
|
||||
point: 1
|
||||
direction: input
|
||||
|
||||
- name: input_3_2
|
||||
device: ebc100_main
|
||||
slot: 3
|
||||
point: 2
|
||||
direction: input
|
||||
|
||||
- name: input_3_3
|
||||
device: ebc100_main
|
||||
slot: 3
|
||||
point: 3
|
||||
direction: input
|
||||
|
||||
- name: input_3_4
|
||||
device: ebc100_main
|
||||
slot: 3
|
||||
point: 4
|
||||
direction: input
|
||||
|
||||
- name: input_3_5
|
||||
device: ebc100_main
|
||||
slot: 3
|
||||
point: 5
|
||||
direction: input
|
||||
|
||||
- name: input_3_6
|
||||
device: ebc100_main
|
||||
slot: 3
|
||||
point: 6
|
||||
direction: input
|
||||
|
||||
- name: input_3_7
|
||||
device: ebc100_main
|
||||
slot: 3
|
||||
point: 7
|
||||
direction: input
|
||||
|
||||
- name: input_3_8
|
||||
device: ebc100_main
|
||||
slot: 3
|
||||
point: 8
|
||||
direction: input
|
||||
|
||||
# ── Outputs (uncomment when output module is added) ────────────────────────
|
||||
# - name: output_4_1
|
||||
# device: ebc100_main
|
||||
# slot: 4
|
||||
# point: 1
|
||||
# direction: output
|
||||
|
||||
|
||||
# ─────────────────────────────────────────────────────────────────────────────
|
||||
# SEQUENCES
|
||||
# name: unique identifier (used in POST /sequences/{name}/run)
|
||||
# description: human-readable label
|
||||
# steps: list of timed actions, executed in t_ms order
|
||||
#
|
||||
# Step fields:
|
||||
# t_ms: milliseconds from sequence T=0 when this step fires (absolute)
|
||||
# action: set_output | check_input
|
||||
# signal: logical_io name
|
||||
# state: (set_output only) true=ON false=OFF
|
||||
# expected: (check_input only) true=ON false=OFF — failure aborts sequence
|
||||
#
|
||||
# ─────────────────────────────────────────────────────────────────────────────
|
||||
|
||||
sequences:
|
||||
# ── Example: verify all inputs on module 1 are OFF at rest ────────────────
|
||||
- name: check_all_inputs_off
|
||||
description: "Verify all 24 inputs are de-energised (rest state check)"
|
||||
steps:
|
||||
- t_ms: 0
|
||||
action: check_input
|
||||
signal: input_1_1
|
||||
expected: false
|
||||
- t_ms: 0
|
||||
action: check_input
|
||||
signal: input_1_2
|
||||
expected: false
|
||||
- t_ms: 0
|
||||
action: check_input
|
||||
signal: input_1_3
|
||||
expected: false
|
||||
- t_ms: 0
|
||||
action: check_input
|
||||
signal: input_1_4
|
||||
expected: false
|
||||
- t_ms: 0
|
||||
action: check_input
|
||||
signal: input_1_5
|
||||
expected: false
|
||||
- t_ms: 0
|
||||
action: check_input
|
||||
signal: input_1_6
|
||||
expected: false
|
||||
- t_ms: 0
|
||||
action: check_input
|
||||
signal: input_1_7
|
||||
expected: false
|
||||
- t_ms: 0
|
||||
action: check_input
|
||||
signal: input_1_8
|
||||
expected: false
|
||||
- t_ms: 0
|
||||
action: check_input
|
||||
signal: input_2_1
|
||||
expected: false
|
||||
- t_ms: 0
|
||||
action: check_input
|
||||
signal: input_2_2
|
||||
expected: false
|
||||
- t_ms: 0
|
||||
action: check_input
|
||||
signal: input_2_3
|
||||
expected: false
|
||||
- t_ms: 0
|
||||
action: check_input
|
||||
signal: input_2_4
|
||||
expected: false
|
||||
- t_ms: 0
|
||||
action: check_input
|
||||
signal: input_2_5
|
||||
expected: false
|
||||
- t_ms: 0
|
||||
action: check_input
|
||||
signal: input_2_6
|
||||
expected: false
|
||||
- t_ms: 0
|
||||
action: check_input
|
||||
signal: input_2_7
|
||||
expected: false
|
||||
- t_ms: 0
|
||||
action: check_input
|
||||
signal: input_2_8
|
||||
expected: false
|
||||
- t_ms: 0
|
||||
action: check_input
|
||||
signal: input_3_1
|
||||
expected: false
|
||||
- t_ms: 0
|
||||
action: check_input
|
||||
signal: input_3_2
|
||||
expected: false
|
||||
- t_ms: 0
|
||||
action: check_input
|
||||
signal: input_3_3
|
||||
expected: false
|
||||
- t_ms: 0
|
||||
action: check_input
|
||||
signal: input_3_4
|
||||
expected: false
|
||||
- t_ms: 0
|
||||
action: check_input
|
||||
signal: input_3_5
|
||||
expected: false
|
||||
- t_ms: 0
|
||||
action: check_input
|
||||
signal: input_3_6
|
||||
expected: false
|
||||
- t_ms: 0
|
||||
action: check_input
|
||||
signal: input_3_7
|
||||
expected: false
|
||||
- t_ms: 0
|
||||
action: check_input
|
||||
signal: input_3_8
|
||||
expected: false
|
||||
|
||||
# ── Example: output sequencing template (requires output module in slot 4) ─
|
||||
# - name: actuate_and_verify
|
||||
# description: "Set output, wait 500ms, verify input feedback"
|
||||
# steps:
|
||||
# - t_ms: 0
|
||||
# action: set_output
|
||||
# signal: output_4_1
|
||||
# state: true
|
||||
# - t_ms: 500
|
||||
# action: check_input
|
||||
# signal: input_1_1
|
||||
# expected: true
|
||||
# - t_ms: 1000
|
||||
# action: set_output
|
||||
# signal: output_4_1
|
||||
# state: false
|
||||
Reference in New Issue
Block a user