CN107852361A - 具有信号交换机板和输出表的车辆控制模块 - Google Patents

具有信号交换机板和输出表的车辆控制模块 Download PDF

Info

Publication number
CN107852361A
CN107852361A CN201680043845.6A CN201680043845A CN107852361A CN 107852361 A CN107852361 A CN 107852361A CN 201680043845 A CN201680043845 A CN 201680043845A CN 107852361 A CN107852361 A CN 107852361A
Authority
CN
China
Prior art keywords
module
vehicle
value
output
module output
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CN201680043845.6A
Other languages
English (en)
Other versions
CN107852361B (zh
Inventor
M·E·艾迪生
W·康力三世
K·L·达姆迈尔
J·K·哈默
S·T·曼吉特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Crown Equipment Corp
Original Assignee
Crown Equipment Corp
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 Crown Equipment Corp filed Critical Crown Equipment Corp
Publication of CN107852361A publication Critical patent/CN107852361A/zh
Application granted granted Critical
Publication of CN107852361B publication Critical patent/CN107852361B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/06Improving the dynamic response of the control system, e.g. improving the speed of regulation or avoiding hunting or overshoot
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W10/00Conjoint control of vehicle sub-units of different type or different function
    • B60W10/20Conjoint control of vehicle sub-units of different type or different function including control of steering systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W10/00Conjoint control of vehicle sub-units of different type or different function
    • B60W10/30Conjoint control of vehicle sub-units of different type or different function including control of auxiliary equipment, e.g. air-conditioning compressors or oil pumps
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/0098Details of control systems ensuring comfort, safety or stability not otherwise provided for
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B66HOISTING; LIFTING; HAULING
    • B66FHOISTING, LIFTING, HAULING OR PUSHING, NOT OTHERWISE PROVIDED FOR, e.g. DEVICES WHICH APPLY A LIFTING OR PUSHING FORCE DIRECTLY TO THE SURFACE OF A LOAD
    • B66F9/00Devices for lifting or lowering bulky or heavy goods for loading or unloading purposes
    • B66F9/06Devices for lifting or lowering bulky or heavy goods for loading or unloading purposes movable, with their loads, on wheels or the like, e.g. fork-lift trucks
    • B66F9/075Constructional features or details
    • B66F9/20Means for actuating or controlling masts, platforms, or forks
    • B66F9/24Electrical devices or systems
    • 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
    • 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
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W2050/0062Adapting control system settings
    • B60W2050/0075Automatic parameter input, automatic initialising or calibrating means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W2050/0062Adapting control system settings
    • B60W2050/0075Automatic parameter input, automatic initialising or calibrating means
    • B60W2050/0082Automatic parameter input, automatic initialising or calibrating means for initialising the control system
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2300/00Indexing codes relating to the type of vehicle
    • B60W2300/12Trucks; Load vehicles
    • B60W2300/121Fork lift trucks, Clarks
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2556/00Input parameters relating to data
    • B60W2556/45External transmission of data to or from the vehicle
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/26Pc applications
    • G05B2219/2641Fork lift, material handling vehicle

Landscapes

  • Engineering & Computer Science (AREA)
  • Transportation (AREA)
  • Automation & Control Theory (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • General Engineering & Computer Science (AREA)
  • Structural Engineering (AREA)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Geology (AREA)
  • Civil Engineering (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Electromagnetism (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Small-Scale Networks (AREA)
  • Programmable Controllers (AREA)
  • Input From Keyboards Or The Like (AREA)
  • Stored Programmes (AREA)

Abstract

能够在第一车辆和第二车辆之一上运行的控制模块包括:a)包括模块输出元素的超集的模块输出表,模块输出元素的超集包括与设置在第一车辆上的第一组硬件设备有关的模块输出元素的第一子集和与设置在第二车辆上的第二组硬件设备有关的模块输出元素的第二子集;b)与在第一车辆和第二车辆上使用的车辆功能输出有关的车辆功能输出元素;以及c)配置表,配置表包括与模块输出元素对应的配置元素。模块还可以包括:基于计算机的结构,用于确定与模块输出表中的模块输出元素对应的车辆功能输出元素的值,将值变换成变换后的值,并基于对应的模块输出元素存储变换后的值。

Description

具有信号交换机板和输出表的车辆控制模块
技术领域
本发明一般涉及物料搬运车辆的操作,更具体地说,涉及对物料搬运车辆的基于软件的控制。
背景技术
预计叉车和其他类型的工业车辆将在各种不同的条件下操作。另外,这样的车辆通常包括许多不同的功能系统,诸如用于控制车辆行驶速度的牵引系统和用于控制车辆行驶方向的转向系统。存在各种各样的具有不同硬件传感器、输入和输出的车辆。此外,不同类型的车辆也可以具有由软件仿真或模拟的不同功能系统。例如,驾驶员所坐的车辆可能具有与操作员在其旁边行走的车辆不同的功能。因此,每种车辆类型通常具有专门针对车辆上存在的硬件设备而设计的自己的控制系统以及适用于特定车辆的具体功能系统。
发明内容
本发明的各方面涉及一种能够在第一物料搬运车辆和第二物料搬运车辆之一上运行的基于计算机的车辆控制模块。该模块可以包括:a)包括模块输出元素的超集的模块输出表,其中,所述模块输出元素的超集包括与设置在第一车辆上的第一组硬件设备有关的模块输出元素的第一子集和与设置在第二车辆上的第二组硬件设备有关的模块输出元素的第二子集;b)与在第一车辆和第二车辆上使用的车辆功能输出有关的车辆功能输出元素;以及c)至少一个配置表,所述至少一个配置表包括与所述模块输出元素的超集中的一些对应的相应配置元素,其中,每个相应配置元素包括与确定同所述模块输出表中的对应的模块输出元素相关联的变换后的值有关的数据。该模块还可以包括:基于计算机的结构,用于确定与所述模块输出表中的模块输出元素对应的车辆功能输出元素的值,将所述值变换成变换后的值,并基于对应的模块输出元素存储变换后的值。
作为示例,在第一车辆和第二车辆之一上实现的硬件设备包括下列各项中的一个或多个:车辆网络的总线;输出驱动器;模拟输出;以及数字输出。
根据任一方面和实施例的一个特征,该模块还可以包括:计算机可访问的存储器,并且所述模块输出表中的每个元素包括所述存储器中存储其相关联的变换后的值的相应地址。
根据任一方面和实施例的另一个特征,该模块可以包括:包括模块输出变量的超集的模块输出数据结构,其中,所述模块输出变量的超集包括与模块输出元素的第一子集有关的模块输出变量的第一子集和与模块输出元素的第二子集有关的模块输出变量的第二子集;以及其中,每个模块输出元素对应于所述模块输出变量的超集中的一个,并且包括对应的模块输出变量在所述模块输出数据结构内的偏移量。因此,存储变换后的值可以是基于对应的模块输出元素和所述模块输出数据结构的地址的。
所述至少一个配置表可以包括:功能输出配置表,所述功能输出配置表包括与所述车辆功能输出元素中的一些对应的相应功能输出配置元素,其中,每个相应功能输出配置元素包括与实现将同对应的车辆功能输出元素相关联的值变换成初始变换后的值有关的数据。在一些情况下,值和初始变换后的值可以是相同的。所述至少一个配置表还可以包括:模块输出配置表,所述模块输出配置表包括与所述模块输出元素的超集中的一些对应的相应模块输出配置元素,其中,每个相应模块输出配置元素包括与实现将同模块输出表中的对应的模块输出元素和对应的车辆功能输出元素相关联的初始变换后的值变换成变换后的值有关的数据。
关于基于计算机的结构,它可以包括:路由表,所述路由表包括与以下各项有关的值/条目:a)相关联的车辆功能输出元素,以及b)与所述车辆控制模块在其上运行的第一车辆和第二车辆之一对应的模块输出元素的第一子集和第二子集之一中的相关联的模块输出元素。特别地,还可以包括路由引擎,当所述路由引擎在第一车辆和第二车辆之一上执行时,针对所述路由表中的每个条目,所述路由引擎被配置为:a)确定与同所述条目相关联的所述车辆功能输出元素相关联的所述模块输出元素,b)确定与相关联的模块输出元素和车辆功能输出元素对应的第一配置表和第二配置表中的每个中的相应配置元素,c)确定与相关的车辆功能输出元素相关联的值,以及d)基于相应配置元素,将所述值变换为变换后的值,变换后的值被基于相关联的模块输出元素而存储。
该模块还可以包括计算机可访问的存储器,并且每个车辆功能输出元素可以包括所述存储器中存储其相关联的值的相应地址。
关于变换所述值,所述变换可以包括以下各项中的一个或多个:使所述值保持不变;对所述值进行比特掩码;对所述值进行比特移位;将预定偏移与所述值相加;以及将所述值乘以预定增益。
所述模块输出配置表中的每个元素可以包括与同模块输出表中的对应的模块输出元素相关联的变换后的值的输出数据类型有关的数据,以及变换初始变换后的值包括将值的第一数据类型改变成输出数据类型。
关于模块输出元素,a)所述模块输出元素的超集中的至少一个模块输出元素可以是模块输出元素的第一子集和模块输出元素的第二子集两者中的成员,以及b)所述模块输出元素的超集中的至少一个模块输出元素可以是模块输出元素的第一子集或模块输出元素的第二子集中的仅一个子集中的成员。
关于模块输出变量,a)所述模块输出变量的超集中的至少一个模块输出变量可以是模块输出变量的第一子集和模块输出变量的第二子集两者中的成员,以及b)所述模块输出元素的超集中的至少一个模块输出变量可以是模块输出变量的第一子集或模块输出变量的第二子集中的仅一个子集中的成员。
根据本发明的另一个方面,一种能够在第一物料搬运车辆和第二物料搬运车辆之一上运行的车辆控制模块的方法可以包括:a)提供包括模块输出元素的超集的模块输出表,其中,所述模块输出元素的超集包括与设置在第一车辆上的第一组硬件设备有关的模块输出元素的第一子集和与设置在第二车辆上的第二组硬件设备有关的模块输出元素的第二子集;b)提供与在第一车辆和第二车辆上使用的车辆功能输出有关的车辆功能输出元素;以及c)提供至少一个配置表,所述至少一个配置表包括与所述模块输出元素的超集中的一些对应的相应配置元素,其中,每个相应配置元素包括与确定同所述模块输出表中的对应的模块输出元素相关联的变换后的值有关的数据。该方法还可以包括:确定与所述模块输出表中的模块输出元素对应的车辆功能输出元素的值;将所述值变换成变换后的值;以及基于对应的模块输出元素存储变换后的值。
本发明的另一个方面涉及一种基于计算机的车辆控制模块,能够在第一物料搬运车辆和第二物料搬运车辆之一上运行。该模块包括:包括模块输出元素的第一超集的模块输出表,其中,所述模块输出元素的第一超集包括与设置在第一车辆上的第一组硬件设备有关的模块输出元素的第一子集和与设置在第二车辆上的第二组硬件设备有关的模块输出元素的第二子集。该模块还包括:车辆功能输出表,所述车辆功能输出表包括与在第一车辆和第二车辆上使用的车辆功能输出有关的一组车辆功能输出元素;以及至少一个配置表,所述至少一个配置表包括与所述模块输出元素的第一超集中的一些对应的相应配置元素,其中,每个相应配置元素包括与确定同所述模块输出表中的对应的模块输出元素相关联的变换后的值有关的数据。另外,该模块包括:结构,用于确定与所述模块输出表中的模块输出元素对应的所述车辆功能输出表中的车辆功能输出元素的值,将所述值变换成变换后的值,并将变换后的值与对应的模块输出元素链接。
根据本发明的各方面和各实施例,至少一个配置表可以包括:功能输出配置表,所述功能输出配置表包括与所述车辆功能输出元素中的一些对应的相应功能输出配置元素,其中,每个相应功能输出配置元素包括与实现将同所述车辆功能输出表中的对应的车辆功能输出元素相关联的值变换成初始变换后的值有关的数据。在一些情况下,与对应的车辆功能输出元素相关联的值不一定需要被初始地改变。在这些情况下,即使功能输出配置表中可能存在对应的元素,该元素也不以任何方式修改对应的值,因此值和初始变换后的值实际上是相同的。
本发明的另一个方面涉及一种能够在第一物料搬运车辆和第二物料搬运车辆之一上运行的车辆控制模块的方法,该方法包括:提供包括模块输出元素的第一超集的模块输出表,其中,所述模块输出元素的第一超集包括与设置在第一车辆上的第一组硬件设备有关的模块输出元素的第一子集和与设置在第二车辆上的第二组硬件设备有关的模块输出元素的第二子集;以及提供车辆功能输出表,所述车辆功能输出表包括与在第一车辆和第二车辆上使用的车辆功能输出有关的一组车辆功能输出元素。该方法还可以包括:提供至少一个配置表,所述至少一个配置表包括与所述模块输出元素的第一超集中的一些对应的相应配置元素,其中,每个相应配置元素包括与确定同所述模块输出表中的对应的模块输出元素相关联的变换后的值有关的数据。根据该方法,可以执行下面的步骤:a)确定与所述模块输出表中的模块输出元素对应的所述车辆功能输出表中的车辆功能输出元素的值,b)将所述值变换成变换后的值,以及c)将变换后的值与对应的模块输出元素链接。另外,所述模块输出元素的第一超集中的至少一个元素可以是模块输出元素的第一子集和模块输出元素的第二子集两者中的成员,而附加地或替选地,所述模块输出元素的第一超集中的至少一个元素可以是模块输出元素的第一子集或模块输出元素的第二子集中的仅一个子集中的成员。
根据本发明的各方面和各实施例,至少一个配置表可以包括:功能输出配置表,所述功能输出配置表包括与所述车辆功能输出元素中的一些对应的相应功能输出配置元素,其中,每个相应功能输出配置元素包括与实现将同所述车辆功能输出表中的对应的车辆功能输出元素相关联的值变换成初始变换后的值有关的数据。在一些情况下,值和初始变换后的值是相同的。另外,所述至少一个配置表可以包括:模块输出配置表,所述模块输出配置表包括与所述模块输出或目的地元素的第一超集中的一些对应的相应模块输出配置元素,其中,每个相应模块输出配置元素包括与实现将同所述模块输出表中的对应的模块输出元素相关联的初始变换后的值变换成变换后的值有关的数据。
根据本发明的一些方面和实施例,上述方法可包括:提供路由表,所述路由表包括与以下各项有关的条目:a)相关联的车辆功能输出元素,以及b)对应于所述车辆控制模块在其上运行的第一车辆和第二车辆之一的模块输出元素的第一子集和第二子集之一中的相关联的模块输出元素。因此,确定车辆功能输出元素的值可以包括:a)确定与同所述条目相关联的所述车辆功能输出元素相关联的所述模块输出元素,以及b)确定与所述车辆功能输出表中的相关的车辆功能输出元素相关联的值;而将值变换成变换后的值可以包括:a)确定与相关联的模块输出元素和车辆功能输出元素对应的第一配置表和第二配置表中的每个中的相应配置元素,b)基于相应配置元素,将所述值变换成变换后的值,变换后的值与对应的模块输出元素链接。在一些方面和实施例中,所述路由表中的条目的数量可以等于所述车辆功能输出表中的元素的数量。
附加地,在本发明的各方面和各实施例中,第一超集还可以包括与一个或多个默认值有关的模块输出元素的第三子集;使得所述路由表还包括与以下各项有关的一个或多个条目:a)相关联的车辆功能输出元素,以及b)第三子集中的相关联的模块输出元素。相应地,对于与模块输出元素的第三子集有关的所述路由表中的每个条目:该方法可以包括:a)确定与同所述条目相关联的所述车辆功能输出元素相关联的所述模块输出元素,b)确定与相关联的模块输出元素和车辆功能输出元素对应的第一配置表和第二配置表中的每个中的相应配置元素,c)确定与所述车辆功能输出表中的相关的车辆功能输出元素相关联的值,以及d)基于对应的相应配置元素,将所述值变换为变换后的值,变换后的值与相关联的模块输出元素链接。
根据各个方面和实施例,所述模块输出表中的每个元素包括存储器中存储其相关联的变换后的值的相应地址,并且所述车辆功能输出表中的每个元素包括存储器中存储其相关联的值的相应地址。另外,变换所述值可以包括下列各项中的一个或多个:使所述值保持不变;对所述值进行比特掩码;对所述值进行比特移位;将预定偏移与所述值相加;以及将所述值乘以预定增益。另外,所述模块输出配置表中的每个元素可以包括与同所述模块输出表中的对应元素相关联的变换后的值的输出数据类型有关的数据。因此,变换初始变换后的值可以包括将所述值的第一数据类型改变为输出数据类型。
根据本发明的各个方面和实施例,在第一车辆和第二车辆之一上实现的硬件设备可以包括以下各项中的一个或多个:车辆网络的总线;输出驱动器;模拟输出;以及数字输出。
本发明的另一个方面涉及一种基于计算机的车辆控制模块,能够在第一物料搬运车辆和第二物料搬运车辆之一上运行。该模块包括:a)包括源元素的第一超集的模块输出表,其中,模块输出元素的第一超集包括与设置在第一车辆上的第一组硬件设备有关的模块输出元素的第一子集和与设置在第二车辆上的第二组硬件设备有关的模块输出元素的第二子集;b)车辆功能输出表,所述车辆功能输出表包括与在第一车辆和第二车辆上使用的车辆功能输出有关的一组车辆功能输出元素;以及c)模块输出配置表,所述模块输出配置表包括与所述模块输出元素的第一超集中的一些对应的相应模块输出配置元素,其中,每个相应模块输出配置元素包括与同所述模块输出表中的对应的模块输出元素相关联的变换后的值有关的数据。该模块还可以包括:路由表,所述路由表包括与以下各项有关的条目:a)相关联的车辆功能输出元素,以及b)对应于所述车辆控制模块在其上运行的第一车辆和第二车辆之一的模块输出元素的第一子集和第二子集之一中的相关联的模块输出元素。还可以包括路由引擎,当所述路由引擎在第一车辆和第二车辆之一上执行时,针对所述路由表中的每个条目,所述路由引擎被配置为:a)确定与同所述条目相关联的所述车辆功能输出元素相关联的所述模块输出元素,b)确定与相关联的模块输出元素对应的所述模块输出配置表中的所述模块输出配置元素,c)确定与所述车辆功能输出表中的相关的车辆功能输出元素相关联的第一值,d)基于对应的模块输出配置元素,将所述值变换为变换后的值,以及e)将变换后的值与相关联的模块输出元素链接。
本发明还涵盖包括本文中定义的车辆控制模块的车辆和适于执行本文中定义的本发明的方法的车辆。本发明的车辆可以是物料搬运车辆。
应当认识到,除非另有说明,本文中定义的本发明的各个方面和实施例的特征可以以任何适合的组合方式进行组合,并且在本文中设想所有这样的组合。
附图说明
图1是根据本发明的一个方面的物料搬运车辆的透视图。
图2A描绘了用于提供图1的车辆的车辆控制模块(VCM)中的控制逻辑的计算环境。
图2B示意性地示出了根据本发明的原理的VCM的软件体系架构的概念视图。
图3A示出了根据本发明的原理的用来将VCM输入路由到车辆功能输入的交换机板表的块级视图。
图3B示出了根据本发明的原理的用来将车辆功能输出路由到VCM输出的交换机板表的块级视图。
图4是根据本发明的原理的用于将VCM输入路由到车辆功能输入的示例方法的流程图。
图5是根据本发明的原理的用于将车辆功能输出路由到VCM输出的示例方法的流程图。
图6描绘了根据本发明的原理的存储在存储器中的数据结构的概念视图。
图7A示出了根据本发明的原理的用来将VCM输入路由到车辆功能输入的其他交换机板表的块级视图。
图7B示出了根据本发明的原理的用来将车辆功能输出路由到VCM输出的其他交换机板表的块级视图。
图8是根据本发明的原理的用于将VCM输入/输出链接到车辆功能输入/输出的示例方法的流程图。
具体实施方式
在以下对优选方面和实施例的详细描述中,参考构成本文的一部分的附图,并且其中通过说明而不是限制的方式示出了其中可以实施本发明的具体的优选实施例。应该理解,可以使用其他实施例,并且可以在不脱离本发明的精神和范围的情况下进行改变。
现在参考图1,示出了物料搬运车辆10(下称“车辆”)。虽然本发明参考包括叉车的图示的车辆10进行描述,但是本领域技术人员显然知道,本发明可在各种其他类型的物料搬运车辆中使用。
车辆10包括主体或动力单元12,主体或动力单元12包括限定车辆10的主要结构组件的框架14,并且容纳电池15。车辆10还包括耦合到第一外伸支架和第二外伸支架18的一对叉侧支撑轮16、安装在动力单元12的后部12A的第一拐角附近的从动与转向轮20以及安装到动力单元12的后部12A的第二拐角的脚轮(未示出)。车轮16、20允许车辆10在地面上移动。
驾驶室22位于动力单元12内,用于容纳驾驶车辆10的驾驶员。在驾驶室22内设置有舵柄旋钮24,用于控制车辆10的转向。车辆10的运动(向前或向后)的速度和方向由操作员经由设置在操作员座椅28附近的多功能控制手柄26来控制,该控制手柄26可以控制如本领域普通技术人员可以理解的一个或多个其他车辆功能。车辆10还包括高架防护装置30,高架防护装置30包括固定到车辆框架14的垂直支撑结构32。
车辆10的负载搬运组件40通常包括桅杆组件42和可沿桅杆组件42竖直移动的滑架组件44。桅杆组件42定位在外伸支架18之间,并且包括固定到框架14的固定桅杆构件46以及嵌套的第一可移动桅杆构件48和第二可移动桅杆构件50。应注意的是,桅杆组件42可以包括比图1中所示的两个(即第一可移动桅杆构件48和第二可移动桅杆构件50)更多或更少的可移动桅杆构件。托架组件44包括传统结构,该传统结构包括到达组件52、叉架54和包括一对叉56A、56B的叉结构。如本文中所定义的可移动组件47包括下部和上部可移动桅杆构件48、50和滑架组件44。桅杆组件42可以被配置为如在于2014年5月6日授予给StevenC.Billger等人并转让给申请人Crown Equipment Corporation的美国专利第8714311号中所述的单体桅杆,其全部公开内容通过引用合并于此。
图1的车辆10是作为示例提供的,并且在本发明的范围内设想了许多不同类型的物料搬运车辆。如下文详细描述的那样,提供了车辆控制模块的各个方面,即使车辆可能是不同类型的,也允许在各种车辆上使用许多相同的组件。
图2A描绘了根据本文中示出和描述的一个或多个实施例的用于提供车辆控制模块(VCM)200中的控制逻辑和软件应用的计算环境的块级视图。
在所示的实施例中,VCM 200包括一个或多个处理器或微控制器216、输入/输出硬件218、网络接口硬件220、数据存储组件222和存储器组件202。数据存储组件222和存储器组件202可以各自被配置为易失性和/或非易失性存储器,因此可以包括随机存取存储器(包括SRAM、DRAM和/或其他类型的RAM)、闪存、安全数字(SD)存储器、寄存器、紧凑盘(CD)、数字多功能盘(DVD)和/或其他类型的非暂时性计算机可读介质。旨在车辆10关闭并重新启动之后可用的任何存储的信息可有利地存储在非易失性存储器中。此外,取决于特定实施例,上述非暂时性计算机可读介质可以驻留在VCM 200内和/或VCM 200外部。
另外,存储器组件202可以存储可由一个或多个处理器或微控制器216执行的软件或应用。因此,存储器组件202可以存储操作应用或逻辑204、牵引应用208、转向应用206、提升应用210和配件应用212。操作逻辑204可以包括操作系统和其他软件,例如用于管理VCM200的组件的与诊断有关的应用。牵引应用208可以配置有用于促进对车辆10的最佳牵引力控制的一个或多个算法和参数。转向应用206可以配置有用于促进对车辆10的最佳转向控制的一个或多个算法和参数。提升应用210可以包括用于促进对车辆10的最佳提升控制的一个或多个算法和参数,该提升应用210用作用来提升和降低车辆10的可移动组件47的主要负载搬运组件系统。另外,配件应用212可以包括用于提供对车辆10的配件(诸如辅助负载搬运组件系统,其执行诸如滑架组件44的倾斜和侧移之类的附加任务)的控制的一个或多个算法和参数。在图2中还包括了本地通信接口214,本地通信接口214可以被实现为总线或其他通信接口,例如串行外围接口(SPI)或串行命令接口(SCI),以促进VCM 200的组件之间的通信。
一个或多个处理器或微控制器204可以包括可操作以接收并执行(诸如来自数据存储组件222和/或存储器组件202)的指令的任何处理组件。输入/输出硬件218可以包括监视器、定位系统、键盘、触摸屏、鼠标、打印机、图像捕捉设备、麦克风、扬声器、陀螺仪、指南针和/或用于接收、发送和/或呈现数据的其他设备,和/或被配置为与前述各项进行接口连接。网络接口硬件220可以包括任何有线或无线联网硬件,包括天线、调制解调器、LAN端口、无线保真(Wi-Fi)卡、WiMax卡、移动通信硬件和/或用于与其他网络和/或设备进行通信的其他硬件,和/或被配置为用于与前述各项进行通信。通过这种连接,可以促进VCM 200与其他计算设备之间的通信,其他计算设备包括与车辆10上的CAN总线或类似网络耦合的其他组件。
应该理解的是,图2A中所示的组件仅仅是示例性的,而不是旨在限制本公开的范围。尽管图2A中的组件被示为驻留在VCM 200内,但这仅仅是一个示例。在一些实施例中,这些组件中的一个或多个可驻留在VCM 200外部。还应该理解,虽然图2A中的VCM 200被示为单个设备,但这也仅仅是一个示例。在一些实施例中,牵引应用208、转向应用206、提升应用210、和/或配件应用212可驻留在不同的设备上。此外,虽然VCM 200被示为将牵引应用208、转向应用206、提升应用210和配件应用212作为单独的逻辑组件,但这也只是一个示例。在一些实施例中,单个、复合软件应用可以使VCM 200提供所描述的功能。
还应该理解,VCM 200可以与车辆10的各种传感器和其他控制电路进行通信,以协调对车辆10的手动操作和自动操作的各种条件。
参考图2B,VCM 200的软件体系架构的概念视图包括顶部应用层230,该顶部应用层230通常包括基础设施框232、叉积模型和/或卡车功能框234以及位于基础设施框232和叉积模型框234之间的模型接口框236。应用层230还可以包括许多通信相关的应用240,其允许其他应用通过车辆10上实现的各种总线和网络进行通信。还提供了接口层242、驱动器层244和硬件层246。
图2A是VCM 200的一个或多个功能组件的块级图,而图2B描绘了VCM 200的软件被分离到它们的不同抽象层。虽然图2A和图2B的元素之间没有一一对应的关系,但也存在一些相似之处和不同之处。例如,由于图2B主要关注于软件,因此不存在与图2A的存储器组件202和处理器216类似的元素。然而,图2A的I/O硬件218、网络接口硬件220和数据存储器组件222类似于图2B的硬件层246中的与VCM 200的处理器216外部的设备和组件进行接口连接的那些部分。图2A的本地通信接口214包括类似于驱动器层244的功能的基于硬件的互连件(例如,信号引脚、电路板迹线、驱动器芯片等),诸如图2B的串行外围接口(SPI)、串行命令接口(SCI)和其他串行通信信道。至于图2A的应用204、206、208、210、212,它们对应于图2B的应用层230,更具体地,对应于模型和卡车功能234。
接口层242包括用于驱动器层244的具体设备驱动器的许多接口250,其一起为应用层230的各种应用提供统一的应用程序接口(API)248。驱动器层244提供具体的驱动器软件以与输入硬件设备进行接口连接,驱动输出设备,通过CAN网络或其他网络进行通信,并且实现诸如串行外围接口(SPI)和串行命令接口(SCI)之类的串行协议。顶部应用层230、接口层242和驱动器层244包括与VCM 200一起提供给多种类型的不同车辆的通用软件。然而,硬件层246的输入/输出硬件结构,例如,与车辆上的输入/输出硬件连接的连接器,可能因车辆而异。
模型框234表示使用各种模型、应用逻辑、由各种软件实现的功能以及在VCM环境内执行的过程而生成的控制软件。由模型框234包含的这些软件组件接收与一个或多个车辆功能有关的输入,以便生成与控制或影响车辆10的操作有关的命令、控制指令或输出,所述与控制或影响车辆的操作有关的命令、控制指令或其他输出被应用层230中的路由引擎238接收。控制软件提供对各种卡车系统的控制,例如液压、诊断、油门控制、校准、互锁、牵引、制动、转向、电池放电指示器、以及通常被称为“静态返回到关闭”(SRO)的禁用功能。
VCM 200被设计为用于各种车辆模型配置,并且定义各种卡车系统的控制的控制软件或模型234将是通用的,即相同的,可用于任何车辆。这是有利的,因为只需要设计一个VCM 200,其可用于一部分车辆或整个车队或车辆生产线,即由给定车辆制造商制造的一个以上的车辆模型配置。从与不同组件功能相关联的硬件层246的输入/输出硬件结构接收到的输入/输出的特征可以在车辆模型与车辆模型之间不同,并且有益的是,提供来往于控制软件234的标准化的输入/输出,而不管与每个特定车辆(即,车辆模型)相关联的组件输入/输出特征中的车辆与车辆间的变化。
应用层230还包括交换机板,所述交换板包含图3A和图3B的交换机板表和路由引擎238,其操作以将来自硬件层246的输入/输出硬件结构的输入路由到控制软件234的正确车辆功能输入。此外,在相反的方向上,路由引擎238和交换机板表还将来自控制软件234的控制信号提供给硬件层246的适当的输入/输出硬件结构。VCM 200可以利用在组装车辆时装载到VCM 200中的车辆专用配置参数文件来操作。例如,可以将参数文件或参数数据加载到存储器组件202的某一区域中,使得参数文件可以被构成应用层230的一个或多个软件组件(例如232、236、234、238)访问。例如,可以有四个主要类别的参数,包括:1)通用、2)模块、3)模型和4)卡车。类别1)中的参数可以对所有车辆类型都是通用的。类别2)中的参数可以对于安装了相同VCM 200的所有车辆是通用的,但是对于不同类型的VCM(未示出),参数将不同。类别3)和4)中的参数对于具体卡车模型是唯一的。类别3)中的参数与模型有关,并且例如,可以与MATLAB或SIMULINK代码一起使用,而类别4)中的参数则可以被例如其他C代码或应用层230的软件使用。来自卡车类别(即,类别4)的参数的子集可以被配置用于设置包括路由引擎238和交换机板表的交换机板的配置,该配置特定于VCM 200正在其上运行的车辆的车辆硬件。
无论安装和运行VCM 200的物料搬运车辆的具体类型/型号如何,对于不同类型的车辆而言,VCM 200都有许多共同的功能方面。例如,许多不同类型的车辆具有转向轮和牵引轮。另外,许多车辆可能具有某种类型的提升机构,即使每个不同提升机构的具体属性可能不同。因此,在将四个不同类别的参数下载并存储在VCM 200上之后,可能在许多不同类型或型号的车辆上安装并运行通用VCM 200。在下文所描述的示例中,对VCM 200的讨论表明VCM 200可以安装在两种不同类型的车辆上。本领域普通技术人员将认识到,在不脱离本发明的范围的情况下,VCM 200可以安装在多于两种不同类型或型号的车辆上。
在其上运行VCM 200的第一车辆可具有第一组硬件设备,第一组硬件设备连接定义VCM 200的硬件层的硬件结构或以其他方式与定义VCM 200的硬件层的硬件结构相关联。在其上可以运行相似或相同的VCM 200的第二车辆可以具有第二组硬件设备,第二组硬件设备中的一个或多个硬件设备不同于第一组中的硬件设备,第二组硬件设备连接定义VCM200的硬件层的硬件结构或以其他方式与定义VCM 200的硬件层的硬件结构相关联。VCM200上可能存在硬件结构(例如连接器)的超集,硬件结构的超集中的两个或更多个定义与第一车辆的硬件设备连接的第一集合,并且硬件结构的超集中的两个或更多个定义与第二车辆的硬件设备连接的第二集合。第一组硬件结构中的一个或多个元素(例如,连接器)可以与第二组硬件结构中的一个或多个元素相同。第一组硬件结构中的一个或多个元素(例如,连接器)可以不是第二组硬件结构的成员,反之亦然。在每种情况下,车辆硬件设备生成由定义VCM 200的硬件层的硬件结构接收的输入。
参考图2B,每个车辆的接口层242、驱动器层244和硬件层246进行操作以获取输入信号、对输入信号进行过滤并将输入信号提供给VCM 200的应用层230。第一车辆的第一组中的一些硬件设备也可以处于第二车辆的第二组中。然而,也可以有第一组和第二组中的一组或两组所特有的硬件设备。因此,通过将第一组硬件设备和第二组硬件设备组合在一起,可以定义硬件设备的超集,所述硬件设备的超集包括来自第一组和第二组的每个不同硬件设备。由于每个硬件设备也被认为对应于VCM 200的应用层230的输入,所以还定义了VCM应用层输入的超集,VCM应用层输入的超集包括VCM 200的应用层230可以从第一组车辆硬件设备和第二组车辆硬件设备两者接收的所有可能的输入。这些输入可以包括,例如,数字输入值、模拟输入值、网络消息和数据包(例如,CAN消息、IP数据包等)、编码器输入以及其他输入(例如,4-20mA环路)。
作为VCM 200的正常操作的一部分,可以轮询或采样各种硬件设备和传感器,并且例如可以监控网络总线,使得可以对所接收的消息进行排队以便可以提取数据。来自硬件设备的值在定义VCM 200的硬件层的硬件结构处被接收为相应的输入,并且存储在由VCM200的应用层230的各种过程限定的预定变量中。
与由VCM 200从车辆硬件设备接收到的输入不同,第一车辆VCM上的控制软件234可以接收输入和默认值,该输入和默认值可以不同于由第二车辆VCM的控制软件234接收到的输入和默认值。例如,第一车辆可能具有在牵引电机通电之前需要操作员坐在座位上的特征。第二车辆也可能要求操作员坐在座位上,但还可能要求在牵引电机通电之前关闭电池箱门。在两个示例中,在所示的实施例中,控制软件234控制牵引电机的操作,但是在第一示例中,仅利用来自车辆硬件设备的一个实际输入值和一个默认值(不来自车辆硬件设备),而在第二示例中,利用了来自车辆硬件设备的两个实际输入值。由控制软件234接收到的这些实际的和默认的“输入”或输入值可以被称为“车辆功能输入”,并且包含控制软件可以接收并随后用于执行其功能的各种各样的输入值。由于VCM 200的控制软件234对于第一车辆和第二车辆两者都是基本相同的,所以在所示的实施例中的VCM 200内,存在适用于第一车辆和第二车辆两者的那些车辆功能输入的组合,即使第一车辆和第二车辆的两个VCM接收到的一个或多个输入可能不同。相应车辆功能输入的值被存储在由VCM 200的应用层230的各种过程定义的预定变量中。
由于VCM 200可以在第一车辆或第二车辆上安装并运行,所以可能存在对应于实际上并未包括在VCM在其上运行的车辆上的一个或多个硬件设备的一个或多个VCM输入变量。类似地,也可能存在对应于不是由车辆硬件设备提供的或由VCM在其上运行的车辆使用的实际输入值的一个或多个车辆功能输入变量。因此,本发明的实施例提供了确定如何将由特定车辆的一个或多个硬件设备提供的、由硬件层246的硬件结构接收到的VCM输入或VCM输入值路由到也被控制软件234使用的特定车辆功能输入的方式。
图3A示出根据本发明的原理的路由引擎238所使用的交换机板表的块级视图,路由引擎238将VCM输入路由到对应于车辆功能输入元素的存储器位置。“源表”302由VCM 200构建或提供,其包括对于可以由第一车辆和第二车辆提供的VCM应用层输入或输入值的超集中的每一个的元素。如下所述,源表302中的每个元素可以是存储器地址,因此源表302(在本文中也被称为模块输入表)包括模块输入或输入元素的超集。所示示例中的源表302在为第一车辆和第二车辆提供的VCM中相同或基本相同。如上所述,作为VCM 200的正常操作的一部分,每个VCM输入或VCM输入值存储在存储器组件202或数据存储组件222中的存储器位置或预定变量中(参见图2A)。因此,源表302中的每个元素对应于那些变量或存储器位置中的相应的一个,并且该元素可以是该对应变量或存储器位置在存储器中的地址。
在图3A中示出车辆功能输入表310,并且车辆功能输入表310具有对于可能潜在地被VCM 200的控制软件234利用的每个车辆功能输入的元素。如上所述,车辆功能输入中的每个可以与预定的控制软件变量或存储器位置相关联,并被存储在该预定变量中。因此,车辆功能输入表310中的每个元素对应于那些控制软件变量或存储器位置中的相应的一个,并且该元素的值可以是该对应变量在存储器中的地址。
源表302和车辆功能输入表310可以在第一车辆和第二车辆两者上相同,并且优选地相同。但是,存在这样的路由表306,该路由表306对于第一车辆和第二车辆中的每个可以不同,并且定义应用层230的基础设施框232与控制软件234之间的接口236(参见图2B)。路由表306定义了路由,以允许路由引擎238路由每个所利用的车辆功能输入,或类似于交换机板,将每个所利用的车辆功能输入与适合于VCM 200正在其上运行的车辆的VCM输入连接。
VCM 200还可以设置模块输入配置表304,模块输入配置表304具有与源表302中的每个元素对应的元素。来自模块输入配置表304的元素包括与如何将与对应的源表元素相关联的VCM输入值变换成控制软件可以利用的值有关的数据。如下面进一步描述的,例如,VCM输入值可以被缩放、比特移位、比特掩码、偏移或重组为控制软件234被设计来利用的不同数据类型。
还可以包括单独的功能输入配置表308,其允许在将值存储在车辆功能输入变量中之前对值进行进一步变换,以便被控制软件234使用。功能输入配置表308可以包括与车辆功能输入表310中的每个元素对应的相应元素。
下面提供了示例源表302作为表1:
在本示例中,存在与在定义VCM 200的硬件层的硬件结构处接收到的37个不同VCM输入或VCM输入值对应的元素。元素#0是指定义通用低值信号(例如,“0”)的变量“ulAG_Low”,而元素#1是指定义通用高值信号(例如“1”)的变量“ulAG_High”。接下来的几个元素是指存储可以在VCM 200正在其上运行的车辆上设置的各种开关的值的变量。这些元素还可以指没有在VCM 200正在其上运行的车辆上设置的各种开关。元素#35是指与编码器“counts(计数)”输入对应的变量,而元素#10和#11是指存储通过CAN总线传输的值的变量。元素#16-#23可以是指相同的变量,并且接着可以如下所述地对它们进行进一步的操纵。因此,来自表1的元素可以对应于存储车辆硬件设备数字输入、车辆硬件设备模拟输入、车辆硬件设备编码器输入、网络消息以及其他类型的输入的变量或存储器位置。从表1的内容可以看出,每个元素前面都有“&”符号,其表示该元素对应于跟随在“&”符号之后的变量名的地址。
因此,诸如路由引擎238之类的软件过程可以从表1读取元素的值(即地址),然后将其用作检索该地址处的变量或存储器位置的实际值或所存储的输入(即,该值可能源自于车辆硬件设备)的指针。
下面提供了示例车辆功能输入表310作为表2:
在本示例中,存在与VCM的控制软件234可以使用的25个不同车辆功能输入对应的25个元素。例如,元素#0-#2是指存储与3个不同制动器开关有关的值的变量。例如,元素#10和#11是指存储表示从操作员接收到的转向命令的值的变量,而元素#12-#15是指存储与从操作员接收到的牵引命令有关的值的变量。一般而言,表2中的元素是指存储VCM 200正在其上运行的车辆的控制软件234可使用的值的变量或存储器位置。
以下提供了用于第一车辆或第二车辆的配置表304的示例作为表3:
在本示例中,存在37个元素,每个元素对应于源表302中的相应元素。如上所述,由源表302中的元素的地址指向的变量或存储器位置的所存储的输入值可以被变换,使得其具有控制软件234所期望的属性。因此,源表302中的元素#17保存变量或存储器位置“USR_s_OV.ubX10DigIn1”的地址,并且可以利用来自表3的对应元素(即,#17){AG_UINT8,AG_RIGHT,0x02u,1u,AG_SF_ARRAY_00}来变换该地址位置处存储的值。
上述变换数据仅作为示例提供,并且本领域普通技术人员将认识到,在不脱离本发明的范围的情况下,可以实现许多不同的或附加的数据变换。可以执行不同数量的比特移位,并可以应用各种比特掩码。考虑到不同类型车辆上的不同硬件配置,预期有不同的缩放因子,而变量的数据类型可以包括无符号、有符号、长、浮点、布尔、整数等。
在上面的示例中,元素#17“AG_UINT8”表示USR_s_OV.ubX10DigIn1的值是无符号类型的8比特整数,如下面解释的,可使用来自单独的功能输入配置表的元素来重组该变量类型。“0x02u”部分指示应当应用“0000 0010”的比特掩码,并且“AGRIGHT”和“lu”部分分别表示该值将被向右比特移位并且被移位“1”比特。最后一部分“AG_SF_ARRAY_00”可以是存储不同缩放因子的数组中的索引。例如,可以存在4个通常使用的不同缩放因子,这些缩放因子被存储在可以通过AG_SF_ARRAY_00-AG_SF_ARRAY_03进行索引的数组中。配置表元素标识要使用哪个索引从该数组中读取适当的缩放因子。例如,每个缩放因子可以包括与变量的值相加的偏移量和与变量的值相乘的增益量。偏移量0.0和增益1.0将使变量的值保持不变。
以下提供了用于第一车辆类型的一个示例路由表306作为表4A:
以下提供了用于第二车辆的另一个示例路由表306作为表4B:
每个路由表具有25个条目,每个条目对应于车辆功能输入表310中的相应元素。路由引擎238可以被在VCM 200上执行的不同过程使用,因此上面的示例中的每个路由表条目包括两个部分。第一部分“process_sys_model”仅仅作为示例提供,并且在不偏离本发明的范围的情况下可以省略。该第一部分标识了路由表的该特定条目与其一起使用的过程的名称。作为示例,不同的过程(例如,“PROCESS_ANALOG”)可以具有路由表的自己的部分或条目以供路由引擎238使用,以便遍历所有可用的模拟输入,并从那些输入获取当前值。
表4B中的条目(例如,条目#14)的第二部分“AG_IN_X10_ANALOG3”标识由硬件层246的硬件结构接收到的VCM输入中的一个,以路由到与车辆功能输入表310中的条目#14对应的存储器位置。如下面将描述的,关于图4,表3、表4A、表4B和表5中的条目之间的差异允许用于对VCM 200在其上运行的不同类型的车辆的接口236的定制。这些路由和配置表允许相同的VCM输入表302和相同的车辆功能输入表310在具有不同硬件设备的不同类型的车辆上使用。图4是根据本发明的原理的用于将VCM输入路由到车辆功能输入的示例方法的流程图。在本文所描述的示例实施例中,示例模块输入配置表304和示例功能输入配置表308被用于第一车辆和第二车辆。然而,在其他实施例中,可以针对不同的车辆来定制表304和308中的任一个表或两个表。
路由表306、功能输入配置表308以及车辆功能输入表310有相同数量的条目,并且路由表306中的条目#x对应于功能输入配置表308中的元素#x和车辆功能输入表310中的元素#x,或者与功能输入配置表308中的元素#x和车辆功能输入表310中的元素#x相关联。源表302和模块输入配置表304具有相同数量的元素,该数量与路由表306中的条目的数量不同。源表302中的元素#y对应于配置表304中的元素#y,或与配置表304中的元素#y相关联。
可使用来自路由表306的条目将VCM输入值路由到与车辆功能输入元素对应的存储器位置的一个示例方式是在源表302和模块输入配置表304中创建枚举的索引。例如,如果VCM输入表(即,源表302)被视为数组“Module_Input[]”,则可以通过“Module_Input[i]”来引用特定元素。如果索引“i”是由下列列表定义的枚举类型:
那么通过将“i”分配给枚举值中相等的一个(例如,AG_IN_SCM_MOTOR_CURRENT或AG_IN_BATT_AMP_HOURS等等)来生成指向37个可能的VCM输入中的一个的索引值。例如,如果作为枚举值提供AG_IN_SCM_MOTOR_CURRENT,那么被生成来用于引用源表302中的元素的索引值或编号将是#27。又例如,如果作为枚举值提供AG_IN_BATT_AMP_HOURS,那么被生成来用于引用源表302中的元素的索引值或编号将是#36。路由表“表4A”或“表4B”中的每个条目引用上表中的37个枚举值中的一个。
如所述的,图4是根据本发明原理的用于将VCM输入路由到与车辆功能输入元素对应的存储器位置的示例方法的流程图。本领域普通技术人员将认识到,图4的流程图的步骤不必按照下面描述的特定顺序来执行。有些步骤可以彼此并行地进行,从而可以以各种不同的方式提供路由功能。路由引擎238被周期性地执行,使得它可以遍历整个路由表306,然后等待直至它被再次调用以执行。在遍历整个路由表306时,路由引擎将执行利用过程(例如,“PROCESS_SYS_MODEL”或“PROCESS_ANALOG”)标记的那些条目的路由,并跳过具有不同标记的那些条目。路由引擎在步骤402中通过读取路由表306中的第一条目而开始,并基于该条目在步骤404中确定源表302中的对应元素。
如果使用第一车辆路由表“表4A”,那么路由引擎238确定路由表条目#0标识“AG_IN_SWITCH4”,并且基于枚举的索引(即,模块输入的索引),这对应于“模块输入的索引”列表中的索引值#5和源表302中的元素#5,源表302中的元素#5对应于变量“&gSwitch[SDI_SW_DRV4].Control.rSwitchDriverOutput”。在步骤406中,基于路由表条目,路由引擎可以确定模块输入配置表304中的对应的元素,在这种情况下,该元素是元素#5:{AG_FLOAT32,AG_NO_BIT_MAN,0u,0u,AG_SF_ARRAY_00}。在步骤408中,路由引擎根据车辆功能输入表310确定对应的元素。路由表306与车辆功能输入表310之间存在一一对应关系。因此,路由表中的条目#0对应于车辆功能输入表310中的元素#0,其被标识为:&gOp_int_inputs.ulBrs1。路由表中的条目#1对应于车辆功能输入表310中的元素#1,并且该一一对应关系对于路由表和车辆功能输入表310中的其余的所有条目和元素一直持续。在步骤410中,路由引擎检索由来自对应的源表元素(在本示例中,源表元素#5)的地址指向的变量的VCM值(即,该值可能源自于车辆硬件设备),并在步骤412中,根据对应的模块输入配置表元素(在本示例中,模块输入配置表元素#5),对其进行变换。
如下面参考示例表5所描述的,功能输入配置表308可以被用来进一步细化由于应用模块输入配置表元素而产生的变换后的值。路由表中的条目#0对应于功能输入配置表308中的元素#0,并且该一一对应关系对于路由表和功能输入配置表308中的其余的所有条目和元素一直持续。因此,在步骤412中,通过应用来自功能输入配置表308的元素#0,进一步变换由于应用模块输入配置表304中的元素#5而产生的变换后的值。使用下面的表5的示例,元素#0是:{AG_UINT32,AG_NO_BIT_MAN,0u,0u,AG_SF_ARRAY_00},其中,第一部分“AG_UINT32”表示变量gOp_int_inputs.ulBrs1(其地址是车辆功能输入表“表2”中的元素#0)的变量类型。
结果是初始变换后的值被进一步变换,即,从其原来的变量类型“32比特浮点”重组为“32比特无符号整数”类型的变量。然后,在步骤414中,可以将变换后的值与来自车辆功能输入表的对应元素链接。具体地,可以将变换后的值存储在由来自车辆功能输入表的元素#0的地址指向的存储器位置。
如果VCM 200在第二车辆上运行,那么将使用路由表“表4B”。在这种情况下,路由表中的条目#0标识对应于“模块输入的索引”列表中的枚举索引值#16的“AG_IN_X10_DIGIN1”。因此,在本示例中,将使用来自模块输入配置表304的元素#16{AG_UINT8,AG_RIGHT,0x01u,0u,AG_SF_ARRAY_00},检索并变换存储在源表中的元素#16“&USR_s_OV.ubX10DigIn1”处的值。还根据车辆功能配置表(例如,参见下面的表5)中的元素#0,进一步变换该初始变换后的值,以便通过将值从变量类型“8比特无符号整数”重组为“32比特无符号整数”类型的变量来进一步变换初始变换后的值。然后,可以由路由引擎将该变换后的值存储在由来自车辆功能输入表的元素#0的地址指向的存储器位置。因此,根据VCM 200正在其上运行的车辆,相同的车辆功能输入(例如,gOp_int_inputs.ulBrs1)将被路由到不同的VCM输入并被从不同的VCM输入接收。换句话说,与路由表条目相关联的一些VCM输入对于第一车辆或第二车辆而言可以是唯一的。
在步骤416中,路由引擎确定是否有更多匹配调用过程(例如PROCESS_SYS_MODELS)的路由表条目要处理。如果是,则路由引擎对于25个路由表条目中的每个,顺序地重复上述步骤,直到其可以在步骤418处等待。
从表4A和表4B可以看出,对于条目#8、#9和#24(及其他)的路由表条目是相同的。因此,这些条目对应于对于第一车辆和第二车辆两者相同的VCM输入,或换句话说,是对两种类型的车辆共同的VCM输入。
在表4A中,条目#3指的是“AG_IN_NOT_USED_HIGH”。该条目表示在该特定车辆上没有设置产生与对应车辆功能输入“gOp_int_inputs.ulFps1”有关的值的硬件,并且将为车辆功能输入提供“默认”值,以便它具有定义明确的值。路由引擎可以确定(根据枚举索引)“AG_NOT_USED_HIGH”对应于条目#1,因此检索在“&ulAG_High”处存储的值。可以使用来自模块输入配置表304中的元素#1来变换该值,并可以使用功能输入配置表308中的元素#3来进行进一步变换,然后可以将变换后的值存储在由“&gOp_int_inputs.ulFps1”指向的存储器位置。在表4B中,条目#15是类似的条目,并且指的是“AG_NOT_USED_LOW”。该条目导致将变换后的值存储在由“&gThrottleIn.Throttle_input_traction1.ulStart”指向的存储器位置。是“高”值合适还是“低”值合适取决于可以使用该车辆功能输入的过程的逻辑。例如,如果车辆功能输入指的是全部都必须是高值才能使车辆操作的多个开关中的一个,则对于该开关没有来自车辆硬件设备的实际VCM输入的车辆将把车辆功能输入与“AG_NOT_USED_HIGH”相关联。反之,如果逻辑被配置为:如果任何一个开关都是“高”,则车辆将被禁用,那么对于那些开关中的一个没有来自车辆硬件设备的实际VCM输入的车辆将把车辆功能输入与“AG_NOT_USED_LOW”相关联。
下面提供功能输入配置表308的示例作为表5。如上所述,该表的一个使用示例是使用每个元素的最左侧部分,在将值存储在车辆功能输入表310中所指向的地址之前帮助对变量值的数据类型进行造型。相应地,功能输入配置表308与车辆功能输入表310中的元素之间存在一一对应的关系,以及功能输入配置表308中的元素与路由表306中的条目之间也存在一一对应的关系。
如上文所描述的,除了功能输入配置表308中的每个元素的最左侧部分之外的部分(参见紧下面的表5)也可以用于进一步变换初始使用来自模块输入配置表304的对应条目变换的值。例如,两个配置表(即,模块输入配置表“表3”和功能输入配置表“表5”)的元素的结构可以是类似的,使得对初始变换后的值的进一步变换可以包括缩放、添加偏移、应用比特掩码、进行比特移位、或根本不作改变。例如,表5中的元素#22包括“AG_SF_4_20MA_INPUT”部分,其表示应该使用特定的一对偏移和缩放因子来进一步变换对应的初始变换后的值。
在VCM 200上执行的应用或控制软件234不仅利用输入,还产生可以路由到VCM输出存储器位置的输出,该VCM输出值被提供给硬件层246的硬件结构,以控制车辆硬件设备(例如喇叭)或者将设置提供给其他模块(例如车辆的牵引控制模块或转向控制模块)。类似于以上关于路由输入的描述,来自控制软件234的车辆功能输出值可以被路由到对应的VCM输出变量或存储器位置。例如,VCM输出值可以涉及车辆硬件设备数字输出、车辆硬件设备模拟输出、网络格式化消息以及与车辆上的其他模块进行接口连接的输出驱动器。图3B示出了根据本发明的原理的包括路由表324的交换机板表的块级视图,其中路由表324被路由引擎238用来将车辆功能输出从控制软件234路由到VCM输出存储器位置。
下面提供示例车辆功能输出表320作为表6,其包括来自控制软件234的10个不同车辆功能输出变量中的每个的相应元素或地址:
具体地,每个元素将地址存储到变量或存储器位置,该变量或存储器位置存储由控制软件234提供的10个预定输出值中的一个。可能不在第一车辆和第二车辆两者上提供全部10个值。尽管一些输出值可以由两个车辆提供,但是一些输出值可以是第一车辆或第二车辆中的仅一个车辆才有的。
下面提供示例车辆功能输出配置表322作为表7,其包括车辆功能输出表320中的10个不同车辆功能输出变量中的每个的相应元素:
功能输出配置表 元素编号
{AG_UINT32,AG_NO_BIT_MAN,0u,0u,AG_SF_ARRAY_00}, 0
{AG_FLOAT32,AG_NO_BIT_MAN,0u,0u,AG_SF_ARRAY_00}, 1
{AG_FLOAT32,AG_NO_BIT_MAN,0u,0u,AG_SF_ARRAY_00}, 2
{AG_FLOAT32,AG_NO_BIT_MAN,0u,0u,AG_SF_ARRAY_00}, 3
{AG_FLOAT32,AG_NO_BIT_MAN,0u,0u,AG_SF_ARRAY_01}, 4
{AG_UINT32,AG_NO_BIT_MAN,0u,0u,AG_SF_ARRAY_00}, 5
{AG_UINT32,AG_NO_BIT_MAN,0u,0u,AG_SF_ARRAY_00}, 6
{AG_BOOLEAN,AG_NO_BIT_MAN,0u,0u,AG_SF_ARRAY_00}, 7
{AG_INT32,AG_NO_BIT_MAN,0u,0u,AG_SF_ARRAY_00}, 8
{AG_INT32,AG_NO_BIT_MAN,0u,0u,AG_SF_ARRAY_00}, 9
功能输出配置表322具有与车辆功能输出表320相同数量的元素,其中功能输出配置表322中的每个元素与来自车辆功能输出表320的相同编号的元素具有一一对应关系。功能输出配置表322中的每个元素可以包括与对值进行缩放、添加偏移、应用比特掩码、和向左或向右对值进行比特移位(与上文关于功能输入配置表308所描述的技术类似)有关的部分。因此,可以使用来自功能输出配置表322的元素来实现从车辆功能输出表320的对应元素的存储器地址检索到的值的第一变换。另外,来自功能输出配置表322的每个元素的第一部分可以识别与车辆功能输出表320中的对应元素中的地址相关联的变量类型,而元素的其他部分可以指示不对检索到的值进行变换。例如,功能输出配置表322中的元素#2指示变量“gTraction_output.rBrake2Cmd”(其地址存储在车辆功能输出表中的元素#2中)是“AG_FLOAT32”类型的变量,并且该元素的其他部分不改变变量的值。因此,在一些情况下,与对应的车辆功能输出元素相关联的值不一定需要被初始地改变。在这些情况下,即使在功能输出配置表中可能存在对应的元素,该元素也不会以任何方式修改对应的值,因此该值和初始变换后的值实际上相同。
下面提供示例模块输出配置表326作为表8,并且其具有对应于26个不同VCM输出变量或存储器位置中的每个的相应元素。
模块输出配置表中的每个元素对应于下面的表9中的VCM或模块输出或目的地表328上的VCM输出地址元素中的相应一个。模块输出配置表326中的元素提供与如何变换从车辆功能输出表320中的地址所指向的存储器位置检索到的相关联的车辆功能输出值有关的数据,之后该变换后的值被存储在由来自VCM输出表328的对应元素中的地址所指向的存储器位置。如上所述,值的这种变换可以是对所检索到的值进行变换(即,所检索到的值先前未被变换),或者可以是使用功能输出配置表322中的元素首先变换的先前变换后的值。类似于之前描述的输入配置表,变换可以包括改变变量类型、对值进行缩放、添加偏移、应用比特掩码、以及向左或向右对值进行比特移位。
下面提供示例VCM输出表328作为表9:
在上面的示例中,存在26个元素,其中每个元素存储对应于预定变量的地址,例如,该预定变量存储要从VCM 200输出到车辆硬件设备的值。26个元素包括超集,该超集包括对应于第一车辆上设置的VCM输出或输出值的第一组元素和对应于第二车辆上设置的VCM输出或输出值的第二组元素。每辆车辆可用的输出或输出值部分地取决于由该车辆提供的硬件设备。构成超集的两组元素可具有对应于两辆车辆共有的VCM输出值的共同元素以及对应于第一车辆和第二车辆中的一个所特有的VCM输出值的一个或多个元素。VCM输出表328中的每个元素可以是存储器地址,因此VCM输出表328(在本文中也被称为模块输出表)包括模块输出元素的超集。
下面提供了两个不同的示例路由表作为表10A和表10B:
输出路由表(车辆#1) 条目编号
{PROCESS_SYS_MODEL,AG_OUT_GP1_COMMAND}, 0
{PROCESS_SYS_MODEL,AG_OUT_SUPV_GP9_COMMAND}, 1
{PROCESS_SYS_MODEL,AG_OUT_SUPV_GP10_COMMAND}, 2
{PROCESS_SYS_MODEL,AG_OUT_SUPV_GP11_COMMAND}, 3
{PROCESS_SYS_MODEL,AG_OUT_TXN_SPEED_SETPOINT}, 4
{PROCESS_SYS_MODEL,AG_OUT_TCM_GP3_COMMAND}, 5
{PROCESS_SYS_MODEL,AG_OUT_TCM_GP5_COMMAND}, 6
{PROCESS_SYS_MODEL,AG_OUT_SUPV_GP8_COMMAND}, 7
{PROCESS_SYS_MODEL,AG_OUT_SCM_COMMAND_SETPOINT1}, 8
{PROCESS_SYS_MODEL,AG_OUT_SCM_COMMAND_SETPOINT2}, 9
每个路由表具有对应于车辆功能输出表320中的10个车辆功能输出元素和功能输出配置表322中的10个配置元素的10个条目。上面所示的两个示例路由表是针对安装它的特定类型的车辆定制的。配置表322和326也可以针对安装它们的特定车辆类型进行定制。这些路由表和配置表允许相同的VCM输出表328和相同的车辆功能输出表320在具有不同硬件设备的不同类型的车辆上使用。例如,表10A中的条目#1-#3指示:第一车辆包括对应于可以从控制软件234输出的3个不同制动命令的VCM输出,但是来自路由表“表10B”的相同条目指示:制动命令中的两个不对应于第二车辆上实现的VCM输出。相反,条目#7指示两个车辆都具有对应于从控制软件234输出的“喇叭接通(horn on)”命令的VCM输出。
对于路由输出,定义枚举索引,其包括VCM输出表328和模块输出配置表326中的每个元素的值。下面提供了其中包含26个元素的一个示例索引:
如以上关于路由输入所描述的,路由引擎可以使用路由表条目来根据枚举索引确定索引值,并使用该索引值来标识VCM输出表328和模块输出配置表326中的适当元素。
图5是根据本发明的原理的用于将来自控制软件234的车辆功能输出路由到VCM输出存储器位置的示例方法的流程图。路由引擎238路由输出的操作与关于图4的流程图所描述的方法基本类似。在步骤502中,路由引擎238读取输出路由表10A或10B中的一个中的条目。基于该条目,路由引擎在步骤504中可以确定VCM输出表328、模块输出配置表326、功能输出配置表322以及车辆功能输出表320中的对应元素。来自表326和328的对应元素是基于与路由表条目相关联的枚举索引值的,并且表320和322中的对应元素取决于当前正在处理的路由表条目的索引。
例如,如果路由引擎238在第一车辆上运行的VCM 200中并且目前正在处理条目#5,那么路由引擎238还可以从车辆功能输出表320中的元素#5(在本示例中将是“&gHyd_output.ulSVML”)检索地址,并且还从功能输出配置表322检索元素#5(在本示例中将是{AG_UINT32,AG_NO_BIT_MAN,0u,0u,AG_SF_ARRAY_00})。使用来自车辆功能输出表320的这个地址,路由引擎接着可以访问存储在该地址处的实际值。路由引擎238还可以从表10A的条目#5提取“AG_OUT_TCM_GP3_COMMAND”,然后使用该提取的值作为VCM输出表328和输出配置表326的索引。基于上文定义的示例“模块输出的索引”中的枚举索引,“AG_OUT_TCM_GP3_COMMAND”对应于索引#17。因此,路由引擎可以使用索引从模块输出表328检索元素#17(即,地址“&USR_s_OV.uwTcmGPDriverControl”),从模块输出配置表326检索元素#17(即,{AG_UINT16,AG_LEFT_RMW,0x04u,2u,AG_SF_ARRAY_00})。
因此,在步骤506中,路由引擎使用来自车辆功能输出表320的对应元素中的地址(即,“&gHyd_output.ulSVML”)来检索该存储器位置处存储的值,并且在步骤508中,根据a)来自功能输出配置表322的对应元素(即,{AG_UINT32,AG_NO_BIT_MAN,0u,0u,AG_SF_ARRAY_00})以及b)模块输出配置表326中的对应元素(即,{AG_UINT16,AG_LEFT_RMW,0x04u,2u,AG_SF_ARRAY_00}),对其进行变换。因此,在本示例中,来自功能输出配置表322的元素不会导致所检索到的值的初始变换,而来自模块输出配置表326的元素则指示:将所检索到的值从类型为“32比特无符号整数”的变量重组为“16比特无符号整数”,利用”00000100“进行比特掩码,并且向左比特移位”2“比特,以便产生变换后的值。在步骤510中,路由引擎使用来自VCM输出表328的对应元素中的地址(即,地址“&USR_s_OV.uwTcmGPDriverControl”),将变换后的值存储在该存储器位置。在步骤512中,路由引擎确定是否有更多匹配调用过程(例如PROCESS_SYS_MODELS)的路由表条目要处理。如果是,则对于10个路由表条目中的每个,路由引擎顺序地重复上述步骤,直到其可以在步骤514处等待。
当路由输出时,可能不需要两个不同的“未使用”值,因为VCM输出变量“ulAG_Zero”将不被用来从VCM 200产生输出。因此,用于输出的示例枚举索引具有单个元素“AG_OUT_NOT_USED”,其可以被输出路由表引用以用于未被安装有该输出路由表的车辆使用的车辆功能输出值。
上述源表或模块输入表302的一个替代方案涉及使用有目的地为所有VCM应用层输入或输入值构建的数据结构,以便使用预定的变量或存储器位置名称,将那些输入或输入值存储在对应的VCM或模块输入变量或存储器位置中。这些变量名称是由VCM 200的应用层230的各种过程定义的,以存储与VCM 200的应用层230可以从第一组车辆硬件设备和第二组车辆硬件设备二者接收的所有可能输入有关的值。例如,这些输入可以包括数字输入值、模拟输入值、网络消息和数据包(例如,CAN消息、IP数据包等)、编码器输入以及其他输入(例如,4-20mA环路)。
C编程语言(以及许多其他语言)中的“struct(结构)”是一个复杂或复合的数据类型声明,它定义了一种数据结构,该数据结构包含物理分组的变量列表,这些变量将被放置在存储器块中的一个名称下,从而允许经由单个指针(即地址)访问不同的变量。例如,应用于结构(struct)的声明的名称的操作符(即,“&”)的“地址”返回该地址。结构(struct)的成员或成员变量可以是相互关联的许多其他复杂和简单的数据类型。C“结构(struct)”数据类型引用了通常由字长边界分隔的连续的物理存储器块。但是,各种编译器实现可以利用半字或字节的边界,这将允许更密集的封装,并因此使用更少的存储器。因此,结构(struct)的特定成员相对于字边界的对齐是特定于实现的,并且可以包括填充。由于“结构(struct)”数据类型引用了连续存储器块,因此每个内部成员变量与索引零的引用(即,“结构(struct)”的地址或指针)相距固定偏移或偏移量。
以下代码片段为具有与源表302中的37个地址或元素(并且顺序相同)对应的37个成员变量(在本文中也称为“VCM或模块输入变量”)的数据结构(在本文中也称为“模块输入数据结构”)定义数据类型“module_input_struct_t”:
在上面的数据结构定义中,左列提供每个成员变量的相应数据类型的声明,而右列是与预定的VCM或模块输入变量之一对应的成员变量的标签或名称。然后,该typedef可以用来在存储器中创建已定义结构的实例。例如,下面这行代码创建被标记为“sModule_Inputs”的数据结构实例或变量:
static module_input_struct_t sModule_Inputs;
因此,为数据结构的每个成员变量预留了存储器空间。存储器中的该数据结构实例的起始地址由“&sModule_inputs”表示,并且所有成员变量按照它们在结构定义中被列出的顺序依次位于存储器中。
图6示出了处理器216可以寻址的存储器空间的映射的概念图。仅出于示例目的,映射600被认为是8比特宽的,使得沿着映射600左侧的地址引用存储器的连续字节。在示例存储器映射600中,存在程序地址范围610,其存储要由处理器216执行的指令,并且存在数据地址范围616,其存储由执行指令使用或产生的数据。本领域普通技术人员将认识到,可以使用其他地址范围,其允许处理器216读取/写入其他数据,例如与寄存器有关的范围612、与只读存储器(ROM)有关的范围614、和/或与引导区域有关的范围618。
当创建数据结构实例“sModule_Inputs 601”时,它可以例如被存储在从地址4000h开始的存储器中。在存储器映射600中,该地址由部分602表示。连续的存储器块被分配给从地址608A开始的数据结构601。数据结构的第一成员变量606A(成员#0)存储在该起始地址608A处,并且每个随后的成员变量606B、606C、606D存储在存储器中的从起始地址608A偏移的相应地址608B、608C、608D处。在图6的示例中,每个成员变量(例如,606A-606D)具有被分配用于其存储的4个字节,因此地址608B-608D每步增长“4”。然而,如上所述,分配给特定变量类型的字节数量例如可以由编译器确定,并且可以将少于4个字节或多于4个字节分配给特定的成员变量。成员变量606A-606D的“偏移”或“偏移量”是其起始地址与数据结构实例的起始地址(例如,4000h)之间的差。对于具有n个成员的数据结构实例,存在最终成员606n,其被存储在从地址40xxh开始的地址608n处。
“模块输入偏移表”可由VCM 200构建或提供,其包括可以由第一车辆和第二车辆提供的VCM应用层输入或输入值的超集中的每个的元素。所示示例中的模块输入偏移表在为第一车辆和第二车辆提供的VCM中相同或基本相同。
在所示的实施例中使用以下示例代码片段来创建具有与“sModule_Inputs”数据结构601的每个成员变量或模块输入变量对应的元素的模块输入偏移表,并且为每个元素赋值,其中每个元素的值是与其对应的成员变量相关联的偏移量:
例如,当上面的代码片段被编译为给表中的每个元素赋值并且编译器到达下面的部分时(例如,倒数第二行):
offsetof(module_input_struct_t,Quadrature1.slCounts),它评估与数据结构类型定义“module_input_struct_t”内的变量“Quadrature1.slCounts”的偏移对应的数字。在上文的示例实施例中,该成员变量是37个成员变量中的第36个变量(即,成员#35),假设给每个成员变量分配4个字节,那么其偏移是35x4,以十六进制表示为008Ch。因此,它在模块输入偏移表中的值将评估为008Ch。如下文所讨论的,由于为模块输入偏移表指定的数据类型(即,uint16_t),模块输入偏移表中的每个元素被认为是整数,并且可以用来计算地址值。本领域普通技术人员将认识到,模块输入偏移表的上述声明语句可以包括附加参数,例如“const”,如下所示:
static const uint16_t suwAG_ModuleInputOffsetArray[37]=以将模块输入偏移表定位在存储器映射的特定区域中(例如程序地址范围610而不是数据地址范围616)。
基于以上讨论的关于为每个成员变量分配的存储器大小以及存在37个模块输入变量的假设,可以通过编译上述代码片段来构建的示例模块输入偏移表如下面的表11所示:
在图7A中描绘了模块输入偏移表702,并且模块输入偏移表702可以用作图3A中所示的源表302的替代。结果,图4的流程图的基本上所有的步骤也可以用于该第二实施例,但是步骤404被修改。模块输入偏移表702中的每个元素可以是“sModule_Inputs”数据结构601内的对应的成员变量或模块偏移变量的偏移或偏移量,因此,模块输入偏移表702(在本文中也被称为模块输入表)包括模块输入元素的超集,每个模块输入元素都是整数值。模块输入偏移表中的元素编号0-36以相同顺序对应于上面定义“module_input_struct_t”的代码片段中的模块输入变量的名称。
图8是根据本发明的原理的用于将VCM输入/输出链接到车辆功能输入/输出的替代方法的示例部分的流程图。关于将VCM输入与车辆功能输入相链接,在步骤802中,在存储器中创建模块输入数据结构,其包括VCM或模块输入变量或存储器位置的超集,其中,模块输入变量的超集包括与第一车辆上设置的第一组硬件设备有关的模块输入变量的第一子集和与第二车辆上设置的第二组硬件设备有关的模块输入变量的第二子集。具体地,创建的数据结构可以是“结构(struct)”,其每个成员变量对应于模块输入变量之一。接下来,在步骤804中,创建包括一组输入偏移元素的模块输入偏移表,其中,每个输入偏移元素对应于模块输入变量的超集中的一个,并且包括对应的模块输入变量在模块输入数据结构内的偏移量。
如上文参考图4的流程图所描述的,路由引擎在步骤402中通过读取路由表306中的第一条目开始,并基于该条目,在步骤404中确定源表302中的对应元素。取代执行步骤404,图8的算法使用路由表条目作为模块输入偏移表702中的索引,并且在步骤806中确定模块输入偏移表702中的对应元素。
如果使用第一车辆路由表“表4A”,那么路由引擎238确定路由表条目#0标识“AG_IN_SWITCH4”,并基于枚举索引(即,模块输入的索引),这对应于“模块输入的索引”列表中的索引值#5和模块输入偏移表702中的元素#5,模块输入偏移表702中的元素#5对应于偏移量0014h。在步骤808中,可以使用存储器中存储的“sModule_inputs”数据结构来构建地址。具体地,可以构造地址,其将偏移值0014h(即,suwAG_ModuleInputOffsetArray[5])与“sModule_Inputs”数据结构或数据结构变量(例如,04000h)的地址相加以得到示例地址04014h。可由路由引擎(在步骤410中)在该构造的复合地址处,而不是在从源表302检索到的地址处读取值,以确定与模块输入变量Switch[SDI_SW_DRV4].Control.rSwitchDriverOutput相关联的值。
无论使用源表302还是模块输入偏移表702来确定模块输入变量的地址,图4的流程图的步骤406、408、412、414、416和418都相同。
作为车辆功能输入表310(其中,每个车辆功能输入元素是变量的存储器地址或存储器位置,其存储可被控制软件234用于VCM正在其上运行的车辆的值)的一个替代方案,可以使用车辆功能输入表710,其中,每个车辆功能输入元素可以是如表310中的存储器地址或偏移。以类似于如何利用模块输入数据结构的成员变量的相应偏移值构建模块输入偏移表的方式,可以构建车辆功能输入表710,使得每个元素是偏移量。因此,每个车辆功能输入元素将是与数据结构的成员变量相关联的相应偏移量,所述数据结构包括其地址在上面的表2中被引用的25个车辆功能输入变量作为其成员变量。
类似于上文所描述的替代交换机板模块输入偏移表702,如图7B中所示的模块输出偏移表728可以代替图3B的目的地表328,并用于将来自控制软件234的车辆功能输出或输出值链接到车辆模块输出变量或存储器位置。上述目的地或模块输出表328的一个替代方案涉及使用有目的地为所有VCM应用层输出(即模块输出变量)使用预定变量名构建的数据结构。这些变量名称是由VCM 200的应用层230的各种过程定义的那些变量名称,以存储与车辆10的输出设备和硬件有关的值,诸如车辆硬件设备数字输出、车辆硬件设备模拟输出、网络格式化消息以及与车辆上的其他模块进行接口连接的输出驱动器。
下面的代码片段为具有与目的地表328中的26个地址或元素对应的26个成员变量的数据结构,以相同的顺序定义数据类型“module_output_struct_t”:
在上面的数据结构定义中,左列提供每个成员变量的相应数据类型的声明,而右列是与预定的模块输出变量之一对应的成员变量的标签或名称。该typedef可被用来在存储器中创建已定义结构的实例。例如,下面这行代码创建被标记为“sModule_Outputs”的数据结构实例或变量:
static module_output_struct_t sModule_Outputs;
因此,为数据结构的每个成员预留存储器空间。存储器中的该数据结构实例的起始地址由“&sModule_Outputs”表示,并且所有成员按照它们在结构定义中被列出的顺序依次定位在存储器中。
返回到图6的存储器映射600,当创建数据结构实例“sModule_Outputs”时,它例如可被存储在具有地址4D00h的存储器中的地址处开始的存储器中。在存储器映射600中,该地址由部分603表示。与上文所描述的“sModule_Inputs”数据结构(其中,“sModule_Outputs”数据结构的第一成员变量或模块输出变量(成员#0)被存储在该起始地址4D00h处,并且每个随后成员变量或模块输出变量被存储在存储器中从起始地址4D00h偏移的相应地址处)类似,“sModule_Outputs”数据结构存储在存储器中。
可以由VCM 200构建或提供“模块输出偏移表”,该“模块输出偏移表”包括可以为第一车辆和第二车辆提供的VCM应用层输出或输出值的超集中的每个的元素。在所示示例中的模块输出偏移表在为第一车辆和第二车辆提供的VCM中相同或基本相同。
在所示实施例中使用以下示例代码片段来创建模块输出偏移表,该模块输出偏移表具有与“sModule_Outputs”数据结构的每个成员变量或模块输出变量对应的元素,并且为每个元素赋值,其中每个元素的值是与其对应的成员变量或模块输出变量相关联的偏移量:
例如,当上面的代码片段被编译为向表中的每个元素赋值并且编译器到达下面的部分时(例如,倒数第二行):
offsetof(module_output_struct_t,rGP8_Command),它评估与数据结构类型定义“module_output_struct_t”内的变量“rGP8_Command”的偏移对应的数字。在上面的示例实施例中,该成员变量是26个成员变量中的第25个变量(即,成员#24),并且再次假设给每个成员变量分配4个字节,那么其偏移是24x4,以十六进制表示为0060h。因此,其在模块输出偏移表中的值将评估为0060h。如下所述,由于为模块输出偏移表指定的数据类型(即,uint16_t),模块输出偏量表中的每个元素被视为整数,并且可以用来计算地址值。
基于上面关于为每个成员变量分配的存储器大小以及存在26个模块输出变量所讨论的假设,可以通过编译上述代码片段来构建的示例模块输出偏移表如下面的表12所示:
如所述的,图7B中描绘了模块输出偏移表728,并且模块输出偏移表728可以用作图3B中所示的目的地表328的替代。结果,图5的流程图的基本上所有的步骤也可以用于该第二实施例,但是步骤504被修改。模块输出偏移表728中的每个元素可以是“sModule_Outputs”数据结构内的对应成员变量的偏移或偏移量,因此模块输出偏移表728(在此也被称为模块输出表)包括模块输出元素的超集,每个元素都是整数值。模块输出偏移表中的元素编号0-25以相同的顺序对应于上面代码段中定义“module_output_struct_t”的模块输出变量的名称。
图8是根据本发明的原理的用于将VCM输入/输出与车辆功能输入/输出相链接的替代方法的示例部分的流程图。关于将车辆功能输出或输出值与车辆模块输出变量或存储器位置相链接,在步骤802中,在存储器中创建模块输出数据结构,模块输出数据结构包括模块输出变量或存储器位置的超集,其中,模块输出变量的超集包括与第一车辆上设置的第一组硬件设备有关的模块输出变量的第一子集和与第二车辆上设置的第二组硬件设备有关的模块输出变量的第二子集。具体地,创建的数据结构可以是“结构(struct)”,其每个成员变量对应于模块输出变量之一。接下来,在步骤804中,创建包括一组输出偏移元素的模块输出偏移表,其中,每个输出偏移元素对应于模块输出变量的超集中的一个,并且包括对应的模块输出变量在模块输入数据结构内的偏移量。
如上面参考图5的流程图所描述的,路由引擎在步骤502中通过读取路由表324中的第一条目开始,并基于该条目,在步骤504中确定目的地表328中的对应元素。代替以这种方式执行步骤504,图8的算法使用路由表条目作为模块输出偏移表728中的索引,并且在步骤806中确定模块输出偏移表728中的对应元素。
例如,如果路由引擎238位于在第一车辆上运行的VCM 200中并且目前正在处理条目#5,那么路由引擎238可从表10A的条目#5中提取“AG_OUT_TCM_GP3_COMMAND”,然后使用所提取的值作为模块输出偏移表728的索引。基于上文定义的示例“模块输出的索引”中的枚举索引,“AG_OUT_TCM_GP3_COMMAND”对应于索引#17。因此,路由引擎可以使用索引从模块输出偏移表728中检索元素#17,即,偏移值0044h。
在步骤808中,可以使用存储器中存储的“sModule_Outputs”数据结构来构建地址。具体地,可以构建地址,其将偏移值0044h(即,suwAG_ModuleOutputOffsetArray[17])与“sModule_Outputs”数据结构变量(例如04D00h)的地址相加以得到示例地址04D44h。路由引擎(在步骤510)可以将变换后的值链接或存储在该构建的复合地址处,而不是从目的地表328检索到的地址处,以存储与模块输出变量“USR_s_OV.uwTcmGPDriverControl”相关联的值。
无论是使用目的地表328还是模块输出偏移表728来确定模块输出变量的地址,图5的流程图的步骤506、508、512和514都是相同的。
作为车辆功能输出表320(其中每个车辆功能输出元素是来自控制软件234的车辆功能输出变量的存储器地址)的一个替代方案,可以使用车辆功能输出表720,其中每个车辆功能输出元素可以是如表320中的存储器地址或偏移。以类似于如何利用模块输出数据结构的成员变量的相应偏移值来构建模块输出偏移表的方式,可以构建车辆功能输出表720,使得每个元素都是偏移量。因此,每个车辆功能输出元素将是与包括10个其地址在上面的表6中被提及的车辆功能输出变量作为其成员变量的数据结构的成员变量相关联的相应偏移量。
虽然已经说明和描述了本发明的特定实施例,但是对于本领域技术人员而言明显的是,可以在不偏离本发明的精神和范围的情况下做出各种其他改变和修改。因此,旨在于所附权利要求中覆盖在本发明范围内的所有这些改变和修改。

Claims (72)

1.一种基于计算机的车辆控制模块,能够在第一物料搬运车辆和第二物料搬运车辆之一上运行,所述车辆控制模块包括:
包括模块输出元素的超集的模块输出表,
其中,所述模块输出元素的超集包括与设置在第一车辆上的第一组硬件设备有关的模块输出元素的第一子集和与设置在第二车辆上的第二组硬件设备有关的模块输出元素的第二子集;
与在第一车辆和第二车辆上使用的车辆功能输出有关的车辆功能输出元素;
至少一个配置表,所述至少一个配置表包括与所述模块输出元素的超集中的一些对应的相应配置元素,
其中,每个相应配置元素包括与确定同所述模块输出表中的对应的模块输出元素相关联的变换后的值有关的数据;
结构,用于确定与所述模块输出表中的模块输出元素对应的车辆功能输出元素的值,将所述值变换成变换后的值,并基于对应的模块输出元素存储变换后的值。
2.根据权利要求1所述的车辆控制模块,包括:
计算机可访问的存储器,并且所述模块输出表中的每个元素包括所述存储器中存储其相关联的变换后的值的相应地址。
3.根据权利要求1或权利要求2所述的车辆控制模块,包括:
包括模块输出变量的超集的模块输出数据结构,
其中,所述模块输出变量的超集包括与模块输出元素的第一子集有关的模块输出变量的第一子集和与模块输出元素的第二子集有关的模块输出变量的第二子集;以及
其中,每个模块输出元素对应于所述模块输出变量的超集中的一个,并且包括对应的模块输出变量在所述模块输出数据结构内的偏移量。
4.根据权利要求3所述的车辆控制模块,其中,所述模块输出变量的超集中的至少一个模块输出变量是模块输出变量的第一子集和模块输出变量的第二子集两者中的成员。
5.根据权利要求3或权利要求4所述的车辆控制模块,其中,所述模块输出元素的超集中的至少一个模块输出变量是模块输出变量的第一子集或模块输出变量的第二子集中的仅一个子集中的成员。
6.根据权利要求3到5中任一项所述的车辆控制模块,其中,存储变换后的值是基于对应的模块输出元素和所述模块输出数据结构的地址的。
7.根据前述任一权利要求所述的车辆控制模块,其中,所述至少一个配置表包括:
功能输出配置表,所述功能输出配置表包括与所述车辆功能输出元素中的一些对应的相应功能输出配置元素,
其中,每个相应功能输出配置元素包括与实现将同对应的车辆功能输出元素相关联的值变换成初始变换后的值有关的数据。
8.根据权利要求7所述的车辆控制模块,其中,值和初始变换后的值是相同的。
9.根据权利要求7或权利要求8所述的车辆控制模块,其中,所述至少一个配置表包括:
模块输出配置表,所述模块输出配置表包括与所述模块输出元素的超集中的一些对应的相应模块输出配置元素,
其中,每个相应模块输出配置元素包括与实现将同模块输出表中的对应的模块输出元素和对应的车辆功能输出元素相关联的初始变换后的值变换成变换后的值有关的数据。
10.根据权利要求9所述的车辆控制模块,其中,所述模块输出配置表中的每个元素包括与同模块输出表中的对应的模块输出元素相关联的变换后的值的输出数据类型有关的数据。
11.根据权利要求10所述的车辆控制模块,其中,变换初始变换后的值包括将值的第一数据类型改变成输出数据类型。
12.根据前述任一权利要求所述的车辆控制模块,其中,所述结构包括:
路由表,所述路由表包括与以下各项有关的条目:
a)相关联的车辆功能输出元素,以及
b)与所述车辆控制模块在其上运行的第一车辆和第二车辆之一对应的模块输出元素的第一子集和第二子集之一中的相关联的模块输出元素;以及
路由引擎,当所述路由引擎在第一车辆和第二车辆之一上执行时,针对所述路由表中的每个条目,所述路由引擎被配置为:
a)确定与同所述条目相关联的所述车辆功能输出元素相关联的所述模块输出元素,
b)确定与相关联的模块输出元素和车辆功能输出元素对应的第一配置表和第二配置表中的每个中的相应配置元素,
c)确定与相关的车辆功能输出元素相关联的值,以及
d)基于相应配置元素,将所述值变换为变换后的值,变换后的值被基于相关联的模块输出元素而存储。
13.根据前述任一权利要求所述的车辆控制模块,包括计算机可访问的存储器,并且每个车辆功能输出元素包括所述存储器中存储其相关联的值的相应地址。
14.根据前述任一权利要求所述的车辆控制模块,其中,变换所述值包括以下各项中的一个或多个:
使所述值保持不变;
对所述值进行比特掩码;
对所述值进行比特移位;
将预定偏移与所述值相加;以及
将所述值乘以预定增益。
15.根据前述任一权利要求所述的车辆控制模块,其中,在第一车辆和第二车辆之一上实现的硬件设备包括以下各项中的一个或多个:
车辆网络的总线;
输出驱动器;
模拟输出;以及
数字输出。
16.根据前述任一权利要求所述的车辆控制模块,其中,所述模块输出元素的超集中的至少一个模块输出元素是模块输出元素的第一子集和模块输出元素的第二子集两者中的成员。
17.根据权利要求1到15中任一项所述的车辆控制模块,其中,所述模块输出元素的超集中的至少一个模块输出元素是模块输出元素的第一子集或模块输出元素的第二子集中的仅一个子集中的成员。
18.一种能够在第一物料搬运车辆和第二物料搬运车辆之一上运行的车辆控制模块的方法,所述方法包括:
提供包括模块输出元素的超集的模块输出表,
其中,所述模块输出元素的超集包括与设置在第一车辆上的第一组硬件设备有关的模块输出元素的第一子集和与设置在第二车辆上的第二组硬件设备有关的模块输出元素的第二子集;
提供与在第一车辆和第二车辆上使用的车辆功能输出有关的车辆功能输出元素;
提供至少一个配置表,所述至少一个配置表包括与所述模块输出元素的超集中的一些对应的相应配置元素,
其中,每个相应配置元素包括与确定同所述模块输出表中的对应的模块输出元素相关联的变换后的值有关的数据;
确定与所述模块输出表中的模块输出元素对应的车辆功能输出元素的值;
将所述值变换成变换后的值;以及
基于对应的模块输出元素存储变换后的值。
19.根据权利要求18所述的方法,其中,所述模块输出表中的每个元素包括存储器中存储其相关联的变换后的值的相应地址。
20.根据权利要求18或权利要求19所述的方法,包括:
提供包括模块输出变量的超集的模块输出数据结构,
其中,所述模块输出变量的超集包括与模块输出元素的第一子集有关的模块输出变量的第一子集和与模块输出元素的第二子集有关的模块输出变量的第二子集;以及
其中,每个模块输出元素对应于所述模块输出变量的超集中的一个,并且包括对应的模块输出变量在所述模块输出数据结构内的偏移量。
21.根据权利要求20所述的方法,其中,所述模块输出变量的超集中的至少一个模块输出变量是模块输出变量的第一子集和模块输出变量的第二子集两者中的成员。
22.根据权利要求20所述的方法,其中,所述模块输出元素的超集中的至少一个模块输出变量是模块输出变量的第一子集或模块输出变量的第二子集中的仅一个子集中的成员。
23.根据权利要求20到22中任一项所述的方法,其中,存储变换后的值是基于对应的模块输出元素和所述模块输出数据结构的地址的。
24.根据权利要求18到23中任一项所述的方法,其中,所述至少一个配置表包括:
功能输出配置表,所述功能输出配置表包括与所述车辆功能输出元素中的一些对应的相应功能输出配置元素,
其中,每个相应功能输出配置元素包括与实现将同对应的车辆功能输出元素相关联的值变换成初始变换后的值有关的数据。
25.根据权利要求24所述的方法,其中,值和初始变换后的值是相同的。
26.根据权利要求24或权利要求25所述的方法,其中,所述至少一个配置表包括:
模块输出配置表,所述模块输出配置表包括与所述模块输出元素的超集中的一些对应的相应模块输出配置元素,
其中,每个相应模块输出配置元素包括与实现将同模块输出表中的对应的模块输出元素和对应的车辆功能输出元素相关联的初始变换后的值变换成变换后的值有关的数据。
27.根据权利要求26所述的方法,其中,所述模块输出配置表中的每个元素包括与同模块输出表中的对应的模块输出元素相关联的变换后的值的输出数据类型有关的数据。
28.根据权利要求27所述的方法,其中,变换初始变换后的值包括将值的第一数据类型改变成输出数据类型。
29.根据权利要求18到28中任一项所述的方法,包括:
提供路由表,所述路由表包括与以下各项有关的条目:
a)相关联的车辆功能输出元素,以及
b)与所述车辆控制模块在其上运行的第一车辆和第二车辆之一对应的模块输出元素的第一子集和第二子集之一中的相关联的模块输出元素;以及其中:
确定车辆功能输出元素的值包括:
a)确定与同所述条目相关联的所述车辆功能输出元素相关联的所述模块输出元素,以及
b)确定与相关的车辆功能输出元素相关联的值;以及将值变换成变换后的值包括:
a)确定与相关联的模块输出元素和车辆功能输出元素对应的第一配置表和第二配置表中的每个中的相应配置元素,
b)基于相应配置元素,将所述值变换成变换后的值,变换后的值被基于对应的模块输出元素而存储。
30.根据权利要求18到29中任一项所述的方法,其中,每个车辆功能输出元素包括存储器中存储其相关联的值的相应地址。
31.根据权利要求18到30中任一项所述的方法,其中,变换所述值包括以下各项中的一个或多个:
使所述值保持不变;
对所述值进行比特掩码;
对所述值进行比特移位;
将预定偏移与所述值相加;以及
将所述值乘以预定增益。
32.根据权利要求18到31中任一项所述的方法,其中,在第一车辆和第二车辆之一上实现的硬件设备包括以下各项中的一个或多个:
车辆网络的总线;
输出驱动器;
模拟输出;以及
数字输出。
33.根据权利要求18到32中任一项所述的方法,其中,所述模块输出元素的超集中的至少一个元素是模块输出元素的第一子集和模块输出元素的第二子集两者中的成员。
34.根据权利要求18到33中任一项所述的方法,其中,所述模块输出元素的超集中的至少一个元素是模块输出元素的第一子集或模块输出元素的第二子集中的仅一个子集中的成员。
35.一种基于计算机的车辆控制模块,能够在第一物料搬运车辆和第二物料搬运车辆之一上运行,所述车辆控制模块包括:
包括模块输出元素的第一超集的模块输出表,
其中,所述模块输出元素的第一超集包括与设置在第一车辆上的第一组硬件设备有关的模块输出元素的第一子集和与设置在第二车辆上的第二组硬件设备有关的模块输出元素的第二子集;
车辆功能输出表,所述车辆功能输出表包括与在第一车辆和第二车辆上使用的车辆功能输出有关的一组车辆功能输出元素;
至少一个配置表,所述至少一个配置表包括与所述模块输出元素的第一超集中的一些对应的相应配置元素,
其中,每个相应配置元素包括与确定同所述模块输出表中的对应的模块输出元素相关联的变换后的值有关的数据;
结构,用于确定与所述模块输出表中的模块输出元素对应的所述车辆功能输出表中的车辆功能输出元素的值,将所述值变换成变换后的值,并将变换后的值与对应的模块输出元素链接。
36.根据权利要求35所述的车辆控制模块,其中,所述至少一个配置表包括:
功能输出配置表,所述功能输出配置表包括与所述车辆功能输出元素中的一些对应的相应功能输出配置元素,
其中,每个相应功能输出配置元素包括与实现将同所述车辆功能输出表中的对应的车辆功能输出元素相关联的值变换成初始变换后的值有关的数据。
37.根据权利要求36所述的车辆控制模块,其中,值和初始变换后的值是相同的。
38.根据权利要求36或权利要求37所述的车辆控制模块,其中,所述至少一个配置表包括:
模块输出配置表,所述模块输出配置表包括与所述模块输出元素的第一超集中的一些对应的相应模块输出配置元素,
其中,每个相应模块输出配置元素包括与实现将同所述模块输出表中的对应的模块输出元素相关联的初始变换后的值变换成变换后的值有关的数据。
39.根据权利要求38所述的车辆控制模块,其中,所述模块输出配置表中的每个元素包括与同所述模块输出表中的对应元素相关联的变换后的值的输出数据类型有关的数据。
40.根据权利要求39所述的车辆控制模块,其中,变换初始变换后的值包括将所述值的第一数据类型改变为输出数据类型。
41.根据权利要求35到40中任一项所述的车辆控制模块,其中,所述结构包括:
路由表,所述路由表包括与以下各项有关的条目:
a)相关联的车辆功能输出元件,以及
b)对应于所述车辆控制模块在其上运行的第一车辆和第二车辆之一的模块输出元素的第一子集和第二子集之一中的相关联的模块输出元素;以及
路由引擎,当所述路由引擎在第一车辆和第二车辆之一上执行时,针对所述路由表中的每个条目,所述路由引擎被配置为:
a)确定与同所述条目相关联的所述车辆功能输出元素相关联的所述模块输出元素,
b)确定与相关联的模块输出元素和车辆功能输出元素对应的第一配置表和第二配置表中的每个中的相应配置元素,
c)确定与所述车辆功能输出表中的相关的车辆功能输出元素相关联的值,以及
d)基于相应配置元素,将所述值变换为变换后的值,变换后的值被链接到相关联的模块输出元素。
42.根据权利要求41所述的车辆控制模块,其中:
第一超集还包括与一个或多个默认值有关的模块输出元素的第三子集;
所述路由表还包括与以下各项有关的一个或多个条目:
a)相关联的车辆功能输出元素,以及
b)第三子集中的相关联的模块输出元素;以及
当所述路由引擎在第一车辆和第二车辆之一上执行时,针对与模块输出元素的第三子集有关的所述路由表中的每个条目,所述路由引擎还被配置为:
a)确定与同所述条目相关联的所述车辆功能输出元素相关联的所述模块输出元素,
b)确定与相关联的模块输出元素和所述车辆功能输出元素对应的第一配置表和第二配置表中的每个中的相应配置元素,
c)确定与所述车辆功能输出表中的相关的车辆功能输出元素相关联的值,以及
d)基于相应配置元素,将所述值变换为变换后的值,变换后的值被链接到相关联的模块输出元素。
43.根据权利要求41或权利要求42所述的车辆控制模块,其中,所述路由表中的条目的数量等于所述车辆功能输出表中的元素的数量。
44.根据权利要求35至43中任一项所述的车辆控制模块,包括计算机可访问的存储器,并且所述模块输出表中的每个元素包括所述存储器中存储其相关联的变换后的值的相应地址。
45.根据权利要求35至44中任一项所述的车辆控制模块,包括计算机可访问的存储器,并且所述车辆功能输出表中的每个元素包括所述存储器中存储其相关联的值的相应地址。
46.根据权利要求35到45中任一项所述的车辆控制模块,其中,变换所述值包括以下各项中的一个或多个:
使所述值保持不变;
对所述值进行比特掩码;
对所述值进行比特移位;
将预定偏移与所述值相加;以及
将所述值乘以预定增益。
47.根据权利要求35到46中任一项所述的车辆控制模块,其中,在第一车辆和第二车辆之一上实现的硬件设备包括以下各项中的一个或多个:
车辆网络的总线;
输出驱动器;
模拟输出;以及
数字输出。
48.根据权利要求35到47中任一项所述的车辆控制模块,其中,所述模块输出元素的第一超集中的至少一个元素是模块输出元素的第一子集和模块输出元素的第二子集两者中的成员。
49.根据权利要求35到47中任一项所述的车辆控制模块,其中,所述模块输出元素的第一超集中的至少一个元素是模块输出元素的第一子集或模块输出元素的第二子集中的仅一个子集中的成员。
50.一种能够在第一物料搬运车辆和第二物料搬运车辆之一上运行的车辆控制模块的方法,所述方法包括:
提供包括模块输出元素的第一超集的模块输出表,
其中,所述模块输出元素的第一超集包括与设置在第一车辆上的第一组硬件设备有关的模块输出元素的第一子集和与设置在第二车辆上的第二组硬件设备有关的模块输出元素的第二子集;
提供车辆功能输出表,所述车辆功能输出表包括与在第一车辆和第二车辆上使用的车辆功能输出有关的一组车辆功能输出元素;
提供至少一个配置表,所述至少一个配置表包括与所述模块输出元素的第一超集中的一些对应的相应配置元素,
其中,每个相应配置元素包括与确定同所述模块输出表中的对应的模块输出元素相关联的变换后的值有关的数据;
确定与所述模块输出表中的模块输出元素对应的所述车辆功能输出表中的车辆功能输出元素的值;
将所述值变换成变换后的值;以及
将变换后的值与对应的模块输出元素链接。
51.根据权利要求50所述的方法,其中,所述至少一个配置表包括:
功能输出配置表,所述功能输出配置表包括与所述车辆功能输出元素中的一些对应的相应功能输出配置元素,
其中,每个相应功能输出配置元素包括与实现将同所述车辆功能输出表中的对应的车辆功能输出元素相关联的值变换成初始变换后的值有关的数据。
52.根据权利要求51所述的方法,其中,值和初始变换后的值是相同的。
53.根据权利要求51或权利要求52所述的方法,其中,所述至少一个配置表包括:
模块输出配置表,所述模块输出配置表包括与所述模块输出元素的第一超集中的一些对应的相应模块输出配置元素,
其中,每个相应模块输出配置元素包括与实现将同所述模块输出表中的对应的模块输出元素相关联的初始变换后的值变换成变换后的值有关的数据。
54.根据权利要求53所述的方法,其中,所述模块输出配置表中的每个元素包括与同所述模块输出表中的对应元素相关联的变换后的值的输出数据类型有关的数据。
55.根据权利要求54所述的方法,其中,变换初始变换后的值包括将所述值的第一数据类型改变为输出数据类型。
56.根据权利要求50到55中任一项所述的方法,包括:
提供路由表,所述路由表包括与以下各项有关的条目:
a)相关联的车辆功能输出元素,以及
b)对应于所述车辆控制模块在其上运行的第一车辆和第二车辆之一的模块输出元素的第一子集和第二子集之一中的相关联的模块输出元素;并且其中:
确定车辆功能输出元素的值包括:
a)确定与同所述条目相关联的所述车辆功能输出元素相关联的所述模块输出元素,以及
b)确定与所述车辆功能输出表中的相关的车辆功能输出元素相关联的值;以及
将值变换成变换后的值包括:
a)确定与相关联的模块输出元素和车辆功能输出元素对应的第一配置表和第二配置表中的每个中的相应配置元素,
b)基于相应配置元素,将所述值变换成变换后的值,变换后的值与对应的模块输出元素链接。
57.根据权利要求56所述的方法,其中:
第一超集还包括与一个或多个默认值有关的模块输出元素的第三子集;
所述路由表还包括与以下各项有关的一个或多个条目:
a)相关联的车辆功能输出元素,以及
b)第三子集中的相关联的模块输出元素;以及
对于与模块输出元素的第三子集有关的所述路由表中的每个条目:
a)确定与同所述条目相关联的所述车辆功能输出元素相关联的所述模块输出元素,
b)确定与相关联的模块输出元素和车辆功能输出元素对应的第一配置表和第二配置表中的每个中的相应配置元素,
c)确定与所述车辆功能输出表中的相关的车辆功能输出元素相关联的值,以及
d)基于对应的相应配置元素,将所述值变换为变换后的值,变换后的值与相关联的模块输出元素链接。
58.根据权利要求56或权利要求57所述的车辆控制模块,其中,所述路由表中的条目的数量等于所述车辆功能输出表中的元素的数量。
59.根据权利要求50到58中任一项所述的方法,其中,所述模块输出表中的每个元素包括存储器中存储其相关联的变换后的值的相应地址。
60.根据权利要求50到59中任一项所述的方法,其中,所述车辆功能输出表中的每个元素包括存储器中存储其相关联的值的相应地址。
61.根据权利要求50到60中任一项所述的方法,其中,变换所述值包括下列各项中的一个或多个:
使所述值保持不变;
对所述值进行比特掩码;
对所述值进行比特移位;
将预定偏移与所述值相加;以及
将所述值乘以预定增益。
62.根据权利要求50到61中任一项所述的方法,其中,在第一车辆和第二车辆之一上实现的硬件设备包括以下各项中的一个或多个:
车辆网络的总线;
输出驱动器;
模拟输出;以及
数字输出。
63.根据权利要求50到62中任一项所述的方法,其中,所述模块输出元素的第一超集中的至少一个元素是模块输出元素的第一子集和模块输出元素的第二子集两者中的成员。
64.根据权利要求50到63中任一项所述的方法,其中,所述模块输出元素的第一超集中的至少一个元素是模块输出元素的第一子集或模块输出元素的第二子集中的仅一个子集中的成员。
65.一种基于计算机的车辆控制模块,能够在第一物料搬运车辆和第二物料搬运车辆之一上运行,所述车辆控制模块包括:
包括源元素的第一超集的模块输出表,
其中,模块输出元素的第一超集包括与设置在第一车辆上的第一组硬件设备有关的模块输出元素的第一子集和与设置在第二车辆上的第二组硬件设备有关的模块输出元素的第二子集;
车辆功能输出表,所述车辆功能输出表包括与在第一车辆和第二车辆上使用的车辆功能输出有关的一组车辆功能输出元素;
模块输出配置表,所述模块输出配置表包括与所述模块输出元素的第一超集中的一些对应的相应模块输出配置元素,
其中,每个相应模块输出配置元素包括与同所述模块输出表中的对应的模块输出元素相关联的变换后的值有关的数据;
路由表,所述路由表包括与以下各项有关的条目:
a)相关联的车辆功能输出元素,以及
b)对应于所述车辆控制模块在其上运行的第一车辆和第二车辆之一的模块输出元素的第一子集和第二子集之一中的相关联的模块输出元素;以及
路由引擎,当所述路由引擎在第一车辆和第二车辆之一上执行时,针对所述路由表中的每个条目,所述路由引擎被配置为:
a)确定与同所述条目相关联的所述车辆功能输出元素相关联的所述模块输出元素,
b)确定与相关联的模块输出元素对应的所述模块输出配置表中的所述模块输出配置元素,
c)确定与所述车辆功能输出表中的相关的车辆功能输出元素相关联的第一值,
d)基于对应的模块输出配置元素,将所述值变换为变换后的值,以及
e)将变换后的值与相关联的模块输出元素链接。
66.根据权利要求65所述的车辆控制模块,包括:
功能输出配置表,所述功能输出配置表包括与所述车辆功能输出元素中的一些对应的相应功能输出配置元素,
其中,每个相应功能输出配置元素包括与实现同所述车辆功能输出表中的对应的车辆功能输出元素相关联的初始值的变换有关的数据;并且其中:
路由引擎,当所述路由引擎在第一车辆和第二车辆之一上执行时,针对所述路由表中的每个条目,所述路由引擎被配置为:
基于对应的功能输出配置元素,将对应的初始值变换成与所述车辆功能输出表中的相关的车辆功能输出元素相关联的第一值。
67.根据权利要求65或权利要求66所述的车辆控制模块,其中,所述路由表中的条目的数量等于所述车辆功能输出表中的元素的数量。
68.根据权利要求67所述的车辆控制模块,包括计算机可访问的存储器,并且所述模块输出表中的每个元素包括所述存储器中存储其相关联的变换后的值的相应地址。
69.根据权利要求67或权利要求68所述的车辆控制模块,包括计算机可访问的存储器,并且所述车辆功能输出表中的每个元素包括所述存储器中存储其相关联的值的相应地址。
70.根据权利要求65到69中任一项所述的车辆控制模块,其中,变换所述值包括以下各项中的一个或多个:
使所述值保持不变;
对所述值进行比特掩码;
对所述值进行比特移位;
将预定偏移与所述值相加;以及
将所述值乘以预定增益。
71.根据权利要求65到70中任一项所述的车辆控制模块,其中,所述模块输出元素的第一超集中的至少一个元素是模块输出元素的第一子集和模块输出元素的第二子集两者中的成员。
72.根据权利要求65到71中任一项所述的车辆控制模块,其中,所述模块输出元素的第一超集中的至少一个元素是模块输出元素的第一子集或模块输出元素的第二子集中的仅一个子集中的成员。
CN201680043845.6A 2015-07-28 2016-07-26 具有信号交换机板和输出表的车辆控制模块及其方法 Active CN107852361B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562197857P 2015-07-28 2015-07-28
US201562197836P 2015-07-28 2015-07-28
US62/197,857 2015-07-28
US62/197,836 2015-07-28
PCT/US2016/043981 WO2017019658A1 (en) 2015-07-28 2016-07-26 Vehicle control module with signal switchboard and output tables

