WO2021172526A1 - 作業機械のコンポーネントのソフトウェア更新システムおよびソフトウェア更新方法 - Google Patents

作業機械のコンポーネントのソフトウェア更新システムおよびソフトウェア更新方法 Download PDF

Info

Publication number
WO2021172526A1
WO2021172526A1 PCT/JP2021/007406 JP2021007406W WO2021172526A1 WO 2021172526 A1 WO2021172526 A1 WO 2021172526A1 JP 2021007406 W JP2021007406 W JP 2021007406W WO 2021172526 A1 WO2021172526 A1 WO 2021172526A1
Authority
WO
WIPO (PCT)
Prior art keywords
software
component
work machine
unit
update
Prior art date
Application number
PCT/JP2021/007406
Other languages
English (en)
French (fr)
Inventor
潤 山根
洋平 千村
Original Assignee
株式会社小松製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社小松製作所 filed Critical 株式会社小松製作所
Priority to KR1020227029293A priority Critical patent/KR20220127324A/ko
Priority to US17/801,606 priority patent/US20230082152A1/en
Priority to CN202180017340.3A priority patent/CN115176228A/zh
Priority to DE112021000418.2T priority patent/DE112021000418T5/de
Publication of WO2021172526A1 publication Critical patent/WO2021172526A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts

Definitions

  • This disclosure relates to a software update system and a software update method for components mounted on a work machine.
  • This application claims priority based on Japanese Patent Application No. 2020-031851 filed in Japan on February 27, 2020, the contents of which are incorporated herein by reference.
  • the work machine is provided with components for controlling the work machine or monitoring the state of the work machine.
  • the components are composed of microcomputers and the like, and perform their functions by executing software. Therefore, the software of the component may be updated for the purpose of expanding the function of the component.
  • Patent Document 1 discloses a technique of applying software difference data in order to update software of a component of a work machine.
  • An object of the present disclosure is to provide a software update system for a work machine component and a software update method capable of updating the software of the work machine component using the difference data.
  • the software update system for updating the software of the first component of the work machine is the difference data for updating the first component connected via the internal network of the work machine.
  • the difference data is stored in the receiving unit that receives the software via the external network, the software acquisition unit that acquires the first software that the first component stores and executes from the first component, and the first software.
  • a software generation unit that generates the second software by applying the above, and a software output unit that outputs the generated second software to the first component are provided.
  • the software of the component of the work machine can be updated using the difference data.
  • FIG. 1 is a configuration diagram of the software update system 1 according to the first embodiment.
  • the software update system 1 manages the software part numbers of the components 12 included in the plurality of work machines 10.
  • the software update system 1 includes a plurality of work machines 10, a component management server 30, a software management server 50, and a developer terminal 70.
  • Software is data used to realize the functions of hardware.
  • the software may include program and configuration data.
  • the software product number is a unique identifier for identifying the software.
  • the software part number is represented by, for example, a plurality of numbers or a combination of alphabets.
  • Each work machine 10 includes a gateway device 11 and two or more components 12.
  • the gateway device 11 is also an example of the component 12.
  • the gateway device 11 is connected to the internal network and the external network of the work machine 10.
  • the internal network is a network that connects the internal components 12 of the work machine 10.
  • the external network is a wide area network (WAN) that connects the work machine 10 and an external device of the work machine.
  • WAN wide area network
  • Each component exerts a function for controlling the work machine 10 or monitoring the state of the work machine 10.
  • Each component 12 and the gateway device 11 are connected to each other by an internal network of the work machine 10.
  • a hydraulic excavator is shown as a work machine 10.
  • the work machine 10 may be another work machine, for example, a bulldozer, a dump truck, or a wheel loader.
  • the component management server 30 stores the hardware and software part numbers of the component 12 included in the plurality of work machines 10, and provides the work machine 10 with data for updating the software of the component 12. Specifically, the component management server 30 provides the difference data between the software before the update of the component 12 and the software after the update to the work machine 10 via the external network.
  • the software management server 50 stores a plurality of software having different product numbers applicable to the component 12 related to the product number in association with the hardware product number of the component 12. Further, the software management server 50 generates difference data for updating the software and transmits it to the component management server 30.
  • the hardware product number is a unique identifier for identifying the component 12.
  • the hardware part number is represented by, for example, a plurality of numbers or a combination of alphabets.
  • the developer terminal 70 is a terminal operated by a software developer.
  • the developer develops software using the developer terminal 70, and transmits the developed software from the developer terminal 70 to the software management server 50.
  • FIG. 2 is a perspective view showing the appearance of the work machine 10.
  • the work machine 10 which is a work machine includes a work machine 1100 which is operated by flood control, a swivel body 1200 which supports the work machine 1100, and a traveling body 1300 which supports the swivel body 1200.
  • the working machine 1100 includes a boom 1110, an arm 1120, a bucket 1130, a boom cylinder 1140, an arm cylinder 1150, and a bucket cylinder 1160.
  • the boom 1110 is a strut that supports the arm 1120 and the bucket 1130.
  • the base end of the boom 1110 is attached to the front of the swivel body 1200 via a pin.
  • the arm 1120 connects the boom 1110 and the bucket 1130.
  • the base end of the arm 1120 is attached to the tip of the boom 1110 via a pin.
  • the bucket 1130 is a container having a blade for excavating earth and sand or the like.
  • the base end of the bucket 1130 is attached to the tip of the arm 1120 via a pin.
  • the boom cylinder 1140 is a hydraulic cylinder for operating the boom 1110.
  • the base end portion of the boom cylinder 1140 is attached to the swivel body 1200.
  • the tip of the boom cylinder 1140 is attached to the boom 1110.
  • the arm cylinder 1150 is a hydraulic cylinder for driving the arm 1120.
  • the base end of the arm cylinder 1150 is attached to the boom 1110.
  • the tip of the arm cylinder 1150 is attached to the arm 1120.
  • the bucket cylinder 1160 is a hydraulic cylinder for driving the bucket 1130.
  • the base end of the bucket cylinder 1160 is attached to the arm 1120.
  • the tip of the bucket cylinder 1160 is attached to the bucket 1130.
  • the swivel body 1200 is provided with a driver's cab 1210 on which the operator is boarded.
  • the driver's cab 1210 is provided in front of the swivel body 1200 and on the left side of the working machine 1100.
  • an operating device 1211 for operating the working machine 1100 is provided inside the driver's cab 1210. Hydraulic oil is supplied to the boom cylinder 1140, the arm cylinder 1150, and the bucket cylinder 1160 according to the amount of operation of the operating device 1211 to drive the working machine 1100. Further, depending on the amount of operation of the operating device 1211, hydraulic oil is supplied to a turning motor (not shown), and the turning body 1200 turns.
  • the work machine 10 includes a position / orientation calculator 12a and an inclination detector 12b.
  • the position / orientation calculator 12a and the tilt detector 12b are examples of the component 12.
  • the work machine 10 includes a gateway device 11 for connecting an internal network connecting each component and an external network.
  • the gateway device 11 is provided in the driver's cab 1210.
  • the other components 12 may be similarly provided in the cab 1210 or, for example, outside the cab 1210 on the swivel body 1200.
  • the position / orientation calculator 12a calculates the position of the swivel body 1200 and the direction in which the swivel body 1200 faces.
  • the position / orientation calculator 12a includes a first receiver 12a1 and a second receiver 12a2 that receive positioning signals from artificial satellites constituting a GNSS (Global Navigation Satellite System).
  • the first receiver 12a1 and the second receiver 12a2 are installed at different positions of the swivel body 1200, respectively.
  • the position / orientation calculator 12a detects the position of the representative point O (origin of the vehicle body coordinate system) of the swivel body 1200 in the field coordinate system (not shown) based on the positioning signal received by the first receiver 12a1.
  • the position / orientation calculator 12a detects the position of the first receiver 12a1 based on the positioning signal received by the first receiver 12a1, and the representative point O with reference to the first receiver 12a1 stored in advance.
  • the position of the representative point O is detected by horizontally moving the position of the first receiver 12a1 based on the relative position.
  • the position / orientation calculator 12a uses the positioning signal received by the first receiver 12a1 and the positioning signal received by the second receiver 12a2 to detect a second receiver with respect to the installation position of the first receiver 12a1.
  • the orientation of the swivel body 1200 is calculated as the relationship between the installation positions of 12a2.
  • the tilt detector 12b measures the acceleration and angular velocity of the swivel body 1200, and detects the tilt (for example, roll angle and pitch angle) of the swivel body 1200 based on the measurement result.
  • the tilt detector 12b is installed, for example, on the lower surface of the driver's cab 1210.
  • an IMU Inertial Measurement Unit
  • an inertial measurement unit can be used as the tilt detector 12b.
  • FIG. 3 is a block diagram showing a configuration of a control system of the work machine 10.
  • the gateway device 11 includes a physically separated first substrate 100 and a second substrate 200.
  • the first board 100 includes a first processor 110, a first main memory 130, a first storage 150, and a first interface 170.
  • the first processor 110 reads a program from the first storage 150, expands it into the first main memory 130, and executes a predetermined process according to the program.
  • the first storage 150 stores two systems of the same software including the program as main software and backup software.
  • the main software is software that is used to perform the functions of the software in normal times.
  • the standby software is software used to recover the main software in the event of an abnormality in the main software. That is, the first substrate 100 exerts its function by executing the main software.
  • the first board 100 recovers the main software by copying the spare software to the main software when an abnormality occurs due to a software update error or the like and the main software cannot be executed.
  • Execute system software The first substrate 100 is an example of the component 12.
  • the first interface 170 is connected to a plurality of components 12 for controlling the work machine 10 via the first network N1 which is an internal network.
  • Examples of the component 12 connected to the first substrate 100 include an engine control component that acquires various engine data by a sensor and controls the operation of the engine, and a sensor that controls various data related to the hydraulic equipment that controls the operation of the work machine 1100. Examples thereof include a hydraulic control component that acquires data from various sensors of the work machine 10 and controls the display of a monitor (not shown), and the like.
  • the component 12 connected to the first network N1 performs basic operation control regarding the operation of the work machine 10.
  • the second substrate 200 includes a second processor 210, a second main memory 230, a second storage 250, and a second interface 270.
  • the second processor 210 reads a program from the second storage 250, expands it into the second main memory 230, and executes a predetermined process according to the program.
  • the second interface 270 is connected to a plurality of components 12 for extending the function of the work machine 10 via the second network N2 which is an internal network. Examples of the component 12 connected to the second substrate 200 include an image display component that performs predetermined image processing on an image captured by a camera and controls display, and a positional relationship between a design surface of a construction site and a work machine 10.
  • a machine guidance component that displays and controls a guidance monitor for guiding operators, a payload component for measuring the amount of soil excavated by the work machine 1100, and a communication device for communicating with an external server, etc. Examples include communication components that acquire data from various sensors of work machines.
  • the component 12 connected to the second network N2 provides the work machine 10 and the operator with extended information such as improving the function of the work machine.
  • the second substrate 200 may be an example of a component of a work machine.
  • the first interface 170 and the second interface 270 are communicably connected to each other. Further, the first substrate 100 and the second substrate 200 store connection information indicating a route to each component 12 included in the work machine 10.
  • the connection information may be, for example, a routing table.
  • the connection information is updated by exchanging information between the first substrate 100 and the second substrate 200 each time the component 12 is attached to or removed from the work machine 10.
  • the first substrate 100 or the second substrate 200 includes a custom LSI (Large Scale Integrated Circuit) such as a PLD (Programmable Logic Device) in addition to or in place of the above configuration.
  • PLDs include PAL (Programmable Array Logic), GAL (Generic Array Logic), CPLD (Complex Programmable Logic Device), and FPGA (Field Programmable Gate Array).
  • PAL Programmable Array Logic
  • GAL Generic Array Logic
  • CPLD Complex Programmable Logic Device
  • FPGA Field Programmable Gate Array
  • first storage 150 and the second storage 250 examples include magnetic disks, magneto-optical disks, optical disks, semiconductor memories, and the like.
  • the first storage 150 and the second storage 250 may be internal media directly connected to the bus line, or external media connected to the gateway device 11 via the first interface 170 or the communication line. good.
  • the first storage 150 and the second storage 250 are non-temporary tangible storage media.
  • the computational resources of the second substrate 200 are larger than the computational resources of at least one component 12. Further, it is preferable that the computational resources of the second substrate 200 are larger than the computational resources of the first substrate 100.
  • Computational resources are resources used in calculations in computers. Computational resources are resources that provide the computing time or storage capacity of a computer. Examples of computational resources include CPUs, main memory, storage, and the like.
  • the capacity of the second main memory 230 is preferably larger than the capacity of the first main memory 130. Further, the capacity of the second storage 250 is preferably larger than the capacity of the first storage 150.
  • the first processor 110 functions as an input unit 111, an access unit 112, an update unit 113, and an output unit 114 by executing a program stored in the first storage 150.
  • the input unit 111 receives the input of the software acquisition instruction of the component 12 from the second board 200. Further, the input unit 111 receives an input of a software update instruction of the component 12 from the second board 200.
  • the access unit 112 acquires the current software from the component 12 according to the software acquisition instruction received from the second board 200.
  • the current software refers to software that is stored by the component 12 and executed for exerting a function when accessed by the access unit 112.
  • the current software is an example of the first software.
  • the access unit 112 outputs the software to the component 12 according to the software update instruction received from the second board 200.
  • the component 12 that has received the software rewrites the software.
  • the access unit 112 is an example of a software acquisition unit that acquires the current software from the component 12 and a software output unit that outputs the generated software to the component 12.
  • the update unit 113 reads the main software from the first storage 150 according to the software update instruction received from the second board 200.
  • the main software is an example of the current software. Further, the update unit 113 rewrites the backup system software and the main system software according to the software update instruction received from the second board 200.
  • the output unit 114 outputs the software acquired by the access unit 112 or the update unit 113 to the second board 200.
  • the second processor 210 functions as a receiving unit 211, an output unit 212, an input unit 213, an access unit 214, a software generation unit 215, and a transmission unit 216 by executing a program stored in the second storage 250. Further, a storage area of the backup software storage unit 251 is secured in the second storage 250.
  • the receiving unit 211 receives the update instruction of the software of the component together with the difference data of the software of the component 12 from the component management server 30. In addition, the receiving unit 211 receives a confirmation instruction of the product number of the software of the component.
  • the output unit 212 outputs a software acquisition instruction to the first board 100 when the component 12 to be updated is connected to the first board 100 or when the component 12 to be updated is the first board 100. do. Further, the output unit 212 outputs a software update instruction to the first board 100.
  • the input unit 213 receives the software input of the component 12 to be updated from the first board 100.
  • the access unit 214 acquires software from the component 12. Further, the access unit 214 outputs the software generated by the software generation unit 215 to the component 12 to be updated. The component 12 that has received the software rewrites the software.
  • the access unit 214 is an example of a software acquisition unit that acquires the current software from the component 12 and a software output unit that outputs the generated software to the component 12.
  • the software generation unit 215 generates the updated software by applying the difference data received by the reception unit 211 to the current software input to the input unit 213 or the current software acquired by the access unit 214.
  • the updated software is an example of the second software.
  • the difference data holds a combination of the offset, which is the number of bits from the beginning of the file, and the changed value for each changed part.
  • the software generation unit 215 identifies the corresponding part of the current software based on the offset of the difference data, and rewrites the value before the change indicated by the difference data in the corresponding part to the value after the change. As a result, the software generation unit 215 can generate the updated software from the current software and the difference data.
  • the transmission unit 216 transmits a response to the request received by the reception unit 211 to the component management server 30.
  • FIG. 4 is a block diagram showing a configuration of the component management server 30 according to the first embodiment.
  • the component management server 30 includes a processor 310, a main memory 330, a storage 350, and an interface 370.
  • the processor 310 reads a program from the storage 350, expands it into the main memory 330, and executes a predetermined process according to the program.
  • the interface 370 is communicably connected to the second board 200 of the gateway device 11 and the software management server 50.
  • the program stored in the storage 350 may be for realizing a part of the functions exerted by the component management server 30.
  • the component management server 30 may include a custom LSI such as a PLD in addition to or in place of the above configuration.
  • a part or all of the functions realized by the component management server 30 may be realized by the integrated circuit.
  • Examples of the storage 350 include magnetic disks, magneto-optical disks, optical disks, semiconductor memories, and the like.
  • the storage 350 may be internal media directly connected to the bus line, or external media connected to the component management server 30 via the interface 370 or the communication line.
  • the program may not be stored in the storage 350 and may be distributed to the component management server 30 by a communication line, and the processor 310 may execute the program.
  • the storage 350 is a non-temporary tangible storage medium.
  • the processor 310 includes a difference data receiving unit 311, an update target specific unit 312, a product number confirmation unit 313, an update instruction transmission unit 314, and a table update unit 315 by executing a program stored in the storage 350. Further, the storage 350 is secured with the storage area of the component table 351.
  • the component table 351 stores the hardware and software part numbers of the components 12 included in each of the plurality of work machines 10. That is, the component table 351 stores the machine ID of the work machine 10 in association with the hardware part number of the component and the software part number.
  • the difference data receiving unit 311 receives the software difference data and the software part number to which the difference data is applied from the software management server 50.
  • the update target specifying unit 312 refers to the component table 351 and specifies the component 12 related to the software part number received by the difference data receiving unit 311 and the work machine 10 including the component 12.
  • the product number confirmation unit 313 transmits a confirmation request for the software product number of the component 12 to be updated to the work machine 10 specified by the update target identification unit 312.
  • the product number confirmation unit 313 receives the confirmation result of the software product number from the work machine 10.
  • the product number confirmation unit 313 is an example of a product number acquisition unit that acquires the product number of the current software of the component 12 from the component 12.
  • the update instruction transmission unit 314 updates the software to the work machine 10 when the confirmation result received from the work machine 10 by the product number confirmation unit 313 matches the software part number received from the software management server 50 by the difference data reception unit 311.
  • the software update instruction includes the difference data received by the difference data receiving unit 311, the gateway script for execution by the gateway device 11, and the component script for execution by the component 12 to be updated.
  • the gateway script describes a procedure in which the gateway 11 processes the difference data included in the update instruction.
  • the component script describes the procedure for installing the updated program. If the component 12 has a function to install the updated program, the update instruction may not include the gateway script.
  • the table update unit 315 determines whether or not the software has been updated based on the confirmation result received from the work machine 10 by the product number confirmation unit 313 after the software update instruction.
  • the table update unit 315 updates the component table 351 when it determines that the software has been updated.
  • the table update unit 315 is an example of an update determination unit that determines whether or not the current software of the component 12 has been updated based on the product number acquired from the component 12.
  • FIG. 5 is a block diagram showing a configuration of the software management server 50 according to the first embodiment.
  • the software management server 50 includes a processor 510, a main memory 530, a storage 550, and an interface 570.
  • the processor 510 reads a program from the storage 550, expands it into the main memory 530, and executes a predetermined process according to the program.
  • the interface 570 is communicably connected to the component management server 30.
  • the program stored in the storage 550 may be for realizing a part of the functions exerted by the software management server 50.
  • the software management server 50 may include a custom LSI such as a PLD in addition to or in place of the above configuration. In this case, some or all of the functions realized by the software management server 50 may be realized by the integrated circuit.
  • Examples of the storage 550 include magnetic disks, magneto-optical disks, optical disks, semiconductor memories, and the like.
  • the storage 550 may be internal media directly connected to the bus line, or external media connected to the software management server 50 via the interface 570 or the communication line. Further, this program may be distributed to the software management server 50 by a communication line, and the processor 510 may execute the program.
  • the storage 550 is a non-temporary tangible storage medium.
  • the processor 510 includes a software recording unit 511, a difference data generation unit 512, and a difference data transmission unit 513 by executing a program stored in the storage 550. Further, the storage area of the software table 551 is secured in the storage 550.
  • the software table 551 stores a plurality of software having different part numbers applicable to the component 12 related to the component number in association with the hardware part number of the component 12. That is, the software table 551 stores the hardware part number of the component, the substance of the software, and the software part number of the software in association with each other.
  • FIG. 6 is an example of a software table according to the first embodiment.
  • the software table 551 stores the hardware part number indicating the image display component, the software part number indicating the image display component application, and the substance of the software in association with each other.
  • the image display component application 1, the image display component application 2, and the image display component application 3 are examples of the actual software.
  • the software table 551 stores the hardware part number indicating the machine guidance component, the software part number indicating the machine guidance component application, and the substance of the software in association with each other.
  • the machine guidance component application 1 and the machine guidance component application 2 are examples of software entities.
  • the software recording unit 511 receives input from the server administrator or software developer about the substance of the software, the part number of the software, and the hardware part number of the component 12 to which the software is applied, and records these in the software table 551.
  • the administrator or the developer operates the developer terminal 70 and transmits the software entity, the software part number, and the hardware part number of the component 12 to which the software is applied to the software management server 50.
  • the difference data generation unit 512 generates difference data between the software newly recorded in the software table 551 and the software of another part number applied to the hardware to which the software is applied.
  • the difference data transmission unit 513 associates the difference data generated by the difference data generation unit 512 with the software product number to which the difference data is applied, and transmits the difference data to the component management server 30.
  • FIG. 7 is a sequence diagram showing a method of updating the software of the component 12 in the software update system 1 according to the first embodiment.
  • the developer updates the software of the component 12
  • the developer operates the developer terminal 70 and associates the substance of the software, the part number of the software, and the hardware part number of the component 12 to which the software is applied with the software management server.
  • Send to 50 The software recording unit 511 of the software management server 50 records the received software entity, software part number, and hardware part number in association with each other in the software table 551 (step S1).
  • the software part number received by the software recording unit 511 is the updated part number, which is the updated software part number.
  • the difference data generation unit 512 acquires the software entity and the software part number associated with the hardware part number received in step S1 from the software table 551 (step S2).
  • the difference data generation unit 512 generates difference data for each software part number by calculating the difference between the software received in step S1 and each software read in step S2 (step S3). If the software stored in the component 12 is always the latest software, the difference data may be generated only for the latest software among the software read in step S2.
  • the difference data transmission unit 513 associates the difference data generated in step S3 with the hardware part number received in step S1, the update part number received in step S1, and the target part number which is the software part number read in step S2, and components. It is transmitted to the management server 30 (step S4).
  • the difference data receiving unit 311 of the component management server 30 receives the difference data, the software part number, and the hardware part number from the software management server 50.
  • the update target specifying unit 312 refers to the component table 351 and specifies the work machine 10 including the component 12 related to the received hardware part number (step S5). A plurality of work machines 10 including the component 12 according to the hardware part number may be specified.
  • the product number confirmation unit 313 transmits a confirmation request for the software product number of the component to be updated to the gateway device 11 of the specified work machine 10 (step S6). That is, the software part number confirmation request includes the hardware part number of the component 12 to be updated.
  • the gateway device 11 receives a confirmation request for the software part number from the component management server 30 (step S6).
  • the gateway device 11 executes the component number confirmation process of the component 12 and transmits the specified software product number to the component management server 30 (step S7).
  • the software part number is written as a constant in the substance of the software, and is specified by, for example, executing the part number confirmation command possessed by the software. The details of the product number confirmation process by the gateway device 11 will be described later.
  • the product number confirmation unit 313 of the component management server 30 receives the software product number from the work machine 10 (step S7).
  • the update instruction transmission unit 314 instructs the gateway device 11 of the work machine 10 to update the software of the component to be updated. Transmit (step S8).
  • the software update instruction includes the difference data received in step S4, the gateway script for execution by the gateway device 11, and the component script for execution by the component 12 to be updated.
  • the gateway script contains the hardware part number of the component to which the delta data is applied.
  • the gateway device 11 receives a software update instruction from the component management server 30 (step S8).
  • the gateway device 11 executes the software update process of the component 12 according to the gateway script included in the update instruction (step S9).
  • the gateway script may describe that after the key-off of the work machine 10, the individual components 12 are woken by a function such as Wake-on-LAN to execute the software update process. This is to prevent the component 12 from failing due to an update while the work machine 10 is in operation.
  • the software is updated when the operation of the work machine 10 is locked by the lock lever of the work machine 10 (a lever that shuts off the flow paths of all the hydraulic circuits of the work machine, turning, and traveling) (not shown). It may be described that the process is executed. The details of the software update process by the gateway device 11 will be described later.
  • the product number confirmation unit 313 After a predetermined time when the difference data receiving unit 311 of the component management server 30 transmits the update instruction in step S9, the product number confirmation unit 313 sends the software product number of the component to be updated to the gateway device 11 of the work machine 10 to which the update instruction is transmitted. Confirmation request is transmitted (step S10).
  • the predetermined time is sufficiently longer than the required calculation time for the process of applying the difference data to the software.
  • the gateway device 11 of the work machine 10 transmits a completion notification to the component management server 30 after the update is completed, and the product number confirmation unit 313 sends the completion notification to the gateway device 11 of the work machine 10. , You may send a confirmation request of the software part number of the component to be updated.
  • the gateway device 11 receives a confirmation request for the software part number from the component management server 30.
  • the gateway device 11 executes the component number confirmation process of the component 12 and transmits the specified software product number to the component management server 30 (step S11). Since the software part number is written as a constant in the software entity, if the software update process in step S9 is completed normally, the software part number is also updated.
  • the product number confirmation unit 313 of the component management server 30 receives the software product number from the work machine 10 (step S11).
  • the table update unit 315 updates the software part number of the component 12 stored in the component table 351 to the software part number received in step S11.
  • Step S12 The sequence diagram shown in FIG. 7 shows an example of processing, and does not prevent the software from being updated by other processing.
  • the software update system 1 according to another embodiment does not have to perform the processes of step S6, step S7, step S10, step S11, and step S12.
  • the software part number may be stored in a main memory or storage (not shown) of the component 12.
  • the gateway device 11 transmits the product number confirmation request of the component 12 to the component 12 in steps S7 and S11, and the component 12 reads the software product number stored in the main memory or the storage and transmits it to the gateway device 11. You may.
  • FIG. 8 is a flowchart showing a product number confirmation process of the gateway device 11 according to the first embodiment.
  • the receiving unit 211 determines whether the component 12 whose software part number is to be confirmed, that is, the component 12 related to the hardware part number included in the confirmation request, is connected to the second board 200 (step S31).
  • the access unit 214 acquires the software part number from the component 12 to be confirmed via the second network N2 (step S32). ).
  • the output unit 212 outputs the confirmation request of the software part number to the first board 100 (step S33).
  • the input unit 111 of the first board 100 receives the input of the software part number confirmation request from the second board 200 (step S34).
  • the access unit 112 acquires the software part number from the component 12 to be confirmed via the first network N1 (step S35).
  • the output unit 114 outputs the read software part number to the second board 200 (step S36).
  • the input unit 213 of the second board 200 receives the input of the software part number from the component 12 to be confirmed from the first board 100 (step S37).
  • the transmission unit 216 of the second board 200 transmits the software part number from the component 12 to be confirmed specified in step S32 or step S37 to the component management server 30 (step S38).
  • the gateway device 11 can notify the software part number of the component 12 in response to the confirmation request of the component management server 30.
  • the flowchart shown in FIG. 8 shows an example of processing, and does not prevent the product number from being confirmed by other processing. Further, the gateway device 11 according to another embodiment does not have to perform the product number confirmation process.
  • the software part number may be stored in a main memory or storage (not shown) of the component 12.
  • the second board 200 transmits the component number confirmation request of the component 12 to the component 12 in steps S32 and S37, and the component 12 reads the software part number stored in the main memory or the storage and transmits it to the second board. You may.
  • FIG. 9 is a flowchart showing a software update process of the gateway device 11 according to the first embodiment.
  • the receiving unit 211 In order to communicate with the component 12 to be updated in the software, that is, the component 12 related to the hardware part number described in the gateway script, the receiving unit 211 refers to the connection information and transfers the component 12 to the second board 200. It is determined whether or not the connection is made (step S61).
  • the access unit 214 acquires the current software from the component 12 to be confirmed via the second network N2 (step S61: YES). S62).
  • the output unit 212 uses the first board 100.
  • the software acquisition instruction is output to (step S63).
  • the input unit 111 of the first board 100 receives the input of the software acquisition instruction from the second board 200 (step S64).
  • the update unit 113 determines whether or not the component 12 to be updated is the first board 100 itself (step S65).
  • the update unit 113 reads the main software from the first storage 150 (step S66).
  • the access unit 112 acquires the current software from the component 12 to be updated via the first network N1 (step S67). ..
  • the component 12 may transmit the information of the current software to the first board in a plurality of times.
  • the information of the current software can be transmitted in a plurality of times to transmit the current software information.
  • Software information can be transmitted to the first board.
  • the output unit 114 outputs the software read in step S66 or step S67 to the second board 200 (step S68).
  • the input unit 213 of the second board 200 receives the input of the software of the component 12 to be updated from the first board 100 (step S69).
  • the software generation unit 215 generates the updated software by applying the difference data included in the update instruction received from the component management server 30 to the software acquired in step S62 or step S69 according to the gateway script. (Step S70).
  • the software generation unit 215 associates the generated software with the hardware part number of the component 12 and records it in the standby software storage unit (step S71).
  • the software generation unit 215 determines whether or not the component 12 to be updated is connected to the second board 200 by referring to the connection information in order to transmit the generated software to the component 12 to be updated (step S72).
  • the component 12 to be updated is an example of the first component.
  • Examples of the component 12 to be updated include the component 12 connected to the first network N1, the component 12, the first board 100, and the second board 200 connected to the second network N2.
  • the second substrate 200 including the software generation unit 215 is an example of the second component.
  • a component other than the second substrate 200 may be the second component. That is, in other embodiments, components other than the second substrate 200 may include the software generation unit 215.
  • the access unit 214 updates the software generated in step S70 to the component 12 to be updated via the second network N2. Output the component script included in the instruction. As a result, the component 12 rewrites the software to be stored in the software generated in step S70 by executing the component script (step S73).
  • the component 12 to be updated by the software is an example of the first component.
  • the second substrate 200 is an example of a second component different from the component 12 to be updated.
  • the output unit 212 uses the first board 100.
  • the software update instruction is output to (step S74).
  • the software update instruction includes the software generated in step S70 and the component script included in the update instruction.
  • the input unit 111 of the first board 100 receives the input of the software update instruction from the second board 200 (step S75).
  • the update unit 113 determines whether or not the component 12 to be updated is the first board 100 itself (step S76).
  • the update unit 113 rewrites the spare software stored in the first storage 150 to the software included in the update instruction (step S77).
  • the first substrate 100 to be updated by software is an example of the first component.
  • the second substrate 200 which is different from the first component, is an example of the second component.
  • the update unit 113 rewrites the main software stored in the first storage 150 to the software included in the update instruction (step S78).
  • the access unit 112 sends the software and component script included in the update instruction to the component 12 to be updated via the first network N1. Output.
  • the component 12 rewrites the stored software to the software included in the update instruction by executing the component script (step S79).
  • the component 12 to be updated by the software is an example of the first component.
  • the second substrate 200 which is different from the first component, is an example of the second component.
  • the first board 100 connected to the component 12 to be updated by software is an example of other components.
  • the gateway device 11 can update the software of the component 12 based on the difference data.
  • the flowchart shown in FIG. 9 shows an example of processing, and does not prevent the software from being updated by other processing.
  • the gateway device 11 does not have to perform the process of step S71 and the process of step S77.
  • any one of the first board 100, the component 12 connected to the first board 100, and the component 12 connected to the second board 200 may be updated. ..
  • the update instruction does not have to include the component script.
  • the gateway device 11 receives the difference data for updating the component 12 of the work machine 10 via the external network, and the component connected via the internal network. Apply delta data to current software. Then, the gateway device 11 outputs the generated software to the component 12. As a result, the gateway device 11 can update the software of the component 12 regardless of the magnitude (size) of the computational resources of the component 12. Further, the gateway device 11 can reduce the amount of communication in the external network by updating the software using the difference data.
  • the gateway device 11 according to the first embodiment generates software using the difference data on the second board 200 having a storage capacity larger than that of the first board 100. As a result, the gateway device 11 according to the first embodiment can allocate a large amount of the computational resources of the first substrate 100 to the control of the work machine 10. Further, the second board 200 updates the software of the component 12 connected to the first board 100.
  • the gateway device 11 stores the generated software of the component 12 in the backup system software storage unit 251.
  • the software of the component 12 is generated using the software stored in the standby software storage unit 251.
  • the first board 100 records the updated software in order as the standby software and the main software of the first storage 150.
  • the main software can be recovered.
  • the damaged software may be recovered by an automatic operation by the gateway device 11 or by a manual operation by a serviceman or an operator.
  • the gateway device 11 generates software for all the components 12 of the work machine 10 on the second substrate 200 mounted on the work machine 10. On the other hand, some components 12 have sufficient computational resources. In the second embodiment, some components 12 autonomously update their software.
  • FIG. 10 is a schematic block diagram showing the configuration of the gateway device 11 according to the second embodiment.
  • the second substrate 200 further includes a determination unit 217 in addition to the configuration of the first embodiment.
  • the second storage 250 is further provided with a storage area of the component storage unit 252.
  • the component storage unit 252 stores in advance the software part number of the component 12 having the function of applying the difference data.
  • the information stored in the component storage unit 252 is updated by a serviceman or the like when the component 12 is replaced.
  • the determination unit 217 refers to the component storage unit 252 and determines whether or not the component 12 to be updated has the function of applying the difference data.
  • the determination unit 217 refers to the component storage unit 252, and whether or not the component 12 to be updated has the function of applying the difference data. Is determined.
  • the access unit 112 transfers the update instruction received from the component management server 30 to the component 12 to be updated.
  • the component 12 to be updated updates the software using the difference data included in the update instruction.
  • the gateway device 11 updates the software of the component 12 by executing the processes of steps S61 to S79 according to the first embodiment. ..
  • the gateway device 11 according to the first embodiment includes a physically separated first substrate 100 and a second substrate 200.
  • the gateway device 11 according to the third embodiment is mounted on one board.
  • FIG. 11 is a schematic block diagram showing the configuration of the gateway device 11 according to the third embodiment. That is, the gateway device 11 according to the third embodiment includes a processor 210a, a main memory 230a, a storage 250a, and an interface 270a.
  • the processor 210a, the main memory 230a, the storage 250a, and the interface 270a are the second processor 210, the second main memory 230, the second storage 250, and the second interface 270 of the second substrate according to the first embodiment, respectively.
  • the gateway device 11 according to the third embodiment does not need to communicate with another board, it has a function corresponding to the output unit 212 and the input unit 213 of the gateway device 11 according to the first embodiment. It doesn't have to be. Further, the gateway device 11 according to the third embodiment has a determination in step S31 according to the first embodiment, a process from step S33 to step S37, a determination in step S61, a process from step S63 to step S69, and step S72. It is not necessary to perform the determination and the processing of steps S74 to S79.
  • the first board 100 and the second board 200 each include one processor.
  • one board includes two processors.
  • FIG. 12 is a schematic block diagram showing the configuration of the gateway device 11 according to the fourth embodiment. That is, the gateway device 11 according to the fourth embodiment has a first processor 110, a first main memory 130, a first storage 150, a first interface 170, a second processor 210, and a second main memory 230 on one board. , Second storage 250, second interface 270.
  • the first processor 110 and the second processor 210 may be realized by each core of the multi-core CPU. Further, the first processor 110 and the second processor 210 may be two virtual processors virtualized from one physical processor by a virtualization technique. Further, the first main memory 130 and the second main memory 230, and the first storage 150 and the second storage 250 may also be realized by one main memory and storage.
  • the available storage areas of the main memory and the storage are allocated in advance for each processor.
  • the first interface 170 and the second interface 270 may be realized by one interface.
  • the first network N1 and the second network N2 may be virtually separated by software.
  • the gateway device 11 according to the fourth embodiment can update the software of the component 12 by the same processing as that of the first embodiment.
  • the gateway device 11 may include three or more substrates. Further, in another embodiment, the roles of the plurality of substrates included in the gateway device 11 may be different from those in the above-described embodiment. Further, in another embodiment, the software management server 50 and the component management server 30 may be realized by one device instead of being a separate body.
  • the gateway device 11 determines whether or not the component 12 to be updated has the function of applying the difference data, but the present invention is not limited to this.
  • the determination unit 217 may determine whether or not to apply the difference data by determining which board the component 12 to be updated is connected to.
  • the software of the component of the work machine can be updated by using the difference data.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Programmable Controllers (AREA)

Abstract

本開示は、作業機械(10)の第1コンポーネント(12)のソフトウェアを更新するソフトウェア更新システム(1)であって、作業機械(10)の内部ネットワークを介して接続される第1コンポーネント(12)の更新のための差分データを、外部ネットワークを介して受信する受信部(211)と、第1コンポーネント(12)から、第1コンポーネント(12)が記憶し、実行する第1のソフトウェアを取得するソフトウェア取得部(214)と、第1のソフトウェアに差分データを適用することで第2のソフトウェアを生成するソフトウェア生成部(215)と、生成された第2のソフトウェアを第1コンポーネント(12)に出力するソフトウェア出力部(112、214)と、を備える。

Description

作業機械のコンポーネントのソフトウェア更新システムおよびソフトウェア更新方法
 本開示は、作業機械に搭載されたコンポーネントのソフトウェア更新システムおよびソフトウェア更新方法に関する。本願は、2020年2月27日に日本に出願された日本国特願2020-031851号に基づき優先権を主張し、その内容をここに援用する。
 作業機械には、作業機械を制御し、または作業機械の状態を監視するためのコンポーネントが設けられる。コンポーネントは、マイクロコンピュータなどによって構成され、ソフトウェアの実行により機能を発揮する。そのため、コンポーネントの機能の拡張などを目的に、コンポーネントのソフトウェアを更新することがある。
 特許文献1には、作業機械のコンポーネントのソフトウェアを更新するためにソフトウェアの差分データを適用する技術が開示されている。
