Copyright © 2001-2022 Woodgrove Digital Engineering P⁄L. All rights reserved. Last revised:14th December 2022 CREDITS LINKS
Industrial Automation

HTTP Interface

As well as the operator interface already described, the “Movement Controller” also provides most of those same displays via HTTP so that they can be displayed using an Internet Browser. Whether they are available via the Internet is dependent upon whether there is an Internet connection to the computer and upon firewall settings.

Although there is a corresponding HTML5 page for most of the displays of the operator interface, their appearance and functionality is very different. Generally speaking, no control functions are provided via the HTTP interface, but we have attempted to provide the same information. The HTML5 page corresponding to the Stores Diagram is shown below to give some idea of what can be expected.

Screen dump of the HTTP version of the Stores Diagram, as presented
          using the Google Chrome Internet Browser

What is displayed is determined by the “Movement Controller” software employing the contents of the application's subdirectory, “www”. The “www” directory contains a number of HTML5 files, a CSS3 file, “favicon.ico”, and the odd image file. The HTML5 files will contain, as well as the usual HTML5 and, possibly, JavaScript, special processing instructions which are interpreted by the “Movement Controller” software to provide live plant data.

As much of the HTTP interface is defined by HTML5, CSS3, and the odd image file, the customer is encouraged to modify this interface to better suit his desires or just to make it more presentable (bearing in mind that the original designer is colour-blind). With this in mind, there is a section of the software manual dedicated to describing this interface, and there is a link to that section, on the “Manuals” page of the HTTP interface.

As the “Movement Controller” reads the HTML5 files to deliver via HTTP on port 8080, it substitutes any processing instructions that it finds with the referenced live plant data. Whenever it delivers live plant data, it appends a JavaScript program that uses AJAX techniques to request regular updates of the plant data, in order to maintain a real-time representation of the plant.

The system diagram is largely graphical and so does not lend itself to being presented in HTML5. So, instead, we provide a text summary of the most important information on this page, and a link to allow the presentation of the actual diagram using SVG2. This is shown below, and if you click on it, it will present you that SVG2 page (for another site).

Screen dump of the HTTP version of the Heavy-Unit-Conveyor
          System Diagram, as presented using the Google Chrome Internet Browser

The actual file delivered contains very little SVG2. Instead, there is a large data array that is passed, along with a JavaScript program. This JavaScript program interprets the data array to build up the SVG2 definitions and elements. It then uses AJAX techniques to request updates. These updates arrive as data that need to be interpreted as instructions to alter certain attributes of the previously defined SVG2 elements. Also, in response to the operator clicking on any conveyor position, it will make an AJAX request to obtain all the details associated with that conveyor position, and present these in a table near the position clicked.

Should you click on the above image to bring up the actual SVG, that display will be making those continual update requests, but, here, will be given the same old data upon each request. If you watch attentively, you'll see that three emergency stops show up to the left of the diagram, then, once the first AJAX request is honoured, they will disappear. You can click on a conveyor position to present its details and click on the “Level” button to switch conveyor levels (when the upper level is shown, you can still see those conveyors on the lower level that are not obscured by the conveyors above).

Should you look into the JavaScript program, you'll find it is not very easy to read, as it was written by software, with no intention that anyone would be reading it. Among other things, it contains little formatting. The “C++” program that produces it has the indentation for the JavaScript to the left of the opening double quote, so that it reads well in the “C++” program, but doesn't consume space in the JavaScript file.