Ensuring backward compatibility between supervisory system and on-device control software

By introducing a data translation layer into the supervision system, the problem of simultaneous upgrading is solved when maintaining compatibility between the supervision system and the devices under its control is solved, and the system is backward compatibility is achieved, reducing the complexity of upgrades and the risk of interruption.

CN119522415APending Publication Date: 2025-02-25TECHNOLOGICAL RESOURCES PTY LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202280097989.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2022-05-31
Publication Date
2025-02-25

AI Technical Summary

Technical Problem

When the prior art maintains compatibility between the supervision system and the equipment under its control, it is necessary to upgrade the supervision system software and the equipment control software at the same time, resulting in complex upgrade processes, labor-intensive and potentially causing interruptions in equipment operations, especially in the primary industry such interruptions may be extremely costly.

Method used

By implementing a data translation layer in the supervised system, including mapping rules for converting serialized objects, key-values, and events, ensure backward compatibility between the supervised system software and the control software on the device. This method allows the oversight system software to be compatible with older versions of the on-device control software, reducing the need for simultaneous upgrades.

Benefits of technology

The backward compatibility between the supervision system and the device is achieved, making the upgrade plan more flexible, avoiding equipment operation interruptions, and improving the system reliability and maintainability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119522415A_ABST
    Figure CN119522415A_ABST
Patent Text Reader

Abstract

Disclosed herein is a method and system for providing backward compatibility between supervisory system software executing on a supervisory system and a software version of device control software executing on a device under control of the supervisory system, where the device control software executes on a computing module located on the device, to act as an intermediary between the supervisory system and device software running on the device. Providing backward compatibility between software versions enables the upgrade plan to be more flexible, and no longer needs to upgrade the supervisory system and all devices under control of the supervisory system at the same time.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to a method and system for providing backward compatibility between a supervisory system and on-device automation control software executing on equipment under control of the supervisory system, and in particular, to on-device control software executing on equipment operating in the primary industry. Background Art

[0002] The supervisory system is a computer-implemented system for controlling one or more associated devices. Each associated device may be co-located with the supervisory system, or alternatively may be located at a remote location, with a communication link enabling the supervisory system to communicate with the device.

[0003] The supervisory system is typically implemented using software executing on a processor, where the software provides various functions for the supervisory system. The specific type of functions depends on the application, but generally involves monitoring and controlling one or more associated devices.

[0004] In one example, a supervisory system for controlling an autonomous machine in the form of a drill rig at a mine site provides a drill control station having a user interface that enables a user to monitor and control the operation of the autonomous drill at the mine site. The drill control station may be co-located with the mine site, or may be remote from the mine site.

[0005] In order for a supervisory system to communicate with devices under the supervisory system's control, compatibility is required between the software executed on the supervisory system (supervisory system software) and the software executed on the devices (device software). In an ideal scenario, the supervisory system software and the device software are developed simultaneously to interact with each other and are therefore fully compatible. In this scenario, the version of the supervisory system software is the same as the version of the device software.

[0006] In some cases, the manufacturer of the supervision system and the manufacturer of the device are separate entities. In this case, the manufacturer of the supervision system can develop on-device control software that is executed on a computing module located on the device to act as an intermediary between the supervision system and the device software running on the device. The on-device control software is programmed to interact with the device software, such as by receiving information or data from the device and / or exchanging control signals to control the operation of one or more functions of the device. In one example, the supervision system software and the on-device control software are manufactured by a first manufacturer, and the device software is manufactured by a second manufacturer, such as a manufacturer of equipment including, for example, a drilling rig, a truck, etc. In this case, the on-device control software needs to be compatible with the device software, and the on-device control software needs to be compatible with the supervision software.

[0007] Problems arise due to the different development cycles associated with different devices. If the manufacturer of a device releases an updated version of the device software that operates on the manufacturer's device, then the on-device control software executing on the computing module located on the manufacturer's device may need to be updated in order to continue to interact with the upgraded device software. The updated device software typically includes one or more of the following: new functionality for the device, changes to protocols or commands related to existing functionality of the device, or timing associated with sequencing command signals. Therefore, the on-device control software needs to be updated to be compatible with the device software. Depending on the device software and changes to the on-device control software, the supervisory system software may need to be upgraded in order to maintain compatibility with the on-device control software and / or the device software.

[0008] In order to maintain full compatibility between the supervisory system software and the on-device control software, it is currently necessary to upgrade the supervisory system software and the on-device control software simultaneously. This is extremely problematic for installations across a large number of supervisory systems and associated equipment, particularly when the supervisory system is associated with the control and monitoring of many devices from multiple manufacturers (each manufacturer operates its own development cycle). In addition, the devices associated with the supervisory system are typically remote from the supervisory system, requiring personnel to travel to one or more remote sites to upgrade the on-device control software on the affected devices. In some cases, such software upgrades require taking one or more complete installations offline while the upgrade is being implemented. In a mining environment, this would require stopping the mine while the on-device control software for each device is upgraded in turn, and the associated supervisory system would need to be upgraded simultaneously.

[0009] Upgrading the on-device control software executed on all supervisory systems and all associated devices simultaneously is labor intensive and can cause severe disruptions to operational capabilities. In the primary industry where operations often occur around the clock, such interruptions can be extremely costly. Such interruptions can also be dangerous, requiring additional personnel at the site to perform upgrades to the on-device control software, to supervise the upgrade of the on-device control software, or even to move the equipment from the operating location to a maintenance location and then return the equipment to the operating location once the upgrade is complete. In addition, upgrading the software on all supervisory systems and associated devices simultaneously makes it very difficult to troubleshoot any failures that may occur due to the rollout of a new software version because there are so many possible sources of failure.

[0010] Therefore, there is a need to provide a method and system that supports backward compatibility between software versions executed on a supervisory system and on-device control software executed on devices under the control of the supervisory system. Summary of the invention

[0011] The present disclosure relates to a method and system for providing backward compatibility between software versions executed on a supervisory system and on-device control software executed on devices under control of the supervisory system, wherein the on-device control software is configured to interact with device software executed on the devices.

[0012] A first aspect of the present disclosure provides a method for providing backward compatibility between a supervisory system and a device controlled by the supervisory system, the supervisory system being implemented using supervisory system software, and the device being implemented using on-device control software, wherein the on-device control software is configured to interact with device software executed on the device, the method comprising the following steps:

[0013] implementing a supervisory system data translation layer, the supervisory system data translation layer including mapping rules for translating serialized objects, key-values, and events between at least one version of the supervisory system software and at least one version of the on-device control software;

[0014] Implementing a supervisory system application layer, the supervisory system application layer passing supervisory serialization information to the supervisory system data translation layer to define a serialization object of the supervisory system;

[0015] exchanging automation control protocol message identifiers (IDs) and key-value definitions during a connection between said supervisory system and said device;

[0016] making a compatibility decision by the supervisory system software based on the exchanged automation control protocol message IDs;

[0017] The monitoring system software receives device serialization information from the control software on the device;

[0018] enforcing, by the supervisory system software translation layer, a key-value pair based on a complete definition of the key-value pair and the compatibility decision;