日本国特開2014-177816号公報
 ところで、作業機械のコンポーネントは、差分の適用計算のために十分な計算資源を有していない可能性がある。
 本開示の目的は、差分データを用いて作業機械のコンポーネントのソフトウェアを更新することができる作業機械のコンポーネントのソフトウェア更新システムおよびソフトウェア更新方法を提供することにある。
 本発明の第1の態様によれば、作業機械の第1コンポーネントのソフトウェアを更新するソフトウェア更新システムは、前記作業機械の内部ネットワークを介して接続される前記第1コンポーネントの更新のための差分データを、外部ネットワークを介して受信する受信部と、前記第1コンポーネントから、前記第1コンポーネントが記憶し、実行する第1のソフトウェアを取得するソフトウェア取得部と、前記第1のソフトウェアに前記差分データを適用することで第2のソフトウェアを生成するソフトウェア生成部と、生成された前記第2のソフトウェアを前記第1コンポーネントに出力するソフトウェア出力部と、を備える。
 上記態様によれば、差分データを用いて作業機械のコンポーネントのソフトウェアを更新することができる。
第1の実施形態に係るソフトウェア更新システムの構成図である。 作業機械の外観を示す斜視図である。 作業機械の制御系統の構成を示すブロック図である。 第1の実施形態に係るコンポーネント管理サーバの構成を示すブロック図である。 第1の実施形態に係るソフトウェア管理サーバの構成を示すブロック図である。 第1の実施形態に係るソフトウェアテーブルの一例である。 第1の実施形態に係るソフトウェア更新システムにおけるコンポーネントのソフトウェアの更新方法を示すシーケンス図である。 第1の実施形態に係るゲートウェイ装置の品番確認処理を示すフローチャートである。 第1の実施形態に係るゲートウェイ装置のソフトウェア更新処理を示すフローチャートである。 第2の実施形態に係るゲートウェイ装置の構成を示す概略ブロック図である。 第3の実施形態に係るゲートウェイ装置の構成を示す概略ブロック図である。 第4の実施形態に係るゲートウェイ装置の構成を示す概略ブロック図である。
〈第1の実施形態〉
 図1は、第1の実施形態に係るソフトウェア更新システム1の構成図である。
 ソフトウェア更新システム1は、複数の作業機械10が備えるコンポーネント12のソフトウェアの品番を管理する。ソフトウェア更新システム1は、複数の作業機械10と、コンポーネント管理サーバ30と、ソフトウェア管理サーバ50と、開発者端末70とを備える。ソフトウェアとは、ハードウェアの機能の実現のために用いられるデータである。ソフトウェアは、プログラムおよび設定データを含み得る。なお、ソフトウェアの品番とは、ソフトウェアを特定するためのユニークな識別子である。ソフトウェアの品番は、例えば、複数の数字、又はアルファベットの組み合わせによって表現される。
 各作業機械10は、ゲートウェイ装置11と2つ以上のコンポーネント12とを備える。なお、ゲートウェイ装置11も、コンポーネント12の一例である。ゲートウェイ装置11は、作業機械10の内部ネットワークと外部ネットワークとに接続される。内部ネットワークとは、作業機械10の内部のコンポーネント12同士を接続するネットワークである。外部ネットワークとは、作業機械10と作業機械の外部の装置とを接続するワイドエリアネットワーク(WAN)である。各コンポーネントは、作業機械10の制御、または作業機械10の状態の監視のための機能を発揮する。各コンポーネント12とゲートウェイ装置11とは、互いに作業機械10の内部ネットワークで接続される。図1において、作業機械10として油圧ショベルが図示されている。しかしながら、作業機械10は、その他の作業機械でもよく、例えばブルドーザ、ダンプトラック、ホイールローダであってもよい。
 コンポーネント管理サーバ30は、複数の作業機械10が備えるコンポーネント12のハードウェアおよびソフトウェアの品番を記憶し、コンポーネント12のソフトウェアを更新するためのデータを作業機械10に提供する。具体的には、コンポーネント管理サーバ30は、コンポーネント12の更新前のソフトウェアと更新後のソフトウェアとの差分データを、外部ネットワークを介して作業機械10に提供する。
 ソフトウェア管理サーバ50は、コンポーネント12のハードウェアの品番に関連付けて、当該品番に係るコンポーネント12に適用可能な品番の異なる複数のソフトウェアを記憶する。また、ソフトウェア管理サーバ50は、ソフトウェアの更新のための差分データを生成し、コンポーネント管理サーバ30に送信する。なお、ハードウェアの品番とは、コンポーネント12を特定するためのユニークな識別子である。ハードウェアの品番は、例えば、複数の数字、又はアルファベットの組み合わせによって表現される。
 開発者端末70は、ソフトウェアの開発者によって操作される端末である。開発者は、開発者端末70を用いてソフトウェアを開発し、開発したソフトウェアを開発者端末70からソフトウェア管理サーバ50へ送信する。
《作業機械10の構成》
 図2は、作業機械10の外観を示す斜視図である。
 作業機械である作業機械10は、油圧により作動する作業機1100と、作業機1100を支持する旋回体1200と、旋回体1200を支持する走行体1300とを備える。
《作業機1100》
 作業機1100は、ブーム1110と、アーム1120と、バケット1130と、ブームシリンダ1140と、アームシリンダ1150と、バケットシリンダ1160とを備える。
 ブーム1110は、アーム1120およびバケット1130を支える支柱である。ブーム1110の基端部は、旋回体1200の前部にピンを介して取り付けられる。
 アーム1120は、ブーム1110とバケット1130とを連結する。アーム1120の基端部は、ブーム1110の先端部にピンを介して取り付けられる。
 バケット1130は、土砂などを掘削するための刃を有する容器である。バケット1130の基端部は、アーム1120の先端部にピンを介して取り付けられる。
 ブームシリンダ1140は、ブーム1110を作動させるための油圧シリンダである。ブームシリンダ1140の基端部は、旋回体1200に取り付けられる。ブームシリンダ1140の先端部は、ブーム1110に取り付けられる。
 アームシリンダ1150は、アーム1120を駆動するための油圧シリンダである。アームシリンダ1150の基端部は、ブーム1110に取り付けられる。アームシリンダ1150の先端部は、アーム1120に取り付けられる。
 バケットシリンダ1160は、バケット1130を駆動するための油圧シリンダである。バケットシリンダ1160の基端部は、アーム1120に取り付けられる。バケットシリンダ1160の先端部は、バケット1130に取り付けられる。
《旋回体1200》
 旋回体1200には、オペレータが搭乗する運転室1210が備えられる。運転室1210は、旋回体1200の前方かつ作業機1100の左側に備えられる。
 運転室1210の内部には、作業機1100を操作するための操作装置1211が設けられる。操作装置1211の操作量に応じて、ブームシリンダ1140、アームシリンダ1150、およびバケットシリンダ1160に作動油が供給され、作業機1100が駆動する。また、操作装置1211の操作量に応じて、図示しない旋回用モータに作動油が供給され、旋回体1200が旋回する。