Publications (2)

Publication Number Publication Date
CN107852361A true CN107852361A (zh) 2018-03-27
CN107852361B CN107852361B (zh) 2021-04-16

Family

ID=56684252

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201680037493.3A Active CN107709222B (zh) 2015-07-28 2016-07-26 具有信号交换机板和输入表的车辆控制模块
CN201680043845.6A Active CN107852361B (zh) 2015-07-28 2016-07-26 具有信号交换机板和输出表的车辆控制模块及其方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201680037493.3A Active CN107709222B (zh) 2015-07-28 2016-07-26 具有信号交换机板和输入表的车辆控制模块

Country Status (9)

Country Link
US (2) US10427692B2 (zh)
EP (4) EP4289781A1 (zh)
KR (2) KR102644393B1 (zh)
CN (2) CN107709222B (zh)
AU (2) AU2016298171B2 (zh)
BR (2) BR112018000025A2 (zh)
CA (2) CA2988675A1 (zh)
MX (2) MX2018001206A (zh)
WO (2) WO2017019658A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2991312C (en) 2015-08-14 2023-09-19 Crown Equipment Corporation Steering and traction applications for determining a steering control attribute and a traction control attribute
EP3334637B1 (en) 2015-08-14 2020-03-18 Crown Equipment Corporation Model based diagnostics based on steering model
CN110035944B (zh) 2017-01-13 2021-09-17 克朗设备公司 高速直行的操纵杆脱敏
WO2018132169A1 (en) 2017-01-13 2018-07-19 Crown Equipment Corporation Traction speed recovery based on steer wheel dynamic
EP3511288A1 (de) * 2018-01-10 2019-07-17 STILL GmbH Verfahren zur steuerung einer kleinfunktionalität eines flurförderzeugs mittels eines makro-programms und entsprechendes flurförderzeug
US11042637B1 (en) * 2018-02-01 2021-06-22 EMC IP Holding Company LLC Measuring code sharing of software modules based on fingerprinting of assembly code
KR102021447B1 (ko) * 2018-04-06 2019-09-16 서울대학교산학협력단 컴퓨팅 장치 및 그것의 동작 방법
EP3705969B1 (en) 2019-03-06 2021-06-23 Hiab AB Vehicle accessory arrangement
EP3705970A1 (en) 2019-03-06 2020-09-09 Cargotec Patenter AB A vehicle comprising a vehicle accessory arrangement
DE102019206658A1 (de) * 2019-05-09 2020-11-12 Zf Friedrichshafen Ag Verfahren und Vorrichtung zur Getriebesteuerung einer Arbeitsmaschine
KR20210065450A (ko) * 2019-11-27 2021-06-04 엘지전자 주식회사 로봇
JP7443820B2 (ja) * 2020-02-27 2024-03-06 マツダ株式会社 車載機器制御装置および車両制御システム
JP2021135807A (ja) * 2020-02-27 2021-09-13 マツダ株式会社 車載機器制御装置及び車両制御システム
JP2021135808A (ja) * 2020-02-27 2021-09-13 マツダ株式会社 車載機器制御装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5113344A (en) * 1990-07-27 1992-05-12 Raymond Corporation Material handling vehicle identification tag
CN101578817A (zh) * 2006-12-14 2009-11-11 宝马股份公司 车辆的控制设备的联网
US20140188324A1 (en) * 2011-08-29 2014-07-03 Crown Equipment Corporation Vehicular navigation control interface
CN103946830A (zh) * 2011-12-01 2014-07-23 罗伯特·博世有限公司 传感器传输设备和用于从多个传感器向车辆的总线控制设备传输有用数据的方法

