Systems and methods for changing parameters of a controller

Systems and methods for modifying a parameter value of a controller are described. In one embodiment, the method includes verifying a local presence at the controller, modifying a parameter value at a remote device, confirming the identity of the remote device, and storing the modified parameter value in the controller.

BACKGROUND OF THE INVENTION

This invention relates generally to signal controls and more specifically to controlling a signaling device by remotely modifying a safety related parameter.

In a signaling or crossing installation controlled by a controller, certain parameters are set to site-specific values. Maintaining an on site specialist, or regularly sending a specialist to a site, is expensive and time consuming. As such, a remote access portal may be available to access such a controller. Changing a parameter of the controller may require personnel to do so at the controller itself via a dedicated, special purpose data entry and display device. The methods involve using the keypad on the controller to ensure that personnel was actually present, and to allow the user to select and/or enter the desired data. Use of the keypad also allowed the user to confirm the entered data through an additional button press.

BRIEF DESCRIPTION OF THE INVENTION

In one aspect, a method for modifying a parameter value of a controller includes verifying a local presence at the controller, modifying a parameter value at a remote device, confirming the identity of the remote device, and storing the modified parameter value in the controller.

In another aspect, a method for modifying a parameter value of a railroad signal controller includes creating a session key, storing the session key in a memory of the controller, verifying a local presence at the controller, modifying a parameter value at a remote web browser, confirming the identity of the web browser, and storing the modified parameter value in the memory of the controller.

In another aspect, a system for modifying a parameter value of a railroad signal controller includes a controller and a computer. The controller includes a local presence button, a communications processor, and at least one data integrity processor. The computer includes a web browser. The system is configured to create a session key, store the session key in a memory of the controller, verify a local presence at the controller, modify a parameter value at the web browser, confirm the identity of the web browser, and store the modified parameter value in the memory of the controller.

DETAILED DESCRIPTION OF THE INVENTION

As used herein, the term “controller” may include any host server configured to store parameter data, create and serve web pages, and/or control signals and/or systems. A railroad signal controller is intended as exemplary only, and thus is not intended to limit in any way the definition and/or meaning of the term “controller.” Furthermore, although the invention is described herein in association with a railroad signal, it should be understood that the present invention is applicable to other host server systems. Accordingly, practice of the present invention is not limited to railroad signal controllers.

Any method or process of setting or changing a parameter of a signaling controller must ensure that the value of the parameter entered by a remote user is, in fact, the value that is received and used by the controller. The method must ensure that a person is located at the controller, that the entered data is not corrupted between the input point and the controller, that the remote user confirms that the data to be used by the controller is the data that was actually entered, and that the parameter changes submitted are sent to the intended controller. All of these steps must have immunity from noise on the interface, inadvertent entry or selection by the remote user, and/or possible resubmission of stale data by the remote user.

FIG. 1is a schematic illustration of an exemplary interface system100for changing configurable parameters of a railroad signal controller120. System100includes a computer system110from which a remote user accesses controller120. Computer system110includes a user input112, a display114, a processor116, and a commercially available web browser (not shown) such as, but not limited to, Microsoft Internet Explorer or Mozilla Firefox. The web browser has the ability to display web pages containing scripting languages such as, but not limited to, JavaScript. Computer system110may be a complete off the shelf (COTS) unit or custom built to pre-determined specifications.

Computer system110connects to controller120via a standard Internet connection130. Communication between computer system110and controller120is based on a client-server relationship using established protocols such has, but not limited to, Internet Protocol (IP).

Controller120is installed at a site that includes a railroad signal or crossing. Controller120includes a hardware module122, shown inFIG. 1in exploded form, and a local presence button (not shown). The local presence button is pressed by personnel located at the signal site to verify that such personnel is present at the signal site if necessary. When modifying a parameter value using the methods and systems described herein, the local personnel is required to activate a local presence flag in controller120by, for example, pressing a local presence button to signal to controller120that the local presence requirement is met. Such personnel may be less experienced than the remote specialist tasked with modifying any parameters within controller120.

In the exemplary embodiment, hardware module122includes an Ethernet interface124, a communications processor126, and two data integrity processors128. Ethernet interface124allows controller120to connect to the Internet130and has a unique Internet address to which a remote user directs a web browser. Communications processor126serves web pages and passes data to, and receives data from, data integrity processors128, via an internal interface (not shown), and remote computer system110via Ethernet interface124. Data integrity processors128cross-check data transmitted from communications processor126. Data integrity processors128also store, compare, and combine temporary but unique keys associated with the methods described below. Finally, data integrity processors128create web page content that is served to the web browser by communications processor126, also described below. Controller120also includes memory (not shown) for storing a database of, for example, passwords and login IDs. In the exemplary embodiment, the database contains a password equivalent value which is a combination of the actual password associated with a particular user and a specific location key unique to a particular controller120.

