运算装置、控制装置以及控制方法与流程

文档序号:18547523发布日期:2019-08-27 21:49阅读:182来源:国知局
运算装置、控制装置以及控制方法与流程

本发明涉及一种构成包含一个或多个功能单元(unit)的控制装置的运算装置以及所述控制装置。



背景技术:

作为用于实现各种工厂自动化(factoryautomation,fa)的主要组件(component),可编程逻辑控制器(programmablelogiccontroller,plc)(可编程控制器(programablecontroller))等控制装置正在普及。此种控制装置有时包含执行各种程序(program)的中央处理器(centralprocessingunit,cpu)单元、及经由传输路径而与cpu单元连接的一个或多个功能单元。此种结构中,在cpu单元与功能单元之间,经由传输路径来交换数据。

此外,在plc等控制装置中,有欲使输入值的获取及控制指令的输出高精度地同步的要求。为了应对此种要求,经由传输路径而连接的cpu单元及功能单元各自内置的时钟(clock)(典型的是,使用计数器(counter)而安装)被维持为彼此同步的状态。并且,cpu单元及功能单元各自基于彼此同步的时钟,来调整发送时机(timing)及接收时机。例如,日本专利特开2011-216085(专利文献1)公开了此种时钟的同步即对时的一方法。

在此种经时刻同步的结构中,在每个规定周期执行输入输出(inputoutput,io)刷新(refresh),所述io刷新包含:cpu单元获取功能单元所收集的输入数据的处理、及将由cpu单元所算出的控制指令输出至功能单元的处理。在执行io刷新的期间以外的期间,也有时会通过消息(message)通信来交换数据。专利文献1中公开了:通过在主机单元(masterunit)与从机单元(slaveunit)之间实际收发消息来求出传输延迟时间,使用所述传输延迟时间来进行时刻修正。

现有技术文献

专利文献

专利文献1:日本专利特开2011-216085号公报



技术实现要素:

发明所要解决的问题

如上所述的消息通信也有时被利用于例如用于建立cpu单元与功能单元之间的连接的处理、或各种启动处理。在被用于此类用途的消息通信中传输的数据优选尽可能快地送出,但一般而言,对于io刷新设定有最高优先级,因此根据传输路径的状况,有时无法在消息通信中快速传输数据。

本发明的目的在于提供一种新的结构,用于在以规定周期来传输与io刷新等相关的通信帧的传输路径中,保证消息通信中的对发送目标的到达时刻。

解决问题的技术手段

依据本发明的一方面的、构成控制装置的运算装置包括:通信接口,用于经由传输路径来与一个或多个功能单元之间交换数据;第一传输控制部件,经由传输路径而在每个规定周期送出第一通信帧;第二传输控制部件,在未传输第一通信帧的期间,响应任意的事件请求而送出第二通信帧;第一事件发布部件,根据处理来发布第一事件请求;第二事件发布部件,发布优先级比第一事件请求高的第二事件请求;以及优先级管理部件,用于优先处理由第二事件发布部件所发布的第二事件请求。优先级管理部件在从第二事件发布部件收到第二事件请求的发布请求时,待第二传输控制部件中与当前处理中的第一事件请求对应的第二通信帧的送出处理完成后,对第二事件发布部件许可第二事件请求的发布。第二传输控制部件中断针对继当前处理中的第一事件请求之后的后续的第一事件请求的处理,直至针对第二事件请求的处理完成为止。

优选的是,第二传输控制部件包含:第一队列(queue),依序保存第一事件请求;以及第二队列,依序保存第二事件请求。

优选的是,优先级管理部件在收到第二事件请求的发布请求时,将所述发布请求通知给第二传输控制部件,第二传输控制部件在收到第二事件请求的发布请求的通知后,当关于当前处理中的第一事件请求的处理完成时,将能处理第二事件请求的意旨通知给优先级管理部件。

优选的是,第二事件请求包含一指示,所述指示用于特定的功能单元经由传输路径而与运算装置之间建立同步通信。

优选的是,经由传输路径而连接的运算装置及一个或多个功能单元各自具有彼此同步的时钟,用于建立同步通信的指示包含彼此同步的时钟所示的时机。

优选的是,时机被设定为与第一通信帧的送出周期相关联的值。

依据本发明的另一方面的控制装置包括:运算装置;以及一个或多个功能单元,经由传输路径而能交换数据地与运算装置连接。运算装置包括:第一传输控制部件,经由传输路径而在每个规定周期送出第一通信帧;第二传输控制部件,在未传输第一通信帧的期间,响应任意的事件请求而送出第二通信帧;第一事件发布部件,根据处理来发布第一事件请求;第二事件发布部件,发布优先级比第一事件请求高的第二事件请求;以及优先级管理部件,用于优先处理由第二事件发布部件所发布的第二事件请求。优先级管理部件在从第二事件发布部件收到第二事件请求的发布请求时,待第二传输控制部件中与当前处理中的第一事件请求对应的第二通信帧的送出处理完成后,对第二事件发布部件许可第二事件请求的发布。第二传输控制部件中断针对继当前处理中的第一事件请求之后的后续的第一事件请求的处理,直至针对第二事件请求的处理完成为止。

依据本发明的又一方面,提供一种控制方法,是控制装置中的控制方法,所述控制装置包括运算装置及一个或多个功能单元,所述一个或多个功能单元经由传输路径而能交换数据地与运算装置连接。控制方法包括下述步骤:经由传输路径而在每个规定周期送出第一通信帧;根据处理来发布第一事件请求;发布优先级比第一事件请求高的第二事件请求;在未传输第一通信帧的期间,响应第一事件请求或第二事件请求而送出第二通信帧;当收到第二事件请求的发布请求时,待与当前处理中的第一事件请求对应的第二通信帧的送出处理完成后,许可第二事件请求的发布;以及中断针对继当前处理中的第一事件请求之后的后续的第一事件请求的处理,直至针对第二事件请求的处理完成为止。

