可编程逻辑控制器的CPU单元、可编程逻辑控制器、方法、计算机以及计算机程序与流程

文档序号:22626493发布日期:2020-10-23 19:34阅读:155来源:国知局
可编程逻辑控制器的CPU单元、可编程逻辑控制器、方法、计算机以及计算机程序与流程

本发明涉及可编程逻辑控制器的cpu单元、可编程逻辑控制器、方法、计算机以及计算机程序。



背景技术:

就在工厂自动化的领域中使用的可编程逻辑控制器(programmablelogiccontroller:plc)而言,cpu(centralprocessingunit)单元具有专用集成电路即asic(applicationspecificintegratedcircuit)和进行通用处理的微处理器(microprocessor:mpu)。asic执行在设计时所决定的特定的处理,微处理器执行在设计上无法由asic进行处理的处理。由于微处理器的运算性能不如asic那样高,因此微处理器的处理能力成为cpu单元的动作的高速化的难点。

如果使asic处理所有的命令,则能够实现cpu单元的动作的高速化。但是,需要对asic追加针对程序内的所有处理定制的运算电路,开发成本过高,因此不现实。

在专利文献1中公开了处理的高速化的方法,即,使相当于可编程逻辑设备的可重构处理器执行微处理器的处理的一部分。在这种方法中,可编程逻辑设备执行包含处理耗费时间的函数在内的程序要素,微处理器执行不包含函数的程序要素。

专利文献1:日本特开2009-251782号公报



技术实现要素:

在专利文献1的方法中,可编程逻辑设备仅执行包含函数在内的程序要素的处理。

因此,在新创建程序的情况下,对于希望使可编程逻辑设备执行的处理,用户必须以使得该处理包含于函数的方式考虑运算装置而创建初始程序。

另外,在将现有程序的某个处理变更为由可编程逻辑设备执行而不是由微处理器执行的情况下,需要修改程序以使得该处理包含于函数,耗费时间。

本发明就是鉴于上述实际情况而提出的,其目的在于,在可编程逻辑控制器中,在将微处理器的处理分散至可编程逻辑设备的情况下,能够在程序创建之后选择运算装置,并且,不需要大幅度的程序修改就能够进行运算装置的变更。

为了达成上述目的,本发明的第1观点涉及的可编程逻辑控制器的cpu单元具有微处理器及可编程逻辑设备而作为运算装置。用户程序内的命令各自包含运算装置信息,该运算装置信息表示由用户选择出的对命令进行处理的运算装置。微处理器在运算装置信息表示微处理器的情况下,对命令进行处理。可编程逻辑设备在运算装置信息表示可编程逻辑设备的情况下,对命令进行处理。如果运算装置信息被变更,则基于变更后的运算装置信息而由微处理器或可编程逻辑设备对命令进行处理。

发明的效果

在本发明的第1观点涉及的可编程逻辑控制器的cpu单元中,在作为对命令进行处理的运算装置而由用户选择出的运算装置信息表示微处理器的情况下,微处理器对命令进行处理,在命令的运算装置信息表示可编程逻辑设备的情况下,可编程逻辑设备对命令进行处理。如果运算装置信息被变更,则基于变更后的运算装置信息而由微处理器或可编程逻辑设备对命令进行处理。通过具有这样的结构,从而在程序创建时不需要去考虑执行各处理的运算装置,能够在程序创建之后进行运算装置的选择。并且,不需要大幅度的程序修改就能够进行运算装置的变更。

附图说明

图1是表示本发明的实施方式涉及的plc的结构的框图。

图2是实施方式涉及的plc的cpu单元的程序的扫描的流程图。

图3是图2的程序的执行的详细流程图。

图4是表示实施方式涉及的对运算装置信息进行变更的工程设计工具的菜单画面的一个例子的图。

图5是表示实施方式涉及的对运算装置信息进行变更的工程设计工具的子菜单画面的一个例子的图。

图6是表示实施方式涉及的对运算装置信息进行变更的工程设计工具的自动选择模式下的运算装置的选择的处理的流程图。

图7是表示实施方式涉及的对运算装置信息进行变更的工程设计工具的手动选择模式1下的选择画面的一个例子的图。

