买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:傲拓科技股份有限公司
摘要:本发明提出了一种CANOPEN主站与CPU的数据实时同步方法,包括:在PLC中建立实时任务用于运行用户编写的实时控制程序;CPU模块底层系统中建立高优先级抢占线程作为实时任务的底层实现;实时任务周期与CANOPEN主站同步周期相同,每周期进入后首先通过内部总线通信写数据到主站、同时读主站的反馈数据;主站开启硬件定时器TIMER1,用于测量报文偏差;主站开启硬件定时器TIMER2,用于同步帧发送周期的定时;主站接收实时任务通过内部总线发送的控制数据,并在接收中断中记录下TIMER1的计数值,与待发送的同步帧发送时间进行对比,如果超出比较窗口,则在下一个同步帧的发送时进行补偿;主站发出同步帧;主站将收到的内部总线发来的控制数据发给从站。
主权项: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×1000000F1;如果ΔT1在区间[WIN_MIN,WIN_MAX]之间,则定时器TIMER2的重装载值继续保持不变,同步帧的周期为T2=TS,开始新的一轮定时;所述CANOPEN主站收到CPU模块通过内部总线发来的报文帧IBUS2,进入到接收中断,在中断中记录下收到报文的时间,用TIMER1的tick值TB2表示;同时主站将内部总线报文中发来的RxPDO对象的值复制到待发送的RxPDO对象中;在T2定时周期到后进入中断,记录此时的TIMER1的tick值TN2,并发出同步帧;计算ΔT2=TN2-TB2×1000000F1;如果Δ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的重装值对应的定时周期TSn+1=TS+WIN_MIN-ΔTn;当WIN_MIN-ΔTn大于补偿步距TStep时,定时器TIMER2的重装值对应的定时周期TSn+1=TS+TStep。
全文数据:
权利要求:
百度查询: 傲拓科技股份有限公司 一种CANOPEN主站与CPU的数据实时同步方法
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。