Data distribution

EP4754634A1Pending Publication Date: 2026-06-10BAKER HUGHES ENERGY TECH UK LTD

Patent Information

Authority / Receiving Office
EP · EP
Patent Type
Applications
Current Assignee / Owner
BAKER HUGHES ENERGY TECH UK LTD
Filing Date
2024-07-26
Publication Date
2026-06-10

AI Technical Summary

Technical Problem

The existing methods for updating software in subsea nodes are inefficient, leading to bandwidth limitations, disruptions in data transfer, and potential security risks due to delayed updates.

Method used

A method and apparatus for communicating software code updates in a subsea network, where updates are first sent to a master subsea node and then distributed to slave nodes, allowing for sequential and controlled deployment, and including error checking and verification processes.

Benefits of technology

This approach reduces the stress on communication networks during software updates, optimizes bandwidth usage, minimizes disruptions, and ensures timely and secure software updates across the subsea network.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure EP2024025236_06022025_PF_FP_ABST
    Figure EP2024025236_06022025_PF_FP_ABST
Patent Text Reader

Abstract

A method and system for communicating software code updates to a plurality of subsea nodes and a subsea module are disclosed. The method comprises the steps of: at a topside node, providing a most-up-to-date version of software code as an update; communicating the update to a first master subsea node via a communication link provided via an umbilical connection connecting the topside node to the first master subsea node; and providing the update from the first master subsea node to a first subsea node and at least one further subsea node.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] DATA DISTRIBUTION

[0002] FIELD

[0003] The present invention relates to a method and apparatus for communicating software code in a subsea network. In particular, but not exclusively, the present invention relates to receiving a most-up-to-date version of software code as an update and providing the update to a subsea node and thereafter from that subsea node to one or more other subsea nodes.

[0004] BACKGROUND

[0005] In the oil and gas industry, from time-to-time subsea wells are used to extract petroleum and / or natural gas from a site such as an oil well or the like. Control and monitoring of one or more subsea wells is conventionally achieved through communication between a topside location such as a surface platform, a floating production storage and offloading (FPSO) or the like, and a subsea well, via an umbilical. The topside location usually contains a master control station (MCS) which provides monitoring and control of subsea wells topside. The MCS is usually controlled by an operator. Conventionally an umbilical carries lines for electrical power, hydraulic supply and data communications between the topside location and a subsea distribution point. From the distribution point flying leads or other connectors are conventionally utilised to connect the distribution point and thus the master control located topside to control modules associated with each of the subsea wells in a subsea field. Sometimes there may be more than one umbilical from the MCS to more than one of various distribution points and thereby to one or more control modules associated with a subsea well. Nevertheless, data transmitted to and from a given control module to the MCS passes through an umbilical.

[0006] At a subsea well such as an oil well, gas well, water injection well, or the like, a so-called Christmas tree (or ‘subsea tree’ in particular) regulates the flow of fluids in / out of the subsea well. The subsea tree is usually an assembly of sub-components including a control module among other things. The control module (commonly referred to as a ‘control pod’) provides an interface between control lines which usually supply hydraulic power, electric power, and signals from a host facility such as the distribution point and the subsea tree to be controlled. That is to say the control module acts as a control system for the subsea tree / manifold valves. The control module usually contains at least one component called an electronics module. The electronics module is a component of the control module which manages electrical systems on the control module, receives sensor information, processes sensor and other information, stores information and issues instructions to other components of the control module. The electronics module has a processor and runs software (including firmware) to facilitate its functions. From time to time, the software running on the electronics module is updated through a software update process. During the software update process, one or more software files associated with the software update are received by the electronics module and are then executed to update, upgrade, replace, or install software onto the electronics module.

[0007] Conventionally, the software files (data) of various sizes associated with the software update are transferred to the electronics module from the MCS via the umbilical. Where there are more than one electronics module to be updated, each electronics module receives a separate communication containing the software files from the MCS. In other words, software updates are repeatedly distributed from the MCS through the umbilical to each electronics module. The umbilical has a limited bandwidth for transferring data between the subsea well associated with the electronics module and the MCS. Therefore, the provision for sending software updates is somewhat limited. This can cause many problems. For example, transferring software files via the umbilical reduces the bandwidth available for other functions of the subsea trees in the subsea field. If the software files are significant in size and / or there are many electronics modules to transfer the software files to, umbilical bandwidth may be limited for a long period of time. Where there are frequent software updates to electronics modules, there may be regular disruptions to data transfer through the umbilical for other functions. In some instances, the subsea well operation may have to be temporarily halted, a significant undesirable and expensive consequence for a subsea well operation. In other instances, software updates of electronics modules may be delayed until periods when they will cause less disruption, potentially risking exposing security flaws, less efficient operation, or other problems associated with outdated software. Further, software updates are distributed across the whole network of electronics modules. If the software update introduces a problem to the electronics module, it may take a while to diagnose the problem, which could have then been distributed to all electronics modules having major consequences for the whole network.

[0008] SUMMARY OF THE INVENTION

[0009] It is an aim of the present invention to at least partly mitigate one or more of the above- mentioned problems. It is an aim of certain embodiments of the present invention to reduce the stress on a communication network due to software updates.

[0010] It is an aim of certain embodiments of the present invention to provide apparatus for distributing software files from a subsea location like a master subsea node.

[0011] It is an aim of certain embodiments of the present invention to provide a method for communicating software code updates between subsea nodes in a communication network.

[0012] It is an aim of certain embodiments of the present invention to provide a method for more efficiently managing / using the limited bandwidth of the umbilical.

[0013] It is an aim of certain embodiments of the present invention to provide a method for verifying that a software update on a subsea electronics module (SEM) has been successful and for proceeding responsive to verifying.

[0014] It is an aim of certain embodiments of the present invention to provide apparatus for incrementally distributing software code to slave subsea nodes in a communication network.

[0015] According to a first aspect of the present invention there is provided a method of communicating software code updates to a plurality of subsea nodes, comprising the steps of: at a topside node, providing a most-up-to-date version of software code as an update; communicating the update to a first master subsea node via a communication link provided via an umbilical connection connecting the topside node to the first master subsea node; and providing the update from the first master subsea node to a first subsea node and at least one further subsea node.

[0016] Aptly the method further comprises: at the first master subsea node, determining the first subsea node and the at least one further subsea node from a plurality of slave subsea nodes as a first slave subsea node and a further slave subsea node based on instructions received from the topside node; and providing the update from the first master subsea node to the first slave subsea node and the further slave subsea node.

[0017] Aptly the method further comprises: from each subsea node, transmitting a received OK signal to the topside node via the first master subsea node when an update of the software code is received at a recipient subsea node.

[0018] Aptly the method further comprises: the topside node and the first master subsea node and each slave subsea node are communication nodes of a communication network.

[0019] Aptly the method further comprises: providing the update as a single message over the communication link or as a series of messages sent at spaced apart periods of time in the time domain over the communication link.

[0020] Aptly the method further comprises: providing the update as a series of messages by transforming the update into a plurality of update sub-elements and providing the update sub-elements as individual messages over the communication link.

[0021] Aptly the method further comprises: performing an error check procedure at each subsea node upon receipt of a whole copy of the update and, responsive thereto, providing a check OK or check FAIL message to the topside node via the first master subsea node.