[0019] The supervisory system software translation layer includes mapping rules for converting key-value pairs between versions of the supervisory system software and versions of control software on the device.

[0020] A second aspect of the present disclosure provides a control system, comprising:

[0021] A surveillance system implemented using surveillance system software; and

[0022] a device to be controlled by the supervisory system, the device having an on-device module executing on-device control software, wherein the on-device control software is configured to interact with device software executing on the device;

[0023] The monitoring system software implements:

[0024] a supervisory system data translation layer including mapping rules for translating serialized objects, key-values, and events between at least one version of said supervisory system software and at least one version of said on-device control software; and

[0025] The supervisory system application layer transmits the supervisory serialization information to the supervisory system data translation layer to define the serialization object of the supervisory system;

[0026] wherein the supervisory system software and the on-device control software are configured to exchange automation control protocol message identifiers (IDs) and key-value definitions during a connection between the supervisory system and the device;

[0027] wherein said supervisory system software determines a compatibility decision based on said automation control protocol message IDs exchanged; and

[0028] The supervisory system software receives device serialization information from the on-device control software, and the supervisory system software translation layer enforces the key-value pair based on the complete definition of the key-value pair and the compatibility decision. According to another aspect, the present disclosure provides an apparatus for implementing any of the above methods.

[0029] According to another aspect, the present disclosure provides a computer program product, including a computer-readable medium having a computer program recorded thereon, and when the computer program is executed on a processor of a computer, any of the above methods is implemented.

[0030] Other aspects of the disclosure are also provided. BRIEF DESCRIPTION OF THE DRAWINGS

[0031] One or more embodiments of the present disclosure will now be described by way of specific example(s) and with reference to the accompanying drawings, in which:

[0032] Figure 1 is a schematic representation of a system upon which one or more embodiments of the present disclosure may be practiced;

[0033] Figure 2 is a schematic representation showing backward compatibility between equipment in the form of a supervisory system and an autonomous rig;

[0034] Figure 3 is a schematic block diagram representation of a system including a general purpose computer on which one or more embodiments of the present disclosure may be practiced; and

[0035] Figure 4 is a schematic representation of a system upon which one or more embodiments of the present disclosure may be practiced.

[0036] Method steps or features with the same reference numerals in the drawings should be considered to have the same function(s) or operation(s), unless a contrary intention is expressed or implied. DETAILED DESCRIPTION

[0037] The present disclosure relates to a method and system for providing backward compatibility between software versions of supervisory system software executed on a supervisory system and on-device control software executed on devices under the control of the supervisory system, wherein the on-device control software is executed on a computing module located on the device to act as an intermediary between the supervisory system and the device software running on the device. Providing backward compatibility between software versions enables more flexible upgrade plans and eliminates the need to upgrade the supervisory system and all devices under the control of the supervisory system at the same time.

[0038] One approach to ensuring compatibility between the supervisory system and the devices is to provide supervisory system software that is backwards compatible with older versions of on-device control software, and vice versa, to provide on-device control software that is backwards compatible with older versions of supervisory system software. This approach provides the greatest flexibility, but at the expense of unnecessary complexity. In order to provide such backward compatibility across both supervisory system software and on-device control software, each of the supervisory system software and on-device control software becomes extremely large, possibly incorporating multiple translation engines or lookup tables to enable communication between different software versions executing on the supervisory system and the devices.

[0039] The method and system of the present disclosure provide a framework that provides backward compatibility between a supervisory system and on-device control software executed on devices under the control of the supervisory system across multiple intermediate software version upgrades and across at least one major software version upgrade. In particular, the method and system prioritize the ability to upgrade the supervisory system software over the ability to upgrade the on-device control software, so that the supervisory system software is backward compatible with the on-device control software, but the on-device control software does not need to be backward compatible with the major software version of the supervisory system software. Optionally, the on-device control software is compatible with earlier intermediate software versions of the supervisory system software, but is not necessarily compatible with earlier major versions of the supervisory system software.

[0040] The supervisory system is typically implemented on a more powerful computer than the computing devices available on the equipment under the supervisory system control (on which the on-device control software runs). Therefore, the supervisory system software, which contains additional code for executing backwards compatible with the equipment software, can be easily stored and executed. The equipment under the control of the supervisory system may be located at a remote site. Therefore, implementing the on-device control software as simply as possible facilitates testing and provides greater reliability. In addition, it is generally easier to upgrade the supervisory system software, which is typically located in a centralized location that can accommodate multiple supervisory system instances, such as multiple drilling control stations for controlling autonomous drill rigs in one or more remote mines. In such an environment, the computing device on which the supervisory system is executed can be easily accessed and upgraded. In contrast, the primary industrial equipment on which the on-device control software is executed (such as autonomous drill rigs, etc.) is typically located in an operating area that may be difficult to access, requiring the equipment to be taken out of operation to perform any upgrades.

[0041] Additionally, supervisory systems may have fewer security issues associated with site access and operating conditions, making access for software upgrades better than upgrading on-device control software running on devices at remote sites. Additionally, a supervisory system may control multiple devices, so upgrading supervisory system software requires less software installation than upgrading on-device control software running on all devices under the control of the supervisory system.

[0042] Practical advantages can be achieved by upgrading the supervisory system software one supervisory system at a time, so that testing can be performed to ensure that the new version of the supervisory system software is compatible with any device control software version currently operating devices under the supervisory system control. The new version of the supervisory system software can then be planned and rolled out to other supervisory system instances.

[0043] In some cases, remote operation sites are particularly difficult to access. In such cases, it may be advantageous or even desirable to have the equipment running an older version of the on-device control software that is well-tested and reliable, provided that the older version of the on-device control software is sufficiently compatible with the version of the supervisory system software executed by the supervisory system controlling those equipment and, of course, is suitably compatible with the equipment software executing on the relevant equipment.

[0044] The methods and systems of the present disclosure provide a safety mechanism to prevent improper operation due to incompatible software versions. In particular, the methods and systems prevent operation of a device in the event of an incompatibility detected between a supervisory system and control software on a device executed on the device under control of the supervisory system. In some embodiments, upon detecting an incompatibility between the supervisory system software and the control software on the device, the supervisory system software displays an error message alone or in combination with one or more of a visual warning and an audible warning.

[0045] Methods and systems for providing backward compatibility will be described herein with reference to the mining industry, and in particular with reference to the control of an autonomous drilling rig by a supervisory system in the form of a drill control station (DCS). However, those skilled in the relevant art will recognize that such embodiments are illustrative and not restrictive, and that the methods and systems of the present disclosure may be practiced equally on many other supervisory systems and associated devices under their control (including other autonomous or semi-autonomous machinery, including vehicles such as cars, trucks, trains, loaders, crushers, excavators, bulldozers, etc.), wherein the associated devices execute device software, and device control software executes on a computing device on each associated device to interact with the device software, without departing from the spirit and scope of the present disclosure.

