CN113867228B - 一种canopen主站与cpu的数据实时同步方法 - Google Patents

一种canopen主站与cpu的数据实时同步方法 Download PDF

Info

Publication number
CN113867228B
CN113867228B CN202111214351.9A CN202111214351A CN113867228B CN 113867228 B CN113867228 B CN 113867228B CN 202111214351 A CN202111214351 A CN 202111214351A CN 113867228 B CN113867228 B CN 113867228B
Authority
CN
China
Prior art keywords
master station
real
period
time
canopen
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.)
Active
Application number
CN202111214351.9A
Other languages
English (en)
Other versions
CN113867228A (zh
Inventor
王明昕
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.)
Aotuo Technology Co ltd
Original Assignee
Aotuo Technology Co ltd
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 Aotuo Technology Co ltd filed Critical Aotuo Technology Co ltd
Priority to CN202111214351.9A priority Critical patent/CN113867228B/zh
Publication of CN113867228A publication Critical patent/CN113867228A/zh
Application granted granted Critical
Publication of CN113867228B publication Critical patent/CN113867228B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • G05B19/0423Input/output
    • 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/24Pc safety
    • G05B2219/24215Scada supervisory control and data acquisition

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Programmable Controllers (AREA)

Abstract

本发明提出了一种CANOPEN主站与CPU的数据实时同步方法,包括:在PLC中建立实时任务用于运行用户编写的实时控制程序;CPU模块底层系统中建立高优先级抢占线程作为实时任务的底层实现;实时任务周期与CANOPEN主站同步周期相同,每周期进入后首先通过内部总线通信写数据到主站、同时读主站的反馈数据;主站开启硬件定时器TIMER1,用于测量报文偏差;主站开启硬件定时器TIMER2,用于同步帧发送周期的定时;主站接收实时任务通过内部总线发送的控制数据,并在接收中断中记录下TIMER1的计数值,与待发送的同步帧发送时间进行对比,如果超出比较窗口,则在下一个同步帧的发送时进行补偿;主站发出同步帧;主站将收到的内部总线发来的控制数据发给从站。

Description