[0022] Aptly the method further comprises: responsive to a TIME OUT or check FAIL message, providing the update, as a re-sent update, from the topside node to the first master subsea node via the communication link.

[0023] Aptly the method further comprises: providing the update, as a re-sent update, to at least one subsea node that failed to duly send a check OK message or that responded with a check FAIL message. Aptly the method further comprises: providing the update to each subsea node sequentially by providing the update to a next subsea node after receiving the check OK from a previous subsea node.

[0024] Aptly the method further comprises: at the first master subsea node, determining the first subsea node as a first subordinate master subsea node and the at least one further subsea node as a respective at least one further slave subsea node from a plurality of slave subsea nodes, based on instructions received from the topside node; and providing the update from the first master subsea node to the first subordinate master subsea node and the respective at least one further slave subsea node. .

[0025] Aptly the method further comprises: providing the update to each subsea node sequentially.

[0026] Aptly the method further comprises: each subsea node is an SCM or an SEM or a distribution unit or a manifold and / or each master subsea node is a processor element at an XT or SCM or SEM or distribution unit or manifold.

[0027] Aptly the method further comprises: each master subsea node comprises a subsea manifold and / or the umbilical connection comprises at least one optical fibre or stranded copper conductor or twisted pair wire connections.

[0028] Aptly the method further comprises: at the first master subsea node, determining which other master subsea node(s) to distribute the update to.

[0029] Aptly the method further comprises: the first subsea node and the at least one further subsea node are remote from the first master subsea node.

[0030] Aptly, the method further comprises: each subsea node is remote from any remaining subsea node.

[0031] Aptly, the method further comprises: the first master subsea node, the first subsea node, and the at least one further subsea node are each spaced apart, by at least a predetermined distance, from each remaining subsea node of the first master subsea node, the first subsea node, and the at least one further subsea node.

[0032] Aptly, the method further comprises providing the update from the first master subsea node to the first subsea node that is remote from the first master subsea node and to at least one further subsea node that are each remote from the first master subsea node.

[0033] Aptly the method further comprises providing the update from the first master subsea node to the first subsea node that is remote from the first master subsea node and that is spaced apart from the first master subsea node by a predetermined distance that is at least 5m, and to at least one further subsea node that are each remote from the first master subsea node and spaced apart from the first master subsea node by a predetermined distance that is at least 5m.

[0034] Aptly, the method further comprises: each subsea node is spaced apart by at least a predetermined distance from each and any other subsea node.

[0035] Aptly, the method further comprises: the predetermined distance is 1m or 10m or 100m or 1km or 10km.

[0036] According to a second aspect of the present invention there is provided a subsea module locatable at a subsea location, comprising: a first processor element for receiving a most-up-to-date version of software code as an update from a topside node and providing the update to a first subsea node and at least one further subsea node.

[0037] Aptly, the first processor element includes a first controller for determining the first subsea node and the at least one further subsea node as a first slave subsea node and a further slave subsea node from a plurality of slave subsea nodes based on instructions received from the topside node and / or for determining the first subsea node as a first subordinate master subsea node and the at least one further subsea node as a further slave subsea node from a plurality of slave subsea nodes, based on instructions received from the topside node and providing the update from the first master subsea node to the first subordinate master subsea node and the further slave subsea node.

[0038] Aptly, the first processor element includes a further controller for providing the update to each subsea node sequentially by providing the update to a next subsea node after receiving a check OK from a previous subsea node.

[0039] Aptly, the subsea module is a distribution unit or manifold or XT or SCM or SEM.

[0040] Aptly, the first processor element is for determining which master subsea node(s) to distribute the update to.

[0041] Aptly, the first subsea node and the at least one further subsea node are remote from the subsea module.

[0042] Aptly, each subsea node is remote from any remaining subsea node.

[0043] Aptly, the subsea module, the first subsea node, and the at least one further subsea node are each spaced apart, by at least a predetermined distance, from each remaining subsea node of the subsea module, the first subsea node, and the at least one further subsea node.

[0044] Aptly, the first subsea node is remote from the subsea module and said at least one further subsea node are each remote from the subsea module.

[0045] Aptly, the first subsea node is remote from the subsea module and is spaced apart from the subsea module by a predetermined distance that is at least 5m, and said at least one further subsea node are each remote from the subsea module and are spaced apart from the subsea module by a predetermined distance that is at least 5m.

[0046] Aptly, the first subsea node is remote from a first master subsea node and at least one further subsea node are each remote from the first master subsea node.

[0047] Aptly the first subsea node is remote from a first master subsea node and is spaced apart from the first master subsea node by a predetermined distance that is at least 5m, and at least one further subsea node are each remote from the first master subsea node and spaced apart from the first master subsea node by a predetermined distance that is at least 5m.

[0048] Aptly, each subsea node is spaced apart by at least a predetermined distance from remaining subsea nodes.

[0049] Aptly, the predetermined distance is 1m or 10m or 100m or 1 km or 10km.

[0050] According to a third aspect of the present invention there is provided a system for communicating software code updates to a plurality of subsea nodes, comprising: at least one master subsea node each connected to a respective plurality of subsea nodes and disposed to receive a most-up-to-date version of software code as an update from a topside node; said respective plurality of subsea nodes each receiving the update from a respective master subsea node and each comprising at least one processor element for providing a check OK indicating receipt of a whole copy of the update.

[0051] Aptly, each master subsea node includes a first processor element for determining a first slave subsea node and a further slave subsea node from said respective plurality of subsea nodes based on instructions received from the topside node and / or for determining a first subordinate master subsea node and at least one further slave subsea node from said respective plurality of subsea nodes, based on instructions received from the topside node and / or for providing the update to each subsea node sequentially by providing the update to a next subsea node after receiving a check OK from a previous subsea node and / or for providing the update from a first master subsea node to the first subordinate master subsea node and said at least one further slave subsea node.

[0052] Aptly, said at least one master subsea node is disposed to receive the update from the topside node at a first master subsea node and to determine which other master subsea node(s) to distribute the update to.

[0053] Aptly, the plurality of subsea nodes are remote from said respective master subsea node.

[0054] Aptly, each subsea node is remote from any remaining subsea node. Aptly, said at least one master subsea node and said respective plurality of subsea nodes are each spaced apart, by at least a predetermined distance, from each remaining subsea node of said at least one master subsea node and said respective plurality of subsea nodes.

[0055] Aptly, the at least one master subsea node, the first subordinate master subsea node, and the at least one further slave subsea node are each spaced apart, by at least a predetermined distance, from each remaining subsea node of the at least one master subsea node, the first subordinate master subsea node, and the at least one further slave subsea node.

[0056] Aptly, a first subsea node is remote from a first master subsea node and at least one further subsea node are each remote from the first master subsea node.

[0057] Aptly a first subsea node is remote from a first master subsea node and is spaced apart from the first master subsea node by a predetermined distance that is at least 5m, and at least one further subsea node are each remote from the first master subsea node and spaced apart from the first master subsea node by a predetermined distance that is at least 5m.

[0058] Aptly, each subsea node is spaced apart by at least a predetermined distance from remaining subsea nodes.

[0059] Aptly, the predetermined distance is 1m or 10m or 100m or 1km or 10km.

[0060] Aptly, a communication network is an interconnected group of nodes that can communicate with each other via one or more connections. A connection can be provided via a respective one or more communication link.

[0061] Aptly, the one or more connections may be wired connections, wireless connections, or the like.

[0062] Aptly, a node is a virtual point in a communication network.

[0063] Aptly, a topside node is a node that is associated with a physical location on / at the surface of a body of water. Aptly, a subsea node is a node that is associated with a physical location under the surface of a body of water, at a depth of 1m, 10m, 500m, 10km or more below the surface of a sea, lake, or the like. Subsea thus indicates under a body of water rather than just under a sea surface.

[0064] Aptly, a topside node is a node that is physically located on / at the surface of a body of water.

[0065] Aptly, a subsea node is a node that is physically located under the surface of a body of water, at a depth of 1m, 10m, 500m, 10km or more below the surface of a sea, lake, or the like.

[0066] Aptly, a topside node is an FPSO.

[0067] Aptly, a topside node is a surface platform.

[0068] Aptly, a topside node is a topside component.

[0069] Aptly, a subsea node is an SCM, SEM, distribution unit, manifold, PCDM, OEM, subsea tree, or the like.

[0070] Aptly, the master subsea node comprises a data store and the master subsea node is disposed to store the update in the data store at the master subsea node as a stored update; and each of the plurality of slave subsea nodes receives the stored update.

[0071] Aptly, the master subsea node is disposed to store the update that is an update provided to the master subsea node via a communication link provided via an umbilical.

[0072] Aptly, each most up to date version of a software code is provided, and thereafter stored at the master subsea node, only once via a communication link provided by an umbilical.

[0073] Aptly each slave subsea node is associated with a respective subsea well.

[0074] Aptly each master subsea node is one of a distribution unit, a manifold, an SEM and a subsea tree and each slave subsea node is one of a distribution unit, a manifold, an SEM and a subsea tree.

[0075] According to a fourth aspect of the present invention there is provided a method of communicating data to a plurality of subsea modules, comprising the steps of: at a topside node, providing a most-up-to-date version of software code as an update; communicating the update to a first master subsea node via a communication link provided via an umbilical connection connecting the topside node to the first master subsea node; and providing the update from the first master subsea node to a first subsea node and at least one further subsea node.

[0076] Certain embodiments of the present invention provide a method that communicates software code updates between subsea nodes in a communication network.

[0077] Certain embodiments of the present invention provide apparatus that reduces disruption to the production data that are also transferred through a communication network via the umbilical.

[0078] Certain embodiments of the present invention provide a method that reduces the use of bandwidth associated with software updates at the umbilical.

[0079] Certain embodiments of the present invention provide a method that transforms a single software element into a plurality of sub-elements that can be more easily transferred via a communication link.

[0080] Certain embodiments of the present invention provide a method that distributes data to a master subsea node and then to subordinate slave subsea nodes.

[0081] Certain embodiments of the present invention provide a cyclic redundancy check (CRC) upon communicating software code to a selected subsea node.

[0082] Embodiments of the present invention will now be described hereinafter, by way of example only, with reference to the accompanying drawings in which:

[0083] BRIEF DESCRIPTON OF THE DRAWINGS

[0084] Figure 1 illustrates a subsea field with multiple installation wells;

[0085] Figure 2 illustrates a schematic diagram of a subsea control system; Figure 3 illustrates a subsea well configuration;

[0086] Figure 4 illustrates a master subsea node configuration;

[0087] Figure 5 illustrates a method of communicating software code updates at the master subsea node;

[0088] Figure 6 illustrates a method of communicating software code updates at the slave subsea node; and

[0089] Figure 7 illustrates a schematic diagram of an alternative subsea control system.

[0090] DETAILED DESCRIPTION OF THE INVENTION

[0091] In the drawings like reference numerals refer to like parts.

[0092] Figure 1 illustrates a subsea field 100 below a sea surface 110 where a first subsea site 115, a second subsea site 116 and a third subsea site 117 are located. It will be appreciated that there may alternatively be one, two, four or more subsea sites 115, 116, 117 in the subsea field 100. At the first subsea site 115 there are multiple wells 120i ,2 (two shown). The second and third subsea sites 116, 117 also have multiple subsea wells 120 (not shown). It will be appreciated that the subsea site 115, 116, 117 may alternatively have one, two, three, four or more subsea wells 120. The subsea site 115, 116, 117 therefore includes at least one wellhead and its respective Christmas (subsea) tree. Figure 1 thus illustrates a multiple well complex about a seabed 125. It will be appreciated that the sea surface 110 may alternatively be the surface of any body of water (e.g. lake, sea, pond, river, or the like) and the seabed 125 may alternatively be the bed associated with any body of water (e.g. lake, sea, pond, river, or the like).

[0093] A floating production storage and offloading (FPSO) vessel 130 is located above the field 100 (ie topside). It will be appreciated that alternatively, a floating platform, topside location or topside node may be provided instead of the FPSO 130. The FPSO 130 includes a topside controller 132 and an electrical power unit. The topside control shown in Figure 1 is a master control station (MCS) 132. It will be appreciated that the topside control 132 is an example of a master controller. The MCS is an example of a topside control device. It will be appreciated that other master controllers or other topside control devices could be provided a network master node. The MCS 132 is used to generate and receive control communications to instruct operation of subsea components and to receive data indicative of the state of various components and sensor readings etc. It will be appreciated that whilst a floating structure is illustrated in Figure 1 the MCS 132 may be a shore-based control centre node or a platformbased node or the like.

[0094] The FPSO 130 is connected via a first umbilical 135i to a distribution unit 140. It will be appreciated that the distribution unit could be a manifold, subsea distribution unit (SDU) or the like. A topside node is a node that is physically located on / at the surface of a body of water. A subsea node is a node that is physically located under the surface of a body of water, e.g. at a depth of 1m, 10m, 500m, 10km or more below the surface of a sea, lake, or the like. The first umbilical 135i is terminated in a wet mating connector 145 which mates with a corresponding wet mating connector interface 150 of the distribution unit 140. A second umbilical 1352 connects the FPSO 130 and associated MCS to the second subsea site 116. The second subsea site 116 contains a distribution unit and subsea wells (not shown). A third umbilical 135a connects the FPSO 130 and associated MCS to the third subsea site 117. The third subsea site 117 contains a distribution unit and subsea wells (not shown). The second subsea site 116 is connected to the first subsea site 115 by a first cable 153i . The third subsea site 117 is connected to the first subsea site 115 by another first cable 1532. It will be appreciated that the distribution units in the first subsea site 115, second subsea site 116 and third subsea site 117 are interconnected by the first cables 153I,2. It will be appreciated that whilst three subsea sites 115, 116, 117 are illustrated in Figure 1 , there may alternatively be one, two, four, five, six or more subsea sites 115, 116, 117 located in the subsea field 100, operated by the single FPSO 130.

[0095] Respective second cables 16O1 ,2 connect the distribution unit 140 to each respective subsea well 120. The distribution unit 140 and subsea wells 120i ,2 that are illustrated are arranged in a so-called star formation, where the distribution unit 140 is connected to each subsea well 120 individually. It will be appreciated that alternatively the distribution unit 140 may be connected to the subsea wells 120I,2 in a mesh or chain formation, wherein the distribution unit 140 is connected to one subsea well 120i and each subsea well 120i is connected to a consecutive subsea well 1202. It will be appreciated that alternatively any other formation may be used. It will be appreciated that there may alternatively be more than one distribution unit 140. It will be appreciated that the distribution unit 140 may alternatively not be a discrete element but may instead merely be a distribution point provided by a manifold or Christmas (subsea) tree or the like. In some embodiments the distribution unit 140 may be referred to as a distribution point or a distribution node.

[0096] Each subsea well 120 illustrated in Figure 1 is associated with a respective subsea control module (SCM) 170i ,2. It will be appreciated that the SCM 170 may be referred to as a control module. The SCM determines operation of hydraulic driven valves which can be opened and closed using electrical signals communicated from the FPSO 130 or other MCS centre. Each SCM 170I ,2 is associated with two subsea electronics modules (SEMs) (not shown). It will be appreciated that an SCM 170 may alternatively be associated with one, three, four or more than four SEMs. It will be appreciated that the SEM may be referred to as an electronics module.

[0097] Aptly each subsea node is spaced apart by at least a predetermined distance from its nearest neighbour subsea node. Aptly the predetermined distance is 1m or 5m or 10m or 100m or 1 km or 10km.

[0098] Figure 2 illustrates a schematic 200 of a subsea control system of the subsea sites 115, 116, 117 and FPSO 130. Whilst Figure 1 illustrates a physical system of topside and subsea apparatus, Figure 2 illustrates only a communication network / approach for the physical system including a plurality of nodes. It will be appreciated that alternative subsea control system arrangements may be used instead.

[0099] The communication network is an interconnected group of nodes that can communicate with each other via one or more connections, whereby the one or more connections may each be a wired connection, wireless connection, or the like. A node is a uniquely addressable location in the communication network. The node may include one or more processing elements. A topside node is a node that is associated with a physical location above / on / at the surface of a body of water. A subsea node is a node that is associated with a physical location under the surface of a body of water, at a depth of 1m, 10m, 500m, 10km or more below the surface of a sea, lake, or the like. Alternatively, the topside node is a node that is physically located above / on / at the surface of a body of water. Alternatively, the subsea node is a node that is physically located under the surface of a body of water, e.g., at a depth of 1m, 10m, 500m, 10km or more below the surface of a sea, lake, or the like. Optionally, the topside node is an FPSO. Optionally, the subsea node is an SCM, SEM, distribution unit, subsea tree, or the like. Aptly each and every subsea node is non-local to other subsea nodes in the communication network.

[0100] Aptly each subsea node is remote from each other subsea node in a given plurality of subsea nodes.

[0101] Figure 2 illustrates use of a network master 210. It will be appreciated than in any embodiment, the network master may be called a topside node. The illustrated network master 210 is located topside. The network master 210 is associated with the FPSO 130. It will be appreciated that the FPSO 130 may alternatively be a floating platform, a land platform, or the like. It will be appreciated that the network master 210 may be a node running on the MOS 132. In other words, the network master 210 is a node of the MOS 132. Alternatively, the network master node may be aligned as the MOS. The network master node 210 communicates with three sub-networks 22O1-3. A first sub-network 220i corresponds to the first subsea site 115. A second sub-network 2202 corresponds to the second subsea site 116. A third sub-network 22O3 corresponds to the third subsea site 117. It will be appreciated that the network master node 210 could alternatively communicate with and / or manage one, two, four, or more sub-networks 220. Communication of data between the network master node 210 and any sub-network 220 is facilitated by the umbilical 135I-3. The umbilical 135 is associated with at least one communication link. The illustrated umbilical 135I-3 contains a fibre optic connection for transferring information, although it will be appreciated that the umbilical 135I-3 could alternatively or additionally contain a fast copper connection, a direct subscriber line (DSL) connection, 100BaseT connection, other wired connection, wireless connection or the like. The first umbilical 135i connects the network master node 210 to a first sub-network master 240i. The second umbilical 1352 connects the network master node 210 to a second sub-network master 2402. The third umbilical 135s connects the network master node 210 to a third sub-network master 240s. The first cable 153i ,2 connects one sub-network master 240I-3 to another sub-network master 240I-3. The first cable 153I,2 is a fibre optic connection, although it will be appreciated that the first cable 153i ,2 is of a first cable type and could alternatively be a fast copper connection, a direct subscriber line (DSL) connection, 100BaseT connection, other wired connection, wireless connection or the like. The first cable 153 is a communication link. The first sub-network master 240i is a node of the sub-network 220i. It will be appreciated that the first sub-network master 240i is a node running on the distribution unit 140. The second sub-network master 2402 is a node of the sub-network 2202. It will be appreciated that the second sub-network master 2402 is a node running on a second distribution unit. The third sub-network master 240s is a node of the sub-network 22O3. It will be appreciated that the third sub-network master 240a is a node running on a third distribution unit. It will be appreciated that alternatively, the sub-network masters 240 may be running on a manifold or a distribution unit or the like.

[0102] Figure 2 also shows a first sub-network node 250i. The first sub-network node 250i is a node associated with the first subsea well 120i. Similarly, a second sub-network node 2502 is a node associated with the second subsea well 1202. The remaining subsea sub-network nodes 25O3-9 are associated with subsea wells 120. The sub-networks 22O1-3 are thus associated with numerous subsea wells 120. In other words, the subsea control system diagram 200 extends over nine subsea wells 120. The arrangement of the network master node 210, subnetwork masters 240I-3 and sub-network nodes 250i.g shown in Figure 2 may be described as a ‘point-to-point hybrid’. That is to say there is a mesh network between the network master node 210 and sub-network masters 240I-3. Aptly there is a tree / star network between the network master node 210 and sub-network masters 240I-3. Aptly there is a tree / star subnetwork between a given sub-network master 240I-3 and its sub-network nodes 250i.g. Aptly there is a mesh network between a given sub-network master 240I-3 and its sub-network nodes 250i.g. In the tree / star network a given sub-network master 240I-3 is a central hub that each sub-network node 240 is connected to via the second cable 160 (eight shown). The second cable 160 is of a second cable type and is a copper connection. It will be appreciated that alternatively the second cable 160 may be a fibre optic, fast copper, other wired or wireless connection. The second cable 160 is a communication link.

[0103] It will be appreciated that the sub-network master 240I-3 is also called a master subsea node 240I-3. Aptly the master subsea node is a hierarchical position in the communication network. Aptly the master subsea node is defined in the communication network depending on the task that is being performed. In some embodiments, the master subsea node may be a single subnetwork master 240i. In some embodiments the master subsea node may be a sub-network node 250i.g running on a subsea tree. It will be appreciated that the sub-network node 250i.g is also called a slave subsea node 250i.g. Aptly the slave subsea node is a hierarchical position in the communication network. Aptly the slave subsea node is defined in the communication network depending on the task that is being performed. In some embodiments, the slave subsea node may be one or more sub-network masters 2402,3. In some embodiments the slave subsea node may be only one or more of the sub-network nodes 250i.g. It will be appreciated that the first and second sub-network nodes 250I,2 are subordinate slave subsea nodes associated with the first master subsea node 240i. Similarly, any subordinate slave subsea nodes are slave subsea nodes 250i.g associated with a respective master subsea node 240I-3. Communication links are provided between master subsea nodes 240 and slave subsea nodes 250 in the schematic 200 illustrated in Figure 2. It will be appreciated that alternatively a data distribution method could apply to just a subnetwork master and its sub nodes.