《コンポーネント12》
 作業機械10は、位置方位演算器12a、傾斜検出器12bを備える。位置方位演算器12a、傾斜検出器12bは、コンポーネント12の一例である。また、作業機械10は、各コンポーネントを接続する内部ネットワークと外部ネットワークとを接続するゲートウェイ装置11を備える。ゲートウェイ装置11は、運転室1210内に設けられている。他のコンポーネント12は、同様に運転室1210内に設けられてもよいし、例えば旋回体1200上の運転室1210の外に設けられてもよい。
 位置方位演算器12aは、旋回体1200の位置および旋回体1200が向く方位を演算する。位置方位演算器12aは、GNSS(Global Navigation Satellite System)を構成する人工衛星から測位信号を受信する第1受信器12a1および第2受信器12a2を備える。第1受信器12a1および第2受信器12a2は、それぞれ旋回体1200の異なる位置に設置される。位置方位演算器12aは、第1受信器12a1が受信した測位信号に基づいて、図示しない現場座標系における旋回体1200の代表点O(車体座標系の原点)の位置を検出する。例えば、位置方位演算器12aは、第1受信器12a1が受信した測位信号に基づいて第1受信器12a1の位置を検出し、予め記憶された第1受信器12a1を基準とする代表点Oの相対位置に基づいて第1受信器12a1の位置を水平移動させることで、代表点Oの位置を検出する。
 位置方位演算器12aは、第1受信器12a1が受信した測位信号と、第2受信器12a2が受信した測位信号とを用いて、検出された第1受信器12a1の設置位置に対する第2受信器12a2の設置位置の関係として、旋回体1200の方位を演算する。
 傾斜検出器12bは、旋回体1200の加速度および角速度を計測し、計測結果に基づいて旋回体1200の傾き(例えば、ロール角およびピッチ角)を検出する。傾斜検出器12bは、例えば運転室1210の下面に設置される。傾斜検出器12bは、例えば、慣性計測装置であるIMU(Inertial Measurement Unit)を用いることができる。
 図3は、作業機械10の制御系統の構成を示すブロック図である。
 ゲートウェイ装置11は、物理的に分かれた第1基板100と第2基板200とを備える。
 第1基板100は、第1プロセッサ110、第1メインメモリ130、第1ストレージ150、第1インタフェース170を備える。第1プロセッサ110は、第1ストレージ150からプログラムを読み出して第1メインメモリ130に展開し、当該プログラムに従って所定の処理を実行する。なお、第1ストレージ150は、当該プログラムを含む同じソフトウェアを主系ソフトウェアと予備系ソフトウェアとして2系統記憶する。主系ソフトウェアとは、平常時にソフトウェアの機能を発揮する際に使用されるソフトウェアである。予備系ソフトウェアとは、主系ソフトウェアの異常時に主系ソフトウェアの復旧のために使用されるソフトウェアである。すなわち、第1基板100は、主系ソフトウェアを実行することで機能を発揮する。また第1基板100は、例えばソフトウェアの更新ミス等により異常が発生し、主系ソフトウェアを実行できない場合に、予備系ソフトウェアを主系ソフトウェアにコピーすることで主系ソフトウェアを復旧し、復旧した主系ソフトウェアを実行する。第1基板100は、コンポーネント12の一例である。
 第1インタフェース170は、内部ネットワークである第1ネットワークN1を介して作業機械10を制御するための複数のコンポーネント12と接続される。第1基板100に接続されるコンポーネント12の例としては、エンジンの各種データをセンサにより取得しエンジンの動作を制御するエンジン制御コンポーネント、作業機1100の動作を制御する油圧機器関連の各種データをセンサにより取得し当該油圧機器を制御する油圧制御コンポーネント、作業機械10の各種センサからデータを取得し図示しないモニタの表示制御を行うモニタ制御コンポーネント、等が挙げられる。第1ネットワークN1に接続されるコンポーネント12により、作業機械10の動作に関する基本的な動作制御が行われる。
 第2基板200は、第2プロセッサ210、第2メインメモリ230、第2ストレージ250、第2インタフェース270を備える。第2プロセッサ210は、第2ストレージ250からプログラムを読み出して第2メインメモリ230に展開し、当該プログラムに従って所定の処理を実行する。第2インタフェース270は、内部ネットワークである第2ネットワークN2を介して作業機械10の機能を拡張するための複数のコンポーネント12と接続される。第2基板200に接続されるコンポーネント12の例としては、カメラで撮像した画像に対して所定の画像処理を行い表示制御を行う画像表示コンポーネント、施工現場の設計面と作業機械10との位置関係などをオペレータにガイダンスするためのガイダンスモニタを表示制御するマシンガイダンスコンポーネント、作業機1100により掘削した土量を計測するためのペイロードコンポーネント、外部のサーバ等と通信を行うための通信機器を制御し、作業機械の各種センサからデータを取得する通信コンポーネント等が挙げられる。第2ネットワークN2に接続されるコンポーネント12により、作業機械10およびオペレータに、作業機械の機能を向上させるなどの拡張的な情報の提供が行われる。第2基板200は、作業機械のコンポーネントの一例であってよい。
 第1インタフェース170と第2インタフェース270は、互いに通信可能に接続される。また、第1基板100および第2基板200は、作業機械10が備える各コンポーネント12への経路を示す接続情報を記憶する。接続情報は、例えばルーティングテーブルであってよい。接続情報は、作業機械10にコンポーネント12が取り付けられるたびに、または、取り外されるたびに、第1基板100および第2基板200の間で情報が交換されることで更新される。
 他の実施形態においては、第1基板100または第2基板200は、上記構成に加えて、または、上記構成に代えて、PLD(Programmable Logic Device)などのカスタムLSI(Large Scale Integrated Circuit)を備えてもよい。PLDの例としては、PAL(Programmable Array Logic)、GAL(Generic Array Logic)、CPLD(Complex Programmable Logic Device)、FPGA(Field Programmable Gate Array)が挙げられる。この場合、第1基板100または第2基板200によって実現される機能の一部または全部が、当該集積回路によって実現されてよい。
 第1ストレージ150および第2ストレージ250の例としては、磁気ディスク、光磁気ディスク、光ディスク、半導体メモリ、等が挙げられる。第1ストレージ150および第2ストレージ250は、バス線に直接接続された内部メディアであってもよいし、第1インタフェース170または通信回線を介してゲートウェイ装置11に接続される外部メディアであってもよい。少なくとも1つの実施形態において第1ストレージ150および第2ストレージ250は、一時的でない有形の記憶媒体である。
 なお、第2基板200が有する計算資源は、少なくとも1つのコンポーネント12が有する計算資源より大きい。また、第2基板200が有する計算資源は、第1基板100が有する計算資源より大きいことが、好ましい。計算資源とは、コンピュータにおける計算において使用される資源である。計算資源とは、コンピュータが備える計算時間または記憶容量を提供する資源である。計算資源の例としては、CPU、メインメモリ、ストレージなどが、挙げられる。なお、第2メインメモリ230の容量は、第1メインメモリ130の容量より大きいのが、好ましい。また、第2ストレージ250の容量は、第1ストレージ150の容量より大きいことが、好ましい。
 第1プロセッサ110は、第1ストレージ150が記憶するプログラムの実行により、入力部111、アクセス部112、更新部113、出力部114として機能する。
 入力部111は、第2基板200からコンポーネント12のソフトウェアの取得指示の入力を受け付ける。また、入力部111は、第2基板200からコンポーネント12のソフトウェアの更新指示の入力を受け付ける。
 アクセス部112は、第2基板200から受け付けたソフトウェアの取得指示に従ってコンポーネント12から現行のソフトウェアを取得する。現行のソフトウェアとは、アクセス部112によるアクセス時に、コンポーネント12が記憶し、機能の発揮のために実行されているソフトウェアをいう。現行のソフトウェアは、第1のソフトウェアの一例である。また、アクセス部112は、第2基板200から受け付けたソフトウェアの更新指示に従ってコンポーネント12にソフトウェアを出力する。ソフトウェアを受信したコンポーネント12は、ソフトウェアを書き換える。アクセス部112は、コンポーネント12から現行のソフトウェアを取得するソフトウェア取得部、および生成されたソフトウェアをコンポーネント12に出力するソフトウェア出力部の一例である。
 更新部113は、第2基板200から受け付けたソフトウェアの更新指示に従って、第1ストレージ150から主系ソフトウェアを読み出す。主系ソフトウェアは、現行のソフトウェアの一例である。また、更新部113は、第2基板200から受け付けたソフトウェアの更新指示に従って予備系ソフトウェアおよび主系ソフトウェアを書き換える。
 出力部114は、アクセス部112または更新部113が取得したソフトウェアを第2基板200に出力する。
 第2プロセッサ210は、第2ストレージ250が記憶するプログラムの実行により、受信部211、出力部212、入力部213、アクセス部214、ソフトウェア生成部215、送信部216として機能する。また、第2ストレージ250には、予備系ソフトウェア記憶部251の記憶領域が、確保される。
 受信部211は、コンポーネント管理サーバ30から、コンポーネント12のソフトウェアの差分データとともに、コンポーネントのソフトウェアの更新指示を受信する。また、受信部211は、コンポーネントのソフトウェアの品番の確認指示を受信する。
 出力部212は、更新対象のコンポーネント12が第1基板100に接続される場合に、または、更新対象のコンポーネント12が第1基板100である場合に、ソフトウェアの取得指示を第1基板100に出力する。また、出力部212は、ソフトウェアの更新指示を第1基板100に出力する。
 入力部213は、第1基板100から更新対象のコンポーネント12のソフトウェアの入力を受け付ける。
 アクセス部214は、更新対象のコンポーネント12が第2基板200に接続される場合に、当該コンポーネント12からソフトウェアを取得する。また、アクセス部214は、ソフトウェア生成部215が生成したソフトウェアを更新対象のコンポーネント12に出力する。ソフトウェアを受信したコンポーネント12は、ソフトウェアを書き換える。アクセス部214は、コンポーネント12から現行のソフトウェアを取得するソフトウェア取得部、および生成されたソフトウェアをコンポーネント12に出力するソフトウェア出力部の一例である。
 ソフトウェア生成部215は、入力部213に入力された現行のソフトウェアまたはアクセス部214が取得した現行のソフトウェアに、受信部211が受信した差分データを適用することで、更新後のソフトウェアを生成する。更新後のソフトウェアは、第2のソフトウェアの一例である。例えば、差分データは、ファイルの先頭からのビット数であるオフセットと、変更後の値の組み合わせを、変更箇所ごとに保持する。この場合、ソフトウェア生成部215は、差分データのオフセットに基づいて現行のソフトウェアの該当部分を特定し、該当部分における差分データが示す変更前の値を変更後の値に書き換える。これにより、ソフトウェア生成部215は、現行のソフトウェアと差分データから更新後のソフトウェアを生成することができる。
 送信部216は、受信部211が受信した要求に対する応答をコンポーネント管理サーバ30に送信する。
《コンポーネント管理サーバ30の構成》
 図4は、第1の実施形態に係るコンポーネント管理サーバ30の構成を示すブロック図である。
 コンポーネント管理サーバ30は、プロセッサ310、メインメモリ330、ストレージ350、インタフェース370を備える。プロセッサ310は、ストレージ350からプログラムを読み出してメインメモリ330に展開し、当該プログラムに従って所定の処理を実行する。インタフェース370は、ゲートウェイ装置11の第2基板200、およびソフトウェア管理サーバ50と通信可能に接続される。
 ストレージ350に記憶されるプログラムは、コンポーネント管理サーバ30に発揮させる機能の一部を実現するためのものであってもよい。また、他の実施形態においては、コンポーネント管理サーバ30は、上記構成に加えて、または、上記構成に代えて、PLDなどのカスタムLSIを備えてもよい。この場合、コンポーネント管理サーバ30によって実現される機能の一部または全部が当該集積回路によって実現されてよい。
 ストレージ350の例としては、磁気ディスク、光磁気ディスク、光ディスク、半導体メモリ等が、挙げられる。ストレージ350は、バス線に直接接続された内部メディアであってもよいし、インタフェース370または通信回線を介してコンポーネント管理サーバ30に接続される外部メディアであってもよい。また、プログラムは、ストレージ350に記憶されず、通信回線によってコンポーネント管理サーバ30に配信されてもよく、プロセッサ310が当該プログラムを実行してもよい。少なくとも1つの実施形態において、ストレージ350は、一時的でない有形の記憶媒体である。
 プロセッサ310は、ストレージ350が記憶するプログラムの実行により、差分データ受信部311、更新対象特定部312、品番確認部313、更新指示送信部314、テーブル更新部315を備える。また、ストレージ350には、コンポーネントテーブル351の記憶領域が確保される。
 コンポーネントテーブル351は、複数の作業機械10のそれぞれが備えるコンポーネント12のハードウェアおよびソフトウェアの品番を記憶する。つまり、コンポーネントテーブル351は、作業機械10の機械IDと、コンポーネントのハードウェア品番と、ソフトウェア品番とを関連付けて記憶する。
 差分データ受信部311は、ソフトウェア管理サーバ50から、ソフトウェアの差分データと当該差分データの適用対象のソフトウェア品番を受信する。
 更新対象特定部312は、コンポーネントテーブル351を参照し、差分データ受信部311が受信したソフトウェア品番に係るコンポーネント12および当該コンポーネント12を備える作業機械10を特定する。
 品番確認部313は、更新対象特定部312が特定した作業機械10に更新対象となるコンポーネント12のソフトウェア品番の確認要求を送信する。品番確認部313は、作業機械10からソフトウェア品番の確認結果を受信する。品番確認部313は、コンポーネント12から、当該コンポーネント12の現行のソフトウェアの品番を取得する品番取得部の一例である。
 更新指示送信部314は、品番確認部313が作業機械10から受信した確認結果が、差分データ受信部311がソフトウェア管理サーバ50から受信したソフトウェア品番と一致する場合に、作業機械10にソフトウェアの更新指示を送信する。ソフトウェアの更新指示には、差分データ受信部311が受信した差分データ、ゲートウェイ装置11が実行するためのゲートウェイスクリプト、および更新対象のコンポーネント12が実行するためのコンポーネントスクリプトが、含まれる。ゲートウェイスクリプトには、ゲートウェイ11が更新指示に含まれる差分データを処理する手順が記述される。コンポーネントスクリプトには、更新後のプログラムをインストールする手順が、記述される。なお、コンポーネント12が更新後のプログラムをインストールする機能を有している場合には、更新指示にゲートウェイスクリプトが含まれなくてもよい。
 テーブル更新部315は、ソフトウェアの更新指示の後に品番確認部313が作業機械10から受信した確認結果に基づいて、ソフトウェアが更新されたか否かを判定する。テーブル更新部315は、ソフトウェアが更新されたと判定した場合に、コンポーネントテーブル351を更新する。テーブル更新部315は、コンポーネント12から取得された品番に基づいて、コンポーネント12の現行のソフトウェアが更新されたか否かを判定する更新判定部の一例である。
