开发支持装置 【技术领域】
本发明涉及梯形图程序(ladder program)的开发支持装置。
背景技术
作为工厂自动化(FA)的控制装置,使用可编程控制器(PLC)。该PLC由多个单元构成。即,电源供给源的电源单元、统一控制PLC全体的CPU单元、安装在FA的生产装置和设备装置的适当位置的开关和输入传感器的信号的输入单元、对致动器等输出控制输出的输出单元、用于连接到通信网络的通信单元等各种单元适当组合而构成。
PLC地CPU单元中的控制如下:将由输入单元输入的信号读取到CPU单元的I/O存储器中(IN更新),基于由预先注册的梯形图语言组成的用户程序进行逻辑运算(运算执行),将该运算执行结果写入I/O存储器并发送到输出单元中(OUT更新),之后,循环地重复执行所谓周边处理。
上述用户程序通常为使用开发支持装置生成的梯形图程序,经由通信线路下载到PLC的CPU单元。而且,在制作的梯形图程序中产生缺陷时,用户在开发支持装置的显示画面中显示该梯形图程序并验证,发现不良位置并进行修正工作。然后,将已修正的梯形图程序下载到PLC中。
梯形图程序的调试(debug)的作业,以进行了设想外的工作的输出命令的操作数(接点号和存储器号)作为键(key),搜索与该输出命令关联的输入命令或者输出命令,重复修正、编辑梯形图程序。接点号是表示输入单元的端子台的端子位置的端子号,或者表示输出单元的端子台的端子位置的端子号。存储器号是可编程控制器内的IO数据存储器的地址值。此时,对于调试作业者来说,搜索与进行了设想以外的工作的输出命令关联的输入命令或者输出命令是烦杂的。例如,在某一输出命令中存在问题的情况下,与该输出命令关联的输入命令有多个的情况下,需要全部检查这些多个输入命令,搜索处理烦杂。而且,包含具有与上述输出命令相同的操作数的输出命令的程序部分存在的情况下,修正了与成为问题的输出命令有关系的程序之后,需要确认该程序也正常地工作,没有疏漏应确认的命令地全部检查的情况非常烦杂。而且,梯形图程序越长,该问题越显著。
【发明内容】
本发明的目的在于提供一种开发支持装置,简单地检测包含对其它命令产生影响的输出命令的程序的构成元素并显示包含该构成元素的程序,可以提取并显示与该构成元素有关系的其它的构成元素,容易地进行用户程序的调试。
本发明的开发支持装置例如应用于编辑下载到可编程控制器的梯形图程序等。作为具体的结构设置:程序存储部件,存储梯形图程序;概要(outline)信息生成部件,从头开始依次扫描存储于程序存储部件中的梯形图程序的构成元素,至少提取包含输出命令的规定的构成元素,生成对该提取的构成元素按在梯形图程序上的出现顺序附加了固有的索引号的概要信息;概要信息存储部件,存储概要信息;梯形图显示部,在显示画面上显示所述梯形图程序;以及概要信息显示部,将存储于概要信息存储部件中的构成元素按所述出现顺序显示为树状;从而联合概要显示部中显示的构成元素和梯形图显示部中显示的梯形图程序。
这样,由于包含输出命令的规定的构成元素按在程序上的出现顺序被显示在概要信息显示部,所以通过观看该被显示的构成元素,可以识别在梯形图程序上,规定的构成元素存在于整体的哪个位置等用户程序的概要。而且,通常的注释(comment)中,没有附加表示梯形图程序上的位置的步骤号,但在本发明中,包含注释,通过对梯形图程序的所有构成元素另外附加固有的索引号,即使在将注释设定在规定的构成元素中的情况下,也可以使用索引号取得概要信息显示部和梯形图显示部的联系。换言之,选择概要信息显示部中显示的规定的构成元素时,可以识别对该被选择的构成元素附加的索引号所对应的梯形图程序的构成元素,并将其显示在梯形图显示部中。从而,可以简单地发现目标的梯形图程序的构成元素。
本发明的开发支持装置还可以自动生成上述概要信息并注册。
进而,还可以包括相互参照信息生成部件,提取具有与梯形图显示部中显示的梯形图程序中被选择的命令相同的操作数的命令,将关于该提取出的命令的信息显示在所述显示画面上设置的相互参照信息显示部中。这样,例如,通过选择梯形图显示部中显示的梯形图程序的输出命令,在相互参照信息显示部中可以提取并显示具有与该输出命令相同的操作数的输入命令等。由此,可以作为一览表显示受到输出命令的影响的输入命令。
也可以包括在选择了相互参照信息显示部中显示的规定的命令时,检测该被选择的命令所属的用户程序,并将该被选择的命令显示在所述梯形图显示部的功能。这样,可以显示相互参照信息显示部中显示的命令所对应的实际的梯形图程序,并可以容易地识别该命令在程序上怎样影响其它的电路。
进而,存储保持关于相互参照信息显示部中显示的一个或多个命令的信息,在相互参照信息显示部中显示的信息被切换之后,已存储保持的信息可以再次显示在相互参照信息显示部中。这与实施方式中的书签功能对应。这样,通过存储临时显示的相互参照信息,可以在后简单地返回从而再显示。
在本发明中,可以在梯形图程序中简单地提取包含对其他命令产生影响的输出命令的规定的程序构成元素,并显示在概要显示部中。而且,通过设置相互参照信息生成部件,可以提取并显示具有与该输出命令相同的操作数的其它的命令。由此,从多个存在的命令中搜索成为问题的命令,或者在有多个连接到有问题的输出命令的输入命令的情况下,全部搜索并检测这些多个输入命令,或者在修正了与成为问题的输出命令有关系的程序的情况下,包含具有与该输出命令相同的操作数的输入命令的程序部分正常地工作的确认可以没有疏漏,并可以容易地进行梯形图程序的调试。
【附图说明】
图1是表示本发明的一实施方式的硬件方框图。
图2是表示显示画面的一例的图。
图3是表示概要信息生成部的功能的流程图。
图4是表示梯形图显示部中显示的梯形图程序的一例的图。
图5是表示图4所示的程序的列表的图。
图6是表示概要信息显示部中显示的对于图4所示的梯形图程序的概要信息的图。
图7是表示从概要信息显示部中显示的列表跳跃到梯形图显示部中显示的梯形图程序的功能的一例的图。
图8是说明作用效果的显示画面的显示例。
图9是说明作用效果的显示画面的显示例。
图10是说明梯形图编辑器的功能的流程图。
图11是表示相互参照信息生成部的功能的流程图。
图12是说明作用效果的显示画面的显示例。
图13是说明作用效果的显示画面的显示例。
图14是表示从相互参照信息显示部中显示的命令跳跃到梯形图显示部中显示的梯形图程序的功能的一例的图。
图15是表示本发明的一实施方式的功能方框图。
【具体实施方式】
图1表示本发明的优选的一实施例。开发支持装置10和PLC(CPU单元)20经由规定的通信线路21连接。该通信线路21例如使用RS232C等串行线路直接电缆连接来实现。当然,不限于这样直接连接,也可以是使用其它的通信线路、经由网络连接PLC20和开发支持装置10的结构。开发支持装置10具有:生成由可编程控制器执行的用户程序的功能;经由通信线路2 1将生成的用户程序下载到PLC20中的功能;以及设定关于可编程控制器的工作的各种参数等的功能。用户程序是由图4那样的梯形图语言编写的程序。开发支持装置10通过在个人计算机中起动预先安装的软件来实现上述功能。其硬件结构由键盘和定点设备等输入装置11、显示装置12、中央运算装置13、存储装置14构成。存储装置14虽然未图示,但具有非易失性存储装置和易失性存储装置,非易失性存储装置存储梯形图程序和梯形图程序的概要信息、相互参照信息等。而且,适当使用易失性存储装置作为中央运算装置13执行时的工作存储器。
图15是使用图1的中央运算装置13、存储装置14实现的本发明的开发支持装置10的功能方框图。开发支持装置10包括:处理从输入装置11输入的输入处理部31;生成输出到显示装置12的显示数据的显示处理部32;执行各功能的运算部33;存储运算结果和梯形图程序等的存储部34;以及处理与PLC通信的通信处理部35。运算部33包含用户程序编辑部33a、概要信息生成部33b、相互参照信息生成部33c。而且存储部34包含用户程序编辑部34a、概要信息存储部34b、相互参照信息存储部34c。
图2表示显示装置12中显示的显示画面。如图所示,包括:梯形图显示部12a,显示梯形图程序;概要信息显示部12b,显示表示梯形图程序的结构的概要信息;以及相互参照信息显示部12c,显示关于与指定的命令的操作数具有相同的操作数的命令的信息。具体地使用图8、9、12、13等后面叙述,但在本实施例中可以分别对相当于命令的操作数的接点号和存储器号对应添加变量名,可以进行使用了变量名的程序编辑。由于可以进行使用变量名的程序编辑,所以可以在梯形图显示部、概要信息显示部、相互参照信息显示部中以变量名显示操作数。当然,也可以不使用这样的变量名而利用接点号、存储器号进行显示。
概要信息显示部12b中显示的概要信息由概要信息生成部33b生成,并存储于存储部34内的概要信息存储部34b中。而且,显示处理部32在概要信息显示部12b中显示关于梯形图显示部12a中显示的梯形图程序的概要信息。
概要信息是表示梯形图程序结构的概要的信息,从梯形图程序的开头依次提取该梯形图程序中使用的规定的构成元素。以图4所示的梯形图程序的概要信息作为一例如图6那样显示。这样,在概要信息显示部12b中显示概要信息时,从梯形图程序的开头按出现的顺序排列规定的构成元素,同时对于作为多个命令的集合体的电路部件,在右边一列缩排而显示为树状。调试作业者通过观看该概要信息,可以识别提取出的各构成元素在该梯形图程序中以什么顺序、存在于什么位置。
概要信息显示部中显示的梯形图程序的构成元素不是固定的而是可选择的。在本实施方式中,选择了输出命令、注释、结束、功能块(FB)、互锁(interlock)/互锁清零、电路部件的开始以及结束。作为其它例子,在仅选择了输出命令的情况下,仅提取梯形图程序中的输出命令,从头开始按出现顺序排列显示。
概要信息生成部13a接受概要信息生成命令后,从成为对象的梯形图程序的开头每次扫描一个构成元素,存在预先作为提取对象被选择的构成元素时,将其提取,同时依次注册,并生成具有分级结构的概要信息。图3表示概要生成部的流程图。即,从程序的开头依次扫描,如果有构成元素(S10中为“是”)则取得该构成元素(S11)。这里,取得梯形图程序中使用的所有的构成元素。然后,判断取得的构成元素是否是提取对象构成元素(S12)。在S11中取得的构成元素如果不是提取对象的构成元素则分支判断为“否”。然后,在不是对象构成元素的情况下,为了搜索下一个构成元素而继续进行扫描(S20)。在没有下一个构成元素的情况下,由于S10的分支判断为“否”,所以结束处理。
另一方面,在取得的构成元素为对象构成元素的情况下,进一步判断是电路部件还是除此以外(S12),在是电路部件以外的情况下,取得与各个构成元素对应的图标(S13)并注册到树中(S14)。
对应的图标随构成元素的种类不同而不同,各构成元素和图标的对应关系预先制成列表并注册于存储装置14中。例如在提取的构成元素为输出命令的情况下设为电灯那样的标记,在注释的情况下设为书签那样的标记。由此,识别在S13的处理中取得的命令的种类,参照上述列表取得对应的图标。而且,对于树的注册追加到当前级别的下一行。
作为注册到树中的信息,有图标、索引号、步骤号、变量名。这里,索引号是梯形图程序上唯一存在的号,各命令当然对于没有附加步骤号的注释按升序设定。调试作业者在梯形图程序内指定索引号时,可以将任意的命令、注释唯一地指定。
另一方面,取得的命令为电路部件的开始或者结束的情况下,判断是否为电路部件的开始(S15),在开始的情况下,取得电路部件的图标(S16)同时注册到树中(S17)。对该树的注册处理与S14的处理同样。之后,将树向右边缩排一行(S18)。然后,经由S20(进至下一个构成元素)返回S10。由此,对于此后检测出的构成元素的树的注册(S14的处理)被追加到该缩排的树的下面,从而电路部件所属的构成元素一目了然。
而且,取得的构成元素(命令)在电路部件的结束的情况下,S15的分支判断为“否”,所以进至S19,并解除树的缩排(S19),经由S20(进至下一个构成元素)返回S10。由此,此后检测出的构成元素(命令等)被追加到原来(缩排的前一个、即上一级)的树。
这样,从程序的开头按出现顺序扫描并处理,从而如程序上出现的顺序,可以从树的上面依次注册构成元素。接着,基于具体例说明各处理。例如,处理对象的梯形图程序成为如图4(梯形图显示)那样时,其结构要素列表成为图5那样。在各图中,圆圈数字是分别对应的对象构成元素。如图5所示,步骤号按从命令的开头出现的顺序从第0开始附加升序的号。由于附加到命令上,所以不附加到注释上。因此,在本实施方式中,如上所述,如图5所示,对程序的构成元素(命令、注释等)按出现顺序以升序附加索引号。而且,在图4中,从第9行到第15行为一个电路部件(部件名为“partsl”)。
对于与该梯形图程序对应的构成元素列表(图5)从开头的命令依次处理时,最初的构成元素(Index000000)为输入命令,所以在S12中为“否”。由于下一个Index000001的构成元素为输出命令(OUT),所以在S12中为“是”,取得对应的图标(电灯标记)(S13)并执行S14的处理,注册到树中。由此,如图6所示,在第1行中追加“图标、步骤号(000001)、变量名(b)”。下一个构成元素(无步骤号、Index000002)为注释,所以在S12中为“是”,取得对应的图标(书签标记)(S13),并执行S14的处理,注册到树中。由此,如图6所示,在第2行中追加“图标、注释”(由于没有步骤号而不显示)。
以下依次处理,例如,在Index00000A中,由于构成元素为电路部件的开始,所以通过从进行S15至S17的处理,如图6所示,在第7行中追加“电路部件名([parts1])”。然后,通过S18中的执行,由于树在右边一列中缩排,所以作为其下一个检测出的对象构成元素的Index00000B的注释(“*comment2*”)被追加到第8行中,此时,在第7行的[parts1]的下面缩排显示。通过表示电路部件的结束的Index000013的PARTS_END执行S19,并直到解除了树的缩排位置,此后检测出的构成元素全在右边一列缩排并显示。
在解除了树的缩排之后,Index000015的功能块(“FB1 inst1”)被追加到图6的第13行。然后,对于Index000017的END命令,执行S14的处理并追加到树中时,由于此后没有构成元素,所以S10的分支判断为“否”,处理结束。
如上述那样生成的概要信息存储于概要信息存储部34b中。然后,观看概要信息显示部12b中显示为树状的概要信息时,对其它的命令产生影响的输出命令和注释等按程序中的出现顺序配置,同时电路部件通过缩排显示而分级地显示,所以各构成元素的程序中的大致的存在位置等一目了然。
接着,说明梯形图显示部12a中显示的梯形图程序和概要信息显示部12b中显示的树状的概要信息的联动。即,从概要信息显示部12b中显示的树状的概要信息中选择任意的构成元素时,显示与之对应的梯形图程序的相应的构成元素。具体来说,通过执行图7所示的流程图的功能来实现该联动。
即,取得概要信息显示部12b内的光标位置的注册信息(S21)。例如用户操作定点设备等输入装置11,从而选择树状列表中任意的构成元素。于是,识别被选择的构成元素,并访问概要信息存储部34b,从概要信息中取得索引号。
接着,对显示当前梯形图显示部12a中显示的梯形图画面的显示处理部32委托跳跃(S22)。即,传递索引号。然后,如果取得了该索引号,则跳跃到梯形图显示部12a中显示的梯形图程序的相应的位置(S23)。即,以取得的索引号为键来访问梯形图程序存储部34a,并识别相应的构成元素。然后,在该构成元素显示在当前梯形图显示部12a中的情况下,将光标移动到对应的构成元素上。而且,在梯形图显示部12a中未显示的情况下,将相应的构成元素显示在梯形图显示部12a内,同时将光标移动到该构成元素上。
由此,例如,如图8所示,在概要信息显示部12b的树中,选择“步骤号:00007、变量名:Complete1”时,在梯形图显示部12a中光标也被指到对应的输出命令(变量名:Complete1)(反转显示)。在该情况下,在概要信息显示部12b的树中,选择“步骤号:00010、变量名:Complete2”时,如图9所示,在梯形图显示部12a中光标移动到对应的输出命令上(变量名:Complete2)。
接着,说明相互参照信息显示部12c中显示的相互参照信息。相互参照信息显示部12c中,选择梯形图显示部12a中显示的梯形图程序中的规定的构成元素时,提取具有与该构成元素相同的操作数(变量名)所构成的构成元素,并将其显示在相互参照信息显示部12c中。其理由是,梯形图程序编辑部33a基于通过执行图10所示的流程图而得到的信息,通过相互参照信息生成部33c执行图11所示的流程图而进行。图10中,首先在梯形图显示部12a中显示的梯形图画面上移动光标(S31)。判断被移动的光标位置是否为操作数部分(S32),在是操作数部分的情况下,将关于处于该光标位置的构成元素的程序名、步骤号、操作数(变量名)传递到相互参照信息生成部33c(S33)。
如图11所示,从梯形图程序编辑部33a取得规定的信息时(S40),判断操作数(变量名)是否是全程变量(S41)。全程变量是由多个PLC共同使用的变量。可以通过在操作数(变量名)的前面附加的路径(path)来判断是否为全程变量。例如,全程变量的路径为“工程名¥配置名¥变量名”。而且,仅由特定的PLC使用的局部变量(任务)的情况下,为“工程名¥配置名¥任务名¥变量名”。这样,根据是全程变量还是局部变量,路径有所不同,所以可以容易地判断。
在全程变量的情况下,判断是否存在由路径指定的程序(S42),如果不存在则在此结束处理,在存在的情况下,取得程序(S43)。
从开头的命令依次扫描取得的程序,并判断是否存在命令(S44)。然后,如果检测出命令则取得该命令(S45),判断该命令的操作数(变量名)和从梯形图编辑器取得的操作数(变量名)是否一致(S46)。然后,在一致的情况下,判断该程序是否处于任务执行中(S47),根据有无执行来取得对应的图标(S48、S49)。之后,注册对于该命令的相互参照信息(S50)。这里,作为注册的信息,至少是操作数(变量名)、地址、语言、路径、任务执行状态、步骤号。
在该登录后,或者S46的分支判断中操作数(变量名)不一致的情况下,进至下一个命令(S51)。处理到最后的命令时,由于S44的分支判断为“否”,所以跳至S52,并扫描下一个程序。这样,如果对于所有的程序结束了操作数(变量名)一致的命令的提取、注册处理,则由于S42的分支判断为“否”,所以结束一连串的处理。
另一方面,在不是全程变量的情况下,由于S41的分支判断为“否”,所以判断是否存在由路径指定的程序(S53),在不存在的情况下,结束处理。而在存在的情况下,对于该程序执行从S43到S51的处理,取得该程序中存在的操作数(变量名)一致的命令,同时注册关联的信息(图标、参照信息)。另外,如果扫描到了程序的最后,则S44的分支判断为“否”,在该情况下结束处理(S54)。
这些相互参照信息等存储于存储装置4内的临时文件中,同时例如,如图12所示,显示在相互参照信息显示部中。在图12中,表示由于梯形图显示部中显示的梯形图画面中的变量名为Complete1的输出命令被选择,所以作为具有相同的变量名的输入命令等,进行提取并显示四个命令的例子。
从该状态选择相互参照信息显示部12c中显示的任意的变量名(例如,如图13所示,第二行的变量名)时,在梯形图显示部12a中显示包含相应的变量名(命令)的程序。此时,通过配合光标的强调显示,可以容易地使用户理解。
用于进行该处理的功能如执行图14所示的流程那样。首先,取得相互参照信息显示部12c上的光标位置(S61)。该光标位置在图中为被选择并被反转显示的位置。然后,根据由该光标选择的变量名的路径信息搜索该变量名所属的程序(S62),并判断梯形图显示部12a中是否显示了程序(S63)。在没有显示程序的情况下,显示在S62中搜索的程序(S64)。
然后,跳至梯形图显示部12a中显示的对应的程序(S65),跳至该程序中的相应的命令位置(S66)。该S66的处理与图7中的S23的处理同样。由此,在梯形图显示部12a上显示相应的命令,同时移动光标并强调显示。
而且,对应于梯形图显示部12a中显示的梯形图程序中的被选择的构成元素(命令),由相互参照信息生成部33c每次生成并显示相互参照信息显示部12c中显示的信息。从而,当前相互参照信息显示部12c中没有显示的构成元素由梯形图显示部12a侧选择时,相互参照信息显示部12c中显示的参照信息也变化。这里,用户无法简单地返回前一个显示的信息。在实际的调试处理中,有返回前一个或前几个的请求,但以往无法满足该请求。
因此,如图2所示,在相互参照信息显示部13c的上部预置书签按钮B1、后退按钮B2、前进按钮B3。具有将单击书签按钮B1时显示的参照信息存储保持于存储装置14中的功能。存储装置14中存储保持的参照信息按存储的顺序被附加号码。由此,在选择执行后退按钮B1的每一次,参照号码,并从存储装置14调用当前显示的参照信息的前一个所显示(存储)的参照信息。而且,通过单击前进按钮B3,参照号码,并从存储装置14调用当前显示的相互参照信息的下一个所显示(存储)的相互参照信息。
这样,可以依次显示相互参照信息的显示经历,并可以简单地观察要求的相互参照信息,所以可以容易地进行梯形图程序的调试作业。