[0104] Aptly the physical entities that are associated with the sub-network node(s) 250 and / or the sub-network master(s) 240 are each spaced apart. Aptly the physical entities that are associated with the sub-network node(s) 250 and / or the sub-network master(s) 240 are each at least 1m, 10m, 100m, or more apart. Aptly the master subsea node 240 and the slave subsea node 250 are not located in a single external housing. Aptly each master subsea node 240 is located at a different subsea well 120.

[0105] The slave subsea node 250 is remote from the master subsea node 240. The master subsea node 240 is also remote from other master subsea nodes 240. The slave subsea node 250 is also remote from other slave subsea nodes 250. Aptly remote may mean being spaced apart from by at least a predetermined distance. Aptly the predetermined distance is 1m, 5m, 10m, 100m, 1km, 10km, or the like. Aptly the first master subsea node 240i and / or the first slave subsea node 250i may not be local to the second or third master subsea nodes 2402,3 and / or to the second or third slave subsea nodes 2502,3 and / or to any other master subsea nodes 240 and slave subsea nodes 250.

[0106] Figure 3 illustrates a subsea well 120 location. At the subsea well 120 there is a wellhead 310 and a subsea tree 320. It will be appreciated that the subsea tree 320 is a type of Christmas tree, ‘XT’. The wellhead 310 is a structure placed on the seabed at the location of a previously drilled subsea well 120. During normal operation, the subsea tree 320 is in fluid connection with the wellhead 310 using pipes so that fluid may flow from the wellhead 310 into the subsea tree 320. The subsea tree 320 thereby monitors and controls the flow of fluid at the well 120. The illustrated subsea tree 320 is a vertical tree although it will be appreciated that a horizontal tree could be used alternatively. The subsea tree 320 may include a number of components for regulating the flow of fluid from the wellhead 310 such as output devices 330, sensors and the like. It will be appreciated that the output devices 330 include valves, pressure regulators, flow regulators, solenoids, motors, switches, logic controllers, auxiliary items, and the like. It will be appreciated that there may be any number of output devices 330 in the subsea tree 320 depending on configuration. The subsea tree 320 illustrated in Figure 3 includes a subsea control module (SCM) 350. The SCM 350 operates and thereby controls output devices of the subsea tree 320. In other words, the SCM 350 controls the subsea tree 320. The SCM 350 also receives software code, firmware code, and the like. The SCM 350 includes two subsea electronics modules (SEMs) 360I,2 for redundancy. It will be appreciated that alternatively the SCM 350 may be a general control module may include one, two, three, four, five, or more SEMs 360. The SEM 360 provides all or some of the processing capabilities of the SCM 350. In other words, the SEM 360 may use electrical signals to operate the SCM 350 thereby adjusting the flow of fluid in the subsea tree 320 based on commands from the MCS 132 and / or sensor data. The SEM 360 is a component of the SCM 350 which manages electrical systems on the SCM 350 and among other things receives and installs software code and issues instructions to other components of the SCM 350.

[0107] The SEM 360 includes a first processor 370 for executing one or more instructions, a nonvolatile storage medium 380 (e.g. a hard disk drive, flash storage, or the like), and a second processor 390 for executing one or more instructions. It will be appreciated that alternatively there may be at least two non-volatile storage media 380. The first processor 370 is a 32-bit microcontroller, although it will be appreciated that alternatively the first processor 370 could be a 16-bit, or a 32-bit, or a 64-bit microcontroller or a microprocessor or the like. The first processor 370 provides the control functionality of the SEM 360. In other words, based on information inputted into the SEM 360, the first processor 370 executes instructions which affect the functions of the subsea tree 320. The first processor 370 has access to volatile memory such as Random Access Memory (RAM) (not shown). Aptly the volatile memory is located in the first processor 370. The first processor 370 is connected to the storage media 380. Instructions may be recalled from the storage media 380 and executed on the first processor 370. The second processor 390 primarily manages and implements software code updates. The second processor 390 receives software code from the subsea master node 250. It will be appreciated that in alternative embodiments, the SEM 360 has only the first processor 370, whereby the functions of the second processor 390 are carried out on the first processor 370. In other words, in some embodiments, the first processor 370 and second processor 390 are combined into one processor.

[0108] Figure 4 illustrates processing elements of a master subsea node 240. Aptly Figure 4 illustrates the processing elements of the distribution unit 140. It will be appreciated that the distribution unit 140 may include many other components. It will be appreciated that the distribution unit may be a manifold, subsea distribution unit (SDU) or the like. That is to say, alternatively, the processing elements shown in Figure 4 and their associated functions as described below may be located in the manifold / SDU. Aptly, the processing elements shown in Figure 4 may be located in the subsea tree 310, the SEM 360I,2, or a Christmas tree (XT). The master subsea node 240 includes a network switch 410. The network switch 410 acts as a common interface to all internal components of the master subsea node 240. In other words the network switch 410 is connected and thereby in communication with all internal components of the master subsea node 240. The master subsea node 240 also includes a management controller. The management controller 420 manages at least one slave subsea node 250. Aptly the management controller 420 manages at least one master subsea node 240. Aptly the management controller 420 runs the software associated with the master subsea node 240. The management controller 420 includes a processor 423 for executing one or more instructions and a non-volatile storage medium 426. The processor 423 is a 32- bit microcontroller. Aptly the processor 423 is a 16-bit, or a 32-bit, or a 64-bit, microcontroller or a microprocessor or the like. The non-volatile storage medium 426 is a hard-disk drive. Aptly the non-volatile storage medium 426 is a flash storage, or a disc storage, or a cloud storage, or the like. The master subsea node 240 also includes a system controller 430. The system controller 430 manages functions of the master subsea node 240. The system controller 430 thereby regulates operations of the master subsea node 240 including any number of: controlling processing tasks, setting performance parameters, receiving data, transmitting data, or the like. Aptly the system controller 430 manages functions of the SEM 360I,2. The system controller 430 includes a processor 433 for executing one or more instructions and a non-volatile storage medium 436. The processor 433 is a 32-bit microcontroller. Aptly the processor 433 is a 16-bit, or a 32-bit, or a 64-bit microcontroller or a microprocessor or the like. The non-volatile storage medium 436 is a hard-disk drive. Aptly the non-volatile storage medium 436 is a flash storage, or a disc storage, or a cloud storage, or the like.

