CN117136342A - 开发支持装置、开发支持装置的控制方法、信息处理程序以及记录介质 - Google Patents

开发支持装置、开发支持装置的控制方法、信息处理程序以及记录介质 Download PDF

Info

Publication number
CN117136342A
CN117136342A CN202280027595.2A CN202280027595A CN117136342A CN 117136342 A CN117136342 A CN 117136342A CN 202280027595 A CN202280027595 A CN 202280027595A CN 117136342 A CN117136342 A CN 117136342A
Authority
CN
China
Prior art keywords
segment
segments
program
development support
relationship
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202280027595.2A
Other languages
English (en)
Inventor
玉嶋大辅
岩村慎太郎
清水俊介
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Omron Corp filed Critical Omron Corp
Publication of CN117136342A publication Critical patent/CN117136342A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13046Display status of edited program segments: inserted, deleted, replaced
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13137Interpreter considers hierarchy of plc in system structure for programming it

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Stored Programmes (AREA)
  • Programmable Controllers (AREA)

Abstract

本发明与逻辑关系无关地以反映出“装置的工序及功能”等彼此处于包含关系的信息的形态,来管理构成程序的多个段节。开发支持装置(10)对应于用户操作,对构成程序(PG)的多个段节(SC)分别赋予确定各自所属的层级的层级编号(HN)。

Description