[0046] In one embodiment, a control center is associated with one or more mines. The control center includes a supervisory system in the form of a drilling control station executing supervisory system software, wherein the drilling control station is operated by a drilling controller. The drilling control station enables the drilling controller to monitor and control one or more autonomous vehicles, such as autonomous drilling rigs, in the one or more mines. The drilling control station is implemented using a computing device having one or more processors on which the supervisory system software is executed. The control center may be located at the mine, or alternatively may be remote from the mine(s) over which the control center has control. In the context of the present disclosure, the control center is coupled to the autonomous vehicle via at least one wireless communication link.

[0047] The autonomous drill rig performs one or more functions based on received computer commands without the need for input from an onboard drilling operator. Such functions may include, but are not limited to, for example, transporting the drill rig to the next location to be drilled, leveling the drill rig, raising or lowering a mast associated with the drill rig, or drilling a hole without the need for an onboard drilling operator to be on site to control the operation of the drill rig. The autonomous drill rig may be a conventional blasthole drill rig that has been retrofitted with automation technology. Alternatively, the autonomous drill rig may be designed from the ground up to work autonomously.

[0048] There are multiple rig manufacturers, and each manufacturer develops and implements proprietary device software for execution on the rig's processor. The device software directly controls the operation of all functions of the rig. During autonomous operation, the rig needs to be able to receive commands from the control center. In order to do this, on-device control software was introduced that acts as an intermediary between the drilling control station at the control center and the device software executed on the rig.

[0049] Each autonomous drilling rig is equipped with a drilling module that interacts with the device software using the on-device control software to monitor and / or control the operation of one or more functions of the drilling rig. The drilling module is implemented using a computing device, such as a programmable logic controller or a general-purpose computer, which is programmed to work in a customized manner to control one or more functions of the drilling rig. In particular, the drilling module stores and executes the on-device control software, which is suitable for interacting with the device software of the device on which the device software is installed. In this example, the drilling module executes the on-device control software for interacting with the device software of the autonomous drilling rig. Depending on the specific application, different protocols can be used for communication between the on-device control software and the device software. For example, suitable protocols include, but are not limited to: MODBUS TCP, MODBUS RTU, OPC UA, Ethernet / IP, Common Industrial Protocol (CIP), or DF1.

[0050] The control center is equipped with one or more drilling control stations for controlling the operation of the drilling rigs of one or more mines assigned to the control center. The control center is coupled to a communication network and transmits information and commands to the equipment located at each mine associated with the control center via the communication network. Each mine may include, for example, a wireless transmitter connected to the communication network and used to transmit wireless signals to the drilling rigs located at the mine, wherein each drilling rig is equipped with a wireless receiver. In order for the drilling control station to control the autonomous drilling rigs assigned to the drilling control station, the supervisory system software executed on the drilling control station needs to be compatible with the on-device control software executed on the autonomous drilling rigs.

[0051] Figure 1 1 is a schematic block diagram representation of a system 100 according to the present disclosure. The system 100 includes a remote control center 110 for remotely operating and controlling a drill rig at one or more mines. The remote control center 110 includes a supervisory system in the form of a drilling control station 120 that a drilling controller 115 can access to monitor and control the operation of the drill rig at the remote mine. Figure 1 The example of shows a single drilling control station 120, but other embodiments may include multiple drilling control stations to allow multiple drilling controllers to access simultaneously. In large installations, different drilling controllers utilize a group of drilling control stations to control a group of drilling rigs distributed across one or more mines.

[0052] The remote control center 110 is coupled to a communication network 150. The communication network 150 may be implemented using one or more wired communication links, wireless communication links, or any combination thereof. In particular, the communication network 150 may include a local area network (LAN), a wide area network (WAN), a telecommunication network, or any combination thereof. The telecommunication network may include, but is not limited to, a telephone network (such as a public switched telephone network (PSTN) or a cellular mobile phone network), the Internet, or any combination thereof.

[0053] exist Figure 1 In the example of FIG. 1 , system 100 includes a mine 160 having a wireless transmitter 165 and a group of n drilling rigs 170a...n. Depending on the application, remote control center 110 may be co-located with mine 160, or alternatively may be remotely located, such as at a remotely located operations center. Wireless transmitter 165 is coupled to communication network 150 and is configured to wirelessly communicate with each of drilling rigs 170a...n. Depending on the implementation, wireless transmitter 165 may be located at a mine office or the like, and may be implemented using one or more physical transceivers.

[0054] Each of the drilling rigs 170a...n is equipped with a wireless transceiver for communicating with the wireless transmitter 165. The drilling rigs 170a...n are capable of transmitting information back to the remote control center 110 via the wireless transmitter 165 and the communication network 150. The information may include, for example, information regarding ground conditions, control pressures, and other measurement while drilling (MWD) data such as drill bit pull-down pressure and speed.

[0055] in addition, Figure 1 Each of the drilling rigs 170a...n in the system is capable of operating in an autonomous mode based on instructions received from the remote control center 110. In the autonomous mode, the drilling rig can perform one or more functions according to the drilling plan, such as transporting the drilling rig to the next location to be drilled, raising or lowering a mast associated with the drilling rig, or drilling a hole, without requiring an onboard drilling operator to be on site to control the operation of the drilling rig. The functions of each drilling rig 170a...n are controlled by device software executed on the corresponding drilling rig. The device software is part of the drilling rig 170a...n, such as provided by (one or more) drilling rig manufacturers.

[0056] Each of the drilling rigs 170a...n is equipped with a corresponding drilling module 175a...n, which stores and executes on-device control software for controlling the autonomous functions that the corresponding drilling rig is capable of performing. As described above, each drilling rig 170a...n is equipped with a wireless transceiver. Depending on the implementation, the wireless transceiver of the drilling rig 170a...n is coupled to the corresponding drilling module 175a...n, or is a component of the drilling module 175a...n. It should be noted that each of the drilling rigs 170a...n may be manufactured by a different manufacturer and, therefore, run different equipment software. The equipment control software executed on the drilling module 175a...n is responsible for the interface between the commands received from the drilling control station 120 and the equipment software executed on the corresponding drilling rig 170a...n.

[0057] The drilling control station 120 is implemented using a computing device executing supervisory system software to provide a user interface to the drilling controller 115 through which the drilling controller 115 can monitor the operation of and send commands to the drilling rigs 170a...n.

[0058] The drilling controller 115 can access the drilling control station 120 to send information and commands to the drilling rigs 170a...n at the mine site 160 via the communication network 150. For example, the information and commands can be related to the drilling plan. Thus, the drilling controller 115 can prepare tasks using the drilling control station 120 and assign tasks to each of the autonomous drilling rigs 170a...n.

[0059] In order for the drilling control station 120 to effectively communicate with each of the drilling rigs 170a...n, the supervisory system software executing on the drilling control station 120 needs to be compatible with the on-device control software executing on the drilling modules 175a...n on the corresponding drilling rigs 170a...n. Additionally, the on-device control software executing on a particular drilling module 175a...n needs to be compatible with the equipment software executing on the drilling rig 170a...n where the drilling module 175a...n is located.