[0109] The master subsea node 240 includes a subsea-to-topside (STS) modem 440. The STS modem 440 is in communication with the network master node 210. In other words the STS modem 440 is in communication with the MCS 132 via the umbilical 135. The STS modem 440 thus provides a communication interface to topside. It will be appreciated that in some embodiments, where the processing elements shown in Figure 4 are alternatively located on the SEM 360, the STS modem 440 may serve no or only a limited function. The master subsea node 240 includes at least one subsea (S) modem 450. The S modem 450 is in communication with any combination of: at least one distribution unit 140, at least one SEM 360 or the like. In other words the S modem 450 provides a communication interface to other subsea components including subordinate slave subsea nodes 250 and / or the master subsea nodes 240 for providing / transmitting and receiving data. It will be appreciated that where the master subsea node 240 is in communication with multiple slave subsea nodes 250 or one or more master subsea nodes 240, one subsea (S) modem may be required for each individual communication link. Optionally there is a modem in each subsea node for each subsea node that it communicates with. Optionally there is a modem with multiplexing capable of communicating with multiple subsea nodes. The subordinate slave subsea nodes 250 are associated with the respective master subsea node 240. The data received from the slave subsea node 250 includes analytical data, verification data or the like. The data transmitted to the slave subsea node 250 includes software code, software updates, firmware updates, or the like. It will be appreciated that the modems 440, 450 include at least one processor for executing one or more instructions (not shown) and optionally at least one non-volatile storage medium (not shown).

[0110] Figure 4 also illustrates a distribution controller 460 of the master subsea node 240. The distribution controller 460 may be an EDGE PC. The distribution controller 460 manages software code updates received from the MCS 132 and provides the updates to subordinate slave subsea nodes 250. The distribution controller 460 also determines which of a plurality of subordinate slave subsea nodes 250 are selected slave subsea nodes to provide the update to, in which order and at what time. A selected slave subsea node is a slave subsea node 250 that is going to have its software modified in response to the update provided by the master subsea node 240. The distribution controller 460 includes a processor 463 for executing one or more instructions and a non-volatile storage medium 466. The processor 463 is a 32-bit microcontroller. Aptly the processor 463 is a 16-bit, or a 32-bit, or a 64-bit microcontroller or a microprocessor or the like. The non-volatile storage medium 466 is a hard-disk drive. Aptly the non-volatile storage medium 466 is a flash storage, or a disc storage, or a cloud storage, or the like.

[0111] It will be appreciated that the network switch 410 is in communication with the management controller 420, the system controller 430, the subsea-to-topside modem 440, the subsea modem 450 and the distribution controller 460. It will be appreciated that alternatively the instructions executed by the distribution controller 460 may be executed by the system controller 430. It will be appreciated that in any embodiment the functions of the distribution controller 460 may instead be functions of the system controller 430. It will be appreciated that alternatively, the distribution controller 460 may be a virtual machine running in software instead of a physical component. Figure 5 illustrates a method 500 of communicating software code updates at the master subsea node 240. It will be appreciated that a software code update corresponds to software files (data) associated with a software update at a subsea module. In other words it will be appreciated that in any embodiment the terms ‘software code’, ‘software code update’ and ‘data’ may be used interchangeably. Data here refers to computer data that is stored and processed digitally by a computer. It will be appreciated that the master subsea node 240 may correspond to the distribution unit 140. Aptly the master subsea node 240 corresponds to a manifold, SEM, subsea tree, or the like. It will be appreciated that firmware is a software code. Aptly the method 500 involves communicating data instead of software code at the master subsea node 240.

[0112] At a start step S505, the master subsea node 240 is under normal operation. That is to say associated software of the master subsea node 240 are functioning normally and / or the master subsea node 240 has a communication link with the network master node 210 and / or the master subsea node 240 has a communication link with one or more subordinate slave subsea nodes 250. A subordinate slave subsea node is a slave subsea node 250 associated with a respective master subsea node 240. In other words, each master subsea node 240 has one or more slave subsea nodes 250 associated with it.

[0113] A receiving step S510 is initiated by the receipt of, from the network master node 210, instructions to update one or more subordinate slave subsea nodes 250. The receiving step S510 involves receiving, from the network master node 210, software code as an update. It will be appreciated that the network master node 210 provides a most up-to-date version of the software code as the update. The update is communicated to the master subsea node 240, via the communication link provided by the umbilical 135. The instructions issued by the network master node 210 could include any combination of: which other master subsea nodes 240 to send the update to, which slave subsea nodes 250 to send the update to, whether all subsea nodes 240, 250 should be updated at once or sequentially, a version number associated with the update, or the like.

[0114] A determining step S515 involves determining which subordinate slave subsea nodes 250 to distribute the update to. Aptly the determining step S515 involves determining which other master subsea nodes 240 to distribute the update to. Aptly the determining step S515 involves determining a predetermined order in which the update is distributed to slave subsea node / s 250 and / or master subsea node / s. Aptly determining may be based on the instructions received from the master network node 210. It will be appreciated that certain software code (updates) may only be relevant to certain slave subsea nodes 250, for example slave subsea nodes 250 associated with a specified subsea tree 320. A selected slave subsea node is the slave subsea node 250 that will receive the update. It will be appreciated that there may be more than one selected slave subsea node.

[0115] Aptly each subsea node may be non-local to other subsea nodes in the communication network. Aptly the subordinate slave subsea nodes 250 and / or other master subsea nodes 240 determined by the master subsea node 240 to distribute the update to are remote from the master subsea node 240 itself. Aptly, the slave subsea nodes 250 may not be subcomponents of a master subsea node 240. Aptly remote may mean spaced apart by at least a predetermined distance. Optionally the predetermined distance may be 1m, 5m, 10m, 100m, 1 km, 10km or the like.

[0116] An optional transforming step S520 involves transforming, at the master subsea node 240, an update element into a plurality of update sub-elements. It will be appreciated that the update element is the software code provided by the network master node 210. It will be appreciated an update sub-element is a fraction of the update. That is to say, all of the update sub-elements may later be assembled into the update that was provided by the network master node 210.

[0117] A providing step S525 involves providing, to subordinate slave subsea nodes 250 simultaneously, the update. Aptly the update is alternatively provided to other master subsea nodes 240 simultaneously. Providing may involve selecting the selected slave subsea node recipient of the update. Aptly the providing step involves providing, to subordinate slave subsea nodes 250 and / or master subsea nodes 240 sequentially, the update. This sequential approach may be referred to as a controlled deployment or roll out such that the providing step S525 is referred to as a staggered providing step S525. Aptly the providing step S525 may be based on the instructions received from the master network node 210 in the receiving step S510. Where there are multiple master subsea nodes 240, one master subsea node 240 may have a higher priority value than the other master subsea nodes 240. In this case, the update may be distributed from the higher-priority master subsea node to the remaining master subsea nodes 240. This alternative is described in relation to Figure 7 below.

[0118] Aptly the update is provided, from a first master subsea node 240, to slave subsea nodes 250 each spaced apart by a predetermined distance of at least 5m. Aptly the update is provided, from a first master subsea node 240, to at least one master subsea node 240 each spaced apart by a predetermined distance of at least 5m. Aptly spaced-apart subsea nodes are separated by an external environment (e.g., a body of water, ground, or the like).

