1.一种CANopen的主站到从站的数据同步方法,其用于同步主站的数据至多个从站;其特征在于:分别定义主站的用户变量参数、数据同步参数,并定义分别与主站的用户变量参数、数据同步参数相对应的多个从站的用户变量参数、数据同步参数;将所有用户变量参数以及数据同步参数分别关联对象字典中相关的对象及映射表;
在主站和多个从站中新建处理数据对象表、通信对象表;所述处理数据对象表的每个表项的一个特定字段对应所述通讯对象参数表的一个表项,另一个特定字段对应所述映射表的一个映射;
所述数据同步方法包括:
步骤S1:轮询主站的处理数据对象表的每一项;
步骤S2:判断所述对象字典里相关数据的当前值与拷贝副本是否一致,是则发送对应所述相关数据的主站的用户变量到CAN总线上,否则跳转至步骤S1;
步骤S3:从站通过CAN总线接收CAN报文,根据接收的CAN报文,更新从站所对应的用户变量的输出。
2.根据权利要求1所述的CANopen的主站到从站的数据同步方法,其特征在于:在主站、所有从站中新建用户变量参数表、数据同步参数表;所述用户变量参数表、所述数据同步参数表均包括分别设置多个字段的多个表项;所述通信对象表包括分别设置多个字段的多个表项,每个表项中的特定字段对应一个数据结构CAN MSG,每个数据结构CAN MSG包括多个数据字段。
3.根据权利要求2述的CANopen的主站到从站的数据同步方法,其特征在于:判断所述对象字典里相关数据的当前值与拷贝副本是否一致的方法为:在一次轮询中把所述处理数据对象表的所有表项轮询一次,并依次检查所述处理数据对象表的所有表项;根据所述处理数据对象表的每个表项找到映射字段,且所述映射字段被映射到所述对象字典里的相关对象,并确定对应的用户变量;将对应的用户变量设置到对应的数据结构CAN MSG的数据字段;判断所述数据结构CAN MSG的数据字段与所述处理数据对象表所对应的表项的拷贝是否相同,是则判定所述对象字典里相关数据的当前值与拷贝副本一致,否则判定所述对象字典里相关数据的当前值与拷贝副本不一致。
4.根据权利要求3所述的CANopen的主站到从站的数据同步方法,其特征在于:在判定所述对象字典里的相关数据发生变化后,设置所述处理数据对象表的所对应表项的状态为发送信号状态;再次依次检测所述处理数据对象表的各个表项的状态,并在检测到所述处理数据对象表的一个表项是有效的且是发送信号状态时,发送对应所述相关数据的主站的用户变量到CAN总线上。
5.根据权利要求4所述的CANopen的主站到从站的数据同步方法,其特征在于:更新从站所对应的用户变量的输出的方法为:将对应的主站的用户变量赋值到对应的数据结构CAN MSG的数据字段,设置所述处理数据对象表的表项中与通信相关的时间记录,并确定所述通信对象表对应的表项的结构体,将对应的数据结构CAN MSG的数据字段的内容填充至CAN硬件寄存器,并发送报文到CAN总线上。
6.根据权利要求1所述的CANopen的主站到从站的数据同步方法,其特征在于:在步骤S3中,从站的CAN控制器接收报文并将报文存储到消息区中;其中,从站在主站轮询中处理从站接收到的消息,依次处理消息区中的所有消息报文,直至处理完所有的消息报文。
7.根据权利要求6所述的CANopen的主站到从站的数据同步方法,其特征在于:从站处理消息区中的消息报文的方法为:根据CAN ID,搜索所述通信对象表的所有表项中的数据结构CAN MSG的数据片段,找到与接收的消息报文里的CAN ID一致的数据结构CAN MSG,并找到所述通信对象表对应的表项,将接收收的消息报文中的数据字段复制到对应的数据结构CAN MSG的数据字段。
8.根据权利要求1所述的CANopen的主站到从站的数据同步方法,其特征在于:从站设置数字量输入端、数字量输出端、数字量输入输出端、模拟量输入端、模拟量输出端、模拟量输入输出端中的一种数据端口。
9.根据权利要求1所述的CANopen的主站到从站的数据同步方法,其特征在于:所述对象字典包括一级映射表,所述一级映射表包括分别设置多个字段的多个表项;所述一级映射表的每个表项中的一个字段对应一个二级映射表;所述二级映射表包括分别设置多个字段的多个表项,且每个二级映射表的每个表项中的一个字段对应一个字典变量或者字典结构。
10.根据权利要求1所述的CANopen的主站到从站的数据同步方法,其特征在于:所述数据结构CAN MSG包括多个字段,且所述数据结构CAN MSG用于设置CAN控制器的寄存器;在发送报文时,通过对应的所述数据结构CAN MSG设置硬件所述CAN控制器,在接收报文时,将报文填充对应的所述数据结构CAN MSG中的结构。