[0060] Over time, it may be necessary or desirable to upgrade the software on one or both of the drilling control station 120 and the autonomous drilling rigs 170a...n. With respect to the autonomous drilling rigs 170a...n, it may be possible to upgrade one or both of the device software or the on-device control software. Such software upgrades may involve, for example, fixing bugs in the software, updating drivers for existing functionality, or implementing new functionality. For example, a drilling rig manufactured by Epiroc may receive device software updates from Epiroc to fix software bugs, improve functionality, or even add new functionality to the drilling rig. The on-device control software executing on a drilling module on that Epiroc drilling rig may need to be upgraded to maintain compatibility with the updated device software, particularly if the update to the device software changes any communication protocols or command structures.

[0061] Depending on the circumstances, it is not always necessary, or even desirable, to upgrade the supervisory system software executed on the drilling control station 120 at the same time as upgrading the on-device software executed on the autonomous drilling rigs 170a...n. For example, upgrading the supervisory system software on the drilling control station 120 to implement new user interface features may provide a more intuitive interface for the drilling operator 115, but does not change the actual controls available to the drilling operator 115. In such examples, it is useful to limit the software upgrade to the drilling control station 120. In the event that the drilling rig manufacturer has implemented new functionality for the autonomous drilling rigs 170a...n, then it is necessary to upgrade the on-device software on the autonomous drilling rigs 170a...n so that the on-device control software can effectively communicate with the new functionality implemented by the equipment software of the autonomous drilling rigs 170a...n. It is also necessary to upgrade the supervisory software on the drilling control station 120 to provide the drilling operator 115 with the ability to monitor and control the new functionality, but this may be done later depending on the need to access the new functionality.

[0062] Figure 2 2 is a schematic representation 200 illustrating backward compatibility between on-device control software executing on a device and supervisory software executing on a supervisory control system over time. A first device 210 runs on-device control software version 3.5.0 and is compatible with a first supervisory system 250 running supervisory system software version 3.5.0, as expected. The on-device control software 3.5.0 executing on the first device 210 is also compatible with a second supervisory system 260 running supervisory system software version 3.6.0 (a full version upgrade of 3.5.0 executing on the first supervisory system 250). Additionally, the on-device control software 3.5.0 executing on the first device 210 is compatible with a third supervisory system 270 running supervisory software version 3.6.1 (a minor upgrade of supervisory system software version 3.6.0 executing on the second supervisory system 260). However, the first device 210 running on-device control software version 3.5.0 is not guaranteed to be compatible with the fourth supervisory system 280 running supervisory system software 3.7.0 (two full versions beyond the on-device control software version 3.5.0 running on the first device 210).

[0063] The second device 220 is running on-device control software 3.6.0, corresponding to a full version software upgrade relative to the on-device control software 3.5.0 executed on the first device 210. The on-device control software 3.6.0 executed on the second device 220 is compatible with the second supervisory system 260 running supervisory system software 3.6.0, the third supervisory system 270 running supervisory system software 3.6.1, and the fourth supervisory system 270 running supervisory system software 3.7.0, which is only a single full version upgrade relative to the on-device control software 3.6.0 executed on the second device 220. The on-device control software 3.6.0 executed on the second device 220 is not backwards compatible with the supervisory system software 3.5.0 executed on the first supervisory system 250.

[0064] The third device 230 is running on-device control software 3.6.1, which is a minor version upgrade relative to the on-device control software 3.6.0 running on the second device 220. The on-device control software 3.6.1 executed on the third device 230 is compatible with the second supervisory system 260 running supervisory system software 3.6.0 because the on-device control software 3.6.1 is only a minor version upgrade relative to the supervisory software 3.6.0 executed on the second supervisory system 260. The on-device control software 3.6.1 executed on the third device 230 is also compatible with the third supervisory system 270 running supervisory system software 3.6.1 and the fourth supervisory system 270 running supervisory system software 3.7.0.

[0065] The fourth device 240 is running on-device control software 3.7.0, which is a major upgrade relative to the version of on-device control software executed on each of the first device 210, the second device 220, and the third device 230. The on-device control software 3.7.0 executed on the fourth device 240 is only compatible with the fourth supervisory system 280 running supervisory system software 3.7.0, and is not compatible with any of the first supervisory system 250, the second supervisory system 260, or the third supervisory system 270 running supervisory system software from a previous major version.

[0066] Figure 4 is a schematic block diagram representation of a system 400 on which a method for backward compatibility between a supervisory system in the form of a drilling control room 410 and a plurality of drilling rigs, namely a first drilling rig 450 and a second drilling rig 480, can be practiced.

[0067] The drilling control room 410 includes a drilling control station 420, which can be accessed by a drilling operator 415. The drilling control station 420 is implemented using a computing device including at least one processor on which supervisory system software is executed. Figure 4In the example of FIG. 4 , the supervisory system software is drilling supervisory software version 3.6.0. The supervisory system software provides the drilling operator 415 with the functionality to monitor and control a drilling rig associated with a drilling control station 420. To determine the level of compatibility between the supervisory system software and the associated drilling rig under the control of the drilling control station 420, the supervisory software includes a compatibility layer 425.

[0068] The drilling control station 420 is coupled to a communication network 490. The communication network 490 may be implemented using one or more wired communication links, wireless communication links, or any combination thereof. In particular, the communication network 490 may include a local area network (LAN), a wide area network (WAN), a telecommunication network, or any combination thereof. The telecommunication network may include, but is not limited to, a telephone network (such as a public switched telephone network (PSTN) or a cellular mobile phone network), the Internet, or any combination thereof.

[0069] Figure 4 The system 400 in FIG. 4 includes two mines in the form of Site X 430 and Site Y 460. Site X 430 has a drill rig X.1 450 that is running equipment software in the form of OEM drill rig control software 454. The OEM drill rig control software 454 is software installed by the manufacturer of the drill rig X.1 450 and controls the functions of the drill rig X.1 450. The drill rig X.1 450 also has a first drilling module 452 that executes on-equipment software in the form of drilling automation software version 3.5.0. The drilling automation software version 3.5.0 acts as an interface between the drilling supervision software executed on the drilling control station 420 and the OEM drill control software 454 so that the drilling control station 420 can monitor and control the operation of the drill rig X.1 450. The drilling automation software version 3.5.0 executed on the first drilling module 452 receives commands from the drilling supervision software executed on the drilling control station 420. After receiving the command, the drilling automation software version 3.5.0 needs to understand the received command and then implement the received command by sending instructions to the OEM rig control software 454. As will be readily appreciated, the instructions sent to the OEM rig control software 454 may be different for each rig manufacturer, as each manufacturer will likely have its own proprietary instruction set for controlling the rig.

[0070] The Drill Rig X.1 450 is coupled to a communication network 490. In one embodiment, the Drill Rig X.1 450 includes a wireless transceiver for communicating with a wireless transmitter (not shown) located at Site X 430, wherein the wireless transmitter is coupled to the communication network 490. In one embodiment, the wireless transceiver forms part of the first drilling module 452. In another embodiment, the wireless transceiver is coupled to the first drilling module 452. In yet another embodiment, the Drill Rig X.1 450 includes a built-in wireless transceiver coupled to the OEM Drill Rig Control Software 454 and a second wireless transceiver coupled to the first drilling module 452.