图8是表示实施方式涉及的对运算装置信息进行变更的工程设计工具的手动选择模式2下的选择画面的一个例子的图。

图9是表示实施方式涉及的对运算装置信息进行变更的工程设计工具的手动选择模式1下的选择画面的其它例子的图。

图10是表示实施方式涉及的对运算装置信息进行变更的工程设计工具的手动选择模式2下的选择画面的其它例子的图。

具体实施方式

(实施方式)

以下,对本发明的实施方式涉及的可编程逻辑控制器(programmablelogiccontroller,以下表示为plc)1进行说明。

如图1所示,plc1包含:cpu单元100,其对plc1整体进行控制;输入单元200,其将cpu单元100的运算的输入数据供给至cpu单元100;以及输出单元300,其从cpu单元100被供给输出数据。

在输入单元200连接有包含传感器、开关等在内的检测器901。从输入单元200向cpu单元100供给从检测器901的传感器、开关等输出的接通/断开信号。

例如,输入单元200将接通信号作为检测器901的开关已接通这一情况的通知、将断开信号作为开关已断开这一情况的通知而供给至cpu单元100。在将接通信号表示为“1”、将断开信号表示为“0”的情况下,如果开关接通,则输入单元200将“1”供给至cpu单元100。如果开关断开,则输入单元200将“0”供给至cpu单元100。

在输出单元300连接有包含致动器、指示灯等在内的被控制设备902。从cpu单元100向输出单元300供给对被控制设备902的致动器、指示灯等进行控制的接通/断开信号。

例如,cpu单元100将接通信号作为对被控制设备902的致动器进行驱动的指示、将断开信号作为使致动器停止的指示而供给至输出单元300。在将接通信号表示为“1”、将断开信号表示为“0”的情况下,cpu单元100为了对致动器进行驱动,将“1”供给至输出单元。cpu单元100为了使致动器停止,将“0”供给至输出单元。

cpu单元100、输入单元200和输出单元300经由共享总线400而连接,经由共享总线400而进行通信。另外,虽然未图示,但cpu单元100、输入单元200和输出单元300经由基本单元而与电源单元连接,通过从电源单元供给的电源而进行动作。

cpu单元100包含:存储部110,其存储各种数据;工具接口120,其用于与后述的工程设计工具500之间的通信;共享总线接口130,其用于经由共享总线400的通信;以及运算部140,其具有asic(applicationspecificintegratedcircuit)141、微处理器142(以下,称为mpu142)和fpga(fieldprogrammablegatearray)143作为运算装置。cpu单元100的各部分经由总线190而连接。fpga143是可编程逻辑设备的一个例子。

存储部110包含rom(readonlymemory)、ram(randomaccessmemory)、存储卡等。存储部110储存用户程序111。

用户程序111是用于对被控制设备902进行控制的程序。用户使用后述的工程设计工具500而创建用户程序111。创建出的用户程序111在被变换为助记方式的汇编语言之后,被上传至plc1的cpu单元100,储存于存储部110。在用户程序111中,通过接通/断开信号的输入,从而各命令成为接通或断开的状态。要执行的仅是成为接通状态的命令。

用户程序111内的各命令中作为表示该命令是由运算部140的哪个运算装置执行的信息而包含运算装置信息。例如,设为asic141由“1”表示,mpu142由“2”表示,fpga143由“3”表示,表示这些值的位串被追加至各命令。在本实施方式中,对于决定为由asic处理的特定的命令,无法变更运算装置信息。

工具接口120是用于cpu单元100与工程设计工具500进行通信的接口。工具接口120按照运算部140的控制而进行动作。

共享总线接口130是用于cpu单元100经由共享总线400而与输入单元200、输出单元300进行通信的通信接口。共享总线接口130按照运算部140的控制而进行动作。

运算部140使用从输入单元200供给的输入数据而执行用户程序111的各命令。更具体而言,由用户程序111内的各命令的运算装置信息所指定的运算装置执行该命令。输入数据是表示由检测器901的传感器、开关等输出的接通/断开信号的值。运算部140仅执行通过接通信号而成为接通状态的命令,基于运算而得到的输出,将接通/断开信号供给至输出单元300。输出单元300按照供给来的接通/断开信号而对被控制设备902进行控制。

asic141具有寄存器1411和程序计数器1412,该寄存器1411在命令的执行时临时地储存数据,该程序计数器1412储存接下来应执行的命令的地址。asic141在用户程序111的执行中,仅处理特定的命令。这是因为asic141只能执行在设计阶段所决定的特定的命令。将该特定的命令称为asic兼容命令。另外,将用户程序111的除了asic兼容命令以外的命令称为asic不兼容命令。

mpu142具有在命令的执行时临时地储存数据的寄存器1421。mpu142处理asic不兼容命令中的被选择为由mpu142进行处理的命令。

fpga143具有在命令的执行时临时地储存数据的寄存器1431。fpga143处理asic不兼容命令中的被选择为由fpga143进行处理的命令。对于fpga143而言,在制造之后,用户能够变更fpga143的逻辑电路的结构。例如,在通过用户程序111的变更而对用户程序111追加新命令,该命令不是asic兼容命令的情况下,asic141无法执行所追加的新命令。另一方面,fpga143能够通过逻辑电路的结构的变更而执行新追加的命令。mpu142也与fpga143同样地,能够执行asic不兼容命令,但关于处理速度,fpga143更高速。

对于由mpu142执行的命令和由fpga143执行的命令的选择方法,将在后面叙述。

输入单元200包含:存储部210,其存储各种数据;共享存储器220,其用于与cpu单元100之间的数据交换;共享总线接口230,其用于经由共享总线400的通信;以及mpu240,其对输入单元200整体进行控制。输入单元200的各部分经由总线290而连接。

存储部210包含rom、ram、存储卡等。存储部210储存用于输入单元200的动作的动作程序211。

共享存储器220是cpu单元100、输入单元200都能够读写的存储器。在共享存储器220中,储存表示由检测器901的传感器、开关等输出的接通/断开信号的值。

共享总线接口230是用于输入单元200经由共享总线400而与cpu单元100进行通信的通信接口。共享总线接口130按照mpu240的控制而进行动作。

mpu240执行动作程序211,将由检测器901的传感器、开关等检测到某对象物的状态设为接通,将未检测到某对象物的状态设为断开,将表示检测到的接通或断开的值储存于共享存储器220。该值成为通过cpu单元100进行的运算中的输入的接通/断开信号。

输出单元300包含:存储部310,其存储各种数据;共享存储器320,其用于与cpu单元100之间的数据交换;共享总线接口330,其用于经由共享总线400的通信;以及mpu340,其对输出单元300整体进行控制。输出单元300的各部分经由总线390而连接。

存储部310包含rom、ram、存储卡等。存储部310储存用于输出单元300的动作的动作程序311。

共享存储器320是cpu单元100、输出单元300都能够读写的存储器。在共享存储器320中,储存表示cpu单元100的运算的输出即接通/断开信号的值。该值是用于对被控制设备902的致动器、指示灯等进行控制的控制数据,由cpu单元100写入至共享存储器320。

共享总线接口330是用于输出单元300经由共享总线400而与cpu单元100进行通信的通信接口。共享总线接口330按照mpu340的控制而进行动作。

mpu340执行动作程序311,基于从cpu单元100供给的接通/断开信号而对被控制设备902进行控制。例如,在供给了接通信号的情况下,mpu340使被控制设备902的致动器接通。

如上所述,用户使用工程设计工具500而创建cpu单元100所要执行的用户程序111。创建出的用户程序111在通过通信线缆501而连接了工程设计工具500和cpu单元100的状态下,被上传至cpu单元100。

工程设计工具500是在个人计算机中安装了程序创建用应用程序的装置。工程设计工具500包含:存储部510,其存储各种数据;操作输入部520,其接收用户的操作;显示部530,其将图像显示于显示装置;工具接口540,其用于与cpu单元100之间的通信;以及cpu550,其对工程设计工具500整体进行控制。工程设计工具500的各部分通过总线590而连接。