《ソフトウェア管理サーバ50の構成》
 図5は、第1の実施形態に係るソフトウェア管理サーバ50の構成を示すブロック図である。
 ソフトウェア管理サーバ50は、プロセッサ510、メインメモリ530、ストレージ550、インタフェース570を備える。プロセッサ510は、ストレージ550からプログラムを読み出してメインメモリ530に展開し、当該プログラムに従って所定の処理を実行する。インタフェース570は、コンポーネント管理サーバ30と通信可能に接続される。
 ストレージ550に記憶されるプログラムは、ソフトウェア管理サーバ50に発揮させる機能の一部を実現するためのものであってもよい。また、他の実施形態においては、ソフトウェア管理サーバ50は、上記構成に加えて、または、上記構成に代えて、PLDなどのカスタムLSIを備えてもよい。この場合、ソフトウェア管理サーバ50によって実現される機能の一部または全部が、当該集積回路によって実現されてよい。
 ストレージ550の例としては、磁気ディスク、光磁気ディスク、光ディスク、半導体メモリ等が、挙げられる。ストレージ550は、バス線に直接接続された内部メディアであってもよいし、インタフェース570または通信回線を介してソフトウェア管理サーバ50に接続される外部メディアであってもよい。また、このプログラムが、通信回線によってソフトウェア管理サーバ50に配信され、プロセッサ510が、当該プログラムを実行してもよい。少なくとも1つの実施形態において、ストレージ550は、一時的でない有形の記憶媒体である。
 プロセッサ510は、ストレージ550が記憶するプログラムの実行により、ソフトウェア記録部511、差分データ生成部512、差分データ送信部513を備える。また、ストレージ550には、ソフトウェアテーブル551の記憶領域が確保される。
 ソフトウェアテーブル551は、コンポーネント12のハードウェア品番に関連付けて、当該品番に係るコンポーネント12に適用可能な品番の異なる複数のソフトウェアを記憶する。つまり、ソフトウェアテーブル551は、コンポーネントのハードウェア品番と、ソフトウェアの実体と、当該ソフトウェアのソフトウェア品番とを、関連付けて記憶する。図6は、第1の実施形態に係るソフトウェアテーブルの一例である。ソフトウェアテーブル551は、画像表示コンポーネントを示すハードウェア品番と、画像表示コンポーネントアプリを示すソフトウェア品番と、ソフトウェアの実体とを、関連付けて記憶している。なお、画像表示コンポーネントアプリ1、画像表示コンポーネントアプリ2、及び画像表示コンポーネントアプリ3は、ソフトウェアの実体の一例である。また、図6に示す例では、ソフトウェアテーブル551は、マシンガイダンスコンポーネントを示すハードウェア品番と、マシンガイダンスコンポーネントアプリを示すソフトウェア品番と、ソフトウェアの実体とを、関連付けて記憶している。なお、マシンガイダンスコンポーネントアプリ1、及びマシンガイダンスコンポーネントアプリ2は、ソフトウェアの実体の一例である。
 ソフトウェア記録部511は、サーバの管理者やソフトウェアの開発者からソフトウェアの実体、ソフトウェアの品番、およびソフトウェアの適用対象のコンポーネント12のハードウェア品番の入力を受け付け、これらをソフトウェアテーブル551に記録する。管理者や開発者は、開発者端末70を操作し、ソフトウェアの実体、ソフトウェアの品番、およびソフトウェアの適用対象のコンポーネント12のハードウェア品番をソフトウェア管理サーバ50に送信する。
 差分データ生成部512は、ソフトウェアテーブル551に新たに記録されたソフトウェアと、当該ソフトウェアの適用対象のハードウェアに適用される他の品番のソフトウェアとの差分データを生成する。
 差分データ送信部513は、差分データ生成部512が生成した差分データと、当該差分データの適用対象となるソフトウェア品番とを、関連付けてコンポーネント管理サーバ30に送信する。
《ソフトウェアの更新方法》
 図7は、第1の実施形態に係るソフトウェア更新システム1におけるコンポーネント12のソフトウェアの更新方法を示すシーケンス図である。
 開発者は、コンポーネント12のソフトウェアを更新すると、開発者端末70を操作し、当該ソフトウェアの実体、当該ソフトウェアの品番、および当該ソフトウェアの適用対象のコンポーネント12のハードウェア品番とを関連付けてソフトウェア管理サーバ50に送信する。ソフトウェア管理サーバ50のソフトウェア記録部511は、受信したソフトウェアの実体、ソフトウェア品番、およびハードウェア品番を、関連付けてソフトウェアテーブル551に記録する(ステップS1)。なお、ソフトウェア記録部511が受信したソフトウェア品番は、更新後のソフトウェア品番である更新品番である。
 差分データ生成部512は、ソフトウェアテーブル551から、ステップS1で受信したハードウェア品番に関連付けられたソフトウェアの実体およびソフトウェア品番を取得する(ステップS2)。差分データ生成部512は、ステップS1で受信したソフトウェアと、ステップS2で読み出した各ソフトウェアとの差分を計算することで、ソフトウェア品番ごとの差分データを生成する(ステップS3)。なお、コンポーネント12が記憶するソフトウェアが常に最新のものとなっている場合には、ステップS2で読み出したソフトウェアのうち最新のソフトウェアのみについて、差分データを生成してもよい。差分データ送信部513は、ステップS3で生成した差分データを、ステップS1で受信したハードウェア品番、ステップS1で受信した更新品番、およびステップS2で読み出したソフトウェア品番である対象品番に関連付けて、コンポーネント管理サーバ30に送信する(ステップS4)。
 コンポーネント管理サーバ30の差分データ受信部311は、ソフトウェア管理サーバ50から差分データ、ソフトウェア品番およびハードウェア品番を受信する。更新対象特定部312は、コンポーネントテーブル351を参照し、受信したハードウェア品番に係るコンポーネント12を備える作業機械10を特定する(ステップS5)。なお、ハードウェア品番に係るコンポーネント12を備える複数の作業機械10が、特定されてもよい。次に、品番確認部313は、特定した作業機械10のゲートウェイ装置11に、更新対象となるコンポーネントのソフトウェア品番の確認要求を送信する(ステップS6)。すなわち、ソフトウェア品番の確認要求には、更新対象となるコンポーネント12のハードウェア品番が含まれる。
 ゲートウェイ装置11は、コンポーネント管理サーバ30からソフトウェア品番の確認要求を受信する(ステップS6)。ゲートウェイ装置11は、コンポーネント12の品番確認処理を実行し、特定したソフトウェア品番をコンポーネント管理サーバ30に送信する(ステップS7)。ソフトウェア品番は、ソフトウェアの実体に定数として書き込まれており、例えばソフトウェアが有する品番確認コマンドを実行することで、特定される。ゲートウェイ装置11による品番確認処理の詳細については、後述する。
 コンポーネント管理サーバ30の品番確認部313は、作業機械10からソフトウェア品番を受信する(ステップS7)。ステップS7で受信したソフトウェア品番と、ステップS4で受信した対象品番とが一致する場合、更新指示送信部314は、当該作業機械10のゲートウェイ装置11に、更新対象となるコンポーネントのソフトウェアの更新指示を送信する(ステップS8)。ソフトウェアの更新指示には、ステップS4で受信した差分データとゲートウェイ装置11が実行するためのゲートウェイスクリプト、および更新対象のコンポーネント12が実行するためのコンポーネントスクリプトが含まれる。ゲートウェイスクリプトには、差分データを適用するコンポーネントのハードウェア品番が含まれる。
 ゲートウェイ装置11は、コンポーネント管理サーバ30からソフトウェアの更新指示を受信する(ステップS8)。ゲートウェイ装置11は、更新指示に含まれるゲートウェイスクリプトに従って、コンポーネント12のソフトウェア更新処理を実行する(ステップS9)。ゲートウェイスクリプトには、作業機械10のキーオフ後に、個別のコンポーネント12をWake-on-LAN等の機能によってウェイクさせて、ソフトウェア更新処理を実行することが記述されていてもよい。これは、作業機械10の稼働中に更新のためにコンポーネント12が機能しなくなることを防ぐためである。また、キーオン後、図示しない作業機械10のロックレバー(作業機、旋回、走行の全ての油圧回路の流路を遮断するレバー)によって、作業機械10の動作をロックしているときに、ソフトウェア更新処理を実行することが記述されてもよい。ゲートウェイ装置11によるソフトウェア更新処理の詳細については、後述する。
 コンポーネント管理サーバ30の差分データ受信部311がステップS9で更新指示を送信した所定時間後に、品番確認部313は、更新指示を送信した作業機械10のゲートウェイ装置11に、更新対象のコンポーネントのソフトウェア品番の確認要求を送信する(ステップS10)。所定時間は、ソフトウェアへの差分データの適用処理の所要計算時間より十分に長い時間である。なお、他の実施形態においては、作業機械10のゲートウェイ装置11が更新完了後に完了通知をコンポーネント管理サーバ30に送信し、品番確認部313が、完了通知を送信した作業機械10のゲートウェイ装置11に、更新対象のコンポーネントのソフトウェア品番の確認要求を送信してもよい。
 ゲートウェイ装置11は、コンポーネント管理サーバ30からソフトウェア品番の確認要求を受信する。ゲートウェイ装置11は、コンポーネント12の品番確認処理を実行し、特定したソフトウェア品番をコンポーネント管理サーバ30に送信する(ステップS11)。なお、ソフトウェア品番は、ソフトウェアの実体に定数として書き込まれるため、ステップS9のソフトウェア更新処理が正常に完了していれば、ソフトウェア品番も合わせて更新される。
 コンポーネント管理サーバ30の品番確認部313は、作業機械10からソフトウェア品番を受信する(ステップS11)。ステップS11で受信したソフトウェア品番とステップS4で受信した更新品番とが一致する場合、テーブル更新部315は、コンポーネントテーブル351が記憶する当該コンポーネント12のソフトウェア品番をステップS11で受信したソフトウェア品番に更新する(ステップS12)。
 なお、図7に示すシーケンス図は、処理の一例を示すものであり、他の処理によってソフトウェアの更新がなされることを妨げない。例えば、他の実施形態に係るソフトウェア更新システム1は、ステップS6、ステップS7、ステップS10、ステップS11、ステップS12の処理を行わなくてもよい。なお、他の実施形態においては、ソフトウェア品番は、コンポーネント12の図示しないメインメモリまたはストレージに記憶されてよい。この場合、ゲートウェイ装置11は、ステップS7およびステップS11においてコンポーネント12の品番確認要求をコンポーネント12に送信し、コンポーネント12が、メインメモリまたはストレージに記憶されたソフトウェア品番を読み出してゲートウェイ装置11に送信してもよい。
《ゲートウェイ装置11の品番確認処理》
 ここで、ソフトウェアの更新処理におけるゲートウェイ装置11の動作について説明する。ゲートウェイ装置11の第2基板200の受信部211が、ステップS6またはステップS10にてコンポーネント管理サーバ30からソフトウェア品番の確認要求を受信すると、ゲートウェイ装置11は、品番確認処理を実行する。
 図8は、第1の実施形態に係るゲートウェイ装置11の品番確認処理を示すフローチャートである。
 受信部211は、ソフトウェア品番の確認対象のコンポーネント12、すなわち確認要求に含まれるハードウェア品番に係るコンポーネント12が、第2基板200に接続されているかを判定する(ステップS31)。確認対象のコンポーネント12が第2基板200に接続されている場合(ステップS31:YES)、アクセス部214は、第2ネットワークN2を介して、確認対象のコンポーネント12からソフトウェア品番を取得する(ステップS32)。
 他方、確認対象のコンポーネント12が第2基板200に接続されていない場合(ステップS31:NO)、出力部212はソフトウェア品番の確認要求を第1基板100に出力する(ステップS33)。
 第1基板100の入力部111が第2基板200からソフトウェア品番の確認要求の入力を受け付ける(ステップS34)。次に、アクセス部112は、第1ネットワークN1を介して、確認対象のコンポーネント12からソフトウェア品番を取得する(ステップS35)。出力部114は、読み出したソフトウェア品番を第2基板200に出力する(ステップS36)。
 第2基板200の入力部213は、第1基板100から確認対象のコンポーネント12からのソフトウェア品番の入力を受け付ける(ステップS37)。
 第2基板200の送信部216は、ステップS32またはステップS37で特定した確認対象のコンポーネント12からのソフトウェア品番を、コンポーネント管理サーバ30に送信する(ステップS38)。
 これにより、ゲートウェイ装置11は、コンポーネント管理サーバ30の確認要求に応答してコンポーネント12のソフトウェア品番を通知することができる。
 なお、図8に示すフローチャートは、処理の一例を示すものであり、他の処理によって品番の確認がなされることを妨げない。また、他の実施形態に係るゲートウェイ装置11は、品番確認処理を行わなくてもよい。なお、他の実施形態においては、ソフトウェア品番は、コンポーネント12の図示しないメインメモリまたはストレージに記憶されてよい。この場合、第2基板200は、ステップS32およびステップS37においてコンポーネント12の品番確認要求をコンポーネント12に送信し、コンポーネント12が、メインメモリまたはストレージに記憶されたソフトウェア品番を読み出して第2基板に送信してもよい。
