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 computer.


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 750,000 tags.

SQL server

JSENT is supplied with the Oracle Express database. The features of an SQL database are:
  • Fast
  • Reliable
  • 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.

FTP server

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.

Alarm lists

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.

Events list

  • 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 appropriate times.

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 configurable.

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 physical world.
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:

Server scripts
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.

HMI scripts
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.

Click scripts
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.

Mimic scripts
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 mimic objects.

Operating Systems

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 access

  • 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 those groups.
  • 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.

Static drawing
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.
  • Undo.
  • 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.

  • 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'.
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.

User interactions
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:

  • 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
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.

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.

Charts viewer

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.

Web browser

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.

System configuration

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.

SQL query

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 required data.

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.
  • MIB compiler and data objects.
  • SNMP
  • PMPP
  • TCP and sub-layers are provided by the operating system.
  • GSM and V series modem.
  • GPRS with in-house developed encryption layer.
  • RS232 connection.
  • FTP
Other layers are developed as required.


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.

Wallmap display

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.

[Home]   [Features]   [Screenshots]    [Downloads]   [Contacts]