发明的效果

依据本发明,能够在以规定周期来传输与io刷新等相关的通信帧的传输路径中,保证消息通信中的对发送目标的到达时刻。

附图说明

图1是表示依据本实施方式的plc的主要部分结构的示意图。

图2是用于说明依据本实施方式的plc的局域总线(localbus)上的数据传输的示意图。

图3是表示依据本实施方式的plc中的、依据关联技术的初始化处理的一例的示意图。

图4是表示cpu单元与功能单元之间的第一初始化流程的示意图。

图5是表示cpu单元与功能单元之间的第二初始化流程的示意图。

图6是用于说明依据关联技术的初始化处理中的一个问题的示意图。

图7是表示依据本实施方式的plc中的功能结构的示意图。

图8是说明依据本实施方式的初始化处理中的模块(module)间的交换的示意图。

图9是表示依据本实施方式的初始化处理中的处理流程的序列图。

图10是用于说明依据本实施方式的plc的调度器(scheduler)所响应的开始时间(starttime)的示意图。

图11是用于说明依据本实施方式的plc的事件通信处理任务(task)的通常事件队列及高优先事件队列中的处理的示意图。

具体实施方式

参照附图来详细说明本发明的实施方式。另外,对于图中的相同或相当的部分,标注同一符号并不再重复其说明。

以下的说明中,作为“控制装置”的典型例,是以plc(可编程控制器)作为具体例来进行说明,但并不限定于plc这一名称,本说明书所公开的技术思想可适用于任意的控制装置。

<a.装置结构>

首先,对依据本实施方式的plc的装置结构进行说明。图1是表示依据本实施方式的plc的主要部分结构的示意图。

参照图1,作为基本结构,依据本实施方式的plc1包含cpu单元100与一个或多个功能单元150。cpu单元100是构成plc1的一元件,相当于对plc1整体的处理进行控制的运算装置。功能单元150提供用于实现plc1对各种机械或设备的控制的各种功能。cpu单元100与一个或多个功能单元150之间,经由作为传输路径的一例的局域总线112而连接。

cpu单元100能够经由局域总线112来与任意的功能单元150之间交换数据。典型的是,cpu单元100在每个规定周期,与一个或多个功能单元150之间执行io刷新。在所述io刷新中,将各功能单元150所收集的输入数据发送至cpu单元100,并且将在cpu单元100中算出的控制指令发送至任意的功能单元150。除了此种io刷新以外,还能够在cpu单元100与任意的功能单元150之间、或者任意的功能单元150之间,进行利用消息通信的数据收发。消息通信并不限于一对一的形态,也可为一对多的形态。

图1中,作为应用结构,表示了在plc1连接有远程io装置的结构。即,在cpu单元100,经由作为传输路径的另一例的现场网络114而连接有一个或多个通信耦合器单元(couplerunit)200。在通信耦合器单元200的各个,经由作为传输路径的一例的局域总线212而连接有一个或多个功能单元250。

另外,功能单元150与功能单元250具有实质上同样的结构,为了便于说明,仅使符号不同。但是,在连接于cpu单元100的功能单元150、与连接于通信耦合器单元200的功能单元250之间,也可使某些功能不同。

cpu单元100对于连接于通信耦合器单元200的功能单元250,也能进行io刷新及消息通信。即,通信耦合器单元200提供对cpu单元100与功能单元250之间的数据交换进行中介的功能。更具体而言,从cpu单元100经由现场网络114而发送的数据经由通信耦合器单元200而传送至局域总线212上,并被送达目标功能单元250。相反地,从任意的功能单元250经由局域总线212而发送的数据经由通信耦合器单元200而传送至现场网络114上,并被送达cpu单元100。

更具体而言,cpu单元100包含处理器(processor)102、主存储器(mainmemory)104、存贮器(storage)106、总线通信电路108及网络接口(networkinterface)110。

处理器102是通过执行系统程序及用户程序而实现plc1中的处理。处理器102例如可使用中央处理器(centralprocessingunit,cpu)或图形处理器(graphicsprocessingunit,gpu)等。作为处理器102,既可为单核(singlecore)且单片(singlechip)的结构,也可为多核(multicore)且单片、单核且多片(multichip)、多核且多片中的任一种。

主存储器104包含动态随机存取存储器(dynamicrandomaccessmemory,dram)或静态随机存取存储器(staticrandomaccessmemory,sram)等,提供处理器102中的程序执行所需的工作(work)区域。

存贮器106包含快闪存储器(flashmemory)等半导体存储元件,保存用于实现cpu单元100的基本功能的系统程序、或根据控制对象而任意制作的用户程序等。

总线通信电路108相当于用于经由传输路径来与一个或多个功能单元150之间交换数据的通信接口,对cpu单元100与各功能单元150之间的经由局域总线112(传输路径)的数据传输进行中介。总线通信电路108的至少一部分也可通过硬接线(hardwired)的电路来实现。总线通信电路108也可作为对局域总线112上的数据传输进行管理的“主机”发挥功能。此时,连接于局域总线112的功能单元150的各个也可作为在总线通信电路108的管理下进行数据传输的“从机”发挥功能。关于使用总线通信电路108的、cpu单元100与各功能单元150之间的数据收发处理,将后述。

网络接口110对cpu单元100与包含各通信耦合器单元200的任意设备之间的、经由现场网络114的数据传输进行中介。网络接口110也可作为对现场网络114上的数据传输进行管理的“主机”发挥功能。此时,连接于现场网络114的通信耦合器单元200及其他设备的各个也可作为在网络接口110的管理下进行数据传输的“从机”发挥功能。另外,作为现场网络114,例如也可采用遵循ethercat(注册商标)、ethernet/ip(注册商标)、devicenet(注册商标)、componet(注册商标)等公知协议(protocol)的固定周期网络。

