Commit dca006ac authored by Claes Sjofors's avatar Claes Sjofors

New Operator's Guide

parent ef20fe50
<topic> __DocumentTitlePage
<image> pwr_logga.gif
<h1> Operator's Guide
<hr>
2009-08-04
Version 4.7.0
<hr>
</topic>
<topic> __DocumentInfoPage
Copyright 2009 SSAB Oxelösund AB
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
Texts.
</topic>
<option> printdisable
<topic> index
Operators Guide
<image> pwr_logga.gif
<h1>Operators Guide
Introduction <link> opg_introduction
About Proview <link> opg_proview
The Operator Place <link> opg_opplace
Alarm and Events <link> opg_events
Curves <link> opg_curves
Help <link> opg_help
Navigator <link> opg_navigator
Plc Trace <link> opg_trace
Setup script <link> opg_setupfile
Users and Privileges <link> opg_security
Function Keys <link> opg_functionkeys
Xtt Commands <link> help command
Script <link> script
Index <index>
</topic>
<option> printenable
<chapter>
<topic> opg_introduction
Introduction
Proview Operator's Guide is intended for persons who will be in contact with running
Proview systems in their daily work. It could be
- operators that supervises and handles a process.
- maintenance personnel troubleshooting the plant.
- processengineer fetching information about the process.
- system managers maintaining and debugging the system.
Function for all these groups are available in the ordinary operator environment, and who
belongs to a certain group are determined from the privileges the user is granted.
</topic>
</chapter>
<chapter>
<topic> opg_proview
About Proview
<h1>What is Proview
Proview is a modern, powerful and general process control system. It contains all the
functions normally required for successful sequential control, adjustment, data
acquisition, communication, supervision, HMI/SCADA, history data storage etc.
Proview is a distributed system, it consists of a number of computers (nodes) connected
in a network. The nodes can be of type process station, operator station or storage
station.
<option> printdisable
<b>Stations <link>opg_stations
<b>Objects <link>opg_object
<option> printenable
</topic>
<headerlevel>
<topic> opg_stations
Stations
<h2>Process stations
A process station collects measuring data from different sensors and switches, it can be
analog measuring data as temperatures, flows, levels, or digital measuring data from
for example photocells or pressure switches. A control program is executed in the process
station, that from the measuring data calculates control data for the process that is sent
out to motors and actuators affecting the process.
Process stations often contains a special hardware to read input data and write output data,
but this can also be performed over the network with protocols as Modbus/TCP and Profinet.
<h2>Operator station
The operator stations is the interface between the operator and the process. The operator
supervises the process with the help of process graphs, displaying the state of the process
by presenting data in the shape of bars, curves, indicators etc. The operator can influence
the process, for example by entering data in input fields or pushing buttons in the process
graph.
<h2>Storage station
Some measuring data has to be stored, in order to view trends and changes, or to be able
to get back and analyze the state of the process at a certain point of time. The storage
time can vary from hours to several years. The storage is done on storage stations, that
has sufficient disk space to be able to store data for long periods, and also have backup
functions.
<h2>Development station
There can also be development stations on the network, where process, operator and storage
stations are configured and programmed. On the development stations there are tools to draw
process graphs, program sequences, logical schemas and control loops etc. When the
configuration is modified for a station, the new configuration is distributed to the station
via the network.
<image>opg_fig1.png
<b>Fig Components in a Proview system
</topic>
<topic>opg_object
Objects
<h1>The object tree
Object is a central concept in Proview. Sensors, valves, motors, controllers etc. are all
represented by objects in a database. The objects are ordered in a tree structure where
different hierarchy levels in the tree represents parts of the plant or process. If we look
at a furnace, the top level can represent the whole furnace. The furnace consists of four
warming zones, which are represented by objects on the next level in the object tree. Each
zone has two electric heaters and two temperature sensors, still one level down. Here are
also some objects that doesn't have any physical equivalent in the plant, a PID controller
and a control program for the zone.
<image>opg_fig2.png
<b>Fig Furnace with 4 zones
<image>opg_fig3.png
<b>Fig Object tree for the furnace
Note that several objects have quite cryptic names that follows a notation standard, but to
each object there are a more detailed description that is often viewed with the object.
Let us have a closer look at an object, for example one of the temperature sensors. The
object is shown in an overview process graph with the graphical symbol of the object, a
triangle with the letter T.
<image>opg_fig4.png
<b>Fig Graphical symbol for a temperature sensor
<h2>Object graph
If you click on the symbol the object graph of the object is opened. From the object graph
you can se the properties or the object. The most interesting for a temperature sensor is
of course the measured temperature, that is viewed both in figures and as a bar
(thermometer), see 'Fig Object graph for temperature sensor' below. The temperature sensor
object also contains four alarm limits, highhigh, high, low and lowlow. The level of the
alarm limits can be set from the graph, and also a hysteresis on the limits. With check
boxes you can also disable the alarm limits.
<image>opg_fig5.png
<b>Fig Object graph for a temperature sensor
<h2>Methods
In the upper edge of the object graph there are a number of pushbuttons that activates the
methods of the object. By the methods you can reach all the information there is on the
objects in the control system. The methods can also be activated from the menu in the
objects graph, or by rightclicking on graphical symbol in the overview graph, opening a
popup menu with the methods. Actually, wherever you find the object, in alarm lists,
process graphs, in the plc code etc. you can by right clicking on the object open the popup
menu with the methods or the object. Here follows a list of different methods, but which
methods are relevant for a specific object, depends on the type of object and how it is
configured.
<b>Method <t>Description
Object Graph <t>Open the object graph.
Trend <t>Open a trend curve.
History <t>Fetch history data from a storage station and view in a curve.
Hist Event <t>View a historical list of alarms and events for the object.
Block Events <t>Block alarms and events.
Help <t>View a help text for the object.
Note <t>Write a note for the object. The note is viewed in the object graph.
Open Object <t>Show the content of the object.
RtNavigator <t>Show the object in the object tree.
Crossreferences <t>Show were the object is references in the plc code an graphs.
Help Class <t>View help for this object type.
Datasheet <t>Show the datasheet for the component in the plant that corresponds
<t>to the object.
CircuitDiagram <t>Show the circuit diagram for the object.
</topic>
</headerlevel>
</chapter>
<chapter>
<topic>opg_opplace
Operator place
<b>Start the operator environment <link>opg_startop
<b>Operator window <link>opg_opwindow
</topic>
<headerlevel>
<topic> opg_startop
Start the operator environment
Usually the operator environment will be started automatically at login of the workstation.
In the login configuration a operator place object is added to the starting command. In
the operator place object the properties of the operator place are configured.
At times though, you may want to start another way, for example from a terminal window.
The operator environment is started by the program rt_xtt, and you specify an OpPlace object
as argument. The command to start with the OpPlace object Nodes-OpgNode-b55 is
<c>> rt_xtt Nodes-OpgNode-b55
There are also a number of options that can be added to the argument list
-l <t>Language. One the following languages is specified:
<t>en_us English (default).
<t>sv_se Swedish.
<t>de_de German.
<t>fr_fr French.
-q <t>The license window is not opened at startup.
-c <t>A pushbutton to close the operator environment is shown in the operator window.
-u <t>Start with a opplace object with the same name as the current linux user.
-s <t>Displays a list of available OpPlace objects.
</topic>
<topic>opg_opwindow
The Operator Window
<image>opg_fig6.png
<b>Fig The operator window
The operator window is placed at the upper edge of the screen, and lacks title row and
pushbuttons to iconify and delete the window. It is divided in tree parts, to the left
current alarms and messages are viewed, in the middle there are pushbuttons for some base
functions, and to the left there are pushbuttons configured for this operator place.
<h2>Alarms and messages
In the left part of the operator window alarm and messages are displayed.
The alarms are divided into four priority levels A, B, C and D, where A has the highest
priority and D the lowest. A alarms are marked red, B alarms yellow, C alarm blue and D
alarm violet. Further more there is the category Info messages that are marked with green.
In the upper field, the latest unacknowledged A alarm are displayed. Dependent on the height
of the operator window, 2 to 5 alarm is viewed. There are also a button marked with a tick
to acknowledge A alarms.
In the lower field the latest unacknowledged B, C, D alarms, and info messages are viewed.
These alarm are displayed in priority order rather than in chronological order, i.e. if
there are unacknowledged B alarms, the latest of these will be displayed. Only if there are
no acknowledged B alarms, possible C alarms are viewed etc. There is also an acknowledge
button to acknowledge the B, C, D alarms and the info messaged.
An alarm is prevailing if the alarm condition still is fulfilled. This is marked with a
warning triangle to the left of the alarm text.
<h2>Pushbuttons to open base function.
On the top row there are a number of icons, The two first will increase or decrease the
size of the alarm text. The third opens the help window with the helptexts of the project.
The fourth opens the navigator, and the fifth closes the operator window (this button is
optional).
Beheath threre are a number of buttons:
- Alarmlist <t>Open the alarm list with prevailing and unacknowledged alarm. <link>opg_alarmlist
- Eventlist <t>Open the event list, a list of the latest alarms and events.<link>opg_eventlist
- Eventlog <t>Open the event log, where you can display stored events. <link>opg_eventlog
- Help <t>Show the help text of the project.
To se the lower buttons you have to change the size of the window. This is performed by the
pushbuttons with arrow up and arrow down. Larger window size will also display some more
A alarms.
<h2>Function buttons
To the right there are a number of pushbuttons that are used to open process graphs or
execute various orders or command. How these buttons are used depends of the configuration
of the operator place.
</topic>
</chapter>
<chapter>
<topic>opg_events
Alarms and Events
<option> printdisable
About alarm and events <link>opg_events_general
Alarmlist <t><t>Displays current alarms.<link>opg_alarmlist
Eventlist <t><t>Displays the latest alarms and events. <link> opg_eventlist
Eventlog <t><t>Search for alarms and events in the event database. <link> opg_eventlog
Blocklist <t><t>Displays blocked alarms and hierarchies. <link> opg_blocklist
Block alarms <link> opg_blockingwindow
<option> printenable
</topic>
<headerlevel>
<topic>opg_events_general
About alarm and events
<h1>Alarms
Alarms are sent to the operator station when something occurs that operator has to pay
attention to. It could be a temperature crossing a limit, or a bad value entered in a
process graph. In Proview there are special supervision objects that supervise signals
and generates alarm.
Alarm are viewed in the alarmlist.<link>opg_alarmlist
<h2>Priority
The alarms are grouped in four priority levels, A, B, C and D, where A is the highest
priority and D the lowest. How the priority levels are used, depend on the configuration
of the system. It is common that the alarm priorities are used in the following way.
A alarms are marked with red. They have the highest priority and indicates that a serious
error in the plant has occurred that immediately should be taken care of. Often is causes
a stop in the production as long as the alarms are prevailing.
B alarms are marked with yellow. They have a little lower priority, implying an error that
that should soon be taken care of, but the production can continue still some time.
C alarms are marked with blue and D alarm with violet. They indicates minor errors that
are not acute. In many system two alarm levels are enough, and only A and B alarm are used.
<h2>Alarmtext
Alarms contains a text, that is viewed in alarm and event lists. This text is in one row
and maximum 80 characters long. There are also room for a longer text, a moretext, that
for example, can contain further explanation of the cause of the alarm, och how it should
be taken care of. The moretext is displayed in the alarm and event lists if the cursor
are placed on the alarmtext.
<h2>Acknowledge
An alarm has to be acknowledged by the operator. As long as the alarm is unacknowledged, it
remains in the alarmlist and gives rise to a beep. If an alarm is displayed on several
operator places it is enough for one of the operators to acknowledges the alarm.
<h2>Blocking
If an alarm is not relevant during a period, it is possible to block the alarm. You can,
for example, block the alarms for a part of the plant that is not in production. The
blocking can be preformed on a separate alarm object, or for a hierarchy. Blocking is a
method of an object, and preformed from a blocking window that is opened from the popup
menu for the object. Only users that are granted the privilege RtEvents are allowed
to block alarms.
Blocked objects are displayed in a blocklist. <link>opg_blocklist
<h2>Messages
Info messages is a group that has the same functionality as alarms. They have lower
priority than alarms and is marked with green.
<h1>Events
An event is generated in the same way as alarms, by supervision objects. Also alarms
generates events. Activation of an alarm is counted as an event, and also are the return
of the alarm state and the acknowledgement of the alarm.
Events are stored in en eventlist, that contains the latest events. They are also stored
in the event log, where you can go back and look at events for some period of time, and
also see event statistics. For the eventlog there is a search dialog, where you can search
for events with certain search criteria, for example time, eventtype or eventname.
<h2>Selectlist
The operator place have a selectlist that contains a list of plant parts in the object tree.
Only alarm from these plant parts will be viewed in the alarm and event lists. The other
alarms and events are filtered away.
</topic>
<topic>opg_alarmlist
Alarmlist
<image>opg_fig7.png
<b>Fig Alarmlist
The alarmlist is opened by activating the "Alarmlist" button in the operator window. You can
also open the alarmlist from the menu in the navigator, 'Alarm/Alarm List', or by the xtt
command 'show alarmlist'.
In the alarmlist prevailing and unacknowledged alarms are viewed. Unacknowledged alarms are
marked with a bell and prevailing alarms with a warning triangle. Only alarms from the
plant parts stated in the selectlist is viewed.
The moretext of an alarm is displayed when the cursor i placed on the alarmtext.
Alarms can be acknowledged by activating Functions/Acknowledge (Ctrl+K) in the menu.
If you rightclick on an alarmtext, the methods of the alarm objects are displayed. Thus
making it easy to open the object graph or find where in the plc code the alarm is
generated.
<image>opg_fig10.png
<b>Fig Alarmtext
</topic>
<topic>opg_eventlist
Eventlist
<image>opg_fig8.png
<b>Fig Eventlist
The eventlist is opened from the "Eventlist" button in the operator window. It can also be
opened from the navigator menu or by the command 'show eventlist'.
The events from the plant parts stated in the selectlist are displayed in the eventlist.
The maximum number of events are configured in the User object. When the maximum number
of events is reached, old events are removed when new arrives.
For each event is viewed
- Color indication for alarm priority.
- Event type.
- Time of event.
- Event text.
- Event name (object/signal name).
The moretext for an event is viewed when the cursor is placed on the event text. If you
rightclick on the eventtext, the methods of the objects are displayed. Thus making it easy
to open the object graph or find where in the plc code the alarm is generated.
</topic>
<topic>opg_eventlog
Eventlog
The eventlist has a limited length and displays only the latest event. All events though are
stored in a database, the eventlog. From this it is possible to look at events for a longer
period of time.
As the number of stored events often are several thousands, you search for the events you
are interested in with different search criteria. The events matching the search critiera are
diplayed in a list.
<h1>Search criteria
<h2>Time
On the upper row you can specify a time interval or the search. State requested interval
with the optionsmenu to the right. If you select 'Time' the time interval i inserted into
the input fields.
<h2>Eventtype
An eventtype is specified. If no type is selected, all types are present in the search.
- Active <t>The event that an alarm is activated.
- Message <t>An info message.
- Return <t>An alarm returns from active state.
- Ack <t>En alarm is acknowledged.
<h2>Priority
Search for alarm with a specific priority. If no priority is selected, the search is made
for all priorities.
<h2>Eventname
Name of the object the event is connected to. Wildcard (*) is allowed, for example F1-Z1*
will search for all events in the hierarchy F1-Z1. If no object name is supplied, all
objects are searched for.
<h2>Eventtext
Search for en event text. Wildcard (*) is allowed. If no text is specified, all texts are
searched for.
When the search criteria are stated, the 'Search' pushbutton i pressed. The search is
performed and the result is presented in a list in the lower part of the window.
<image>opg_fig9.png
<b>Fig Eventlog
In the list of events an event is displayed with
- Priority <t>The priority is marked with color and a letter.
- Eventtype <t>Active is marked with an exclamation mark, Return with an crossed-out
<t>exclamation mark and Ack with a tick.
- Eventtext
- Eventname
If you rightclick on a row the methods of the eventname objects are displayed.
</topic>
<topic>opg_blocklist
Blocklist
<image>opg_fig12.png
<b>Fig Blocklist
The list of blocked alarms is opened from the menu in the navigator, Alarm/Blocket Alarms,
or by the xtt command 'show blocklist'.
For each blocked objects are displayed:
- Color indicating the blocked priority level.
- Object name.
- User that has made the blocking.
A blocking is removed by selecting the blocking and activating Functions/Remove Blocking in
the menu.
Alarm blocking is preformed by the 'Block Events' method for en object. <link>opg_blockingwindow
</topic>
<topic>opg_blockingwindow
Alarm blocking
<image>opg_fig11.png
<b>Fig Dialog for alarm blocking
Alarm blocking are activated by that 'Block Events' method, i.e. from the popup menu for an
object, or with the xtt command 'eventlist block'.
The window is used to block alarms for an object. All alarms with the specified priority,
and with lower priorities, are blocked for the object and all its descendants.
The priority is specified by radio buttons. You can also remove a blocking by the
'No Blocking' button.
Only users with the privilege 'RtEvent' or 'System' are authorized to block alarms.
</topic>
</headerlevel>
</chapter>
<chapter>
<topic> opg_curves
Curves
<option> printdisable
Trends <link> opg_trends
Fastcurves <link> opg_fastcurves
Process history <link> opg_history
<option> printenable
</topic>
<headerlevel>
<topic> opg_trends
Trends
Trendcurves are opened from the 'Trend' method in for example the popup menu. They can
also be opened by the Xtt command 'open trend'. Trend curves are configured by DsTrend
objects and, if several curves are viewed in the same curve window, by PlotGroup objects.
A trendcurve is a signal value, for example of type temperature, pressure or flow, that
is stored with a specific time interval. A trendcurve can store 478 values, and for how
long period of time values can be stored, depends on the time interval. If a new value is
stored every second, totally 8 minutes can be stored, and with a new value every minute,
eight hours can be stored. The values are stored in the RAM memory, and will be lost at
a reboot.
The trendcurves are viewed in a curve window. A curve window can display 20 different
curves.
<image> opg_fig31.png
<b>Fig Trendcurves
In the upper part of the curve window views a table over the curves. The first column is
a color indication to identify the corresponding curve.
Description of columns in the table
View <t>A checkbox from which you can choose to view or hide the curve.
Cursor <t>Shows the curve value where the cursor is placed.
Mark <t>Shows the curve value where the marker i placed.
Unit <t>Displays the unit of the curve.
Scale <t>From 'Scale' you can change the scale i y direction (Scale on
<t>the Time axis row changes i x direction).
Attribute <t>States the attribute of the trend curve.
<h2>Navigation
The tool panel contains buttons to zoom and move the view to the left or to the right.
You can also navigate with tne navigation window in the lower part of the window. The part
of the curve that is displayed is marked with a black square. With drag MB1 you kan move
the view in x direction, and by dragging the middle button you can zoom in and out.
Navigation from the keyboard is accomplished with the arrow keys. With arrow up and down
the zoom factor is changed, and arrow left and right moves the view to the left and to the
right.
</topic>
<topic> opg_fastcurves
Fastcurves
Fastcurves are opened from the 'Fast' method in for example the popup menu. They can
also be opened by the Xtt command 'open fast'. Fastcurves are configured by DsFastCurve
objects and, if several curves are viewed in the same windows, by PlotGroup objects.
Fastcurves are used to display fast sequences during a shorter period of time. The
storage of the fastcurve is started by a trigger signal and continues a specific time. When
the sequence is finished the curve is viewed, and remains on the screen until the
trigger signal is set again and activate a new recording of the sequence.
The fastcurves are viewed in a curve window. A curve window can display 20 different
curves.
<image> opg_fig37.png
<b>Fig Fastcurve
</topic>
<topic> opg_history
Process history
Process history is opened from the 'History' method in for example the popup menu. It can
also be opened by the Xtt command 'open history'. The history is configured by SevHist
objects.
Process history means that the value of a signal, for example of type temperature, pressure
or flow, is stored in a database with a specific frequency during a period of time.
The history can extend over several years and the number of values for one signal can
reach several millions.
<image> opg_fig34.png
<b>Fig Process history
In the upper part of the curve window views a table over the curves. The first column is
a color indication to identify the corresponding curve.
Description of columns in the table
View <t>A checkbox from which you can choose to view or hide the curve.
Cursor <t>Shows the curve value where the cursor is placed.
Mark <t>Shows the curve value where the marker i placed.
Unit <t>Displays the unit of the curve.
Scale <t>From 'Scale' you can change the scale i y direction (Scale on
<t>the Time axis row changes i x direction).
Attribute <t>States the attribute of the trend curve.
<h2>Navigation
The tool panel contains buttons to zoom and move the view to the left or to the right.
You can also navigate with tne navigation window in the lower part of the window. The part
of the curve that is displayed is marked with a black square. With drag MB1 you kan move
the view in x direction, and by dragging the middle button you can zoom in and out.
Navigation from the keyboard is accomplished with the arrow keys. With arrow up and down
the zoom factor is changed, and arrow left and right moves the view to the left and to the
right.
<h2>Resolution
As the number of values for an attribute can reach several millions, only a fraction of the
values are viewed in the curve. When first opening the curve, the whole time range is
viewed with a couple of hundred points. To gain higher resolution you use the arrow up
and arrow down buttons in the tool panel. Arrow up will zoom in and increase the resolution,
i.e. new values are fetched in a smaller time interval. Arrow down will zoom out and
decrease the resolution.
</topic>
</headerlevel>
</chapter>
<chapter>
<topic> opg_help
Help window
<h1>Getting help
The help function can be opened in a number of different ways.
<h2>Operator window
In the middle part of the operator window there is a help button that opens the help texts
for the project.
<h2>The Navigator menu
The menu entry Help/Overview gives help on Proview and the operator environment.
Help/Project gives help on the project.
<h2>Command
A help text is opened by the Xtt command 'help'. To help you add the topic you are
interested in. The command 'help help' shows for example how you use help.
<h2>Object methods
For an object there are two help methods.
- Help, views help for the object or plant part.
- Help Class, views information about the object class.
<h2>Help and info buttons in process graphs
Pushbuttons in process graphs can be connected to helptexts. These are usually marked
with a question mark or an 'I'.
<image> opg_fig36.png
<b>Fig Help buttons
<h1>Navigate in the help text
Rows with links are marked with an arrow in the left edge of the row.
The first row is a link to the previous topic.
<h2>Navigate from the keyboard
With PageUp and PageDown you can scroll up and down in the text.
Links are followed by selecting the link row with the arrow up and down buttons, and the
press arrow right.
Arrow left returns to the previous page.
Ctrl+N views the next topic, and Ctrl+P the previous topic. Ctrl+A returns to the start
page.
<h2>Navigate with the mouse
To follow a link, click on the arrow, or double click on the row.
By clicking on the arrow in the first row, you return to the previous page.
<image> opg_fig35.png
<b>Fig Help window
</topic>
</chapter>
<chapter>
<topic> opg_navigator
Navigator
The navigator, also called Xtt, is started from the 'Navigator' button in the operator
window. It can also be started as a separate program, independent of the operator
environment. This is useful at maintenance or troubleshooting of the system. You then start
from a terminal window.
<image> opg_fig14.png
<b>Fig The navigator menu
The figure above shows the navigator menu. The upper map, 'This Project' in configurable
and can contain a map structure that is specific for the project, and by default it is
missing. The other maps though are always present.
Database <t><t>Shows the object tree and the objects in the database<link>opg_nav_database
Alarm / Alarm List <t><t>Opens the alarm list. <link>opg_alarmlist
Alarm / Event List <t><t>Opens the event list. <link>opg_eventlist
Alarm / Blocked Alarms <t><t>Shows the list of blocked alarms. <link>opg_blocklist
Alarm / Historical List <t><t>Shows the event log.<link>opg_eventlog
Store <t><t>Shows stored collection pictures.
System / Nethandler / Link <t><t>Shows links to other Proview systems. <link>opg_nav_link
System / Nethandler / Subscription Client <t><t>Shows subscriptions (client). <link>opg_nav_subcli
System / Nethandler / Subscription Server <t><t>Shows subscriptions (server). <link>opg_nav_subsrv
System / Communication / RemNode <t><t>Shows remote communication (nodes) <link>opg_nav_remnode
System / Communication / RemTrans <t><t>Shows remote communication (transactions) <link>opg_nav_remtrans
System / Device <t><t>Shows I/O devices <link>opg_nav_device
System / PlcThread <t><t>Shows Plc threads <link>opg_nav_thread
System / PlcPgm <t><t>Shows PlcPgm objects. <link>opg_nav_plcpgm
System / Logging <t><t>Dialog to start logging of data. <link>opg_nav_logging
System / System Messages <t><t>Views system messages. <link>opg_nav_systemmsg
System / System Status <t><t>Views system status for the node.<link>opg_nav_systemsts
System / Nodes <t><t>Shows the status graph for nodes. <link>opg_nav_nodes
System / Volumes <t><t>Shows loaded volumes. <link>opg_nav_volumes
Close <t><t>Close the navigator.
<h1>Navigate
<h2>Navigate from the keyboard
The most ergonomic way to navigate in the map structure is to use the arrow keys. With
Arrow Up and Arrow Down you select a map or a leaf. With Arrow Right you open a map and
with Arrow Left you close.
An object in the database is opened by Shift Arrow Right, i.e. you first press the Shift
button and keep it down while pressing the Arrow Right key. If the object doesn't have
any children, it is enough to press Arrow Left.
If you have the privilege RtWrite it is possible to change attribute values in the database.
By opening an object, selecting an attribute and pressing Arrow Right, an input field is
opened where a new value can be entered.
<h2>Navigate with the mouse
Of course you can also navigate with the mouse. A map is opened by clicking on the map
(or doubleclicking on the text). Then you close by clicking on the map again.
An object in the database is opened by pressing the Shift key and click on the map/leaf
for the object.
<h1>Commands
From Functions/Command in the menu, or Ctrl+B, a command prompt is opened in the bottom row
of the navigator. Here you can enter commands and execute scripts. Available commands are
described in the chapter Commands and script in the chapter Script.
<option> printdisable
Commands <link>help command
Script <link> script
<option> printenable
<h1>Collection view
By Functions/Collect/Show, Ctrl+N, you look at collected objects and attributes. At trouble
shooting you often need to look at a number of different attributes simultaneously. By
traversing the object tree and collecting attributes with Functions/Collect/Insert, Ctrl+V,
and the activating Functions/Collect/Show these attributes are viewed on one page.
A collection view can be saved to a later session by the 'save' command. To save a collection
view with the name 'mycollection' you write the command
<c>> save/collect mycollection
<image> opg_fig15.png
<b>Fig A collection view stored with the name 'mycollection'
The name can be found in the 'Store' map, and can also be restored by the command
<c>> @mycollection
</topic>
<headerlevel>
<topic> opg_nav_database
Database
<image> opg_fig13.png
<b>Fig The object tree from the navigator
Under the map 'Database' the object tree is shown. Here you can navigate in the object
three, open objects and examine the content of different attributes i the object. If
you have privileges, you can also change attribute values.
If you rightclick on an object, an popup menu with the object methods is opened. Buttons
to activate the methods of the objects are also found in the lower tool panel in the
navigator. Only methods that are valid for an object are sensitive.
<image> opg_fig16.png
<b>Fig Methods can be activated both from the tool panel and the popup menu
</topic>
<topic> opg_nav_link
System / Nethandler / Link
The map 'System / Nethandler / Link' shows links to other Proview stations. The current
station is also viewed in the list.
In the figure below you can see that the local node aristotle has contact with the node
pwrutv.
<image> opg_fig17.png
<b>Fig Links to other nodes
Description of the columns in the table
Node <t>Nodename
Os <t>Operating system and hardware for the node.
Link <t>Link status. Can be Up, Active, Connected, Down or Local.
UpCount <t>The number of times the link is established.
TimeUp <t>Time for the last establishment of the link.
</topic>
<topic> opg_nav_subcli
System / Nethandler / Subscription Client
Shows the subscriptions the current node has to other stations.
When an operator station displays data from process stations in an process graph, a
subscription on each data viewed in th graph is created. This implies that the process
stations at regular intervals sends new data to the operator stations, which updates the
process graph with the new data.
If there is a field in a process graph that is not updated. you can enter the Subscription
Client table to see if the subscription i present and if it is updated. Each time new data
arrives for a subscription, 'Count' increments and the time is inserted in 'Time'.
In 'Unknown' on the top row, you can see the number of subscriptions where the attribute
is unknown. This can be subscriptions to a station that is not yet running, but it can
also be subscriptions that is misspelt, or to objects that no longer exist.
<image> opg_fig19.png
<b>Fig Subscription client
Description of the columns
Subid <t>The subscription identity.
Time <t>Latest arrival of subscription data.
Count <t>Number of times data has been received.
Node <t>Node sending subscription data.
Size <t>Size in bytes of subscription data.
Attribute <t>Database attribute for the subscription.
</topic>
<topic> opg_nav_subsrv
System / Nethandler / Subscription Server
The list shows subscriptions other stations have requested from the current node, i.e.
subscription sent cyclically from the current node to other nodes, usually from process
stations to operator stations.
<image> opg_fig18.png
<b>Fig Subscription server
Description of the columns
Subid <t>The subscription identity.
Count <t>Number of times data has been sent.
Node <t>Node to whom subscription data is sent.
Size <t>Size in bytes of subscription data.
Offset <t>Offset in the object from where data is fetched.
Attribute <t>Database attribute for the subscription.
</topic>
<topic> opg_nav_remnode
System / Communication / RemNode
Displays a list of nodes that the current node communicates with via Remote.
Remote is a function to send data between nodes. Nodes communicating with each other are
configured by RemNode objects, and transactions that are sent between the nodes are
configured by RemTrans objects. A number of different protocols for the data exchange are
supported, Modbus, MQ, Serial, TCP, UDP, 3964R and ALCM.
<image> opg_fig20.png
<b>Fig List of RemNodes
Description of the columns
RemNode <t>Name of the RemNode object, only the two last name segments are displayed.
Type <t>Type of communication, Modbus, MQ, Serial, TCP, UDP, 3964R or ALCM.
Description <t>Optional description.
By selecting a RemNode and pressing the Arrow Right key, the RemTrans objects for the
node are viewed (you can also click on the map).
By Shift/Arrow Right the RemNode object is opened.
</topic>
<topic> opg_nav_remtrans
System / Communication / RemTrans
Shows a list of all RemTrans objects.
A RemTrans object specifies a transaction sent between two node by the Remote function.
The transaction implies that the current node receives or sends data.
<image> opg_fig21.png
<b>Fig List of RemTrans-objecs
Description of the columns
RemTrans <t>Name of the RemTrans object, only the two last name segments are shown.
DataValid <t>States that data that is not yet sent is present (when sending) or
<t>that received data that has not been taken care of is present.
Direction <t>Direction of the transaction, Snd (send) or Rcv (receive).
TransCnt <t>Number of sent or received transactions.
TransTime <t>Time for the last transaction.
ErrCount <t>Number of unsuccessful transactions.
LastSts <t>Status for the last transaction.
By selecting a transaction and press the Arrow Right key, the content of the transaction
is viewed (you can also click on the map). If the attribute StructFile is supplied with
the include file containing the data structures for the transactions, the data content is
viewed in text en clair.
By Shift/Arrow Right the RemTrans object is opened.
</topic>
<topic> opg_nav_device
System / Device
Shows a list of I/O devices.
The I/O system in Proview is divided into four levels, agent, rack, card and channel.
In the device list, all the card objects are displayed.
<image> opg_fig22.png
<b>Fig List of I/O units
Description of the columns
Device <t>Name of device object. Only the two last name segments are viewed.
Class <t>Card object class.
ErrorCount <t>Counter for read or write failures.
Process <t>Process handling the card. 1: plc, 2 io_comm.
PlcThread <t>Plc thread handling the card.
Address <t>Address configured for the card.
By selecting a device and press the Arrow Right key the channels of the device are
displayed (you can also click on the leaf).
</topic>
<topic> opg_nav_thread
System / PlcThread
Displays a list of threads in the plc program.
Different plc programs are running with different priority and cycletime. They are
connected to PlcThread objects that determines the priority and cycletime for the
execution.
<image> opg_fig23.png
<b>Fig List of plc threads.
Description of the columns
PlcThread <t>Name of thread object.
Prio <t>Thread priority.
LoopCnt <t>Counter of number of cycles since Proview startup.
ScanTime <t>Configured cycletime.
Mean <t>Meanvalue of measured cycletime.
Coverage <t>The execution time for the thread in proportion to the cycletime in percent.
Count 1/8 <t>Number of cycles where the execution time is less than 1/8 of the cycle
<t>time.
Count 1/4 <t>Number of cycles where the execution time is less than 1/4 of the cycle
<t>time and larger than 1/8.
Count 1/2 <t>Number of cycles where the execution time is less than 1/2 of the cycle
<t>time and larger than 1/4.
Count 1/1 <t>Number of cycles where the execution time is less than the cycle
<t>time and larger than half the cycletime.
</topic>
<topic> opg_nav_plcpgm
System / PlcPgm
Displays a list of all PlcPgm objects.
A PlcPgm object contains plc code controlling plant part, or executing other types of
calculations. The PlcPgm object is connected to a thread object specifying the priority
and cycletime.
<image> opg_fig24.png
<b>Fig List of PlcPgm objects
Description of the columns
PlcPgm <t>Name of PlcPgm object.
PlcThread <t>Plc thread the object is connected to.
Description <t>Optional description.
PlcTrace for a PlcPgm is opened by selecting the PlcPgm object and press Ctrl+L.
Arrow Right key will display all the windows in the plc program.
</topic>
<topic> opg_nav_logging
System / Logging
With the logging function it is possible to log signals and values in the database to
a text file. The content of the textfile can be viewed in a curve window, or imported
to for example Calc or Excel.
Maximum 100 attributes can be logged in one logfile, and there are 10 entries, where each
entry handles one logfile.
Start the logging
- Collect the attributes that it to be logged, into the collection view, for example by
finding and selecting the attributes in the database and press Ctrl+V.
- Check with Ctrl+N that the correct attributes are present in the collection view.
<image> opg_fig25.png
<b>Fig Attributes collected in the collection view
- Open Logging entry 1 (System / Logging / Logging Entry 1).
- Click on the 'Insert' button, The attributes are now transferred from the collection view
to the list of attributes in the logging entry.
- Specify cycle time in ms, and filename if needed.
- Start the logging by clicking on the 'Start' button.
<image> opg_fig26.png
<b>Fig Logging entry with logging started
- When the logging is complete, you click on the 'Stop' button. Note that you must not
terminate the navigator during the period of time the logging is active. Though you can
leave the loggentry page.
- Look at the logging result in the curve window by activating 'ShowFile'.
<image> opg_fig27.png
<b>Fig Logging viewed as a curve
There are two types of logging. Either it value of the attributes are logged continuously
with a certain frequency (continuous logging), or an attributes is logged every time its
value is changed (event triggered logging).
<h2>Continuous logging
The values of the attributes in the entry are logged every cycle. In the file also the time
since the logging started is written. The file can be viewed in the Xtt curve window
from 'ShowFile' or imported to a spreadsheet program.
<h2>Event triggered logging
An attribute in the entry is logged if the value of the attribute is changed. Into the
logfile the time of the change, and the new value is written. This type of logging can
not be viewed from 'ShowFile'.
<h2>Buffer
The logging is first written into an intern buffer. When the buffer is full it is written
to file. At fast time critical sequences, you can increase the buffer size to avoid
interruption when the buffer i written to file.
<h2>Conditional logging
In 'ConditionParameter' a digital attribute controlling the logging can be specified. The
logging is only performed when the ConditionParameter is true.
<h2>Store
The logging configuration is stored with the 'Store' button, and can be restored later
with the 'Restore' button.
</topic>
<topic> opg_nav_systemmsg
System / System Messages
The Proview system logg contains information, warning and error messages, written by the
server processes of the system. Also applications can write to the system log by using
the errh interface.
Messages in the loggfile has different degrees of severity. The severity is marked with
a letter and color:
F <t>red <t>Fatal, the most serious type of error message.
E <t>red <t>Error.
W <t>yellow <t>Warning.
I <t>green <t>Information.
S <t>green <t>Success.
Also the Proview startup is marked with a yellow colored row.
Above all you should notice red messages implying something is wrong in the system.
<image> opg_fig28.png
<b>Fig System log
</topic>
<topic> opg_nav_systemsts
System / System Status
The system status displays a list of nodes in the system, and by opening a node the
status graph for the node is shown.
The most interesting in the graph is the SystemStatus. This is an indication of the
condition of the system. If system status is green, its OK, if it is yellow or red,
something is wrong in the system.
The color markings has the same severity as in the System log above, i.e.
F <t>flashing red <t>Fatal.
E <t>red <t>Error.
W <t>yellow <t>Warning.
I <t>green<t>Information.
S <t>green <t>Success.
<t>gray <t>Null status. The function is not activated.
The system status is a summary status for the system and application processes. Below
system status there is a list of all these processes, and the status for each process
is displayed. Furthermore is the latest or most severe system message in the system log
from the processes displayed.
If the system status is for example yellow, this implies that some system or application
process has a yellow status. Usually by reading the status text and look in the system log
is is possible to figure out what the error is.
rt_ini <t>Initialization <t>Startup process starting the system. Also handles the system log.
rt_qmon <t>QCom monitor <t>Handles the communication with other nodes.
rt_neth <t>Nethandler <t> Handles exchanged of database information between nodes.
rt_neth_acp <t><t>Utility process for the nethandler.
rt_io <t>I/O <t>Process for I/O handling that is asynchronous with the plc program.
rt_tmon <t>Timer monitor <t>Handles sending or subscriptions.
rt_emon <t>Event monitor <t>Handles alarms and events.
rt_bck <t>Backup process <t>Handles backup of attributes and objects.
rt_linksup <t>Link supervision <t>Supervision of links to other nodes.
rt_trend <t>Trend process <t>Handles storing of trend curves.
rt_fast <t>Fast process <t>Handles storing of fast curves.
rt_elog <t>Event log <t>Handles event logging.
rt_webmon <t>Web monitor <t>Supplies the web interface with database information.
rt_webmonmh <t>Web mh monitor <t>Supplies the web interface with alarms and events.
rt_sysmon <t>System monitor <t>Supervises the system.
plc <t>Plc process <t>Handles I/O and executes the plc code.
rs_remote <t>Remote process <t>Handles remote communication.
opc_server <t>Opc server process.
rt_statussrv <t>Status server <t>Webservice for the runtime monitor and supervision center.
</topic>
<topic> opg_nav_volumes
System / Volumes
Displays the loaded volumes.
For each volume is viewed: name, class, version and an letter combination LCM where L
means loaded, C cached and M mounted.
<image> opg_fig30.png
<b>Fig Loaded volumes
</topic>
</headerlevel>
</chapter>
<chapter>
<topic> opg_trace
Plc trace
Plc trace is a tool to study and debug the plc code.
Trace is opened from the method 'Open Plc', or from a crossreference in the Plc code.
You can also open trace by selecting a PlcPgm in the navigator and activate
'Functions/OpenProgram' (Ctrl+L) in the menu.
To the left there are a navigation window where the displayed area is marked with a
square. By moving the square with drag MB1 you move the displayed area. You can also
zoom by dragging with the middle button.
Digital objects with height status are marked with red in the code.
<image> opg_fig32.png
<b>Fig Plc Trace
You can look at the value of analog or digital outputs by creating so called analyze nodes.
They are created by dragging with the middle button from the output.
A set of analyze nodes can be stored and restored by 'File/Save Trace' and
'File/Restore Trace' in the menu.
When rightclicking on an object the methods of the objects are displayed. A very useful
method in this context is crossreferences, The crossreferences are also displayed when
doubleclicking on the object.
<h1>Crossreferences
The crossreferences are a list of the places an object or attribute occur in the code or
in process graphs. If the reference implies reading the value, it is marked with a book,
if it implies writing the value, it is marked with a pen. Reading can be that the value
is displayed in a graph or fetched in the plc code. A write reference can be a pushbutton
in a graph or a Set or Sto object in the plc code.
<image> opg_fig33.png
<b>Fig Crossreferences
By rightclicking on the crossreference, the plc or process graph the reference is pointing
at is opened. On plc references you can open with doubleclick. When Plc Trace is opened
the reference is marked and centered.
<h1>Debugging with Plc Trace and Crossreferences
Plc Trace and Crossreferences are a very efficient tool for troubleshooting.
A troubleshooting often starts out from an alarm or error indication in a process graph.
By activating the methods 'Crossreferences' or 'Open Plc' you find the place or places in
the code where the object is written. By analysing the code you conclude which signal
is missing, open the crossreferences for this and open PlcTrace where it is written. In
this way you can search in the code and finally find the cause of the problem.
<h1>Simulation
At simulation, i.e. when testing a system without the I/O system, you can set PlcTrace
in simulate mode with 'Mode/Simulate' in the menu. In simulate mode you can toggle
digital signals by clicking with Ctrl/Shift MB1 on them in the Plc Trace window.
</topic>
</chapter>
<chapter>
<topic> opg_setupfile
Setup script
A setup script can be created on the home directory with the name
<c>xtt_setup.rtt_com
This will be executed when the operator environment (or Xtt) is started, and can
contain script statements and xtt commands.
Here are some examples of useable commands.
<b>Open a graph
<c> open graph my_graph
<b>Create a maintenance menu in the navigator
<c> create item/text="Maintenance"/menu/destination="DataBase"/before <LINK> create item
<c> create item/text="My graph"/command="open graph my_graph"/pixmap=graph
<c> /dest=Maintenance/first
<b>Remove menu items from the standarde menu of the navigator
<c> delete item /name=exit <LINK> delete item
<c> delete item /name=system-nethandler
<b>Short command for an hierarchy in the database
<c> define rb9 "show children /name=hql-rb9" <LINK> define
<b>Short command for a graph
<c> define my_graph "open graph my_graph"
</topic>
<headerlevel>
<topic> opg_symbol
Symbol
An xtt symbol can be used as a short command or a variable in a command.
If the symbol is used as a variable in a command in should be surrounded
by apostrophes.
Symbols are created by the define command. <link> define
Example of a symbol used as a short command
<c>xtt> define p1 "show child/name=hql-hvk-pumpar-pump1"
<c>xtt> p1
Example of a symbol used as a variable
<c>xtt> define p1 hql-hvk-pumpar-StartPump1
<c>xtt> open trace 'p1'
</topic>
</headerlevel>
</chapter>
<chapter>
<topic> opg_security
Users and privileges
Proview contains a system with users that are granted privileges. To perform specific tasks
certain privileges are needed, and only if the user has this privileges he is allowed
to perform them.
The following privileges are used in the operator environment:
RtRead <t>Read authority in runtime.
RtWrite <t>Write authority in runtime. Authorized to change values of attributes from the
<t>navigator.
RtEvents <t>Privilege to handle alarm and event.
System <t>System manager privilege. Authorized for most things.
Maintenance <t>Privilege for maintenance personnel.
Process <t>Privilege for process engineer.
Instrument <t>Privilege for instrument technician.
Operator1 <t>Privilegie for operator.
Operator2 <t>Privilegie for operator.
Operator3 <t>Privilegie for operator.
Operator4 <t>Privilegie for operator.
Operator5 <t>Privilegie for operator.
Operator6 <t>Privilegie for operator.
Operator7 <t>Privilegie for operator.
Operator8 <t>Privilegie for operator.
Operator9 <t>Privilegie for operator.
Operator10 <t>Privilegie for operator.
<h1>Users
When the operator environment or Xtt is started, you login either as a user, or you
are assigned the default privileges stated in the Security object.
If the startup is made with an OpPlace object, the user is fetched from the UserName
attribute in the User object. If a user is missing or invalid an login window is opened
and the user has to login with username and password.
If Xtt is started without OpPlace object, the privileges are fetched from the attribute
DefaultXttPriv in the Security object. If there are no privileges that gives read
authority, the login window is opened.
<b>Navigator
To make changes in the database from the navigator, RtWrite or System privileges are
required. This is also valid for the command 'set parameter'.
<b>Plc Trace
To make changes in the database from PlcTrace in simulate mode, RtWrite or System are
required.
<b>Object graphs
Generally the privileges RtWrite or System are required to make changes in the database
from an object graph. There are though some exceptions. In ChanAi and ChanAo also
Instrument has authority to change signal ranges, and to set an Ao in test mode. In the
PID and Mode graphs, Process are authorized to change beside RtWrite and System. In the
Mode graph you can further more control the authority by opening the graph with the
command 'open graph' and use the /access option.
<b>Process graphs
In the process graphs the designer chooses for each input field or pushbutton which
privileges are required to make a change.
</topic>
</chapter>
<chapter>
<topic> opg_functionkeys
Function keys
You can use the function keys as shortcuts to open graphs or influence objects in the
database.
<h1>Function calls
The following functions can be called when an function key is pressed.
<h2>SetDig()
Sets an attribute of type Boolean. The name of the attribute are specified as argument.
<h2>ResDig()
Resets an attribute of type Boolean. The name of the attribute are specified as argument.
<h2>ToggleDig()
Toggles an attribute of type Boolean. The name of the attribute are specified as argument.
<h2>Command()
Executes a Xtt command. The command is specified as an argument.
<h1>Setup file
The connection between the keys and the functions are specified in the file Rt_Xtt on the
login directory. In the file there are one row for each key. On the row i written
- Possible modifiers (Shift, Control or Alt).
- <Key> followed by the name of the key, e.g. <Key>F7 or <Key>m.
- a colon followed by the function that is to be called with arguments.
A '#' sign in the first position denotes a comment.
<b>Example
<c>#
<c># Configuration of Global function keys
<c> <Key>F5: Command(event ack /prio=A)
<c> <Key>F6: Command(event ack /prio=NOA)
<c> <Key>F7: Command(show alarm)
<c> <Key>F8: Command(show event)
<c> <Key>F9: Command(close all/except=navigator)
<c> Shift Control <Key>m: SetDig(F1-Start.ActualValue)
<c> Shift Control <Key>n: SetDig(F1-Stop.ActualValue)
<c> Shift Alt <Key>n: SetDig(F1-Reset.ActualValue)
</topic>
</chapter>
<chapter>
<TOPIC> help command
Xtt commands
add parameter<t>Add an attribute to a picture <LINK> add parameter
add menu <t>Add a menu item to a xtt menu <LINK> add menu
collect <t>Add an attribute to collect list <LINK> collect
call method <t>Call a xtt method for an object <LINK> call method
check method <t>Call a xtt method filter for an object <LINK> check method
collect show<t>Show the collect list <LINK> collect show
collect clear<t>Clear the collect list <LINK> collect clear
close alarmlist <t>Close alarmlist <LINK> close alarmlist
close eventlist <t>Close eventlist <LINK> close eventlist
close graph <t>Close a graph <LINK> close graph
close navigator <t>Close the navigator <LINK> close navigator
create item <t>Create a menu item <LINK> create item
crossreference<t>Show crossreferenses <LINK> crossreference
exit <t>close xtt <LINK> exit
define <t>Define a symbol <LINK> define
delete item <t>Delete a menu item <LINK> delete item
help <t>Display help <LINK> help
login <t>User login <LINK> login
logout <t>User logout <LINK> logout
logging <t>Logg attributes to file <LINK> logging
open graph <t>Open a graph <LINK> open graph
open jgraph <t>Open a java graph <LINK> open jgraph
open fileview <t>Open a fileview <LINK> open fileview
open trend <t>Open DsTrend or PlotGroup graph <LINK> open trend
open operatorwindow<t>Open the operator window <LINK> open operatorwindow
read object <t>Read the content of an object from file <LINK> read object
search <t>Search for an object or a string <LINK> search
set advanceduser<t>Set advanced user <LINK> set advanceduser
set folder <t>Set a folder in a tabbed window. <LINK> set folder
set parameter<t>Set the value of an attribute <LINK> set parameter
setup <t>Xtt setup <LINK> setup
show version<t>Show xtt version <LINK> show version
show symbol <t>Show a symbol <LINK> show symbol
show plcpgm <t>Show PlcPgm objects <LINK> show plcpgm
show plcthreads<t>Show PlcThread objects <LINK> show plcthreads
show links <t>Show links <LINK> show links
show logfiles<t>Show rtt loggfiles <LINK> show logfiles
show subsrv <t>Show subscription server <LINK> show subsrv
show subcli <t>Show subscription client <LINK> show subcli
show device <t>Show devices <LINK> show device
show remnode<t>Show RemNode objects <LINK> show remnode
show remtrans<t>Show RemTrans objects <LINK> show remtrans
show database<t>Show the runtime database <LINK> show database
show file <t>Show files <LINK> show file
show graph <t>Show graph-files <LINK> show graph
show time <t>Show current time <LINK> show time
show default<t>Show default directory <LINK> show default
show children<t>Show the children of an object <LINK> show children
show object<t>Show the content of an object <LINK> show object
show objid <t>Show object identity <LINK> show objid
show parameter<t>Show an object attribute <LINK> show parameter
show logging<t>Show a logging entry <LINK> show logging
show eventlist<t>Show the event list <LINK> show eventlist
show alarmlist<t>Show the alarm list <LINK> show alarmlist
show user <t>Show current user <LINK> show user
sound <t>Play a sound defined by a sound object <LINK> sound
store <t>Store an attribute list in a file <LINK> store
write object <t>Write the content of an object to file <LINK> write object
</TOPIC>
<headerlevel>
<TOPIC> call method <style> function
Command call method
Call a xtt method for an object.
Xtt methods are usually activated from the popup menu for an object.
This is an additional way to activate a methods, from a command
pushbutton in a Ge graph.
<B>xtt> call method /method= /object=
/method= <t>the name of the method, i.e. the attribute ButtonName
<t>in the method definition.
/object= <t>the name of the object.
</TOPIC>
<TOPIC> check method <style> function
Command check method
Call a xtt method filter for an object.
Method filter are used to decide whether to display a method button or not.
This command is used to disable a method button in a Ge graph. It returns
the filter value to the caller.
It is only valid in a Ge graph.
<B>xtt> check method /method= /object=
/method= <t>the name of the method, i.e. the attribute ButtonName
<t>in the method definition.
/object= <t>the name of the object.
</TOPIC>
<TOPIC> add parameter <style> function
Command add parameter
Add an attribute to a list of attributes, and display the value of
the attribute.
A list of attributes will be created with the command 'show parameter',
and more attributes can be added to the list with 'add parameter'.
Object that matches the class, name and hierarchy description are displayed
on the screen.
<B>xtt> add parameter /parameter= /name= /class= /hierarchy=
/parameter= <t>the name of the parameter to be displayed.
/name= <t>the name of the object. Wildcard is allowed.
/class= <t>displays objects of this class.
/hierarchy= <t>displays objects below this object in the hierarchy.
<H2>related subjects
show parameter <LINK> show parameter
</TOPIC>
<TOPIC> show parameter <style> function
Command show parameter
Create a new list, add an attributes to the list, and display the value of
the attributes.
More attributes can be added to the list with 'add parameter'.
Object that matches the class, name and hierarchy description are displayed
on the screen.
<B>xtt> show parameter /parameter= /name= /class= /hierarchy=
/parameter= <t>the name of the parameter to be displayed.
/name= <t>the name of the object. Wildcard is allowed.
/class= <t>displays objects of this class.
/hierarchy= <t>displays objects below this object in the hierarchy.
<H2>related subjects
add parameter <LINK> add parameter
</TOPIC>
<TOPIC> set parameter <style> function
Command set parameter
Set the value of an attribute.
<B>xtt> set parameter /name= /value=
/name= <t>the name of the parameter to be set.
/value= <t>value to set.
/bypass= <t>Bypass any access restrictions.
</TOPIC>
<TOPIC> set folder <style> function
Command set folder
Set a folder in a tabbed window object.
<B>xtt> set folder 'graphname' /name= /index=
/name= <t>the name of the tabbedwindow object.
/index= <t>index of tab to set. Starting from 0.
</TOPIC>
<TOPIC> add menu <style> function
Command add menu
Add a menu item to the xtt menu hierarchy.
The menu is placed last in the current menu.
The action of the item can be to execute a xtt
command, or display the attributes of an object.
<B>xtt> add menu /text= /command=
<B>xtt> add menu /text= /object=
/text<t>Text of the menu item.
/command<t>Xtt command to be executed when the item is activated.
/object<t>Object that will be displayed when the item is activated.
<H2>related subjects
create item <LINK> create item
delete item <LINK> delete item
</TOPIC>
<TOPIC> collect <style> function
Command collect
Add an attribute to the collection list.
If the name qualifier is omitted the current
selected attribute will be collected.
<B>xtt> collect
<B>xtt> collect /name=
/name<t>Name of the attribute
Example
xtt> collect /name=hql-hvk-Start.ActualValue
<H2>related subjects
collect show <LINK> collect show
collect clear <LINK> collect clear
</TOPIC>
<TOPIC> collect show <style> function
Command collect show
Display the collect list.
<B>xtt> collect show
<H2>related subjects
collect <LINK> collect
collect clear <LINK> collect clear
</TOPIC>
<TOPIC> collect clear <style> function
Command collect clear
Clear the collect list.
<B>xtt> collect clear
<H2>related subjects
collect <LINK> collect
collect show <LINK> collect show
</TOPIC>
<TOPIC> create item <style> function
Command create item
Create a menu item in the xtt menu hierarchy.
The action of the item can be either to execute
a command, or to open a menu.
<B>xtt> create item /text= /command= /pixmap= /destination= /after /before /firstchild /lastchild
<B>xtt> create item /text= /menu /destination= /after /before /firstchild /lastchild
/text<t>Item text.
/command<t>Xtt command to be executed when the item is activated.
/menu <t>The item will display a menu.
/destination<t>The destination item. Can be the parent or a sibling. If nullstring the
<t>item is created on the top level.
/after <t>Positions the item after the destination item.
/before <t>Positions the item before the destination item.
/firstchild<t>Positions the item as first child of the destination item.
/lastchild<t>Positions the item as last child of the destination item.
/pixmap <t>Pixmap for the item: 'map', 'leaf', 'graph', 'list' or 'script'.
Example
xtt> create item /text="Motor1"/dest=Maintenance-Motors/command="open graph motor1"/first
<H2>related subjects
add menu <LINK> add menu
delete item <LINK> delete item
</TOPIC>
<TOPIC> crossreference <style> function
Command crossreference
Show crossreferences.
Crossreferences can be displayed for
- Signals.
- Object references with GetData.
- c-functions or strings used in the code of CArithm- or DataArithm-objects.
If qualifiers are omitted the selected object will be examined.
<B>xtt> crossreference
<B>xtt> crossreference /name=
<B>xtt> crossreference /function= [/brief]
<B>xtt> crossreference /string= [/brief]
/name <t> Name of an object.
/function<t>Name of a c-function referenced in CArithm or DataArithm.
/string <t> String that will be searched for in the code of CArithm- and DataArithm-object.
Examles
xtt> cross /name=hql-hvk-Start
xtt> cross /function="CreateHvkObject"
</TOPIC>
<TOPIC> exit <style> function
Command exit
Close xtt.
<B>xtt> exit
</TOPIC>
<TOPIC> define <style> function
Command define
Define a symbol.
<B>xtt> define 'symbolname' 'text'
<h2>related subjects
symbol <LINK> symbol
show symbol <LINK> show symbol
symbolfile <LINK> symbolfile
</TOPIC>
<TOPIC> delete item <style> function
Command delete item
Delete a menu item.
The menu item can be created by the user or an item of
the xtt standard configuration.
<B>xtt> delete item /name=
/name<t>Name of the menu item.
Example
xtt> delete item /name=exit
<H2>related subjects
add menu <LINK> add menu
create item <LINK> create item
</TOPIC>
<TOPIC> help <style> function
Command help
Display help information for a subject.
The help information will be searched for in a help file. The
file can be the base helpfile, the project helpfile or another
help file.
If no helpfile is supplied the subject will be searched
for in the base and project helpfiles.
<B>xtt> help 'subject' [/popnavigator] [/bookmark=] [/helpfile=]
<B> [/returncommand=][/width=][/height=]
/popnavigator <t>The help window (the navigator) will be displayed on top of
<t>the other window and gain input focus. This is useful if
<t>the command is used in a ge graph.
/bookmark <t>The name of a bookmark inside the topic. The display will
<t>be positioned at the bookmark.
/helpfile <t>A help file that contains information of the help subject.
/returncommand <t>A command that is executed when returning from the help
<t>subject. This is usually used to return to a main topic when
<t>help is called from a command button in a ge picture.
/width <t>Desired width of the help window.
/height <t>Desired height of the help window.
<H2>related subjects
helpfile <LINK> helpfile
</TOPIC>
<TOPIC> login <style> function
Command login
Login with username an password. The privileges of the user will be
fetched from the user database, and affect the access to the system.
<B>xtt> login 'username' 'password'
<H2>related subjects
logout <LINK> logout
</TOPIC>
<TOPIC> logout <style> function
Command logout
Logout a user, and return to the original user.
<B>xtt> logout
<H2>related subjects
login <LINK> login
</TOPIC>
<TOPIC> open graph <style> function
Command open graph
Open a ge graph. The graph can be supplied as a pwg-file or as
a XttGraph object.
<B>xtt> open graph 'filename' /width= /height= /scrollbar /menu /navigator
<B> /instance= /focus= /inputempty
<B>xtt> open graph /object= /focus= /inputempty
/width <t>Width in pixel.
/height <t>Height in pixel.
/scrollbar<t>Scrollbars will be displayed in the graph window.
/menu <t>A menu will be displayed in the graph window.
/navigator<t>A navigator window will be opened.
/object <t>A XttGraph-object. If the namestring begins with '*', * is
<t>replaced by the node object.
/instance <t>Open the class graph for this instance.
/focus <t>Name of a value input object. The object will gain input focus
<t>when the graph is opened.
/inputempty <t>The input label of the input focus object will be empty.
</TOPIC>
<TOPIC> open jgraph <style> function
Command open jgraph
Open a java frame. The java frame can be exported from Ge or drawn in
JBuilder.
<B>xtt> open jgraph 'name'
</TOPIC>
<TOPIC> open fileview <style> function
Command open fileview
Opens a fileview that displays files that matches the specified pattern.
The fileview can be opened in 'Open File' or 'Save File' mode.
In open mode, a file is selected and the selected filename is written to a
string attribute in the database (target). Simultaneously a digital attribute is
set (trigger) to indicate that an open should be performed. The actual opening
can be done by a DataFRead object in the plc, but have to be programmed by the user.
In save mode, a file is selected, or a filename is entered. The filename is
written to a string attribute and a digital signal is set. The actual save
can be performed by a DataFWrite object in the plc.
<B>xtt> open fileview /file= /target= /trigger= /type=save [/ftype=]
<B>xtt> open fileview /file= /target= /trigger= /type=open
/file <t>File pattern, containing wildcard '*', for files that is to be viewed
<t>in the fileview.
/ftype <t>Default file type for input file. If an entered filename (in save mode)
<t>doesn't contain a filetype, the default filetype will be added to the filename.
/target <t>String attribute where the selected filename will be stored.
/trigger <t>Boolean attribute that is set to indicate that a save or open should
<t>be performed.
/type <t>'save' or 'open'
<b>Example
open fileview /file="$pwrp_load/*.txt"/ftype="txt"/target=P1-Sv.ActualValue/trigger=P1-Dv.ActualValue/type=save
</TOPIC>
<TOPIC> open trace <style> function
Command open trace
Open trace for a plc window. If the name qualifier is omitted,
trace will be opened for the selected PlcPgm or PlcWindow.
<B>xtt> open trace [/name=] [/center=]
/name <t>PlcPgm or PlcWindow.
/center <t>Object in the plc-window that will be centered and selected.
<t>Use the last segment of the name.
Examples
xtt> open trace /name=hql-hvk-flow /center=Pid0
</TOPIC>
<TOPIC> open trend <style> function
Command open trend
Open a graph for a DsTrend or PlotGroup object.
<B>xtt> open trend [/name=] [/title=]
/name <t>DsTrend or PlotGroup. Can be a list of DsTrend-objects separated
<t>by comma.
/title <t>Title of graph window.
Examples
xtt> open trend /name=hql-hvk-flow-Trend,hql-hvk-temperature-Trend
</TOPIC>
<TOPIC> open operatorwindow <style> function
Command open operatorwindow
Open the operatorwindow.
<B>xtt> open operatorwindow 'opplace-object'
</TOPIC>
<TOPIC> close graph <style> function
Command close graph
Close a ge graph. The graph can be supplied as a pwg-file or as
a XttGraph object.
<B>xtt> close graph 'filename' /instance=
<B>xtt> close graph /object=
/object <t>A XttGraph-object. If the namestring begins with '*', * is
<t>replaced by the node object.
/instance <t>Open the class graph for this instance.
</TOPIC>
<TOPIC> close alarmlist <style> function
Command close alarmlist
Close the alarmlist.
<B>xtt> close alarmlist
</TOPIC>
<TOPIC> close eventlist <style> function
Command close eventlist
Close the eventlist.
<B>xtt> close eventlist
</TOPIC>
<TOPIC> close navigator <style> function
Command close navigator
Close the navigator.
<B>xtt> close navigator
</TOPIC>
<TOPIC> search <style> function
Command search
Search for an objectname or a string.
<B>xtt> search 'object'
<B>xtt> search /regularexpression 'expression'
<B>xtt> search /next
</TOPIC>
<TOPIC> read object <style> function
Command read object
Read the content of an object from file.
Reads the content of a file, normally created by command 'write object',
and insert the value into the specified object.
<B>xtt> read object /object= /file=
/object <t>Name of object.
/file <t>Name of file to read from.
</TOPIC>
<TOPIC> set advanceduser <style> function
Command set advanceduser
Set or reset advanced user.
<B>xtt> set advanceduser
<B>xtt> set noadvanceduser
<H2>related subjects
advanced user <LINK> advanced user
</TOPIC>
<TOPIC> setup <style> function
Xtt setup
Setup of xtt properies
ConfigureObject <t><t>RttConfigure object.
DefaultDirectory<t><t>Default directory for commandfiles.
Scantime <t><t>Scan time for update fileds.
AlarmMessage <t><t>Display last alarm in the Xtt-message field.
AlarmBeep <t><t>Beep if unacknowleged alarms exist.
AlarmReturn <t><t>Display return events in the eventlist.
AlarmAck <t><t>Display acknowlege events in the eventlist.
SymbolFilename <t><t>Symbolfile. <LINK> symbolfile
Verify <t><t>Verify commandfile execution.
AdvancedUser <t><t>User is advanced. <LINK> advanced user
</TOPIC>
<TOPIC> show version <style> function
Command show version
Show the xtt version
<B>xtt> show version
</TOPIC>
<TOPIC> show symbol <style> function
Command show symbol
Show one symbol, or all symbols
<B>xtt> show symbol 'symbol'<t> <t>Show symbol 'symbol'
<B>xtt> show symbol<t> <t>Show all symbols
<h2>related subjects
define <LINK> define
symbol <LINK> symbol
</TOPIC>
<TOPIC> show plcpgm <style> function
Command show plcpgm
List the PlcPgm-objects in the system.
<B>xtt> show plcpgm
</TOPIC>
<TOPIC> show plcthreads <style> function
Command show plcthreads
Display the PlcThread-objects.
The PlcThreads contains information and statistics for
the plc-threads.
<B>xtt> show plcthreads
</TOPIC>
<TOPIC> show links <style> function
Command show links
Show the links to other proview systems.
<B>xtt> show links
</TOPIC>
<TOPIC> show logfiles <style> function
Command show logfiles
Show the rtt log-files in the current work directory.
A log-file is created by the logging function in rtt or xtt and
has the filetype .rtt_log.
A logfile i opened with double-click, or by selecting the file
and then press return.
<B>xtt> show logfiles
</TOPIC>
<TOPIC> show alarmlist <style> function
Command show alarmlist
Open the alarmlist window.
<B>xtt> show alarmlist
</TOPIC>
<TOPIC> show eventlist <style> function
Command show eventlist
Open the eventlist window.
<B>xtt> show eventlist
</TOPIC>
<TOPIC> show user <style> function
Command show user
Show the current user and his privileges.
<B>xtt> show user
</TOPIC>
<TOPIC> sound <style> function
Command sound
Play a sound defined by a Sound or SoundSequence object.
<B>xtt> sound 'object'
</TOPIC>
<TOPIC> store <style> function
Command store
Store an attribute list to a scrip-file, or store the current
symbol table to a scrip-file.
The generated script-file can be executed from the command-prompt
with @'filename', or it can be found among the script-files in the
menu beneath 'Store'.
If the /collect is used, the attribute-list
will be restored in the collect list.
<B>xtt> store 'filename' [/collect]
<B>xtt> store 'filename' /symbols
/collect <t>The list is restored in the collection list.
/symbols <t>The current symbol table is stored.
</TOPIC>
<TOPIC> show logging <style> function
Command show logging
Show a logging entry.
<B>xtt> show logging /entry=
</TOPIC>
<TOPIC> logging <style> function
Command logging
A number of commands to handle the xtt logging.
logging start <LINK> logging start
logging stop <LINK> logging stop
logging set <LINK> logging set
logging show <LINK> logging show
logging store <LINK> logging store
</TOPIC>
<TOPIC> write object <style> function
Command write object
Write the content of an object to file.
<B>xtt> write object /object= /file=
/object <t>Name of object.
/file <t>Name of file to write to.
</TOPIC>
</headerlevel>
</chapter>
//
// Script
//
<chapter>
<TOPIC> script
Xtt script
execute script <LINK> execute script
datatypes <LINK> datatypes
datatype conversions <LINK> datatype conversions
variable declarations <LINK> variable declarations
operators <LINK> operators
main-endmain <LINK> main-endmain
function-endfunction <LINK> function-endfunction
if-else-endif <LINK> if-else-endif
while-endwhile <LINK> while-endwhile
for-endfor <LINK> for-endfor
break <LINK> break
continue <LINK> continue
goto <LINK> goto
include <LINK> include
printf() <LINK> printf()
scanf() <LINK> scanf()
fprintf() <LINK> fprintf()
fgets() <LINK> fgets()
fopen() <LINK> fopen()
fclose() <LINK> fclose()
exit() <LINK> exit()
verify() <LINK> verify()
time() <LINK> time()
edit() <LINK> edit()
extract() <LINK> extract()
element() <LINK> element()
toupper() <LINK> toupper()
tolower() <LINK> tolower()
translate_filename() <LINK> translate_filename()
xtt-commands <LINK> xtt-commands
GetAttribute() <LINK> getattribute()
GetChild() <LINK> getchild()
GetParent() <LINK> getparent()
GetNextSibling() <LINK> getnextsibling()
GetClassList() <LINK> getclasslist()
GetNextObject() <LINK> getnextobject()
GetObjectClass() <LINK> getobjectclass()
GetNodeObject() <LINK> getnodeobject()
GetRootList() <LINK> getrootlist()
CutObjectName() <LINK> cutobjectname()
MessageError() <LINK> messageerror()
MessageInfo() <LINK> messageinfo()
GetCurrentText() <LINK> getcurrenttext()
GetCurrentObject() <LINK> getcurrentobject()
</TOPIC>
<headerlevel>
<TOPIC> execute script
Execute a script
A script-file will be executed from the command-line with the command
xtt> @'filename'
</TOPIC>
<TOPIC> datatypes
Datatypes
The datatypes are float, int and string.
int <t>integer value.
float <t>32-bit float value.
string <t>80 character string (null terminated).
There are three different tables in which a variable can be declared: local,
global and extern. A local variable is known inside a function, a global is
known in all functions in a file (with include-files), an external is known
for all files executed in a rtt session.
</TOPIC>
<TOPIC> datatype conversions
Datatype conversions
If an expression consists of variables and functions of different datatypes
the variables will be converted with the precedence string, float, int. If
two operands in an expression is of type int and float, the result will be float
If two operands is of type float and string, or int and string, the result will
be string. In an assignment the value of an expression will be converted to the
type of the assignment variable, even if the result is a string and the
variable is of type float or int.
<b>Example
<c>string str;
<c>int i = 35;
<c>str = "Luthor" + i;
The value in str will be "Luthor35".
<c>float f;
<c>string str = "3.14";
<c>int i = 159;
<c>f = str + i;
The value in f will be 3.14159.
</TOPIC>
<TOPIC> variable declarations
Variable declarations
A variable must be declared before it is used.
A declaration consists of
- the table (global or extern, if local the table is suppressed)
- the datatype (int, float or string)
- the variable name (case sensitive)
- equal mark followed by an init value, if omitted the init value is zero or
null-string
- semicolon
Example
int i;
float flow = 33.4;
string str = "Hello";
extern int jakob;
global float ferdinand = 1234;
</TOPIC>
<TOPIC> operators
Operators
The operators have the same function as i c, with some limitations. All
operators are not implemented. Some operators (+,=,==) can also operate on
string variables. Precedence of operators is similar to c.
Operator <t>Description <t>Datatypes
+ <t>plus <t>int, float, string
- <t>minus <t>int, float
* <t>times <t>int, float
/ <t>divide <t>int, float
++ <t>increment, postfix only. <t>int, float
-- <t>decrement, postfix only <t>int, float
>> <t>bits right-shifted <t>int
<< <t>bits left-shifted <t>int
< <t>less then <t>int, float
> <t>greater then <t>int, float
<= <t>less equal <t>int, float
>= <t>greater equal <t>int, float
== <t>equal <t>int, float, string
!= <t>not equal <t>int, float, string
& <t>bitwise and <t>int
| <t>bitwise or <t>int
&& <t>logical and <t>int
|| <t>logical or <t>int
! <t>logical not <t>int
= <t>assign <t>int, float, string
+= <t>add and assign <t>int, float
-= <t>minus and assign <t>int, float
&= <t>logical and and assign <t>int
|= <t>logical or and assign <t>int
</TOPIC>
<TOPIC> main-endmain <style> function
main-endmain
The main and endmain statements controls where the execution starts and stops
If no main and endmain statements will be found, the execution will start
att the beginning of the file and stop at the end.
<b>Example
<c>main()
<c> int a;
<c> a = p1 + 5;
<c> printf( "a = %d", a);
<c>endmain
</TOPIC>
<TOPIC> function-endfunction <style> function
function-endfunction
A function declaration consists of
- the datatype of the return value for the function
- the name of the function
- an argumentlist delimited by comma and surrounded by parenthesis. The
argumentlist must include a typedeclaration and a name for each argument.
The arguments supplied by the caller will be converted to the type of the
to the type declared in the argument list. If an argument is changed inside
the function, the new value will be transferred to the caller. In this way
it is possible to return other values then the return value of the function.
A function can contain one or several return statements. The return will hand
over the execution to the caller and return the supplied value.
<b>Example
<c>function float calculate_flow(float a, float b)
<c> float c;
<c> c = a + b;
<c> return c;
<c>endfunction
...
<c>flow = korr * calculate_flow( v, 35.2);
</TOPIC>
<TOPIC> if-else-endif <style> function
if-else-endif
The lines between a if-endif statement will be executed if the expression
in the if-statement is true. The expression should be surrounded by parentheses.
If an else statement is found between the if and endif the lines between else
and endif will be executed if the if-expression is false.
<b>Example
<c>if ( i < 10 && i > 5)
<c> a = b + c;
<c>endif
<c>if ( i < 10)
<c> a = b + c;
<c>else
<c> a = b - c;
<c>endif
</TOPIC>
<TOPIC> while-endwhile <style> function
while-endwhile
The lines between a while-endwhile statement will be executed as long as the
expression in the while-statement is true. The expression should be surrounded
by parentheses.
<b>Example
<c>while ( i < 10)
<c> i++;
<c>endwhile
</TOPIC>
<TOPIC> for-endfor <style> function
for-endfor
The lines between a for-endfor statement will be executed as long as the
middle expression in the for-statement is true. The for expression consists
of three expression, delimited by semicolon and surrounded by parentheses.
The first expression will be executed the before the first loop, the third
will be executed after every loop, the middle is executed before every loop
and if true another loop is done, if false the loop is leaved.
<b>Example
<c>for ( i = 0; i < 10; i++)
<c> a += b;
<c>endfor
</TOPIC>
<TOPIC> break <style> function
break
A break statement will search for the next endwhile or endfor statement
continue the execution at the line after.
<b>Example
<c>for ( i = 0; i < 10; i++)
<c> a += b;
<c> if ( a > 100)
<c> break;
<c>endfor
</TOPIC>
<TOPIC> continue <style> function
continue
A continue statement will search for the previous while or for statement
continue the loop execution.
<b>Example
<c>for ( i = 0; i < 10; i++)
<c> b = my_function(i);
<c> if ( b > 100)
<c> continue;
<c> a += b;
<c>endfor
</TOPIC>
<TOPIC> goto <style> function
goto
A goto will cause the execution to jump to a row defined by label.
The label line is terminated with colon.
<b>Example
<c> b = attribute("MOTOR-ON.ActualValue", sts);
<c> if (!sts)
<c> goto some_error;
<c> ...
<c>some_error:
<c> say("Something went wrong!");
</TOPIC>
<TOPIC> include <style> function
include
An script include-file containing functions can be included with the
#include statement. The default file extension is '.rtt_com'
<b>Example
<c>#include <my_functions>
</TOPIC>
<TOPIC> printf() <style> function
printf()
int printf( string format [, (arbitrary type) arg1, (arbitrary type) arg2])
<b>Description
Formatted print. C-syntax. Format argument and non, one or two value arguments.
Returns number of printed characters.
<b>Arguments
string <t>format <t>Format.
arbitrary type <t>arg1 <t>Value argument. Optional. Can be int,
<t> <t>float or string.
arbitrary type <t>arg2 <t>Value argument. Optional. Can be int,
<t> <t>float or string.
<b>Example
<c> printf( "Watch out!");
<c> printf( "a = %d", a);
<c> printf( "a = %d och str = %s", a, str);
</TOPIC>
<TOPIC> scanf() <style> function
scanf()
int scanf( string format , (arbitrary type) arg1)
<b>Description
Formatted input. C-syntax
Returns number of read characters.
<b>Arguments
string <t>format <t>Format.
arbitrary type <t>arg1 <t>Value argument. Returned. Can be int,
<t> <t>float or string.
<b>Example
<c> scanf( "%d", i);
</TOPIC>
<TOPIC> fprintf() <style> function
fprintf()
int fprintf( int file, string format [, (arbitrary type) arg1,
(arbitrary type) arg2])
<b>Description
Formatted print on file. C-syntax. Format argument and non, one or two value
arguments.
Returns number of printed characters.
<b>Arguments
int <t>file <t>File id returned by fopen.
string <t>format <t>Format.
arbitrary type <t>arg1 <t>Value argument. Optional. Can be int,
<t> <t>float or string.
arbitrary type <t>arg2 <t>Value argument. Optional. Can be int,
<t> <t>float or string.
<b>Example
<c> int outfile;
<c> outfile = fopen( "my_file.txt", "w");
<c> if (!outfile)
<c> exit();
<c> fprintf( outfile, "Some text");
<c> fprintf( outfile, "a = %d", a);
<c> fclose( outfile);
</TOPIC>
<TOPIC> fgets() <style> function
fgets()
int fgets( string str, int file)
<b>Description
Reads a line from a specified file.
Returns zero if end of file.
<b>Arguments
string <t>str <t>Read line. Returned.
int <t>file <t>file returned by fopen.
<b>Example
<c> file = fopen("some_file.txt","r");
<c> while( fgets( str, file))
<c> say( str);
<c> endwhile
<c> fclose( file);
</TOPIC>
<TOPIC> fopen() <style> function
fopen()
int fopen( string filespec, string mode)
<b>Description
Opens a file for read or write.
Returns a file identifier. If the file could not be opened, zero is returned.
<b>Arguments
string <t>filespec <t>Name of file.
string <t>mode <t>Access mode
<b>Example
<c> int infile;
<c> int outfile;
<c> infile = fopen("some_file.txt","r");
<c> outfile = fopen("another_file.txt","w");
<c> ...
<c> fclose( infile);
<c> fclose( outfile);
</TOPIC>
<TOPIC> fclose() <style> function
fclose()
int fclose( int file)
<b>Description
Closes an opened file.
<b>Arguments
int <t>file <t>file-id returned by fopen.
<b>Example
<c> int infile;
<c> infile = fopen("some_file.txt","r");
<c> ...
<c> fclose( infile);
</TOPIC>
<TOPIC> exit() <style> function
exit()
int exit()
<b>Description
Terminates executions of the file.
<b>Example
<c> exit();
</TOPIC>
<TOPIC> verify() <style> function
verify()
int verify( [int mode])
<b>Description
Sets or shows verification mode. If verification is on all executed lines will
be displayed on the screen.
Returns the current verification mode.
<b>Arguments
int <t>mode <t>verification on (1) or off (0). Optional.
<b>Example
<c> verify(1);
</TOPIC>
<TOPIC> time() <style> function
time()
string time()
<b>Description
Returns the current time in string format.
<b>Example
<c> string t;
<c> t = time();
</TOPIC>
<TOPIC> edit() <style> function
edit()
string edit( string str)
<b>Description
Removes leading and trailing spaces and tabs, and replaces multiple tabs and
spaces with a single space.
Returns the edited string.
<b>Arguments
string <t>str <t>string to be edited.
<b>Example
<c> collapsed_str = edit(str);
</TOPIC>
<TOPIC> extract() <style> function
extract()
string extract( int start, int length, string str)
<b>Description
Extracts the specified characters from the specified string.
Returns the extracted characters as a string.
<b>Arguments
int <t>start <t>start position of the first character.
int <t>length <t>number of characters to be extracted.
string <t>str <t>string from which characters should be extracted.
<b>Example
<c> extracted_str = extract( 5, 7, str);
</TOPIC>
<TOPIC> element() <style> function
element()
string element( int number, string delimiter, string str)
<b>Description
Extracts one element from a string of elements.
Returns the extracted element.
<b>Arguments
int <t>number <t>the number of the element.
string <t>delimiter <t>delimiter character.
string <t>str <t>string of elements.
<b>Example
<c> string str = "mary, lisa, anna, john";
<c> string elem1;
<c> elem1 = element( 1, ",", str);
</TOPIC>
<TOPIC> toupper() <style> function
toupper()
string toupper( string str)
<b>Description
Convert string to upper case.
<b>Arguments
string <t>str <t>string to convert.
<b>Returns
string <t><t>string in upper case.
<b>Example
<c> string str1 = "Buster Wilson";
<c> string str2;
<c> str2 = toupper( str);
</TOPIC>
<TOPIC> tolower() <style> function
toupper()
string tolower( string str)
<b>Description
Convert string to lower case.
<b>Arguments
string <t>str <t>string to convert.
<b>Returns
string <t><t>string in lower case.
<b>Example
<c> string str1 = "Buster Wilson";
<c> string str2;
<c> str2 = tolower( str);
</TOPIC>
<TOPIC> translate_filename() <style> function
translate_filename()
string translate_filename( string fname)
<b>Description
Replace environment variables in filename.
<b>Arguments
string <t>fname <t>A filename.
<b>Returns
string <t><t>String with expanded env variables.
<b>Example
<c> string fname1 = "$pwrp_db/a.wb_load";
<c> string fname2;
<c> fname2 = translate_filename( fname1);
</TOPIC>
<TOPIC> xtt-commands <style> function
Xtt commands
All the xtt-commands is available in the script code. An rtt-command line
should NOT be ended with a semicolon. Variables can be substituted in the
command line by surrounding them with apostrophes.
<b>Example
<c> string name = "PUMP-VALVE-Open.ActualValue";
<c> float value = 2.2;
<c> set parameter/name='name'/value='value'
<b>Example
<c> string name;
<c> string parname;
<c> int j;
<c> int i;
<c> for ( i = 0; i < 3; i++)
<c> parname = "vkv-test-obj" + (i+1);
<c> create obj/name='parname'
<c> for ( j = 0; j < 3; j++)
<c> name = parname + "-obj" + (j+1);
<c> create obj/name='name'
<c> endfor
<c> endfor
</TOPIC>
<TOPIC> getattribute() <style> function
GetAttribute()
(variable type) GetAttribute( string name [, int status])
<b>Description
Get the value of the specified attribute. The returned type is dependent
of the attribute type. The attribute will be converted to int, float or string.
<b>Arguments
string <t>name <t>name of the attribute to be fetched.
int <t>status <t>status of operation. Returned. If zero, the
<t> <t>attribute could not be fetched. Optional.
<b>Example
<c> int alarm;
<c> int sts;
<c> alarm = GetAttribute("Roller-Motor-Alarm.ActualValue");
<c> on = GetAttribute("Roller-Motor-On.ActualValue", sts);
<c> if ( !sts)
<c> say("Could not find motor on attribute!");
</TOPIC>
<TOPIC> getchild() <style> function
GetChild()
string GetChild( string name)
<b>Description
get the first child of an object. The next children can be fetched with
GetNextSibling().
Returns the name of the child. If no child exists a null-string is returned
<b>Arguments
string <t>name <t>name of object.
<b>Example
<c> string child;
<c> child = GetChild("Roller-Motor");
</TOPIC>
<TOPIC> getparent() <style> function
GetParent()
string GetParent( string name)
<b>Description
Get the parent of an object.
Returns the name of the child. If no parent exists a null-string is returned.
<b>Arguments
string <t>name <t>name of object.
<b>Example
<c> string parent;
<c> parent = GetChild("Roller-Motor");
</TOPIC>
<TOPIC> getnextsibling() <style> function
GetNextSibling()
string GetNextSibling( string name)
<b>Description
Get the next sibling of an object.
Returns the name of the sibling. If no next sibling exists a null-string is
returned.
<b>Arguments
string <t>name <t>name of object.
<b>Example
<c> string name;
<c> int not_first;
<c> name = GetChild("Rt");
<c> not_first = 0;
<c> while ( name != "")
<c> if ( !not_first)
<c> create menu/title="The Rt objects"/text="'name'"/object="'name'"
<c> else
<c> add menu/text="'name'"/object="'name'"
<c> endif
<c> not_first = 1;
<c> name = GetNextSibling(nname);
<c> endwhile
<c> if ( !not_first )
<c> MessageError("No objects found");
</TOPIC>
<TOPIC> getclasslist() <style> function
GetClassList()
string GetClassList( string class)
<b>Description
Get the first object of a specified class. The next object of the class
can be fetched whith GetNextObject().
Returns the name of the first object. If no instances of the class exists a
null-string is returned.
<b>Arguments
string <t>name <t>name of class.
<b>Example
<c> string name;
<c> name = GetClassList("Dv");
</TOPIC>
<TOPIC> getnextobject() <style> function
GetNextObject()
string GetNextObject( string name)
<b>Description
Get the next object in a classlist.
Returns the name of the object. If no next object exist a null-string is
returned.
<b>Arguments
string <t>name <t>name of object.
<b>Example
<c> string name;
<c> name = GetClassList("Di");
<c> while ( name != "")
<c> printf("Di object found: %s", name);
<c> name = GetNextObject(name);
<c> endwhile
</TOPIC>
<TOPIC> getobjectclass() <style> function
GetObjectClass()
string GetObjectClass( string name)
<b>Description
Get the class of an object.
Returns the name of the class.
<b>Arguments
string <t>name <t>name of object.
<b>Example
<c> string class;
<c> class = GetObjectClass("Motor-Enable");
</TOPIC>
<TOPIC> getnodeobject() <style> function
GetNodeObject()
string GetNodeObject()
<b>Description
Get the node object.
Returns the name of the node object.
<b>Example
<c> string node;
<c> node = GetNodeObject();
</TOPIC>
<TOPIC> getrootlist() <style> function
GetRootList()
string GetRootList()
<b>Description
Get the first object in the root list.
Returns the name of the root object. The next object in the root list can be
fetched with GetNextSibling().
<b>Example
<c> string name;
<c> name = GetRootList();
<c> while( name != "")
<c> printf( "Root object found: %s", name);
<c> name = GetNextSibling(name);
<c> endwhile
</TOPIC>
<TOPIC> cutobjectname() <style> function
CutObjectName()
string CutObjectName( string name, int segments)
<b>Description
Cut the first segments of an object name.
Returns the last segments of an object name. The number of segments left is
specified by the second argument
<b>Arguments
string <t>name <t>Path name of object.
int <t>segments <t>Number of segments that should be left.
<b>Example
<c> string path_name;
<c> string object_name;
<c> path_name = GetChild("Rt-Motor");
<c> object_name = CutObjectName( path_name, 1);
</TOPIC>
<TOPIC> messageerror() <style> function
MessageError()
string MessageError( string message)
<b>Description
Print an rtt error message on the screen.
<b>Example
<c> MessageError("Something went wrong");
</TOPIC>
<TOPIC> messageinfo() <style> function
MessageInfo()
string MessageInfo( string message)
<b>Description
Print an rtt info message on the screen.
<b>Example
<c> MessageInfo("Everything is all right so far");
</TOPIC>
<TOPIC> getcurrenttext() <style> function
GetCurrentText()
string GetCurrentText()
<b>Description
Get the text of the current menu item or update field.
<b>Example
<c> string text;
<c> text = GetCurrentText();
</TOPIC>
<TOPIC> getcurrentobject() <style> function
GetCurrentObject()
string GetCurrentObject()
<b>Description
Get the object associated with the current menu item.
If no object is associated, a null-string i returned.
<b>Example
<c> string object;
<c> object = GetCurrentObject();
</TOPIC>
</headerlevel>
</chapter>
<TOPIC> overview
<image> pwr_logga.gif
<h1>Overview
<b>Project Help <link> index,,$pwrp_exe/xtt_help.dat
<b>Operator's Guide <link> index,,$pwr_lang/man_opg.dat
<b>Classes <link> classes
<b>Index <index>
</TOPIC>
<TOPIC> classes
Classes
<B>SystemClasses <LINK>pwrs, ,$pwr_lang/pwrs_xtthelp.dat
<B>BaseClasses <LINK>pwrb, ,$pwr_lang/pwrb_xtthelp.dat
<B>BaseComponent <LINK>basecomponent, ,$pwr_lang/basecomponent_xtthelp.dat
<B>NMps <LINK>nmps, ,$pwr_lang/nmps_xtthelp.dat
<B>Profibus <LINK>profibus, ,$pwr_lang/profibus_xtthelp.dat
<B>Opc <LINK>opc, ,$pwr_lang/opc_xtthelp.dat
<B>OtherIO <LINK>otherio, ,$pwr_lang/otherio_xtthelp.dat
<B>SsabOx <LINK>ssabox, ,$pwr_lang/ssabox_xtthelp.dat
<B>OtherManufacturer <LINK>othermanufacturer, ,$pwr_lang/othermanufacturer_xtthelp.dat
<B>ABB <LINK>abb, ,$pwr_lang/abb_xtthelp.dat
<B>Siemens <LINK>siemens, ,$pwr_lang/siemens_xtthelp.dat
</TOPIC>
<include> $pwr_lang/pwrs_xtthelp.dat
<include> $pwr_lang/pwrb_xtthelp.dat
<include> $pwr_lang/basecomponent_xtthelp.dat
<include> $pwr_lang/nmps_xtthelp.dat
<include> $pwr_lang/profibus_xtthelp.dat
<include> $pwr_lang/opc_xtthelp.dat
<include> $pwr_lang/ssabox_xtthelp.dat
<include> $pwr_lang/otherio_xtthelp.dat
<include> $pwr_lang/othermanufacturer_xtthelp.dat
<include> $pwr_lang/abb_xtthelp.dat
<include> $pwr_lang/siemens_xtthelp.dat
<include> $pwr_lang/man_opg.dat
...@@ -221,11 +221,16 @@ copy : $(export_pdf) $(export_pdf_en_us) $(export_pdf_sv_se) \ ...@@ -221,11 +221,16 @@ copy : $(export_pdf) $(export_pdf_en_us) $(export_pdf_sv_se) \
$(export_gif_exe) $(export_gif_en_us) $(export_gif_sv_se) \ $(export_gif_exe) $(export_gif_en_us) $(export_gif_sv_se) \
$(export_png_exe) $(export_png_en_us) $(export_png_sv_se) \ $(export_png_exe) $(export_png_en_us) $(export_png_sv_se) \
$(exe_dir)/en_us/wtt_help.dat $(exe_dir)/sv_se/wtt_help.dat \ $(exe_dir)/en_us/wtt_help.dat $(exe_dir)/sv_se/wtt_help.dat \
$(exe_dir)/en_us/xtt_help.dat $(exe_dir)/sv_se/xtt_help.dat \
$(exe_dir)/en_us/rtmon_help.dat \ $(exe_dir)/en_us/rtmon_help.dat \
$(exe_dir)/en_us/man_dg.dat $(exe_dir)/sv_se/man_dg.dat \ $(exe_dir)/en_us/man_dg.dat $(exe_dir)/sv_se/man_dg.dat \
$(doc_dir)/en_us/man_dg_index.html $(doc_dir)/sv_se/man_dg_index.html \ $(doc_dir)/en_us/man_dg_index.html $(doc_dir)/sv_se/man_dg_index.html \
$(doc_dir)/en_us/man_dg.pdf $(doc_dir)/sv_se/man_dg.pdf \ $(doc_dir)/en_us/man_dg.pdf $(doc_dir)/sv_se/man_dg.pdf \
$(doc_dir)/en_us/man_dg.ps $(doc_dir)/sv_se/man_dg.ps \ $(doc_dir)/en_us/man_dg.ps $(doc_dir)/sv_se/man_dg.ps \
$(exe_dir)/en_us/man_opg.dat $(exe_dir)/sv_se/man_opg.dat \
$(doc_dir)/en_us/man_opg_index.html $(doc_dir)/sv_se/man_opg_index.html \
$(doc_dir)/en_us/man_opg.pdf $(doc_dir)/sv_se/man_opg.pdf \
$(doc_dir)/en_us/man_opg.ps $(doc_dir)/sv_se/man_opg.ps \
$(exe_dir)/en_us/man_geref.dat $(exe_dir)/sv_se/man_geref.dat \ $(exe_dir)/en_us/man_geref.dat $(exe_dir)/sv_se/man_geref.dat \
$(doc_dir)/en_us/man_geref_index.html $(doc_dir)/sv_se/man_geref_index.html \ $(doc_dir)/en_us/man_geref_index.html $(doc_dir)/sv_se/man_geref_index.html \
$(doc_dir)/en_us/man_geref.pdf $(doc_dir)/sv_se/man_geref.pdf \ $(doc_dir)/en_us/man_geref.pdf $(doc_dir)/sv_se/man_geref.pdf \
...@@ -270,30 +275,34 @@ $(exe_dir)/sv_se/wtt_help.dat : $(pwre_sroot)/doc/man/sv_se/wtt_help.dat ...@@ -270,30 +275,34 @@ $(exe_dir)/sv_se/wtt_help.dat : $(pwre_sroot)/doc/man/sv_se/wtt_help.dat
@ $(log_h_h) @ $(log_h_h)
@ $(cp) $(cpflags) $(source) $(target) @ $(cp) $(cpflags) $(source) $(target)
$(exe_dir)/en_us/rtmon_help.dat : $(pwre_sroot)/doc/man/en_us/rtmon_help.dat $(exe_dir)/en_us/xtt_help.dat : $(pwre_sroot)/doc/man/en_us/xtt_help.dat
@ $(log_h_h) @ $(log_h_h)
@ $(cp) $(cpflags) $(source) $(target) @ $(cp) $(cpflags) $(source) $(target)
$(exe_dir)/en_us/man_dg.dat : $(pwre_sroot)/doc/man/en_us/man_dg.dat $(exe_dir)/sv_se/xtt_help.dat : $(pwre_sroot)/doc/man/sv_se/xtt_help.dat
@ $(log_h_h) @ $(log_h_h)
@ $(cp) $(cpflags) $(source) $(target) @ $(cp) $(cpflags) $(source) $(target)
$(exe_dir)/sv_se/man_dg.dat : $(pwre_sroot)/doc/man/sv_se/man_dg.dat $(exe_dir)/en_us/rtmon_help.dat : $(pwre_sroot)/doc/man/en_us/rtmon_help.dat
@ $(log_h_h) @ $(log_h_h)
@ $(cp) $(cpflags) $(source) $(target) @ $(cp) $(cpflags) $(source) $(target)
$(exe_dir)/man_subgraph.dat : $(pwre_sroot)/doc/man/en_us/man_subgraph.dat $(exe_dir)/en_us/man_dg.dat : $(pwre_sroot)/doc/man/en_us/man_dg.dat
@ $(log_h_h) @ $(log_h_h)
@ $(cp) $(cpflags) $(source) $(target) @ $(cp) $(cpflags) $(source) $(target)
$(doc_dir)/en_us/man_dg_index.html : $(pwre_sroot)/doc/man/en_us/man_dg.dat $(exe_dir)/sv_se/man_dg.dat : $(pwre_sroot)/doc/man/sv_se/man_dg.dat
@ echo "Generating html for en_us/man_dg" @ $(log_h_h)
@ co_convert -t -d $(doc_dir)/en_us $(source) @ $(cp) $(cpflags) $(source) $(target)
$(doc_dir)/sv_se/man_dg_index.html : $(pwre_sroot)/doc/man/sv_se/man_dg.dat $(doc_dir)/sv_se/man_dg_index.html : $(pwre_sroot)/doc/man/sv_se/man_dg.dat
@ echo "Generating html for sv_se/man_dg" @ echo "Generating html for sv_se/man_dg"
@ co_convert -t -l sv_se -d $(doc_dir)/sv_se $(source) @ co_convert -t -l sv_se -d $(doc_dir)/sv_se $(source)
$(doc_dir)/en_us/man_dg_index.html : $(pwre_sroot)/doc/man/en_us/man_dg.dat
@ echo "Generating html for en_us/man_dg"
@ co_convert -t -d $(doc_dir)/en_us $(source)
$(doc_dir)/en_us/man_dg.pdf : $(pwre_sroot)/doc/man/en_us/man_dg.dat $(doc_dir)/en_us/man_dg.pdf : $(pwre_sroot)/doc/man/en_us/man_dg.dat
@ echo "Generating pdf for en_us/man_dg" @ echo "Generating pdf for en_us/man_dg"
@ co_convert -f -d $(doc_dir)/en_us $(source) @ co_convert -f -d $(doc_dir)/en_us $(source)
...@@ -306,18 +315,54 @@ $(doc_dir)/en_us/man_dg.ps : $(pwre_sroot)/doc/man/en_us/man_dg.dat ...@@ -306,18 +315,54 @@ $(doc_dir)/en_us/man_dg.ps : $(pwre_sroot)/doc/man/en_us/man_dg.dat
@ echo "Generating postscript for en_us/man_dg" @ echo "Generating postscript for en_us/man_dg"
@ co_convert -n -d $(doc_dir)/en_us $(source) @ co_convert -n -d $(doc_dir)/en_us $(source)
$(exe_dir)/en_us/man_geref.dat : $(pwre_sroot)/doc/man/en_us/man_geref.dat $(doc_dir)/sv_se/man_dg.ps : $(pwre_sroot)/doc/man/sv_se/man_dg.dat
@ echo "Generating postscript for sv_se/man_dg"
@ co_convert -n -d $(doc_dir)/sv_se $(source)
$(exe_dir)/en_us/man_opg.dat : $(pwre_sroot)/doc/man/en_us/man_opg.dat
@ $(log_h_h) @ $(log_h_h)
@ $(cp) $(cpflags) $(source) $(target) @ $(cp) $(cpflags) $(source) $(target)
$(exe_dir)/sv_se/man_geref.dat : $(pwre_sroot)/doc/man/sv_se/man_geref.dat $(exe_dir)/sv_se/man_opg.dat : $(pwre_sroot)/doc/man/sv_se/man_opg.dat
@ $(log_h_h) @ $(log_h_h)
@ $(cp) $(cpflags) $(source) $(target) @ $(cp) $(cpflags) $(source) $(target)
$(doc_dir)/sv_se/man_dg.ps : $(pwre_sroot)/doc/man/sv_se/man_dg.dat $(doc_dir)/en_us/man_opg_index.html : $(pwre_sroot)/doc/man/en_us/man_opg.dat
@ echo "Generating postscript for sv_se/man_dg" @ echo "Generating html for en_us/man_opg"
@ co_convert -t -d $(doc_dir)/en_us $(source)
$(doc_dir)/sv_se/man_opg_index.html : $(pwre_sroot)/doc/man/sv_se/man_opg.dat
@ echo "Generating html for sv_se/man_opg"
@ co_convert -t -l sv_se -d $(doc_dir)/sv_se $(source)
$(doc_dir)/en_us/man_opg.pdf : $(pwre_sroot)/doc/man/en_us/man_opg.dat
@ echo "Generating pdf for en_us/man_opg"
@ co_convert -f -d $(doc_dir)/en_us $(source)
$(doc_dir)/sv_se/man_opg.pdf : $(pwre_sroot)/doc/man/sv_se/man_opg.dat
@ echo "Generating pdf for sv_se/man_opg"
@ co_convert -f -l sv_se -d $(doc_dir)/sv_se $(source)
$(doc_dir)/en_us/man_opg.ps : $(pwre_sroot)/doc/man/en_us/man_opg.dat
@ echo "Generating postscript for en_us/man_opg"
@ co_convert -n -d $(doc_dir)/en_us $(source)
$(doc_dir)/sv_se/man_opg.ps : $(pwre_sroot)/doc/man/sv_se/man_opg.dat
@ echo "Generating postscript for sv_se/man_opg"
@ co_convert -n -d $(doc_dir)/sv_se $(source) @ co_convert -n -d $(doc_dir)/sv_se $(source)
$(exe_dir)/man_subgraph.dat : $(pwre_sroot)/doc/man/en_us/man_subgraph.dat
@ $(log_h_h)
@ $(cp) $(cpflags) $(source) $(target)
$(exe_dir)/en_us/man_geref.dat : $(pwre_sroot)/doc/man/en_us/man_geref.dat
@ $(log_h_h)
@ $(cp) $(cpflags) $(source) $(target)
$(exe_dir)/sv_se/man_geref.dat : $(pwre_sroot)/doc/man/sv_se/man_geref.dat
@ $(log_h_h)
@ $(cp) $(cpflags) $(source) $(target)
$(doc_dir)/en_us/man_geref_index.html : $(pwre_sroot)/doc/man/en_us/man_geref.dat $(doc_dir)/en_us/man_geref_index.html : $(pwre_sroot)/doc/man/en_us/man_geref.dat
@ echo "Generating html for en_us/man_geref" @ echo "Generating html for en_us/man_geref"
@ co_convert -t -d $(doc_dir)/en_us $(source) @ co_convert -t -d $(doc_dir)/en_us $(source)
......
<topic> __DocumentTitlePage
<image> pwr_logga.gif
<h1> Handbok för
<h1> Operatörer
<hr>
2009-08-04
Version 4.7.0
<hr>
</topic>
<topic> __DocumentInfoPage
Copyright 2009 SSAB Oxelösund AB
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
Texts.
</topic>
<option> printdisable
<topic> index
Operatörshandbok
<image> pwr_logga.gif
<h1>Operatörshandbok
Introduktion <link> opg_introduction
Allmänt om Proview <link> opg_proview
Operatörsplatsen <link> opg_opplace
Larm och händelser <link> opg_events
Kurvor <link> opg_curves
Hjälp <link> opg_help
Navigatör <link> opg_navigator
Plc trace <link> opg_trace
Setup-skript <link> opg_setupfile
Användare och privilegier <link> opg_security
Funktionstangenter <link> opg_functionkeys
Xtt kommandon <link> help command
Script <link> script
Index <index>
</topic>
<option> printenable
<chapter>
<topic> opg_introduction
Inledning
Proview Handbok för Operatörer är främst avsedd för personer som kommer i kontakt med gående
proviewsystem i sitt dagliga arbete. Det kan vara
- operatörer som övervakar och sköter en process.
- underhållspersonal som felsöker anläggningen.
- processutvecklare som hämtar information om processen.
- systemansvariga som underhåller och felsöker systemet.
Funktioner för alla dessa grupper finns tillgängliga i den ordinare operatörsmiljön, och vem
som tillhör in viss grupp bestäms av de privilegier som en viss användare är tilldelad.
</topic>
</chapter>
<chapter>
<topic> opg_proview
Allmänt om Proview
<h1>Vad är Proview
Proview är ett modernt, kraftfullt och generellt processtyrsystem. Det innehåller alla de
funktioner som normalt behövs för för att styra och övervaka en process: sekvensstyrning,
reglering, datainsamling, kommunikation, larmhantering, HMI/SCADA, historisk datalagring mm.
Proview är ett distribuerat system, dvs det består av ett antal datorer (noder) förbundna
i ett nätverk. Noderna kan vara av typen processtation, operatörsstation eller
lagringsstation.
<option> printdisable
<b>Stationer <link>opg_stations
<b>Objekt <link>opg_object
<option> printenable
</topic>
<headerlevel>
<topic> opg_stations
Stationer
<h2>Processtation
En processtation samlar in mätdata från olika givare i processen, det kan vara analoga
mätdata som temperaturen, flöden, nivåer eller digital mätdata från t ex fotoceller eller
tryckvakter. I processtationen exekveras ett styrprogram, som utifrån mätdata beräknar
styrdata för processen och skickas ut till motorer och ställdon som in sin tur påverkar
processen.
Processtationer innehåller ofta en speciell hårdvara för att läsa in måtvärden och ställa ut
styrdata, men detta kan även ske över nätverket mha protokoll som Modbus/TCP eller Profinet.
<h2>Operatörstation
Operatörsstationens uppgift är att svara för gränssnittet mellan operatör och process.
Operatören övervakar processen genom processbilder, som visar läget i processen genom
att data presenteras i form av staplar, kurvor, indikatorer mm. Operatören kan påverka
processen t ex genom att mata in data, eller trycka på knappar i processbilden.
<h2>Lagringsstation
Vissa mätdata måste lagras för att man ska kunna se förändringar och trender, eller för att
man ska kunna gå tillbaka och analysera läget i processen vid en viss tidpunkt. Lagringtiden
kan varier från någon timme till flera år. Lagringen sker på lagringsstationer, som har
tillräckligt med diskutrymme för att kunna lagra data under lång tid, och som även har
backupfunktioner så att data inte förloras vid t ex ett diskhaveri.
Man brukar även tala om nivå 2 system, dvs system av överordnad karaktär som innehåller
t ex materialplaneringsfunktioner, tunga beräkningar och liknande. Dessa ingår i kategorin
processtationer.
<h2>Utvecklingsstation
På nätverket kan även finnas utvecklingstationer, på vilka process- operatörs- och
lagringstationerna konfigureras och programmeras. På utvecklingsstationerna finns det verktyg
för att rita processbilder, programmera sekvenser, logikscheman och reglerkretsar, mm. Efter
en ändring i konfigureringen för en station, laddas det nya konfigureringen ner till
stationen via nätverket.
<image>opg_fig1.png
<b>Fig Komponenter i ett Proview system
</topic>
<topic>opg_object
Objekt
<h1>Objektträd
Ett centralt begrepp i Proview är objekt. Givare, ventiler, motorer, regulatorer etc,
representeras av objekt i en databas. Objekten är ordnade i en trädsstruktur där olika
hierarkinivåer i trädet motsvarar delar i anläggningen och processen. Om vi betraktar en ugn
kan den översta nivån representera ugnen. Ugnen består av 4 värningszoner som var och en
representas av objekt på nästa nivå i trädet. Varje zon består av två värmeelement och två
temperaturgivare som finns ytterligare en nivå ner. Här finns även några objekt som inte
har någon fysisk motsvarighet i anläggningen, en temperatur regulator och ett styrprogram
för zonen.
<image>opg_fig2.png
<b>Fig Ugn med 4 zoner
<image>opg_fig3.png
<b>Fig Objekt träd för ugnen
Notera att många objekt har ett ganska kryptiskt namn som följer en beteckningsstandard, men
till varje objekt finns en utförligare beskrivning som ofta visas tillsammans med objektet.
Låt oss titta lite närmare på ett objekt, t ex ett av temperaturgivarobjekten. Objektet
visas i en översiktsbild med objektets grafiska symbol, en trekant med bokstaven T.
<image>opg_fig4.png
<b>Fig Grafisk symbol för temperaturgivare
<h2>Objektsbild
Om man klickar på symbolen öppnas objektets objektsbild. Från objektsbilden kan man se
objekts egenskaper. Det mest interessanta för en temperaturgivare är naturligtvis den
uppmätta temperaturen, som visas både i siffror och i form av en stapel (termometer), Se
'Fig Objektsbild för temperaturgivare' nedan. Temperaturgivar-objektet innehåller även fyra
larmgränser, höghög, hög, låg och låglåg. Nivån på larmgränserna kan sättas från
objektsbilden, och man kan även lägga in hysteres på dem. Med hjälp av checkboxar kan man
också avaktivera larmgränser.
<image>opg_fig5.png
<b>Fig Objektsbild för temperaturgivare
<h2>Metoder
I överkanten på objektsbilden finns ett antal tryckknappar som aktiverar objektets metoder.
Mha av metoderna kan man hämta upp all information som finns om objektet i styrsystemet.
Metoderna kan även aktiveras från objektbildens meny, eller genom att högerklicka på den
grafiska symbolen i översiktbilden, då en popupmeny med metoderna visas. Faktum är att var
man än stöter på objektet, i larmlistor, i bilder, i plc koden etc, kan man genom att
högerklicka på objektet öppna popupmenyn med objektets metoder. Här följer en lista på olika
metoder, men vilka som är aktuella för ett specifikt objekt beror på vilken typ av objekt det
är, och hur det är konfigurerat.
<b>Metod <t>Beskrivning
Objekt Bild <t>Öppna Objektsbilden.
Trend <t>Visa en trendkurva.
Historik <t>Hämta historiska data från en lagringsstation och visa i en kurva.
Historisk lista <t>Visa historisk lista med larm och händelser för objektet.
Blockera händelser <t>Blockera larm och händlelser.
Hjälp <t>Visa en hjälptext för objektet.
Notera <t>Skriv in en anteckning för objektet. Anteckningen visas i objektsbilden.
Öppna objekt <t>Visa objektets datainnehåll.
RtNavigatör <t>Visa objektet i objektsträdet.
Korsreferenser <t>Visa var objektet förekommer i plc-kod och bilder.
Hjälp klass <t>Visa hjälp för den här objekttypen.
Datablad <t>Visa databladet för den komponent i anläggningen som objektet motsvarar.
Kopplingsschema <t>Visa elektriskt kopplingschema för objektet.
</topic>
</headerlevel>
</chapter>
<chapter>
<topic>opg_opplace
Operatörsplatsen
<b>Starta operatörsmiljön <link>opg_startop
<b>Operatörsfönstret <link>opg_opwindow
</topic>
<headerlevel>
<topic> opg_startop
Starta operatörsmiljön
Vanligtvis är inloggingen av arbetsstationen konfigurerad så att operatörsmiljön startar
automatiskt. Vid starten anges ett opertöraplatsobjekt där operatörsplatsens egenskaper
finns konfigurerade.
Ibland vill man starta på annat sätt, t ex från ett terminalfönster.
Operatörsmiljön startas med programmet rt_xtt, och man anger ett OpPlace objekt som
argument. Kommandot för att starta med OpPlace objektet Nodes-OpgNode-b55 är
<c>> rt_xtt Nodes-OpgNode-b55
Det finns även ett antal optioner som man kan skicka med som argument
-l <t>Språk. Ett av följande språk anges:
<t>en_us engelska (default).
<t>sv_se svenska.
<t>de_de tyska.
<t>fr_fr franska.
-q <t>Fönstret med licenstexten visas ej vid uppstart.
-c <t>Knapp för att stänga operatörsmiljön visas i operatörsfönstret.
-u <t>Startar med ett opplace objekt med samma namn som den linuxanvändare
<t>man är inloggad som.
-s <t>Visar en lista på tillgängliga operatörsplatsobjekt.
</topic>
<topic>opg_opwindow
Operatörsfönstret
<image>opg_fig6.png
<b>Fig Operatörsfönster
Operatörsfönstret lägger sig längst upp på bildskärmen och saknar titelrad och knappar för
att ikonisera och ta bort fönstret. Det är uppdelat i tre delar, till vänster visas aktuella
larm och meddelanden, i mitten finns knappar för olika basfunktioner, och till vänster
kappar som är konfigurerade för just den här operatörsplatsen.
<h2>Larm och meddelanden
I vänstra delen av operatörsfönstret visas larm och meddelanden.
Larmen är uppdelade i fyra prioritetsnivåer A, B, C och D, där A har högst prioritet och D
lägst. A-larm är röd-makerade, B-larm gul, C-larm blå och D-larm violett. Dessutom finns
kategorin Info meddelande som markeras med grönt.
I det övre fältet visas de senaste okvitterade A-larmen. Beroende på operatörsfönstrets
storlek i höjdled, visas 2 till 5 larm. Här finns även en knapp markerad med en bock för
att kvittera A-larm.
I den undre fältet visas de senaste okvitterade B, C och D-larmen, samt info meddelanden.
Dessa larm visas i prioritetsordning snarare än tidsordning, dvs om det finns okvitterade
B-larm visas det senaste av dessa. Endast om det inte finns några okvitterade B-larm visas
eventuella C-larm etc. Även här finns en kvittensknapp, som man kvitterar B, C, D-larmen och
info meddelandena med.
Ett larm är rådande om larmvillkoret fortfarande är uppfyllt. Detta markeras med en
varningstriangel före larmtexten.
<h2>Knappar för att öppna basfunktioner
På översta raden finns ett antal ikoner. De två första ökar eller minskar storleken på
larmtexten. Den tredje öppnar hjälpfönstret med projektets hjälptexter. Den fjärde öppnar
navigatorn, och den femte stänger operatörsfönstret.
Under finns ett antal knappar:
- Larmlista <t>Öppnar larmlistan med rådande eller okvitterade larm. <link>opg_alarmlist
- Händelselista <t>Öppnar händelselistan, en lista på de senaste larmen och händelserna <link>opg_eventlist
- Händelselogg <t>Öppnar händelseloggen, där man kan visa lagrade händelser. <link>opg_eventlog
- Hjälp <t>Visar projektets hjälptexter.
För att se de undre knapparna måste man ändra storlek på fönstret. Detta görs med knapparna
med uppåtpil och nedåtpil. Större storlek på fönstret gör även att man kan se fler A-larm.
<h2>Funktionsknappar
Till höger finns ett antal knappar som kan användas för att öppna bilder eller exekvera
olika order eller kommandon. Hur knapparna används beror på operatörsplatsens konfigurering.
</topic>
</chapter>
<chapter>
<topic>opg_events
Larm och händelser
<option> printdisable
Allmänt om larm och händelser <link>opg_events_general
Larmlista <t><t>Visar aktuella larm<link>opg_alarmlist
Händelselista <t><t>Visar senaste tidens larm och händelser <link> opg_eventlist
Händelselogg <t><t>Sökning av larm och händelser i händelsedatabasen. <link> opg_eventlog
Blockeringslista <t><t>Visar blockerade objekt och hierarkier. <link> opg_blocklist
Blockera larm <link> opg_blockingwindow
<option> printenable
</topic>
<headerlevel>
<topic>opg_events_general
Allmänt om larm och händelser
<h1>Larm
Larm skickas ut till operatören när någonting inträffar som operatören måste uppmärksamma.
Det kan t ex vara en temperatur som går över en gräns, eller att man har matat in ett
felaktigt värde i en bild. I Proview finns speciella övervakningsobjekt som övervakar
signaler och genererar larm.
Larm visas i larmlistan.<link>opg_alarmlist
<h2>Prioritet
Larmen är grupperade i fyra prioritetsnivåer, A, B, C och D, där A har högst prioritet och
D lägst. Hur man använder prioriteterna beror på hur system är konfigurerat. Det är vanligt
att larmprioriteterna används på följande sätt.
A-larm markeras med rött. De har högst prioritet och markerar att ett allvarlig fel i
anäggningen har inträffat som omgående bör åtgärdas. Ofta innebär det att driften av
anläggningen stoppas och inte kan startas så länge larmen är rådande.
B-larm markeras med gult. De har lite lägre prioritet och innebär ett fel som snarast bör
åtgärdas, men att driften kan fortsätta ytterligar en tid.
C-larm markeras med blått och D-larm med lila. De markerar mindre fel som inte ar akuta.
I många system är det tillräckligt med två larmnivåer, och man använder då enbart A och
B-larm.
<h2>Larmtext
Larm innehåller en text, som visas i larm och händelselistor. Denna text är enradig och
maximalt 80 tecken lång. Det finns även utrymme för en längre text, en mertext, som t ex
kan innehålla ytterligare förklaring till larmets orsaker eller hur det bör åtgärdas.
Mertexten visas i larm och händelselista om man placerar markören på larmtexten.
<h2>Kvittering
Ett larm måste kvitteras av operatören. Så länge larmet är okvitterat, ligger det kvar i
larmlistan och ger upphov till en ljudsignal. Om ett larm visas på flera operatörsplatser
räcker det med att larmet kvitteras från en av operatörsplatserna.
<h2>Blockering
Om ett larm inte relevant under en period, kan man blockera detta. Man kan t ex blockera
larmen från en anläggningsdel som är tagen ur drift. Blockeringen kan ske för ett enskilt
larmobjekt, eller för en hierarki. Blockering är en metod för ett objekt, och utförs från
ett blockeringsfönster som kan öppnas från popupmenyn för objektet. För att en användare
ska kunna blockera måste han ha privilegiet RtEvents.
Blockerade objekt visas i en blockeringslista. <link>opg_blocklist
<h2>Meddelanden
Info-meddelanden är en grupp som har samma funktion som larm. De har lägre prioritet
än larm och markeras med grönt.
<h1>Händelser
En händelse genereras på samma sätt som larm, med hjälp av övervakningsobjekt. Även larm
genererar händelser. Aktivering av ett larm räknas som en händelse, och även när larm
tillståndet försvinner och när larmet kvitteras.
Händelserna lagras i en händelselista, som innehåller de senaste händelserna. De lagras
också i en händelselogg, där man kan gå tillbaka och titta på händelser en tid tillbaka,
och även se statistik på händelser. För händelseloggen finns en sökfunktion, där man kan
söka på händelser med olika sökbegrepp, t ex tid, händelsetyp eller händelsetext.
<h2>Urvalslista
Operatörsplatsen har en urvalslista innehåller en lista på anläggningsdelar i objektsträdet.
Enbart larm som tillhör dessa anläggningsdelar kommer att visas i larm och händelslistan,
övriga larm och händelser filtreras bort.
</topic>
<topic>opg_alarmlist
Larmlista
<image>opg_fig7.png
<b>Fig Larmlista
Larmlistan öppnas genom genom att aktivera knappen "Larmlista" i operatörfönstret. Man kan
också öppna larmlistan från menyn i navigatorn, Alarm/Alarm List, och med xtt kommandot
'show alarmlist'.
I larmlistan visas rådande och okvitterade larm. Okvitterade larm markeras med en klocka
och rådande med en varningstriangel. Endast larm från de anläggningsdelar som är angivna
i urvalslistan visas.
Mertexten för att larm visas om man placerar markören på larmtexten.
Larm kan kvitteras genom att aktivera Functions/Acknowledge (Ctrl+K) i menyn.
Om man högerklickar på en larmtext, visas metoderna för larmobjektet. Det gör att man enkelt
kan visa objektsbilden eller se var i plckoden larmet genereras.
<image>opg_fig10.png
<b>Fig Larmtext
</topic>
<topic>opg_eventlist
Händelselista
<image>opg_fig8.png
<b>Fig Händelselista
Händelselistan öppnas från knappen "Händelselista" i operatörsfönstret. Man kan även starta
den från menyn i navigatorn eller med xtt kommandot 'show eventlist'.
Händelser från de anläggningsdelar som finns angivna i urvalslistan visas i händelselistan.
Antalet händelser konfigureras i User objektet, och när den maximala antalet händelser är
uppnått, kastas gamla händelser när nya anländer.
För varje händelse visas
- Färgindikering för larm prioritet.
- Händelse typ.
- Händelse tid.
- Händelse text.
- Händelse objekt (objekt/signal namn).
Mertexten för en händelse visas när markören placeras på händelsetexten.
Om man högerklickar på en händelsetext, visas metoderna för händelseobjektet. Det gör att
man enkelt kan visa objektsbilden eller se var i koden händelsen genereras.
</topic>
<topic>opg_eventlog
Händelselogg
Händelselistan är av begränsad längd och visar endast de senaste händelserna. Alla händelser
lagras emellertid in en databas. Med den historiska händelselistan, eller händelseloggen, är
det möjligt att titta på händelser för en tid tillbaka.
Eftersom antalet lagrade händelser ofta uppgår till fler tusen, söker man efter de händelser
man är intresserad av med olika sökvillkor. De händelser som passar in på sökvillkoren visas
i en lista.
<h1>Sökvillkor
<h2>Tid
På översta raden kan man ange ett tidsintervall för sökningen. Ställ in önskat intervall
med optionmenyn till höger. Väljer man 'Time' anger man starttid och stoptid i
inmatningsfälten.
<h2>Händelsetyp
Här kan man markera händlestyper. Om ingen type är markerad, tas alla typer med i sökningen.
- Active <t>Händelsen att ett larm aktiveras.
- Message <t>Ett info meddelande.
- Return <t>Ett larm återgår från att ha varit rådande.
- Ack <t>Ett larm kvitteras.
<h2>Prioritet
Här kan man markera att man vill söka på larm med en viss prioritet. Om ingen prioritet
anges utförs sökningen på alla prioriteter.
<h2>Händelsenamn
Namn på det objekt som händelsen är kopplad till. I namnet kan ingå wildcard (*), t ex
F1-Z1* söker på alla event under hierakin F1-Z1. Om inte något objektsnamn anges, söks på
alla objekt.
<h2>Händelsetext
Sökning på händelsetexten (vanligtvis DetectText). Wildcard kan ingå (*). Om igen taxt
anges söks på alla texter.
När sökvillkoren är inmatade, trycker man på 'Search' knappen, varvid sökningen genomförs,
och resultatet presenteras i listan i undre delen av fönstret.
<image>opg_fig9.png
<b>Fig Händelselogg
I listan över händelser presenteras händelsen med
- Prioritet <t>Prioriteten markeras med färg och bokstav.
- Händelsetyp <t>Active markeras med utropstecken, Return med ett överkorsat utropstecken,
<t>och Ack med en bock.
- Händletext
- Händelsenamn
Om man högerklickar på en rad visas metoderna för händelsenamnsobjektet.
</topic>
<topic>opg_blocklist
Blockeringslista
<image>opg_fig12.png
<b>Fig Blockeringslista
Listan över blockerade larm öppnas från menyn i navigatören, Alarm/Blocked Alarms, eller
med xtt kommandot 'show blocklist'.
För varje blockerat objekt visas:
- Färgindikering som markerar den prioritetsnivå som har blockerats.
- Objektsnamn.
- Användare som har utfört blockeringen.
En blockering tas bort genom att blockeringen markeras och Functions/Remove Blocking i menyn
aktiveras.
Blockering av larm sker genom 'Block Events' metoden för ett objekt. <link>opg_blockingwindow
</topic>
<topic>opg_blockingwindow
Blockera larm
<image>opg_fig11.png
<b>Fig Dialog för larmblockering
Larmbockering aktiveras genom 'Block Events' metoden, dvs från popup-menyn för ett objekt,
eller med xtt kommandot 'eventlist block'.
Fönstret används för att blockera larm för ett objekt. Alla larm med den specificerade
prioriteten, och med lägre prioritet, blockeras för objektet och underliggande objekt.
Prioriteten specificeras med radio-knappar. Man kan även ta bort en blockering med
knappen 'No Blocking'.
Endast användare med privilegiet 'RtEvent' eller 'System' är auktoriserade att blockera
larm.
</topic>
</headerlevel>
</chapter>
<chapter>
<topic> opg_curves
Kurvor
<option> printdisable
Trendkurvor <link> opg_trends
Snabbkurvor <link> opg_fast
Process historik <link> opg_history
<option> printenable
</topic>
<headerlevel>
<topic> opg_trends
Trendkurvor
Trendkurvor öppnas med 'Trend' metoden i t ex popumenyn för ett objekt. De kan även
öppnas med Xtt kommandot 'open trend'. Trendkurvor konfigureras med DsTrend objekt, och
om flera kurvor ska visas i samma kurvfönster, med PlotGroup objekt.
En trendkurva är en signal, t ex av typen temperatur, tryck eller flöde, vars värde lagras
med ett visst tidsintervall. En trendkurva har plats för 478 värden, och hur lång tid
tillbaka värdena kan lagras beror på hur ofta lagringen sker. Med ett nytt värde per sekund
kan ca 8 minuter lagras, med nytt värde varje minut blir det ca 8 timmar. Värdena lagras
i RAM-minnet och vid en omstart försvinner alla lagrade data.
Trendkurvorna visas i ett kurvfönster. Ett kurvfönster kan visa upp till 20 olika kurvor.
<image> opg_fig31.png
<b>Fig Trendkurvor
I kurvfönstrets övre del visas en tabell över de kurvor som visas. Första kolumnen är en
färgmarkering för att identifiera den korresponderande kurvan.
Beskrivning av kolumner i tabellen
View <t>En checkbox med vilken man kan välja om en kurva ska visas eller inte.
Cursor <t>Visar värdet för kurvan vid den tidpunk där cursorn är placerad.
Mark <t>Visar värdet för kurvan vid den tidpunkt där markören är placerad.
Unit <t>Visar enhet för kurvan.
Scale <t>Från 'Scale' kan man ställa in skal-området i y-led (Scale för raden Time axis
<t>ställer om i x-led).
Attribute <t>Anger det attribut som trendkurvan visar.
<h2>Navigering
Verktygspanelen innehåller knappar för att zooma in och ut, och för att flytta visningen
åt vänster eller höger.
Man kan även navigera med navigationsrutan i fönstrets undre del. Den del av kurvan som
visas markera med en svart fyrkant. Genom att dra med MB1 kan man flytta den i x-led, och
genom att dra med mittenknappen, kan man zooma in eller ut.
Navigering med tangenbordet sker med pil tangenterna. Pil upp och ner ändrar zoomningsgraden
och pil vänster och höger flyttar visningen åt höger resp vänster.
</topic>
<topic> opg_fastcurves
Snabbkurvor
Snabbkurvor öppnas med 'Fast' metoden i t ex popumenyn för ett objekt. De kan även
öppnas med Xtt kommandot 'open fast'. Snabbkurvor konfigureras med DsFastCurve objekt, och
om flera kurvor ska visas i samma kurvfönster, med PlotGroup objekt.
Snabbkurvor används för att visa snabba förlopp under en kortare tidsperiod. På en
triggsignal startas lagringen av signalens värde och lagringen pågår under en tid. När
förloppet är avlutat visas kurvan upp i kurvfönstret, och ligger kvar där tills
triggsignalen sätts och aktiverar en ny inspelning av förloppet.
Snabbkurvorna visas i ett kurvfönster. Ett kurvfönster kan visa upp till 20 olika kurvor.
<image> opg_fig37.png
<b>Fig Snabbkurva
</topic>
<topic> opg_history
Process historik
Process historik öppnas med 'History' metoden i t ex popumenyn för ett objekt. De kan även
öppnas med Xtt kommandot 'open history'. Historiken konfigureras med SevHist objekt.
Process historik innebär att värdet på en signal, t ex av typen temperatur, tryck eller
flöde, vars värde lagras i en databas med en viss frekvens och under en viss tid.
Historiken kan sträcka sig över flera år och antal mätvärden för en signal kan uppgå till
flera miljoner.
<image> opg_fig34.png
<b>Fig Process historik
I kurvfönstrets övre del visas en tabell över de kurvor som visas. Första kolumnen är en
färgmarkering för att identifiera den korresponderande kurvan.
Beskrivning av kolumner i tabellen
View <t>En checkbox med vilken man kan välja om en kurva ska visas eller inte.
Cursor <t>Visar värdet för kurvan vid den tidpunk där cursorn är placerad.
Mark <t>Visar värdet för kurvan vid den tidpunkt där markören är placerad.
Unit <t>Visar enhet för kurvan.
Scale <t>Från 'Scale' kan man ställa in skal-området i y-led (Scale för raden Time axis
<t>ställer om i x-led).
Attribute <t>Anger det attribut som historik-kurvan visar.
<h2>Navigering
Verktygspanelen innehåller knappar för att zooma in och ut, och för att flytta visningen
åt vänster eller höger.
Man kan även navigera med navigationsrutan i fönstrets undre del. Den del av kurvan som
visas markera med en svart fyrkant. Genom att dra med MB1 kan man flytta den i x-led, och
genom att dra med mittenknappen, kan man zooma in eller ut.
Navigering med tangenbordet sker med pil tangenterna. Pil upp och ner ändra zoomningsgraden
och pil vänster och höger flyttar visningen åt höger resp vänster.
<h2>Upplösning
Eftersom antalet mätvärden för ett attribut kan uppgå till flera miljoner, hämtar man bara
upp ett urval av värden. När man först öppnar kurvan, visas hela tidsintervallet med några
hundra punkter. För att få högre upplösning använder man knapparna med pil upp och pil ner
i verkygspanelen. Pil upp zoomar in och ökar upplösningen i det tidsintervall som visas, dvs
man läser in nya punkter i ett snävare tidsintervall med högre upplösning. Pil ner zoomar ut
med minskad upplösning.
</topic>
</headerlevel>
</chapter>
<chapter>
<topic> opg_help
Hjälpfönstret
<h1>Att få hjälp
Hjälpfunktionen kan öppnas på följande sätt
<h2>Operatörsfönstret
I operaörsfönstrets mitt-del finns en hjälpknapp som visar hjälptexter för projektet.
<h2>Navigatorns meny
Menyentryt Help/Overview ger hjälp om Proview och operatörsmiljön. Help/Project ger hjälp
om projektet.
<h2>Kommando
En hjälptext öppnas med xtt-kommandot 'help'. Till help skickar man det ämne man är
intresserad av. Kommandot help help visar t ex hur man använder help.
<h2>Objektsmetoder
För objekt finns det två metoder som ger hjälp,
- Help, visar hjälp för objektet eller anläggningsdelen.
- Help Class, visar information om objektets klass.
<h2>Hjälp och infoknappar i processbilder
Trycknappar i bilder kan kopplas till hjälptexter. Dessa är ofta markerade med ett
frågetecken eller ett 'I'.
<image> opg_fig36.png
<b>Fig Hjälpknappar
<h1>Navigera i hjälptexten
Rader med länkar markeras med en pil i radens vänsterkant.
Först raden är en länk till föregående ämne.
<h2>Navigera från tangentbordet
PageUp och PageDown används för att scrolla upp och ner i texten.
Man följer länkar genom att välja ut raden med länken med Pil-upp och Pil-ner, och sedan
trycka på Pil-höger.
Med Pil-vänster återgår man till föregående sida.
Med Ctrl+N går man till nästa avsnitt, och med Ctrl+P till föregående avsnitt.
Ctrl+A återgår till startsidan.
<h2>Navigera med musen
För att följa en länk klickar man på pilen, eller dubbelklickar på raden.
Genom att klicka på pilen på första raden återgår man till föregående sida.
<image> opg_fig35.png
<b>Fig Hjälpfönstret
</topic>
</chapter>
<chapter>
<topic> opg_navigator
Navigatör
Navigatören, ävan kallad Xtt, startas från knappen "Navigator" i operatörsfönstret. Den
kan även startas som ett separat program, oberoende av operatörsmiljön. Det görs ofta vid
felsökning eller underhåll av systemet. Man startar då från ett terminalfönster.
<image> opg_fig14.png
<b>Fig Menyn i navigatorn
Figuren ovan visar menyn i navigatorn. Den översta mappen, "This Project" är konfigurerbar
och kan innehålla en mapstruktur som är specifik för projektet (ofta saknas den helt).
Övriga mappar är standard,
Database <t><t>Visar objektsträdet och objekten i databasen <link>opg_nav_database
Alarm / Alarm List <t><t>Öppnar larmlistan. <link>opg_alarmlist
Alarm / Event List <t><t>Öppnar händleselistan. <link>opg_eventlist
Alarm / Blocked Alarms <t><t>Visar listan över blockerade larm. <link>opg_blocklist
Alarm / Historical List <t><t>Visar händelseloggen.<link>opg_eventlog
Store <t><t>Visar sparade samlingsbilder.
System / Nethandler / Link <t><t>Visar länkar till andra Proview system. <link>opg_nav_link
System / Nethandler / Subscription Client <t><t>Visar prenumerationer (client). <link>opg_nav_subcli
System / Nethandler / Subscription Server <t><t>Visar prenumerationer (server). <link>opg_nav_subsrv
System / Communication / RemNode <t><t>Visar remote kommunikation (noder) <link>opg_nav_remnode
System / Communication / RemTrans <t><t>Visar remote kommunikation (transar) <link>opg_nav_remtrans
System / Device <t><t>Visar I/O enheter <link>opg_nav_device
System / PlcThread <t><t>Visar Plc trådar <link>opg_nav_thread
System / PlcPgm <t><t>Visar PlcPgm. <link>opg_nav_plcpgm
System / Logging <t><t>Dialog för att starta logging av data. <link>opg_nav_logging
System / System Messages <t><t>Visar systemmeddelanden. <link>opg_nav_systemmsg
System / System Status <t><t>Visar systemstatus for noden.<link>opg_nav_systemsts
System / Nodes <t><t>Visar statusbild för noder. <link>opg_nav_nodes
System / Volumes <t><t>Visar laddade volymer. <link>opg_nav_volumes
Close <t><t>Stänger navigatorn.
<h1>Navigera
<h2>Navigera från tangenbordet
Det mest ergonomiska sättet att navigera i mapstrukturen är att använda piltangenterna.
Med Pil-Upp och Pil-Ned väljer man ut en map eller ett löv. Med Pil-Höger öppnar man en
mapp och med Pil-Vänster stänger man.
Ett objekt i databasen öppnar man med Shift Pil-Höger, dvs man trycker först ner Shift-
tangenten och håller den nedtryckt medan man trycker på Pil-Höger. Om objektet inte har
några barn räcker det att trycka på Pil-Höger.
Har man privilegiet RtWrite kan man ändra värden i attribut i databasen. Genom att öppna ett
objekt, välja ut attributet och trycka på Pil-Höger öppnas ett inmatningsfält där man
kan mata in ett nytt värde.
<h2>Navigera med musen
Man naturligvis även navigera med musen. En mapp öppnas genom att man klickar på mappen
(eller dubbelklickar på texten). Sedan stänger man genom att återigen klicka på mappen.
Ett objekt i databasen öppnas genom att trycka in Shift och klicka på mappen/lövet för
objektet.
<h1>Kommandon
Med Functions/Command, Ctrl+B, öppnar man en kommando-prompt på nedersta raden i navigatorn.
Härifrån kan man mata in kommandon och exekvera skript. Tillgängliga kommandon finns
beskrivna i kapitlet Kommandon och script i kapitlet Script
<option> printdisable
Kommandon <link>help command
Script <link> script
<option> printenable
<h1>Samlingsbild
Men Functions/Collect/Show, Ctrl+N, tittar man på insamlade objekt och attribut. Vid
felsökning vill man ofta titta på ett antal olika attribut från olika objekt samtidigt.
Genom att gå runt i objekts-trädet och samla in attribut med Functions/Collect/Insert,
Ctrl+V, och sedan aktivera Functions/Collect/Show visas dessa attribut gemensamt på en sida.
Om man vill spara samlingsbilden till en senare session, görs det med 'save' kommandot.
För att spara en samlingsbild under namnet 'mycollection' skriver man kommandot
<c>> save/collect mycollection
<image> opg_fig15.png
<b>Fig Samlingsbild som lagras med namnet 'mycollection'
Bilden kommer att återfinnas under 'Store' mappen, och kan även återskapas med kommandot
<c>> @mycollection
</topic>
<headerlevel>
<topic> opg_nav_database
Database
<image> opg_fig13.png
<b>Fig Objektträdet i navigatorn
Under mappen 'Database' visas objektträdet. Här kan man navigera i objektsträdet, öppna
objekt och titta på innehållet i olika attribut i objektet. Om man har priviligier kan man
även ändra på attributvärden.
Högerklickar man på ett objekt öppnas en popupmeny med objektets metoder. Knappar för att
aktivera objektets metoder finns även på den undre verkygspanelen i navigatören. Endast
metoder som är relevanta för ett objekt är tryckkänsliga.
<image> opg_fig16.png
<b>Fig Metoderna kan aktiveras både från verktygspanelen och popupmenyn
</topic>
<topic> opg_nav_link
System / Nethandler / Link
Mappen 'System / Nethandler / Link' visar länkar till andra Proview-stationer. Även den egna
noden finns med i listan.
I figuren nedan kan man se att den lokala noden aristotle, har kontakt med noden pwrutv.
<image> opg_fig17.png
<b>Fig Länkar till andra noder
Beskrivning av kolumnerna i bilden
Node <t>Nodnamn.
Os <t>Operativsystem och hårdvara för noden.
Link <t>Status för länken. Kan vara Up, Active, Connected, Down eller Local.
UpCount <t>Antal gånger länken till noden har etablerats.
TimeUp <t>Tid för senaste etablering av länken till noden.
</topic>
<topic> opg_nav_subcli
System / Nethandler / Subscription Client
Bilden visar prenumerationer som den aktuella stationen har lagt upp på andra stationer.
När en operatörstation visar data från processtationer i en processbild, läggs det upp
en prenumeration på varje data som visas. Det innebär att processtationerna med jämna
mellanrum skickar nya data till operatörsstationen, som då uppdaterar processbilden med
dessa data.
Om man har ett fält i en processbild som inte uppdateras, kan man gå in Subsciption Client
tabellen och se om prenumationen finns med och om den uppdateras. Varje gång nya data tas
emot för en prenumeration räknas 'Count' upp och i 'Time' läggs tidpunken in.
På första raden, i 'Uknown', kan man se antalet prenumerationer där attributet är okänt.
Det kan vara prenumerationer på en station som ännu inte är i drift, men det kan också
vara prenumerationer som är felstavade, eller på objekt som inte längre existerar.
<image> opg_fig19.png
<b>Fig Klient prenumerationer
Beskrivning av kolumnerna
Subid <t>Identitet på prenumerationen.
Time <t>Senaste ankomsttid för prenumerationsdata.
Count <t>Antal gånger data har mottagits.
Node <t>Nod som skickar data för prenumerationen.
Size <t>Storlek i bytes på prenumerations-data.
Attribute <t>Det attribut i databasen som prenumerationen gäller.
</topic>
<topic> opg_nav_subsrv
System / Nethandler / Subscription Server
Bilden visar prenumerationer som andra stationer har lagt upp på den aktuella noden, dvs
prenumertioner som skickas cykliskt från den aktuella noden till andra noder, vanligtvis
från processtationer till opertörsstationer.
<image> opg_fig18.png
<b>Fig Server prenumerationer
Beskriving av kolumnerna
Subid <t>Identitet på prenumerationen.
Count <t>Antal gånger data har skickats.
Node <t>Nod till vilken data för prenumerationen skickas.
Size <t>Storlek i bytes på prenumerations-data.
Offset <t>Offset i det objekt som data hämtas ifrån.
Attribute <t>Det attribut i databasen som prenumerationen gäller.
</topic>
<topic> opg_nav_remnode
System / Communication / RemNode
Visar en lista noder som den aktuella noden kommunicerar med mha Remote.
Remote är en funktion för att skicka data mellan noder. Noder som man vill kommunicera med
konfigureras med RemNode objekt, och olika transaktioner som ska utbytas mellan noderna
konfigureras med RemTrans objekt. Ett antal olika protokoll för datautbytet finns inlagt,
Modbus, MQ, Serial, TCP, UDP, 3964R och ALCM.
<image> opg_fig20.png
<b>Fig Lista på RemNoder
Beskrivning på kolumnerna
RemNode <t>Namn på RemNode objektet, endast de två sista namnleden visas.
Type <t>Typ av kommunikation, Modbus, MQ, Serial, TCP, UDP, 3964R eller ALCM.
Description <t>Beskrivning.
Genom att välja ut en nod och trycka Pil-Höger visas RemTrans-objekten för noden (det
går även att klicka på mappen).
Med Shift/Pil-Höger öppnas RemNode objektet.
</topic>
<topic> opg_nav_remtrans
System / Communication / RemTrans
Visar en lista på samtliga RemTrans objekt.
Ett RemTrans objekt specificerar en transaktion som skickas mellan två noder mha Remote
funktionen. Transaktionen innebär att man skickar eller tar emot data.
<image> opg_fig21.png
<b>Fig Lista på RemTrans-objekt
Beskrivning på kolumnerna
RemTrans <t>Namn på RemTrans objektet, endast sista namnledet visas.
DataValid <t>Anger att data finns som ännu ej har skickas (vid sändning) eller
<t>tagits hand om (vid mottagning).
Direction <t>Riktning på transaktionen, Snd (sändning) eller Rcv (mottagning).
TransCnt <t>Antal sända eller mottagna transaktioner.
TransTime <t>Tidpunkt för senaste transaktionen.
ErrCount <t>Antal misslyckade transaktioner.
LastSts <t>Status för senaste transaktionen.
Genom att välja ut en transaktion och trycka Pil-Höger visas innehållet i transaktionen (det
går även att klicka på mappen). Om attributet StructFile är ifyllt med den include fil
som innehåller datastrukturen för transaktionen, visas datainnehållet i klartext.
Med Shift/Pil-Höger öppnas RemTrans-objektet.
</topic>
<topic> opg_nav_device
System / Device
Visar lista med I/O enheter.
I/O systemet i Proview är indelat i fyra nivåer, agent, rack, kort och kanal.
I Device listan visas alla kort-objekt.
<image> opg_fig22.png
<b>Fig Lista över I/O enheter
Bekrivning av kolumnerna
Device <t>Namn på kort-objektet. De två sista namnleden visas.
Class <t>Kortobjektets klass.
ErrorCount <t>Felräknare.
Process <t>Process som hanterar kortet. 1: plc, 2 io_comm.
PlcThread <t>Plctråd som hanterar kortet.
Address <t>Adress som är konfigurerad för kortet.
Genom att välja ut ett enhet och trycka Pil-Höger visas kanalerna för enheten (det går
även att klicka på lövet).
</topic>
<topic> opg_nav_thread
System / PlcThread
Visar lista på trådar i plc-programmet.
Olika Plc program går med olika prioritet och med olika cykeltid. De är kopplade till
PlcThread objekt som bestämmer prioritet och cykeltid för exekveringen.
<image> opg_fig23.png
<b>Fig Lista på plc trådar
Beskrivning av kolumner
PlcThread <t>Namn på trådobjektet.
Prio <t>Trådens prioritet.
LoopCnt <t>Räknare för antal cykler sedan start av Proview.
ScanTime <t>Konfigurerad cykeltid.
Mean <t>Medelvärde på uppmätt cykeltid.
Coverage <t>Exekveringstiden för tråden i förhållande till cykeltiden i procent.
Count 1/8 <t>Antal cykler där exekveringstiden är mindre än 1/8 av cykeltiden.
Count 1/4 <t>Antal cykler där exekveringstiden är mindre än 1/4 av cykeltiden och
<t>större än 1/8.
Count 1/2 <t>Antal cykler där exekveringstiden är mindre än 1/2 av cykeltiden och
<t>större än 1/4.
Count 1/1 <t>Antal cykler där exekveringstiden är mindre än cykeltiden och
<t>större än 1/2 cykeltiden.
</topic>
<topic> opg_nav_plcpgm
System / PlcPgm
Visar en lista på alla PlcPgm objekt.
Ett PlcPgm objekt omfattar plc-kod som styr en anläggningsdel, eller utför andra typer av
beräkningar. PlcPgm objektet är kopplade till ett tråd objekt som bestämmer prioritet och
cykeltid.
<image> opg_fig24.png
<b>Fig Lista på PlcPgm objekt
Beskrivning av kolumner
PlcPgm <t>Namn på PlcPgm objektet.
PlcThread <t>Plc tråd som objektet är kopplat till.
Description <t>Beskrivning.
PlcTrace för ett PlcPgm öppnas genom att välja ut PlcPgm objektet och trycka på Ctrl+L.
Med Pil-Höger visas all fönster i Plc-programmet.
</topic>
<topic> opg_nav_logging
System / Logging
Med loggnings-funktionen kan man logga signaler och värden i databasen på en text-fil.
Innehållet i textfilen kan visas i ett kurvfönster, eller läsas in i ett kalkyl-program,
t ex Excel or Calc.
Upp till 100 attribut kan loggas i en loggfil, och det finns 10 st entry som var och en
hanterar en loggfil.
Att starta en loggning går till på följande sätt.
- Samla ihop de attribut som ska loggas i samlingsbilden, t ex genom att leta upp attributen
i databasen och trycka på Ctrl+V.
- Kontrollera med Ctrl+N att rätt attribut finns i samlingsbilden.
<image> opg_fig25.png
<b>Fig Attribut insamlade i samlingsbilden
- Öppna Logging entry 1 (System / Logging / Logging Entry 1).
- Klicka på 'Insert' knappen. Attributen överförs nu från samlingsbilden till listan på
attribut i loggentry bilden.
- Ange loggtid i ms, och ev annat filnamn.
- Starta loggningen genom att klicka på 'Start' knappen.
<image> opg_fig26.png
<b>Fig Loggentry med loggningen started
- När loggningen är klar klickar man på 'Stop' knappen. Observera att man inte får terminera
navigatorn under tid loggningen pågår. Däremot kan man lämna loggentry-sidan.
- Titta på loggresultatet i kurvform genom att aktivera 'ShowFile'.
<image> opg_fig27.png
<b>Fig Loggingen i kurvform
Loggningen kan vara av två typer, antingen loggas värdet av attributen kontinuerligt med
en viss frekvens (kontinuerlig loggning), eller loggas ett attribut varje gång dess värde
ändras (händelsestyrd loggning).
<h2>Kontinuerlig loggning
Värdet av attributen i entryt loggas vid varje cykel. På filen skrivs dessutom tiden
sedan loggningen startades. Filen kan visas i Xtt's kurvfönster med 'ShowFile' eller
läsas in i ett kalkylprogram.
<h2>Händelsestyrd logging
Ett attribut i entryt loggas om värdet av attributet har ändrats.
I loggfilen skrivs tiden för ändringen och det nya värdet. Denna typ av loggning kan inte
visas med 'ShowFile'.
<h2>Buffer
Loggningen sker först internt i en buffer. När bufferten är full töms den på fil. Vid
snabba tidskritiska förlopp kan det vara lämpligt att öka bufferstorleken för att undvika
att störningar som kan uppstå när bufferten skrivs på fil.
<h2>Villkorlig loggning
I 'ConditionParameter' kan man ange ett digitalt attribut som styr loggningen. Loggning
sker enbart om ConditionParameter är sann.
<h2>Lagra
Logg konfigureringen kan sparas med 'Store' knappen, för att återskapas vid ett senare
tillfälle med 'Restore' knappen.
</topic>
<topic> opg_nav_systemmsg
System / System Messages
Proivew's systemlogg innehåller informations-, varnings- och felmeddelande som skrivs ut
av systemets olika serverprocesser. Även applikationer kan skriva på systemloggen genom
att använda errh gränssnittet.
Meddelandena i loggfilen har olika grad av allvar, som makeras med en bokstav och färg:
F <t>rött <t>Fatal, är den allvarligaste formen av felmeddelande.
E <t>rött <t>Error, är ett felmeddelande.
W <t>gult <t>Warning, är ett varningsmeddelande.
I <t>grönt<t>Information, är ett informations meddelande.
S <t>grönt <t>Success, är ett meddelande om en framgångsrikt utförd aktivitet.
Dessutom markeras uppstart av Proview med en gulfärgad rad.
Framför allt ska man vara uppmärksam på röda meddelanden som innebär att någonting är
fel i systemet.
<image> opg_fig28.png
<b>Fig Systemloggen
</topic>
<topic> opg_nav_systemsts
System / System Status
System status visar en lista på noder i systemet, och genom att öppna en nod visas
statusbilden för noden.
Det mest intressanta in bilden är SystemStatus. Detta är en indikation på hur systemet mår.
Om SystemStatus är grön, mår systemet bra, om den är gul eller röd, är någonting fel i
systemet.
Färgmarkeringarna har samma betydelse som i Systemloggen ovan, dvs
F <t>blinkande rött <t>Fatal, är den allvarligaste formen av felstatus.
E <t>rött <t>Error, markerar felstatus.
W <t>gult <t>Warning, markerar varnings-status.
I <t>grönt<t>Information, är ett informations status.
S <t>grönt <t>Success, innebär all allt är ok.
<t>grått <t>Null status, funktionen är inte aktiverad.
Status för systemet är en summastatus av status för system- och applikations-processer. Under
systemstatus finns en lista på dessa processer, och här visas även status för dem. Dessutom
visas processernas senaste eller allvarligaste meddelande i systemloggen.
Om systemstatus t ex är gul, innebär det att någon system eller applikations process har gul
status. Förhoppningsvis kan man genom att läsa status texten och titta på systemloggen
lista ut vad felet är.
<image> opg_fig29.png
<b>Fig Statusbild för noden
Här följer en beskrivning på del olika system processerna som finns med i statusbilden.
rt_ini <t>Initiering <t>Uppstarts process som drar igång systemet. Hanterar även systemloggen.
rt_qmon <t>QCom monitorn <t>Sköter kommunikation med andra noder.
rt_neth <t>Näthanteraren <t> Hanterar utbyte av databas information mellan noder.
rt_neth_acp <t><t>Hjälp process till näthanteraren.
rt_io <t>I/O <t>Process för I/O hantering som är asynkron med Plc programmet.
rt_tmon <t>Timer monitorn <t>Hanterar sändning av prenumerationsdata.
rt_emon <t>Event monitorn <t>Hanterar larm och händelser.
rt_bck <t>Backup process <t>Hantera backup av attribut och objekt.
rt_linksup <t>Link supervision <t>Övervakning av länkar till andra noder.
rt_trend <t>Trend process <t>Hanterar lagring av trendkurvor.
rt_fast <t>Fast process <t>Hanterar lagring av snabbkurvor.
rt_elog <t>Event logg <t>Hanterar logging av händelser.
rt_webmon <t>Web monitorn <t>Förser webgränssnitten med databasinformation.
rt_webmonmh <t>Web mh monitor <t>Förser webgränssnittet med larm och händelser.
rt_sysmon <t>System monitor <t>Övervakar systemet.
plc <t>Plc processen <t>Hanterar I/O och exekverar plc-koden.
rs_remote <t>Remote processen <t>Hanterar remote kommunikation.
opc_server <t>Opc server process.
rt_statussrv <t>Status server <t>Webservice för runtime monitorn och övervakningscentralen.
</topic>
<topic> opg_nav_volumes
System / Volumes
Visar laddade volymer.
För varje volym visas namn, klass, version och en bokstavskombination LCM där L står för
loaded, C för cached och M för mounted.
<image> opg_fig30.png
<b>Fig Laddade volymer
</topic>
</headerlevel>
</chapter>
<chapter>
<topic> opg_trace
Plc trace
Plc trace används för att studera och felsöka plc-koden.
Trace öppnas med metoden 'Open Plc', eller via en korsreferens i plc-koden.
Man kan även öppna genom att välja ut ett PlcPgm objekt in navigatorn och aktivera
'Functions/OpenProgram' (Ctrl+L) i menyn.
Till höger finns ett navigationsfönster, där det visade områden är markerat med en fyrkant.
Genom att flytta fyrkanten genom att dra med MB1 flyttar man det visade området. Man kan
även zooma genom att dra med mittenknappen.
Digitala objekt med hög status markeras med rött i koden.
<image> opg_fig32.png
<b>Fig Plc Trace
Man kan titta på värdet på analoga och digitala utgångar genom att skapa s k analys-noder
som visar värdet på utgången. Dessa skapas genom att dra med mittenknappen från utgången.
En uppsättning analysnoder kan sparas och återskapas med 'File/Save Trace' och
'File/Restore Trace' i menyn.
Genom att högerklicka på ett objekt visas metoderna för objektet. En mycket användbar
metod i det här sammanhanget är korsreferenser. Korsreferenserna visas även om man
dubbelklickar på ett objekt.
<h1>Korsreferenser
Korsreferenserna är en lista på var ett objekt eller attribut förekommer i koden och i
processbilder. Om referensen innebär en läsning av värdet, markeras detta med en bok, om
det innebär en skrivning av värdet, markeras det med en penna. Läsning kan vara att värdet
visas i en bild eller hämtas upp i plckoden med ett Get objekt i koden. Skrivning kan ske
med en trycknapp i en bild eller med ett Set eller Sto objekt i koden.
<image> opg_fig33.png
<b>Fig Korsreferenser
Genom att högerklicka på korsreferensen kan man öppna plc't eller process-grafen som
referensen pekar på. På plc referenser kan man även dubbelklicka. När Plc Trace öppnas
är referensen makerad och centrerad.
<h1>Felsökning med Plc Trace och Korsreferenser
Plc trace och korsreferenser är ett mycket effektivt sätt att felsöka på.
En felsökning utgår ofta från ett larm eller en felindikering i en process bild. Genom att
aktivera metoderna 'Crossreferences' eller 'Open Plc' letar man upp det eller de ställen
i koden där objektet skrivs. Genom att analysera koden sluter man sig till vilken signal
som saknas, tar upp korsreferenserna för denna och öppnar Plc Trace där denna skrivs. På
detta sätt kan man nästla sig bakåt i koden för att slutligen hitta orsaken.
<h1>Simulering
Vid simulering, dvs när man testkör ett system utan I/O system, kan man sätta över Plc Trace
i simuleringsmod, med Mode/Simulate i menyn. I simuleringsmod kan man toggla digitala
signaler genom att klicka med Ctrl/Shift MB1 på dem i Plc Trace fönstret.
</topic>
</chapter>
<chapter>
<topic> opg_setupfile
Setup-skript
En setup-fil kan skapas på hemma-katalogen med namnet
<c>xtt_setup.rtt_com
Den kommer att exekveras när operatörsmiljön (eller rt_xtt) startas, och kan
innehålla script satser och xtt kommandon.
Här är några exempel på användbara kommandon.
<b>Öppna en graf
<c> open graph my_graph
<b>Skapa en underhålls meny i navigatören
<c> create item/text="Maintenance"/menu/destination="DataBase"/before <LINK> create item
<c> create item/text="My graph"/command="open graph my_graph"/pixmap=graph
<c> /dest=Maintenance/first
<b>Ta bort menyalternativ ur navigatörens standardmeny
<c> delete item /name=exit <LINK> delete item
<c> delete item /name=system-nethandler
<b>Kortkommando för hieraki i databasen
<c> define rb9 "show children /name=hql-rb9" <LINK> define
<b>Kortkommando for en graf
<c> define my_graph "open graph my_graph"
</topic>
<headerlevel>
<topic> opg_symbol
Symbol
En xtt symbol kan användas som kortkommando eller som variabel i ett
kommando. Om symbolen används som variabel i ett kommando ska den omgärdas
av apostrofer.
Symboler skapas med define kommandot. <link> define
Exempel på en symbol använd som ett kortkommando
<c>xtt> define p1 "show child/name=hql-hvk-pumpar-pump1"
<c>xtt> p1
Exempel på en symbol använd som en variabel
<c>xtt> define p1 hql-hvk-pumpar-StartPump1
<c>xtt> open trace 'p1'
</topic>
</headerlevel>
</chapter>
<chapter>
<topic> opg_security
Användare och privilegier
Proview innehåller ett system med användare som tilldelas privilegier. För att utföra vissa
saker krävs privilegier, och endast om användaren har dessa privilegier tillåts han att
utföra dem.
Följande privilegier används i operatörsmiljön:
RtRead <t>Läsrättigheter i runtime.
RtWrite <t>Skrivrättigheter i runtime. Gör att man kan ändra värden på attribut från
<t>navigatören.
RtEvents <t>Privilegium för att hantera larm och händelser.
System <t>System. Ger behörighet till det mesta.
Maintenance <t>Privilegium för underhållspersonal.
Process <t>Privilegium för process tekniker.
Instrument <t>Privilegium för instrument tekniker.
Operator1 <t>Privilegium för operatör.
Operator2 <t>Privilegium för operatör.
Operator3 <t>Privilegium för operatör.
Operator4 <t>Privilegium för operatör.
Operator5 <t>Privilegium för operatör.
Operator6 <t>Privilegium för operatör.
Operator7 <t>Privilegium för operatör.
Operator8 <t>Privilegium för operatör.
Operator9 <t>Privilegium för operatör.
Operator10 <t>Privilegium för operatör.
<h1>Användare
När operatörsmiljön eller Xtt startas, loggar man antingen in som en användare, eller så
tilldelas man default privilegier som defineras i Security objektet.
Om uppstarten av operatörsmiljön sker med ett operatörsplats-objekt hämtas användare från
User objektets UserName attribut. Om användare saknas eller är ogiltig öppnas
inloggings-fönstret och man måste logga in med användarnamn och passerord.
Om Xtt startas utan OpPlace objekt, hämtas privileger från Security-objektets DefaultXttPriv
attribut. Om där inte finns några privilegier som ger läsrättigheter, öppnas inloggings-
fönstret.
<b>Navigatören
För att göra förändringar i databasen från navigatören krävs RtWrite eller System. Detta
gäller även kommandot 'set parameter'.
<b>Plc Trace
För att kunna göra ändringar från Plc Trace i simuleringsmod krävs RtWrite eller System.
<b>Objektsbilder
Generellt för objektsbilder krävs det RtWrite eller System för att göra ändringar i
databasen från dem. Det finns några undantag. I ChanAi och ChanAo har även Instrument
behörighet att ändra signalområden, och att sätta en Ao i test-mod. I PID och Mode-bilderna
har Process behörighet att ändra förutom RtWrite och System. I Mode-bilden kan man dessutom
styra behörigheten genom att öppna bilden med kommandot 'open graph' och använda /access
funktionen.
<b>Processbilder
I Processbilder väljer konstruktören för varje inmatningsfält och trycknapp vilka
privilegier som krävs för att göra en ändring.
</topic>
</chapter>
<chapter>
<topic> opg_functionkeys
Funktionstangenter
Man kan använda funktionstangenterna för att snabbt ta upp bilder eller påverka objekt
i databasen.
<h1>Funktionsanrop
Följande funktioner kan anropas när en funktionstangen trycks ner.
<h2>SetDig()
Sätter ett attribut av typen Boolean. Namnet på attributet ges som argument.
<h2>ResDig()
Återställer ett attribut av typen Boolean. Namnet på attributet ges som argument.
<h2>ToggleDig()
Togglar värdet på attribut av typen Boolean. Namnet på attributet ges som argument.
<h2>Command()
Exekverar ett xtt-kommando. Kommandot ges som argument.
<h1>Setup-fil
Kopplingen mellan tangenter och funktionerna läggs i filen Rt_xtt på inloggningskatalogen.
I filen skrivs en rad för varje tangent. På raden skrivs
- eventuella modifierare (Shift, Control eller Alt).
- <Key> följt av namnet på tangenten, t ex <Key>F7 eller <Key>m.
- ett kolon föjt av funktionen som ska anropas med argument.
Ett '#' tecken först på raden anger en kommentar.
<b>Exempel
<c>#
<c># Configuration of Global function keys
<c> <Key>F5: Command(event ack /prio=A)
<c> <Key>F6: Command(event ack /prio=NOA)
<c> <Key>F7: Command(show alarm)
<c> <Key>F8: Command(show event)
<c> <Key>F9: Command(close all/except=navigator)
<c> Shift Control <Key>m: SetDig(F1-Start.ActualValue)
<c> Shift Control <Key>n: SetDig(F1-Stop.ActualValue)
<c> Shift Alt <Key>n: SetDig(F1-Reset.ActualValue)
</topic>
</chapter>
<chapter>
<TOPIC> help command
Xtt kommandon
add parameter<t>Addera ett attribut till en bild <LINK> add parameter
add menu <t>Addera ett menyalternativ till en xtt meny <LINK> add menu
collect <t>Addera ett attribut till samlingsbilden <LINK> collect
call method <t>Anropa en xtt metod för ett objekt <LINK> call method
check method <t>Kontrollera om en xtt metod är relevant för ett objekt <LINK> check method
collect show<t>Visa samlingsbilden <LINK> collect show
collect clear<t>Töm samlingsbilden <LINK> collect clear
close alarmlist <t>Stäng larmlistan <LINK> close alarmlist
close eventlist <t>Stäng händleslistan <LINK> close eventlist
close graph <t>Stäng en graf <LINK> close graph
close navigator <t>Stäng navigatorn <LINK> close navigator
create item <t>Skapa ett menyalternativ <LINK> create item
crossreference<t>Visa korsreferenser <LINK> crossreference
exit <t>Stäng xtt <LINK> exit
define <t>Definiera en symbol <LINK> define
delete item <t>Ta bort ett menyalternativ <LINK> delete item
help <t>Visa hjälp <LINK> help
login <t>Inloggning av användare <LINK> login
logout <t>Utloggning av änvändare <LINK> logout
logging <t>Logga attribut till fil <LINK> logging
open graph <t>Öppna en graf <LINK> open graph
open jgraph <t>Öppna en java graf <LINK> open jgraph
open fileview <t>Öppna en fileview <LINK> open fileview
open trend <t>Öppna en trendkurva <LINK> open trend
open operatorwindow<t>Öppna operatörsfönstret <LINK> open operatorwindow
read object <t>Läs innehållet av ett objekt från fil <LINK> read object
search <t>Leta efter objekt eller sträng <LINK> search
set advanceduser<t>Sätt avancerad användare <LINK> set advanceduser
set folder <t>Aktivera en flik i ett flikfönster. <LINK> set folder
set parameter<t>Sätt värdet på ett attribut <LINK> set parameter
setup <t>Xtt konfigurering <LINK> setup
show version<t>Visa xtt version <LINK> show version
show symbol <t>Visa en symbol <LINK> show symbol
show plcpgm <t>Visa PlcPgm objekt <LINK> show plcpgm
show plcthreads<t>Visa PlcThread objekt <LINK> show plcthreads
show links <t>Visa länkar <LINK> show links
show logfiles<t>Visa xtt loggfiler <LINK> show logfiles
show subsrv <t>Visa prenumerations servern <LINK> show subsrv
show subcli <t>Visa prenumerations klienten <LINK> show subcli
show device <t>Visa I/O enheter <LINK> show device
show remnode<t>Visa RemNode objekt <LINK> show remnode
show remtrans<t>Visa RemTrans objekt <LINK> show remtrans
show database<t>Visa runtime databasen <LINK> show database
show file <t>Visa filer <LINK> show file
show graph <t>Visa graf-filer <LINK> show graph
show time <t>Visa aktuell tid <LINK> show time
show default<t>Visa default katalog <LINK> show default
show children<t>Visa ett objekts barn <LINK> show children
show object<t>Visa innehållet i ett objekt <LINK> show object
show objid <t>Visa ett objekts identitet <LINK> show objid
show parameter<t>Visa ett objektsattribut <LINK> show parameter
show logging<t>Vissa ett loggingentry <LINK> show logging
show eventlist<t>Visa händlselistan <LINK> show eventlist
show alarmlist<t>Visa larmlistan <LINK> show alarmlist
show user <t>Visa nuvarande användare <LINK> show user
sound <t>Spela upp ett ljud definerat av ett ljudobjekt <LINK> sound
store <t>Lagra en lista på attribut in en fil <LINK> store
write object <t>Skriv innehållet i ett objekt till en fil <LINK> write object
</TOPIC>
<headerlevel>
<TOPIC> call method <style> function
Kommando call method
Anropa en xtt metod för ett objekt.
Xtt metoder aktiveras normalt från objektets popupmeny. Det här
är ett alternativt sätt att anropa en metod, t ex från en kommando
trycknapp i en Ge graf.
<B>xtt> call method /method= /object=
/method= <t>Namnet på metodet, dvs attributet ButtonName
<t>i definitionen av metoden.
/object= <t>Namn på objektet.
</TOPIC>
<TOPIC> check method <style> function
Kommando check method
Anropa en xtt-metods filterfunktion för ett objekt.
Filterfunktionen används för att avgöra om en metod knapp ska visas
eller ej. Detta kommando kan användas för att göra en metod knapp
okänslig i en Ge graf. Det returnerar filter-värdet till anroparen.
Kommandot kan endast användas i en Ge graf.
<B>xtt> check method /method= /object=
/method= <t>Namnet på metodet, dvs attributet ButtonName
<t>i definitionen av metoden.
/object= <t>Namn på objektet.
</TOPIC>
<TOPIC> add parameter <style> function
Kommando add parameter
Addera ett attribut till listan av attribut, och visa attributets
värde.
En lista på attribut skapas med kommandot 'show parameter', och
fler attribut kan adderas till listan med 'add parameter'.
Objekt som matchar specificerad klass, namn och hierarki visas i listan.
<B>xtt> add parameter /parameter= /name= /class= /hierarchy=
/parameter= <t>Namn på attributete som ska visas.
/name= <t>Namn på objektet, Wildcard är tillåtet.
/class= <t>Visar objekt av angiven klass.
/hierarchy= <t>Visar objekt under angivet objekt i hierarkin.
<H2>Se även
show parameter <LINK> show parameter
</TOPIC>
<TOPIC> show parameter <style> function
Kommando show parameter
Skapa en ny lista, addera attribut till listan, och visa värdet på
attributet.
Fler attribut kan adderas till listan med 'add parameter'.
Objekt som matchar klass, namn och hierarki beskrivninegen visas på
skärmen.
<B>xtt> show parameter /parameter= /name= /class= /hierarchy=
/parameter= <t>Namn på attributete som ska visas.
/name= <t>Namn på objektet, Wildcard är tillåtet.
/class= <t>Visar objekt av angiven klass.
/hierarchy= <t>Visar objekt under angivet objekt i hierarkin.
<H2>Se även
add parameter <LINK> add parameter
</TOPIC>
<TOPIC> set parameter <style> function
Kommando set parameter
Sätt värdet på ett attribut.
<B>xtt> set parameter /name= /value=
/name= <t>Namn på attributet.
/value= <t>Värde som ska sättas på attributet.
/bypass= <t>Gå förbi behörighetsrestriktioner.
</TOPIC>
<TOPIC> set folder <style> function
Kommando set folder
Aktivera en flik i ett flikfönster objekt.
<B>xtt> set folder 'graphname' /name= /index=
/name= <t>Namn på filkfönster objektet.
/index= <t>Index på filken som ska aktiveras. Indexeringen startar från 0.
</TOPIC>
<TOPIC> add menu <style> function
Kommando add menu
Addera ett menyalternativ till xtt's meny-hierarki.
Menyn placeras sist i menyn. Menyalternativet kan användas för
att exekvera ett xtt kommando eller visa attributen för ett objekt.
<B>xtt> add menu /text= /command=
<B>xtt> add menu /text= /object=
/text<t>Text för menyalternativet.
/command<t>Xtt som exekveras när menyalternativet aktiveras.
/object<t>Objekt som visas när menyalternativet aktiveras.
<H2>Se även
create item <LINK> create item
delete item <LINK> delete item
</TOPIC>
<TOPIC> collect <style> function
Kommando collect
Addera ett attribut till samlingsbilden.
Om namnet inte anges adderas det utvalda objektet.
<B>xtt> collect
<B>xtt> collect /name=
/name<t>Namn på attributet.
Exempel
xtt> collect /name=hql-hvk-Start.ActualValue
<H2>Se även
collect show <LINK> collect show
collect clear <LINK> collect clear
</TOPIC>
<TOPIC> collect show <style> function
Kommando collect show
Visa samlingsbilden.
<B>xtt> collect show
<H2>Se även
collect <LINK> collect
collect clear <LINK> collect clear
</TOPIC>
<TOPIC> collect clear <style> function
Kommando collect clear
Töm samlingsbilden.
<B>xtt> collect clear
<H2>Se även
collect <LINK> collect
collect show <LINK> collect show
</TOPIC>
<TOPIC> create item <style> function
Kommando create item
Skapa ett menyalternativ i xtt's meny hierarki.
Menyalternativet kan användas för att exekvera ett
xtt kommando, eller för att öppna en meny.
<B>xtt> create item /text= /command= /pixmap= /destination= /after /before /firstchild /lastchild
<B>xtt> create item /text= /menu /destination= /after /before /firstchild /lastchild
/text<t>Text på menyalternativet.
/command<t>Xtt kommando som exekveras när menyalternativet aktiveras.
/menu <t>När menyalternativet aktiveras öppnas en meny.
/destination<t>Destinations meny. Kan vara förälder eller syskon. Om destination
<t>är en null-sträng skapas menyalternativet på topnivån.
/after <t>Placerar menyalternativet som syskon efter destinationen.
/before <t>Placerar menyalternativet som syskon före destinationen.
/firstchild<t>Placerar menyalternativet som första barn till destinationen.
/lastchild<t>Placerar menyalternativet som sista barn till destinationen.
/pixmap <t>Pixmap för menyalternativet: 'map', 'leaf', 'graph', 'list' eller 'script'.
Exempel
xtt> create item /text="Motor1"/dest=Maintenance-Motors/command="open graph motor1"/first
<H2>Se även
add menu <LINK> add menu
delete item <LINK> delete item
</TOPIC>
<TOPIC> crossreference <style> function
Kommando crossreference
Visar korsreferenser.
Korsreferenser kan visas för
- Signaler.
- Objektreferenser med GetData.
- Referenser i Ge grafer.
- c-funktioner eller strängar som förekommer koden i CArithm eller
DataArithm objekt.
Om det inte anges några kvalifierare visas korsreferenser för det utvalda
objektet.
<B>xtt> crossreference
<B>xtt> crossreference /name=
<B>xtt> crossreference /function= [/brief]
<B>xtt> crossreference /string= [/brief]
/name <t>Namn på ett objekt.
/function<t>Namn på en c-funktion anropad i en CArithm eller DataArithm.
/string <t>Sträng som letas efter i koden för CArithm och DataArithm objekt.
Exempel
xtt> cross /name=hql-hvk-Start
xtt> cross /function="CreateHvkObject"
</TOPIC>
<TOPIC> exit <style> function
Kommando exit
Stäng xtt.
<B>xtt> exit
</TOPIC>
<TOPIC> define <style> function
Kommando define
Definiera en symbol.
<B>xtt> define 'symbolname' 'text'
<h2>Se även
symbol <LINK> symbol
show symbol <LINK> show symbol
symbolfile <LINK> symbolfile
</TOPIC>
<TOPIC> delete item <style> function
Kommando delete item
Ta bort ett menyalternativ.
Menyalternativet kan vara skapat av användaren, eller tilhöra xtt's
standardmeny.
<B>xtt> delete item /name=
/name<t>Namn på menyalternativet.
Exempel
xtt> delete item /name=exit
<H2>Se även
add menu <LINK> add menu
create item <LINK> create item
</TOPIC>
<TOPIC> help <style> function
Kommando help
Visar hjälp-information för ett ämne.
Hjälp-informationen letas upp i en hjälp fil. Filen kan vara
bas-hjälpfilen, projekt-hjälpfilen eller någon anna hjälpfil.
Om ingen hjälpfil anges letas efter ämnet i bas- och projekt-
hjälpfilerna.
<B>xtt> help 'subject' [/popnavigator] [/bookmark=] [/helpfile=]
<B> [/returncommand=][/width=][/height=]
/popnavigator <t>Hjälpfönstret läggs ovanpå övriga fönster och ges input focus.
<t>Detta kan användas när kommandot ges i en Ge graf.
/bookmark <t>Nammet på ett bokmärke inom ett ämne. Visningen kommer att
<t>placeras på bokmärket.
/helpfile <t>En hjälpfil som innehåller information om angivet ämne.
/returncommand <t>Ett kommando som exekveras vid retur från hjälpämnet.
/width <t>Önskad bredd på hjälpfönstret.
/height <t>Önskad höjd på hjälpfönstret.
<H2>Se även
helpfile <LINK> helpfile
</TOPIC>
<TOPIC> login <style> function
Kommando login
Inloggning med användare och passerord. Användarens priviligier kommer
att hämtas från användardatabasen. Dessa avgör användarens behörighet.
<B>xtt> login 'username' 'password'
<H2>Se även
logout <LINK> logout
show user <LINK> show user
</TOPIC>
<TOPIC> logout <style> function
Kommando logout
Loggar ut en användare, och återgår till den ursprungliga användaren.
<B>xtt> logout
<H2>Se även
login <LINK> login
show user <LINK> show user
</TOPIC>
<TOPIC> open graph <style> function
Kommando open graph
Öppna en Ge graf. Grafen kan anges men en pwg-fil eller med ett
XttGraph objekt.
<B>xtt> open graph 'filename' /width= /height= /scrollbar /menu /navigator
<B> /instance= /focus= /inputempty
<B>xtt> open graph /object= /focus= /inputempty
/width <t>Bredd i pixel.
/height <t>Höjd i pixel.
/scrollbar<t>Fönstret skapas med skrollister.
/menu <t>Fönstret skapas med en meny.
/navigator<t>En navigationsfönster öppnas.
/object <t>Ett XttGraph-objekt. Om namnsträngen börjar med '*', ersätts * med
<t>nodenamnet.
/instance <t>Öppnar objektsbilden för det objekt som anges i instance.
/focus <t>Namn på ett inmatnings objekt. Objektet kommer att ges input focus
<t>när grafen öppnas.
/inputempty <t>Texten i inmatningsfältet töms.
</TOPIC>
<TOPIC> open jgraph <style> function
Kommando open jgraph
Öppna en java frame. Java frame'en kan vara exporterad från Ge eller editerad
i t ex JBuilder.
<B>xtt> open jgraph 'name'
</TOPIC>
<TOPIC> open fileview <style> function
Kommando open fileview
Öppnar en fileview som viar filer som matchar det specifierade mönstret.
Fileview'en kan startas i 'Open File' eller 'Save File' mod, dvs för att
öppna eller spara filer.
I öppnings mod, väljs en fil ut och det utvalda filnamnet skrivs till ett
sträng attribut i databasen (target). Samtidigt sätts ett digitalt attribut
(trigger) för att indikera att öppningen ska utföras. Själva öppningen av
filen kan utföras av ett DataFRead objekt i plc programmet, men måste
programmeras av användaren.
I spara mod. kan en fil väljas ut, men man kan även mata in ett filnamn.
Filnamnet skrivs till ett strängattribut och en digital signal sätts. Själva
spara funktionen kan utföras med ett DataFWrite objekt från plc programmet.
<B>xtt> open fileview /file= /target= /trigger= /type=save [/ftype=]
<B>xtt> open fileview /file= /target= /trigger= /type=open
/file <t>Mönster för filnamn, innehållande wildcard '*', för filer som ska
<t>visas i fileview'en.
/ftype <t>Default filtyp. Om ett angivet filnamn (is spara mod) inte innehåller
<t>filtyp, adderas den defaulta filtypen till filnamnet.
/target <t>Strängattribut där det utvalda eller inmatade filnamnet ska lagras.
/trigger <t>Boolean attribut som sätt för att indikera att öppna eller spara ska
<t>utföras.
/type <t>'save' eller 'open'
<b>Exempel
open fileview /file="$pwrp_load/*.txt"/ftype="txt"/target=P1-Sv.ActualValue/trigger=P1-Dv.ActualValue/type=save
</TOPIC>
<TOPIC> open trace <style> function
Kommando open trace
Öppna Plc Trace för ett plcfönster. Om namn inte anges öppnas trace för
det utvalda PlcPgm dller PlcWindow objektet.
<B>xtt> open trace [/name=] [/center=]
/name <t>PlcPgm eller PlcWindow.
/center <t>Objekt i plc-fönstret som ska centeras och makeras.
<t>Ange sista segmentet av namnet.
Exempel
xtt> open trace /name=hql-hvk-flow /center=Pid0
</TOPIC>
<TOPIC> open trend <style> function
Kommando open trend
Öppnar kurvfönstret för ett DsTrend eller PlotGroup objekt.
<B>xtt> open trend [/name=] [/title=]
/name <t>DsTrend eller PlotGroup. Kan vara en lista av DsTrend-objekt separerade
<t>med komma-tecket.
/title <t>Titel på kurvfönsret.
Exempel
xtt> open trend /name=hql-hvk-flow-Trend,hql-hvk-temperature-Trend
</TOPIC>
<TOPIC> open operatorwindow <style> function
Kommando open operatorwindow
Öppna operatörsfönstret.
<B>xtt> open operatorwindow 'opplace-object'
</TOPIC>
<TOPIC> close graph <style> function
Kommando close graph
Stäng en Ge graf. Grafen kan anges som en pwg-fil eller med ett XttGraph objekt.
<B>xtt> close graph 'filename' /instance=
<B>xtt> close graph /object=
/object <t>Ett XttGraph-objekt. Om namnsträngen börjar med '*', ersätts * med
<t>nodeobjektet.
/instance <t>Stänger objektsbilden för angiven instans.
</TOPIC>
<TOPIC> close alarmlist <style> function
Kommando close alarmlist
Stänger larmlistan.
<B>xtt> close alarmlist
</TOPIC>
<TOPIC> close eventlist <style> function
Kommando close eventlist
Stänger händleselistan.
<B>xtt> close eventlist
</TOPIC>
<TOPIC> close navigator <style> function
Kommando close navigator
Stänger navigatören.
<B>xtt> close navigator
</TOPIC>
<TOPIC> search <style> function
Kommando search
Letar efter ett objektsnamn eller en sträng.
<B>xtt> search 'object'
<B>xtt> search /regularexpression 'expression'
<B>xtt> search /next
</TOPIC>
<TOPIC> read object <style> function
Kommando read object
Läs innehållet i ett objekt från ej fil.
Läser innehållet i en fil, vanligvis skapad med kommandot 'write object',
och lägger in data i det specificerade objektet.
<B>xtt> read object /object= /file=
/object <t>Namn på objektet.
/file <t>Namn på fil att läsa från.
</TOPIC>
<TOPIC> set advanceduser <style> function
Kommando set advanceduser
Sätt eller återställ advanced user.
<B>xtt> set advanceduser
<B>xtt> set noadvanceduser
<H2>Se även
advanced user <LINK> advanced user
</TOPIC>
<TOPIC> setup <style> function
Xtt setup
Unställning av xtt egenskaper.
ConfigureObject <t><t>RttConfigure objekt.
DefaultDirectory<t><t>Default filkatalog för kommandofiler.
Scantime <t><t>Scantid för att updatera värden.
AlarmMessage <t><t>Visa semaste larm på Xtt's meddelanderad.
AlarmBeep <t><t>Ge ljudsignal om det finns okvitterade larm.
AlarmReturn <t><t>Visa retur händelser i händelselistan.
AlarmAck <t><t>Visa kvittens händelser i händleslistan.
SymbolFilename <t><t>Symbolfil. <LINK> symbolfile
Verify <t><t>Sätt verifiering vid exekvering av kommandofiler.
AdvancedUser <t><t>Användaren är avancerad. <LINK> advanced user
</TOPIC>
<TOPIC> show version <style> function
Kommando show version
Visa xtt version.
<B>xtt> show version
</TOPIC>
<TOPIC> show symbol <style> function
Kommando show symbol
Visa en symbol, eller alla symboler.
<B>xtt> show symbol 'symbol'<t> <t>Visa symbol 'symbol'
<B>xtt> show symbol<t> <t>Visa alla symboler
<h2>Se även
define <LINK> define
symbol <LINK> symbol
</TOPIC>
<TOPIC> show plcpgm <style> function
Kommando show plcpgm
Lista alla PlcPgm objekt is systemet.
<B>xtt> show plcpgm
</TOPIC>
<TOPIC> show plcthreads <style> function
Kommando show plcthreads
Visa alla PlcThread objekt.
PlcThread objekt innehåller information och statistic för
plc-trådarna.
<B>xtt> show plcthreads
</TOPIC>
<TOPIC> show links <style> function
Kommando show links
Visa länkar till andra Proview system.
<B>xtt> show links
</TOPIC>
<TOPIC> show logfiles <style> function
Kommando show logfiles
Visa xtt logg-filer på arbetskatalogen.
En logg-fil skapas med logging funktionen i rtt och xtt och
har filtypen .rtt_log.
En loggfil öppnas med dubbel-klick, eller genom att välja ut filen
och trycka på return.
<B>xtt> show logfiles
</TOPIC>
<TOPIC> show alarmlist <style> function
Kommando show alarmlist
Öppna larmlistan.
<B>xtt> show alarmlist
</TOPIC>
<TOPIC> show eventlist <style> function
Kommando show eventlist
Öppna händleslistan.
<B>xtt> show eventlist
</TOPIC>
<TOPIC> show user <style> function
Kommando show user
Visa nuvarande användare med privilegier.
<B>xtt> show user
</TOPIC>
<TOPIC> sound <style> function
Kommando sound
Spela upp ett ljud definerat med ett Sound eller
SoundSequence objekt.
<B>xtt> sound 'object'
</TOPIC>
<TOPIC> store <style> function
Kommando store
Lagra en attributlista till en skriptfil, eller lagra symboltabellen
till en script-fil.
Den genererade script-filen kan exekveras från kommando prompten
med @'filnamn'. Den återfinns även bland script-filer i menyn under
'Store'.
Om /collect används, återskapas attributlistan som en samlingsbild.
<B>xtt> store 'filename' [/collect]
<B>xtt> store 'filename' /symbols
/collect <t>Listan återskapas som en samlingsbild.
/symbols <t>Den nuvarande symboltabellen lagras.
</TOPIC>
<TOPIC> show logging <style> function
Kommando show logging
Visar ett logging entry.
<B>xtt> show logging /entry=
</TOPIC>
<TOPIC> logging <style> function
Kommando logging
Ett antal kommandon för att hantera logging funktionen i Xtt.
logging start <LINK> logging start
logging stop <LINK> logging stop
logging set <LINK> logging set
logging show <LINK> logging show
logging store <LINK> logging store
</TOPIC>
<TOPIC> write object <style> function
Kommando write object
Skriv innehållet i ett objekt till en fil.
<B>xtt> write object /object= /file=
/object <t>Namn på objektet.
/file <t>Namn på fil att skriva till.
</TOPIC>
</headerlevel>
</chapter>
//
// Script
//
<chapter>
<TOPIC> script
Xtt script
execute script <LINK> execute script
datatypes <LINK> datatypes
datatype conversions <LINK> datatype conversions
variable declarations <LINK> variable declarations
operators <LINK> operators
main-endmain <LINK> main-endmain
function-endfunction <LINK> function-endfunction
if-else-endif <LINK> if-else-endif
while-endwhile <LINK> while-endwhile
for-endfor <LINK> for-endfor
break <LINK> break
continue <LINK> continue
goto <LINK> goto
include <LINK> include
printf() <LINK> printf()
scanf() <LINK> scanf()
fprintf() <LINK> fprintf()
fgets() <LINK> fgets()
fopen() <LINK> fopen()
fclose() <LINK> fclose()
exit() <LINK> exit()
verify() <LINK> verify()
time() <LINK> time()
edit() <LINK> edit()
extract() <LINK> extract()
element() <LINK> element()
toupper() <LINK> toupper()
tolower() <LINK> tolower()
translate_filename() <LINK> translate_filename()
xtt-commands <LINK> xtt-commands
GetAttribute() <LINK> getattribute()
GetChild() <LINK> getchild()
GetParent() <LINK> getparent()
GetNextSibling() <LINK> getnextsibling()
GetClassList() <LINK> getclasslist()
GetNextObject() <LINK> getnextobject()
GetObjectClass() <LINK> getobjectclass()
GetNodeObject() <LINK> getnodeobject()
GetRootList() <LINK> getrootlist()
CutObjectName() <LINK> cutobjectname()
MessageError() <LINK> messageerror()
MessageInfo() <LINK> messageinfo()
GetCurrentText() <LINK> getcurrenttext()
GetCurrentObject() <LINK> getcurrentobject()
</TOPIC>
<headerlevel>
<TOPIC> execute script
Exekvera ett script
En script-fil exekveras från kommando-raden med kommandot
xtt> @'filename'
</TOPIC>
<TOPIC> datatypes
Datatyper
Datatyperna är float, int och string.
int <t>heltals värde.
float <t>32-bitars flyttals värde.
string <t>textsträng, 80 tecken lång (null terminerad).
Det finns tre olika tabeller som en variabel kan deklareras i: local, global
och extern. En lokal variabel är känd inom en funktion, en global är känd
i alla funktioner inom en fil, en extern är känd i alla filer som exekveras
i en session.
</TOPIC>
<TOPIC> datatype conversions
Datatyps konvertering
Om ett uttryck består av variabler och funktioner med olika datatyper kommer
variablerna att konverteras med företräde string, float, int. Om två operander
har typerna float och string, eller int och string, kommer resultatet att bli
string. Vid en tilldelning, kommer värdet av ett uttryck att konverteras till
typen för den tilldelade variabeln. Detta gäller även om resultatet är en sträng
och variablerna är av type float och int.
<b>Exempel
<c>string str;
<c>int i = 35;
<c>str = "Luthor" + i;
The value in str will be "Luthor35".
<c>float f;
<c>string str = "3.14";
<c>int i = 159;
<c>f = str + i;
The value in f will be 3.14159.
</TOPIC>
<TOPIC> variable declarations
Variabel deklarationer
En variabel måste deklareras innan den avänds.
En deklaration består av
- tabellen (global eller extern, om local ska inte tabellen anges)
- datatypen (int, float eller string)
- variabelnamn (känsligt för stora och små bokstäver)
- antal element, om variabeln är en vektor
- likameds tecken följt av initierings värde, om det utelämnas är
intitialvärdet 0 eller en null-sträng
- semikolon.
En extern variabel bör tas bort (med delete) när den inte längre används.
<b>Exempel
int i;
float flow = 33.4;
string str = "Hello";
extern int jakob;
global float ferdinand = 1234;
</TOPIC>
<TOPIC> operators
Operatorer
Operatorerna har samma funktion som i c, med vissa begränsningar. Alla
operatorer är inte implementerade. Vissa operatorer (+,=,==) kan även
operera på string variabler. Prioriteten för operatorer är densamma som i c.
Operator <t>Beskrivning <t>Datatyper
+ <t>plus <t>int, float, string
- <t>minus <t>int, float
* <t>multiplikation <t>int, float
/ <t>division <t>int, float
++ <t>inkrement, postfix only. <t>int, float
-- <t>dekrement, postfix only <t>int, float
>> <t>bitar höger-skift <t>int
<< <t>bitar vänster-skift <t>int
< <t>mindre än <t>int, float
> <t>större än <t>int, float
<= <t>mindre eller lika med <t>int, float
>= <t>större eller lika med <t>int, float
== <t>lika med <t>int, float, string
!= <t>ej lika med <t>int, float, string
& <t>bitvis och <t>int
| <t>bitvis eller <t>int
&& <t>logisk och <t>int
|| <t>logisk eller <t>int
! <t>logisk not <t>int
= <t>tilldelning <t>int, float, string
+= <t>addera och tilldela <t>int, float
-= <t>minus och tilldela <t>int, float
&= <t>logisk och och tilldelning <t>int
|= <t>logisk eller och tilldelning <t>int
</TOPIC>
<TOPIC> main-endmain <style> function
main-endmain
main och endmain satserna kontrollerar var exekveringen börjar och slutar.
Om det inte finns några main och endmain satser, startar exekveringen i
början på filen, och slutar i slutet på filen.
<b>Exempel
<c>main()
<c> int a;
<c> a = p1 + 5;
<c> printf( "a = %d", a);
<c>endmain
</TOPIC>
<TOPIC> function-endfunction <style> function
function-endfunction
En funktions deklaration består av
- datatypen för funktionens retur värde
- namnet på funktionen
- en argumentlista separerade med kommatecken och omgiven av parenteser.
Argumentlistan innehåller typdeklaration och namn på varje argument.
Argumenten som skickas med vid anropet kommer att konverteras till den typ
som är deklarerad i argumentlistan. Om ett argument ändrar värde inne i
funktionen, kommer det nya värdet att överföras till anroparen. På detta
sätt blir de möjlig att returnera andra värden än retur värdet för funktionen.
En funktion kan innehålla en eller flera return statser. Return satsen kommer
att flytta över exekveringen till anroparen och returnera det angivna värdet.
<b>Exempel
<c>function float calculate_flow(float a, float b)
<c> float c;
<c> c = a + b;
<c> return c;
<c>endfunction
...
<c>flow = korr * calculate_flow( v, 35.2);
</TOPIC>
<TOPIC> if-else-endif <style> function
if-else-endif
Raderna mellan en if-endif stats exekveras om uttrycket i if-statsen är sant.
Uttrycket ska omges av parenteser. Om en else sats hittas mellan if och endif,
kommer raderna mellan else och endif att exekveras när uttrycket är falskt.
<b>Exempel
<c>if ( i < 10 && i > 5)
<c> a = b + c;
<c>endif
<c>if ( i < 10)
<c> a = b + c;
<c>else
<c> a = b - c;
<c>endif
</TOPIC>
<TOPIC> while-endwhile <style> function
while-endwhile
Raderna mellan en while-endwhile sats exekveras så länge uttrycket i
while-satsen är sant. Uttrycket ska omges av parentser.
<b>Exempel
<c>while ( i < 10)
<c> i++;
<c>endwhile
</TOPIC>
<TOPIC> for-endfor <style> function
for-endfor
Raderna mellan en for-endfor sats exekveras så länge mitten-uttrycket i
for-satsen är sant. for-satsen består av tre uttryck, avgränsade med semicolon
och omgivna av parenteser. Det första uttrycket exekveras före den första
loopen, det tredje exekveras efter varje loop, och det i mittne exekveras
före varje loop, och om det är sant, gör ytterligare ett varv, annars lämnas
loopen.
<b>Exempel
<c>for ( i = 0; i < 10; i++)
<c> a += b;
<c>endfor
</TOPIC>
<TOPIC> break <style> function
break
En break sats kommer att söka efter nästa endwhile eller endfor sats
och försätta exekveringen på raden efter denna.
<b>Exempel
<c>for ( i = 0; i < 10; i++)
<c> a += b;
<c> if ( a > 100)
<c> break;
<c>endfor
</TOPIC>
<TOPIC> continue <style> function
continue
En continue sats kommera att söka efter närmast föregående while eller
for sats och forsätta att utföra loopen.
<b>Exempel
<c>for ( i = 0; i < 10; i++)
<c> b = my_function(i);
<c> if ( b > 100)
<c> continue;
<c> a += b;
<c>endfor
</TOPIC>
<TOPIC> goto <style> function
goto
En goto sats orsakar ett hopp i exekveringen till en rad som är
definierad med en label. Label raden avslutas med ett kolon.
<b>Exempel
<c> b = attribute("MOTOR-ON.ActualValue", sts);
<c> if (!sts)
<c> goto some_error;
<c> ...
<c>some_error:
<c> say("Something went wrong!");
</TOPIC>
<TOPIC> include <style> function
include
En script include-fil xom innehåller funktioner kan inkluderas med
#include satsen. Default filtyp för filen är '.rtt_com'.
<b>Exempel
<c>#include <my_functions>
</TOPIC>
<TOPIC> printf() <style> function
printf()
int printf( string format [, (arbitrary type) arg1, (arbitrary type) arg2])
<b>Beskrivning
Formaterad utskrift. C-syntax. Format argument och inget, ett eller två
värde argument.
Returnerar antal utskrivna tecken.
<b>Argument
string <t>format <t>Format.
godtycklig typ <t>arg1 <t>Värde argument. Valfritt, Kan vara int,
<t> <t>float eller string.
godtycklig typ <t>arg2 <t>Värde argument. Valfritt. Kan vara int,
<t> <t>float eller string.
<b>Exempel
<c> printf( "Watch out!");
<c> printf( "a = %d", a);
<c> printf( "a = %d och str = %s", a, str);
</TOPIC>
<TOPIC> scanf() <style> function
scanf()
int scanf( string format , (godtycklig typ) arg1)
<b>Beskrivning
Formaterad inmatning. C-syntax.
Returnerar antal inlästa tecken.
<b>Argument
string <t>format <t>Format.
godtycklig typ <t>arg1 <t>Värde argument. Returnerat. Kan vara int,
<t> <t>float eller string.
<b>Exempel
<c> scanf( "%d", i);
</TOPIC>
<TOPIC> fprintf() <style> function
fprintf()
int fprintf( int file, string format [, (godtycklig typ) arg1,
(godtycklig typ) arg2])
<b>Beskrivning
Formaterad utskrift på fil. C-syntax. Format argument och inget, ett eller två
värde argument.
Returnerarn antal utskrivna tecken.
<b>Argument
int <t>file <t>Fil id returnerat av fopen.
string <t>format <t>Format.
godtycklig typ <t>arg1 <t>Värde argument. Valfritt. Kan vara int,
<t> <t>float eller string.
godtycklig typ <t>arg2 <t>Värde argument. Valfritt. Kan vara int,
<t> <t>float eller string.
<b>Exempel
<c> int outfile;
<c> outfile = fopen( "my_file.txt", "w");
<c> if (!outfile)
<c> exit();
<c> fprintf( outfile, "Some text");
<c> fprintf( outfile, "a = %d", a);
<c> fclose( outfile);
</TOPIC>
<TOPIC> fgets() <style> function
fgets()
int fgets( string str, int file)
<b>Beskrivning
Läser en rad från en angiven fil.
Returnerar noll vid filslut.
<b>Argument
string <t>str <t>Läst rad. Returnerad.
int <t>file <t>Fil id returnerad av fopen.
<b>Exempel
<c> file = fopen("some_file.txt","r");
<c> while( fgets( str, file))
<c> say( str);
<c> endwhile
<c> fclose( file);
</TOPIC>
<TOPIC> fopen() <style> function
fopen()
int fopen( string filespec, string mode)
<b>Beskrivning
Öppnar en fil för att läsa eller skriva.
Returnerar en fil identitet, Om filen inte kunde öppnas, returneras noll.
<b>Argument
string <t>filespec <t>Namn på filen.
string <t>mode <t>Access mod
<b>Exempel
<c> int infile;
<c> int outfile;
<c> infile = fopen("some_file.txt","r");
<c> outfile = fopen("another_file.txt","w");
<c> ...
<c> fclose( infile);
<c> fclose( outfile);
</TOPIC>
<TOPIC> fclose() <style> function
fclose()
int fclose( int file)
<b>Beskrivning
Stänger en öppnad fil.
<b>Argument
int <t>file <t>fil-id returnerad av fopen.
<b>Exempel
<c> int infile;
<c> infile = fopen("some_file.txt","r");
<c> ...
<c> fclose( infile);
</TOPIC>
<TOPIC> exit() <style> function
exit()
int exit()
<b>Beskrivning
Avslutar exekveringen av en fil.
<b>Exempel
<c> exit();
</TOPIC>
<TOPIC> verify() <style> function
verify()
int verify( [int mode])
<b>Beskrivning
Sätter eller visar verifikatione mod. Om verifiering är till, visas alla
exekverade rader på skärmen.
Returnerar nuvarande verifikations mod.
<b>Argument
int <t>mode <t>verifikaion till (1) eller från (0). Valfri.
<b>Exempel
<c> verify(1);
</TOPIC>
<TOPIC> time() <style> function
time()
string time()
<b>Beskrivning
Returnerar nuvarande tid i strängformat.
<b>Exempel
<c> string t;
<c> t = time();
</TOPIC>
<TOPIC> edit() <style> function
edit()
string edit( string str)
<b>Beskrivning
Tar bort inledande och avslutande blanktecken och tabbar, och ersätter flera
tabbar och blanktecken med ett blanktecken.
Returnerar den editerade stängen.
<b>Argument
string <t>str <t>sträng som ska editeras.
<b>Exempel
<c> collapsed_str = edit(str);
</TOPIC>
<TOPIC> extract() <style> function
extract()
string extract( int start, int length, string str)
<b>Beskrivning
Extraherar de angivna tecknen från angiven sträng.
Returnerar de extraherade tecknen som en sträng.
<b>Argument
int <t>start <t>start positionen för första tecknet.
<t><t>Första tecknet har position 1.
int <t>length <t>antalet tecken som ska extraheras.
string <t>str <t>sträng som tecknen ska extraheras från.
<b>Exempel
<c> extracted_str = extract( 5, 7, str);
</TOPIC>
<TOPIC> element() <style> function
element()
string element( int number, string delimiter, string str)
<b>Beskrivning
Extraherar ett element från et sträng av element.
Returnerar det extraherade elementet.
<b>Argument
int <t>number <t>elementets nummer.
string <t>delimiter <t>avgränsnings tecken.
string <t>str <t>sträng med element.
<b>Exempel
<c> string str = "mary, lisa, anna, john";
<c> string elem1;
<c> elem1 = elment( 1, ",", str);
</TOPIC>
<TOPIC> toupper() <style> function
toupper()
string toupper( string str)
<b>Beskrivning
Konverterar en sträng till stora bokstäver.
<b>Argument
string <t>str <t>sträng som ska konverteras.
<b>Returns
string <t><t>sträng med stora bokstäver.
<b>Exempel
<c> string str1 = "Buster Wilson";
<c> string str2;
<c> str2 = toupper( str);
</TOPIC>
<TOPIC> tolower() <style> function
toupper()
string tolower( string str)
<b>Beskrivning
Konverterar en sträng till små bokstäver.
<b>Argument
string <t>str <t>sträng som ska konverteras.
<b>Returns
string <t><t>sträng med små bokstäver.
<b>Exempel
<c> string str1 = "Buster Wilson";
<c> string str2;
<c> str2 = tolower( str);
</TOPIC>
<TOPIC> translate_filename() <style> function
translate_filename()
string translate_filename( string fname)
<b>Beskrivning
Byter ut omgivnings variabler i ett filnamn.
<b>Argument
string <t>fname <t>A filnamn.
<b>Returns
string <t><t>Sträng med utbytta omgivningsvariabler.
<b>Exempel
<c> string fname1 = "$pwrp_db/a.wb_load";
<c> string fname2;
<c> fname2 = translate_filename( fname1);
</TOPIC>
<TOPIC> xtt-commands <style> function
Xtt kommandon
Alla xtt kommandon finns tillgängliga i script koden. En xtt-kommando rad
ska INTE avslutas med semikolon. Variabler kan substitueras i kommandot
genom add omges av apostrofer.
<b>Exempel
<c> string name = "PUMP-VALVE-Open.ActualValue";
<c> float value = 2.2;
<c> set parameter/name='name'/value='value'
<b>Exempel
<c> string name;
<c> string parname;
<c> int j;
<c> int i;
<c> for ( i = 0; i < 3; i++)
<c> parname = "vkv-test-obj" + (i+1);
<c> create obj/name='parname'
<c> for ( j = 0; j < 3; j++)
<c> name = parname + "-obj" + (j+1);
<c> create obj/name='name'
<c> endfor
<c> endfor
</TOPIC>
<TOPIC> getattribute() <style> function
GetAttribute()
(variable type) GetAttribute( string name [, int status])
<b>Beskrivning
Hämta värdet för angivet attribut. Typen av det returnerade värdet beror
på typen av attributet. Attributet kommer att konverteras till int, float
eller string.
<b>Argument
string <t>name <t>namn på attributet som ska hämtas.
int <t>status <t>status för operationen. Returnerad. Om noll
<t> <t>kunde inte attributet hämtas. Valfritt.
<b>Exempel
<c> int alarm;
<c> int sts;
<c> alarm = GetAttribute("Roller-Motor-Alarm.ActualValue");
<c> on = GetAttribute("Roller-Motor-On.ActualValue", sts);
<c> if ( !sts)
<c> say("Could not find motor on attribute!");
</TOPIC>
<TOPIC> getchild() <style> function
GetChild()
string GetChild( string name)
<b>Beskrivning
Hämta första barnet till ett objekt. Nästföljande barn kan hämtas med
GetNextSibling().
Returnerar namnet på barnet. Om det inte finns något barn, returneras en
null-sträng.
<b>Argument
string <t>name <t>objektets namn.
<b>Exempel
<c> string child;
<c> child = GetChild("Roller-Motor");
</TOPIC>
<TOPIC> getparent() <style> function
GetParent()
string GetParent( string name)
<b>Beskrivning
Hämta föräldern till ett objekt.
Returnerar förälderns namn. Om det inte finns någon förälder returneras
en null-sträng.
<b>Argument
string <t>name <t>objektets namn.
<b>Exempel
<c> string parent;
<c> parent = GetChild("Roller-Motor");
</TOPIC>
<TOPIC> getnextsibling() <style> function
GetNextSibling()
string GetNextSibling( string name)
<b>Beskrivning
Hämtar nästa syskon till ett objekt.
Returnerar namnet på syskonet. Om det inte finns något nästa systkon
returneras en null-sträng.
<b>Argument
string <t>name <t>objektets namn.
<b>Exempel
<c> string name;
<c> int not_first;
<c> name = GetChild("Rt");
<c> not_first = 0;
<c> while ( name != "")
<c> if ( !not_first)
<c> create menu/title="The Rt objects"/text="'name'"/object="'name'"
<c> else
<c> add menu/text="'name'"/object="'name'"
<c> endif
<c> not_first = 1;
<c> name = GetNextSibling(nname);
<c> endwhile
<c> if ( !not_first )
<c> MessageError("No objects found");
</TOPIC>
<TOPIC> getclasslist() <style> function
GetClassList()
string GetClassList( string class)
<b>Beskrivning
Hämta första objektet av angiven klass. Nästa objekt av klassen kan
hämtas med GetNextObject().
Returnerar namnet på första objektet. Om det inte finns några instanser
av klassen returneras en null-sträng.
<b>Argument
string <t>name <t>namn på klassen.
<b>Exempel
<c> string name;
<c> name = GetClassList("Dv");
</TOPIC>
<TOPIC> getnextobject() <style> function
GetNextObject()
string GetNextObject( string name)
<b>Beskrivning
Hämta nästa objekt i klasslistan.
Returnerar namnet på objektet. Om det inte finns något nästa objekt
returneras en null-sträng.
<b>Argument
string <t>name <t>objektets namn.
<b>Exempel
<c> string name;
<c> name = GetClassList("Di");
<c> while ( name != "")
<c> printf("Di object found: %s", name);
<c> name = GetNextObject(name);
<c> endwhile
</TOPIC>
<TOPIC> getobjectclass() <style> function
GetObjectClass()
string GetObjectClass( string name)
<b>Beskrivning
Hämta klassen för ett objekt.
Returnerar klassens namn.
<b>Argument
string <t>name <t>objektets namn.
<b>Exempel
<c> string class;
<c> class = GetObjectClass("Motor-Enable");
</TOPIC>
<TOPIC> getnodeobject() <style> function
GetNodeObject()
string GetNodeObject()
<b>Beskrivning
Hämta nod objektet.
Returnerar namnet på nod objektet.
<b>Exempel
<c> string node;
<c> node = GetNodeObject();
</TOPIC>
<TOPIC> getrootlist() <style> function
GetRootList()
string GetRootList()
<b>Beskrivning
Hämta första objektet i rot listan.
Returnerar namnet på rotobjektet. Nästa objekt i rotlistan kan hämtas med
GetNextSibling().
<b>Exempel
<c> string name;
<c> name = GetRootList();
<c> while( name != "")
<c> printf( "Root object found: %s", name);
<c> name = GetNextSibling(name);
<c> endwhile
</TOPIC>
<TOPIC> cutobjectname() <style> function
CutObjectName()
string CutObjectName( string name, int segments)
<b>Beskrivning
Kapa av de första segmenten av ett objektsnamn.
Returnerar de sista segmenten av ett objektsnamn. Antalet segment som
returneras specificeras i det andra argumentet.
<b>Argument
string <t>name <t>Objektsnamn med path.
int <t>segments <t>Antalet namnsegment som ska returneras.
<b>Exempel
<c> string path_name;
<c> string object_name;
<c> path_name = GetChild("Rt-Motor");
<c> object_name = CutObjectName( path_name, 1);
</TOPIC>
<TOPIC> messageerror() <style> function
MessageError()
string MessageError( string message)
<b>Beskrivning
Skriv ett xtt felmeddelande på skärmen.
<b>Exempel
<c> MessageError("Something went wrong");
</TOPIC>
<TOPIC> messageinfo() <style> function
MessageInfo()
string MessageInfo( string message)
<b>Beskrivning
Skriv ett xtt info meddelande på skärmen.
<b>Exempel
<c> MessageInfo("Everything is all right so far");
</TOPIC>
<TOPIC> getcurrenttext() <style> function
GetCurrentText()
string GetCurrentText()
<b>Beskrivning
Hämta texten på det utvalde menyalternativet.
<b>Exempel
<c> string text;
<c> text = GetCurrentText();
</TOPIC>
<TOPIC> getcurrentobject() <style> function
GetCurrentObject()
string GetCurrentObject()
<b>Beskrivning
Hämta utvalt objekt. Om inte något objekt är utval
returneras en null-sträng.
<b>Exempel
<c> string object;
<c> object = GetCurrentObject();
</TOPIC>
</headerlevel>
</chapter>
<TOPIC> overview
<image> pwr_logga.gif
<h1>versikt
<b>Projekthjlp <link> index,,$pwrp_exe/xtt_help.dat
<b>Operatrshandbok <link> index,,$pwr_lang/man_opg.dat
<b>Klasser <link> classes
<b>Index <index>
</TOPIC>
<TOPIC> classes
Klasser
<B>SystemKlasser <LINK>pwrs, ,$pwr_lang/pwrs_xtthelp.dat
<B>BasKlasses <LINK>pwrb, ,$pwr_lang/pwrb_xtthelp.dat
<B>BaseComponent <LINK>basecomponent, ,$pwr_lang/basecomponent_xtthelp.dat
<B>NMps <LINK>nmps, ,$pwr_lang/nmps_xtthelp.dat
<B>Profibus <LINK>profibus, ,$pwr_lang/profibus_xtthelp.dat
<B>Opc <LINK>opc, ,$pwr_lang/opc_xtthelp.dat
<B>OtherIO <LINK>otherio, ,$pwr_lang/otherio_xtthelp.dat
<B>SsabOx <LINK>ssabox, ,$pwr_lang/ssabox_xtthelp.dat
<B>OtherManufacturer <LINK>othermanufacturer, ,$pwr_lang/othermanufacturer_xtthelp.dat
<B>ABB <LINK>abb, ,$pwr_lang/abb_xtthelp.dat
<B>Siemens <LINK>siemens, ,$pwr_lang/siemens_xtthelp.dat
</TOPIC>
<include> $pwr_lang/pwrs_xtthelp.dat
<include> $pwr_lang/pwrb_xtthelp.dat
<include> $pwr_lang/basecomponent_xtthelp.dat
<include> $pwr_lang/nmps_xtthelp.dat
<include> $pwr_lang/profibus_xtthelp.dat
<include> $pwr_lang/opc_xtthelp.dat
<include> $pwr_lang/ssabox_xtthelp.dat
<include> $pwr_lang/otherio_xtthelp.dat
<include> $pwr_lang/othermanufacturer_xtthelp.dat
<include> $pwr_lang/abb_xtthelp.dat
<include> $pwr_lang/siemens_xtthelp.dat
<include> $pwr_lang/man_opg.dat
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
<div> <div>
<img id="uggla" src="../logblue3.gif"> <img id="uggla" src="../logblue3.gif">
<img id="logga" src="../proviewblue3.gif"> <img id="logga" src="../proviewblue3.gif">
<p id="pwrversion">v4.6</p> <p id="pwrversion">v4.7</p>
<a id="pwrlang" href="../sv_se/index.html" target="_top">&nbsp; Swedish &nbsp;</a> <a id="pwrlang" href="../sv_se/index.html" target="_top">&nbsp; Swedish &nbsp;</a>
<a id="pwrdochigh" href="doc_f.html" target="main">&nbsp;&nbsp;&nbsp;Documentation&nbsp;&nbsp;&nbsp;&nbsp;</a> <a id="pwrdochigh" href="doc_f.html" target="main">&nbsp;&nbsp;&nbsp;Documentation&nbsp;&nbsp;&nbsp;&nbsp;</a>
<a id="pwrabout" href="pwr_about_f.html" target="_top">&nbsp; About Proview &nbsp;</a> <a id="pwrabout" href="pwr_about_f.html" target="_top">&nbsp; About Proview &nbsp;</a>
......
...@@ -31,6 +31,9 @@ ...@@ -31,6 +31,9 @@
<tr><td id="mainmenu"><a id="mainmenu" href="man_dg.pdf" target="right">Designer's Guide</a> <tr><td id="mainmenu"><a id="mainmenu" href="man_dg.pdf" target="right">Designer's Guide</a>
<a id="mainmenulink" href="man_dg_index.html" target="right"><br>(html),</a> <a id="mainmenulink" href="man_dg_index.html" target="right"><br>(html),</a>
<a id="mainmenulink" href="man_dg.pdf" target="right">(pdf)</a></td></tr> <a id="mainmenulink" href="man_dg.pdf" target="right">(pdf)</a></td></tr>
<tr><td id="mainmenu"><a id="mainmenu" href="man_opg.pdf" target="right">Operator's Guide</a>
<a id="mainmenulink" href="man_opg_index.html" target="right"><br>(html),</a>
<a id="mainmenulink" href="man_opg.pdf" target="right">(pdf)</a></td></tr>
<tr><td id="mainmenu"><a id="mainmenu" href="man_geref.pdf" target="right">Graphical Editor (Ge)</a> <tr><td id="mainmenu"><a id="mainmenu" href="man_geref.pdf" target="right">Graphical Editor (Ge)</a>
<a id="mainmenulink" href="man_geref_index.html" target="right"><br>(html),</a> <a id="mainmenulink" href="man_geref_index.html" target="right"><br>(html),</a>
<a id="mainmenulink" href="man_geref.pdf" target="right">(pdf)</a></td></tr> <a id="mainmenulink" href="man_geref.pdf" target="right">(pdf)</a></td></tr>
...@@ -45,7 +48,7 @@ ...@@ -45,7 +48,7 @@
</table> </table>
<h2 id="mainmenu">Upgrading</h2> <h2 id="mainmenu">Upgrading</h2>
<table id="mainmenu" border="1" cellspacing="0" width="100%"> <table id="mainmenu" border="1" cellspacing="0" width="100%">
<tr><td id="mainmenu"><a id="mainmenu" href="upgrade46.pdf" target="right">Upgrading from v4.5</a></td></tr> <tr><td id="mainmenu"><a id="mainmenu" href="upgrade47.pdf" target="right">Upgrading from v4.6</a></td></tr>
</table> </table>
<br> <br>
<h2 id="mainmenu">Changelog</h2> <h2 id="mainmenu">Changelog</h2>
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
<div> <div>
<img id="uggla" src="../logblue3.gif"> <img id="uggla" src="../logblue3.gif">
<p id="pwrhead">Object Reference Manual</p> <p id="pwrhead">Object Reference Manual</p>
<p id="pwrversion">v4.6</p> <p id="pwrversion">v4.7</p>
<a id="pwrlang" href="../sv_se/index.html" target="_top">&nbsp; Swedish &nbsp;</a> <a id="pwrlang" href="../sv_se/index.html" target="_top">&nbsp; Swedish &nbsp;</a>
<a id="pwrdochigh" href="index.html" target="_top">&nbsp;&nbsp;&nbsp;Documentation&nbsp;&nbsp;&nbsp;&nbsp;</a> <a id="pwrdochigh" href="index.html" target="_top">&nbsp;&nbsp;&nbsp;Documentation&nbsp;&nbsp;&nbsp;&nbsp;</a>
<a id="pwrabout" href="pwr_about_f.html" target="_top">&nbsp; About Proview &nbsp;</a> <a id="pwrabout" href="pwr_about_f.html" target="_top">&nbsp; About Proview &nbsp;</a>
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
<div> <div>
<img id="uggla" src="../logblue3.gif"> <img id="uggla" src="../logblue3.gif">
<p id="pwrhead">Programmers Reference Manual</p> <p id="pwrhead">Programmers Reference Manual</p>
<p id="pwrversion">v4.6</p> <p id="pwrversion">v4.7</p>
<a id="pwrlang" href="../sv_se/index.html" target="_top">&nbsp; Svenska &nbsp;</a> <a id="pwrlang" href="../sv_se/index.html" target="_top">&nbsp; Svenska &nbsp;</a>
<a id="pwrdochigh" href="index.html" target="_top">&nbsp;&nbsp;&nbsp;Documentation&nbsp;&nbsp;&nbsp;&nbsp;</a> <a id="pwrdochigh" href="index.html" target="_top">&nbsp;&nbsp;&nbsp;Documentation&nbsp;&nbsp;&nbsp;&nbsp;</a>
<a id="pwrabout" href="pwr_about_f.html" target="_top">&nbsp;&nbsp;&nbsp;&nbsp; About Proview &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</a> <a id="pwrabout" href="pwr_about_f.html" target="_top">&nbsp;&nbsp;&nbsp;&nbsp; About Proview &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</a>
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
<div> <div>
<img id="uggla" src="../logblue3.gif"> <img id="uggla" src="../logblue3.gif">
<img id="logga" src="../proviewblue3.gif"> <img id="logga" src="../proviewblue3.gif">
<p id="pwrversion">v4.6</p> <p id="pwrversion">v4.7</p>
<a id="pwrlang" href="../sv_se/index.html" target="_top">&nbsp; Swedish &nbsp;</a> <a id="pwrlang" href="../sv_se/index.html" target="_top">&nbsp; Swedish &nbsp;</a>
<a id="pwrdoc" href="index.html" target="_top">&nbsp;&nbsp;&nbsp;Documentation&nbsp;&nbsp;&nbsp;&nbsp;</a> <a id="pwrdoc" href="index.html" target="_top">&nbsp;&nbsp;&nbsp;Documentation&nbsp;&nbsp;&nbsp;&nbsp;</a>
<a id="pwrabouthigh" href="pwr_about_f.html" target="_top">&nbsp; About Proview &nbsp;&nbsp;</a> <a id="pwrabouthigh" href="pwr_about_f.html" target="_top">&nbsp; About Proview &nbsp;&nbsp;</a>
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
<div> <div>
<img id="uggla" src="../logblue3.gif"> <img id="uggla" src="../logblue3.gif">
<p id="pwrhead">Quick Tour</p> <p id="pwrhead">Quick Tour</p>
<p id="pwrversion">v4.6</p> <p id="pwrversion">v4.7</p>
<a id="pwrlang" href="../sv_se/index.html" target="_top">&nbsp; Swedish &nbsp;</a> <a id="pwrlang" href="../sv_se/index.html" target="_top">&nbsp; Swedish &nbsp;</a>
<a id="pwrdochigh" href="index.html" target="_top">&nbsp;&nbsp;&nbsp;Documentation&nbsp;&nbsp;&nbsp;&nbsp;</a> <a id="pwrdochigh" href="index.html" target="_top">&nbsp;&nbsp;&nbsp;Documentation&nbsp;&nbsp;&nbsp;&nbsp;</a>
<a id="pwrabout" href="pwr_about_f.html" target="_top">&nbsp; About Proview &nbsp;&nbsp;</a> <a id="pwrabout" href="pwr_about_f.html" target="_top">&nbsp; About Proview &nbsp;&nbsp;</a>
......
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd>
<!--NewPage-->
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<!-- Generated by co_convert.-->
<TITLE>
Proview Open Source Process Control
</TITLE>
<!--LINK REL ="stylesheet" TYPE="text/css" HREF="pcss.css" TITLE="Style"-->
<style type="text/css">
a:link {color: #5a759a;
font-weight: bold;
text-decoration: none}
a:visited {color: #5a759a;
font-weight: bold;
text-decoration: none}
a:active {color: #5a759a;
font-weight: bold;
text-decoration: none}
a:hover {color: #000000
}
h2 {font-family: Times New Roman, Times, Sabon;
font-size: 170%;
font-weight: bold;
color: #000000;
margin-top: 5px;
margin-bottom: 0px}
table {
font-size: 18pt;
font-family: Arial, Verdana;
color: #4b6b95;
text-align: left;
padding: 0px;}
</style>
</HEAD>
<P>
<BR>
<IMG SRC="pwr_logga.gif"><BR>
<BR>
<H2>Select language</H2><BR>
<BR>
<table id="mainmenu" border="0" cellspacing="40">
<tr><td><A HREF="en_us/index.html"><img src="enflg.gif"></A></td>
<td><A HREF="en_us/index.html">English <BR></A></td></tr>
<tr><td><A HREF="sv_se/index.html"><img src="svflg.gif"></A></td>
<td><A HREF="sv_se/index.html">Swedish </A></td></tr>
</table>
</p>
</html>
\ No newline at end of file
...@@ -46,6 +46,15 @@ en_us_html_sources := $(sort \ ...@@ -46,6 +46,15 @@ en_us_html_sources := $(sort \
) \ ) \
) )
html_sources := $(sort \
$(foreach file, \
$(foreach dir, \
$(pwre_sroot)/doc/web/src, \
$(wildcard $(dir)/*.html) \
), $(notdir $(file)) \
) \
)
sv_se_html_sources := $(sort \ sv_se_html_sources := $(sort \
$(foreach file, \ $(foreach file, \
$(foreach dir, \ $(foreach dir, \
...@@ -57,12 +66,13 @@ sv_se_html_sources := $(sort \ ...@@ -57,12 +66,13 @@ sv_se_html_sources := $(sort \
export_gif := $(addprefix $(doc_dir)/,$(gif_sources)) export_gif := $(addprefix $(doc_dir)/,$(gif_sources))
export_js := $(addprefix $(doc_dir)/,$(js_sources)) export_js := $(addprefix $(doc_dir)/,$(js_sources))
export_html := $(addprefix $(doc_dir)/,$(html_sources))
export_html_en_us := $(addprefix $(doc_dir)/en_us/,$(en_us_html_sources)) export_html_en_us := $(addprefix $(doc_dir)/en_us/,$(en_us_html_sources))
export_html_sv_se := $(addprefix $(doc_dir)/sv_se/,$(sv_se_html_sources)) export_html_sv_se := $(addprefix $(doc_dir)/sv_se/,$(sv_se_html_sources))
clean_pwg := $(patsubst %.pwg,clean_%.pwg,$(sources)) clean_pwg := $(patsubst %.pwg,clean_%.pwg,$(sources))
clean_html := $(patsubst %.html,clean_%.html,$(sources)) clean_html := $(patsubst %.html,clean_%.html,$(sources))
clean_html := $(patsubst %.js,clean_%.js,$(sources)) clean_html := $(patsubst %.js,clean_%.js,$(sources))
export_doc := $(export_gif) $(export_js) $(export_html_en_us) $(export_html_sv_se) export_doc := $(export_gif) $(export_js) $(export_html) $(export_html_en_us) $(export_html_sv_se)
clean_ge := $(clean_gif) $(clean_html) clean_ge := $(clean_gif) $(clean_html)
.SUFFIXES: .SUFFIXES:
...@@ -95,6 +105,10 @@ $(doc_dir)/pcss.css : ../../pcss.css ...@@ -95,6 +105,10 @@ $(doc_dir)/pcss.css : ../../pcss.css
@ echo "copy $(source) $(target)" @ echo "copy $(source) $(target)"
@ cp $(source) $(target) @ cp $(source) $(target)
$(doc_dir)/%.html : $(pwre_sroot)/doc/web/src/%.html
@ $(log_h_h)
@ $(cp) $(cpflags) $(source) $(target)
$(doc_dir)/en_us/%.html : $(pwre_sroot)/doc/web/en_us/%.html $(doc_dir)/en_us/%.html : $(pwre_sroot)/doc/web/en_us/%.html
@ $(log_h_h) @ $(log_h_h)
@ $(cp) $(cpflags) $(source) $(target) @ $(cp) $(cpflags) $(source) $(target)
......
src/doc/web/src/svflg.gif

1.11 KB | W: | H:

src/doc/web/src/svflg.gif

1.21 KB | W: | H:

src/doc/web/src/svflg.gif
src/doc/web/src/svflg.gif
src/doc/web/src/svflg.gif
src/doc/web/src/svflg.gif
  • 2-up
  • Swipe
  • Onion skin
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
<div> <div>
<img id="uggla" src="../logblue3.gif"> <img id="uggla" src="../logblue3.gif">
<img id="logga" src="../proviewblue3.gif"> <img id="logga" src="../proviewblue3.gif">
<p id="pwrversion">v4.6</p> <p id="pwrversion">v4.7</p>
<a id="pwrlang" href="../en_us/index.html" target="_top">&nbsp; English &nbsp;</a> <a id="pwrlang" href="../en_us/index.html" target="_top">&nbsp; English &nbsp;</a>
<a id="pwrdochigh" href="doc_f.html" target="main">&nbsp;&nbsp;&nbsp;Dokumentation&nbsp;&nbsp;&nbsp;&nbsp;</a> <a id="pwrdochigh" href="doc_f.html" target="main">&nbsp;&nbsp;&nbsp;Dokumentation&nbsp;&nbsp;&nbsp;&nbsp;</a>
<a id="pwrabout" href="pwr_about_f.html" target="_top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Om Proview &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</a> <a id="pwrabout" href="pwr_about_f.html" target="_top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Om Proview &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</a>
......
...@@ -31,6 +31,9 @@ ...@@ -31,6 +31,9 @@
<tr><td id="mainmenu"><a id="mainmenu" href="man_dg.pdf" target="right">Guide fr konstruktrer</a> <tr><td id="mainmenu"><a id="mainmenu" href="man_dg.pdf" target="right">Guide fr konstruktrer</a>
<a id="mainmenulink" href="man_dg_index.html" target="right"><br>(html),</a> <a id="mainmenulink" href="man_dg_index.html" target="right"><br>(html),</a>
<a id="mainmenulink" href="man_dg.pdf" target="right">(pdf)</a></td></tr> <a id="mainmenulink" href="man_dg.pdf" target="right">(pdf)</a></td></tr>
<tr><td id="mainmenu"><a id="mainmenu" href="man_opg.pdf" target="right">Guide fr operatrer</a>
<a id="mainmenulink" href="man_opg_index.html" target="right"><br>(html),</a>
<a id="mainmenulink" href="man_opg.pdf" target="right">(pdf)</a></td></tr>
<tr><td id="mainmenu"><a id="mainmenu" href="man_geref.pdf" target="right">Grafisk Editor (Ge)</a> <tr><td id="mainmenu"><a id="mainmenu" href="man_geref.pdf" target="right">Grafisk Editor (Ge)</a>
<a id="mainmenulink" href="man_geref_index.html" target="right"><br>(html),</a> <a id="mainmenulink" href="man_geref_index.html" target="right"><br>(html),</a>
<a id="mainmenulink" href="man_geref.pdf" target="right">(pdf)</a></td></tr> <a id="mainmenulink" href="man_geref.pdf" target="right">(pdf)</a></td></tr>
...@@ -52,7 +55,7 @@ ...@@ -52,7 +55,7 @@
</table> </table>
<h2 id="mainmenu">Uppgradering</h2> <h2 id="mainmenu">Uppgradering</h2>
<table id="mainmenu" border="1" cellspacing="0" width="100%"> <table id="mainmenu" border="1" cellspacing="0" width="100%">
<tr><td id="mainmenu"><a id="mainmenu" href="../en_us/upgrade46.pdf" target="right">Uppgradering frn v4.5</a></td></tr> <tr><td id="mainmenu"><a id="mainmenu" href="../en_us/upgrade47.pdf" target="right">Uppgradering frn v4.6</a></td></tr>
</table> </table>
<br> <br>
<h2 id="mainmenu">ndringslogg</h2> <h2 id="mainmenu">ndringslogg</h2>
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
<div> <div>
<img id="uggla" src="../logblue3.gif"> <img id="uggla" src="../logblue3.gif">
<p id="pwrhead">Objekthandbok</p> <p id="pwrhead">Objekthandbok</p>
<p id="pwrversion">v4.6</p> <p id="pwrversion">v4.7</p>
<a id="pwrlang" href="../en_us/index.html" target="_top">&nbsp; English &nbsp;</a> <a id="pwrlang" href="../en_us/index.html" target="_top">&nbsp; English &nbsp;</a>
<a id="pwrdochigh" href="index.html" target="_top">&nbsp;&nbsp;&nbsp;Dokumentation&nbsp;&nbsp;&nbsp;&nbsp;</a> <a id="pwrdochigh" href="index.html" target="_top">&nbsp;&nbsp;&nbsp;Dokumentation&nbsp;&nbsp;&nbsp;&nbsp;</a>
<a id="pwrabout" href="pwr_about_f.html" target="_top">&nbsp;&nbsp;&nbsp;&nbsp; Om Proview &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</a> <a id="pwrabout" href="pwr_about_f.html" target="_top">&nbsp;&nbsp;&nbsp;&nbsp; Om Proview &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</a>
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
<div> <div>
<img id="uggla" src="../logblue3.gif"> <img id="uggla" src="../logblue3.gif">
<img id="logga" src="../proviewblue3.gif"> <img id="logga" src="../proviewblue3.gif">
<p id="pwrversion">v4.6</p> <p id="pwrversion">v4.7</p>
<a id="pwrlang" href="../en_us/index.html" target="_top">&nbsp; English &nbsp;</a> <a id="pwrlang" href="../en_us/index.html" target="_top">&nbsp; English &nbsp;</a>
<a id="pwrdoc" href="index.html" target="_top">&nbsp;&nbsp;&nbsp;Dokumentation&nbsp;&nbsp;&nbsp;&nbsp;</a> <a id="pwrdoc" href="index.html" target="_top">&nbsp;&nbsp;&nbsp;Dokumentation&nbsp;&nbsp;&nbsp;&nbsp;</a>
<a id="pwrabouthigh" href="pwr_about_f.html" target="_top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Om Proview &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</a> <a id="pwrabouthigh" href="pwr_about_f.html" target="_top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Om Proview &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</a>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment