On this page ยท 4 sections

Scada Studio is built the way graphical dataflow tools are used: a front panel of controls and indicators, a block diagram that computes what they show, and a run arrow. The words are close to the usual ones where the things are the same, and different where they are not. This page is the map.

Term by term

The usual termScada StudioWhere
ProjectA project: pages, diagrams, sources, in one JSON fileProject menu, the project file
VIA page with the diagrams that drive it; the app is every pagePanel and Diagram tabs
SubVI, connector paneA subdiagram: a diagram with Diagram input and Diagram output nodes; a Subdiagram node calls it (the inputs in the order they are placed, top to bottom)Subdiagrams
VI iconThe diagram's icon field (up to three characters) on the nodes that call itThe diagram inspector
Front panel controls and indicatorsThe controls palette on the Panel side: Numeric, Boolean, String, Graph, List & Table, Decorations - presets over the Smart.Industrial components, with owned labelsThe designer
Control / indicator terminals on the diagramPanel value (reads a control), Panel indicator (sets one), Panel control (an event) - placed with the control, named by its owned label, showing its picturePalette: Panel
Find terminal / find controlDouble-click a control on the panel, or a terminal on the diagram; the inspector's Find terminalThe panel, the diagram
Create Control / Create Indicator / Create ConstantThe same three on the right-click menu of a terminalRight-click a terminal
Numeric, Boolean, String, Array, Enum constantsThe Constants palette: Number, Boolean, Text, Array, EnumPalette: Constants
While loop, For loop, i, N, conditional terminalWhile loop and For loop frames with i, N, period, the red stop terminalThe frames
Auto-indexing tunnelThe For loop's collect terminal and array outputThe frames
Shift register, Feedback nodeThe Feedback node (the two are the same thing) - inside a Case or Event of the loop it latches with the loopThe frames
Case structure, selector, output tunnelsThe Case frame: cases, the selector, output tunnels each case wiresCases
Flat sequence structureThe Sequence frameSequences
Event structureThe Event frame, waiting for a panel event or a timeoutEvents
Formula nodeFormula: named inputs and outputs, JavaScript in betweenPalette: Math
Cluster, Bundle, Unbundle by nameA record; Bundle and Unbundle with named fieldsRecords
Wait (ms), Tick Count, Elapsed TimeThe loop's period, Wait, Now, ElapsedPalette: Time
DAQmx, VISA, Modbus, OPC UASources on the agent: DAQmx, VISA and SCPI instruments, Modbus TCP/RTU, OPC UA, simulators; their tags are the Tag and Write tag nodesThe agent, Sources
Waveform Chart, Waveform Graph, XY Graph, Intensity Graph, Digital Waveform GraphThe same names on the Graph palette (the chart with its y and time scales)The designer
Probe, probe watch windowThe Probe node and the message strip; click a wire for its last value; hover a wire for its tooltipThe look
Highlight executionThe bulb in the top barThe top bar
Breakpoints, step, pauseAlt+click sets a breakpoint; F8 steps, F5 continues; Abort ends a paused runBreakpoints
Broken run arrow, error listThe same: the check before a run, the Error list, a broken wire drawn redThe broken arrow
Clean up diagram (Ctrl+U)Ctrl+UKeys
Context help (Ctrl+H)Ctrl+HKeys
Quick Drop (Ctrl+Space)Ctrl+Space in the palette filter, Enter places the first matchKeys
Find (Ctrl+F)Ctrl+F on the diagramKeys
Switch panel and diagram (Ctrl+E)Ctrl+EKeys
Run (Ctrl+R), abortCtrl+R, Ctrl+.Keys
Align objects, distribute objectsThe align tools in the inspector, on the panel and on the diagram, when several are selectedThe inspector
Free labelThe Note nodePalette: Notes
Templates, design patternsThe patterns in the New diagram dialog: Acquire-analyse-display, State machine, Event handler, Measurement loop+ next to the diagram list
Run continuouslyA While loop around the diagram; the panel runs its diagrams while it is shownThe Panel side
Real-time target, deployThe agent: a diagram set to run on the agent runs on the station when the project is publishedPublishing
Application builder, executablePublish: the app is static pages served by the agent or any web server, opened in a browser on the station or anywherePublishing
Local and global variablesA Panel value node reads a control from anywhere; a Write tag to agent.flows.<name> publishes a value every page can bind toPalette: Panel, Devices
Mechanical action (latch when released)A Panel control node fires on the button's event; the diagram acts once per eventPalette: Panel

The same habits

A wire carries one value of one type, and the colours are the usual ones: orange numbers, green booleans, pink text, violet arrays, brown records. A node runs when its inputs have values; there is no order to write down. A value wired into a loop is read when the loop starts, one wired out is delivered when it ends. A request from an operator (a setpoint, a command) goes to the equipment and is confirmed by the read-back - the panel shows the confirmed value, as a good front panel does.

What is different

  • The diagram is data, not code. A project is one JSON file you can read, diff and generate; there is no compiler, no binary. The diagram runs interpreted, in the browser next to the panel, or on the agent in Node.js - fast enough for an HMI or a bench, not for a kilohertz control loop (that belongs in the instrument or the PLC, which the agent talks to).
  • The panel is a web page. It runs in any browser, on the station or on a phone, with the components of Smart.Industrial (ISA-101 themes, alarms, faceplates, trends); the Bench theme and the controls palette are there for the classic look, the industrial set for the plant.
  • Types are few: number, boolean, text, array, record, any - no I8/U32/DBL distinctions, no clusters of clusters, no typedefs. An Enum constant is a text among a list.
  • The Formula node takes a formula, not code. Its text is read by the formula language - arithmetic, comparisons, the functions of Math, if, while and for - and reaches nothing else. The Function node of a message flow is JavaScript; a project file is code where those nodes are, a station runs them only when its configuration allows code, and the security page says what that means.

Not there

A connector pane you draw, other tools' file formats (no import of a VI), a compiler, hardware-timed loops, FPGA and real-time modules, queues and notifiers between loops (a Write tag to the agent's own tags is the way to hand values between diagrams), and vendor libraries of thousands of functions - Scada Studio has 60 node types and the components' own methods.