[0119] A second receiving step S530 involves receiving, from the slave subsea node 250, verification of whether the update provided to the slave subsea node 250 in the providing step S525 was successfully installed on the slave subsea node 250. Aptly verification is a success confirmation. Aptly verification is an OK signal. Aptly verification is a FAIL or TIME OUT signal. The second receiving step S530 could involve receiving additional data related to installation of the update on the slave subsea node 250 such as time taken, code overwritten, problems identified or the like. In some embodiments involving the staggered providing step S525, the master subsea node 240 may provide the update to one selected slave subsea node 250, wait until verification has been received from the one selected slave subsea node 250 and then repeat the providing step S525 with the next slave subsea node 250. In this way, a defective update would only be provided to one slave subsea node 250 before a problem is identified.

[0120] A reporting step S535 involves reporting, from the master subsea node 240, to the network master node 210, the status of the update and / or instructions provided by the network master node 210 in the receiving step S510. For example, the master subsea node 240 may report that the update has been successfully installed on all of the selected slave subsea nodes 250. By reporting the status of update updates to the network master node 210, the network master node can keep a record of software and / or software versions on each subsea node 240, 250. After the reporting step S535 a finish stage 540 involves the method 500 ending.

[0121] Figure 6 illustrates a method 600 of communicating update updates at the slave subsea node 250. It will be appreciated that a software code update corresponds to software files (data) associated with a software update at a subsea module. It will be appreciated that the slave subsea node 250 may correspond to the SEM 360. Aptly the slave subsea node 250 corresponds to the distribution unit 140, manifold, subsea tree, or the like. It will be appreciated that firmware is a software code. Aptly the method 600 involves communicating data instead of software code at the slave subsea node 250.

[0122] At a start step S605, the slave subsea node 250 is under normal operation. That is to say associated software of the slave subsea node 250 are functioning normally and / or the slave subsea node 250 has a communication link with the master subsea node 240. A subordinate slave subsea node is a slave subsea node 250 associated with a respective master subsea node 240. In other words, each master subsea node 240 has one or more slave subsea nodes 250 associated with it.

[0123] A first receiving step S610 involves receiving, at the slave subsea node 250, the update from the master subsea node 240. The first receiving step S610 may be initiated by the receiving of the update from the master subsea node 240. It will be appreciated that the update provided by the master subsea node 240 may alternatively be data of any kind. The update is data that should be updated for later use. The update may be the update element that is received by the slave subsea node 250 as a plurality of update sub-elements provided by the optional transforming step S520. The first receiving step S610 may involve validating that the update received is compatible with the slave subsea node 250 as an extra check. It will be appreciated that the update may be associated with a different version (e.g., more up to date) of preexisting software or new software that did not exist on the slave subsea node 250 before. It will be appreciated that firmware is software, so the update may be firmware code associated with one or more output devices 330 associated with the SEM 360 and / or subsea tree 320.

[0124] An optional assembling step S615 involves assembling the update sub-elements that may be provided by the master subsea node 240 as outlined in the optional transforming step S520, received by the slave subsea node 250 in the first receiving step S610. The update subelements are ‘assembled’ to provide the update that was originally provided to the master subsea node 240 by the network master node 210. It will be appreciated that the individual update sub-elements are smaller (fewer bytes) than the update as a whole. Therefore, the use of update sub-elements reduces a file size associated with any one communication via the communication link.

[0125] An optional updating step S620 involves updating associated software using the update received in the receiving step S610. Alternatively, the updating step S620 may be an installing step S620 whereby new software not previously installed on the slave subsea node 250 is installed using the update. It will be appreciated that updating involves recording the received update in storage media 380, amending file paths, configurations, and / or data associated with the update. The update could be a program, configuration, firmware, kernel, or the like for the slave subsea node 250. Aptly the update could be associated with one or more output devices 330 associated with the SEM 360. The slave subsea node 250 may include specific delivery software to install and / or interface with the output devices 330. A verification step S625 involves verifying, at the slave subsea node 250, that the update has been successfully downloaded and / or installed. Aptly verifying involves transmitting a success confirmation. It will be appreciated that successful here means the updated software code functions as intended. Information associated with the updating step S620 may be recorded such as time taken, code overwritten, problems identified or the like. Verifying may involve completing a cyclic redundancy check (CRC). Where the updating step S620 was not successful, information associated with the unsuccessful updating is recorded and / or transmitted to the master subsea node 240. This may include diagnosis of how / why the updating step S620 was not successful. For example the slave subsea node 250 may transmit a FAIL or TIME OUT message or the like.

[0126] A providing step S630 involves providing, to the master subsea node 240, the outcome of the verification step S625. In other words, the success or unsuccess of updating using the update is reported to the master subsea node 240 associated with the slave subsea node 250. Providing may include providing a confirmation. Reporting may include information such as time taken, code overwritten, problems identified, why / how the update was not successful (if applicable), or the like. After the reporting step S630 is completed a finish stage 635 involves the method 600 ending.

[0127] Figure 7 illustrates a schematic 700 of an alternative subsea control system of two subsea sites 705, 706 and the associated network master node 210. The network master node 210 is associated with the MCS 132. Aptly the network master node 210 illustrated in Figure 7 is the MCS 132. The subsea control system illustrated in Figure 7 includes a topside network switch 710 and a fibre modem 715. The fibre modem 715 is connected to the network master node 210 via a third cable 716. The third cable 716 is a communication link. The third cable 716 provides an ethernet connection via RJ45 connectors. The third cable is alternatively a fast copper connection, a direct subscriber line (DSL) connection, 100BaseT connection, other wired connection, wireless connection or the like. A fourth subsea site 705 includes a fourth master subsea node 2404 provided by a manifold connected via the second cable 160 to two slave subsea nodes 250™, n provided by Christmas trees (subsea trees). A fifth subsea site 706 includes a fifth master subsea node 240s provided by a manifold connected via the second cable 160 to two slave subsea nodes 250i2,i3 provided by Christmas trees (subsea trees). The master subsea nodes 2404,5 and corresponding manifolds are connected to each other via the first cable 153a which provides a communication link. According to the arrangement illustrated in Figure 7, communications to the network master node 210 (associated with the MCS 132). The master subsea nodes 2404,5 are connected to the network master node 210 via respective umbilicals 1354,5. The fourth master subsea node 2404 is assigned a priority value of 1 (where 1 is highest priority). The fifth master subsea node 240s is assigned a priority value of 2. In other words, the fourth master subsea node 2404 has a higher priority value in a hierarchy than the fifth master subsea node 240s.

[0128] The master subsea nodes 2404,5 implement the method 500 outlined in Figure 5. The slave subsea nodes 250 -i3 implement the method 600 outlined in Figure 6. The methods 500, 600 are implemented as follows.