存储部510包含操作系统511、程序创建应用程序512。操作系统511是用于对工程设计工具500整体进行控制的程序。程序创建应用程序512是用于创建用户程序111,对创建出的用户程序111的各命令的运算装置进行选择的程序。

操作输入部520包含键盘、鼠标等输入装置,接收来自用户的操作输入,将基于接收到的操作的信号输出至cpu550。显示部530包含图像显示装置,按照cpu550的控制而将图像输出至图像显示装置的画面。操作输入部520和显示部530作为接收用户的指示的接收部起作用。

工具接口540按照cpu550的控制,与通过通信线缆501而连接的cpu单元100之间进行数据的发送接收。

cpu550执行操作系统511,对工程设计工具500整体进行控制。另外,cpu550执行程序创建应用程序512,实现创建用户程序111的功能、针对用户程序111内的各命令而变更运算装置的选择的功能。

上述cpu单元100如下所述执行用户程序111。cpu单元100将用户程序111从开头的命令开始依次进行处理,如果读入表示程序结束的end命令,则再次向开头的命令的处理返回。将该方法称为扫描方式。

cpu单元100除了执行用户程序111的各命令以外,还进行各命令的执行所需的输入的取得和命令的执行结果的输出。具体地说,如图2所示,cpu单元100的运算部140将刷新处理(步骤s11)、程序的执行(步骤s12)、结束处理(步骤s13)的一系列处理作为1个循环而执行,重复该循环。

在步骤s11的刷新处理中,首先,运算部140将在存储部110储存的、在上个循环中执行用户程序111而得到的输出数据写入至输出单元300的共享存储器320。然后,从存储部110删除该输出数据。然后,运算部140经由共享总线400而从输入单元200的共享存储器220读取输入数据,将读取到的输入值储存于存储部110。

在步骤s12的程序的执行中,运算部140将用户程序111的命令从最初开始依次读取,执行读取到的命令。在本实施方式中,asic141处理asic兼容命令,mpu142或fpga143处理asic不兼容命令。运算部140如果读取到表示用户程序111的程序结束的end命令,则结束用户程序111的执行。由mpu142或fpga143进行的asic不兼容命令的处理是由本发明的微处理器或可编程逻辑设备中的任一者对命令进行处理的步骤的一个例子。

在步骤s13的结束处理中,cpu单元100执行与经由网络而同其它设备进行通信的未图示的网络单元之间的数据传输处理、其它的共通处理。

在本实施方式中,asic141、mpu142、fpga143分担地处理用户程序111的命令。以下,对图2的步骤s12的程序的执行的步骤中的asic141、mpu142、fpga143的动作更详细地进行说明。

设为在asic141的程序计数器1412中储存有用户程序111的最初的命令的地址。

如图3所示,asic141将由程序计数器1412的地址表示的命令从用户程序111读取至寄存器1411(步骤s121)。asic141一并使程序计数器1412的地址进行递增。因此,在程序计数器1412中,设定指示下一条命令的地址。

asic141判别读取到的命令是否为end命令(步骤s122)。如果判别为不是end命令(步骤s122:no),则asic141判别读取到的命令是否为asic兼容命令(步骤s123)。具体地说,判别该命令所包含的表示运算装置信息的位串是否为表示asic141的位串。

asic141如果判别为读取到的命令是asic兼容命令(步骤s123:yes),则执行该命令(步骤s124)。接下来,asic141将在程序计数器1412中设定的地址的命令读取至寄存器1411(步骤s121)。

在步骤s123中,如果asic141判别为读取到的命令不是asic兼容命令(步骤s123:no),则asic141在向mpu142输出中断命令之后,保留程序计数器1412的值,停止。

mpu142如果从asic141接收到中断命令,则将在asic141的寄存器1411储存的命令读取至自身的寄存器1421。mpu142基于读取到的命令的运算装置信息而判别该命令是否为被选择为由mpu142进行处理的命令(步骤s125)。mpu142如果判别为该命令是被选择为由mpu142进行处理的命令(步骤s125:yes),则执行该命令(步骤s126)。然后,mpu142为了重启asic141,对asic141的寄存器1411写入指示重启的值。由此,asic141重启,将在程序计数器1412中保留的地址所表示的命令读取至寄存器1411(步骤s121),重新开始命令的执行。