开发支持装置、开发支持装置的控制方法、信息处理程序以及 记录介质
技术领域
本发明涉及一种支持用户制作由控制装置所执行的程序的开发支持装置等。
背景技术
以往,已知有一种开发支持装置,用于支持使用可编程逻辑控制器(ProgrammableLogic Controller,以下简称为“PLC”)等工业用控制装置的控制系统的开发。例如,下述的专利文献1以及专利文献2中公开了一种开发支持装置:用户能够将用户程序分割为各自与调用关系(逻辑关系)无关的处理单位即多个部分程序(以下称作“段节(section)”)来管理。
现有技术文献
专利文献
专利文献1:日本公开专利公报特开2004-240592号
专利文献2:日本公开专利公报特开2004-240593号
发明内容
发明所要解决的问题
但是,如上所述的以往技术并非使用户能够与逻辑关系无关地以反映出“装置的工序及功能”等彼此处于包含关系的信息的形态来管理构成用户程序的多个段节的技术。
本发明的一实施例的目的在于,使用户能够与逻辑关系无关地以反映出“装置的工序及功能”等彼此处于包含关系的信息的形态来管理构成用户程序的多个段节。
解决问题的技术手段
为了解决所述问题,本发明的一实施例的开发支持装置支持用户制作由控制装置所执行的程序,其中,所述程序被分割为多个段节,所述多个段节是各自与调用关系无关地由用户所设定的处理单位,所述多个段节各自对应于在所述程序中的记载位置而按照所述记载位置由上往下的顺序依次执行,所述开发支持装置包括:受理部,受理对所述多个段节之间设定层级关系的用户操作;以及层级管理部,根据所述层级关系,对所述多个段节分别赋予确定各自所属的层级的信息。
为了解决所述问题,本发明的一实施例的控制方法为开发支持装置的控制方法,所述开发支持装置支持用户制作由控制装置所执行的程序,其中,所述程序被分割为多个段节,所述多个段节是各自与调用关系无关地由用户所设定的处理单位,所述多个段节各自对应于在所述程序中的记载位置而按照所述记载位置由上往下的顺序依次执行,所述控制方法包括:受理步骤,受理对所述多个段节之间设定层级关系的用户操作;以及层级管理步骤,根据所述层级关系,对所述多个段节分别赋予确定各自所属的层级的信息。
发明的效果
根据本发明的一实施例,起到下述效果:用户能够与逻辑关系无关地以反映出“装置的工序及功能”等彼此处于包含关系的信息的形态来管理构成程序的多个段节。
附图说明
图1是表示本发明的实施方式1的开发支持装置的主要部分结构的框图。
图2是表示包含图1的开发支持装置的控制系统的整体概要的图。
图3是表示由用户对多个段节之间设定的层级关系的一例的图。
图4是说明提高或降低段节的层级的用户操作的图。
图5是表示图1的开发支持装置保存于存储部中的段节表的结构例的图。
图6是图1的开发支持装置所执行的“对多个段节之间设定层级关系的处理”的流程图。
图7是对于折叠显示以及展开显示各自说明其一例的图。
图8是除了存在错误的段节以外,还强调显示相对于此段节属于上位层级的段节的示例。
图9是说明以段节群为单位来变更位置的用户操作的一例的图。
图10是说明以段节群为单位来执行复制&粘贴的用户操作的一例的图。
图11是表示显示程序更新前后的比较结果的图像例的图。
具体实施方式
〔实施方式1〕
以下,基于图1至图11来说明本发明的一方面的实施方式(以下也称作“本实施方式”)。另外,图中对于相同或相当的部分标注相同符号而不再重复其说明。本实施方式中,例如将开发支持装置10设为支持用户制作由可编程逻辑控制器(Programmable LogicController,PLC)20(控制装置)所执行的程序PG(例如用户程序)的开发支持装置的典型例来进行说明。
以下的说明中,设“m”、“n”、“p”、“q”、“x”、“y”、“z”各自表示“0”以上的整数。而且,设“m”与“n”为互不相同的整数,“p”与“q”为互不相同的整数,“x”、“y”与“z”为互不相同的整数。
而且,在必须将多个段节SC彼此区分的情况下,对符号附上“(1)”、“(2)”、“(3)”、…、“(z)”等后缀来加以区分。例如记载为“段节SC(1)”、“段节SC(2)”、“段节SC(3)”、…、“段节SC(z)”来加以区分。在无须特别区分多个段节SC的各者的情况下简称作“段节SC”。关于层级编号HN、记载位置PS、执行顺序EO等也同样。
为了便于理解本发明的一形态的开发支持装置10,首先使用图2来说明包含开发支持装置10的控制系统1的概要。
§1.适用例
(控制系统的整体概要)
图2是表示包含开发支持装置10的控制系统1的整体概要的图。控制系统1为包含作为主机装置的PLC 20和经由网络(现场网络60)连接于主机装置的一个以上的从机装置40的主从控制系统。在对经由现场网络60的数据传输进行管理的含义上,PLC 20被称作“主机装置”。
在多个PLC 20连接于现场网络60的情况下,也有时任一个PLC 20成为主机装置,而剩余的PLC 20成为从机装置。而且,也可为,与PLC 20以及从机装置40均不同的控制主体成为主机装置。即,“主机装置”以及“从机装置”是着眼于现场网络60上的数据传输的控制功能而定义,对于在各装置间收发何种信息并无特别限定。
PLC 20进行控制系统1的整体控制。具体而言,PLC 20经由从机装置40获取来自为传感器等输入机器的设备50的信息以作为输入数据。PLC 20通过预先装入的用户程序来执行使用所获取的输入数据的运算处理。PLC 20执行所述运算处理,决定对为致动器等输出机器的设备50的控制内容,并将与所述控制内容对应的控制数据经由从机装置40而输出至设备50。
现场网络60对PLC 20所接收或PLC 20所发送的各种数据进行传输。现场网络60例如为以太网控制自动化技术(EtherCAT(CAT:Control Automation Technology))(注册商标)、普洛福奈特(PROFINET)(注册商标)、麦恰特罗林克(MECHATROLINK)(注册商标)-III、帕瓦林克(Powerlink)、赛罗考斯(SERCOS)(注册商标)-III、CIP毛替奥(CIP Motion)。而且,现场网络60例如也可为以太网/工业协议(EtherNet/IP)(注册商标)、设备网(DeviceNet)、空泡网(CompoNet)(注册商标)等。另外,以下,对控制系统1进行说明,所述控制系统1通过在现场网络60上依次转发数据帧,从而在PLC 20与从机装置40之间或者在多个从机装置40之间收发数据。
从机装置40是将PLC 20设为主机装置的网络(现场网络60)中的从机装置,例如是对与设备50的通信进行管理的通信耦合器等设备通信管理单元。从机装置40也可为直接连接于现场网络60的伺服驱动器。
设备50例如为传感器等输入机器,而且,例如为致动器等输出机器。一个以上的设备50经由通信线缆连接于从机装置40。
开发支持装置10例如经由为通用串行总线(Universal Serial Bus,USB)线缆的通信线缆而连接于PLC 20。开发支持装置10是用于生成由PLC 20所执行的用户程序、以及对控制系统1的各种设定信息等的信息处理装置。
开发支持装置10例如提供PLC 20的开发环境,提供用于用户根据控制目标(例如作为对象的线(line)及工艺(process))来制作(制作/编辑)用户程序等程序的环境。用户使用开发支持装置10所提供的开发环境(编程工具),来制作由PLC 20所执行的控制程序(用户程序)的程序代码。为了支持用户制作/编辑由PLC 20所执行的控制程序,开发支持装置10也可具有调试(debug)功能以及仿真(simulation)功能。
而且,开发支持装置10例如也可执行PLC 20对状态值的获取(输入刷新)的时机、以及PLC 20对输出值的更新(输出刷新)的时机的计算及设定。开发支持装置10也可监测PLC 20的运转状态以及各种数据的值等。
开发支持装置10也可为提供综合开发环境的装置,所述综合开发环境除了PLC 20的编程、配置(configuration)(结构设定)、调试、维护、监控功能以外,还支持三维(ThreeDimensional,3D)运动仿真。而且,开发支持装置10也可进行用于从机装置40的各种参数的设定及调整。
开发支持装置10典型的是包含通用的计算机。例如,由开发支持装置10所执行的信息处理程序也可保存于未图示的只读光盘(Compact Disk-Read Only Memory,CD-ROM)中而流通。保存于所述CD-ROM中的程序是通过未图示的CD-ROM驱动装置来读取,并保存到开发支持装置10的硬盘等中。或者,开发支持装置10也可构成为,从上位的主机计算机等通过网络来下载与保存于所述DVD-ROM中的程序同样的程序。
也可如图2所示,人机接口(Human Machine Interface,HMI)30经由通信线缆连接于PLC 20。HMI 30是供人与机械交换信息的部件,具体而言,是人操作机械(对机械给予指示)或者机械将当前的状态/结果告知给人的部件。关于HMI 30,作为人对机械给予指示的部件,包含开关、按钮、手柄、拨盘、踏板、遥控器、麦克风、键盘、鼠标等。而且,关于HMI 30,作为机械将与当前的状态/结果等相关的信息传达给人的部件,包含液晶画面、仪表、灯、扬声器等。
HMI 30包括显示部、操作部、与PLC 20通信的通信部以及控制各部的控制部。HMI30能够对应于对操作部的用户操作来变更控制系统1(例如PLC 20)的各种设定。而且,HMI30的显示部显示关于控制系统1的规定信息。
用户利用开发支持装置10所提供的开发环境而制作/编辑的程序包含用户程序、运动运算程序以及序列命令运算程序等。“用户程序”是对应于用户的控制对象(例如作为对象的线及工艺)而制作。开发支持装置10对通过梯形逻辑(梯形语言)而记述的梯形程序等(源程序)进行编译,由此生成用户程序。梯形逻辑为用于记述逻辑电路的方法,是在多数PLC中采用的程序语言。用户程序例如是以可由PLC 20中所含的微处理器所执行的对象程序格式而生成。“运动运算程序”是按照基于用户程序的指示而执行,且每当执行时算出对伺服马达驱动器及脉冲马达驱动器等马达驱动器输出的指令值的程序。“序列命令运算程序”是在执行用户程序中使用的规定的序列命令时被调用,为了实现所述命令的内容而执行的程序。
(关于本实施方式的开发支持装置的概要)
开发支持装置10对各自包含“一个以上的程序PG”的、一个以上的工程项目进行管理。工程项目包含“PLC 20等控制器的设定信息”以及“一个以上的程序PG”。
程序PG是对控制器进行控制的逻辑,例如可列举简易转换(SimpleTransformation,ST)程序、梯形程序等。程序PG是用户所编辑的对象,也被称作源代码。程序PG例如被分割为各自与“装置的工序及功能”对应的多个段节SC。
段节SC是将程序PG分割为任意数量的部分,例如对应于“装置的工序及功能”等对于用户而言存在意义的信息。与后述的程序组织单元(Program Organization Unit,POU)的不同之处在于,段节SC是“与调用关系(逻辑关系)无关地设定的单位(构成程序PG的单位)”。
以往,已知有将程序PG分割为多个段节SC进行管理的方法,构成程序PG的多个段节SC是根据在程序PG中的记载位置PS,按照记载位置PS由上往下的顺序依次执行。
段节SC的便利性在于:“能够将程序PG分割为多个单位进行管理”;以及“由于执行顺序EO是按照记载位置PS来简单地决定,因此容易掌握段节SC的执行顺序EO”等。即,用户可将程序PG对应于“装置的工序及功能”等对于用户而言存在意义的信息而任意分割为两个以上的段节SC,而且,可容易地掌握多个段节SC各自的执行顺序EO。
此处,多个“装置的工序及功能”有时彼此处于包含关系,但以往无法以反映出“装置的工序及功能”等彼此处于包含关系的信息的形态来管理多个段节SC。
但是,用户想要将“装置的工序及功能”等彼此处于包含关系的信息反映到程序结构中来管理程序PG。即,用户想要以反映出“装置的工序及功能”等彼此处于包含关系的信息的形态来管理构成程序PG的多个SC。
此处,功能块(FunctionBlock)、功能(Function)等被称作POU的单位是用于在逻辑上对程序PG进行层级结构化的要素,但并非反映“装置的工序及功能”等彼此处于包含关系的信息的要素。POU是彼此通过逻辑关系(调用关系)来关联,用户无法与调用关系无关地设定多个POU之间的关系。因此,难以通过基于POU的程序PG的管理而在视觉上掌握“工序及功能”等包含关系。
开发支持装置10的目的在于:不会损害所述段节SC的便利性,进而,能够以“装置的工序及功能”等对于用户而言存在意义的单位来进行次序变更、复制、比较等程序管理(段节SC的管理)。即,开发支持装置10的目的在于:既使得『用户在程序PG的管理时能够在视觉上掌握“工序及功能”等包含关系』,又将与程序PG的执行顺序相关的规则保持为简单。而且,开发支持装置10的目的在于:使得『用户能够以所述包含关系为单位来对构成程序PG的段节SC进行“记载位置EP(即,执行顺序EO)的变更”、“复制”、“比较”等操作』。开发支持装置10使得用户能够以“通过反映所述包含关系的层级关系(祖先-子孙关系)来彼此关联的两个以上的段节SC”为单位来进行记载位置EP的变更、复制、比较等操作。
为了实现所述目的,开发支持装置10使多个段节SC各自具备反映出“装置的工序及功能”等彼此处于包含关系的信息的层级信息,对包含经层级化的多个段节SC的程序PG进行管理。即,开发支持装置10能够使构成程序PG的多个段节SC各自具备层级信息(层级编号HN),呈树状地管理多个段节SC。
由此,开发支持装置10使得在执行顺序EO的决定规则维持以往的状态下,“用户能够以对于用户而言存在意义的单位来对两个以上的段节SC统一进行执行顺序EO的变更、复制、比较等”。用户通过利用开发支持装置10,能够利用有效率且对于用户而言容易理解的方法来进行程序管理,即,能够对构成程序PG的多个段节SC进行管理。
对于开发支持装置10,关于注意点以及开发支持装置10所执行的处理等,以下说明概略。
(关于执行顺序)
开发支持装置10对段节SC赋予的层级信息(层级编号HN)与程序PG中的段节SC的执行顺序OR无关。段节SC的执行顺序OR仅由段节SC在程序PG中的记载位置PS所决定,段节SC在程序PG中按照记载位置PS由上往下的顺序依次执行。
(关于母子关系)
开发支持装置10在由用户对构成程序PG的多个段节SC之间赋予层级关系时,根据段节SC所属的层级和段节SC的记载位置PS,对两个以上的段节SC之间设定母子关系。
具体而言,开发支持装置10在构成程序PG的段节SC(m)与段节SC(n)满足以下的三个条件的情况下,对两者之间设定将段节SC(m)设为母节点、将段节SC(n)设为子节点的母子关系。
第一条件为下述条件,即:段节SC(m)所属的层级为段节SC(n)所属的层级的上一级层级,即,“段节SC(m)的层级编号HN(m)比段节SC(n)的层级编号HN(n)小1”。
第二条件为下述条件,即:“在程序PG中,段节SC(m)的记载位置PS(m)位于较段节SC(n)的记载位置PS(n)更靠上处”。由于段节SC的执行顺序EO仅由段节SC的记载位置PS而定,因此第二条件可换言之为如下。即,可换言之为:“段节SC(m)的执行顺序EO(m)比段节SC(n)的执行顺序EO(n)早”。
第三条件为下述条件,即:『在记载位置PS(m)与记载位置PS(n)之间,无“属于与段节SC(m)所属的层级相同的层级的、段节SC(m)以外的段节SC”』。由于段节SC的执行顺序EO仅由段节SC的记载位置PS而定,因此第三条件可换言之为如下。即,可换言之为:“不在执行顺序EO(m)与执行顺序EO(n)之间执行属于与段节SC(m)所属的层级相同的层级的、段节SC(m)以外的段节SC”。执行顺序EO(m)为段节SC(m)的执行顺序EO,执行顺序EO(n)为段节SC(n)的执行顺序EO。
开发支持装置10对于处于母子关系(祖先-子孙关系)的两个以上的段节SC,例如像以下那样执行显示、记载位置PS的变更、剪切、复制、粘贴、导入及导出等处理。即,开发支持装置10以与个人计算机对于处于层级关系(母子关系)的两个以上的要素执行显示、位置的变更、剪切、复制、粘贴、导入及导出等处理时的方法同样的方法,来执行这些处理。
(关于开发支持装置所执行的显示处理)
开发支持装置10使用树结构来显示处于母子关系(祖先-子孙关系)的两个以上的段节SC的关系,例如呈树状显示构成程序PG的多个段节SC各自的名称(识别信息)。开发支持装置10对于呈树状显示的段节SC的名称,与在显示处于层级关系(母子关系)的两个以上的要素时一般使用的树状显示同样地,能够切换折叠显示与展开显示。
而且,开发支持装置10在段节SC(m)与段节SC(n)之间存在母-子关系的情况下,若判定为“段节SC(n)的内容(程序、源代码)存在错误”,则显示以下的信息。即,开发支持装置10除了段节SC(n)的名称以外,还显示段节SC(m)的名称,以作为发现了错误的段节SC的名称。
(关于记载位置及执行顺序的变更)
如前所述,段节SC的执行顺序EO仅由段节SC在程序PG中的记载位置PS所决定。用户通过变更段节SC在程序PG中的记载位置PS,能够变更段节SC在程序PG中的执行顺序EO。
用户通过利用开发支持装置10,能够统一变更处于祖先-子孙关系(母子关系)的两个以上的段节SC的记载位置PS。
以下的说明中,有时将包含“与祖先节点对应的一个段节SC”和“与相对于祖先节点的子孙节点对应的所有段节SC”、的两个以上的段节SC的集合称作“段节群SG”。例如,有时将包含段节SC(p)和与将段节SC(p)设为祖先节点的子孙节点对应的所有段节SC、的段节SC的集合称作段节群SG(p)。同样地,有时将包含段节SC(q)和与将段节SC(q)设为祖先节点的子孙节点对应的所有段节SC、的段节SC的集合称作段节群SG(q)。
例如,在段节SC(p)与段节SC(q)属于相同层级的情况下,用户通过利用开发支持装置10,能够像以下那样统一变更段节群SG中所含的两个以上的段节各自的记载位置PS。即,用户能够调换段节群SG(p)的记载位置PS与段节群SG(q)的记载位置PS。
例如,用户能够将段节群SG(q)中所含的两个以上的段节SC各自的记载位置PS统一变更为段节SC(p)的记载位置PS(p)之上的位置。用户能够将段节群SG(p)中所含的两个以上的段节SC各自的记载位置PS统一变更为段节群(q)中所含的段节SC中的、记载位置PS位于最下的段节SC的记载位置PS之下的位置。
并且,用户能够不变更段节群SG中所含的两个以上的段节SC彼此的相对位置关系,而以段节群SG为单位来统一变更段节群SG中所含的两个以上的段节各自的记载位置PS。
除了所选择的段节SC(p)以外,用户能够将与段节SC(p)的子孙节点对应的段节SC也包含在内,而将所述两个以上的段节SC各自的记载位置统一移动到段节群SC(q)的记载位置PS之上或之下。
(关于剪切、复制、粘贴等)
用户通过利用开发支持装置10,能够对处于祖先-子孙关系(母子关系)的两个以上的段节SC统一执行剪切、复制、粘贴、导入及导出中的至少一个操作。换言之,用户能够以『包含一个段节SC和“将所述一个段节SC设为祖先节点时与子孙节点对应的所有段节SC”的段节群SG』为单位来进行剪切等操作。
(关于程序更新前后的比较等)
开发支持装置10在程序PG被用户更新(变更)时,能够比较更新前后的程序PG彼此,或者对两者进行归并(merge)。
具体而言,开发支持装置10对于更新前的程序PG与更新后的程序PG,能够比较以下的信息。即,开发支持装置10对于更新前后的程序PG,能够分别独立地比较各个构成程序PG的多个段节SC各自的层级信息与各个构成程序PG的多个段节SC各自的内容。
而且,开发支持装置10能够对更新前的构成程序PG的多个段节SC的各者与更新后的构成程序PG的多个段节SC的各者进行归并。
(关于POU)
作为构成程序PG的单位,除了段节SC以外,有IEC 61131-3中规定的程序组织单元(Program Organization Unit,POU)。在IEC 61131-3中,以功能单位来制作程序PG,将所述功能单位称作“POU”。POU可理解为“包含多个指令字的程序管理上的最小单位”,是构成用户程序的功能上的构成元件的总称。
POU是构成程序PG的逻辑上的单位,多个POU通过逻辑关系(调用关系)彼此关联。POU与段节SC的不同之处在于,POU是通过逻辑关系彼此关联的单位,与此相对,段节SC是与逻辑关系无关地由用户对应于“装置的工序及功能”等而任意关联的单位。
所述“调用关系”是指在IEC 61131-3中定义的程序组织单元(ProgramOrganization Unit,POU)等“构成程序PG的多个单位(要素)”之间的“调用-被调用关系”。“调用关系”也有时被称作“参照-被参照关系”或者被称作“逻辑关系”。
例如,在程序PG中某POU调用了(参照了)另一POU的情况下,有时所述某POU被称作调用源(参照源),而且,由所述某POU所调用的另一POU被称作调用目标(参照目标)。并且称作:在所述某POU与所述另一POU之间存在将所述某POU设为调用源、将所述另一POU设为调用目标的调用关系。
作为构成用户程序的逻辑上的单位即POU,可列举程序PG、功能、功能块。即,POU的种类有程序PG、功能、功能块这三种,POU是它们的总称。
程序(Program)有时简称为“PRG”或“PG”,是指使用功能、功能块等的算法。
功能块(Function Block)有时简称为“FB”,是指必须保持内部的变量等的处理的块。库(library)多为功能块。
功能(Function)有时简称为“FUN”,是指在四则运算、类型转换等中使用的、不具备内部状态的命令。
关于功能块与功能的不同,功能块能够生成相同类型的其他实例(instance),但功能仅为逻辑而无法生成实例。而且,功能若输入相同则运算结果始终相同,此点与功能块不同。
(关于设定层级关系前后的段节)
图3是表示由用户对多个段节SC之间设定的层级关系的一例的图。在图3的左侧(即,图3的(A)),显示了表示对多个段节SC之间设定层级关系之前的程序PG的图像例。在图3的右侧(即,图3的(B)),显示了表示对多个段节SC之间设定层级关系之后的程序PG的图像例。图3的左侧所示的图像例以及图3的右侧所示的图像例各自例如由开发支持装置10予以显示。
图3的左侧所例示的图像例中,程序PG(具体而言,为ST_Program0)被分割为以下的十一个段节SC。即,程序PG:ST_Program0从位于上方的部分开始依序被分割为FrameSection、Frame_InitializeSection、…、InspectionSection这十一个段节SC。
以下的说明中,有时将FrameSection表达为段节SC(1),将Frame_InitializeSection表达为段节SC(2),将Frame_Validation表达为段节SC(3)。而且,有时将Frame_WorkSection表达为段节SC(4),将UnitSection表达为段节SC(5)、…、将InspectionSection表达为段节SC(11)。
图3的左侧所例示的图像例中,对于这十一个段节SC未设定层级关系,换言之,这十一个段节SC所属的层级全部相同。例如,这十一个段节SC全部属于“层级编号HN:1”这一层级。
相对于图3的左侧所例示的图像例,在图3的右侧所例示的图像例中,对图3的左侧所例示的十一个段节SC设定有层级关系(母子关系)。
例如,对于FrameSection、Frame_InitializeSection、Frame_WorkSection这三个段节SC之间,设定有以下的层级关系(母子关系)。即,设定有将FrameSection设为母节点、将Frame_InitializeSection以及Frame_WorkSection设为子节点的母子关系。Frame_InitializeSection这一段节SC(2)以及Frame_WorkSection这一段节SC(4)所属的层级是FrameSection这一段节SC(1)所属的层级的正下方的层级。
而且,例如对于Frame_InitializeSection与Frame_Validation之间,设定有以下的层级关系(母子关系)。即,设定有将Frame_InitializeSection设为母节点、将Frame_Validation设为子节点的母子关系。Frame_Validation这一段节SC(3)所属的层级是Frame_InitializeSection这一段节SC(2)所属的层级的正下方的层级。Frame_Validation可理解为与将FrameSection设为母节点(祖先节点)的孙节点对应的段节SC。
进而,例如对于UnitSection、Unit_InitializeSection、Unit_WorkSection这三个段节SC之间,设定有以下的层级关系(母子关系)。即,设定有将UnitSection设为母节点、将Unit_InitializeSection以及Unit_WorkSection设为子节点的母子关系。Unit_InitializeSection这一段节SC(6)以及Unit_WorkSection这一段节SC(7)所属的层级是UnitSection这一段节SC(5)所属的层级的正下方的层级。
除此以外,对于Unit_WorkSection、Unit_WorkFunctionSectionA、Unit_WorkFunctionSectionB、Unit_WorkFunctionSectionC之间,设定有以下的母子关系。即,设定有将Unit_WorkSection设为母节点、将剩余的三个段节SC各自设为子节点的母子关系。Unit_WorkFunctionSectionA、Unit_WorkFunctionSectionB、Unit_WorkFunctionSectionC所属的层级是Unit_WorkSection所属的层级的正下方的层级。Unit_WorkFunctionSectionA、Unit_WorkFunctionSectionB、Unit_WorkFunctionSectionC对应于将Unit_WorkSection设为母节点(祖先节点)的孙节点。
详情将后述,但开发支持装置10在受理了变更段节SC所属的层级的用户操作(例如图4所例示的用户操作)时,对构成程序PG的多个段节SC之间设定母子关系或者解除母子关系。例如,当受理了对图3中左侧所例示的十一个段节SC之间设定层级关系的用户操作时,开发支持装置10如图3的右侧所例示的那样,对这十一个段节SC之间设定母子关系(祖先-子孙关系)。
开发支持装置10通过使将程序PG分割的段节SC具备层级信息(具体而言,为层级编号HN),从而对构成程序PG的多个段节SC进行层级化来管理。具体而言,开发支持装置10对段节SC附加层级信息,例如以段节SC(n)属于段节SC(m)所属的层级之下的层级的方式,来管理段节SC(m)以及段节SC(n)。尤其,开发支持装置10将被赋予了层级关系的多个段节SC之间的关系作为母子关系(祖先-子孙关系)来进行管理。
由开发支持装置10对段节SC赋予的层级信息(即,段节SC的层级编号HN)不会对程序执行顺序造成影响,即,段节SC的执行顺序EO不受段节SC的层级编号HN影响。
以下,对于对段节SC赋予的层级编号HN、段节SC的执行顺序EO、两个以上的段节SC之间的母子关系(祖先-子孙关系)进行说明。
(关于层级编号)
开发支持装置10对于构成程序PG的多个段节SC,通过层级编号HN来管理各自所属的层级。例如,开发支持装置10对于构成图3的右侧所例示的程序PG:ST_Program0的所述十一个段节SC的各者,像以下那样设定层级编号HN。
即,开发支持装置10将图3的右侧所例示的所述十一个段节SC中的、属于最上位层级的FrameSection、UnitSection、InspectionSection的层级编号HN例如分别设为“1”。
而且,开发支持装置10将属于某层级的正下方的层级的段节SC的层级编号HN设为将属于所述某层级的段节SC的层级编号HN加上“1”所得的数值。例如,开发支持装置10在将属于最上位层级的段节SC设为母节点的情况下,对于与子节点对应的段节SC的层级编号HN,将属于最上位层级的段节SC的“层级编号HN:0”加上“1”而设为“2”。
图3的右侧的示例中,开发支持装置10将与“将FrameSection设为母节点的子节点”对应的Frame_InitializeSection以及Frame_WorkSection的层级编号HN分别设为“2”。同样地,开发支持装置10将与“将UnitSection设为母节点的子节点”对应的Unit_InitializeSection以及Unit_WorkSection的层级编号HN分别设为“2”。
而且,开发支持装置10将与“将Frame_InitializeSection设为母节点的子节点”对应的Frame_Validation的层级编号HN设为“3”。同样地,开发支持装置10将与“将Unit_WorkSection设为母节点的子节点”对应的三个段节SC的层级编号HN分别设为“3”。即,开发支持装置10将Unit_WorkFunctionSectionA、Unit_WorkFunctionSectionB以及Unit_WorkFunctionSectionC的层级编号HN分别设为“3”。
(关于执行顺序)
开发支持装置10对于构成程序PG的多个段节SC各自的执行顺序EO,与各自的层级编号HN无关地,仅根据在程序PG中的记载位置PS来进行管理。具体而言,开发支持装置10使记载位置PS在程序PG中位于上方的段节SC的执行顺序EO比记载位置PS在程序PG中位于下方的段节SC的执行顺序EO早。
例如,在程序PG中,段节SC(m)的记载位置PS(m)位于较段节SC(n)的记载位置PS(n)更靠上处的情况下,开发支持装置10像以下那样设定段节SC(m)的执行顺序EO(m)。即,开发支持装置10使段节SC(m)的执行顺序EO(m)比段节SC(n)的执行顺序EO(n)早。
因此,开发支持装置10即便在对多个段节SC之间设定有层级关系的情况下,当多个段节SC各自的记载位置PS未作上下变更时,也不变更多个段节SC各自的执行顺序EO。
例如,关于所述的十一个段节SC,在图3的左侧与右侧,存在未设定层级关系/设定有层级关系这一差别。但是,在图3的左侧与右侧,关于所述的十一个段节SC,各自在“程序PG:ST_Program0中的记载位置PS”未作上下变更。
即,在图3的左侧与右侧,FrameSection的记载位置PS(1)均位于Frame_InitializeSection的记载位置PS(2)的正上方。而且,在图3的左侧与右侧,Frame_InitializeSection的记载位置PS(2)均位于Frame_Validation的记载位置PS(3)的正上方。同样地,在图3的左侧与右侧,Frame_Validation的记载位置PS(3)均位于Frame_WorkSection的记载位置PS(4)的正上方,…,InspectionSection的记载位置PS(11)均为最下。
因此,在图3的左侧与右侧,开发支持装置10不变更所述十一个段节SC各自的执行顺序EO。即,当有“不上下变更段节SC的记载位置PS而变更段节SC所属的层级”的用户操作时,开发支持装置10不变更段节SC的执行顺序EO而仅变更段节SC的层级编号HN。而且,当有“不变更段节SC所属的层级而上下变更段节SC的记载位置PS”的用户操作时,开发支持装置10不变更段节SC的层级编号HN而仅变更段节SC的执行顺序EO。
在图3的左侧与右侧,最开始执行的段节SC均为FrameSection,第二个均为Frame_InitializeSection,第三个均为Frame_Validation,最后均为InspectionSection。即,在图3的左侧与右侧,十一个段节SC均是按照FrameSection、Frame_InitializeSection、Frame_Validation的顺序依次执行,最后均执行InspectionSection。
(关于母子关系)
开发支持装置10在由用户对构成程序PG的多个段节SC之间设定层级关系时,使用所述层级关系来对多个段节SC之间设定母子关系(祖先-子孙关系)。即,开发支持装置10在段节SC(m)与段节SC(n)满足所述的第一条件、第二条件及第三条件的全部时,设定将段节SC(m)设为母节点、将段节SC(n)设为子节点的母子关系。
图3的右侧的图像例中,FrameSection与“Frame_InitializeSection以及Frame_WorkSection各自”满足所述的第一条件、第二条件及第三条件的全部。因此,开发支持装置10对于这三个段节SC之间设定有将FrameSection设为母节点、将Frame_InitializeSection以及Frame_WorkSection各自设为子节点的母子关系。
而且,Frame_InitializeSection与Frame_Validation满足所述的第一条件、第二条件及第三条件的全部。因此,开发支持装置10对于这两个段节SC之间设定有将Frame_InitializeSection设为母节点、将Frame_Validation设为子节点的母子关系。
换言之,开发支持装置10对于FrameSection与Frame_Validation之间设定有将FrameSection设为母(祖先)节点、将Frame_Validation设为孙节点的祖先-子孙关系。
进而,开发支持装置10确认UnitSection与“Unit_InitializeSection以及Unit_WorkSection各自”全部满足所述的三个条件,对这三者间设定有以下的母子关系。即,开发支持装置10设定有将UnitSection设为母节点、将Unit_InitializeSection以及Unit_WorkSection各自设为子节点的母子关系。
同样地,开发支持装置10设定有将Unit_WorkSection设为母节点、将以下的三个段节SC设为子节点的母子关系。即,开发支持装置10设定有将Unit_WorkFunctionSectionA、Unit_WorkFunctionSectionB、Unit_WorkFunctionSectionC各自设为子节点的母子关系。
换言之,开发支持装置10设定有将UnitSection设为母(祖先)节点、将所述的三个段节SC各自设为孙节点的祖先-子孙关系。
(关于设定层级关系的用户操作的示例)
图4是说明提高或降低段节SC的层级的用户操作的图。在图4的上侧(即,图4的(A)),表示了受理将段节SC所属的层级降低一级的用户操作前后的图像例。在图4的下侧(即,图4的(B)),表示了受理将段节SC所属的层级提高一级的用户操作前后的图像例。图4的上侧所示的图像例以及图4的下侧所示的图像例分别例如由开发支持装置10予以显示。
(关于将层级降低一级的用户操作的示例)
图4的(A)中,在左侧所例示的图像例中,“段节SC(1):段节0”与“段节SC(2):段节1”属于相同层级。在此状况下,关于“段节SC(2):段节1”,当受理“将其所属的层级降低一级”的用户操作即“降低层级(Lower the level)”时,开发支持装置10显示图4的(A)的右侧所例示的图像例。
即,通过将段节1所属的层级降低一级的用户操作,段节1的层级比在图4的(A)的左侧所例示的图像例中段节1曾属的层级(与段节0所属的层级相同的层级)降低一级。
并且,因段节1的层级比起段节0的层级为下一级,段节0与段节1将满足所述的第一条件、第二条件及第三条件的全部。
因此,开发支持装置10如图4的(A)的右侧所例示的那样,对于段节0与段节1,设定将段节0设为母节点、将段节1设为子节点的母子关系,通过树结构来表达两者的关系。
即,关于段节1,当受理“将其所属的层级降低一级”的用户操作时,开发支持装置10不变更段节1的执行顺序EO而将段节1的层级编号HN提高1。
并且,开发支持装置10将记载在段节0的记载位置PS的正下方的记载位置PS的段节1设为与“将段节0设为母节点的子节点”对应的段节SC。如图4的(A)的右侧所例示的图像例所示的那样,开发支持装置10通过将段节0设为母节点、将段节1设为子节点的树结构来显示两者的母子关系(层级关系)。
当有将“所属的层级相同且记载位置PS连续”的两个段节SC中的、记载位置PS处于下侧的段节SC所属的层级降低一级的用户操作时,开发支持装置10对这两个段节SC之间设定以下的母子关系。即,开发支持装置10设定以将记载位置PS上下连续的两个段节SC中的记载位置PS处于上侧的段节SC设为母节点、将记载位置PS处于下侧的段节SC设为子节点的树结构来表示的母子关系。
例如,若段节SC(m)的记载位置PS(m)位于段节SC(n)的记载位置PS(n)的正上方且段节SC(m)的层级编号HN(m)比段节SC(n)的层级编号HN(n)大1,则开发支持装置10进行以下的处理。即,开发支持装置10确认段节SC(m)与段节SC(n)满足所述的第一条件、第二条件及第三条件的全部。并且,开发支持装置10对于段节SC(m)与段节SC(n)之间,设定将段节SC(m)设为母节点、将段节SC(n)设为子节点的母子关系(层级关系)。
并且,开发支持装置10例如通过将段节SC(m)设为母节点、将段节SC(n)设为子节点的树结构来显示段节SC(m)与段节SC(n)的关系。
此处,由于段节SC的执行顺序EO仅由段节SC的记载位置PS而定,因此开发支持装置10所执行的所述处理可换言之为如下。即,若段节SC(m)的执行顺序EO(m)紧跟段节SC(n)的执行顺序EO(n)之后,且层级编号HN(m)比层级编号HN(n)大1,则开发支持装置10将段节SC(m)与段节SC(n)设为母子。
(关于将层级提高一级的用户操作的示例)
图4的(B)中,在左侧所例示的图像例中,对于“段节SC(1):段节0”与“段节SC(2):段节1”之间设定有母子关系。即,通过将段节0设为母节点、将段节1设为子节点的树结构来显示两者的母子关系(层级关系)。在此状况下,关于“段节SC(2):段节1”,当受理“将其所属的层级提高一级”的用户操作即“提高层级(Raise the level)”时,开发支持装置10显示图4的(B)的右侧所例示的图像例。
即,通过将段节1所属的层级提高一级的用户操作,段节1的层级与在图4的(B)的左侧所例示的图像例中段节1曾属的层级(比起段节0的层级为下一级的层级)相比提高一级。即,段节1所属的层级与段节0所属的层级变得相同。
并且,因段节1所属的层级与段节0所属的层级变得相同,段节0与段节1的关系将不再满足所述的第一条件。
因此,开发支持装置10如图4的(B)的右侧所例示的那样,解除将段节0设为母节点、将段节1设为子节点的母子关系(祖先-子孙关系)。
即,关于段节1,当受理“将其所属的层级提高一级”的用户操作时,开发支持装置10不变更段节1的执行顺序EO而将段节1的层级编号HN降低1。
并且,开发支持装置10将记载在段节0的记载位置PS的正下方的记载位置PS的段节1设为属于与段节0所属的层级相同的层级的段节SC。如图4的(B)的右侧所例示的图像例所示的那样,开发支持装置10将段节0与段节1显示为属于相同层级的两个段节SC。
当受理将处于母子关系的两个段节SC且与子节点对应的段节SC所属的层级提高一级的用户操作时,开发支持装置10解除这两个段节SC之间的母子关系。
例如,开发支持装置10对于处于将段节SC(m)设为母节点、将段节SC(n)设为子节点的母子关系的段节SC(m)与段节SC(n),若不再满足第一条件,则解除两者的母子关系。即,开发支持装置10在“段节SC(m)的层级编号HN(m)比段节SC(n)的层级编号HN(n)小1”这一第一条件不再被满足时,解除段节SC(m)与段节SC(n)的母子关系。
开发支持装置10在段节SC(m)的记载位置PS(m)位于段节SC(n)的记载位置PS(n)的正上方且段节SC(m)的层级编号HN(m)与段节SC(n)的层级编号HN(n)相同时,进行以下的处理。即,开发支持装置10视为段节SC(m)与段节SC(n)属于相同层级来对两者进行处理。例如,开发支持装置10将段节SC(m)与段节SC(n)显示为属于相同层级的两个段节SC。
此处,由于段节SC的执行顺序EO仅由段节SC的记载位置PS而定,因此开发支持装置10所执行的所述处理可换言之为如下。即,在执行顺序EO(m)紧靠执行顺序EO(n)之后,且层级编号HN(m)与层级编号HN(n)相同的情况下,开发支持装置10将段节SC(m)与段节SC(n)显示为属于相同层级的两个段节SC。
(关于将多个段节的层级统一提高/降低一级的用户操作)
至此为止,说明了用户对于某一个段节SC将此段节SC所属的层级提高一级或降低一级的示例。用户能够进而对于多个段节SC将所述多个段节SC所属的层级统一提高一级或降低一级。
例如,设想程序PG包含“段节SC(0):段节0”、“段节SC(1):段节1”以及“段节SC(2):段节2”这三个段节SC的情况。设在程序PG中这三者的执行顺序为:段节SC(0)为最前,段节SC(1)为第二个,段节SC(2)为第三个。而且,设段节SC(0)与段节SC(1)均属于最上位层级,即,两者的层级编号HN均为“1”,段节SC(2)属于从上起第二个层级,即,其层级编号HN为“2”。
此时,段节SC(1)与段节SC(2)满足所述的第一条件、第二条件及第三条件的全部。因此,开发支持装置10对段节SC(1)与段节SC(2)之间设定将段节SC(1)设为母节点、将段节SC(2)设为子节点的母子关系。
在所述的状态下,当用户对于段节SC(1)选择“将其所属的层级降低一级”的用户操作即“降低层级(Lower the level)”时,开发支持装置10执行以下的处理。即,开发支持装置10将段节SC(1)所属的层级降低一级,并且将段节SC(2)所属的层级也降低一级。换言之,开发支持装置10将段节SC(1)的层级编号HN由“1”变更为“2”,而且,将段节SC(2)的层级编号HN由“2”变更为“3”。其结果,段节SC(0)将属于最上位层级,段节SC(1)将属于从上起第二个层级,段节SC(2)将属于从上起第三个层级。
并且,段节SC(0)与段节SC(1)满足所述的第一条件、第二条件及第三条件的全部。因此,开发支持装置10对段节SC(0)与段节SC(1)之间设定将段节SC(0)设为母节点、将段节SC(1)设为子节点的母子关系。
而且,段节SC(1)与段节SC(2)满足所述的第一条件、第二条件及第三条件的全部。因此,开发支持装置10对段节SC(1)与段节SC(2)之间设定将段节SC(1)设为母节点、将段节SC(2)设为子节点的母子关系。
当从此状态,用户进一步对于段节SC(1)选择“将其所属的层级提高一级”的用户操作即“提高层级(Raise the level)”时,开发支持装置10执行以下的处理。即,开发支持装置10将段节SC(1)所属的层级提高一级,并且将段节SC(2)所属的层级也提高一级。换言之,开发支持装置10将段节SC(1)的层级编号HN由“2”变更为“1”,而且,将段节SC(2)的层级编号HN由“3”变更为“2”。其结果,段节SC(0)与段节SC(1)将均属于最上位层级,段节SC(2)将属于从上起第二个层级。
因段节SC(0)所属的层级与段节SC(1)所属的层级变得相同,段节SC(0)与段节SC(1)的关系不再满足所述的第一条件。因此,开发支持装置10解除段节SC(0)与段节SC(1)之间的、“将段节SC(0)设为母节点、将段节SC(1)设为子节点的母子关系”。
而且,段节SC(1)与段节SC(2)依然满足所述的第一条件、第二条件及第三条件的全部。因此,开发支持装置10维持段节SC(1)与段节SC(2)之间的、“将段节SC(1)设为母节点、将段节SC(2)设为子节点的母子关系”。
如至此为止所说明的那样,在两个以上的段节SC之间存在祖先-子孙关系的情况下,当有将与祖先节点(母节点)对应的段节SC所属的层级提高一级或降低一级的用户操作时,开发支持装置10执行以下的处理。
即,开发支持装置10对应于所受理的用户操作,将与祖先节点(母节点)对应的段节SC所属的层级提高一级或降低一级。而且,开发支持装置10对应于所受理的用户操作,将与子孙节点(子节点)对应的段节SC各自所属的层级提高一级或降低一级。换言之,开发支持装置10将与祖先节点对应的段节SC以及与子孙节点对应的段节SC各自的层级编号HN减1或增1。
因此,用户通过使用开发支持装置10,能够将设定有祖先-子孙关系的两个以上的段节SC各自所属的层级统一提高一级或降低一级。
如至此为止所说明的那样,开发支持装置10在受理了将某段节SC所属的层级提高一级或降低一级的用户操作时,执行以下的处理。即,开发支持装置10(尤其是后述的层级管理部121)对应于用户操作将某段节SC所属的层级提高一级或降低一级。除此以外,开发支持装置10对应于用户操作,将与将所述某段节SC设为祖先节点的树结构中的子孙节点对应的所有段节SC各自所属的层级统一提高一级或降低一级。
根据所述结构,开发支持装置10在受理了将与祖先节点对应的某段节SC所属的层级提高一级或降低一级的用户操作时,除了所述某段节SC所属的层级以外,还变更以下的段节SC所属的层级。即,开发支持装置10除了所述某段节所属的层级以外,还对与将所述某段节SC设为祖先节点的树结构中的子孙节点对应的所有段节SC各自所属的层级进行变更。
因此,开发支持装置10起到下述效果:能够对应于用户操作来将处于祖先-子孙关系的两个以上的段节SC各自所属的层级统一提高一级或降低一级。
(关于菜单画面上的选择以外的用户操作的示例)
图4所示的示例中,说明了开发支持装置10受理在菜单画面上所选择的“将层级降低一级”的用户操作或“将层级提高一级”的用户操作的示例。但是,对于开发支持装置10,受理在菜单画面上所选择的“将层级降低一级”的用户操作或“将层级提高一级”的用户操作并非必需。例如,开发支持装置10也可通过拖放所选择的段节SC,来受理欲将所选择的段节SC的“层级降低一级”或“将层级提高一级”的用户操作。
对于至此为止使用图2、图3以及图4所说明的开发支持装置10的概要整理如下。即,开发支持装置10是支持用户制作由PLC 20(控制装置)所执行的程序PG的开发支持装置。程序PG被分割为多个段节SC,所述多个段节SC是各自与调用关系(逻辑关系)无关地由用户所设定的处理单位。多个段节SC各自对应于在程序PG中的记载位置PS而按照记载位置PS由上往下的顺序依次执行。
开发支持装置10包括使用图1而后述的受理部110与层级管理部121。受理部110受理对多个段节SC之间设定层级关系的用户操作。层级管理部121根据在受理部110所受理的用户操作中所设定的层级关系,对多个段节SC分别赋予确定各自所属的层级的信息即层级编号HN。
根据所述结构,开发支持装置10在受理了对多个段节SC之间设定层级关系的用户操作时,根据由用户所设定的所述层级关系,对多个段节SC分别赋予确定各自所属的层级的层级编号HN。
所述“调用关系”是指在IEC 61131-3中定义的程序组织单元(ProgramOrganization Unit,POU)等“构成程序PG的多个单位(要素)”之间的“调用-被调用关系”。“调用关系”也有时被称作“参照-被参照关系”或者被称作“逻辑关系”。
例如,在程序PG中某POU调用了(参照了)另一POU的情况下,有时所述某POU被称作调用源(参照源),而且,由所述某POU所调用的另一POU被称作调用目标(参照目标)。并且称作:在所述某POU与所述另一POU之间存在将所述某POU设为调用源、将所述另一POU设为调用目标的调用关系。
以往,无法对构成程序PG的多个段节SC之间设定层级关系,因此,用户无法以反映出“装置的工序及功能”等彼此处于包含关系的信息的形态来管理多个段节SC。
与此相对,开发支持装置10使得用户能够对构成程序PG的多个段节SC之间设定与调用关系(逻辑关系)无关的、“任意的层级关系”。即,用户能够对构成程序PG的多个段节SC之间设定反映出“装置的工序及功能”等彼此处于包含关系的信息的层级关系。
因此,开发支持装置10起到下述效果:能够使得『用户与逻辑关系无关地以反映出“装置的工序及功能”等彼此处于包含关系的信息的形态来管理构成程序PG的多个段节SC』。
而且,段节SC的执行顺序EO是依据“按照记载位置PS由上往下的顺序依次执行”这一简单的规则而决定,因此用户能够容易地理解多个段节SC各自的执行顺序EO。并且,“用户能够容易地理解多个段节SC各自的执行顺序EO”这一点能够评估为段节SC的便利性。
并且,对构成程序PG的多个段节SC各自赋予的层级编号HN对于多个段节SC各自的执行顺序EO无影响,即,段节SC所属的层级对于段节SC的执行顺序EO无影响。因此,即便由用户对多个段节SC之间设定了层级关系,对于“按照记载位置PS由上往下的顺序依次执行”这一段节SC的简单规则也无影响,即,对于段节SC的便利性无影响。
因此,开发支持装置10起到下述效果:既能维持段节SC的便利性,又能使得『用户以反映出“装置的工序及功能”等彼此处于包含关系的信息的形态来管理多个段节SC』。
进而,用户能够对多个段节SC之间设定反映出“装置的工序及功能”等彼此处于包含关系的信息的层级关系。即,用户能够通过“对于用户而言存在意义的关系”来将两个以上的段节SC彼此关联。
并且,开发支持装置10以通过“对于用户而言存在意义的关系”彼此关联的两个以上的段节SC为单位,来执行例如程序PG中的记载位置PS的变更、复制、比较等中的至少一种。
因此,开发支持装置10起到下述效果:能够以通过“对于用户而言存在意义的关系”彼此关联的两个以上的段节SC为单位来执行程序PG中的记载位置PS的变更、复制、比较等。
开发支持装置10在段节SC(m)与段节SC(n)满足以下的三个条件时,对两者之间设定将段节SC(m)设为母节点、将段节SC(n)设为子节点的母子关系。
第一条件为下述条件,即:段节SC(m)所属的层级比段节SC(n)所属的层级高一级。第二条件为下述条件,即:在程序PG中,段节SC(m)的记载位置PS(m)位于较段节SC(n)的记载位置PS(n)更靠上处。第三条件为下述条件,即:在段节SC(m)的记载位置PS(m)与段节SC(n)的记载位置PS(n)之间,未记载属于与段节SC(m)所属的层级相同的层级的、段节SC(m)以外的段节SC。
根据所述结构,开发支持装置10在段节SC(m)与段节SC(n)满足所述的三个条件的情况下,对段节SC(m)与段节SC(n)之间设定所述的母子关系。
此处,所述的三个条件是与段节SC所属的层级和段节SC在程序PG中的记载位置PS相关的条件。因此,开发支持装置10能够根据由用户对多个段节SC之间设定的层级关系和段节SC在程序PG中的记载位置PS,对段节SC(m)与段节SC(n)之间设定母子关系。
并且,所述层级关系是由用户任意设定的关系,例如是反映出“装置的工序及功能”等彼此处于包含关系的信息的关系。
因此,开发支持装置10起到下述效果:能够以反映出“装置的工序及功能”等彼此处于包含关系的信息的形态来对段节SC(m)与段节SC(n)之间设定所述的母子关系。
§2.结构例
对于至此为止说明了概要的开发支持装置10,接下来一边参照图1一边说明其结构的详情。
(开发支持装置的详细结构)
图1是表示开发支持装置10的主要部分结构的框图。如图1所示,开发支持装置10包括存储部100、受理部110、执行部120、显示控制部130以及追加部140以作为功能块。
开发支持装置10除了图1所例示的功能块以外,也可还包括未图示的输入装置以及输出装置等,输入装置例如为键盘、鼠标等,输出装置例如为显示器等。
而且,开发支持装置10除了所述的各功能块以外,也可包括未图示的编程支持部等,所述编程支持部提供用于用户根据控制目的来编写作为使PLC 20执行的控制程序的用户程序。但是,为了确保记载的简洁性,从说明及框图中省略了与本实施方式无直接关系的结构。但是,开发支持装置10也可按照实施的实际情况来包括所述省略的结构。
受理部110、执行部120、显示控制部130以及追加部140例如可通过下述方式来实现,即,中央处理器(Central Processing Unit,CPU)等将存储在利用只读存储器(ReadOnly Memory,ROM)、非易失性随机存取存储器(Non-Volatile Random Access Memory,NVRAM)等所实现的存储装置(存储部100)中的程序读出到未图示的随机存取存储器(Random Access Memory,RAM)等中来执行。以下,首先对受理部110、执行部120、显示控制部130以及追加部140各自说明其详情。
(存储部以外的功能块的详情)
受理部110受理用户操作,并将所受理的用户操作的内容通知给执行部120。受理部110也可在受理了指示段节群SG的导入的用户操作时,将所述用户操作的内容通知给追加部140。
执行部120是执行与受理部110所受理的用户操作对应的处理的功能块。图1所例示的执行部120包含层级管理部121、选择部122、顺序管理部123以及比较部124。
层级管理部121对构成程序PG的多个段节SC分别赋予与多个段节SC各自所属的层级相应的层级编号HN。例如,层级管理部121在有将段节SC(m)所属的层级提高一级的用户操作时,将段节SC(m)的层级编号HN的值减小1。例如,层级管理部121在有将段节SC(m)所属的层级降低一级的用户操作时,将段节SC(m)的层级编号HN的值加大1。
选择部122在有选择段节SC的用户操作时,选择包含所选择的段节SC和与将所选择的段节SC设为祖先节点的树结构中的子孙节点对应的所有段节SC的段节群SG来作为对象。例如,选择部122在有选择段节SC(m)的用户操作时,选择包含段节SC(m)和与段节SC(m)的子孙节点对应的所有段节SC的段节群SG(m)来作为对象。
顺序管理部123将构成程序PG的多个段节SC各自的执行顺序EO设为与段节SC的记载位置PS(段节SC在程序PG中的记载位置PS)相应的值。顺序管理部123对应于段节SC的记载位置PS,将记载位置PS(m)位于上方的段节SC(m)的执行顺序EO(m)设为比记载位置PS(n)位于下方的段节SC(n)的执行顺序EO(n)早的执行顺序EO。
而且,顺序管理部123在由追加部140将设定了祖先-子孙关系的两个以上的段节SC即段节群SG保存到段节表170中时,执行以下的处理。即,顺序管理部123对于由追加部140追加到段节表170中的两个以上的段节SC的各者,维持它们之间的祖先-子孙关系而设定各自的执行顺序OP。
尤其,顺序管理部123对于构成所导入的段节群SG的两个以上的段节SC的各者,不变更各自在所述段节群中的“相对执行顺序EO'”而设定各自的执行顺序EO。即,顺序管理部123以不变更构成段节群SG的两个以上的段节SC各自的相对顺序关系(相对位置关系)的方式来设定这些段节SC各自的执行顺序EO。
例如,设在段节群SG(m)的导入执行前的时间点的程序表160中,在保存有执行顺序EO最晚的段节SC的段节表170的执行顺序OP中保存了“x”。并且,设在包含段节SC(m)、段节SC(m+1)、段节SC(m+2)、…、段节SC(m+n)的段节群SG(m)中,这些段节SC各自的执行顺序OR为此顺序。此时,当由追加部140将“保存有构成段节群SG(m)的两个以上的段节SC的各者的、两个以上的段节表170”追加到程序表160中时,顺序管理部123执行以下的处理。
即,顺序管理部123在保存有段节SC(m)的段节表170(m)的执行顺序OP中保存“x+1”。而且,顺序管理部123在保存有段节SC(m+1)的段节表170(m+1)的执行顺序OP中保存“x+2”,在保存有段节SC(m+2)的段节表170(m+2)的执行顺序OP中保存“x+3”。同样地,顺序管理部123在保存有段节SC(m+n)的段节表170(m+n)的执行顺序OP中保存“x+n+1”。
比较部124在有对更新前的程序PG与更新后的程序PG进行比较的用户操作时,比较两者的对应次序(order)(执行顺序EO)的段节SC彼此,即,比较两者中的记载位置PS相同的段节SC。
具体而言,比较部124对在更新前的程序PG中记载位置PS为从上起第x个段节SC(x)与在更新后的程序PG中记载位置PS为从上起第x个段节SC(x)进行比较。而且,比较部124对在更新前的程序PG中记载位置PS为从上起第y个段节SC(y)与在更新后的程序PG中记载位置PS为从上起第y个段节SC(y)进行比较。同样地,比较部124对在更新前的程序PG中记载位置PS为从上起第z个段节SC(z)与在更新后的程序PG中记载位置PS为从上起第z个段节SC(z)进行比较。
即,比较部124比较在程序PG的更新前后记载位置PS(执行顺序EO)相等的段节SC彼此。
比较部124对于在程序PG的更新前后记载位置PS(执行顺序EO)相等的段节SC彼此,对两者的名称(识别信息)、层级编号HN以及程序(源代码)分别进行比较。例如,比较部124在更新前的程序PG中的段节SC(x)与更新后的程序PG中的段节SC(x)中,例如对两者的名称、层级编号HN以及程序(源代码)分别进行比较。并且,比较部124将比较结果通知给显示控制部130。
显示控制部130使与受理部110所受理的用户操作和保存于参照存储部100所获取的工程项目表150中的信息相应的信息显示于自身装置的显示画面,或者显示于外部的显示装置。尤其,显示控制部130使与受理部110所受理的用户操作和保存于程序表160及段节表170中的信息相应的信息显示于自身装置的显示画面,或者显示于外部的显示装置。
例如,显示控制部130对于处于母子关系的段节SC(m)与段节SC(n),使用表示两者之间的母子关系的树结构来显示各自的识别信息。而且,显示控制部130显示从比较部124所通知的、“程序PG的更新前后的段节SC的比较结果”。
追加部140在有导入包含设定有祖先-子孙关系的两个以上的段节SC的段节群SG的用户操作时,将所述段节群SG保存至存储部100,尤其保存至段节表170。
具体而言,追加部140将用于保存构成段节群SG的两个以上的段节SC的各者的、两个以上的段节表170追加至程序表160。然后,追加部140将构成段节群SG的两个以上的段节SC的各者不变更各自所属的层级(即,各自的层级编号HN)而保存到追加至程序表160中的两个以上的段节表170的各者中。
(存储部的详情)
存储部100是保存开发支持装置10所使用的各种数据的存储装置。另外,存储部100也可非临时地存储开发支持装置10所执行的(1)控制程序、(2)OS程序、(3)用于执行开发支持装置10所具有的各种功能的应用程序以及(4)在执行所述应用程序时所读出的各种数据。所述(1)~(4)的数据例如被存储在只读存储器(Read Only Memory,ROM)、快闪存储器、可擦可编程只读存储器(Erasable Programmable ROM,EPROM)、电可擦可编程只读存储器(Electrically EPROM,EEPROM(注册商标))、硬盘驱动器(Hard Disc Drive,HDD)等非易失性存储装置中。开发支持装置10也可包括未图示的临时存储部。临时存储部是在开发支持装置10所执行的各种处理的过程中临时存储运算中使用的数据以及运算结果等的所谓的工作存储器,包含随机存取存储器(Random Access Memory,RAM)等易失性存储装置。关于将哪个数据存储到哪个存储装置中,根据开发支持装置10的使用目的、便利性、成本或物理限制等来适当决定。存储部100进而保存有工程项目表150、程序表160以及段节表170。
在工程项目表150中,保存有“PLC 20等控制器的设定信息”以及“一个以上的程序PG”。此处,“一个以上的程序PG”各自被分别保存于一个以上的程序表160中。因此,在工程项目表150中,保存有各自保存着一个程序PG的、一个以上的程序表160。
图1所示的示例中,在工程项目表150中,保存有第一程序表160(1)、第二程序表160(2)、…、第n程序表160(n)。并且,在第一程序表160(1)中保存有第一程序PG(1),在第二程序表160(2)中保存有第二程序PG(2),…,在第n程序表160(n)中保存有第n程序PG(n)。
本实施方式中,在无须特别区分第一程序表160(1)、第二程序表160(2)、…、第n程序表160(n)的各者的情况下简称作“程序表160”。而且,在无须特别区分第一程序PG(1)、第二程序PG(2)、…、第n程序PG(n)的各者的情况下简称作“程序PG”。
在程序表160中,保存有用户使用开发支持装置10所提供的开发环境而制作的程序PG。如前所述,程序PG被分割为多个段节SC。因此,在程序表160中,保存有各自保存着多个段节SC的各者的、多个段节表170。
图1的示例中,在第一程序表160(1)中,保存有构成第一程序PG(1)的多个段节SC,具体而言,保存有第一段节表170(1-1)至第x段节表170(1-x)。在第一段节表170(1-1)至第x段节表170(1-x)的各者中,保存有构成第一程序PG(1)的段节SC(1-1)至段节SC(1-x)的各者。
而且,在第二程序表160(2)中,保存有构成第二程序PG(2)的多个段节SC,具体而言,保存有第一段节表170(2-1)至第y段节表170(2-y)。在第一段节表170(2-1)至第y段节表170(2-y)的各者中,保存有构成第二程序PG(2)的段节SC(2-1)至段节SC(2-y)的各者。
同样地,在第n程序表160(n)中,保存有构成第n程序PG(n)的多个段节SC,具体而言,保存有第一段节表170(n-1)至第z段节表170(n-z)。在第一段节表170(n-1)至第z段节表170(n-z)的各者中,保存有构成第n程序PG(n)的段节SC(n-1)至段节SC(n-z)的各者。
在无须特别区分保存于第一程序表160(1)中的第一段节表170(1-1)至第x段节表170(1-x)的各者的情况下简称作“段节表170”。对于保存于第二程序表160(2)以及第n程序表160(n)的各者中的多个段节表170,也同样地,在无须特别区分各者的情况下简称作“段节表170”。
在段节表170中保存有构成程序PG的多个段节SC的各者。具体而言,在段节表170中,彼此关联地保存有段节SC的名称(识别信息)、执行次序EO、层级编号HN、所述段节SC中的程序PG(源代码)的内容。图5表示段节表170的结构例。
(关于段节表结构的示例)
图5是表示开发支持装置10保存到存储部100中的段节表170(图5所示的示例中,为第一段节表170(1)、第二段节表170(2)、…、第x段节表170(x))的结构例的图。如上所述,在无须特别区分第一段节表170(1)、第二段节表170(2)、…、第x段节表170(x)的各者的情况下简称作“段节表170”。在段节表170中,针对每个段节SC而彼此关联地保存有所述段节SC的名称(识别信息)、执行次序EO、层级编号HN、所述段节SC中的程序PG(源代码)的内容。
例如,构成图3的右侧(即,图3的(B))所例示的“程序PG:ST_Program0”的十一个段节SC各自像以下那样保存于段节表170中。
即,在第一段节表170(1)中,保存有“段节SC(1):FrameSection”的名称(识别信息)、执行次序EO、层级编号HN、所述段节SC中的程序PG(源代码)的内容。具体而言,在第一段节表170(1)中,保存有“FrameSection”作为段节SC(1)的名称,保存有“1”作为执行次序EO,保存有“1”作为层级编号HN。而且,在第一段节表170(1)中,保存有“FrameSection这一段节SC中的源代码”作为内容。
在第二段节表170(2)中,保存有“段节SC(2):Frame_InitializeSection”的名称、执行次序EO、层级编号HN、所述段节SC中的程序PG(源代码)的内容。具体而言,在第二段节表170(2)中,保存有“Frame_InitializeSection”作为段节SC(2)的名称。而且,在第二段节表170(2)中,保存有“2”作为执行次序EO,保存有“2”作为层级编号HN。进而,在第二段节表170(2)中,保存有“Frame_InitializeSection这一段节SC中的源代码”作为内容。
同样地,在第三段节表170(3)中,保存有“段节SC(3):Frame_Validation”的名称、执行次序EO、层级编号HN、所述段节SC中的程序PG(源代码)的内容。具体而言,在第三段节表170(3)中,保存有“Frame_Validation”作为段节SC(3)的名称。而且,在第三段节表170(3)中,保存有“3”作为执行次序EO,保存有“3”作为层级编号HN。进而,在第三段节表170(3)中,保存有“Frame_Validation这一段节SC中的源代码”作为内容。
并且,在第十一段节表170(11)中,保存有“段节SC(11):InspectionSection”的名称、执行次序EO、层级编号HN、所述段节SC中的程序PG(源代码)的内容。具体而言,在第十一段节表170(11)中,保存有“InspectionSection”作为段节SC(11)的名称。而且,在第十一段节表170(11)中,保存有“11”作为执行次序EO,保存有“1”作为层级编号HN。进而,在第十一段节表170(11)中,保存有“InspectionSection这一段节SC中的源代码”作为内容。
§3.动作例
以下,说明受理了“对多个段节SC之间设定层级关系”的用户操作的开发支持装置10所执行的处理。“对多个段节SC之间设定层级关系”的用户操作例如是指图4所例示的『将某段节SC(m)所属的层级“提高一级”的用户操作』或者将『将某段节SC(m)所属的层级“降低一级”的用户操作』。
(关于对应于赋予或变更层级的用户操作而执行的处理)
图6是开发支持装置10所执行的“对多个段节SC之间设定层级关系的处理”的流程图。如图6所例示的那样,首先,受理部110受理变更段节SC的层级编号的用户操作(S110)。受理部110将所受理的用户操作的内容通知给执行部120,例如将已受理了变更段节SC的层级编号的用户操作的意旨通知给执行部120的层级管理部121。
层级管理部121对应于受理部110所受理的用户操作,对在所述用户操作中设为对象的段节SC的层级编号HN进行变更(S120)。例如,当受理部110受理了将段节SC(m)的层级提高一级的用户操作时,层级管理部121将段节SC(m)的层级编号HN的值降低1。例如,当受理部110受理了将段节SC(m)的层级降低一级的用户操作时,层级管理部121将段节SC(m)的层级编号HN的值提高1。
至此为止使用6所说明的开发支持装置10所执行的控制方法可整理如下。即,开发支持装置10所执行的控制方法是支持用户制作由PLC 20等控制装置所执行的程序PG的开发支持装置的控制方法。程序PG被分割为多个段节SC,所述多个段节SC是各自与调用关系(逻辑关系)无关地由用户所设定的处理单位。多个段节SC各自对应于在程序PG中的记载位置PS而按照记载位置PS由上往下的顺序依次执行。
开发支持装置10所执行的控制方法包含受理步骤(S110)与层级管理步骤(S120)。受理步骤是受理对多个段节SC之间设定层级关系的用户操作。层级管理步骤是根据“在受理步骤中受理的用户操作”中所设定的层级关系,对多个段节SC各自赋予确定各自所属的层级的信息即层级编号HN。
根据所述结构,所述控制方法在受理了对多个段节SC之间设定层级关系的用户操作时,根据由用户所设定的所述层级关系,对多个段节SC分别赋予确定各自所属的层级的层级编号HN。
所述“调用关系”是指在IEC 61131-3中定义的程序组织单元(ProgramOrganization Unit,POU)等“构成程序PG的多个单位(要素)”之间的“调用-被调用关系”。“调用关系”也有时被称作“参照-被参照关系”或者被称作“逻辑关系”。
例如,在程序PG中某POU调用了(参照了)另一POU的情况下,有时所述某POU被称作调用源(参照源),而且,由所述某POU所调用的另一POU被称作调用目标(参照目标)。并且称作:在所述某POU与所述另一POU之间存在将所述某POU设为调用源、将所述另一POU设为调用目标的调用关系。
以往,无法对构成程序PG的多个段节SC之间设定层级关系,因此,用户无法以反映出“装置的工序及功能”等彼此处于包含关系的信息的形态来管理多个段节SC。
与此相对,所述控制方法使得用户能够对构成程序PG的多个段节SC之间设定与调用关系(逻辑关系)无关的、“任意的层级关系”。即,用户能够对构成程序PG的多个段节SC之间设定反映出“装置的工序及功能”等彼此处于包含关系的信息的层级关系。
因此,所述控制方法起到下述效果:能够使得『用户与逻辑关系无关地以反映出“装置的工序及功能”等彼此处于包含关系的信息的形态来管理构成程序PG的多个段节SC』。
而且,段节SC的执行顺序EO是依据“按照记载位置PS由上往下的顺序依次执行”这一简单的规则而决定,因此用户能够容易地理解多个段节SC各自的执行顺序EO。并且,“用户能够容易地理解多个段节SC各自的执行顺序EO”这一点能够评估为段节SC的便利性。
并且,对构成程序PG的多个段节SC各自赋予的“层级编号HN(确定层级的信息)”不会对段节SC的执行顺序EO造成影响,即,段节SC所属的层级不会影响到段节SC的执行顺序EO。因此,即便由用户对多个段节SC之间设定了层级关系,对于“按照记载位置PS由上往下的顺序依次执行”这一段节SC的简单规则也无影响,即,对于段节SC的便利性无影响。
因此,所述控制方法起到下述效果:既能维持段节SC的便利性,又能使得『用户以反映出“装置的工序及功能”等彼此处于包含关系的信息的形态来管理多个段节SC』。
进而,用户能够对多个段节SC之间设定反映出“装置的工序及功能”等彼此处于包含关系的信息的层级关系。即,用户能够通过“对于用户而言存在意义的关系”来将两个以上的段节SC彼此关联。
并且,所述控制方法以通过“对于用户而言存在意义的关系”彼此关联的两个以上的段节SC为单位,来执行例如程序PG中的记载位置PS的变更、复制、比较等中的至少一种。
因此,所述控制方法起到下述效果:能够以通过“对于用户而言存在意义的关系”彼此关联的两个以上的段节SC为单位来执行程序PG中的记载位置PS的变更、复制、比较等。
(关于折叠显示以及展开显示)
图7是关于折叠显示以及展开显示分别说明其一例的图。尤其,图7表示了图3的右侧(即,图3(B))所例示的FrameSection、Frame_InitializeSection、…、InspectionSection这十一个段节SC的显示例。
图7(A)表示执行了折叠显示的图像例,即,仅显示设定有母子关系(层级关系)的多个段节SC中的、与母节点对应的段节SC的名称(识别信息),而不显示与子节点对应的段节SC的名称。图7(B)表示执行了展开显示的图像例,即,跟设定有母子关系(层级关系)的多个段节SC中的、与母节点对应的段节SC的名称(识别信息)一同显示与子节点对应的段节SC的名称。
如使用图3所说明的那样,关于所述十一个段节SC,“层级编号HN:1”的段节SC为FrameSection、UnitSection、InspectionSection这三个段节SC。
而且,“层级编号HN:2”的段节SC为Frame_InitializeSection、Frame_WorkSection、Unit_InitializeSection、Unit_WorkSection这四个段节SC。
并且,Frame_InitializeSection以及Frame_WorkSection是与“将FrameSection设为母节点的子节点”对应的段节SC。而且,Unit_InitializeSection以及Unit_WorkSection是与“将UnitSection设为母节点的子节点”对应的段节SC。
(关于折叠显示的示例)
开发支持装置10(显示控制部130)在图7(A)所例示的折叠显示中,仅显示设定有母子关系(层级关系)的多个段节SC中的、与母节点对应的段节SC的名称(识别信息)。
即,在折叠显示中,显示控制部130仅显示处于母子关系的“FrameSection、Frame_InitializeSection、Frame_WorkSection”中的、FrameSection这一名称。
同样地,在折叠显示中,显示控制部130仅显示处于母子关系的“UnitSection、Unit_InitializeSection、Unit_WorkSection”中的、UnitSection这一名称。
(关于展开显示的示例)
开发支持装置10(显示控制部130)在图7(B)所例示的展开显示中,跟设定有母子关系(层级关系)的多个段节SC中的、与母节点对应的段节SC的名称一同显示与子节点对应的段节SC的名称。
即,在展开显示中,显示控制部130显示处于母子关系的“FrameSection、Frame_InitializeSection、Frame_WorkSection”这三个段节SC的所有名称。
同样地,在展开显示中,显示控制部130显示处于母子关系的“UnitSection、Unit_InitializeSection、Unit_WorkSection”这三个段节SC的所有名称。
(关于树状显示的整理)
如使用图7所说明的那样,开发支持装置10(显示控制部130)例如使用树结构来显示处于母子关系(祖先-子孙关系)的两个以上的段节SC的关系,即,呈树状显示段节SC的名称(识别信息)。显示控制部130对于呈树状显示的段节SC的名称,与在显示处于母子关系(祖先-子孙关系)的多个要素时一般使用的树状显示同样地,能够切换折叠显示与展开显示。
具体而言,显示控制部130能够进行“不显示与子节点对应的段节SC(n)的名称,而显示与母节点对应的段节SC(m)的名称”的折叠显示。而且,显示控制部130能够进行“将与子节点对应的段节SC(n)的名称和与母节点对应的段节SC(m)的名称一同显示”的展开显示。
如至此为止所说明的那样,开发支持装置10包括显示控制部130。显示控制部130对于处于所述母子关系的段节SC(m)与段节SC(n),使用表示所述母子关系的树结构来显示各自的名称(识别信息)。
而且,显示控制部130能够切换折叠显示与展开显示。在折叠显示中,显示控制部130在显示段节SC(m)的识别信息时,不显示与段节SC(m)的子节点对应的段节SC(n)的识别信息。在展开显示中,显示控制部130在显示段节SC(m)的识别信息时,跟段节SC(m)的识别信息一并显示与段节SC(m)的子节点对应的段节SC(n)的识别信息。
根据所述结构,开发支持装置10在显示段节SC(m)的名称时,切换不显示跟段节SC(m)的子节点对应的段节SC(n)的名称的折叠显示与显示段节SC(n)的名称的展开显示。
此处,在折叠显示中,与子节点对应的段节SC(n)的名称未被显示,因此所述折叠显示例如适合作为用户仅想要确认属于上位层级的段节SC(m)时的显示形式。
与此相对,在展开显示中,与子节点对应的段节SC(n)的名称被显示,因此所述展开显示例如适合作为用户想要确认相对于某段节SC而设定为子节点的段节SC时的显示形式。
因此,开发支持装置10起到下述效果:能够以与用户所期望的级别相应的显示形式来显示多个段节SC的各者。
(关于错误显示)
图8是除了存在错误的段节SC以外,还强调显示相对于此段节SC属于上位层级的段节SC的示例。开发支持装置10(例如执行部120)对于构成程序PG的多个段节SC的各者,判定对应的程序(源代码)是否存在错误。并且,开发支持装置10(显示控制部130)强调显示判定为存在错误的段节SC。显示控制部130除了判定为存在错误的段节SC以外,对于与将判定为存在错误的段节SC设为子孙节点的祖先节点对应的段节SC也执行强调显示。
所谓“错误”,例如是指语法上的错误,换言之,是指欲对与段节SC对应的程序(源代码)进行编译时无法编译的记载(内容)。
例如,图8所示的示例中,对于UnitSection、Unit_WorkSection、Unit_WorkFunctionSectionB这三个段节SC,设定有以下的母子关系(祖先-子孙)。
即,对于UnitSection与Unit_WorkSection之间,设有将UnitSection设为母节点、将Unit_WorkSection设为子节点的母子关系。对于Unit_WorkSection与Unit_WorkFunctionSectionB之间,设定有将Unit_WorkSection设为母节点、将Unit_WorkFunctionSectionB设为子节点的母子关系。即,对于UnitSection与Unit_WorkFunctionSectionB之间,设定有将UnitSection设为母(祖先)节点、将Unit_WorkFunctionSectionB设为孙节点的祖先-子孙关系。
当由执行部120判定为“Unit_WorkFunctionSectionB存在错误”时,显示控制部130强调显示被判定为“存在错误”的Unit_WorkFunctionSectionB。
进而,显示控制部130对于与『将被判定为“存在错误”的Unit_WorkFunctionSectionB设为子孙节点的祖先节点』对应的段节SC也执行强调显示。即,显示控制部130强调显示UnitSection以及Unit_WorkSection。
因此,在图8所示的图像例中,强调显示了UnitSection、Unit_WorkSection以及Unit_WorkFunctionSectionB。
如使用图8所说明的那样,开发支持装置10(显示控制部130)在属于下位层级的段节SC(n)的内容(程序、源代码)存在语法上的错误(编译时成为错误的记载)时,执行以下的显示。即,显示控制部130除了段节SC(n)的名称以外,还显示比起段节SC(n)所属的层级属于上位层级的段节SC的名称。
具体而言,显示控制部130将与将段节SC(n)设为子孙节点的树结构中的祖先节点对应的段节SC的名称跟段节SC(n)的名称一并予以显示。即,显示控制部130在错误通知时,能够将与将存在错误的段节SC设为子孙节点的树结构中的祖先节点对应的段节SC的名称跟存在错误的段节SC的名称一并通知给用户。
如至此为止所说明的那样,在开发支持装置10中,显示控制部130在程序PG中的某记载内容在语法上错误时,除了包含所述某记载内容的段节SC的识别信息(名称)以外,还显示以下的信息。即,显示控制部130除了包含所述某记载内容的段节SC的名称以外,还将与将包含所述某记载内容的段节SC设为子孙节点的树结构中的祖先节点对应的段节SC的名称显示为包含错误的段节SC的名称。
根据所述结构,开发支持装置10在程序PG中的某记载内容在语法上错误时,显示包含所述某记载内容的段节SC的名称和与“包含所述某记载内容的段节SC”的祖先节点对应的段节SC的名称。
因此,开发支持装置10起到下述效果:使用户不仅能确认包含在语法上错误的记载内容的段节SC,还能确认与“包含在语法上错误的记载内容的段节SC”的祖先节点对应的段节SC。
(关于将段节群作为单位的处理)
当有将“处于祖先-子孙关系的两个以上段节SC的、与祖先节点对应的段节SC”设为执行顺序PS的变更、剪切、复制、导出等处理的对象的用户操作时,开发支持装置10执行以下的处理。即,开发支持装置10(选择部122)选择段节群SG作为所述处理的对象,所述段节群SG包含与祖先节点对应的段节SC和跟相对于与祖先节点对应的段节SC的子孙节点对应的所有段节。
例如,当有选择段节SC(m)来作为所述处理的对象的用户操作时,选择部122除了段节SC(m)以外,还选择以下的段节SC来作为所述处理的对象。即,选择部122除了由用户所选择的段节SC(m)以外,还选择与将段节SC(m)设为祖先节点的子孙节点对应的所有段节SC来作为所述处理的对象。
(关于段节群中的两个以上的段节的相对位置关系的维持)
开发支持装置10在将段节群SG作为单位来执行处理的情况下,不变更构成段节群SG的两个以上的段节SC各自的层级编号HN,而统一变更例如各自的执行顺序EO(在程序PG中的记载位置PS)。
尤其,开发支持装置10在将段节群SG作为单位来执行处理的情况下,不变更构成段节群SG的两个以上的段节SC在段节群SG中的相对位置关系(顺序关系)。即,开发支持装置10在将段节群SG作为单位来执行处理的情况下,不变更构成段节群SG的两个以上的段节SC各自的“相对执行顺序OE'(相对记载位置PS')”。
例如,设段节群SG(p)包含段节SC(p)、与将段节SC(p)设为祖先节点的子孙节点对应的段节SC(p+1)、段节SC(p+2)、…、段节SC(p+n)。
而且,段节群SG(p)中的段节SC(p)至段节SC(p+n)的各自的相对执行顺序OE'设为段节SC(p)、段节SC(p+1)、段节SC(p+2)、…、段节SC(p+n)的顺序。即,段节群SG(p)中的段节SC(p)至段节SC(p+n)各自的相对记载位置PS'自上起设为段节SC(p)、段节SC(p+1)、段节SC(p+2)、…、段节SC(p+n)。
此时,例如当有变更段节群SG(p)的记载位置PS的用户操作时,开发支持装置10不变更段节群SG(p)中的两个以上的段节SC之间的位置关系,而变更段节群SG(p)的记载位置PS。换言之,开发支持装置10不变更段节群SG(p)中的两个以上的段节SC之间的顺序关系,而变更段节群SG(p)的记载位置PS。
在段节群SG(p)的记载位置PS的变更前后,段节群SG(p)中的段节SC(p)至段节SC(p+n)各自的“相对执行顺序EO'”不变。即,在段节群SG(p)中,以“段节SC(p)、段节SC(p+1)、段节SC(p+2)、…、段节SC(p+n)”的顺序来执行构成段节群SG(p)的段节SC这点未变更。
换言之,在段节群SG(p)的记载位置PS的变更前后,段节群SG(p)中的段节SC(p)至段节SC(p+n)各自的“相对记载位置PS'”不变。即,在段节群SG(p)中,以“段节SC(p)、段节SC(p+1)、段节SC(p+2)、…、段节SC(p+n)”的顺序来记载有构成段节群SG(p)的段节SC这点未变更。
例如,当通过段节群SG(p)的记载位置PS的变更而程序PG中的段节SC(p)的记载位置PS(p)由“x”变更为“y”时,开发支持装置10(顺序管理部123)执行以下的处理。即,顺序管理部123将段节SC(p)的执行顺序EO(p)由“x”变更为“y”。而且,顺序管理部123将段节SC(p+1)的执行顺序EO(p+1)由“x+1”变更为“y+1”。进而,顺序管理部123将段节SC(p+2)的执行顺序EO(p+2)由“x+2”变更为“y+2”。同样地,顺序管理部123将段节SC(p+n)的执行顺序EO(p+n)由“x+n”变更为“y+n”。
因此,开发支持装置10例如能够使得“用户对于处于祖先-母子关系的两个以上的段节SC,不变更它们之间的相对位置关系(顺序关系)而统一变更它们的记载位置PS”。不仅“执行顺序EO的变更”,对于“剪切”、“复制”、“粘贴”、“导入”及“导出”等处理也同样。
即,开发支持装置10中,用户能够将段节群SG作为单位来执行执行顺序EO的变更、剪切、复制、粘贴、导入、导出及层级的变更中的至少一种。所谓段节群SG,是指包含(1)一个段节SC和(2)与将所述一个段节SC设为祖先节点的子孙节点对应的所有段节SC、的段节SC的集合。
根据所述结构,开发支持装置10能够使得“用户将段节群SG作为单位来执行执行顺序EO的变更、剪切、复制、粘贴、导入、导出及层级的变更中的至少一者”。
此处,段节群SG包含(1)与祖先节点对应的段节SC、以及(2)与相对于作为所述祖先节点的段节SC的子孙节点对应的所有段节SC。并且,构成段节群SG的两个以上的段节SC之间的母子关系是由开发支持装置10根据“用户对所述两个以上的段节SC之间任意设定”的层级关系而设定。因此,段节群SG是用户对构成程序PG的多个段节SC任意设定的单位,可理解为包含两个以上的段节SC的单位。
因此,开发支持装置10起到下述效果:“用户对于多个段节SC,能够以任意设定的单位”来执行执行顺序EO的变更、剪切、复制、粘贴、导入、导出及层级的变更中的至少一种。
开发支持装置10包括选择部122。选择部122在有选择段节SC(m)的用户操作时,选择段节群SG(m)来作为对象,所述段节群SG(m)包含段节SC(m)和与将段节SC(m)设为祖先节点的树结构中的子孙节点对应的所有段节SC。
根据所述结构,开发支持装置10在有选择段节SC(m)的用户操作时,选择“包含段节SC(m)和与段节SC(m)的子孙节点对应的所有段节SC的段节群SG(m)”来作为对象。
此处,段节群SG(m)包含段节SC(m)和与相对于作为祖先节点的段节SC(m)的子孙节点对应的所有段节SC。并且,构成段节群SG(m)的两个以上的段节SC之间的母子关系是由开发支持装置10根据“用户对所述两个以上的段节SC之间任意设定”的层级关系而设定。因此,段节群SG是用户对构成程序PG的多个段节SC任意设定的单位,可理解为包含两个以上的段节SC的单位。并且,选择段节SC(m)的用户操作可理解为如下所述用户操作。即,可理解为选择段节群SG(m)来作为处理对象的用户操作,所述段节群SG(m)“包含段节SC(m)和与将段节SC(m)设为祖先节点的树结构中的子孙节点对应的所有段节SC”。
因此,开发支持装置10起到下述效果:当用户选择段节SC(m)时,能够根据“用户对于多个段节SC任意设定的单位”来选择包含段节SC(m)的两个以上的段节SC。换言之,开发支持装置10起到下述效果:当由用户选择了段节SC(m)时,能够与所述选择对应地选择将段节SC(m)设为祖先节点的段节群SG(m)。即,开发支持装置10起到下述效果:当段节SC(m)受到选择时,能够选择包含段节SC(m)和由用户关联至段节SC(m)的另一段节SC的段节群SG(m)来作为所选择的对象。
以下说明开发支持装置10将段节群SG作为单位来执行的执行顺序EO(记载位置PS)的变更、剪切、复制、粘贴、导入及导出等处理。
(关于将段节群作为单位的记载位置的变更例)
图9是说明以段节群SG为单位来统一变更段节群SG中所含的多个段节SC的记载位置PS的用户操作的一例的图。具体而言,图9表示了下述状况,即,“关于彼此属于相同层级的FrameSection(段节SC(1))与UnitSection(段节SC(5)),有调换两者的记载位置PS的用户操作”。图9的左侧所示的图像例是在开发支持装置10(显示控制部130)执行与所述用户操作对应的处理之前所显示的图像例。图9的右侧所示的图像例是在开发支持装置10(显示控制部130)执行了与所述用户操作对应的处理后所显示的图像例。
图9的左侧所示的图像例中,以下的三个段节SC各自对应于“将FrameSection(段节SC(1))设为祖先节点的树结构中的、子孙节点”。即,Frame_InitializeSection(段节SC(2))、Frame_Validation(段节SC(3))、Frame_WorkSection(段节SC(4))各自对应于子孙节点。
因此,图9的说明中,将处于祖先-子孙关系的段节SC(1)至段节SC(4)为止的四个段节SC的集合称作段节群SG(1)。
而且,图9的左侧所示的图像例中,以下的两个段节SC各自对应于“将UnitSection(段节SC(5))设为祖先节点的树结构中的、子孙节点”。即,Unit_InitializeSection(段节SC(6))以及Unit_WorkSection(段节SC(7))各自对应于子孙节点。进而,以下的三个段节SC各自对应于“将Unit_WorkSection(段节SC(7))设为祖先节点的树结构中的、子孙节点”。即,Unit_WorkFunctionSectionA(段节SC(8))、Unit_WorkFunctionSectionB(段节SC(9))、Unit_WorkFunctionSectionC(段节SC(10))各自对应于子孙节点。
因此,图9的说明中,将处于祖先-子孙关系的段节SC(5)至段节SC(10)为止的六个段节SC的集合称作段节群SG(5)。
如图9所例示的那样,用户通过利用开发支持装置10,能够将构成段节群SG(1)的四个段节SC各自的记载位置PS统一变更为段节群SG(5)的记载位置PS之下的位置。具体而言,用户能够将段节群SG(1)的记载位置PS变更为段节群SG(5)中记载位置PS位于最下的段节SC(10)的记载位置PS(10)的正下方的位置。
并且,在已将记载位置PS变更为段节群SG(5)的记载位置PS之下的位置的段节群SG(1)中,构成段节群SG(1)的四个段节SC各自的相对记载位置PS'未被变更。即,在图9的左侧的图像例与图9的右侧的图像例中,段节SC(1)的记载位置PS(1)处于段节SC(2)的记载位置PS(2)的正上方而未变更。在图9的左侧的图像例与图9的右侧的图像例中,段节SC(2)的记载位置PS(2)处于段节SC(3)的记载位置PS(3)的正上方而未变更。在图9的左侧的图像例与图9的右侧的图像例中,段节SC(3)的记载位置PS(3)处于段节SC(4)的记载位置PS(4)的正上方而未变更。在图9的左侧的图像例与图9的右侧的图像例中,段节SC(4)的记载位置PS(4)在记载位置PS(1)至记载位置PS(4)中位于最下而未变更。
如使用图9所说明的那样,在段节SC(p)与段节SC(q)属于相同层级的情况下,用户能够像以下那样将段节群SG作为单位来进行记载位置PS的调换。即,用户能够调换将段节SC(p)设为祖先节点的段节群SG(p)的记载位置PS与将段节SC(q)设为祖先节点的段节群SG(q)的记载位置PS。用户通过选择段节SC(p),能够将属于段节SC(p)之下的层级的段节SC也包含在内而将这些段节SC的记载位置PS调换为与段节SC(p)为同层级的段节SC(q)的记载位置PS。更准确而言,用户通过选择段节SC(p),能够使将段节SC(p)设为祖先节点的段节群SG(p)的记载位置PS调换为将段节SC(q)设为祖先节点的段节群SG(q)的记载位置PS。并且,用户能够不变更构成段节群SG的两个以上的段节SC之间的相对位置关系而变更段节群SG的记载位置PS。
(关于在将段节群作为单位的记载位置的变更时所执行的处理)
图9中,对于受理所述用户操作之前的程序PG,即,对于构成图9的左侧所示的图像例中的程序PG的十一个段节SC的各者,顺序管理部123像以下那样设定各自的执行顺序EO。
即,对于图9的左侧所示的图像例中的程序PG中的FrameSection这一段节SC(1),顺序管理部123将其执行顺序EO(1)设为“1”。而且,对于Frame_InitializeSection这一段节SC(2),顺序管理部123将其执行顺序EO(2)设为“2”。进而,对于Frame_Validation这一段节SC(3),顺序管理部123将其执行顺序EO(3)设为“3”。
同样地,顺序管理部123将Frame_WorkSection这一段节SC(4)的执行顺序EO(4)设为“4”,将UnitSection这一段节SC(5)的执行顺序EO(5)设为“5”。顺序管理部123将Unit_InitializeSection这一段节SC(6)的执行顺序EO(6)设为“6”,将Unit_WorkSection这一段节SC(7)的执行顺序EO(7)设为“7”。顺序管理部123将Unit_WorkFunctionSectionA这一段节SC(8)的执行顺序EO(8)设为“8”,将Unit_WorkFunctionSectionB这一段节SC(9)的执行顺序EO(9)设为“9”。顺序管理部123将Unit_WorkFunctionSectionC这一段节SC(10)的执行顺序EO(10)设为“10”,将InspectionSection这一段节SC(11)的执行顺序EO(11)设为“11”。
图9中,对于受理了所述用户操作之后的程序PG,即,对于构成图9的右侧所示的图像例中的程序PG的十一个段节SC的各者,顺序管理部123像以下那样设定各自的执行顺序EO。
即,对于图9的左侧所示的图像例中的程序PG中的UnitSection这一段节SC(5),顺序管理部123将其执行顺序EO(5)设为“1”。而且,对于Unit_InitializeSection这一段节SC(6),顺序管理部123将其执行顺序EO(6)设为“2”。进而,对于Unit_WorkSection这一段节SC(7),顺序管理部123将其执行顺序EO(7)设为“3”。
同样地,顺序管理部123将Unit_WorkFunctionSectionA这一段节SC(8)的执行顺序EO(8)设为“4”。顺序管理部123将Unit_WorkFunctionSectionB这一段节SC(9)的执行顺序EO(9)设为“5”。顺序管理部123将Unit_WorkFunctionSectionC这一段节SC(10)的执行顺序EO(10)设为“6”。顺序管理部123将FrameSection这一段节SC(1)的执行顺序EO(1)设为“7”,将Frame_InitializeSection这一段节SC(2)的执行顺序EO(2)设为“8”。顺序管理部123将Frame_Validation这一段节SC(3)的执行顺序EO(3)设为“9”,将Frame_WorkSection这一段节SC(4)的执行顺序EO(4)设为“10”。顺序管理部123将InspectionSection这一段节SC(11)的执行顺序EO(11)设为“11”。
即,顺序管理部123在由用户变更了段节群SG的记载位置PS时,根据变更后的记载位置PS,统一变更构成段节群SG的两个以上的段节SC各自的执行顺序EO。
如至此为止使用图9所说明的那样,开发支持装置10在有调换彼此属于相同层级的两个段节SC的记载位置PS的用户操作时,将与各自的子孙节点对应的段节SC也包含在内而执行记载位置PS的变更。例如,开发支持装置10在受理了“调换段节SC(p)的记载位置PS(p)、与属于跟段节SC(p)所属的层级相同的层级的段节SC(q)的记载位置PS(q)”的用户操作时,执行以下的处理。
即,开发支持装置10(选择部122)选择『包含段节SC(p)和与“将段节SC(p)设为祖先节点的子孙节点”对应的所有段节SC的段节群SG(p)』来作为记载位置PS的变更对象。而且,选择部122选择『包含段节SC(q)和与“将段节SC(q)设为祖先节点的子孙节点”对应的所有段节SC的段节群SG(q)』来作为记载位置PS的变更对象。开发支持装置10(执行部120)根据用户操作来调换段节群SG(m)的记载位置PS与段节群SG(n)的记载位置PS。并且,开发支持装置10(顺序管理部123)根据变更后的记载位置PS,统一变更构成段节群SG(m)以及段节群SG(n)的各者的、两个以上的段节SC各自的执行顺序EO。
开发支持装置10能够将包含两个以上的段节SC的段节群SG作为单位来变更段节SC在程序中的记载位置PS。即,开发支持装置10能够使得“用户统一变更两个以上的段节SC的记载位置PS”。
如至此为止所说明的那样,开发支持装置10包括对多个段节SC各自的执行顺序EO进行管理的顺序管理部123。顺序管理部123与段节SC所属的层级无关地,对应于段节SC在程序PG中的记载位置PS来决定段节SC的执行顺序EO。具体而言,顺序管理部123将段节SC的执行顺序EO决定为,程序PG中的记载位置PS位于上方的段节SC的执行顺序EO比记载位置PS位于下方的段节SC的执行顺序EO早。
根据所述结构,开发支持装置10与段节SC所属的层级无关地,依据“按照记载位置PS由上往下的顺序依次执行”这一简单的规则而决定段节SC的执行顺序EO。
段节SC的执行顺序EO是依据“按照记载位置PS由上往下的顺序依次执行”这一简单的规则而决定,因此用户能够容易地理解多个段节SC各自的执行顺序EO。并且,“用户能够容易地理解多个段节SC各自的执行顺序EO”这一点能够评估为段节SC的便利性。
因此,开发支持装置10起到下述效果:既能维持段节SC的便利性,又能使得『用户以反映出“装置的工序及功能”等彼此处于包含关系的信息的形态来管理多个段节SC』。
当有使将段节SC(p)设为祖先节点的段节群SG(p)配置到属于与段节SC(p)所属的层级相同的层级的段节SC(q)之前最近的位置的用户操作时,顺序管理部123执行以下的处理。即,顺序管理部123对于段节群SG(p)中所含的两个以上的段节SC,不变更段节群SG(p)中的各自的相对执行顺序EO。且,顺序管理部123将段节群SG(p)中所含的段节SC中的、记载位置PS位于最下的段节SC的执行顺序EO,设为段节SC(q)的执行顺序EO(q)的前一个的执行顺序EO。
此处,将段节SC(p)设为祖先节点的段节群SG(p)包含段节SC(p)和与将段节SC(p)设为祖先节点的树结构中的子孙节点对应的所有段节SC。
根据所述结构,开发支持装置10在有使将段节SC(p)设为祖先节点的段节群SG(p)配置到属于与段节SC(p)所属的层级相同的层级的段节SC(q)之前最近的位置的用户操作时,执行以下的处理。即,开发支持装置10将段节群SG(p)中所含的段节SC中的、记载位置PS位于最下的段节SC的执行顺序EO,设为段节SC(q)的执行顺序EO(q)的前一个的执行顺序EO。并且,开发支持装置10对于段节群SG(p)中所含的两个以上的段节SC,不变更各自的“相对执行顺序EO'”,即,不变更各自在段节SC(p)群中的相对顺序关系。
因此,开发支持装置10起到下述效果:能够通过“用户对于多个段节SC任意设定的单位”,来统一变更段节群SG(p)中所含的两个以上的段节SC各自的执行顺序EO。即,开发支持装置10起到下述效果:能够将段节群SG(p)中所含的两个以上的段节SC各自的执行顺序EO统一变更到段节SC(q)的执行顺序EO(q)之前。
当有使将段节SC(p)设为祖先节点的段节群SG(p)配置到属于与段节SC(p)所属的层级相同的层级的段节SC(q)之后最近的位置的用户操作时,顺序管理部123执行以下的处理。即,顺序管理部123对于段节群SG(p)中所含的两个以上的段节SC,不变更段节群SG(p)中的各自的相对执行顺序EO。且,顺序管理部123将段节SC(p)的执行顺序EO(p)设为“与将段节SC(q)设为祖先节点的树结构中的子孙节点对应的段节SC中的、记载位置PS位于最下的段节SC”的执行顺序EO的后一个。
此处,将段节SC(p)设为祖先节点的段节群SG(p)包含段节SC(p)和与将段节SC(p)设为祖先节点的树结构中的子孙节点对应的所有段节SC。
根据所述结构,开发支持装置10在有使将段节SC(p)设为祖先节点的段节群SG(p)配置到属于与段节SC(p)所属的层级相同的层级的段节SC(q)之后最近的位置的用户操作时,执行以下的处理。即,开发支持装置10将段节SC(p)的执行顺序EO(p)设为“与相对于作为祖先节点的段节SC(q)的子孙节点对应的段节SC中的、记载位置PS位于最下的段节SC”的执行顺序EO的后一个。并且,开发支持装置10对于段节群SG(p)中所含的两个以上的段节SC,不变更各自的“相对执行顺序EO'”,即,不变更各自在段节群SG(p)中的相对顺序关系。
因此,开发支持装置10起到下述效果:能够通过“用户对于多个段节SC任意设定的单位”,来统一变更段节群SG(p)中所含的两个以上的段节SC各自的执行顺序EO。即,开发支持装置10起到下述效果:能够将段节群SG(p)中所含的两个以上的段节SC各自的执行顺序EO统一变更到段节SC(q)的执行顺序EO(q)之后。
(关于将段节群作为单位的剪切、复制、粘贴等的示例)
图10是说明以段节群SG为单位来统一“剪切”段节群SG中所含的多个段节SC的用户操作、以及统一“粘贴”段节群SG中所含的多个段节SC的用户操作的一例的图。
图10的左侧所示的图像例与图9的左侧所示的图像例相同。因此,图10的说明中,与图9同样地,将处于祖先-子孙关系的段节SC(1)至段节SC(4)为止的四个段节SC的集合称作段节群SG(1)。即,将FrameSection(段节SC(1))至Frame_WorkSection(段节SC(4))为止的四个段节SC的集合称作段节群SG(1)。
同样地,图10的说明中,将处于祖先-子孙关系的段节SC(5)至段节SC(10)为止的六个段节SC的集合称作段节群SG(5)。即,将UnitSection(段节SC(5))至Unit_WorkFunctionSectionC(段节SC(10))为止的六个段节SC的集合称作段节群SG(5)。
(关于将段节群作为单位的“剪切”处理)
当有从图10的左侧所示的图像例中的“程序PG:ST_Program0”“剪切”段节群SG(1)的用户操作(剪切(CUT))时,开发支持装置10执行以下的处理。
首先,开发支持装置10使保存有段节SC(1)至段节SC(4)的各者的第一段节表170(1)至第四段节表170(4)各自从程序表160移动到未图示的临时保存表。
接下来,顺序管理部123对于程序PG中的UnitSection这一段节SC(5),将其执行顺序EO(5)设为“1”。而且,对于Unit_InitializeSection这一段节SC(6),顺序管理部123将其执行顺序EO(6)设为“2”。进而,对于Unit_WorkSection这一段节SC(7),顺序管理部123将其执行顺序EO(7)设为“3”。
同样地,顺序管理部123将Unit_WorkFunctionSectionA这一段节SC(8)的执行顺序EO(8)设为“4”。顺序管理部123将Unit_WorkFunctionSectionB这一段节SC(9)的执行顺序EO(9)设为“5”。顺序管理部123将Unit_WorkFunctionSectionC这一段节SC(10)的执行顺序EO(10)设为“6”。顺序管理部123将InspectionSection这一段节SC(11)的执行顺序EO(11)设为“7”。
显示控制部130根据第一段节表170(1)至第四段节表170(4)为止的四个段节表170已被删除且由顺序管理部123如上述那样进行了更新的程序表160来执行显示。
(关于将段节群作为单位的“粘贴”处理)
当有粘贴刚刚从程序PG剪切的段节群SG(1)的用户操作时,开发支持装置10执行以下的处理。
首先,开发支持装置10使保存有段节SC(1)至段节SC(4)的各者的第一段节表170(1)至第四段节表170(4)各自从未图示的临时保存表移动至程序表160。
接下来,顺序管理部123根据粘贴段节群SG(1)的位置,对构成段节群SG(1)的两个以上的段节SC各自的执行顺序EO进行更新。例如,当通过粘贴段节群SG(1)的用户操作而段节群SG(1)如图10的右侧所例示的那样被粘贴至粘贴前的程序PG的最后的位置时,顺序管理部123执行以下的处理。
即,顺序管理部123将FrameSection这一段节SC(1)的执行顺序EO(1)设为“8”,将Frame_InitializeSection这一段节SC(2)的执行顺序EO(2)设为“9”。顺序管理部123将Frame_Validation这一段节SC(3)的执行顺序EO(3)设为“10”,将Frame_WorkSection这一段节SC(4)的执行顺序EO(4)设为“11”。
并且,显示控制部130按照由顺序管理部123如上述那样进行了更新的程序表160(以及段节表170)来执行显示,具体而言,显示图10的右侧所例示的画面例。
(关于将段节群作为单位的复制、导入、导出等的示例)
当有复制段节群SG(1)的用户操作时,开发支持装置10(执行部120)执行以下的处理。即,执行部120从程序表160中复制第一段节表170(1)至第四段节表170(4)的各者,并将所复制的所述四个表追加至未图示的临时保存表。
当有导出段节群SG(1)的用户操作时,开发支持装置10(执行部120)执行以下的处理。即,执行部120导出在第一段节表170(1)至第四段节表170(4)的各者中保存的信息。具体而言,执行部120导出段节SC(1)至段节SC(4)各自的名称(识别信息)、执行次序EO、层级编号HN、所述段节SC中的程序PG(源代码)的内容。
当有导入“包含段节SC(m)和与将段节SC(m)设为祖先节点的树结构中的子孙节点对应的一个以上的段节SC的段节群SG(m)”的用户操作时,开发支持装置10执行以下的处理。
即,首先,追加部140将用于保存构成段节群SG(m)的两个以上的段节SC的各者的、两个以上的段节表170追加至程序表160。然后,追加部140将构成段节群SG(m)的两个以上的段节SC各自保存到追加至程序表160的两个以上的段节表170的各者中。
而且,顺序管理部123对于由追加部140保存至两个以上的段节表170的各者中的、构成段节群SG(m)的两个以上的段节SC分别更新其执行顺序OR。
具体而言,顺序管理部123对于构成段节群SG(m)的两个以上的段节SC的各者,不变更各自在段节群(m)中的“相对执行顺序EO'”,而设定各自的执行顺序EO。即,顺序管理部123以构成段节群SG(m)的两个以上的段节SC各自的相对顺序关系(相对位置关系)不受变更的方式来设定这些段节SC各自的执行顺序EO。
例如,设段节群SG(m)包含段节SC(m)、段节SC(m+1)、段节SC(m+2)、…、段节SC(m+n),且这些段节SC各自的执行顺序OR为此顺序。并且,设在段节群SG(m)的导入前的程序表160中,在保存有执行顺序EO最晚的段节SC的段节表170的执行顺序OP中保存了“x”。
此时,当由追加部140将“保存有构成段节群SG(m)的两个以上的段节SC的各者的、两个以上的段节表170”追加到程序表160中时,顺序管理部123执行以下的处理。
即,顺序管理部123在保存有段节SC(m)的段节表170(m)的执行顺序OP中保存“x+1”。而且,顺序管理部123在保存有段节SC(m+1)的段节表170(m+1)的执行顺序OP中保存“x+2”,在保存有段节SC(m+2)的段节表170(m+2)的执行顺序OP中保存“x+3”。同样地,顺序管理部123在保存有段节SC(m+n)的段节表170(m+n)的执行顺序OP中保存“x+n+1”。
即,开发支持装置10在有导入段节群SG(m)的用户操作时,执行以下的处理。即,开发支持装置10不变更构成段节群SG(m)的两个以上的段节SC的各自的相对执行顺序EO',而将保存有这些段节SC的各者的两个以上的段节表170追加至程序表160。
如至此为止使用图10所说明的那样,开发支持装置10在有选择段节SC(m)来作为剪切、复制、粘贴、导入及导出中的至少一个处理的对象的用户操作时,执行以下的处理。即,开发支持装置10选择『包含段节SC(m)和与“将段节SC(m)设为祖先节点的子孙节点”对应的所有段节SC的段节群SG(m)』来作为所述处理的对象。
因此,开发支持装置10能够使得『用户与所选择的段节SC(m)一同对与“将段节SC(m)设为祖先节点的子孙节点”对应的所有段节SC进行剪切、复制或导出』。开发支持装置10能够使得“用户将两个以上的段节SC统一选择为对象,以作为剪切、复制、粘贴、导入及导出中的至少一个处理的对象”。即,用户通过利用开发支持装置10,能够通过选择某段节SC(m)而将包含位于段节SC(m)所属的层级之下的层级的段节SC的段节群SG(m)作为单位来进行剪切等操作。
如至此为止所说明的那样,开发支持装置10包括追加部140。追加部140在有导入段节群SG(m)的用户操作时,将构成段节群SG(m)的两个以上的段节SC的各者不变更各自所属的层级而保存至存储部100。具体而言,追加部140将用于保存构成段节群SG(m)的两个以上的段节SC的各者的、两个以上的段节表170追加至程序表160。然后,追加部140将构成段节群SG(m)的两个以上的段节SC的各者不变更各自的层级编号HN而保存到追加至程序表160的两个以上的段节表170的各者中。
而且,当由追加部140将“各自保存构成段节群SG(m)的两个以上的段节SC的各者”的、两个以上的段节表170追加至程序表160时,顺序管理部123执行以下的处理。
即,顺序管理部123将构成段节群SG(m)的两个以上的段节SC中的、执行顺序EO为最前的段节SC的执行顺序EO,设为在进行导入之前的时间点最晚执行的段节SC的执行顺序EO的后一个。
具体而言,顺序管理部123将段节群SG(m)中与祖先节点对应的段节SC(m)的执行顺序EO(m),设为在进行导入之前的时间点最晚执行的段节SC的执行顺序EO的后一个。例如,在进行导入之前的时间点最晚执行的段节SC为段节SC(x),当其执行顺序EO为“x”时,顺序管理部123将段节SC(m)的执行顺序EO(m)设为“x+1”。
而且,顺序管理部123对于构成段节群SG(m)的两个以上的段节SC的各者,不变更各自在段节群(m)中的“相对执行顺序EO'”(即,相对顺序关系)而设定各自的执行顺序EO。
此处,段节群SG(m)包含段节SC(m)和与将段节SC(m)设为祖先节点的树结构中的子孙节点对应的所有段节SC。
根据所述结构,开发支持装置10在有导入将段节SC(m)设为祖先节点的段节群SG(m)的用户操作时,将构成段节群SG(m)的两个以上的段节各自保存至存储部100。尤其,开发支持装置10维持着构成段节群SG(m)的两个以上的段节SC之间的祖先-子孙关系而将段节群SG(m)保存至存储部100。
具体而言,开发支持装置10将构成段节群SG(m)的两个以上的段节SC的各者不变更各自所属的层级(即,各自的层级编号HN)而保存至存储部100(尤其是段节表170)。并且,开发支持装置10不变更构成段节群SG(m)的两个以上的段节SC的“相对执行顺序EO'”,而将段节SC(m)的执行顺序EO(m)设为段节SC(x)的执行顺序EO(x)的后一个。段节SC(x)是在进行导入之前的时间点最晚执行的段节SC。
因此,开发支持装置10起到下述效果:能够取代一个一个地导入两个以上的段节SC的操作,而一次性导入由用户彼此赋予了母子关系(祖先-子孙关系)的两个以上的段节SC。
尤其,开发支持装置10起到下述效果:能够将由用户彼此赋予了母子关系(祖先-子孙关系)的两个以上的段节SC维持着它们之间的祖先-子孙关系而一次性导入。
(关于更新前后的比较结果的显示例)
图11是表示显示程序PG的更新前后的比较结果的图像例的图。开发支持装置10(尤其是比较部124)在程序PG受到更新时,对更新前的程序PG与更新后的程序PG进行比较。并且,开发支持装置10(尤其是显示控制部130)显示比较部124对更新前后的程序PG的比较结果,例如显示图11所示的图像例作为比较结果。
比较部124在更新前后的程序PG的比较中,对更新前的构成程序PG的多个段节SC的各者与更新后的构成程序PG的多个段节SC的各者进行比较。
比较部124在更新前的程序PG与更新后的程序PG中,例如比较对应次序(记载位置PS)的段节SC彼此,即,比较执行顺序EO相同的段节SC彼此。由于执行顺序EO仅由记载位置PS所决定,因此也可换言之为:“比较部124在更新前的程序PG与更新后的程序PG中比较记载位置PS相同的段节SC彼此”。
具体而言,比较部124对更新前的程序PG中记载位置PS位于最前的段节SC(1)与更新后的程序PG中记载位置PS位于最前的段节SC(1)进行比较。而且,比较部124对更新前的程序PG中记载位置PS位于从上起第二个的段节SC(2)与更新后的程序PG中记载位置PS位于从上起第二个的段节SC(2)进行比较。同样地,比较部124对更新前的程序PG中记载位置PS位于从上起第三个的段节SC(3)与更新后的程序PG中记载位置PS位于从上起第三个的段节SC(3)进行比较。
即,比较部124对更新前的程序PG中记载位置PS位于从上起第x个的段节SC(m)与更新后的程序PG中记载位置PS位于从上起第x个的段节SC(m)进行比较。
比较部124在更新前的程序PG中的段节SC(m)与更新后的程序PG中的段节SC(m)中,例如对两者的名称(识别信息)、层级编号HN以及程序(源代码)各自进行比较。
具体而言,比较部124对更新前的程序PG中的段节SC(m)的名称与更新后的程序PG中的段节SC(m)的名称进行比较,并将比较结果通知给显示控制部130。而且,比较部124对更新前的程序PG中的段节SC(m)的层级编号HN与更新后的程序PG中的段节SC(m)的层级编号HN进行比较,并将比较结果通知给显示控制部130。进而,比较部124对更新前的程序PG中的段节SC(m)的程序(源代码)与更新后的程序PG中的段节SC(m)的程序(源代码)进行比较,并将比较结果通知给显示控制部130。
当由比较部124关于段节SC(m)而判定为“在更新前后,两者的名称、层级编号HN以及程序中的至少一者不同”时,显示控制部130强调显示段节SC(m)。显示控制部130也可在强调显示段节SC(m)时,对于与“将段节SC(m)设为子孙节点的祖先节点”对应的段节SC也执行强调显示。
图11所示的示例中,显示控制部130强调显示了“变量表”、“段节0”、“段节3”,以作为存在名称、层级编号HN以及内容(源代码)的至少一个变更的段节SC。而且,强调显示了包含这些段节SC的“程序0”。
即,开发支持装置10(尤其是比较部124)在程序PG被用户更新时,由于段节SC的记载位置PS与段节SC的执行顺序EO无关系,因此比较对应次序(记载位置PS)的段节SC彼此。而且,开发支持装置10(尤其是比较部124)比较对应次序(记载位置PS)的层级编号HN。
换言之,开发支持装置10在程序PG被用户更新(变更)时,对更新前的程序PG中的段节SC的层级信息(层级编号HN)与更新后的程序PG中的段节SC的层级信息进行比较。而且,开发支持装置10对更新前的程序PG中的段节SC的内容(源代码)与更新后的程序PG中的段节SC的内容进行比较。
进而,开发支持装置10能够对更新前的程序PG中的段节SC的内容(源代码)与更新后的程序PG中的段节SC的内容进行归并。例如,开发支持装置10能够在更新前的程序PG与更新后的程序PG中,对于对应次序(记载位置PS)的段节SC彼此的内容(源代码)进行归并。
如至此为止所说明的那样,开发支持装置10包括比较部124。比较部124在比较程序PG的更新前与更新后时,比较段节SC(m)的更新前的层级与更新后的层级是否一致。
根据所述结构,开发支持装置10在比较程序PG的更新前与更新后时,比较段节SC(m)的更新前的层级与更新后的层级是否一致。
因此,开发支持装置10起到下述效果:“用户能够在更新前后确认仅其所属的层级受到了变更的段节SC”。
§4.变形例
至此为止,说明了显示控制部130显示构成程序PG的多个段节SC的各者的示例。但是,也可为,显示控制部130可切换显示构成程序PG的多个段节SC的各者的“段节显示模式”与显示构成程序PG的多个POU的“POU显示模式”。显示控制部130也可在“POU显示模式”中显示构成程序PG的多个POU之间的逻辑关系(调用关系)。
而且,至此为止,说明了比较部124在更新前的程序PG与更新后的程序PG中比较对应次序(记载位置PS)的段节SC彼此的示例。但是,也可如图11所例示的那样,比较部124在更新前的程序PG与更新后的程序PG中比较例如名称(识别信息)相同的段节SC彼此。
〔借助软件的实现例〕
开发支持装置10的功能块既可通过形成于集成电路(IC芯片)等的逻辑电路(硬件)来实现,也可使用中央处理器(Central Processing Unit,CPU)而通过软件来实现。具体而言,受理部110、执行部120、显示控制部130以及追加部140既可通过硬件来实现,也可通过软件来实现。
在后者的情况下,开发支持装置10包括执行实现各功能的软件即程序的命令的CPU、可由计算机(或CPU)读取地记录有所述程序及各种数据的只读存储器(Read OnlyMemory,ROM)或存储装置(将它们称作“记录介质”)、以及展开所述程序的随机存取存储器(Random Access Memory,RAM)等。并且,通过计算机(或CPU)从所述记录介质中读取并执行所述程序,从而达成本发明的目的。作为所述记录介质,可使用“并非临时的有形介质”,例如可使用带(tape)、盘(disk)、卡(card)、半导体存储器、可编程的逻辑电路等。而且,所述程序也可经由可传输此程序的任意传输介质(通信网络或广播波等)而提供给所述计算机。另外,本发明也能以通过电子传输来将所述程序具现化的、被嵌入载波中的数据信号的形态来实现。
〔总结〕
如上所述,本发明的一形态的开发支持装置支持用户制作由控制装置所执行的程序,其中,所述程序被分割为多个段节,所述多个段节是各自与调用关系无关地由用户所设定的处理单位,所述多个段节各自对应于在所述程序中的记载位置而按照所述记载位置由上往下的顺序依次执行,所述开发支持装置包括:受理部,受理对所述多个段节之间设定层级关系的用户操作;以及层级管理部,根据所述层级关系,对所述多个段节分别赋予确定各自所属的层级的信息。
根据所述结构,所述开发支持装置在受理了对所述多个段节之间设定层级关系的用户操作时,根据所述层级关系,对所述多个段节分别赋予确定各自所属的层级的信息。
所述“调用关系”是指在IEC 61131-3中定义的程序组织单元(ProgramOrganization Unit,POU)等“构成所述程序的多个单位(要素)”之间的“调用-被调用关系”。“调用关系”也有时被称作“参照-被参照关系”或者被称作“逻辑关系”。
例如,在程序中某POU调用了(参照了)另一POU的情况下,有时所述某POU被称作调用源(参照源),而且,由所述某POU所调用的另一POU被称作调用目标(参照目标)。并且称作:在所述某POU与所述另一POU之间存在将所述某POU设为调用源、将所述另一POU设为调用目标的调用关系。
以往,无法对构成所述程序的所述多个段节之间设定层级关系,因此,用户无法以反映出“装置的工序及功能”等彼此处于包含关系的信息的形态来管理所述多个段节。
与此相对,所述开发支持装置使得用户能够对构成所述程序的所述多个段节之间设定与调用关系(逻辑关系)无关的、“任意的层级关系”。即,用户能够对构成所述程序的所述多个段节之间设定反映出“装置的工序及功能”等彼此处于包含关系的信息的层级关系。
因此,所述开发支持装置起到下述效果:能够使得『用户与逻辑关系无关地以反映出“装置的工序及功能”等彼此处于包含关系的信息的形态来管理构成所述程序的所述多个段节』。
而且,所述段节的执行顺序是依据“按照所述记载位置由上往下的顺序依次执行”这一简单的规则而决定,因此用户能够容易地理解所述多个段节各自的执行顺序。并且,“用户能够容易地理解所述多个段节各自的执行顺序”这一点能够评估为所述段节的便利性。
并且,对构成所述程序的所述多个段节各自赋予的、所述“确定层级的信息”对于所述多个段节各自的执行顺序无影响,即,所述段节所属的层级对于所述段节的执行顺序无影响。因此,即便由用户对所述多个段节之间设定了层级关系,对于“按照记载位置由上往下的顺序依次执行”这一所述段节的简单规则也无影响,即,对于所述段节的便利性无影响。
因此,所述开发支持装置起到下述效果:既能维持所述段节的便利性,又能使得『用户以反映出“装置的工序及功能”等彼此处于包含关系的信息的形态来管理所述多个段节』。
进而,用户能够对所述多个段节之间设定反映出“装置的工序及功能”等彼此处于包含关系的信息的层级关系。即,用户能够通过“对于用户而言存在意义的关系”来将两个以上的段节彼此关联。
并且,所述开发支持装置以通过“对于用户而言存在意义的关系”彼此关联的两个以上的段节为单位,来执行例如所述程序中的所述记载位置的变更、复制、比较等中的至少一种。
因此,所述开发支持装置起到下述效果:能够以通过“对于用户而言存在意义的关系”彼此关联的两个以上的段节为单位来执行所述程序中的记载位置的变更、复制、比较等。
本发明的一形态的开发支持装置也可为,在某段节与不同于所述某段节的另一段节满足:(1)所述某段节所属的层级比所述另一段节所属的层级高一级;且(2)在所述程序中,所述某段节的记载位置位于较所述另一段节的记载位置更靠上处;且(3)在所述程序中,在所述某段节的记载位置与所述另一段节的记载位置之间,未记载属于与所述某段节所属的层级相同的层级的、所述某段节以外的段节这些条件的情况下,对所述某段节与所述另一段节之间设定将所述某段节设为母节点、将所述另一段节设为子节点的母子关系。
根据所述结构,所述开发支持装置在所述某段节与所述另一段节满足所述条件时,对所述某段节与所述另一段节之间设定所述母子关系。
此处,所述条件是与所述段节所属的层级和所述段节在所述程序中的记载位置相关的条件。因此,所述开发支持装置能够根据由用户对所述多个段节之间设定的层级关系和所述段节在所述程序中的记载位置,对所述某段节与所述另一段节之间设定所述母子关系。
并且,所述层级关系是由用户任意设定的关系,例如是反映出“装置的工序及功能”等彼此处于包含关系的信息的关系。
因此,所述开发支持装置起到下述效果:能够以反映出“装置的工序及功能”等彼此处于包含关系的信息的形态来对所述某段节与所述另一段节之间设定所述母子关系。
本发明的一形态的开发支持装置也可还包括:显示控制部,对于处于所述母子关系的所述某段节与所述另一段节,使用表示所述母子关系的树结构来显示各自的识别信息,所述显示控制部也可在显示所述某段节的识别信息时,能够切换(1)不显示所述另一段节的识别信息的折叠显示、以及(2)与所述某段节的识别信息一并显示所述另一段节的识别信息的展开显示。
根据所述结构,所述开发支持装置在显示某段节的识别信息时,能够切换不显示跟所述子节点对应的段节的识别信息的折叠显示与显示跟所述子节点对应的段节的识别信息的展开显示。
此处,在所述折叠显示中,与所述子节点对应的段节的识别信息未被显示,因此所述折叠显示例如适合作为用户仅想要确认属于上位层级的段节时的显示形式。
与此相对,在所述展开显示中,与所述子节点对应的段节的识别信息被显示,因此所述展开显示例如适合作为用户想要确认相对于某段节而设定为子节点的段节时的显示形式。
因此,所述开发支持装置起到下述效果:能够以与用户所期望的级别相应的显示形式来显示所述多个段节的各者。
本发明的一形态的开发支持装置中,所述显示控制部也可在所述程序中的某记载内容在语法上错误时,显示(1)包含所述某记载内容的段节的识别信息、以及(2)与表示所述母子关系且将包含所述某记载内容的段节设为子孙节点的树结构中的祖先节点对应的段节的识别信息,以作为包含错误的段节的识别信息。
根据所述结构,所述开发支持装置在所述程序中的某记载内容在语法上错误时,显示包含所述某记载内容的段节的识别信息和与“包含所述某记载内容的段节”的祖先节点对应的段节的识别信息。
因此,所述开发支持装置起到下述效果:使用户不仅能确认包含在语法上错误的记载内容的段节,还能确认与“包含在语法上错误的记载内容的段节”的祖先节点对应的段节。
本发明的一形态的开发支持装置中,用户也可能够将包含(1)一个段节以及(2)在表示所述母子关系的树结构中将所述一个段节设为祖先节点的情况下与子孙节点对应的所有段节的段节群作为单位,来执行执行顺序的变更、剪切、复制、粘贴、导入、导出及层级的变更中的至少一种。
根据所述结构,所述开发支持装置能够使得“用户将所述段节群作为单位来执行执行顺序的变更、剪切、复制、粘贴、导入、导出及层级的变更中的至少一者”。
此处,所述段节群包含(1)与表示所述母子关系的树结构中的祖先节点对应的段节、以及(2)与所述树结构中相对于所述祖先节点的子孙节点对应的所有段节。并且,所述母子关系是由所述开发支持装置根据“用户对所述多个段节之间任意设定”的所述层级关系而设定。因此,所述段节群是用户对构成所述程序的多个段节任意设定的单位,可理解为包含两个以上的段节的单位。
因此,所述开发支持装置起到下述效果:“用户对于所述多个段节,能够以任意设定的单位”来执行执行顺序的变更、剪切、复制、粘贴、导入、导出及层级的变更中的至少一种。
本发明的一形态的开发支持装置也可还包括:选择部,当受理了选择某段节的用户操作时,选择包含(1)所述某段节以及(2)与表示所述母子关系且将所述某段节设为祖先节点的树结构中的子孙节点对应的所有段节的段节群来作为对象。
根据所述结构,所述开发支持装置在有选择某段节的用户操作时,选择包含所述某段节和与所述子孙节点对应的所有段节的段节群来作为对象。
此处,所述段节群包含(1)与表示所述母子关系的树结构中的祖先节点对应的段节和(2)与所述树结构中相对于所述祖先节点的子孙节点对应的所有段节。并且,所述母子关系是由所述开发支持装置根据“用户对所述多个段节之间任意设定”的所述层级关系而设定。因此,所述段节群是用户对构成所述程序的多个段节任意设定的单位,可理解为包含两个以上的段节的单位。并且,选择某段节的用户操作可理解为如下所述的用户操作,即,选择“包含所述某段节和与将所述某段节设为祖先节点的树结构中的子孙节点对应的所有段节”的所述段节群来作为处理的对象。
因此,所述开发支持装置起到下述效果:当用户选择某段节时,能够根据“用户对于所述多个段节任意设定的单位”来选择包含所述某段节的两个以上的段节(即,所述段节群)。即,所述开发支持装置起到下述效果:当用户选择某段节时,能够选择包含所述某段节和由用户关联至所述某段节的另一段节的所述段节群,来作为由用户所选择的对象。
本发明的一形态的开发支持装置也可还包括:顺序管理部,管理所述多个段节各自的执行顺序,所述顺序管理部也可与所述段节的所述层级关系无关地对应于所述段节在所述程序中的记载位置,将记载位置位于上方的所述段节的执行顺序设为比记载位置位于下方的所述段节的执行顺序早的执行顺序。
根据所述结构,所述开发支持装置与所述段节的所述层级关系无关地,依据“按照所述记载位置由上往下的顺序依次执行”这一简单的规则而决定所述段节的执行顺序。
所述段节的执行顺序是依据“按照所述记载位置由上往下的顺序依次执行”这一简单的规则而决定,因此用户能够容易地理解所述多个段节各自的执行顺序。并且,“用户能够容易地理解所述多个段节各自的执行顺序”这一点能够评估为所述段节的便利性。
因此,所述开发支持装置起到下述效果:既能维持所述段节的便利性,又能使得『用户以反映出“装置的工序及功能”等彼此处于包含关系的信息的形态来管理所述多个段节』。
本发明的一形态的开发支持装置中,也可为,若有下述用户操作,即,将包含(1)某段节以及(2)与表示所述母子关系且将所述某段节设为祖先节点的树结构中的子孙节点对应的所有段节的段节群配置到所述程序中的、属于与所述某段节所属的层级相同的层级的另一段节之前最近的位置,则所述顺序管理部(3)对于所述段节群中所含的两个以上的所述段节,不变更各自在所述段节群中的相对执行顺序,(4)将所述段节群中所含的段节中的、所述记载位置位于最下的段节的执行顺序设为所述另一段节的执行顺序的前一个的执行顺序。
根据所述结构,所述开发支持装置在有使包含所述某段节的所述段节群配置到所述程序中的、属于与所述某段节所属的层级相同的层级的另一段节之前最近的位置的用户操作时,执行以下的处理。即,所述开发支持装置将所述段节群中所含的段节中的、所述记载位置位于最下的段节的执行顺序,设为所述另一段节的执行顺序的前一个的执行顺序。并且,所述开发支持装置对于所述段节群中所含的两个以上的所述段节,不变更各自的相对执行顺序,即,不变更各自在所述段节群中的相对顺序关系。
因此,所述开发支持装置起到下述效果:能够通过“用户对于所述多个段节任意设定的单位”,将所述段节群中所含的两个以上的段节各自的执行顺序统一变更到所述另一段节的执行顺序之前。
本发明的一形态的开发支持装置中,也可为,若有下述用户操作,即,将包含(1)某段节以及(2)与表示所述母子关系且将所述某段节设为祖先节点的树结构中的子孙节点对应的所有段节的段节群配置到所述程序中的、属于与所述某段节所属的层级相同的层级的另一段节之后最近的位置,则所述顺序管理部(3)对于所述段节群中所含的两个以上的所述段节,不变更各自在所述段节群中的相对执行顺序,(4)将所述某段节的执行顺序设为与表示所述母子关系且将所述另一段节设为祖先节点的树结构中的子孙节点对应的段节中的、所述记载位置位于最下的段节的执行顺序的后一个的执行顺序。
根据所述结构,所述开发支持装置在有将包含所述某段节的所述段节群配置到所述程序中的、属于与所述某段节所属的层级相同的层级的另一段节之后最近的位置的用户操作时,执行以下的处理。即,所述开发支持装置将所述某段节的执行顺序,设为与将所述另一段节设为祖先节点的树结构中的子孙节点对应的段节中的、所述记载位置位于最下的段节的执行顺序的后一个的执行顺序。并且,所述开发支持装置对于所述段节群中所含的两个以上的所述段节,不变更各自的相对执行顺序,即,不变更各自在所述段节群中的相对顺序关系。
因此,所述开发支持装置起到下述效果:能够通过“用户对于所述多个段节任意设定的单位”,将所述段节群中所含的两个以上的段节各自的执行顺序统一变更到所述另一段节的执行顺序之后。
本发明的一形态的开发支持装置也可还包括:追加部,若有下述用户操作,即,导入包含(1)已将所述母子关系中的某层级设定为应属的层级的某段节、以及(2)与将所述某段节设为祖先节点的树结构中的子孙节点对应的段节的段节群,则将构成所述段节群的两个以上的段节的各者不变更各自所属的层级而保存至存储部,所述顺序管理部也可(3)对于所述段节群中所含的两个以上的所述段节,不变更各自在所述段节群中的相对执行顺序,(4)将所述某段节的执行顺序设为在导入所述段节群之前的时间点最晚执行的段节的执行顺序的后一个的执行顺序。
根据所述结构,所述开发支持装置在有导入包含所述某段节和与将所述某段节设为祖先节点的树结构中的子孙节点对应的段节的段节群的用户操作时,将所述段节群保存至存储部。尤其,所述开发支持装置维持着构成所述段节群的两个以上的段节SC之间的祖先-子孙关系而将所述段节群保存至所述存储部,即,将构成所述段节群的两个以上的段节SC各自保存至所述存储部。
具体而言,所述开发支持装置将构成所述段节群的两个以上的段节的各者不变更各自所属的层级而保存至所述存储部。并且,所述开发支持装置不变更所述两个以上的段节的相对执行顺序,而将所述某段节的执行顺序设为在导入所述段节群之前的时间点中最晚执行的段节的执行顺序的后一个的执行顺序。
因此,所述开发支持装置起到下述效果:能够取代一个一个地导入两个以上的段节的操作,而一次性导入由用户彼此赋予了母子关系(祖先-子孙关系)的两个以上的段节。
尤其,所述开发支持装置起到下述效果:能够将由用户彼此赋予了母子关系(祖先-子孙关系)的两个以上的段节SC维持着它们之间的祖先-子孙关系而一次性导入。
本发明的一形态的开发支持装置也可还包括:比较部,在比较所述程序的更新前与更新后时,比较某段节的更新前的层级与更新后的层级是否一致。
根据所述结构,所述开发支持装置在比较所述程序的更新前与更新后时,比较某段节的更新前的层级与更新后的层级是否一致。
因此,所述开发支持装置起到下述效果:“用户能够在更新前后确认仅其所属的层级受到了变更的段节”。
本发明的一形态的开发支持装置中,也可为,当受理了将某段节所属的层级提高一级或降低一级的用户操作时,所述层级管理部对应于所述用户操作而将(1)所述某段节所属的层级、以及(2)与表示所述母子关系且将所述某段节设为祖先节点的树结构中的子孙节点对应的所有段节各自所属的层级统一提高一级或降低一级。
根据所述结构,所述开发支持装置在受理了将与祖先节点对应的所述某段节所属的层级提高一级或降低一级的用户操作时,除了所述某段节所属的层级以外,还变更以下的段节所属的层级。即,所述开发支持装置除了所述某段节所属的层级以外,还对与将所述某段节设为祖先节点的树结构中的子孙节点对应的所有段节各自所属的层级进行变更。
因此,所述开发支持装置起到下述效果:能够对应于用户操作而将处于祖先-子孙关系的两个以上的段节的各自所属的层级统一提高一级或降低一级。
为了解决所述问题,本发明的一形态的控制方法为开发支持装置的控制方法,所述开发支持装置支持用户制作由控制装置所执行的程序,其中,所述程序被分割为多个段节,所述多个段节是各自与调用关系无关地由用户所设定的处理单位,所述多个段节各自对应于在所述程序中的记载位置而按照所述记载位置由上往下的顺序依次执行,所述控制方法包括:受理步骤,受理对所述多个段节之间设定层级关系的用户操作;以及层级管理步骤,根据所述层级关系,对所述多个段节分别赋予确定各自所属的层级的信息。
根据所述结构,所述控制方法在受理了对所述多个段节之间设定层级关系的用户操作时,根据所述层级关系,对所述多个段节分别赋予确定各自所属的层级的信息。
所述“调用关系”是指在IEC 61131-3中定义的程序组织单元(ProgramOrganization Unit,POU)等“构成所述程序的多个单位(要素)”之间的“调用-被调用关系”。“调用关系”也有时被称作“参照-被参照关系”或者被称作“逻辑关系”。
例如,在程序中某POU调用了(参照了)另一POU的情况下,有时所述某POU被称作调用源(参照源),而且,由所述某POU所调用的另一POU被称作调用目标(参照目标)。并且称作:在所述某POU与所述另一POU之间存在将所述某POU设为调用源、将所述另一POU设为调用目标的调用关系。
以往,无法对构成所述程序的所述多个段节之间设定层级关系,因此,用户无法以反映出“装置的工序及功能”等彼此处于包含关系的信息的形态来管理所述多个段节。
与此相对,所述控制方法使得用户能够对构成所述程序的所述多个段节之间设定与调用关系(逻辑关系)无关的、“任意的层级关系”。即,用户能够对构成所述程序的所述多个段节之间设定反映出“装置的工序及功能”等彼此处于包含关系的信息的层级关系。
因此,所述控制方法起到下述效果:能够使得『用户与逻辑关系无关地以反映出“装置的工序及功能”等彼此处于包含关系的信息的形态来管理构成所述程序的所述多个段节』。
而且,所述段节的执行顺序是依据“按照所述记载位置由上往下的顺序依次执行”这一简单的规则而决定,因此用户能够容易地理解所述多个段节各自的执行顺序。并且,“用户能够容易地理解所述多个段节各自的执行顺序”这一点能够评估为所述段节的便利性。
并且,对构成所述程序的所述多个段节各自赋予的、所述“确定层级的信息”对于所述多个段节各自的执行顺序无影响,即,所述段节所属的层级对于所述段节的执行顺序无影响。因此,即便由用户对所述多个段节之间设定了层级关系,对于“按照记载位置由上往下的顺序依次执行”这一所述段节的简单规则也无影响,即,对于所述段节的便利性无影响。
因此,所述控制方法起到下述效果:既能维持所述段节的便利性,又能使得『用户以反映出“装置的工序及功能”等彼此处于包含关系的信息的形态来管理所述多个段节』。
进而,用户能够对所述多个段节之间设定反映出“装置的工序及功能”等彼此处于包含关系的信息的层级关系。即,用户能够通过“对于用户而言存在意义的关系”来将两个以上的段节彼此关联。
并且,所述控制方法以通过“对于用户而言存在意义的关系”彼此关联的两个以上的段节为单位,来执行例如所述程序中的所述记载位置的变更、复制、比较等中的至少一种。
因此,所述控制方法起到下述效果:能够以通过“对于用户而言存在意义的关系”彼此关联的两个以上的段节为单位来执行所述程序中的记载位置的变更、复制、比较等。
本发明并不限定于所述的各实施方式,可在权利要求所示的范围内进行各种变更,将不同的实施方式中分别公开的技术部件适当组合而获得的实施方式也包含在本发明的技术范围中。
符号的说明
10:开发支持装置
20:PLC(控制装置)
110:受理部
121:层级管理部
122:选择部
123:顺序管理部
124:比较部
130:显示控制部
140:追加部
HN:层级编号(确定层级的信息)
PG:程序
PS:记载位置
SC:段节
SG:段节群
S110:受理步骤
S120:层级管理步骤

