首页 / 专利库 / 微电子学 / 时钟偏差 / 一种PLC分布式远程IO扩展模块

一种PLC分布式远程IO扩展模

阅读:1026发布:2020-06-03

专利汇可以提供一种PLC分布式远程IO扩展模专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种PLC分布式远程IO扩展模 块 ,其包括PLC主机、若干 接口 模块、若干IO模块。PLC主机作为主站加载这些接口模块,每个接口模块作为一个从站加载一定数量的IO模块,每个接口模块与相应的IO模块采用共有的自定义并行扩展总线通讯。PLC主机通过接口模块与IO模块构成分布式IO扩展结构。PLC主站与接口模块共享内存,通过 现场总线 或实时以太网交换数据。PLC主站的内存RAM中划分出一个区域作为共享区域shared_RAM,专 门 与每个接口模块的内存shared_DPRAM在地址空间上互相映射。PLC主机通过时间片来控制共享区域shared_RAM与不同 节点 上的接口模块的轮流通讯。本发明的扩展方式提高PLC主机处理IO模块的能 力 。,下面是一种PLC分布式远程IO扩展模专利的具体信息内容。

1.一种PLC分布式远程IO扩展模,其特征在于:其包括PLC主机、若干接口模块、若干IO模块;所述PLC主机作为主站加载这些接口模块,每个接口模块作为一个从站加载一定数量的IO模块,每个接口模块与相应的IO模块采用共有的自定义并行扩展总线通讯,所述PLC主机通过所述若干接口模块与所述若干IO模块构成分布式IO扩展结构;其特征在于:
所述PLC主站与所述若干接口模块共享内存,通过现场总线或实时以太网交换数据;所述PLC主站的内存RAM中划分出一个区域作为共享区域shared_RAM,专与每个接口模块的内存shared_DPRAM在地址空间上互相映射;所述PLC主机通过若干时间片来控制共享区域shared_RAM与不同节点上的接口模块的轮流通讯;
其中,每个接口模块的内存shared_DPRAM是一个双端口RAM,通过现场总线或实时以太网通讯,把存储在内存shared_DPRAM内的数据,并同步映射到所述PLC主机的共享区域shared_RAM的内存区域x单元中;其中,x=1、2….N,N为时间片的数量也是共享区域shared_RAM的内存分区数;每个接口模块内的内存shared_DPRAM划分成M个内存区域,M为接口模块的槽数即为接口模块加载IO模块的最大数量。
2.如权利要求1所述的PLC分布式远程IO扩展模块,其特征在于:每个接口模块加载的IO模块的数量由自定义并行扩展总线的地址线位数决定:2地址线位数。
3.如权利要求1所述的PLC分布式远程IO扩展模块,其特征在于:每个接口模块与所述PLC主机采用现场总线或实时以太网通讯。
4.如权利要求1所述的PLC分布式远程IO扩展模块,其特征在于:PLC主机在内部中断控制下,通过多个时间片进行管理控制,并轮流切换各个接口模块。
5.如权利要求4所述的PLC分布式远程IO扩展模块,其特征在于:PLC主机与各个接口模块以实时交换数据的方式共享内存。
6.如权利要求1所述的PLC分布式远程IO扩展模块,其特征在于:每个时间片包括管理单元phase_period_counter、定时器TS_timer、双比较器compare_unit;管理单元phase_period_counter是一个相位、周期及计数器的管理单元,用来管理时间片是工作在相位状态还是周期计数状态;双比较器compare_unit每接收一个中断信号输出两个中断信号:TS_INT_0和TS_INT_1;
管理单元phase_period_counter接收相位偏移值t_phase、周期运行时间长度值t_period、同步控制时钟SYNO、单个脉冲信号Load_phase、全局使能时间片通道信号GLOBAL_EN、使能定时器信号Timer_EN,并输出相位偏移Phase_period_value、定时器TS_timer清零并重新开始计时信号Set_TS_0、装载比较值TS_timer_EN、相位偏移状态激活信号Phase_active;
定时器TS_timer接收所述使能定时器信号Timer_EN、所述计时信号Set_TS_0、所述装载比较值TS_timer_EN,并输出过程值TS_timer_value、
双比较器compare_unit接收所述使能定时器信号Timer_EN、两个比较器的给定值COMP_value_1与COMP_value_2、两个比较器的使能COMP_EN_1与COMP_EN_2、所述计时信号Set_TS_0、所述装载比较值TS_timer_EN,并输出两个中断信号TS_INT_0、TS_INT_1;
其中,相位偏移状态激活信号Phase_active一旦激活,定时器TS-timer、双比较器Comparator_unit将中断;两个中断信号TS_INT_0、TS_INT_1输出到中断控制器
7.如权利要求6所述的PLC分布式远程IO扩展模块,其特征在于:相位偏移值t_phase是同步控制时钟SYNO的整数倍,t_phase=n×SYNO,代表相位偏移值t_phase的大小等于n个同步控制时钟脉冲的长度;相位偏移值t_phase用来纠正因系统抖动而造成的中断信号偏差;相位偏移值t_phase是动态改变的,并在下一个周期运行时间长度值t_period到来之前,计时信号Set_TS_0=0,中断运行定时器TS_timer、比较器comparator_unit,中断时间=相位偏移值t_phase;周期运行时间长度值t_period是同步控制时钟SYNO的整数倍,t_period=m×SYNO,就是代表周期运行时间长度值t_period的大小等于m个同步控制时钟脉冲的长度;在周期运行时间长度值t_period的时间段内,周期地产生中断信号;周期运行时间长度值t_period是动态改变的,管理单元phase_period_counter会在当前运行周期结束后使用新的数值;在计时信号Set_TS_0=1的时候并且定时器清零重新计时之前把新的比较值输出给双比较器compare_unit。
8.如权利要求7所述的PLC分布式远程IO扩展模块,其特征在于:所述PLC主机通过对多个时间片的管理实现对这些接口模块的轮流调度,并通过动态调节每个时间片内相位偏移值t_phase的长度,使得各个时间片同步,由此实现各个接口模块的同步运行。
9.如权利要求8所述的PLC分布式远程IO扩展模块,其特征在于:
第一个同步时钟控制信号SYNO到来之际,全局使能时间片通道信号GLOBAL_EN=1、使能定时器信号Timer_EN=1,则管理单元phase_period_counter工作在period状态,输出相位偏移Phase_period_value为相位偏移值t_phase,同时计时信号Set_TS_0=1使定时器TS-timer清零并从0开始增计数;计时信号Set_TS_0=1同时装载比较值TS_timer_EN=1,在定时器TS-timer开始计数之前装载两个比较器的给定值COMP_value_1、COMP_value_2,此后的周期运行时间长度值t_period内,定时器TS-timer计数,当定时器TS-timer的当前值TS_COUNT=COMP_value_1时,输出中断信号TS_INT_0;当定时器TS-timer的当前值TS_COUNT=COMP_value_2时,输出中断信号TS_INT_1;
在第一个周期运行时间长度值t_period过程中,系统计算出中断输出因为抖动需要偏移x个SYNO,才能保证双比较器compare_unit输出的中断信号满足同步性要求时,在第一个周期运行时间长度值t_period结束时,全局使能时间片通道信号GLOBAL_EN=1、使能定时器信号Timer_EN=0、单个脉冲信号Load_phase=1,则管理单元phase_period_counter工作在period状态,相位偏移Phase_period_value为相位偏移值t_phase,同时相位偏移状态激活信号phase_active=1、装载比较值TS_timer_EN=0,禁用定时器TS_timer和双比较器compare_unit,计时信号Set_TS_0=1、在工作状态开始之前装载最新的COMP_value_1、COMP_value_2,此后的x个同步控制时钟SYNO内,没有中断信号输出;
在第一个周期运行时间长度值t_period结束之后,第二个周期运行时间长度值t_period开始之前,全局使能时间片通道信号GLOBAL_EN=1、使能定时器信号Timer_EN=1、单个脉冲信号Load_phase=0,管理单元phase_period_counter再次工作在period状态,在新的周期运行时间长度值t_period开始之前,装载最新的COMP_value_1、COMP_value_2。

说明书全文

一种PLC分布式远程IO扩展模

[0001] 本申请是申请号为CN201510863641.4,申请日为2015/11/27,且发明名称为一种PLC IO扩展模块的扩展方法的分案申请。

技术领域

[0002] 本发明涉及一种PLC IO扩展模块,尤其涉及一种PLC分布式远程IO扩展模块。

背景技术

[0003] 目前,市面销售的任何一款PLC都支持IO扩展。当主机的IO不足的时候,可以通过扩展模块/单元来增加整个PLC系统的处理IO的能。扩展IO可以按模块来做,比如siemens S7_300系列PLC的扩展IO就是按模块制作的,接口模块、数字量输入模块、数字量输出模块、数字量输入输出模块、模拟量输入模块、模拟量输出模块、模拟量输入输出模块、以及其它特殊功能模块等。
[0004] 每个品牌的PLC其接口模块和扩展方法都不相同,涉及产品核心机密。作为一个制造PLC的企业如果想拓展自己的PLC处理IO的能力,就要开发符合自身协议的接口模块和IO模块。

发明内容

[0005] 本发明提出了一种PLC分布式远程IO扩展模块,其扩展方式大大提高PLC主机处理IO模块的能力。
[0006] 本发明采用以下技术方案实现:一种PLC分布式远程IO扩展模块,其包括PLC主机、若干接口模块、若干IO模块;所述PLC主机作为主站并加载这些接口模块,每个接口模块作为一个从站加载一定数量的IO模块,每个接口模块与相应的IO模块采用共有的自定义并行扩展总线通讯,所述PLC主机通过所述若干接口模块与所述若干IO模块构成分布式IO扩展结构;所述PLC主站与所述若干接口模块共享内存,通过现场总线或实时以太网交换数据;所述PLC主站的内存RAM中划分出一个区域作为共享区域shared_RAM,专与每个接口模块的内存shared_DPRAM在地址空间上互相映射;所述PLC主机通过若干时间片来控制共享区域shared_RAM与不同节点上的接口模块的轮流通讯。
[0007] 作为上述方案的进一步改进,每个接口模块加载的IO模块的数量由自定义并行扩展总线的地址线位数决定:2地址线位数。
[0008] 作为上述方案的进一步改进,每个接口模块与所述PLC主机采用现场总线或实时以太网通讯。
[0009] 作为上述方案的进一步改进,PLC主机在内部中断控制下,通过多个时间片进行管理控制,并轮流切换各个接口模块。
[0010] 进一步地,PLC主机与各个接口模块以实时交换数据的方式共享内存。
[0011] 作为上述方案的进一步改进,每个接口模块的内存shared_DPRAM是一个双端口RAM,通过现场总线或实时以太网通讯,把存储在内存shared_DPRAM内的数据,并同步映射到所述PLC主机的共享区域shared_RAM的内存区域x单元中;其中,x=1、2….N,N为时间片的数量也是共享区域shared_RAM的内存分区数;每个接口模块内的内存shared_DPRAM划分成M个内存区域,M为接口模块的槽数即为接口模块加载IO模块的最大数量。
[0012] 进一步地,每个时间片包括管理单元phase_period_counter、定时器TS_timer、双比较器compare_unit;管理单元phase_period_counter是一个相位、周期及计数器的管理单元,用来管理时间片是工作在相位状态还是周期计数状态;双比较器compare_unit每接收一个中断信号输出两个中断信号:TS_INT_0和TS_INT_1;
[0013] 管理单元phase_period_counter接收相位偏移值t_phase、周期运行时间长度值t_period、同步控制时钟SYNO、单个脉冲信号Load_phase、全局使能时间片通道信号GLOBAL_EN、使能定时器信号Timer_EN,并输出相位偏移Phase_period_value、定时器TS_timer清零并重新开始计时信号Set_TS_0、装载比较值TS_timer_EN、相位偏移状态激活信号Phase_active;
[0014] 定时器TS_timer接收所述使能定时器信号Timer_EN、所述计时信号Set_TS_0、所述装载比较值TS_timer_EN,并输出过程值TS_timer_value、
[0015] 双比较器compare_unit接收所述使能定时器信号Timer_EN、两个比较器的给定值COMP_value_1与COMP_value_2、两个比较器的使能COMP_EN_1与COMP_EN_2、所述计时信号Set_TS_0、所述装载比较值TS_timer_EN,并输出两个中断信号TS_INT_0、TS_INT_1;
[0016] 其中,相位偏移状态激活信号Phase_active一旦激活,定时器TS-timer、双比较器Comparator_unit将中断;两个中断信号TS_INT_0、TS_INT_1输出到中断控制器
[0017] 再进一步地,相位偏移值t_phase是同步控制时钟SYNO的整数倍,t_phase=n×SYNO,代表相位偏移值t_phase的大小等于n个同步控制时钟脉冲的长度;相位偏移值t_phase用来纠正因系统抖动而造成的中断信号偏差;相位偏移值t_phase是动态改变的,并在下一个周期运行时间长度值t_period到来之前,计时信号Set_TS_0=0,中断运行定时器TS_timer、比较器comparator_unit,中断时间=相位偏移值t_phase;周期运行时间长度值t_period是同步控制时钟SYNO的整数倍,t_period=m×SYNO,就是代表周期运行时间长度值t_period的大小等于m个同步控制时钟脉冲的长度;在周期运行时间长度值t_period的时间段内,周期地产生中断信号;周期运行时间长度值t_period是动态改变的,管理单元phase_period_counter会在当前运行周期结束后使用新的数值;在计时信号Set_TS_0=1的时候并且定时器清零重新计时之前把新的比较值输出给双比较器compare_unit。
[0018] 优选地,所述PLC主机通过对多个时间片的管理实现对这些接口模块的轮流调度,并通过动态调节每个时间片内相位偏移值t_phase的长度,使得各个时间片同步,由此实现各个接口模块的同步运行。
[0019] 再优选地,第一个同步时钟控制信号SYNO到来之际,全局使能时间片通道信号GLOBAL_EN=1、使能定时器信号Timer_EN=1,则管理单元phase_period_counter工作在period状态,输出相位偏移Phase_period_value为相位偏移值t_phase,同时计时信号Set_TS_0=1使定时器TS-timer清零并从0开始增计数;计时信号Set_TS_0=1同时装载比较值TS_timer_EN=1,在定时器TS-timer开始计数之前装载两个比较器的给定值COMP_value_1、COMP_value_2,此后的周期运行时间长度值t_period内,定时器TS-timer计数,当定时器TS-timer的当前值TS_COUNT=COMP_value_1时,输出中断信号TS_INT_0;当定时器TS-timer的当前值TS_COUNT=COMP_value_2时,输出中断信号TS_INT_1;
[0020] 在第一个周期运行时间长度值t_period过程中,系统计算出中断输出因为抖动需要偏移x个SYNO,才能保证双比较器compare_unit输出的中断信号满足同步性要求时,在第一个周期运行时间长度值t_period结束时,全局使能时间片通道信号GLOBAL_EN=1、使能定时器信号Timer_EN=0、单个脉冲信号Load_phase=1,则管理单元phase_period_counter工作在period状态,相位偏移Phase_period_value为相位偏移值t_phase,同时相位偏移状态激活信号phase_active=1、装载比较值TS_timer_EN=0,禁用定时器TS_timer和双比较器compare_unit,计时信号Set_TS_0=1、在工作状态开始之前装载最新的COMP_value_1、COMP_value_2,此后的x个同步控制时钟SYNO内,没有中断信号输出;
[0021] 在第一个周期运行时间长度值t_period结束之后,第二个周期运行时间长度值t_period开始之前,全局使能时间片通道信号GLOBAL_EN=1、使能定时器信号Timer_EN=1、单个脉冲信号Load_phase=0,管理单元phase_period_counter再次工作在period状态,在新的周期运行时间长度值t_period开始之前,装载最新的COMP_value_1、COMP_value_2。
[0022] 综上所述,PLC主站实现扩展的方法之一是:不用接口模块,通过PLC主机及各个IO模块共有的自定义并行扩展总线通讯,实现互联,已达到扩展IO的目的。不用接口模块,最大IO扩展的能力有限,受地址/数据位数的限制,一般不会超过8个IO模块。PLC主站实现扩展的方法之二是:使用接口模块通过现场总线或实时以太网实现PLC的IO扩展。接口模块与PLC主机是现场总线或实时以太网通讯,接口模块与各个IO模块采用共有的自定义并行扩展总线通讯,使用接口模块可以使PLC主机实现分布式IO扩展。附图说明
[0023] 图1是本发明实施例1的PLC本地IO扩展模块的结构示意图。
[0024] 图2本发明实施例2的PLC分布式远程IO扩展模块的结构示意图。
[0025] 图3是图2的具体细化的结构示意图。
[0026] 图4是图3中PLC主机的共享区域的结构示意图。
[0027] 图5是图3中接口模块的内存的结构示意图。
[0028] 图6是图3中具有时间片的ARM内核的运动控制框架
[0029] 图7是图6中时间片管理的结构示意图。
[0030] 图8是图7中时间片管理的细化结构图。
[0031] 图9是图8中时间片的结构示意图。
[0032] 图10是图8时间片管理的信号时序图。