功能单元150提供任意功能,例如收集由cpu单元100所执行的用户程序所需的信息、输出通过用户程序的执行而算出的控制指令、执行与cpu单元100独立的特殊处理。典型的是,功能单元150可包含io单元、通信单元、温度调整单元、标识(identifier,id)传感器单元等。

作为io单元,例如可列举数字输入(digitalinput,di)单元、数字输出(digitaloutput,do)单元、模拟输出(analoginput,ai)单元、模拟输出(analogoutput,ao)单元、脉冲捕捉(pulsecatch)输入单元、及使多个种类混合而成的复合单元等。

通信单元是与其他plc、其他远程(remote)io装置、其他功能单元等中介数据交换者,例如可包含与ethercat(注册商标)、ethernet/ip(注册商标)、devicenet(注册商标)、componet(注册商标)等协议相关的通信装置等。

温度调整单元是包含下述功能的控制装置,即:获取温度测量值等的模拟输入功能、输出控制指令等的模拟输出功能、及比例积分微分(proportionalintegraldifferential,pid)控制功能。id传感器单元是从射频识别器(radiofrequencyidentifier,rfid)等非接触地读出数据的装置。

更具体而言,功能单元150的各个包含总线通信电路152、通信控制器154及功能模块156。

通信控制器154对在局域总线112上传输的数据(典型的是,通信帧)进行处理。具体而言,通信控制器154通过由作为主机的总线通信电路108进行的管理,经由局域总线112来发送所请求的数据,并且在经由局域总线112而收到某些数据时,输出至通信控制器154。

通信控制器154通过执行预先保存的程序或逻辑,从而控制局域总线112上的数据收发。通信控制器154可使用以执行规定软件的方式而构成的处理器、或者装入有规定逻辑的处理电路等来实现。

功能模块156进行各功能单元150所提供的各种功能,例如从现场收集各种信息(输入数据)、或对位于现场的控制对象(机械或设备)输出控制指令等。

在功能单元150中,基本上,功能模块156负责各功能单元150固有的处理的执行或固有功能的提供,总线通信电路152及通信控制器154负责经由局域总线112的数据传输。

通信耦合器单元200负责经由局域总线212的、与功能单元250之间的数据传输,并且负责经由现场网络114的、与cpu单元100之间的数据传输。更具体而言,通信耦合器单元200包含控制器201、网络接口210及总线通信电路208。

控制器201主要控制网络接口210及总线通信电路208。作为典型例,控制器201包含处理器202、主存储器204及存贮器206。处理器202将保存在存贮器206中的系统程序等在主存储器204中展开并执行,由此来提供通信耦合器单元200中所需的处理及功能。另外,也可利用硬接线的电路来实现控制器201的至少一部分。

网络接口210负责经由现场网络114的数据传输。网络接口210是在现场网络114中作为从机发挥功能,除此以外,基本结构与cpu单元100的网络接口110同样。

总线通信电路208是与cpu单元100的总线通信电路108同样,对通信耦合器单元200与各功能单元250之间的、经由局域总线212的数据传输进行中介。

功能单元250是连接于通信耦合器单元200,除此以外,与所述的功能单元150实质上相同。功能单元250的各个包含总线通信电路252、通信控制器254及功能模块256。对于这些功能的详细,关于功能单元150进行了说明,因此,此处不再重复详细说明。

<b.局域总线上的数据传输>

接下来,对cpu单元100与各功能单元150之间的、经由局域总线112的数据传输进行说明。另外,通信耦合器单元200与各功能单元250之间的、经由局域总线212的数据传输也同样。

图2是用于说明依据本实施方式的plc1的局域总线上的数据传输的示意图。图2中表示除了在每个规定周期反复执行的io刷新以外,还对任意数据进行消息通信的示例。

具体而言,如图2(a)所示,经由局域总线112(传输路径),在每个规定的系统周期ts送出用于进行io刷新的通信帧fl。典型的是,用于进行io刷新的通信帧fl是从cpu单元100送出,并依序传送至邻接的功能单元150。对于由各功能单元150所收集的输入数据、及包含针对各功能单元150的指令的输出数据,既可使用互不相同的通信帧fl来传输,也可利用同一通信帧fl来传输。

在未传送此种在每个规定周期反复传输的用于进行io刷新的通信帧fl的期间,也能够利用任意的消息通信来发送数据。对于此消息帧msgfl,有从cpu单元100传输至特定的功能单元150的情况、或其逆向地传送的情况、或者在任意的功能单元150之间传输的情况等。

但是,由于通信帧fl与消息帧msgfl无法同时送出,因此即使发布了消息帧msgfl的发送请求等,但若是在io刷新中,则所指定的消息帧msgfl的生成及送出仍将延迟。

例如,假设如图2(b)所示,在用于进行io刷新的通信帧fl的传输过程中,给予了消息发送请求。此时,将在通信帧fl的传输完成后,生成及送出消息帧msgfl。图2(b)所示的示例中,消息帧msgfl是在从给予了消息发送请求起经过延迟时间d1后开始送出。

而且,假设如图2(c)所示,在用于进行io刷新的通信帧fl的即将传输之前,给予了消息发送请求。此时,由于通信帧fl的传输期间紧迫,因此会妨碍消息帧msgfl的生成及送出,将在后续的通信帧fl的传输完成后,生成及送出消息帧msgfl。图2(c)所示的示例中,消息帧msgfl是在从给予了消息发送请求起经过延迟时间d2后开始送出。

这样,在周期性地传输用于进行io刷新的通信帧fl的局域总线中,从给予消息发送请求,直至实际送出通信帧fl为止,会产生一定程度的传输延迟。

