控制装置的制造方法
【专利摘要】本发明提供一种控制装置,其并行执行包括动作计算程序在内的多个控制程序,从而能够缩短周期性执行的多个控制程序的执行周期。微处理器(100)并行执行多个控制程序,每当并行执行的多个控制程序所含的通信命令被执行时,时序管理程序以使通信控制器(150)中的通信处理不冲突的方式,使微处理器(100)执行通信命令。
【专利说明】
控制装置
技术领域
[0001]本发明涉及在为了控制机械或设备的动作而使用的控制装置中,使用多内核处理器执行控制程序的时序安排(scheduling)。
【背景技术】
[0002]作为机械、设备等的动作控制,有时包括用于控制马达运动的动作控制。这样的动作控制,典型的已知有可编程控制器(programmable controller),其利用一个CPU来执行动作计算程序和顺序(sequence)的计算,该动作计算程序用于周期性地对用于驱动马达的马达驱动器输出指令值。
[0003]例如在专利文献I中,公开了可编程控制器执行动作计算程序,来周期性地对用于驱动马达的马达驱动器输出指令值。
[0004]在专利文献I中,包括以第一控制循环(周期)进行动作的第一控制程序(短周期动作程序)和第二动作计算程序(长周期动作程序),该第一控制程序包括第一动作计算程序。第二控制程序用于以第一控制循环的整数倍的周期来对马达输出指令值,每当要执行第二控制程序时,在执行第一控制程序结束后开始执行第二控制程序。
[0005]在第二控制程序没有在规定控制周期内结束的情况下,在第一控制程序的下个控制循环中,在执行第一控制程序结束后执行第二控制程序的未处理部分。
[0006]现有技术文献
[0007]专利文献
[0008]专利文献1:日本专利4752984号
[0009]在对这些控制装置所用的马达进行控制的设备中,希望缩短进行完如下处理的时间,这些处理包括:计算从作为控制对象设备的设备输入的输入数据,输出计算结果来作为针对马达的指令值。作为控制装置的动作,周期性地反复读入输入数据,利用输入数据计算出输出数据,发送输出数据,以此为前提,希望能够结合控制目的而以不同的执行周期来进行输入数据的读入、输入数据的计算、输出数据的计算、输出数据的发送。
[0010]专利文献I所记载的控制装置,优先执行短周期动作程序,在短周期动作程序结束后再执行长周期动作程序,因此,能够执行长周期动作程序的时间有所限制。动作计算程序需要周期性地对马达等控制对象输出指令值,因此,需要在估算短周期动作程序的执行时间后来设定长周期动作程序的执行周期,导致长周期动作程序的执行周期变长。
[0011]另外,每当生成用于控制装置执行的包括动作计算程序在内的多个控制程序时,需要设计作为执行对象的输入数据的输入对象即设备、执行周期或执行时机,导致用户负担加重。
【发明内容】
[0012]本发明提供一种控制装置,其并行执行包括动作计算程序在内的多个控制程序,从而能够缩短周期性执行的多个控制程序的执行周期。
[0013]本发明的其它目的在于,提供一种控制装置,其能够容易地生成用于并行执行的控制程序。
[0014]为了解决上述课题,本发明提供一种控制装置,经由网络而与控制对象设备连接,对来自所述控制对象设备的输入数据进行计算,输出计算结果,从而对控制对象设备进行控制,所述控制装置的特征在于,具有微处理器、通信回路和存储器,所述微处理器具有第一核以及第二核;所述通信回路用于在所连接的所述控制对象设备之间进行通信;所述存储器用于存储如下程序:应该由所述第一核执行的第一用户程序和应该由所述第二核执行的第二用户程序,它们用于针对所述控制对象设备规定控制内容,应该由所述第一核执行的第一动作计算程序,其用于按照来自所述用户程序的指示以及第一周期,来计算针对所述控制对象设备的指令值,应该由所述第二核执行的第二动作计算程序,其用于按照来自所述用户程序的指示以及第二周期,来计算针对所述控制对象设备的指令值,应该由所述第一核执行的第一输入程序和应该由所述第二核执行的第二输入程序,它们的状态为,能够针对经由所述通信回路而被存储至存储器中的来自所述控制对象设备的输入数据进行计算,应该由所述第一核执行的第一输出程序和应该由所述第二核执行的第二输出程序,它们生成能够经由通信回路发送的输出数据,所述输出数据包括所述指令值,时序管理程序;所述时序管理程序,使所述第一核以第一周期来反复执行所述第一输入程序、所述第一输出程序、所述第一用户程序、所述第一动作计算程序,使所述第二核以第二周期来反复执行所述第二输入程序、所述第二输出程序、所述第二用户程序、所述第二动作计算程序。
[0015]本发明能够达到如下效果:通过并行地执行短周期动作计算程序和长周期动作计算程序,在缩短了短周期动作计算程序相关的输入输出时间的同时,也能够缩短长周期动作计算程序的执行周期。
【附图说明】
[0016]图1是表示本实施方式的控制装置的系统结构的图。
[0017]图2是表示CPU单元的硬件结构的图。
[0018]图3是表示本发明的实施方式的CPU单元所执行的软件结构的示意图。
[0019]图4是表示本发明的实施方式的控制装置的硬件结构的示意图。
[0020]图5是表示控制装置中的控制装置的设定步骤的一例的流程图。
[0021]图6是表示进行控制程序的设定的画面例的图。
[0022]图7是表示控制程序的分配设定的画面例的图。
[0023]图8是表示对控制程序分配的图片的图。
[0024]图9是表不第一?第二控制程序的执行时机的图。
[0025]其中,附图标记说明如下:
[0026]1、8控制装置
[0027]214输出处理程序
[0028]216输入处理程序
[0029]218 1处理程序
[0030]230控制程序
[0031]236用户程序
[0032]14、53 10(Input/0utput:输输入输出)单元
[0033]122、142 DMA (Direct1nal Memory Access:直接内存访问)控制回路
[0034]210、220 系统程序
【具体实施方式】
[0035]<系统结构>
[0036]本实施方式的控制装置,对机械或设备等的控制对象进行控制。本实施方式的控制装置作为其结构要素而包括CPU单元。CPU单元包括:微处理器、包括微处理器的主存储器在内的存储单元、通信回路(电路)。本实施方式的控制装置的CPU单元,反复执行输出数据的发送、输入数据的接收、用于使用输入数据生成输出数据的控制程序,从而来对控制对象进行控制。
[0037]存储单元存储控制程序以及系统程序,该系统程序用于控制该控制程序的执行以及控制输入数据以及输出数据的输入输出。微处理器执行存储在存储单元中的系统程序以及控制程序。
[0038]通信回路发送输出数据以及接收输入数据。如后述,本实施方式的控制装置,具有以下回路来作为通信回路:第一通信回路,其通过控制装置系统总线来进行输出数据的发送以及输入数据的接收;第二通信回路,其通过现场网络来进行输出数据的发送以及输入数据的接收。
[0039]首先,参照图1,来说明本实施方式的控制装置I的系统结构。图是表示本发明的实施方式的控制装置系统的概略结构的示意图。参照图1,控制装置系统SYS包括:控制装置1、经由现场网络2而与控制装置I连接的伺服马达驱动器(伺服驱动器)3以及远程1终端5、作为现场设备的传感器6以及继电器7。另外,在控制装置I中,经由连接电缆10等而连接控制装置8。
[0040]控制装置I包括:主要进行计算处理的CPU单元13、一个以上的1单元14、特殊单元15。这些单元能够经由控制装置系统总线11而相互交换数据。另外,在这些单元中,由电源单元12提供恰当电压的电源。此外,作为控制装置I而构成的各单元,是由控制装置制造商提供的,因此,控制装置系统总线11 (PLC系统总线)一般是由每个控制装置制造商独自开发并使用的。与此相对,如后述,就现场网络2多采用公开的规格等,以使得能够连接不同制造商的产品。
[0041]针对CPU单元13的详细结构,参照图2而在后叙述。1单元14是进行一般的输入输出处理的单元,负责开/关(0N/0FF)这样的2值化的数据的输入输出。S卩,1单元14采集这样的信息,该信息表示传感器6等的传感器是检测出某个对象物的状态(开:0N)还是什么对象物都没检测出来的状态(关:0FF)。另外,1单元14针对继电器7或促动器这样的输出目标,输出使其激活的指令(开:0N)或不使其激活的指令(关:0FF)。
[0042]特殊单元15如下功能:模拟数据的输入输出、温度控制、通过特定的通信方式来进行通信,而这些都是1单元14不支持的功能。
[0043]现场网络2传送与CPU单元13交换的各种数据。作为现场网络2,典型的能够使用各种产业用以太网(注册商标)。作为产业用以太网(注册商标),例如已知EtherCAT (注册商标)、ProfinetIRT^MECHATROLINK (注册商标)-1I1、Power I ink、SERCOS (注册商标)-1I1、CIPMot1n等,能够在其中采用任意的网络。进而,也可以采用产业用以太网(注册商标)以外的现场网络。例如,如果不进行动作控制,贝1J可以使用DeviceNet、CompoNet/IP (注册商标)等。在本实施方式的控制装置系统SYS中,典型的,在本实施方式中例示出作为产业用以太网(注册商标)的EtherCAT(注册商标)来作为现场网络2的结构。
[0044]此外,控制装置I使CPU单元13具有1单元14的功能、伺服马达驱动器3的功能,就这样的内置功能所能够达到的范围而言,也可以不经由1单元14或伺服马达驱动器3等而由CPU单元13直接对控制对象进行控制。
[0045]伺服马达驱动器3,经由现场网络2而与CPU单元13连接,并且,按照来自CPU单元13的指令值来驱动伺服马达4。更具体而言,伺服马达驱动器3以一恒定周期(规定周期)从控制装置I接收位置指令值、速度指令值、扭矩指令值这样的指令值。另外,伺服马达驱动器3从与伺服马达4的轴连接的位置传感器(旋转编码器)或扭矩传感器这样的检测器中,取得位置、速度(典型的,根据本次位置和前次位置的差而计算出)、扭矩这样的伺服马达4的动作的实测值。并且,伺服马达驱动器3将来自CPU单元13的指令值设定为目标值,将实测值作为反馈值,来进行反馈控制。即,伺服马达驱动器3调整用于驱动伺服马达4的电流,以使得实测值接近目标值。此外,伺服马达驱动器3有时也称为伺服马达放大器。
[0046]另外,图1中,例示出伺服马达4与伺服马达驱动器3组合的系统例子,但也能够采用其它结构、例如采用脉冲马达与脉冲马达驱动器组合的系统。
[0047]在图1所示的控制装置系统SYS的现场网络2中,还连接有远程1终端5。远程1终端5基本上与1单元14同样地,进行一般的输入输出处理。更具体而言,远程1终端5包括通信耦合器52和一个以上的1单元53,该通信耦合器52用于利用现场网络2进行数据传送的处理。这些单元,经由远程1终端总线51而能够相互交换数据。
[0048]在后面叙述控制装置支持装置8。
[0049]< CPU单元的硬件结构>
[0050]接下来,参照图2,说明CPU单元13的硬件结构。图2是表示本发明的实施方式的CPU单元13的硬件结构的示意图。参照图2,CPU单元13包括:微处理器100、微处理器100的处理器核心140、芯片组102、主存储器104、非易失性存储器106、系统计时器108、通信控制器150、系统总线控制器120、现场网络控制器140、USB连接器(未图示)。芯片组102与其它组成构件之间分别经由各种总线连接(结合)。
[0051]微处理器100以及芯片组102,典型的以通用的计算机体系结构为基准来构成。即,微处理器100解释并执行从芯片组102按照内部时钟而顺次供给的命令代码。芯片组102,在所连接的各种组成构件之间进行内部的数据交换,并且,生成微处理器100所需的命令代码。进而,芯片组102发挥高速缓存的功能,高速缓存由微处理器100进行计算处理而得的结果的数据等。
[0052]CPU单元13具有主存储器104以及非易失性存储器106来作为存储单元。
[0053]主存储器104是易失性的存储区域(RAM),对CPU单元13投入电源后,保存应该由微处理器100执行的各种程序。另外,主存储器104也用作由微处理器100执行各种程序时的工作用存储器。作为这样的主存储器104,可以使用DRAM (Dynamic Random AccessMemory:动态随机存取存储器)、SRAM (Static Random Access Memory:静态随机存取存储器)这样的设备。
[0054]另一方面,非易失性存储器106以非易失的方式保存实时OS (Operating System:操作系统)、控制装置I的系统程序、用户程序、动作计算程序、系统设定参数这样的数据。这些程序或数据,能够根据需要而复制到主存储器104中,能够由微处理器100访问。作为这样的非易失性存储器106,能够使用闪存器这样的半导体存储器。或者,能够使用磁盘这样的磁记录介质、DVD-RAM (Digital Versatile Disk Random Access Memory:数字多功能光盘-随机存取存储器)这样的光学记录介质等。
[0055]通信控制器150典型的由FPGA(Field-Programmable Gate Array:即现场可编程门阵列)、ASIC(Applicat1n Specific Integrated Circuits:专用集成电路)等的硬件构成,能够经由芯片组来与主存储器之间收发数据。通信控制器具有用于与主存储器进行数据通信的存储器区域,针对后述的系统总线控制器、现场网络控制器,传送从主存储器传送来的数据。另外,针对系统总线控制器以及现场网络控制器发出命令,使它们将从主存储器传送来的数据发送出去。
[0056]通信控制器还具有系统计时器108。系统计时器108按照每个一恒定周期(规定周期)产生中断信号,将中断信号提供至该微处理器100。典型的,根据硬件的规格,能够以多个不同的周期来分别产生中断信号,但也能够设定为通过OS (Operating System:操作系统)或B10S(Basic Input Output System:基础输入输出系统)等来以任意周期产生中断信号。利用该系统计时器108产生的中断信号,能够实现后述那样的针对每个执行周期的控制动作。
[0057]作为通信回路,有系统总线控制器120以及现场网络控制器140。这些通信回路进行输出数据的发送以及输入数据的接收。
[0058]此外,在CPU单元13自身具有10单元14或伺服马达驱动器3的功能的情况下,本来由控制装置系统总线控制器120进行的输出数据的发送以及输入数据的接收,变为将承担这些功能的部分作为通信对方(通信目标)而在CPU单元13的内部进行的发送以及接收。
[0059]通信控制器150控制经由控制装置系统总线11的数据交换。更具体而言,包括系统总线控制器120、DMA(Dynamic MemoryAccess:动态存储器存取)控制回路122、缓存(缓冲存储器)。
[0060]缓存(缓冲区)126发挥发送缓存和接收缓存的功能,发送缓存用于对要经由控制装置系统总线11而向其他单元输出的数据(以下“输出数据”)进行缓冲存储,接收缓存用于对经由控制装置系统总线11而从其它单元输入的数据(以下“输入数据”)进行缓冲存储。此外,通过微处理器100的计算处理而生成的输出数据,原本存在主存储器104中。并且,应该向特定单元传送的输出数据,被从主存储器104中读出,暂时保存在缓存126中。另夕卜,从其它单元传送来的输入数据,被暂时保存在缓存126后,进而被转移至主存储器104。
[0061]DMA控制回路122从主存储器104向缓存126传送输出数据,以及从缓存126向主存储器104传送输入数据。
[0062]通信控制器,在与控制装置系统总线11连接的其它单元之间,进行发送缓存126的输出数据的处理以及接收第一输入数据并将其存储在缓存126中的处理。典型的,系统总线控制器提供控制装置系统总线11中的物理层以及数据链路层的功能。
[0063]现场网络控制器140,控制经由现场网络2的数据交换。S卩,现场网络控制器140按照所用的现场网络2的规格,控制输出数据的发送以及输入数据的接收。如上述,本实施方式中采用按照EtheerCAT (注册商标)规格的现场网络2,因此,能够使用包括用于通常的以太网(注册商标)通信的硬件在内的现场网络控制器140。在EtheerCAT(注册商标)规格中,能够使用一般的以太网(注册商标)控制器,来实现按照通常的以太网(注册商标)规格的通信协议。其中,根据作为现场网络2而采用的产业用以太网(注册商标)的种类,也能够采用与通常通信协议不同的专用规格的通信协议所对应的特别规格的以太网(注册商标)控制器。另外,在采用产业用以太网(注册商标)以外的现场网络的情况下,能够使用与该规格对应的专用的现场网络控制器。
[0064]缓存126发挥经由现场网络2向其它装置等输出数据(以下“输出数据”)的发送缓存以及经由现场网络2而从其它装置等输入(接收)数据(以下“输入数据”)的接收缓存的功能。微处理器100通过计算处理而生成的输出数据,原本被存储在主存储器104中。并且,应该向特定的装置传送的输出数据,被从主存储器104读出而暂时存储在通信回路缓存146中。另外,从其它装置传送来的输入数据暂时被保存在缓存146中,进而被转移至主存储器104。
[0065]DMA控制回路142从主存储器104向缓存传送输出数据,以及从缓存向主存储器104传送输入数据。
[0066]现场网络控制器144,在与现场网络2连接的其它装置之间,进行发送缓存的输出数据的处理以及接收输入数据并将其存储在通信回路缓存中的处理。典型的,现场网络控制器144提供现场网络2中的物理层以及数据链路层的功能。
[0067]USB连接器是用于对控制装置支持装置8与CPU单元13进行连接的接口。典型的,从控制装置支持装置8传送来的能够由CPU单元13的微处理器100执行的程序等,经由USB连接器110而被读入至控制装置I。
[0068]< C.CPU单元的软件结构>
[0069]接下来,参照图3,说明用于提供本实施方式的各种功能的软件群。这些软件所含的命令代码,在恰当时机被读出,由CPU单元13的微处理器100、处理器核心140执行。
[0070]图3是表示本发明的实施方式的CPU单元13所执行的软件结构的示意图。参照图3,作为CPU单元13所执行的软件,构成实时0S200、系统程序210、用户程序236这三层。
[0071]实时0S200是根据CPU单元13的计算机体系结构而设计的,提供用于微处理器100执行系统程序210以及用户程序236的基本执行环境。
[0072]系统程序210是用于提供控制装置I的功能的软件群。具体而言,系统程序210包括时序管理程序212、输出处理程序214、输入处理程序216、顺序命令计算程序(顺序计算程序)232、动作计算程序234、其它系统程序220。此外,一般而言,输出处理程序214以及输入处理程序216被连续(作为一个整体)执行,因此,有时将这些程序统称为1处理程序218。
[0073]用户程序236是根据用户的控制目的而作成的。即,是根据使用控制装置系统SYS进行控制的对象的生产线(工序)等,任意设计的程序。
[0074]如后述,用户程序236与顺序命令计算程序232以及动作计算程序234联动,来实现用户的控制目的。即,用户程序236利用由顺序命令计算程序232以及动作计算程序234提供的命令、函数、功能模块等,来实现程序的动作。因此,有时将用户程序236、顺序命令计算程序232以及动作计算程序234统称为控制程序230。
[0075]这样,CPU单元13的微处理器100执行存储在存储单元中的系统程序210以及控制程序230。
[0076]以下,详细说明各程序。
[0077]用户程序236如上述所述,是根据用户的控制目的(例如,对象的生产线或工序)而作成的。用户程序236,典型的,成为能够由CPU单元13的微处理器100执行的对象程序形式。在控制装置支持装置8等中,该用户程序236是对由梯形语言(ladder language)等记述的源程序进行编译而生成的。并且,所生成的对象程序形式的用户程序236被从控制装置支持装置8经由连接电缆10传送至CPU单元13,存储在非易失性存储器106等中。
[0078]时序管理程序212,针对输出处理程序214、输入处理程序216以及控制程序230,控制各执行循环主的处理开始以及处理中断后的处理重新开始。更具体而言,时序管理程序212控制用户程序236以及动作计算程序234的执行。
[0079]在本实施方式的CPU单元13中,采用与动作计算程序234相适合的一恒定周期(规定周期)的执行循环(控制循环),作为整个处理的通用循环。因此,在一个控制循环内,难以使全部处理执行结束,因此,根据应该执行的处理的优先级等,区分为在各控制循环中应该执行完的处理和也可以分配在多个控制循环中执行的处理。时序管理程序212管理这些区分后的处理的执行顺序等。更具体而言,时序管理程序212,在各控制循环期间内优先执行优先级高的程序。
[0080]输出处理程序214,将通过执行用户程序236 (控制程序230)而生成的输出数据,重新配置成适于向通信控制器传送的形式。在系统总线控制器120或现场网络控制器140需要来自微处理器100的用于进行发送的指示的情况下,输出处理程序214发出这样的指不O
[0081]输入处理程序216将由控制装置系统总线控制器120以及/或现场网络控制器140接收的输入数据,重新配置成适于控制程序230使用的形式。
[0082]在由用户程序236使用的某种顺序命令被执行时,调用顺序命令计算程序232,用于实现其命令。
[0083]按照用户程序236的指示来执行动作计算程序234,按照用户程序236在每次执行时,计算要对伺服马达驱动器3或脉冲马达驱动器这样的马达驱动器输出的指令值。
[0084]其它系统程序220是图3中分别所示的程序以外的程序,总括表示用于实现控制装置I的各种功能的程序群。该程序例如使微处理器执行与机械的控制控制装置的通信、来自外部设备的要求的处理、自身诊断处理。另外,其它系统程序还包括执行向外部存储介质传送主存储器的数据的处理、从外部存储介质读取数据的处理。
[0085]实时0S200,提供用于随着时间经过而且换执行多个程序的环境。在本实施方式的控制装置I中,作为将通过CPU单元13执行程序而生成的输出数据向其它单元或其它装置输出(发送)的事件(中断),初始设定有控制循环开始的中断。如果产生了控制循环开始的中断,则实时0S200将微处理器100中的执行对象,从在中断产生时点正在执行的程序切换为时序管理程序212。此外,在时序管理程序212以及控制执行时序管理程序212的程序都没有被执行的情况下,实时0S200执行包含在其它系统程序210中的程序。作为这样的程序,例如包括在CPU单元13与控制装置支持装置8之间经由连接电缆10 (USB)等进行通信处理相关的程序。
[0086]此外,控制程序230以及时序管理程序212,被存储在作为存储单元的主存储器104以及非易失性存储器106中。
[0087]<支持装置的硬件结构>
[0088]接下来,说明控制装置8,其用于生成由控制装置I执行的程序以及进行控制装置I的维护等。
[0089]图4是表示本发明的实施方式的控制装置8的硬件结构的示意图。参照图4,控制装置8典型的由通用的计算机构成。此外,从维护性的观点出发,优选便携性良好的笔记本型个人计算机。
[0090]参照图4,控制装置8包括:CPU81,其执行包括OS在内的各种程序;R0M(Read OnlyMemory:只读存储器)82,其存储B1S、各种数据;存储器RAM83,其提供工作区域,用于存储由CPU81执行程序所需的数据;硬盘(HDD) 84,其非易失的存储由CPU81执行的程序等。CPU81相当于控制装置8的计算部,R0M82、RAM83以及硬盘84相当于控制装置8的存储部。
[0091]控制装置8还包括用于接受用户操作的键盘85以及鼠标86、用于向用户提示信息的监视器87。进而,控制装置8包括用于与控制装置I (CPU单元13)等进行通信的通信接口 (IF)89。
[0092]如后述,控制装置8所执行的各种程序被存储在CDR0M9中流通。存储在该CD-R0M9中的程序,被⑶ROM (Compact Disk-Read Only Memory:光盘只读存储器)驱动器88读取,进而被存入硬盘(HDD)84等。或者,可以从上位的主计算机等通过网络来下载程序。
[0093]<控制程序>
[0094]在本实施方式中,控制程序为执行一系列动作的单位,包括顺序计算程序、动作计算程序,这些顺序计算程序、动作计算程序是随着执行10处理程序、用户程序、用户程序的执行而执行的程序。
[0095]在本发明的控制装置I中,针对每个控制程序设定执行周期、所执行的优先级,为了能够以更短周期执行,设定使各个控制程序开始执行的时机、限制条件。用户考虑这些控制程序的特性,为了达到控制目的而进行编程。时序管理程序按照控制程序的执行优先级、执行周期,来使微处理器执行控制程序。接下来说明各个控制程序。
[0096]第一控制程序是以最高优先级来周期性执行的。包括第一输出处理程序、第一输入处理程序在内,按顺序发送输出数据、读入输入数据、执行所分配的第一用户程序、生成输出数据、执行第一动作计算程序、计算针对马达的指令值。
[0097]第二控制程序是以仅次于第一控制程序的优先级来周期性执行的。包括第二输出处理程序、第二输入处理程序在内,按顺序发送输出数据、读入输入数据、执行所分配的第二用户程序、执行第二动作程序。
[0098]第三控制程序是以恒定周期来周期性地执行的。第三控制程序,是以上述的第一控制程序执行读入输出数据或输入数据为前提的。具体而言,接受按照第一控制程序所执行的输出处理程序、输入处理程序的命令而读入的输入数据的交接,来计算输出数据。
[0099]第三控制程序是适合于如下情形的程序:为了缩短第一控制程序的执行周期,将包括在第一控制程序中的用户程序,在允许以比第一控制程序的执行周期稍长的周期来执行时分配给该第三控制程序。
[0100]第四控制程序仅由用户程序构成。第四控制程序与高速控制计算无关,而用于描述通信处理、备份处理等。
[0101]接下来,示出使用控制器支持装置来在控制装置中进行编程的步骤。图5示出控制装置中的控制装置的设定步骤的一例。
[0102]在步骤S(STEP) I中,确定经由现场网络或系统总线连接的设备。具体而言,设定用于对与现场网络及系统总线连接的设备进行通信的信息。另外,登录为后述的用户程序所使用的变量。虽未图示,也可以自动地与经由现场网络或系统总线连接的设备进行通信,取得经由现场网络或系统总线连接的设备、连接顺序等的信息。
[0103]在步骤S2中,用户使用控制器支持装置,如上述那样配合控制目的来生成用户程序。所生成的程序,使用在步骤SI登录的从与现场网络及系统总线连接的设备输入的数据,执行顺序计算、动作计算,生成输出数据。该用户程序也可以分割为多个程序模块而生成。
[0104]在步骤S3中,用户进行控制程序的设定。配合用户的控制目的,设定用于执行控制程序的周期。
[0105]在步骤S4中,分别针对经由在步骤SI中设定的网络连接的设备,登录按照所述的1处理程序的命令执行的、用于进行输入数据的接收与输出数据的发送的控制程序。图6表示用于进行控制程序的设定的画面例。分别针对与现场网络及系统总线连接的设备,登录用于进行1刷新(10 refresh)的控制程序。以一览方式显示控制对象设备,同时显示单元名称。以下拉式菜单形式使用户选择分别针对各设备进行1刷新的控制程序。
[0106]在步骤S5中,将所生成的用户程序分配给控制程序。图8表示对控制程序分配的图(Image)。图7中,分别针对控制程序,将所生成的用户程序(ProgramO_Program6)分配给控制程序。在将多个用户程序分配给控制程序的情况下,登录用户程序的执行顺序。在图7的例子中,对第一控制程序分配用户程序ProgramO、Pr ο gram2。在第二控制程序中,分配有用户程序Program4、Program5、Program6。在第三控制程序中,分配有Programl0
[0107]通过上述的操作,针对每个控制程序,生成所执行的周期、设定参数和包括所执行的用户程序在内的控制程序,该设定参数表示通过控制程序所含的1控制程序进行数据交换的设备。控制装置的时序管理程序,参照传送来的设定参数,参照控制程序的执行周期等,控制开始或结束执行程序的时机。另外,在本实施方式中的控制程序的执行周期,成为经由现场网络及系统总线而与外部设备进行通信(10刷新)的周期,因此,基于设定参数,通信程序确定以通信周期以及该周期进行1刷新的对象和设备。
[0108]〈第一实施方式〉
[0109]图8表示多个核心以恒定周期执行第一控制程序和第二控制程序的例子。第一控制程序以及第二控制程序分别包括第一 1处理程序、第二 1处理程序、第一用户程序、第二用户程序、第一动作计算程序、第二包括动作计算程序。
[0110]时序管理程序监视计时器的计数值。如果达到规定周期,时序管理程序使微处理器的第一核心开始执行第一控制程序。同时使微处理器的第二核心开始执行第二控制程序。
[0111]在第一控制程序的执行过程中,微处理器的第一核心按照第一 1控制程序的输出处理程序的命令,从主存储器上的通信缓存向通信控制器150的缓存,传送用于向与第一控制程序关联的外部设备发送的第一输出数据(图中A)。另外,根据输入处理程序的命令,将从通信控制器传送来的存储在通信缓存中的第一输入数据,发送至第一用户程序的工作区域(图中C)。
[0112]按照第一用户程序的命令,微处理器的第一核心利用存储在第一用户程序的工作区域中的输入数据来进行顺序计算,将输出数据存储至主存储器上通信缓存。另外,利用输入数据进行计算,计算所输出的动作控制用数据。将计算出的动作控制用数据传送至动作计算程序进行工作的区域。
[0113]按照第一动作计算程序的命令,微处理器的第一核心利用第一动作计算程序来进行计算,计算与第一控制程序的执行周期对应的向马达发送的指令值,计算输出数据。将输出数据传送至用于对通信控制器进行传送的缓存区域。
[0114]时序管理程序监视下个执行周期的到来,如果检测出执行周期的到来,使微处理器的第一核心执行第一控制程序。使微处理器的第一核心以恒定周期反复执行一系列的处理。
[0115]接下来说明第二控制程序的执行。在第二控制程序的执行过程中,按照第二 1控制程序的命令,微处理器的第二核心从主存储器上向通信控制器的缓存,发送用于向与第二控制程序关联的外部设备发送的第一输出数据(图中B)。另外,按照输入处理程序的命令,将从通信控制器传送来的存储在通信缓存中的第一输入数据,发送至第一用户程序的工作区域(图中D)。
[0116]按照第二用户程序的命令,微处理器的第二核心利用存储在第二用户程序的工作区域中的输入数据,进行顺序计算,将输出数据存储至主存储器上的通信缓存。另外,利用输入数进行计算,计算所输出的动作控制等数据。将计算出的动作控制用数据发送至第二动作计算程序进行工作的区域。
[0117]按照第二动作计算程序的命令,微处理器的第一核心利用第二动作计算(方法)来进行计算,计算出与第二控制程序的执行周期对应的用于向马达发送的指令值,从而计算出输出数据。然后将输出数据传送至用于向通信控制器传送的通信缓存。
[0118]如果执行完第二动作控制程序,则第二控制程序执行结束。时序管理程序监视下个执行周期的到来,如果检测出执行周期到来,则使微处理器的第二核心执行第二控制程序。使微处理器的第二核心以恒定周期反复执行一系列的处理。
[0119]在该例中,在第一控制程序的第二个周期的计算结束之前,已经结束第二控制程序的计算,但第二控制程序以所设定的执行周期的时机(第一控制程序的执行周期的3倍)向外部设备发送输出数据。
[0120]时序管理程序监视下个执行周期的到来,如果检测出执行周期到来,则使微处理器的第二核心执行第二控制程序。使微处理器的第二核心以恒定周期反复执行一系列的处理。
[0121]在本实施例中,分别并行地使微处理器的第一核心、第二核心利用第一控制程序以及第二控制程序来并行地执行多个针对马达的指令值。在该例中,说明了以第一控制程序的执行周期的3倍的执行周期来并行执行第二控制程序的情况,但也可以以与第一控制程序相同的周期来执行第二控制程序。也可以以第一控制程序的执行周期的多倍周期来执行第二控制程序。通过对包括多个马达的控制在内的控制程序进行分割,进而将第一控制程序中的包括计算用于向马达发送的指令值的处理在内的动作程序分到第二控制程序中,从而能够缩短第一执行周期的周期。
[0122]在本实施例中,每当执行第一控制程序以及第二控制程序时,从用于控制1的程序所含的输出处理程序开始执行,但也可以如图所示那样,从输入处理程序开始执行,周期性地执行按顺序执行用户程序、动作计算程序、输出处理程序。
[0123]进而在本实施例中,说明了第一以及第二控制程序包括动作控制程序的例子,但也可以使任何控制程序都不包括动作计算程序的执行。
[0124]<第二实施例>
[0125]接下来说明使用了多内核处理器的第一、第二以及第三控制程序的执行开始的时机。
[0126]图9是表示第一?第三控制程序的执行时机的图。时序管理程序如果检测出规定时刻的到来,则开始执行第一控制程序、第二控制程序。使第三控制程序为等待执行的状
??τ O
[0127]如图中所示,第一控制程序的1表示按照1控制程序的命令进行的动作。处理器的第一核心按照第一 1控制程序的命令,进行输出数据的发送、输入数据的读入。(由于是与所述的说明相同的处理,省略说明)
[0128]如图中所示,第一控制程序的UPG,表示按照第一用户程序的命令进行的动作。按照第一用户程序的命令,微处理器的第一核心利用存储在第一用户程序的工作区域中的输入数据,来进行顺序计算,将输出数据存储至通信缓存,并且将其存储至第一动作计算程序进行计算的区域。
[0129]如图中所示,第一控制程序的MC表示按照第一动作计算程序的命令进行的动作。微处理器的第一核心计算与第一控制程序的执行周期对应的用于向马达发送的指令值,计算输出数据,将输出数据存储在用于向通信控制器传送的缓存。每当第一控制程序结束时,虽未图示,但按照系统程序的命令,针对由第一控制程序使用的输入数据、输出数据、中间数据,将用于第三控制程序的计算中的数据传送至第三控制程序的工作区域。
[0130]如图中所示,第二控制程序的1表示按照第二 1控制程序的命令进行的动作。处理器的第二核心按照第二 1控制程序的命令,进行输出数据的发送、输入数据的读入。(由于是与所述的说明相同的处理,省略说明)
[0131]如图中所示,第二控制程序的UPG,表示按照第二用户程序的命令进行的动作。按照第二用户程序的命令,微处理器的第二核心利用存储在第二用户程序的工作区域中的输入数据,来进行顺序计算,将输出数据存储至通信缓存,并且将其存储至第二动作计算程序进行计算的区域。
[0132]如图中所示,第二控制程序的MC表示按照第二动作计算程序的命令进行的动作。微处理器的第二核心计算与第二控制程序的执行周期对应的用于向马达发送的指令值,计算输出数据,将输出数据存储在用于向通信控制器传送的缓存。
[0133]时序管理程序,如果第一控制程序如上述那样执行结束,则使微处理器的核心3开始执行第三控制程序。
[0134]图中所示的控制程序的UPG,表示按照第三控制程序所含的第三用户程序的命令进行的动作。按照第三用户程序的命令,利用存储在第三控制程序的执行区域中的数据,执行第三用户程序的计算而计算出输出数据,将第三控制程序的输出数据存储至第三控制程序的输出缓存。
[0135]虽未图示,时序管理程序与系统程序,在第一控制程序以及第三控制程序的执行周期一致的时机之前,在第一控制程序开始前,将输出数据从第三控制程序的输出缓存复制到用于向通信控制器传送的缓存。
[0136]通过该处理,如图中的(A)所示,第三控制程序的输出数据,按照第一控制程序的执行周期的第四个周期的第一输出处理程序的命令,被传送至通信控制器。
[0137]在该例子中,说明了使用三个处理器核心(第一核心?第三核心)来执行第一控制程序、第二控制程序、第三控制程序的例子,但也能够使用两个处理器核心执行。在利用两个处理器核心执行这些程序时,时序管理程序在第一控制程序及第二控制程序的空闲时间,并且在执行完第一控制程序后,开始执行第三控制程序。在第三控制程序的执行过程中,如果第一控制程序或第二控制程序开始执行的时机到来,则时序管理程序停止执行第三控制程序,在第一控制程序或第三控制程序的空闲时间重新开始执行第三控制程序。
[0138]如果规定的控制程序开始执行的开始时机(执行周期开始的时机)到来,则将第三控制程序的执行设为等待状态,将第三控制程序开始执行的时机设为第一控制程序结束执行的时机,从第一控制程序向第三控制程序的工作区域复制。
[0139]由此,用户在研究由第一控制程序执行的程序时,能够将可以花费比较长时间的程序分配给第三控制程序。由此,能够进一步缩短第一控制程序的执行周期。
【主权项】
1.一种控制装置,经由网络而与控制对象设备连接,对来自所述控制对象设备的输入数据进行计算,输出计算结果,从而对控制对象设备进行控制,所述控制装置的特征在于,具有微处理器、通信回路和存储器, 所述微处理器具有第一核以及第二核; 所述通信回路用于在所连接的所述控制对象设备之间进行通信; 所述存储器用于存储如下程序: 应该由所述第一核执行的第一用户程序和应该由所述第二核执行的第二用户程序,它们用于针对所述控制对象设备规定控制内容, 应该由所述第一核执行的第一动作计算程序,其用于按照来自所述用户程序的指示以及第一周期,来计算针对所述控制对象设备的指令值, 应该由所述第二核执行的第二动作计算程序,其用于按照来自所述用户程序的指示以及第二周期,来计算针对所述控制对象设备的指令值, 应该由所述第一核执行的第一输入程序和应该由所述第二核执行的第二输入程序,它们的状态为,能够针对经由所述通信回路而被存储至存储器中的来自所述控制对象设备的输入数据进行计算, 应该由所述第一核执行的第一输出程序和应该由所述第二核执行的第二输出程序,它们生成能够经由通信回路发送的输出数据,所述输出数据包括所述指令值, 时序管理程序; 所述时序管理程序,使所述第一核以第一周期来反复执行所述第一输入程序、所述第一输出程序、所述第一用户程序、所述第一动作计算程序,使所述第二核以第二周期来反复执行所述第二输入程序、所述第二输出程序、所述第二用户程序、所述第二动作计算程序。
【文档编号】G05B19/042GK106020009SQ201510812446
【公开日】2016年10月12日
【申请日】2015年11月20日
【发明人】江口重行, 前川典弘, 田村嘉英, 西山佳秀
【申请人】欧姆龙株式会社