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 setting | Description | |
---|---|---|
Servername | The name of the ModFrame server. | ModFrameServer |
StartFile | The application file to load when the ModFrame server starts. | |
MaxClients | The maximum number of clients. If the value is negative the number of clients is unlimited. | Unlimited |
maxConfigMode | The maximum number of clients that can be in configuration mode simultaneously. | 1 |
StartOnLoad | The application will start running computations automatically when the ModFrame server is started. | False |
WindowVisible | If false the server window will not visible. | True |
ApplicationPath | The path to where the application files are stored. | The home directory of the user. |
LibraryPath | The path to where library files are stored. | The home directory of the user. |
StateFilesPath | The path to where the state files are stored. | The home directory of the user. |
XMLEncoding | The encoding used on the (xml) application files. | UTF-8 |
LoginManagement | If true, enables authentication when clients try to connect to the server. | False |
SampleTime | The initial time interval [ms] between computations. | 1000 |
RedirectStandardOut | If true, there will be a window in the server window displaying the standard out messages. | True |
RedirectStandardErr | If true, there will be a window in the server window displaying the standard err messages. | True |
InitialRMIPort | The port on which the RMI registry accepts requests. If the port is taken, the next port is attempted. | 1099 |
RemoteObjectPort | The port number on which the remote object receives calls (if zero, an anonymous port is chosen). | 0 |
ShutdownAction | The action which will be performed when the application is shut down. (None, Save) | None |
TransactionLockTimeout | The 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
Property | Description | Default value | ||
---|---|---|---|---|
ExchangeRate | The exchange rate in milliseconds when retrieving values from external items | 0 (Turned off) | ||
Run | States whether the ModFrame is performing computations. | False | ||
JavaAppVisible | Specifies if the ModFrame server window is visible or not. (If ApisHive is run as a windows server, the window is always invisible.) | True. | ||
JavaAppStartfile | The application file which will be opened when ApisHive is started. | |||
ApplicationFilePath | The path to where the application files are stored. | The ApisHive config folder | ||
LibraryFilePath | The path to where the library files are stored. | The ApisHive config folder | ||
TimeStep | The computational time interval [ms] between the computations. | 1000 | ||
Timer | The 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 | ||
MaxItemBufferStrategy | Specifies 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.
| 20 | ||
EventReportLevel | The 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
Property | Description | Default value |
---|---|---|
TimeReferenceItem | An 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. | |
StartupJavaClass | The 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 |
StartupJavaMethod | The 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 |
NativeJavaClass | The 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 |
SaveAction | The action to be performed when the application shutsdown (None, Save) | None |
ItemWriteMasking | Set the quality level of items that will be written to the Java application from this module | Write all qualities |
PersistedValToInitVal | Choose strategy for copying and persisting current value to the InitValue. | Never |
PersistedStateDestination | The 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 |
StateLoggers | The loggers which will log the state if PersistedStatesDestination is Items. | |
AutoDeletePersistenceItems | If 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. | |
StateFileFolder | The 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.
ItemType | Port equivalent |
---|---|
Bool | Digital port |
Double | Analog port |
String | String 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.
ItemType | Port equivalent |
---|---|
Bool | N/A |
Double | Analog vector port |
String | String 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.
ItemType | Port equivalent |
---|---|
Bool | N/A |
Double | Analog matrix port |
String | N/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
Attribute | Description |
---|---|
FileAccess | Decides whether the file specified in the item is in read, write or read/write mode. |
TriggerOnChange | If true the state file will be read/written to when the item changes |
IncludeStateFileFolder | If true the state file will be put in the StateFileFolder, otherwise it will be stored in the current directory |
ForceStopBeforeRead | Will 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.
Attribute | Description |
---|---|
ReadStates | If 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.
Attribute | Description |
---|---|
CommandType | The type of command performed when the item's value is set to true. (Run/Stop) |
Reset | Will 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.
Attribute | Description |
---|---|
StatusAsString | Displays 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 port | Data type | Notes |
---|---|---|
Analog matrix | A matrix of double precision floating point values | The 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.
Property | Description | Default value |
---|---|---|
ProductName | The name of the product | ModFrame |
AutoConnect | If true the server set in the InitialConnectionServer connected automatically on startup. | |
InitialConnectionServer | The server to connect to on start up. The format is rmi://ip-address/servername:port | |
ServerReadInterval | The interval [ms] between reconnect attempts when the server connection is lost and the interval between history value updates. Cannot be less than 1000 ms | 1000 |
HelpExec | The location of the help file. | current-directory/help |
RemoteObjectPort | The 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 command | Shortcut key | Task |
---|---|---|
New | Ctrl+N | Creates a new application. |
Open... | Ctrl+O | Open an existing application. |
Save | Ctrl+S | Save 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. | |
Prints the configuration pane. | ||
Preferences | Opens the preferences dialog. |
Application
Application command | Shortcut key | Task |
---|---|---|
Create MFC... | Creates a new ModFrame component. |
Edit
Edit command | Shortcut key | Task |
---|---|---|
Cut | Ctrl+X | Cuts the selected components. |
Copy | Ctrl+C | Copies the selected components. |
Paste | Ctrl+V | Pastes the cut or copied elements. |
Delete | Delete | Deletes the selected components. |
View
View command | Shortcut key | Task |
---|---|---|
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 command | Shortcut key | Task |
---|---|---|
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.
Name | Icon | Task |
---|---|---|
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 view | N/A | Selects the active view. |
Select layers | Selects the visible layers. | |
Zoom | Performs zooming in the configuration panel. | |
Log view | Hides/shows the log view. | |
Container bar | Hides/shows the container bar. | |
Help | Opens 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.
Field | Description |
---|---|
Computer | The 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. |
Port | The 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. |
Server | The name of the ModFrame server. Previous entries will be stored, and can be selected from the combo box. |
User name | The user name. (Only applies if the server demands authentication.) |
Password | The password for the user. (Only applies if the server demands authentication.) |
Auto-update server list | If checked the server list will automatically update when the computer entry changes. |
Button | Action |
---|---|
Connect | Connects to the server with the parameters entered in the fields. |
Cancel | Cancels connection and close dialog. |
Update server list | Gets 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.
Field | Description |
---|---|
Type | A list of components that can be added to the server. |
Name | The name of the component. |
Button | Action |
---|---|
Ok | Creates the component with the parameters entered in the fields. |
Cancel | Cancels 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:
Field | Description |
---|---|
MFC | The components which contains the port which the display is to show values. |
Port | The name of the port whose value will be shown in the display. |
View types | Selects the view which you want to display. |
Add to | Add 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 name | True if Apis item, False if port | 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 name | True 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.
Parameter | Description | Read-only |
---|---|---|
Timer interval | The time interval between computations | False |
Logical sample time [s] | The time step | False |
Server name | The name of the server currently connected | True |
IP-address | The ip-address of the server currently connected | True |
RMI port | The rmi port of the server currently connected | True |
Application file | The name of the current application file | True |
Application files path | The folder which the applications are stored in | True |
State files path | The folder which the state files are stored in | True |
Library files path | The folder which the library files are stored in | True |
XML-encoding | The encoding of the application xml file. | True |
Shutdown-action | Specifies an action at shutdown | True |
Save-mode | Specifies the format of the application xml file. | False |
Enable debug messages | If true debug messages will be displayed | False |
Maximum clients | The maximum number of clients that can be connected to the server | True |
Maximum clients concurrently in configuration mode | The maximum number of clients that can be in configuration mode simultaneously. | True |
Start in run-mode | True if the server starts in run mode | True |
Redirect standard error | Specifies if the standard error is redirected to the server window. | True |
Redirect standard out | Specifies if the standard out is redirected to the server window. | True |
Server window visible | If true the server window is visible | True |
User input enabled on server | If true the user can interact with the server | True |
User must log on to server | If true the user must log on when connecting to the server. | True |
Remote Object port | The RMI port used. | True |
Transaction lock timeout | False |
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 name | Description | Direction | Type |
---|---|---|---|
Value | The value to be inserted in the currently accumulating vector. | Input | Analog port |
ValueIndex | The index where the value will be inserted in the currently accumulating vector. | Input | Analog port |
AccumulateNewVector | Signals if a new vector will be created and starts to accumulate. The older vectors will be shifted in the buffer. | Input | Digital port |
WriteVector | Signals if the oldest vector will be written to Vector port. | Input | Digital port |
Vector | Contains an accumulated vector. | Input | Analog 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 name | Description | Direction | Type |
---|---|---|---|
Flow | The flow value to be inserted in the process port. | Input | Analog port |
Density | The density value to be inserted in the process port. | Input | Analog port |
Enthalpy | The enthalpy value to be inserted in the process port. | Input | Analog port |
Pressure | The pressure value to be inserted in the process port. | Input | Analog port |
Temperature | The temperature value to be inserted in the process port. | Input | Analog port |
Conc 1 - N | The concentration value to be inserted in the process port. | Input | Analog port |
ProcessPort | The resulting process port with values form the analog ports. | Output | Process 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 name | Description | Direction | Type |
---|---|---|---|
Flow | The flow value to be retrieved from the process port. | Output | Analog port |
Density | The density value to be retrieved from the process port. | Output | Analog port |
Enthalpy | The enthalpy value to be retrieved from the process port. | Output | Analog port |
Pressure | The pressure value to be retrieved from the process port. | Output | Analog port |
Temperature | The temperature value to be retrieved from the process port. | Output | Analog port |
Conc 1 - N | The concentration value to be retrieved from the process port. | Output | Analog port |
ProcessPort | The process port from which values are picked to be inserted in the analog ports. | Input | Process 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:
- Scalar. The parsed values are exposed on scalar ports. The number of scalar ports is defined by the Maximum number of parsed values property.
- Vector. The parsed values are exposed on a vector port. The number of elements in the vector is defined by the Maximum number of parsed values property.
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 block | ModFrame component | Notes |
---|---|---|
ABS | AbsoluteValue | |
ADD | Sum | |
ANADELAY | SignalDelay | The new component delays several input types. |
CEIL | Ceiling | |
CONV | N/A | |
COS | Cosine | |
COUNTER | PulseCounter | Used together with Compare. |
COUNTER2 | PulseCounter | |
DERIV | TimeDerivation | |
DIV | Division | |
EXP | Exponential | |
FLOOR | Floor | |
GAIN | N/A | Use Multiplication instead. |
HOLD | TimeStepDelay | The new component delays several input types. |
INC | Increment | |
INTGR | TimeIntegral | |
LFILT | LowpassFilter | |
LIMIT | Limit | |
LINMOD | LinearModel | |
LOG | Logarithm | |
MAX | Maximum | |
MEAN | Mean | |
MEDIAN | N/A | |
MIN | Minimum | |
MULT | Multiplication | |
NUM2STR | ||
PID | See Control toolbox. | |
POWN | Power | |
RANDOM | Random | |
RAMPUPDN | N/A | |
ROUND | Round | |
SAMPHOLD | Sampling | The new component handles several input types. |
SELIN | DigitalMultiplexer | The new component handles several input types. |
SELINN | Multiplexer | The new component handles several input types. |
SELPAR | DigitalMultiplexer | No need for parameter/property. |
SELPARIN | DigitalMultiplexer | No need for parameter/property. |
SIN | Sine | |
SQRT | SquareRoot | |
STD | Standard Deviation | |
SUB | Subtraction | |
TAN | Tangent | |
TIMESTEP | SampleTime | |
YPOWX | Power |
Digital
SoftPlc block | ModFrame component | Notes |
---|---|---|
AND | AND | |
BITAND | BitwiseAnd | |
CMPRH | Compare | Tests both for low and high limits. |
CMPRL | Compare | Tests both for low and high limits. |
CODECMPR2 | N/A | |
CODECMPR3 | N/A | |
COMPIN | Compare | |
COMPINEQ | Equal | |
DIGDELAY | SignalDelay | Select Digital as SignalType. |
DIGSELINN | Multiplexer | Select Digital as SignalType. |
DLATCH | Sampling | Select Digital as SignalType. |
INV | Invert | |
MONO | LastingPulse | |
OR | OR | |
OSC | SquarePulse | |
PULSEDEL | PulseDelay | The PULSEDEL delayed for one time step less than it should. |
RS | RSFlipFlop | |
SAMPLE | Sampling | Sample Trigger must be High and SignalType must be Analog. |
SNAPEVENT | Må lages | |
SWITCH | DigitalMultiplexer | |
TIMROFF | PulseLowDelay | |
TIMRON | PulseHighDelay | |
XOR | XOR |
Linear Algebra
SoftPlc block | ModFrame component | Notes |
---|---|---|
ADD | Sum | |
APPEND | Augment | The new component is more complicated, but can be used as the APPEND block. |
COLUMN | ColumnsSelection | |
COLUMNDIM | Dimension | |
DELAY | TimeDelay | |
DET | Determinant | |
DIFF | N/A | Can obtain the same functionality with TimeStepDelay and Subtraction |
EIG | Eigenvalues | |
ELEM | ElementsSelection | |
ELEMCOUNT | Dimension | |
ELEMIN | ElementsSelection | |
ELEMSET | SetElements | |
IDENTITY | Identity | |
IDENTITYSC | Identity | |
INSROW | InsertRows | |
INVERSE | Inverse | |
MULT | Multiplication | |
NORM1 | Norm | |
NORM2 | Norm | |
NORMF | Norm | |
NORMINF | Norm | |
NULLSC | Null | |
RANDOM | Random | |
RANK | Rank | |
RMROW | RowsRemove | |
ROW | RowsSelection | |
ROWDIM | Dimension | |
SAMPHOLD | Sampling | |
SCALARMULT | ScalarMultiplication | |
SELIN | DigitalMultiplexer | |
SELINN | Multiplexer | |
SUB | Subtraction | |
SVD | SingularValueDecomposition | |
SVDU | SingularValueDecomposition | |
SVDV | SingularValueDecomposition | |
TRANSP | Transpose | |
VEC2VEC | N/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:
- Zero - The output becomes zero
- NaN - The output becomes NaN (not a number).
- Infinity - The value is either positive or negative infinity, depending on the dividend.
- PortValue - The value is retrieved from a port.
Ports
Port name | Description | Direction | Type |
---|---|---|---|
Dividend | Contains the value above the fraction bar. | Input | Analog port |
Divisor | Contains the arguments which will be summed. | Input | Analog port |
Result | Contains the division value. | Output | Analog 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 name | Description | Direction | Type |
---|---|---|---|
Argument 1 to N | Contains the arguments which will be multiplied. | Input | Analog port |
Result | Contains the multiplied value of the inputs. | Output | Analog 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 name | Description | Direction | Type |
---|---|---|---|
Minuend | Contains the minuend value. (The minuend is c in the equation: c - b = a) | Input | Analog port |
Subtrahend | Contains the subtrahend value. (The subtrahend is b in the equation: c - b = a) | Input | Analog port |
Difference | Contains the difference between the minuend and the subtrahend. | Output | Analog 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 name | Description | Direction | Type |
---|---|---|---|
Argument 1 to N | Contains the arguments which will be summed. | Input | Analog port |
Result | Contains the summed value of the inputs. | Output | Analog 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 name | Description | Direction | Type |
---|---|---|---|
Sample time | Contains the current sample time. | Output | Analog 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 name | Description | Direction | Type |
---|---|---|---|
Input value | Contains the value for which the time derivation value is found. | Input | Analog port |
Result | Contains the value of the time derivation. | Output | Analog 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 name | Description | Direction | Type |
---|---|---|---|
Input value | Contains the value which will be time integrated. | Input | Analog port |
Reset | If the value is true the integrated value (Result) will be reset to zero. | Input | Digital port |
Hold | If the value is true the integrated value (Result) will be held constant. | Input | Digital port |
Result | Contains the value of the time integration. | Output | Analog 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 name | Description | Direction | Type |
---|---|---|---|
Input value | Contains the value which for which the mean value will computed. | Input | Analog port |
Reset | If the value is true the mean value (Result) will be reset to zero. | Input | Digital port |
Hold | If the value is true the mean value (Result) will be held constant. | Input | Digital port |
Result | Contains the current mean value. | Output | Analog 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 name | Description | Direction | Type |
---|---|---|---|
Input value | Contains the value which for which the mean and standard deviation will computed. | Input | Analog port |
Reset | If the value is true the mean and standard deviation will be reset to zero. | Input | Digital port |
Hold | If the value is true the mean and standard deviation will be held constant. | Input | Digital port |
Mean | Contains the current mean value. | Output | Analog port |
Standard deviation | Contains the current standard deviation. | Output | Analog 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 name | Description | Direction | Type |
---|---|---|---|
Input value | Contains the value for which the arc cosine value will be found. | Input | Analog port |
Result | Contains the arc cosine value in radians of the input. | Output | Analog 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 name | Description | Direction | Type |
---|---|---|---|
Input value | Contains the value for which the arc sine value will be found. | Input | Analog port |
Result | Contains the arc sine value in radians of the input. | Output | Analog 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 name | Description | Direction | Type |
---|---|---|---|
Input value | Contains the value for which the arc tangent value will be found. | Input | Analog port |
Result | Contains the arc tangent value in radians of the input. | Output | Analog 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 name | Description | Direction | Type |
---|---|---|---|
Input value | Contains the value in radians for which the cosine value will be found. | Input | Analog port |
Result | Contains the cosine value of the input. | Output | Analog 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 name | Description | Direction | Type |
---|---|---|---|
Input value | Contains the value in radians for which the sine value will be found. | Input | Analog port |
Result | Contains the sine value of the input. | Output | Analog 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 name | Description | Direction | Type |
---|---|---|---|
Input value | Contains the value in radians for which the tangent value will be found. | Input | Analog port |
Result | Contains the tangent value of the input. | Output | Analog 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 name | Description | Direction | Type |
---|---|---|---|
Input value | Contains the value for which the absolute value will be found. | Input | Analog port |
Result | Contains the absolute value of the input. | Output | Analog 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 name | Description | Direction | Type |
---|---|---|---|
Input value | Contains the value for which the ceiling value will be found. | Input | Analog port |
Result | Contains the ceiling value of the input. | Output | Analog 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 name | Description | Direction | Type |
---|---|---|---|
Input value | Contains the value for which the expontial value will be found. | Input | Analog port |
Result | Contains the expontial value of the input. | Output | Analog 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 name | Description | Direction | Type |
---|---|---|---|
Input value | Contains the value for which the floor value will be found. | Input | Analog port |
Result | Contains the floor value of the input. | Output | Analog 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 name | Description | Exposed property | Direction | Type |
---|---|---|---|---|
Active | If true, the increment will be comupted. If false the output is held constant. | False | Input | Digital port |
Reset | Resets the output value to the initial value. | False | Input | Digital port |
Initial value | The initial value of the increment. | True | Input | Analog port |
Increment value | The increment value. | True | Input | Analog port |
Result | Contains the current incremented value. | False | Output | Analog 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 name | Description | Direction | Type |
---|---|---|---|
Input value 1 to N | Contains the arguments which will be multiplied with the a1 to N parameter. | Input | Analog port |
Result | Contains the result of the linear equation. | Output | Analog 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 name | Description | Direction | Type |
---|---|---|---|
Input value | Contains the value for which the natural logarithm will be found. | Input | Analog port |
Result | Contains the natural logarithm of the input. | Output | Analog 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 name | Description | Direction | Type |
---|---|---|---|
Argument 1 to N | Contains the values from which the maximum will be found. | Input | Analog port |
Result | Contains the maximum value of the inputs. | Output | Analog 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 name | Description | Direction | Type |
---|---|---|---|
Argument 1 to N | Contains the values from which the maximum will be found. | Input | Analog port |
Result | Contains the maximum value of the inputs. | Output | Analog 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 name | Description | Exposed property | Direction | Type |
---|---|---|---|---|
Input value | Contains the base for the power function. | False | Input | Analog port |
Exponent | Contains the exponent for the power function. | True | Input | Analog port |
Result | Contains the resulting power value. | False | Output | Analog 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 name | Description | Direction | Type |
---|---|---|---|
Input value | Contains the value which will be rounded to the nearest integer. | Input | Analog port |
Result | Contains the rounded value of the input. | Output | Analog 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 name | Description | Direction | Type |
---|---|---|---|
Input value | Contains the value which will be rounded to the nearest integer. | Input | Analog port |
Result | Contains the rounded value of the input. | Output | Analog 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 name | Description | Direction | Type |
---|---|---|---|
Argument [0 to Rows - 1, 0 to Columns - 1] | Contains the matrix which will be placed at the specified position in the resulting matrix. | Input | Matrix port |
Augmented matrix | Contains the augmented matrix. | Output | Matrix 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 name | Description | Exposed property | Direction | Type |
---|---|---|---|---|
Input matrix | Contains the matrix from which columns will be removed. | False | Input | Matrix port |
Column 1 - N | Contains the zero based column index of the column to remove from the matrix. | True | Input | Matrix port |
Matrix | Contains the matrix with the columns specified removed. | False | Output | Matrix 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:
- Single Matrix: The selected columns are exposed in one common matrix
- 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 name | Description | Exposed property | Notes | Direction | Type |
---|---|---|---|---|---|
Input matrix | Contains the matrix from which columns will be selected. | False | Input | Matrix port | |
Column 1 - N | Contains the zero based column index of the column to select from the matrix. | True | Input | Matrix port | |
Matrix | Contains the matrix with the selected columns. | False | Only exists when the Output type property is Single Matrix | Output | Matrix port |
Selected Column 1 - N | Contains the selected column in a matrix. | False | Only exists when the Output type property is Individual Matrices | Output | Matrix 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 name | Description | Direction | Type |
---|---|---|---|
Input Matrix | The matrix for which the determinant will be found. | Input | Matrix port |
Result | The determinant of the input matrix. | Output | Analog 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 name | Description | Direction | Type |
---|---|---|---|
Input Matrix | The matrix for which dimensions will be found. | Input | Matrix port |
Row count | The number of rows in the input matrix. | Output | Analog port |
Column count | The number of columns in the input matrix. | Output | Analog port |
Element count | The number of elements in the input matrix. | Output | Analog 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 name | Description | Direction | Type |
---|---|---|---|
Input Matrix | The matrix for which eigenvalues will be found. | Input | Matrix port |
Result | The eigenvalues of the input matrix. | Output | Matrix 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 name | Description | Exposed property | Direction | Type |
---|---|---|---|---|
Input matrix | Contains the matrix from which elements will be selected. | False | Input | Matrix port |
Element 1 - N Row | Contains the zero based row index of the element to select from the matrix. | True | Input | Analog port |
Element 1 - N Column | Contains the zero based column index of the element to select from the matrix. | True | Input | Analog port |
Element 1 - N | Contains the selected element in the input matrix. | False | Output | Analog 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 name | Description | Direction | Type |
---|---|---|---|
Matrix 1 | The matrix which will be compared to Matrix 2. | Input | Matrix port |
Matrix 2 | The matrix which will be compared to Matrix 1. | Input | Matrix port |
Result | True if the Matrix 1 is equal to Matrix 2. | Output | Digital 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:
- Scalar: The size of the matrix is determined by the properties Row count and Column count.
- 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 name | Description | Exposed property | Notes | Direction | Type |
---|---|---|---|---|---|
Input Matrix | Contains the matrix whose size will be the size of the identity matrix . | False | Only visible when the Identity size source property is Matrix. | Input | Matrix port |
Row count | The number of rows in the identity matrix. | True | Only visible when the Identity size source property is Scalar and the corresponding property is exposed. | Input | Analog port |
Column count | The number of columns in the identity matrix. | True | Only visible when the Identity size source property is Scalar and the corresponding property is exposed. | Input | Analog port |
Identity | The resulting identity matrix. | False | Output | Matrix 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 name | Description | Exposed property | Direction | Type |
---|---|---|---|---|
Input matrix | Contains the matrix for which rows will be inserted. | False | Input | Matrix port |
Row index | The index where the rows will be inserted | True | Input | Analog port |
Row count | The number of rows that will be inserted. | True | Input | Analog port |
Element value | The value of the row element of the rows which are inserted. | True | Input | Analog port |
Result | Contains the matrix with the inserted rows. | False | Output | Matrix 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 name | Description | Exposed property | Direction | Type |
---|---|---|---|---|
Input matrix | Contains the matrix for which columns will be inserted. | False | Input | Matrix port |
Column index | The index where the columns will be inserted | True | Input | Analog port |
Column count | The number of columns that will be inserted. | True | Input | Analog port |
Element value | The value of the column element of the columns which are inserted. | True | Input | Analog port |
Result | Contains the matrix with the inserted columns. | False | Output | Matrix 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 name | Description | Direction | Type |
---|---|---|---|
Input Matrix | The matrix for which the inverse will be found. | Input | Matrix port |
Result | The inverse matrix of the input. | Output | Matrix 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 name | Description | Direction | Type |
---|---|---|---|
Element [<row>, <column>] | The value of this port is written to the element positioned as indicated in the matrix. | Input | Analog port |
Matrix | The resutling matrix. | Output | Matrix 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 name | Description | Direction | Type |
---|---|---|---|
Argument 1 to N | Contains the arguments which will be multiplied. | Input | Matrix port |
Result | Contains the multiplied value of the inputs. | Output | Matrix 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-Norm
- 2-Norm
- Infinity Norm
- Frobenius Norm
Ports
Port name | Description | Direction | Type |
---|---|---|---|
Input Matrix | Contains the matrix for which the norm will be found. | Input | Matrix port |
Result | The norm of the matrix. | Output | Analog 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:
- Scalar: The size is retrieved from properties or ports as row size and column size.
- 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 name | Description | Exposed property | Notes | Direction | Type |
---|---|---|---|---|---|
Input Matrix | Contains the matrix whose size will be the size of the null matrix . | False | Only visible when the Null size source property is Matrix. | Input | Matrix port |
Row count | The number of rows in the null matrix. | True | Only visible when the Null size source property is Scalar and the corresponding property is exposed. | Input | Analog port |
Column count | The number of columns in the null matrix. | True | Only visible when the Null size source property is Scalar and the corresponding property is exposed. | Input | Analog port |
Result | The resulting matrix filled with zeroes. | False | Output | Matrix 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 name | Description | Exposed property | Direction | Type |
---|---|---|---|---|
Active | If true, random values will be generated. | False | Input | Analog port |
Row count | The number of rows in the matrix. | True | Input | Analog port |
Column count | The number of columns in the matrix. | True | Input | Analog port |
Mean value | The mean value of the random numbers in the matrix. | True | Input | Analog port |
Standard deviation | The standard deviation of the random numbers in the matrix. | True | Input | Analog port |
Result | The resulting matrix with random numbers. | False | Output | Matrix 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 name | Description | Direction | Type |
---|---|---|---|
Input Matrix | Contains the matrix for which the rank will be found. | Input | Matrix port |
Result | The rank of the matrix. | Output | Analog 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 name | Description | Exposed property | Direction | Type |
---|---|---|---|---|
Input matrix | Contains the matrix from which rows will be removed. | False | Input | Matrix port |
Row 1 - N | Contains the zero based row index of the row to remove from the matrix. | True | Input | Matrix port |
Matrix | Contains the matrix with the rows specified removed. | False | Output | Matrix 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:
- Single Matrix: The selected rows are exposed in one common matrix
- 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 name | Description | Exposed property | Notes | Direction | Type |
---|---|---|---|---|---|
Input matrix | Contains the matrix from which rows will be selected. | False | Input | Matrix port | |
Row 1 - N | Contains the zero based row index of the row to select from the matrix. | True | Input | Matrix port | |
Matrix | Contains the matrix with the selected rows. | False | Only exists when the Output type property is Single Matrix | Output | Matrix port |
Selected Row 1 - N | Contains the selected row in a matrix. | False | Only exists when the Output type property is Individual Matrices | Output | Matrix 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 name | Description | Direction | Type |
---|---|---|---|
Scalar | The scalar argument to be multiplied with the matrix. | Input | Analog port |
Matrix | The matrix argument to be multiplied with the scalar. | Input | Matrix port |
Result | Contains the resulting matrix. | Output | Matrix 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 name | Description | Exposed property | Direction | Type |
---|---|---|---|---|
Input matrix | Contains the matrix for which elements will be set. | False | Input | Matrix port |
Element 1 to N | The value of the first element. | False | Input | Analog port |
Element 1 to N Row | The row index of the n'th element which will be set. | True | Input | Analog port |
Element 1 to N Column | The column index of the n'th element which will be set. | True | Input | Analog port |
Result | Contains the matrix with the specified element values set. | False | Output | Matrix 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 name | Description | Direction | Type |
---|---|---|---|
Input Matrix | The matrix for which singular value decomposition will be performed. | Input | Matrix port |
U | The U vector. | Output | Matrix port |
S | The sigma matrix which will contain the singular values. | Output | Matrix port |
V | The V vector. | Output | Matrix 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 name | Description | Direction | Type |
---|---|---|---|
Minuend | Contains the minuend value. (The minuend is C in the equation: C - B = A) | Input | Matrix port |
Subtrahend | Contains the subtrahend value. (The subtrahend is B in the equation: C - B = A) | Input | Matrix port |
Difference | Contains the difference between the minuend and the subtrahend. | Output | Matrix 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 name | Description | Direction | Type |
---|---|---|---|
Argument 1 to N | Contains the arguments which will be summed. | Input | Matrix port |
Result | Contains the summed value of the inputs. | Output | Matrix 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 name | Description | Direction | Type |
---|---|---|---|
Input Matrix | Contains the matrix which will be transposed. | Input | Matrix port |
Result | Contains the transposed matrix. | Output | Matrix 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 name | Description | Exposed property | Direction | Type |
---|---|---|---|---|
Digital signal | The digital signal which triggers the output signal. | False | Input | Digital port |
High time | The amount of time the output signal is high after the input has gone high. | True | Input | Analog port |
Lasting signal | The output digital signal which will stay high for the amount of time specified in the High time property/port. | False | Output | Digital 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 name | Description | Direction | Type |
---|---|---|---|
Pulse signal | The component will count the number of times this signal has gone from low to high since the last reset. | Input | Digital port |
Reset | Resets the count. | Input | Digital port |
Result | Contains the number of times the input signal has gone from low to high since the last reset. | Output | Digital 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 name | Description | Direction | Type |
---|---|---|---|
Digital signal | A delayed pulse will be emitted to the output when the input goes from low to high. | Input | Digital port |
Delayed signal | The delayed pulse. | Output | Digital 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 name | Description | Exposed property | Direction | Type |
---|---|---|---|---|
Digital signal | The digital input signal. | False | Input | Digital port |
Delay | The amount of time after the input signal has gone high, the output signal will go high. | True | Input | Analog port |
Delayed signal | The output digital signal. | False | Output | Digital 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 name | Description | Exposed property | Direction | Type |
---|---|---|---|---|
Digital signal | The digital input signal. | False | Input | Digital port |
Delay | The amount of time after the input signal has gone low, the output signal will go low. | True | Input | Analog port |
Delayed signal | The output digital signal. | False | Output | Digital 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 name | Description | Exposed property | Direction | Type |
---|---|---|---|---|
Active | If true the component will generate a square pulse. | False | Input | Digital port |
High time | The amount of time output is high. | True | Input | Analog port |
Low time | The amount of time output is low. | True | Input | Analog port |
Square pulse | The square pulse output. | False | Output | Digital 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 name | Description | Direction | Type |
---|---|---|---|
Argument 1 to N | Contains the arguments which will be AND'ed. | Input | Digital port |
Result | If all the inputs are true, the output becomes true. | Output | Digital 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 name | Description | Direction | Type |
---|---|---|---|
Signal | The signal from which bits are selected. | Input | Analog port |
Bit 0 to N | The output is high if the bit at the indicated position is 1. | Output | Digital 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 name | Description | Direction | Type |
---|---|---|---|
Argument 1 to N | Contains the arguments which will be AND'ed. | Input | Analog port |
Result | Contains the result of the bitwise AND. | Output | Analog 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 name | Description | Direction | Type |
---|---|---|---|
Input signal | The digital signal will be inverted. | Input | Digital port |
Result | The inverted signal. | Output | Digital 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 name | Description | Direction | Type |
---|---|---|---|
Argument 1 to N | Contains the arguments which will be OR'ed. | Input | Digital port |
Result | If one or more of the inputs are true, the output becomes true. | Output | Digital 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 name | Description | Direction | Type |
---|---|---|---|
Set | When this signal becomes true the output becomes true if the Reset signal is low. | Input | Digital port |
Reset | The output signal will become low when the Reset becomes high. | Input | Digital port |
Result | The output signal will become high when the Set signal is high. The output remains true until the Reset signal becomes high. | Output | Digital 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 name | Description | Direction | Type |
---|---|---|---|
Argument 1 | The first input to the XOR operation. | Input | Digital port |
Argument 2 | The second input to the XOR operation. | Input | Digital port |
Result | The output becomes false when both inputs are true or both are false. Otherwise the output is true. | Output | Digital 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 name | Description | Exposed | Direction | Type |
---|---|---|---|---|
Value | The value which will be compared to the high and low limits. | False | Input | Analog port |
High value | Contains the high value limit. If the value is higher than this value the High indicator port becomes true. | True | Input | Analog port |
Low value | Contains the low value limit. If the value is lower than this value the Low indicator port becomes true. | True | Input | Analog port |
High indicator | Becomes true if the value is higher than the High value. | False | Output | Digital port |
Low indicator | Becomes true if the value is lower than the Low value. | False | Output | Digital 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 name | Description | Direction | Type |
---|---|---|---|
Digital multiplexer signal 1 to N | Controls which input signal is propagated to the output. | Input | Digital port |
Signal 1 to 2N | The input signals which can be propagated to the output. | Input | The port type will become whatever the SignalType property indicates. |
Result | The selected input signal. | Output | The 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 name | Description | Notes | Direction |
---|---|---|---|
Signal 1 to N | Contains the values which will be compared. | The port type will become whatever the SignalType property indicates. | Input |
Equal | True if the inputs are equal | The 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 name | Description | Exposed | Direction | Type |
---|---|---|---|---|
Input value | The value which will be limited. | False | Input | Analog port |
High limit | Contains the high value limit. If the value is higher than this value the output becomes this limit. | True | Input | Analog port |
Low limit | Contains the low value limit. If the value is lower than this value the output becomes this limit. | True | Input | Analog port |
Result | Contains the limited value. | False | Output | Analog 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 name | Description | Direction | Type |
---|---|---|---|
Input value | Contains the value which will be filtered. | Input | Analog port |
Reset | If the value is true the filtered value will reset. | Input | Digital port |
Hold | If the value is true the filtered value will be held constant. | Input | Digital port |
Result | Contains the filtered value. | Output | Analog 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 name | Description | Direction | Type |
---|---|---|---|
Multiplexer | Controls 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. | Input | Analog port |
Signal 1 to N | The input signal which can be propagated to the output. | Input | The port type will become whatever the SignalType property indicates. |
Result | The selected input signal. | Output | The 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 name | Description | Exposed | Direction | Type |
---|---|---|---|---|
Ramp from | The value to ramp from | True | Input | Analog port |
Ramp to | The value to ramp to | True | Input | Analog port |
Change rate per second | The change rate in value/second | True | Input | Analog port |
Reset | The output is set to the 'Ramp from' value, and ramping is started from here when 'Reset' goes false | True | Input | Digital port |
Hold | The state is frozen | True | Input | Digital port |
Ramped signal | The ramped signal | True | Output | Analog 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 name | Description | Exposed | Direction | Type |
---|---|---|---|---|
Mean value | The mean value of the values being generated. | True | Input | Analog port |
Standard deviation | The standard deviation of the values being generated. | True | Input | Analog port |
Active | If true random values will be generated. | False | Input | Digital port |
Result | Contains the random value. | False | Output | Analog 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 value | Description |
---|---|
Rising flank | Sampling occurs when the trigger signal goes from false to true. |
Falling flank | Sampling occurs when the trigger signal goes from true to false. |
Flanks | Sampling occurs when the trigger signal goes from false to true and from true to false. |
High | Sampling occurs as long as the trigger signal is true (high). |
Low | Sampling occurs as long as the trigger signal is false (low). |
Ports
Port name | Description | Direction | Type |
---|---|---|---|
Input value | The input signal which will be sampled. | Input | The port type will become whatever the SignalType property indicates. |
Sample Trigger | The trigger signal will control when the sampling occurs. | Input | Digital port |
Result | The sampled value. | Output | The 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:
- Write - triggers on persisting a snapshot, writeState.
- Read - triggers on loading a snapshot, readState.
- Both - triggers on both persisting and loading a snapshot.
Ports
Port name | Description | Exposed | Direction | Type |
---|---|---|---|---|
Disable | If true, no events will be signaled | True | Input | Digital port |
Snap event | Gives a positive flank if the chosen event occurs | True | Output | Digital 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 name | Description | Notes | Direction |
---|---|---|---|
Input signal | Contains the value which will be delayed. | The port type will become whatever the SignalType property indicates. | Input |
Delayed signal | Contains the delayed signal | The 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 name | Description | Notes | Direction |
---|---|---|---|
Input signal | Contains the value which will be delayed. | The port type will become whatever the SignalType property indicates. | Input |
Delayed signal | Contains the delayed signal | The 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 name | Description | Direction | Type |
---|---|---|---|
Depends on the input type | The input which will trigger a pulse when changed. | Input | Depends on the input type. |
Trigger | The output boolean signal which becomes true when input changes. | Input | Digital 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 name | Description | Direction | Type |
---|---|---|---|
AddString | Contains the string which will be added to the vector. | Input | String port |
LastIndex | Contains the index of the newest inserted string to the vector. | Output | Analog port |
ResultString | Contains the vector of the strings added. | Output | String 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 name | Description | Direction | Type |
---|---|---|---|
String 1 - N | Contains the string vector which will be concatinated to the vector. | Input | String vector port |
Activate | The concatination will be performed when the value of this port is true. | Input | Digital port |
AppendedString | Contains the concatinated vector of the input string vectors. | Output | String 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 name | Description | Direction | Type |
---|---|---|---|
MainVector | Contains the string vector which will be compared. | Input | String vector port |
ComparatorVector | Contains the comparator vector. | Input | String vector port |
AppendedString | Contains the concatinated vector of the input string vectors. | Output | String 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 name | Description | Direction | Type |
---|---|---|---|
StringVector | Contains the string vector from which an element will be picked. | Input | String vector port |
Active | If true the element will be picked. If false the previously picked element will be exposed. | Input | Digital port |
ResultString | The element of the string vector. | Output | String 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 name | Description | Direction | Type |
---|---|---|---|
Vector | Contains the string vector which will be reversed. | Input | String vector port |
Reversed Vector | The reversed string vector. | Output | String 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 name | Description | Direction | Type |
---|---|---|---|
String | Contains the string which will converted either to lower or upper case. | Input | String port |
ConvertedString | The converted string. | Output | String 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 name | Description | Direction | Type |
---|---|---|---|
MainString | The string in which the ContainString must be contained for the output to become true. | Input | String port |
ContainString | The string which will be tested if it is contained in the main string. | Input | String port |
Result | True if the ContainString is contained in the MainString as specified in the Requirement property. | Output | Digital 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 name | Description | Direction | Type |
---|---|---|---|
Compare string 1 to N | Contains the strings which will be compared. | Input | String port |
Equal | True if the input strings are equal. | Output | Digital 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 name | Description | Exposed property | Direction | Type |
---|---|---|---|---|
MainString | The string which will be tested if contains the IndexOfString. | False | Input | String port |
IndexOfString | The sub string which will be tested if is contained the MainString. | False | Input | String port |
FromIndex | The index from where the MainString is searched. | True | Input | Analog port |
IndexOf | The index of the IndexOfString in the MainString. | False | Output | Analog 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 name | Description | Direction | Type |
---|---|---|---|
String | The string for which the length is found. | Input | String port |
Length | The length of the input string. | Output | Analog 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 name | Description | Exposed property | Direction | Type |
---|---|---|---|---|
String | The string for which the regular expression is matched. | False | Input | String port |
Regular Expression | The regular expression against which the input string is matched. | True | Input | String port |
Match | True if the string matches the regular expression. | False | Input | Digital 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 name | Description | Exposed property | Direction | Type |
---|---|---|---|---|
String | The string for which substring(s) matching the regular expression will be replaced with the ReplacementString. | False | Input | String port |
ReplacementString | The string which will replace the substring(s) which matches the regular expression in the string. | False | Input | String port |
Regular Expression | The regular expression against which the input string is matched. | True | Input | String port |
ResultString | The resulting string. | False | Input | String 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 name | Description | Direction | Type |
---|---|---|---|
Active | If true the time output will continuously be found. | Input | Digital port |
CurrentTime | The UTC time given in milliseconds since 1/1 1970. | Output | Analog 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 name | Description | Direction | Type |
---|---|---|---|
Time | The UTC time given in milliseconds since 1/1 1970. | Input | Analog port |
Year | The year of the input time. | Output | Analog port |
Month | The month of the input time. | Output | Analog port |
DayOfMonth | The day of month of the input time. | Output | Analog port |
DayOfWeek | The day of week of the input time. | Output | Analog port |
Hour | The hour of the input time. | Output | Analog port |
Minute | The minute of the input time. | Output | Analog port |
Second | The second of the input time. | Output | Analog port |
Milli-second | The milli-second of the input time. | Output | Analog 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 name | Description | Direction | Type |
---|---|---|---|
Time | The UTC time given in milliseconds since 1/1 1970. | Input | Analog port |
Formatted-time | The string representing the time. | Output | String 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):
Double | Boolean | String | Double vector | Double matrix | String vector | |
---|---|---|---|---|---|---|
Double | No conversion | If the boolean is true the double value becomes 1.0, else the double value is 0.0 | The 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. |
Boolean | If the double value is larger than 0.0 the boolean value becomes true, else the value becomes false. | No conversion | If 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. |
String | The string value becomes the textual non-localized value. | The string value becomes true if the boolean is true, other wise it becomes false. | No conversion | The 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 vector | The 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 conversion | The 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 matrix | The 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 conversion | The 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 vector | The 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 name | Description | Direction | Type |
---|---|---|---|
Input value | The input value which will be converted to the specific output type | Input | Depends on the Input type property |
Result | The converted input value. | Output | Depends 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 name | Description | Direction | Type |
---|---|---|---|
Message | Contains the message which will be reported. | Input | String port |
ReportActive | If true the message will be reported. | Input | String 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 name | Description | Direction | Type |
---|---|---|---|
InValue | The input value which will be the source of the output. | Input | Depends on the Signal type property |
OutValue | The output value value. | Output | Depends 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:
- Info - All events are reported
- Warning - Warnings and Alarms are reported
- Alarm - Alarms are reported
- 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:
- Info - All events are reported
- Warning - Warnings and Alarms are reported
- Alarm - Alarms are reported
- 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. The identifiers of material in a specific process unit are exposed.
- Tracker process unit. The identifiers of material in a specific tracker process unit are exposed.
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. This parser interprets Schmid SEDAC MTL documents.
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:
- FIRST. The equipment location is the first location inside the serial aggregate. Enter transactions such as MaterialEnter and MaterialGroupEnter are registered normally while exit transactions such as MaterialExit and MaterialGroupExit are reduced to pure RegisterMaterialAttributes or RegisterMaterialGroupAttributes transactions.
- INTERMEDIATE. The equipment location is intermediate inside the serial aggregate. Movement transactions such as MaterialEnter, MaterialGroupEnter, MaterialExit and MaterialGroupExit are reduced to pure RegisterMaterialAttribute or RegisterMaterialGroupAttribute transactions.
- LAST. The equipment location is the last location inside the serial aggregate. Exit transactions such as MaterialExit and MaterialGroupExit are registered normally while enter transactions such as MaterialEnter and MaterialGroupEnter are reduced to pure RegisterMaterialAttributes or RegisterMaterialGroupAttributes transactions.
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
RoleID | Role name |
---|---|
1 | Input |
2 | Output |
4 | Check-in |
8 | Check-out |
32 | Run manager |
64 | Time manager |
128 | Performance manager |
512 | Scrap output |
1024 | Scrap input |
65537 | Default input |
65538 | Default output |
65540 | Default check-in |
65544 | Default check-out |
65568 | Default run manager |
65600 | Default time manager |
65664 | Default performance manager |
131073 | Control input |
131074 | Control output |
262145 | Internal input1 |
262146 | Internal output1 |
66048 | Default Scrap output |
66560 | Default Scrap input |
The RoleID's are bit patterns. The bits of these patterns are defined by the following table:
Bit | Description |
---|---|
0 | Input |
1 | Output |
2 | Check-in |
3 | Check-out |
5 | Run manager |
6 | Time manager |
7 | Performance manager |
9 | Scrap output |
10 | Scrap input |
16 | Default |
17 | Control |
18 | Internal1 |
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:
- Use the genealogy to locate the newest downstream tracking material of the trace given by the entry point tracking material.
- 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.
- 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.
- 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:
- Convert from EU1 to QEU (Quantity Engineering Unit)
- 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.
State | StatusCode | NativeBit | Description |
---|---|---|---|
Idle | 8388608 | 23 | Idle 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 |
Created | 65569 | 16 | When 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. |
Active | 131171 | 17 | When 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. |
Paused | 262241 | 18 | When the run is paused, data capturing is stopped until the run is resumed. |
Ready | 1048616 | 20 | When 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. |
Finished | 16777264 | 24 | The finished state is used when the run requires post processing. The finished state indicates that the post processing is finished. |
Canceled for restart | 2097444 | 21 | When 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
Bit | Meta state |
---|---|
0 | Active in tracker |
1 | Running |
2 | Canceled |
3 | Ready |
4 | Finished |
5 | Created |
6 | Started |
7 | Failure |
8 | Regret |
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:
- The material that is being produced or that has been produced by a single execution of a batch process
- 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:
- Create a process unit run in the tracker process unit that allocate the batch membership.
- Connect at batch to the run
- Use the web control "BatchRunTransaction" with the connect operation or
- Insert a valid BatchID to the batch id control port of the tracker process unit.
- 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:
- Use the BatchRunTransaction web control and the disconnect transaction or
- 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.
- A new IdentValue will be created, and the value will be the same as the batch name.
- A new row will be inserted in the BatchRunMembership table. This row will include the IdentValueID from the point 1.
- 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.
- The BatchRunMembership table is updated with an EndTime.
- 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.
- An ordinary Disconnect operation will be performed.
- The quality code of the corresponding row in the BatchRunMembership table is set to invalid.
- 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.
- An ordinary RemoveMaterialReferences operation will be performed.
- 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:
Bit | Name | Description |
---|---|---|
0 (0x01) | PERSISTED | The entity is persisted to the database. |
1 (0x02) | OK | The data quality of the entity is ok. |
2 (0x04) | BAD | The data quality of the entity is bad. |
4 (0x10) | FICTITIOUS | The entity is forced into the database manually and waiting for the tracker to load it into the tracker application. |
5 (0x20) | INTERTRACKEROPERATION | The 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) | TESTBIT | The entity is a test entity. All normal clients shall handle this entity as if it was not found in the database. |
14 (0x4000) | INVALIDBIT | The 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:
- Native transaction id (mandatory)
- Event time (mandatory)
- Equipment location name (mandatory)
- Attributes
- Quality (optional)
- Article (optional)
- Identifiers (mandatory) One identifier is necessary in order to identify the material to enter.
- Data (optional)
- Attribute keys (optional)
- Amount (optional) If not provided, the amount 1.0 will be assumed.
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:
- Native transaction id (mandatory)
- Event time (mandatory)
- Equipment location name (mandatory)
- Attributes
- Quality (optional)
- Article (optional)
- Identifiers (mandatory) One identifier is necessary in order to identify the material to exit.
- Data (optional)
- Attribute keys (optional)
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:
- Native transaction id (mandatory)
- Event time (mandatory)
- Equipment location name (mandatory)
- Attributes
- Quality (optional)
- Article (optional)
- Identifiers (mandatory) One identifier is necessary in order to identify the material for which to register attributes.
- Data (optional)
- Attribute keys (optional)
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:
- Native transaction id (mandatory)
- Event time (mandatory)
- Equipment location name (mandatory)
- Attribute key (mandatory)
- Attributes
- Quality (optional)
- Article (optional)
- Identifiers (optional)
- Data (optional)
GroupMaterial
The GroupMaterial message is used to register group membership for a discrete material entity residing at a specific equipment location.
Message content:
- Native transaction id (mandatory)
- Event time (mandatory)
- Equipment location name (mandatory)
- Attributes
- Identifiers (mandatory) Two identifiers are necessary, the identifier of the material and the group identifier identifying the material as a part of the group.
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:
-
Native transaction id (mandatory)
-
Event time (mandatory)
-
Equipment location name (mandatory)
-
Identifiers (mandatory) The group identifier is mandatory, and if the tracking identifier is to be changed, the new tracking identifier must also be provided.
MaterialGroupRelease
The MaterialGroupRelease message is used to remove all materials from a material group.
Message content:
-
Native transaction id (mandatory)
-
Event time (mandatory)
-
Equipment location name (mandatory)
-
Identifiers (mandatory). One identifier identifying the group is necessary.
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:
- Native transaction id (mandatory)
- Event time (mandatory)
- Equipment location name (mandatory)
- Attributes
- Quality (optional)
- Article (optional)
- Identifiers (mandatory) One identifier is necessary in order to identify the material group to enter.
- Data (optional)
- Attribute keys (optional)
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:
- Native transaction id (mandatory)
- Event time (mandatory)
- Equipment location name (mandatory)
- Attributes
- Quality (optional)
- Article (optional)
- Identifiers (mandatory) One identifier is necessary in order to identify the material group to exit.
- Data (optional)
- Attribute keys (optional)
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:
- Native transaction id (mandatory)
- Event time (mandatory)
- Equipment location name (mandatory)
- Attributes
- Quality (optional)
- Article (optional)
- Identifiers (mandatory) One identifier is necessary in order to identify the material group.
- Data (optional)
- Attribute keys (optional)
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:
- Native transaction id (mandatory)
- Event time (mandatory)
- Equipment location name (mandatory)
- Attributes
- Identifiers (mandatory) Two identifiers are necessary, the original tracking identifier and the new tracking identifier.
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:
- Native transaction id (mandatory)
- Event time (mandatory)
- Equipment location name (mandatory)
- Equipment state (mandatory)
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...