另一方面,mpu142如果判别为在步骤s125中读取到的命令不是被选择为由mpu142进行处理的命令(步骤s125:no),则将该命令写入至fpga143的寄存器1431,使fpga143执行该命令(步骤s127)。fpga143执行在自身的寄存器1431中储存的命令,将表示运算已结束这一情况的返回值写入至寄存器1431。如果返回值被写入至寄存器1431,则mpu142为了重启asic141,对asic141的寄存器1411写入指示重启的值。由此,asic141将在程序计数器1412中保留的地址所表示的命令读取至寄存器1411(步骤s121),重新开始命令的执行。

另外,在步骤s122中,asic141如果判别为读取到的命令是end命令(步骤s122:yes),则结束用户程序111的执行。

然后,cpu单元100执行图2的步骤s13的结束处理。

如上所述,根据在运算装置信息中设定的值,由mpu142或fpga143处理asic不兼容命令。在用户程序创建时,在所有的asic不兼容命令的运算装置信息中,设定有表示mpu142的值而作为默认值。

以下,对使用工程设计工具500而变更asic不兼容命令的运算装置信息的方法进行说明。

首先,用户对键盘、鼠标等操作输入部520进行操作,启动工程设计工具500的程序创建应用程序512。用户从显示部530所显示的如图4所示这样的菜单画面选择“用户程序的创建”菜单,使未图示的程序创建画面显示于显示部530。用户在未图示的程序创建画面上创建用户程序111,保存用户程序111。创建出的用户程序111被储存于工程设计工具500的存储部510。

接下来,用户对操作输入部520进行操作,再次使如图4所示的菜单画面显示于显示部530。用户选择“运算装置的选择”菜单,使如图5所示这样的子菜单画面显示于显示部530。

如图5所示,在运算装置的选择的子菜单中,有“自动选择模式”、“手动选择模式1”、“手动选择模式2”。在自动选择模式中,工程设计工具500对用户程序111进行分析,由fpga143执行,从而作为由fpga143执行的命令而选择有望高速化、性能提高的命令,在选择出的命令的运算装置信息中设定表示fpga143的值。在手动选择模式1、2中,由用户选择各命令的运算装置。

(自动选择模式)

在执行自动选择模式的情况下,用户在子菜单画面中,选择任意的用户程序111作为对象程序,指定“自动选择模式”。在图示的例子中,选择了“程序001”作为用户程序111。

如果选择“自动选择模式”,则工程设计工具500的cpu550执行程序创建应用程序512而进行下述处理。

这里,预先在存储部510中储存有下述信息。

(1)asic不兼容命令的数量:n1。该值是全部asic不兼容命令的种类的数量。无关于是否包含在用户程序111即“程序001”内。

(2)fpga143的总门数:gfpga。该值是基于fpga143的硬件规格的值。

(3)各命令的处理所使用的fpga143的门数(使用门数):gn(n=1,2,…,n1)。

(4)对于各命令,通过使用fpga143而能够削减的时间(可削减时间):tn(n=1、2、…、n1)。这里。设为mpu142的针对命令的处理时间与fpga143的针对该命令的处理时间之差。可削减时间是本发明的可编程逻辑设备针对各命令的处理时间的一个例子。另外,上述(2)、(3)、(4)是本发明的可编程逻辑设备的定义信息的一个例子。

如图6所示,对n1个种类的命令各自在用户程序111内被调用的次数(调用数)cn(n=1、2、…、n1)进行计数(步骤s21)。

对于各命令,求出fpga143的每1个门的处理时间(步骤s22)。这里,使用下面的式(1)。

关于各命令的每1个门的处理时间pn=可削减时间tn×在步骤s21中求出的调用数cn÷使用门数gn(n=1、2、…、n1)···式(1)

通过在步骤s22中求出的与各命令相关的每1个门的处理时间pn而对命令进行排序(步骤s23)。这里,降序地进行排序。

从每1个门的处理时间pn最大的命令开始,依次将该命令的使用门数gn相加。在使用门数gn的合计不超过fpga143的总门数gfpga的期间,继续相加。

