Main menu

At the bottom left of the main window is the GEFASOFT button. The button shows indicates the system state by its color. Clicking on the GEFASOFT button opens the main menu:

../_images/main-menu.png

The entries above Functions show the status of various general or project-specific components and plugins in color.

Directly above Functions all PLC connections are listed (or all GInOut hardware connections).

../_images/hw.png

Optionally, an entry for the ConnectionStreamPool is displayed above this, indicating the connection status of the pool.

The item Dongles is always present and shows whether the required license keys (e.g. Gefasoft or Cognex) were found successfully.

This displays status information of individual plugins, which in turn can display multiple messages in a submenu, e.g. the WatchDir plugin or the Vision plugin.

Warning

If the status indicators are not green, an error analysis must be carried out immediately!

Functions

../_images/main-menu-functions.png

The green colored menu items are from the vision plugin.

Global settings

In the “Global Settings”, parameters that apply to the entire application or project are set. The dialog can be extended via plugins, e.g. by the Vision plugin.

../_images/global-settings.png
  1. Settings of the Vision plugin

  2. Settings for managing user tabs and layout children

  3. Settings of the station editor

  4. Language switching

  5. Miscellaneous

  6. Display of the memory usage of individual hard disks. Displayed in the Sidebar if at least one hard disk is monitored.

  7. CommandInterfaceServer settings. See also Command interface (CmdItf).

  8. Configuration of viper-core-relevant MAK project settings

  9. Configuration of the stream pools

  10. Configuration of the GDataExchange in the function menu

  11. Configuration of commands or function calls to the local CommandInterfaceServer (4).

  12. Configuration of the GIO PLC Security

  13. Configuration of the GIO type data

  14. Configuration of the global log level Configuration log level

SaveVersion

See also:

Info Dialog

Display of information about Viper.NET and the loaded project.

../_images/infodialog-configuration.png
  1. Header, replaceable via shellConfiguration.xml.

  2. Display of version and application information

  3. Detailed information

The table in Configuration contains the path to the Viper.NET project in the first row. The remaining lines correspond to the configuration values in the Viper.NET project file.

In Assemblies all currently loaded .NET assemblies are listed:

../_images/infodialog-assemblies.png

Environment variables contains the environment variables that are valid for the process, including those set via the globalParams.xml parameter file.

../_images/infodialog-envvars.png

The command line parameters with which the application was started are displayed in the Commandline params tab.

../_images/infodialog-commandlineparams.png

Under Enabled features the license activations of the dongles from Gefasoft and optionally VisionPro and Halcon are displayed. In addition, a Viper.NET license file can be activated here.

../_images/infodialog-enabledfeatures.png

In the tab Plugins the plugin configuration can be adjusted. After selecting or deselecting plugins, the configuration must be saved with Save and then Viper.NET must be restarted.

Warning

If plugins referenced in the project are deselected, data may no longer be loaded.

../_images/infodialog-plugins.png

All connections that currently exist are displayed in the System diagnostic infos tab. Even unused ones.

../_images/infodialog-system-diagnostic-info.png

Credits contains the license information of all used OpenSource libraries.

../_images/infodialog-credits.png

The Save History shows all save-comments (if active).

../_images/infodialog-savehistory.png

The text box in the Chat tab can be used for on-screen communication between an on-site employee and a service technician connected via remote access when no other communication is possible.

../_images/infodialog-chat.png

Hint

The font size can be changed with Ctrl+mouse wheel.

Transmit shell status to PLC

The shell cyclically transmits its current operating state (MainState) as a UInt32 value to the PLC. A heartbeat bit (bit 31) additionally signals that the connection is active.

Creating a GIO variable

First, a GIO variable of type UInt32 must be created in the GInOut hardware explorer (see GInOut hardware explorer).

../_images/shellState-Vars.png

Configuration of the GIO variable for the shell MainState.

Hint

The fields marked 1–4 must be configured exactly as shown in the figure.

Global settings

Next, the global application settings are used to specify which GIO variable provides the shell MainState to the PLC.

  1. Open the Global App Settings via the menu or the toolbar.

  2. Switch to the Global settings tab (1).

  3. In the Shell mainstate → PLC (GIO-UInt32-Variable) section, select the previously created variable (2).

../_images/shellState-settings.png

Assigning the GIO variable in the global settings.

State overview

The shell MainState is defined as a UInt32. The individual values are structured as bitmasks and can be combined using bitwise OR.

EShellMainState – State overview

Value

Hex value

Description

Undefined

0xFFFFFFFF

Initial value / undefined state

Ok

0x00000000

No error

Warn

0x00000001

General warning

Error

0x00000002

General error

DongleWarn

0x00000011

Dongle warning

DongleError

0x00000022

Dongle error

HardwareWarn

0x00000101

Hardware warning

HardwareError

0x00000202

Hardware error

ConPoolWarn

0x00001001

Connection pool warning

ConPoolError

0x00002002

Connection pool error

PlugInWarn

0x00010001

Plugin warning

PlugInError

0x00020002

Plugin error

HeartBeat

0x80000000

Heartbeat flag (bit 31); signals an active connection

Bitmask logic

Each component (dongle, hardware, ConPool, plugin) occupies its own nibble pair within the 32-bit value. This allows the source of a warning or error to be identified directly from the state value.

Example: 0x80010001 = HeartBeat (0x80000000) | PlugInWarn (0x00010001)

Bit 31 serves exclusively as a heartbeat flag and is not part of the actual state. To obtain the pure state value, the heartbeat bit is removed by masking with 0x7FFFFFFF.

Note

If the PLC does not detect regular toggling of bit 31, communication has been interrupted. In this case, the network connection, port settings, and the running state of the application should be checked.