[0129] The master subsea nodes 2404,5 and slave subsea nodes 250 -i3 are under normal operation according to their respective start steps S505, S605. The network master node 210 provides data that is received in the receiving step S510 by the master subsea node 2504 because this master subsea node 2404 has the highest priority value. It will be appreciated that the data received in the receiving step S510 may be the update or any other type of data. Having determined in the determining step S515 that the update will be distributed to the associated slave subsea nodes 250™, n and then the master subsea node 240s with lower priority, the master subsea node 2404 transforms the update into update sub-elements according to the transforming step S520. The update sub-elements are provided to the selected slave subsea node 250 first according to the stagger providing step S525 such that the next slave subsea node 250n is updated after the selected slave subsea node 250™ has been successfully updated. The update sub-elements are received at the slave subsea node 250™ according to the first receiving step S610, assembled back into the update according to the assembling step S615 and then associated software on the slave subsea node 250™ is updated according to the updating step S620. It is confirmed that the software update was successful in the verification step S625 and then reported back, in the providing step S630, to the master subsea node 2404. The master subsea node 2404, having received verification in the second receiving step S530 that the update installation was completed, provides the update to the next slave subsea node 250n according to the providing step S525 as outlined above. Having received verification that the update installation was completed in the second receiving step S530, the master subsea node 2404 distributes the update to the lower-priority master subsea node 240s. The master subsea node 240s then updates its subordinate slave subsea nodes 25012,13 in the same way as outlined above and reports success back to the master subsea node 2404. The master subsea node 2404 reports to the network master node 210 that the update has been installed according to the reporting step S535. In other words, success confirmation is sent to the network master node 210 following competition of the update installation on the last slave subsea node 250i3. Throughout the description and claims of this specification, the words “comprise” and “contain” and variations of them mean “including but not limited to” and they are not intended to (and do not) exclude other moieties, additives, components, integers or steps. Throughout the description and claims of this specification, the singular encompasses the plural unless the context otherwise requires. In particular, where the indefinite article is used, the specification is to be understood as contemplating plurality as well as singularity, unless the context requires otherwise.

[0130] Features, integers, characteristics or groups described in conjunction with a particular aspect, embodiment or example of the invention are to be understood to be applicable to any other aspect, embodiment or example described herein unless incompatible therewith. All of the features disclosed in this specification (including any accompanying claims, abstract and drawings), and / or all of the steps of any method or process so disclosed, may be combined in any combination, except combinations where at least some of the features and / or steps are mutually exclusive. The invention is not restricted to any details of any foregoing embodiments. The invention extends to any novel one, or novel combination, of the features disclosed in this specification (including any accompanying claims, abstract and drawings), or to any novel one, or any novel combination, of the steps of any method or process so disclosed.

[0131] The reader’s attention is directed to all papers and documents which are filed concurrently with or previous to this specification in connection with this application and which are open to public inspection with this specification, and the contents of all such papers and documents are incorporated herein by reference.

Claims

CLAIMS:

1. A method of communicating software code updates to a plurality of subsea nodes, comprising the steps of: at a topside node, providing a most-up-to-date version of software code as an update; communicating the update to a first master subsea node via a communication link provided via an umbilical connection connecting the topside node to the first master subsea node; and providing the update from the first master subsea node to a first subsea node and at least one further subsea node.

2. The method as claimed in claim 1, further comprising: at the first master subsea node, determining the first subsea node and the at least one further subsea node from a plurality of slave subsea nodes as a first slave subsea node and a further slave subsea node based on instructions received from the topside node; and providing the update from the first master subsea node to the first slave subsea node and the further slave subsea node.

3. The method as claimed in claim 1 or claim 2, further comprising: from each subsea node, transmitting a received OK signal to the topside node via the first master subsea node when an update of the software code is received at a recipient subsea node.

4. The method as claimed in claim 2 or claim 3, further comprising: the topside node and the first master subsea node and each slave subsea node are communication nodes of a communication network.

5. The method as claimed in any preceding claim, further comprising: providing the update as a single message over the communication link or as a series of messages sent at spaced apart periods of time in the time domain over the communication link and optionallyproviding the update as a series of messages by transforming the update into a plurality of update sub-elements and providing the update sub-elements as individual messages over the communication link.

6. The method as claimed in any preceding claim, further comprising: performing an error check procedure at each subsea node upon receipt of a whole copy of the update and, responsive thereto, providing a check OK or check FAIL message to the topside node via the first master subsea node.

7. The method as claimed in claim 6, further comprising: responsive to a TIME OUT or check FAIL message, providing the update, as a re-sent update, from the topside node to the first master subsea node via the communication link.

8. The method as claimed in claim 1, further comprising: providing the update, as a re-sent update, to at least one subsea node that failed to duly send a check OK message or that responded with a check FAIL message.

9. The method as claimed in any of claims 6 to 8, further comprising: providing the update to each subsea node sequentially by providing the update to a next subsea node after receiving the check OK from a previous subsea node.

10. The method as claimed in claim 1, further comprising: at the first master subsea node, determining the first subsea node as a first subordinate master subsea node and the at least one further subsea node as a respective at least one further slave subsea node from a plurality of slave subsea nodes, based on instructions received from the topside node; and providing the update from the first master subsea node to the first subordinate master subsea node and the respective at least one further slave subsea node and optionally providing the update to each subsea node sequentially.

11. The method as claimed in any preceding claim, further comprising:each subsea node is an SCM or an SEM or a distribution unit or a manifold and / or each master subsea node is a processor element at an XT or SCM or SEM or distribution unit or manifold.

12. The method as claimed in any preceding claim, further comprising: each master subsea node comprises a subsea manifold and / or the umbilical connection comprises at least one optical fibre or stranded copper conductor or twisted pair wire connections.

13. The method as claimed in any preceding claim, further comprising: at the first master subsea node, determining which other master subsea node(s) to distribute the update to.

14. A subsea module locatable at a subsea location, comprising: a first processor element for receiving a most-up-to-date version of software code as an update from a topside node and providing the update to a first subsea node and at least one further subsea node.

15. The subsea module as claimed in claim 14, further comprising: the first processor element includes a first controller for determining the first subsea node and the at least one further subsea node as a first slave subsea node and a further slave subsea node from a plurality of slave subsea nodes based on instructions received from the topside node and / or for determining the first subsea node as a first subordinate master subsea node and the at least one further subsea node as a further slave subsea node from a plurality of slave subsea nodes, based on instructions received from the topside node and providing the update from the first master subsea node to the first subordinate master subsea node and the further slave subsea node.

16. The subsea module as claimed in claim 14 or claim 15, further comprising: the first processor element includes a further controller for providing the update to each subsea node sequentially by providing the update to a next subsea node after receiving a check OK from a previous subsea node.

17. The subsea module as claimed in any of claims 14 to 16, wherein the subsea module is a distribution unit or manifold or XT or SCM or SEM and / or the first processor element is for determining which master subsea node(s) to distribute the update to.

18. A system for communicating software code updates to a plurality of subsea nodes, comprising: at least one master subsea node each connected to a respective plurality of subsea nodes and disposed to receive a most-up-to-date version of software code as an update from a topside node; said respective plurality of subsea nodes each receiving the update from a respective master subsea node and each comprising at least one processor element for providing a check OK indicating receipt of a whole copy of the update.

19. The system as claimed in claim 18, further comprising: each master subsea node includes a first processor element for determining a first slave subsea node and a further slave subsea node from said respective plurality of subsea nodes based on instructions received from the topside node and / or for determining a first subordinate master subsea node and at least one further slave subsea node from said respective plurality of subsea nodes, based on instructions received from the topside node and / or for providing the update to each subsea node sequentially by providing the update to a next subsea node after receiving a check OK from a previous subsea node and / or for providing the update from a first master subsea node to the first subordinate master subsea node and said at least one further slave subsea node.

20. The system as claimed in claim 18 or claim 19, further comprising: said at least one master subsea node is disposed to receive the update from the topside node at a first master subsea node and to determine which other master subsea node(s) to distribute the update to.