具体地说,首先,将计数器i设定为“1”,将在步骤s23中排序后的第i个命令的使用门数gn设定为合计值s而作为当前的gi(步骤s24)。

接下来,判别合计值s是否比总门数gfpga大(步骤s25)。如果判别为合计值s小于或等于总门数gfpga(步骤s25:no),则在第i个命令的运算装置信息中设定fpga143(步骤s26)。使计数器i递增,将当前合计值s与第i条命令的使用门数gi相加而得到的值设为新合计值s(步骤s27)。再次返回步骤s25。

在步骤s25中,如果判别为合计值s比gfpga大(步骤s25:yes),则结束处理。

通过上述处理,cpu550在作为由fpga143执行的命令而选择出的命令的运算装置信息中设定fpga143。另一方面,不更新未作为由fpga143执行的命令而选择的命令的运算装置信息。这样,cpu550作为判别部和更新部起作用,其中,该判别部对由fpga143处理的命令和不由fpga143处理的命令进行判别,该更新部对判别为由fpga143处理的命令的命令的运算装置信息进行更新。作为由fpga143进行处理的命令而被选择的命令是本发明的第1命令的一个例子。不由fpga143处理的命令是本发明的第2命令的一个例子。

如果自动选择模式下的处理结束,则用户对操作输入部520进行操作,再次显示图5所示的子菜单画面。用户为了将更新后的程序001上传至cpu单元100,在子菜单画面中选择“程序的上传”。此外,设为工程设计工具500与cpu单元100预先通过通信线缆501而连接。如果选择“程序的上传”,则cpu550将在存储部510中储存的用户程序111即“程序001”传输至cpu单元100的存储部110。这样,cpu550作为将更新了运算装置信息的用户程序111传输至cpu单元100的传输部起作用。

在上述自动选择模式中,基于表示相同的asic不兼容命令在用户程序111内被调用的次数的同一asic不兼容命令的调用数、各命令的每1次的处理时间、使用的门数而进行分析,从每1个门的处理时间大的命令开始,依次作为由fpga143执行处理的命令而进行选择。通过将处理负载大的命令分配给fpga143,从而能够实现plc1的动作的高速化。

在上述自动选择模式中,分析用户程序111,选择由fpga143执行的命令,但在以下的手动选择模式1中,用户自身能够选择各命令的运算装置。

(手动选择模式1)

在执行手动选择模式1的情况下,用户对操作输入部520进行操作,显示图5的子菜单画面,在子菜单画面中,选择任意的用户程序111作为对象程序,指定“手动选择模式1”。

如果选择“手动选择模式1”,则工程设计工具500的cpu550将图7所示这样的选择画面显示于显示部530。在该画面中,显示在用户程序111内被调用的asic不兼容命令的一览。这里,显示在用户程序111内被调用的asic不兼容命令的一览、表示各命令在用户程序111内被调用的次数的调用次数、表示由执行1次各命令产生的负载的资源负载、以及各命令的当前的执行部。执行部的值表示执行该命令的运算装置是mpu142和fpga143中的哪一个。在执行部是“s/w”的情况下,表示mpu142对命令进行处理。在执行部为“h/w”的情况下,表示fpga143对命令进行处理。在手动选择模式1中,mpu142或fpga143中的被指定的任一运算装置处理所有相同的asic不兼容命令。例如,在将命令a的执行部从“s/w”更新为“h/w”的情况下,fpga143处理用户程序111内的所有命令a。

用户变更所选择的命令的执行部的值,选择画面下部的“保存”,保存变更内容。因此,针对用户程序111内的各命令,cpu550通过所选择的执行部的值而更新运算装置信息。例如,用户将命令a的执行部从“s/w”变更为“h/w”,选择“保存”。在这种情况下,用户程序111内的所有命令a的运算装置信息被更新为表示fpga143的值。

如果手动选择模式1下的处理结束,则用户与自动选择模式时同样地,在图5所示的子菜单画面上选择“程序的上传”,将变更了运算装置信息的用户程序111上传至cpu单元100。

另外,在图7所示的画面中,一并显示各命令的调用次数、资源负载。因此,用户能够在考虑了各命令的调用次数、资源负载的基础上,选择由mpu142和fpga143中的哪一个运算装置处理该命令。

用户程序111的各命令仅在接通的情况下被执行,因而例如用户程序111所包含的命令a并非全部在1个循环内得到执行。也存在上述这样的实际情况,知晓现场状况的用户选择由mpu142和fpga143的哪一个运算装置而处理各命令,这种方式能够进行更合适的选择。

在上述手动选择模式1中,mpu142或fpga143中的被指定的任一运算装置处理所有相同的asic不兼容命令。因此,在选择内容没有变更的期间,即使多次调用该命令,执行该命令的也是mpu142或fpga143中的被选择的那一者。在接下来进行说明的手动选择模式2中,具有能够进行更细致的选择的结构。

(手动选择模式2)

接下来,对手动选择模式2进行说明。用户对操作输入部520进行操作,显示图5的子菜单画面。用户在子菜单画面中,选择“程序001”作为被设为对象的用户程序,选择“手动选择模式2”作为选择模式。

如果选择“手动选择模式2”,则工程设计工具500的cpu550如图8所示,在显示部530显示用户选择出的程序001的梯形图和各命令的执行部。与手动选择模式1同样地,执行部的值表示执行该命令的运算装置是mpu142和fpga143中的哪一个。在图示的例子中,单独选择用户程序111内的所有命令的运算装置。在上述手动选择模式1中,设定为所有相同的asic不兼容命令由mpu142或fpga143中的一个运算装置进行处理。与此相对,在手动选择模式2中,即使在用户程序111内相同的asic不兼容命令被多次调用,也单独指定各asic不兼容命令的运算装置。例如,即使是相同的命令a,也能够指定为使最开始被调用的命令a由mpu142执行,使下一条被调用的命令a由fpga143执行。

用户变更所选择出的命令的执行部的值,选择画面下部的“保存”,保存变更内容。因此,cpu550针对用户程序111内的各命令,通过选择出的执行部的值而更新运算装置信息。

如果手动选择模式2下的处理结束,则用户与自动选择模式时同样地,在图5所示的子菜单画面上选择“程序的上传”,将变更了运算装置信息的用户程序111上传至cpu单元100。

在手动选择模式2中,与手动选择模式1同样地,也具有以下这样的优点。用户程序111的各命令仅在接通的情况下被执行,因而用户程序111所包含的全部命令并非是在1个循环内执行的。也存在上述这样的实际情况,知晓现场状况的用户能够选择由mpu142和fpga143中的哪一个运算装置而处理各命令,能够进行更合适的选择。

如以上所说明的那样,在本发明的实施方式涉及的plc1中,在asic不兼容命令所包含的运算装置信息中设定表示mpu142或fpga143的信息。在程序的执行时,运算装置信息所表示的运算装置对命令进行处理。另外,能够使用工程设计工具500对运算装置信息进行变更。通过具有这样的结构,从而用户不需要在程序创建时去考虑执行各处理的运算装置,能够在程序创建之后选择运算装置。进而,不需要大幅度的程序修改就能够变更运算装置。

并且,就上述实施方式涉及的结构而言,能够期待以下这样的有利效果。

在自动选择模式中,基于相同的asic不兼容命令在用户程序111内的调用数、各命令的每1次的处理时间、各命令的执行所使用的门数而进行分析,将处理负载大的命令分配给fpga143,从而能够实现plc1的动作的高速化。另外,即使用户自身不进行设定,也能够选择合适的运算装置,因此即使是没有硬件知识的用户,操作也容易。

在修改了用户程序111的情况下,只要在自动选择模式下再次执行运算装置的选择处理,将更新了运算装置信息的用户程序111上传至cpu单元100即可,操作容易。另外,即便没有变更用户程序111,在变更了fpga143的规格的情况下,在通过其它规格不同的cpu单元100而执行创建出的用户程序111的情况下,只要在将上述(1)~(4)的各种参数储存于工程设计工具500的存储部510的基础上,在自动选择模式下再次执行运算装置的选择处理即可。这样,能够选择合适的运算装置。

在自动选择模式中,根据fpga143的规格而分析各个用户程序111,因此能够实现与执行环境对应的运算装置的合适选择。

另外,由于分析处理是在工程设计工具500中进行的,因此不会影响执行时的plc1的性能。

在手动选择模式1及2中,通过由知晓现场状况的用户选择对各命令进行处理的运算装置,从而能够进行比自动选择模式更合适的选择。在手动选择模式1及2中,同样地,能够在用户程序111的创建之后变更运算装置,因而在用户程序111的创建时不需要去考虑运算装置。同样地,在变更用户程序111时,也在修改用户程序111之后,再次进行运算装置的选择即可,因此在用户程序111的变更时也不需要去考虑运算装置。另外,由于能够使用工程设计工具500而容易地对运算装置信息进行变更,因此在通过其它规格不同的cpu单元100而执行创建出的用户程序111的情况下,也能够反复多次进行运算装置的选择,直到能够选择出最佳的运算装置为止。

另外,能够使用手动选择模式1而评价plc1的性能。例如,对于1条命令,可以分别测量由mpu142进行处理的情况下的处理时间、由fpga143进行处理的情况下的处理时间,求出实际处理时间之差。对于各命令,事先创建运算装置的实际处理时间的统计数据。基于该统计数据,能够在手动选择模式1或手动选择模式2中,针对每条命令而选择运算装置。

另外,在手动选择模式下,也能够仅使特定的部位处的某条命令通过mpu142或fpga143中的与用户程序111内的其它命令不同的运算装置来执行。这样,也能够用于发现用户程序111的错误。

在手动选择模式1的选择画面中,如图9所示,也可以一并显示梯形图。用户能够确认命令在用户程序111内的何处被调用,用户能够将这一点也考虑在内而选择运算装置。

在手动选择模式2的选择画面中,并非如图8所示仅显示梯形图,也可以如图10所示,将命令的一览、调用次数、执行该命令的情况下的资源的负载一并显示。

在上述自动选择模式中,作为可编程逻辑设备针对各命令的处理时间的一个例子,使用了通过使用fpga143而能够削减的时间。或者,也可以使用可编程逻辑设备针对各命令的处理时间的实际测量值。或者,也可以使用作为可编程逻辑设备针对各命令的处理时间而在理论上预测的值。

如上所述,自动选择模式下的运算装置的选择方法是从每1个门的处理时间大的命令开始依次分配给fpga143,但不限于该方法。例如,也可以从将用户程序111内的各命令的调用次数与可编程逻辑设备针对各命令的处理时间相乘而得到的值大的命令开始,依次分配给fpga143。或者,也可以从将用户程序111内的各命令的调用次数、可编程逻辑设备针对各命令的处理时间、各命令所使用的门数相乘而得到的值大的命令开始,依次分配给fpga143。或者,也可以单纯地从调用次数多的命令开始依次或者从可编程逻辑设备针对各命令的处理时间大的命令开始依次分配给fpga143。

作为记录上述程序的记录介质,可以使用包含usb存储器、软盘、cd、dvd、blu-ray(注册商标)、mo、sd卡、记忆棒(注册商标)、以及磁盘、光盘、光磁盘、半导体存储器、磁带的计算机可读取的记录介质。

本发明能够在不脱离广义的精神和范围的情况下,实现各种实施方式以及变形。另外,上述实施方式用于对本发明进行说明,并不限定本发明的范围。即,本发明的范围不是由实施方式而是由权利要求书示出的。并且,在权利要求书内及与其等同的发明的意义的范围内实施的各种变形被视为处在本发明的范围内。

标号的说明

1plc,100cpu单元,110存储部,111用户程序,120工具接口,130共享总线接口,140运算部,141asic,1411寄存器,1412程序计数器,142mpu,1421寄存器,143fpga,1431寄存器,190总线,200输入单元,210存储部,211动作程序,220共享存储器,230共享总线接口,240mpu,290总线,300输出单元,310存储部,311动作程序,320共享存储器,330共享总线接口,340mpu,390总线,400共享总线,500工程设计工具,501通信线缆,510存储部,511操作系统,512程序创建应用程序,520操作输入部,530显示部,540工具接口,550cpu,590总线,901检测器,902被控制设备

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