[0071] Site X 430 has an associated Site X database server 440 coupled to the communication network 490. The Site X database server 440 stores drilling data related to the drilling operations at Site X. Such drilling data may include, but is not limited to, for example, drilling patterns, time usage, and borehole data. The drilling data may be distributed to the drilling rigs and associated drilling control stations at Site X. The drilling data may also be used for reporting purposes.

[0072] exist Figure 4 In the example of FIG. 4 , the site X database server 440 is shown at site X, but in practice, the site X database server 440 may be located anywhere, including being co-located with the drilling control room 410 or as a cloud-based storage system. Figure 4 The Site X database server 440 in the example of FIG. 4 is running database interface software version 3.6.0. The Site X database server 440 includes a compatibility layer module 444 and is coupled to a Site X database 446.

[0073] Site Y 460 has a drilling rig Y.1 480 that runs equipment software in the form of OEM drilling rig control software 484. The OEM drilling rig control software 484 is software installed by the manufacturer of the drilling rig Y.1 480 and controls the functions of the drilling rig Y.1 480. The drilling rig Y.1 480 also has a second drilling module 482 that executes on-equipment software in the form of drilling automation software version 3.6.0. The drilling automation software version 3.6.0 acts as an interface between the drilling supervision software executed on the drilling control station 420 and the OEM drilling rig control software 484 so that the drilling control station 420 can monitor and control the operation of the drilling rig Y.1 480. The drilling automation software version 3.6.0 executed on the second drilling module 482 receives commands from the drilling supervision software executed on the drilling control station 420. After receiving the command, the drilling automation software version 3.6.0 needs to understand the received command and then implement the received command by sending instructions to the OEM rig control software 484. As will be readily appreciated, the instructions sent to the OEM rig control software 484 may be different for each rig manufacturer, as each manufacturer will likely have its own proprietary instruction set for controlling the rig.

[0074] Drill Rig Y.1 480 is coupled to a communication network 490. In one embodiment, Drill Rig Y.1 480 includes a wireless transceiver for communicating with a wireless transmitter (not shown) located at Site Y 460, wherein the wireless transmitter is coupled to the communication network 490. In one embodiment, the wireless transceiver forms part of a second drilling module 482. In another embodiment, the wireless transceiver is coupled to the second drilling module 482. In yet another embodiment, Drill Rig Y.1 480 includes a built-in wireless transceiver coupled to the OEM drill control software 484 and a second wireless transceiver coupled to the second drilling module 482.

[0075] Site Y 460 has an associated site Y database server 470 coupled to the communication network 490. The site Y database server 470 stores drilling data related to drilling operations at site Y. Such drilling data may include, but is not limited to, for example, drilling patterns, time usage, and borehole data.

[0076] exist Figure 4 In the example of FIG. 4 , the site Y database server 470 is shown at site Y, but in practice, the site Y database server 470 may be located anywhere, including being co-located with the drilling control room 410 or as a cloud-based storage system. Figure 4 The site Y database server 470 in the example of is running database interface software version 3.7.0. The site Y database server 470 includes a compatibility layer module 474 and is coupled to a site Y database 476.

[0077] During operation at mine site X 430 and site Y 460, a drilling operator 415 accesses a user interface provided by the drilling supervision software 3.6.0 executing on the drilling control station 420. The user interface provides the drilling operator 415 with the ability to monitor and control the drill rig X.1 450 at site X 430 and the drill rig Y.1 480 at site Y 460 as the drilling supervision software 3.6.0 communicates with the drilling automation software 3.5.0 of the drill rig X.1 450 and the drilling automation software 3.6.0 of the drill rig Y.1 480. The drilling supervision software 3.6.0 also communicates with each of the site X database server 440 and the site Y database server 470 to receive and store drilling data associated with the respective mine site X 430 and site Y 470.

[0078] In order for the drilling control station 420 to continue to monitor and control the drilling rig X.1 450 and the drilling rig Y.1 480, the system and method of the present disclosure determines the compatibility level between the different nodes in the system, wherein Figure 4 The nodes of the system are drilling control station 420, rig X.1 450, rig Y.1 480, site X database server 440, and site Y database server 470. Each node has an associated compatibility layer that is used during an initial communication exchange with another node to determine the compatibility level.

[0079] For example, during initial communications between the drilling control station 420 and the rig X.1 450, the compatibility layer 425 within the drilling supervision software 3.6.0 communicates with the first drilling module 452 running the drilling automation software 3.5.0 to determine the compatibility level between the software versions running on the drilling control station 420 and the rig X.1 450, respectively.

[0080] Automation Control Protocol

[0081] The automation control protocol is used to manage the communication between the supervisory system and the autonomous devices to be controlled by the supervisory system. In current implementations, the automation control protocol is rigid, requiring exact version matching between the various endpoints (ie, supervisory system and devices) for successful communication.

[0082] In some embodiments, a backward compatible method and system controls modifications to an automation control protocol used for communication between a supervisory system and a controlled device.When the supervisory system and the device are connected using the automation control protocol, each of the supervisory system and the device respectively reports an understandable message identifier (ID).

[0083] Nodes in the system make compatibility decisions based on supported message identifiers. Figure 1 In the context of FIG. 1 , a drilling control station 120 and a drilling rig 170a...n supervised by the drilling control station 120 determine a compatibility level based on the supported message identifiers exchanged. The compatibility level between the drilling control station 120 and each of the drilling rigs 170a...n may be different depending on the compatibility level between the supervisory system software version executed on the drilling control station 120 and the on-device control software version executed on the drilling modules 175a...n of the corresponding drilling rigs 170a...n.

[0084] In one embodiment, the on-device control software executing on each of the drilling modules 175a...n of the respective drilling rigs 170a...n sends a "capability message" to the supervisory system software executing on the drilling control station 120. The capability message includes a set of key-values, events, and serialized object definitions for the on-device control software. These definitions include not only identifiers, but also other relevant attributes. These attributes depend on the particular object, but may include, for example, severity, message, additional data types, type information, etc. For example, the set of key-values ​​contains attribute data describing a key and associated value(s). Examples of key-values ​​might be, for example:

[0085] Key: Feedback.RotationPressure

[0086] Value: 21454.34

[0087] Type: double

[0088] Accuracy: 5

[0089] The supervisory system software receives the capability message, and the translation layer (also called the compatibility layer) determines the compatibility level. In particular, the translation layer determines:

[0090] A. Whether the translation layer is able to properly handle all events and key-value pairs received from the on-device control software required for the operation of the supervisory system software.

[0091] B. Whether all events that may be sent from the supervisory system to the rig will be compatible with the on-device control software.

[0092] C. Whether the translation layer can properly serialize and deserialize objects to and from the control software on the device.

[0093] Initially, the translation layer checks whether a "pass-through" rule can be established between the control software on the device and the supervisory system software. That is, the supervisory software checks its own definitions of key-values ​​and events and determines whether a direct mapping can be made automatically. Typically, this is if the definitions of these messages have not changed.

