CLAD Exam
why use state programming?
-can change the order of a sequence -can repeat an item in a sequence more often than others -states execute only if certain conditions are met -can stop the program immediately
what is the VI server used for?
-programmatically control front panel objects and VIs -dynamically load and call VIs -run VIs on a computer or remotely across a network -programmatically access the labview environment and editor (scripting)
what are property nodes used for?
-read and write the properties of an object -make modifications programmatically to the appearance of the front panel in response to certain inputs
Which file format(s) is best for sharing data? ASCII, TDMS, or Direct Binary?
ASCII (next best is TDMS)
Which mechanical action cases a Boolean control in the FALSE state to change to TRUE when you click it and stay TRUE until LabVIEW has read the value?
Latch when pressed
square route of a negative number will result in
NaN
which file formats allow for high-speed streaming?
TDMS (NOT binary, ASCII, LVM)
If an input to a function is marked with a red dot (known as a coercion dot), what does this dot indicate?
The value passed into a node was converted to a different representation.
what causes events?
actions that the user performs (ex. mouse click, keyboard, etc). similar idea to pushbutton interrupt
error handling
anticipation, detection, and resolution of warnings and errors
which file formats have inherent attributes?
binary and tdms (NOT ASCII, LVM)
which file formats allow random read/write access?
binary, TDMS, LVM (NOT ASCII)
what do invoke nodes do?
call methods or actions on objects (referenced items).
type definition
can have a different name, description, default value, size, color, style of control as long as the data type matches the master copy of the control
strict type definition
everything about the control must be identical across all instances (excluding name, description, default value)
what happens when errors are handled using error clusters
execution continues, but the node with the error is skipped. errors are propagated and passed to successive nodes
what type of property node can you use to update a property from inside a subVI?
explicit property node
which mechanical action (switch or latch) is guaranteed to be read at least once by labview?
latch
why would you use a notifier over a queue to pass data between parallel loops?
notifiers can broadcast a notification to multiple loops (with queues, elements can be dequeued only by one loop)
how many event structures should you place in a loop?
one
latch until released
value of button will change when button is pressed, then change back once the button is released and labview has the value. it will stay pressed until the button is released and labview has read the value.
wait (ms) - what does it do?
wait until input ms amount
Initialize Array inputs (1d and 2d)
1d: element (what you initialize it to), dimension size (how many elements there are) 2d: element (what you initalize it to), num rows, num cols)
delete from array (1d and 2d)
1d: original array, length, index. deletion begins at the index (i.e. ele at index is deleted) 2d: original array, length, index (row), index (col). same as above
insert into array (1d and 2d)
1d: the original array, the start index, the new subarray to be inserted. the new sub array is inserted such that the first element of the sub array becomes the element at the start index. 2d: the original array, the start index (row), the start index (col), the new sub array. new array is inserted such that first element becomes element at the start index.
which file formats are easily exchangeable?
ASCII, TDMS, LVM (NOT binary -- i guess bc binary just looks like a bunch of symbols)
what are common log file formats?
ASCII/LVM, binary, TDMS
Divide by zero will result in
Inf
Which file format(s) is best for efficiency? ASCII, TDMS, or Direct Binary?
TDMS, Direct Binary
Which file format(s) is best for numeric precision? ASCII, TDMS, or Direct Binary?
TDMS, Direct Binary
does Show Tool Bar operate on a VI or Control class?
VI
error handler
a vi or code that changes normal flow of program execution when an error occurs
execution timing
allows the processor time to complete other tasks
automatic error handline
at run time, labview suspends execution, highlights node, and displays error dialog box
which would NOT result in a broken run arrow? a. a subVI is broken b. the diagram includes a divide by zero c. a required subVI input is unqired d. a boolean terminal is wired to a numeric indicator
b (would result in an output of infinity, but the code would still run)
which file formats have a small disk footprint?
binary, tdms (NOT ASCII, LVM) -- probably bc more compact
Integer color
blue
1-d array data line type
bold straight
error codes can be zero/nonzero/both? what is the status if an error has occurred?
both; true
waveform data type
carries the data, start time, and dt of a waveform
does Format and Precision operate on a VI or Control class?
control
does Reinitialize to Default Value operate on a VI or Control class?
control
does Visible operate on a VI or Control class?
control
2-d array data line type
double straight
Boolean color
green
software control timing
times a real-world operation to perform within a set time period. controls the frequency at which a loop executes
implicitly vs explicitly linked property nodes:
implicitly linked: right clock control and select what object to link the node to explicitly linked: node has a reference input, which determines which object the node will operate on
why would you use event structures over polling?
minimizes CPU usage. With polling, you must continually poll the front panel for changes. Also, event structure does not lose user events, because it uses an event queue to store and handle events in the order in which they occur. Polling runs the risk of missing the occurrence of an event while another one is being handled. also, events execute on demand
can you have an array of arrays?
no
if you change the characteristics of a type definition control, will it change all instances of the type def?
no
warning codes can be zero/nonzero/both? what is the status if a warning has occurred?
nonzero; false
why would you use a queue over a notifier to pass data between parallel loops
notifiers don't buffer data, so receiving loops only receive the latest notification
notify events vs filter events
notify events: when a user action has occurred, complete a task filter events: when a user action has occurred, evaluate if the task is safe to complete (ex. is the word doc that's about to be closed saved?), and if it isn't, don't do it
if the input label of a sub VI is dimmed in the context help window, this terminal is:
optional
Floating point color
orange
String color
pink
waveform graph
plots all points at once
sweep chart
plots left to right. a moving vertical line marks the beginning of new data and moves across the display from left to right as it adds new data. lets you compare old vs new data. kinda like those radar graphs in submarines (idea-wise)
strip chart
plots left to right. keeps plotting continuous new data, like a paper tape strip chart recorder (e.g. lie detector graphs)
scope chart
plots left to right. when it reaches the right border, it erases the plot and begins plotting again from the left border.
waveform chart
plots points as they come in. Scope, sweep, strip.
use queues or local variables to transfer data between parallel loops?
queues
draw backs of using variables?
race conditions may occur (situations where the timing of events or scheduling of tasks may unintentionally affect outputs or values). for ex: two different computations running in parallel, their results passed to the same local variable. we don't know what value the local variable will hold.
if the input label of a sub VI is plain in the context help window, this terminal is:
recommended
after opening a file, what output does the open/create/replace file i/o function return?
refnum out (different from file path)
functional global variable
removes possibility of a race condition
if the input label of a sub VI is bolded in the context help window, this terminal is:
required
in what order are properties executed in a property node?
top down
in relation to state transition diagrams, what is a state and what is a transition?
state: part of a program that satisfies a condition, performs an action, or waits for an event transition: condition, action, or event that causes the program to move to the next state
error cluster elements
status (true if error occurred); code (32-bit signed int); source (string)
dynamic data type
stores the info generated or acquired by an express vi
path data type
stores the location of a file or directory
what is a sequence structure?
structure with frames, where each frame executes in order
what are notifier functions?
suspend the execution of a block diagram until it receives data from another section of the block diagram or from another VI running in the same application instance
which mechanical action for a windows dialog?
switch until released
polymorphism
the ability of VIs and functions to automatically adapt to accept input data of different data types; arithmetic functions
modularity
the degree to which a program is composed of discrete modules such that a change to one module has minimal impact on other modules
switch when pressed
the value of the button will be true when the button is pressed. It will stay pressed until you press it again
latch when released
the value of the button will change when the button is released. when the value is read by labview, it will change to the default state. it will stay pressed until labview reads the value of the control. then it will return to its default state
scalar data line type
thin straight
latch when pressed
value of button will change when button is pressed. when value is read by labview, it will change to the default state. it will stay pressed until labview reads the value of the control. then it will return to its default state
switch when released
value of he button will change when you release after pressing it. it will stay pressed until you press it again
switch until released
value of the button will change when the button is pressed, then when it is released it will change back. it will stay pressed until you release it
elapsed time express VI - what does it do?
wait until input seconds (not ms) amount
wait until next ms multiple - what does it do?
waits until next multiple of input ms amount
weakly vs strictly typed control references
weak: more flexibility with the kind of data they accept strict: accept only control refs of exactly the same data type
which structure must run at least one time? for loop/while loop/both
while loop
how to avoid race conditions from variables
write to variable from one source, read from it from any number of places. try to use wires over variables most of the time.
if you change the characteristics of an enumerated type, will it change all instances of the enum?
yes
why might you want to avoid using a sequence structure?
you can't stop the execution in the middle of a sequence. the order of the sequence is set, and can't be changed (for this reason, state machines would be preferable)
manual error handling
you control when dialog boxes appear, propagate errors with error clusters, terminate error chain with simple error handler VI
why might you want to use a sequence structure?
you don't have to wire the errors to specify a sequence