Guides
Coming from graphical dataflow
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 term | Scada Studio | Where |
|---|---|---|
| Project | A project: pages, diagrams, sources, in one JSON file | Project menu, the project file |
| VI | A page with the diagrams that drive it; the app is every page | Panel and Diagram tabs |
| SubVI, connector pane | A 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 icon | The diagram's icon field (up to three characters) on the nodes that call it | The diagram inspector |
| Front panel controls and indicators | The controls palette on the Panel side: Numeric, Boolean, String, Graph, List & Table, Decorations - presets over the Smart.Industrial components, with owned labels | The designer |
| Control / indicator terminals on the diagram | Panel value (reads a control), Panel indicator (sets one), Panel control (an event) - placed with the control, named by its owned label, showing its picture | Palette: Panel |
| Find terminal / find control | Double-click a control on the panel, or a terminal on the diagram; the inspector's Find terminal | The panel, the diagram |
| Create Control / Create Indicator / Create Constant | The same three on the right-click menu of a terminal | Right-click a terminal |
| Numeric, Boolean, String, Array, Enum constants | The Constants palette: Number, Boolean, Text, Array, Enum | Palette: Constants |
| While loop, For loop, i, N, conditional terminal | While loop and For loop frames with i, N, period, the red stop terminal | The frames |
| Auto-indexing tunnel | The For loop's collect terminal and array output | The frames |
| Shift register, Feedback node | The Feedback node (the two are the same thing) - inside a Case or Event of the loop it latches with the loop | The frames |
| Case structure, selector, output tunnels | The Case frame: cases, the selector, output tunnels each case wires | Cases |
| Flat sequence structure | The Sequence frame | Sequences |
| Event structure | The Event frame, waiting for a panel event or a timeout | Events |
| Formula node | Formula: named inputs and outputs, JavaScript in between | Palette: Math |
| Cluster, Bundle, Unbundle by name | A record; Bundle and Unbundle with named fields | Records |
| Wait (ms), Tick Count, Elapsed Time | The loop's period, Wait, Now, Elapsed | Palette: Time |
| DAQmx, VISA, Modbus, OPC UA | Sources on the agent: DAQmx, VISA and SCPI instruments, Modbus TCP/RTU, OPC UA, simulators; their tags are the Tag and Write tag nodes | The agent, Sources |
| Waveform Chart, Waveform Graph, XY Graph, Intensity Graph, Digital Waveform Graph | The same names on the Graph palette (the chart with its y and time scales) | The designer |
| Probe, probe watch window | The Probe node and the message strip; click a wire for its last value; hover a wire for its tooltip | The look |
| Highlight execution | The bulb in the top bar | The top bar |
| Breakpoints, step, pause | Alt+click sets a breakpoint; F8 steps, F5 continues; Abort ends a paused run | Breakpoints |
| Broken run arrow, error list | The same: the check before a run, the Error list, a broken wire drawn red | The broken arrow |
| Clean up diagram (Ctrl+U) | Ctrl+U | Keys |
| Context help (Ctrl+H) | Ctrl+H | Keys |
| Quick Drop (Ctrl+Space) | Ctrl+Space in the palette filter, Enter places the first match | Keys |
| Find (Ctrl+F) | Ctrl+F on the diagram | Keys |
| Switch panel and diagram (Ctrl+E) | Ctrl+E | Keys |
| Run (Ctrl+R), abort | Ctrl+R, Ctrl+. | Keys |
| Align objects, distribute objects | The align tools in the inspector, on the panel and on the diagram, when several are selected | The inspector |
| Free label | The Note node | Palette: Notes |
| Templates, design patterns | The patterns in the New diagram dialog: Acquire-analyse-display, State machine, Event handler, Measurement loop | + next to the diagram list |
| Run continuously | A While loop around the diagram; the panel runs its diagrams while it is shown | The Panel side |
| Real-time target, deploy | The agent: a diagram set to run on the agent runs on the station when the project is published | Publishing |
| Application builder, executable | Publish: the app is static pages served by the agent or any web server, opened in a browser on the station or anywhere | Publishing |
| Local and global variables | A Panel value node reads a control from anywhere; a Write tag to agent.flows.<name> publishes a value every page can bind to | Palette: Panel, Devices |
| Mechanical action (latch when released) | A Panel control node fires on the button's event; the diagram acts once per event | Palette: 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.