[0094] If direct mapping cannot be achieved, the supervisory system software will check whether translation rules have been defined, which specify how to convert events and / or key-values ​​so that the supervisory system software can correctly understand the events and / or key-values ​​from the control software on the device, and vice versa, the control software on the device can also correctly understand the events and / or key-values ​​from the supervisory system software.

[0095] The translation rules are managed during the supervisory system software update and are embedded in the translation layer when provided. During subsequent updates of the supervisory system software, any obsolete translation rules may be deleted.

[0096] In some embodiments, the supervisory system software executed on the supervisory system and the device control software executed on the device controlled by the supervisory system exchange message identifiers (IDs). When the corresponding versions of the supervisory system software and the device control software are fully compatible, the exchanged message IDs will match and all functions are available.

[0097] When the message ID is inconsistent due to the different versions of the supervisory system software and the control software on the device, the supervisory system software and the control software on the device ignore any unsupported message ID so, and continue to process the message ID that both the supervisory system software and the control software on the device support. In the case when the supervisory system software or the control software on the device receives an unsupported message ID, the corresponding software will record an error. Recording an error can include storing an error message in an error database stored on a computer-readable storage medium, transmitting the error message to a central computing device, or a combination thereof. Recording an error can also include generating an alarm, such as an error message to be displayed on a display device of a computing device forming a supervisory system or device, or an audible tone, or a combination thereof.

[0098] Disposal of old data

[0099] Backward compatibility between supervisory system software and on-device control software executing on devices under supervisory system control requires that newer supervisory system software versions understand old data. Such data may include serialized objects, events, and key-values. Key-values ​​are parameters or variables encoded within the software. During the evolution of software releases, it may be necessary or desirable to change key names, which may also be referred to as key-value identifiers.

[0100] The key requirements are that the supervisory system software is able to understand old data sent from the on-device control software executing on the device, and that the supervisory system software only sends data to the device in a form that the version of the on-device control software executing on the device will understand.

[0101] In some embodiments, the data translation layer is implemented at a low level in the communication stack of the Supervisory System Software. Supervisory System Software (SSS) Data Translation Layer:

[0102] Understand all old and new serialized object formats that need to be translated

[0103] Includes explicit mapping rules added when code changes, which dictate how to convert serialized objects, key-values, and events

[0104] The SSS application layer passes information to the translation layer to fully define its serialized objects (including used fields), key-values ​​(only key-values ​​sent and disposed), and events (only events sent and disposed)

[0105] Receive information from the on-device control software to fully define the serialized object (including the fields used), key-values ​​(all), and events (all, including message format specifiers)

[0106] After receiving events from the on-device control software, events not explicitly handled by the supervisory system software are converted into preformatted events for logging and / or display

[0107] The SSS translation layer determines whether the supervisory system software and the on-device control software are compatible before the supervisory system software allows further interaction.

[0108] Table 1 shows an example of backward compatibility achieved using a data translation layer (ie, a "compatibility layer"), illustrating the mapping of key-value changes between control software version 3.5.0 and supervisory system software version 3.6.0 on a device.

[0109]

[0110]

[0111] Table 1

[0112] Table 2 shows an example of backward compatibility achieved using a data translation layer (ie, a "compatibility layer"), illustrating the mapping of event changes between control software version 3.5.0 and supervisory system software version 3.6.0 on a device.

[0113]

[0114]

[0115] Table 2

[0116] Solution - Serialize Objects

[0117] Embodiments of the present disclosure utilize boost serialization to convert C++ (nested) objects into binary representations that can be exchanged between supervisory system software and on-device control software for interacting with device software executed on the device. In addition to being used internally in supervisory system software and on-device control software (such as, for example, passing parameters between internal software modules), serialized objects are also exchanged in event parameters via key-value.

[0118] The supervisory system software defines a fixed set of serialized object IDs:

[0119] Serialized object IDs should never be reused: retain IDs on removal

[0120] Unknown serialized object IDs should be handled gracefully or ignored

[0121] In addition, some embodiments of the present disclosure utilize data serialization protocols such as Protobuf or FlatBuffers to ensure that the serialization wire format will not change in the future. Some specific embodiments utilize Flatbuffers. Since FlatBuffers supports extensible messages with optional fields, backward compatibility is achieved by extending the serialized object message:

[0122] Add fields as objects change (old fields must be preserved)

[0123] The on-device control software sends a complete set of dummy sample messages to the supervisory system software when connecting. The supervisory system software uses these dummy sample messages to determine the message level of the on-device control software and implement appropriate two-way translation

[0124] Supervisory system software and on-device control software application-level code only see messages in their current expected format

[0125] All serialized objects exchanged need to be translated (depending on the implementation, it may be necessary to add event parameter type "object" to achieve this translation)

[0126] In addition to extending the message, some embodiments optionally add a completely new serialized object message to replace the previous message. In one embodiment, mapping rules are defined in the supervisory system software translation layer to handle the new serialized object message. It will be appreciated that other embodiments utilizing Protobuf or other data serialization protocols may be practiced as well.

[0127] Solution - Shared Key-Value

[0128] Shared key-values ​​facilitate bidirectional translation between the supervisory system software and the on-device control software key-value definitions. When communication is established between the supervisory system and the device, the on-device control software executing on the device sends the full definition of the key-value to the supervisory system software executing on the supervisory system. The full definition of the key-value includes: supported types, key (ID, name, type). The supervisory system software application layer passes the information of the keys sent (via manual events) and received in the supervisory system version of the drilling control station to the translation layer: supported types, key (ID, name, type).

[0129] For security reasons, the supervision system software translation layer enforces the supervision system key-value list and blocks any attempt to use keys other than those in the supervision system key-value list.

[0130] The supervisory system software translation layer consists of explicit mapping rules added when code changes, which dictate how to convert keys-values ​​between the old and new versions.

[0131] For example, for an M:N mapping, if M == N, then the mapping is bidirectional:

[0132] SomeBadName double to SomeBetterName double

[0133] SomePosition{N,E,U}double to SomePosition DCDouble3 NEU

[0134] JackIndicator{RL,RR,FL,FR}bool to JackRetractedCount int

[0135] Transformations are used as part of a mapping to support arbitrary manipulation of values. An "ignore" rule explicitly states that a new key does not need to exist on older versions of the on-device control software. An "incompatible" rule explicitly states that a given key may not exist on the on-device control software.

[0136] Embodiments utilize automatic mapping rules for key-value matching between supervisory system software and on-device control software.

[0137] Based on the above, the supervisory system software determines the compatibility level of the device to be controlled by the supervisory system and performs a bidirectional translation of the key-values.Key-values ​​of type "BinaryData" are passed to the serialized object code for appropriate translation.

[0138] Solution - Shared Events

[0139] Shared events facilitate bidirectional translation between the supervisory system software and the on-device control software event definitions. Upon connection, the on-device control software sends the supervisory system software the complete definition of the event recognized by the on-device control software: (name, attribute names and types, message format string). The supervisory system software application layer only passes information about those events that are explicitly sent or handled to the supervisory system software translation layer: (name, attribute names and types).