Claims (15)

1.一种开发支持装置,支持用户制作由控制装置所执行的程序,其中
所述程序被分割为多个段节,所述多个段节是各自与调用关系无关地由用户所设定的处理单位,
所述多个段节各自对应于在所述程序中的记载位置而按照所述记载位置由上往下的顺序依次执行,
所述开发支持装置包括:
受理部,受理对所述多个段节之间设定层级关系的用户操作;以及
层级管理部,根据所述层级关系,对所述多个段节分别赋予确定各自所属的层级的信息。
2.根据权利要求1所述的开发支持装置,其中
在某段节与不同于所述某段节的另一段节满足:
(1)所述某段节所属的层级比所述另一段节所属的层级高一级;且(2)在所述程序中,所述某段节的记载位置位于较所述另一段节的记载位置更靠上处;且(3)在所述程序中,在所述某段节的记载位置与所述另一段节的记载位置之间,未记载属于与所述某段节所属的层级相同的层级的、所述某段节以外的段节
这些条件的情况下,
对所述某段节与所述另一段节之间设定将所述某段节设为母节点、将所述另一段节设为子节点的母子关系。
3.根据权利要求2所述的开发支持装置,还包括:
显示控制部,对于处于所述母子关系的所述某段节与所述另一段节,使用表示所述母子关系的树结构来显示各自的识别信息,
所述显示控制部在显示所述某段节的识别信息时,能够切换:
(1)不显示所述另一段节的识别信息的折叠显示、以及
(2)与所述某段节的识别信息一并显示所述另一段节的识别信息的展开显示。
4.根据权利要求3所述的开发支持装置,其中
所述显示控制部在所述程序中的某记载内容在语法上错误时,显示
(1)包含所述某记载内容的段节的识别信息,以及
(2)与表示所述母子关系且将包含所述某记载内容的段节设为子孙节点的树结构中的祖先节点对应的段节的识别信息,
以作为包含错误的段节的识别信息。
5.根据权利要求2至4中任一项所述的开发支持装置,其中
用户能够将包含
(1)一个段节、以及
(2)在表示所述母子关系的树结构中将所述一个段节设为祖先节点的情况下与子孙节点对应的所有段节的段节群作为单位,来执行执行顺序的变更、剪切、复制、粘贴、导入、导出及层级的变更中的至少一种。
6.根据权利要求2至5中任一项所述的开发支持装置,还包括:
选择部,当受理了选择某段节的用户操作时,选择包含
(1)所述某段节、以及
(2)与表示所述母子关系且将所述某段节设为祖先节点的树结构中的子孙节点对应的所有段节的段节群来作为对象。
7.根据权利要求2至6中任一项所述的开发支持装置,还包括:
顺序管理部,管理所述多个段节各自的执行顺序,
所述顺序管理部与所述段节的所述层级关系无关地对应于所述段节在所述程序中的记载位置,将记载位置位于上方的所述段节的执行顺序设为比记载位置位于下方的所述段节的执行顺序早的执行顺序。
8.根据权利要求7所述的开发支持装置,其中
若有下述用户操作,即,将包含(1)某段节以及(2)与表示所述母子关系且将所述某段节设为祖先节点的树结构中的子孙节点对应的所有段节的段节群配置到所述程序中的、属于与所述某段节所属的层级相同的层级的另一段节之前最近的位置,则
所述顺序管理部
(3)对于所述段节群中所含的两个以上的所述段节,不变更各自在所述段节群中的相对执行顺序,
(4)将所述段节群中所含的段节中的、所述记载位置位于最下的段节的执行顺序设为所述另一段节的执行顺序的前一个的执行顺序。
9.根据权利要求7或8所述的开发支持装置,其中
若有下述用户操作,即,将包含(1)某段节以及(2)与表示所述母子关系且将所述某段节设为祖先节点的树结构中的子孙节点对应的所有段节的段节群配置到所述程序中的、属于与所述某段节所属的层级相同的层级的另一段节之后最近的位置,则
所述顺序管理部
(3)对于所述段节群中所含的两个以上的所述段节,不变更各自在所述段节群中的相对执行顺序,
(4)将所述某段节的执行顺序设为与表示所述母子关系且将所述另一段节设为祖先节点的树结构中的子孙节点对应的段节中的、所述记载位置位于最下的段节的执行顺序的后一个的执行顺序。
10.根据权利要求7至9中任一项所述的开发支持装置,还包括:
追加部,若有下述用户操作,即,导入包含(1)已将所述母子关系中的某层级设定为应属的层级的某段节、以及(2)与将所述某段节设为祖先节点的树结构中的子孙节点对应的段节的段节群,则将构成所述段节群的两个以上的段节的各者不变更各自所属的层级而保存至存储部,
所述顺序管理部
(3)对于所述段节群中所含的两个以上的所述段节,不变更各自在所述段节群中的相对执行顺序,
(4)将所述某段节的执行顺序设为在导入所述段节群之前的时间点最晚执行的段节的执行顺序的后一个的执行顺序。
11.根据权利要求1至10中任一项所述的开发支持装置,还包括:
比较部,在比较所述程序的更新前与更新后时,比较某段节的更新前的层级与更新后的层级是否一致。
12.根据权利要求2至10中任一项所述的开发支持装置,其中
当受理了将某段节所属的层级提高一级或降低一级的用户操作时,所述层级管理部对应于所述用户操作而将
(1)所述某段节所属的层级、以及
(2)与表示所述母子关系且将所述某段节设为祖先节点的树结构中的子孙节点对应的所有段节各自所属的层级
统一提高一级或降低一级。
13.一种控制方法,为开发支持装置的控制方法,所述开发支持装置支持用户制作由控制装置所执行的程序,其中
所述程序被分割为多个段节,所述多个段节是各自与调用关系无关地由用户所设定的处理单位,
所述多个段节各自对应于在所述程序中的记载位置而按照所述记载位置由上往下的顺序依次执行,
所述控制方法包括:
受理步骤,受理对所述多个段节之间设定层级关系的用户操作;以及
层级管理步骤,根据所述层级关系,对所述多个段节分别赋予确定各自所属的层级的信息。
14.一种信息处理程序,用于使计算机作为根据权利要求1所述的开发支持装置发挥功能,且所述信息处理程序用于使计算机作为所述受理部以及所述层级管理部发挥功能。
15.一种记录介质,记录有根据权利要求14所述的信息处理程序且能够供计算机读取。
CN202280027595.2A 2021-05-21 2022-03-16 开发支持装置、开发支持装置的控制方法、信息处理程序以及记录介质 Pending CN117136342A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2021086280A JP2022179051A (ja) 2021-05-21 2021-05-21 開発支援装置、開発支援装置の制御方法、情報処理プログラム、および記録媒体
JP2021-086280 2021-05-21
PCT/JP2022/011806 WO2022244425A1 (ja) 2021-05-21 2022-03-16 開発支援装置、開発支援装置の制御方法、情報処理プログラム、および記録媒体