另外,为了便于说明,在图2(b)及(c)中,并未考虑io刷新以外,但在先前发布有多个消息发送请求的情况下,根据先前进行的发送请求的数量等而产生消息帧的发送延迟。

<c.依据关联技术的初始化处理的一例>

接下来,对使用在局域总线上进行消息通信的通信帧的、依据关联技术的初始化处理的一例进行说明。

(c1:初始化处理)

图3是表示依据本实施方式的plc1中的、依据关联技术的初始化处理的一例的示意图。图3所示的初始化处理表示下述示例,即,从作为主机发挥功能的cpu单元100对作为从机发挥功能的功能单元150,指示用于使经由局域总线112的数据传输同步的开始时间。所述开始时间相当于用于建立同步通信的指示,包含彼此同步的时钟所示的时机。

参照图3(a),作为主机发挥功能的cpu单元100、与经由局域总线112而连接于cpu单元100的各个功能单元150-1~150-3分别具有彼此同步的时钟。更具体而言,cpu单元100的总线通信电路108具有成为局域总线112上的数据传输基准的主机时钟109,各功能单元150的总线通信电路152具有与主机时钟109同步的普通时钟(ordinaryclock)153。

各功能单元150的通信控制器154将总线通信电路152的普通时钟153所示的时机作为基准来管理数据的收发。通过使用此种彼此同步的时钟的、数据收发的时机管理,能够在局域总线112上实现无冲突的数据传输。

图3(a)中表示仅使功能单元150-1、150-2与cpu单元100之间建立同步通信的状态。图3(b)中表示在图3(a)所示的状态下,使功能单元150-3也新建立同步通信的初始化处理。

具体而言,在功能单元150-3的普通时钟153与cpu单元100的主机时钟109进行了同步的状态下,从cpu单元100对于对象功能单元150-3通知应开始同步通信的时机(开始时间)。功能单元150-3在普通时钟153呈现所通知的开始时间时,开始数据的发送或接收。

但是,从cpu单元100通知的开始时间必须是未来的时刻,若指定过去的时刻,则视为无效来进行处理。此种开始时间的通知是通过以下的任一项所示的流程,利用消息通信而发送。

(c2:第一初始化流程)

作为第一初始化流程,对向作为从机发挥功能的功能单元150的总线通信电路152的寄存器(register)中写入开始时间的方法进行说明。总线通信电路152具有未图示的寄存器,当自身的普通时钟153的时钟值到达写入此寄存器中的开始时间时,对通信控制器154发布中断指令,建立同步。

图4是表示cpu单元100与功能单元150之间的第一初始化流程的示意图。参照图4,首先说明cpu单元100的基本的软件结构。

在cpu单元100中,包含调度器120、多个任务(io刷新任务130及系统服务任务(systemservicetask)140)、总线驱动器(busdriver)113及现场网络驱动器115。这些组件是通过cpu单元100的处理器102执行系统程序及用户程序而实现。

调度器120对于预先登记的多个任务,基于对各任务设定的优先级等,来控制执行周期及执行时机。这些任务中,对于io刷新任务130设定有最高的优先级,在规定的每个系统周期,执行用于送出用来进行io刷新的通信帧(参照图2等)等的处理。另一方面,对于系统服务任务140,设定有最低的优先级,在未执行io刷新任务130等其他任务的期间适当执行。

io刷新任务130提供在每个规定周期(系统周期ts)经由局域总线112(传输路径)来送出通信帧的功能的至少一部分,通过对总线驱动器113给予请求,从而使局域总线112上传输用于进行io刷新的通信帧。同时,io刷新任务130通过对现场网络驱动器115给予指令,从而使现场网络114上传输用于进行io刷新的通信帧或数据包。

系统服务任务140包含消息路由(routing)任务142、从机状态管理任务144及事件通信处理任务146。消息路由任务142是对局域总线112上或现场网络114上的消息帧进行解释,决定传输此消息帧时的路径。从机状态管理任务144对经由局域总线112而连接的从机(功能单元150)的状态进行管理。

事件通信处理任务146提供下述功能的至少一部分,即,在未传输用于进行io刷新的通信帧的期间,响应任意的事件请求,送出其他通信帧,具体而言,事件通信处理任务146执行响应某些事件请求来发送消息帧的处理。事件通信处理任务146对依序登记发送请求的队列148进行管理。

以下的说明中,某些数据向队列中的登记(输入)也称作排队(queuing),数据从队列中的删除(输出)也称作出队(dequeuing)。

首先,当cpu单元100时,或者,当在局域总线112上追加新的功能单元150时,从机状态管理任务144执行时钟设定处理。更具体而言,从机状态管理任务144对于各个功能单元150给予指示,以使普通时钟153与主机时钟109同步。

在时钟经同步的状态下,作为第一流程,从机状态管理任务144从总线通信电路108的主机时钟109读出时钟值,并算出应对从机设定的开始时间。继而,作为第二流程,从机状态管理任务144对于特定的从机(功能单元150),将用于将所算出的开始时间写入至寄存器的寄存器写入帧的发送请求输出至事件通信处理任务146。所述寄存器写入帧的发送请求被登记在队列148中。事件通信处理任务146对登记在队列148中的发送请求进行依序处理。当登记在队列148中的发送请求得到依序处理,而先前登记的寄存器写入帧的发送请求成为可处理的状态时,作为第三流程,事件通信处理任务146将事件帧发送请求输出至总线驱动器113。作为第四流程,总线驱动器113接受事件帧发送请求而启动总线通信电路108的通信。于是,从总线通信电路108向局域总线112上送出寄存器写入帧。

作为第五流程,当由功能单元150收到寄存器写入帧时,作为第六流程,功能单元150的总线通信电路152将所收到的寄存器写入帧中所含的开始时间写入至内部的寄存器。并且,功能单元150的总线通信电路152在普通时钟153到达写入至寄存器中的开始时间时,开始同步处理。

