CN107395787A - Can通信网络的地址分配方法、系统、网关和介质 - Google Patents
Can通信网络的地址分配方法、系统、网关和介质 Download PDFInfo
- Publication number
- CN107395787A CN107395787A CN201710779793.5A CN201710779793A CN107395787A CN 107395787 A CN107395787 A CN 107395787A CN 201710779793 A CN201710779793 A CN 201710779793A CN 107395787 A CN107395787 A CN 107395787A
- Authority
- CN
- China
- Prior art keywords
- addresses
- motion
- node
- device parameter
- gateway
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/627—Controller area network [CAN] identifiers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
Abstract
一种CAN通信网络的地址分配方法,用于包括有主节点和从节点的CAN通信网络,所述方法包括:步骤S1:在各个从节点上存储有每个从节点对应的设备参数、以及所述设备参数对应的哈希值;步骤S2:所述主节点通过广播向所有从节点发送第一设备参数查询命令;步骤S3:每个从节点依据所述第一设备参数查询命令,将对应的哈希值发送给所述主节点;步骤S4:所述主节点给接收到的每一个哈希值对应分配一个CAN地址,并将所述CAN地址发送给对应的从节点。本发明的地址分配方法可方便、快捷的为多个从节点分配CAN地址。
Description
技术领域
本发明涉及CAN通信网络的地址分配技术,具体涉及一种CAN通信网络的地址分配方法、一种包括有CAN通信网络的运动控制系统、一种网关以及一种存储有计算机程序的计算机可读介质。
背景技术
在运动控制领域,为了实现对多个运动控制部件的同步控制,运动控制系统可以采用CAN总线组成CAN通信网络,CAN通信网络可以将多达上百个运动控制部件整合在同一个运动控制系统中。
在一个运动控制系统中,可以包括有一个CAN通信网络的主节点和若干个从节点,主节点和从节点之间可以通过CAN数据线建立通信,主节点是CAN通信网络中的主控制器,各个从节点是CAN通信网络中的动作执行设备。
结合参考附图1,附图1示出了一种运动控制系统100,包括有人机交互单元101、网关102、多个运动控制部件104,、电机107,运动控制部件104包括有CAN数据收发模块105和解算模块106,网关102和运动控制部件104中的CAN数据收发模块105之间通过CAN数据线103连接。
其中,人机交互单元101可以实现用户与运动控制系统100之间的交互,例如可以是一台电脑,用户通过电脑来设置电机107的运动控制参数、以控制电机107的运行状态。
网关102是将人机交互单元101的参数转换为CAN总线数据的设备,例如人机交互单元101采用电脑实现时,可以利用电脑的USB接口进行通信,网关102为USB-CAN网关,可以将电脑通过USB发送来的数据转换为CAN总线数据、然后通过CAN数据线103发送给各个运动控制部件104,因此网关102是CAN通信网络中的主节点。
运动控制部件104用于将用户设置的电机运动控制参数进行解算、得到直接控制电机107运动的PWM波形。其中CAN数据收发模块105是与CAN数据线103直接连接,可以将CAN总线数据转换为解算模块106等可以运算的数据,然后发送给解算模块106进行解算,运动控制部件104是CAN通信网络中的从节点。
运动控制系统100根据用户的设定场景不同而具有不同数量的运动控制部件104,运动控制部件104的数量可以多达上百个。例如一款6轴机器人(或者成为6关节机械臂)具有6个关节,每个关节都需要一个电机进行运动,那么这个6轴机器人就需要有6个运动控制部件104;再例如,在一个化学分析实验室中,用户需要一个电磁阀矩阵来同时控制80个电磁阀的开关状态,那么对应的这个实验室就需要在同一个运动控制系统中设置有80个运动控制部件104;再例如,市场上也存在有多轴运动控制部件104,即一个运动控制部件可以同时控制多个电机或电磁阀(一般可实现同时控制8个),那么为了实现对80个电磁阀的控制,也需要10个8轴运动控制部件104。
每个运动控制部件104在出厂前都会设置一个默认地址,通常该默认地址在所有运动控制部件104上都是统一一致的,后期在进行CAN通信网络组网时可以修改该地址,以便用户使用。
在CAN通信网络中,必须要保证分配给每个运动控制部件104的地址是唯一的,否则就会出现通信混乱。而现有技术大多采用固定地址和硬件拨码等方法,均存在管理复杂、灵活性差、不能很好的管理多个运动控制部件等问题。
发明内容
为了解决上述问题,本发明提供了一种灵活性好、可以自动为多个从节点自动进行地址分配的方法,便于用户组建CAN通信网络。
本发明所述的CAN通信网络的地址分配方法,用于包括有主节点和从节点的CAN通信网络,所述方法包括:
步骤S1:在各个从节点上存储有每个从节点对应的设备参数、以及所述设备参数对应的哈希值;
步骤S2:所述主节点通过广播向所有从节点发送第一设备参数查询命令;
步骤S3:每个从节点依据所述第一设备参数查询命令,将对应的哈希值发送给所述主节点;
步骤S4:所述主节点给接收到的每一个哈希值对应分配一个CAN地址,并将所述CAN地址发送给对应的从节点。
本发明提供的CAN通信网络的地址分配方法不仅在从节点上存储有每个从节点对应的设备参数、还存储有设备参数计算得到的哈希值,当主节点和从节点组网后,主节点通过广播的形式查询得到所有的从节点的哈希值,然后对应每个哈希值分配一个地址,作为从节点的地址,由于哈希值是将设备参数通过哈希算法计算得到的,一般4个字节即可,因此每个从节点可以用一帧CAN总线数据即可发送给主节点,因此本发明的上述地址分配方法可以自动完成地址分配,分配速度极快;而且不论从节点的数量多少、只要有对应的不同哈希值即会分配一个地址,因此可以同时对许多个从节点实现地址分配。
作为一种举例说明,本发明所述的地址分配方法中,步骤S4中,所述主节点给接收到的每一个哈希值对应分配一个的CAN地址、并将所述CAN地址发送给对应的从节点具体是:所述主节点根据接收到的每个哈希值的时间顺序、依序分配所述CAN地址给对应的哈希值,并将所述CAN地址发送给对应的从节点。
作为又一种举例说明,本发明所述的地址分配方法中,所述方法还包括:
步骤S5:依据一个选择命令,所述主节点向其中一个CAN地址对应的从节点发送第二设备参数查询命令;
步骤S6:所述从节点依据所述第二设备参数查询命令,将所述设备参数分段发送给所述主节点;
步骤S7:当所述主节点接收到多个设备参数时,将其中一个设备参数对应为原CAN地址,将其他设备参数对应分配新的CAN地址;并将所述新的CAN地址发送给对应的从节点;
依据上述步骤S5-S7,遍历所有的从节点。
作为又一种举例说明,本发明所述的地址分配方法中,步骤S7中,当所述主节点接收到多个设备参数时,将其中一个设备参数对应为原CAN地址,将其他设备参数对应分配新的CAN地址,具体是:
将所述主节点最先接收到的一个设备参数对应为原CAN地址;
将所述主节点接收到的其他设备参数的CAN地址,按时间顺序排列在步骤S4分配的最后一个CAN地址之后。
作为又一种举例说明,本发明所述的地址分配方法中,所述设备参数包括有:厂商识别名称、产品系列名称和产品序列号。
为了解决上述问题,本发明提供了一种灵活性好、可以自动为多个运动控制部件自动进行地址分配的运动控制系统,便于用户组建CAN通信网络。
本发明所述的运动控制系统包括有网关和多个运动控制部件,
所述每个运动控制部件中存储有每个运动控制部件对应的设备参数、以及所述设备参数对应的哈希值;
所述网关,用于依据一个CAN通信网络连接命令产生一个第一设备参数查询命令;
所述每个运动控制部件,用于根据所述第一设备参数查询命令,将各自的哈希值发送给所述网关;
所述网关,还用于将接收到的每一个哈希值对应分配一个CAN地址,并将所述CAN地址发送给对应的运动控制部件,作为所述运动控制部件的CAN地址。
本发明提供的运动控制系统的运动控制部件中存储有每个运动控制部件的设备参数和哈希值,当网关和运动控制部件组成CAN通信网络后,网关通过广播的形式查询每个运动控制部件的哈希值,然后对应每个哈希值分配一个地址,作为每个运动控制部件的地址,由于哈希值是将设备参数通过哈希算法计算得到的,一般4个字节即可,因此每个运动控制部件可以用一帧CAN总线数据即可发送给网关,因此本发明的运动控制系统可以自动完成对每个运动控制部件的地址分配,分配速度极快;而且不论运动控制系统中有多少个运动控制部件,只要有对应的不同哈希值、网关即会分配一个对应的地址给运动控制部件,因此可以同时对许多个运动控制部件实现地址分配。
作为一种举例说明,本发明所述的运动控制系统中,所述网关将接收到的每一个哈希值对应分配一个CAN地址是依据:所述网关接收到的所述哈希值的时间顺序、依序分配所述CAN地址给所述哈希值。
作为又一种举例说明,本发明所述的运动控制系统中,所述网关,还用于依据一个选择命令,先后向每一个所述CAN地址对应的运动控制部件发送第二设备查询命令;
所述运动控制部件,还用于当接收到所述第二设备查询命令后,将存储的所述设备参数分段发送给所述网关;
当所述网关接收到同一个CAN地址对应的多个设备参数时,将其中一个设备参数对应为原CAN地址,将其他设备参数对应分配新的CAN地址,并将所述新的CAN地址发送给对应的运动控制部件。
作为又一种举例说明,本发明所述的运动控制系统中,当所述网关接收到同一个CAN地址对应的多个设备参数时,将其中一个设备参数对应为原CAN地址,将其他设备参数对应分配新的CAN地址,并将所述新的CAN地址发送给对应的运动控制部件,具体是:
将所述网关最先接收到的一个设备参数对应为原CAN地址;
将所述网关接收到的其他设备参数的CAN地址,按时间顺序分配在已经分配的CAN地址之后。
作为又一种举例说明,本发明所述的运动控制系统中,所述设备参数包括有:厂商识别名称、产品系列名称和产品序列号。
为了解决上述问题,本发明提供了一种灵活性好、可以自动为多个运动控制部件自动进行地址分配的网关,便于用户组建CAN通信网络。
本发明提供的网关用于与多个运动控制部件组成CAN通信网络,所述网关,用于查询所述每个运动控制部件中存储的设备参数对应的哈希值,将接收到的每一个哈希值对应分配一个CAN地址,并将所述CAN地址发送给对应的运动控制部件,作为所述运动控制部件的CAN地址。
作为一种举例说明,本发明提供的网关还用于依据一个选择命令,先后查询每一个所述CAN地址对应的运动控制部件的设备参数,当接收到同一个CAN地址对应的多个设备参数时,将其中一个设备参数对应为原CAN地址,将其他设备参数对应分配新的CAN地址,并将所述新的CAN地址发送给对应的运动控制部件。
作为一种举例说明,本发明提供的网关中,所述设备参数包括有:厂商识别名称、产品系列名称和产品序列号。
为了解决上述问题,本发明提供了一种存储有计算机程序的计算机可读介质,所述计算机程序供一个或多个处理器运行以执行本发明所述的地址分配方法,具有灵活性好、可以自动为多个运动控制部件自动进行地址分配的优点,便于用户组建CAN通信网络。
本发明提供的CAN通信网络的地址分配方法、运动控制系统、网关和计算机可读介质,可以方便、灵活的实现CAN通信网络的自动组网,可以同时管理多个运动控制部件(从节点),自动、快速的为每个运动控制部件(从节点)分配地址,大大方便了用户的组网。
附图说明
图1是本发明的运动控制系统100的原理框图;
附图2是本发明的具体实施方式中设备参数、哈希值与CAN地址的对应关系示意图;
附图3是本发明的CAN总线数据格式示意图;
附图4是本发明的具体实施方式中设备参数、哈希值与CAN地址的对应关系的又一示意图;
附图5是本发明的具体实施方式中设备参数、哈希值与CAN地址的对应关系的又一示意图;
附图6是本发明的具体实施方式中地址分配方法600的流程图;
附图7是本发明的具体实施方式中地址分配方法600的又一流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
结合参考附图1,附图1示出了一种运动控制系统100,运动控制系统100在本实施例中是一种机器人控制系统,多个电机107构成了机器人的关节的运动部件,以驱动机器人运行。
作为说明,运动控制系统100还可以是电机控制系统,还可以是丝杠控制系统,还可以是电磁阀控制系统等等。
本实施例以机器人控制系统为例进行说明,机器人的每个关节需要设置一个电机107进行驱动,电机107连接有减速器,计算器通过输出轴的旋转带动关节做旋转运动,一个机器人一般具有多个关节、以共同实现机器人的各项功能;运动控制部件104可以将用户配置的各项参数和功能转化为电机107的驱动信号,驱动电机107运动。
所述人机交互单元201用于实现用户与机器人的交互,人机交互单元101可以是一个独立的机器人控制器、示教器等,还可以是一款可以安装在电脑上的软件,还可以是一款可以安装在手机/Pad等智能设备上的软件,本实施例中所述人机交互单元101是一款安装在电脑上的软件,用户可以通过鼠标、键盘、触摸屏等配置机器人的相关运动参数和功能,这些运动参数最终转换为电机控制参数来控制电机107的运行状态。
人机交互单元101通过自带的USB接口连接到网关102,网关102用于将人机交互单元101的参数转换为CAN总线数据,网关102是运动控制系统100的CAN通信网络的主节点,可以实现对所有的运动控制部件104的地址分配和控制,运动控制部件104是CAN通信网络的从节点。
网关102通过CAN数据线103与运动控制部件104上的CAN数据收发模块105连接,所述运动控制部件104实现对人机交互单元101发送来的运动参数的解算,得到实际的电机控制数据(一般为PWM波),通过调整PWM波的占空比调节电机107的运行状态。
其中,CAN数据收发模块105与CAN数据线103直接连接,可以将CAN总线数据转换为解算单元106等可运算的数据,还可以将运动控制部件104上的数据转换为CAN总线格式的数据、并发送给网关102。
解算单元106实现对运动参数的解算,并产生控制电机107运行的PWM波形,一般由DSP芯片实现;然后电机驱动模块(附图1中未示出)可以根据转换后的运动参数得到PWM波形,来驱动电机107运行。
在运动控制部件104中,一般厂商还会在其一个存储器(比如Flash)中存储有该运动控制部件的基本信息,基本信息可以包括有设备参数、版本信息、升级信息、地址信息等,其中设备参数可以包括有厂商识别名称、产品系列名称、产品序列号等,以供用户识别不同的运动控制部件,而地址信息可以设置为同一个地址,待运动控制部件104与网关102等组成CAN通信网络时再进行地址分配,便于用户管理整个运动控制系统100。
用户在使用时,首先将每个运动控制部件104通过CAN数据线103连接到网关102,然后将网关102与人机交互单元101通过USB或串口等连接在一起,然后上电启动整个运动控制系统100,用户通过人机交互单元101下达CAN通信网络连接命令M1并发送给网关102,网关102接收到所述CAN通信网络连接命令M1后、产生第一设备参数查询命令M2,然后通过广播的形式将所述第一设备参数查询命令M2发送给所有的运动控制部件104,接收到第一设备参数查询命令M2后、每个运动控制部件104将其存储的设备参数对应的哈希值作为一帧CAN总线数据发送给所述网关102,网关102可以接收到一组哈希值,然后给每个哈希值对应设置一个地址,那么不同的哈希值即对应有不同的地址,然后网关102将对应的地址发送给对应的运动控制部件104,作为运动控制部件104在运动控制系统100中的CAN地址。
结合参考附图2,附图2示出了运动控制部件104的设备参数、哈希值与CAN地址的对应关系。
在每个运动控制部件104中,均存储有各自的设备参数,设备参数可以包括有:厂商识别名称、产品系列名称和产品序列号,例如下面即是一个设备参数的案例:
ABCDE MRQ-M1 201711111111
其中,“ABCDE”是该产品的厂商识别名称,表示了该产品是ABCDE这一厂商生产;
“MRQ-M1”是该产品的产品系列号,表示了该产品的具体型号;
“201711111111”是该产品的产品序列号。
可以看出,设备参数的长度很大,需要多帧CAN总线数据才能进行传输,结合参考附图3,附图3示出了CAN总线数据的格式,一帧CAN总线数据包括有帧起始SF、仲裁场、控制场、数据场、校验场CRC、应答场ACK、帧结束等,其中数据场用来携带数据,最多包括8个字节,因此一帧CAN总线数据远不能完成设备参数的传递。
因此,本发明将设备参数利用哈希算法计算得到对应的哈希值、并存储在运动控制部件104中,因此每个运动控制部件104对应有独特的设备参数、以及哈希值,哈希值一般为4字节,通过一帧CAN总线数据即可完成传递,因此网关102可以方便的查询得到每个运动控制部件104对应的哈希值,例如附图2中显示了4个运动控制部件104的对应关系。
当网关102接收到哈希值后,即根据接收的时间先后顺序给每个哈希值对应设置一个地址,例如哈希值1对应地址201,哈希值2对应地址202,哈希值3对应地址203,哈希值4对应地址204。
然后网关102将每个地址对应发给每个运动控制部件104,即将地址201发送给哈希值1对应的运动控制部件Y1,将地址202发送给哈希值2对应的运动控制部件Y2,将地址203发送给哈希值3对应的运动控制部件Y3,将地址204发送给哈希值4对应的运动控制部件Y4,分别作为各个运动控制部件的CAN地址。
在本实施例中,网关102是根据接收的时间先后顺序给每个哈希值对应设置一个地址,接收到的最早的哈希值即为哈希值1,对应分配的地址即为最先分配的地址201。
作为一种变形,网关102也可以随机分配地址。
作为一种举例说明,当网关102分配好所有的运动控制部件104的CAN地址后,即实现了CAN通信网络的组网,那么在人机交互单元101上就会对应显示各个运动控制部件104的参数界面,以便用户具体的配置每个运动控制部件104或电机107的运动参数,通常是通过PVT表的形式进行运动参数的配置。如果用户发现人机交互单元101上显示的运动控制部件104的参数界面的数量与实际的运动控制部件104的数量不相同,那么就意味着网关102在组网过程中没有识别出所有的运动控制部件104,这是可能出现的情况。
出现上述情况的原因是,各个运动控制部件104的设备参数利用哈希算法计算得到对应的哈希值时,可能会出现相同哈希值的情况,虽然这种情况出现的概率极小,一旦出现了不同的设备参数对应相同的哈希值,例如附图4中的哈希值1不仅对应着设备参数1和运动控制部件Y1、还同时对应着哈希值5和运动控制部件Y5,那么在网关102通过广播的形式将所述第一设备参数查询命令M2发送给所有的运动控制部件104后,网关102会接收到两次相同的哈希值1,根据CAN网络的协议处理方法,这两次相同的哈希值1会被认为是同一个哈希值1、即仅会被识别出一个运动控制部件(一般是时间上最先被网关102接收到的那个),另一个运动控制部件会被忽略,这就会造成网关102在组网过程中没有识别出所有的运动控制部件104的情况。
为了进一步解决上述问题,本实施还提供了一种具体解决方案:
用户认为网关102第一次没有识别出所有的运动控制部件104后,可以通过人机交互单元101选择一个选择按键、产生一个选择命令M3,先后向每一个CAN地址对应的运动控制部件发送第二设备查询命令M4:
结合参考附图4,网关102首先向地址201对应的所有运动控制部件发送所述第二设备查询命令M4,运动控制部件Y1和运动控制部件Y5都会接收到该命令M4。
然后运动控制部件Y5当接收到所述命令M4后,将存储的设备参数分段发送给所述网关102:由于设备参数(如“ABCDE MRQ-M1 201711111111”)的长度远大于一帧CAN总线数据所能加载的数据,因此需要分段、用多帧CAN总线数据发送给所述网关102。
结合参考附图5,所述网关102当接收到同一个CAN地址201对应的多个设备参数(运动控制部件Y1和Y5的设备参数)时,即认为存在两个不同的运动控制部件,将其中一个设备参数(例如设备参数1)对应为原CAN地址(地址201),将其他设备参数(例如设备参数5)对应分配新的CAN地址(例如地址205),并将新的CAN地址205发送给运动控制部件Y5作为其地址,演变为附图5所示的对应关系。
然后,遍历所有的运动控制部件104,即网关再向地址202对应的运动控制部件发送命令M4,地址202对应的运动控制部件104也将其设备参数分段发送给网关102,网关102如果接收到不同的设备参数、即认为存在不同的运动控制部件,网关102如果仅接收到一个设备参数,即认为该哈希值2仅对应一个运动控制部件Y2;然后依次查询哈希值3、哈希值4等对应的运动控制部件的设备参数,直到查找到所有的运动控制部件。
上述解决方案是用户可以选择的备用方案,只有当用户认为第一次组网时网关102没有识别出所有的运动控制部件104时才会用到该备用方案。该备用方案解决了采用哈希值识别运动控制部件104时可能会出现遗漏的问题,但该方案由于设备参数长度较长、需要分多帧发送,因此耗时较长、组网速度慢。
作为一种举例说明,当所述网关102接收到同一个CAN地址对应的多个设备参数时,将其中一个设备参数对应为原CAN地址,将其他设备参数对应分配新的CAN地址,并将所述新的CAN地址发送给对应的运动控制部件104的具体实现方法是:将所述网关102最先接收到的一个设备参数(如设备参数1)对应为原CAN地址201;将所述网关102接收到的其他设备参数(如设备参数5)的CAN地址205,按时间顺序分配在已经分配的CAN地址(即地址201-204)之后。
作为一种变形,当所述网关102接收到同一个CAN地址对应的多个设备参数时,将其中一个设备参数对应为原CAN地址,将其他设备参数对应分配新的CAN地址,并将所述新的CAN地址发送给对应的运动控制部件104的具体实现方法也可以是将网关102最后接收到的一个设备参数(如设备参数5)对应为原CAN地址201;将所述网关102接收到的其他设备参数(如设备参数1)的CAN地址205依序分配为新地址。
作为又一种变形,当所述网关102接收到同一个CAN地址对应的多个设备参数时,将其中一个设备参数对应为原CAN地址,将其他设备参数对应分配新的CAN地址,并将所述新的CAN地址发送给对应的运动控制部件104的具体实现方法也可以是随机分配方式。
在本实施例中,所述设备参数包括有:厂商识别名称、产品系列名称和产品序列号。
作为一种变形,所述设备参数还可以包括有产地识别名称等其他参数。
结合参考附图6,附图6示出了一种CAN通信网络的地址分配方法600,用于包括有主节点和从节点的CAN通信网络,如附图1中由网关102(主节点)和多个运动控制部件104(从节点)组成的CAN通信网络,方法600包括有:
步骤S1:在各个从节点上存储有每个从节点对应的设备参数、以及所述设备参数对应的哈希值;
步骤S2:所述主节点通过广播向所有从节点发送第一设备参数查询命令;
步骤S3:每个从节点依据所述第一设备参数查询命令,将对应的哈希值发送给所述主节点;
步骤S4:所述主节点给接收到的每一个哈希值对应分配一个CAN地址,并将所述CAN地址发送给对应的从节点。
本发明的地址分配方法600由于将设备参数压缩为了对应的哈希值,哈希值一般仅有4字节,在一帧CAN总线数据中即可完成加载,因此主节点可以十分快速的识别出各个从节点。
作为一种举例说明,在步骤S4中,所述主节点给接收到的每一个哈希值对应分配一个的CAN地址、并将所述CAN地址发送给对应的从节点具体是:所述主节点根据接收到的每个哈希值的时间顺序、依序分配所述CAN地址给对应的哈希值,并将所述CAN地址发送给对应的从节点。
作为一种变形,所述主节点给接收到的每一个哈希值对应分配一个的CAN地址、并将所述CAN地址发送给对应的从节点的具体实现方法也可以是将主节点接收到的每个哈希值的时间倒序、依序分配所述CAN地址给对应的哈希值,并将所述CAN地址发送给对应的从节点。
作为又一种变形,所述主节点给接收到的每一个哈希值对应分配一个的CAN地址、并将所述CAN地址发送给对应的从节点的具体实现方法也可以是随机分配的方式。
作为又一种举例说明,结合参考附图7,所述方法600还可以包括:
步骤S5:依据一个选择命令,所述主节点向其中一个CAN地址对应的从节点发送第二设备参数查询命令;
步骤S6:所述从节点依据所述第二设备参数查询命令,将所述设备参数分段发送给所述主节点;
步骤S7:当所述主节点接收到多个设备参数时,将其中一个设备参数对应为原CAN地址,将其他设备参数对应分配新的CAN地址;并将所述新的CAN地址发送给对应的从节点;
依据上述步骤S5-S7,遍历所有的从节点。
由于从节点的设备参数经过哈希算法计算为哈希值的时候,可能会出现不同的设备参数计算为相同的哈希值的情况,虽然这种情况出现的概率极小,一旦出现了不同的设备参数对应相同的哈希值,主节点会将接收到的多个哈希值作为同一个处理,即会将多个从节点认为只有一个从节点(一般是主节点最先接收到的哈希值对应的从节点),而将其他从节点忽略。
通过上述步骤S5-S7的识别,主节点会查询得到每个从节点的设备参数,由于每个从节点的设备参数肯定不同,因此可以识别出所有的从节点,再将识别出的相同的哈希值对应的多个从节点分别分配给CAN地址,即可识别出所有的从节点,但该方案设备参数长度较长、需要分多帧发送,因此耗时较长、组网速度慢。
作为一种举例说明,步骤S7中,当所述主节点接收到多个设备参数时,将其中一个设备参数对应为原CAN地址,将其他设备参数对应分配新的CAN地址,具体是:
将所述主节点最先接收到的一个设备参数对应为原CAN地址;
将所述主节点接收到的其他设备参数的CAN地址,按时间顺序排列在步骤S4分配的最后一个CAN地址之后。
作为一种变形,步骤S7中,当所述主节点接收到多个设备参数时,将其中一个设备参数对应为原CAN地址,将其他设备参数对应分配新的CAN地址,还可以是:将主节点最后接收到的一个设备参数对应为原CAN地址其他设备参数对应分配新的CAN地址。
作为又一种变形,步骤S7中,当所述主节点接收到多个设备参数时,将其中一个设备参数对应为原CAN地址,将其他设备参数对应分配新的CAN地址,还可以是随机分配方式。
作为一种举例说明,所述设备参数包括有:厂商识别名称、产品系列名称和产品序列号。
作为一种变形,所述设备参数还可以包括有产地识别名称等其他参数。
本发明还提供一种存储有计算机程序的计算机可读介质,所述计算机程序供一个或多个处理器运行以执行CAN通信网络的地址分配方法600。
应当理解的是,本发明提供的CAN通信网络的地址分配方法600的具体实现形式可以是在一台计算机上、或者是一个或多个处理器上、或者是一台工业控制设备上、或者是一套由上位机和机器人等构成的运动控制系统上,等等。
应当理解的是,本发明提供的计算机可读介质可以是供在一台计算机上可运行的、或者是在一个或多个处理器上可运行的、或者是在一台工业控制设备上可运行的、或者是一套由上位机和机器人等构成的运动控制系统上可运行的,等等。
本发明提供的运动控制系统100在运动控制部件104中不仅存储其对应的设备参数,还将设备参数计算为对应的哈希值,组网时网关102可以首先查询每个运动控制部件104的哈希值,由于哈希值很短,通过一帧CAN总线数据即可实现加载,因此网关102可以方便的查询到所有的运动控制部件的哈希值,然后对应每个哈希值分配一个CAN地址,作为每个运动控制部件在运动控制系统100中的地址,即可方便、快捷的管理多个运动控制部件,解决了背景技术中存在的现有技术管理复杂、灵活性差、不能很好的管理多个运动控制部件的问题。
为了进一步解决不同的设备参数对应相同的哈希值、网关102无法识别出运动控制系统100中的所有运动控制部件104的问题,本发明还提供给用户一个选择,用户可以选择采用备用方案,即网关102逐个查询每个运动控制部件104的设备参数,对同样的哈希值对应的不同设备参数再进行地址分配,虽然由于设备参数长度较长、需要分多帧发送,因此耗时较长、组网速度慢,但不会出现遗漏运动控制部件的情况。
以上所述的仅为本发明的具体实施例,所应理解的是,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想,并不用于限定本发明的保护范围,凡在本发明的思想和原则之内所做的任何修改、等同替换等等,均应包含在本发明的保护范围之内。
Claims (16)
1.一种CAN通信网络的地址分配方法,用于包括有主节点和从节点的CAN通信网络,其特征在于所述方法包括:
步骤S1:在各个从节点上存储有每个从节点对应的设备参数、以及所述设备参数对应的哈希值;
步骤S2:所述主节点通过广播向所有从节点发送第一设备参数查询命令;
步骤S3:每个从节点依据所述第一设备参数查询命令,将对应的哈希值发送给所述主节点;
步骤S4:所述主节点给接收到的每一个哈希值对应分配一个CAN地址,并将所述CAN地址发送给对应的从节点。
2.根据权利要求1所述的CAN通信网络的地址分配方法,其特征在于:
步骤S4中,所述主节点给接收到的每一个哈希值对应分配一个的CAN地址、并将所述CAN地址发送给对应的从节点具体是:
所述主节点根据接收到的每个哈希值的时间顺序、依序分配所述CAN地址给对应的哈希值,并将所述CAN地址发送给对应的从节点。
3.根据权利要求1或2所述的CAN通信网络的地址分配方法,其特征在于,所述方法还包括:
步骤S5:依据一个选择命令,所述主节点向其中一个CAN地址对应的从节点发送第二设备参数查询命令;
步骤S6:所述从节点依据所述第二设备参数查询命令,将所述设备参数分段发送给所述主节点;
步骤S7:当所述主节点接收到多个设备参数时,将其中一个设备参数对应为原CAN地址,将其他设备参数对应分配新的CAN地址;并将所述新的CAN地址发送给对应的从节点;
依据上述步骤S5-S7,遍历所有的从节点。
4.根据权利要求3所述的CAN通信网络的地址分配方法,其特征在于,
步骤S7中,当所述主节点接收到多个设备参数时,将其中一个设备参数对应为原CAN地址,将其他设备参数对应分配新的CAN地址,具体是:
将所述主节点最先接收到的一个设备参数对应为原CAN地址;
将所述主节点接收到的其他设备参数的CAN地址,按时间顺序排列在步骤S4分配的最后一个CAN地址之后。
5.根据权利要求1、2或4所述的CAN通信网络的地址分配方法,其特征在于:
所述设备参数包括有:厂商识别名称、产品系列名称和产品序列号。
6.根据权利要求3所述的CAN通信网络的地址分配方法,其特征在于:
所述设备参数包括有:厂商识别名称、产品系列名称和产品序列号。
7.一种包括有CAN通信网络的运动控制系统,所述运动控制系统包括有网关和多个运动控制部件,其特征在于:
所述每个运动控制部件中存储有每个运动控制部件对应的设备参数、以及所述设备参数对应的哈希值;
所述网关,用于依据一个CAN通信网络连接命令产生一个第一设备参数查询命令;
所述每个运动控制部件,用于根据所述第一设备参数查询命令,将各自的哈希值发送给所述网关;
所述网关,还用于将接收到的每一个哈希值对应分配一个CAN地址,并将所述CAN地址发送给对应的运动控制部件,作为所述运动控制部件的CAN地址。
8.根据权利要求7所述的运动控制系统,其特征在于:
所述网关将接收到的每一个哈希值对应分配一个CAN地址是依据:所述网关接收到的所述哈希值的时间顺序、依序分配所述CAN地址给所述哈希值。
9.根据权利要求7或8所述的运动控制系统,其特征在于:
所述网关,还用于依据一个选择命令,先后向每一个所述CAN地址对应的运动控制部件发送第二设备查询命令;
所述运动控制部件,还用于当接收到所述第二设备查询命令后,将存储的所述设备参数分段发送给所述网关;
当所述网关接收到同一个CAN地址对应的多个设备参数时,将其中一个设备参数对应为原CAN地址,将其他设备参数对应分配新的CAN地址,并将所述新的CAN地址发送给对应的运动控制部件。
10.根据权利要求9所述的运动控制系统,其特征在于:
当所述网关接收到同一个CAN地址对应的多个设备参数时,将其中一个设备参数对应为原CAN地址,将其他设备参数对应分配新的CAN地址,并将所述新的CAN地址发送给对应的运动控制部件,具体是:
将所述网关最先接收到的一个设备参数对应为原CAN地址;
将所述网关接收到的其他设备参数的CAN地址,按时间顺序分配在已经分配的CAN地址之后。
11.根据权利要求7、8或10所述的运动控制系统,其特征在于:
所述设备参数包括有:厂商识别名称、产品系列名称和产品序列号。
12.根据权利要求9所述的运动控制系统,其特征在于:
所述设备参数包括有:厂商识别名称、产品系列名称和产品序列号。
13.一种网关,用于与多个运动控制部件组成CAN通信网络,其特征在于:
所述网关,用于查询所述每个运动控制部件中存储的设备参数对应的哈希值,将接收到的每一个哈希值对应分配一个CAN地址,并将所述CAN地址发送给对应的运动控制部件,作为所述运动控制部件的CAN地址。
14.根据权利要求13所述的网关,其特征在于:
所述网关,还用于依据一个选择命令,先后查询每一个所述CAN地址对应的运动控制部件的设备参数,当接收到同一个CAN地址对应的多个设备参数时,将其中一个设备参数对应为原CAN地址,将其他设备参数对应分配新的CAN地址,并将所述新的CAN地址发送给对应的运动控制部件。
15.根据权利要求14所述的网关,其特征在于:
所述设备参数包括有:厂商识别名称、产品系列名称和产品序列号。
16.一种存储有计算机程序的计算机可读介质,其特征在于:
所述计算机程序供一个或多个处理器运行以执行如权利要求1-6中的任一CAN通信网络的地址分配方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710779793.5A CN107395787B (zh) | 2017-09-01 | 2017-09-01 | Can通信网络的地址分配方法、系统、网关和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710779793.5A CN107395787B (zh) | 2017-09-01 | 2017-09-01 | Can通信网络的地址分配方法、系统、网关和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107395787A true CN107395787A (zh) | 2017-11-24 |
CN107395787B CN107395787B (zh) | 2020-10-16 |
Family
ID=60347562
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710779793.5A Active CN107395787B (zh) | 2017-09-01 | 2017-09-01 | Can通信网络的地址分配方法、系统、网关和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107395787B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108737590A (zh) * | 2018-05-15 | 2018-11-02 | 浙江正泰电器股份有限公司 | 一种地址自动分配的方法、系统、Modbus主站、Modbus从站 |
CN108881505A (zh) * | 2018-05-30 | 2018-11-23 | 武汉高仕达电气有限公司 | 一种can总线节点地址分配方法及系统 |
CN109495597A (zh) * | 2018-10-26 | 2019-03-19 | 芜湖智久机器人有限公司 | 在线修改设备目标地址的系统及其方法、设备在线管理方法 |
CN110632895A (zh) * | 2019-03-25 | 2019-12-31 | 镁伽科技(深圳)有限公司 | 运动控制部件的管理方法、控制设备、运动控制系统 |
CN110868343A (zh) * | 2019-11-12 | 2020-03-06 | 杭州深渡科技有限公司 | Knx节点自动发现方法和knx系统 |
CN113194462A (zh) * | 2021-03-30 | 2021-07-30 | 北京和峰科技有限公司 | 节点地址分配方法、装置、存储介质及电子设备 |
CN113556270A (zh) * | 2021-07-20 | 2021-10-26 | 苏州苏试试验集团股份有限公司 | Can网络 |
CN113676359A (zh) * | 2021-09-09 | 2021-11-19 | 广州安的电子科技有限公司 | 物联网多设备通信配置方法、通信设备、程序产品及介质 |
WO2022061760A1 (en) * | 2020-09-25 | 2022-03-31 | Elekta Limited | Can address assignment |
CN114422480A (zh) * | 2021-12-03 | 2022-04-29 | 深圳市禾望电气股份有限公司 | 通讯地址自动分配方法 |
WO2024103334A1 (en) * | 2022-11-17 | 2024-05-23 | Analog Devices International Unlimited Company | Method and apparatus for can id distribution |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008097202A1 (en) * | 2007-02-09 | 2008-08-14 | Agency For Science, Technology And Research | A method and system for tamper proofing a system of interconnected electronic devices |
CN101631147A (zh) * | 2009-08-07 | 2010-01-20 | 华为技术有限公司 | 一种分配串行总线从节点地址的方法、电子装置和系统 |
CN102582462A (zh) * | 2012-02-28 | 2012-07-18 | 华霆(合肥)动力技术有限公司 | 一种电动汽车电池管理系统 |
CN103826252A (zh) * | 2014-01-16 | 2014-05-28 | 京信通信系统(中国)有限公司 | 主从设备之间获取及发送序列号的方法和系统 |
CN107071077A (zh) * | 2017-01-10 | 2017-08-18 | 邯郸美的制冷设备有限公司 | 空调系统的通信地址分配方法、设备及其系统 |
-
2017
- 2017-09-01 CN CN201710779793.5A patent/CN107395787B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008097202A1 (en) * | 2007-02-09 | 2008-08-14 | Agency For Science, Technology And Research | A method and system for tamper proofing a system of interconnected electronic devices |
CN101631147A (zh) * | 2009-08-07 | 2010-01-20 | 华为技术有限公司 | 一种分配串行总线从节点地址的方法、电子装置和系统 |
CN102582462A (zh) * | 2012-02-28 | 2012-07-18 | 华霆(合肥)动力技术有限公司 | 一种电动汽车电池管理系统 |
CN103826252A (zh) * | 2014-01-16 | 2014-05-28 | 京信通信系统(中国)有限公司 | 主从设备之间获取及发送序列号的方法和系统 |
CN107071077A (zh) * | 2017-01-10 | 2017-08-18 | 邯郸美的制冷设备有限公司 | 空调系统的通信地址分配方法、设备及其系统 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108737590B (zh) * | 2018-05-15 | 2022-02-25 | 浙江正泰电器股份有限公司 | 一种地址自动分配的方法、系统、Modbus主站、Modbus从站 |
CN108737590A (zh) * | 2018-05-15 | 2018-11-02 | 浙江正泰电器股份有限公司 | 一种地址自动分配的方法、系统、Modbus主站、Modbus从站 |
CN108881505A (zh) * | 2018-05-30 | 2018-11-23 | 武汉高仕达电气有限公司 | 一种can总线节点地址分配方法及系统 |
CN109495597A (zh) * | 2018-10-26 | 2019-03-19 | 芜湖智久机器人有限公司 | 在线修改设备目标地址的系统及其方法、设备在线管理方法 |
CN110632895A (zh) * | 2019-03-25 | 2019-12-31 | 镁伽科技(深圳)有限公司 | 运动控制部件的管理方法、控制设备、运动控制系统 |
CN110868343A (zh) * | 2019-11-12 | 2020-03-06 | 杭州深渡科技有限公司 | Knx节点自动发现方法和knx系统 |
WO2022061760A1 (en) * | 2020-09-25 | 2022-03-31 | Elekta Limited | Can address assignment |
CN113194462A (zh) * | 2021-03-30 | 2021-07-30 | 北京和峰科技有限公司 | 节点地址分配方法、装置、存储介质及电子设备 |
CN113556270A (zh) * | 2021-07-20 | 2021-10-26 | 苏州苏试试验集团股份有限公司 | Can网络 |
CN113556270B (zh) * | 2021-07-20 | 2023-03-14 | 苏州苏试试验集团股份有限公司 | Can网络 |
CN113676359A (zh) * | 2021-09-09 | 2021-11-19 | 广州安的电子科技有限公司 | 物联网多设备通信配置方法、通信设备、程序产品及介质 |
CN114422480A (zh) * | 2021-12-03 | 2022-04-29 | 深圳市禾望电气股份有限公司 | 通讯地址自动分配方法 |
CN114422480B (zh) * | 2021-12-03 | 2024-02-20 | 深圳市禾望电气股份有限公司 | 通讯地址自动分配方法 |
WO2024103334A1 (en) * | 2022-11-17 | 2024-05-23 | Analog Devices International Unlimited Company | Method and apparatus for can id distribution |
Also Published As
Publication number | Publication date |
---|---|
CN107395787B (zh) | 2020-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107395787A (zh) | Can通信网络的地址分配方法、系统、网关和介质 | |
US20210075307A1 (en) | Method For Controlling A Movement, A Control Device, A Linear Drive, A Production Machine, A Packaging Machine And A Computer Program Product | |
CN104734980B (zh) | 工业现场总线多协议路由器及多协议转换方法 | |
CN103048959B (zh) | 用于配置控制或自动化系统的方法和装置 | |
CN101784967B (zh) | 控制节点及控制 | |
CN107505882A (zh) | 一种多轴运动控制器及控制方法 | |
CN108908851A (zh) | 注塑机的电射台伺服系统及其数据交互流程 | |
Reinhart et al. | Automatic configuration (plug & produce) of industrial ethernet networks | |
CN105573253A (zh) | 一种工业机器人群控系统及方法 | |
CN103279118B (zh) | 一种新能源客车多动力单元协调控制装置实时测标系统 | |
CN105666526A (zh) | 基于人工智能的机器人调试系统 | |
CN102591306A (zh) | 双系统组件式的工业机器人控制器 | |
US9342068B2 (en) | Motion controller and motor control system | |
CN109213080B (zh) | 一种机床的控制方法及其装置 | |
CN105259806A (zh) | 控制器升级方法和系统及主控制器和从控制器 | |
CN103827759A (zh) | 用于在控制或自动化系统中配置通信接口模块的方法 | |
EP1521149B1 (en) | Programmable logic controller with variable name resolving means | |
CN107363835A (zh) | 运动控制部件的配置方法、装置、介质和机器人系统 | |
CN112276943A (zh) | 机器人示教控制方法、示教控制系统、计算机设备和介质 | |
CN107838922A (zh) | 一种机器人免重复示教的方法 | |
US9170578B2 (en) | Tool recognition with profinet | |
CN105652785A (zh) | 一种基于iec60870-5-104远动规约的plc通信模块 | |
CN104991544A (zh) | 一种缝纫机网络控制系统及方法 | |
CN106294155A (zh) | 一种分布式i/o仿真控制测试方法、系统及仿真计算机 | |
CN105745584A (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 |