Family Cites Families (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4084240A (en) 1976-07-28 1978-04-11 Chrysler Corporation Mass production of electronic control units for engines
DE2732781C3 (de) 1977-07-20 1995-04-06 Bosch Gmbh Robert Einrichtung zum Steuern von betriebsparameterabhängigen und sich wiederholenden Vorgängen
DE3306463A1 (de) 1983-02-24 1984-09-06 Jungheinrich Unternehmensverwaltung Kg, 2000 Hamburg Flurfoerderzeug
US4556943A (en) 1983-05-27 1985-12-03 Allied Corporation Multiprocessing microprocessor based engine control system for an internal combustion engine
AU612191B2 (en) 1987-11-06 1991-07-04 Lockin Pty Limited User modifiable fuel injection computer
DE4003507A1 (de) 1990-02-06 1991-08-08 Bosch Gmbh Robert Digitales steuergeraet, insbesondere zuend- und/oder einspritzsteuergeraet fuer kraftfahrzeuge
US5446665A (en) 1993-03-18 1995-08-29 John B. Adrain Automotive multiple memory selector apparatus
GB9019423D0 (en) 1990-09-06 1990-10-24 Gen Motors Luxembourg Operatio Electronic controller for vehicle
US5523948A (en) 1990-09-06 1996-06-04 Adrain; John B. Apparatus and method for modifying control of an originally manufactured engine control module
US5200900A (en) 1990-09-06 1993-04-06 John B. Adrain Automotive multiple memory selector apparatus with human interactive control
US5394327A (en) 1992-10-27 1995-02-28 General Motors Corp. Transferable electronic control unit for adaptively controlling the operation of a motor vehicle
US5832397A (en) 1993-01-21 1998-11-03 Hitachi, Ltd. Integrated wiring systems for a vehicle control system
JPH06276570A (ja) 1993-03-17 1994-09-30 Honda Motor Co Ltd 車両用制御システム
US6009370A (en) 1993-07-26 1999-12-28 Hitachi, Ltd. Control unit for vehicle and total control system therefor
EP0869417B1 (en) 1993-07-26 2003-03-26 Hitachi, Ltd. Control unit for vehicle
US6269300B1 (en) 1995-03-29 2001-07-31 Caterpillar Inc. Method for producing production control software for a natural gas or diesel engine controller
JP3491419B2 (ja) 1995-12-04 2004-01-26 株式会社デンソー 電子制御装置
JP3460593B2 (ja) 1998-09-17 2003-10-27 株式会社デンソー 車両用制御装置
JP3692820B2 (ja) 1999-03-10 2005-09-07 株式会社デンソー 自動車用制御装置
US6560528B1 (en) 2000-03-24 2003-05-06 Internal Combustion Technologies, Inc. Programmable internal combustion engine controller
JP4427860B2 (ja) 2000-03-24 2010-03-10 株式会社デンソー 車両用制御装置及び記録媒体
DE10022423A1 (de) 2000-05-09 2001-11-15 Bosch Gmbh Robert Verfahren zur Steuerung von Geräten und Gerät in einem Kommunikationsnetz in einem Kraftfahrzeug
DE10101311C2 (de) 2001-01-12 2002-12-12 Bosch Gmbh Robert Fahrzeugsteuergerät sowie Steuerungsverfahren
US7506097B2 (en) 2001-09-25 2009-03-17 Caterpillar, Inc. Method and apparatus for installing data in a memory on a work machine
US6889118B2 (en) 2001-11-28 2005-05-03 Evolution Robotics, Inc. Hardware abstraction layer for a robot
WO2003103125A1 (de) 2002-05-03 2003-12-11 Jungheinrich Moosburg Gmbh Schaltungsanordnung zur steuerung elektromotorischer antriebsmittel eines fahrbaren arbeitsgerätes, insbesondere eines flurförderzeugs
DE10318470A1 (de) 2002-05-08 2004-07-22 Volkswagen Ag Verfahren und Vorrichtung zur Programmierung von Steuergeräten eines Kraftfahrzeuges
DE10233443A1 (de) 2002-07-23 2004-01-29 Still Gmbh Flurförderzeug mit einem elektrischen Antrieb
US6760659B1 (en) 2002-11-26 2004-07-06 Controls, Inc. Device and method for engine control
US6965326B2 (en) * 2003-07-21 2005-11-15 General Motors Corporation Automated electronic module configuration within a vehicle
CN1312605C (zh) 2003-08-18 2007-04-25 刘恒春 基于多协议通信嵌入式模块结构网络控制平台
WO2005026515A2 (en) 2003-09-10 2005-03-24 Pcrc Products Apparatus and process for controlling operation of an internal combusion engine having an electronic fuel regulation system
US6978198B2 (en) 2003-10-23 2005-12-20 General Motors Corporation System and method to load vehicle operation software and calibration data in general assembly and service environment
DE102004018384B4 (de) 2004-04-16 2007-07-05 Jungheinrich Ag Verfahren zur Montage eines Flurförderzeugs
DE102004044778A1 (de) 2004-09-16 2006-04-06 Daimlerchrysler Ag Elektroniksystem für ein Kraftfahrzeug
DE102004055875A1 (de) 2004-11-19 2006-05-24 Robert Bosch Gmbh Verfahren zum anwendungsspezifischen Konfigurieren einer Software
JP4437468B2 (ja) 2004-12-06 2010-03-24 富士通テン株式会社 車両用電子制御装置
US20060136626A1 (en) 2004-12-17 2006-06-22 Avritch Steven A Reconfigurable input/output interface
JP4728020B2 (ja) 2005-03-17 2011-07-20 日立オートモティブシステムズ株式会社 車両制御用ソフトウェア及び車両制御装置
JP4337768B2 (ja) 2005-04-25 2009-09-30 トヨタ自動車株式会社 車両統合制御装置
US7590768B2 (en) * 2005-09-23 2009-09-15 Joseph Gormley Control and interconnection system
US8478506B2 (en) 2006-09-29 2013-07-02 Caterpillar Inc. Virtual sensor based engine control system and method
US7899610B2 (en) 2006-10-02 2011-03-01 Inthinc Technology Solutions, Inc. System and method for reconfiguring an electronic control unit of a motor vehicle to optimize fuel economy
US10013815B2 (en) 2006-12-13 2018-07-03 Crown Equipment Corporation Information system for industrial vehicles
US7870223B2 (en) 2007-02-27 2011-01-11 Rockwell Automation Technologies, Inc. Services associated with an industrial environment employing controller engine instances
US8708349B1 (en) 2007-03-12 2014-04-29 Mitchell Olin Setzer, SR. Portable transfer apparatus for moving items
WO2009023895A1 (en) 2007-08-23 2009-02-26 Adaptronic Electronics Pty Ltd Engine control system
JP2009110353A (ja) * 2007-10-31 2009-05-21 Hitachi Ltd マイクロコントローラ及び制御システム
DE102007059524B4 (de) 2007-12-11 2009-09-17 Continental Automotive Gmbh Verfahren zum Erzeugen einer Betriebssoftware auf einem Steuergerät für ein Kraftfahrzeug sowie Steuergerät
JP5123321B2 (ja) 2008-01-24 2013-01-23 株式会社オートネットワーク技術研究所 機器制御装置及び機器制御プログラム
GB2457279A (en) 2008-02-08 2009-08-12 Airmax Group Plc Configuration of an electronic control system for controlling the operation of at least one component of a vehicle
US8060290B2 (en) 2008-07-17 2011-11-15 Honeywell International Inc. Configurable automotive controller
AU2009291737B2 (en) 2008-09-12 2015-02-05 Crown Equipment Corporation Fork carriage apparatus for materials handling vehicle
US8943467B2 (en) 2009-01-26 2015-01-27 GM Global Technology Operations LLC On-target rapid control prototyping
US8676452B2 (en) * 2009-04-01 2014-03-18 Sumitomo Heavy Industries, Ltd. Hybrid type working machine
US20110022545A1 (en) 2009-07-24 2011-01-27 A Truly Electric Car Company Re-inventing carmaking
WO2011040841A1 (en) 2009-09-29 2011-04-07 Volvo Technology Corporation Method and system for preparing sensor output data of a sensor assembly for further processing in at least one application and/or by at least one algorithm
JP5204073B2 (ja) 2009-09-30 2013-06-05 三菱重工業株式会社 電動車両用制御装置、並びに、これを備えた電動車両及びフォークリフト
US8521328B2 (en) 2009-12-10 2013-08-27 The Boeing Company Control system for robotic vehicles
US20120123614A1 (en) 2010-11-17 2012-05-17 INRO Technologies Limited Method and apparatus for virtualizing industrial vehicles to automate task execution in a physical environment
US8561897B2 (en) 2010-11-18 2013-10-22 Sky-Trax, Inc. Load tracking utilizing load identifying indicia and spatial discrimination
DE102010053488A1 (de) 2010-12-04 2012-06-06 Audi Ag Verfahren zum reversiblen, manipulationssicheren Codieren eines Motorsteuergeräts für ein Kraftfahrzeug und Motorsteuergerät
AU2012206427A1 (en) 2011-01-14 2013-08-01 Bae Systems Plc Data transfer system and method thereof
US9104443B2 (en) 2011-03-31 2015-08-11 GM Global Technology Operations LLC Control software with programmable arrays that are configurable for vehicles having different propulsion system configurations
DE102012202323A1 (de) 2012-02-16 2013-08-22 Jungheinrich Aktiengesellschaft Gewerbliches Fahrzeug, insbesondere Gabelstapler oder Flurförderzeug, mit einem fahrzeugseitig fest angebrachten Datenspeicher in Zuordnung zu einer parametrierbaren elektronischen Steueranordnung
DE102012206745A1 (de) 2012-04-24 2013-10-24 Mtu Friedrichshafen Gmbh Verfahren zum Betrieb einer Brennkraftmaschine, Brennkraftmaschine und Wartungssystem für eine Brennkraftmaschine, selbstausführbares Computerprogrammprodukt und nichtflüchtiges Speichermedium
JP5672275B2 (ja) * 2012-08-28 2015-02-18 株式会社デンソー ネットワークシステム
EP2915714B1 (en) 2012-11-01 2020-06-24 Nissan Motor Co., Ltd Hybrid vehicle mode switch control device
US20160196700A1 (en) 2012-12-18 2016-07-07 Quentin Guhr Universal Software Platform For Work Vehicles
DE102013102082A1 (de) 2013-03-04 2014-09-04 Still Gmbh Verfahren zur Integration von Anwendungen in eine Steuerung eines Flurförderzeugs
JP6051993B2 (ja) 2013-03-25 2016-12-27 村田機械株式会社 自律移動式無人搬送車、及び、自律移動式無人搬送システム
DE102013210182A1 (de) 2013-05-29 2014-12-04 Robert Bosch Gmbh Verfahren zur Bereitstellung einer generischen Schnittstelle sowie Mikrocontroller mit generischer Schnittstelle
DE102013210077A1 (de) 2013-05-29 2014-12-04 Robert Bosch Gmbh Verfahren zur Bereitstellung einer generischen Schnittstelle sowie Mikrocontroller mit generischer Schnittstelle
DE102013210064A1 (de) 2013-05-29 2014-12-04 Robert Bosch Gmbh Verfahren zur Bereitstellung einer generischen Schnittstelle sowie Mikrocontroller mit generischer Schnittstelle
EP3208387B1 (en) 2014-10-14 2020-12-09 Hitachi Construction Machinery Co., Ltd. Hybrid construction machinery

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5113344A (en) * 1990-07-27 1992-05-12 Raymond Corporation Material handling vehicle identification tag
CN101578817A (zh) * 2006-12-14 2009-11-11 宝马股份公司 车辆的控制设备的联网
US20140188324A1 (en) * 2011-08-29 2014-07-03 Crown Equipment Corporation Vehicular navigation control interface
CN103946830A (zh) * 2011-12-01 2014-07-23 罗伯特·博世有限公司 传感器传输设备和用于从多个传感器向车辆的总线控制设备传输有用数据的方法

Also Published As

Publication number Publication date
EP3329642B1 (en) 2023-07-12
WO2017019658A1 (en) 2017-02-02
EP4289780A1 (en) 2023-12-13
CA2988675A1 (en) 2017-02-02
KR102644394B1 (ko) 2024-03-07
CN107852361B (zh) 2021-04-16
CA2991329C (en) 2023-05-16
CN107709222B (zh) 2019-11-19
MX2018001206A (es) 2018-04-24
EP3328785A1 (en) 2018-06-06
AU2016297998B2 (en) 2020-07-16
WO2017019655A8 (en) 2017-09-14
KR102644393B1 (ko) 2024-03-07
AU2016298171B2 (en) 2021-10-28
BR112018000025A2 (pt) 2018-09-04
AU2016297998A1 (en) 2018-01-18
CN107709222A (zh) 2018-02-16
KR20180033535A (ko) 2018-04-03
US20170028993A1 (en) 2017-02-02
EP3329642A1 (en) 2018-06-06
MX2018001207A (es) 2018-04-24
US20170028994A1 (en) 2017-02-02
AU2016298171A1 (en) 2018-01-18
KR20180034510A (ko) 2018-04-04
US10106171B2 (en) 2018-10-23
WO2017019655A1 (en) 2017-02-02
EP4289781A1 (en) 2023-12-13
EP3328785B1 (en) 2023-07-12
US10427692B2 (en) 2019-10-01
BR112018000030A2 (pt) 2018-09-04
CA2991329A1 (en) 2017-02-02

Similar Documents

Publication Publication Date Title
CN107852361A (zh) 具有信号交换机板和输出表的车辆控制模块
JP3692820B2 (ja) 自動車用制御装置
CN104750437B (zh) 一种容量可扩展的星载大容量存储系统
WO2005109135A1 (en) Method and protocol for diagnostics of arbitrarily complex networks of devices
CN106030425B (zh) 用于选择程序功能的方法、设备和车辆、船舶或者飞机
CN106850799A (zh) 一种面向互联网的智能化电动汽车平台架构
WO2011043424A1 (ja) 制御装置、制御方法及びコンピュータプログラム
US11831718B2 (en) In-vehicle equipment controller and vehicle control system
JP2007120352A (ja) 車両の制御装置
JP2020172168A (ja) 車両制御インタフェースおよび車両システム
CN105579295A (zh) 用于商用运输工具的、集成并且组合的门运行系统
US9507334B2 (en) Programming template for distributed application programs
US20070271551A1 (en) Electronic Control Unit and Method for Specifying a Software Architecture for an Electronic Control Unit
CN112748697B (zh) 基于CoDeSys控制器的脉冲轴控制方法
US20220271969A1 (en) Method for operating a vehicle electrical system, vehicle electrical system, and computing system
CN113848941B (zh) 用于车队间距控制的分布式控制器设计方法
He et al. A Distribution-Based Model for Electric/Electronic Architectures of Automotive
Jobst et al. Towards hierarchical information architectures in automotive systems
SE538518C2 (sv) Kommunikationssystem för motorfordon
Ozhigin et al. Systematic Use of the AUTOSAR Standardized Application Interfaces
CN107110054A (zh) 发动机控制系统、车辆系统及发动机控制方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant