多MCU模块伺服从站控制器实现方法
未命名
08-17
阅读:105
评论:0
多mcu模块伺服从站控制器实现方法
技术领域
1.本发明涉及伺服从站控制器技术领域,特别涉及一种多mcu模块伺服从站控制器实现方法。
技术背景
2.伺服从站控制器是工业自动化应用中,用于控制伺服从站的设备。伺服从站是一个被动的设备,不能主动发起请求,只能在控制器(主站)的请求下工作。伺服从站控制器负责向伺服从站下达命令,将指令进行解析处理,并将其转化为电信号或机械动作控制,实现对伺服从站的控制。
3.伺服从站控制器会运行一个软件程序,该程序包含了与伺服从站进行通信所需要的协议,和控制伺服从站的逻辑代码。这些控制器可以使用不同的通信协议对伺服从站控制器实现与各种通信协议的兼容,从而对不同类型的伺服从站进行控制。伺服从站控制器可以通过计算要发送给伺服从站的电信号或指令,精确地控制响应速度和位置等参数。同时,它们还具有各种输入和输出接口,用于接收来自传感器和开关的信号,并控制执行器和输出设备。伺服从站控制器是在工业自动化应用中实现对伺服从站的控制的一个关键部件。它能够使用各种通信协议,接收来自传感器的数据,并将处理后的信号发送给伺服从站,以实现对其运动、位置、速度等控制实现。
4.现有技术缺点:现如今市场上大多存在的伺服从站控制器是基于单mcu处理器内核,只能在主站的请求下工作,其对伺服从站控制的稳定性、同步性和准确性都较低。
技术实现要素:
5.本发明的主要目的是,提供一种多mcu模块伺服从站控制器实现方法,对伺服从站进行精确控制,提高对从站控制的稳定性、同步性和准确性。
6.为实现上述目的,本发明的技术方案如下:提供的一种多mcu模块伺服从站控制器实现方法,其关键是:包括以下步骤:
7.步骤1:搭建多mcu模块伺服从站网络系统,包括上位机、主站和n个从站,n个从站串联,每个从站都设置有一个从站控制器,该从站控制器由ad微处理器芯片、dsp微处理器芯片、stm32微处理器芯片、dac微处理器芯片、以太网芯片和工业以太网芯片共同组成;
8.上位机通过以太网芯片与主站连接,上位机和主站分别通过ethercat总线与工业以太网芯片连接,stm32微处理器芯片一端连接工业以太网芯片,另一端通过spi全双工通信方式与dsp微处理器芯片连接,stm32微处理器芯片还通过以太网芯片与上位机连接,dsp微处理器芯片还与ad微处理器芯片连接。
9.步骤2:用于ad微处理器芯片、dsp微处理器芯片、stm32微处理器芯片、dac微处理器芯片、以太网芯片、工业以太网芯片进行上电完成初始化,上位机上电完成初始化显示控制界面的步骤;
10.步骤3:用于主站通过ethercat总线实时下达dc时钟机制给工业以太网芯片,工业
以太网芯片执行dc时钟机制并控制各个微处理器芯片同步性初始化及从站进行同步性操作的步骤;
11.步骤4:用于主站通过工业以太网芯片传送目标传感器数据给stm32微处理器芯片的步骤;
12.步骤5:用于上位机控制ad微处理器芯片通过多路复用器通道采集实际传感器数据,并将采集的实际传感器数据转化为数字信号的步骤;
13.步骤6:用于dsp微处理器芯片读取ad微处理器芯片采集的实际传感器数据,并对其进行滤波处理,然后通过spi全双工通信方式传递给stm32微处理器芯片的步骤;
14.步骤7:用于stm32微处理器芯片通过pid算法计算实际传感器数据与目标传感器数据之间的差值,并对实际传感器数据进行差值补偿,stm32微处理器芯片输出相应控制指令给dac微处理器芯片,并通过以太网芯片连接上位机控制界面进行数据显示的步骤;
15.步骤8:用于dac微处理器芯片接收控制指令,输出相应量程电压控制从站运动,致使实际传感器数据与目标传感器数据一致,达到稳态运动的步骤。
16.通过上述设计,工业以太网芯片使用dc时钟机制实时控制各个微处理器芯片及从站进行同步性操作,stm32微处理器芯片将实际传感器数据与目标传感器数据进行pid算法计算,得出控制量数据,并输出控制指令给dac微处理器芯片实时控制从站运动,提高了对从站控制的准确性、稳定性和同步性。
17.作为优选:步骤3中,dc时钟机制控制从站进行同步性操作的步骤包括:
18.步骤31:主站配置全局系统时钟tsys_ref,并通过ethercat总线周期性的向第1个从站的工业以太网芯片广播ethercat数据帧进行时钟同步,第1个从站的工业以太网芯片再将ethercat数据帧依次传递给第2个从站、第3个从站
…
第n个从站,然后再从第n个从站依次返回至第1个从站;
19.步骤32:工业以太网芯片实时读取从站系统本地时钟tsys_local数据,并将其与系统时钟tsys_ref进行对比,根据对比差值对从站系统本地时钟tsys_local进行时钟补偿,确保从站系统本地时钟tsys_local与系统时钟tsys_ref一致。
20.作为优选:在步骤32中,工业以太网对从站系统本地时钟tsys_local进行同步性控制的时钟同步计算过程如下:
21.ti=tlocal(i)+(i-1)tdelay
22.tdelay(i)=[(t
2n-t1)-(t
2n-i+1-ti)]
÷2[0023]
toffset(i)=t
i-tsys_ref-tdelay(i)
[0024]
tsys_local(i)=tlocal(i)-toffset(i)
[0025]
其中,ti表示ethercat数据帧的第一个位到达从站i的时间;n表示共有n个从站;t
2n-i+1
表示ethercat数据帧的第一个位到达从站n后返回,再次到达从站i的时间;t
2n
表示ethercat数据帧的第一个位到达从站n后返回,再次到达从站1的时间;tlocal(i)表示从站i的本地时钟;tdelay表示延迟时间;tdelay(i)表示从站i和从站1之间的传输延迟时间;toffset(i)表示ethercat数据帧第一个位到达第i个从站的本地时钟与系统时钟tsys_ref的误差偏移量;tsys_local(i)表示从站i的系统本地时钟;
[0026]
将计算得到的从站i的系统本地时钟与系统时钟进行比较,当从站i的系统本地时钟与系统时钟相等时,表示从站i与系统同步;当从站i的系统本地时钟与系统时钟不相等
时,表示从站i与系统不同步,需对从站i的系统本地时钟进行补偿,使从站i的系统本地时钟始终与系统时钟同步;
[0027]
对从站i的系统本地时钟进行补偿,计算从站i的系统本地时钟与系统时钟的偏移时间δt的计算公式为:
[0028]
δt=tsys_local(i)-tdelay(i)-tsys_ref
[0029]
当δt》0时,表示从站i的系统本地时钟走快了,工业以太网芯片控制从站i的系统本地时钟每10ns减少δt个单位时间;当δt《0时,表示从站i的系统本地时钟走慢了了,工业以太网芯片控制从站i的系统本地时钟每10ns增加δt个单位时间。
[0030]
通过上述设计,主站通过ethercat总线周期性地下达dc时钟机制给工业以太网芯片,由工业以太网芯片来控制各个微处理芯片进行同步性初始化操作,并控制从站同步性运动;工业以太网芯片周期性地读取从站系统本地时钟,并将其与系统时钟进行比较,根据比较结果对从站系统本地时钟进行时钟补偿,使得从站系统本地时钟与系统时钟保持一致,进而实现主站与各个从站之间进行同步性操作的目的。
[0031]
作为优选:在步骤5中,上位机控制ad微处理器芯片采集实际传感器数据包括以下步骤:
[0032]
步骤51:操作上位机控制界面进行多路复用器通道的选择,上位机通过ethercat总线下达多路复用器通道选择命令和ad微处理器芯片采样命令给stm32微处理器芯片;
[0033]
步骤52:stm32微处理器芯片通过spi全双工通信方式与dsp微处理器芯片进行数据交互,dsp微处理器芯片控制多路复用器开关进行初始化,并控制打开上位机选择的多路复用器通道开关;
[0034]
步骤53:dsp微处理器芯片通过spi接口向ad微处理器芯片发送采样命令,ad微处理器芯片使用内部采样保持电容和采样保持放大器通过打开的多路复用器通道采集实际传感器数据,并将其转化成数字信号。
[0035]
通过上述设计,上位机对多路复用器的通道进行选择,控制ad微处理器芯片通过需要采样的多路复用器通道采集实际传感器数据,完成了对实际传感器数据的筛选,使得ad微处理器采集到的实际传感器数据属性与目标传感器数据属性相匹配,提高了对伺服从站运动控制的准确性。
[0036]
作为优选:在步骤7中,stm32微处理器芯片通过pid算法计算实际传感器数据与目标传感器数据之间的差值并输出控制量u(t)的计算公式如下:
[0037][0038]
其中,k
p
表示比例增益;ki表示积分增益;kd表示微分增益;e(t)表示t时刻的实际传感器数据与目标传感器数据之间的差值,u(t)表示控制量。
[0039]
作为优选:在步骤8中,dac微处理器芯片输出相应量程电压的电压计算公式如下:
[0040][0041]
其中,v
out
表示输出电压;d
in
表示配置dac数据输出寄存器的数值,范围为0到65535;v
ref
表示参考电压;gain表示增益。
[0042]
如果v
ref
使用内部参考电压,那么v
ref
的值为2.5v;如果v
ref
使用外部参考电压,那么v
ref
的值由vrefin引脚的输入决定。
[0043]
如果禁止内部电压基准,gain的值为1;如果使能内部电压基准,gain的值为2。
[0044]
作为优选:所述工业以太网芯片在进行通信的过程中包括以下状态:
[0045]
init状态,从站上电时,工业以太网芯片处于init状态,用于读取从站的设备信息和做一些准备进入pre-op初始化的配置;
[0046]
pre-op状态,用于映射pdo数据,并配置好fmmu的映射;
[0047]
safe-op状态;用于判断从站dc时钟同步是否达到一个稳定值,dc同步稳定,从站也没有报错即可申请进入op状态;
[0048]
op状态,正常运行状态,用于对伺服进行运动控制。
[0049]
进一步解释说明,在工业以太网芯片进行状态转换的过程中需要经过以下阶段:
[0050]
检查sm设置,在进入“per-op”状态之前,需要读取并检查邮箱通信相关sm0和sm1通道的配置;在进入“safe-op”状态之前,需要检查周期性过程数据通信使用的sm2和sm3通道的配置,需要检查的sm通道的设置内容如下:
[0051]
①
sm通道大小;
[0052]
②
sm通道的设置是否重叠,特别注意三个缓存区应该预留3倍配置长度大小的空间;
[0053]
③
sm通道起始地址应该为偶数;
[0054]
④
sm通道应该被使能;
[0055]
sm通道配置的检查工作在函数checksmsettings()中完成,具体如下:
[0056]
⑴
启动邮箱数据通信,进入per-op状态;
[0057]
在从站进入per-op状态之前,先检查邮箱通信sm配置,如果配置成功则调用函数mbx_startmailboxhandler()进入per-op状态;
[0058]
⑵
启动周期性输入数据通信,进入safe-op状态;
[0059]
在进入safe-op状态之前,先检查过程数据sm通道设置是否正确,如正确则使能输入数据通道sm3,调用函数startinputhandler()进入safe-op状态;
[0060]
⑶
启动周期性输出数据通信,进入op状态;
[0061]
在进入op状态之前,先检查过程数据sm通道设置是否正确,如正确则使能输出数据通道sm2,调用函数startoutputhandler()进入op状态;
[0062]
⑷
停止工业以太网芯片数据通信。
[0063]
在工业以太网芯片通信状态回退时停止相应的数据通信sm通道,其回退方式有以下三种:
[0064]ⅰ.从高状态退回safe-op状态时,调用函数stopoutputhandler()停止周期性过程数据输出处理;
[0065]ⅱ.从高状态退回pre-op状态时,调用函数stopinputhandler()停止周期性过程数据输入处理;
[0066]ⅲ.从高状态退回init状态时,调用函数backtoinittransition()停止所有应用层数据处理。
[0067]
工业以太网芯片通过通信状态的切换,实现了不同通信设备之间可靠而高效的数
据传输,提高了网络通信和控制系统的稳定性及其性能,其具体作用如下:
[0068]
1.状态管理:多mcu模块伺服从站控制器根据工业以太网芯片的状态要求对从站设备状态进行管理,实现从init状态到pre-op、safe-op、op状态的转换;
[0069]
2.网络配置:多mcu模块伺服从站控制器通过工业以太网芯片的状态实现从站设备的网络配置,包括设备网络地址、数据类型及通讯速率等参数的配置;
[0070]
3.数据接收和发送:在safe-op和op状态下,多mcu模块伺服从站控制器接收和处理主站发送的数据命令,实现在从站设备和主站设备之间高效的数据通讯;
[0071]
4.错误处理:多mcu模块伺服从站控制器能够根据工业以太网芯片的状态进行错误处理,当网络出现故障或状态切换失败时,多mcu模块伺服从站控制器会进行相应的处理,避免网络出现问题。
[0072]
作为优选:所述目标传感器数据或是位移目标传感器数据;或是加速度目标传感器数据;或是力目标传感器数据;或是速度目标传感器数据;或是电压目标传感器数据;或是电流目标传感器数据;或是压强目标传感器数据;
[0073]
所述ad微处理器芯片采集的实际传感器数据是与目标传感器数据属性相对应的传感器数据。
[0074]
作为优选:所述实际传感器信号通过信号调理卡进入多路复用器通道供ad微处理器芯片采集,该信号调理卡的应用可提高对实际传感器数据采集的精度,进而提高对从站运动控制的准确性;所述dsp微处理器芯片使用iic总线的eeropm数据存储方式进行数据的存储,可保证在出现紧急情况时,dsp微处理器芯片掉电后数据不丢失;所述stm32微处理器芯片将数据保存到sdram存储器中。
[0075]
作为优选:所述dsp微处理器芯片与stm32微处理器芯片具有相同的通信模式、时钟极性、时钟相位,确保dsp微处理器芯片与stm32微处理器芯片正确通信,并能够同步完成数据的处理、接收与发送。
[0076]
本发明的显著效果是:提供一种多mcu模块伺服从站控制器实现方法,对伺服从站进行精确控制,提高对从站控制的稳定性、同步性、准确性及可靠性。
附图说明
[0077]
图1为本发明的结构示意图;
[0078]
图2为主站与各从站的连接示意图;
[0079]
图3为工业以太网芯片状态切换示意图;
[0080]
图4为工业以太网芯片状态函数处理流程图。
具体实施方式
[0081]
下面结合附图和具体实例对本发明进一步详细说明。以下实施例或者附图用于说明本发明,但不用来限制本发明的范围。
[0082]
本实施例中,采用的ad微处理器芯片的型号是ad7608,dsp微处理器芯片的型号是dsp28335,stm32微处理器芯片的型号是stm32f429,dac微处理器芯片的型号是dac8563,工业以太网芯片的型号是ax58100。
[0083]
如图1所示:一种多mcu模块伺服从站控制器实现方法,其关键是:包括以下步骤:
[0084]
步骤1:搭建多mcu模块伺服从站网络系统,包括上位机、主站和n个从站,n个从站串联,每个从站都设置有一个从站控制器,该从站控制器由ad微处理器芯片、dsp微处理器芯片、stm32微处理器芯片、dac微处理器芯片、以太网芯片和工业以太网芯片共同组成;
[0085]
上位机通过以太网芯片与主站连接,上位机和主站分别通过ethercat总线与工业以太网芯片连接,stm32微处理器芯片一端连接工业以太网芯片,另一端通过spi全双工通信方式与dsp微处理器芯片连接,stm32微处理器芯片还通过以太网芯片与上位机连接,dsp微处理器芯片还与ad微处理器芯片连接;
[0086]
步骤2:用于ad微处理器芯片、dsp微处理器芯片、stm32微处理器芯片、dac微处理器芯片、以太网芯片、工业以太网芯片进行上电完成初始化,上位机上电完成初始化显示控制界面的步骤;
[0087]
步骤3:用于主站通过ethercat总线实时下达dc时钟机制给工业以太网芯片,工业以太网芯片执行dc时钟机制并控制各个微处理器芯片同步性初始化及从站进行同步性操作的步骤;
[0088]
步骤4:用于主站通过工业以太网芯片传送目标传感器数据给stm32微处理器芯片的步骤;
[0089]
步骤5:用于上位机控制ad微处理器芯片通过多路复用器通道采集实际传感器数据,并将采集的实际传感器数据转化为数字信号的步骤;
[0090]
步骤6:用于dsp微处理器芯片读取ad微处理器芯片采集的实际传感器数据,并对其进行滤波处理,然后通过spi全双工通信方式传递给stm32微处理器芯片的步骤;
[0091]
步骤7:用于stm32微处理器芯片通过pid算法计算实际传感器数据与目标传感器数据之间的差值,并对实际传感器数据进行差值补偿,stm32微处理器芯片输出相应控制指令给dac微处理器芯片,并通过以太网芯片连接上位机控制界面进行数据显示的步骤;
[0092]
步骤8:用于dac微处理器芯片接收控制指令,输出相应量程电压控制从站运动,致使实际传感器数据与目标传感器数据一致,达到稳态运动的步骤。
[0093]
多mcu模块伺服从站控制器的传感器进行上电初始化后,采集从站实际传感器数据,通过信号调理卡对采集到的实际传感器数据进行调理并输送至多路复用器,多路复用器对实际传感器数据进行选择和分离,然后供ad微处理器芯片采集和转换。
[0094]
dsp微处理器芯片通过引脚实时控制多路复用器通道开关状态的切换,同时控制ad微处理器芯片对实际传感器数据的采集与停止;为保证在出现紧急情况时,dsp微处理器芯片掉电后数据不丢失,dsp微处理器芯片使用iic总线的eeropm数据存储方式对数据进行储存。
[0095]
具体地,在步骤7中,stm32微处理器芯片通过pid算法计算实际传感器数据与目标传感器数据之间的差值并输出控制量u(t)的计算公式如下:
[0096][0097]
其中,k
p
表示比例增益;ki表示积分增益;kd表示微分增益;e(t)表示t时刻的实际传感器数据与目标传感器数据之间的差值,u(t)表示控制量。
[0098]
在步骤8中,dac微处理器芯片输出相应量程电压的电压计算公式如下:
[0099][0100]
其中,v
out
表示输出电压;d
in
表示配置dac数据输出寄存器的数值,范围为0到65535;v
ref
表示参考电压;gain表示增益。
[0101]
如果v
ref
使用内部参考电压,那么v
ref
的值为2.5v;如果v
ref
使用外部参考电压,那么v
ref
的值由vrefin引脚的输入决定。
[0102]
如果禁止内部电压基准,gain的值为1;如果使能内部电压基准,gain的值为2。
[0103]
如图2所示:主站通过ethercat总线周期性的向工业以太网芯片广播ethercat数据帧进行时钟同步;工业以太网芯片实时读取从站系统本地时钟tsys_local数据,并将其与系统时钟tsys_ref进行对比,根据对比差值对从站系统本地时钟tsys_local进行时钟补偿,确保从站系统本地时钟tsys_local与系统时钟tsys_ref一致。
[0104]
工业以太网对从站系统本地时钟tsys_local进行同步性控制的时钟同步计算过程如下:
[0105]
ti=tlocal(i)+(i-1)tdelay
[0106]
tdelay(i)=[(t
2n-t1)-(t
2n-i+1-ti)]
÷2[0107]
toffset(i)=t
i-tsys_ref-tdelay(i)
[0108]
tsys_local(i)=tlocal(i)-toffset(i)
[0109]
其中,ti表示ethercat数据帧的第一个位到达从站i的时间;n表示共有n个从站;t
2n-i+1
表示ethercat数据帧的第一个位到达从站n后返回,再次到达从站i的时间;t
2n
表示ethercat数据帧的第一个位到达从站n后返回,再次到达从站1的时间;tlocal(i)表示从站i的本地时钟;tdelay表示延迟时间;tdelay(i)表示从站i和从站1之间的传输延迟时间;toffset(i)表示ethercat数据帧第一个位到达第i个从站的本地时钟与系统时钟tsys_ref的误差偏移量;tsys_local(i)表示从站i的系统本地时钟;
[0110]
将计算得到的从站i的系统本地时钟与系统时钟进行比较,当从站i的系统本地时钟与系统时钟相等时,表示从站i与系统同步;当从站i的系统本地时钟与系统时钟不相等时,表示从站i与系统不同步,需对从站i的系统本地时钟进行补偿,使从站i的系统本地时钟始终与系统时钟同步;
[0111]
对从站i的系统本地时钟进行补偿,计算从站i的系统本地时钟与系统时钟的偏移时间δt的计算公式为:
[0112]
δt=tsys_local(i)-tdelay(i)-tsys_ref
[0113]
当δt》0时,表示从站i的系统本地时钟走快了,工业以太网芯片控制从站i的系统本地时钟每10ns减少δt个单位时间;当δt《0时,表示从站i的系统本地时钟走慢了了,工业以太网芯片控制从站i的系统本地时钟每10ns增加δt个单位时间。
[0114]
如图3所示:工业以太网芯片在进行通信的过程中包括以下状态:
[0115]
init状态,从站上电时,工业以太网芯片处于init状态,用于读取从站的设备信息和做一些准备进入pre-op初始化的配置;
[0116]
pre-op状态,用于映射pdo数据,并配置好fmmu的映射;
[0117]
safe-op状态;用于判断从站dc时钟同步是否达到一个稳定值,dc同步稳定,从站也没有报错即可申请进入op状态;
[0118]
op状态,正常运行状态,用于对伺服进行运动控制。
[0119]
如图4所示:在进入函数al_controlind()后,将状态机当前状态和请求状态的状态码分别存放于变量statetrans的高四位和低四位中。然后根据状态机当前状态和请求状态(即根据变量statetrans)检查相应的sm通道配置情况(若statetrans的值不同,则所检查的sm通道也不同),并将检查结果存放于变量result中,上述sm通道的检查工作是在switch语句体中完成的。
[0120]
s4-a:如果sm通道配置检查正确(即result结果为0),则根据变量statetrans进行状态转换。若从引导状态转换为init状态,则调用函数backtolnittransition()。若从init状态转换为pre-op状态,则调用函数mbx_startmailboxhandler()。若从pre-op状态转换为safe-op状态,则调用函数startinputhandler()。若从safe-op状态转换为op状态,则调用函数startoutputhandler()。
[0121]
s4-b:如果sm通道检查不正确(即result的值不为0),则根据状态机当前状态进行相关操作。若当前处于op状态,则执行函数appl_stopoutputhandler()和stopoutputhandler()停止周期性输出过程数据通信。若当前处于safe-op状态,则执行函数appl stopinputhandler()和stopinputhandler()停止周期性输人过程数据通信。当前处于pre-op状态,则执行mbx_stopmailboxhandler()和appl_stopmailboxhandler()停止邮箱数据通信。
[0122]
进一步解释说明,在工业以太网芯片进行状态转换的过程中需要经过以下阶段:
[0123]
检查sm设置,在进入“per-op”状态之前,需要读取并检查邮箱通信相关sm0和sm1通道的配置;在进入“safe-op”状态之前,需要检查周期性过程数据通信使用的sm2和sm3通道的配置,需要检查的sm通道的设置内容如下:
[0124]
①
sm通道大小;
[0125]
②
sm通道的设置是否重叠,特别注意三个缓存区应该预留3倍配置长度大小的空间;
[0126]
③
sm通道起始地址应该为偶数;
[0127]
④
sm通道应该被使能;
[0128]
sm通道配置的检查工作在函数checksmsettings()中完成,具体如下:
[0129]
⑴
启动邮箱数据通信,进入per-op状态;
[0130]
在从站进入per-op状态之前,先检查邮箱通信sm配置,如果配置成功则调用函数mbx_startmailboxhandler()进入per-op状态;
[0131]
⑵
启动周期性输入数据通信,进入safe-op状态;
[0132]
在进入safe-op状态之前,先检查过程数据sm通道设置是否正确,如正确则使能输入数据通道sm3,调用函数startinputhandler()进入safe-op状态;
[0133]
⑶
启动周期性输出数据通信,进入op状态;
[0134]
在进入op状态之前,先检查过程数据sm通道设置是否正确,如正确则使能输出数据通道sm2,调用函数startoutputhandler()进入op状态;
[0135]
⑷
停止工业以太网芯片数据通信。
[0136]
在工业以太网芯片通信状态回退时停止相应的数据通信sm通道,其回退方式有以下三种:
[0137]ⅰ.从高状态退回safe-op状态时,调用函数stopoutputhandler()停止周期性过程数据输出处理;
[0138]ⅱ.从高状态退回pre-op状态时,调用函数stopinputhandler()停止周期性过程数据输入处理;
[0139]ⅲ.从高状态退回init状态时,调用函数backtoinittransition()停止所有应用层数据处理。
技术特征:
toffset(i)=t
i-tsys_ref-tdelay(i)tsys_local(i)=tlocal(i)-toffset(i)其中,ti表示ethercat数据帧的第一个位到达从站i的时间;n表示共有n个从站;t
2n-i+1
表示ethercat数据帧的第一个位到达从站n后返回,再次到达从站i的时间;t
2n
表示ethercat数据帧的第一个位到达从站n后返回,再次到达从站1的时间;tlocal(i)表示从站i的本地时钟;tdelay表示延迟时间;tdelay(i)表示从站i和从站1之间的传输延迟时间;toffset(i)表示ethercat数据帧第一个位到达第i个从站的本地时钟与系统时钟tsys_ref的误差偏移量;tsys_local(i)表示从站i的系统本地时钟;将计算得到的从站i的系统本地时钟与系统时钟进行比较,当从站i的系统本地时钟与系统时钟相等时,表示从站i与系统同步;当从站i的系统本地时钟与系统时钟不相等时,表示从站i与系统不同步,需对从站i的系统本地时钟进行补偿,使从站i的系统本地时钟始终与系统时钟同步;对从站i的系统本地时钟进行补偿,计算从站i的系统本地时钟与系统时钟的偏移时间δt的计算公式为:δt=tsys_local(i)-tdelay(i)-tsys_ref当δt>0时,表示从站i的系统本地时钟走快了,工业以太网芯片控制从站i的系统本地时钟每10ns减少δt个单位时间;当δt<0时,表示从站i的系统本地时钟走慢了了,工业以太网芯片控制从站i的系统本地时钟每10ns增加δt个单位时间。4.根据权利要求1所述的多mcu模块伺服从站控制器实现方法,其特征在于:在步骤5中,上位机控制ad微处理器芯片采集实际传感器数据包括以下步骤:步骤51:操作上位机控制界面进行多路复用器通道的选择,上位机通过ethercat总线下达多路复用器通道选择命令和ad微处理器芯片采样命令给stm32微处理器芯片;步骤52:stm32微处理器芯片通过spi全双工通信方式与dsp微处理器芯片进行数据交互,dsp微处理器芯片控制多路复用器开关进行初始化,并控制打开上位机选择的多路复用器通道开关;步骤53:dsp微处理器芯片通过spi接口向ad微处理器芯片发送采样命令,ad微处理器芯片使用内部采样保持电容和采样保持放大器通过打开的多路复用器通道采集实际传感器数据,并将其转化成数字信号。5.根据权利要求1所述的多mcu模块伺服从站控制器实现方法,其特征在于:在步骤7中,stm32微处理器芯片通过pid算法计算实际传感器数据与目标传感器数据之间的差值并输出控制量u(t)的计算公式如下:其中,k
p
表示比例增益;k
i
表示积分增益;k
d
表示微分增益;e(t)表示t时刻的实际传感器数据与目标传感器数据之间的差值,u(t)表示控制量。6.根据权利要求1所述的多mcu模块伺服从站控制器实现方法,其特征在于:在步骤8中,dac微处理器芯片输出相应量程电压的电压计算公式如下:
其中,v
out
表示输出电压,其电压范围为-10v到+10v;d
in
表示配置dac数据输出寄存器的数值,范围为0到65535;v
ref
表示参考电压;gain表示增益。7.根据权利要求1所述的多mcu模块伺服从站控制器实现方法,其特征在于:所述工业以太网芯片在进行通信的过程中包括以下状态:init状态,从站上电时,工业以太网芯片处于init状态,用于读取从站的设备信息和做一些准备进入pre-op初始化的配置;pre-op状态,用于映射pdo数据,并配置好fmmu的映射;safe-op状态;用于判断从站dc时钟同步是否达到一个稳定值,dc同步稳定,从站也没有报错即可申请进入op状态;op状态,正常运行状态,用于对伺服进行运动控制。8.根据权利要求1所述的多mcu模块伺服从站控制器实现方法,其特征在于:所述目标传感器数据或是位移目标传感器数据;或是加速度目标传感器数据;或是力目标传感器数据;或是速度目标传感器数据;或是电压目标传感器数据;或是电流目标传感器数据;或是压强目标传感器数据;所述ad微处理器芯片采集的实际传感器数据是与目标传感器数据属性相对应的传感器数据。9.根据权利要求1所述的多mcu模块伺服从站控制器实现方法,其特征在于:所述实际传感器信号通过信号调理卡进入多路复用器通道供ad微处理器芯片采集;所述dsp微处理器芯片使用iic总线的eeropm数据存储方式进行数据的存储;所述stm32微处理器芯片将数据保存到sdram存储器中。10.根据权利要求1所述的多mcu模块伺服从站控制器实现方法,其特征在于:所述dsp微处理器芯片与stm32微处理器芯片具有相同的通信模式、时钟极性、时钟相位。
技术总结
本发明公开了一种多MCU模块伺服从站控制器实现方法,其特征在于:主站通过Ethercat总线下达DC时钟机制给工业以太网芯片,工业以太网芯片执行DC时钟机制控制各个微处理器芯片同步性初始化及从站进行同步性操作;主站下达目标传感器数据给STM32微处理器芯片,STM32微处理器芯片将目标传感器数据与DSP微处理器芯片处理后的实际传感器数据进行PID计算,并输出控制指令给DAC微处理器芯片;DAC微处理器芯片输出相应量程电压控制从站运动。其显著效果是:实现了对伺服从站的精确控制,提高了对从站控制的稳定性、同步性、准确性及可靠性。准确性及可靠性。准确性及可靠性。
技术研发人员:欧阳奇 张兴兰 郝瑜柯
受保护的技术使用者:重庆理工大学
技术研发日:2023.06.16
技术公布日:2023/8/16
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