Publications (1)

Publication Number Publication Date
CN117136342A true CN117136342A (zh) 2023-11-28

Family

ID=84140531

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280027595.2A Pending CN117136342A (zh) 2021-05-21 2022-03-16 开发支持装置、开发支持装置的控制方法、信息处理程序以及记录介质

Country Status (5)

Country Link
US (1) US20240192655A1 (zh)
EP (1) EP4343468A1 (zh)
JP (1) JP2022179051A (zh)
CN (1) CN117136342A (zh)
WO (1) WO2022244425A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7483184B1 (ja) 2023-08-31 2024-05-14 三菱電機株式会社 分析プログラム、分析装置、支援システム及び分析方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4193505B2 (ja) 2003-02-04 2008-12-10 オムロン株式会社 ユーザプログラム開発支援装置及び表示切替方法並びにプログラム
JP2004240593A (ja) 2003-02-04 2004-08-26 Omron Corp 処理装置及び表示方法並びにプログラム製品

Also Published As

Publication number Publication date
JP2022179051A (ja) 2022-12-02
EP4343468A1 (en) 2024-03-27
WO2022244425A1 (ja) 2022-11-24
US20240192655A1 (en) 2024-06-13

Similar Documents

Publication Publication Date Title
TWI464558B (zh) 程式作成支援裝置
EP1351108B1 (en) Method and apparatus for programming
JP5039428B2 (ja) プログラマブルコントローラ及びplcシステム
US6826432B2 (en) Process for programming an automation application
CN117136342A (zh) 开发支持装置、开发支持装置的控制方法、信息处理程序以及记录介质
US20220197238A1 (en) Development support device, method for controlling development support device, and recording medium
JP2013084112A (ja) プログラマブルコントローラシステム、そのプログラミング装置、プログラマブルコントローラ、プログラム、デバッグ方法
KR101447846B1 (ko) 모션 sfc 프로그램 부품 작성 장치
JP4476223B2 (ja) 画面データ作成装置、画面データの編集方法及び画面データ編集プログラム
JP5205988B2 (ja) Plcのグローバル変数定義方式
TWI420389B (zh) 人機介面裝置及其介面整合方法
KR101726120B1 (ko) 프로그램 편집 장치, 프로그램 편집 방법 및 프로그램 편집 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
CN113614659B (zh) 开发支持装置、开发支持装置的控制方法及记录介质
WO2021192456A1 (ja) 情報処理装置およびラダープログラムを表示するためのプログラム
JP2010519615A (ja) 自動化システムの構造コンポーネントの交換のための方法
WO2022185670A1 (ja) 開発支援装置、開発支援装置の制御方法、情報処理プログラム、および記録媒体
JP2003223204A (ja) プログラマブルコントローラのプログラミング方法およびその装置並びに記憶媒体
JP7447574B2 (ja) サポート装置、サポートプログラムおよびサポート方法
JP3512685B2 (ja) 画面データ作成方法、画面データ作成装置、および、そのプログラムが記録された記録媒体
JP3497423B2 (ja) 制御用表示装置、制御システム、および、そのプログラムが記録された記録媒体
JP2024118734A (ja) 情報処理装置、方法およびプログラム
KR100423742B1 (ko) 순차기능챠트에 의한 전용 제어 시스템
JP2000047777A (ja) プログラム式表示装置用の操作画面作成方法
JP2024073818A (ja) 制御システムおよび情報処理方法
JP2022149857A (ja) 表示器、表示器の制御方法、情報処理プログラム、および記録媒体

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination