一种模块化的伺服驱动器软件框架及其设计方法

文档序号:29701597发布日期:2022-04-16 14:37阅读:245来源:国知局
一种模块化的伺服驱动器软件框架及其设计方法

1.本发明涉及伺服控制系统技术领域,尤其涉及一种模块化的伺服驱动器软件框架及其设计方法。


背景技术:

2.万物互联是如今科技发展的潮流,它是实时操作系统、实时通信和实时控制优化算法等多种基础性技术的交叉点。面对多样化的设备,以往各自制定嵌入式实现框架的方案会大大限制了万物互联的进程。同时随着现代工业的不断发展,越来越多的社会生产趋于集成化、自动化,工业互联网应运而生。而工业互联网的形成需要各种各样的标准。在高档数控机床和机器人领域中,要求在汽车、机械、电子轻工等工业化设备和医疗健康、家庭服务等服务机器人应用领域中促进设备标准化、模块化发展,而在新一代信息技术领域中,更是要求促进涉及到的相关工业软件的自主研发。
3.不同的工业生产中用到的工业设备自然不同,每一套工业设备都需要有专门的控制系统去实现其功能。而如此多不同的设备则需要搭建多种控制系统,这为系统开发者带来了麻烦,也给社会生产工业化进程带来了阻力。同时,随着一些工业生产线的规模日趋庞大与复杂(如多轴控制系统),控制系统的底层嵌入式开发则会出现代码冗杂、重复利用率低、拓展性差、后期维护困难等问题。


技术实现要素:

