What is ModFrame

ModFrame is a software tool made to support fast development and configuration of model based systems for process operation applications. ModFrame may be viewed as a development environment for model based process control applications. However, it may be used as a basis for many different computations which are to be performed cyclic. ModFrame consists of a set of components performing different tasks.

ModFrame is thus a set of software tools with the following purposes:

  • Defining computational algorithms for control of a process or for simulation purposes based on predefined algorithms and hierarchically organized control blocks.

  • Configuration of numerical process descriptions and process topologies by drawing process diagrams on a computer screen.

  • Configuring and parameterizing these models/algorithms.

  • Execution of on-line model based process supervision and control functionality.

  • Interaction and communication with existing control system and process I/O functionality via Apis Hive. Apis Hive is both an OPC server and has the possibility to communicate with other OPC server through its OPC client.

  • The component based structure ensures re-usability and flexibility.

Application structure

ModFrame consists of a server and a client which runs independently of each other. The client connects to a server and configures it, but it can be closed without affecting the server's computations.

Servers perform the actual computations, and several servers can run on different machines and share the computational load by passing data to each other through ApisHive's OPC mechanisms. Data from an external I/O system will also typically be retrieved from ApisHive.

The client, as opposed to the server, has an advanced user interface (UI), enabling the configuration of the server as well as displaying current computational results. Several clients can connect to a single server, and configure or view results simultaneously.

The basic UI is a graphical process representation, where each process unit or computational unit (real or conceptual/functional) is represented by a graphical icon in a process graphics picture. For a chemical process part, this graphic representation may look like a simplified process flow sheet with computational units attached (controllers, optimisers, soft sensors).

Dependencies

  • ModFrame is a Java-application and the Java Runtime Environment (JRE) 1.6 must be installed on the computer running ModFrame.
  • If ModFrame is to run in the ApisHive environment, the ApisJavaBee must be installed.
  • The ModFrame installation kit runs currently only in Windows. If ModFrame is to be used on other platforms, please contact Prediktor for installation instructions. www.prediktor.no.

Installation

By double-clicking the ModFrame.msi file, the ModFrame application will be installed. Both the server and client software will be installed. It is currently not possible to only install the server or the client. After installation go to the All Programs->APIS->ModFrame where there will two items: ModFrame Client and ModFrame Server.

Choose the ModFrame Server and observe that the server window is displayed.

Choose the ModFrame Client and observe the client window is displayed. Connect to the server started in the previous steps.

See also: Classpath and JavaOptions.

Using ModFrame

Concepts

Server

Introduction

The server can either run stand-alone or as part of the ApisHive application through the ApisJavaBee-module. The ModFrame server will perform the actual computations and communicate with I/O systems for instance through the ApisHive framework. It runs independently of whether one or more clients are connected. It can be configured to load an application file and start performing computations when the it starts both as a stand-alone server and when it runs as a part of the ApisHive framework.

Stand-alone server

When the server runs as stand-alone, it can be started by selecting the following entry All Programs->Apis->ModFrame->ModFrame server.

Server settings

The server settings will be read from the serverstart.ini file in the ModFrame installation directory. This is a text file where one line can contain one setting. The default value column indicates the value of the setting if it is not present in the file.

Server settingDescriptionDefault value
ServernameThe name of the ModFrame server.ModFrameServer
StartFileThe application file to load when the ModFrame server starts.
MaxClientsThe maximum number of clients. If the value is negative the number of clients is unlimited.Unlimited
maxConfigModeThe maximum number of clients that can be in configuration mode simultaneously.1
StartOnLoadThe application will start running computations automatically when the ModFrame server is started.False
WindowVisibleIf false the server window will not visible.True
ApplicationPathThe path to where the application files are stored.The home directory of the user.
LibraryPathThe path to where library files are stored.The home directory of the user.
StateFilesPathThe path to where the state files are stored.The home directory of the user.
XMLEncodingThe encoding used on the (xml) application files.UTF-8
LoginManagementIf true, enables authentication when clients try to connect to the server.False
SampleTimeThe initial time interval [ms] between computations.1000
RedirectStandardOutIf true, there will be a window in the server window displaying the standard out messages.True
RedirectStandardErrIf true, there will be a window in the server window displaying the standard err messages.True
InitialRMIPortThe port on which the RMI registry accepts requests. If the port is taken, the next port is attempted.1099
RemoteObjectPortThe port number on which the remote object receives calls (if zero, an anonymous port is chosen).0
ShutdownActionThe action which will be performed when the application is shut down. (None, Save)None
TransactionLockTimeoutThe time [ms] an external transaction can take before being timed out. (E.g. when a Tracker transaction is performed from a web page.)25000

Batch file

It is possible to create a batch file which starts the server with custom settings. Below is an example of the contents of a batch file. This must be altered to fit the installation. Using batch files it is possible to set all java options as well as the ini-file containing the elements described above.

Batch file
Copy Code
C:\\\Program Files\Java\jdk1.6.0_03\bin\javaw.exe -Xmx768m -XX:+UseConcMarkSweepGC -verbose:gc -Dswing.defaultlaf=javax.swing.plaf.metal.MetalLookAndFeel -Djava.security.policy=java.policy -classpath C:\\\Apis\ModFrame\ModFrame.jar;C:\\\Apis\ModFrame\xml.jar;C:\\\Apis\ModFrame\jtds-1.2.2.jar;C:\\\Apis\ModFrame\ClickAndTrace.jar; com.modframe.server.MFServer "C:\\\Apis\ModFrame\serverstart.ini"

Part of the ApisHive Framework

The ModFrame application can run inside the ApisHive process through the ApisJavaBee-module. In this case the settings described for the stand-alone server will be exposed as properties in the ApisJavaBee-module, and the class-path and java options are set in registry.

ApisJavaBee

This module will load a java-application. Items can be created and connected to ports in ModFrame.

Properties

PropertyDescriptionDefault value
ExchangeRateThe exchange rate in milliseconds when retrieving values from external items0 (Turned off)
RunStates whether the ModFrame is performing computations.False
JavaAppVisibleSpecifies if the ModFrame server window is visible or not. (If ApisHive is run as a windows server, the window is always invisible.)True.
JavaAppStartfileThe application file which will be opened when ApisHive is started.
ApplicationFilePathThe path to where the application files are stored.The ApisHive config folder
LibraryFilePathThe path to where the library files are stored.The ApisHive config folder
TimeStepThe computational time interval [ms] between the computations.1000
TimerThe time interval [ms] of the timer trigging the computations. This interval is the real-time interval between computations, whereas TimeStep is the simulated time interval. If the system is to be run  real-time these two properties should be equal.1000
MaxItemBufferStrategySpecifies the size of the item buffer. The item buffer will be used when a computation cycle has not finished within its time slot. A snapshot of the current item values will be put in the item buffer. When the computation cycle has finished it will read the item values from the buffer and performing computations with those values. This is useful when a sudden CPU load of the computer running ApisHive makes the computations take longer than anticipated. If the CPU load persists the item buffer will be filled to its maximum size, and warnings will be issued. If this situation is recurring either the timer interval should be increased or the CPU usage must be decreased.
Having a large maximum size will increase memory usage of ApisHive!
20
EventReportLevelThe level of the reported events from the java application. (E.g. if Warning is chosen, Warning and Alarm events will be reported, but the Information events will not.)

Expert properties

PropertyDescriptionDefault value
TimeReferenceItemAn item whose value will be used as a time reference for this module instead of the system time. This means that the sample time in ModFrame will vary depending on the value of this item.
StartupJavaClassThe java class which contains the startup method (StartupMethod). The default value points to the correct ModFrame class, and should not be changed when using ModFrame.com/modframe/server/MFServer
StartupJavaMethodThe static java method in the StartupJavaClass run when the module is started. The default value points to the correct ModFrame method, and should not be changed when using ModFrame.main
NativeJavaClassThe java class which contains the defintion of the native C-functions. The default value points to the correct ModFrame class, and should not be changed when using ModFrame.com/modframe/server/ApisConnector
SaveActionThe action to be performed when the application shutsdown (None, Save)None
ItemWriteMaskingSet the quality level of items that will be written to the Java application from this moduleWrite all qualities
PersistedValToInitValChoose strategy for copying and persisting current value to the InitValue.Never
PersistedStateDestinationThe destination of the state files. If the destination is not specified the states will not be persisted. The destination can either be to a file or to items. If the destination is a file the StateFileFolder property must be set to a valid folder where the files will be stored. If the destination is Items the StateLoggers property must be set to valid logger(s) to log the state of the application in Apis Honeystore.None
StateLoggersThe loggers which will log the state if PersistedStatesDestination is Items.
AutoDeletePersistenceItemsIf PersistedStateDestination is Items (or Both files and items) items will be created behind the scenes in which the states will be stored. An item of this type will be removed if the last persistence action did not include the state which corresponds to this certain item and this property is set to true. The reason why one might to turn off this option is to reduce the time spent on persisting the states.
StateFileFolderThe folder in which the state files are stored.

Items 

There are different types of items in the ApisJavaBee. Scalar, Vector and Matrix items can be connected to ports in ModFrame.

Scalar

The Scalar item type represents a scalar value of boolean, string or double precision floating point value. The value type is controlled with the ItemType attribute. It can only be chosen when creating an item and not be altered later on. The InputValue attribute specifies if the value is an input value to ModFrame or not.

ItemTypePort equivalent
BoolDigital port
DoubleAnalog port
StringString port

Vector

The Vector item type represents a vector/array value of boolean, string or double precision floating point value. The value type is controlled with the ItemType attribute. It can only be chosen when creating an item and not be altered later on. The InputValue attribute specifies if the value is an input value to ModFrame or not.

ItemTypePort equivalent
BoolN/A
DoubleAnalog vector port
StringString vector port

Matrix

The Matrix item type represents a matrix value of boolean, string or double precision floating point value. The value type is controlled with the ItemType attribute. It can only be chosen when creating an item and not be altered later on. The InputValue attribute specifies if the value is an input value to ModFrame or not.

ItemTypePort equivalent
BoolN/A
DoubleAnalog matrix port
StringN/A

StateFileItem

An item for setting the state file name. The folder which it will be stored in or read from is specified in the StateFileFolder property. The PersistedStateDestination property must also be set to File(s).

Attributes

AttributeDescription
FileAccessDecides whether the file specified in the item is in read, write or read/write mode.
TriggerOnChangeIf true the state file will be read/written to when the item changes
IncludeStateFileFolderIf true the state file will be put in the StateFileFolder, otherwise it will be stored in the current directory
ForceStopBeforeReadWill force the application to go to the STOPPED state before starting to load the state file. If this attribute is false, the application must be put in the STOPPED state manually.

StateTriggerItem

An it for trigging state reading or writing.

AttributeDescription
ReadStatesIf true triggers reading of states, if false triggers writing. All files specified in the StateFileItems with the FileAccess set to Read will be read when this value is true and the ReadStates is true. If ReadStates is false all files specified in the StateFileItems with the FileAccess set to Write will be writtent o when this value is true.

 

CommandItem

The command button can start and stop computations in ModFrame.

AttributeDescription
CommandTypeThe type of command performed when the item's value is set to true. (Run/Stop)
ResetWill perform a reset in the ModFrame at the next iteration after the command has been executed if true

StatusItem

The status items show the current status of the server.

AttributeDescription
StatusAsStringDisplays the current status as a string instead of an integer

Advanced

Class path

The class path is stored in the default value of the registry key:

HKEY_CLASSES_ROOT\Prediktor.ApisJava\CLASSPATH

ModFrame may stop working if this value is altered. Do not change the value unless you know what you are doing!

Java options

The java options are stored in the default value of the registry key:

 HKEY_CLASSES_ROOT\Prediktor.ApisJava\JAVAOPTIONS 

Altering this value may cause ModFrame to stop working properly.
The -Xrs property should always be present as the absence of this value will force ModFrame to terminate when a user logs off.

Application

A ModFrame application is the set of components residing in a ModFrame server at any given time. The application is hierarchical in that some components can contain other components. There will always be a single root parent component called the top application which is responsible for the computational algorithm. The application can be saved to and opened from files. The application files are stored on a particular folder on the server, and the clients can browse that folder and choose files from it. The application file location is set in the server settings. There are two file formats available (xml and mfz). The xml file format is a pure xml file and tend to become large. The mfz file format is a compressed version of the xml file, and is better suited for large applications.

It is possible to make the server open a particular application file automatically when the server starts up through the server settings.

Application states

It is possible to take snapshots of the current state of the application and store it to files (or Apis items). Even though the application files also contain snapshot information it also contains configuration information making the files large and relatively slow to open. As opposed to this the state files generally become small and very fast to open.

The state files contain what is needed for an application to reach the same state as it was in when the states were persisted. It depends largely on the component what is considered to be the states. In addition to the inner states of the components, the port values are persisted.

A state file will only work and load the correct if the application has not changed since when the states were persisted.

The location of the states files are controlled in the server settings.

Computational algorithm

The server will perform computations on a cyclic basis. In an application there must be a root parent called a top application. The top application is a ModFrame component that is a container. A container can contain child components. The child components can both be ModFrame components and views. By adding a ModFrame components that are containers to the top application, it is possible to create a component hierarchy.

The computational algorithm of the child ModFrame components is decided by each container. For the detailed computational algorithm see the documentation of the particular container. Even though it is up to the container to decide the computational algorithm, there are two distinct algorithms that will be common to most containers.

Parallel computations

When the computations are performed in parallel, that means that the container will iterate through its child component list twice. The first iteration will read all input ports and perform the actual computations. The next iteration will write the results to the output ports. This algorithm ensures that the computational results will be independent on the computational position of the child components. However it will also have that consequence that value will take longer to propagate through components connected serially. Let's say that we have three ModFrame components connected to each other in this way: component1's output is connected to component 2's input and component 3's input is connected to component 2's output. A change on component 1's input will take three computational iteration's to reach component 3's output.

Sequential computations

When the computations are performed sequentially, the container will only iterate through its child component list once. In that iteration each component  will copy values to its input ports from the output ports of other components, read the input ports, perform computations and write to its output ports sequentially. The computational results of this algorithm are very dependent on the order of the child components. It's easier to make mistakes with this algorithm in the configuration phase, but it has the advantage of being able to propagate signals faster through connected components. The propagation can in this scenario only take one time step if the components are ordered correctly.

ModFrame component

A ModFrame component (MFC) is a software component performing one or more dedicated tasks. Examples of such tasks are: mathematical simulation of process equipment (pipes, tanks, heat exchangers), reading online data and performing computations on them, communicating with databases through JDBC.

A ModFrame component will have one or more property pages depending on the complexity of the component. The behavior of the component is influenced by changing these properties. ModFrame components interact with other ModFrame components through ports. The number of ports and the meaning of these ports vary from component to component, but generally ports are created and deleted by changing the properties of a component.

In the user interface the ModFrame component will be represented by an image, preferably indicating the task the component is performing.

Container

A container is a special ModFrame component which can contain other ModFrame components and views. The container will perform computations on its child components based on its computational algorithm. The container can expose ports of its child components making it possible to communicate with components in other containers. It is possible to group a set of components as a container and also ungroup a container.

In the user interface the container looks like an ordinary ModFrame component, but it can be expanded to edit the contents of the container.

Ports

The preferred way of exchanging data between ModFrame components is through ports. Ports can be connected to other ports and receive and or send information from/to those ports. There are different types of ports containing different types of data. There are two major types or ports: Unidirectional and bidirectional. In the unidirectional ports information will always flow in one direction. Whereas in bidirectional ports information will flow in both directions. The computational algorithms of the containers specifies and enforces the data exchange between the ports.

In the user interface the ports will reside inside of the image of a ModFrame component as a small movable square.

Unidirectional ports

The following table lists the available unidirectional ports in ModFrame proper. Extensions to ModFrame such as the Tracker modules may define additional ports. Unidirectional ports are either input or output ports and they can only be connected to the same port types of the opposite direction. (Inputs can only be connected to outputs, and vice versa.)

Unidirectional portData typeNotes
Analog matrixA matrix of double precision floating point valuesThe number of rows and columns of the matrix can be either static or changed depending on the connected port.

Bidirectional ports

ProcessPorts.

Overview

The ModFrame client is the tool for configuring a ModFrame application. The client can be connected to one server at the time, but several clients can simultaneously be connected to the same server. The client displays the contents of the connected server graphically in the Configuration panel, as well as the component hierarchy in the Browser.

The Menu and the Tool bar is used for operations, as well as popup menus on the components in the configuration panel and  browser. Messages (information, warning and alarms) are presented in the Log view.

Starting the client

After ModFrame has been installed the ModFrame client can be started by selecting All Programs->Apis->ModFrame->ModFrame client.

 Batch file

It is possible to create a batch file which starts the client with custom settings. Below is an example of the contents of a batch file. This must be altered to fit the installation. Using batch files it is possible to set all java options. It is also possible to give a file name as a parameter containing settings for the client.

Batch file
Copy Code
C:\\\Program Files\Java\jdk1.6.0_03\bin\javaw.exe -Xmx500m -Dswing.defaultlaf=javax.swing.plaf.metal.MetalLookAndFeel -Djava.security.policy=java.policy -classpath C:\\\Apis\ModFrame\ModFrame.jar;C:\\\Apis\ModFrame\xml.jar;C:\\\Apis\ModFrame\ClickAndTrace.jar; com.modframe.client.MFClient "C:\\\Apis\ModFrame\clientsettings.ini"

Client settings

The following settings can be applied to the client by adding them to the client settings file.

PropertyDescriptionDefault value
ProductNameThe name of the productModFrame
AutoConnectIf true the server set in the InitialConnectionServer connected automatically on startup.
InitialConnectionServerThe server to connect to on start up. The format is rmi://ip-address/servername:port
ServerReadIntervalThe interval [ms] between reconnect attempts when the server connection is lost and the interval between history value updates. Cannot be less than 1000 ms1000
HelpExecThe location of the help file.current-directory/help
RemoteObjectPortThe RMI port. Use when the client/server are separeted by firewall.Automatically obtained.

User interface elements

Menu

The menu bar consists of menus performing different tasks on the client and server. Consider the tool bar for additional operations.

File

File commandShortcut keyTask
NewCtrl+NCreates a new application.
Open...Ctrl+OOpen an existing application.
SaveCtrl+SSave the current application
Save as...Save the current application a specific filename.
Load states...Load a states file.
Save states...Save the states file.
Import connections...Import port and I/O connections.
Export connections...Export port and I/O connections.
PrintPrints the configuration pane.
PreferencesOpens the preferences dialog.

 Application

Application commandShortcut keyTask
Create MFC...Creates a new ModFrame component.

Edit

Edit commandShortcut keyTask
CutCtrl+XCuts the selected components.
CopyCtrl+CCopies the selected components.
PasteCtrl+VPastes the cut or copied elements.
DeleteDeleteDeletes the selected components.

View

View commandShortcut keyTask
Properties...Opens the application view dialog.
View definition...Opens the view dialog.
Layer definition...Opens the layer dialog.
Create plot...Creates a historical plot tab.
Grids...Opens the grid dialog.

Server

View commandShortcut keyTask
Properties...Opens the application view dialog.
View definition...Opens the view dialog.
Layer definition...Opens the layer dialog.
Create plot...Creates a historical plot tab.
Grids...Opens the grid dialog.

Tool bar

The tool bar consists of buttons and other UI elements performing tasks on the client and server. Consider the menu for additional operations.

NameIconTask
Port connection  Toggles whether it is possible to connect ports in the client.
Port move  Toggles whether it is possible to move the ports in the client.
Select viewN/ASelects the active view.
Select layersSelects the visible layers.
Zoom  Performs zooming in the configuration panel.
Log viewHides/shows the log view.
Container barHides/shows the container bar.
HelpOpens the user manual.

Browser

The browser contains two (or three if a data source component is present in the application) tabs.

Application tab

The first tab displays the current application in hierarchical tree view. The root node of that tree represents the root ModFrame component (top application). The child components of that component is displayed on the next level and so on. In addition all the ports of a component is displayed as nodes in the tree. By right-clicking the component node a menu will be displayed. The application tab has the possibility to filter the components by name, and also ordering the components both by computational order as well as alphabetically.

Component tab

The component tab displays the available components which can be added to the application. The components are displayed in a tree view grouping common components by their functionality. There is a filter in the tab making it possible to filter the components by name.

History tab

The component tab presents available historic data sources in a tree view. The data sources will contain items which can be plotted or shown in a table.

Configuration panel

The configuration panel is where the ModFrame components and data views are displayed. The configuration of the components take place in this panel after components have been added to them. Each container can be made to display its child components in the configuration panels. A new tab will be created for each container when the container is made to display its child components.

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Log view

The log view displays messages from the server. The messages are displayed in a table. The first column displays a severity icon indicating information, warning or alarm. The second column displays the time of the message. The third column contains the source(s) (typically component name) of the message. The last column contains the actual message.

The log messages can be logged to files as well.

Container bar

The container bar will show the hierarchy position of a container making it easy to find parent and child controls of a container.

Server connection dialog

The server connection dialog makes it possible to connect to a server. The tables below describes the fields and buttons in the dialog.

FieldDescription
ComputerThe name or IP address of the computer where the ModFrame server resides. The previous entries will be stored, and can be selected from the combo box.
PortThe IP port which the server communicates through (typical value is 1099-1200). By clicking the magnifying glass, it will be searched for a server from the port number and the 4 next ports. If no server is found the user can choose to search for a server in the next 5 ports etc.
ServerThe name of the ModFrame server. Previous entries will be stored, and can be selected from the combo box.
User nameThe user name. (Only applies if the server demands authentication.)
PasswordThe password for the user. (Only applies if the server demands authentication.)
Auto-update server listIf checked the server list will automatically update when the computer entry changes.
ButtonAction
ConnectConnects to the server with the parameters entered in the fields.
CancelCancels connection and close dialog.
Update server listGets the server list from the current computer entry.

Add component dialog

The add component dialog makes it possible to create a ModFrame component to the connected server. The tables below describes the fields and buttons in the dialog.

FieldDescription
TypeA list of components that can be added to the server.
NameThe name of the component.
ButtonAction
OkCreates the component with the parameters entered in the fields.
CancelCancels connection and close dialog.

Basics

Connecting to a server

Connection to the server can be obtained by clicking the Connect to server button in the tool bar. By filling in appropriate entries in the server connection dialog and clicking connect, the client will be connected.

Error messages....

The client can be made to automatically connect to a specific server when it starts. This is obtained by creating a batch file for the client.

Configuration mode

When the client is in configuration mode it is possible to alter the configuration. When it is not in configuration mode, the user is only able to view the configuration and results.

The configuration mode is toggled by clicking the configuration mode button. Menus, buttons and other components may be disabled and enabled when client toggles between the configuration modes.

Add a ModFrame component

The user can either add a ModFrame component with the tool bar, menu or by dragging the component in to the configuration panel from the components tab. The last option enables the user to place the component in the panel initially, but the top application must be added by the two first options since the configuration panel does not exist.

Either one of the options will display the add component dialog. The user can select from the list and choose an appropriate name of the new component. If a component with the name supplied already exists in the container.

Add a container

A container can be added by either clicking the Add container button in the tool bar (the Add component dialog will be pre-selected with the AdaptableContainer), or by clicking the Add component button in the tool bar in which case the user must locate the container manually.

Edit properties

Properties of components are edited by right-clicking on the component and selecting Edit properties in the pop-up menu. A dialog box will generally contain a set of property pages, as well as a button row. The buttons are OK, Cancel and Apply.

The properties are updated in the server when OK or Apply are pushed. The OK button also closes the dialog box. Properties may depend on each other and depending on the complexity of the component, the user may have to click the Apply button several times when changing a set of properties. The property pages will be updated each time the user clicks Apply.(A component may for instance create or delete properties depending on the value of other properties.)

Depending on the property, the value may be not validated when OK or Apply is clicked. If the user has chosen an illegal property value, a warning box will be displayed notifying the user of the error. The properties will not be actually written to the server component until the properties have been validated.

Changing property values of a component will generally change the behavior of the component. Ports may for instance be created or removed when editing properties.

Non-container components will display the property dialog box when double-clicked, where as the container components will expand itself when double-click.

Consult the documentation for each component for more information on the properties available and their meanings.

Connect ModFrame components

ModFrame components communicate with each other through ports. Ports can connected in two ways:

Port connection dialog

The port connection dialog is opened by right-clicking the component for which you want to connect ports and by choosing the Connect Ports menu entry. The port connection dialog contains two views. The first view contain filters and the ports of the component from which the dialog was opened, and the second view contains filters and all the other components in the container.

Filters

The left filters are a data type filter and a port name filter. By selecting entries in the DataType filter only ports that correspond to that data type will be shown. The port name filter works with wild cards so by setting the filter value to *tag* only ports with the word tag in them will be visible.

The right filters function in the same manner, but it is also possible to add extra limitations. If the Compatible ports check box is checked the right view will change when ports are clicked in the left view. Only ports that can be connected will be displayed in the right view. If the Follow left filter is checked the port name filter for the left filter is used.

Connection

Several connections can made in the dialog simultaneously, but the actual connections will only take place when the Ok button is clicked. The connection is made by either dragging and dropping the port from the left view to the right or by selecting the port in the left and right view and by clicking connect. Disconnect is performed by selecting the connected ports and clicking Disconnect.

Graphical port connection

The port connections can be made directly in the Configuration panel as well. To do this the Tool bar button must be clicked. Then the user must click either one of the ports to connect, a line will appear and be attached to the port. By clicking the other port the connection is finalized and the connection line will be drawn between the ports.

Add a data display

A data display for a port is created by right-clicking the port and selecting Create Data View menu item. A dialog is displayed with the following fields:

FieldDescription
MFCThe components which contains the port which the display is to show values.
PortThe name of the port whose value will be shown in the display.
View typesSelects the view which you want to display.
Add toAdd to existing view. (Only works for certain views.)

Choose the data view and click ok.

Group components

It is possible to group several components in a container. The connections to components outside the selection will be maintained after the grouping. To group components select the components and right-click one of them and select Edit->Group components. Enter the desired name of the component and click Ok.

To ungroup the components right-click the container and choose Edit->Un-group, and the components will be ungrouped.

Exporting and importing port connections

Exporting connections

Port connections can be exported to a text file. This is useful when similar components are repeatedly added to a configuration. If the port names are similar it is fast to search and replace component and port names and import port connections instead of having to manually connect the ports.

Port connections can be exported either by selecting File->Export connections... or by selecting the components to export port connections for and right-clicking one of the selected components and selecting Edit->Export connections. The first case will export connections for all components in the root container, where as the latter case only exports connections for the selected components.

The export connections dialog will be displayed:

The Ports check box indicate that port to port connections will be exported. The I/O check box indicates that port to Apis item or Apis item to port connections will be exported. The sub-components check box indicates that connections of components inside components that are containers will be exported.

The connections file will be saved on the client.

Importing connections

Port connections can be imported. This means that connections between ports can be made by importing a text file containing the connections.

To import connections select File->Import connections. A standard file selection dialog is displayed, and by selecting a file containing the connections, port connections are made.

File structure

The port connections file contains six tab separated columns. (There is no heading). The columns are shown below:

Column 1 (Input)Column 2 (Input)Column 3 (Input)Column 4 (Output)Column 5 (Output)Column 6 (Output)
Contains the complete component name of the component. The complete name consists of the all the container names down to the component. The component names are surrounded by a angular brackets.The port or item nameTrue if Apis item, False if portContains the complete component name of the component. The complete name consists of the all the container names down to the component. The component names are surrounded by a angular brackets.The port or item nameTrue if Apis item, False if port
Port connection file
Copy Code
<asf><asf><Format> Time false <asf><asf><Time> CurrentTime false
<asf><asf><Dec> Time false <asf><asf><Time> CurrentTime false

Exporting and importing components

Export

Components can be exported to file. This means that it is possible to reuse components created for one application in another. Both views and ModFrame components is exportable.

To export a set of components do the following:

  • Select the components you wish to export.
  • Right-click on one of them and select Export...
  • A file dialog appears where you must give the file a name, click ok and the file is created.
The file will be saved in the folder specified in the LibraryPath property (stand alone server) or LibraryFilePath (server runs in the ApisHive context)

Import

To import an exported file, first make sure that the file is in the correct folder. Then right-click the container's background an choose Edit->Import Raw... or Edit->Import Default.

For non-Tracker components these two options are equal. For Tracker components Import Raw means that the tracker components keep the exported IDs. (MaterialDefintionID and so forth.) The safest bet is to use the Import Default option which sets all the IDs of the Tracker components to default values.

Controlling computations

Users can control the server's computations from the client. This is done from the tool bar.

Server parameters

The server parameters consist of the current server settings. Some of these settings are set from the serverstart.ini file (stand-alone server) or ApisJavaBee properties (server is run in the ApisHive context).

The server parameters can be viewed (and some of them changed) by selecting the top menu item Server->Server properties.

The following parameters are listed.

ParameterDescriptionRead-only
Timer intervalThe time interval between computationsFalse
Logical sample time [s]The time stepFalse
Server nameThe name of the server currently connectedTrue
IP-addressThe ip-address of the server currently connectedTrue
RMI portThe rmi port of the server currently connectedTrue
Application fileThe name of the current application fileTrue
Application files pathThe folder which the applications are stored inTrue
State files pathThe folder which the state files are stored inTrue
Library files pathThe folder which the library files are stored inTrue
XML-encodingThe encoding of the application xml file.True
Shutdown-actionSpecifies an action at shutdownTrue
Save-modeSpecifies the format of the application xml file.False
Enable debug messagesIf true debug messages will be displayedFalse
Maximum clientsThe maximum number of clients that can be connected to the serverTrue
Maximum clients concurrently in configuration modeThe maximum number of clients that can be in configuration mode simultaneously.True
Start in run-modeTrue if the server starts in run modeTrue
Redirect standard errorSpecifies if the standard error is redirected to the server window.True
Redirect standard outSpecifies if the standard out is redirected to the server window.True
Server window visibleIf true the server window is visibleTrue
User input enabled on serverIf true the user can interact with the serverTrue
User must log on to serverIf true the user must log on when connecting to the server.True
Remote Object portThe RMI port used.True
Transaction lock timeoutFalse

Views

A view is specified by coordinates in the configuration panel. After having defined a set of views, the user can select a view and navigate to it. This makes it faster and easier for users to navigate in the configuration panel.

A view is defined by selecting View->View definition in the top menu. The following dialog is displayed:

By clicking the Add button a new view is defined. Give the view a sensible name, and fill in the other items as desired.

Layers

It is possible to define layers for the application. Components can be assigned to one specific layer, and from the client it is possible to choose which layers are visible. If a component belongs to a layer which isn't visible, the component will be hidden.

To create a layer select View->Layer definition.  Each layer must have a unique level. After layers have been defined, views can include one or more layers. The user can select which layer is visible directly in the tool bar as well.

Modframe Components

Array operations

VectorAccumulator

Creates double vectors from a single double input value. There is a port which contains the current index where the double input value will be put. The vector will be accumulated until the AccumulateNewVector port becomes true. At this point a new vector will be created where the input values will be put. If the Vector Delay property is larger than 1 the older vectors will be shifted.

The AccumulateNewVector signal must be true before the accumulating starts.

When the WriteVector signal goes high the oldest accumulated vector will written to the output port. The vector will be removed from internal list of accumulated vectors. If a new WriteVector signal is sent before the AccumulateNewVector is true, the oldest vector value will be written, but now this vector will not be deleted and subsequent WriteVector signals will write that vector until an AccumulateNewVector signal has been issued.

The proper and most intuitive way of accumulating vectors will thus be to signal AccumlateNewVector as many times as there are supposed to be buffered vectors (as given by the Vector delay property) and then signal AccumlateNewVector and WriteVector every other time.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Vector length

The length of the generated vectors

Vector delay

The number of vectors buffered. Each time the AccumulateNewVector signal is called the current vectors are shifted in the buffer. If the buffer is of equal length as this property, the oldest vector will be discarded.

Accumulation rules

Specifies when the input value is written to the accumulated vector.

The options are

  • First value - The value will be accumulated when the index port value is changed.
  • Last value - The value will be accumulated continuously (this means that the last value will be accumulated).

Initial element value

Specifies the value of the elements prior to being set. All elements not set by the index/value pair will maintain this value.

The options are:

  • NaN - The initial value will be NaN (Not a number).
  • 0.0 - The initial value will be 0.0.

Ports

Port nameDescriptionDirectionType
ValueThe value to be inserted in the currently accumulating vector.InputAnalog port
ValueIndexThe index where the value will be inserted in the currently accumulating vector.InputAnalog port
AccumulateNewVectorSignals if a new vector will be created and starts to accumulate. The older vectors will be shifted in the buffer.InputDigital port
WriteVectorSignals if the oldest vector will be written to Vector port.InputDigital port
VectorContains an accumulated vector.InputAnalog vector port

Converters

Analog2ProcessPorts

Converts several analog inputs to one process port.

Properties

Parameters

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Vectors

DimConc

Decides the number of concentrations. Changing this will alter the number of concentration ports.

FlowPortVisible

If value is greater than zero, the analog flow port is visible.

DensityPortVisible

If value is greater than zero, the analog density port is visible.

EnthalpyPortVisible

If value is greater than zero, the analog enthalpy port is visible.

PressurePortVisible

If value is greater than zero, the analog pressure port is visible.

TempPortVisible

If value is greater than zero, the analog temp port is visible.

ConcPortsVisible

If value is greater than zero, the analog concentration ports are visible.

Ports

Port nameDescriptionDirectionType
FlowThe flow value to be inserted in the process port.InputAnalog port
DensityThe density value to be inserted in the process port.InputAnalog port
EnthalpyThe enthalpy value to be inserted in the process port.InputAnalog port
PressureThe pressure value to be inserted in the process port.InputAnalog port
TemperatureThe temperature value to be inserted in the process port.InputAnalog port
Conc 1 - NThe concentration value to be inserted in the process port.InputAnalog port
ProcessPortThe resulting process port with values form the analog ports.OutputProcess port

Decoder

The Decoder component is designed for value translation in the ModFrame application. On the basis of a set of defined translations (Code sets), the component will translate an input value provided on an input port and provide the result on an output port. The input and output may be analog, digital or string values.

Properties

The properties of this component are organized in multiple tabs. The separate tabs are described dedicated sub topics.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Dimension

This property defines the dimension of the ports providing the input values and the ports providing the translated values. These ports may be vector or scalar.

Input type

This property defines the data type of the input port and the value to translate from.

Output type

This property defines the data type of the translated value and the port on which to provide the translated value.

Default output code

This property defines the default translation for values that appear on the input port but does not match the code sets.

Code set location

This property decides if the code sets is defined internally in the component or are provided on input ports to the component. The alternatives are:

  • Internal. The code sets are defined through the code sets tab of the component.
  • External. The code sets are provided on code set ports.

Code sets

This tab defines the valid translations when the Code set location property is Internal. The number of possible translations is unlimited.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

InputCode

This column defines the values that can be translated

OutputCode

This column defines the translations of the values defined in the corresponding element of the InputCode column.

Ports

Input

This is the input port providing the value(s) for translation. The dimension of the port may be scalar or vector depending on the Dimension property.

Output

This is the output port providing the translated value(s). The dimension of the port may be scalar or vector depending on the Dimension property.

Activate

This is a digital port that can be used to activate/deactivate the component. If the component is deactivated, no translations will occur.

Code set ports

The code set ports appear when the Code set location is External.

  • InputCodeSet. This is a vector port defining the values that can be translated.
  • OutputCodeSet. This is a vector port defining the translations of the values defined on the InputCodeSet port.

NumToString

This component is designed to convert a numerical value to a string of a specific format.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

ReportEventLevel

All events with equal or higher severity will be reported.

Decimal format

This property defines the format of the converted string.

Ports

NumberValue

This is the port providing the numerical value to convert to a string.

StringValue

This port provides the string representation of the numerical value provided on th NumberValue port.

ProcessPort2Analog

Converts a process port to several analog ports representing the different parts of the porcess port (flow, pressure, density etc.)

Properties

Parameters

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Vectors

DimConc

Decides the number of concentrations. Changing this will alter the number of concentration ports.

FlowPortVisible

If value is greater than zero, the analog flow port is visible.

DensityPortVisible

If value is greater than zero, the analog density port is visible.

EnthalpyPortVisible

If value is greater than zero, the analog enthalpy port is visible.

PressurePortVisible

If value is greater than zero, the analog pressure port is visible.

TempPortVisible

If value is greater than zero, the analog temp port is visible.

ConcPortsVisible

If value is greater than zero, the analog concentration ports are visible.

Ports

Port nameDescriptionDirectionType
FlowThe flow value to be retrieved from the process port.OutputAnalog port
DensityThe density value to be retrieved from the process port.OutputAnalog port
EnthalpyThe enthalpy value to be retrieved from the process port.OutputAnalog port
PressureThe pressure value to be retrieved from the process port.OutputAnalog port
TemperatureThe temperature value to be retrieved from the process port.OutputAnalog port
Conc 1 - NThe concentration value to be retrieved from the process port.OutputAnalog port
ProcessPortThe process port from which values are picked to be inserted in the analog ports.InputProcess port

StringAppend

This component concatenates a number of input strings to form a concatenated output string.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

ReportEventLevel

All events with equal or higher severity will be reported.

Delimiter

This property can be used to define a delimiter to separate the concatenated strings.

Number of strings to append

This property defines the number of strings to concatenate, and hence the number of input string ports.

Ports

Input string ports

The component contains a configurable number of string input ports providing the strings to concatenate.The name of these ports are String 1 - String N. 

Appended string

This port provides the concatenated string.

Activate

This is a digital port that can be used to activate/deactivate the component. If the component is deactivated, no concatenation will occur.

StringParser

This component is designed to parse an input string for numerical values.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

ReportEventLevel

All events with equal or higher severity will be reported.

Maximum number of parsed values

This property defines the maximum number of numerical values to parse from the input string. If the input string contains more numerical values, these will be neglected.

Delimiter

This property defines the delimiter used to separate the numerical values in the input string

Decimal separator

This property defines the decimal separator used in the input string.

Result type

This property defines how to expose the result. The alternatives are:

Ports

StringValue

This port provides the string to parse for numerical values.

Parsed value ports

The parsed values are either exposed on a string vector port named ParsedValues or N scalar string ports named ParsedValue1 to ParsedValueN.

Deprecated

SoftPlc

The SoftPlc component is deprecated. The blocks of the SoftPlc is ported to ModFrame components. The tables below contains the corresponding ModFrame component to a SoftPlc block.

Analog

SoftPlc blockModFrame componentNotes
ABSAbsoluteValue
ADDSum
ANADELAYSignalDelayThe new component delays several input types.
CEILCeiling
CONVN/A
COSCosine
COUNTERPulseCounterUsed together with Compare.
COUNTER2PulseCounter
DERIVTimeDerivation
DIVDivision
EXPExponential
FLOORFloor
GAINN/AUse Multiplication instead.
HOLDTimeStepDelayThe new component delays several input types.
INCIncrement
INTGRTimeIntegral
LFILTLowpassFilter
LIMITLimit
LINMODLinearModel
LOGLogarithm
MAXMaximum
MEANMean
MEDIANN/A
MINMinimum
MULTMultiplication
NUM2STR
PIDSee Control toolbox.
POWNPower
RANDOMRandom
RAMPUPDNN/A
ROUNDRound
SAMPHOLDSamplingThe new component handles several input types.
SELINDigitalMultiplexerThe new component handles several input types.
SELINNMultiplexerThe new component handles several input types.
SELPARDigitalMultiplexerNo need for parameter/property.
SELPARINDigitalMultiplexerNo need for parameter/property.
SINSine
SQRTSquareRoot
STDStandard Deviation
SUBSubtraction
TANTangent
TIMESTEPSampleTime
YPOWXPower

Digital

SoftPlc blockModFrame componentNotes
ANDAND
BITANDBitwiseAnd
CMPRHCompareTests both for low and high limits.
CMPRLCompareTests both for low and high limits.
CODECMPR2N/A
CODECMPR3N/A
COMPINCompare
COMPINEQEqual
DIGDELAYSignalDelaySelect Digital as SignalType.
DIGSELINNMultiplexerSelect Digital as SignalType.
DLATCHSamplingSelect Digital as SignalType.
INVInvert
MONOLastingPulse
OROR
OSCSquarePulse
PULSEDELPulseDelayThe PULSEDEL delayed for one time step less than it should.
RSRSFlipFlop
SAMPLESamplingSample Trigger must be High and SignalType must be Analog.
SNAPEVENTMå lages
SWITCHDigitalMultiplexer
TIMROFFPulseLowDelay
TIMRONPulseHighDelay
XORXOR

Linear Algebra

SoftPlc blockModFrame componentNotes
ADDSum
APPENDAugmentThe new component is more complicated, but can be used as the APPEND block.
COLUMNColumnsSelection
COLUMNDIMDimension
DELAYTimeDelay
DETDeterminant
DIFFN/ACan obtain the same functionality with TimeStepDelay and Subtraction
EIGEigenvalues
ELEMElementsSelection
ELEMCOUNTDimension
ELEMINElementsSelection
ELEMSETSetElements
IDENTITYIdentity
IDENTITYSCIdentity
INSROWInsertRows
INVERSEInverse
MULTMultiplication
NORM1Norm
NORM2Norm
NORMFNorm
NORMINFNorm
NULLSCNull
RANDOMRandom
RANKRank
RMROWRowsRemove
ROWRowsSelection
ROWDIMDimension
SAMPHOLDSampling
SCALARMULTScalarMultiplication
SELINDigitalMultiplexer
SELINNMultiplexer
SUBSubtraction
SVDSingularValueDecomposition
SVDUSingularValueDecomposition
SVDVSingularValueDecomposition
TRANSPTranspose
VEC2VECN/A

Math

Scalar

Arithmetics

Division

Divides the dividend input by the divisor input. (c = a/b)

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Divide by zero action

Specifies the output value if the divisor is zero. The alternatives are:

  1. Zero - The output becomes zero
  2. NaN - The output becomes NaN (not a number).
  3. Infinity - The value is either positive or negative infinity, depending on the dividend.
  4. PortValue - The value is retrieved from a port.

Ports

Port nameDescriptionDirectionType
DividendContains the value above the fraction bar.InputAnalog port
DivisorContains the arguments which will be summed.InputAnalog port
ResultContains the division value.OutputAnalog port

Multiplication

 Multiplies the inputs and writes the result to the output.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Inputs

The number of inputs which will be multiplied.

Ports

The number of input ports will vary depending on the Inputs property.

Port nameDescriptionDirectionType
Argument 1 to NContains the arguments which will be multiplied.InputAnalog port
ResultContains the multiplied value of the inputs.OutputAnalog port

Subtraction

Computes the difference between the minuend with the subtrahend. Example: c − b = a. c is the minuend, b is the subtrahend and a is the difference.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Ports

Port nameDescriptionDirectionType
MinuendContains the minuend value. (The minuend is c in the equation: c - b = a)InputAnalog port
SubtrahendContains the subtrahend value. (The subtrahend is b in the equation: c - b = a)InputAnalog port
DifferenceContains the difference between the minuend and the subtrahend.OutputAnalog port

Sum

This component sums two or more analog inputs and writes the sum to an analog output.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Inputs

The number of inputs which will be summed.

Ports

The number of input ports will vary depending on the Inputs property.

Port nameDescriptionDirectionType
Argument 1 to NContains the arguments which will be summed.InputAnalog port
ResultContains the summed value of the inputs.OutputAnalog port

Calculus

SampleTime

Exposes the current sample time in a port.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Ports

Port nameDescriptionDirectionType
Sample timeContains the current sample time.OutputAnalog port

TimeDerivation

The time derivation of the input value. The time derivation is found by subtracting the current input value with the input value of the previous time step and dividing the result by the sample time.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Ports

Port nameDescriptionDirectionType
Input valueContains the value for which the time derivation value is found.InputAnalog port
ResultContains the value of the time derivation.OutputAnalog port

TimeIntegral

The time integral of the input value. When the reset port is true, the integral value will be reset to zero. If the hold port is true the integration is paused.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Gain

The value gain property is multiplied with the current integral value. It is possible to expose this property as a value.

Ports

Port nameDescriptionDirectionType
Input valueContains the value which will be time integrated.InputAnalog port
ResetIf the value is true the integrated value (Result) will be reset to zero.InputDigital port
HoldIf the value is true the integrated value (Result) will be held constant.InputDigital port
ResultContains the value of the time integration.OutputAnalog port

Statistics

Mean

Finds the mean of the input signal. A window size can be applied in which case older input values have less significance on the mean value (i.e. a forgetting factor).

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Window size

The window size specifies the weight of the previous values compared to the new value. If the current time step has exceeded the window size, previous mean value is given the weight of the (Window size - 1)/Window size whereas the new value is given the weight of 1/(Window size). This implies that the new values are given more weight than the older values. If no weighing is to take place set the window size to a very large number.

Ports

Port nameDescriptionDirectionType
Input valueContains the value which for which the mean value will computed.InputAnalog port
ResetIf the value is true the mean value (Result) will be reset to zero.InputDigital port
HoldIf the value is true the mean value (Result) will be held constant.InputDigital port
ResultContains the current mean value.OutputAnalog port

Standard Deviation

Finds the mean and standard devation of the input signal. A window size can be applied in which case older input values have less significance on the mean and standard deviation (i.e. a forgetting factor).

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Window size

The window size specifies the weight of the previous values compared to the new value. If the current time step has exceeded the window size, previous mean and standard deviation values are given the weight of the (Window size - 1)/Window size whereas the new value is given the weight of 1/(Window size). This implies that the new values are given more weight than the older values. If no weighing is to take place set the window size to a very large number.

Ports

Port nameDescriptionDirectionType
Input valueContains the value which for which the mean and standard deviation will computed.InputAnalog port
ResetIf the value is true the mean and standard deviation will be reset to zero.InputDigital port
HoldIf the value is true the mean and standard deviation  will be held constant.InputDigital port
MeanContains the current mean value.OutputAnalog port
Standard deviationContains the current standard deviation.OutputAnalog port

Trigonometrics

Acosine

Finds the arc-cosine value of the input. The output is given in radians.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Ports

Port nameDescriptionDirectionType
Input valueContains the value for which the arc cosine value will be found.InputAnalog port
ResultContains the arc cosine value in radians of the input.OutputAnalog port

Asine

Finds the arc-sine value of the input. The output is given in radians.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Ports

Port nameDescriptionDirectionType
Input valueContains the value for which the arc sine value will be found.InputAnalog port
ResultContains the arc sine value in radians of the input.OutputAnalog port

Atangent

Finds the arc-tangent value of the input. The output is given in radians.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Ports

Port nameDescriptionDirectionType
Input valueContains the value for which the arc tangent value will be found.InputAnalog port
ResultContains the arc tangent value in radians of the input.OutputAnalog port

Cosine

Finds the cosine value of the input. The input is given in radians.

Browser path: Math\Scalar\Trigonometric\Cosine

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Ports

Port nameDescriptionDirectionType
Input valueContains the value in radians for which the cosine value will be found.InputAnalog port
ResultContains the cosine value of the input.OutputAnalog port

Sine

Finds the sine value of the input. The input is given in radians.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Ports

Port nameDescriptionDirectionType
Input valueContains the value in radians for which the sine value will be found.InputAnalog port
ResultContains the sine value of the input.OutputAnalog port

Tangent

Finds the tangent value of the input. The input is given in radians.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Ports

Port nameDescriptionDirectionType
Input valueContains the value in radians for which the tangent value will be found.InputAnalog port
ResultContains the tangent value of the input.OutputAnalog port

AbsoluteValue

This component takes the absolute value of the analog input and writes it to the output.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Ports

Port nameDescriptionDirectionType
Input valueContains the value for which the absolute value will be found.InputAnalog port
ResultContains the absolute value of the input.OutputAnalog port

Ceiling

Finds the smallest integer not less than x, or, formally

  

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Ports

Port nameDescriptionDirectionType
Input valueContains the value for which the ceiling value will be found.InputAnalog port
ResultContains the ceiling value of the input.OutputAnalog port

Exponential

The input value is run through the exponential function (y = e x).

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Ports

Port nameDescriptionDirectionType
Input valueContains the value for which the expontial value will be found.InputAnalog port
ResultContains the expontial value of the input.OutputAnalog port

Floor

Finds the largest integer less than or equal to x. Formally, for all real numbers x,

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Ports

Port nameDescriptionDirectionType
Input valueContains the value for which the floor value will be found.InputAnalog port
ResultContains the floor value of the input.OutputAnalog port

Increment

Increments the output value according to the Increment Value property each time step. The initial value is set by the Initial value property.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Initial value

The initial value of the output. The output is reset to the initial value when the Reset port is high. It is possible to expose this property as a port.

Increment value

The output is incremented each time step with this value. It is possible to expose this property as a port.

Ports

Port nameDescriptionExposed propertyDirectionType
ActiveIf true, the increment will be comupted. If false the output is held constant.FalseInputDigital port
ResetResets the output value to the initial value.FalseInputDigital port
Initial valueThe initial value of the increment.TrueInputAnalog port
Increment valueThe increment value.TrueInputAnalog port
ResultContains the current incremented value.FalseOutputAnalog port

LinearModel

Computes the linear equation: Sum(ai * xi), where ai is the i'th parameter and xi is the i'th input signal.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Model parameters count

The number of model parameters. This property creates properties a1-aN and M input ports where N is the value Model parameters count property.

a1 - aN

The N'th model parameter.

Ports

The number of input ports will vary depending on the Properties.

Port nameDescriptionDirectionType
Input value 1 to NContains the arguments which will be multiplied with the a1 to N parameter.InputAnalog port
ResultContains the result of the linear equation.OutputAnalog port

Logarithm

 Finds the natural logarithm of the input. (y = ln(x))

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Ports

Port nameDescriptionDirectionType
Input valueContains the value for which the natural logarithm will be found.InputAnalog port
ResultContains the natural logarithm of the input.OutputAnalog port

Maximum

 Finds the maximum of the inputs.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Inputs

The number of inputs for which maximum will be found.

Ports

The number of input ports will vary depending on the Properties.

Port nameDescriptionDirectionType
Argument 1 to NContains the values from which the maximum will be found.InputAnalog port
ResultContains the maximum value of the inputs.OutputAnalog port

Minimum

Finds the minimum of the inputs.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Inputs

The number of inputs for which minimum will be found.

Ports

The number of input ports will vary depending on the Properties.

Port nameDescriptionDirectionType
Argument 1 to NContains the values from which the maximum will be found.InputAnalog port
ResultContains the maximum value of the inputs.OutputAnalog port

Power

Finds the power where one input is the base and the exponent is either a port input or a property.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Exponent

The exponent of the power function. The property can be exposed as a port.

Ports

Port nameDescriptionExposed propertyDirectionType
Input valueContains the base for the power function.FalseInputAnalog port
ExponentContains the exponent for the power function.TrueInputAnalog port
ResultContains the resulting power value.FalseOutputAnalog port

Round

Rounds the input value to the nearest integer.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Ports

Port nameDescriptionDirectionType
Input valueContains the value which will be rounded to the nearest integer.InputAnalog port
ResultContains the rounded value of the input.OutputAnalog port

SquareRoot

Finds the square root of the input signal.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Ports

Port nameDescriptionDirectionType
Input valueContains the value which will be rounded to the nearest integer.InputAnalog port
ResultContains the rounded value of the input.OutputAnalog port

Linear algebra

Augment

Creates a matrix from several matrices. The Rows and Columns properties decide how many input matrices there are and where in the resulting augmented matrix these matrices will appear.

For instance if the Rows and Columns properties are set to 2, 4 input matrices are created. The first input matrix will be placed in the upper left corner of the resulting matrix, the second in the upper right corner, the third in the lower left corner, and the fourth in the lower right corner.

If the input matrices do not match in terms of rows and columns with the matrices on the same row or column, zeros are inserted.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Rows

The number of rows matrices are inserted in the resulting matrix.

Columns

The number of columns matrices are inserted in the resulting matrix.

Ports

The number of input ports will vary depending on the Rows and Columns properties.

Port nameDescriptionDirectionType
Argument [0 to Rows - 1, 0 to Columns - 1]Contains the matrix which will be placed at the specified position in the resulting matrix.InputMatrix port
Augmented matrixContains the augmented matrix.OutputMatrix port

ColumnsRemove

Removes one or more columns from a matrix. The number of columns to remove are specified with the Column count property, and changing this value will create or delete properties called: Column 1 - N where N is the value of the Column count property.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Column count

The number of columns to remove from the input matrix.

Column 1 - N

The zero based column index of the column to remove from the matrix. This property is exposable.

Ports

Port nameDescriptionExposed propertyDirectionType
Input matrixContains the matrix from which columns will be removed.FalseInputMatrix port
Column 1 - NContains the zero based column index of the column to remove from the matrix.TrueInputMatrix port
MatrixContains the matrix with the columns specified removed.FalseOutputMatrix port

ColumnsSelection

Selects one or more columns from a matrix. The number of columns to select are specified with the Column count property, and changing this value will create or delete properties called: Column 1 - N where N is the value of the Column count property. The selected columns can either be exposed as one matrix or one matrix (with one column) for each selected column by changing the Output type property.

If one of the column indices are illegal the corresponding column in the resulting matrix is filled with zeros and an error message is written once.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Column count

The number of columns to select from the input matrix.

Output type

Decides how the selected columns are exposed. Two options:

  1. Single Matrix: The selected columns are exposed in one common matrix
  2. Individual Matrices: The selected columns are exposed in individual matrices (with one column) for each column.

Column 1 - N

The zero based column index of the column to select from the matrix. This property is exposable.

Ports

Port nameDescriptionExposed propertyNotesDirectionType
Input matrixContains the matrix from which columns will be selected.FalseInputMatrix port
Column 1 - NContains the zero based column index of the column to select from the matrix.TrueInputMatrix port
MatrixContains the matrix with the selected columns.FalseOnly exists when the Output type property is Single MatrixOutputMatrix port
Selected Column 1 - NContains the selected column in a matrix.FalseOnly exists when the Output type property is Individual MatricesOutputMatrix port

Determinant

Finds the determinant of the matrix.

If the matrix is not square (number of rows not equal to the number of columns) the determinant cannot be found and the previous out value is kept and an error message is written once.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Ports

Port nameDescriptionDirectionType
Input MatrixThe matrix for which the determinant will be found.InputMatrix port
ResultThe determinant of the input matrix.OutputAnalog port

Dimension

Finds the number of rows, columns and the total elements of a matrix and exposes these values on ports.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Ports

Port nameDescriptionDirectionType
Input MatrixThe matrix for which dimensions will be found.InputMatrix port
Row countThe number of rows in the input matrix.OutputAnalog port
Column countThe number of columns in the input matrix.OutputAnalog port
Element countThe number of elements in the input matrix.OutputAnalog port

Eigenvalues

Finds the eigenvalues of a matrix.

If the matrix is not square (number of rows not equal to the number of columns) the eigenvalues cannot be found and the previous out value is kept and an error message is written once.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Ports

Port nameDescriptionDirectionType
Input MatrixThe matrix for which eigenvalues will be found.InputMatrix port
ResultThe eigenvalues of the input matrix.OutputMatrix port

ElementsSelection

Selects one or more elements from a matrix and exposes these values on analog ports. The Element count property specifies how many elements will be exposed on ports. When the value of this property changes other properties will be created/deleted. The properties this apply to are called: Element 1 - N Row and Element 1 - N Column.

Example: If the Element count property is 2, there will be created four extra properties called Element 1 Row, Element 1 Column, Element 2 Row and Element 2 Column. The values of the first two properties correspond to the first element's zero based position in the matrix. (The values of the two last properties correspond to the second element's zero based position in the matrix.)

If the positions of the elements are illegal the previous value will be kept and a warning is issued.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Element count

The number of elements to select from the input matrix.

Element 1 - N Row

The zero based row index of the element to select from the matrix. This property is exposable.

Element 1 - N Column

The zero based column index of the element to select from the matrix. This property is exposable.

Ports

Port nameDescriptionExposed propertyDirectionType
Input matrixContains the matrix from which elements will be selected.FalseInputMatrix port
Element 1 - N RowContains the zero based row index of the element to select from the matrix.TrueInputAnalog port
Element 1 - N ColumnContains the zero based column index of the element to select from the matrix.TrueInputAnalog port
Element 1 - NContains the selected element in the input matrix.FalseOutputAnalog port

Equal

Tests if the two matrices are equal.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Ports

Port nameDescriptionDirectionType
Matrix 1The matrix which will be compared to Matrix 2.InputMatrix port
Matrix 2The matrix which will be compared to Matrix 1.InputMatrix port
ResultTrue if the Matrix 1 is equal to Matrix 2.OutputDigital port

Identity

Creates an Identity matrix where the size of the matrix is determined with the Identity size source property.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Identity size source

Specifies how the size of the identity matrix is determined.

The options are:

  1. Scalar: The size of the matrix is determined by the properties Row count and Column count.
  2. Matrix: The size of the matrix is determined by the size of the input matrix.

Row count

If the Identity size source property is set to Scalar, this property becomes visible and the value determines the number of rows in the identity matrix. This property can be exposed as a port.

Column count

If the Identity size source property is set to Scalar, this property becomes visible and the value determines the number of columns in the identity matrix. This property can be exposed as a port.

Ports

Port nameDescriptionExposed propertyNotesDirectionType
Input MatrixContains the matrix whose size will be the size of the identity matrix .FalseOnly visible when the Identity size source property is Matrix.InputMatrix port
Row countThe number of rows in the identity matrix.TrueOnly visible when the Identity size source property is Scalar and the corresponding property is exposed.InputAnalog port
Column countThe number of columns in the identity matrix.TrueOnly visible when the Identity size source property is Scalar and the corresponding property is exposed.InputAnalog port
IdentityThe resulting identity matrix.FalseOutputMatrix port

InsertRows

Inserts rows in the matrix supplied as an input. The number of rows to insert are configurable. The rows will be inserted from a specified index and the subsequent rows will be inserted consecutively. The value of the elements can be specified.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Row index

The index of the first row to be inserted. The other rows will be inserted consecutively. The property can be exposed as a port.

Row count

The number of rows to insert. The property can be exposed as a port.

Element value

The value of the elements in the rows to be inserted. The property can be exposed as a port.

Ports

Port nameDescriptionExposed propertyDirectionType
Input matrixContains the matrix for which rows will be inserted.FalseInputMatrix port
Row indexThe index where the rows will be insertedTrueInputAnalog port
Row countThe number of rows that will be inserted.TrueInputAnalog port
Element valueThe value of the row element of the rows which are inserted.TrueInputAnalog port
ResultContains the matrix with the inserted rows.FalseOutputMatrix port

InsertColumns

Inserts columns in the matrix supplied as an input. The number of columns to insert are configurable. The columns will be inserted from a specified index and subsequent columns will be inserted consecutively. The value of the elements can be specified.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Column index

The index of the first column to be inserted. The other columns will be inserted consecutively. The property can be exposed as a port.

Column count

The number of columns to insert. The property can be exposed as a port.

Element value

The value of the elements in the columns to be inserted. The property can be exposed as a port.

Ports

Port nameDescriptionExposed propertyDirectionType
Input matrixContains the matrix for which columns will be inserted.FalseInputMatrix port
Column indexThe index where the columns will be insertedTrueInputAnalog port
Column countThe number of columns that will be inserted.TrueInputAnalog port
Element valueThe value of the column element of the columns which are inserted.TrueInputAnalog port
ResultContains the matrix with the inserted columns.FalseOutputMatrix port

Inverse

Finds the inverse of a matrix.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Ports

Port nameDescriptionDirectionType
Input MatrixThe matrix for which the inverse will be found.InputMatrix port
ResultThe inverse matrix of the input.OutputMatrix port

MatrixCreation

Creates a matrix with a specified amount of rows and columns. The values of the matrix are inputted with Analog ports. There will be Rows * Columns inputs, and one input corresponds to a specific element in the matrix.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Rows

The number of rows in the matrix

Columns

The number of columns in the matrix

Ports

The number of inputs depend on the Rows and Columns property. There will be Rows * Columns inputs. These inputs represent an element in the matrix.

Port nameDescriptionDirectionType
Element [<row>, <column>]The value of this port is written to the element positioned as indicated in the matrix.InputAnalog port
MatrixThe resutling matrix.OutputMatrix port

Multiplication

Multiplies two or more matrices.

If the matrices are not of correct sizes, an alarm will be issued.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Inputs

The number of inputs which will be multiplied.

Ports

The number of input ports will vary depending on the Inputs property.

Port nameDescriptionDirectionType
Argument 1 to NContains the arguments which will be multiplied.InputMatrix port
ResultContains the multiplied value of the inputs.OutputMatrix port

Norm

Finds the norm of the matrix. Which norm to use is specified in the Norm property.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Norm

Specifies which Norm will be used.

The options are:

  1. 1-Norm
  2. 2-Norm
  3. Infinity Norm
  4. Frobenius Norm

Ports

Port nameDescriptionDirectionType
Input MatrixContains the matrix for which the norm will be found.InputMatrix port
ResultThe norm of the matrix.OutputAnalog port

Null

Creates a matrix filled with zeroes.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Null size source

Specifies from where the size of the result matrix is obtained.

The options are:

  1. Scalar: The size is retrieved from properties or ports as row size and column size.
  2. Matrix: The size is determined by a matrix inputted to the component

Row count

The number of rows in the resulting matrix. Only visible when the Null size source property is scalar. The property is exposable.

Column count

The number of columns in the resulting matrix. Only visible when the Null size source property is scalar. The property is exposable.

Ports

Port nameDescriptionExposed propertyNotesDirectionType
Input MatrixContains the matrix whose size will be the size of the null matrix .FalseOnly visible when the Null size source property is Matrix.InputMatrix port
Row countThe number of rows in the null matrix.TrueOnly visible when the Null size source property is Scalar and the corresponding property is exposed.InputAnalog port
Column countThe number of columns in the null matrix.TrueOnly visible when the Null size source property is Scalar and the corresponding property is exposed.InputAnalog port
ResultThe resulting matrix filled with zeroes.FalseOutputMatrix port

Random

Creates a matrix with random numbers.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Row count

The number of rows in the matrix. This property is exposable.

Column count

The number of columns in the matrix. This property is exposable.

Mean value

The mean value of the random numbers. This property is exposable.

Standard deviation

The standard deviation of the random numbers. This property is exposable.

Ports

Port nameDescriptionExposed propertyDirectionType
ActiveIf true, random values will be generated.FalseInputAnalog port
Row countThe number of rows in the matrix.TrueInputAnalog port
Column countThe number of columns in the matrix.TrueInputAnalog port
Mean valueThe mean value of the random numbers in the matrix.TrueInputAnalog port
Standard deviationThe standard deviation of the random numbers in the matrix.TrueInputAnalog port
ResultThe resulting matrix with random numbers.FalseOutputMatrix port

Rank

Finds the rank of the matrix.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Ports

Port nameDescriptionDirectionType
Input MatrixContains the matrix for which the rank will be found.InputMatrix port
ResultThe rank of the matrix.OutputAnalog port

RowsRemove

Removes one or more rows from a matrix. The number of rows to remove are specified with the Row count property, and changing this value will create or delete properties called: Row 1 - N where N is the value of the Row count property.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Row count

The number of rows to remove from the input matrix.

Row 1 - N

The zero based row index of the row to remove from the matrix. This property is exposable.

Ports

Port nameDescriptionExposed propertyDirectionType
Input matrixContains the matrix from which rows will be removed.FalseInputMatrix port
Row 1 - NContains the zero based row index of the row to remove from the matrix.TrueInputMatrix port
MatrixContains the matrix with the rows specified removed.FalseOutputMatrix port

RowsSelection

Selects one or more rows from a matrix. The number of rows to select are specified with the Row count property, and changing this value will create or delete properties called: Row 1 - N where N is the value of the Row count property. The selected rows can either be exposed as one matrix or one matrix (with one row) for each selected row by changing the Output type property.

If one of the row indices are illegal the corresponding row in the resulting matrix is filled with zeros and an error message is written once.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Row count

The number of rows to select from the input matrix.

Output type

Decides how the selected rows are exposed. Two options:

  1. Single Matrix: The selected rows are exposed in one common matrix
  2. Individual Matrices: The selected rows are exposed in individual matrices (with one row) for each row.

Row 1 - N

The zero based row index of the row to select from the matrix. This property is exposable.

Ports

Port nameDescriptionExposed propertyNotesDirectionType
Input matrixContains the matrix from which rows will be selected.FalseInputMatrix port
Row 1 - NContains the zero based row index of the row to select from the matrix.TrueInputMatrix port
MatrixContains the matrix with the selected rows.FalseOnly exists when the Output type property is Single MatrixOutputMatrix port
Selected Row 1 - NContains the selected row in a matrix.FalseOnly exists when the Output type property is Individual MatricesOutputMatrix port

ScalarMultiplication

Multiplies a scalar with a matrix.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Ports

Port nameDescriptionDirectionType
ScalarThe scalar argument to be multiplied with the matrix.InputAnalog port
MatrixThe matrix argument to be multiplied with the scalar.InputMatrix port
ResultContains the resulting matrix.OutputMatrix port

SetElements

Sets element values in a matrix. Several elements can be set, and the row and column number of the element can be specified from properties and ports.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Element count

The element count specifies how many elements to set in the matrix. Changing this property will create or remove properties below.

Element 1 to N Row

The row index of the N'th element to set. The property can be exposed.

Element 1 to N Column

The column index of the N'th element to set. The property can be exposed.

Ports

Port nameDescriptionExposed propertyDirectionType
Input matrixContains the matrix for which elements will be set.FalseInputMatrix port
Element 1 to NThe value of the first element.FalseInputAnalog port
Element 1 to N RowThe row index of the n'th element which will be set.TrueInputAnalog port
Element 1 to N ColumnThe column index of the n'th element which will be set.TrueInputAnalog port
ResultContains the matrix with the specified element values set.FalseOutputMatrix port

SingularValueDecomposition

 Performs a singular value decomposition on a matrix. The three resulting matrices are written to ports.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Ports

Port nameDescriptionDirectionType
Input MatrixThe matrix for which singular value decomposition will be performed.InputMatrix port
UThe U vector.OutputMatrix port
SThe sigma matrix which will contain the singular values.OutputMatrix port
VThe V vector.OutputMatrix port

Subtraction

Computes the difference between the minuend with the subtrahend. Example: C − B = A. C is the minuend, B is the subtrahend and A is the difference.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Ports

Port nameDescriptionDirectionType
MinuendContains the minuend value. (The minuend is C in the equation: C - B = A)InputMatrix port
SubtrahendContains the subtrahend value. (The subtrahend is B in the equation: C - B = A)InputMatrix port
DifferenceContains the difference between the minuend and the subtrahend.OutputMatrix port

Sum

This component sums two or more matrix inputs and writes the sum to a matrix output.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Inputs

The number of inputs which will be summed.

Ports

The number of input ports will vary depending on the Inputs property.

Port nameDescriptionDirectionType
Argument 1 to NContains the arguments which will be summed.InputMatrix port
ResultContains the summed value of the inputs.OutputMatrix port

Transpose

Transposes a matrix.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Ports

Port nameDescriptionDirectionType
Input MatrixContains the matrix which will be transposed.InputMatrix port
ResultContains the transposed matrix.OutputMatrix port

Scheduling

Scheduler

The purpose of the Scheduler component is to schedule periodic tasks in the tracker application. The Scheduler uses a dedicated MFScheduler database to store information about scheduled events.

Properties

The properties of this component are organized in multiple tabs. The separate tabs are described dedicated sub topics.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Trigger

This property decides the type of triggering interval to use. The alternatives are:

  • Millisecond interval. The scheduled tasks will be triggered at millisecond intervals. The interval in milliseconds are specified by the Interval property.
  • Second interval. The scheduled tasks will be triggered at second intervals. The interval in seconds are specified by the Interval property.
  • Minute interval. The scheduled tasks will be triggered at minute intervals. The interval in minutes are specified by the Interval property.
  • Hour interval. The scheduled tasks will be triggered at hour intervals. The interval in hours are specified by the Interval property.
  • Daily. The scheduled tasks ts will be triggered daily at time given by the Hour and Minute properties
  • Weekly. The scheduled tasks will be triggered weekly at day given by the Day (Weekly) property and time given by the Hour and Minute properties
  • Monthly. The scheduled tasks will be triggered monthly at day given by the Day (Monthly) property and time given by the Hour and Minute properties
  • Cron. The scheduled tasks will be triggered in respect to a cron-expression given by the CronExpression property.

Trigger state

This property defines the state of the trigger. The alternatives are:

  • Running. The trigger is active, and tasks will be executed at the specified intervals.
  • Paused. The trigger not active. No tasks will be executed.

Interval

This property defines the trigger interval when the Trigger property is either Millisecond interval, Second interval, Minute interval or Hour interval.

Day (Monthly)

This property defines the day in month to execute tasks when the Trigger property is Monthly.

Day (Weekly)

This property defines the day in week to execute tasks when the Trigger property is Weekly.

Hour

This property defines the hour of the day to execute tasks when the  Trigger property is Daily, Weekly or Monthly.

Minute

This property defines the minute of the hour to execute tasks when the Trigger property is Daily, Weekly or Monthly.

CronExpression

This cron-expression defines the trigger interval when the Trigger property is Cron.

Tasks

This tab is used to define the tasks to execute at the intervals specified in the Properties tab. It is possible to schedule all Schedulable components (components that implements the SchedulerTask interface) in the application.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

Tasks

This column specifies the name of the ModFrame components to schedule.

Ports

This component has no ports.

Signal Processing

SignalType

Specifies the type of signal to be delayed. The signal can be analog, digital, string, vector, string vector or matrix.

Digital_pulse

LastingPulse

When the input signal goes high the output will go high and stay high for a specified amount of time.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

High time

The time which the output stays after the input has gone high. The property can be exposed as a port.

Ports

Port nameDescriptionExposed propertyDirectionType
Digital signalThe digital signal which triggers the output signal.FalseInputDigital port
High timeThe amount of time the output signal is high after the input has gone high.TrueInputAnalog port
Lasting signalThe output digital signal which will stay high for the amount of time specified in the High time property/port.FalseOutputDigital port

PulseCounter

Counts the number of times the input signal has gone from low to high since the last reset.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Ports

Port nameDescriptionDirectionType
Pulse signalThe component will count the number of times this signal has gone from low to high since the last reset.InputDigital port
ResetResets the count.InputDigital port
ResultContains the number of times the input signal has gone from low to high since the last reset.OutputDigital port

PulseDelay

Writes pulse on the output which lasts one time step when the incoming signal goes from low to high. The pulse will be delayed a specified amount of time steps.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Time step delay

The amount of time steps the pulse will be delayed before written to the output.

Ports

The ports displayed depends on the SignalType property.

Port nameDescriptionDirectionType
Digital signalA delayed pulse will be emitted to the output when the input goes from low to high.InputDigital port
Delayed signalThe delayed pulse.OutputDigital port

PulseHighDelay

When the input signal goes from low to high, the output will go to high a specified amount of time later. If the input signal goes from high to low the output signal will go to low immediately.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Delay

The amount of time after the input singal goes high, the output go high. It is possible to expose this property as a port.

Ports

Port nameDescriptionExposed propertyDirectionType
Digital signalThe digital input signal.FalseInputDigital port
DelayThe amount of time after the input signal has gone high, the output signal will go high.TrueInputAnalog port
Delayed signalThe output digital signal.FalseOutputDigital port

PulseLowDelay

When the input signal goes from high to low, the output will go to low a specified amount of time later. If the input signal goes from low to high the output signal will go to high immediately.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Delay

The amount of time after the input singal goes low, the output go low. It is possible to expose this property as a port.

Ports

Port nameDescriptionExposed propertyDirectionType
Digital signalThe digital input signal.FalseInputDigital port
DelayThe amount of time after the input signal has gone low, the output signal will go low.TrueInputAnalog port
Delayed signalThe output digital signal.FalseOutputDigital port

SquarePulse

Creates a square pulse with specified high and low times.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

High time

The amount of time the output signal is high. This property can be exposed as a port.

Low time

The amount of time the output signal is low. This property can be exposed as a port.

Ports

Port nameDescriptionExposed propertyDirectionType
ActiveIf true the component will generate a square pulse.FalseInputDigital port
High timeThe amount of time output is high.TrueInputAnalog port
Low timeThe amount of time output is low.TrueInputAnalog port
Square pulseThe square pulse output.FalseOutputDigital port

===================

#AND

Performs an AND operation on the inputs. If and only if all the inputs are true, the output becomes true.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Inputs

The number of inputs which will be AND'ed.

Ports

The number of input ports will vary depending on the Inputs property.

Port nameDescriptionDirectionType
Argument 1 to NContains the arguments which will be AND'ed.InputDigital port
ResultIf all the inputs are true, the output becomes true.OutputDigital port

BitSelection

Selects one or more bits from the input signal and outputs it as a digital port value.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Selection pattern

The bit pattern which decides which bits are selected from the input (all the bits that are 1 will be selected from the input). The selection pattern is 1 indexed.

Ports

The selection pattern decides how many output ports there are. The amount of bits that are one is equal to the amount of output ports.

Port nameDescriptionDirectionType
SignalThe signal from which bits are selected.InputAnalog port
Bit 0 to NThe output is high if the bit at the indicated position is 1.OutputDigital port

BitwiseAnd

 Takes two or more inputs and performs an AND operation on each bit. The result is written to the output port.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Inputs

The number of inputs which will be AND'ed.

Ports

The number of input ports will vary depending on the Inputs property.

Port nameDescriptionDirectionType
Argument 1 to NContains the arguments which will be AND'ed.InputAnalog port
ResultContains the result of the bitwise AND.OutputAnalog port

Invert

Inverts a digital input and writes the result to an output port.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Ports

Port nameDescriptionDirectionType
Input signalThe digital signal will be inverted.InputDigital port
ResultThe inverted signal.OutputDigital port

OR

 Performs an OR operation on the inputs. If one or more of the inputs are true, the output will be true.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Inputs

The number of inputs which will be OR'ed.

Ports

The number of input ports will vary depending on the Inputs property.

Port nameDescriptionDirectionType
Argument 1 to NContains the arguments which will be OR'ed.InputDigital port
ResultIf one or more of the inputs are true, the output becomes true.OutputDigital port

RSFlipFlop

The RSFlipFlop has one Set input and one Reset input. If the Reset is false and Set goes from false to true out is set to true. The output will remain true until the Reset signal becomes true.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Ports

Port nameDescriptionDirectionType
SetWhen this signal becomes true the output becomes true if the Reset signal is low.InputDigital port
ResetThe output signal will become low when the Reset becomes high.InputDigital port
ResultThe output signal will become high when the Set signal is high. The output remains true until the Reset signal becomes high.OutputDigital port

XOR

The component performs an XOR operation on the two inputs. If the both inputs are true or both inputs are false, the output is false. The output is true otherwise.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Ports

Port nameDescriptionDirectionType
Argument 1The first input to the XOR operation.InputDigital port
Argument 2The second input to the XOR operation.InputDigital port
ResultThe output becomes false when both inputs are true or both are false. Otherwise the output is true.OutputDigital port

Compare

Compares the analog input to a high and low limit. There are two outputs indicating whether the values is over the high limit or below the low limit. The limits can either be specified as ports or properties.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

High value

When the incoming value is over the high limit, the High indicator port becomes true. The property can be exposed as a port.

Low value

When the incoming value is below the low limit, the Low indicator port becomes true. The property can be exposed as a port.

Ports

Port nameDescriptionExposedDirectionType
ValueThe value which will be compared to the high and low limits.FalseInputAnalog port
High valueContains the high value limit. If the value is higher than this value the High indicator port becomes true.TrueInputAnalog port
Low valueContains the low value limit. If the value is lower than this value the Low indicator port becomes true.TrueInputAnalog port
High indicatorBecomes true if the value is higher than the High value.FalseOutputDigital port
Low indicatorBecomes true if the value is lower than the Low value.FalseOutputDigital port

DigitalMultiplexer

This component will have several input signals and control signals. Depending on the value of the control signals, one input signal will be propagated to the output. The control signals are digital ports which combined creates a binary number. The binary number is then used to choose the input signal.

The control signals are named Digital multiplexer signal 1 - N. The Digital multiplexer signal 1 is the least significant bit. The number of control signals is specified with the Digital inputs property. The number of input signals is equal to 2N where N is equal to the Digital inputs property.

The input and output signal types are specified with the Signal type property.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

SignalType

Specifies the type of signal to be delayed. The signal can be analog, digital, string, vector, string vector or matrix.

Digital inputs

The number of digital inputs. The signal inputs will be created automatically, and the number of the signal inputs is 2N where N is the number of Digital inputs.

Ports

The number of input ports will vary depending on the Digital inputs property.

Port nameDescriptionDirectionType
Digital multiplexer signal 1 to NControls which input signal is propagated to the output.InputDigital port
Signal 1 to 2NThe input signals which can be propagated to the output.InputThe port type will become whatever the SignalType property indicates.
ResultThe selected input signal.OutputThe port type will become whatever the SignalType property indicates.

Equal

This component tests if two or more inputs are equal. If they are equal the output port becomes true. The signal can be analog, digital, vector, string vector and matrix.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

SignalType

Specifies the type of signal to be delayed. The signal can be analog, digital, string, vector, string vector or matrix.

Inputs

The number of inputs to test if are equal.

Ports

The ports displayed depends on the SignalType property.

Port nameDescriptionNotesDirection
Signal 1 to NContains the values which will be compared.The port type will become whatever the SignalType property indicates.Input
EqualTrue if the inputs are equalThe port is a Digital port.Output

Limit

The input signal is limited. This means that if an input signal exceeds a certain value the output becomes the limit value. A low limit can also be applied in the same manner.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

High limit

If the input signal exceeds this value the output will become equal to this limit. The property can be exposed as a port.

Low limit

If the input signal is below this value the output will become equal to this limit. The property can be exposed as a port.

Ports

Port nameDescriptionExposedDirectionType
Input valueThe value which will be limited.FalseInputAnalog port
High limitContains the high value limit. If the value is higher than this value the output becomes this limit.TrueInputAnalog port
Low limitContains the low value limit. If the value is lower than this value the output becomes this limit.TrueInputAnalog port
ResultContains the limited value.FalseOutputAnalog port

LowpassFilter

This component will low pass filter the input signal.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Time constant

The time constant specifies the inverse of the cut-off frequency.

Ports

Port nameDescriptionDirectionType
Input valueContains the value which will be filtered.InputAnalog port
ResetIf the value is true the filtered value will reset.InputDigital port
HoldIf the value is true the filtered value will be held constant.InputDigital port
ResultContains the filtered value.OutputAnalog port

Multiplexer

This component will have several input signals and one control signal. Depending on the value of the control signal, one input signal will be propagated to the output. The control signal is an analog port whose number will specify which input will be sent to the output. The number is zero-based (i.e. the first input signal is chosen when the value of the control signal is zero.)

The input and output signal types are specified with the Signal type property.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

SignalType

Specifies the type of signal to be delayed. The signal can be analog, digital, string, vector, string vector or matrix.

Inputs

The number of inputs.

Ports

The number of input ports will vary depending on the Inputs property.

Port nameDescriptionDirectionType
MultiplexerControls which input signal is propagated to the output. The value is zero based so the when the value is zero the first input is chosen.InputAnalog port
Signal 1 to NThe input signal which can be propagated to the output.InputThe port type will become whatever the SignalType property indicates.
ResultThe selected input signal.OutputThe port type will become whatever the SignalType property indicates.

Ramp

Ramp one signal to another at a specified rate.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Ports

Port nameDescriptionExposedDirectionType
Ramp fromThe value to ramp fromTrueInputAnalog port
Ramp toThe value to ramp toTrueInputAnalog port
Change rate per secondThe change rate in value/secondTrueInputAnalog port
ResetThe output is set to the 'Ramp from' value, and ramping is started from here when 'Reset' goes falseTrueInputDigital port
HoldThe state is frozenTrueInputDigital port
Ramped signalThe ramped signalTrueOutputAnalog port

Random

Creates a random signal and exposed it on a analog port.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Mean value

The mean value of the random values being generated.

Standard deviation

The standard deviation of the random values being generated.

Ports

Port nameDescriptionExposedDirectionType
Mean valueThe mean value of the values being generated.TrueInputAnalog port
Standard deviationThe standard deviation of the values being generated.TrueInputAnalog port
ActiveIf true random values will be generated.FalseInputDigital port
ResultContains the random value.FalseOutputAnalog port

Sampling

Samples the input and exposed the value on an output port. The value can be either analog, digital, string, vector, string vector or matrix. The sampling is triggered by a digital port.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

SignalType

Specifies the type of signal to be delayed. The signal can be analog, digital, string, vector, string vector or matrix.

Sample trigging

Specifies when the samping occurs.

Property valueDescription
Rising flankSampling occurs when the trigger signal goes from false to true.
Falling flankSampling occurs when the trigger signal goes from true to false.
FlanksSampling occurs when the trigger signal goes from false to true and from true to false.
HighSampling occurs as long as the trigger signal is true (high).
LowSampling occurs as long as the trigger signal is false (low).

Ports

Port nameDescriptionDirectionType
Input valueThe input signal which will be sampled.InputThe port type will become whatever the SignalType property indicates.
Sample TriggerThe trigger signal will control when the sampling occurs.InputDigital port
ResultThe sampled value.OutputThe port type will become whatever the SignalType property indicates.

SnapEvent

Gives positive flank in one of the following snapshot situations:

  • Persist state
  • Load state
  • Both persist and load

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Events

Choose between:

  1. Write - triggers on persisting a snapshot, writeState.
  2. Read - triggers on loading a snapshot, readState.
  3. Both - triggers on both persisting and loading a snapshot.

Ports

Port nameDescriptionExposedDirectionType
DisableIf true, no events will be signaledTrueInputDigital port
Snap eventGives a positive flank if the chosen event occursTrueOutputDigital port

TimeDelay

This component delays an incoming signal a given amount of time before writing the signal to an output. The signal can be analog, digital, vector, string vector and matrix.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

SignalType

Specifies the type of signal to be delayed. The signal can be analog, digital, string, vector, string vector or matrix.

Time Delay

The amount of time [s], the signal will be delayed.

Ports

The ports displayed depends on the SignalType property.

Port nameDescriptionNotesDirection
Input signalContains the value which will be delayed.The port type will become whatever the SignalType property indicates.Input
Delayed signalContains the delayed signalThe port type will become whatever the SignalType property indicates.Output

TimeStepDelay

This component delays an incoming signal a given amount of time steps before writing the signal to an output. The signal can be analog, digital, vector, string vector and matrix.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

SignalType

Specifies the type of signal to be delayed. The signal can be analog, digital, string, vector, string vector or matrix.

Time step delay

The amount of time steps the signal will be delayed.

Ports

The ports displayed depends on the SignalType property.

Port nameDescriptionNotesDirection
Input signalContains the value which will be delayed.The port type will become whatever the SignalType property indicates.Input
Delayed signalContains the delayed signalThe port type will become whatever the SignalType property indicates.Output

Trigger

 Creates a pulse when the input is changed. The input can be String, Analog, Digital or Analog vector.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Input type

Specifies what kind of input port will generate the pulse.

The options are:

  • String input - The input is a string
  • Digital input - The input is a boolean
  • Analog input - The input is a double value
  • Vector input - The input is a double vector

Ports

Port nameDescriptionDirectionType
Depends on the input typeThe input which will trigger a pulse when changed.InputDepends on the input type.
TriggerThe output boolean signal which becomes true when input changes.InputDigital port

String

Vector

StringVectorAdd

This component is used to create a string vector from incoming scalar strings.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Add options

Specifies how elements are added to the resulting string vector.

The options are:

  • Increasing
    The new string will be appended to the existing vector. The MaxElements property does not apply.
  • Shifting
    The new string will be appended to the existing vector until the length of the vector reaches the number of the MaxElements property, after which the older elements will be shifted out and the new element will be written to the last element of the vector.
  • Constant position
    The new string will be appended to the existing vector until the length of the vector reaches the number of the MaxElements property, after which the new element will be shifted out and the new element will be written to the first element, the next element after that will be written to the second element and so forth.

Unique elements

If true a string will not be added to the vector if there already is an equal string in that vector.

Allow empty strings

If true empty strings are allowed in the vector.

Max Elements

The maximum number of elements in the vector. Only applies when the Add options property is not set to Increasing

Persist vector

The vector will be persisted if true.

Ports

Port nameDescriptionDirectionType
AddStringContains the string which will be added to the vector.InputString port
LastIndexContains the index of the newest inserted string to the vector.OutputAnalog port
ResultStringContains the vector of the strings added.OutputString vector port

StringVectorAppend

This component takes a configurable amount of string vectors and concatinates them to one long string vector.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Number of strings to append

Specifies the number of string vectors which will be sent as input to the component. The resulting vector is concatinated from these inputs.

Unique elements

If true, the string elements of the resulting vector must be unique.

Ports

Port nameDescriptionDirectionType
String 1 - NContains the string vector which will be concatinated to the vector.InputString vector port
ActivateThe concatination will be performed when the value of this port is true.InputDigital port
AppendedStringContains the concatinated vector of the input string vectors.OutputString vector port

StringVectorComp

Two String vectors are compared.

The output value is generated after the following rules:

If a string element in the comparatorVectorPort is equal to a string element in the mainVectorPort, the bit that corresponds to element index of the string element in the mainVectorPort will be set to 1 in the result.

Example;

mainVectorPort = {"Element1", "Element2", "Element3"}

comparatorVectorPort = {"Something", "Element1", "Something else", "Element2"}

The result will be: 3

bit 0 and 1 is 1 and the rest is 0.

If the MainVectorPort contains a vector with more elements than 32 the elements with index higher than 32 will not be compared.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Ports

Port nameDescriptionDirectionType
MainVectorContains the string vector which will be compared.InputString vector port
ComparatorVectorContains the comparator vector.InputString vector port
AppendedStringContains the concatinated vector of the input string vectors.OutputString vector port

StringVectorExtractor

The purpose of the StringVectorExtractor is to extract the elements of a string vector into scalars. The different elements of the string vector can be extracted into digital, analog or string scalar ports.

Properties

The properties of this component are organized in multiple tabs. The separate tabs are described dedicated sub topics.

Parameters

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

ReportEventLevel

All events with equal or higher severity will be reported.

Extracted elements

This tab is used to define what elements from the input string vector to extract to scalar ports.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

Element number

This is the element number (0 based) from the input string vector to extract.

Datatype

This is the desired data type for of the extracted element. The alternatives are:

  • String. The extracted element will be exposed on a String port value.
  • Double. The extracted element will be exposed on a Analog port value.
  • Boolean. The extracted element will be exposed on a Digital port value.

If it is impossible to cast the actual element to the desired data type, the component will issue a warning.

Port name 

This property is used to specify the desired port name for the extracted vector element.

Ports

StringVector

This port is used to receive the string vector for which to extract elements.

Extracted element ports

The component has a configurable number of extracted element ports. The name and type of these ports are defined in the Extracted elements tab.

StringVectorJoin

The StringVectorJoin components is used to join strings elements from multiple input string vectors into a new output string vector. The corresponding elements of the input string vectors are concatenated to shape a new string element in the output string vector. The input strings may have different dimensions, and the behavior in this situation can be specified.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

ReportEventLevel

All events with equal or higher severity will be reported.  

Delimiter

This property can be used to insert a delimiter pattern between the concatenated string elements.

Number of strings to append

This property is used to specify the number of string vectors to join, and hence the number of input string vector ports.

Padding

This property defines the behavior when the input string vectors have different dimensions. The alternatives are:

  • None. The longest input vector decides the dimension of the joined string vector. Vectors with fewer elements than the longest vector will not contribute to the excess elements of the joined string vector.
  • LastValue. The longest input vector decides the dimension of the joined string vector. Vectors with fewer elements than the longest vector will contribute with their last element to the excess elements of the joined string vector.

Ports

Input string vectors

The component contains a configurable number of input string vector ports providing the string vectors to join. The name of these ports are StringVector 1 - StringVector N.

JoinedStringVector

This port displays joined string vector.

Activate

This is a digital port that can be used to activate/deactivate the component. If the component is deactivated, no joining will occur.

StringVectorPicker

Picks a string from the input string vector by specifying the element index.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Element

The index of the element to get from the input string vector.

Ports

Port nameDescriptionDirectionType
StringVectorContains the string vector from which an element will be picked.InputString vector port
ActiveIf true the element will be picked. If false the previously picked element will be exposed.InputDigital port
ResultStringThe element of the string vector.OutputString port

StringVectorReverser

Takes an input string vector and reverses the positions of the elements. (The first element becomes the last, the second element becomes the last but one and so on.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Ports

Port nameDescriptionDirectionType
VectorContains the string vector which will be reversed.InputString vector port
Reversed VectorThe reversed string vector.OutputString vector port

ChangeCase

Changes the case of an input string either to lower or upper case. The case is controlled by a property.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

To lower case

If true the input string will be converted to lower case.

Invariant locale

If true the locale used is English, otherwise the current locale is used.

Ports

Port nameDescriptionDirectionType
StringContains the string which will converted either to lower or upper case.InputString port
ConvertedStringThe converted string.OutputString port

Contains

Tests if one string contains another string. The requirement can either be that the string must start with, end with or contain the other string. It is possible to ignore the case in the test.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Requirement

Specifies where the ContainString must be contained in the MainString. The choices are: Starts with, Ends with or Contains. Contains means that string can be located anywhere in the MainString.

Ignore case

If true the case of the strings are ignored.

Ports

Port nameDescriptionDirectionType
MainStringThe string in which the ContainString must be contained for the output to become true.InputString port
ContainStringThe string which will be tested if it is contained in the main string.InputString port
ResultTrue if the ContainString is contained in the MainString as specified in the Requirement property.OutputDigital port

Equals

Tests if two or more input strings are equal.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Inputs

The number of string inputs which will be tested if are equal.

Ignore case

If true the case of the strings are ignored.

Ports

Port nameDescriptionDirectionType
Compare string 1 to NContains the strings which will be compared.InputString port
EqualTrue if the input strings are equal.OutputDigital port

IndexOf

Finds the index of a substring in a string. The index is zero based. It is possible to search both from the beginning of the string and from the end of the string. It is also possible to specify the index from where the search is started.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

First

Starts the search at the front of the string if true. If the it is false the string is searched backwards.

Ignore case

If true the case of the strings are ignored.

FromIndex

The index from where the search is started. If the First property is false, the index is reveresed. (I.e. 0 means the length of the string, 1 means the length - 1 and so forth. The property is exposable.

Ports

Port nameDescriptionExposed propertyDirectionType
MainStringThe string which will be tested if contains the IndexOfString.FalseInputString port
IndexOfStringThe sub string which will be tested if is contained the MainString.FalseInputString port
FromIndexThe index from where the MainString is searched.TrueInputAnalog port
IndexOfThe index of the IndexOfString in the MainString.FalseOutputAnalog port

Length

Finds the length of a string.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Ports

Port nameDescriptionDirectionType
StringThe string for which the length is found.InputString port
LengthThe length of the input string.OutputAnalog port

Match

Tests if a string matches a regular expression.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Regular Expression

The regular expression against which the input string is matched. The property is exposable.

Ports

Port nameDescriptionExposed propertyDirectionType
StringThe string for which the regular expression is matched.FalseInputString port
Regular ExpressionThe regular expression against which the input string is matched.TrueInputString port
MatchTrue if the string matches the regular expression.FalseInputDigital port

Replace

Replaces substring(s) of the input string that matches the given regular expression with the given replacement input string.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Regular Expression

The regular expression against which the input string is matched. The property is exposable.

Replace All

If true all substrings matching the regular expression will be replaced, if false only the first substring matching the regular expression will be replaced.

Ports

Port nameDescriptionExposed propertyDirectionType
StringThe string for which substring(s) matching the regular expression will be replaced with the ReplacementString.FalseInputString port
ReplacementStringThe string which will replace the substring(s) which matches the regular expression in the string.FalseInputString port
Regular ExpressionThe regular expression against which the input string is matched.TrueInputString port
ResultStringThe resulting string.FalseInputString port

Time

CurrentUtcTime

Finds the current time. The time can either be the actual CPU time or the simulation time.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Time source

Specifies if the time is the simulated time or the actual CPU time.

Ports

Port nameDescriptionDirectionType
ActiveIf true the time output will continuously be found.InputDigital port
CurrentTimeThe UTC time given in milliseconds since 1/1 1970.OutputAnalog port

Decipher

Process a UTC Time given in milliseconds since 1/1 1970 and outputs the year, month, day etc. It is possible to specify the time zone.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Timezone

The time zone which will be used.

Ports

Port nameDescriptionDirectionType
TimeThe UTC time given in milliseconds since 1/1 1970.InputAnalog port
YearThe year of the input time.OutputAnalog port
MonthThe month of the input time.OutputAnalog port
DayOfMonthThe day of month of the input time.OutputAnalog port
DayOfWeekThe day of week of the input time.OutputAnalog port
HourThe hour of the input time.OutputAnalog port
MinuteThe minute of the input time.OutputAnalog port
SecondThe second of the input time.OutputAnalog port
Milli-secondThe milli-second of the input time.OutputAnalog port

Format

Formats a time given in milliseconds since 1/1 1970 to a configurable string.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Format

The format of the string.

Timezone

Specifies the time zone.

Ports

Port nameDescriptionDirectionType
TimeThe UTC time given in milliseconds since 1/1 1970.InputAnalog port
Formatted-timeThe string representing the time.OutputString port

Top applications

BMSimulation

This component is a top application. It can only be a root container. The computationl algorithm can be selected from the Calculation order property. This top application can be used for real time purposes as well as simulation purposes. If it is used for simulation purposes the SimulationStartTime property specifies the start time of the simulation, and the time will move forward from that time when starting the simulation.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

SimulationStartTime

The start time for the simulation. The format is: DD.MM.YYYY hh:mm:ss

Calculation order

Specifies the computational algorithm.

BMSQLEngine

This component is identical to BMSimulation except that it also is able to connect to SQL Server. This makes it possible to use certain query components.

Database

Database type

Specifies what kind of database to connect to.

Computer

The computer hosting the database

Port

The communication port of the database

Database name

The name of the database to connect to.

Login name

The login id.

Password

The password.

Connection status

Displays the status of the connection. (Read only)

AdaptableContainer

This is a container which can be a top application as well as a general container. It can adapt its computational algorithm to the either the container which is in or the root container. It can also either choose the parallel or sequential algorithm directly. This is done through the ComputationalAlgorithm property.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Computational algorithm

Chooses the computational algorithm of this container.

The options are:

  • Root container adaption - uses the computational algorithm of the root container
  • Parent container adaption - uses the computational algorithm of the parent container
  • Sequential computations - uses the sequential algorithm
  • Parallel computations - uses the parallel algorithm

Ports

The component does not have ports, but ports from components within this container can be exposed to this container.

Converter

Converts an input to an output of another type. The following types are supported: Analog port, Digital port, String port, String vector port, Double vector port and Double matrix port.

The following rules apply when converting, (the columns indicate inputs and the rows indicate outputs):

DoubleBooleanStringDouble vectorDouble matrixString vector
DoubleNo conversionIf the boolean is true the double value becomes 1.0, else the double value is 0.0The string input must be in a non-localized format for it to be able to convert to a double. If conversion fails, the element value becomes NaN.The first element is chosen.The first element in the first row is chosen.The first element is chosen, and that string must be in a non-localized format. If conversion fails, the element value becomes NaN.
BooleanIf the double value is larger than 0.0 the boolean value becomes true, else the value becomes false.No conversionIf the string value is true (ignoring case) the boolean becomes true, otherwise false.The first element is chosen. If the double value is larger than 0.0 the boolean value becomes true, else the value becomes false.The first element in the first row is chosen. If the double value is larger than 0.0 the boolean value becomes true, else the value becomes false.The first element is chosen. If the string value is true (ignoring case) the boolean becomes true, otherwise false.
StringThe string value becomes the textual non-localized value.The string value becomes true if the boolean is true, other wise it becomes false.No conversionThe first element is chosen. The string value becomes the textual non-localized value.The first element in the first row is chosen. The string value becomes the textual non-localized value.The first element is chosen.
Double vectorThe size of the double vector becomes 1 and the element value is equal to the input.The double vector becomes size 1 and if the boolean is true the element value becomes 1.0, else the element value is 0.0.The double vector becomes size 1 and if the string input is in a non-localized format it is converted to a double. If conversion fails, the element value becomes NaN.No conversionThe size of the double vector becomes rows * columns and the values of the matrix are inserted column first.The size of the double vector will be equal to the size of the string vector and the values of the vector are converted from the string values. The string values must be in a non-localized format. If the conversion fails the element value becomes NaN.
Double matrixThe double matrix will contain one row and one column. The element value is equal to the input.The double matrix will contain one row and one column. If the boolean is true the element value becomes 1.0, else the element value is 0.0.The double matrix will contain one row and one column. The string input must be in a non-localized format for it to be able to convert to a double. If conversion fail the element value becomes NaN.The double matrix will contain as many rows as there are elements in the vector and one column.No conversionThe double matrix will contain as many rows as there are elements in the vector and one column. The string values must be in a non-localized format. If the conversion fails the element value becomes NaN.
String vectorThe size of the string vector becomes 1 and the element value becomes the textual non-localized value.The size of the string vector becomes 1 and the element value becomes true if the boolean is true, otherwise it becomes false.The size of the string vector becomes 1 and the element value equal to the input.The size of the string vector will be equal to the size of the double vector and the values of the vector are converted from the double values using a non-localized format.The size of the string vector becomes rows * columns and the values of the vector are converted from the double values using a non-localized format.No conversion

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Input type

The type of the input to convert.

Output type

The type of the output.

Ports

Port nameDescriptionDirectionType
Input valueThe input value which will be converted to the specific output typeInputDepends on the Input type property
ResultThe converted input value.OutputDepends on the Output type property

Reporter

Writes a message to the reporting server. The message will for instance appear in the event viewer.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Message

The message which will be written. If no message is specified, a port will appear where the message can be written.

Severity

The severity of the message

Repeated

If true repeated messages will be ignored.

Debug

If true the messages will be regarded as debug information.

Ports

Port nameDescriptionDirectionType
MessageContains the message which will be reported.InputString port
ReportActiveIf true the message will be reported.InputString port

Terminator

This component can be used to when several inputs share their source. It makes configuration easier to connect to a single source. The terminator has one input signal and one output signal. The port type is chosen from a property.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

SignalType

Specifies the type of signal to be delayed. The signal can be analog, digital, string, vector, string vector or matrix.

Ports

Port nameDescriptionDirectionType
InValueThe input value which will be the source of the output.InputDepends on the Signal type property
OutValueThe output value value.OutputDepends on the Signal type property

Modframe Control

Components

Introduction

System overview

The APIS Kalmanfilter (KF) is a APIS ModFrame (MF) module, the class name is BMExKalmanFilter. The KF can be created in the client configuration view, like any other ModFrame component. The Kalmanfilter is a state estimator in which the user can specify a linear or nonlinear state space model in accordance with certain rules. The KF has built in optional bias- and parameter estimation.

The features are:

  • Based on linear or nonlinear state-space models
  • On-line linearization of nonlinear models
  • Bias estimation
  • Parameter estimation
  • Constant or varying Kalmanfilter gain
  • External or internal parameterization
  • Observability checking
  • On-line switching to ballistic mode
  • Easy configuration through the standard ModFrame Client HMI
  • Easy access to all internal Kalmanfilter data structures

Standard Kalman Filter

Model formulation

The linear model formulation is:

where k denotes the discrete timesteps and

x - State vector
y - Measurement vector
u - Control input vector
d - Disturbance vector
v - Process noise vector
w - Measurement noise vector
A - System transition matrix
B – System control matrix
C – Process noise matrix
D – Measurement state matrix
E – Measurement control matrix
F – State disturbance matrix
G – Measurement disturbance matrix

Kalman filter computations

The following equations are computed at each timestep:

Prediction:

Kalman filter gain:

Filtering:

where

  predicted state vector

  predicted measurement vector

 predicted state covariance matrix

 Kalman filter gain matrix

 measurement noise covariance matrix

  process noise covariance matrix

  filtered state vector

 filtered state covariance matrix

Extended Kalman filter

Model formulation

The nonlinear model formulation used in the extended Kalman filter is:

where k denotes the discrete timesteps and

x - State vector
y - Measurement vector
u - Control input vector
d - Disturbance vector
v - Process noise vector
w - Measurement noise vector 
θ – Parameter vector
C – Process noise matrix

Extended Kalman filter computations

The following equations are computed at each timestep:

Prediction:

Kalman filter gain:

Filtering:

Measurement bias estimation

In order to estimate measurement biases, the internal Kalman filter model is augmented with bias states:

The bias state is added to the original output vector:

The augmented linear model becomes:

The augmented nonlinear model becomes

Parameter estimation

The BMExKalmanFilter module implements parameter estimation for nonlinear models. This means that an arbitrary number of the parameters in the general parameter vector θ in the nonlinear model may be estimated.

In order to estimate parameters the internal Kalman filter model is augmented with parameter states:

The augmented nonlinear model becomes:

The Kalman filter computations takes place as for the standard Extended Kalman filter, except that

Augmentation sequence

When the Kalman filter is augmented for bias- and parameter estimation, the augmentation sequence is fixed. Assume the following dimensions: 

nmodel - Model state dimension

nbias    - number of estimated biases

nparam - number of estimated parameters

The first part of the state vector is the nmodel original states, the next nbias elements are the estimated output biases, and the last nparam states are the estimated parameters. The resulting augmented state vector is

 

 Project References

  • The Kalmanfilter module is successfully implemented in a paper factory at Norske Skog, Halden, for controlling the paper quality together with the APIS MPC module.
  • In the Ormen Lange gas field, the same modules are used to control the pressure in the two slugcatchers by computing choke setpoints to 16 production chokes located at a distance of 120 km from the slugcatchers.

Properties

The Kalmanfilter has a number of properties. In the ModFrame client, rightclick on the KF-module and choose 'Properties' to open a dialog.

Parameters

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Active

This parameter is not used.

Report Event Level

The event level severity sent to the event log. All events with equal or higher severity will be reported. The levels are:

  1. Info        - All events are reported
  2. Warning  - Warnings and Alarms are reported 
  3. Alarm     - Alarms are reported
  4. None      - No events are reported

Model type

The Model type parameter decides what kind of model to use. Possible choices are:

  • Linear. Linear state space model. The standard Kalman filter algorithm will be used in this case. The model is defined by the BMExKalmanFilter property matrices or by model matrices connected to BMExKalmanFilter ports.
  • Nonlinear. Nonlinear state space model. The extended Kalman filter algorithm will be used in this case. Nonlinear models must be defined in separate Java classes. These classes must implement the MFSSModelInterface.

Model path

The path for nonlinear model classes

Model

The Model parameter defines which nonlinear model to use. All the models in the path defined by the Model path parameter will be listed here. This property has no function when the Model type parameter is set to Linear.

Reload model

This property forces the nonlinear model parameters to be reloaded to initial values from the model class defined by the Model parameter. This property has no function when the Model type parameter is set to Linear.

Parameterization

With this property the type of parameterization is set. Possible choices are:

  • Internal. When this choice is activated, all model parameters are defined in the BMExKalmanFilter property pages.
  • External. When this choice is activated, parameterization ports will be visible at the left side of the module. Model parameters will be read from these ports. This choice is advantageous when parameters change. When linear models are used there will be one input port for each model matrix. When nonlinear models are used, there will be one input port for the model parameter vector θ.

External lin. point

When this property is true, nonlinear models will be linearized around a linearization point defined by input ports.

Export linear model

When this boolean parameter is activated, the linear model will be exported to BMExKalmanFilter output ports. In the case of nonlinear models, the linear version linearized around the current operating point is exported.

Manipulative matrices for Vk and K

Matrices can be defined on ports which are pre- multiplied with the process covariance matrix Vk and the Kalman gain matrix K. Useful for temporarily masking out parts of the filter, i.e. due to sensor failure.

Export interval

This integer property defines how often to export linearized models. The default value is 1. This means that the model will be exported every time step. If the property is set to n, the model is exported every n'th time step.

Constant gain

This is a boolean parameter defining the type of gain to use. When true, constant Kalman gain will be used. When false, the Kalman gain will be computed at each time step.

Only states in readState

ModFrame has a feature of persisting the current state of modules. If this property is true, only the state vectors will be persisted (fastest). If false, filtering matrices will be persisted as well.

Check observability

This property is used to check the observability of the model. When true, an observability report is written to the ModFrame Client Log view. The property should only be true during configuration, since the computations are time consuming and the Log view will be overloaded with information.

Update initval on save

When this property is set to true, the initial values of the Kalman filter is updated to the current state of the filter when the application is saved. If false, the initial values will be read from the model class file the next time the application is loaded.

Vectors

The general Kalman filter vector dialog has the following columns:

  • Name - The name of the vector element.
  • Value - The value of the vector element.
  • EngUnit - The engineering unit of the vector element
  • Range - The operating range of the vector element. This value is used to determine the perturbation steps for linearization and to scale the vectors for observability checking.
  • MaxVal - The maximum value of the vector element. For input vectors, values higher than this value are rejected.
  • MinVal - The minimum value of the vector element. For input vectors, values lower than this value are rejected.

When configuring the Kalman filter, the system dimension is set in these vector dialogs. The following sections describes the available vectors.

x0-init. state

Initial state for the Kalman filter. The filter starts from this state immediately after the application is loaded or reset. This vector is also used to set the state dimension of the model. (Linear models)

xhat-filtered state

Filtered state.

xlin-state lin.point

This is the state linearization point of the current linear model.

flin-derived state lin. point

================================

The state derivative in the linearization point.

yk-measurement

Measurement (output) value. This reflects the latest measurement value read from the input port. This vector is also used to set the output dimension of the model. (Linear models)

yest-est. meas.

Estimated (filtered) output value

ylin-meas. lin.point

This is the output linearization point of the current linear model.

uk-control signal

Control value. This reflects the latest control value read from the input port. This vector is also used to set the control value dimension of the model. (Linear models)

ulin-xontrol lin.point

=========================

This is the control value linearization point of the current linear model.

dk-disturbance

Disturbance. This reflects the latest disturbance value read from the input port. This vector is also used to set the disturbance dimension of the model. (Linear models)

dlin-dist. lin point

This is the disturbance linearization point of the current linear model.

vk-noise

Process noise. This vector is used to set the dimension of the process noise vector.

Bias decision

This vector decides which of the outputs to estimate biases for. When an element in this vector is set to 1, the bias of the corresponding element in the output vector will be estimated.

b0-init. bias

Initial bias value, i.e. the bias from which the filter will start after the application is loaded or reset.

bk-bias

Current bias value.

pk-param est.

Current value for parameter estimates.

ek-pred. error

Prediction error.

Meas. status

Measurement status. If one of the elements of this vector is set to 0, the Kalman filter will not be updated according to the corresponding element of the output vector element. (Ballistic mode)

Parameters

Nonlinear model parameters. This is the configurable parameters of the nonlinear model. The parameter vector is not used for Linear models. The parameter vector has an extra column called Estimate. When an element of this column is set to 1, the corresponding parameter element will be estimated in the Kalman filter. The covariance matrices has to be changed when the choice of estimated parameters is changed.

Matrices

The figure below shows a typical Matrix property page. The dimension of the matrices is automatically updated in accordance to the dimension of the corresponding vector properties.

Tip! If you have matrices on a tab separated format, e.g. in a spreadsheet or Matlab, you can copy these values into the clipboard and use the Paste button in the matrix dialog to set the value of the matrix.

Ak - System-transition matrix

This is the system transition matrix of the current model. If a nonlinear model is used, this matrix shows the state equation linearized with respect to the states.

Bk - System-control matrix

This is the system control matrix of the current model. If a nonlinear model is used, this matrix shows the state equation linearized with respect to the control values.

Ck - System-noise matrix

This is the system noise matrix of the current model.

Dk - Measurement-state matrix

This is the measurement-state matrix of the current model. If a nonlinear model is used, this matrix shows the output equation linearized with respect to the states.

Ek - Measurement-control matrix

This is the measurement control matrix of the current model. If a nonlinear model is used, this matrix shows the output equation linearized with respect to the control values.

Fk - System-disturbance matrix

This is the system disturbance matrix of the current model. If a nonlinear model is used, this matrix shows the state equation linearized with respect to the disturbances.

Gk - Measurement disturbance matrix

This is the measurement disturbance matrix of the current model. If a nonlinear model is used, this matrix shows the output equation linearized with respect to the disturbances.

Vk - Process noise cov. matrix

The process noise covariance matrix is used to define the covariance of the process noise vector.

VBiask - Bias noise cov. matrix

The bias noise covariance matrix is used to define the covariance of the bias noise vector (the augmented process noise vector). The sequence of the matrix elements is the same as the order the estimated biases appear in the measurement vector.

VPark - Param noise cov. matrix

The parameter noise covariance matrix is used to define the covariance of the parameter noise vector (the augmented process noise vector). The sequence of the matrix elements is the same as the order the estimated parameters appear in the parameter vector for nonlinear models.

Wk - Meas. noise cov. matrix

The output (measurement) noise covariance matrix is used to define the covariance of the measurement noise vector.

M0 - Init. state cov. matrix

This matrix defines the initial augmented state covariance matrix, i.e. the value of the state covariance matrix when the application is loaded or reset.

Pk - Filtered state cov. matrix

This is the current value of the filtered augmented state covariance matrix: 

 

Kk - Kalman gain matrix

The Kalman gain matrix shows the resulting augmented Kalman gain when the constant gain parameter is set to false. When the constant gain parameter is true, this matrix is used to define the Kalman gain.

A - complete

This is a read only matrix showing the augmented system-transition matrix including bias- and parameter estimation.

B - complete

This is a read only matrix showing the augmented system-control matrix including bias- and parameter estimation.

C - complete

This is a read only matrix showing the augmented system-noise matrix including bias- and parameter estimation.

D - complete

This is a read only matrix showing the augmented measurement-state matrix including bias- and parameter estimation.

F - complete

This is a read only matrix showing the augmented system-disturbance matrix including bias- and parameter estimation.

V - complete

This is a read only matrix showing the augmented system state covariance matrix including bias- and parameter estimation.

Ports

The BMExKalmanFilter has ha large number of ports. However, the visibility of these ports are dependent on the module parameter settings.

Input Ports

The input ports are the ports that connects the Kalman filter to the process. These ports are always visible, and located at the left hand side of the component.

Measurement

This is the measurement input to the Kalman filter. This port should be connected to the process measurements.

Control signal

This is the control signal input to the Kalman filter. This port should be connected to the process control values.

Disturbance

This is the disturbance signal input to the Kalman filter. This port should be connected to the process disturbances.

Control Ports

The control ports are ports used to control the module operations. These ports are always visible, and located at the bottom of the component.

Active

The active port activates the module. If the boolean port value is set to true, the Kalman filter computations are performed. When false, the Kalman filter is inactive.

MPC Active

This is a boolean port used to control the computation sequence of the Kalman filter. When false, the Kalman filter predictions are executed at the end of each computation cycle. When true, the predictions are executed at the start of each computation cycle, utilizing the newest possible input values for measurements, control values and disturbances. The port should be set to true when the Kalman filter is used in a closed loop with the Apis MPC controller.

Update exported model

This boolean port controls updating of the exported model. When false, the exported model is not updated.

Meas. status

This vector port is used to set the Kalman filter in ballistic mode, and has the same dimension as the output (measurement) port. The elements of the vector port indicates the state of the corresponding measurement. When an element is set to 1, the Kalman filter is updated in respect to the corresponding measurement. When the element is set to false, the Kalman filter runs ballistic in respect to the corresponding measurement.

Output Ports

The output ports export the results of the Kalman filter computations, and these ports are updated after each computation cycle. The output ports are always visible, and located at the right hand side of the component.

Additional user defined ports can be created for models defined in a Java class that extends GenericSSModelImpl by overriding the createPorts() method.

Est. states

Estimated (filtered) states.

Est. meas

Estimated (filtered) outputs (measurements).

Prediction error

The current prediction error.

Bias

Estimated (filtered) biases. This is a vector containing the estimated biases in the order they appear in the measurement vector.

Est. Params

Estimated (filtered) parameters. This is a vector containing the estimated parameters in the order they appear in the parameter vector for nonlinear models.

Parameter input ports

The Parameter input ports are ports for external parameterization of the module. These ports are visible on the left hand side when the Parameterization property is set to External.

AkIn

System transition matrix (Linear model only)

BkIn

System control matrix (Linear model only)

FkIn

State disturbance matrix (Linear model only)

DkIn

Measurement state matrix (Linear model only)

EkIn

Measurement control matrix (Linear model only)

GkIn

Measurement disturbance matrix (Linear model only)

xlinIn

State linearization point. This port is also visible when the External linearization point parameter is true. (Linear model only)

ulinIn

Control value linearization point (Linear model only)

dlinIn

Disturbance linearization point (Linear model only)

ylinIn

Output (measurement) linearization point (Linear model only)

flinIn

State derivative in the linearization point (Linear model only)

Parameters

Nonlinear model parameters. (Nonlinear model only)

Parameter output Ports

The Parameter output ports are ports for exporting the Kalman filter model to other modules. These ports are visible on the right hand side when the Export linear model parameter is set to true. The model ports reflects the model matrices and operating point of the linear (or linearized) model.

AkOut

System transition matrix

BkOut

System control matrix

FkOut

State disturbance matrix

DkOut

Measurement state matrix

EkOut

Measurement control matrix

GkOut

Measurement disturbance matrix

xlinOut

State linearization point

ulinOut

Control value linearization point

dlinOut

Disturbance linearization point

ylinOut

Output (measurement) linearization point

flinOut

State derivative in the linearization point

Best Practices

Recommended configuration approach

A nonlinear state space model for the system must be implemented in a Java class extending the class GenericSSModelImpl. Looking at an example will probably speed up the implementation time. Let the KF parameter ‘Constant gain’ be true in the beginning (this is the default value). This results in a ballistic simulation which is useful for model behavior verification. Verify that the ‘Model type’ parameter is in conjunction with your implementation. Also verify the ‘Model path’ and ‘Model’ parameters. Connect the measurements and control variables are to the correct ports.
Once confident that the model behaves correctly, the filter can be activated. Rightclick to open the properties. press the Vector tab and locate the vk-noise vector. Expand this vector to the same size as the number of states, press Apply ('Reload model' must be hooked off). In the Matrix tab, locate and insert values for the system noise matrix Ck (the identity matrix can be a good choice for starters), press Apply. Insert values for the process noise covariance matrix Vk, press Apply. Insert values for the measurement noise covariance matrix Wk, press Apply. On the Parameters tab, toggle ‘Constant gain’ to false to activate the filter.

Optimization

Once a good filter matrix K is obtained, it is possible to freeze the K matrix by setting the ‘Constant gain’ parameter to true, this will decrease the cpu load. When the KF is used to linearize a system, it by default perturbs the variables and simulates the system one step for each perturbation to obtain the linear model. This can result in heavy cpu load. In the model class (which extends GenericSSModelImpl), it is possible to compute the matrices (one or all) from analytical equations. To do this, override the methods getA(), getB() etc.. 

Pitfalls and common mistakes

An error message “Singular matrix in the Kalmanfilter” often occurs with beginners. This is usually due to not configured or wrong values in the system noise matrix Ck, the process noise covariance matrix Vk and the measurement noise covariance matrix Wk. Set the size of the vector vk-noise to the number of states, Ck will then get correct size. If changing the size of vk-noise has no effect, hook off 'Reload model' in the Parameters tab.
Instability can occur if the Kalmanfilter gain matrix, K, is too large. This is usually due to too small measurement noise covariance matrix compared to the process noise covariance matrix.

PIDController

The PIDController is a discrete position form implementation (not incremental) of a PID controller, including anti windup. The algorithm is based on Haugen, Finn "Anvendt reguleringsteknikk"(1992, Tapir) eq. 1.57 p. 92.

The algorithm is as follows:

i[k] = i[k-1] + (Kp*dT/Ti)*e[k]; // integral part

u = Kp*e[k] + i[k] + Kp*Td*(e[k] - 2*e[k-1] + e[k-2])/dT;

Where

i[k]  - is the integral part at time k

e[k] - is control deviation at time k (reference - measurement)

u     - resulting control value

Kp   - proportional gain

Ti    - integral time

Td   - derivate time

dT   - sample time

Properties

In the ModFrame client, rightclick on the PIDContoller-module and choose 'Properties' to open a dialog.

Parameters

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Active

This parameter is not used.

Report Event Level

The event level severity sent to the event log. All events with equal or higher severity will be reported. The levels are:

  1. Info        - All events are reported
  2. Warning  - Warnings and Alarms are reported 
  3. Alarm     - Alarms are reported
  4. None      - No events are reported

Control max value

The maximum value the control can be. If this limit is reached, the control is limited to this maximum value and the anti windup is set into action. 

Control min value

The minimum value the control can be. If this limit is reached, the control is limited to this minimum value and the anti windup is set into action.

Ports

PIDController has a number of ports for inputs, controller parameters and control signals.

Input Ports

These ports are always visible, and are located at the left hand side of the component.

Reference

The reference to track.

Measurement

The value to control to the reference value.

Kp

Proportional gain.

Ti

Integral time. Set this to a large value if integral action is not desired.

Td

Derivate time. Set this to 0 if derivate action is not desired.

Output Ports

These ports are always visible, and are located at the right hand side of the component.

Control

The control value.

ControlDeviation

The difference between the reference and the measurement.

Control Ports

These ports are always visible, and are located at the top of the component.

Control init

The control value if Reset is active.

Reset

The Control init value will be used as control value, and the integral part is set to zero.

Modframe Tracker

Components

Acquisition

DataValueWriter

The purpose of the DataValueWriter component is to collect material attributes. The component has ports for capturing data, a port for referencing materials and a triggering port used to initiate a transaction. When a transaction is initiated, the values of the data capturing ports are read, and these values are stored in the Apis Click&Trace database and connected to the material that is referenced by the value of the material reference port.

Properties

The properties of this component are organized in multiple tabs. The separate tabs are described dedicated sub topics.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Triggering

The triggering parameter decides how to initiate a transaction. The triggering is controlled by an input port named Trigger, and the value of this port decides if a transaction should occur or not. There are several triggering options available:

  • Digital rising flank: The trigger port type is boolean and triggering occurs on positive flanks on the port value.
  • Digital falling flank: The trigger port type is boolean and triggering occurs on negative flanks on the port value.
  • Digital flanks: The trigger port type is boolean and triggering occurs on both positive and negative flanks on the port value.
  • Digital high: The trigger port type is boolean and triggering occurs on every time step as long as the port value is true.
  • Digital low: The trigger port type is boolean and triggering occurs on every time step as long as the port value is false.
  • Analog change: The trigger port type is analog and triggering occurs when the analog port value changes.
  • Analog change discard zero: The trigger port type is analog and triggering occurs when the analog port value changes, except of transitions to zero.
  • String change: The trigger port type is string and triggering occurs when the string port value changes.
  • String change discard blanks: The trigger port type is string and triggering occurs when the string port value changes except of transitions to blank strings.

Trigger delay

This parameter makes it possible to delay the trigger signal, i.e. perform the triggered action a specific number of time steps after the trigger signal occurred. When the value is 0 or negative there is no delay, when > 0 the value indicates how many time steps to delay the triggered action.

Target

This parameter decides what the captured data values shall be linked to. The options are:

  • TrackerMaterial: Data values are linked to the tracking materials referenced by the TraMaIDs of the TrackerMaterialIDs port.
  • Material Lot: Data values are linked to the material lots referenced by the TraMaIDs of the TrackerMaterialIDs port.
  • All: All the targets above.

Data Value Dimension

This parameter controls the dimension of the data value ports. The options are:

  • Scalar: The data value ports are scalar. The value present on the ports is written to all the materials.
  • Vector: The data value ports are vectors of the same size as the TrackerMaterialIDs port. The value present on the port elements are written to the material referenced by the corresponding element on the TrackerMaterialIDs port.

Capture

The capture tab is used to define for which data definitions to capture data values. There will be created one data capture port for every data definition selected in this tab.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

Data Name

This is the name of the data definition of the captured data. The column is used to select the data definition for which to capture data values.

Data Type

This is the data type of the data definition selected in the Data Name column. This column is read-only.

Dimension

This is the dimension of the data definition selected in the Data Name column. This column is read-only.

Eng. unit

This is the engineering unit of the data definition selected in the Data Name column. This column is read-only.

Aggregation

This is the aggregation of the data definition selected in the Data Name column. This column is read-only.

Description

This is the description of the data definition selected in the Data Name column. This column is read-only.

PortName

This is the name of the corresponding capture port.

Ports

Triggering ports

The component has two triggering ports:

  • Trigger: This port is used to initiate a transaction. The function of the trigger port depends on the selected triggering option.
  • Hold: This is a digital port is used to freeze the inputs of the component. When the value of this port is true, the rest of the port values of the components are frozen, and the values of these ports will not be transferred into the component.

Material reference port

This port is used to reference the material for which to capture attributes. This is a vector port named TrackerMaterialIDs. The value of the port is expected to be the TraMaID(s) of the referenced material(s). 

Data capture ports

The data capture ports are used to collect the actual material attributes. There will be one port per row in the capture parameter tab. The dimension of the ports depends on the setting of the Data Value Dimension parameter. The ports will be named according to the selected data definitions.

IdentValueWriter

The purpose of IdentValueWriter is to register identifiers and link the identifiers to tracking material material and/or material lot. The component may also be used to update existing identifiers by updating the values of the identifiers. The identifiers are inserted or updated according to port values when the component is triggered.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Triggering

The triggering parameter decides how to initiate a transaction. The triggering is controlled by an input port named Trigger, and the value of this port decides if a transaction should occur or not. There are several triggering options available:

  • Digital rising flank: The trigger port type is boolean and triggering occurs on positive flanks on the port value.
  • Digital falling flank: The trigger port type is boolean and triggering occurs on negative flanks on the port value.
  • Digital flanks: The trigger port type is boolean and triggering occurs on both positive and negative flanks on the port value.
  • Digital high: The trigger port type is boolean and triggering occurs on every time step as long as the port value is true.
  • Digital low: The trigger port type is boolean and triggering occurs on every time step as long as the port value is false.
  • Analog change: The trigger port type is analog and triggering occurs when the analog port value changes.
  • Analog change discard zero: The trigger port type is analog and triggering occurs when the analog port value changes, except of transitions to zero.
  • String change: The trigger port type is string and triggering occurs when the string port value changes.
  • String change discard blanks: The trigger port type is string and triggering occurs when the string port value changes except of transitions to blank strings.

Trigger delay

This parameter makes it possible to delay the trigger signal, i.e. perform the triggered action a specific number of time steps after the trigger signal occurred. When the value is 0 or negative there is no delay, when > 0 the value indicates how many time steps to delay the triggered action.

Ident definition

This parameter specifies the Ident definition of the identifiers to write or update. The available ident definitions are governed by the database configuration.

Operation mode

This parameter specifies the operating mode of the component. The alternatives are:

  • Update. The component is used to update existing identifiers. An input port named IdentValueIDs will appear. The IdentValues referenced by the IdentValueIDs port will be updated according to the values present on the IdentValues port.
  • Insert. The component is used to write new identifiers and link to TrackingMaterial or Material lots. An input port named TrackerMaterialIDs will appear. The ident values present on the IdentValues port will be written and linked to the TrackingMaterial and/or MaterialLots referenced by the TrackerMaterialIDs port. Whether the identifiers shall be linked to TrackingMaterial, MaterialLot or both are governed by the database configuration (IdentValue table).

Input dimension

This parameter controls the dimension of the ident value input. The alternatives are:

  • Vector. The ident value input will be a string vector port named IdentValues. The dimension of this port must be the same as the IdentValueIDs/TrackerMaterialIDs port. The elements in the IdentValues reference the corresponding elements in IdentValueIDs/TrackerMaterialIDs port.
  • Scalar. The ident value input will be a scalar string port named IdentValue. The scalar value references all the elements in the IdentValueIDs/TrackerMaterialIDs port. The result is that the same ident value is written to all the materials in write mode, or that the all the identifiers are updated to the same value in update mode.

Ports

Triggering ports

The component has two triggering ports:

  • Trigger: This port is used to initiate a transaction. The function of the trigger port depends on the selected triggering option.
  • Hold: This is a digital port is used to freeze the inputs of the component. When the value of this port is true, the rest of the port values of the components are frozen, and the values of these ports will not be transferred into the component.

IdentValue

This port will appear when the input dimension is scalar and provides the identifier to insert in insert mode, or the new value of the identifier in update mode.

IdentValues

This port will appear when the input dimension is vector and provides the identifiers to insert in insert mode, or the new value of the identifiers in update mode.

IdentValueIDs

This port is available in update mode, and provides the IdentValueIDs of the identifiers to update.

TrackerMaterialIDs

This port is available in insert mode, and provides the TraMaIDs of the materials for which to insert identifiers.

Completed

This digital port indicates that the component transaction is completed. In may be used to trigger other components that use the output from this component.

HandledTrackerMaterialIDs

This port exposes a vector of the TraMaIDs that have been involved in a transaction. The port is only available in insert mode.

IdentValuesNotFound

This port exposes IdentValues from the IdentValues input port that corresponds to elements on the IdentValueIDs input ports that are -1 (e.g. not found by a MaterialLookup component). The port is only available in update mode.

IdentValuesNotFoundCount

This port exposes the number of elements in the IdentValuesNotFound port. The port is only available in update mode.

ProbabilityAssigner

The purpose of ProbabilityAssigner is to assign or change material lot individual probability. When a new probability is assigned, the current probability of the material lot is multiplied by the new probability. The individual probabilities to register together with the material on which to register individual probabilities are provided on ports. The specified probabilities will be registered on the material when the component is triggered.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Triggering

The triggering parameter decides how to initiate a transaction. The triggering is controlled by an input port named Trigger, and the value of this port decides if a transaction should occur or not. There are several triggering options available:

  • Digital rising flank: The trigger port type is boolean and triggering occurs on positive flanks on the port value.
  • Digital falling flank: The trigger port type is boolean and triggering occurs on negative flanks on the port value.
  • Digital flanks: The trigger port type is boolean and triggering occurs on both positive and negative flanks on the port value.
  • Digital high: The trigger port type is boolean and triggering occurs on every time step as long as the port value is true.
  • Digital low: The trigger port type is boolean and triggering occurs on every time step as long as the port value is false.
  • Analog change: The trigger port type is analog and triggering occurs when the analog port value changes.
  • Analog change discard zero: The trigger port type is analog and triggering occurs when the analog port value changes, except of transitions to zero.
  • String change: The trigger port type is string and triggering occurs when the string port value changes.
  • String change discard blanks: The trigger port type is string and triggering occurs when the string port value changes except of transitions to blank strings.

Trigger delay

This parameter makes it possible to delay the trigger signal, i.e. perform the triggered action a specific number of time steps after the trigger signal occurred. When the value is 0 or negative there is no delay, when > 0 the value indicates how many time steps to delay the triggered action.

Probability Input

This parameter decides if the probability input is a vector of specific probabilities for each material, or a scalar probability that shall be assigned to all the materials.

Ports

Triggering ports

The component has two triggering ports:

  • Trigger: This port is used to initiate a transaction. The function of the trigger port depends on the selected triggering option.
  • Hold: This is a digital port is used to freeze the inputs of the component. When the value of this port is true, the rest of the port values of the components are frozen, and the values of these ports will not be transferred into the component.

Completed

This digital port indicates that the component transaction is completed. In may be used to trigger other components that use the output from this component.

TrackerMaterialIDs

This is a vector port providing the TraMaIDs of the material for which to assign individual probability.

Probability

This is an analog port providing the probability in case of scalar Probability Input.  

Probabilities

This is a vector port providing the probabilities in of vector Probability Input.

QualityWriter

The purpose of the QualityWriter component is to assign or change material qualities on TrackingMaterial and MaterialLots. The material qualities to register together with the material on which to register quality are provided on ports. The specified qualities will be registered on the material when the component is triggered.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Triggering

The triggering parameter decides how to initiate a transaction. The triggering is controlled by an input port named Trigger, and the value of this port decides if a transaction should occur or not. There are several triggering options available:

  • Digital rising flank: The trigger port type is boolean and triggering occurs on positive flanks on the port value.
  • Digital falling flank: The trigger port type is boolean and triggering occurs on negative flanks on the port value.
  • Digital flanks: The trigger port type is boolean and triggering occurs on both positive and negative flanks on the port value.
  • Digital high: The trigger port type is boolean and triggering occurs on every time step as long as the port value is true.
  • Digital low: The trigger port type is boolean and triggering occurs on every time step as long as the port value is false.
  • Analog change: The trigger port type is analog and triggering occurs when the analog port value changes.
  • Analog change discard zero: The trigger port type is analog and triggering occurs when the analog port value changes, except of transitions to zero.
  • String change: The trigger port type is string and triggering occurs when the string port value changes.
  • String change discard blanks: The trigger port type is string and triggering occurs when the string port value changes except of transitions to blank strings.

Trigger delay

This parameter makes it possible to delay the trigger signal, i.e. perform the triggered action a specific number of time steps after the trigger signal occurred. When the value is 0 or negative there is no delay, when > 0 the value indicates how many time steps to delay the triggered action.

Quality Input Type 

This parameter decides if the quality input is MaterialQualityName or MaterialQualityID.

Quality Input Dimension

This parameter decides if the quality input is a vector of specific qualities for each material, or a scalar quality that shall be written to all the materials.

Default Quality

This parameter decides what quality to register when the quality input is incorrect or ambiguous.

Ports

Triggering ports

The component has two triggering ports:

  • Trigger: This port is used to initiate a transaction. The function of the trigger port depends on the selected triggering option.
  • Hold: This is a digital port is used to freeze the inputs of the component. When the value of this port is true, the rest of the port values of the components are frozen, and the values of these ports will not be transferred into the component.

Completed

This digital port indicates that the component transaction is completed. In may be used to trigger other components that use the output from this component.

TrackerMaterialIDs

This is a vector port providing the TraMaIDs of the material for which to assign material quality.

Quality Names

This port appears when the Quality Input Type is Quality Name and Quality Input Dimension is Vector. The port provides the quality names of the qualities to assign to the material provided by the TrackerMaterialIDs port. If the quality names provided on this port do not match actual material quality names, the material quality defined by the Default Quality property will be registered.

Quality Name

This port appears when the Quality Input Type is Quality Name and Quality Input Dimension is Scalar. The port provides the quality name of the quality to assign to the material provided by the TrackerMaterialIDs port. If the quality name provided on this port does not match an actual material quality name, the material quality defined by the Default Quality property will be registered.

Quality IDs

This port appears when the Quality Input Type is Quality ID and Quality Input Dimension is Vector. The port provides the quality IDs of the qualities to assign to the material provided by the TrackerMaterialIDs port. If the quality IDs provided on this port do not match actual material quality IDs, the material quality defined by the Default Quality property will be registered.

Quality ID

This port appears when the Quality Input Type is Quality ID and Quality Input Dimension is Scalar. The port provides the quality ID of the quality to assign to the material provided by the TrackerMaterialIDs port. If the quality ID provided on this port does not match an actual material quality ID, the material quality defined by the Default Quality property will be registered.

QuantityCounter

The quantity counter component is designed to register data according to the Apis Click&Trace Counter concept and customized for easy connection to simple scalar counter inputs from low level equipment. An instance of the QuantityCounter can count on behalf of one specific counter definition. In addition to registering the counter values in the ACT database, the component can expose the counter values on ports e.g. for logging to APIS Honeystore. The component will count and accumulate events internally, and not necessarily update the database/ports every time the internal counter change. There are several strategies available for when to update the database/ports :

  • Updates can be triggered by an external trigger signal.
  • Updates can be trigger by change in the active counted enumeration.
  • Updates can be performed periodically.
  • Updates can be performed every time step.
  • Updates can be performed when the accumulated counter value has reached a specific limit.

It is possible to specify combinations of the above 5 strategies. Since the database/ports are not necessarily updated at the time when the physical event(s) happen, and several physical events can be aggregated to one database transaction, the time stamps of the events in the database are approximations. There are 3 approaches for how to approximate the time stamps:

  • Use the time stamp of the first aggregated event
  • Use the time stamp of the last aggregated event
  • Use the mean of the above two time stamps.

When logging port-exposed counter values to APIS Honeystore, the Honeystore time stamp will correspond to the time stamp of the last aggregated event.

Even if the component can count on behalf of only one single counter definition, it is possible to set up several counter inputs in the component. This may be useful if the events to count comes from different signal sources on different formats, but shall be interpreted as one single counted quantity.

Properties

The properties of this component are organized in multiple tabs. The separate tabs are described dedicated sub topics.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Counter definition

This property defines the counter definition for which to count events. The set of counter definitions to select from are defined by the database configuration.

Time registration

This property defines what time stamps to register in the database for the aggregated counted events. The options are:

  • First. Use the time stamp of the first aggregated physical event. 
  • Middle. Use the mean time stamp of the first and last aggregated physical event.
  • Last. Use the time stamp of the last aggregated physical event.

Register on trigger

When this property is checked, accumulated counter values will be transferred to the database on positive flank of the trigger port.

Register on enum change

When this property is checked, accumulated counter values will be transferred to the database when the enumID of a counter changes. This option may be adequate when the CounterEnumType is Portbased ID.

Register period

This parameter decides on what period (seconds) accumulated counter values will be transferred to the database. When zero, values are not transferred to the database periodically.

Register every time step

When true, accumulated counter values will be transferred every time step.

Port exposure reset

The Port exposure reset defines how long the exposed counter values will be available on the exposure ports:

  • Immediately: The results are available in one time step.
  • On consecutive registration: The results are available until the next result is registered.
  • Step delayed: The results are available in a given number of time steps. The number of time steps are defined in the Port exposure reset delay parameter.
  • Time delayed: The results are available in a given period. The period (milliseconds) is defined in the Port exposure reset delay parameter.

Port exposure reset delay

The Port exposure reset delay defines the delay when the Port exposure reset is one of the delayed options:

  • Step delayed: Number of steps to delay the reset.
  • Time delayed: Number of milliseconds to delay the reset.

Max accumulation

The maximum number of events to accumulate before accumulated counter values will be transferred to the database.

Counter maximum value

This property applies only to counter inputs of type Analog Difference and defines the expected maximum value of the counter variable on the signal source. This value is used to calculate the sum of remainders when counter overflow occurs.

Example: If the signal source is 8 bit, this property should be set to 255.

Counter overflow threshold

This property applies only to counter inputs of type Analog Difference and is used to decide how to handle decreasing values on the signal source. A decrease in the signal source most often indicates an overflow of the counter variable, but decreases may also happen when the signal source is reset, the PLC is restarted and so on. With this property it is possible to define the limit where decreasing values shall be handled as overflow. If the counter value decreases, but is larger that the value specified by this property, the situation is interpreted as overflow of the counter.

Counters

This tab is used to define the counter inputs of this component and the properties of the inputs. Depending on the settings, there will be one or two input ports per counter input.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

CounterName

This column defines the name of the counter input which will be reflected as names on the counter input ports.

CounterInputType

This column defines the type of counter input. The options are:

  • Digital Rising Flank. Use this option if the signal from the external source exists in the form of a digital pulse, and that the positive flank of the pulse indicates a counter increment of 1. A digital counter input port will appear when this option is used.
  • Digital Falling Flank. Use this option if the signal from the external source exists in the form of a digital pulse, and that the negative flank of the pulse indicates a counter increment of 1. A digital counter input port will appear when this option is used.
  • Analog Difference. Use this option if the signal from the external source exists in the form of an incrementing integer or floating point value and that the increment of the external value shall be interpreted as an equally sized increment of the counter. The accumulated counter value will be the difference between two consecutive samples of the external value. An analog counter input port will appear when this option is used.
  • Analog Change. Use this option if the signal from the external source exists in the form of an integer or floating point value, and that the change of this value indicates a counter increment of 1. An analog counter input port will appear when this option is used.

CounterEnumType

This property defines what event to count for this specific counter input. The counter input may count specific fixed events, or the type of event can be input from a port. The options are:

  • Category set. This option is adequate when the event to count is fixed and the counter category (enumeration set) is a default set such as articles or material qualities. With this option, the fixed event to count is defined by the EnumValue column.
  • Fixed ID. This option is adequate when the event to count is fixed and the counter category (enumeration set) is undefined. With this option, the fixed event to count is defined by the EnumID column.
  • Portbased ID. This option is adequate when the event to count are defined by the external source. With this option, a port providing the ID of the event to count will appear.

EnumValue

This column is used to specify the fixed event to count when the CounterEnumType is Category set. When the CounterEnumType is Fixed ID or Portbased ID, this column is read only and displays the current active event of the counter.

EnumID

This column is used to specify the fixed event to count when the CounterEnumType is Fixed id. When the CounterEnumType is Category set or Portbased ID, this column is read only and displays the ID of the current active event of the counter.

Expose registration

This column is used to specify whether the aggregated counter values shall be exposed on ports at the time of database registration. When exposure is enabled, a port exposing the aggregated value is created.

Ports

Trigger

This port is used to trigger transfer of the accumulated counter values to the database. The port is only evaluated when the Register on trigger property is checked.

<CounterName> Input

This is a digital or analog port providing the counter value or counter input from the external source. The port type is decided by the CounterName column in the Counters tab.

<CounterName> EnumID

This is an analog port providing the current enumeration id of the counter input with name <CounterName>. 

<CounterName> Counter Registration

This is an analog port providing the aggregated counter value for the counter input with name <CounterName>. The aggregated counter value will be available on the port in one time step at the time when the database registration takes place. Apart from that time step, the value of the port will be 0.0.

ProcessTransactions

The group process transactions contains a set of ModFrame components that are used to perform various process related database transactions against the Apis Click&Trace database.

CarrierOperation

The CarrierOperation component is designed to perform frequently used carrier operations such as 

  • Carrier connecting which means connecting a carrier to active material in the database.
  • Carrier releasing which means releasing a carrier from active material in the database.
  • Carrier flushing which means removing the material that is connected to a carrier, and release the carrier.

The name of the carrier for which to perform an operation is provided on a port.

Parameters

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

ReportEventLevel

All events with equal or higher severity will be reported.

Carrier class

This property defines the carrier class to operate. The set of available carrier classes are defined by the database configuration.

Operation strategy

The operation strategy defines the criterion for when to perform the carrier operations. The options are:

  • Externally triggered. Carrier operations are performed on the positive flank of the trigger port.
  • OnChange. Carrier operations are performed when the content of the CarrierName port is changed.

Operation

This property defines which carrier operation to perform from this component. The options are:

  • Connect carrier. This is not yet implemented.
  • Release carrier. This operation will release the material contained in the carrier from the carrier. (This means setting the EndTime of the CarrierContent table.)
  • Flush carrier. This is not yet implemented.

Ports

Trigger

This digital port is used to trigger carrier operations externally. The carrier operations are triggered on positive flanks of this port.

CarrierName

This string port provides the name of the carrier for which to perform an operation.

EquipmentHandler

The EquipmentHandler component is designed for registering and deregistering equipments in process units and to make equipment properties and sub equipment id's available on ports in the tracker application. The component will host the equipment on behalf of a process unit, and updates the database when the hosted equipment changes.

Properties

The properties of this component are organized in multiple tabs. The separate tabs are described dedicated sub topics.

Parameters

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

ReportEventLevel

All events with equal or higher severity will be reported.

Equipment class

This property defines the equipment class to choose hosted equipment from. The equipment class is only editable when component does not expose any equipment properties.

Process unit

This property defines for which process unit to host equipment. The selection of process units available are consists of the process units that is related to the equipment class (the equipment class property) of this component.

Current equipment

This is a read only property displaying the name of the currently hosted equipment.

Equipment selection method

This property is used to select the method used to register hosted equipment. The options are:

  • Fixed. With this option it is not possible to change the hosted equipment. (Deprecated)
  • Port(name). With this option the hosted equipment are defined by the value of a component port which provide the name of the hosted equipment.
  • Port(id). With this option the hosted equipment are defined by the value of a component port which provide the id of the hosted equipment.

Equipment property update strategy

This property defines the strategy for when to update the exposed equipment properties. The options are:

  • Equipment change. Equipment properties will be read from the database and exposed on ports when the hosted equipment changes.
  • Time advance. Equipment properties will be read from the database and exposed on ports every time step.

Maximum number of sub equipments

This property defines the maximum number of sub equipment id's to expose on ports. All the sub equipment ports must be disconnected in order to change this parameter.

Equipment properties

The Equipment properties tab enables exposure of data values that are related to the hosted equipment. It is possible to define exposure of several data definitions, and an exposure port per data definition will appear. 

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

Data Name

This is the name of the data definition of the data to expose. The column is used to select the data definition for which to expose data. Only data definitions that are related to the selected equipment class will be selectable.

Data Type

This is the data type of the data definition selected in the Data Name column. This column is read-only.

Dimension

This is the dimension of the data definition selected in the Data Name column. This column is read-only.

PortName

This read only column displays the name of the exposure port.

Ports

Equipment active

vasdasf

Equipment Name

This port appear when the Equipment selection method is Port(name). Equipment names are expected on this port and the value of this port defines the hosted equipment. If the value of the port does not correspond to a valid equipment name, the component will not host any equipment.

Equipment id

This port appear when the Equipment selection method is Port(id). Equipment names are expected on this port and the value of this port defines the hosted equipment. If the value of the port does not correspond to a valid equipment id, the component will not host any equipment.

Sub equipment id X

This is a set of ports exposing the id's of the sub equipments of the hosted equipment. The maximum number of sub equipment id's to exposed are defined by the Maximum number of sub equipments property. If the actual number of sub equipments are lower than the maximum, the redundant ports will display the value -1.

Article id

This port exposes the article id of the article related to the hosted equipment. If several articles are related to the hosted equipment, the id of first article (ordered by Article) will be exposed.

Article

This port exposes the Article of the article related to the hosted equipment. If several articles are related to the hosted equipment, the first Article (ordered by Article) will be exposed.

Exposure ports

There will be created one port per data definition that is selected for exposure. The name of these ports will be the same as the data definition name. The update strategy of the exposure ports are defined by the Equipment property update strategy.

ProcessUnitTimeAllocator

The ProcessUnitTimeAllocator component is used to register process time allocation on behalf of a process unit. The component has ports providing information about the current state of the selected process unit. State changes are logged to the database resulting in a set of time linked state periods for each process unit in the database.

The component has two areas of application:

  • Register a state change. With this option the current state period of the process unit is closed and a new open ended state period is opened.
  • Register a new state for the current state period. The start time of the current state is left unchanged, but the actual state is changed to a new process time group.

This component replaces the time allocation functionality in the tracker process units DiscreteCollection, RandomCollection, OrderedCollection and TimeDelay.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Process Unit

The Process Unit parameter is used to select the process unit for which this component registers process time allocation. This component can register process time allocation for process units residing in another tracker.

Allocation mode

The Allocation mode parameter is used to select what type of transaction this component shall register. The possible choices are:

  • Change time group: The component is used to change time group for the actual process unit.
  • Update time group: The component is used to update the current time group of the process unit.
  • Change and Update time group: The component is used to change the time group and update the current time group for the actual process unit.

Article allocation

The Article allocation parameter is used to enable article based process time allocation. The possible choices are:

  • Disabled: Article based process time allocation is disabled.
  • Single article: Article based process time allocation is enabled for single articles.
  • Multiple articles: Article based process time allocation is enabled for multiple articles.

Ports

NewTimeGroup

This port is used to start a new state period. The port expects an integer time group code, and when the value of this port changes, a database transaction considering all the port values is initiated. This port is available when the Allocation Mode is Change time group or Change and Update time group.

UpdateTimeGroup

This port is used to change the state of the current state period. The port expects an integer time group code, and when the value of this port changes, a database transaction considering all the port values is initiated. This port is available when the Allocation Mode parameter is Update time group or Change and Update time group.

Article

This port is used to relate the current state period to an article. The port expects an integer ArticleID, and when the value of this port changes, a database transaction considering all the port values is initiated. This port is available when the Article allocation parameter is Single article.

Articles

This port is used to relate the current state period to a set of articles. The port expects an integer array of ArticleID's, and when the value of this port changes, a database transaction considering all the port values is initiated. This port is available when the Article allocation parameter is Multiple articles.

ProcessTimeCroupCode

This port displays the time group code of the current process time group.

ProcessTimeGroupName

This port displays the time group name of the current process time group.

ProcessTimeGroupLabel

This port displays the time group label of the current process time group.

ProcessTimeClassName

This port displays the time class name of the current process time group.

Querying

The group Querying contains a set of ModFrame components that are used to perform querying against the tracker application and the Apis Click&Trace database.

IDLookup

The ID lookup component are used to translate between database entity names and database entity ID's. The component will initiate an SQL query against the configuration database to perform the requested translations.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

ReportEventLevel

All events with equal or higher severity will be reported.

Query

This parameter defines the translation to perform. The alternatives are:

  • Quality name to quality ID. The component will find the material quality ID of a given material quality name.
  • Quality label to quality ID. The component will find the material quality ID of a given material quality label.
  • Article name to article ID. The component will find the article ID of a given article name.
  • Article to article ID. The component will find the article ID of a given article.

Refresh strategy

This parameter defines when to perform translations. The alternatives are:

  • Never. Translations will never occur.
  • OnChange. Translations will be performed when the input to the component changes.
  • OnTimeAdvance. Translations will be performed every time step. (Not recommended)
  • OnTrigger. Translations will be performed initiated by a trigger signal.

Refresh result set on failure

This parameter affects the behavior in error situations. When true, repeating translation attempts will be performed when a translation fails. When false, no retry attempts are performed.

Keep value on failure

This parameter affects the behavior in error situations and decides whether the value of the previous translation shall be available on the output port if the current translation fails.

Report errors

When this parameter is true translation errors will be reported.

Output type

This parameter decides whether it is expected single or multiple valid translations of one single input.

Ports

Query String

This string port provides the argument string that is to be translated to a database ID.

Trigger

If the Refresh strategy is OnTrigger, translations are performed on positive flanks of this digital port.

Active

This digital port is used to activate or deactivate translations. When this port is false, no translations will be performed in any case.

ID

This is an analog port providing the result of a translation when the Output type is Single.

IDs

This is an array port providing the result of a translation when the Output type is Multiple.

Query Error

This is a digital port indicating if a translation has failed.

IdentExposure

The IdeneExposure component is used to expose the materials contained at given location. The identifiers of the materials at a specified location is exposed on a String vector port.

Parameters

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Ident definition

This is the ident definition of the identifiers to expose.

Refresh options

With this property it is possible to decide when to refresh the exposed identifiers. The alternatives are:

  • Never. The exposed identifiers will never be updated.
  • Time advance. The exposed identifiers are updated every time step.
  • Externally trigged. The exposed identifiers are updated on demand based on a trigger signal.

Search level

This property is used to decide how to restrict the boundary for what material to expose. The alternatives are:

Process unit

This property defines the process unit for which to expose material identifiers when the Search level property is set to Process unit.

Tracker Process Unit

This property defines the tracker process unit for which to expose material identifiers when the Search level property is set to Process unit.

Report result

When true, lookup results are written to the log.

Expose only made material

When this property are true, only the material that is made will be exposed. Material in the appending state will not be exposed.

Unique identifier values

When this property is true, duplicates will only be listed once.

Ports

CTR Trigger

If the Refresh option is Externally trigged, the exposed identifiers are performed on positive flanks of this digital port.

Ident values

This is a string vector containing the exposed identifiers.

MaterialLookup

The purpose of the MaterialLookup component is to find material in the tracker based on identifiers. The MaterialLookup component are frequently used to translate argument identifiers (human readable, bar codes, RFID and so on) to the internal TraMaID (tracking material id) that is used for identification of tracking material internally in the tracker and between the components of a tracker application. Typical uses of the MaterialLookup component is to generate material move transactions on the basis of external identifiers, or data acquisition transaction on specific materials based on external identifiers.

Consider using the MaterialAttributeLookup component instead of MaterialLookup. MaterialAttributeLookup has more features and may be more intuitive to use.

Properties

The properties of this component are organized in multiple tabs. The separate tabs are described dedicated sub topics.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Triggering

The triggering parameter decides how to initiate a transaction. The triggering is controlled by an input port named Trigger, and the value of this port decides if a transaction should occur or not. There are several triggering options available:

  • Digital rising flank: The trigger port type is boolean and triggering occurs on positive flanks on the port value.
  • Digital falling flank: The trigger port type is boolean and triggering occurs on negative flanks on the port value.
  • Digital flanks: The trigger port type is boolean and triggering occurs on both positive and negative flanks on the port value.
  • Digital high: The trigger port type is boolean and triggering occurs on every time step as long as the port value is true.
  • Digital low: The trigger port type is boolean and triggering occurs on every time step as long as the port value is false.
  • Analog change: The trigger port type is analog and triggering occurs when the analog port value changes.
  • Analog change discard zero: The trigger port type is analog and triggering occurs when the analog port value changes, except of transitions to zero.
  • String change: The trigger port type is string and triggering occurs when the string port value changes.
  • String change discard blanks: The trigger port type is string and triggering occurs when the string port value changes except of transitions to blank strings.

Trigger delay

This parameter makes it possible to delay the trigger signal, i.e. perform the triggered action a specific number of time steps after the trigger signal occurred. When the value is 0 or negative there is no delay, when > 0 the value indicates how many time steps to delay the triggered action.

Ident definition

This parameter specifies the ident definition of the argument identifier. The list of available ident definitions are governed by the database configuration.

Search input

This parameter defines how to handle the value of the argument identifier, and what criteria that are used to find materials that match the argument identifier identifier.

  • Ident value. The argument identifier is matched against ident values. Match requires complete match of all the characters of the search input.
  • Ident value ID. The argument identifier is matched against ident value IDs. Match requires match of the complete ID.
  • Ident value match start. The search input identifier is matched against ident values. Match requires that the first characters of the material identifiers are the same as the search input identifier.
  • Ident value match end. The argument identifier is matched against ident values. Match requires that the last characters of the material identifiers are the same as the external identifier.
  • Ident value reg ex. The search input identifier is matched against ident values. Match requires that a regular expression is satisfied. (To be explained later)

Input dimension

The input dimension defines the dimension of the argument identifier input port. A lookup may be performed on single argument identifiers or multiple argument identifiers.

  • Scalar. Lookup is performed on a single argument identifier. The input port is a string port.
  • Vector. Lookup is performed on multiple argument identifiers. The input port is a string vector port.

Lookup rule

This parameter defines the expected result of the lookup.

  • Distinct Material. It is expected that multiple material identifiers can match the external identifier(s). The number of materials found does not need to be equal to the number of argument identifiers.
  • Unique identification. It is expected that there exists one and only one material identifier that matches each argument identifier. If several materials match the argument identifier, a warning is generated, and the newest (CreateTime) of the matched materials are returned.

TPU filter

The TPU filter parameter defines where (in which TPU’s) to search for material.

  • Specific TPUs. The tracker process units defined in the Filters tab are searched.
  • All. All tracker process units in the tracker application are searched.

Hold Result

When this parameter is checked, the search results are held on the result ports until a new result arrives. When unchecked, the search results stay on the result ports for just one time step.

Report ambiguous lookups

When this parameter is checked, the component will report warnings related to ambiguous lookups. This feature may be useful for debugging purposes.

Filters

The filters tab is used to select where (in which tracker process units) to search for material when the TPU filter parameter is set to “Specific TPUs”.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

Tracker Process Unit

In this column the tracker process units in which to search for material are defined. All tracker process unit in the tracker application can be selected. The column displays the MFC names of the tracker process units.

Ports

IdentValues/IdentValue

This port provides the argument identifiers to search for. The port is scalar or vector dependent Input dimension parameter.

Triggering ports

The component has two triggering ports:

  • Trigger: This port is used to initiate a transaction. The function of the trigger port depends on the selected triggering option.
  • Hold: This is a digital port is used to freeze the inputs of the component. When the value of this port is true, the rest of the port values of the components are frozen, and the values of these ports will not be transferred into the component.

TrackerMaterialIDs

This port provides the TraMaIDs that are the result of the search. The port has the same dimension as the ident value input, and the elements are -1 for the elements in the ident value input that are not found.

Search completed

This digital port indicates that the search is completed. In may be used to trigger other components that use the output from this component.

ResultingIdentValueIDs

This port provides the IdentValueIDs of the identifiers that are the result of the search. The port has the same dimension as the ident value input, and the elements are -1 for the elements in the ident value input that are not found.

NotFoundCount

This port exposes the number of identifiers from the ident value input that are not found.

MaterialAttributeLookup

The purpose of the MaterialAttributeLookup is to expose material attributes on ports in the tracker application. The component will locate material based on argument identifiers and expose specific attributes of the material that match the argument identifier. Material attributes such as amount, material quality, articles and identifiers are exposable.

The MaterialAttributeLookup component is an extension of the MaterialLookup component and can replace MaterialLookup in all situations.

Properties

The properties of this component are organized in multiple tabs. The separate tabs are described dedicated sub topics.

General

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Triggering

The triggering parameter decides how to initiate a transaction. The triggering is controlled by an input port named Trigger, and the value of this port decides if a transaction should occur or not. There are several triggering options available:

  • Digital rising flank: The trigger port type is boolean and triggering occurs on positive flanks on the port value.
  • Digital falling flank: The trigger port type is boolean and triggering occurs on negative flanks on the port value.
  • Digital flanks: The trigger port type is boolean and triggering occurs on both positive and negative flanks on the port value.
  • Digital high: The trigger port type is boolean and triggering occurs on every time step as long as the port value is true.
  • Digital low: The trigger port type is boolean and triggering occurs on every time step as long as the port value is false.
  • Analog change: The trigger port type is analog and triggering occurs when the analog port value changes.
  • Analog change discard zero: The trigger port type is analog and triggering occurs when the analog port value changes, except of transitions to zero.
  • String change: The trigger port type is string and triggering occurs when the string port value changes.
  • String change discard blanks: The trigger port type is string and triggering occurs when the string port value changes except of transitions to blank strings.

Trigger delay

This parameter makes it possible to delay the trigger signal, i.e. perform the triggered action a specific number of time steps after the trigger signal occurred. When the value is 0 or negative there is no delay, when > 0 the value indicates how many time steps to delay the triggered action.

Argument

This parameter defines the input argument to the query. The input argument is provided on an argument input port. The argument options are:

  • TraMaID. The input argument is TraMaID and will be matched against TraMaIDs in the tracker application.
  • IdentValue. The input argument is Identifier and will be matched against the ident values of the Identifiers in the tracker application. Match requires complete match of all the characters.
  • IdentValueID. The input argument is Ident Value ID and will be matched against ident value IDs of the Identifiers in the tracker application. Match requires match of the complete ID.
  • IdentValue match start. The input argument is Identifier and will be matched against the ident values of the Identifiers in the tracker application. Match requires that the first characters of the material identifiers are the same as the external identifier.
  • IdentValue match end. The input argument is Identifier and will be matched against the ident values of the Identifiers in the tracker application. Match requires that the last characters of the material identifiers are the same as the external identifier.
  • IdentValue reg ex. The input argument is Identifier and will be matched against the ident values of the Identifiers in the tracker application. Match requires that a regular expression is satisfied.

Argument IdentDefinition

This parameter specifies the ident definition of the identifier argument when the argument is IdentValue or IdentValueID. The list of available ident definitions are governed by the database configuration.

Argument type

This parameter defines the expected result of the lookup. The options are:

  • Single Material Identification. It is expected that there exists one and only one material material that matches each argument. If several materials match the argument, a warning is generated, and the newest (CreateTime) of the matched materials are returned. Use this option when it is expected that the query will return only one material.
  • Material group identification. It is expected that multiple materials identifiers can match the argument(s). The number of materials found does not need to be equal to the number of arguments. Use this option when it is expected that the query will return several materials.

Argument dimension

The Argument dimension defines the dimension of the argument input port. A lookup may be performed on a single argument or multiple arguments. The options are:

  • Scalar. Lookup is performed on a single argument. The argument input port is a scalar port.
  • Vector. Lookup is performed on multiple arguments. The argument input port is a vector port.

Exposure dimension

The exposure dimension defines the expected dimension of the exposed result values.

  • Scalar. The query is expected to return a single material. The exposure ports are scalars.
  • Vector. The query is expected to return multiple materials. The exposure ports are vectors.

Process filter

The Process Filter can restrict where (in which tracker process units) to search for material. The options are:

  • Enabled. The tracker process units defined in the Process Filter tab are searched.
  • Disabled. All tracker process units in the tracker application are searched.

Result reset

The Result reset parameter defines how long the query results will be available on the exposure ports. The reset options are:

  • Immediately. The results are available in one time step.
  • On consecutive trigger. The results are available until the next search is triggered.
  • Step delayed. The results are available in a given number of time steps. The number of time steps are defined in the Result reset delay parameter.
  • Time delayed. The results are available in a given period. The period (milliseconds) is defined in the Result reset delay parameter.

Result reset delay

The Result reset delay defines the delay when the Result reset parameter is one of the delayed options:

  • Step delayed. Number of steps to delay the reset.
  • Time delayed. Number of milliseconds to delay the reset.

Report ambiguous lookups

When this parameter is checked, the component will report warnings related to ambiguous lookups.

Process filter

The Process filter tab is used to select where (in which tracker process units) to search for material when the Process filter parameter is enabled.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

Tracker Process Unit

In this column the tracker process units in which to search for material are defined. All tracker process unit in the tracker application can be selected. The column displays the MFC names of the tracker process units.

Attribute exposure

The Attribute exposure tab is used to define what material attributes to expose on ports.

TraMaID

Check this parameter to expose the TraMaIDs of the resulting materials on port.

Amount

Check this parameter to expose the amounts of the resulting materials on port.

MaterialQualityID

Check this parameter to expose the Material Quality ID of the resulting materials on port.

MaterialQualityName

Check this parameter to expose the Material Quality Name of the resulting materials on port.

MaterialQualityLabel

Check this parameter to expose the Material Quality Label of the resulting materials on port.

ArticleID

Check this parameter to expose the ArticleID of the resulting materials on port.

Article

Check this parameter to expose the Article of the resulting materials on port.

Article name

Check this parameter to expose the Article name of the resulting materials on port.

Ident exposure

The Ident exposure tab is used to define which identifiers to expose on ports. 

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

IdentDefinitions

This column is used to select the ident definition of the identifiers to expose. There will be one port for each selected ident definition. The name of the exposure port will be Resulting Ident Value(s) for IdentDefinitionName, where IdentDefinitionName is the name of the actual Ident definition.

Substitution

The substitution tab is used to define the exposure port values in abnormal situations, such as port reset and query errors. It is recommended to define the exposed values for those situations in order to simplify the interpretation for the components that use the exposed values. Well defined values for those situation will give a more robust design.

Missing String substitution

When materials are not found, exposed string values will be replaced by the string defined by this parameter.

Missing ID substitution

When materials are not found, exposed entity IDs will be replaced by the integer defined by this parameter.

Missing Value substitution

When materials are not found, exposed numerical values will be replaced by the value defined by this parameter.

Reset String substitution

When result ports are reset, exposed string values will be replaced by the string defined by this parameter.

Reset ID substitution

When result ports are reset, exposed entity IDs will be replaced by the integer defined by this parameter.

Reset Value substitution

When result ports are reset, exposed numerical values will be replaced by the value defined by this parameter.

Ports

Argument input

The argument input port provides the input argument to the lookup query. The type and name of this port depends on the settings of the Argument and the Argument dimension properties in the General tab. The name of the port is always prefixed Argument, e.g. Argument TraMaID if the argument is TraMaID_._

Attribute Exposure ports

The attribute exposure ports makes material attributes of the materials from the query results accessible on ports. The set of visible attribute exposure ports are defined by the settings in the Attribute exposure.

  • Resulting TraMaID / Resulting TraMaIDs. This port exposes the TraMaIDs of the resulting materials when the TraMaID parameter of the Attribute exposure tab is checked.
  • Resulting Amount / Resulting Amounts. This port exposes the amounts of the resulting materials when the Amount parameter of the Attribute exposure tab is checked.
  • Resulting MaterialQualityID / Resulting MaterialQualityIDs. This port exposes the Material Quality IDs of the resulting materials when the MaterialQualityID parameter of the Attribute exposure tab is checked.
  • Resulting MaterialQualityName / Resulting MaterialQualityNames. This port exposes the Material Quality Names of the resulting materials when the MaterialQualityName parameter of the Attribute exposure tab is checked.
  • Resulting MaterialQualityLabel / Resulting MaterialQualityLabels. This port exposes the Material Quality Labels of the resulting materials when the MaterialQualityLabel parameter of the Attribute exposure tab is checked.
  • Resulting ArticleID / Resulting ArticleIDs. This port exposes the ArticleIDs of the resulting materials when the ArticleID parameter of the Attribute exposure tab is checked.
  • Resulting Article / Resulting Articles. This port exposes the Articles of the resulting materials when the Article parameter of the Attribute exposure tab is checked.
  • Resulting ArticleName / Resulting ArticleNames. This port exposes the Article names of the resulting materials when the ArticleName parameter of the Attribute exposure tab is checked.

Ident exposure ports

The Ident exposure ports makes Identifiers of the materials from the query results accessible on ports. There will be one port for each selected ident definition in the Ident exposure tab. The name of the exposure ports will be Resulting Ident Value(s) for IdentDefinitionName, where IdentDefinitionName is the name of the actual Ident definitio

Triggering ports

The component has two triggering ports:

  • Trigger: This port is used to initiate a transaction. The function of the trigger port depends on the selected triggering option.
  • Hold: This is a digital port is used to freeze the inputs of the component. When the value of this port is true, the rest of the port values of the components are frozen, and the values of these ports will not be transferred into the component.

NoMaterialFound

This digital port signals a positive flank when a search which did not return any material is completed.

NotFoundCount

This analog port displays the number of searched materials that were not found in the previous lookup.

MaterialFound

This digital port signals a positive flank when a search which returns one or more materials is completed.

FoundCount

This analog port displays the number of materials found in the previous lookup.

SearchCompleted 

This digital port indicates that the search is completed. In may be used to trigger other components that use the output from this component.

StoredProcedure

The StoredProcedure component is designed for stored procedure execution on the Apis Click&Trace database. The component can execute stored procedures created on the TSP schema of the Apis Click&Trace database. The component will automatically provide input ports that reflects the input arguments of the actual stored procedure, and there is functionality for exposing the result set of the actual stored procedure as port values.

Properties

The properties of this component are organized in multiple tabs. The separate tabs are described dedicated sub topics.

General

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Triggering

The triggering parameter decides how to initiate a transaction. The triggering is controlled by an input port named Trigger, and the value of this port decides if a transaction should occur or not. There are several triggering options available:

  • Digital rising flank: The trigger port type is boolean and triggering occurs on positive flanks on the port value.
  • Digital falling flank: The trigger port type is boolean and triggering occurs on negative flanks on the port value.
  • Digital flanks: The trigger port type is boolean and triggering occurs on both positive and negative flanks on the port value.
  • Digital high: The trigger port type is boolean and triggering occurs on every time step as long as the port value is true.
  • Digital low: The trigger port type is boolean and triggering occurs on every time step as long as the port value is false.
  • Analog change: The trigger port type is analog and triggering occurs when the analog port value changes.
  • Analog change discard zero: The trigger port type is analog and triggering occurs when the analog port value changes, except of transitions to zero.
  • String change: The trigger port type is string and triggering occurs when the string port value changes.
  • String change discard blanks: The trigger port type is string and triggering occurs when the string port value changes except of transitions to blank strings.

Trigger delay

This parameter makes it possible to delay the trigger signal, i.e. perform the triggered action a specific number of time steps after the trigger signal occurred. When the value is 0 or negative there is no delay, when > 0 the value indicates how many time steps to delay the triggered action.

Stored procedure

The Stored procedure parameter is used to select the stored procedure to execute. Only stored procedures on the TSP schema are available for execution. When a stored procedure is selected, the parameters of the stored procedure will be reflected as
input ports on the component. It is not possible to change the stored procedure if the input ports are connected.
If the parameters of the stored procedure changes, this will be reflected on the input ports the next time the property page is opened.

Result port dimension

The Result port dimension parameter is used to select the dimension of the result set ports. The possible choices are:

  • Scalar. The result ports will be scalar. The type of scalar is decided in the Result Set Port Mapping tab.
  • Vector. The result ports will be vector. The type of scalar is decided in the Result Set Port Mapping tab.
  • Matrix. There will be one matrix result port. The elements of the matrix are analog.

Operation mode

The Operation mode defines the way the stored procedure is executed:

  • Asynchronous: The stored procedure is executed in a separate thread. This option is recommended in order to avoid delays in the tracker operation.
  • Synchronous: The stored procedure is executed by the main tracker thread. Use this option with care, since delays in the store procedure may delay the whole tracker operation.

Max execution queue length

The Max execution queue length parameter can be used to limit the number of queued execution requests.

Result Set Port Mapping

The Result Set Port Mapping tab is used to expose the elements of result set of the stored procedure on result set ports. The result set can be exposed as scalars, vectors or matrices depending on the setting of the Result port dimension property.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

The layout of the parameter matrix depends on the Result port dimension property. The column layout for the different settings are explained below.

Scalar result dimension

This column layout is used to map elements of the result set to scalar result set ports. Each row in the parameter matrix will correspond to one scalar result port. The columns are:

  • Column name. Type in the column of the result set from which to pick the scalar result port value.
  • Row number. Type in the row (starting at 1) of the result set from which to pick the scalar result port value.
  • Port type. Select the desired scalar result port type. The type may be Analog, String or Digital. The actual elements of the result set will be casted to the selected port type if possible.
  • Port name. Type in the desired scalar result port name.

Vector result dimension

This column layout is used to map elements of the result set to vector result set ports. Each row in the parameter matrix will correspond to one vector result port. The columns are:

  • Column name. Type in the column of the result set from which to pick the vector result port value.
  • Port type. Select the desired vector result port type. The type may be Analog or String. The actual elements of the result set will be casted to the selected port type if possible.
  • Port name. Type in the desired vector result port name.

Matrix result dimension

This layout is used to specify the name of the matrix result set port when the Result port dimension is matrix. Matrix result dimension can only be used for numeric result sets, and the dimension of the matrix port reflects the dimension of the result set.

Result Reset

The result reset tab is used to define how long the query result will be available on the result set ports and what to display on the result set ports in case of reset.

Result port reset

The Result reset parameter defines how long the query results will be available on the result set ports. The reset options are:

  • Immediately. The results are available in one time step.
  • On consecutive trigger. The results are available until the next search is triggered.
  • Step delayed. The results are available in a given number of time steps. The number of time steps are defined in the Result reset delay parameter.
  • Time delayed. The results are available in a given period. The period (milliseconds) is defined in the Result reset delay parameter.

Result reset delay

The Result reset delay defines the delay when the Result port reset parameter is one of the delayed options:

  • Step delayed. Number of steps to delay the reset.
  • Time delayed. Number of milliseconds to delay the reset.

Reset digital substitution  

Use this parameter to define the reset value of digital result ports. The reset value will be equal to the value of this parameter.

Reset analog substitution

Use this parameter to define the reset value of analog result ports. The reset value will be equal to the value of this parameter.

Reset string substitution

Use this parameter to define the reset value of string result ports. The reset value will be equal to the value of this parameter.

Reset row dimension

Use this parameter to define the reset row dimension of vector and matrix result ports. The reset row dimension will be equal to the value of this parameter.

Reset column dimension

Use this parameter to define the reset column dimension of matrix result ports. The reset column dimension will be equal to the value of this parameter.

Performance

The performance tab is used monitor the performance of the StoredProcedure component. The available performance indicators are described below.

Previous execution time

This parameter displays the previous stored procedure execution time in milliseconds.

Max execution time

This parameter displays the maximum stored procedure execution time since the start of the tracker application.

Ports

Result set ports

This component has a configurable set of result set ports. The type and name of the available ports are defined by the Result port dimension property and the settings in the Result Set Port Mapping tab

Triggering ports

The component has two triggering ports:

  • Trigger: This port is used to initiate a transaction. The function of the trigger port depends on the selected triggering option.
  • Hold: This is a digital port is used to freeze the inputs of the component. When the value of this port is true, the rest of the port values of the components are frozen, and the values of these ports will not be transferred into the component.

Result ready

This digital port will pulse when there are new results available on the result set ports.

Result ports valid

This digital port will be true when there are valid results available on the result set ports. The value will be false when the result set ports are reset.

Execution active

This digital port indicates that the execution of a stored procedure is active. The port value is true when the execution of the stored procedure spans several time steps when the Operation mode is Asynchronous.

Execution queue length

This port indicates the number of stored procedure execution requests that is queued for execution when the Operation mode is Asynchronous. The number includes the currently executing stored procedure.

Top applications

All ModFrame applications are driven by a top application. The task of the top application is to provide an infrastructure and to coordinate all the other components in the ModFrame application.

TrackerEngine

The TrackerEngine top application is designed especially for tracking purposes. The main task of the TrackerEngine is to coordinate the material flow between the tracker process units and to provide infrastructure for database communication.

Properties

The properties of this component are organized in multiple tabs. The separate tabs are described dedicated sub topics.

Parameters

The parameters tab contains miscellaneous central parameters in the top application.

Name

This is the name of the top application. The name will be visible in the configuration area, and will also be registered in the database.

ReportEventLevel

This parameter can be used to filter what events that are written to the application log by the tracker. All events with equal or higher severity than the one chosen will be reported.

Sequential top application

If this parameter is true, the contained components of the top applications will be operated sequentially, and the order of the component is significant. When false, the order is insignificant, and delays may occur between chained components.

Intermediate state persistence

The Intermediate state persistence parameter decides when the tracker material data will be persisted to the database. The alternatives are:

  • Disabled: Tracking material will only be persisted when the state changes, i.e. on material creation, material making and material exit.
  • Continuously: Tracking material will be persisted whenever the material is changed, i.e. on amount changes and so on.

DB object caching

This option decides what types of database configuration objects to cache. Cached objects will be read from the database first time used, and fetched from the caches for later use. Examples of cached objects are MaterialQualities.

Log material quality history

If this parameter is true, material quality changes will be logged into the MaterialQualityLog table. For large databases there may be advantageous to leave this parameter off in order to save database space and increase performance.

Force port data exchange

If this parameter is true, data will be exchanged between connected ports even if the values have not changed. When false, data will be exchanged only if the source port has newer information than the destination port.This property is included to obtain backward compatibility, and may be removed in later versions of the tracker.

Offline transaction interval

The offline transaction interval (milliseconds) decides how often asynchronous transactions will be performed. This value cannot be less than 1000.

Offline transaction maximum time lapse

The offline transaction maximum time lapse (milliseconds) is the maximum amount of time used when writing a batch of asynchronous transactions since the tracker started.

Last offline transaction time lapse

The last offline transaction time lapse (milliseconds) is the amount of time used when writing the last batch of asynchronous transactions.

Persist database on shutdown

When this parameter is set to true, material amounts, material data capture, tracking material quality and run states are persisted to the database on shutdown.

Persist quality

This parameter controls the what quality (TraMaQualityCode) that shall be persisted when the tracker is shut down controlled.

Transaction lock timeout

The transaction lock timeout in milliseconds decides how long a message based (web based) transaction is allowed to lock the tracker. After this period the tracker is automatically unlocked and signal based transactions are allowed to run.

Max number of exclusive transactions

This parameter decides the maximum number of exclusive transactions allowed in a sequence. If this number is exceeded, the transaction lock will be unlocked in order to allow signal based transactions to take place. When the signal based transactions are finished, the transaction lock is locked again.

Max number of exclusive moves

This parameter decides the maximum number of material transfers allowed in a single transaction. If this number is exceeded, the transaction lock will be unlocked in order to allow signal based transactions to take place. When the signal based transactions are finished, the transaction lock is locked again.

Tracking event report level

This parameter decides the degree of reporting from the tracker. It is recommended that the level is set to ‘High’ in configuration or debugging periods.

Material outdate interval

This parameter (seconds) decides how often the tracker shall check the tracker process units for outdated material. If the property is set to 0.0, no material outdating will be performed.

Engine state report interval

The engine state report interval (seconds) decides how often to write information about internal tracker engine state to the event log. If the value is set to 0.0, reporting is disabled.

OLTP DB

This tab contains parameters for the OLTP database connection. The OLTP database connection is used for registration of operational data such as material transactions, data acquisition etc.

Preferred JDBC driver

This is the JDBC driver to use for communication with the SQL server database. The jTDS JDBC Driver is reccommended for use with SQL server 2005

Computer

This is the name of the computer that hosts the SQL server database, or the name of the SQL server. If the SQL server is a named instance, this is indicated by a \ that separates the computer name and the instance name, e.g. localhost\sqlinstance.

Note! The jTDS JDBC Driver does not support the instance name notation. With the jTDS JDBC driver the instance is indicated by the Port.

Port

This is the TCP/IP port to use for communication with the SQL server.

Database name

This is the name of the database.

Login name

This is the SQL server authentication login name. The best practice is to define a dedicated tracker login on the SQL Server. For security reasons it is not recommended to use the sa user.

Password

This is the SQL server authentication password.

Query timeout

Sets the number of seconds the jdbc driver will wait for a Statement object to execute to the given number of seconds. If the limit is exceeded, an SQLException is thrown and the actual transaction or query is terminated. Use with care! If a non zero value is supplied this must be greater than the maximum time that the server will take to answer any query.

Socket timeout

The amount of time to wait (in seconds) for network activity before timing out. Use with care! If a non zero value is supplied this must be greater than the maximum time that the server will take to answer any query. Once the timeout value is exceeded the network connection will be closed. Note: This property is only effective when using the jTDS JDBC driver.

Connection status

This is a read-only parameter showing the status of the database connection.

Database version

This is a read-only parameter showing the version of the connected Apis Click&Trace database.

Config DB

This tab contains parameters for the configuration database connection. The configuration database connection is used for registration of configuration data such as registration of tracker process units and connections between tracker process units.

Preferred JDBC driver

This is the JDBC driver to use for communication with the SQL server database. The jTDS JDBC Driver is reccommended for use with SQL server 2005

Computer

This is the name of the computer that hosts the SQL server database, or the name of the SQL server. If the SQL server is a named instance, this is indicated by a \ that separates the computer name and the instance name, e.g. localhost\sqlinstance.

Note! The jTDS JDBC Driver does not support the instance name notation. With the jTDS JDBC driver the instance is indicated by the Port.

Port

This is the TCP/IP port to use for communication with the SQL server.

Database name

This is the name of the database.

Login name

This is the SQL server authentication login name. The best practice is to define a dedicated tracker login on the SQL Server. For security reasons it is not recommended to use the sa user.

Password

This is the SQL server authentication password.

Query timeout

Sets the number of seconds the jdbc driver will wait for a Statement object to execute to the given number of seconds. If the limit is exceeded, an SQLException is thrown and the actual transaction or query is terminated. Use with care! If a non zero value is supplied this must be greater than the maximum time that the server will take to answer any query.

Socket timeout

The amount of time to wait (in seconds) for network activity before timing out. Use with care! If a non zero value is supplied this must be greater than the maximum time that the server will take to answer any query. Once the timeout value is exceeded the network connection will be closed. Note: This property is only effective when using the jTDS JDBC driver.

Connection status

This is a read-only parameter showing the status of the database connection.

Database version

This is a read-only parameter showing the version of the connected Apis Click&Trace database.

Tracking components

The group _tracking component_s contains a set of ModFrame components that are designed for tracking purposes. The tracking components handles the most common transactions involved in a tracking scenario. The types of transactions handled by the tracking components are:

  • Creation of material
  • Material movement
  • Material identification
  • Material data acquisition
  • Process unit run transactions
  • Process state transactions (TimeAllocation)

DiscreteCollection

The tracker process unit components are responsible for tracking of material on behalf of the process units. The tracker process units are responsible for material transactions, run transactions, time allocation and data acquisition transaction related to the process units.

The DiscreteCollection tracker process unit is a real time tracker process unit optimized for discrete tracking. With discrete tracking the make process of materials is omitted. This means that the CreateTime and MakeTime of discrete materials are always the same. With DiscreteCollection the order of the materials in the TPU is insignificant. This means that materials can be moved out of the TPU in any order, and materials are referenced by their identificators for movement out of the TPU. The DiscreteCollection component should only be used in cases where the whole chain of process units produce discrete materials, or in continuous processes where considerable parts of the chain involves discrete materials.

Properties

Main properties

The main properties tab contains the most central parameters of the tracker process unit. Most of these parameters must be considered for the TPU to work properly.

ProcessUnit

The process unit parameter decides on which Process Unit the TPU works. The set of process units available is governed by the database configuration.

Process Unit ID

This is a read only parameter showing the database id of the selected process unit.¨

Tracker process Unit ID

This is a read only parameter showing the assigned database id of this actual TPU.

Task name

The task name is a descriptive name of the TPU. The name of the TPU in the ModFrame environment will be the name of the process unit followed by the task name surrounded by brackets, e.g ProcessUnitName[TaskName]. This parameter is required.

Description

This is a textual description of the TPU. This text is registered in the TrackerProcessUnit table in the database, and may be used for miscellaneous visualization and reporting purposes.

Material status

This is a textual description of the status of the material that is currently inside this tracker process unit. This text is registered in the TrackerProcessUnit table in the database, and are typically used for reporting purposes in order to show status for material.

Product material definition

The product material definition defines what type of material this TPU produces.

Test mode

This parameter is used to enable test mode. The choices are:

  • Disabled: Test mode is disabled.
  • Test material: Material is registered in the database with a state that makes it invisible in all reports.
IMPORTANT: The test mode only applies to this TPU. If this TPU is in test mode, but delivers materials to the next TPU which is not in test mode, the material in the next TPU will be visible in reports, even if it is a successor of test material.

Process topology position 

This parameter is deprecated, and is only available for backward compatibility. Use the INTERMEDIATE choice

Time allocation

This parameter is deprecated, and is only available for backward compatibility. The ProcessUnitTimeAllocator component is recommended for process time allocation.

The time allocation parameter decides how time allocations shall be registered for this TPU. The parameter is only editable when the role Default Time Manager is assigned for the TPU. Possible choices are none, signal based, message based and both. If signal based or both is selected, time allocation control and status ports will appear on the TPU. For message based time allocation registration to take place, message based or both must be selected.

Fictitious Material Handling

This parameter is used to enable fictitious material restore. Fictitious material restore can be used when it is necessary to insert material information directly in the database. By the use of fictitious material restore in the tracker, these materials can be loaded into the tracker application. The possible choices are:

  • Disabled. Fictitious material restore is disabled.
  • Message based. Fictitious material restore is available as web transactions.
  • Signal based. Fictitious material restore is available from a control port on the tracker process unit.
  • Message and signal based. Fictitious material restore is available as web transactions and from a control port on the tracker process unit.
Only material that has the fictitious state in the database will be loaded into the tracker application by the use of fictitious material restore.

Database material state reflection

This parameter is used to enable reflection of database material state. Use this to make the tracker process unit reflect the material state in the database for this TPU. When reflection is initiated all aspects of the material, such as amount, article, identifiers and so on are reloaded from the database.

  • Disabled. Database material state reflection is disabled.
  • Message based. Database material state reflection is available as web transactions.
  • Signal based. Database material state reflection is available from a control port on the tracker process unit.
  • Message and signal based. Database material state reflection is available as web transactions and from a control port on the tracker process unit.

Database run state reflection

This parameter is used to enable reflection of database run state. Use this to make the tracker process unit reflect the run state in the database for this TPU.

  • Disabled. Database run state reflection is disabled.
  • Message based. Database run state reflection is available as web transactions.
  • Signal based. Database run state reflection is available from a control port on the tracker process unit.
  • Message and signal based. Database material state reflection is available as web transactions and from a control port on the tracker process unit.

Default quality assignment

This parameter decides the default material quality to assign to material that enters this TPU. If continued is selected, the quality of the parent material in the previous tracker process unit will be assigned as default material quality in this tracker process unit. If Port based (ID) is selected, a port will appear that enables a default material quality id to be provided from a port. In addition, fixed material qualities may be used as default qualities. The set of qualities available depends on the database configuration. Only qualities related to the selected material definition are available.

This parameter decides the default material quality to assign to material that enters this TPU. If continued is selected, the quality of the parent material in the previous tracker process unit will be assigned as default material quality in this tracker process unit. If Port based (ID) is selected, a port will appear that enables a default material quality id to be provided from a port. In addition, fixed material qualities may be used as default qualities. The set of qualities available depends on the database configuration. Only qualities related to the selected material definition are available.

Port based quality assignment

If this parameter is set to true, a port named CTR Material quality assignment will appear. This port is used to change material quality on specific materials inside the TPU.

Default article assignment

This parameter decides the default article to assign to material that enters this TPU. If None is selected, no article will be assigned. If continued is selected, the article of the parent material in the previous TPU will be assigned as default article in this TPU. If Port based (ID) is selected, a port will appear that enables a default article id to be provided from a port. When default is selected, the default article of the corresponding process unit is assigned. In addition, fixed articles may be used as default articles. This is achieved by selecting a specific article in the list.

Carrier connection

The carrier connection parameter decides how to control the active carrier of the TPU. If a carrier is active on the TPU, all material that enters the tracker process unit will be registered into a carrier. The possible choices are Message based and Signal/Message based. If signal based is selected, a port named CTR Active Carrier ID will appear. This port defines the active carrier of the TPU.

Position ports

If Position ports checked, the module will place its ports at appropriate positions. Uncheck this parameter if you want to place the ports manually. 

Material Lot Registration

This property is used to define the material lot membership of materials entering this tracker process unit. The options are:

  • None. Materials entering this tracker process unit will be standalone without material lot membership.
  • Continued. Materials entering this tracker process unit will be member of the same material lot as the predecessor material in the previous tracker process unit.

In addition to the two options above it is possible to select amongst all material lot definitions which is defined in the database. When a material lot definition is selected, a new material lot of the specified material lot definition will be created when material enters this tracker process unit, and the actual tracking material will be the first in the trace that constitutes the material lot.

Discrete Collection Properties

Material outdate time

This parameter is used to determine how long tracking materials can stay inside this TPU before they are considered outdated, and should automatically be removed from the TPU. The time is specified in seconds since CreateTime. If the parameter is set to 0, no outdating is performed. For the outdate functionality to work, an output definition of type TM Outdated must be configured, and the corresponding control port must be set to true.

Signals

The signals tab enables miscellaneous internal TPU data to be exposed on ports.

Total AMO

This parameter makes the total amount in the TPU available as a port value. The port is named STS Total Amount.

Active carrier

This parameter makes the name of the active carrier in the TPU available as a port value. The port is named STS Active carrier.

Total AMO out

This parameter makes the total amount led out of the TPU available as a port value. The port is named STS Total Amount Out.

Contained tracking material id’s

Displays all the tracking material id's contained in this TPU in a vector port. The port is named STS Contained TraMaIDs.

Total Material Count

This parameter makes the total count of tracking materials in the TPU available as a port value. The port is named STS Total Material count.

Process Unit ID

This parameter makes the process unit ID of the tracker process unit available as a port value. The port is named STS ProcessUnitID.

Tracker Process Unit ID

This parameter makes the tracker process unit ID of the tracker process unit available as a port value. The port is named STS TrackerProcessUnitID.

Input definition

The input definition tab tab is used to define input material flow to this tracker process unit.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

There will be one tracking material input port for every row defined in this tab. These ports must be connected to up-stream tracker process units or tracker material generators.

Material definition

This is the material definition of the input flow. The resulting tracking material input port can only be connected to tracker process units or tracker material generators that produces the this material definition.

Port name

This is the name of the tracking material input port. If the typed name does not start with TMI, the component will prefix the typed port name with ‘TMI’.

Amount conversion

Amount conversion is used to transform the amount transferred from the previous tracker process unit to a new amount in this tracker process unit. The amount conversion value is multiplied with the amount in the previous tracker process unit to form the new amount in this tracker process unit. The value ‘1’ leaves the amount unchanged.

Amount conversion from port

If this parameter is checked, the amount conversion value is read from a port named CTR amount conversion factor where <PortName> is the name of the corresponding TMI port.

Topology independent

If this parameter is checked the tracking material input port becomes a virtual invisible port, where material can flow into the tracker process unit from any other tracker process unit in the tracker application.

Output definition

The output definition tab tab is used to define output material flow from this tracker process unit.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

For every output flow, a tracking material output (TMO) port and a corresponding control (CTR) port will appear. The TMO ports can be connected to downstream tracker process units, or left unconnected to end the material trace at the current position. The CTR ports are used to control the flow through the tracking material output ports.

Material transfer

This column defines the type of material flow to use. The type of control port depends on the type of material flow selected.

  • Flush. This type of material flow allows all the material inside the tracker process unit to flow out through a single TMO port. A digital CTR port will be created. When the value of this CTR port is true, all the material inside the TPU will flow out of the corresponding TMO port.

  • Materials by ID. This option enables flow of distinct identifiable materials. A vector CTR port intended for a TraMaID array is created. This port may e.g. be connected to a MaterialLookup component.

  • Materials by quality class. This option will cause material of a specific material quality class to flow out of the TMO port. An analog CTR port intended for MaterialQualityClassIDs is created.

  • Outdated materials. This option will cause material that has been present in the TPU for longer than a specific time period to flow out of the TMO port. A digital control port is created, and this port must be set to true for the outdate functionality to be enabled.

              

The outdate time is configurable in the Discrete Collection Properties tab.

  • Outdated materials external limit. This option will cause material older that a specific time to flow out of the TMO port. An analog CTR port intended for UTC time ticks will be created, and material older that this specific point in time will flow out of the TMO port.

Command port name

This column displays the name of the control port (CTR). The column is read-only, as the name of the CTR port is derived from the name of the material output port (TMO).

Material port name

This is the name of the tracking material output port (TMO). If the typed name does not start with TMO, the component will prefix the typed port name with ‘TMO’.

Topology independent

If this parameter is checked, the TMO port becomes a virtual invisible port, where material can flow out of the TPU to any other TPU in the tracker application.

Global search

When this property is checked, a global material search is enabled. This means that if the searched material (TraMaID) is not found in this tracker process unit, a search in all the other tracker process units will be performed, and the actual material will be moved out of the tracker process unit hosting it virtually through the TMO port of this tracker process unit.

PU responsibility

The PU responsibility (Process Unit responsibility) tab is used to configure the Process Unit Runs and the Role) assignment of the tracker process unit. The tab contains two parameter matrices, one for Run configuration and one for Role assignment.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

The Run definitions parameter matrix

The Run definitions matrix is used to define the run definitions of the process unit runs that is to be handled by this tracker process unit. The complete set of run definitions is defined in the database.

Run definition name

The run definition parameter decides what run definitions that shall be controlled from this tracker process unit. The set of run definitions available is governed by the database configuration. Only run definitions that are related one the process unit classes that the process unit is member of are available.

Signal type

This parameter decides how to control the process unit runs. The options are:

  • Message. Process unit runs are controlled by messages from the portal.
  • Signal. Process unit runs are controlled by control ports on the tracker process unit.
  • Both. Signal and message based run control

Autogenerated identifier

If this parameter is checked, the tracker will generate identifiers for the runs automatically. If the parameter is unchecked, a run identifier port will appear.

Autocreate on start

If this parameter is checked, the created state of the run is skipped. This means that the run can be started without a preceding created state. If the parameter is unchecked, the runs must be created explicitly, and a port named CTR Create appears for this purpose.

Port name prefix

This is a read only parameter that shows what port name prefix that will be used on ports belonging to this run definition.

Material data capture

If this parameter is checked, data captured on the process unit run will be copied as captured data on materials that participate in the run.

Display status ports

If this port is checked, a set of process unit run status ports will appear on the TPU.

Set material identifier

If this parameter is checked, the name of the run is copied to the material that participates in the run as a material identifier.

Ident name

This is the ident definition to use when run names are copied to material as material identifiers.

Log run membership

When this parameter is checked, the material that participates in the runs are registered in the RunMembership database table. This is advantageous for reporting purposes. If this information is never used, uncheck the parameter to save database space and database transaction load.

Batch IdentDefinition

With this parameter it is possible to decide that the process unit run shall be connected to a batch. When an ident definition is selected, this means that the batch shall be connected to the run, and that all the material that resides in the tracker process unit when the batch-run connection is active will be given an identifier of the selected ident definition. The value of this identifier will be the same as the batch name. A control port for performing batch-run connections will appear on the tracker process unit when an ident definition is selected.

The Roles parameter matrix

The roles parameter matrix is used to define the role) membership of this tracker process unit.

Role name

This is the name of the actual role. The roles available are governed by the database configuration.

Description

This is a read only description of the actual role.

Unique role

This read only parameter indicates if the actual role should be unique inside the process unit. Unique roles must only be assigned to one of the TPU’s in a process unit. It is the responsibility of the configurator to see to that unique roles are only assigned to one of the tracker process units that constitutes a process unit.

Material data capture

The material data capture tab is used to configure data acquisition for the materials in the TPU. This type of data acquisition is used when data is to be collected when materials reside on a specific position in the process. The materials that are destination for the captured data are not referenced directly by ID, but referenced according to the process position. When material data capture is used, new ports will be available on the TPU for collecting the actual data.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

Data Name

This is the name of the data definition on which to store the data. The data definitions available are governed by the database configuration.

Data type

This is a read only parameter displaying the data type of the selected data definition. In order to change the data type of a specific data definition the portal must be used.

IMPORTANT! Before the data type of a data definition is changed in the database, it is required that the data definition is removed from the tracker process unit. If not, the tracker process unit will will not function properly. 

Dimension

This is a read only parameter displaying the data dimension of the selected data definition.

Value source

This parameter displays the name of the port used for collecting the actual data to collect. The ports are named MDC <DataDefinitionName>  where <DataDefinitionName> is the name of the actual data definition.

Aggregation

This is a read only parameter displaying how to aggregate the data on the TPU. The aggregation type can only be changed through the data definition configuration page in the portal.

  • Min. The minimum value of the corresponding MDC port when the material is inside the TPU is stored.
  • Max. The maximum value of the corresponding MDC port when the material is inside the TPU is stored.
  • Average. The average value of the corresponding MDC port when the material is inside the TPU is stored.
  • First. The value present on the corresponding MDC port when the material enters the TPU is stored.
  • Last. The value present on the corresponding MDC port when the material leaves the TPU is stored.
  • Std.dev. The standard deviation of the corresponding MDC port when the material is inside the TPU is stored.
  • Integral. The integral of the corresponding MDC port when the material is inside the TPU is stored.
  • OnChange. A new value is stored on the material when the material enters the TPU or the value of the MDC port changes.
  • None. No aggregation. Same functionality as First.

Eng. Unit

This is a read only parameter displaying the engineering unit of the actual data definition.

Description

This is a read only parameter displaying the description of the actual data definition.

Process data capture

The process data capture tab is used to configure data acquisition on the process unit runs that are controlled by the tracker process unit. This type of data acquisition is used when data shall be collected and related to the active runs in the tracker process unit. When process data capture is used, new ports (PDC ports) will be available on the tracker process unit for collecting the actual data.  

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

Data Name

This is the name of the data definition on which to store the data. The data definitions available are governed by the database configuration.

Data type

This is a read only parameter displaying the data type of the selected data definition. In order to change the data type of a specific data definition the portal must be used.

IMPORTANT! Before the data type of a data definition is changed in the database, it is required that the data definition is removed from the tracker process unit. If not, the tracker process unit will will not function properly. 

Dimension

This is a read only parameter displaying the data dimension of the selected data definition.

Value source

This parameter displays the name of the port used for collecting the actual data to collect. The ports are named PDC <DataDefinitionName>  where <DataDefinitionName> is the name of the actual data definition.

Aggregation

This is a read only parameter displaying how to aggregate the data on the TPU. The aggregation type can only be changed through the data definition configuration page in the portal.

  • Min. The minimum value of the corresponding PDC port when the run is active is stored.
  • Max. The maximum value of the corresponding PDC port when the run is active is stored.
  • Average. The average value of the corresponding MDPDC C port when the run is active is stored.
  • First. The value present on the corresponding PDC port when the run is active is stored.
  • Last. The value present on the corresponding PDC port when the run is active is stored.
  • Std.dev. The standard deviation of the corresponding PDC port when the run is active is stored.
  • Integral. The integral of the corresponding PDC port when the run is active is stored.
  • OnChange. A new value is stored on the run when the run starts or the value of the PDC port changes.
  • None. No aggregation. Same functionality as First.

Eng. Unit

This is a read only parameter displaying the engineering unit of the actual data definition.

Description

This is a read only parameter displaying the description of the actual data definition.

Material ident capture

The material ident capture tab is used to define the way materials are identified in this TPU. There are several ways to provide identification. The most common way is to use the same identification as in previous tracker process units, but there also exists several ways to register new identifiers in the tracker process unit. When material ident capture is used, new ports (IDC ports) may be available on the tracker process unit for collecting the actual data. The presence of IDC ports depends on the method of identification.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

Ident name

This is the name of the ident definition on which to store the identifier. The ident definitions available are governed by the database configuration.

Ident type

This parameter decides the identification method.

  • Continued. The identifier of the actual ident definition will be inherited from the parent tracking material in the previous TPU. With this option enabled, identifiers may also be registered from the portal.
  • New (port). A new port IDC <IdentDefinitionName> will appear. The value of this port is registered as an identifier of the material when the material enters the TPU. When the value of the IDC port changes, a new identifier is registered on the material. With this option enabled, identifiers may also be registered from the portal.
  • New (message). This option enables registering of identifiers from the portal.
  • New unique (port). A new port IDC <IdentDefinitionName> will occur. The value of this port is registered as an identifier of the material when the material enters the TPU. Value changes on the IDC port are neglected. With this option enabled, identifiers may also be registered from the portal.
  • Autogenerated. The identifier is generated automatically according to a fixed strategy. This functionality is deprecated, and should not be used in new projects.
  • Extended. The identifier is created as an extension of one of the identifiers of the parent material. The new identifier is on the form <ParentIdentifier><Prefix><count> where <ParentIdentifier> is the actual identifier on the parent material. The ident definition to extend from are defined by the Ident source column. <Prefix> is a predefined text defined by the Value prefix column and <count> is the number of materials in the TPU a the time of identifier creation. The number of digits in the <count> part is defined by the #Digits column.
  • Parent article. The identifier is created as a copy of the Article of the parent material.
  • Carrier. This option is used to specify that the incoming material is registered on a carrier and that the material shall still reside on the carrier in this TPU.
  • Carrier release. This option is used to release incoming material from their assigned carrier. Materials that reside on a carrier in the previous TPU will be released from the carrier when the material enters this TPU.
  • Batch. This option is used to establish or maintain batch membership for the material. This option should be configured on the tracker process unit that allocates batch membership, and in all the consecutive tracker process unit in which the batch membership is to be maintained.

Description

This is a read only textual description of the identifier provided by the database configuration.

Value port name

This parameter displays the name of the corresponding IDC port used for collecting the new identifiers. The ports are named IDC <IdentDefinitionName> where <IdentDefinitionName> is the name of the actual ident definition.

Value prefix

This parameter is only used when the ident type is Extended.

#Digits

This parameter is only used when the ident type is Extended.

Ident source

This parameter is only used when the ident type is Extended.

Ports

The components DiscreteCollection, RandomCollection, OrderedCollection and TimeDelay mostly share the same set of ports. These ports are described in the topic Real time tracker process unit ports.

DiscretePosition

The DiscretePosition tracker process unit is designed for offline tracking. The purpose of this component is to serve as the Click&Trace model for physical equipment locations and execute the transactions prepared by the OfflineTransactionProvider component against the Apis Click&Trace database.

The role of the DiscretePosition offline tracker process unit in an offline tracking application is indicated in the figure below.

Properties

The properties of this component are organized in multiple tabs. The separate tabs are described dedicated sub topics.

Main Properties

The main properties tab contains the most central parameters of the tracker process unit. Most of these parameters must be considered for the TPU to work properly.

ProcessUnit

The process unit parameter decides on which Process Unit the TPU works. The set of process units available is governed by the database configuration.

Process Unit ID

This is a read only parameter showing the database id of the selected process unit.¨

Tracker process Unit ID

This is a read only parameter showing the assigned database id of this actual TPU.

Task name

The task name is a descriptive name of the TPU. The name of the TPU in the ModFrame environment will be the name of the process unit followed by the task name surrounded by brackets, e.g ProcessUnitName[TaskName]. This parameter is required.

Tracking Ident Definition

This property defines the ident definition of the Tracking Identifiers of the materials residing in this tracker process unit. 

Tracking Ident Pattern

The tracking ident pattern used to enable tracking ident validation. The Tracking Ident Pattern is a regex used to specify the syntax of the tracking identifier. If the tracking identifier does not fit the regex, the tracking identifier is considered invalid. The Tracking Ident Pattern Violation Handling parameter decides how invalid tracking identificators are handled.

Leave the property blank to disable tracking ident validation.

Tracking Ident Pattern Violation Handling

This parameter decides the handling of invalid tracking identifiers. The alternatives are:

  • Violation not allowed. No database registration is executed, and an error message is will be issued.
  • LIFO. The material is registered but not traced. (No genealogy will be registered) The behavior will be LIFO
  • FIFO. The material is registered but not traced. (No genealogy will be registered) The behavior will be LIFO.

Tracking Ident Duplicate handling

Per definition, tracking identifiers must be unique within a transaction. This parameter is used to handle handle cases with non-unique tracking identificators. The alternatives are:

  • Duplicates not allowed. No database registration is executed, and an error message is will be issued.
  • LIFO. The material is registered but not traced. (No genealogy will be registered) The behavior will be LIFO.
  • FIFO. The material is registered but not traced. (No genealogy will be registered) The behavior will be LIFO.

Enable Group Identification

This property enables group identification in this tracker process unit. Group identification makes it possible to reference multiple material entities by the use of one single group identifier. When group identification is enabled, a new property named Group Ident Definition will appear for specification of the Ident definition of the group identifier.

Group Ident Definition

This property is used to specify the ident definition of the group identifier when group identification is enabled.

Amount handling

This parameter declares how to register material amount in this TPU. The alternatives are:

  • Default. A default amount will always be registered, even if the native transaction contains amount information.The amount registered can be specified by the Default amount parameter.
  • Continued. The material shall inherit amount information from the previous TPU. Until the genealogy is established, the value of the Default amount  parameter will be used. "
  • Specific. The material will be registered with amount provided by the native transaction. If the native transaction does not contain amount information, the value of the Default amount parameter will be registered.

Default amount

This parameter decides the default amount to be registered on materials entering this TPU. The Amount Handling parameter decides when the default amount will be used.

Material Quality Handling

This parameter defines how to register material quality in this TPU. The options are:

  • Default material quality. A default material quality will always be registered, even if the native transaction message contains material quality information. All quality information from transaction messages will be discarded. The default material quality can be specified by the Default Material Quality parameter.
  • Continued material quality. The material will inherit material quality information from the parent material in the previous TPU. Until the genealogy is established, the value of the Default Material Quality parameter will be registered. All quality information from transaction messages will be discarded.
  • Transaction specific material quality. It is expected that transaction messages will contain quality information for the material. When the TPU receives quality information for the material, this will be registered. If no quality information is received, the functionality will be as for the Continued material quality option.

Default Material Quality

This parameter decides the default material quality to be registered on materials entering this TPU. The Material Quality Handling parameter decides when the default amount will be used.

Article Handling

This parameter controls how to register articles in this TPU. The options are:

  • No article. There will be no article registration in this tracker process unit.
  • Default article. A default article will always be registered, even if the native transaction message contains article information. All article information from transaction messages will be discarded. The default article can be specified by the Default Article parameter.
  • Continued article. The material will inherit article information from the parent material in the previous TPU. Until the genealogy is established, the value of the Default Article parameter will be registered. All article information from transaction messages will be discarded.
  • Transaction specific article. It is expected that transaction messages will contain article information for the material. When the TPU receives article information for the material, this will be registered. If no quality information is received, the functionality will be as for the Continued article option.

Default Article

This parameter declares the default article to be registered on materials entering this TPU. The Article Handling parameter decides when the default amount will be used.

Material Outdate time

This parameter declares how long (seconds) a material can stay inside this TPU before considered outdated. A reasonable value for this property is 120% of the maximum physical retention time in the process unit. If the parameter is set to 0 (zero) the outdate will be disabled.

Material Outdate Quality

This parameter is used to define the Material Quality to be assigned to materials that are outdated. If <Keep current> is selected, the current Material Quality of the material will be preserved after the outdate.

Transaction pending period

This parameter defines how long (seconds) transactions that cannot execute because of missing dependencies may stay in the pending queue.

Pending Period Parent Relation

This parameter defines how long (seconds) to try to establish parent relations for materials entering this tracker process unit.

Pending Period Child Relation

This parameter defines how long (seconds) materials that enter this tracker process unit shall wait for child material to establish their parent relation.

Pending Period Material Attribute Relation

This parameter defines how long (seconds) materials that enter this tracker process unit shall wait for material attribute relations to be registered.

Discrete tracking properties

Material Lot Definition

This property specifies the Material Lot Definition of all materials entering this tracker process unit. Offline Tracking Assistant is responsible of find the correct material lot membership for tracking materials in this tracker process unit.

Input definition

The input definition tab tab is used to define input material flow to this tracker process unit.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

There will be one tracking material input port for every row defined in this tab. These ports must be connected to up-stream tracker process units.

Material definition

This is the material definition of the input flow. The resulting tracking material input port can only be connected to tracker process units that produces the this material definition.

Port name

This is the name of the tracking material input port. If the typed name does not start with TMI, the component will prefix the typed port name with ‘TMI’.

Output definition

The output definition tab tab is used to define output material flow from this tracker process unit.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

For every output flow, a tracking material output (TMO) port will appear. The TMO ports can be connected to downstream tracker process units, or left unconnected to end the material trace at the current position. 

Material transfer

This column defines the type of material flow to use. The alternatives are:

  • Offline. The material flow is based on asynchronous tracking and the downstream tracker process unit will be an offline tracker process unit
  • Online. The material flow is based on real time tracking and the downstream tracker process unit will be a real time tracker process unit.

Material port name

This is the name of the tracking material output port (TMO). If the typed name does not start with TMO, the component will prefix the typed port name with ‘TMO’.

Transactions

This tab is used to define the interface to the OfflineTransactionProvider. The tracker process unit can receive transactions from several OfflineTransactionProviders

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

Port name

This column is used to specify the name of the transaction ports which are used to connect the tracker process unit to the OfflineTransactionProviders.

Material Data Capture

The Material Data Capture tab is used to filter which data definitions (data attributes) to register on materials in this tracker process unit. If no data definitions are selected, all data definitions received from the OfflineTransactionProvider will be registered. When one ore more data definitions are selected, the filtering will be enabled, and only the data definitions selected will be extracted from the OfflineTransactionProvider transactions. The excess data definitions from the OfflineTransactionProvider will be neglected.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

Data Name

This is the name of the data definition on which to store the data. The data definitions available are governed by the database configuration.

Data type

This is a read only parameter displaying the data type of the selected data definition. In order to change the data type of a specific data definition the portal must be used.

Dimension

This is a read only parameter displaying the data dimension of the selected data definition.

Aggregation

This is a read only parameter displaying how to aggregate the data on the TPU. The aggregation type can only be changed through the data definition configuration page in the portal.

  • Min. The minimum value of the corresponding MDC port when the material is inside the TPU is stored.
  • Max. The maximum value of the corresponding MDC port when the material is inside the TPU is stored.
  • Average. The average value of the corresponding MDC port when the material is inside the TPU is stored.
  • First. The value present on the corresponding MDC port when the material enters the TPU is stored.
  • Last. The value present on the corresponding MDC port when the material leaves the TPU is stored.
  • Std.dev. The standard deviation of the corresponding MDC port when the material is inside the TPU is stored.
  • Integral. The integral of the corresponding MDC port when the material is inside the TPU is stored.
  • OnChange. A new value is stored on the material when the material enters the TPU or the value of the MDC port changes.
  • None. No aggregation. Same functionality as First.

Eng. Unit

This is a read only parameter displaying the engineering unit of the actual data definition.

Description

This is a read only parameter displaying the description of the actual data definition.

Material Ident Capture

The Material Ident Capture tab is used to filter which ident definitions (identifier attributes) to register on materials in this tracker process unit. If no ident definitions are selected, all ident definitions received from the OfflineTransactionProvider will be registered. When one ore more ident definitions are selected, the filtering will be enabled, and only the ident definitions selected will be extracted from the OfflineTransactionProvider transactions. The excess ident definitions from the OfflineTransactionProvider will be neglected. The registration of tracking identifiers and group identifiers takes place independently on the settings in this tab.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

Ident definition

This is the name of the ident definition on which to store the identifier. The ident definitions available are governed by the database configuration.

Capturing

This column specifies the strategy for capturing the identifiers. The alternatives are:

  • Continued. It is expected that the parent material in the upstream tracker process unit has an identifier of this ident definition, and this identifier shall be transferred to the material in this tracker process unit.
  • New From Provider. It is expected that the transactions from the OfflineTransactionProvider contains identifiers of this ident definition and this identifiers shall be written to the materials in this tracker process unit.

Role definition

The Role definition tab is used to configure the Role) assignment of the tracker process unit.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

Role name

This is the name of the actual role. The roles available are governed by the database configuration.

Description

This is a read only description of the actual role.

Unique role

This read only parameter indicates if the actual role should be unique inside the process unit. Unique roles must only be assigned to one of the TPU’s in a process unit. It is the responsibility of the configurator to see to that unique roles are only assigned to one of the tracker process units that constitutes a process unit.

Ports

Tracking material Ports

Tracking material ports are used to transfer information about material flow between the TPUs.

TMI ports

TMI (Tracking Material Input) ports receive information about material flow from other tracker process units and handle material input flows to the tracker process unit. The names of the ports are specified by the user, but the specified name will be prefixed TMI.

TMO ports

TMO (Tracking Material Output) ports handle material output flow from the tracker process unit and send information about material flow to other tracker process units. The names of the ports are specified by the user, but the specified name will be prefixed TMO. 

Transaction ports

The transaction ports are used to connect the offline tracker process unit to a transaction provider. The number of transaction ports and the name of the transaction ports are specified in the Transactions tab.

OfflineTransactionProvider

The OfflineTransactionProvider component is an interface module interfacing the offline tracker process units to external equipments providing asynchronous tracking transactions.

The component consists of two central internal sub-components:

  • The driver provides for communication with the external equipment.
  • The parser translates the information received from the equipment, through the driver component, to a format understood by the offline tracker process units.

Several driver/parser combinations can be utilized too interface equipment from different vendors. In addition to the sub-components, which is interchangeable and configurable, the component itself has numerous properties used to translate and adapt the information received from the sub-components.

The figure below shows the role of the OfflineTransactionProvider as the interface between external equipment and the offline tracker process units.

Properties

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Driver

With this property the driver used to communicate with the external equipment is specified. The driver is responsible for maintaining a connection and receiving transactions from a supplier of transactions, for instance a web service. This choice will determine what parsers are available i the Parser property. After a change has been made Apply must be pushed in order to update the Parser property list.

Parser

With this property the parser is selected. The parser is responsible for decoding and interpreting the information received by the driver.

Visible connection status port

This property controls the appearance of the connection status port. If true a digital port called ConnectionStatus indicating whether the driver is connected will appear.

Visible connection info port

This property controls the appearance of the connection information port. If true a string port called ConnectionInfo will appear. The value of this port will contain the connection info from the driver.

Log parsed transactions

This property enables logging of the parsed transactions. This means logging the message objects that is the result of parsing the original data from the driver. If true, all parsed ACT messages will be written to the log file directory. The functionality should be used with care, since the messages will require a lot of disk space. Logging should only be temporarily enabled for debugging purposes.

Log file path

This property defines the path to the directory in which to log information when logging is enabled.

Log file history length

This property defines how long (in minutes) to store information in the log file path.

Warning on unmapped attributes

This property enables warnings on unmapped attributes. This means that a warning will be issued whenever a native transaction contains a material attribute that is not mapped to an Apis Click&Trace entity. This property should only be enabled for debugging purposes.

Warning on unmapped equipment locations

This property enables warnings on unmapped equipment locations. This means that a warning will be issued whenever a native transaction contains an equipment location that is not mapped to an Apis Click&Trace entity. This property should only be enabled for debugging purposes.

Warning on unmapped equipment states

This property enables warnings on unmapped equipment states. This means that a warning will be issued whenever a native transaction contains an equipment state that is not mapped to an Apis Click&Trace entity. This property should only be enabled for debugging purposes. 

Warning on invalid message content

This property enables warnings when transactions are discarded because of invalid content.

Driver

The layout of the Driver tab depends on the driver selected in the properties tab. The following drivers are available:

  • Sedac Driver vr 1.0. This driver communicates with a SEDAC equipment controller delivered by Schmid.
  • XML File Driver vr 1.0. This driver listens for XML files on a specific folder on the file system and loads the files when new files arrives or old files are updated.

Sedac Driver vr 1.0

par 1

sadasdas

par 2

gdsfgsdg

d

sgsd

g

sd

g

sdfgsdfg

XML File Driver vr 1.0

To be described.

Parser

The layout of the Parser tab depends on the parser selected in the properties tab. The following parsers are available:

Schmid Parser 1.0

To be described.

TPU Reference

The TPU reference tab is used to define the connections to the offline tracker process units. Equipment location names are mapped to ports that can be connected to offline tracker process units. Received transactions aimed for the actual equipment location will hence be handled by the offline tracker process unit connected to the corresponding TPU Reference port. The number of handled Equipment locations and TPU reference ports is configurable.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

Equipment Location Name

This column defines the Equipment Location Name for the Equipment Location that is to be handled by an offline tracker process unit. Type in the exact equipment location name in this column.

TPU Reference Port Name

This column defines the name of the TPU reference port used to communicate with the offline tracker process unit that shall handle the offline transaction aimed for the actual equipment location.

Parallel Equipment

The purpose of the Parallel Equipment tab is to route transaction documents from parallel physical equipments locations to a new fictive equipment location. This aggregated equipment location can be mapped to one single offline tracker process unit in the TPU Reference tab.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

Equipment Location Name

This column defines the equipment location names of the equipment locations to aggregate.

Aggregate name

This column defines the name of the aggregated equipment location that shall handle transactions aimed for the equipment location defined in the Equipment Location Name column.

Serial Equipment

The purpose of the Serial Equipment tab is to route transaction documents from serial physical equipments locations to a new fictive equipment location. This aggregated equipment location can be mapped to one single offline tracker process unit in the TPU Reference tab.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

Equipment Location Name

This column defines the equipment location names of the equipment locations to aggregate.

Aggregate name

This column defines the name of the aggregated equipment location that shall handle transactions aimed for the equipment location defined in the Equipment Location Name column.

Topology Position

This column defines the the topology position of the actual physical equipment inside the serial aggregate equipment location. The alternatives are:

Data Definition

The Data Definition tab contains a map between the data attributes interpreted from the original equipment transactions and the data definitions in the Apis Click&Trace database. The parser sub-component will expose data attributes from the information retrieved from the driver, and these data attributes are translated to data definitions by means of the map available in this tab. Data attributes must be defined in this tab in order to be handled by the offline tracker process units. Data attributes contained in the original equipment transactions but not defined in the map will be neglected. All data attributes contained in the original transaction and defined in the map will be registered on the target material unless specific filtering is configured in the offline tracker process units.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

Data attribute

This column is used to define the data attribute as expected from the parser.

Data Definition

This column is used to define what data definition to map against the corresponding configured data attribute.

Ident Definition

The Ident Definition tab contains a map between the identifier attributes interpreted from the original equipment transactions and the ident definitions in the Apis Click&Trace database. The parser sub-component will expose identifier attributes from the information retrieved from the driver, and these identifier attributes are translated to ident definitions by means of the map availalble in this tab. Identifier attributes must be defined in this tab in order to be handled by the offline tracker process units. (This does not apply to Tracking Identifiers and Group Identifiers) Identifier attributes contained in the original equipment transactions but not defined in the map will be neglected. All identifier attributes contained in the original transaction and defined in the map will be registered on the target material unless specific filtering is configured in the offline tracker process units.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

Ident attribute

This column is used to define the identifier attribute as expected from the parser.

Ident Definition

This column is used to define what ident definition to map against the corresponding configured identifier attribute.

Article

The Article tab contains a map between the article attribute values interpreted from the original equipment transactions and the articles in the Apis Click&Trace database. The parser sub-component will expose article attribute values from the information retrieved from the driver, and these article attribute values are translated to articles by means of the map available in this tab. Article attribute values must be defined in this tab in order to be handled by the offline tracker process units. Article attribute values contained in the original equipment transactions but not defined in the map will be neglected. All Article attribute values contained in the original transaction and defined in the map will be registered on the target material unless specific filtering is performed in the offline tracker process units.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

Article Attribute Value

This column is used to define the article attribute value as expected from the parser.

Article name

This column is used to define what article to map against the corresponding configured article attribute value.

Material Quality

The Material Quality tab contains a map between the material quality attribute values interpreted from the original equipment transactions and the material qualities in the Apis Click&Trace database. The parser sub-component will expose material quality attribute values from the information retrieved from the driver, and these material quality attribute values are translated to material qualities by means of the map available in this tab. Material quality attribute values must be defined in this tab in order to be handled by the offline tracker process units. Material quality attribute values contained in the original equipment transactions but not defined in the map will be neglected. All material quality attribute values contained in the original transaction and defined in the map will be registered on the target material unless specific filtering is performed in the offline tracker process units.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

Material Quality Attribute Value

This column is used to define the material quality attribute value as expected from the parser.

Article name

This column is used to define what material quality to map against the corresponding configured material quality attribute value.

Process Time Group

The Process Time Group tab contains a map between the equipment states interpreted from the original equipment transactions and the process time groups in the Apis Click&Trace database. The parser sub-component will expose equipment states from the information retrieved from the driver, and these equipment states are translated to process time groups by means of the map available in this tab. Equipment states must be defined in this tab in order to be handled by the offline tracker process units. Equipment states contained in the original equipment transactions but not defined in the map will be neglected.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

Equipment state

This column is used to define the equipment states as expected from the parser.

Process Time Group Name

This column is used to define what process time group to map against the corresponding configured equipment state

In order to avoid ambiguities, the Process Time Group Code are shown in parentheses.

Ports

TPU reference ports

The component has a configurable set TPU reference port used to communicate with the offline tracker process unit that shall handle the incoming offline transactions. The name of the TPU reference ports are defined in the TPU Reference tab.

ConnectionStatus

This is a digital port indicating whether the driver is connected to the external equipment. When true, the driver is connected. The appearance of this port is controlled in the Properties tab.

ConnectionInfo

This is a string port providing connection information from the driver. The appearance of this port is controlled in the Properties tab.

OrderedCollection

The tracker process unit components are responsible for tracking of material on behalf of the process units. The tracker process units are responsible for material transactions, run transactions, time allocation and data acquisition transaction related to the process units.

The OrderedCollection tracker process unit is a real time tracker process unit designed for continuous tracking where the order of materials in the TPU is significant. This means that materials can only be moved out of the process the same order as they entered the process. Typical applications of OrderedCollection are pipes, silos and tanks. In ordered collection, materials can not be referenced by ID for movement out of the tracker process unit. The only material that can leave the TPU is the one that is next in the queue. When material is to be moved out of the TPU, the amount of material to move is specified, and the OrderedCollection components itself decides which actual material entities to move.

Properties

The properties of this component are organized in multiple tabs. The separate tabs are described dedicated sub topics.

Main Properties

The main properties tab contains the most central parameters of the tracker process unit. Most of these parameters must be considered for the TPU to work properly.

ProcessUnit

The process unit parameter decides on which Process Unit the TPU works. The set of process units available is governed by the database configuration.

Process Unit ID

This is a read only parameter showing the database id of the selected process unit.¨

Tracker process Unit ID

This is a read only parameter showing the assigned database id of this actual TPU.

Task name

The task name is a descriptive name of the TPU. The name of the TPU in the ModFrame environment will be the name of the process unit followed by the task name surrounded by brackets, e.g ProcessUnitName[TaskName]. This parameter is required.

Description

This is a textual description of the TPU. This text is registered in the TrackerProcessUnit table in the database, and may be used for miscellaneous visualization and reporting purposes.

Material status

This is a textual description of the status of the material that is currently inside this tracker process unit. This text is registered in the TrackerProcessUnit table in the database, and are typically used for reporting purposes in order to show status for material.

Product material definition

The product material definition defines what type of material this TPU produces.

Test mode

This parameter is used to enable test mode. The choices are:

  • Disabled: Test mode is disabled.
  • Test material: Material is registered in the database with a state that makes it invisible in all reports.
IMPORTANT: The test mode only applies to this TPU. If this TPU is in test mode, but delivers materials to the next TPU which is not in test mode, the material in the next TPU will be visible in reports, even if it is a successor of test material.

Process topology position 

This parameter is deprecated, and is only available for backward compatibility. Use the INTERMEDIATE choice

Time allocation

This parameter is deprecated, and is only available for backward compatibility. The ProcessUnitTimeAllocator component is recommended for process time allocation.

The time allocation parameter decides how time allocations shall be registered for this TPU. The parameter is only editable when the role Default Time Manager is assigned for the TPU. Possible choices are none, signal based, message based and both. If signal based or both is selected, time allocation control and status ports will appear on the TPU. For message based time allocation registration to take place, message based or both must be selected.

Fictitious Material Handling

This parameter is used to enable fictitious material restore. Fictitious material restore can be used when it is necessary to insert material information directly in the database. By the use of fictitious material restore in the tracker, these materials can be loaded into the tracker application. The possible choices are:

  • Disabled. Fictitious material restore is disabled.
  • Message based. Fictitious material restore is available as web transactions.
  • Signal based. Fictitious material restore is available from a control port on the tracker process unit.
  • Message and signal based. Fictitious material restore is available as web transactions and from a control port on the tracker process unit.
Only material that has the fictitious state in the database will be loaded into the tracker application by the use of fictitious material restore.

Database material state reflection

This parameter is used to enable reflection of database material state. Use this to make the tracker process unit reflect the material state in the database for this TPU. When reflection is initiated all aspects of the material, such as amount, article, identifiers and so on are reloaded from the database.

  • Disabled. Database material state reflection is disabled.
  • Message based. Database material state reflection is available as web transactions.
  • Signal based. Database material state reflection is available from a control port on the tracker process unit.
  • Message and signal based. Database material state reflection is available as web transactions and from a control port on the tracker process unit.

Database run state reflection

This parameter is used to enable reflection of database run state. Use this to make the tracker process unit reflect the run state in the database for this TPU.

  • Disabled. Database run state reflection is disabled.
  • Message based. Database run state reflection is available as web transactions.
  • Signal based. Database run state reflection is available from a control port on the tracker process unit.
  • Message and signal based. Database material state reflection is available as web transactions and from a control port on the tracker process unit.

Default quality assignment

This parameter decides the default material quality to assign to material that enters this TPU. If continued is selected, the quality of the parent material in the previous tracker process unit will be assigned as default material quality in this tracker process unit. If Port based (ID) is selected, a port will appear that enables a default material quality id to be provided from a port. In addition, fixed material qualities may be used as default qualities. The set of qualities available depends on the database configuration. Only qualities related to the selected material definition are available.

Port based quality assignment

If this parameter is set to true, a port named CTR Material quality assignment will appear. This port is used to change material quality on specific materials inside the TPU.

Default article assignment

This parameter decides the default article to assign to material that enters this TPU. If None is selected, no article will be assigned. If continued is selected, the article of the parent material in the previous TPU will be assigned as default article in this TPU. If Port based (ID) is selected, a port will appear that enables a default article id to be provided from a port. When default is selected, the default article of the corresponding process unit is assigned. In addition, fixed articles may be used as default articles. This is achieved by selecting a specific article in the list.

Carrier connection

The carrier connection parameter decides how to control the active carrier of the TPU. If a carrier is active on the TPU, all material that enters the tracker process unit will be registered into a carrier. The possible choices are Message based and Signal/Message based. If signal based is selected, a port named CTR Active Carrier ID will appear. This port defines the active carrier of the TPU.

Position ports

If Position ports checked, the module will place its ports at appropriate positions. Uncheck this parameter if you want to place the ports manually. 

Make strategy

This parameter decides in what way the tracking material is created inside the tracker process unit. Material is received in some form, from the up-stream tracker process units, and new Material is made inside the TPU. The strategy for when new materials are created is divided in several approaches:

  • Triggered Externally. New Material is created when port signal becomes true.
  • Appended Amount Limit. New Material is created when the integrated Amount exceeds a specified limit. The limit is specified by the Target Amount and Target Amount Value parameters
  • Material Change. New Material is created when the received material changes (I.e. the ID of the material changes), or the input flow to the TPU stops. This only possible if there is one material type that can be received in the TPU
  • Material Stop. New Material is created when the received material stops entering the TPU. This strategy is deprecated. The same functionality is provided by Material Change.

Target Amount

When a new material is made, the start amount of the material can be decided by three approaches:

  • Appended Amount. The Amount is the converted and integrated amount since the previous Material was made.
  • Fixed Value. The Amount becomes a fixed value given by the Target Amount Value parameter. This implies that the Amount is zero until the material is made.The make strategy must be Externally Triggered, Material change or Material stop for this choice to be valid
  • Port value. Same as Fixed value, but the actual target amount value is read from a port named CTR Target Amount.

Target Amount Value

This parameter has two approaches:

  • If the Make Strategy property is set to Appended Amount Limit and the Target Amount is set to Appended Amount, the value of this parameter is the limit for when a new Material is made.
  • If the Target Amount is set to Fixed Value the start amount of the material is set to the value of this parameter at make time regardless of the incoming amount.

Inherit data values

When this parameter is set to true, all the data values registered on the parent material in the previous tracker process unit are also registered on the tracking materials in this tracker process unit.

This functionality is not recommended and must be used with care only in special situations, since a lot of database traffic is generated and a lot of database space is used.

Intermediate state persistence

The Intermediate state persistence decides at what point in time the tracking material and the related information will be persisted to the database. The alternatives are:

  • Globally defined: The persistence strategy is decided by the corresponding top application setting.
  • Continuously: Tracking material will be persisted whenever the material is changed, i.e. on amount changes and so on.
  • Disabled: Tracking material will only be persisted when the state changes, i.e. on material creation, material making and material exit.

Ordered Collection Properties

Negative Amount Allowed

When this parameter is checked, negative amount is allowed on the tracking materials inside this tracker process unit. This means that the material does not automatically exit the tracker process unit when the amount reaches zero. This feature is typically used to handle integrating mass balance problems because of inaccuracies in the signals or inaccuracies in manual registrations.

Adjust amount

This parameter is used to enable a functionality that allows the contained amount of the TPU to be adjusted, and this functionality may be used for calibration purposes. When the total amount of the TPU is adjusted, the single amount of every contained tracking material is adjusted proportionally so that the total amount of contained material fits the specified value. The options available are:

  • None. Amount adjusting is not allowed
  • Signal based. Amount adjusting may be performed by the use of port signals. Two ports named CTR Adjust Amount Value and CTR Adjust Amount Signal will appear on the TPU. The CTR Adjust Amount Value port provides the new amount value, and the CTR Adjust Amount Signal port provides trigger signal indicating that the amount shall be adjusted.
  • Message based. Amount adjusting from the portal is enabled. 
  • Both. Both port based and portal based amount adjusting is enabled.

Mixing material

This parameter enables mixing of all the material entities contained in the tracker process unit. This functionality will create one new tracking material out of all the contained tracking materials in the TPU. The new aggregated tracking material is related to the previous tracking material entities by the Genealogy table. Hence, this is functionality is similar to the make phase in the tracker process unit. The following options are available:

  • None. The mixing functionality is disabled.
  • Event based. Mixing is enabled via port signals. A new port digital port named CTR Mixing signal will occur on the TPU. When the value of this port is true, material inside the TPU will be mixed.
  • Continuously. Material of the material inside the TPU is performed continuously.

Mixing factor

The mixing factor concept are invented in order to achieve a stepless mixture between pure FIFO behavior and ideal mixing behavior. The mixing factor can be between 0 and 100. 0 means no mixing and 100 means full mixing. Opposed to the Mixing material parameter, which is used to perform a one time instantaneous mixing of all the material, the mixing factor is used to perform a mixing of material that leaves the tracker process unit through an Amount MIX output port.

Minimum amount

Material with amount less than a specific limit, specified by this property, shall be a part of the next material transaction completely, regardless of the order. The materials that satisfied this condition will be prioritized higher than all the other materials for being moved out of the tracker process unit. If the sum of the material amount of all tracking materials that have amount below the limit is greater than the transactional amount, a normal FIFO/LIFO behavior is applied.

The reason for using the minimum amount concept is to avoid infinite material traces in cases with mixing behavior.

Clean port

Checking this property will enable a clean port on the tracker process unit. This is a digital port that is used to trigger the clean command, which will remove all material that has zero amount from the tracker process unit. (Material with amount greater that zero will be left unchanged in the tracker process unit) The actual tracking material will be removed from the tracker application and the exit time is written to the database. 

Detect contamination

If true, all tracking materials which have been inside this TPU since the last clean operation, will be added to the tracker materials genealogy, thus enabling contamination detection.

Signals

The signals tab enables miscellaneous internal TPU data to be exposed on ports.

Total AMO

This parameter makes the total amount in the TPU available as a port value. The port is named STS Total Amount.

Active carrier

This parameter makes the name of the active carrier in the TPU available as a port value. The port is named STS Active carrier.

Total AMO out

This parameter makes the total amount led out of the TPU available as a port value. The port is named STS Total Amount Out.

Contained tracking material id’s

Displays all the tracking material id's contained in this TPU in a vector port. The port is named STS Contained TraMaIDs.

Total Material Count

This parameter makes the total count of tracking materials in the TPU available as a port value. The port is named STS Total Material count.

Process Unit ID

This parameter makes the process unit ID of the tracker process unit available as a port value. The port is named STS ProcessUnitID.

Tracker Process Unit ID

This parameter makes the tracker process unit ID of the tracker process unit available as a port value. The port is named STS TrackerProcessUnitID.

Input definition

The input definition tab tab is used to define input material flow to this tracker process unit.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

There will be one tracking material input port for every row defined in this tab. These ports must be connected to up-stream tracker process units or tracker material generators.

Material definition

This is the material definition of the input flow. The resulting tracking material input port can only be connected to tracker process units or tracker material gerators that produces the this material definition.

Port name

This is the name of the tracking material input port. If the typed name does not start with TMI, the component will prefix the typed port name with ‘TMI’.

Amount conversion

Amount conversion is used to transform the amount transferred from the previous tracker process unit to a new amount in this tracker process unit. The amount conversion value is multiplied with the amount in the previous tracker process unit to form the new amount in this tracker process unit. The value ‘1’ leaves the amount unchanged.

Amount conversion from port

If this parameter is checked, the amount conversion value is read from a port named CTR amount conversion factor where <PortName> is the name of the corresponding TMI port.

Topology independent

If this parameter is checked the tracking material input port becomes a virtual invisible port, where material can flow into the tracker process unit from any other tracker process unit in the tracker application.

Output definition

The output definition tab tab is used to define output material flow from this tracker process unit.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

For every output flow, a tracking material output (TMO) port and a corresponding control (CTR) port will appear. The TMO ports can be connected to downstream tracker process units, or left unconnected to end the material trace at the current position. The CTR ports are used to control the flow through the tracking material output ports.

Material transfer

This column defines the type of material flow to use. The type of control port depends on the type of material flow selected.

  • Flush. This type of material flow allows all the material inside the tracker process unit to flow out through a single TMO port. A digital CTR port will be created. When the value of this CTR port is true, all the material inside the TPU will flow out of the corresponding TMO port.

  • Material count. This option enables flow of a specific count of materials out of the TPU. An analog CTR port will be created. This port controls the count transferred every time step.

  • Amount FIFO. This option enables flow of a specific amount of material out of the tracker process unit. The oldest material in the tracker process unit will be chosen for movement. An analog CTR port will be created. This port controls the amount transferred every time step.

  • Amount LIFO. This option enables flow of a specific amount of material out of the tracker process unit. The youngest material in the tracker process unit will be chosen for movement. An analog CTR port will be created. This port controls the amount transferred every time step.

  • Amount MIX. This option enables flow of a specific amount of material out of the tracker process unit. The selected material will be a mix of the material contained in the tracker process unit. The mixing behavior is controlled by the Mixing factor parameter in the Ordered Collection Properties tab. An analog CTR port will be created. This port controls the amount transferred every time step.

Command port name

This column displays the name of the control port (CTR). The column is read-only, as the name of the CTR port is derived from the name of the material output port (TMO).

Material port name

This is the name of the tracking material output port (TMO). If the typed name does not start with TMO, the component will prefix the typed port name with ‘TMO’.

Topology independent

If this parameter is checked, the TMO port becomes a virtual invisible port, where material can flow out of the TPU to any other TPU in the tracker application.

Global search

When this property is checked, a global material search is enabled. This means that if the searched material (TraMaID) is not found in this tracker process unit, a search in all the other tracker process units will be performed, and the actual material will be moved out of the tracker process unit hosting it virtually through the TMO port of this tracker process unit.

PU responsibility

The PU responsibility (Process Unit responsibility) tab is used to configure the Process Unit Runs and the Role) assignment of the tracker process unit. The tab contains two parameter matrices, one for Run configuration and one for Role assignment.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

The Run definitions parameter matrix

The Run definitions matrix is used to define the run definitions of the process unit runs that is to be handled by this tracker process unit. The complete set of run definitions is defined in the database.

Run definition name

The run definition parameter decides what run definitions that shall be controlled from this tracker process unit. The set of run definitions available is governed by the database configuration. Only run definitions that are related one the process unit classes that the process unit is member of are available.

Signal type

This parameter decides how to control the process unit runs. The options are:

  • Message. Process unit runs are controlled by messages from the portal.
  • Signal. Process unit runs are controlled by control ports on the tracker process unit.
  • Both. Signal and message based run control

Autogenerated identifier

If this parameter is checked, the tracker will generate identifiers for the runs automatically. If the parameter is unchecked, a run identifier port will appear.

Autocreate on start

If this parameter is checked, the created state of the run is skipped. This means that the run can be started without a preceding created state. If the parameter is unchecked, the runs must be created explicitly, and a port named CTR Create appears for this purpose.

Port name prefix

This is a read only parameter that shows what port name prefix that will be used on ports belonging to this run definition.

Material data capture

If this parameter is checked, data captured on the process unit run will be copied as captured data on materials that participate in the run.

Display status ports

If this port is checked, a set of process unit run status ports will appear on the TPU.

Set material identifier

If this parameter is checked, the name of the run is copied to the material that participates in the run as a material identifier.

Ident name

This is the ident definition to use when run names are copied to material as material identifiers.

Log run membership

When this parameter is checked, the material that participates in the runs are registered in the RunMembership database table. This is advantageous for reporting purposes. If this information is never used, uncheck the parameter to save database space and database transaction load.

Batch IdentDefinition

With this parameter it is possible to decide that the process unit run shall be connected to a batch. When an ident definition is selected, this means that the batch shall be connected to the run, and that all the material that resides in the tracker process unit when the batch-run connection is active will be given an identifier of the selected ident definition. The value of this identifier will be the same as the batch name. A control port for performing batch-run connections will appear on the tracker process unit when an ident definition is selected.

The Roles parameter matrix

The roles parameter matrix is used to define the role) membership of this tracker process unit.

Role name

This is the name of the actual role. The roles available are governed by the database configuration.

Description

This is a read only description of the actual role.

Unique role

This read only parameter indicates if the actual role should be unique inside the process unit. Unique roles must only be assigned to one of the TPU’s in a process unit. It is the responsibility of the configurator to see to that unique roles are only assigned to one of the tracker process units that constitutes a process unit.

Material data capture

The material data capture tab is used to configure data acquisition for the materials in the TPU. This type of data acquisition is used when data is to be collected when materials reside on a specific position in the process. The materials that are destination for the captured data are not referenced directly by ID, but referenced according to the process position. When material data capture is used, new ports will be available on the TPU for collecting the actual data.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

Data Name

This is the name of the data definition on which to store the data. The data definitions available are governed by the database configuration.

Data type

This is a read only parameter displaying the data type of the selected data definition. In order to change the data type of a specific data definition the portal must be used.

IMPORTANT! Before the data type of a data definition is changed in the database, it is required that the data definition is removed from the tracker process unit. If not, the tracker process unit will will not function properly. 

Dimension

This is a read only parameter displaying the data dimension of the selected data definition.

Value source

This parameter displays the name of the port used for collecting the actual data to collect. The ports are named MDC <DataDefinitionName>  where <DataDefinitionName> is the name of the actual data definition.

Aggregation

This is a read only parameter displaying how to aggregate the data on the TPU. The aggregation type can only be changed through the data definition configuration page in the portal.

  • Min. The minimum value of the corresponding MDC port when the material is inside the TPU is stored.
  • Max. The maximum value of the corresponding MDC port when the material is inside the TPU is stored.
  • Average. The average value of the corresponding MDC port when the material is inside the TPU is stored.
  • First. The value present on the corresponding MDC port when the material enters the TPU is stored.
  • Last. The value present on the corresponding MDC port when the material leaves the TPU is stored.
  • Std.dev. The standard deviation of the corresponding MDC port when the material is inside the TPU is stored.
  • Integral. The integral of the corresponding MDC port when the material is inside the TPU is stored.
  • OnChange. A new value is stored on the material when the material enters the TPU or the value of the MDC port changes.
  • None. No aggregation. Same functionality as First.

Eng. Unit

This is a read only parameter displaying the engineering unit of the actual data definition.

Description

This is a read only parameter displaying the description of the actual data definition.

Process data capture

The process data capture tab is used to configure data acquisition on the process unit runs that are controlled by the tracker process unit. This type of data acquisition is used when data shall be collected and related to the active runs in the tracker process unit. When process data capture is used, new ports (PDC ports) will be available on the tracker process unit for collecting the actual data.  

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

Data Name

This is the name of the data definition on which to store the data. The data definitions available are governed by the database configuration.

Data type

This is a read only parameter displaying the data type of the selected data definition. In order to change the data type of a specific data definition the portal must be used.

IMPORTANT! Before the data type of a data definition is changed in the database, it is required that the data definition is removed from the tracker process unit. If not, the tracker process unit will will not function properly. 

Dimension

This is a read only parameter displaying the data dimension of the selected data definition.

Value source

This parameter displays the name of the port used for collecting the actual data to collect. The ports are named PDC <DataDefinitionName>  where <DataDefinitionName> is the name of the actual data definition.

Aggregation

This is a read only parameter displaying how to aggregate the data on the TPU. The aggregation type can only be changed through the data definition configuration page in the portal.

  • Min. The minimum value of the corresponding PDC port when the run is active is stored.
  • Max. The maximum value of the corresponding PDC port when the run is active is stored.
  • Average. The average value of the corresponding MDPDC C port when the run is active is stored.
  • First. The value present on the corresponding PDC port when the run is active is stored.
  • Last. The value present on the corresponding PDC port when the run is active is stored.
  • Std.dev. The standard deviation of the corresponding PDC port when the run is active is stored.
  • Integral. The integral of the corresponding PDC port when the run is active is stored.
  • OnChange. A new value is stored on the run when the run starts or the value of the PDC port changes.
  • None. No aggregation. Same functionality as First.

Eng. Unit

This is a read only parameter displaying the engineering unit of the actual data definition.

Description

This is a read only parameter displaying the description of the actual data definition.

Material ident capture

The material ident capture tab is used to define the way materials are identified in this TPU. There are several ways to provide identification. The most common way is to use the same identification as in previous tracker process units, but there also exists several ways to register new identifiers in the tracker process unit. When material ident capture is used, new ports (IDC ports) may be available on the tracker process unit for collecting the actual data. The presence of IDC ports depends on the method of identification.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

Ident name

This is the name of the ident definition on which to store the identifier. The ident definitions available are governed by the database configuration.

Ident type

This parameter decides the identification method.

  • Continued. The identifier of the actual ident definition will be inherited from the parent tracking material in the previous TPU. With this option enabled, identifiers may also be registered from the portal.
  • New (port). A new port IDC <IdentDefinitionName> will appear. The value of this port is registered as an identifier of the material when the material enters the TPU. When the value of the IDC port changes, a new identifier is registered on the material. With this option enabled, identifiers may also be registered from the portal.
  • New (message). This option enables registering of identifiers from the portal.
  • New unique (port). A new port IDC <IdentDefinitionName> will occur. The value of this port is registered as an identifier of the material when the material enters the TPU. Value changes on the IDC port are neglected. With this option enabled, identifiers may also be registered from the portal.
  • Autogenerated. The identifier is generated automatically according to a fixed strategy. This functionality is deprecated, and should not be used in new projects.
  • Extended. The identifier is created as an extension of one of the identifiers of the parent material. The new identifier is on the form <ParentIdentifier><Prefix><count> where <ParentIdentifier> is the actual identifier on the parent material. The ident definition to extend from are defined by the Ident source column. <Prefix> is a predefined text defined by the Value prefix column and <count> is the number of materials in the TPU a the time of identifier creation. The number of digits in the <count> part is defined by the #Digits column.
  • Parent article. The identifier is created as a copy of the Article of the parent material.
  • Carrier. This option is used to specify that the incoming material is registered on a carrier and that the material shall still reside on the carrier in this TPU.
  • Carrier release. This option is used to release incoming material from their assigned carrier. Materials that reside on a carrier in the previous TPU will be released from the carrier when the material enters this TPU.
  • Batch. This option is used to establish or maintain batch membership for the material. This option should be configured on the tracker process unit that allocates batch membership, and in all the consecutive tracker process unit in which the batch membership is to be maintained.

Description

This is a read only textual description of the identifier provided by the database configuration.

Value port name

This parameter displays the name of the corresponding IDC port used for collecting the new identifiers. The ports are named IDC <IdentDefinitionName> where <IdentDefinitionName> is the name of the actual ident definition.

Value prefix

This parameter is only used when the ident type is Extended.

#Digits

This parameter is only used when the ident type is Extended.

Ident source

This parameter is only used when the ident type is Extended.

Ports

The components DiscreteCollection, RandomCollection, OrderedCollection and TimeDelay mostly share the same set of ports. These ports are described in the topic Real time tracker process unit ports.

RandomCollection

The tracker process unit components are responsible for tracking of material on behalf of the process units. The tracker process units are responsible for material transactions, run transactions, time allocation and data acquisition transaction related to the process units.

The RandomCollection tracker process unit is a real time tracker process unit designed for continuous tracking where the order of materials in the tracker process unit is insignificant. This means that materials can be moved out of the tracker process unit in any order, and materials are referenced by their identifiers for movement out of the tracker process unit.

Properties

The properties of this component are organized in multiple tabs. The separate tabs are described dedicated sub topics.

Main properties

The main properties tab contains the most central parameters of the tracker process unit. Most of these parameters must be considered for the TPU to work properly.

ProcessUnit

The process unit parameter decides on which Process Unit the TPU works. The set of process units available is governed by the database configuration.

Process Unit ID

This is a read only parameter showing the database id of the selected process unit.¨

Tracker process Unit ID

This is a read only parameter showing the assigned database id of this actual TPU.

Task name

The task name is a descriptive name of the TPU. The name of the TPU in the ModFrame environment will be the name of the process unit followed by the task name surrounded by brackets, e.g ProcessUnitName[TaskName]. This parameter is required.

Description

This is a textual description of the TPU. This text is registered in the TrackerProcessUnit table in the database, and may be used for miscellaneous visualization and reporting purposes.

Material status

This is a textual description of the status of the material that is currently inside this tracker process unit. This text is registered in the TrackerProcessUnit table in the database, and are typically used for reporting purposes in order to show status for material.

Product material definition

The product material definition defines what type of material this TPU produces.

Test mode

This parameter is used to enable test mode. The choices are:

  • Disabled: Test mode is disabled.
  • Test material: Material is registered in the database with a state that makes it invisible in all reports.
IMPORTANT: The test mode only applies to this TPU. If this TPU is in test mode, but delivers materials to the next TPU which is not in test mode, the material in the next TPU will be visible in reports, even if it is a successor of test material.

Process topology position 

This parameter is deprecated, and is only available for backward compatibility. Use the INTERMEDIATE choice

Time allocation

This parameter is deprecated, and is only available for backward compatibility. The ProcessUnitTimeAllocator component is recommended for process time allocation.

The time allocation parameter decides how time allocations shall be registered for this TPU. The parameter is only editable when the role Default Time Manager is assigned for the TPU. Possible choices are none, signal based, message based and both. If signal based or both is selected, time allocation control and status ports will appear on the TPU. For message based time allocation registration to take place, message based or both must be selected.

Fictitious Material Handling

This parameter is used to enable fictitious material restore. Fictitious material restore can be used when it is necessary to insert material information directly in the database. By the use of fictitious material restore in the tracker, these materials can be loaded into the tracker application. The possible choices are:

  • Disabled. Fictitious material restore is disabled.
  • Message based. Fictitious material restore is available as web transactions.
  • Signal based. Fictitious material restore is available from a control port on the tracker process unit.
  • Message and signal based. Fictitious material restore is available as web transactions and from a control port on the tracker process unit.
Only material that has the fictitious state in the database will be loaded into the tracker application by the use of fictitious material restore.

Database material state reflection

This parameter is used to enable reflection of database material state. Use this to make the tracker process unit reflect the material state in the database for this TPU. When reflection is initiated all aspects of the material, such as amount, article, identifiers and so on are reloaded from the database.

  • Disabled. Database material state reflection is disabled.
  • Message based. Database material state reflection is available as web transactions.
  • Signal based. Database material state reflection is available from a control port on the tracker process unit.
  • Message and signal based. Database material state reflection is available as web transactions and from a control port on the tracker process unit.

Database run state reflection

This parameter is used to enable reflection of database run state. Use this to make the tracker process unit reflect the run state in the database for this TPU.

  • Disabled. Database run state reflection is disabled.
  • Message based. Database run state reflection is available as web transactions.
  • Signal based. Database run state reflection is available from a control port on the tracker process unit.
  • Message and signal based. Database material state reflection is available as web transactions and from a control port on the tracker process unit.

Default quality assignment

This parameter decides the default material quality to assign to material that enters this TPU. If continued is selected, the quality of the parent material in the previous tracker process unit will be assigned as default material quality in this tracker process unit. If Port based (ID) is selected, a port will appear that enables a default material quality id to be provided from a port. In addition, fixed material qualities may be used as default qualities. The set of qualities available depends on the database configuration. Only qualities related to the selected material definition are available.

Port based quality assignment

If this parameter is set to true, a port named CTR Material quality assignment will appear. This port is used to change material quality on specific materials inside the TPU.

Default article assignment

This parameter decides the default article to assign to material that enters this TPU. If None is selected, no article will be assigned. If continued is selected, the article of the parent material in the previous TPU will be assigned as default article in this TPU. If Port based (ID) is selected, a port will appear that enables a default article id to be provided from a port. When default is selected, the default article of the corresponding process unit is assigned. In addition, fixed articles may be used as default articles. This is achieved by selecting a specific article in the list.

Carrier connection

The carrier connection parameter decides how to control the active carrier of the TPU. If a carrier is active on the TPU, all material that enters the tracker process unit will be registered into a carrier. The possible choices are Message based and Signal/Message based. If signal based is selected, a port named CTR Active Carrier ID will appear. This port defines the active carrier of the TPU.

Position ports

If Position ports checked, the module will place its ports at appropriate positions. Uncheck this parameter if you want to place the ports manually. 

Make strategy

This parameter decides in what way the tracking material is created inside the tracker process unit. Material is received in some form, from the up-stream tracker process units, and new Material is made inside the TPU. The strategy for when new materials are created is divided in several approaches:

  • Triggered Externally. New Material is created when port signal becomes true.
  • Appended Amount Limit. New Material is created when the integrated Amount exceeds a specified limit. The limit is specified by the Target Amount and Target Amount Value parameters
  • Material Change. New Material is created when the received material changes (I.e. the ID of the material changes), or the input flow to the TPU stops. This only possible if there is one material type that can be received in the TPU
  • Material Stop. New Material is created when the received material stops entering the TPU. This strategy is deprecated. The same functionality is provided by Material Change.

Target Amount

When a new material is made, the start amount of the material can be decided by three approaches:

  • Appended Amount. The Amount is the converted and integrated amount since the previous Material was made.
  • Fixed Value. The Amount becomes a fixed value given by the Target Amount Value parameter. This implies that the Amount is zero until the material is made.The make strategy must be Externally Triggered, Material change or Material stop for this choice to be valid
  • Port value. Same as Fixed value, but the actual target amount value is read from a port named CTR Target Amount.

Target Amount Value

This parameter has two approaches:

  • If the Make Strategy property is set to Appended Amount Limit and the Target Amount is set to Appended Amount, the value of this parameter is the limit for when a new Material is made.
  • If the Target Amount is set to Fixed Value the start amount of the material is set to the value of this parameter at make time regardless of the incoming amount.

Inherit data values

When this parameter is set to true, all the data values registered on the parent material in the previous tracker process unit are also registered on the tracking materials in this tracker process unit.

This functionality is not recommended and must be used with care only in special situations, since a lot of database traffic is generated and a lot of database space is used.

Intermediate state persistence

The Intermediate state persistence decides at what point in time the tracking material and the related information will be persisted to the database. The alternatives are:

  • Globally defined: The persistence strategy is decided by the corresponding top application setting.
  • Continuously: Tracking material will be persisted whenever the material is changed, i.e. on amount changes and so on.
  • Disabled: Tracking material will only be persisted when the state changes, i.e. on material creation, material making and material exit.

Random Collection Properties

Negative Amount Allowed

When this parameter is checked, negative amount is allowed on the tracking materials inside this tracker process unit. This means that the material does not automatically exit the tracker process unit when the amount reaches zero. This feature is typically used to handle integrating mass balance problems because of inaccuracies in the signals or inaccuracies in manual registrations.

Material outdate time

This parameter is used to determine how long tracking materials can stay inside this TPU before they are considered outdated, and should automatically be removed from the TPU. The time is specified in seconds since CreateTime. If the parameter is set to 0, no outdating is performed. For the outdate functionality to work, an output definition of type TM Outdated must be configured, and the corresponding control port must be set to true.

Maximum Material Transfer

This parameter is used to control the maximum number of tracking materials to be moved in one time step. This functionality is used to prevent overloading of the system when transactions involving large numbers of materials occur.

Signals

The signals tab enables miscellaneous internal TPU data to be exposed on ports.

Total AMO

This parameter makes the total amount in the TPU available as a port value. The port is named STS Total Amount.

Active carrier

This parameter makes the name of the active carrier in the TPU available as a port value. The port is named STS Active carrier.

Total AMO out

This parameter makes the total amount led out of the TPU available as a port value. The port is named STS Total Amount Out.

Contained tracking material id’s

Displays all the tracking material id's contained in this TPU in a vector port. The port is named STS Contained TraMaIDs.

Total Material Count

This parameter makes the total count of tracking materials in the TPU available as a port value. The port is named STS Total Material count.

Process Unit ID

This parameter makes the process unit ID of the tracker process unit available as a port value. The port is named STS ProcessUnitID.

Tracker Process Unit ID

This parameter makes the tracker process unit ID of the tracker process unit available as a port value. The port is named STS TrackerProcessUnitID.

Input definition

The input definition tab tab is used to define input material flow to this tracker process unit.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

There will be one tracking material input port for every row defined in this tab. These ports must be connected to up-stream tracker process units or tracker material generators.

Material definition

This is the material definition of the input flow. The resulting tracking material input port can only be connected to tracker process units or tracker material gerators that produces the this material definition.

Port name

This is the name of the tracking material input port. If the typed name does not start with TMI, the component will prefix the typed port name with ‘TMI’.

Amount conversion

Amount conversion is used to transform the amount transferred from the previous tracker process unit to a new amount in this tracker process unit. The amount conversion value is multiplied with the amount in the previous tracker process unit to form the new amount in this tracker process unit. The value ‘1’ leaves the amount unchanged.

Amount conversion from port

If this parameter is checked, the amount conversion value is read from a port named CTR amount conversion factor where <PortName> is the name of the corresponding TMI port.

Topology independent

If this parameter is checked the tracking material input port becomes a virtual invisible port, where material can flow into the tracker process unit from any other tracker process unit in the tracker application.

Output definition

The output definition tab tab is used to define output material flow from this tracker process unit.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

For every output flow, a tracking material output (TMO) port and a corresponding control (CTR) port will appear. The TMO ports can be connected to downstream tracker process units, or left unconnected to end the material trace at the current position. The CTR ports are used to control the flow through the tracking material output ports.

Material transfer

This column defines the type of material flow to use. The type of control port depends on the type of material flow selected.

  • Flush. This type of material flow allows all the material inside the tracker process unit to flow out through a single TMO port. A digital CTR port will be created. When the value of this CTR port is true, all the material inside the TPU will flow out of the corresponding TMO port.

  • Materials by ID. This option enables flow of distinct identifiable materials. A vector CTR port intended for a TraMaID array is created. This port may e.g. be connected to a MaterialLookup component.

  • Material amount by ID. This option enables flow of specific amounts of distinct identifiable materials. An matrix CTR ports intended for TraMaIDs in the first column and amounts in the second column is created.

  • Amount random. This option enables flow of a specific amount of material out of the TPU. What material that is chosen for movement is random. An analog CTR port will be created. This port controls the amount transferred every time step.

  • Material count. This option enables flow of a specific count of materials out of the TPU. An analog CTR port will be created. This port controls the count transferred every time step.

  • Materials by quality class. This option will cause material of a specific material quality class to flow out of the TMO port. An analog CTR port intended for MaterialQualityClassIDs is created.

  • Outdated materials. This option will cause material that has been present in the TPU for longer than a specific time period to flow out of the TMO port. A digital control port is created, and this port must be set to true for the outdate functionality to be enabled.

              

The outdate time is configurable in the Random Collection Properties tab.

  • Outdated materials external limit. This option will cause material older that a specific time to flow out of the TMO port. An analog CTR port intended for UTC time ticks will be created, and material older that this specific point in time will flow out of the TMO port.

Command port name

This column displays the name of the control port (CTR). The column is read-only, as the name of the CTR port is derived from the name of the material output port (TMO).

Material port name

This is the name of the tracking material output port (TMO). If the typed name does not start with TMO, the component will prefix the typed port name with ‘TMO’.

Topology independent

If this parameter is checked, the TMO port becomes a virtual invisible port, where material can flow out of the TPU to any other TPU in the tracker application.

Global search

When this property is checked, a global material search is enabled. This means that if the searched material (TraMaID) is not found in this tracker process unit, a search in all the other tracker process units will be performed, and the actual material will be moved out of the tracker process unit hosting it virtually through the TMO port of this tracker process unit.

PU responsibility

The PU responsibility (Process Unit responsibility) tab is used to configure the Process Unit Runs and the Role) assignment of the tracker process unit. The tab contains two parameter matrices, one for Run configuration and one for Role assignment.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

The Run definitions parameter matrix

The Run definitions matrix is used to define the run definitions of the process unit runs that is to be handled by this tracker process unit. The complete set of run definitions is defined in the database.

Run definition name

The run definition parameter decides what run definitions that shall be controlled from this tracker process unit. The set of run definitions available is governed by the database configuration. Only run definitions that are related one the process unit classes that the process unit is member of are available.

Signal type

This parameter decides how to control the process unit runs. The options are:

  • Message. Process unit runs are controlled by messages from the portal.
  • Signal. Process unit runs are controlled by control ports on the tracker process unit.
  • Both. Signal and message based run control

Autogenerated identifier

If this parameter is checked, the tracker will generate identifiers for the runs automatically. If the parameter is unchecked, a run identifier port will appear.

Autocreate on start

If this parameter is checked, the created state of the run is skipped. This means that the run can be started without a preceding created state. If the parameter is unchecked, the runs must be created explicitly, and a port named CTR Create appears for this purpose.

Port name prefix

This is a read only parameter that shows what port name prefix that will be used on ports belonging to this run definition.

Material data capture

If this parameter is checked, data captured on the process unit run will be copied as captured data on materials that participate in the run.

Display status ports

If this port is checked, a set of process unit run status ports will appear on the TPU.

Set material identifier

If this parameter is checked, the name of the run is copied to the material that participates in the run as a material identifier.

Ident name

This is the ident definition to use when run names are copied to material as material identifiers.

Log run membership

When this parameter is checked, the material that participates in the runs are registered in the RunMembership database table. This is advantageous for reporting purposes. If this information is never used, uncheck the parameter to save database space and database transaction load.

Batch IdentDefinition

With this parameter it is possible to decide that the process unit run shall be connected to a batch. When an ident definition is selected, this means that the batch shall be connected to the run, and that all the material that resides in the tracker process unit when the batch-run connection is active will be given an identifier of the selected ident definition. The value of this identifier will be the same as the batch name. A control port for performing batch-run connections will appear on the tracker process unit when an ident definition is selected.

The Roles parameter matrix

The roles parameter matrix is used to define the role) membership of this tracker process unit.

Role name

This is the name of the actual role. The roles available are governed by the database configuration.

Description

This is a read only description of the actual role.

Unique role

This read only parameter indicates if the actual role should be unique inside the process unit. Unique roles must only be assigned to one of the TPU’s in a process unit. It is the responsibility of the configurator to see to that unique roles are only assigned to one of the tracker process units that constitutes a process unit.

Material data Capture

The material data capture tab is used to configure data acquisition for the materials in the TPU. This type of data acquisition is used when data is to be collected when materials reside on a specific position in the process. The materials that are destination for the captured data are not referenced directly by ID, but referenced according to the process position. When material data capture is used, new ports will be available on the TPU for collecting the actual data.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

Data Name

This is the name of the data definition on which to store the data. The data definitions available are governed by the database configuration.

Data type

This is a read only parameter displaying the data type of the selected data definition. In order to change the data type of a specific data definition the portal must be used.

IMPORTANT! Before the data type of a data definition is changed in the database, it is required that the data definition is removed from the tracker process unit. If not, the tracker process unit will will not function properly. 

Dimension

This is a read only parameter displaying the data dimension of the selected data definition.

Value source

This parameter displays the name of the port used for collecting the actual data to collect. The ports are named MDC <DataDefinitionName>  where <DataDefinitionName> is the name of the actual data definition.

Aggregation

This is a read only parameter displaying how to aggregate the data on the TPU. The aggregation type can only be changed through the data definition configuration page in the portal.

  • Min. The minimum value of the corresponding MDC port when the material is inside the TPU is stored.
  • Max. The maximum value of the corresponding MDC port when the material is inside the TPU is stored.
  • Average. The average value of the corresponding MDC port when the material is inside the TPU is stored.
  • First. The value present on the corresponding MDC port when the material enters the TPU is stored.
  • Last. The value present on the corresponding MDC port when the material leaves the TPU is stored.
  • Std.dev. The standard deviation of the corresponding MDC port when the material is inside the TPU is stored.
  • Integral. The integral of the corresponding MDC port when the material is inside the TPU is stored.
  • OnChange. A new value is stored on the material when the material enters the TPU or the value of the MDC port changes.
  • None. No aggregation. Same functionality as First.

Eng. Unit

This is a read only parameter displaying the engineering unit of the actual data definition.

Description

This is a read only parameter displaying the description of the actual data definition.

Process data capture

The process data capture tab is used to configure data acquisition on the process unit runs that are controlled by the tracker process unit. This type of data acquisition is used when data shall be collected and related to the active runs in the tracker process unit. When process data capture is used, new ports (PDC ports) will be available on the tracker process unit for collecting the actual data.  

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

Data Name

This is the name of the data definition on which to store the data. The data definitions available are governed by the database configuration.

Data type

This is a read only parameter displaying the data type of the selected data definition. In order to change the data type of a specific data definition the portal must be used.

IMPORTANT! Before the data type of a data definition is changed in the database, it is required that the data definition is removed from the tracker process unit. If not, the tracker process unit will will not function properly. 

Dimension

This is a read only parameter displaying the data dimension of the selected data definition.

Value source

This parameter displays the name of the port used for collecting the actual data to collect. The ports are named PDC <DataDefinitionName>  where <DataDefinitionName> is the name of the actual data definition.

Aggregation

This is a read only parameter displaying how to aggregate the data on the TPU. The aggregation type can only be changed through the data definition configuration page in the portal.

  • Min. The minimum value of the corresponding PDC port when the run is active is stored.
  • Max. The maximum value of the corresponding PDC port when the run is active is stored.
  • Average. The average value of the corresponding MDPDC C port when the run is active is stored.
  • First. The value present on the corresponding PDC port when the run is active is stored.
  • Last. The value present on the corresponding PDC port when the run is active is stored.
  • Std.dev. The standard deviation of the corresponding PDC port when the run is active is stored.
  • Integral. The integral of the corresponding PDC port when the run is active is stored.
  • OnChange. A new value is stored on the run when the run starts or the value of the PDC port changes.
  • None. No aggregation. Same functionality as First.

Eng. Unit

This is a read only parameter displaying the engineering unit of the actual data definition.

Description

This is a read only parameter displaying the description of the actual data definition.

Material ident capture

The material ident capture tab is used to define the way materials are identified in this TPU. There are several ways to provide identification. The most common way is to use the same identification as in previous tracker process units, but there also exists several ways to register new identifiers in the tracker process unit. When material ident capture is used, new ports (IDC ports) may be available on the tracker process unit for collecting the actual data. The presence of IDC ports depends on the method of identification.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

Ident name

This is the name of the ident definition on which to store the identifier. The ident definitions available are governed by the database configuration.

Ident type

This parameter decides the identification method.

  • Continued. The identifier of the actual ident definition will be inherited from the parent tracking material in the previous TPU. With this option enabled, identifiers may also be registered from the portal.
  • New (port). A new port IDC <IdentDefinitionName> will appear. The value of this port is registered as an identifier of the material when the material enters the TPU. When the value of the IDC port changes, a new identifier is registered on the material. With this option enabled, identifiers may also be registered from the portal.
  • New (message). This option enables registering of identifiers from the portal.
  • New unique (port). A new port IDC <IdentDefinitionName> will occur. The value of this port is registered as an identifier of the material when the material enters the TPU. Value changes on the IDC port are neglected. With this option enabled, identifiers may also be registered from the portal.
  • Autogenerated. The identifier is generated automatically according to a fixed strategy. This functionality is deprecated, and should not be used in new projects.
  • Extended. The identifier is created as an extension of one of the identifiers of the parent material. The new identifier is on the form <ParentIdentifier><Prefix><count> where <ParentIdentifier> is the actual identifier on the parent material. The ident definition to extend from are defined by the Ident source column. <Prefix> is a predefined text defined by the Value prefix column and <count> is the number of materials in the TPU a the time of identifier creation. The number of digits in the <count> part is defined by the #Digits column.
  • Parent article. The identifier is created as a copy of the Article of the parent material.
  • Carrier. This option is used to specify that the incoming material is registered on a carrier and that the material shall still reside on the carrier in this TPU.
  • Carrier release. This option is used to release incoming material from their assigned carrier. Materials that reside on a carrier in the previous TPU will be released from the carrier when the material enters this TPU.
  • Batch. This option is used to establish or maintain batch membership for the material. This option should be configured on the tracker process unit that allocates batch membership, and in all the consecutive tracker process unit in which the batch membership is to be maintained.

Description

This is a read only textual description of the identifier provided by the database configuration.

Value port name

This parameter displays the name of the corresponding IDC port used for collecting the new identifiers. The ports are named IDC <IdentDefinitionName> where <IdentDefinitionName> is the name of the actual ident definition.

Value prefix

This parameter is only used when the ident type is Extended.

#Digits

This parameter is only used when the ident type is Extended.

Ident source

This parameter is only used when the ident type is Extended.

Ports

The components DiscreteCollection, RandomCollection, OrderedCollection and TimeDelay mostly share the same set of ports. These ports are described in the topic Real time tracker process unit ports.

TimeDelay

The tracker process unit components are responsible for tracking of material on behalf of the process units. The tracker process units are responsible for material transactions, run transactions, time allocation and data acquisition transaction related to the process units.

The TimeDelay tracker process unit is a real time tracker process unit designed for continuous tracking where the order of materials in the tracker process unit is significant and the amount flow out of the tracker process unit cannot be controlled directly. This means that materials can only be moved out of the process the same order as they entered the process, a specified time after they entered. Typical applications of TimeDelay are conveyor belts at constant or variable speed. The flow of material out of the tracker process unit can only be controlled implicitely by controlling the retention time in the tracker process unit.

Properties

The properties of this component are organized in multiple tabs. The separate tabs are described dedicated sub topics.

Main properties

The main properties tab contains the most central parameters of the tracker process unit. Most of these parameters must be considered for the TPU to work properly.

ProcessUnit

The process unit parameter decides on which Process Unit the TPU works. The set of process units available is governed by the database configuration.

Process Unit ID

This is a read only parameter showing the database id of the selected process unit.¨

Tracker process Unit ID

This is a read only parameter showing the assigned database id of this actual TPU.

Task name

The task name is a descriptive name of the TPU. The name of the TPU in the ModFrame environment will be the name of the process unit followed by the task name surrounded by brackets, e.g ProcessUnitName[TaskName]. This parameter is required.

Description

This is a textual description of the TPU. This text is registered in the TrackerProcessUnit table in the database, and may be used for miscellaneous visualization and reporting purposes.

Material status

This is a textual description of the status of the material that is currently inside this tracker process unit. This text is registered in the TrackerProcessUnit table in the database, and are typically used for reporting purposes in order to show status for material.

Product material definition

The product material definition defines what type of material this TPU produces.

Test mode

This parameter is used to enable test mode. The choices are:

  • Disabled: Test mode is disabled.
  • Test material: Material is registered in the database with a state that makes it invisible in all reports.
IMPORTANT: The test mode only applies to this TPU. If this TPU is in test mode, but delivers materials to the next TPU which is not in test mode, the material in the next TPU will be visible in reports, even if it is a successor of test material.

Process topology position 

This parameter is deprecated, and is only available for backward compatibility. Use the INTERMEDIATE choice

Time allocation

This parameter is deprecated, and is only available for backward compatibility. The ProcessUnitTimeAllocator component is recommended for process time allocation.

The time allocation parameter decides how time allocations shall be registered for this TPU. The parameter is only editable when the role Default Time Manager is assigned for the TPU. Possible choices are none, signal based, message based and both. If signal based or both is selected, time allocation control and status ports will appear on the TPU. For message based time allocation registration to take place, message based or both must be selected.

Fictitious Material Handling

This parameter is used to enable fictitious material restore. Fictitious material restore can be used when it is necessary to insert material information directly in the database. By the use of fictitious material restore in the tracker, these materials can be loaded into the tracker application. The possible choices are:

  • Disabled. Fictitious material restore is disabled.
  • Message based. Fictitious material restore is available as web transactions.
  • Signal based. Fictitious material restore is available from a control port on the tracker process unit.
  • Message and signal based. Fictitious material restore is available as web transactions and from a control port on the tracker process unit.
Only material that has the fictitious state in the database will be loaded into the tracker application by the use of fictitious material restore.

Database material state reflection

This parameter is used to enable reflection of database material state. Use this to make the tracker process unit reflect the material state in the database for this TPU. When reflection is initiated all aspects of the material, such as amount, article, identifiers and so on are reloaded from the database.

  • Disabled. Database material state reflection is disabled.
  • Message based. Database material state reflection is available as web transactions.
  • Signal based. Database material state reflection is available from a control port on the tracker process unit.
  • Message and signal based. Database material state reflection is available as web transactions and from a control port on the tracker process unit.

Database run state reflection

This parameter is used to enable reflection of database run state. Use this to make the tracker process unit reflect the run state in the database for this TPU.

  • Disabled. Database run state reflection is disabled.
  • Message based. Database run state reflection is available as web transactions.
  • Signal based. Database run state reflection is available from a control port on the tracker process unit.
  • Message and signal based. Database material state reflection is available as web transactions and from a control port on the tracker process unit.

Default quality assignment

This parameter decides the default material quality to assign to material that enters this TPU. If continued is selected, the quality of the parent material in the previous tracker process unit will be assigned as default material quality in this tracker process unit. If Port based (ID) is selected, a port will appear that enables a default material quality id to be provided from a port. In addition, fixed material qualities may be used as default qualities. The set of qualities available depends on the database configuration. Only qualities related to the selected material definition are available.

Port based quality assignment

If this parameter is set to true, a port named CTR Material quality assignment will appear. This port is used to change material quality on specific materials inside the TPU.

Default article assignment

This parameter decides the default article to assign to material that enters this TPU. If None is selected, no article will be assigned. If continued is selected, the article of the parent material in the previous TPU will be assigned as default article in this TPU. If Port based (ID) is selected, a port will appear that enables a default article id to be provided from a port. When default is selected, the default article of the corresponding process unit is assigned. In addition, fixed articles may be used as default articles. This is achieved by selecting a specific article in the list.

Carrier connection

The carrier connection parameter decides how to control the active carrier of the TPU. If a carrier is active on the TPU, all material that enters the tracker process unit will be registered into a carrier. The possible choices are Message based and Signal/Message based. If signal based is selected, a port named CTR Active Carrier ID will appear. This port defines the active carrier of the TPU.

Position ports

If Position ports checked, the module will place its ports at appropriate positions. Uncheck this parameter if you want to place the ports manually. 

Make strategy

This parameter decides in what way the tracking material is created inside the tracker process unit. Material is received in some form, from the up-stream tracker process units, and new Material is made inside the TPU. The strategy for when new materials are created is divided in several approaches:

  • Triggered Externally. New Material is created when port signal becomes true.
  • Appended Amount Limit. New Material is created when the integrated Amount exceeds a specified limit. The limit is specified by the Target Amount and Target Amount Value parameters
  • Material Change. New Material is created when the received material changes (I.e. the ID of the material changes), or the input flow to the TPU stops. This only possible if there is one material type that can be received in the TPU
  • Material Stop. New Material is created when the received material stops entering the TPU. This strategy is deprecated. The same functionality is provided by Material Change.

Target Amount

When a new material is made, the start amount of the material can be decided by three approaches:

  • Appended Amount. The Amount is the converted and integrated amount since the previous Material was made.
  • Fixed Value. The Amount becomes a fixed value given by the Target Amount Value parameter. This implies that the Amount is zero until the material is made.The make strategy must be Externally Triggered, Material change or Material stop for this choice to be valid
  • Port value. Same as Fixed value, but the actual target amount value is read from a port named CTR Target Amount.

Target Amount Value

This parameter has two approaches:

  • If the Make Strategy property is set to Appended Amount Limit and the Target Amount is set to Appended Amount, the value of this parameter is the limit for when a new Material is made.
  • If the Target Amount is set to Fixed Value the start amount of the material is set to the value of this parameter at make time regardless of the incoming amount.

Inherit data values

When this parameter is set to true, all the data values registered on the parent material in the previous tracker process unit are also registered on the tracking materials in this tracker process unit.

This functionality is not recommended and must be used with care only in special situations, since a lot of database traffic is generated and a lot of database space is used.

Intermediate state persistence

The Intermediate state persistence decides at what point in time the tracking material and the related information will be persisted to the database. The alternatives are:

  • Globally defined: The persistence strategy is decided by the corresponding top application setting.
  • Continuously: Tracking material will be persisted whenever the material is changed, i.e. on amount changes and so on.
  • Disabled: Tracking material will only be persisted when the state changes, i.e. on material creation, material making and material exit.

Time Delay Properties

TimeDelayPort

If this parameter is checked, the time delay of the TPU is controlled by a port named CTR time delay. The value of this port specifies the time delay in seconds.

Time delay

This parameter is used to specify the time delay if the time delay is fixed, and does not need to be controlled by a port.

Single TrackingMaterial Out

When this parameter is checked, only one single tracking material can leave the TPU every time step. Warning: If this functionality is used, the TPU can overflow is the rate of tracking materials inserted into the TPU per time step is greater than one.

ActivePort

When this property is checked the activation of time delay can be controlled from a port named CTR Active.

Signals

The signals tab enables miscellaneous internal TPU data to be exposed on ports.

Total AMO

This parameter makes the total amount in the TPU available as a port value. The port is named STS Total Amount.

Active carrier

This parameter makes the name of the active carrier in the TPU available as a port value. The port is named STS Active carrier.

Total AMO out

This parameter makes the total amount led out of the TPU available as a port value. The port is named STS Total Amount Out.

Contained tracking material id’s

Displays all the tracking material id's contained in this TPU in a vector port. The port is named STS Contained TraMaIDs.

Total Material Count

This parameter makes the total count of tracking materials in the TPU available as a port value. The port is named STS Total Material count.

Process Unit ID

This parameter makes the process unit ID of the tracker process unit available as a port value. The port is named STS ProcessUnitID.

Tracker Process Unit ID

This parameter makes the tracker process unit ID of the tracker process unit available as a port value. The port is named STS TrackerProcessUnitID.

Input definition

The input definition tab tab is used to define input material flow to this tracker process unit.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

There will be one tracking material input port for every row defined in this tab. These ports must be connected to up-stream tracker process units or tracker material generators.

Material definition

This is the material definition of the input flow. The resulting tracking material input port can only be connected to tracker process units or tracker material gerators that produces the this material definition.

Port name

This is the name of the tracking material input port. If the typed name does not start with TMI, the component will prefix the typed port name with ‘TMI’.

Amount conversion

Amount conversion is used to transform the amount transferred from the previous tracker process unit to a new amount in this tracker process unit. The amount conversion value is multiplied with the amount in the previous tracker process unit to form the new amount in this tracker process unit. The value ‘1’ leaves the amount unchanged.

Amount conversion from port

If this parameter is checked, the amount conversion value is read from a port named CTR amount conversion factor where <PortName> is the name of the corresponding TMI port.

Topology independent

If this parameter is checked the tracking material input port becomes a virtual invisible port, where material can flow into the tracker process unit from any other tracker process unit in the tracker application.

Output definition

The output definition tab tab is used to define output material flow from this tracker process unit.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

For every output flow, a tracking material output (TMO) port and a corresponding control (CTR) port will appear. The TMO ports can be connected to downstream tracker process units, or left unconnected to end the material trace at the current position. The CTR ports are used to control the flow through the tracking material output ports.

Material transfer

This column defines the type of material flow to use. The type of control port depends on the type of material flow selected.

  • Out flow. This option enables the material to flow out of the TPU a certain time after it entered the tracker process unit. An analog control port will appear. The value of this port controls ratio of the total out flow that flows throuch the corresponding TMO port. Id more Out flow output definitions are defined. The flow ratio on every TMO port is computed as the value of the CTR port divided by the sum of all CTR ports multiplied by the total flow. 

Command port name

This column displays the name of the control port (CTR). The column is read-only, as the name of the CTR port is derived from the name of the material output port (TMO).

Material port name

This is the name of the tracking material output port (TMO). If the typed name does not start with TMO, the component will prefix the typed port name with ‘TMO’.

Topology independent

If this parameter is checked, the TMO port becomes a virtual invisible port, where material can flow out of the TPU to any other TPU in the tracker application.

Global search

When this property is checked, a global material search is enabled. This means that if the searched material (TraMaID) is not found in this tracker process unit, a search in all the other tracker process units will be performed, and the actual material will be moved out of the tracker process unit hosting it virtually through the TMO port of this tracker process unit.

PU responsibility

The PU responsibility (Process Unit responsibility) tab is used to configure the Process Unit Runs and the Role) assignment of the tracker process unit. The tab contains two parameter matrices, one for Run configuration and one for Role assignment.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

The Run definitions parameter matrix

The Run definitions matrix is used to define the run definitions of the process unit runs that is to be handled by this tracker process unit. The complete set of run definitions is defined in the database.

Run definition name

The run definition parameter decides what run definitions that shall be controlled from this tracker process unit. The set of run definitions available is governed by the database configuration. Only run definitions that are related one the process unit classes that the process unit is member of are available.

Signal type

This parameter decides how to control the process unit runs. The options are:

  • Message. Process unit runs are controlled by messages from the portal.
  • Signal. Process unit runs are controlled by control ports on the tracker process unit.
  • Both. Signal and message based run control

Autogenerated identifier

If this parameter is checked, the tracker will generate identifiers for the runs automatically. If the parameter is unchecked, a run identifier port will appear.

Autocreate on start

If this parameter is checked, the created state of the run is skipped. This means that the run can be started without a preceding created state. If the parameter is unchecked, the runs must be created explicitly, and a port named CTR Create appears for this purpose.

Port name prefix

This is a read only parameter that shows what port name prefix that will be used on ports belonging to this run definition.

Material data capture

If this parameter is checked, data captured on the process unit run will be copied as captured data on materials that participate in the run.

Display status ports

If this port is checked, a set of process unit run status ports will appear on the TPU.

Set material identifier

If this parameter is checked, the name of the run is copied to the material that participates in the run as a material identifier.

Ident name

This is the ident definition to use when run names are copied to material as material identifiers.

Log run membership

When this parameter is checked, the material that participates in the runs are registered in the RunMembership database table. This is advantageous for reporting purposes. If this information is never used, uncheck the parameter to save database space and database transaction load.

Batch IdentDefinition

With this parameter it is possible to decide that the process unit run shall be connected to a batch. When an ident definition is selected, this means that the batch shall be connected to the run, and that all the material that resides in the tracker process unit when the batch-run connection is active will be given an identifier of the selected ident definition. The value of this identifier will be the same as the batch name. A control port for performing batch-run connections will appear on the tracker process unit when an ident definition is selected.

The Roles parameter matrix

The roles parameter matrix is used to define the role) membership of this tracker process unit.

Role name

This is the name of the actual role. The roles available are governed by the database configuration.

Description

This is a read only description of the actual role.

Unique role

This read only parameter indicates if the actual role should be unique inside the process unit. Unique roles must only be assigned to one of the TPU’s in a process unit. It is the responsibility of the configurator to see to that unique roles are only assigned to one of the tracker process units that constitutes a process unit.

Material data capture

The material data capture tab is used to configure data acquisition for the materials in the TPU. This type of data acquisition is used when data is to be collected when materials reside on a specific position in the process. The materials that are destination for the captured data are not referenced directly by ID, but referenced according to the process position. When material data capture is used, new ports will be available on the TPU for collecting the actual data.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

Data Name

This is the name of the data definition on which to store the data. The data definitions available are governed by the database configuration.

Data type

This is a read only parameter displaying the data type of the selected data definition. In order to change the data type of a specific data definition the portal must be used.

IMPORTANT! Before the data type of a data definition is changed in the database, it is required that the data definition is removed from the tracker process unit. If not, the tracker process unit will will not function properly. 

Dimension

This is a read only parameter displaying the data dimension of the selected data definition.

Value source

This parameter displays the name of the port used for collecting the actual data to collect. The ports are named MDC <DataDefinitionName>  where <DataDefinitionName> is the name of the actual data definition.

Aggregation

This is a read only parameter displaying how to aggregate the data on the TPU. The aggregation type can only be changed through the data definition configuration page in the portal.

  • Min. The minimum value of the corresponding MDC port when the material is inside the TPU is stored.
  • Max. The maximum value of the corresponding MDC port when the material is inside the TPU is stored.
  • Average. The average value of the corresponding MDC port when the material is inside the TPU is stored.
  • First. The value present on the corresponding MDC port when the material enters the TPU is stored.
  • Last. The value present on the corresponding MDC port when the material leaves the TPU is stored.
  • Std.dev. The standard deviation of the corresponding MDC port when the material is inside the TPU is stored.
  • Integral. The integral of the corresponding MDC port when the material is inside the TPU is stored.
  • OnChange. A new value is stored on the material when the material enters the TPU or the value of the MDC port changes.
  • None. No aggregation. Same functionality as First.

Eng. Unit

This is a read only parameter displaying the engineering unit of the actual data definition.

Description

This is a read only parameter displaying the description of the actual data definition.

Process data capture

The process data capture tab is used to configure data acquisition on the process unit runs that are controlled by the tracker process unit. This type of data acquisition is used when data shall be collected and related to the active runs in the tracker process unit. When process data capture is used, new ports (PDC ports) will be available on the tracker process unit for collecting the actual data.  

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

Data Name

This is the name of the data definition on which to store the data. The data definitions available are governed by the database configuration.

Data type

This is a read only parameter displaying the data type of the selected data definition. In order to change the data type of a specific data definition the portal must be used.

IMPORTANT! Before the data type of a data definition is changed in the database, it is required that the data definition is removed from the tracker process unit. If not, the tracker process unit will will not function properly. 

Dimension

This is a read only parameter displaying the data dimension of the selected data definition.

Value source

This parameter displays the name of the port used for collecting the actual data to collect. The ports are named PDC <DataDefinitionName>  where <DataDefinitionName> is the name of the actual data definition.

Aggregation

This is a read only parameter displaying how to aggregate the data on the TPU. The aggregation type can only be changed through the data definition configuration page in the portal.

  • Min. The minimum value of the corresponding PDC port when the run is active is stored.
  • Max. The maximum value of the corresponding PDC port when the run is active is stored.
  • Average. The average value of the corresponding MDPDC C port when the run is active is stored.
  • First. The value present on the corresponding PDC port when the run is active is stored.
  • Last. The value present on the corresponding PDC port when the run is active is stored.
  • Std.dev. The standard deviation of the corresponding PDC port when the run is active is stored.
  • Integral. The integral of the corresponding PDC port when the run is active is stored.
  • OnChange. A new value is stored on the run when the run starts or the value of the PDC port changes.
  • None. No aggregation. Same functionality as First.

Eng. Unit

This is a read only parameter displaying the engineering unit of the actual data definition.

Description

This is a read only parameter displaying the description of the actual data definition.

Material ident capture

The material ident capture tab is used to define the way materials are identified in this TPU. There are several ways to provide identification. The most common way is to use the same identification as in previous tracker process units, but there also exists several ways to register new identifiers in the tracker process unit. When material ident capture is used, new ports (IDC ports) may be available on the tracker process unit for collecting the actual data. The presence of IDC ports depends on the method of identification.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

Ident name

This is the name of the ident definition on which to store the identifier. The ident definitions available are governed by the database configuration.

Ident type

This parameter decides the identification method.

  • Continued. The identifier of the actual ident definition will be inherited from the parent tracking material in the previous TPU. With this option enabled, identifiers may also be registered from the portal.
  • New (port). A new port IDC <IdentDefinitionName> will appear. The value of this port is registered as an identifier of the material when the material enters the TPU. When the value of the IDC port changes, a new identifier is registered on the material. With this option enabled, identifiers may also be registered from the portal.
  • New (message). This option enables registering of identifiers from the portal.
  • New unique (port). A new port IDC <IdentDefinitionName> will occur. The value of this port is registered as an identifier of the material when the material enters the TPU. Value changes on the IDC port are neglected. With this option enabled, identifiers may also be registered from the portal.
  • Autogenerated. The identifier is generated automatically according to a fixed strategy. This functionality is deprecated, and should not be used in new projects.
  • Extended. The identifier is created as an extension of one of the identifiers of the parent material. The new identifier is on the form <ParentIdentifier><Prefix><count> where <ParentIdentifier> is the actual identifier on the parent material. The ident definition to extend from are defined by the Ident source column. <Prefix> is a predefined text defined by the Value prefix column and <count> is the number of materials in the TPU a the time of identifier creation. The number of digits in the <count> part is defined by the #Digits column.
  • Parent article. The identifier is created as a copy of the Article of the parent material.
  • Carrier. This option is used to specify that the incoming material is registered on a carrier and that the material shall still reside on the carrier in this TPU.
  • Carrier release. This option is used to release incoming material from their assigned carrier. Materials that reside on a carrier in the previous TPU will be released from the carrier when the material enters this TPU.
  • Batch. This option is used to establish or maintain batch membership for the material. This option should be configured on the tracker process unit that allocates batch membership, and in all the consecutive tracker process unit in which the batch membership is to be maintained.

Description

This is a read only textual description of the identifier provided by the database configuration.

Value port name

This parameter displays the name of the corresponding IDC port used for collecting the new identifiers. The ports are named IDC <IdentDefinitionName> where <IdentDefinitionName> is the name of the actual ident definition.

Value prefix

This parameter is only used when the ident type is Extended.

#Digits

This parameter is only used when the ident type is Extended.

Ident source

This parameter is only used when the ident type is Extended.

Ports

The components DiscreteCollection, RandomCollection, OrderedCollection and TimeDelay mostly share the same set of ports. These ports are described in the topic Real time tracker process unit ports.

TrackerMaterialGenerator

The purpose of TrackerMaterialGenerator (TMG) component is to introduce and prepare material for tracking. The TMG serves as a start point for signal based tracking, and provides material for the different tracker process units. The TMG is responsible for registration of identifiers, material quality, article and amount for the start material.

Properties

The properties of this component are organized in multiple tabs. The separate tabs are described dedicated sub topics.

Properties

The properties tab contains the most central parameters of TrackerMaterialGenerator.

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Triggering

The triggering parameter decides how to initiate a transaction. The triggering is controlled by an input port named Trigger, and the value of this port decides if a transaction should occur or not. There are several triggering options available:

  • Digital rising flank: The trigger port type is boolean and triggering occurs on positive flanks on the port value.
  • Digital falling flank: The trigger port type is boolean and triggering occurs on negative flanks on the port value.
  • Digital flanks: The trigger port type is boolean and triggering occurs on both positive and negative flanks on the port value.
  • Digital high: The trigger port type is boolean and triggering occurs on every time step as long as the port value is true.
  • Digital low: The trigger port type is boolean and triggering occurs on every time step as long as the port value is false.
  • Analog change: The trigger port type is analog and triggering occurs when the analog port value changes.
  • Analog change discard zero: The trigger port type is analog and triggering occurs when the analog port value changes, except of transitions to zero.
  • String change: The trigger port type is string and triggering occurs when the string port value changes.
  • String change discard blanks: The trigger port type is string and triggering occurs when the string port value changes except of transitions to blank strings.

Trigger delay

This parameter makes it possible to delay the trigger signal, i.e. perform the triggered action a specific number of time steps after the trigger signal occurred. When the value is 0 or negative there is no delay, when > 0 the value indicates how many time steps to delay the triggered action.

Material Definition

The material definition of the generated material is decided by this property. All material must belong to a specific material definition.

Quality Assignment

This parameter controls the quality assignment of the generated materials. The quality can be set to a predefined value, or assigned by a port value. If the port value options are used, MaterialQualityIDs are expected on the ports. The value present on the port when triggering occurs will be assigned to the generated material.

Article Assignment

This parameter controls the article assignment of the generated materials. The article can be set none, to a predefined value, or assigned by a port value. If the port value options are used, ArticleIDs are expected on the ports. The value present on the port when triggering occurs will be assigned to the generated material.

Material Lot Assignment

Assignment of material lot is optional. If a material lot should be assigned to the material, this parameter is used do control the material lot definition of the generated material.

Amount determination

This parameter controls the amount property of the generated material. The amount can either be set to a fixed value provided by the Fixed amount parameter or assigned by the use of a scalar or vector port. Vector amount ports are used when multiple materials are generated in one transaction. The amounts present on the ports at triggering time will be assigned to the generated material.

Fixed amount

This is the fixed amount to assign to material when the Amount determination is set to Fixed amount.

Material count determination

This parameter decides the number of materials to generate on a transaction. The number of materials may be fixed or provided by a port value. When the number of material is fixed, the number of materials generated are controlled by the Fixed material count property. When port determination is used, the number present on the port at triggering time controls the number of materials to generate.

Fixed material count

This is the fixed count of material to generate when the Material count determination is set to Fixed count.

Material probability

This property decides the initial individual probability of the generated material. The property is only effective when material lots are assigned. The probability can be set to a fixed value provided by the fixed material probability parameter, or provided by a port value.

Fixed Material Probability

This is the fixed material probability to assign when the Material probability parameter is set to Fixed Probability.

Identifier properties

The identifier properties tab is used to define which identifiers that shall be registered on the generated material.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

Identifier definition

In this column the ident definitions are selected. The set of ident definitions available is governed by the database configuration.

Assignment

This column controls how the identifiers are assigned.

  • Port based ident value. When this option is used a port will appear, and the value of this port at triggering time decides the value of the identifier to be assigned.
  • Vector port based ident value. When this option is used a vector port will appear where the elements corresponds to the materials generated. The value of this port at triggering time decides the value of the identifier to be assigned.
  • Port based increment ident value. When this option is used a port will appear, and the value of this port at triggering time decides the prefix of the identifier to be assigned. The prefix value is suffixed with the sequence number of the generated material.
  • Fixed ident value. When this option is used the generated material is assigned a fixed identifier.
  • Fixed increment ident value. When this option is used the generated material is assigned a fixed identifier suffixed by the sequence number of the generated material.

Fixed value

This column is used to declare the fixed identifier to assign when the Assignment parameter is set to Fixed ident value or Fixed increment ident value.

Port name

This column controls the name of the identifier ports when the Assignment parameter is one of the port based options.

Ports

The TrackerMaterialGenerator component has several ports. Some of the ports are always present, while for some ports the presence depends on the component parameter settings.

Triggering ports

The component has two triggering ports:

  • Trigger: This port is used to initiate a transaction. The function of the trigger port depends on the selected triggering option.
  • Hold: This is a digital port is used to freeze the inputs of the component. When the value of this port is true, the rest of the port values of the components are frozen, and the values of these ports will not be transferred into the component.

TrackerMaterials

The TrackerMaterials port contains information about the generated material, and must always be connected to a TMI (Tracking Material Input) port on a tracker process unit.

QualityID

This is an input port providing MaterialQualityID for the generated material when the Quality Assignment parameter is set to Port based quality.

QualityIDs

This is an input port providing MaterialQualityIDs for the generated material when the Quality Assignment parameter is set to Vector Port based quality.

ArticleID

This is an input port providing ArticleID for the generated material when the Article Assignment parameter is set to Port based article.

ArticleIDs

This is an input port providing ArticleIDs for the generated materials when the Article Assignment parameter is set to Vector port based article.

Amount

This is an input port providing amounts for the generated material when the Amount determination parameter is set to Port based amount.

Amounts

This is an input port providing amounts for the generated material when the Amount determination parameter is set to Vector port based amount.

MaterialCount

This is an input port providing the number of materials to generate on a transaction when the Material count determination property is set to Port based count.

Probability

This is an input port providing the initial individual probability of the generated material when the Material probability parameter is set to Port based probability.

Probabilities

This is an input port providing the initial individual probability of the generated material when the Material probability parameter is set to Vector port based probability.

Identifiers

The presence of identifier ports depends on the settings in the Identifier properties tab. There will be one identifier port per identifier that requires port input. The names of the ports are decided by the user.

Tracking material Ports

Tracking material ports are used to transfer information about material flow between the TPUs.

TMI ports

TMI (Tracking Material Input) ports receive information about material flow from other tracker process units and handle material input flows to the tracker process unit. The names of the ports are specified by the user, but the specified name will be prefixed TMI.

TMO ports

TMO (Tracking Material Output) ports handle material output flow from the tracker process unit and send information about material flow to other tracker process units. The names of the ports are specified by the user, but the specified name will be prefixed TMO.

Control Ports

The control ports available depends on the the type of tracker process unit and the parameter settings of the tracker process unit. Most of the control port names are prefixed CTR.

CTR <TrackingMaterialOutputPortName>

Every TMO port has a corresponding control port. The name of the control port will be the same as the name of the TMO port, except that the TMO prefix is replaced by CTR. The type of CTR port depends on the type of material transfer selected in the Output definition property page.

CTR Material quality assignment

This port is used to change material quality on specific materials inside the TPU.

CTR Quality ID

This port is used to define the default material quality of materials that enters the TPU.

CTR Article ID

This port is used to define the default article of materials that enters the TPU.

CTR Active Carrier ID

This port defines the active carrier of the TPU.

CTR <PortName> amount conversion factor

External amount conversion reference input port for TMI port <PortName>

CTR <RunDefinitionName> Create

This is a digital port controlling the execution of process unit runs of run definition <RunDefinitionName>. Runs will be created on positive flanks.

CTR <RunDefinitionName> Active

This is a digital port controlling the execution of process unit runs of run definition <RunDefinitionName>. Runs will start on positive flanks and stop on negative flanks.

CTR <RunDefinitionName> Start

This is a digital port controlling the execution of process unit runs of run definition <RunDefinitionName>. Runs will start on positive flanks.

CTR <RunDefinitionName> Stop

This is a digital port controlling the execution of process unit runs of run definition <RunDefinitionName>. Runs will stop on positive flanks.

CTR <RunDefinitionName> Approve

This is a digital port approving process unit runs of run definition <RunDefinitionName>. This port must be set to true when the run stops for the run to be approved. If the value of this port is false when the run stop, the run will be set to canceled for restart state.

CTR <RunDefinitionName> Identifier

This is a string port for declaration of run identifiers. The value of this port will be used as identifier on the run when the run is created.

CTR <RunDefinitionName> BatchID

This is an analog port for connecting batches to runs. The value of the port is interpreted as a BatchID. The port is only validated when there is a created or active run of the actual run definition on the tracker process unit.

  • If the run don't already have a connected batch and the the port value changes to a value (BatchID) greater than zero, the run will be connected to the batch indicated by the port value.
  • If the run already have a connected batch and the the port value changes to a value (BatchID) greater than zero which not equals the batch id of the connected batch, the run will be disconnected from connected batch, and connected to the new batch indicated by the new port value.
  • If the run already have a connected batch and the port value changes to -1 the connected batch is disconnected from the run.

ExtMakeSignal

This is a digital port controlling the make process of material. Materials are made when the value of this port is true.

CTR Target Amount

This port provides the Start Amount of material at make time.

CTR Mixing signal

This is a digital port that indicates that all the contained material in the TPU shall be mixed into one new tracking material.

CTR Adjust Amount Value

This is an analog port providing the value to use for amount adjusting in the TPU.

CTR Adjust Amount Signal

This is a digital port that indicates that the amount inside the TPU shall be adjusted.

CTR NewTimeGroup

This is an analog port for registering a new time group for this tracker process unit. The tracker process unit will validate the port value, and when the value changes, the current time group of the tracker process unit is finished and a new time group given by the port value is registered. The port is only available when the tracker process unit is configured for signal based time allocation.

CTR UpdateTimeGroup

This is an analog port for updating the current time group for this tracker process unit. The tracker process unit will validate the port value, and when the value changes, the current time group of the tracker process is updated in respect to the port value. The port is only available when the tracker process unit is configured for signal based time allocation.

CTR Restore Fictitious Material

This is a digital port that is used to trigger fictitious material restore. Fictitious material restore can be used when it is necessary to insert material information directly in the database. By the use of fictitious material restore in the tracker, these materials can be loaded into the tracker application.

CTR Reflect DB Material State

This is a digital port that is used to trigger database material state reflection. When reflection is triggered, all aspects of the material, such as amount, article, identifiers and so on are reloaded from the database.

CTR Reflect DB Run State

This is a digital port that is used to trigger database run state reflection. When reflection is triggered, all aspects of the runs of the tracker process unit are reloaded from the database.

CTR Clean TPU

This is a digital port triggering the clean command, which will remove all material that has zero amount from the tracker process unit.

CTR Active

This port is only available on the TimeDelay tracker process unit, and controls whether the time delay is active.

Status ports

The status ports available on the TPU depends on the the parameter settings of the TPU.

STS Total Amount

This port displays the total amount in the TPU.

STS Active carrier

This port displays the name of the active carrier in the TPU.

STS Total Amount Out

This port displays the total amount led out of the TPU.

STS Contained TraMaIDs

This port displays all the tracking material ids contained in this TPU in a vector port.

STS Total Material count

This port displays the total count of tracking materials in the TPU

STS <RunDefinitionName> Activated

This is a digital port that is true when a run of run definition <RunDefinitionName> is started on the TPU.

STS <RunDefinitionName> Created

This is a digital port that is true when a run of run definition <RunDefinitionName> is created on the TPU.

STS <RunDefinitionName> current identifier

This is a string port port that indicates the identifier on the active run on the TPU. If no run is active, the message is ‘No run’.

STS Current time group

This port will display the current active time group of the tracker process unit. The port is only available when the tracker process unit is configured for signal based time allocation.

STS ProcessUnitID

This port displays the process unit ID of the tracker process unit.

STS TrackerProcessUnitID

This port displays the tracker process unit ID of the tracker process unit.

Data acquisition ports

The data acquisition ports available on the TPU depends on the the parameter settings of the TPU.

MDC <DataDefinitionName>

These ports are used for data collection with material relation.

PDC <DataDefinitionName>

These ports are used for data collection with process unit run relation.

IDC <IdentDefinitionName>

These ports are used for registration of identifiers on material.

Utilities

The group Utilities contains miscellaneous ModFrame components designed to support the tracking process.

ArrayRegrouper

The purpose of the ArrayRegrouper component is to rearrange the elements of one or more input vectors into a new set of output vectors based on a vector containing information on how to rearrange the elements. The ArrayRegrouper component works similar to a demultiplexer in that it will relocate the elements of the input vector(s) into several output vectors based on a configurable rule.

The component has a configurable set of groups. The elements of the input vectors are arranged in respect of these groups. An input vector called the group vector contains information about how to rearrange the elements in respect to the groups.

The component has one output vector port per input vector and group, meaning that if the number of input vectors are M and the number of groups are N, the number of output vectors will be M x N.

Properties

The properties of this component are organized in multiple tabs. The separate tabs are described dedicated sub topics.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Triggering

The triggering parameter decides how to initiate a transaction. The triggering is controlled by an input port named Trigger, and the value of this port decides if a transaction should occur or not. There are several triggering options available:

  • Digital rising flank: The trigger port type is boolean and triggering occurs on positive flanks on the port value.
  • Digital falling flank: The trigger port type is boolean and triggering occurs on negative flanks on the port value.
  • Digital flanks: The trigger port type is boolean and triggering occurs on both positive and negative flanks on the port value.
  • Digital high: The trigger port type is boolean and triggering occurs on every time step as long as the port value is true.
  • Digital low: The trigger port type is boolean and triggering occurs on every time step as long as the port value is false.
  • Analog change: The trigger port type is analog and triggering occurs when the analog port value changes.
  • Analog change discard zero: The trigger port type is analog and triggering occurs when the analog port value changes, except of transitions to zero.
  • String change: The trigger port type is string and triggering occurs when the string port value changes.
  • String change discard blanks: The trigger port type is string and triggering occurs when the string port value changes except of transitions to blank strings.

Trigger delay

This parameter makes it possible to delay the trigger signal, i.e. perform the triggered action a specific number of time steps after the trigger signal occurred. When the value is 0 or negative there is no delay, when > 0 the value indicates how many time steps to delay the triggered action.

GroupType 

This parameter decides the data type of the group vector. The alternatives are:

  • Double. The group vector is numeric.
  • String. The group vector is string

Group Properties

The Group Properties tab is used to define the input vectors and the groups.

Inputs

In this section the inputs vectors are defined. The number of input vectors are defined by the number of rows in the parameter matrix.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

Name

This is the name of the input vector port.

Type

This is the type of the input vector port. The alternatives are:

  • Double. The elements of the input vector are numeric.
  • String. The elements of the input vectors are strings.

Groups

This section is used to define the groups into which to sort the elements of the input vectors. The number of groups are defined by the number of rows in the parameter matrix.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

Group Name

This is the name of the group. This name will be part of the name of the corresponding grouped output vector ports.

Group Value

This is the key value for the group. The values of the group vector elements will be matched against this value to determine which group the corresponding elements of the input vectors belong to.

Ports

Input vectors

This is the vectors that is the target of regrouping (demultiplexing). The element will be groped in respect to the group vector. The name and type of the input vector ports are defined in the Group Properties tab. All input vectors must have the same dimension.

Grouped output vectors

These vectors contains the grouped elements of the input vectors. If the number of input vectors are M and the number of groups are N, the number of output vectors will be M x N. The grouped output vector ports will be the same type as the corresponding input vector ports and the name will be a combination of the input name and the group name, e.g. "Input1 GroupA".

GroupVector

This vector decides in what group to place all the elements of the input vectors. The GroupVector must have the same dimension as the input vectors. The value of the elements of the group vector decides into which group to put the corresponding element of the input vectors.

Regrouping completed

This digital port indicates that the regrouping is completed. In may be used to trigger other components that use the output from this component.

Triggering ports

The component has two triggering ports:

  • Trigger: This port is used to initiate a transaction. The function of the trigger port depends on the selected triggering option.
  • Hold: This is a digital port is used to freeze the inputs of the component. When the value of this port is true, the rest of the port values of the components are frozen, and the values of these ports will not be transferred into the component.

IdentGenerator

This is a simple component generating strings that may be used for identification. The strings are generated as a prefix followed by a sequence number. Strings can be generated every time step or triggered explicitly. The sequence number is reset by a port signal.

Parameters

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

ReportEventLevel

All events with equal or higher severity will be reported. 

Identifier prefix

This parameter defines the prefix of the generated identifier.

Generation strategy

This parameter decides when to generate a new identifier. The alternatives are:

  • Every timestep. A new identifier will be generated every time step.
  • Externally trigged. A new identifier will be generated on positive flanks of the Generate port.

Ports

Generate

This digital port is used trigger generation of a new identifier when the Generation Strategy is Externally trigged. A new identifier will be generated on positive flanks of this port.

Reset

This digital port is used to reset the sequence number of the generated identifier. The sequence number is reset on positive flanks of this port. 

Identifier

This output string port conatans the generated identifier.

MaterialRegenerator

This component is designed for signal based material regeneration. The component makes is possible to regenerate a set of tracking materials N steps backwards.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Triggering

The triggering parameter decides how to initiate a transaction. The triggering is controlled by an input port named Trigger, and the value of this port decides if a transaction should occur or not. There are several triggering options available:

  • Digital rising flank: The trigger port type is boolean and triggering occurs on positive flanks on the port value.
  • Digital falling flank: The trigger port type is boolean and triggering occurs on negative flanks on the port value.
  • Digital flanks: The trigger port type is boolean and triggering occurs on both positive and negative flanks on the port value.
  • Digital high: The trigger port type is boolean and triggering occurs on every time step as long as the port value is true.
  • Digital low: The trigger port type is boolean and triggering occurs on every time step as long as the port value is false.
  • Analog change: The trigger port type is analog and triggering occurs when the analog port value changes.
  • Analog change discard zero: The trigger port type is analog and triggering occurs when the analog port value changes, except of transitions to zero.
  • String change: The trigger port type is string and triggering occurs when the string port value changes.
  • String change discard blanks: The trigger port type is string and triggering occurs when the string port value changes except of transitions to blank strings.

Trigger delay

This parameter makes it possible to delay the trigger signal, i.e. perform the triggered action a specific number of time steps after the trigger signal occurred. When the value is 0 or negative there is no delay, when > 0 the value indicates how many time steps to delay the triggered action.

Ports

StartTraMaIDs

This vector port is used to specify the tracking material IDs that is entry point for material regeneration.

NumStepsBackwards

This analog port is used to define the number of upstream genealogy steps to regenerate.

Triggering ports

The component has two triggering ports:

  • Trigger: This port is used to initiate a transaction. The function of the trigger port depends on the selected triggering option.
  • Hold: This is a digital port is used to freeze the inputs of the component. When the value of this port is true, the rest of the port values of the components are frozen, and the values of these ports will not be transferred into the component.

PartitionDeleter

The PartitionDeleter component is a special component used to slide one partition forward in the Apis Click&Trace database sliding window scenario. The component is triggered by the Scheduler component. When the component is triggered, all TrackingMaterials that belong to the outgoing partition id will be removed from the tracker application, and the database will be slided one partition forward.

Parameters

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

ReportEventLevel

All events with equal or higher severity will be reported.

Ports

This component has no ports.

TimeString

The TimeString component is designed to make the current local time available as a string port in the tracker application. The time can be presented on several formats.

Parameters

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

ReportEventLevel

All events with equal or higher severity will be reported. 

Prefix

This property makes it possible to prefix the exposed time string.

Generation strategy

This property decides when to generate a new identifier. The alternatives are:

  • Every timestep. A new identifier will be generated every time step.
  • Externally trigged. A new identifier will be generated on positive flanks of the Generate port.

Time format

This property specifies the format of the exposed time string.

Ports

Generate

This digital port is used trigger generation of a new identifier when the Generation Strategy is Externally trigged. A new identifier will be generated on positive flanks of this port. 

TimeString

This port exposes the latest generated time string.

VectorFilter

The purpose of the VectorFilter component is to remove invalid elements from a set of equally sized vectors. The component has N input vector ports and N output vector ports, where the number N is configurable. A vector input port has always a corresponding vector output port. The data types of the vector elements are String, Double or Integer.

One of the port pair is configured as the master port pair. An expression decides the validity of the elements of the master input port. The corresponding output port will only contain the valid elements of the master input port.

The corresponding elements of the non-master ports are also removed, resulting in a set of equally sized output ports, where the invalid elements in the master port and the corresponding elements in the non-master ports are removed.

Properties

The properties of this component are organized in multiple tabs. The separate tabs are described dedicated sub topics.

Properties

Name

The name of the ModFrame component. This name will be visible below the ModFrame component in the ModFrame Client configuration panel.

The name of a ModFrame component must be unique within the container it resides in.

Triggering

The triggering parameter decides how to initiate a transaction. The triggering is controlled by an input port named Trigger, and the value of this port decides if a transaction should occur or not. There are several triggering options available:

  • Digital rising flank: The trigger port type is boolean and triggering occurs on positive flanks on the port value.
  • Digital falling flank: The trigger port type is boolean and triggering occurs on negative flanks on the port value.
  • Digital flanks: The trigger port type is boolean and triggering occurs on both positive and negative flanks on the port value.
  • Digital high: The trigger port type is boolean and triggering occurs on every time step as long as the port value is true.
  • Digital low: The trigger port type is boolean and triggering occurs on every time step as long as the port value is false.
  • Analog change: The trigger port type is analog and triggering occurs when the analog port value changes.
  • Analog change discard zero: The trigger port type is analog and triggering occurs when the analog port value changes, except of transitions to zero.
  • String change: The trigger port type is string and triggering occurs when the string port value changes.
  • String change discard blanks: The trigger port type is string and triggering occurs when the string port value changes except of transitions to blank strings.

Trigger delay

This parameter makes it possible to delay the trigger signal, i.e. perform the triggered action a specific number of time steps after the trigger signal occurred. When the value is 0 or negative there is no delay, when > 0 the value indicates how many time steps to delay the triggered action.

Filter type

The filter type defines the strategy for selecting valid vector elements. The filter types are:

  • Regular expression. The input vector elements must match a regular expression to be considered valid.

Expression

This expression is used by the filter to select valid vector elements. The type of expression to use depends on the Filter Type property.

Vectors

The Vectors tab is used to configure the ports that shall be filtered. When a row is added, a corresponding input port and output port are added to the component.

This parameter tab is based on the parameter matrix concept. Use the Add button to add a new row and the remove button to remove a selected row. The columns of the matrix are described below.

Name

This parameter decides the name of the corresponding ports. The name of the input port is <Name> In and the name of the output port is <Name> Out.

Datatype

This parameter decides the data type of the corresponding ports.

  • String. String vector ports are created, and the filter expects string elements.
  • Double. Double vector ports are created, and the filter expects double elements.
  • Integer. Double vector ports are created, and the filter expects integer elements casted from the double elements of the double vector input port.

Master

This parameter decides which of the port pairs that is the master port pair.

Ports

Triggering ports

The component has two triggering ports:

  • Trigger: This port is used to initiate a transaction. The function of the trigger port depends on the selected triggering option.
  • Hold: This is a digital port is used to freeze the inputs of the component. When the value of this port is true, the rest of the port values of the components are frozen, and the values of these ports will not be transferred into the component.

Vector port pairs

The vector ports are organized as pairs. A vector input port to be filtered has always a corresponding vector output port. The name of the input port is <Name> In and the name of the output port is <Name> Out, where <Name> of the port pair is decided by the user.

Filtering completed

This digital port indicates that the filtering is completed. In may be used to trigger other components that use the output from this component.

Input dimension

This analog port provides information about the dimension of the input vector ports.

Output dimension

This analog port provides information about the dimension of the filtered output vector ports.

Introduction

The Apis Click&Trace (C&T) product is based on an SQL server database. This database has a generic design that can be utilized for a wide range of production scenarios. The C&T database design is fixed to a large degree, and adaptation to specific process is performed by configuration. The database supports all types of processes in the range from discrete manufacturing to batch manufacturing to continuous manufacturing.

The main function of the database is data acquisition and reporting. The database receives automatically collected process data and process transactions via the Apis Tracker, or data and transactions registered manually from the C&T portal. The data is stored in a normalized way, and is the basis for a wide range of reports.

The Click&Trace database model is the property of Prediktor as, and the database scheme may not be reproduced or distributed without agreement from Prediktor as.

Introduction

This section contains a brief description of the most central Apis Click&Trace concepts. The Apis Click&Trace system is based on a model of the organization and the physical process in the organization. Physical entities such as processing equipment as material are pictured in the Apis Click&Trace system as Apis Click&Trace entities. When real events occur at the physical entities, this information is logged and stored as events that is related to the modeled Apis Click&Trace entities.

Processes

Processes

The following definition of processes is adopted from the ANSI/ISA-S88 standard:

A process is a sequence of chemical, physical or biological activities for the conversion, transport or storage of material and energy. Industrial manufacturing processes can generally be classified as continuous, discrete parts manufacturing, or batch. How a process is classified depends on whether the output from the process appears in a continuous flow (continuous), in finite quantities of parts (discrete parts manufacturing), or in finite quantities of material (batches).

Continuous processes

The following definition of continuous processes is adopted from the ANSI/ISA-S88 standard:

In a continuous process, materials are passed in a continuous flow through processing equipment. Once established in a steady operating state, the nature of the process is not dependent on the length of time of operation. Start-ups, transitions and shutdowns do not usually contribute to achieving the desired processing.

Discrete parts manufacturing processes

The following definition of discrete processing is adopted from the ANSI/ISA-S88 standard:

In a discrete parts manufacturing process, products are classified into production lots that are based on common raw materials, production requirements, and production histories. In a discrete parts manufacturing process, a specified quantity of product moves as a unit (group of parts) between workstations, and each part maintains its unique identity.

Batch processes

The following definition of batch processes is adopted from the ANSI/ISA-S88 standard:

The batch processes lead to the production of finite quantities of material (batches) by subjecting quantities of input materials to a defined order of processing actions using one or more pieces of equipment. The product produced by a batch process is called a batch. Batch processes are discontinuous processes. They are neither discrete nor continuous; however they have the characteristics of both.

Tracking

Discrete tracking

The term discrete tracking addresses the tracking operation of discrete processes. Discrete tracking means that materials can not be splitted into sub-materials and that multiple material entities can not be joined to form a new aggregate material.

This means that with this concept the tracking materials only have one ancestor (parent) and one descendant (child). In discrete tracking the genealogy concept is also superfluous. Instead, the Material lot concept, which offers great advantages in terms of reporting, can be used.

Continuous tracking

The term continuous tracking addresses the tracking operation of continuous processes and batch processes. In continuous tracking material entities can be split into sub material entities and multiple material identities can be joined to form a new aggregated material entity. This means that with this concept the tracking materials may have several ancestors (parents) and several descendants (children). The genealogy is used to hold relations between ancestors and descendants. In continuous tracking, one important concept is that one logical material entity can exist in two ore more tracker process units at the same time as two separate tracking materials. This means that logical material entities can enter one TPU even if it has not exited from the previous TPU’s.

Realtime tracking

In Apis Click&Trace the term realtime tracking refers to tracking where the time of the transactions is implicit, and the time stamp of every transaction received from an underlying system or an operator can be assumed to be the Apis Click&Trace server time read off when the transaction arrives at the Apis Click&Trace server. In realtime tracking the sequence of the transactions received is strictly important, and this sequence must always be the same as the sequence of the corresponding physical process events.

Asynchronous tracking

This term refers to tracking where the time stamps of all transactions are included as transaction information. With asynchronous tracking the sequence of the received transactions is not important, since all transaction contains time information. In asynchronous tracking there is a specific terminology that is used to map the concepts known by the different equipment vendors into concepts known by the Apis Click&Trace system.

Process unit

Process unit

A process unit is an organizational unit that is physically made up of equipments and control modules. The process unit combines all necessary physical processing and control equipment required to perform the processing activities. The definition of a process unit requires knowledge of the major processing activities, as well as the equipment capabilities and the tracking requirements. The following guidelines apply:

  • One or more major processing activities, such as reaction, crystallization and storage, may take place in a process unit.
  • Process units should be defined such that they operate relatively independently of each other.
  • A process unit is presumed to operate on only one batch at a time in the case of batch processing.
  • In terms of tracking, there must be well defined material transactions across the unit borders.

Material

Tracking material

A Tracking material is an entity that models a physical amount of material at a specific process location. The tracking material is the representation of a limited amount of mass or discrete unit of material with related information in the Apis Click&Trace database and the tracker application.

TraMaID

The tracking material has a unique database identifier called the TraMaID. The TraMaID is a database generated serial number of all the Tracking materials generated in the database.

Amount

The numeric Amount property of a tracking material describes the physical amount of material represented by the tracking material entity. The amount property is nonzero when the actual tracking material represents a physical material that currently is located at the position indicated by the tracking material. When the physical material moves from this location, the amount property is set to zero.

TraMaQualityCode

The data quality of the tracking material entity is defined by the TraMaQualityCode of the tracking material.

Genealogy

Genealogy is a term that describes relations between ancestors and descendants (parents and children) in large hierarchies. In the case of tracking the genealogy concept covers the relation between Tracking materials, i.e. what parent material a specific material is built up of, and how the material has moved through the process.

Material lot

A Material Lot (ML) is a virtual model of a discrete material that moves in the process topology. The ML describes a chain of single-ancestor, single-descendant tracking materials in the Genealogy. The Material Lot is actually a collection of TrackingMaterials that form the lifecycle of a discrete material entity. The Material lot concept is used with discrete tracking. When concept is used, every TrackingMaterial is related to a Material Lot and given a sequence number inside the material lot. This concept has great advantages in terms of reporting. The data quality of the material lot entity is defined by the QualityCode of the material lot.

Individual probability

The individual probability is a property of the Material lot. The individual probability is a concept that describes the probability that a material lot is exactly identified, i.e. the probability that the material mapping in the Apis Click&Trace database is correct and that the material lot references the correct physical lot. By default the individual probability is 1.0. When a new probability is assigned, the current probability of the material lot is multiplied by the new probability. New probabilities should be assigned wherever there is uncertainty in the material identification, and the resulting individual probability will be the product of all the uncertainties.

Material definition

The material definition is a way to classify different types of material by physical properties. Examples of Material Definitions may be liquid metal, gas, water and meat. The Material definition does not specify what type of gas, type of meat, the vendor of the meat and so on, which is the purpose of the article. A material definition can be considered as “the type of material that can flow in this pipe”, “the type of material that is produced by this machine” or “the type of material that can be stored in this container”. 

Material Lot definition

The Material Lot definition is used to distinguish several types of discrete traceable units in the production. A material lot is a non dividable and non mixable unit of material, and the purpose of the material lot definition is to model several different types of non dividable and non mixable material units.

TrackerProcessUnit

The Tracker process unit concept

The TrackerProcessUnit (TPU) is a virtual location where Tracking materials can reside. TPU’s belong to a Process unit, but may not necessary have any physical meaning. Process units with complex material flow are built up of several TPU’s in order to model the material flow inside the unit. In the tracker the tracker process unit is a ModFrame component that performs transaction related to the tracking of material. The Tracker process unit also performs other transactions that is related to the Process unit.

Roles (Aspects)

Roles are used as a way to uniquely identify the tracker process units inside a process unit. The reason for the use of roles is to hide details of the tracker configuration for the web interface configurator and to make the configuration of the web interface more robust against changes in the tracker application. Roles and Aspects are the same thing, it is called Roles in the tracker and Aspects in the portal. In order to reference a TPU in the portal, the ProcessUnit and Role (Aspect) must be specified. Hence, a TPU without a role cannot be identified from the Portal. The predefined roles are listed in the table below. The projects are free to define new roles, but it is recommended to use the predefined roles as much as possible

RoleIDRole name
1Input
2Output
4Check-in
8Check-out
32Run manager
64Time manager
128Performance manager
512Scrap output
1024Scrap input
65537Default input
65538Default output
65540Default check-in
65544Default check-out
65568Default run manager
65600Default time manager
65664Default performance manager
131073Control input
131074Control output
262145Internal input1
262146Internal output1
66048Default Scrap output
66560Default Scrap input

The RoleID's are bit patterns. The bits of these patterns are defined by the following table:

BitDescription
0Input
1Output
2Check-in
3Check-out
5Run manager
6Time manager
7Performance manager
9Scrap output
10Scrap input
16Default
17Control
18Internal1

Tracking material ports

Tracker material ports  are configured to exchange information about material flow between Tracker process units. TM ports are based on Nx2 analog matrix ports. This means that the exchanged data are on matrix form with N rows and 2 columns. The first column contains the TraMaIDs of the exchanged material. The second column contains the exchanged amount per time step. In addition to this information, information about material quality, articles and identifiers are exchanged via the TM ports, but this is not visible in the tracker material ports.

The tracking material lifecycle

Material Creation

The realtime tracker operates cyclic in real time with fixed time intervals. Every time step, amounts and TraMaIDs are read from the TPU material input ports. If the TPU is empty, or contains only made material, and positive amounts are read from one or more of the material input ports, a new tracking material will be created inside the TPU. This tracking material is registered in the C&T database with TraMaID and CreateTime. This new material is now in Appending state. The amounts read from the material input ports are integrated over time, and the integrated sum is called Appended Amount.

Material Making

The term Material Making is important in the tracker, especially for continuous and batch processes. Before the material is made, it cannot be considered as an independent unit of material. After the make event has occurred, all information about parent material and amounts is available in the Apis Click&Trace database. The make event can occur in several ways:

  • Externally triggered. An external signal from a port or command from a web page triggers the make event.
  • Appended amount limit. The appended amount reaches a predefined limit.
  • Material change. The material flow into the TPU stops or a new material enters the TPU.

The start amount of the tracking material is defined as the appended amount at the time of the make event. The start amount can also be set to a fixed predefined value at make time. After the make event has occurred the state of the tracking material is Pending.

Exiting material

The tracking material can start to leave the TPU, even if it has not been made. This is often the case in continuous processes. In addition to the start amount, the TM has a numeric Amount value that keeps track of how much of the material that is considered to be inside the TPU. When material leaves the TPU, the value of the TM Amount is reduced. In normal cases the material is considered to leave the TPU when the Amount value reaches zero. However, a TPU can be configured to handle negative amount, and in this case an explicit signal is needed for the TM to leave the TPU. This functionality is useful when inaccuracy in flow or weight signals leads to an erroneous Amount value.

Examples

The following examples explain some typical situations. The topic Material movement and genealogy explains further how the create, make and exit transactions are registered in the Apis Click&Trace database.

Example 1: Empty TPU

Before material enters the TPU for the first time, the TPU is empty as illustrated in the figure below.

Example 2: Appending state

When a TPU is empty, and amounts are read from the material input ports, a new TM is created in the TPU. The TM is assigned a TraMaID at create time. As long as positive amounts are read from the input ports, these are added to the TM Amount every timestep. This situation is illustrated in the figure below.

Example 3: Making material

When the make event occures, the material in appening state will be made. The genalogy relations, make time and start amount are written to the database. This situation is illustrated in the figure below.

Example 4. Appending state

Assume that a TPU has made material inside it. When the amount values on the input ports become positive, and no material in appending state exits, a new TM is created. This situation is illustrated in the figure below.

Example 5: TM Exiting

When material start leaving the TPU (TraMaID 1 in Figure 5), the amount of material in the TPU is reduced. When the amount reaches zero, the TM leaves the TPU. This situation is illustrated in the figure below.

 

Example 6: Combined state

Material can start leaving the TPU before it is made. This situation is illustrated in the figure below.

Material movement and genealogy

The movement of material and registration of tracking material and genealogy in the database illustrated by an example. The figure below illustrates the situation where two materials exist in one TPU. An extract of the current content of the TrackingMaterial table and the Genealogy table is shown to the right in the figure.

At a point in time (11:37), the material represented by TraMaID 1 starts to move from the first TPU to the second TPU. This is illustrated in the next figure. A new TraMaID 3 is registered in the TrackingMaterial table. This TraMaID represents the part of material that has entered the second TPU.

At time 11:38 all of the first material has left the first TPU and this is indicated by the registration of ExitTime in the TrackingMaterial table. This situation is illustrated in the figure below. Notice that nothing happens in the Genealogy table since the make event has not yet occurred in the second TPU.

At time 11:39, the last part of the second material leaves the first TPU. The situation is illustrated in the last figure. This triggers the make event in the second TPU (by configuration). The ExitTime of TraMaID 2 and the MakeTime of TraMaID 3 are registered. Simultaneously the Genealogy relations are registered, TraMaID 1 and TraMaID 2 are parents of TraMaID 3.

Material Regeneration

The term Material Regeneration refers to the process of making passed material available at a given position in the tracker application and delete the downstream trace of this material in the Apis Click&Trace database. Material regeneration is most often used to fix registration errors caused by malfunctioning equipment signals or careless operators. Conceptually, an N step material regeneration from a given entry point tracking material involves the following actions:

  1. Use the genealogy to locate the newest downstream tracking material of the trace given by the entry point tracking material.
  2. Remove the newest downstream tracking material from the tracker application and invalidate the trace from the entry point tracking material to the newest tracking material it in the database by setting the invalid bit of the TraMaQualityCode for all the tracking materials in the downstream trace.
  3. Use the genealogy to locate the tracking materials constituting the material trace N steps backwards from the entry point tracking material and mark tracking materials invalid N-1 steps backwards in the trace. The tracking materials is invalidated by setting the invalid bit of the TraMaQualityCode.
  4. For the TrackingMaterial at the Nth backward genealogy step, modify the database by setting the ExitTime to NULL and the Amount equal to the Start Amount. Reload this tracking material into the tracker application. 

Material regeneration can be triggered by web components or from signals in the tracker application.

Material identification

The Identifier concept

Identifiers are human- and/or machine readable tags that are used to identify material in the process. Identifiers can identify both tracking materials and material lots. Identifiers serve as the model for bar-codes, RFID identifiers and so on in the Apis Click&Trace database.

An identifier is a text string that is attached to the TM or ML. The actual text string of the Identifier is called _IdentValueIDs, which are database generated serial numbers of all Identifiers in the system.

An identifier can be generated as a new identifier when the TM is inside a specific TPU or it can be inherited from the parent material in the previous TPU. A TM can have multiple identifiers. The example below illustrates the situation when 4 different materials exist in one TPU. Each of the materials has an identifier.

When the material moves between two TPU’s, the TraMaID will change. This is illustrated in the next figure where TraMaID 1 in the first TPU becomes TraMaID 3 in the second TPU. However, the Identifier ‘LotA’ is not changed.

Ident definitions 

A material can have several identifiers, and the different identifiers are most often instances of different ident definitions. For example, a material can have a human readable lot number in addition to a machine readable RFID identifier. In this situations, there are two ident definitions, the LotID and the RFID, and the lot number is an instance of the LotID ident definition whil the RFID identifier is an instance of the RFID ident definition.

MaterialQuality

MaterialQuality

The Material Quality entity models the physical quality of the material. Typical examples are A-spec material, B-spec material, rework material and scrap material. The following definition is introduced by the Blom OEE standard v 2.0:

Producing ‘quality’ means producing a product that meets its specification, not by trying more than once but first time right. Products not meeting its full spec, but still useful and possible to sell (i.e. as B product, or in a different market) are not first time right and thus should be considered ‘scrap’

If a product does not meet its spec, but can be reworked, in terms of OEE it is to be considered as ‘scrap’, but can be identified as a special form of scrap, by labelling it as ‘rework’.

Material quality name

The material quality name is a textual name of the actual material quality. 

Material quality label

The material quality label is an alternative textual name of the actual material quality. 

Material quality id

The material quality id is a database generated serial number of the actual material.

Material Quality Class

The material quality class concept is used to classify the different material qualities in terms of material value. There are four material quality classes. These classes are used for KPI calculations such as OEE.

  • Accepted. Material that is A-spec, or can be sold as B spec product.
  • Rework. Material that has to be reworked in order to be sold as A or B spec product.
  • Scrap. Material that cannot be reworked, and has to be considered 'scrap'
  • Undefined. Material that has not been inspected or where the quality is unknown.

Every material quality belongs to one and only one material quality class.

Article

Article

The article concept is most commonly used to identify a product by its properties, but articles may also identify raw materials and semi products by their properties. Article numbers are also often called product codes or item numbers. Articles do not identify specific instances of material, but is rather a way to group material with similar properties, such as vendor, size, efficiency, colour and so on. The article entity has some central attributes which is described below.

Article

The Article attribute is a textual short name of the actual article. This attribute is most often used to store article numbers or product codes. 

Article name

The Article name attribute is a textual name of the actual article. This attribute is most often used to store the human readable name of the article. 

Article id

The Article id attribute is a database generated serial number of the actual article.

Data Values and Data Definitions

The data value is an multi purpose entity that represent a single data attribute value in the Apis Click&Trace database. The data value concept is generic, and used for a lot of purposes. Some example of purposes are

  • Representation of captured material attributes. The color of a bike, the resistance of a resistor or the maximum temperature of a meat batch are typical example of material attributes that can be modeled by the use of data values. In respect to material, the data values most often represent information about the material that is captured during the processing of the material.
  • Representation of attributes of process unit runs. The maximum temperature of the during the run or the average pressure during the run are typical examples of the use of data values in respect to process unit runs.
  • Representation of article attributes. Articles have often attributes such as color, length, efficiency class and so on, and data values are used to store these attribute values.

The data value represent the data itself whereas the data definition contains meta data information. A data value must always belong to a data definition. The data definition serves as the “class” in respect object oriented design, whereas the Data Value is the instantiation of the class.

Data acquisition

Acquisition

The term acquisition has several meanings in the tracking software. The precise term data acquisition refers to the following conceps:

  • Collect data from the process and relate it to specific materials
  • Collect data from the and relate it to process unit runs

Engineering units and unit conversion

Engineering unit

Engineering units (Units of measurement) are standards for measurement of physical quantities that need clear definitions to be useful. Apis Click&Trace has a rich set of default engineering units that covers most purposes.

Quantity

In Apis Click&Trace the term quantity is used on physical properties that can be expressed by a set of equivalent engineering units. Examples of quantities are physical properties such as mass, volume, speed etc.

Quantity category

Quantity categories are varieties of quantities. They may be looked upon as sub-quantities of a category. The purpose of quantity categories is to provide alternative engineering units to a quantity in some cases. As an example, the quantity “mass” with quantity engineering unit g, may have a quantity category called “large scale mass” with engineering unit kg

Unit conversion

The purpose of the unit conversion system is to enable conversion between engineering units that belong to the same quantity. The conversion from a value given in QEU (Quantity Engineering Unit) to Engineering Unit 1 is described by the equation:

      xi=aixq+bi

where

      xi    - Value given in engineering unit 1

        ai   - Conversion factor of engineering unit 1

        xq   - Value given in quantity engineering unit

      bi     - Conversion offset of engineering unit 1

The conversion of a value given in engineering unit 1 (EU1) to engineering unit 2 (EU2) is logically performed in 2 steps:

  1. Convert from EU1 to QEU (Quantity Engineering Unit)
  2. Convert from QEU to EU2

The 2 steps can be combined by the following equation:

x2=(a2  / a1) x1 + (b2 - a2b1/a1)

Carrier

Carrier

A carrier is a type of equipment that is used for hosting and transportation of material. Typical examples are baskets and trolleys. Carriers are usually used for transportation of material in the process in places where it is difficult to identify the material itself. I such cases the carriers are used to maintain traceability through registration and reading of the carrier ID’s. In fact, the carrier is a special case of an Identifier in the Apis Click&Trace database.

Carrier class

All carriers are members of a carrier class. The purpose of the carrier class is to group all carriers with physical and organizatorical properties.

Process unit run

The Process unit run concept

Process unit runs are repeating periods in time where the process unit performs a predefined task. Typical examples of process unit runs are production or handling of a batch of material or other cyclic operations. The process unit runs are controlled by the tracker process units.

Run definitions

A process unit can have several types of periodic operations, such as production operation and maintenance operation. The run definition concept is used to distinguish these operations, and the production operation may be instance of the Production run definition while the maintenance operation may be instance of the Maintenance run definition.

Run states

A process unit run has several states. The figure below illustrates the different states and the commands that can change the states. Only the transitions depicted in this figure are allowed. The bold states indicates states where the run is active in the tracker.

The table below contains a description of the states.

StateStatusCodeNativeBitDescription
Idle838860823Idle is defined as the run state when no run is created. It means that the TPU is available for creating/starting a run of the actual run definition
Created6556916When a run is created, the run is registered in the database with a unique process unit run id. The run identifier string and create time is also registered in the database. If there is material inside a TPU when a run is created, the material will be linked to the run in the database. New material that arrives in the TPU when the run is created is also linked to the run.
Active13117117When the run is set to active for the first time, the start time of the run in written to the database. If capturing is configured for the actual run definition, run data capture is performed as long as the run state is active. New material that arrives in the TPU when the run is active is also linked to the run.
Paused26224118When the run is paused, data capturing is stopped until the run is resumed.
Ready104861620When the run status is set to ready, the end time of the run is written to the database. The capturing is stopped, run is no longer the responsibility of the tracker. The tracker is from no on available for creating a new run of the actual run definition.
Finished1677726424The finished state is used when the run requires post processing. The finished state indicates that the post processing is finished.
Canceled for restart209744421When the run is set to canceled for restart, any material participating in the run is moved back to their previous tracker process unit. The run is canceled.

Every state has a unique status code and a native bit. The status code is a bit pattern that are used to describe properties of the actual state. Bits 0-15 are meta information about the actual state according to the table below and bits 16-31 is a bit indicating the actual state according to the NativeBit column in the table above. For example, the Active state status code in Table 1 is 2^17 (Native bit) + 2^0 (Active in tracker) + 2^1 (Running) + 2^5 (Created) + 2^6 (Started)= 131171

BitMeta state
0Active in tracker
1Running
2Canceled
3Ready
4Finished
5Created
6Started
7Failure
8Regret

Run control

The runs of a tracker process unit may be controlled by port signals on the ModFrame component, or by messages from web pages.

Run identification

Every run instance has a human readable string identifier called MainIdent. The identifier may be set automatically by the TPU, or manually from web pages or port signals on the tracker process unit.

Batch

Batch

The following definition of processes is adopted from the ANSI/ISA-S88 standard:

A batch is:

  1. The material that is being produced or that has been produced by a single execution of a batch process
  2. An entity that represents the production of a material at any point in the process.

NOTE: Batch means both the material made by and during the process and also an entity that represents the production of that material. Batch is used as an abstract contraction of the words "the production of a batch"

In Apis Click & Trace the second S88 interpretation of the term batch is similar to the concept process unit run in Apis Click&Trace.

The tracker batch concept

In the tracker the Batch concept refers to a collection of materials that is produced in a process unit in a specific time range. Material is related to a batch with the use of process unit runs, and the batch membership is provided by a common identifier for all the material that belongs to the same batch. In order to register batch memberships the following actions must be performed:

  1. Create a process unit run in the tracker process unit that allocate the batch membership.
  2. Connect at batch to the run
    1. Use the web control "BatchRunTransaction" with the connect operation or
    2. Insert a valid BatchID to the batch id control port of the tracker process unit. 
  3. Insert material into the tracker process unit.

All material that enter the tracker process unit when a batch is connected to the process unit run will be connected to the batch by a common Identifier. (all material will have the same IdentValueID)

To end the batch the following actions can be performed:

  1. Use the BatchRunTransaction web control and the disconnect transaction or
  2. Stop the process unit run, either by use of the tracker process unit control ports or by the use of a web control.

The BatchRunTranasction web control

Since the use of batches requires the use of a web control, the basis operations of the BatchRunTransaction web control are described here.

Connect

This operation will relate a registered batch to a created or active process unit run. It is not allowed to connect several batches to the same run.

  1. A new IdentValue will be created, and the value will be the same as the batch name.
  2. A new row will be inserted in the BatchRunMembership table. This row will include the IdentValueID from the point 1.
  3. A "batch object" will be created in the tracker application. This object will provide for that every material that enters the tracker process unit will be member of the batch.

Disconnect

This operation will stop the functionality that allocates batch membership to the incoming material in the tracker process unit and mark the registration of batch material as finished.

  1. The BatchRunMembership table is updated with an EndTime.
  2. The "batch object" in the tracker application will be removed.

RemoveMaterialReferences

This operation will do the same as the Disconnect operation and in addition remove all TrackingMaterialIdentValue rows with the corresponding IdentValueID.

  1. An ordinary Disconnect operation will be performed.
  2. The quality code of the corresponding row in the BatchRunMembership table is set to invalid.
  3. Remove all TrackingMaterialIdentValue rows with the corresponding IdentValueID.

RollbackMaterial

This operation will do the same as the RemoveMaterialReferences operation and in addition regenerate all the membership material to the tracker process unit before the tracker process unit that allocated the batch membership.

  1. An ordinary RemoveMaterialReferences operation will be performed.
  2. Regenerate all the membership material to the tracker process unit before the tracker process unit that allocated the batch membership.

Process time allocation

Process time allocation

The time allocation concept is designed for process unit performance reporting, and the entity model supports KPI's such as OEE and Semi E10. The concept is that every process unit is always in one and only one process time group (state) in respect to KPI reporting. Switches between Time Groups are logged in a database table. Every ProcessTimeGroup (state) belongs to a ProcessTimeClass. Examples of Process Time classes are Production time, Scheduled downtime, unscheduled downtime and so on. 

Article based process time allocation

In the simplest form, process time allocation just considers process unit, state and and time. However, it is possible to introduce the article dimension into the time allocation. This way, one or more articles can be related to the periods, which makes a more detailed reporting considering the article produced possible. E.g. it is possible to report if the efficiency of a process unit is article dependent.

Counters

The counter concept

The counter concept is designed to count frequent events of different types. It is a lightweight structure that can be used to count a large number of events and relate these numbers to time periods for reporting purposes. The structure is based on aggregation of a suitable number of events of the same type into one row in the database. The resolution may also be one row per event, but then on the expense of reporting performance and storage cost.

Counter definition

A counter definition is the definition of a specific counter in the system. Everything that is to be counted must belong to a counter definition. A counter definition may be linked to a process unit, and in this way count events related to a specific process unit and the counter definition defines the resolution of the counter. The counter definition also defines the counter category of the counter.

Counter category

The counter category concept describes what type of events the counter actually counts. The different counter categories has different sets of events that can be counted. The set of event to be counted is called the counter enumeration entry set, and the counter categories define where to find information of the specific enumeration entries that are counted.

There are 3 predefined counter categories in the system:

  • Undefined. The counter enumeration entry set is specific/user defined.
  • MaterialQuality. The counter enumeration entries that are counted are MaterialQualityIDs.
  • Article. The counter enumeration entries that are counted are ArticleIDs.

Counter class

Counter Definitions are classified by counter classes. The counter class concept is used to gather similar counter definitions i.e. for reporting purposes. A counter class can contain several counter definitions and a counter definition can be member for several counter classes.

Equipment and Control Module

Equipment

The Apis Click&Trace Equipment term corresponds to the ANSI/ISA-S88 Equipment module term. By definition, Equipment is a functional group of physical equipment that can carry out a finite number of specific minor processing activities such as dosing and weighing. An Equipment is typically centered around a piece of process equipment (a weigh tank, a process heater, a scrubber, etc.).

Equipment class

Equipments are organized in classes. Equipments may be members of several classes and a class may contain several equipments.

Control Module

The control module is the lowest level grouping of equipment in the physical model that can carry out basic control. Basic control is control that is dedicated to establishing and maintaining a specific state of equipment or process condition. Examples of control modules are pressure and temperature transmitters and control valves.

PDSQuality

The PDSQuality concept is a general concept used in Apis Click&Trace in order to indicate the data quality of the entities. The PDSQuality is a bit pattern where the separate bits have different meaning, and the total quality is the combination of all the bits. Several Apis Click&Trace entities implements the PDS quality concept. Examples are:

  • TrackingMaterial (TraMaQualityCode)
  • MaterialLot (QualityCode)
  • ProcessUnitRun (QualityCode)
  • Batch (QualityCode)

The following table describes the bits of the PDSQuality:

BitNameDescription
0 (0x01)PERSISTEDThe entity is persisted to the database.
1 (0x02)OKThe data quality of the entity is ok.
2 (0x04)BADThe data quality of the entity is bad.
4 (0x10)FICTITIOUSThe entity is forced into the database manually and waiting for the tracker to load it into the tracker application.
5 (0x20)INTERTRACKEROPERATIONThe entity is a result of an operation between two tracker application. This is typically used to indicate that there has been material moves between two ore more tracker applications.
13 (0x2000)TESTBITThe entity is a test entity. All normal clients shall handle this entity as if it was not found in the database.
14 (0x4000)INVALIDBITThe entity is "deleted". All clients shall handle this entity as if it was not found in the database.

Asynchronous tracking concepts and terminology

This section describes central concepts of asynchronous tracking.

Equipment Location

This is a physical location in an equipment where material can reside

Equipment Location Name

This is the unique name of the equipment location within the equipment

Equipment state

The equipment state is the definition of the current condition of equipment in terms of KPI reporting. Examples of equipment states are OEE states and SEMI E10 states. Equipment states relates to Equipment locations. An equipment location may only have one state at a time.

Tracking Identifier

A Tracking Identifier is an identifier that identifies the same material over a set of equipment locations. The tracking identifier is central for the offline tracking to work, and makes it possible to relate material events across equipment locations. The Tracking Identifier strictly necessary in order to derive genealogy relations.

Group Identifier

The Group Identifier is an alternative to the tracking identifier in equipment locations where it is impossible to identify distinct material entities. Group identification makes it possible to reference multiple material entities by the use of one single group identifier

Material Attribute

The term Material Attribute is a collective term for the different attributes of a material entity. The material attributes are:

  • Material Quality Attribute which corresponds to Apis Click&Trace MaterialQuality concept. A material entity may have one Material Quality Attribute. Material Quality Attribute instances are called Material Quality Attribute Values.
  • Article Attribute which corresponds to Apis Click&Trace Article concept. A material entity may have one Article Attribute. Article Attribute instances are referred to as Article Attribute Values.
  • Identifier Attributes which corresponds to Apis Click&Trace Ident definitions. A material entity may have multiple Identifier attributes. An instance of an Identifier Attribute is called an Identifier Attribute value which corresponds to the Apis Click&Trace IdentValue.
  • Data Attributes which corresponds to Apis Click&Trace Data definitions. A material entity may have multiple Data attributes. An instance of a Data Attribute is called an Data Attribute Value which corresponds to the Apis Click&Trace DataValue.

Asynchronous transactions

This term refers to a set of asynchronous transactions that can be handled by by the offline tracking system. The available transactions are introduced below:

  • MaterialEnter. Registering the event of a single material entity entering an equipment location.
  • MaterialExit. Registering the event of a single material entity leaving an equipment location.
  • RegisterMaterialAttributes. Registering material attributes on a single material entity.
  • RegisterInterimMaterialAttributes. Registering material attributes in cases where the material reference is missing.
  • GroupMaterial. Adding a single material entity to a material group by adding a group identifier.
  • UngroupMaterial. Removing a single material entity from a material group by removing the group identifier and update the tracking identifier.
  • MaterialGroupRelease. Removing a single material entity from a material group by removing the group identifier and preserve tracking identifier.
  • MaterialGroupEnter. Registering the event of multiple material entities identified by a common identifier entering an equipment location.
  • MaterialGroupExit. Registering the event of multiple material entities identified by a common identifier leaving an equipment location.
  • RegisterMaterialGroupAttributes. Registering material attributes on multiple material entities identified by a common identifier.
  • AlterTrackingIdentifier. Alter the tracking identifier of a specific material entity.
  • RegisterEquipmentState. Register equipment state in terms of KPI reporting.

These transactions are available in the Apis Click&Trace message library.

Offline Tracking Assistant

This term refers to an application that periodically scans the database for new unrelated asynchronous material transactions and tries to relate the new materials to previous registered materials in upstream tracker process units. This application is responsible of maintaining genealogy in case of offline tracking.

Pending transactions

If for some reason, a transaction cannot be executed, typically since entities on which it depends has not yet been registered, the transaction is put in a pending queue. A typical example of a pending transaction is a RegisterMaterialAttributes transaction that cannot execute since the material for which the attributes shall be registered has not yet been registered by a MaterialEnter transaction. The Offline Tracking Assistant will scan the pending queue periodically and try to execute the pending transaction. There is a configurable maximum time for which the transactions may stay in the pending queue. If this time is exceeded, the transaction will be discarded.

Apis Click&Trace Message Library Concepts

Purpose

The scope of the APIS Click&Trace (ACT) message library is to provide a way for interfacing information from production systems and other external systems to the APIS Click&Trace system. The library consists of simple atomic and general transaction messages, common in production, tracking and MES environments. The objective is, for interface developers to translate physical events, from the process or information from external databases, to transaction messages in the ACT Message Library. Complex transactions can be assembled from the set of simple and atomic transactions available in the ACT Message Library. The ACT Message Library transactions are translated, by ACT product components, to more complex and proprietary transactions used against the APIS Click&Trace database. Hence the ACT Message Library is the bridge language (pivot language) used for translations between external equipment or systems and the APIS Click&Trace database.

ACT Message concepts

In order to utilize the ACT Message Library, it is important to understand the concepts that the messages (transactions) are built on. The concepts are aimed to be as general as possible, not specific to any process or system.

Native transaction

The term native transaction refers to the transaction or event in the equipment or external database from which an ACT message originates.

Native transaction ID

The Native transaction ID is an identification of the native transaction from which an ACT message originates. The purpose of the native transaction id is to follow the transactional information through the different communication layers for debugging purposes. If the native transaction is unknown, or not available at the time the ACT message is generated, a new native transaction id can be generated or the native transaction id may be left blank.

Event time

The term event time refers to the time when a physical event took place. The event time should always be UTC based. All ACT messages has one and only one event time. It is not possible to refer events happening at different times with the same ACT Message.

Equipment location

This is a definite physical location in the production environment. Equipment locations are typically definite locations inside a production tool where material can reside or where events of different types can take place. However, an equipment location does not necessary has to be inside a physical equipment. It can just as well model a physical location such as the “production floor”, “behind the electrical cabinet”, “the storage room” and so on.

Equipment location name

An equipment location name is a string that uniquely identifies an Equipment Location as uniquely as possible.

Equipment state

The equipment state is the definition of the current condition of equipment in terms of KPI reporting. Examples of equipment states are OEE states and SEMI E10 states. Equipment states relate to Equipment locations. An equipment location may only have one state at a time.

Material

A material is a substance that can move around in the production facility.

Discrete material

A discrete material is a definite amount of identifiable material that cannot be directly divided into smaller amounts of material or joined to form larger amounts of material.

Material amount

The term amount (Material amount) refers to the physical amount of material represented by a discrete material entity. Amounts are typically mass such as “kilograms of Si in an Ingot” or numbers  such as “number of wafers in a box”, or “number of wafers in a wafer”.

Material group

The term material group refers to a set of related discrete material entities. All the material entities in a material group can be identified by one common identifier. Examples of material groups are “all the wafers on the carrier” which can be identified by a carrier id or “all the boxes on a pallet” which can be identified by a pallet id.

Material attributes

Material attributes are information units that identifies the material and/or describe the properties of the material. The attributes are generally intensive properties of the material, i.e. properties that do not depend on the size or amount of the material entity. There are four groups of material attributes:

  • Material Quality Attributes. The material quality attributes describe the properties of the material in terms of value. A material may have one material quality attribute. The quality attribute is a text string describing the value of the material, e.g.”A-spec product”, “rework material” or “scrap”.
  • Article Attributes. The article attributes are most commonly used to identify a product by its properties. Article numbers are also often called product codes or item numbers. Articles do not identify specific instances of material, but is rather a way to group material with similar properties, such as vendor, size, efficiency, color and so on. A material may have one article attribute.
  • Identifier Attributes. The identifier attributes are used to identify materials. They are usually human- and/or machine readable tags that are used to identify material in the process. A material entity may have multiple Identifier attributes. An identifier attribute consists of two text strings, one describing the type of identifier and another describing the value of the identifier. Example: Type: Bar Code Label, Value: 122215-21-54-1
  • Data Attributes. Data attributes are multi purpose attributes that describe general intensive properties of the material, such as color, temperature, texture and so on. A material may have multiple Data attributes. A data attribute consists of two text strings, one describing the type of attribute and another describing the value of the attribute. Example: Type: Color, Value: RED

Interface developers are free to define the information available in the orignal transaction as quality, article, identifier or data or a combination. It is important to think about what the MES system need the data for. Some guidelines apply:

  • Numerical data should be defined as data attributes.
  • Information used to identity material should at least be defined as identifier attributes
  • If in doubt, model string based data as a combination of all the different attribute types.
  • Remember that the MES system may need the same data as different attribute types, so do not hesitate to make combinations.

Attribute key

An attribute key is a special type of material attribute that serves as temporary link between a material and its attributes in situations when either the material is not known at the time of registering an attribute or the attribute is not known at time of registering the material. Attribute keys are most often used when material tracking information and material measurements originates from different equipments. Attribute keys are typically used by measuring equipments which do not directly know the material that the measurements belong to. Attributes that are temporarily registered based on attribute keys are referred to as Interim Attributes.

Tracking identifier

A tracking identifier is an identifier that identifies the same material over a set of equipment locations.

Group identifier

The group identifier is an alternative to the tracking identifier in equipment locations where it is impossible to identify distinct material entities. Group identification makes it possible to reference multiple material entities as a material group by the use of one single group identifier. A group identifier consists of two parts:

  • Group value which identifies the material group as a whole.
  • Position value which identifies material in the group by the position in the group, e.g. slot in a carrier.

To identify the group as a whole, the position value should be left blank.

Apis Click&Trace Message Library Content

MaterialEnter

The MaterialEnter message is used to register the event of a single discrete material entity entering an equipment location. If e.g. the physical event involves several discrete materials, a number of MaterialEnter messages must be created in order to register all the distinct material entities separately. The MaterialEnter message does not say anything about from where the material entity originates, it will only register the fact that a material enters a physical location. The MaterialEnter message is designed so that it is possible to register material attributes at the same time as the fact of material movement is registered.

Message content:

MaterialExit

The MaterialExit message is used to register the event of a single discrete material entity leaving an equipment location. If e.g. the physical event involves several discrete materials, a number of MaterialExit messages must be created in order to register all the distinct material entities separately. The MaterialExit message does not say anything about the destination of the material leaving the physical location, it will only register the fact that a material leaves. The MaterialExit message is designed so that it is possible to register material attributes at the same time as the fact of material movement is registered.

Message content:

RegisterMaterialAttributes

The RegisterMaterialAttributes message is used to register attributes on a specific material entity residing at a specific equipment location. As ACT Messages have one and only one event time, the RegisterMaterialAttributes message is limited to register a set of attributes that share the same time stamp. To register attributes with different time stamps, several RegisterMaterialAttributes messages have to be used.

Message content:

RegisterInterimMaterialAttributes

The RegisterInterimMaterialAttributes message is used to register attributes where the material reference is temporarily unknown. The RegisterInterimMaterialAttributes message is thus an alternative to the RegisterMaterialAttributes message that can be used when the material reference is unknown. Instead of relating the attribute to the material, the attribute is registered independently with an attribute key, which is used later for relating the attribute to a material. As ACT Messages have one and only one event time, the RegisterInterimMaterialAttributes message is limited to register attributes that share the same time stamp. To register attributes with different time stamps, several RegisterInterimMaterialAttributes messages have to be used.

Message content:

GroupMaterial

The GroupMaterial message is used to register group membership for a discrete material entity residing at a specific equipment location.

Message content:

UngroupMaterial

The UngroupMaterial message is used to remove a discrete material entity residing at a specific equipment location from a material group and optionally register a new tracking identifier for the material.

Message content:

MaterialGroupRelease

The MaterialGroupRelease message is used to remove all materials from a material group.

Message content:

MaterialGroupEnter

The MaterialGroupEnter message is used to register the event of a common identified group of discrete materials entering an equipment location. The MaterialGroupEnter message does not say anything about from where the material group originates, it will only register the fact that a material group enters a physical location. The MaterialGroupEnter message is designed so that it is possible to register material attributes at the same time as the fact of material movement is registered.

Message content:

MaterialGroupExit

The MaterialGroupExit message is used to register the event of a common identified group of discrete materials leaving an equipment location. The MaterialGroupExit message does not say anything about the destination of the material group leaving the physical location, it will only register the fact that a material group leaves a physical location. The MaterialGroupExit message is designed so that it is possible to register material attributes at the same time as the fact of material movement is registered.

Message content:

RegisterMaterialGroupAttributes

The RegisterMaterialGroupAttributes message is used to register attributes on a group of material entities residing at a specific equipment location. This message type is an alternative to the RegisterMaterialAttributes message that can be used when materials are identified by a common group identifier. As ACT Messages has one and only one event time, the RegisterMaterialGroupAttributes message is limited to register attributes that share the same time stamp. To register attributes with different time stamps, several RegisterMaterialGroupAttributes messages have to be used.

Message content:

AlterTrackingIdentifier

This message is used to alter the tracking identifier of a specific material. In this message, the material is referenced by its original tracking identifier. The result of the message is that the value of the tracking identifier is changed, so that after the arrival of this message the material has to be referenced by its new tracking identifier.

Message content:

RegisterEquipmentState

The RegisterEquipmentState message is used to register information about the state of equipment in terms of KPI reporting. The interpretation of the message is that the state provided in the message is valid from the point in time provided by the event time of the message.

Message content:

Introduction

The Apis Click&Trace Bakery (ACT Bakery) is a tutorial process used for educational purposes. The ACT Bakery is a fictitious process which demonstrates central concepts of Apis Click&Trace.

Process description

The ACT bakery has a goods reception area where all raw material is received and registered. When incoming raw material is registered, it is moved to either a coll raw material storage or a dry raw material storage. If raw material becomes out of date or damaged in any way, it is removed from the storages and registered into raw material disposal.

The ACT bakery has 4 production lines:

  • Bun production line. This line produces buns and muffins. Raw material is consumed from the storage. The first step is to produce a dough, which is used to create the raw buns. The buns are baked in an oven, and packed in bags of different sizes before they are transported and registered into the finished goods storage.
  • Bread production line. This line produces bread. Raw material is consumed from the storage. The first step is to produce a dough, which is used to create the raw bread. The bread are baked in an oven, and after a cooling period the bread are sliced and packed in bags before they are transported and registered into the finished goods storage.
  • Confectionary line. This line produces special cakes on customer demand. The cakes are decorated according to customer wishes. The line has indirectly individual tracking by the use of RFID marked cake platters.
  • Cookie production line. This is a super quick high volume cookie production line which produces 120000 cookies per day. Every cookie is tracked by individual in order to compare cookie quality and production parameters. The individual tracking is accomplished by software installed on the production machinery.

All products are stored in a finished goods storage. At shipping time, the products are moved to a transport ramp and loaded onto trucks.

Click&Trace Diagram

A Click&Trace diagram is a schematic description of the material flow in the process.

To be described more...