使用异步通信的运动控制系统和控制器及其方法_2

文档序号:8548372阅读:来源:国知局
编程,第二控制器11进一步包括第二应用模块111。第二通信模块110还适于在存储单元队列中存储数据。存储单元能够用于存储数据。第二应用模块111适于访问存储在存储单元队列中的数据,以一间隔使用数据(该间隔大于或是等于一系列第一时钟之间的间隔),并且第一应用模块100的传输操作和第二应用模块111的使用操作是独立的。例如,第二通信模块110能够适于在存储器M(i)中存储Data (i),或者其能够适于在存储器存储Data (i)到堆栈。第二应用模块111能够适于参照标引“i”访问数据Data(i)并从数据Data(i)提取任务信息和其执行时间。通过以上设置,其能够带来至少以下一种技术效果:1.在既没有相同的时钟速率也没有一个是另一个的时钟速率的倍数的情况下,能够同步第一控制器和第二控制器;2.第二应用模块能够按时获得正确的数据。
[0023]更优选地,第二应用模块111还适于以与数据存储时相同的顺序来使用存储在存储单元队列中的数据,并在存储在存储单元中的数据被使用时释放存储单元。另外,数据至少具有与任务和其执行时间相关的信息。通过在系统中进行以上配置并设置分布式时钟,第二应用模块能够在执行时间给出执行任务的指示(通过从其接收到的数据中提取这类信息)。分布式时钟是在一些现场总线中提供的服务,并允许分布式系统在共享相同时钟的多个硬件上运行。该服务通常自动校正时钟并消除由于硬件和振荡器不精确导致的偏差(否则这些偏差将不断累积)。
[0024]在一常见的实施例中,根据信息流的预期方向,主设备(master)在第一控制器和第二控制器之间的角色之间切换,而从属设备(slave)在第二控制器和第一控制器之间的角色之间切换。由于具有该切换机构,主设备和从属设备在通信期间能够用作发送器和接收器,或是反过来。主设备可以是标准的可编程逻辑控制器,而没有PLC扫描周期的硬性要求。从属设备可以是例如与其它标准驱动系统串联的多轴驱动单元。所推荐的设置消除了具体调整的需要。
[0025]特别是,例如,第一控制器10是主控制器并进一步适于准备代表遥控设备运动信息和执行时间的数据,第二控制器11是轴运动控制器并进一步适于提供控制数据,以基于从主控制器接收的数据中提取的遥控设备运动信息和执行时间来驱动机械装置。如果主控制器需要来自从属控制器的反馈,那么主控制器将其角色从第一控制器切换到第二控制器,相应地,轴运动控制器将其角色从第二控制器切换到第一控制器。
[0026]作为替代方案,第一控制器10是主控制器并进一步适于基于同使用者和其它系统的交互准备代表高级别控制任务及其执行时间的数据;第二控制器11是轴运动控制器并进一步适于基于从接收到的数据中提取的高级别控制任务及其执行时间,来控制电动机以在执行时间实现要求的运动。高级别任务可以是使用者提供的程序,使用者在一些条件已经满足的情况下,要求遥控设备有明确限定的运动。例如,由信号来确认工件的存在,并且安全系统允许启动遥控设备的运动。主控制器通过读取传感器的输入来核实条件,如果是正面结果,其将命令驱动器开始移动遥控设备。如果主控制器需要从属控制器的反馈,那么主控制器将其角色从第一控制器切换到第二控制器,相应地轴运动控制器将其角色从第二控制器切换到第一控制器。
[0027]图4示出根据本发明的实施例的用于过程的示例性调度方案。如图4所示,第一控制器和第二控制器能够运行,以在一系列第一时钟CLKl顺序地准备多个数据,在一系列第二时钟CLK2持续传输数据直到其接到确认,接收所述数据并通过返回确认来回应所述数据的正确接收。一系列第一时钟CLKl之间的间隔长于一系列第二时钟CLK2之间的间隔。例如,这样的过程包括以下步骤:在一系列第一时钟CLKl (i)准备Data(i),其中i是表示范围从O到N的标引的自然数;在一系列第二时钟CLK2发送Data(i)以响应Data⑴的准备,例如在相应的数据准备完成时/之后;接收Data(i)并回应Data(i)的正确接收;响应于Data(i)的正确接收的确认,停止发送Data(i)直到其接收到Data(i+1),并对Data(i+1),Data(i+2)……进行同样的过程。通过将控制器模块化编程,特别是将通信模块从应用模块中分离,有助于产生有效的且时间准确的通信和同步。该程序能够提供至少以下一种技术效果:1.第一控制器和第二控制器之间的异步通信;2.具有不同时钟速率的两个控制器能够相互通信;3.以高于准备数据所用频率的频率重新传输数据以避免丢失数据;4.重复使用第一时钟之间的间隔以一系列第二时钟传输数据。
[0028]进一步参照附图4,所述过程进一步包括将正确接收的数据存储在存储单元队列中。另外,这样的过程还包括:访问存储在存储单元队列中的数据,以长于或是等于一系列第一时钟间隔的间隔使用数据。例如,所述过程进一步包括以下步骤^fDataW存储在存储器M(i)中,或者其能够适于在存储器中存储Data(i)到堆栈。第二应用模块11能够适于参照标引“i”访问数据Data(i)并从Data(i)提取任务信息及其执行时间。该方法提供至少以下一种技术效果:1.在既没有相同时钟速率也没有一个是另一个时钟速率的多倍的情况下,同步第一控制器和第二控制器;2.第二控制器能够按时获得正确的数据。
[0029]优选地,存储在存储单元队列中的数据的使用与数据存储的顺序相同。
[0030]所述过程可能进一步包括提供控制数据以基于从接收的数据中提取的遥控设备运动信息和执行时间来驱动机械装置,其中:数据代表遥控设备运动信息和执行时间。
[0031]所述过程还能够包括基于从接收到的数据中提取的高级别控制任务及其执行时间,来控制电动机以在执行时间完成要求的运动。
[0032]进一步参照图4,第一应用模块100和第一通信模块101在第一控制器10中实现。第二应用模块111和第二通信模块110在单独的第二控制器11中实现。这两个控制器具有表示为TappJP T _2的两个不同的内部循环时间。
[0033]在没有特定同步的情况下,由于每个部件的不同启动时间,数据传输延迟是不断变化的。如图1所示,A1是从第一应用模块100到第一通信模块101的数据传输的时间延迟,Δ2是从第一通信模块101到第二通信模块110的数据传输的时间延迟,△ 3是从第二通信模块110到第二应用模块111的数据传输的时间延迟。由这些可以很容易地得到以下公式:
[0034]Max ( Δ ^ = Tconml
[0035]Max ( Δ 2) = Tconm2
[0036]Max (A3)= Tapp2
[0037]Tllelay= Δ 1+Λ2+Λ3
[0038]Max (TDelay) = Tapp2+Tcomm2+Tcomml
[0039]为了确保第二应用模块111在每一时钟按时从第一应用模块100得到正确的数据,同步机制如下所述:
[0040]第一应用模块100在每一时钟为时间2*Max (Tllelay)准备Data (N)。Data (N)被分成许多段,每一段的时间是Tapp2,令M不属于这些段,那么,M = Ceil (2*Max(Tllelay)/Tapp2)。如果最后一段小于Tapp2,向第一应用模块100要求更多数据使其等于Tapp2。将每一段分别用唯一的时钟数(N,N+l, N+2, N+M)标记得到Frame (N)。第一通信模块101在每一时钟向第二通信模块110发送Frame (N)。第二通信模块110将Frame (N)放入标记为Buffer (N+M)的存储器中,缓存器(buffer)中的每一项是数据段。第二应用模块111根
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1