一种CANOPEN主站与CPU的数据实时同步方法
技术领域
本发明涉及工业现场总线通信技术领域,特别涉及一种CANOPEN主站与CPU的数据实时同步方法。
背景技术
PLC作为工业控制的核心控制器,为了满足工业现场各种设备与传感器的控制与通信需求,都具备有各种工业现场总线通信接口和通信协议。在工业现场通信总线中,CANOPEN协议作为一个开源和开放的通信总线协议,其应用广泛,无论是数据采集和运动控制,支持CANOPEN协议的从站设备数量巨大,从伺服驱动器、变频器到传感器、远程分布式IO,普遍都支持CANOPEN协议。
PLC上的CAN口一般采用两种形式:在PLC的CPU模块本体上扩展CAN接口,另一种是开发具备CAN接口的CANOPEN主站扩展模块。由于CPU模块本体的资源有限,有些情况下CPU模块本体的CAN被其它用途占据,或者设计时没有留出CAN接口,如果重新设计CPU模块的硬件,带来的改动太太。因此,在这种情况下,常用的方式是采用在PLC的扩展模块上增加CANOPEN通信接口。
在此方式下,CANOPEN主站扩展模块使用PLC内部总线与CPU模块开展内部通信,CANOPEN主站模块相当于是从站,CPU模块是主站。CANOPEN组态配置下载到CANOPEN主站模块中,CANOPEN模块利用自身的定时器产生同步帧及PDO等主站所需要的定时周期。CPU模块中运行用户程序,并通过内部总线与CANOPEN主站模块进行通信。由于CPU模块中用户程序运行周期采用的是本地定时器,因此即使CANOPEN主站的同步周期与用户程序周期设置相同,在实际运行过程中,由于定时器的误差、程序执行周期的波动,会导致这两个周期不同步。在一般要求不高的数据采集和控制场合,基本可以忽略。但是在需要实时控制的场合,如运动控制,伺服工作在CSP或者IP位置模式下,运动控制算法跑在CPU模块的用户程序中,如果两个周期无法同步,会导致用户程序计算的连续位置给定无法及时更新到CANOPEN主站,造成CANOPEN主站发给伺服的位置给定数据出现重复。如果伺服在驱动电机高速运行,此时会发生较强烈的振动冲击,严重影响设备的运行。
因此采用CANOPEN主站扩展模块的PLC,一般只能用在采集实时性要求不高的数据或者控制变频器等要求不高的场合。
发明内容
本发明的目的旨在至少解决所述技术缺陷之一。
为此,本发明的目的在于提出一种CANOPEN主站与CPU的数据实时同步方法。
为了实现上述目的,本发明的实施例提供一种CANOPEN主站与CPU的数据实时同步方法,包括如下步骤:
步骤S1,在PLC编程软件中建立实时任务用于运行用户编写的实时控制程序;
步骤S2,CPU模块底层系统中建立高优先级抢占线程作为编程软件中实时任务的底层实现;
步骤S3:实时任务周期与CANOPEN主站同步周期相同,并且每周期进入后首先通过内部总线通信写数据到CANOPEN主站、同时读CANOPEN主站的反馈数据,然后再执行用户实时控制程序;
步骤S4,所述CANOPEN主站开启硬件定时器TIMER1,用于测量报文偏差;
步骤S5,所述CANOPEN主站开启硬件定时器TIMER2,该TIMER2用于同步帧发送周期的定时;
步骤S6,所述CANOPEN主站接收CPU模块中实时任务通过内部总线发送的控制数据,并在接收中断中记录下TIMER1的计数值,并与待发送的同步帧发送时间进行对比,如果超出比较窗口,则在下一个同步帧的发送时进行补偿;
步骤S7,所述CANOPEN主站发出同步帧;
步骤S8,所述CANOPEN主站将收到的内部总线发来的控制数据通过RxPDO报文发给CANOPEN从站,并接收从站回复的TxPDO报文。
进一步,所述抢占线程为周期运行,其中,所设置周期与CANOPEN主站的同步周期相同。
进一步,所述CPU模块执行以下动作:
在PLC编程软件中新建实时任务,并设置其运行运行周期TS;
在编程软件中为各个CANOPEN从站的RxPDO和TxPDO对象分配软元件区;
编写实时控制程序,并将控制字和运动控制的计算给定输出到RxPDO对象对应的软元件中;
将实时控制程序添加到实时任务中;
将编译后程序和配置下载到CPU模块中;
PLC底层运行软件接收到编程软件下载过来的程序和配置;根据配置,对应实时任务建立一高优先级抢占线程作为其底层实现;
上述线程任务每周期首先执行的第一个工作是通过内部总线通信,将对应RxPDO对象的软元件区的值发给CANOPEN主站模块,并读取CANOPEN主站模块反馈数据到TxPDO软元件区;
所述线程任务先进行PLC内部总线通信,再执行用户的实时控制程序,所述实时控制程序将控制字和计算给定输出到RxPDO对象对应的软元件区中,并读取TxPDO软元件区的反馈数据。
进一步,所述CANOPEN主站执行以下动作:
所述CANOPEN主站在初始化完成后,开启硬件定时器TIMER1,设其计数时钟频率为F1;
所述CANOPEN主站在初始化完成后,开启硬件定时器TIMER2,用于同步帧发送周期的定时,所述同步帧周期为TS,同时根据同步帧周期设置与其对应的补偿步距值为TStep;
所述CANOPEN主站收到CPU模块通过内部总线发来的报文帧IBUS1,进入到中断,在中断中记录下收到报文的时间,用TIMER1的tick值TB1表示,同时主站将内部总线报文中发来的RxPDO对象的值复制到待发送的RxPDO对象中;
所述硬件定时器TIMER2的定时周期来到并进入定时中断中,记录此时的硬件定时器TIMER1的tick值TN1,并发出同步帧;
计算两个时间的时间差值ΔT1=(TN1-TB1)×1000000/F1;
如果ΔT1在区间[WIN_MIN,WIN_MAX]之间,则定时器TIMER2的重装载值继续保持不变,同步帧的周期为T2=TS,开始新的一轮定时;
所述CANOPEN主站收到CPU模块通过内部总线发来的报文帧IBUS2,进入到接收中断,在中断中记录下收到报文的时间,用TIMER1的tick值TB2表示;同时主站将内部总线报文中发来的RxPDO对象的值复制到待发送的RxPDO对象中;
在T2定时周期到后进入中断,记录此时的TIMER1的tick值TN2,并发出同步帧;
计算ΔT2=(TN2-TB2)×1000000/F1;如果ΔT2超过WIN_MAX:
当ΔT2-WIN_MAX小于补偿步距TStep时,定时器TIMER2的重装值对应的定时周期TS3=TS-(ΔT2-WIN_MAX);
当ΔT2-WIN_MAX大于补偿步距TStep时,定时器TIMER2的重装值对应的定时周期TS3=TS-TStep;
重复以上过程。
进一步,对于ΔTn小于WIN_MIN的情况:
当WIN_MIN-ΔTn小于补偿步距TStep时,定时器TIMER2的重装值对应的定时周期TS(n+1)=TS+(WIN_MIN-ΔTn);
当WIN_MIN-ΔTn大于补偿步距TStep时,定时器TIMER2的重装值对应的定时周期TS(n+1)=TS+TStep。
根据本发明实施例的CANOPEN主站与CPU的数据实时同步方法,设计一种CPU模块与CANOPEN主站扩展模块的同步机制,既可以保证CPU模块用户程序中的计算数据能同步更新到CANOPEN主站中,也能将同步帧的抖动范围控制在一定的精度以内,满足对数据同步性要求较高的应用场合。本发明设计了一个同步帧周期补偿步距值TStep,其值可以根据同步帧周期的大小及需要的同步帧抖动精度对应调整;一个同步偏差窗口(WIN_MAX和WIN_MIN),可以将CPU发来的总线报文与主站发送同步帧的时间间隔控制在此窗口范围内。本发明提供了一种上下数据的同步方法,通过周期性的动态小幅调整,保证了CANOPEN主站模块中的同步帧的发送周期与CPU中用户程序周期的同步性,并且将同步帧的抖动控制在不大于TStep。采用此方法后,PLC采用CANOPEN主站扩展模块的方式也可以用在伺服运动控制或者一些对数据同步性要求较高的场合。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本发明实施例的CANOPEN主站与CPU的数据实时同步方法的流程图;
图2为根据本发明实施例的具备CANOPEN主站扩展模块的PLC系统应用架构的示意图;
图3为根据本发明实施例的报文同步时序图。
具体实施方式
下面详细描述本发明的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
如图1和图2所示,本发明实施例的CANOPEN主站与CPU的数据实时同步方法,包括如下步骤:
步骤S1,在PLC编程软件中建立实时任务用于运行用户编写的实时控制程序,例如,运动控制算法。
步骤S2,CPU模块底层系统中建立高优先级抢占线程作为编程软件中实时任务的底层实现。
在本发明的实施例中,抢占线程为周期运行,其中,所设置周期与CANOPEN主站的同步周期相同。
下面对CPU模块的功能进行说明。具体的,CPU模块执行以下动作:
(1)在PLC编程软件中新建实时任务,并设置其运行运行周期TS;
(2)在编程软件中为各个CANOPEN从站的RxPDO和TxPDO对象分配软元件区;
(3)编写实时控制程序;
(4)将实时控制程序添加到实时任务中;
(5)将编译后的程序和配置下载到CPU模块中;
(6)PLC底层运行软件接收到编程软件下载过来的程序和配置;根据配置,对应实时任务建立一高优先级抢占线程作为其底层实现;
(7)上述线程任务每周期首先执行的第一个工作是通过内部总线通信,将对应RxPDO对象的软元件区的值发给CANOPEN主站模块,并读取CANOPEN主站模块反馈数据到TxPDO软元件区;
(8)线程任务先进行PLC内部总线通信,再执行用户的实时控制程序,所述实时控制程序将控制字和计算给定输出到RxPDO对象对应的软元件区中,并读取TxPDO软元件区的反馈数据。
步骤S3,CANOPEN主站开启硬件定时器TIMER1,其计数始终频率为F1。
步骤S4,CANOPEN主站开启硬件定时器TIMER2,该TIMER2用于同步帧发送周期的定时。
步骤S5,CANOPEN主站接收CPU模块通过内部总线发送的控制数据,并在接收中断中记录下TIMER1的计数值,并与待发送的同步帧发送时间进行对比,如果超出比较窗口,则在下一个同步帧的发送时进行补偿。
步骤S6,CANOPEN主站发出同步帧。
步骤S7,CANOPEN主站随后将收到的内部总线中的最新给定数据通过RxPDO报文发给CANOPEN从站,并接收从站回复的TxPDO报文。
下面参考图3对CANOPEN主站的功能进行说明。具体的,CANOPEN主站执行以下动作:
(1)CANOPEN主站在初始化完成后,开启硬件定时器TIMER1,设其计数时钟频率为F1;
(2)CANOPEN主站在初始化完成后,开启硬件定时器TIMER2,用于同步帧发送周期的定时,同步帧周期为TS,同时根据同步帧周期设置与其对应的补偿步距值为TStep(us);
(3)CANOPEN主站收到CPU模块通过内部总线发来的报文帧IBUS1,进入到接收中断,在中断中记录下收到报文的时间,用TIMER1的tick值TB1表示,同时主站将内部总线报文中发来的RxPDO对象的值复制到待发送的RxPDO对象中;
(4)硬件定时器TIMER2的定时周期(T1=TS)来到并进入定时中断中,记录此时的硬件定时器TIMER1的tick值TN1,并发出同步帧;
(5)计算两个时间的时间差值ΔT1=(TN1-TB1)×1000000/F1;
(6)如果ΔT1在区间[WIN_MIN,WIN_MAX]之间,则定时器TIMER2的重装载值继续保持不变,同步帧的周期为T2=TS,开始新的一轮定时;
(7)CANOPEN主站收到CPU模块通过内部总线发来的报文帧IBUS2,进入到接收中断,在中断中记录下收到报文的时间,用TIMER1的tick值TB2表示;同时主站将内部总线报文中发来的RxPDO对象的值复制到待发送的RxPDO对象中;
(8)在T2定时周期到后进入中断,记录此时的TIMER1的tick值TN2,并发出同步帧;
(9)计算ΔT2=(TN2-TB2)×1000000/F1;如果ΔT2超过WIN_MAX:
当ΔT2-WIN_MAX小于补偿步距TStep时,定时器TIMER2的重装值对应的定时周期TS3=TS-(ΔT2-WIN_MAX);
当ΔT2-WIN_MAX大于补偿步距TStep时,定时器TIMER2的重装值对应的定时周期TS3=TS-TStep;
重复以上过程。对于ΔTn小于WIN_MIN的情况:
当WIN_MIN-ΔTn小于补偿步距TStep时,定时器TIMER2的重装值对应的定时周期TS(n+1)=TS+(WIN_MIN-ΔTn);
当WIN_MIN-ΔTn大于补偿步距TStep时,定时器TIMER2的重装值对应的定时周期TS(n+1)=TS+TStep。
其中,RxPDO:CANOPEN协议中的过程数据对象,传输方向为主站到从站,主要为控制字和计算给定值等;TxPDO:CANOPEN协议中的过程数据对象,传输方向为从站到主站,主要内容为从站的反馈状态;WIN_MAX:硬件定时器记录的CPU发来的总线报文与即将来到的同步帧周期的最大时间偏差;WIN_MIN:硬件定时器记录的CPU发来的总线报文与即将来到的同步帧周期的最小时间偏差。
需要说明的是,本发明使用实时控制程序进行举例,实际也可能是运动控制程序或其他应用程序。本发明中的CPU模块底层软件采用高优先级任务,如果使用了实时操作系统,其对应高优先级线程,对于未采用操作系统的CPU模块底层软件,其为定时中断任务。
本发明实施例的CANOPEN主站与CPU的数据实时同步方法采用PLC内部总线与CANOPEN主站扩展模块通信,交互的主要数据为CANOPEN各从站RxPDO对象值,以及各CANOPEN从站反馈的TxPDO对象的值;在CPU模块中建立一高优先级周期任务,任务每周期最开始执行的是将用户程序的计算输出及控制信息通过PLC内部总线发送给CANOPEN主站扩展模块;在CANOPEN主站模块内部开启一个硬件定时器,用于对接收到CPU模块通过内部总线发来的的报文帧进行计时。
本发明采用另一个硬件定时器产生同步帧发送的中断周期;在同步帧发送中断中比较收到的内部总线报文帧与同步帧发送的时间差值,并根据时间差值落在同步偏差窗口的位置对同步帧定时器周期进行调整,每次调整最大步距值为TStep。
根据本发明实施例的CANOPEN主站与CPU的数据实时同步方法,设计一种CPU模块与CANOPEN主站扩展模块的同步机制,既可以保证CPU模块用户程序中的计算数据能同步更新到CANOPEN主站中,也能将同步帧的抖动范围控制在一定的精度以内,满足对数据同步性要求较高的应用场合。本发明设计了一个同步帧周期补偿步距值TStep,其值可以根据同步帧周期的大小及需要的同步帧抖动精度对应调整;一个同步偏差窗口(WIN_MAX和WIN_MIN),可以将CPU发来的总线报文与主站发送同步帧的时间间隔控制在此窗口范围内。本发明提供了一种上下数据的同步方法,通过周期性的动态小幅调整,保证了CANOPEN主站模块中的同步帧的发送周期与CPU中用户程序周期的同步性,并且将同步帧的抖动控制在不大于TStep。采用此方法后,PLC采用CANOPEN主站扩展模块的方式也可以用在伺服运动控制或者一些对数据同步性要求较高的场合。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。本发明的范围由所附权利要求及其等同限定。