《ゲートウェイ装置11のソフトウェア更新処理》
 ゲートウェイ装置11の第2基板200の受信部211が、ステップS8にてコンポーネント管理サーバ30からソフトウェアの更新指示を受信すると、ゲートウェイ装置11は、更新指示に含まれるゲートウェイスクリプトを実行することで、ソフトウェア更新処理を実行する。
 図9は、第1の実施形態に係るゲートウェイ装置11のソフトウェア更新処理を示すフローチャートである。
 受信部211は、ソフトウェアの更新対象のコンポーネント12、すなわちゲートウェイスクリプトに記述されたハードウェア品番に係るコンポーネント12との通信を行うために、接続情報を参照して当該コンポーネント12が第2基板200に接続されているかを判定する(ステップS61)。確認対象のコンポーネント12が第2基板200に接続されている場合(ステップS61:YES)、アクセス部214は、第2ネットワークN2を介して、確認対象のコンポーネント12から現行のソフトウェアを取得する(ステップS62)。
 他方、更新対象のコンポーネント12が第1基板100に接続されている場合、または、更新対象のコンポーネント12が第1基板100である場合(ステップS61:NO)、出力部212は、第1基板100にソフトウェアの取得指示を出力する(ステップS63)。
 第1基板100の入力部111は、第2基板200からソフトウェアの取得指示の入力を受け付ける(ステップS64)。更新部113は、更新対象のコンポーネント12が第1基板100自身であるか否かを判定する(ステップS65)。更新対象のコンポーネント12が第1基板100自身である場合(ステップS65:YES)、更新部113は、第1ストレージ150から主系ソフトウェアを読み出す(ステップS66)。他方、更新対象のコンポーネント12が第1基板100自身でない場合(ステップS65:NO)、アクセス部112は、第1ネットワークN1を介して更新対象のコンポーネント12から現行のソフトウェアを取得する(ステップS67)。なお、コンポーネント12は、現行のソフトウェアの情報を複数回に分けて第1基板に送信するようにしてもよい。これにより、一度の送信で現行のソフトウェアの情報を第1基板に送信することができない、計算資源の小さいコンポーネント12においても、現行のソフトウェアの情報を複数回に分けて送信することによって、現行のソフトウェアの情報を第1基板に送信することができる。
 出力部114は、ステップS66またはステップS67で読み出したソフトウェアを、第2基板200に出力する(ステップS68)。
 第2基板200の入力部213は、第1基板100から更新対象のコンポーネント12のソフトウェアの入力を受け付ける(ステップS69)。
 そして、ソフトウェア生成部215は、ゲートウェイスクリプトに従って、ステップS62またはステップS69で取得したソフトウェアに、コンポーネント管理サーバ30から受信した更新指示に含まれる差分データを適用することで、更新後のソフトウェアを生成する(ステップS70)。ソフトウェア生成部215は、生成したソフトウェアをコンポーネント12のハードウェア品番に関連付けて予備系ソフトウェア記憶部に記録する(ステップS71)。
 ソフトウェア生成部215は、生成したソフトウェアを更新対象のコンポーネント12に送信するために、接続情報を参照して更新対象のコンポーネント12が第2基板200に接続されているかを判定する(ステップS72)。更新対象のコンポーネント12は、第1コンポーネントの一例である。更新対象のコンポーネント12の例としては、第1ネットワークN1に接続されるコンポーネント12、第2ネットワークN2に接続されるコンポーネント12、第1基板100、および第2基板200が、挙げられる。また、ソフトウェア生成部215を備える第2基板200は、第2コンポーネントの一例である。なお、他の実施形態においては、第2基板200以外のコンポーネントが第2コンポーネントになってもよい。すなわち、他の実施形態においては、第2基板200以外のコンポーネントがソフトウェア生成部215を備えてもよい。
 更新対象のコンポーネント12が第2基板200に接続されている場合(ステップS72:YES)、アクセス部214は、第2ネットワークN2を介して、更新対象のコンポーネント12にステップS70で生成したソフトウェアおよび更新指示に含まれるコンポーネントスクリプトを出力する。これにより、当該コンポーネント12は、コンポーネントスクリプトの実行により、記憶するソフトウェアを、ステップS70で生成したソフトウェアに書き換える(ステップS73)。このように、例えば、ソフトウェアの更新対象のコンポーネント12は、第1コンポーネントの一例である。また、例えば、第2基板200は、更新対象のコンポーネント12と異なる第2コンポーネントの一例である。
 他方、更新対象のコンポーネント12が第1基板100に接続されている場合、または、更新対象のコンポーネント12が第1基板100である場合(ステップS72:NO)、出力部212は、第1基板100にソフトウェアの更新指示を出力する(ステップS74)。ソフトウェアの更新指示には、ステップS70で生成したソフトウェアおよび更新指示に含まれるコンポーネントスクリプトが、含まれる。
 第1基板100の入力部111は、第2基板200からソフトウェアの更新指示の入力を受け付ける(ステップS75)。更新部113は、更新対象のコンポーネント12が第1基板100自身であるか否かを判定する(ステップS76)。更新対象のコンポーネント12が第1基板100自身である場合(ステップS76:YES)、更新部113は、第1ストレージ150が記憶する予備系ソフトウェアを、更新指示に含まれるソフトウェアに書き換える(ステップS77)。このように、例えば、ソフトウェアの更新対象の第1基板100は、第1コンポーネントの一例である。また、例えば、第1コンポーネントと異なる第2基板200は、第2コンポーネントの一例である。予備系ソフトウェアの書き換えが完了すると、更新部113は、第1ストレージ150が記憶する主系ソフトウェアを、更新指示に含まれるソフトウェアに書き換える(ステップS78)。
 他方、更新対象のコンポーネント12が第1基板100自身でない場合(ステップS76:NO)、アクセス部112は、第1ネットワークN1を介して更新対象のコンポーネント12に更新指示に含まれるソフトウェアおよびコンポーネントスクリプトを出力する。これにより、当該コンポーネント12は、コンポーネントスクリプトの実行により、記憶するソフトウェアを、更新指示に含まれるソフトウェアに書き換える(ステップS79)。このように、例えば、ソフトウェアの更新対象のコンポーネント12は、第1コンポーネントの一例である。また、例えば、第1コンポーネントと異なる第2基板200は、第2コンポーネントの一例である。また、ソフトウェアの更新対象のコンポーネント12に接続される第1基板100は、他のコンポーネントの一例である。
 これにより、ゲートウェイ装置11は、差分データに基づいてコンポーネント12のソフトウェアを更新することができる。
 なお、図9に示すフローチャートは、処理の一例を示すものであり、他の処理によってソフトウェアの更新がなされることを妨げない。例えば、他の実施形態に係るゲートウェイ装置11は、ステップS71の処理、ステップS77の処理を行わなくてもよい。また、他の実施形態においては、第1基板100、第1基板100に接続されているコンポーネント12、および第2基板200に接続されているコンポーネント12のいずれかを更新するものであってもよい。また、更新対象のコンポーネント12がコンポーネントスクリプトを記憶している場合、更新指示にコンポーネントスクリプトが含まれなくてもよい。
《作用・効果》
 このように、第1の実施形態によれば、ゲートウェイ装置11は、外部ネットワークを介して作業機械10のコンポーネント12の更新のための差分データを受信し、内部ネットワークを介して接続されるコンポーネントの現行のソフトウェアに差分データを適用する。そして、ゲートウェイ装置11は、生成されたソフトウェアをコンポーネント12に出力する。これにより、ゲートウェイ装置11は、コンポーネント12の計算資源の大小(大きさ)に依らず、コンポーネント12のソフトウェアを更新することができる。またゲートウェイ装置11は、差分データを用いてソフトウェアを更新することで、外部ネットワークの通信量を抑えることができる。
 また、第1の実施形態に係るゲートウェイ装置11は、第1基板100より大きい記憶容量を有する第2基板200において、差分データを用いたソフトウェアの生成を行う。これにより、第1の実施形態に係るゲートウェイ装置11は、第1基板100の計算資源を作業機械10の制御に多く振り分けることができる。
 また、第2基板200は、第1基板100に接続されるコンポーネント12のソフトウェアの更新を行う。
 また、第1の実施形態に係るゲートウェイ装置11は、生成されたコンポーネント12のソフトウェアを、予備系ソフトウェア記憶部251に記憶する。これにより、ステップS73またはステップS79におけるソフトウェアの書き換え処理時の電源断などによりソフトウェアの破損が生じた場合にも、予備系ソフトウェア記憶部251が記憶するソフトウェアを用いてコンポーネント12のソフトウェアを生成することができる。また、第1基板100は、更新後のソフトウェアを、第1ストレージ150の予備系ソフトウェアおよび主系ソフトウェアとして順に記録する。これにより、予備系ソフトウェアの記録が完了し、主系ソフトウェアの記録中に処理の中断が生じること等により、主系ソフトウェアの破損が生じた場合にも、記録が完了した予備系ソフトウェアを用いて主系ソフトウェアを復旧することができる。
 なお、破損したソフトウェアの復旧は、ゲートウェイ装置11による自動操作によってなされてもよいし、サービスマンやオペレータによる手動操作によってなされてもよい。
〈第2の実施形態〉
 第1の実施形態に係るゲートウェイ装置11は、作業機械10のすべてのコンポーネント12のソフトウェアを、当該作業機械10に搭載された第2基板200において生成する。他方、コンポーネント12の中には、十分な計算資源を有しているものが存在する。第2の実施形態では、一部のコンポーネント12が自身のソフトウェアの更新を自律的に行う。
 図10は、第2の実施形態に係るゲートウェイ装置11の構成を示す概略ブロック図である。
 図10に示すように、第2基板200は、第1の実施形態の構成に加え、さらに判定部217を備える。また、第2ストレージ250には、コンポーネント記憶部252の記憶領域が、さらに設けられる。
 コンポーネント記憶部252は、差分データの適用機能を有するコンポーネント12のソフトウェア品番を予め記憶する。コンポーネント記憶部252が記憶する情報は、コンポーネント12の交換時などに、サービスマン等により更新される。
 判定部217は、コンポーネント記憶部252を参照して、更新対象のコンポーネント12が差分データの適用機能を有するか否かを判定する。
 第2の実施形態に係るゲートウェイ装置11がソフトウェア更新処理を実行すると、まず、判定部217が、コンポーネント記憶部252を参照して、更新対象のコンポーネント12が、差分データの適用機能を有するか否かを判定する。更新対象のコンポーネント12が差分データの適用機能を有する場合、アクセス部112は、コンポーネント管理サーバ30から受信した更新指示を更新対象のコンポーネント12に転送する。これにより、更新対象のコンポーネント12は、更新指示に含まれる差分データを用いてソフトウェアを更新する。
 他方、更新対象のコンポーネント12が差分データの適用機能を有しない場合、ゲートウェイ装置11は、第1の実施形態に係るステップS61からステップS79の処理を実行することで、コンポーネント12のソフトウェアを更新する。
〈第3の実施形態〉
 第1の実施形態に係るゲートウェイ装置11は、物理的に分かれた第1基板100と第2基板200とを備える。これに対し、第3の実施形態に係るゲートウェイ装置11は、1つの基板に実装される。
 図11は、第3の実施形態に係るゲートウェイ装置11の構成を示す概略ブロック図である。すなわち、第3の実施形態に係るゲートウェイ装置11は、プロセッサ210a、メインメモリ230a、ストレージ250a、インタフェース270aを備える。プロセッサ210a、メインメモリ230a、ストレージ250a、およびインタフェース270aは、それぞれ、第1の実施形態に係る第2基板の第2プロセッサ210、第2メインメモリ230、第2ストレージ250、および第2インタフェース270と同等の計算資源を有する。
 第3の実施形態に係るゲートウェイ装置11は、他の基板との通信を行う必要がないため、第1の実施形態に係るゲートウェイ装置11の出力部212および入力部213に相当する機能を有しなくてよい。
 また、第3の実施形態に係るゲートウェイ装置11は、第1の実施形態に係るステップS31の判定、ステップS33からステップS37の処理、ステップS61の判定、ステップS63からステップS69の処理、ステップS72の判定、およびステップS74からステップS79の処理を行わなくてもよい。