4.为至少一定程度上解决现有技术中存在的技术问题之一,本发明的目的在于提供一种模块化的伺服驱动器软件框架及其设计方法。
5.本发明所采用的技术方案是:
6.一种模块化的伺服驱动器软件框架,包括5种基本模块:
7.通信模块,包括通信硬件模块和通信虚拟模块,所述通信硬件模块负责完成不同通信方式的驱动配置,实现透明传输;所述通信虚拟模块负责协议帧的封装与解析;
8.指令模块,包括指令硬件模块和指令虚拟模块,所述指令硬件模块负责利用指令装载机制从所述通信模块处装载指令数据;所述指令虚拟模块负责通过指令循环机制使控制指令参与到系统环路运算中;
9.控制器模块,包括控制器虚拟模块,所述控制器虚拟模块负责控制率的计算;
10.传感器模块,包括传感器硬件模块和传感器虚拟模块,所述传感器硬件模块负责配置不同传感器的驱动,获取传感器数据并做预处理;所述传感器虚拟模块用于负责根据所述传感器虚拟模块的硬件地址,从具有相同硬件地址的传感器硬件模块中获取数据;
11.设备模块,包括设备硬件模块和设备虚拟模块,所述设备虚拟模块负责获取控制器计算获得的控制率;所述设备硬件模块负责根据所述设备硬件模块的硬件地址,将具有相同硬件地址的设备虚拟模块的控制率传输给实际设备。
12.进一步,所述不同通信方式包括但不限于uart通信方式、can总线通信方式以及
ethercat总线等通信方式;
13.所述协议帧的封装与解析,包括:
14.根据可拓展的协议帧格式封装需要发送的数据和解析接收到的协议帧;其中,所述协议帧格式包括但不限于地址、数据以及时间戳等内容。
15.进一步,根据可拓展的协议帧格式封装需要发送的数据和解析接收到的协议帧,包括:
16.对总线上的协议帧进行解密操作,解密后获得的协议帧包含驱动器地址和模块地址;
17.驱动器接收到协议帧后,通过驱动器地址确定是否需要接收该协议帧;若确定需要接收,驱动器根据模块地址将解析完后的数据分发给不同的基本模块,从而实现总线上的数据交互;发送过程则相反。
18.进一步,在指令模块中,指令的形式包括预设的特殊指令和上位机实时产生的指令;指令循环机制用于使指令虚拟模块的输出处于停止状态、末位保持状态或者自动循环指令存储数组状态;
19.在控制器模块中,控制器由多个基本控制单元组成,以实现前馈控制结构、单环控制结构或者多环控制结构,满足不同控制需求的控制器设计。控制器可以采取多种实现方式,如fir滤波器、差分方程、状态空间表达式等,因此本控制器可以实现任意的控制算法,如pid控制算法、lqr控制算法、h∞控制算法等。
20.本发明所采用的另一技术方案是:
21.如上所述的一种模块化的伺服驱动器软件框架的设计方法,包括以下步骤:
22.将底层代码分为硬件模块层和虚拟模块层,其中硬件模块层负责与底层硬件的数据交互,虚拟模块层负责系统各部分之间的数据交互、运算以及与上位机/通信总线的数据交互;
23.建立模块工作机制;
24.建立双地址绑定机制,实现硬件对算法的透明效果;
25.建立数据传输保障机制,用以保证数据传输的可靠性和安全性;
26.建立系统构建机制;
27.建立驱动器网络系统;
28.其中,所述硬件模块层包括通信硬件模块、指令硬件模块、传感器硬件模块和设备硬件模块,所述虚拟模块层包括通信虚拟模块、指令虚拟模块、控制器虚拟模块、传感器虚拟模块和设备虚拟模块。
29.进一步,所述建立模块工作机制,包括:
30.通过虚拟模块的选中、启用、上传3种标志位来使能对应的基本模块的选中、启用、上传功能;
31.基于基本模块的输入输出管理功能,基本模块可接收单个或多个信号同时输入,同时输出单个或多个信号。
32.进一步,所述建立双地址绑定机制,包括:
33.根据因不同需求而配置的双地址绑定表,伺服驱动器的虚拟模块可获得对应的实际硬件的硬件地址,从而实现跟不同硬件模块的绑定;
34.绑定后,硬件模块可按需配置不同硬件的驱动,也可对获取的数据进行预处理。
35.进一步,所述数据传输保障机制包括校验和加强网络安全两种措施;
36.所述校验采用三巡校验机制:上位机与伺服驱动器间对重要通信数据进行往复三次的校验,伺服驱动器才能进行正常的数据运算;
37.所述加强网络安全通过加密方式来实施。
38.进一步,所述建立系统构建机制,包括:
39.根据不同设备的不同需求,组合5种基本模块来构建一个控制系统;
40.通过相应模块的标志位去设置上位机与伺服驱动器之间通信方式的选择、传感器数据获取方式的选择以及设备控制量传输方式的选择,从而构建出不同需求下的系统。
41.进一步,所述建立驱动器网络系统,包括:
42.构建完成单个驱动器系统后,将通信总线上的多个驱动器系统连接起来,组成一个多机通信的系统;
43.其中,所述多机通信的系统中每个驱动器之间可以进行通信,驱动器与上位机之间也可以进行通信。
44.本发明的有益效果是:本发明基于5种基本模块,可根据实际系统结构需要(尤其是多轴控制系统)自由组合,搭配独特的系统构建机制,能够适应不同环境不同结构设备的需求,提高伺服驱动器的利用率。
附图说明
45.为了更清楚地说明本发明实施例或者现有技术中的技术方案,下面对本发明实施例或者现有技术中的相关技术方案附图作以下介绍,应当理解的是,下面介绍中的附图仅仅为了方便清晰表述本发明的技术方案中的部分实施例,对于本领域的技术人员而言,在无需付出创造性劳动的前提下,还可以根据这些附图获取到其他附图。
46.图1是本发明实施例的系统构建机制搭建的位置-速度-电流三环控制伺服系统的示意图;
47.图2是本发明实施例的模块基本类型之间关系图;
48.图3是本发明实施例的通信硬件模块和通信虚拟模块的模块变量;其中,图3(a)为通信硬件模块的模块变量示意图,图3(b)为通信虚拟模块的模块变量示意图;
49.图4是本发明实施例的指令硬件模块和指令虚拟模块的模块变量;其中,图4(a)为指令硬件模块的模块变量示意图,其中,图4(b)为指令虚拟模块的模块变量示意图;
50.图5为本发明实施例的控制器虚拟模块的模块变量;
51.图6为本发明实施例的传感器硬件模块和传感器虚拟模块的模块变量;其中,图6(a)为传感器硬件模块的模块变量示意图,其中,图6(b)为传感器虚拟模块的模块变量示意图;
52.图7为本发明实施例的设备硬件模块和设备虚拟模块的模块变量;其中,图7(a)为设备硬件模块的模块变量示意图,其中,图7(b)为设备虚拟模块的模块变量示意图;
53.图8为本发明实施例的指令装载机制示意图;
54.图9为本发明实施例的指令循环机制示意图;
55.图10为本发明实施例中的基本控制单元串联成高阶控制器示意图;
56.图11为本发明实施例的模块工作机制图示意图;
57.图12为本发明实施例的双地址绑定机制示意图;
58.图13为本发明实施例的三巡校验机制示意图;
59.图14为本发明实施例的驱动器网络系统示意图;
60.图15为本发明实施例中一种设计方法的步骤流程图。
具体实施方式
61.下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。对于以下实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
62.在本发明的描述中,需要理解的是,涉及到方位描述,例如上、下、前、后、左、右等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
63.在本发明的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
64.本发明的描述中,除非另有明确的限定,设置、安装、连接等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本发明中的具体含义。
65.本实施例提供一种模块化的伺服驱动器软件框架,该伺服驱动器软件框架包括通信模块、指令模块、控制器模块、传感器模块和设备模块这5种基本模块。
66.其中,通信模块负责数据的透明传输和传输协议帧的封装与解析,通信模块包括通信硬件模块和通信虚拟模块。通信硬件模块负责完成不同通信方式的驱动配置,实现透明传输,即驱动器无论采用哪种通信方式,如uart、can总线以及ethercat总线等进行数据传输,都能在总线上接收和发送封装完成的协议帧。通信虚拟模块负责协议帧的封装与解析,即做好总线的节点管理、协议帧的时钟同步和加密等网络安全措施,根据统一的可拓展的协议帧格式(包含但不限于地址、数据、时间戳等内容)封装需要发送的数据和解析接收到的协议帧:接收时,总线上的协议帧需先经过解密操作,解密后的协议帧包含驱动器地址和模块地址,驱动器接收到协议帧后,首先通过驱动器地址确定是否需要接收该协议帧;若确定接收,驱动器再根据协议帧中的模块地址将解析完后的数据分发给不同的基本模块,从而实现总线上的数据交互;发送过程则相反。
67.指令模块包括指令硬件模块和指令虚拟模块。指令硬件模块负责利用指令装载机制从通信模块处装载指令数据(该数据为电机控制指令,而非运动控制指令)。指令虚拟模块则通过指令循环机制使控制指令参与到系统环路运算中。这里的系统指的是伺服控制系统,比如图1所示的伺服控制系统。
68.指令形式多样,可以是预设的某些特殊指令,如正弦指令,也可以是上位机实时产生的指令,长度不一,因此需要指令装载机制将指令装载分为首次装载和实时装载,保证指令装载不出错;指令循环机制可以使指令虚拟模块的输出处于停止、末位保持或者自动循环指令存储数组等状态。
69.控制器模块只包含虚拟模块,主要负责控制率的计算。本控制器的形式灵活可变,可由多个基本控制单元组成一个复杂控制器,从而实现前馈、单环或者多环等任意控制结构,满足不同控制需求的控制器设计。除此之外,控制器可以采取多种实现方式,如fir滤波器、差分方程、状态空间表达式等,因此本控制器可以实现任意的控制算法,如pid控制算法、lqr控制算法、h∞控制算法等。
70.传感器模块包括传感器硬件模块和传感器虚拟模块。传感器硬件模块负责配置不同传感器的驱动,将传感器数据从底层接口处获取并做预处理(如滤波等),然后虚拟模块根据其硬件地址,从具有相同硬件地址的传感器硬件模块中获取数据。
71.设备模块包括设备硬件模块和设备虚拟模块。设备虚拟模块从控制环路中获取到控制器计算出来的控制率后,硬件模块会根据其硬件地址,将具有相同硬件地址的虚拟模块的控制率传输给实际设备。
72.如图15所示,基于上述的5中基本模块,本实施例提供一种设计方法,包括以下步骤:
73.s101:将底层代码分为硬件模块层和虚拟模块层。
74.分层设计底层代码。将底层代码分为硬件模块层和虚拟模块层:硬件模块层负责与底层硬件的数据交互,主要包含通信、指令、传感器和设备4种硬件模块;虚拟模块层负责系统各部分之间的数据交互、运算以及与上位机/通信总线等的数据交互,主要包含通信、指令、控制器、传感器和设备5种虚拟模块。每种基本模块都有各自的模块变量和功能函数,用来处理模块内或模块间的数据交互及运算。
75.s102:建立模块工作机制。
76.通过虚拟模块的选中、启用、上传3种标志位来使能对应的基本模块的选中、启用、上传功能;依靠模块的输入输出管理功能,模块可接收单个或多个信号同时输入,同时输出单个或多个信号。
77.s103:建立双地址绑定机制,实现硬件对算法的透明效果,即虚拟模块层保持独立性,不受实际硬件改变的影响。
78.根据因不同需求而配置的双地址绑定表,伺服驱动器的虚拟模块可获得对应的实际硬件的硬件地址,从而实现跟不同硬件模块的绑定。绑定后,硬件模块可以按需配置不同硬件的驱动,也可以对获取的数据进行预处理。
79.s104:建立数据传输保障机制,用以保证数据传输的可靠性和安全性。
80.该机制主要包含校验和加强网络安全两种措施,其中校验采用三巡校验机制:上位机与伺服驱动器间对重要通信数据进行往复三次的校验,伺服驱动器才能进行正常的数据运算;加强网络安全主要通过加密等方式来实施。
81.s105:建立系统构建机制。
82.基于模块化的思想,根据不同设备的不同需求(如构建单轴或多轴系统),灵活组合通信、指令、控制器、传感器、设备这5种基本模块来构建一个控制系统。同时,通过相应模
块的标志位去设置上位机与伺服驱动器之间通信方式的选择、传感器数据获取方式的选择以及设备控制量传输方式的选择等,从而构建出不同需求下的系统。值得注意的是,这样构建出来的系统便于实现驱控一体。
83.s106:建立驱动器网络系统。
84.构建完成单个驱动器系统后,还可以将通信总线上的多个驱动器系统连接起来,组成一个多机通信的系统。该系统中每个驱动器之间可以进行通信,驱动器与上位机之间也可以进行通信。
85.以下结合附图及具体实施例,对上述的软件框架及设计方法做进一步的说明。
86.本实施例以实现一个位置-速度-电流三环控制的伺服系统为例,详细阐述建立模块化的伺服驱动器软件框架的步骤。
87.图1为位置-速度-电流三环控制的伺服系统。为构建该伺服系统,首先要用一个控制器模块作为电流环控制器,配合一个检测电流的传感器模块和一个设备模块,组成电流环的负反馈系统;然后在该电流环外面加上速度环控制器和检测速度的传感器模块,实现速度环的控制结构;最后,在速度环的外面加上位置环控制器、检测位置的传感器模块以及指令模块,得到最终的位置-速度-电流三环控制的伺服系统。
88.如图2所示,本模块化的伺服驱动器软件框架主要包含虚拟模块层和硬件模块层两层关系。其中,硬件模块层包含通信、指令、传感器和设备硬件模块,主要实现与底层硬件的数据交互;虚拟模块层包含通信、指令、控制器、传感器和设备虚拟模块,主要负责系统各模块之间的数据交互、运算以及与上位机/通信总线之间的数据交互。
89.步骤s1-1:如图3(a)所示,生成本发明实施例的通信硬件模块的变量表。其中,每一种基本模块的haw_addr和vir_addr都分别唯一,用来区分不同的基本模块以及同种基本模块的不同实例;output为从总线上接收到或即将发送到总线上的数据;interface决定驱动器网络的通信方式,如interface为1时采用串口通信,为2时采用can总线通信,为3时采用以太网通信等等。由于通信硬件模块负责实现透明传输,所以还会负责实现以上3种通信方式的驱动配置使协议帧能在总线上发送和接收。
90.步骤s1-2:如图3(b)所示,生成本发明实施例的硬件虚拟模块的变量表。其中,driver_addr是该驱动器节点的地址,用来区分总线上不同设备的协议帧并实现对节点的管理;haw_addr和vir_addr与指令硬件模块相同;output为总线数据解析或组帧完成的数据;time_cnt是时间同步计数值,用来实现协议帧之间的时钟同步。协议帧采用统一的可拓展的协议帧格式:帧头+驱动器地址+模块地址+功能码+数据+时间计数值。如图14所示,假设当前的驱动器网络上有3个或3个以上的驱动器,当通信总线上有驱动器地址为0x01、模块地址为0x11的协议帧的时候,驱动器首先会对接收到的数据帧进行解密操作,如采用非对称密钥加密技术的密钥解密,然后根据该协议帧的驱动器地址是否为本驱动器地址来决定是否接受该协议帧,因此驱动器1就会将该协议帧接收。然后驱动器会解析模块地址,发现0x11是指令模块的地址,就会将数据解析并传输给指令模块,功能码是用来区分实现不同功能的协议帧,时间计数值是用来实现不同协议帧之间的时间同步,综上实现总线上的数据交互。
91.步骤s1-3:如图4(a)所示,生成本发明实施例的指令硬件模块的变量表。output为从cmd_buf[buf_len]中读取出来的指令数据,后面会被赋值给到指令虚拟模块的模块输
出;write、read、cmd_buf[buf_len]、cmd_surplus_length和cmd_surplus_read_length主要用来实现指令装载机制和指令循环机制。
[0092]
步骤s1-4:编写指令硬件模块的功能函数。如图8所示,指令硬件模块的功能函数实现其功能所采用的指令装载机制。指令形式多样,即可以为预设的某些特殊指令,如正弦指令,也可以是上位机实时产生的指令。指令硬件模块的功能函数主要负责将上位机发送过来的数据(该数据为电机控制指令,而非运动控制指令)暂存在指令存储数组中,然后读出给指令虚拟模块。在这个过程中,上位机下发的指令数据分两种形式:首次下发的指令包和实时指令数据。因此指令模块就相对应的有首次装载和实时装载两种方式。如图8所示,未进行指令数据装载时,模块的写指针write和读指针read均在箭头1的位置。当上位机首次下发一个指令包(由于本实施例中,指令存储数组cmd_buf[buf_len]的长度为16,所以该指令包大小为8)的时候,指令硬件函数就会将该指令包数据一次性全部写入cmd_buf[[buf_len]中,同时write指针会更新到上方箭头2的位置;而由于每一个控制周期系统只会读取一个指令进行运算,因此read指针只会增加到指向data2的位置,即图8中下方的箭头2位置。首次装载之后的指令数据装载均采用实时装载的方式。此时,上位机会在每个控制周期都下发一个实时指令,指令硬件模块则在每个控制周期都将一个实时指令写入指令存储数组,同时write指针会更新到上方箭头3的位置;在进行完成读数操作之后,read指针也会更新到下方箭头3的位置。如上所述,即为指令装载机制。
[0093]
步骤s1-5:如图4(b)所示,生成本发明实施例的指令虚拟模块的变量表。其中,select_flag、run_state_flag和upload_flag主要用来实现图11中的模块工作机制;data_end_status用来实现指令循环机制;output为从指令硬件模块得到的指令数据。
[0094]
步骤s1-6:编写指令虚拟模块的功能函数。图9所示为指令虚拟模块的功能函数实现其功能所采用的指令循环机制。指令虚拟模块的功能函数实现将硬件模块的输出变为虚拟模块的输出,实现这一过程需要分3种情况处理:第一种情况,当data_end_status为0时,指令虚拟模块将处于自动停止输出的状态,此时虚拟模块的output直接为0,不受指令硬件模块的output影响;第二种情况,当data_end_status为1时,指令虚拟模块将处于末位保持输出的状态,如图9所示,若此时read指针停留在data2的位置,那么虚拟模块的output会一直保持为data2的值,直到系统停止运行;第三种情况,当data_end_status为2时,指令虚拟模块将处于自动循环指令存储数组输出的状态,如图9所示,若此时read指针停留在data9的位置,那么虚拟模块的output则会在data1到data9之间按顺序一直循环输出相应的值。以上为指令循环机制。
[0095]
步骤s1-7:如图5所示,生成本发明实施例的控制器虚拟模块的变量表。在本实施例中,控制器采用pid的形式来实现,控制率的计算采用二阶差分方程的形式实现,因此控制器的分子参数、分母参数、输入数组和输出数组都是大小为3的数组。当已知控制器的当前时刻输入的时候,控制器当前时刻输出可由以下公式求出:
[0096][0097]
此时得到的output[2]即为控制器虚拟模块的模块率output。在计算出当前时刻控制率之后,还应对控制器输入输出数组进行更新,以用于下一次的控制率计算。
[0098]
图10所示为本发明实施例中对于控制器虚拟模块的特色:基本控制单元组成高阶控制器的描述。上文所述的控制器虚拟模块的实现是一个二阶控制器,当系统需要一个更
高阶的控制器去实现功能时,则需要此功能。如图10所示,当系统需要实现一个10阶控制器的时候,可以将5个二阶的控制器虚拟模块串联起来得到一个10阶的控制器。因此无论实际设备需要多少阶的控制器,都可以满足。
[0099]
步骤s1-8:如图6(a)所示,生成本发明实施例的传感器硬件模块的变量表。其中,haw_addr、vir_addr用来实现传感器的双地址绑定;output为从实际的传感器硬件中获取得到的传感器数据;在上位机下发双地址绑定表之前,需要向伺服驱动器请求当前系统的传感器信息,将name_upload_flag置位即可触发各个传感器硬件模块将其haw_addr和name[9]上传给上位机,上位机即可根据这些传感器信息选择传感器,从而确定双地址绑定表;cycle_num和pos[2]是处理传感器数据时候用到的变量,在传感器硬件模块的功能函数中使用。传感器硬件模块的功能函数主要负责将传感器数据从底层接口处获取并做一定的处理后输出为传感器硬件模块的模块输出。例如,当实际传感器为一编码器,但是系统需要速度反馈的时候,硬件功能函数则会将上一周期与本周期获取得到的位置信息存储在pos[2]中,然后将这两个时刻的位置数据差分,即可得到本周期的速度信号。interface决定传感器硬件模块和实际传感器硬件的通信方式,如interface为1时采用串口通信,为2时采用can总线通信,为3时采用以太网通信等等。
[0100]
步骤s1-9:如图6(b)所示,生成本发明实施例的传感器虚拟模块的变量表。其中,haw_addr、vir_addr用来与传感器硬件模块的相配合,实现传感器的双地址绑定;select_flag、run_state_flag和upload_flag作用和指令/控制器模块的相同,用于实现模块工作机制。传感器虚拟模块的功能函数实现双地址绑定机制的后半部分流程,根据传感器虚拟模块的haw_addr,将具有相同haw_addr的传感器硬件模块的output赋值给该虚拟模块的output。
[0101]
步骤s1-10:如图7(a)和7(b)所示,生成本发明实施例的设备硬件和虚拟模块的变量表。各模块变量的含义与传感器模块的相同,此处不再赘述。当控制器虚拟模块的控制率计算出来之后,设备虚拟模块的功能函数就负责将控制器虚拟模块的output赋值给设备虚拟模块的output,然后设备硬件模块的功能函数则按照双地址绑定机制,将虚拟模块的output赋值给相应的硬件模块的output,从而实现控制率的传输。
[0102]
步骤s2:如图11所示,建立本发明实施例的模块工作机制。由上文可知,每个基本模块的虚拟模块都含有选中select_flag、启用run_state_flag、上传upload_flag标志位。如图11所示,一个基本模块,只有当选中标志位被置位时,才被允许参与到整个控制系统的数据交互与运算中;只有当选中标志位和启用标志位都置位的时候,模块才会有输出;只有当选中标志位、启用标志位和上传标志位都置位时,系统的输出才会被上传到上位机。当模块有多个输入输出时,模块的输入输出管理功能就会根据需求对多个输入进行处理,最终产生符合需求的多个输出。这就是系统的模块工作机制。
[0103]
步骤s3:如图12所示,建立本发明实施例的双地址绑定机制。在上位机获取到所有实际的传感器信息之后,将会根据实际需要选定要使用的传感器,如选定传感器虚拟模块1中使用传感器硬件模块2的数据,选定传感器虚拟模块2中使用传感器硬件模块1的数据。此时,上位机就会生成并下发一张双地址绑定表给伺服驱动器,表的第一个字节是传感器硬件模块2的硬件地址0x02,第二个字节是传感器硬件模块1的硬件地址0x01,后面没有使用到的默认为0xff。在接收到双地址绑定表之后,按照0x01、0x02、0x03

的虚拟地址顺序,相
应的传感器虚拟模块就会将双地址绑定表中的硬件地址作为其硬件地址,以上为双地址绑定机制的前半流程。后半部分的流程由伺服驱动器传感器虚拟模块的功能函数实现。在获取传感器虚拟模块的模块输出时,会根据该虚拟模块的硬件地址,找到相同硬件地址的传感器硬件模块,将其模块输出赋值给虚拟模块的模块输出。例如,根据双地址绑定表,传感器虚拟模块1的硬件地址为0x02,那么该虚拟模块的输出就取硬件地址为0x02的传感器硬件模块2的模块输出;同理传感器虚拟模块2的模块输出为传感器硬件模块1的模块输出。通信、设备模块的双地址绑定机制与传感器模块的双地址绑定机制相似,此处不再赘述。以上即为双地址绑定机制。绑定后,通信、传感器和设备模块可以按需配置不同的传感器/设备的驱动,也可以对获取的数据进行预处理,如滤波等。
[0104]
步骤s4:如图13所示,建立本发明实施例的三巡校验机制。三巡校验机制属于数据传输保障机制中的校验措施,主要是为了保障数据传输的可靠性。假设上位机给驱动器下发一个指令长度参数,驱动器接收到协议帧后将该参数解析出来后,将其处理得到一个奇偶校验和并返回给上位机;上位机接收到该奇偶检验和之后,将其与本地保存的校验数据相比较,若相同,证明数据没出错,上位机再向驱动器下发一个校验字节,若不同,证明指令长度参数在传输过程中出现错误,上位机则重新下发这个指令长度参数;驱动器若接收到了上位机下发的校验字节,表明下位机接收到的指令长度参数是正确的,此时方可进行下一步操作,否则不能进行下一步操作。综上所述,即为三巡校验机制。
[0105]
步骤s5:在本实施例中,系统的传感器模块和设备模块与实际的硬件通信方式可以灵活地由传感器/设备硬件模块的interface变量决定,上下位机之间通信方式可由通信模块中的interface变量决定。如此在面对不同设备时,系统就不需要做太大的改动,而仅需要修改一个interface参数即可,大大地降低了系统开发的难度。
[0106]
若在该三环系统建立完成之后,由于系统需求改变,需要再构建一个三环系统并使两系统间能进行数据交互,则可先按照上述步骤进行,然后改变传感器的双地址绑定表,即可实现两个系统间的数据交互。
[0107]
值得注意的是,这样构建出来的系统还容易实现驱控一体。
[0108]
步骤s6:建立驱动器网络系统,如图14所示。构建完成单个驱动器系统后,还可以将通信总线上的多个驱动器系统连接起来,组成一个多机通信的系统。该系统中每个驱动器之间可以进行通信,驱动器与上位机之间也可以进行通信。
[0109]
综上所述,本实施例与现有技术相比,具有如下有益效果:
[0110]
(1)、模块高内聚。每种模块都有各自的模块变量,并辅以功能函数去实现其功能,极大地避免了代码冗杂的问题,提高代码重复利用率。
[0111]
(2)、系统层次清晰、“透明”。硬件模块作为下层结构,主要负责与底层硬件的数据交互以及向上层提供接口。虚拟模块作为上层结构,利用硬件模块层提供的接口,保持了与实际硬件的独立性,负责与各模块之间的数据交互与计算以及与上位机/通信总线之间的数据交互,尤其是多个控制环路、多个驱动器之间的数据共享与交互。
[0112]
(3)、结构灵活,可拓展性强。伺服驱动器的5种基本模块可根据实际系统结构需要(尤其是多轴控制系统)自由组合,搭配独特的系统构建机制,能够适应不同环境不同结构设备的需求。在此之上,双地址绑定机制能简便地实现伺服系统的虚拟模块与不同的实际硬件绑定并配置驱动,使得系统结构灵活拓展性增强,便于后期维护。最后,多个驱动器还
可以组成一个驱动器网络系统,实现不同驱动器之间的数据交互。
[0113]
(4)、指令装载机制能利用少量内存来存储大量指令数据,实现指令形式多样的同时也能保证指令的实时性;指令循环机制可以实现多种不同形式指令的执行,从而实现多种运动。
[0114]
(5)、控制器结构多样,算法多变。基本控制单元的实现方式多样,并且能够组成复杂控制器,从而能实现前馈、单环或者多环等任意控制结构,在保持控制器精度的同时,可以满足不同的控制需求。基于上述优点,本控制器可以实现任意的控制算法,如pid控制算法、lqr控制算法、h∞控制算法等,并且可以随时根据需求改变去变换控制算法。
[0115]
(6)、模块工作机制可以简单地实现对每个模块工作状态的控制,使系统的结构确定与更改变得不繁杂。
[0116]
(7)、数据传输保障机制通过数据校验和加强网络安全两种措施使得通信总线上的数据在传输的时候能不被更改或者窃取,保证了系统重要参数传输的可靠性和安全性。
[0117]
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
[0118]
在本说明书的上述描述中,参考术语“一个实施方式/实施例”、“另一实施方式/实施例”或“某些实施方式/实施例”等的描述意指结合实施方式或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。
[0119]
尽管已经示出和描述了本发明的实施方式,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施方式进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
[0120]
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于上述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本技术权利要求所限定的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1