通过如上所述的第一至第六流程,使cpu单元100与功能单元150之间新建立同步通信的初始化处理完成。

(c3:第二初始化流程)

接下来,对与所述第一初始化流程不同的第二初始化流程进行说明。作为第二初始化流程,对下述方法进行说明,即,响应从cpu单元100消息通信至功能单元150的消息帧,通信控制器154向总线通信电路152的寄存器中写入开始时间。

图5是表示cpu单元100与功能单元150之间的第二初始化流程的示意图。参照图5,先说明功能单元150的基本软件结构。

在功能单元150中,安装有消息路由任务162、状态管理任务164及总线驱动器166。这些组件是由通信控制器154来提供。

消息路由任务162对局域总线112上的消息帧进行解释,决定传输此消息帧时的路径。状态管理任务164对用于经由局域总线112而连接于cpu单元100的状态进行管理。总线驱动器113进行经由总线通信电路152而在局域总线112上交换的数据的收发管理。

首先,当cpu单元100启动时,或者,当在局域总线112上追加新的功能单元150时,从机状态管理任务144执行时钟设定处理。更具体而言,从机状态管理任务144对于各个功能单元150给予指示,以使普通时钟153与主机时钟109同步。

在时钟经同步的状态下,作为第一流程,从机状态管理任务144从总线通信电路108的主机时钟109读出时钟值,并算出应对从机设定的开始时间。继而,作为第二流程,从机状态管理任务144对于特定的从机(功能单元150),将关于包含所算出的开始时间的通信帧的消息路由请求输出至消息路由任务142。作为第三流程,消息路由任务142对来自从机状态管理任务144的消息路由请求进行解释以确定发送目标从机,并且将用于发送对所述从机的消息帧的消息帧发送请求输出至事件通信处理任务146。所述消息帧发送请求被登记在队列148中。事件通信处理任务146对登记在队列148中的发送请求进行依序处理。当登记在队列148中的发送请求得到依序处理,而先前登记的消息帧发送请求成为可处理的状态时,作为第四流程,事件通信处理任务146将事件帧发送请求输出至总线驱动器113。作为第五流程,总线驱动器113接受事件帧发送请求而启动总线通信电路108的通信。于是,从总线通信电路108向局域总线112上送出消息帧。

作为第六流程,当由功能单元150收到消息帧时,作为第七流程,功能单元150的总线通信电路152对总线驱动器166发布伴随消息帧的接收的中断。作为第八流程,总线驱动器166将所接收的消息帧输出至消息路由任务162,请求对所接收的消息帧的路由。作为第九流程,消息路由任务162解释为:来自总线驱动器166的消息帧的内容是对总线通信电路152的开始时间的设定请求,并将时钟设定请求输出至状态管理任务164。

作为第十流程,状态管理任务164响应时钟设定请求,将所指定的开始时间写入至总线通信电路152的寄存器。并且,功能单元150的总线通信电路152在普通时钟153到达写入至寄存器中的开始时间时,开始同步处理。

通过如上所述的第一至第十流程,使cpu单元100与功能单元150之间新建立同步通信的初始化处理完成。

(c4:问题)

接下来,对图4及图5所示的初始化流程中可能产生的问题进行说明。如参照图4及图5所说明的,从cpu单元100消息通信的通信帧(寄存器写入帧或消息帧)是根据在设定了最低优先级的系统服务任务140中生成的发送请求而发送。

而且,发送请求也有时是由其他任务所生成,因此也存在下述情况,即,在事件通信处理任务146的队列148中,已登记有寄存器写入帧发送请求或消息帧发送请求以外的消息发送请求。因此,在发布了寄存器写入帧发送请求或消息帧发送请求之后,何时处理所述帧发送请求,将取决于先前登记在队列148中的发送请求的状态。

图6是用于说明依据关联技术的初始化处理中的一个问题的示意图。参照图6,帧发送请求是在事件通信处理任务146的队列148中以先进先出(firstinfirstout,fifo)的方式进行登记及处理(排队及出队)。图6中表示下述状态:在将如上所述的用于执行初始化处理的寄存器写入帧发送请求(或消息帧发送请求)登记至队列148的时间点,在队列148中已登记有两个发送请求。在此种状态下,无法准确地预估先前登记的两个发送请求何时得到处理(出队)。

如上所述,从cpu单元100通知的开始时间必须是未来的时刻。这表示,在到达功能单元150的时间点,所指定的开始时间必须是未来的时刻。另一方面,如上所述,对于包含开始时间的通信帧将在何时的时机发送,存在不确定的要素。

因此,必须以下述方式来进行设计,即:预估队列148中的通信帧的发送所需的最坏时间,根据此预估的时间,使指定的开始时间具备充分的余裕(margin),由此来使得在到达功能单元150的时间点,所述开始时间并非过去的时刻。

另外,在通信耦合器单元200的局域总线212等中,能够较多地使用控制器201的资源,因此对开始时间设定的余裕的预估、及其准确性的担保相对较容易。另一方面,由于在cpu单元100中执行多个任务,因此应对开始时间设定的余裕会大幅变化,其预估并不容易。进而,有时如图6所示,不得不等待先行的发送请求的处理完成。

基于如上所述的理由,会使对所指示的开始时间设定的余裕过大地执行初始化处理,或者在最坏的情况下,初始化处理失败,而必须重新进行初始化处理。即,在如上所述的依据关联技术的初始化处理中,要尽早且切实地完成处理并不容易。

<d.与依据本实施方式的初始化处理相关的功能结构>

接下来,对与依据本实施方式的初始化处理相关的功能结构进行说明。图7是表示依据本实施方式的plc1中的功能结构的示意图。参照图7,依据本实施方式的plc1的cpu单元100与图4及图5所示的结构相比,追加有高优先事件队列管理任务136,并且在事件通信处理任务146中,除了通常事件的队列148以外,还准备有高优先事件的队列149。事件通信处理任务146包含依序保存通常事件请求的队列148、及依序保存高优先事件请求的队列149。

作为系统服务任务140,不仅有图7所示的消息路由任务142及从机状态管理任务144,还存在其他系统服务任务(系统服务群141)。系统服务群141的一部分或全部产生事件处理客户程序(client)145,事件处理客户程序145根据处理来发布事件请求。这些事件请求将被登记在事件通信处理任务146等中。

事件处理客户程序145根据处理来发布通常事件请求,从机状态管理任务144产生与功能单元150之间的初始化处理的开始相关的事件请求,此事件请求相当于优先级比通常事件请求高的高优先事件请求。来自事件处理客户程序145的高优先事件请求包含一指示,所述指示用于特定的功能单元150经由局域总线112(传输路径)来与cpu单元100之间建立同步通信。

本说明书中,所谓“事件请求”,是指根据某些条件或周期的到来而发布内部事件,并与通过所述发布的内部事件而生成的各种处理(包含借助消息通信的数据发送)相关的请求。“通常”及“高优先”是表示优先级的相对优劣的术语,“高优先”事件请求是指比“通常”事件请求优先处理。所述“通常”及“高优先”的称呼是为了方便,而不应限定性地解释所述术语。

高优先事件队列管理任务136提供优先级管理功能的至少一部分,所述优先级管理功能用于优先处理由从机状态管理任务144所发布的高优先事件请求。具体而言,高优先事件队列管理任务136对高优先事件队列138进行管理,所述高优先事件队列138用于控制对高优先事件队列149的发送请求的输出时机等。在高优先事件队列138中,如后所述,自从机状态管理任务144根据需要而登记有高优先事件请求。关于高优先事件队列管理任务136与事件通信处理任务146之间的处理流程将后述。

<e.依据本实施方式的初始化处理中的处理流程>

接下来,对依据本实施方式的初始化处理中的处理流程进行说明。

图8是说明依据本实施方式的初始化处理中的模块间的交换的示意图。图9是表示依据本实施方式的初始化处理中的处理流程的序列图。另外,图8所示的括号内的编号、与图9所示的括号内的编号相对应。

首先,当cpu单元100启动时,或者,当在局域总线112上追加新的功能单元150时,从机状态管理任务144执行时钟设定处理。更具体而言,从机状态管理任务144对于各个功能单元150给予指示,以使普通时钟153与主机时钟109同步。图9所示的各步骤是在时钟经同步的状态下执行。

参照图8及图9,首先,从机状态管理任务144在收到初始化处理请求时(步骤s1),对高优先事件队列管理任务136发布高优先事件请求(步骤s2)。于是,在高优先事件队列管理任务136中,将所发布的高优先事件请求排队至高优先事件队列138中(步骤s3)。即,将高优先事件请求登记至高优先事件队列138中。继而,高优先事件队列管理任务136将已登记了高优先事件请求的情况通知给事件通信处理任务146(通常事件的队列148及高优先事件的队列149)(步骤s4)。

在事件通信处理任务146中,若登记在通常事件的队列148中的通常事件请求中存在发送处理中者,则继续此发送处理中的通常事件请求的处理(步骤s5)。更具体而言,事件通信处理任务146将登记在队列148中的通常事件请求中的发送处理中者输出至总线驱动器113(步骤s51)。总线驱动器113依据通常事件请求来启动总线通信电路108的通信(步骤s52)。于是,从总线通信电路108将与所述通常事件请求相应的通信帧等送出至局域总线112上。当关于所登记的通常事件请求的处理完成时,事件通信处理任务146将登记在队列148中的通常事件请求予以删除(出队)(步骤s53)。

事件通信处理任务146在收到登记有高优先事件请求这一通知时,若存在发送处理中的通常事件请求,则当此发送处理中的通常事件请求的处理完成时,将高优先处理可能通知通知给高优先事件队列管理任务136(步骤s6)。此时,对于已登记在事件通信处理任务146的队列148中但尚未成为处理对象者,暂时中断处理。

而且,若在高优先事件的队列149中先前登记有某些高优先事件请求,则在所述先前登记的高优先事件请求的处理完成后,将高优先处理可能通知,通知给高优先事件队列管理任务136。即,高优先处理可能通知是表示为如后所述的、能够优先处理高优先事件请求的状态的通知。

随后,调度器120对于高优先事件队列管理任务136,周期性地发布指示处理开始的触发(trigger)(步骤s7)。调度器120是在不妨碍io刷新任务130对io刷新的执行的时机,发布步骤s7的触发。

高优先事件队列管理任务136在收到来自调度器120的触发时,若与高优先事件相关的线程(thread)(优先级被设定为高于通常)已启动,且从事件通信处理任务146收到高优先处理可能通知,则将高优先事件开始通知给从机状态管理任务144(步骤s8)。与高优先事件相关的线程被设定有高至能够保证现实的实时(realtime)性的程度的优先级,但低于io刷新的优先级。

如所述的步骤s4~s8所示,当收到高优先事件请求的发布请求(步骤s2所示的高优先事件请求)时,待与当前处理中的通常事件请求对应的通信帧的送出处理完成后,许可高优先事件请求的发布(发布高优先处理可能通知)。此时,中断针对继当前处理中的通常事件请求之后的后续的通常事件请求的处理,直至对高优先事件请求的处理完成为止。