〈第4の実施形態〉
 第1の実施形態に係るゲートウェイ装置11では、第1基板100と第2基板200が、それぞれ、プロセッサを1つずつ備える。これに対し、第4の実施形態に係るゲートウェイ装置11では、1つの基板が、2つのプロセッサを備える。
 図12は、第4の実施形態に係るゲートウェイ装置11の構成を示す概略ブロック図である。すなわち、第4の実施形態に係るゲートウェイ装置11は、1つの基板に、第1プロセッサ110、第1メインメモリ130、第1ストレージ150、第1インタフェース170、第2プロセッサ210、第2メインメモリ230、第2ストレージ250、第2インタフェース270を備える。
 なお、第1プロセッサ110および第2プロセッサ210は、マルチコアCPUの各コアによって実現されてよい。また、第1プロセッサ110および第2プロセッサ210は、仮想化技術によって1つの物理プロセッサから仮想化された2つの仮想プロセッサであってもよい。また、第1メインメモリ130および第2メインメモリ230、ならびに第1ストレージ150および第2ストレージ250も、1つのメインメモリおよびストレージにて実現されてもよい。この場合、予めプロセッサごとに、メインメモリおよびストレージの利用可能な記憶領域を割り当てておく。また、第1インタフェース170および第2インタフェース270は、1つのインタフェースによって実現されてよい。この場合、第1ネットワークN1および第2ネットワークN2は、ソフトウェアによって仮想的に分離してもよい。
 第4の実施形態に係るゲートウェイ装置11は、第1の実施形態と同様の処理によってコンポーネント12のソフトウェアの更新を行うことができる。
 以上、図面を参照して一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、様々な設計変更等をすることが可能である。
 例えば、他の実施形態においては、ゲートウェイ装置11が3つ以上の基板を備えてもよい。また、他の実施形態においては、ゲートウェイ装置11が備える複数の基板の役割は、上述の実施形態と異なるものであってもよい。
 また、他の実施形態においては、ソフトウェア管理サーバ50とコンポーネント管理サーバ30は、別体ではなく、1つの装置によって実現されてもよい。
 また、第2の実施形態においては、ゲートウェイ装置11が、更新対象のコンポーネント12が差分データの適用機能を有するか否かを判定するが、これに限られない。例えば、第2基板200に接続されるコンポーネント12が、必ず差分データの適用機能を有し、第1基板100に接続されるコンポーネント12が、必ず差分データの適用機能を有しないことが分かっている場合、判定部217は、更新対象のコンポーネント12がいずれの基板に接続されるかを判定することで、差分データの適用を行うか否かを決定してもよい。
 本開示によれば、差分データを用いて作業機械のコンポーネントのソフトウェアを更新することができる。
 1 ソフトウェア更新システム 
 10 作業機械 
 11 ゲートウェイ装置 
 12 コンポーネント 
 30 コンポーネント管理サーバ 
 50 ソフトウェア管理サーバ 
 100 第1基板 
 111 入力部 
 112 アクセス部 
 113 更新部 
 114 出力部 
 200 第2基板 
 211 受信部 
 212 出力部 
 213 入力部 
 214 アクセス部 
 215 ソフトウェア生成部 
 216 送信部 
 311 差分データ受信部 
 312 更新対象特定部 
 313 品番確認部 
 314 更新指示送信部 
 315 テーブル更新部 
 511 ソフトウェア記録部 
 512 差分データ生成部 
 513 差分データ送信部

Claims (6)

  1.  作業機械の第1コンポーネントのソフトウェアを更新するソフトウェア更新システムであって、
     前記作業機械の内部ネットワークを介して接続される前記第1コンポーネントの更新のための差分データを、外部ネットワークを介して受信する受信部と、
     前記第1コンポーネントから、前記第1コンポーネントが記憶し、実行する第1のソフトウェアを取得するソフトウェア取得部と、
     前記第1のソフトウェアに前記差分データを適用することで第2のソフトウェアを生成するソフトウェア生成部と、
     生成された前記第2のソフトウェアを前記第1コンポーネントに出力するソフトウェア出力部と、
     を備える、
     作業機械のコンポーネントのソフトウェア更新システム。
  2.  前記ソフトウェア生成部は、前記第1コンポーネントと異なる第2コンポーネントに搭載される、
     請求項1に記載の作業機械のコンポーネントのソフトウェア更新システム。
  3.  互いに通信可能に接続された、第1プロセッサと、第2プロセッサとをさらに備え、
     前記第1プロセッサは、前記作業機械を制御するための前記第1コンポーネントと接続され、
     前記第2プロセッサは、前記作業機械の機能を拡張するための前記第1コンポーネントと接続され、
     前記第2プロセッサが前記ソフトウェア生成部として機能する、
     請求項1または請求項2に記載の作業機械のコンポーネントのソフトウェア更新システム。
  4.  前記ソフトウェア生成部は、前記第1プロセッサに接続された前記第1コンポーネントに係る前記第2のソフトウェアを生成する、
     請求項3に記載の作業機械のコンポーネントのソフトウェア更新システム。
  5.  生成された前記第2のソフトウェアを前記第1コンポーネントに出力した後に、前記第1コンポーネントから、前記第1コンポーネントの前記第1のソフトウェアの品番を取得する品番取得部と、
     取得された前記品番に基づいて、前記第1コンポーネントの前記第1のソフトウェアが更新されたか否かを判定する更新判定部と
    をさらに備える、
     請求項1から請求項4の何れか1項に記載の作業機械のコンポーネントのソフトウェア更新システム。
  6.  作業機械の第1コンポーネントのソフトウェアを更新するソフトウェア更新方法であって、
     前記作業機械の内部ネットワークを介して接続される前記第1コンポーネントの更新のための差分データを、外部ネットワークを介して受信するステップと、
     前記第1コンポーネントから、前記第1コンポーネントが記憶し、実行する第1のソフトウェアを取得するステップと、
     前記第1のソフトウェアに前記差分データを適用することで第2のソフトウェアを生成するステップと、
     生成された前記第2のソフトウェアを前記第1コンポーネントに出力するステップと、
     を備える、
     作業機械のコンポーネントのソフトウェア更新方法。
PCT/JP2021/007406 2020-02-27 2021-02-26 作業機械のコンポーネントのソフトウェア更新システムおよびソフトウェア更新方法 WO2021172526A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020227029293A KR20220127324A (ko) 2020-02-27 2021-02-26 작업 기계의 컴포넌트의 소프트웨어 갱신 시스템 및 소프트웨어 갱신 방법
US17/801,606 US20230082152A1 (en) 2020-02-27 2021-02-26 Software update system and software update method for work machine component
CN202180017340.3A CN115176228A (zh) 2020-02-27 2021-02-26 作业机械的组件的软件更新系统以及软件更新方法
DE112021000418.2T DE112021000418T5 (de) 2020-02-27 2021-02-26 Softwareaktualisierungssystem und Softwareaktualisierungsverfahren für Arbeitsmaschinenkomponente

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020031851A JP2021135777A (ja) 2020-02-27 2020-02-27 作業機械のコンポーネントのソフトウェア更新システムおよびソフトウェア更新方法
JP2020-031851 2020-02-27

Publications (1)

Publication Number Publication Date
WO2021172526A1 true WO2021172526A1 (ja) 2021-09-02

Family

ID=77491223

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/007406 WO2021172526A1 (ja) 2020-02-27 2021-02-26 作業機械のコンポーネントのソフトウェア更新システムおよびソフトウェア更新方法

Country Status (6)

Country Link
US (1) US20230082152A1 (ja)
JP (1) JP2021135777A (ja)
KR (1) KR20220127324A (ja)
CN (1) CN115176228A (ja)
DE (1) DE112021000418T5 (ja)
WO (1) WO2021172526A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003076554A (ja) * 2001-09-05 2003-03-14 Sharp Corp ソフトウェア更新システム、それに用いられる携帯情報端末およびサーバ装置、並びにソフトウェア更新方法、そのコンピュータ・プログラムおよびそのプログラムを記録した記録媒体
JP2018055615A (ja) * 2016-09-30 2018-04-05 株式会社デンソーテン 情報処理装置、情報処理システム、及び、情報処理方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7676804B2 (en) * 2004-05-20 2010-03-09 Caterpillar Inc. Systems and method for remotely modifying software on a work machine
US7487499B2 (en) * 2004-10-29 2009-02-03 Caterpillar Inc. Location based software flashing system
AT501688B1 (de) * 2005-04-08 2008-02-15 Keba Ag Verfahren sowie vorrichtung zur sicheren, verwechslungsfreien und ausschliesslichen zuordnung der befehlsgewalt einer bedienperson zu einer steuerbaren technischen einrichtung
ATE554571T1 (de) * 2009-01-07 2012-05-15 Abb Research Ltd Ied für und verfahren zum erstellen eines sa- systems
JP5554856B1 (ja) * 2013-03-14 2014-07-23 株式会社小松製作所 作業機械
US20150074749A1 (en) * 2013-09-10 2015-03-12 Rockwell Automation Technologies, Inc. Remote asset management services for industrial assets
JP2016170669A (ja) * 2015-03-13 2016-09-23 富士通株式会社 負荷分散機能配備方法、負荷分散機能配備装置および負荷分散機能配備プログラム
US11874716B2 (en) * 2015-08-05 2024-01-16 Suunto Oy Embedded computing device management
EP3358465B1 (en) * 2015-09-29 2024-04-17 Hitachi Astemo, Ltd. In-vehicle control device, program update system, and program update software
JP2017156937A (ja) * 2016-03-01 2017-09-07 ヤンマー株式会社 端末装置およびソフトウェア書き換えプログラム
US10594555B2 (en) * 2016-12-16 2020-03-17 Intelligent Platforms, Llc Cloud-enabled testing of control systems
JP2020031851A (ja) 2018-08-29 2020-03-05 株式会社高尾 弾球遊技機
JP7262199B2 (ja) * 2018-09-28 2023-04-21 株式会社小松製作所 作業機械のデータ収集装置、作業機械のデータ提供システム及び作業機械のデータ収集方法
JP6902722B2 (ja) * 2019-03-07 2021-07-14 パナソニックIpマネジメント株式会社 プログラム更新システム、制御システム、移動体、プログラム更新方法及びプログラム
US20200311601A1 (en) * 2019-03-29 2020-10-01 Optum, Inc. Hybrid rule-based and machine learning predictions

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003076554A (ja) * 2001-09-05 2003-03-14 Sharp Corp ソフトウェア更新システム、それに用いられる携帯情報端末およびサーバ装置、並びにソフトウェア更新方法、そのコンピュータ・プログラムおよびそのプログラムを記録した記録媒体
JP2018055615A (ja) * 2016-09-30 2018-04-05 株式会社デンソーテン 情報処理装置、情報処理システム、及び、情報処理方法

Also Published As

Publication number Publication date
DE112021000418T5 (de) 2022-10-27
US20230082152A1 (en) 2023-03-16
JP2021135777A (ja) 2021-09-13
CN115176228A (zh) 2022-10-11
KR20220127324A (ko) 2022-09-19

Similar Documents

Publication Publication Date Title
CN105339759B (zh) 作业机械的控制系统以及作业机械的控制方法
CN107532897B (zh) 提供对运动学加速度的补偿的方法和补偿测量结果的系统
US20210215483A1 (en) Controlling movement of a machine using sensor fusion
CN105518226A (zh) 作业机械的控制系统和作业机械
US20050080559A1 (en) Position measuring system for working machine
US10900202B2 (en) Systems and methods for generating operational machine heading
WO2021060533A1 (ja) 作業機械
JP7240498B2 (ja) ヨー角推定
WO2021172526A1 (ja) 作業機械のコンポーネントのソフトウェア更新システムおよびソフトウェア更新方法
US20180224280A1 (en) Iterative estimation of centripetal accelerations of inertial measurement units in kinematic chains
JP7142151B2 (ja) 作業機械
JP7252146B2 (ja) 作業機械
CN113818506A (zh) 具有改进的移动感测的挖掘机
JP2024508916A (ja) 土工機械における周期的動作の自動制御方法
WO2023032850A1 (ja) ソフトウェア更新システム、作業機械およびソフトウェア更新方法
US20230144985A1 (en) Positioning system for work machine, work machine, and positioning method for work machine
JP2011058269A (ja) 作業機の位置管理装置
RU2566153C1 (ru) Устройство для определения положения рабочего органа машины
JP2021050551A (ja) 作業機械
KR102679015B1 (ko) 작업 기계의 측위 시스템, 작업 기계 및 작업 기계의 측위 방법
JP7390991B2 (ja) 作業機械および施工支援システム
JP2024048983A (ja) 作業機械の自動制御システム
WO2024053315A1 (ja) 施工履歴演算システム及び地形データ生成システム
JP2021149475A (ja) 施工履歴情報管理システム
JP2023088220A (ja) 建設機械

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21760842

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 21760842

Country of ref document: EP

Kind code of ref document: A1