Directories
¶
| Path | Synopsis |
|---|---|
|
Package acceptance drives a nautilus resource in virtual time, so tests can assert the things a wall clock makes untestable: an on-delay's full PT, a loop's settling time, a rate limit, an interlock's debounce.
|
Package acceptance drives a nautilus resource in virtual time, so tests can assert the things a wall clock makes untestable: an on-delay's full PT, a loop's settling time, a rate limit, an interlock's debounce. |
|
cmd
|
|
|
nautilus
command
`nautilus historian`: a standalone daemon that archives a controller's tags into Postgres and serves downsampled history back out.
|
`nautilus historian`: a standalone daemon that archives a controller's tags into Postgres and serves downsampled history back out. |
|
Package eip is the EtherNet/IP field driver for nautilus: it polls tags on an Allen-Bradley Logix controller (ControlLogix / CompactLogix) and exposes them through the io.Driver seam, so an ST/Go program consumes device tags — including UDT structs and arrays — like any other tag.
|
Package eip is the EtherNet/IP field driver for nautilus: it polls tags on an Allen-Bradley Logix controller (ControlLogix / CompactLogix) and exposes them through the io.Driver seam, so an ST/Go program consumes device tags — including UDT structs and arrays — like any other tag. |
|
cip
Package cip implements EtherNet/IP encapsulation and CIP (Common Industrial Protocol) primitives shared by client and server implementations.
|
Package cip implements EtherNet/IP encapsulation and CIP (Common Industrial Protocol) primitives shared by client and server implementations. |
|
codegen
Package codegen turns a browsed Logix tag database into committed nautilus project files: an ST TYPE block mirroring the UDTs, a Go manifest wiring tag bindings for the eip driver, and suggested VAR_EXTERNAL declarations.
|
Package codegen turns a browsed Logix tag database into committed nautilus project files: an ST TYPE block mirroring the UDTs, a Go manifest wiring tag bindings for the eip driver, and suggested VAR_EXTERNAL declarations. |
|
logix
Package logix is a pure-Go client for the Allen-Bradley Logix tag surface (ControlLogix / CompactLogix) over EtherNet/IP: connected Class 3 explicit messaging, symbolic Read/Write Tag, batched Multiple Service Packet reads, tag-list upload via the Symbol class, and UDT definition upload via the Template class.
|
Package logix is a pure-Go client for the Allen-Bradley Logix tag surface (ControlLogix / CompactLogix) over EtherNet/IP: connected Class 3 explicit messaging, symbolic Read/Write Tag, batched Multiple Service Packet reads, tag-list upload via the Symbol class, and UDT definition upload via the Template class. |
|
logixserver
Package logixserver presents a tag surface as an Allen-Bradley ControlLogix controller over EtherNet/IP: identity, tag-list upload (Symbol class), UDT definitions (Template class), and connected Read/Write Tag — the surface pycomm3's LogixDriver and nautilus's own eip/logix client speak.
|
Package logixserver presents a tag surface as an Allen-Bradley ControlLogix controller over EtherNet/IP: identity, tag-list upload (Symbol class), UDT definitions (Template class), and connected Read/Write Tag — the surface pycomm3's LogixDriver and nautilus's own eip/logix client speak. |
|
examples
|
|
|
heated-tank
command
Command heated-tank is a complete nautilus controller in ~30 lines: an IEC 61131-3 program on a 10 Hz scan loop, driving a simulated field device.
|
Command heated-tank is a complete nautilus controller in ~30 lines: an IEC 61131-3 program on a 10 Hz scan loop, driving a simulated field device. |
|
heated-tank-fbd
command
Command heated-tank-fbd is the heated surge tank controller with its logic written as an IEC 61131-3 Function Block Diagram (.fbd) instead of ST.
|
Command heated-tank-fbd is the heated surge tank controller with its logic written as an IEC 61131-3 Function Block Diagram (.fbd) instead of ST. |
|
tank-batch-sfc
command
Command tank-batch-sfc is a batch tank controller with its logic written as an IEC 61131-3 Sequential Function Chart (.sfc) — nautilus's fourth and last IEC language, alongside ST, FBD, and LD.
|
Command tank-batch-sfc is a batch tank controller with its logic written as an IEC 61131-3 Sequential Function Chart (.sfc) — nautilus's fourth and last IEC language, alongside ST, FBD, and LD. |
|
Package hist is the historian's storage layer: a thin wrapper over Postgres for time-series tag samples.
|
Package hist is the historian's storage layer: a thin wrapper over Postgres for time-series tag samples. |
|
internal
|
|
|
k8sapi
Package k8sapi is a minimal Kubernetes API client for code running inside a pod: the mounted service account's CA and namespace, and its bearer token re-read on every request so token rotation never strands a caller.
|
Package k8sapi is a minimal Kubernetes API client for code running inside a pod: the mounted service account's CA and namespace, and its bearer token re-read on every request so token rotation never strands a caller. |
|
lsp
Package lsp implements a minimal Language Server Protocol (3.17) server for IEC 61131-3 Structured Text, reusing the nautilus lang/st compiler for diagnostics, definitions, hover, and completion.
|
Package lsp implements a minimal Language Server Protocol (3.17) server for IEC 61131-3 Structured Text, reusing the nautilus lang/st compiler for diagnostics, definitions, hover, and completion. |
|
project
Package project loads a manifest-defined nautilus controller: a directory (or embedded archive) holding nautilus.yaml plus IEC program files — the no-Go authoring surface.
|
Package project loads a manifest-defined nautilus controller: a directory (or embedded archive) holding nautilus.yaml plus IEC program files — the no-Go authoring surface. |
|
stproject
Package stproject defines what "the project" means when compiling one Structured Text file: every other .st file in the same directory that is a pure library — TYPE / FUNCTION_BLOCK / FUNCTION declarations with no PROGRAM — is in scope.
|
Package stproject defines what "the project" means when compiling one Structured Text file: every other .st file in the same directory that is a pure library — TYPE / FUNCTION_BLOCK / FUNCTION declarations with no PROGRAM — is in scope. |
|
tagfile
Package tagfile renders a nautilus tag file — the bare YAML list a project composes through `tag-files:`.
|
Package tagfile renders a nautilus tag file — the bare YAML list a project composes through `tag-files:`. |
|
vcs
Package vcs captures a project's git provenance — every commit that touched the project directory, each with its diff and a content-addressed snapshot of the project's files — into a server.ProgramHistory the controller can carry.
|
Package vcs captures a project's git provenance — every commit that touched the project directory, each with its diff and a content-addressed snapshot of the project's files — into a server.ProgramHistory the controller can carry. |
|
Package io defines the field-I/O seam: the runtime reads inputs from a Driver before each scan and writes outputs after.
|
Package io defines the field-I/O seam: the runtime reads inputs from a Driver before each scan and writes outputs after. |
|
lang
|
|
|
fbd
Package fbd compiles IEC 61131-3 Function Block Diagram source (.fbd) to the shared nautilus IR.
|
Package fbd compiles IEC 61131-3 Function Block Diagram source (.fbd) to the shared nautilus IR. |
|
ld
Package ld compiles IEC 61131-3 Ladder Diagram programs written in nautilus's textual rung format.
|
Package ld compiles IEC 61131-3 Ladder Diagram programs written in nautilus's textual rung format. |
|
sfc
Package sfc compiles IEC 61131-3 Sequential Function Chart programs written in nautilus's textual `.sfc` form — a POU whose body is a standard-textual SFC block using the IEC keywords verbatim:
|
Package sfc compiles IEC 61131-3 Sequential Function Chart programs written in nautilus's textual `.sfc` form — a POU whose body is a standard-textual SFC block using the IEC keywords verbatim: |
|
st
Package st implements an IEC 61131-3 Structured Text parser.
|
Package st implements an IEC 61131-3 Structured Text parser. |
|
stgen
Package stgen builds IEC 61131-3 Structured Text type declarations functionally in Go and renders them to ST source.
|
Package stgen builds IEC 61131-3 Structured Text type declarations functionally in Go and renders them to ST source. |
|
Package leader elects exactly one control-owning PLC replica using a Kubernetes coordination.k8s.io/v1 Lease — the same primitive kube-controller-manager uses — via internal/k8sapi against the API server with the pod's service account.
|
Package leader elects exactly one control-owning PLC replica using a Kubernetes coordination.k8s.io/v1 Lease — the same primitive kube-controller-manager uses — via internal/k8sapi against the API server with the pod's service account. |
|
Package retain is a controller's retained memory: operator setpoints and online-edited programs survive restarts, failovers, and redeploys.
|
Package retain is a controller's retained memory: operator setpoints and online-edited programs survive restarts, failovers, and redeploys. |
|
Package runtime is the heart of nautilus: a fixed-interval scan loop that hosts an IEC 61131-3 program on a virtual machine, binding field I/O and operator values through a shared tag store — the same model a real PLC uses.
|
Package runtime is the heart of nautilus: a fixed-interval scan loop that hosts an IEC 61131-3 program on a virtual machine, binding field I/O and operator values through a shared tag store — the same model a real PLC uses. |
|
Package server exposes a nautilus Runtime over HTTP so HMIs, the VS Code extension's inline live values, and any other observer can read (and write) the tag store without bespoke wiring:
|
Package server exposes a nautilus Runtime over HTTP so HMIs, the VS Code extension's inline live values, and any other observer can read (and write) the tag store without bespoke wiring: |
|
Package sparkplug is an MQTT Sparkplug B edge node for nautilus: it publishes the runtime's tag store to a Sparkplug host (Ignition, a broker with a SCADA consumer) and accepts commands back.
|
Package sparkplug is an MQTT Sparkplug B edge node for nautilus: it publishes the runtime's tag store to a Sparkplug host (Ignition, a broker with a SCADA consumer) and accepts commands back. |
|
spb
Package spb holds the generated Sparkplug B protobuf types — the Eclipse Tahu schema (org.eclipse.tahu.protobuf), byte-for-byte the same .proto the joyautomation/sparkplug-tck-go conformance kit uses, so our payloads decode identically under test.
|
Package spb holds the generated Sparkplug B protobuf types — the Eclipse Tahu schema (org.eclipse.tahu.protobuf), byte-for-byte the same .proto the joyautomation/sparkplug-tck-go conformance kit uses, so our payloads decode identically under test. |
Click to show internal directories.
Click to hide internal directories.