具体实施方式

[0033] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0034] 实施例1
[0035] 请参阅图1,PLC本地IO扩展模块包括PLC主机1、若干IO模块2。PLC主机1加载这些IO模块2。PLC主机1与各个IO模块2共有自定义并行扩展总线3,通过共有的自定义并行扩展总线3通讯并扩展IO数。这些IO模块2的数量由自定义并行扩展总线的地址线位数决定:2地址线位数。IO模块2的数量也称槽数。
[0036] 本实施例不用接口模块,通过PLC主机1及各个IO模块2共有的自定义并行扩展总线3通讯,实现互联,已达到扩展IO的目的。不用接口模块,最大IO扩展的能力有限,受地址/数据位数的限制,一般不会超过8个IO模块。
[0037] 实施例2
[0038] 请参阅图2,本实施例的PLC分布式远程IO扩展模块包括PLC主机10、若干接口模块40、若干IO模块50。PLC主机10作为主站加载这些接口模块40,每个接口模块40作为一个节点20即从站加载一定数量的IO模块50。每个接口模块40与PLC主机10采用现场总线或实时以太网通讯,每个接口模块40与相应的IO模块50采用共有的自定义并行扩展总线30通讯。
PLC主机10通过若干接口模块40与IO模块50构成分布式IO扩展结构。每个接口模块加载的IO模块的数量由自定义并行扩展总线的地址线位数决定:2地址线位数。
[0039] 本实施例使用接口模块40通过现场总线或实时以太网实现PLC主机10的IO扩展。接口模块与PLC主机10是现场总线或实时以太网通讯,接口模块与各个IO模块采用共有的自定义并行扩展总线30通讯。使用接口模块可以使PLC主机10实现分布式IO扩展。
[0040] 使用接口模块通过现场总线或实时以太网实现PLC主机10的IO扩展,最大IO扩展的能力很强,只受PLC主机10硬件的寄存器能力影响,PLC主机10硬件有多大的IO能力,接口模块就能扩展多少IO模块。
[0041] 使用接口模块通过现场总线或实时以太网实现PLC主机10的IO扩展,通过网络节点20来扩展,一个接口模块就是1各节点20,然后接口模块根据地址/数据位数的宽度决定加载IO模块的数量,这叫槽数。一个槽安装一个IO模块。图2中只画了2个节点。每个节点=1个接口模块+8个槽的IO模块。如图2所示,地址位数=3,数据位数=12,23=8,所以最多可以寻址8个槽,即8个IO模块。
[0042] 本实施例2的特点:
[0043] 1、本发明,可以使用接口模块40实现PLC主机10与IO模块50的远程、分布式IO扩展;也可以不使用接口模块40实现PLC的本地IO扩展;
[0044] 2、本发明设计的接口模块50可以本地安装,以增强扩展IO的能力;
[0045] 3、使用接口模块实现PLC主机10与IO模块50扩展,可以发挥PLC主机10硬件上的寄存器赋予的最大IO能力;
[0046] 4、本发明设计IO模块50可以与PLC主机10直接本地安装,以实现有限的IO扩展能力;
[0047] 5、PLC主机10与接口模块40+IO模块。
[0048] 以下描述事关本发明的实施例2的具体实现方法。
[0049] 请结合图3,PLC主机10中,主要有内存RAM、时间片管理、中断控制、现场总线或实时以太网接口。shared_RAM是PLC内存RAM中划分的一个专属区域。接口模块主要有shared_DPRAM、时间片管理、中断控制、交换机控制、自定义并行扩展总线接口、现场总线或实时以太网接口。IO模块中有本地双端口内存Local_DPRAM,和本地工作内存Local_SRAM。
[0050] PLC主机10与接口模块40共享内存,通过现场总线或实时以太网60交换数据。PLC主机10的内存RAM中划分出一个区域作为共享区域shared_RAM,专门与接口模块40的内存shared_DPRAM在地址空间上互相映射,只要保证通讯机制的实时性,就可以保证PLC主机10内存中的shared_RAM与接口模块40中的shared_DPRAM数据的一致性和实时性。
[0051] PLC主机10通过时间片管理、中断控制管理,来控制shared_RAM内存区域与不同节点上的接口模块40通讯。即在规定的时间片长度内,如图4所示,shared_RAM内存区域一与节点一上的接口模块40内的shared_DPRAM进行读写操作。规定的时间结束后,shared_RAM内存区域二与节点二上的接口模块40内的shared_DPRAM进行读写操作。以此类推。当最后一个节点的读写操作完成以后,系统控制又回到对第一个节点的操作。周而复始。
[0052] 由于现场总线或实时以太网60通讯的实时性很强,因此保证了PLC主机10内存区域shared_RAM与各节点接口模块40中的shared_DPRAM数据的一致性和实时性。
[0053] 接口模块40是双向通讯的,一方面通过现场总线或实时以太网60与PLC主机10通讯,另一方面通过通过自定义并行扩展总线接口与IO模块50通讯。接口模块40的双向通讯都是共享内存通讯。
[0054] 接口模块40内的shared_DPRAM是一个双端口RAM,通过现场总线或实时以太网60通讯,把存储在shared_DPRAM内的数据,同步映射到PLC的shared_RAM内存区域x单元中。(x=1、2….N,N时间片数,也是内存分区数)。
[0055] 接口模块40内的shared_DPRAM,要划分成m个内存区域,m=接口模块的槽数=接口模块挂载IO模块的最大数量。举例,自定义并行扩展总线中地址线=3bit,那么接口模块40的槽数=23=8,该接口模块40最多可以挂载8个IO模块50。接口模块40内的shared_DPRAM划分的M个内存区域依次与对应槽号上的IO模块50内的双端口内存Local_DPRAM一一对应,相互映射。即:shared_DPRAM的内存区域M与槽号M上的IO模块50内的Local_DPRAM一一对应,并互相映射。数据是对等的,如图5所示。
[0056] 接口模块40内的shared_DPRAM划分的M个内存区域,在CPU(MCU)的控制下,通过内部自定义并行扩展总线接口分别依次与IO模块50通讯,自定义并行扩展总线接口只有一个,为了让IO模块内的Local_DPRAM及时地、准确地与接口模块内的shared_DPRAM对应的内存区域交换数据,接口模块内部有交换机控制单元,来切换数据通道。即:在CPU(MCU)的控制下,接口模块采用时间片管理、中断控制,在规定的时间间隔内及时切换交换机单元的数据通道,以保证shared_DPRAM内的M个内存区域及时地、准确地与对应的IO模块内的Local_DPRAM交换数据。
[0057] IO模块50安装在接口模块40的槽口上,每个IO模块50都有描述自己属性的电子设备文件,IO模块50物理安装完毕,需要在PLC主机10的硬件管理软件中配置这些IO模块50的电子设备文件,配置完的PLC主机10及IO模块50就是一个PLC网络,其配置那件就是PLC网络硬件信息。硬件信息是要通过PLC主机10的硬件管理软件下载到PLC主机10的flash中。PLC网络硬件信息会驻留在PLC主机10的flash中,断电不被影响,重新上电自动加载硬件信息。
[0058] 配置完的PLC网络,不能随意更改IO模块50的型号、数量、位置次序,否则PLC主机10将无法识别。如果要更改,就要重新配置PLC网络硬件信息,并再次下载到PLC主机10的flash中。
[0059] IO模块50里有一个本地双端口内存Local_DPRAM,Local_DPRAM存现场IO信息。并通过内部自定义并行扩展总线与接口模块40shared_DPRAM内的对应的内存区域及时地、准确地交换数据。IO模块50里还有一个本地SRAM,是IO模块50的工作内存,采样后的现场IO信息就暂存在SRAM中,并在锁存器信号下保持到Local_DPRAM中。
[0060] IO模块50通过地址线判断来自接口模块40的信息是否针对自己,如果是针对自己,则IO模块50与接口模块40对应的内存区域交换数据。其它IO模块50等待。在时间片及中断控制的管理下,每个IO模块50都有均等的机会与接口模块40通讯。
[0061] 进一步说明,这些时间片可采用ARM内核的运动控制框架(仅运动控制有关),如图6所示。ARM内核,通过指令缓存I-CACHE、地址缓存D_CACHE与片内AHB_Master通讯。通过对多个时间片的管理实现与不同节点上的接口模块的轮流通讯,并通过动态调节每个时间片内相位偏移值t_phase的长度,使得各个时间片同步,由此实现各个接口模块40的同步运行。本实施例虽然以ARM内核为例,但不局限于ARM内核,可以适用于MIPS内核CPU、×86内核CPU等。
[0062] 在图6中,中断控制单元、运行时管理、时间片管理均通过各自的AHB接口对驱动器端口控制_PLL和驱动器端口MAC+PHY进行控制。
[0063] 驱动器端口MAC+PHY输出接驱动器端口,比如RJ45。中断控制单元、运行时管理、时间片管理、驱动器端口控制_PLL和驱动器端口MAC+PHY均通过各自的AHB接口经AHB_IF转换,与AHB_Master通讯。
[0064] 如图7所示,时间片管理策略,每个时间片通过时间片AHB_接口单元与AHB_BUS双向通讯,每个时间片各自输出两个中断,时间片_0和时间片_1。中断信号统一输送到中断控制总线上,由中断控制单元统一调度。
[0065] 时间片的数量是根据进程的数量紧密关联的,运动控制器能携带几个轴,就需要几个时间片。运动控制核心程序就是在时间片规定的时间内执行时间片中断程序_n,控制驱动轴数的轮转。时间片总数=1+运动控制器携带轴的数量。
[0066] 比如,西门子数控系统Sinumerik NCU730.3,最大可控轴数31,则运动控制的时间片数量=31+1=32个。有一个时间片运行着运动控制核心程序,不参与控制驱动轴数的轮转。在图7中,n——时间片数量。图7细化后的图如图8所示。
[0067] 在图8中,驱动器端口控制及驱动器端口控制_PLL,虚线框中=时间片单元,时间片通道,n个,其同步控制时钟来自驱动器端口控制_PLL,运行时管理、驱动器端口控制的同步控制时钟来自驱动器端口控制_PLL。
[0068] TS_INT_00、TS_INT_01:TS=Time Slice缩写,以下同;INT=Interrupt缩写,以下同。TS_INT_00=时间片0的0号中断,TS_INT_01=时间片0的1号中断。以下同。
[0069] TSM=Time Slice Management,时间片管理缩写INT_TSM0=中断控制_时间片0,即中断控制单元内,对时间片0号通道的中断控制管理。以下同。
[0070] 所有:运行时管理、中断控制管理、驱动器端口控制及驱动器端口控制_PLL都是通过对应的AHB-IF接口单元,管理控制着时间片单元。
[0071] 请参阅图9,单个的时间片结构为:每一个时间片=管理单元phase_period_counter、定时器TS_timer、双比较器compare_unit,这是本发明的特色之一,与目前的时间片均不同。
[0072] 在图9中,phase_period_counter:是一个相位、周期及计数器的管理单元,用来管理时间片是工作在相位状态还是周期计数状态。
[0073] Comparator_unit:是一个双比较器,每个比较器输出一个中断信号,双比较器输出两个中断信号:TS_INT_0和TS_INT_1。
[0074] SYNO:同步控制时钟,来自驱动器端口控制_PLL,用途:用来同步所有时间片的输出。这也是本发明的特色之一,可以采用多个时间片进行有效管理与控制,达到本发明的有益效果。
[0075] GLOBAL_EN:全局使能时间片通道,GLOBAL_EN='1',在初始化的同时使能所有时间片通道的。GLOBAL_EN=0,将所有的时间切片复位,但保留相位、周期等寄存器的值。
[0076] Phase:向phase_period_counter管理单元输入相位偏移值t_phase,t_phase是同步控制时钟SYNO的整数倍,比如t_phase=3×SYNO,就是代表相位值的大小等于3个同步控制时钟脉冲的长度。相位偏移值用来纠正因系统抖动而造成的中断信号偏差,即人为地增加一段偏移量,从而人为地制造中断输出偏移,从而是输出中断信号满足同步要求。相位偏移值t_phase是动态改变的,有、还是没有相位偏移值t_phase、t_phase值是多少都由软件自动计算,并在下一个t_period到来之前,Set_TS_0=0,中断运行定时器定时器TS-timer、比较器Comparator_unit,中断时间=t_phase。这也是本发明的特色之一,是本发明运行的关键。
[0077] Period:向phase_period_counter管理单元输入周期运行时间长度值t_period,t_period是同步控制时钟SYNO的整数倍,比如t_period=9×SYNO,就是代表相位值的大小等于m=9个同步控制时钟脉冲的长度。用于周期运行,在t_period时间段内,周期地产生中断信号。t_period是动态改变的,由软件自动计算,Phase_Period_Counter会在当前运行周期结束(Phase_Period_Counter经过零点位置,)后使用新的数值。在Set_TS_0=1的时候并且定时器清零重新计时之前把新的比较值输出给比较器单元。这也是本发明的特色之一,是本发明运行的关键。
[0078] Load_phase:单个脉冲信号,激活Phase_active,使得phase_period_counter管理单元工作在Phase状态。
[0079] Timer_EN:使能定时器。
[0080] Phase_period_value:phase_period_counter管理单元输出的相位偏移t_Phase或定时周期设定值t_period。
[0081] TS_timer_value:定时器TS_TIMER输出的定时器过程值。
[0082] COMP_value_1、COMP_value_2:给比较器输入的给定值1和给定值2,给定值1/2是动态改变的,每个t_period内,软件都会自动计算新的比较值,然后在TS_timer_EN=1的时候装载新的比较值。这也是本发明的特色之一。
[0083] COMP_EN_1、COMP_EN_2:比较器1使能、比较器2使能,用于产生中断信号1、中断信号2。
[0084] Phase_active:相位偏移状态激活,一旦激活,定时器TS-timer、比较器Comparator_unit将中断。
[0085] TS_timer_EN:比较器Comparator_unit使能,装载比较值COMP_value_1、COMP_value_2。
[0086] Set_TS_0:定时器TS-timer清零并重新开始计时。
[0087] TS_INT_0、TS_INT_1:时间片管理单元输出到中断控制器的中断信号0、中断信号1。
[0088] 请结合图8、图10举例说明本发明的应用于若干所述时间片的管理与控制方法。在图10中,从左到右,第一个同步时钟控制信号SYNO到来之际,GLOBAL_EN=1、Timer_EN=1、phase_period_counter管理单元工作在period状态,输出:Phase_period_value为t_period(图中t_period=9×SYNO)、同时Set_TS_0=1使能定时器TS-timer、定时器清零并从0开始增计数,Set_TS_0=1同时TS_timer_EN=1,在定时器开始计数之前装载比较值COMP_value_1、COMP_value_2,此后的t_period内,定时器计数,当定时器的当前值TS_COUNT=COMP_value_1时,输出TS_INT_0。
[0089] 当定时器的当前值TS_COUNT=COMP_value_2时,输出TS_INT_1。
[0090] 在此过程中系统自动计算下一个周期的COMP_value_1、COMP_value_2、t_period、t_phase。
[0091] 在第一个t_period过程中,系统计算出中断输出因为抖动需要偏移3个SYNO,才能保证比较器输出的中断信号满足同步性要求。因此,在第一个t_period结束时(定时器TS-timer取得最大值),GLOBAL_EN=1、Timer_EN=0、Load_phase=1,phase_period_counter管理单元工作在phase状态,Phase_period_value为t_phase(图中t_phase=3×SYNO),同时phase_active=1、TS_timer_EN=0,禁用定时器和比较器,Set_TS_0=1、在phase状态开始之前装载最新的COMP_value_1、COMP_value_2,此后的3个SYNO内,没有中断输出。
[0092] t_phase结束之后,第二个t_period开始之前,GLOBAL_EN=1、Timer_EN=1、Load_phase=0,phase_period_counter管理单元再次工作在period状态,在新的t_period开始之前,装载最新的COMP_value_1、COMP_value_2,以下内容同第一个t_period。
[0093] 因此,接口模块40内有shared_DPRAM、时间片管理、中断控制、交换机控制、自定义并行扩展总线接口、现场总线或实时以太网接口。在中断控制下通过时间片管理控制并轮流切换shared_DPRAM区域与IO模块30交换数据。本发明还具备实时性:每个周期内自动计算、自动调整相位偏移值t_phase。
[0094] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