JSENT is a SCADA system suitable for a variety of applications such as vehicle
traffic control, PLC factory control and telemetry/telecontrol systems. JSENT consists
of two main building blocks, a back-end server and a HMI front-end, which communicate
with each other over a TCP/IP network. These two components may be present in the same
The server consists of a number of services. One is a 'in-memory'
real time data base. Other services provided are user access control, drivers
for external systems, logging to SQL data bases, alarm and event lists, and
application specific facilities.
Real time data base
This holds the current values of the real time data obtained from external devices.
- Event driven throughout for maximum performance.
- Hierarchical with no limit to nesting of components.
- Sections can be cloned and refer to a master copy. Changes made to the master copy are reflected
in all the clones. Used to quickly create or duplicate similar data base blocks, such as similar
PLC's, RTU's or traffic controllers.
- Number of tags only limited by memory and license restrictions. Largest system currently is
JSENT is supplied with the Oracle Express database. The features of an SQL database are:
- Widely used with web servers.
- ODBC drivers for access from MS Excel and other windows programs.
Beside internal configuration data, event, trending and current alarm
information is written to the database.
Web page server
The embedded web server provides the platform for a web-centric view
of the JSENT system.
Both public and password protected pages can be configured. The password
protected area of the JSENT site uses the standard JSENT access control.
The web server is used for:
- Reports. JSENT reports are HTML pages managed by the web server.
- Alarm list. This password protected area of JSENT allows an engineer
to view and accept alarms.
- Event and other SQL tables. This password protected area of JSENT allows
an engineer to view the event log written to an SQL data base. Queries can be
defined to extract custom reports and filtered information. These queries are
easily created by adding the appropriate code to HTML web pages.
- Documentation. Online documentation can be browsed, either with an off
the shelf browser, such as Netscape, or with the browser integrated
into the JSENT HMI. Client documentation can also be placed on the
server for easy access throughout the organisation.
- Client deployment. Running the JSENT HMI from a networked client is
as simple as clicking on a web page link. The program is automatically
downloaded from the JSENT web server and run on the client.
An FTP server is embedded in JSENT. This allows remote maintenance of the JSENT server.
The user access control is done through the standard JSENT password control mechanism.
Users can be restricted to a single directory, or if they are trusted, to the
JSENT directory tree. Very trusted users can be given access to all files on
the JSENT server, including the system files.
JSENT maintains a global alarm list as well as 'mini alarm' lists.
- The global alarm list shows all current alarms in the system.
- Mini alarm lists show alarms on sub sections of the system, for example
plant items or RTUs.
- New alarms can be configured to be either accepted or unaccepted. Unaccepted
alarms must be acknowledged.
- The current status of the global list can be maintained on the SQL server.
- The events list is written to an SQL table.
- Events are ordered chronologically so that time stamped, but delayed
events received from a remote RTU will be inserted into the database
in the correct order.
- Old event records can automatically be archived and purged.
Trending captures historical data for later viewing and analysis using
the HMI chart viewer or with a standard spreadsheet.
- Trend data is written as records into SQL tables.
- Any number of simultaneous trends can be active.
- An unlimited number of tags can be linked to each trend.
- Various conditions can be configured to enable a trend, to take
a set of samples and to revert the trend to the inactive state.
- Old trend data can automatically be archived and purged.
JSENT can create sophisticated reports. The report writer creates HTML
files from user defined template files. These templates are standard HTML files
that have embedded Python script code. Reports are not created dynamically when
the user requests them but are created once and held as web pages. Once a report
has been created it can be automatically printed and a SMS message can also be sent.
Reports can be initiated:
- Manually from a mimic button.
- By setting a tag to non zero.
- From a script
- By the scheduler
Recipes is a mechanism for downloading a set of user defined parameters
to a PLC or other device. These parameters usually specify the various
variables which control how a product is manufactured. For example a paint
mixing machine could have a recipe for each tint. The recipes define how much
of each primary colour must be mixed and how long the mixer must run.
JSENT allows an unlimited number of recipes. Each recipe can have an unlimited
number of variations, called products. In the paint mixer example, there could
be a recipe for reds. The different red tints could be defined as products within
the 'red' recipe. The red tints are very similar, there are just minor variarions
in the parameters from one product to the next.
Recipes download can be initiated by
- Manually from a mimic.
- By the scheduler.
- From a script.
The scheduler is used to issue commands at predetermined dates and times.
It is typically used to do backups, print reports, issue reminders at
The scheduler works with a number of day plans. Each day plan is a list
of times and actions that must be performed at that time. There could be a
day plan for weekdays, another for Saturdays and another for public holidays.
At midnight the scheduler selects the appropriate day plan for the day and then
issues the commands listed in that plan at the specified times. Plan selection
depends on the day of the week, the day of the month and the day of the year.
Recurring plans can be defined.
JSENT can send SMS messages, either when a tag goes into alarm or manually
via a GUI or under scripting control. A SMS message can be sent to individual
cell numbers or to a group of cell numbers. These groups of cell numbers are
SMS messages are sent via an external GSM modem connected to the serial port
of the JSENT server.
JSENT's innovative Datascript is a powerful yet easy to use
scripting facility that is designed for end users. It abandons the
conventional scripting approach which normally requires a high level of
expertise and an understanding of programming techniques and languages.
Instead, the script is created by placing and linking predefined process
on the screen. The result is a flow chart like diagram, but it is even
more intuitive because it works with specific data objects, not the
abstract logic of a flow chart.
Whereas flow charts visually represent the logic of a script, Datascript
visually represents the data flow through the script. This is a subtle
but important difference and for most people it is a more understandable
representation as the diagram closely follows the actions in the
Datascript is completely integrated into JSent. The diagrams are created
with the mimic editor and are normal mimic diagrams, albeit with new
symbols. Standard mimic features such as inputs, texts and animations
can be used on the datascript diagrams. The processing blocks of an
active datascript are held in the JSent real time database which
provides mimic access to their properties and other useful information.
JSENT also has another built-in scripting language which can be used to add extra custom
functions. The scripting language is Jython©, which has the unusual characteristic
where it is easy to learn the basics, yet is very powerful and will not limit an expert.
There are four basic areas of JSENT that can be scripted:
These are scripts that run as a task in the JSENT server. They have full access
to the real time data and all facilities of the server. An example of a server script
is one supplied with JSENT. It takes a snapshot of a specified set of tags once a day
and writes their values into the event log. This example script also demonstrates how
to extend the server manager panel in the HMI. When the snapshot script is selected in
the server manager, a script is called which creates the user interface for configuring
the snapshot script.
This class of script creates a top level panel that can be incorporated into the HMI.
The web browser is an example of this type of script.
These are usually small scripts linked to mouse click points on the mimic displays.
They would typically show a panel and then send a command to the server. An example
of such a panel would be a motor control pane with buttons for start, stop, local,
isolate, etc. When the user clicks on a button, the script writes an appropriate
value to a data base tag.
These scripts are associated with a mimic diagram and can be used to perform a multitude
of functions, from displaying pop up GUI's to performing advanced animations of
Because JSENT is written in Java it is portable across a wide range of operating
systems. It has been tested on
- Windows XP, Vista, Windows 7 (x86 and x64)
The JSENT HMI consists of a number of panels, each panel holding an application.
These applications may be shown either as a series of tabbed panes where each pane
occupies the entire screen area or as overlapping windows.
- User groups are definable, such as operators, engineers, administrators etc.
- The rights that each user group has can be fine tuned.
- Each user is allocated to one or more user groups and inherits the rights of
- A user must log in using their unique name and password.
- Each user is allocated a language preference and is presented with messages
in that language. This includes the menu prompts, dialog boxes and so on.
Currently only English is available.
- The availability of different languages requires that the message files are
translated. These are simple text files and can be edited on site. If a
message has not yet been translated then a default language version of the
message will be used.
Mimic editor and viewer
This panel consists of an integrated graphics editor and diagram viewer.
Only a single mouse click is needed to switch from 'editor mode' to 'on
line view' mode.
Some of the features of the static drawing editor include:-
- Tool bars for quick access to common operations.
- GIS (mapping) mode, with full zoom and pan. For example in a JSENT traffic system, a user can start with an overview of the complete city and then zoom in to intersection level.
- Common, reusable sub drawings which can either act as template pictures or as standard dynamic symbols.
- Printing of diagrams.
- Full range of drawing primitives, lines, rectangles, polygons, circles, arcs, curves, images, and text.
- A range of dynos (dynamic objects) eg. gauges, knobs, sliders, toggles and push buttons.
- Zoom and pan.
- Copy, cut, paste and duplicate operations.
- Grouping of picture elements into a single object. Nested grouping allowed.
- Align objects to a reference object.
- Size objects to a reference object.
- Space objects evenly in a vertical or horizontal direction.
- Rotate, flip and mirror options.
- Anti-alias, ie. remove the jaggies from angled edges for clearer viewing.
- Assign objects to various layers.
- Display selected layers.
- Background grid, visible and/or active during positioning.
- Information window to show an object's details as the pointer mouse moves over it.
- Online help
- Comprehensive graphics attributes can be given to each object from an easy to use interface. Colours, gradients, patterns, line thickness, line styles can be changed.
- Each object can have a transparency factor from 100% (opaque) to 0% (invisible).
- Various other attributes can be given to each object, such as not editable, not resizable, not zoomable.
- Import of existing OS/2 Sentinel diagrams.
- Import of DXF format files.
Animations dynamically change the appearance of an object in response to changes
in the real time database. Any graphic object can be animated.
An object could have more than one animation type associated with it. For example
an alarm message would have text lookup and colour animations so that the message
changes from a green 'OK' to a red 'FAIL'. It could be made to flash if the unaccepted
attribute of the tag is set.
- Blink animation. The object blinks when the data base tag is within a specified range of values.
- Visibility animation. The object is visible when the data base tag is within a specified range of values.
- Paint gradient animation. The paint or the object changes smoothly between two specified values.
- Paint step animation. The value of the tag selects a specified
paint. Up to 16 values and their corresponding paints can be specified.
- Paint thresholds animation. The paint of the object changes
as threshold values are crossed.
- Size/position animation. A size and position for the object is specified that corresponds to a minimum tag value. A maximum size and position is also specified. The object moves between these two limits under control of the tag value.
- Trajectory animation. The object follows a path which can have any shape and which is specified by another graphic element. The position of the object along the path is determined by the tag's value.
- Fill animation. An irregular shape, eg a tank can be filled.
Text value animation. The text field is changed to show the tag's value.
- Text number animation. The tag value is displayed as a formatted number.
- Text lookup animation. The tag value is matched to a specific text message. For example, a value of zero could display 'OK' and a value of one could display 'FAIL'. Up to 16 value text pairs can be defined.
- Custom animations. The standard animations in JSENT may be extended through the development of 'custom animations'.
Run time user interactions can be linked to any graphic object. One action is
associated with the left mouse button and a pop up menu of actions can be linked
to the right mouse button.
A number of standard actions are available. There may be other, custom actions
available as well, depending on the application.
The standard user actions are:
Additionally custom actions can be easily written with the scripting facility.
The menu items and the message texts displayed in the pop up menu are all user configurable.
- Write a fixed value to a tag.
- Add a value to a tag.
- Increment a tag's value.
- Decrement a tag's value.
- Pulse the value of a tag.
- Toggle a tag between two values.
- Prompt the user for a value to write to a tag.
- Accept an alarm.
- Display a new diagram.
- Close a diagram.
- Start a server side script.
- Download a recipe
Alarm list viewer
This shows the current outstanding alarms in the system in real time. The user can
accept alarms by clicking on them. The colours, fields and column widths are all
user configurable. It is possible to print all or part of the list.
Certain sub-sets of the total system alarms can be configured. For example it is
possible to define an alarm list for a PLC or RTU and only the alarms for that
item will appear in the list.
Events list viewer
This displays the system event list in real time. The colours, fields and column
widths are all user configurable. It is possible to print all or part of the list.
The list can be easily filtered by applying certain conditions. It is possible to
extract data based on ranges of values and dates. Queries can be saved for later
recall. 'Favorite' queries are shown for direct selection by an operator.
Trends can be viewed in the 'Charts' panel of the HMI. The charts colours and
plotting style are user customisable. Charts can be viewed in either real time
or static mode, and can be set to display data over 10 mins, 30mins, 1hr , 4hr,
8hr, or any user specified time, including spans of weeks and months. The vertical
axis can be selected to show
engineering units or a percentage value.
All JSENT user documentation is contained in an integrated help system. The
appropriate help can be found by either navigating the contents tree, doing a
direct search, or selecting the context sensitive help buttons.
Audible warnings are generated by JSENT at client workstations and optionally
by driving an external alarm on the server.
Three levels of audible alarm are provided: information, warning and alarm.
The level is defined in the actions associated with each event for a data base tag.
The sounds can be customized by replacing the default .wav files.
This is written entirely in the scripting language as an example of the power of
JSENT's scripting. While it is not a Netscape or Internet Explorer it can display
standard HTML documents. The browser is useful for viewing the generated reports.
Tag database editor
The database editor is used to build the system's tag database. Some of the features are:
- 'Wizards' that build skeleton devices.
- Form and spreadsheet views of the data.
- Import and export of CSV files.
- Import of 'Concept' files.
- Options to easily duplicate existing entries.
This is a GUI interface to the configuration files. It is used to configure and
control the services.
Backup and restore
A GUI panel is the front end to the backup and restore features.
- User configurable backup sets.
- Any number of backup generations can be held.
- Backup to local or networked devices.
- Backup data is compressed.
- SQL database tables can be backed up online.
- Backups can be automatically initiated from the scheduler.
- Any available backup set can be restored, not only the last one.
This is a general purpose data base query tool. One or more filter conditions
can be defined that operate on any of the columns of the table. These filters
can be combined with AND/OR boolean operators for precise extraction of the
Traffic specific features
JSENT has been deployed in a number of traffic control rooms, and certain traffic
specific features have been developed.
JSENT implements portions of the NTCIP protocol stack. Currently these layers are available.
Other layers are developed as required.
- MIB compiler and data objects.
- TCP and sub-layers are provided by the operating system.
- GSM and V series modem.
- GPRS with in-house developed encryption layer.
- RS232 connection.
JSENT has features to specifically handle variable message signs.
- Accurate graphic representation of the sign on the mimic displays.
- Operator entry of messages in a WYSIWYG panel.
- Support for MULTI codes and fields in the entry panel.
- A library of predefined messages can be captured.
- Scripting and scheduler support to activate messages.
The wallmap display is used to give an overview of the health of the system.
Clusters of LEDs show faults and alarms on a large wall mounted map. A wallmap
display is not necessarily for traffic use only, it can be used in any system
that requires an overview.
- Lamp test facility.
- Maximum LEDS per serial port - 1024.
- On line selectable tag set display. (See below)
- The driver can switch tag sets on line. This facility is useful for using one
set of LEDs to display different data or classes of alarms. For example, in a
traffic control system there could be one red LED per intersection. The operator
can then choose to display all intersections with communications faults, and then
all intersections with vehicle detector faults and then the intersections with
lamp failures, all using the same red LEDs.