[0140] The supervisory system software translation layer consists of explicit mapping rules added when code changes, which dictate how events are converted between compatible software versions. For a 1:1 one-way mapping:

[0141] SomeBadName(Debug) to SomeBetterName(Info)

[0142] GroundDetection(Info,double Depth,bool explicitGround) to

[0143] GroundDetection(Info,double Depth)

[0144] Transformations are used as part of the mapping to support arbitrary manipulation of attributes. An "Ignore" rule explicitly states that a new event does not need to exist on older versions of the on-device control software. An "Incompatible" rule explicitly states that a given event may not exist on a version of the on-device control software.

[0145] Add automatic mapping rules for events that match the definition. Add automatic mapping rules for events that are defined in the control software on the device but are not included in the explicit list of the supervision system software. These automatic rules convert the event in question into a common pre-formatted event of the same severity using the message format provided by the control software on the device.

[0146] Based on the above, the supervisory system software translation layer determines the compatibility level of the control software version on the device relative to the supervisory system software version and performs bidirectional translation of events.

[0147] Optionally, the supervisory system software is prevented from emitting events that the supervisory system software did not report to the translation layer.

[0148] Event attributes with type "object" are passed to the serializer code for appropriate translation.

[0149] Database Server

[0150] The database server currently uses the equipment automation control protocol, but not all of the same automation control protocol processing code as the supervisory system software. Unknown automation control protocol message IDs received by the database server are ignored, and the database server searches for the next valid packet to process.

[0151] The database event messages exchanged with the database server are serialized objects, so changing the serialization library to FlatBuffers requires changes to the serialized objects.

[0152] The upgraded database server for backward compatible systems utilizes the new automation control protocol message ID to implement a new serialization format so that the database server can reply to old and new clients in the same manner, where the client is both a supervisory control system and an on-device / drilling control system.

[0153] Since the database server is upgraded first, new clients (ie, devices) do not need to include any old serialization capabilities.

[0154] For backward compatibility, the database server extends existing database event messages by adding properties where these additional properties are sufficient to implement new functionality. Otherwise, new database event query / response message pairs are added, retaining support for any existing message pairs to support use with older clients. Any unused event properties and messages are optionally removed in a later full version upgrade.

[0155] Computer Implementation

[0156] The methods and systems described herein provide an architecture that ensures backward compatibility between a supervisory system and on-device control software executing on devices controlled by the supervisory system.

[0157] The supervisory system and drilling module of the present disclosure may be practiced using one or more computing devices, such as general purpose computers or computer servers programmed and adapted to operate in an improved manner. Figure 3 3 is a schematic block diagram representation of a system 300 that includes a general purpose computer 310. The general purpose computer 310 includes a number of components, including: a processor 312, a memory 314, a storage medium 316, an input / output (I / O) interface 320, and an input / output (I / O) port 322. The components of the general purpose computer 310 typically communicate with each other using one or more buses 348.

[0158] The memory 314 may be implemented using random access memory (RAM), read-only memory (ROM), or a combination thereof. The storage medium 316 may be implemented as a hard drive, a solid-state "flash" drive, an optical drive, or one or more of other storage components. The storage medium 316 may be used to store one or more computer programs, including an operating system, software applications, and data. In one operating mode, instructions from one or more computer programs stored in the storage medium 316 are loaded into the memory 314 via the bus 348. The instructions loaded into the memory 314 are then available for execution by the processor 312 via the bus 348 or other components to implement an operating mode according to the executed instructions.

[0159] One or more peripheral devices may be coupled to the general purpose computer 310 via I / O port 322. Figure 3 In the example of FIG. 3 , a general purpose computer 310 is coupled to each of a speaker 324, a display device 330, an input device 332, and an external storage medium 336. The speaker 324 may be implemented using one or more speakers that are internal to the computing device 310 or external to the computing device 310, such as in a stereo or surround sound system, where the speakers may be used to sound audible alarms, etc.

[0160] Display device 330 may be a computer monitor, such as a cathode ray tube screen, a plasma screen, or a liquid crystal display (LCD) screen. Display 330 may receive information from computer 310 in a conventional manner, where the information is presented on display device 330 for viewing by a user. Display device 330 may optionally be implemented using a touch screen to enable a user to provide input to general purpose computer 310. The touch screen may be, for example, a capacitive touch screen, a resistive touch screen, a surface acoustic wave touch screen, etc. In general purpose computer 310 used to implement Figure 1 In the example of the drilling control station 120 of FIG. 1 , the display device 310 may display a user interface for receiving input from the drilling controller 115 and displaying information related to the operation and control of the drilling rigs 170 a . . . n.

[0161] The input device 332 may be a keyboard, a mouse, a stylus, a drawing tablet, or any combination thereof, for receiving input from a user. The external storage medium 336 may include an external hard disk drive (HDD), an optical drive, a floppy disk drive, a flash drive, a solid state drive (SSD), or any combination thereof, and may be implemented as a single instance or multiple instances of any one or more of these devices. For example, the external storage medium 336 may be implemented as a hard disk drive array.

[0162] I / O interface 320 facilitates information exchange between general purpose computing device 310 and other computing devices. The I / O interface may be implemented using an internal or external modem, Ethernet connection, etc. to enable coupling to a transmission medium. Figure 3 In the example of , I / O interface 322 is coupled to communication network 338 and directly coupled to computing device 342. Computing device 342 is shown as a personal computer, but can also be practiced using a smart phone, laptop computer, or tablet device. Direct communication between general purpose computer 310 and computing device 342 can be implemented using a wireless or wired transmission link.

[0163] The communication network 338 may be implemented using one or more wired or wireless transmission links, and may include, for example, a dedicated communication link, a local area network (LAN), a wide area network (WAN), the Internet, a telecommunications network, or any combination thereof. The telecommunications network may include, but is not limited to, a telephone network, such as a public switched telephone network (PSTN), a mobile phone cellular network, a short message service (SMS) network, or any combination thereof. The general purpose computer 310 is able to communicate via the communication network 338 with other computing devices connected to the communication network 338, such as a mobile phone handset 344, a touch screen smart phone 346, a personal computer 340, and a computing device 342.

[0164] One or more instances of general purpose computer 310 may be used to implement a drilling control station, site controller, remote central controller, and / or drilling module according to the present disclosure. In such an embodiment, memory 314 and storage 316 are used to store one or more of supervisory system software, equipment software, and data related to the configuration of a drill rig at one or more mines, depending on the particular application.

[0165] Industrial Applicability

[0166] The described arrangement is suitable for use in the primary industry and, in particular, in the mining industry.

[0167] Although the present invention has been described with reference to specific examples, it will be appreciated by those skilled in the art that the present invention may be implemented in many other forms. The foregoing only describes some embodiments of the present invention, and modifications and / or changes may be made thereto without departing from the scope and spirit of the present invention, which embodiments are illustrative rather than restrictive.