Claims (3)

1.一种CANOPEN主站与CPU的数据实时同步方法,其特征在于,包括如下步骤:
步骤S1,在PLC编程软件中建立实时任务用于运行用户编写的实时控制程序;
步骤S2,CPU模块底层系统中建立高优先级抢占线程作为编程软件中实时任务的底层实现;
步骤S3:实时任务周期与CANOPEN主站同步周期相同,并且每周期进入后首先通过内部总线通信写数据到CANOPEN主站、同时读CANOPEN主站的反馈数据,然后再执行用户实时控制程序;
步骤S4,所述CANOPEN主站开启硬件定时器TIMER1,用于测量报文偏差;
步骤S5,所述CANOPEN主站开启硬件定时器TIMER2,该TIMER2用于同步帧发送周期的定时;
步骤S6,所述CANOPEN主站接收CPU模块中实时任务通过内部总线发送的控制数据,并在接收中断中记录下TIMER1的计数值,并与待发送的同步帧发送时间进行对比,如果超出比较窗口,则在下一个同步帧的发送时进行补偿;
步骤S7,所述CANOPEN主站发出同步帧;
步骤S8,所述CANOPEN主站将收到的内部总线发来的控制数据通过RxPDO报文发给CANOPEN从站,并接收从站回复的TxPDO报文;
所述CANOPEN主站执行以下动作:
所述CANOPEN主站在初始化完成后,开启硬件定时器TIMER1,设其计数时钟频率为F1;
所述CANOPEN主站在初始化完成后,开启硬件定时器TIMER2,用于同步帧发送周期的定时,同步帧周期为TS,同时根据同步帧周期设置与其对应的补偿步距值为TStep;
所述CANOPEN主站收到CPU模块通过内部总线发来的报文帧IBUS1,进入到中断,在中断中记录下收到报文的时间,用TIMER1的tick值TB1表示,同时主站将内部总线报文中发来的RxPDO对象的值复制到待发送的RxPDO对象中;
所述硬件定时器TIMER2的定时周期来到并进入定时中断中,记录此时的硬件定时器TIMER1的tick值TN1,并发出同步帧;
计算两个时间的时间差值ΔT1=(TN1-TB1)×1000000/F1;
如果ΔT1在区间[WIN_MIN,WIN_MAX]之间,则定时器TIMER2的重装载值继续保持不变,同步帧的周期为T2=TS,开始新的一轮定时;
所述CANOPEN主站收到CPU模块通过内部总线发来的报文帧IBUS2,进入到接收中断,在中断中记录下收到报文的时间,用TIMER1的tick值TB2表示;同时主站将内部总线报文中发来的RxPDO对象的值复制到待发送的RxPDO对象中;
在T2定时周期到后进入中断,记录此时的TIMER1的tick值TN2,并发出同步帧;
计算ΔT2=(TN2-TB2)×1000000/F1;
如果ΔT2超过WIN_MAX:
当ΔT2-WIN_MAX小于补偿步距TStep时,定时器TIMER2的重装值对应的定时周期TS3=TS-(ΔT2-WIN_MAX);
当ΔT2-WIN_MAX大于补偿步距TStep时,定时器TIMER2的重装值对应的定时周期TS3=TS-TStep;
对于ΔTn小于WIN_MIN的情况:
当WIN_MIN-ΔTn小于补偿步距TStep时,定时器TIMER2的重装值对应的定时周期TS(n+1)=TS+(WIN_MIN-ΔTn);
当WIN_MIN-ΔTn大于补偿步距TStep时,定时器TIMER2的重装值对应的定时周期TS(n+1)=TS+TStep。
2.如权利要求1所述的CANOPEN主站与CPU的数据实时同步方法,其特征在于,所述高优先级抢占线程为周期运行,其中,所设置周期与CANOPEN主站的同步周期相同。
3.如权利要求1所述的CANOPEN主站与CPU的数据实时同步方法,其特征在于,所述CPU模块执行以下动作:
在PLC编程软件中新建实时任务,并设置其运行周期TS;
在编程软件中为各个CANOPEN从站的RxPDO和TxPDO对象分配软元件区;
编写用户实时控制程序;
将实时控制程序添加到实时任务中;
将编译后的程序和配置下载到CPU模块中;
PLC底层运行软件接收到编程软件下载过来的程序和配置;根据配置,对应实时任务建立一高优先级抢占线程作为其底层实现;
线程任务每周期首先执行的第一个工作是通过内部总线通信,将对应RxPDO对象的软元件区的值发给CANOPEN主站模块,并读取CANOPEN主站模块反馈数据到TxPDO软元件区;
所述线程任务先进行PLC内部总线通信,再执行用户的实时控制程序,所述实时控制程序将控制字和计算给定输出到RxPDO对象对应的软元件区中,并读取TxPDO软元件区的反馈数据。
CN202111214351.9A 2021-10-19 2021-10-19 一种canopen主站与cpu的数据实时同步方法 Active CN113867228B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111214351.9A CN113867228B (zh) 2021-10-19 2021-10-19 一种canopen主站与cpu的数据实时同步方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111214351.9A CN113867228B (zh) 2021-10-19 2021-10-19 一种canopen主站与cpu的数据实时同步方法

Publications (2)

Publication Number Publication Date
CN113867228A CN113867228A (zh) 2021-12-31
CN113867228B true CN113867228B (zh) 2023-10-24

Family

ID=79000448

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111214351.9A Active CN113867228B (zh) 2021-10-19 2021-10-19 一种canopen主站与cpu的数据实时同步方法

Country Status (1)

Country Link
CN (1) CN113867228B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005159754A (ja) * 2003-11-26 2005-06-16 Fuji Electric Fa Components & Systems Co Ltd 送信タイミング決定方法、バス使用権の調停方法、ネットワークシステム、プログラム
CN105024777A (zh) * 2015-07-29 2015-11-04 上海新时达电气股份有限公司 基于EtherCAT实时以太网的伺服驱动器同步方法
CN106647672A (zh) * 2017-01-10 2017-05-10 上海新时达电气股份有限公司 基于CANopen的伺服驱动器位置控制同步方法
EP3231099A1 (fr) * 2014-12-11 2017-10-18 Electricite Reseau Distribution France Synchronisation d'un réseau cpl
CN111030909A (zh) * 2020-03-03 2020-04-17 南京科远智慧科技集团股份有限公司 一种应用于can总线多主设备通讯间时间同步的方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005159754A (ja) * 2003-11-26 2005-06-16 Fuji Electric Fa Components & Systems Co Ltd 送信タイミング決定方法、バス使用権の調停方法、ネットワークシステム、プログラム
EP3231099A1 (fr) * 2014-12-11 2017-10-18 Electricite Reseau Distribution France Synchronisation d'un réseau cpl
CN105024777A (zh) * 2015-07-29 2015-11-04 上海新时达电气股份有限公司 基于EtherCAT实时以太网的伺服驱动器同步方法
CN106647672A (zh) * 2017-01-10 2017-05-10 上海新时达电气股份有限公司 基于CANopen的伺服驱动器位置控制同步方法
CN111030909A (zh) * 2020-03-03 2020-04-17 南京科远智慧科技集团股份有限公司 一种应用于can总线多主设备通讯间时间同步的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CAN总线位定时与同步机制的研究;佟为明;陈培友;高洪伟;钱英军;;电子器件(04);全文 *

Also Published As

Publication number Publication date
CN113867228A (zh) 2021-12-31

Similar Documents

Publication Publication Date Title
US6539489B1 (en) Apparatus, method and system for synchronizing slave system operations to master system clocking signals in a master-slave asynchronous communication system
US7171573B2 (en) Synchronization of data processing units
CN105024777B (zh) 基于EtherCAT实时以太网的伺服驱动器同步方法
EP1757410B1 (en) Robot coordinated control method and system
JP3748204B2 (ja) 周期制御同期システム
US7904184B2 (en) Motion control timing models
US7280565B2 (en) Synchronous clocked communication system with decentralized input/output modules and method for linking decentralized input/output modules into such a system
US7721030B2 (en) Method and device for connecting sensors or actuators to a bus system
JP2004536538A (ja) 分散型システムのクロック同期
EP2169487B1 (en) Industrial controller with coordination of network transmissions using global clock
CN105763641A (zh) 一种EtherCAT主站控制系统的快速时钟同步方法
JP3386777B2 (ja) 数値制御システム
CN107402534B (zh) 调节方法、EtherCAT主站及计算机可读存储介质
WO2019107022A1 (ja) 制御装置および制御方法
CN105049309A (zh) 基于powerlink实时以太网的伺服驱动器同步方法
US20090240857A1 (en) Method and device for controlling a bus system and a corresponding bus system
US9081371B2 (en) Method for synchronizing an operating clock with a time clock of an automation network
CN106647672B (zh) 基于CANopen的伺服驱动器位置控制同步方法
EP3851925B1 (en) A synchronised control system
CN113485205B (zh) 一种基于canbus总线的伺服驱动器时钟同步和位置重构方法
CN113867228B (zh) 一种canopen主站与cpu的数据实时同步方法
CN108199822B (zh) 一种EtherCAT-NCUC的总线同步方法及装置
CN107181553A (zh) 一种伺服驱动器内部进行精确时间同步的方法
CN106647574B (zh) 一种多轴伺服驱动器同步系统控制方法
Luckinger et al. AUTOSAR-compliant clock synchronization over CAN using software timestamping

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