对从机状态管理任务144通知的高优先事件开始,相当于针对来自从机状态管理任务144的高优先事件请求(步骤s2)的肯定响应(回叫(callback)),通过高优先事件开始,开始对初始化处理所需的时机(开始时间)等进行决定的处理。更具体而言,从机状态管理任务144向调度器120询问应对成为初始化处理对象的功能单元150设定的开始时间(步骤s9)。响应此询问,调度器120算出开始时间并对从机状态管理任务144作出响应(步骤s10)。所述开始时间是使用与总线通信电路108的主机时钟109同步的、各功能单元150的普通时钟153所管理的值。

作为一例,作为调度器120所响应的开始时间,也可使用与io刷新的送出周期(系统周期)相关联的值。具体而言,也可使用在io刷新的通信帧的发送前所设定的节拍时间(ticktime)。图10是用于说明依据本实施方式的plc1的调度器120所响应的开始时间的示意图。参照图10,在规定的每个系统周期ts,传输用于进行io刷新的通信帧。各功能单元150根据预定的通信流程,使用一个或多个通信帧,将预先收集的输入数据传输至作为主机发挥功能的cpu单元100,并且获取从cpu单元100发送的输出数据。

节拍时间被设定为用于进行io刷新的通信帧到达各功能单元150的规定时间之前δtt,在节拍时间,各功能单元150开始输入数据的收集。因此,只要将任一节拍时间指定为开始时间,便能够进行针对在所指定的节拍时间之后到达的通信帧的、输入数据的写入等。即,能够与cpu单元100之间建立同步通信。

在依据本实施方式的plc1中,也可将从当前时间点为两个前(或者更前)的节拍时间设定为开始时间。这是因为,如上所述,在由从机状态管理任务144对调度器120进行开始时间的询问(步骤s9)的时机,成为能够以除io刷新以外的处理中的最高的优先级来通知开始时间的状态。因此,在直至至少两个前的节拍时间为止的期间,可确保开始时间的通知。

例如,如图10(a)所示,若在先行的io刷新之后且后续的io刷新的节拍时间到来之前,收到开始时间的询问,则将两个前的io刷新的节拍时间即节拍02设定为开始时间。

或者,如图10(b)所示,若在某io刷新之前收到开始时间的询问,则将两个前的io刷新的节拍时间即节拍03设定为开始时间。

再次参照图8及图9,从机状态管理任务144根据需要来对消息路由任务142请求消息路由用报头(header)的制作(步骤s11)。具体而言,在如所述图5所示的第二初始化流程那样,利用从cpu单元100对功能单元150发送消息帧的方法来实现初始化流程的情况下,从机状态管理任务144请求用于将消息帧发送至作为初始化对象的功能单元150的、消息路由用报头的制作。消息路由任务142根据作为初始化对象的功能单元150在局域总线112、212和/或现场网络114上的位置,来制作所需的报头,并对从机状态管理任务144作出响应(步骤s12)。如上所述,这些步骤s11及s12的处理是可选(option)的处理。

继而,从机状态管理任务144将应作为高优先事件请求而发送的数据输出至事件通信处理任务146(步骤s13)。在事件通信处理任务146中,将来自从机状态管理任务144的数据排队至高优先事件的队列149中(步骤s14)。即,将应作为高优先事件请求而发送的数据登记到事件通信处理任务146的队列149中。应作为高优先事件请求而发送的数据包含在步骤s10中获取的开始时间。另外,在采用与所述第一初始化流程同样的初始化流程的情况下,除了开始时间以外,还包含寄存器写入帧的生成所需的信息。另一方面,在采用与所述第二初始化流程同样的初始化处理的情况下,除了开始时间以外,还包含消息帧的生成所需的信息。

在将所需的数据登记到队列149中之后,高优先事件队列管理任务136对事件通信处理任务146通知事件通信的开始(步骤s15)。通过事件通信的开始,在事件通信处理任务146中,开始所需电文(通信帧或消息)的生成、及对总线通信电路108的通信启动。即,事件通信处理任务146接收来自高优先事件队列管理任务136的、事件通信的开始通知,并将事件帧发送请求输出至总线驱动器113(步骤s16)。总线驱动器113接收事件帧发送请求而启动总线通信电路108的通信(步骤s17)。于是,从总线通信电路108将指定的通信帧(寄存器写入帧或消息帧)送出至局域总线112上(步骤s18)。

另外,与高优先事件请求及通常事件请求相应的通信帧是在未传输io刷新的通信帧的期间被送出。

从事件通信处理任务146向总线驱动器113输出事件帧发送请求后,高优先事件队列管理任务136使高优先事件请求从高优先事件队列138出队(步骤s19)。即,从高优先事件队列138中删除高优先事件请求。同时,事件通信处理任务146使处理对象数据从高优先事件的队列149出队(步骤s20)。即,从高优先事件的队列149中删除初始化处理所需的数据。

随后,在采用与第一初始化流程同样的初始化流程的情况下,在功能单元150中,执行与参照图4所说明的同样的处理(参照图8的(11)及(12))。或者,在采用与第二初始化流程同样的初始化流程的情况下,在功能单元150中,执行与参照图5所说明的同样的处理(参照图8的(11')~(15'))。

通过如上所述的处理流程,使cpu单元100与功能单元150之间新建立同步通信的初始化处理完成。

此处,更详细地说明高优先事件队列管理任务136及事件通信处理任务146中的处理(参照图9所示的步骤s4、s5、s14、s16等)。图11是用于说明依据本实施方式的plc1的事件通信处理任务146的通常事件的队列148及高优先事件的队列149中的处理的示意图。

参照图11(a),例如设想下述情况:在队列148中登记有通常事件请求a及b,当通常事件请求a处于发送处理中时,高优先事件队列管理任务136进行高优先事件请求的登记通知。此时,高优先事件队列管理任务136在自从机状态管理任务144收到高优先事件请求的发布请求(图8的步骤s2所示的高优先事件请求)时,待事件通信处理任务146中与当前处理中的通常事件请求对应的通信帧的送出处理完成后,对从机状态管理任务144许可高优先事件请求的发布(图8的步骤s6所示的高优先处理可能通知的发布)。