[0168] In the context of this specification, the word "comprise" and its associated grammatical constructions mean "mainly including but not necessarily only including" or "having" or "comprising", rather than "consisting only of..." Variations of the word "comprise", such as "include" and "contain" have correspondingly different meanings.

[0169] As used throughout this specification, unless otherwise indicated, the use of ordinal adjectives "first," "second," "third," "fourth," etc. to describe common or related objects indicates that different instances of these common or related objects are referenced, and is not intended to imply that the objects so described must be provided or positioned in a given order or sequence (whether temporally, spatially, in ranking, or in any other manner).

[0170] References throughout this specification to "one embodiment," "an embodiment," "some embodiments," or "embodiments" mean that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, the phrases "in one embodiment" or "in an embodiment" appearing throughout this specification are not necessarily all referring to the same embodiment, but may. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments, as would be apparent to one of ordinary skill in the art from this disclosure.

[0171] Although some embodiments described herein include some features included in other embodiments, but do not include other features, the combination of features of different embodiments is intended to be within the scope of the present invention and form different embodiments, as will be understood by those skilled in the art. For example, in the following claims, any of the claimed embodiments can be used in any combination.

[0172] In addition, some embodiments are described herein as a combination of methods or method elements, which can be implemented by a processor of a computer system or other components that perform the function. Therefore, a processor with instructions required to perform such methods or method elements constitutes a component for performing the method or method element. In addition, the elements of the device embodiments described herein are examples of components for performing the functions performed by the element for the purpose of performing the present invention.

[0173] In the description provided herein, many specific details are set forth. However, it should be understood that embodiments of the present invention can be practiced without these specific details. In other examples, well-known methods, structures, and techniques are not shown in detail so as not to obscure the understanding of this description.

[0174] Note that when describing a method comprising several elements (eg, several steps), no ordering of such elements (eg, such steps) is implied unless explicitly stated otherwise.

[0175] The term "coupled" should not be interpreted as limited to direct connections. The terms "coupled" and "connected" and their derivatives may be used. It should be understood that these terms are not intended to be synonyms of each other, but may be synonyms. Therefore, the scope of the expression "device A is coupled to device B" should not be limited to devices or systems in which the input or output of device A is directly connected to the output or input of device B. This means that there is a path between device A and device B, which may be a path that includes other devices or components. In addition, "coupled to" does not imply direction. Therefore, the expression "device A is coupled to device B" may be synonymous with the expression "device B is coupled to device A". "Coupled" may mean that two or more elements are in direct physical or electrical contact, or that two or more elements are not in direct contact with each other but still cooperate or interact with each other.

Claims

1. A method for providing backward compatibility between a supervisory system and a device controlled by the supervisory system, the supervisory system being implemented using supervisory system software and the device being implemented using on-device control software, wherein the on-device control software is configured to interact with device software executed on the device, the method comprising the following steps: implementing a supervisory system data translation layer, the supervisory system data translation layer including mapping rules for translating serialized objects, key-values, and events between at least one version of the supervisory system software and at least one version of the on-device control software; Implementing a supervisory system application layer, the supervisory system application layer passing supervisory serialization information to the supervisory system data translation layer to define a serialization object of the supervisory system; exchanging automation control protocol message identifiers (IDs) and key-value definitions during a connection between said supervisory system and said device; making a compatibility decision by the supervisory system software based on the exchanged automation control protocol message IDs; The monitoring system software receives device serialization information from the control software on the device; Key-value pairs are enforced by the supervisory system software translation layer based on the complete definition of the key-value pairs and the compatibility decision.

2. The method of claim 1, wherein upon determining an incompatibility between a current version of the supervisory system software and a current version of control software on the device, the supervisory system software prohibits operation of at least one function of the device.

3. The method according to any one of claims 1 and 2, Wherein the supervisory system is a control station and the device is one of an autonomous vehicle and a semi-autonomous vehicle.

4. The method of claim 3, wherein the device is an autonomous vehicle selected from the group consisting of: a car, a truck, a train, a loader, a crusher, an excavator, a bulldozer, and a drill.

5. The method of claim 4, wherein the control station is a drilling control station and the autonomous vehicle is a drilling rig.

6. The method of claim 5, wherein the on-device control software is executed on a drilling module located on the drilling rig to interact with the device software executed on the drilling rig.

7. The method of any one of claims 1 to 6, wherein the on-device control software facilitates communication between the supervisory system software and the device software executing on the device, the device software being an integral part of the device and controlling the functionality of the device.

8. A method according to any one of claims 1 to 7, wherein each key-value contains attribute data describing a key and a value associated with the key-value.

9. The method according to any one of claims 1 to 8, further comprising the steps of: A data serialization protocol is used to control changes to the serialization wire format.

10. A control system comprising: A monitoring system implemented using monitoring system software; as well as a device to be controlled by the supervisory system, the device having an on-device module executing on-device control software, wherein the on-device control software is configured to interact with device software executing on the device; The monitoring system software implements: a supervisory system data translation layer including mapping rules for translating serialized objects, key-values, and events between at least one version of said supervisory system software and at least one version of said on-device control software; as well as The supervisory system application layer transmits the supervisory serialization information to the supervisory system data translation layer to define the serialization object of the supervisory system; wherein the supervisory system software and the on-device control software are configured to exchange capability messages during a connection between the supervisory system and the device, the capability messages including automation control protocol message identifiers (IDs) and key-value definitions; wherein said supervisory system software determines a compatibility decision based on said automation control protocol message IDs exchanged; as well as The supervisory system software receives device serialization information from the on-device control software, and the supervisory system software translation layer enforces key-value pairs based on the complete definition of the key-value pairs and the compatibility decision.

11. The system of claim 10, wherein upon determining an incompatibility between a current version of the supervisory system software and a current version of control software on the device, the supervisory system software prohibits operation of at least one function of the device.

12. The system according to any one of claims 10 and 11, Wherein the supervisory system is a control station and the device is one of an autonomous vehicle and a semi-autonomous vehicle.

13. The system of claim 12, wherein the device is an autonomous vehicle selected from the group consisting of: a car, a truck, a train, a loader, a crusher, an excavator, a bulldozer, and a drill.

14. The system of claim 12, wherein the control station is a drilling control station and the equipment is a drilling rig.

15. The system of claim 14, wherein the on-device control software is executed on a drilling module located on the drilling rig to interact with the device software executed on the drilling rig.

16. A method according to any one of claims 10 to 156, wherein the on-device control software facilitates communication between the supervisory system software and the device software executing on the device, the device software being an integral part of the device and controlling the functionality of the device.

17. A system according to any one of claims 10 to 16, wherein each key-value contains attribute data describing a key and a value associated with the key-value.

18. The system of any one of claims 10 to 17, wherein the data serialization protocol manages changes to the serialization wire format.

19. The system of any one of claims 10 to 18, wherein the on-device module is implemented using one of a general purpose computing device and a programmable logic controller storing instructions for execution to control one or more functions of the device by interacting with the device software.

20. The system according to any one of claims 10 to 19, further comprising: a communication network to which the supervisory system and each of the devices are coupled, Wherein the device comprises a wireless transceiver for coupling the device to the communication network.