During use, a remote user must first login to controller120from the web browser of computer system110. Upon successfully logging into controller120, a remote user is presented with a home page. From the home page, the user may then choose to, for example, update a parameter of controller120.FIGS. 2A and 2Bshow a flow chart of an exemplary method200for modifying a parameter of controller120.

As shown inFIG. 2A, and when attempting to login to controller120from computer system110, a remote user directs the web browser to a pre-determined home page associated with a unique IP address for controller120. Access protection for controller120is provided via a “password required” login. During a login attempt communications processor126creates202a one-time-use session key value that is valid for only one login session from a particular web browser. Communications processor126transmits204the session key value to the web browser along with a location key value that is unique to controller120. The location key may be used to verify both the data integrity and the authenticity of a message.

In the exemplary embodiment, and when the remote user has successfully logged into controller120, there must be confirmation of a local presence at the controller (railroad) site before a parameter may be changed. Requiring a local presence helps to ensure that the parameter change is implemented as intended and only on the intended controller. As shown inFIG. 2A, the remote user navigates, using the web browser, to a Local Presence web page and submits206a request for local presence. The web browser then creates208a local presence key value which is transmitted210from the web browser to communications processor126, and then transmitted212from communications processor126to data integrity processors128.

In response to receiving a request for local presence, and after receiving the local presence key value and the session key value, data integrity processors128create214confirmation web page content that includes a confirmation text string. This web page content is transmitted216to communications processor126and then served218to the web browser. The local personnel is also required to activate220the local presence on controller120by, for example, pushing a button. The remote user then enters the confirmation text string into a provided text field and submits222a confirmation of the local presence request from the web browser. The web browser transmits224the confirmation text string, the local presence key value, and the session key value to communications processor126which, in turn, transmits226the same to data integrity processors128. Data integrity processors128compare228the received values with those stored earlier in the process. If the local presence at controller120is activated in the correct process sequence and within a pre-determined time period, and the comparisons of values received by data integrity processors128are successful, local presence at the site is confirmed, shown as point A inFIG. 2A.

Once a local presence has been confirmed, the remote user may request a change to a parameter. As shown inFIG. 2B, the remote user navigates, using the web browser, to a configuration web page and submits230a modified value for a parameter. The web browser transmits232the modified value, local presence key value, and session key value to communications processor126, which then transmits234the same information to data integrity processors128.

FIG. 2Bfurther shows a procedure for confirming the identity of the remote web browser. This is necessary to ensure that the parameter change is being attempted at the desired site, as well as to ensure that the web browser is the same as that used to login and obtain a local presence. The web browser's identity is ensured through the use of the one-time-use session key value and the one-time-use local presence key value described above. As such, data integrity processors128compare236the local presence key value and session key value sent to controller120with the modified parameter value, with the key values stored in the memory of controller120. A match of both the local presence key value and the session key value indicates that the web browser session from which the modified parameter value originated is the same as that used by the remote user to login and obtain local presence.

After data integrity processors128have confirmed the identity of the web browser, the parameter value may be changed within controller120. First, data integrity processors128compare238the modified parameter value against pre-determined limits. If the modified parameter value is within the pre-determined limits, data integrity processors128create240a confirmation key value and web page content containing the modified parameter value, and transmit242this data to communications processor126. Communications processor126then transmits244the web page and confirmation key value to the web browser. If the displayed modified parameter value is the same as the remote user had initially input, the remote user submits246a confirmation of that value. The web browser combines248the local presence key value and the confirmation key value using a logical operation such as, but not limited to, a bit-wise exclusive or (XOR) operation, and transmits250the combination to communications processor126. Communications processor126transmits252the combination to data integrity processors128. The same logical operation is completed254by data integrity processors128and the result is compared256against the combination received from communications processor126. If the combinations match, then the modified parameter value is saved for the site.

The above-described methods and apparatus facilitate improving control of a controller through the use of a remote portal. Parameter changes may be performed without having to use and/or administer message level encryption or have in-line network devices that encrypt the entire network traffic. The requirement of a local presence at the controller ensures safety related parameters are changed only on the correct controller and the controller functions properly after the parameter has been changed. The use of a session key value and a local presence key value facilitates correctly identifying the point from which the request for a parameter change originated and that the controller being modified is the intended controller.

Exemplary embodiments of methods and apparatus for changing a data integrity parameter value or setting are described in detail above. The methods and apparatus are not limited to use with the specific embodiments described herein, but rather, components of the methods and apparatus may be utilized independently and separately from other components described herein. Moreover, the invention is not limited to the embodiments of the methods and apparatus described above in detail. Rather, other variations of the methods and apparatus may be utilized within the spirit and scope of the claims.