具体而言,高优先事件队列管理任务136在自从机状态管理任务144收到高优先事件请求的发布请求(图8的步骤s2所示的高优先事件请求)时,将所述高优先事件请求的发布请求通知给事件通信处理任务146。于是,事件通信处理任务146继续对通常事件请求a执行的发送处理。继而,如图11(b)所示,当先前执行的针对通常事件请求a的发送处理完成时,从队列148中删除通常事件请求a,另一方面,暂时停止针对接下来登记在队列148中的通常事件请求b的发送处理的执行。并且,事件通信处理任务146在收到高优先事件请求的发布请求的通知后,当关于当前处理中的通常事件请求的处理完成时,将高优先事件请求可处理的意旨即高优先处理可能通知,通知给高优先事件队列管理任务136。

于是,如图11(c)所示,与高优先事件请求对应的数据被登记到队列149中。继而,接收事件通信的开始通知,将登记在队列149中的数据输出至总线驱动器113。

另外,如图11(b)所示,即使在暂时停止针对登记在队列148中的通常事件请求的处理执行的状态下,仍能受理新的通常事件请求。即,当新发布通常事件请求时,将此通常事件请求追加登记到队列148中。对于这些通常事件请求,在针对高优先事件请求的处理完成后,将依序执行。

这样,事件通信处理任务146中断针对继当前处理中的通常事件请求之后的后续的通常事件请求的处理,直至针对高优先事件请求的处理完成为止。即,在仅对先前登记于队列148的通常事件请求中的正在处理中者进行了处理后,而随后的通常事件请求的处理被中断的状态下,通知高优先处理可能。通过采用此种处理,从而成为能够最优先发送与所请求的高优先事件请求对应的通信帧的状态后,在队列149中登记对应的所需数据。

如图11所示,通过采用通常事件请求与高优先事件请求的调停处理,从而能够保证例如被用于初始化处理等的通信帧的到达时刻。

在图7及图11中,表示了分别独立地配置通常事件的队列148及高优先事件的队列149的示例,但未必需要独立地配置两个,只要是通过图11所示的处理方法,比通常事件请求优先处理高优先事件请求的结构,则为任何实现形态皆可。

<f.变形例>

所述实施方式中,作为典型例,例示了适用于cpu单元100与经由局域总线112而连接的功能单元150之间的初始化处理的情况,但并不限于此,依据本实施方式的通信流程可适用于任意处理。对于同样的初始化处理,例如也可适用于通信耦合器单元200与经由局域总线212而连接的功能单元250之间的初始化处理,还可适用于cpu单元100与经由现场网络114而连接的任意设备(可包含通信耦合器单元200)之间的初始化处理。

进而,可适用于通过在cpu单元100与特定的一个或多个功能单元150之间、通信耦合器单元200与特定的一个或多个功能单元250之间、多个功能单元150之间、或者多个功能单元250之间利用消息通信来交换数据而实现的任意处理过程。

<g.优点>

在如上所述的依据关联技术的初始化处理中,消息通信是按照低优先级的排程(scheduling)来决定时机,在发生请求其他消息通信的事件时,难以预测能够在何时机送出所请求的通信帧。

与此相对,在依据本实施方式的plc1的初始化处理中,能够将与初始化处理相关的通信帧的送出设为高优先事件请求,可较其他事件处理客户程序所发生的通常事件请求优先进行处理。

而且,在先前发布的通常事件请求处于处理中的情况下,当发布高优先事件请求时,必须等待先前处理中的通常事件请求的处理完成,但在本实施方式中,以下述方式进行控制,即,在先前处理中的通常事件请求的处理完成后,发布高优先事件请求自身。通过采用此种控制方法,能够避免通常事件请求与高优先事件请求的冲突,即,能够避免通常事件请求不完成便无法处理高优先事件请求的事态,从而能够切实地进行与优先级相应的事件请求的处理。

若采用如上所述的依据关联技术的控制方法,则关于各事件请求的处理时间得不到保障,因此为了遵守时间限制,必须设想具备余裕的最坏到达时间来执行通信处理,但根据本实施方式,对于与高优先事件相关的通信处理,能够保证到达时间,因此不需要最坏到达时间等的设想。

而且,若采用如上所述的依据关联技术的控制方法,在事件请求的发布后,直至现实上通信帧到达发送目标为止的最坏到达时间的设想困难,若在安全方面设想最坏到达时间,则有可能造成系统整体的处理延迟。与此相对,根据本实施方式,由于能够保证到达时间,因此所需处理时间等的预估变得容易,并且能够使所述处理时间其自身缩短化,因此处理的启动时间等得以缩短,也能够提高可用性(usability)。

应认为,此次揭示的实施方式在所有方面仅为例示而非限制者。本发明的范围是由权利要求而非所述说明所示,且意图包含与权利要求均等的含义及范围内的所有变更。

符号的说明

1:plc

100:cpu单元

102、202:处理器

104、204:主存储器

106、206:存贮器

108、152、208、252:总线通信电路

109:主机时钟

110、210:网络接口

112、212:局域总线

113、166:总线驱动器

114:现场网络

115:现场网络驱动器

120:调度器

130:刷新任务

136:高优先事件队列管理任务

138:高优先事件队列

140:系统服务任务

141:系统服务群

142、162:消息路由任务

144:从机状态管理任务

145:事件处理客户程序

146:事件通信处理任务

148、149:队列

150、250:功能单元

153:普通时钟

154、254:通信控制器

156、256:功能模块

164:状态管理任务

200:通信耦合器单元

201:控制器

fl:通信帧

msgfl:消息帧

ts:系统周期

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1