liveBook · Manning

Logic control

As explained in Functional Design and Architecture: Examples in Haskell

Logic control is a subsystem that evaluates and directs hardware operation by sending commands, reading measurements, and calculating parameters.

Logic control is the SCADA subsystem that evaluates and directs hardware operation: it sends commands, reads measurements, and calculates parameters. Autonomous logic uses operational data to continuously correct spacecraft orientation and movement. section 3.1.2

Treat logic control as a domain model rather than an all-purpose component. A dedicated embedded DSL can formally represent its rules, document the domain, and give engineers a place to express control logic through an external language, a custom DSL, or both. section 3.1.2

Keep the subsystem loosely coupled through an interoperability bus. Direct connections to hardware, databases, networks, GUIs, and simulators would enlarge logic control’s responsibilities; the bus abstracts interaction and allows implementations to vary. section 3.2.1 section 3.2.2

Develop the design progressively:

  • Start with a requirements or necessity map identifying logic control, hardware protocols, simulators or spacecraft, databases, scripts, GUIs, hardware interfaces, and networks. section 3.1.2 section 3.2.1
  • Expand logic control into an elements diagram, allowing domain terms, layers, libraries, and objects to be related without prematurely imposing architecture. section 3.2.2
  • Separate control intelligence from communication responsibilities, then use the bus to connect the resulting modules. section 3.2.2 section 3.2.1

Spacecraft control

Control intelligence can correct spacecraft rotations or control life-support systems. The application’s logic evaluates measurements, calculates parameters, and issues commands while the interoperability layer mediates interaction with other components. section 3.1.2 section 3.2.2

Figure 3.3 Logic control mind map

Use the logic-control mind map to inspect the subsystem’s requirements and its language, control, and integration concerns. section 3.1.2

How Functional Design and Architecture: Examples in Haskell covers it

How deep it goes
Defines responsibilities, proposes an embedded DSL and interoperability bus, but stops short of specifying their implementations.
Examples
Uses spacecraft orientation correction, rotation control, life-support control, requirements maps, elements diagrams, and an interoperability bus.
What you can do after
Build it from scratch by mapping requirements, separating control responsibilities, and selecting a language representation and decoupling architecture.
How it connects
Connects SCADA, hardware controllers, embedded DSLs, control intelligence, interoperability layers, databases, networks, GUIs, and simulators.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Functional Design and Architecture: Examples in Haskell. The section links point to the parts of the book it draws on.