Skip to main content
Version: 7.9

Script Console

Inductive University

Scripting Console

Watch the video

The Script Console is a live python terminal that is only accessible in the Designer. It is a great way to very quickly test a script as it does not rest on a scripting event or specific component. The Script Console can be opened via the Tools > Script Console menu. It consists of two parts: a Multiline Buffer, and an Interactive Interpreter. Code can be typed into both sides.

Due to how "scope" works, the Script Console can not interact with components on a window, but it can call Project and Shared scripts. If a Project or Shared script was recently added, then the console will need to be reset before it can be called. This can be accomplished by clicking on the Reset () button in the upper right.

caution

Gateway scoped information will not appear in either the Script Console or Output Console. Instead, the output will be sent to the wrapper.log file. Alternatively, system.util.getLogger() will send messages to the Gateway Console, and is a preferred method of troubleshooting Gateway scoped scripts.

Features

There are several icons and UI elements located on the Script Console window.

A reference of the icons can be found in the table below:

IconNameDescription
ClearClears the text from the Interactive Interpreter.
ResetClears and resets the text, and deletes all user defined objects (variables and functions) from the Interactive Interpreter.
Expand/CollapseExpands/Collapses Multiline Buffer and Interactive Interpreter.
Syntax Error HighlightShows up next to a line in the Multiline Buffer identifying an error. Hover over the Error Symbol to see information on the exception.

Multiline Buffer

The Multiline Buffer, located on the left side of the Script Console, allows for multiple lines of code to be entered and then executed by clicking on the button. All print statments will output to the Interactive Interpreter. It also supports code folding for function definitions and comments.

Font Size Adjustment

Font size in the Multiline Buffer can be adjusted by holding Ctrl and scrolling the mouse wheel.

Right Click Menu

Right-clicking on the Multiline Buffer opens a menu. The menu options are described in the table below.

Main Menu Options

NameDescription
UndoUndoes the last action.
RedoGets rid of the last undo action.
CutCuts the selected text.
CopyCopies the selected text.
PastePastes the selected text.
DeleteDeletes the selected text.
Select AllSelects all text in the window.

Folding

NameDescription
Toggle Current FoldExpand or collapse the fold where the text cursor is located.
Collapse All CommentsCollapse all instances of multi-line comments. Only contiguous comments are collapsible.
Collapse All FoldsCollapse all expanded folds.
Expand All FoldsExpand all collapsed folds.

Autocompletion

NameDescription
Automatic ActivationDetermines if the Autocompletion window to automatically appear. When set to true, the window will appear after a second of inactivity once at least "system." has been typed. When set to false, the window can still be brought up manually by pressing Ctrl+Space.
Show Description PaneDetermines if the Description pane should appear in the Autocompletion window.

Themes

NameDescription
DefaultUses the default theme with light background, dark characters.
DarkUses a dark theme with dark background, light characters.
Visual StudioUses a theme reminiscent of Visual Studio. Light background, dark characters.

Find/Replace

Pressing Ctrl+R while the text cursor is in the Multiline Buffer opens a Find and Replace window. This will search for instances of text throughout the Multiline Buffer, and allows the user to replace all or some instances with new text.

Keyboard Shortcuts

The following shortcuts apply only to the Multiline Buffer.

KeysDescription
Ctrl + </> (on the number pad)Collapse all folds.
Ctrl + <*> (on the number pad)Expand all folds.
Ctrl + <-> (on the number pad)Collapse the fold on the same line as the text cursor.
Ctrl + <+> (on the number pad)Expand the fold on the same line as the text cursor.
Ctrl + <Space>Open Autocompletion window. By default, the window will automatically open once "system." has been typed.
Ctrl + <R>Open Find/Replace window.
Ctrl + <Mouse Wheel Scroll>Increase and decrease the font size.

Interactive Interpreter

The Interactive Interpreter is located on the right side of the Script Console, and allows you to run a single line of code at a time. Code is executed from the Interactive Interpreter by pressing the Enter key. Print statements from both sides of the Script Console will appear in the Interactive Interpreter.

The Autocompletion window, available in the Interactive Interpreter, has access to the current working environment so items such as Project and Shared scripts will automatically appear. They can also be typed in manually.

Keyboard Shortcuts

The following shortcuts apply only to the Interactive Interpreter

KeysDescription
Ctrl + <L>Clear the Interactive Interpreter. Functionally the same as clicking the Clear button.
Ctrl + <R>Reset the Interactive Interpreter. Functionally the same as clicking the Reset button.
Up arrowCycle backward through command history.
Down arrowCycle forward through command history.
Ctrl + <C>Keyboard interrupt.
Ctrl + <Space>Open Autocompletion window. By default, the window will automatically open once an "object." has been typed such as "system" or "project," and a Project script has already been defined.
Ctrl + <A>Move the text cursor to the start of the line. Similar to pressing the Home key.

Output Console

The Output Console is the script-writer's best friend. It is a dockable panel, and can be opened via the Tools > Console menu or the Ctrl-Shift-C keyboard shortcut.

The Output Console is most frequently used to test and debug Python scripts on components in Ignition. By using the print keyword in your script, you can observe the inner workings of your script as it executes. For example, if you executed the following script:

Python - Using the Output Console to Test and Debug Python Scripts
# A function that intercepts tag writes, printing out the previous value first
def writeToTag(path, value):
prevValue = system.tag.getTagValue(path)
print "Writing value '%s' to %s, was previously '%s'" % (value, path, prevValue)
system.tag.writeToTag(path, value)

writeToTag("Compressor/HOA", 2)

It would print the following to the console:

Writing value '2' to Compressor/HOA, was previously '0'

note

The Output Console is also available in the Vision Client from Help > Diagnostics and selecting the Console tab.