CN117099057A - 程序生成装置和程序生成方法 - Google Patents
程序生成装置和程序生成方法 Download PDFInfo
- Publication number
- CN117099057A CN117099057A CN202180096505.0A CN202180096505A CN117099057A CN 117099057 A CN117099057 A CN 117099057A CN 202180096505 A CN202180096505 A CN 202180096505A CN 117099057 A CN117099057 A CN 117099057A
- Authority
- CN
- China
- Prior art keywords
- state
- states
- unit
- control rule
- program
- 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
Links
- 238000000034 method Methods 0.000 title claims description 34
- 230000007704 transition Effects 0.000 claims abstract description 121
- 238000013461 design Methods 0.000 claims abstract description 74
- 238000012546 transfer Methods 0.000 claims abstract description 66
- 238000006243 chemical reaction Methods 0.000 claims abstract description 54
- 238000009795 derivation Methods 0.000 claims abstract description 49
- 230000006870 function Effects 0.000 claims abstract description 49
- 230000001131 transforming effect Effects 0.000 claims 1
- 238000012545 processing Methods 0.000 description 34
- 238000010586 diagram Methods 0.000 description 23
- 230000008569 process Effects 0.000 description 17
- 230000000694 effects Effects 0.000 description 11
- 238000003860 storage Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000004519 manufacturing process Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 238000005457 optimization Methods 0.000 description 3
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000012447 hatching Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000036962 time dependent Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/056—Programming the PLC
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0426—Programming the control sequence
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/408—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by data handling or data format, e.g. reading, buffering or conversion of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Manufacturing & Machinery (AREA)
- Programmable Controllers (AREA)
Abstract
在提高控制对象的动作效率的同时提高程序的语言变换的自由度。程序生成装置具备:设计信息变换部,将设计信息变换为模型,该设计信息包含设备的多个状态、信号与设备的状态的关系以及设备的状态的变化所需的时间,该模型包含状态集、输入集、转移函数以及转移所需的时间;控制规则导出部,基于包含与转移所需的时间有关的规格的需求规格以及模型,以满足需求规格的方式导出控制规则;以及程序生成部,基于控制规则生成程序。
Description
技术领域
本申请说明书所公开的技术涉及程序的生成。
背景技术
对于构成生产系统等的机器,使用由可编程序逻辑控制器等控制器执行的程序进行控制(例如参照专利文献1)。
专利文献1:日本特开平4-18605号公报
发明内容
发明要解决的问题
在专利文献1所示的技术中,用Petri网模型表现了机器的状态和动作的转变。然而,在专利文献1中的该模型中未考虑机器的动作的转变所需的时间信息。因此,无法对生成的程序关于时间进行最优化。作为其结果,难以提高作为控制对象的生产系统的生产效率。
另外,程序的变换规则以梯形图语言(ladder language)为前提,难以变换为如在IEC61131-3中规定的那样的除梯形图语言以外的语言(例如ST、FBD或SFC等)或一般的语言(例如C/C++等)。
本申请说明书所公开的技术是鉴于如以上记载的那样的问题而完成的,是用于在提高控制对象的动作效率的同时提高程序的语言变换的自由度的技术。
用于解决问题的方案
作为本申请说明书所公开的技术的第一方式的程序生成装置是用于生成由对控制对象进行控制的控制器执行的程序的程序生成装置,具备:设计信息变换部,用于将设计信息变换为模型,该设计信息至少包含构成所述控制对象的设备的多个状态、在所述控制对象与所述控制器之间输入输出的信号与所述设备的所述状态的各个关系以及所述设备的所述状态的各个变化所需的时间,该模型至少包含作为所述设备的所述状态的集合的状态集、作为从所述控制器输入到所述控制对象的所述信号的集合的输入集、作为表示所述状态集中包含的所述设备的所述状态间的因输入到所述控制对象的所述信号引起的转移的函数的转移函数以及用所述转移函数表示的各个所述转移所需的时间;控制规则导出部,用于基于包含与所述设备的所述状态的所述转移所需的时间有关的规格的需求规格以及所述模型,以满足所述需求规格的方式导出将所述设备的各个所述状态与从所述控制器输入到所述控制对象的所述信号建立对应的控制规则;以及程序生成部,用于基于所述控制规则生成所述程序。
发明的效果
根据本申请说明书所公开的技术的至少第一方式,基于包含转移所需的时间的模型,以满足包含转移所需的时间的需求规格的方式导出控制规则,因此在基于该控制规则生成的程序中进行与时间有关的控制,能够提高控制对象的动作效率。另外,生成的程序的变换规则不限定于梯形图语言,因此程序的语言变换的自由度提高。
另外,与本申请说明书所公开的技术关联的目的、特征、方面以及优点通过以下所示的详细的说明和附图变得更清楚。
附图说明
图1是概念性地表示与实施方式有关的程序生成装置的结构的例子的图。
图2是表示对推进器装置进行建模的情况的例子的图。
图3是表示控制规则导出部中的动作的例子的流程图。
图4是表示控制规则导出部中的路径导出动作的例子的流程图。
图5是表示控制规则导出部中的转移时间计算动作的例子的流程图。
图6是概念性地表示与实施方式有关的程序生成装置的结构的例子的图。
图7是表示控制规则导出部中的转移时间计算动作的例子的流程图。
图8是概念性地表示与实施方式有关的程序生成装置的结构的例子的图。
图9是概念性地表示与实施方式有关的程序生成装置的结构的例子的图。
图10是概念性地表示与实施方式有关的程序生成装置的结构的变形例的图。
图11是概念性地表示与本实施方式有关的程序生成装置的结构的例子的图。
图12是概略性地例示在实际运用图1、图6、图8、图9以及图10中示例的程序生成装置的情况下的硬件结构的图。
图13是概略性地例示在实际运用图1、图6、图8、图9以及图10中示例的程序生成装置的情况下的硬件结构的图。
(附图标记说明)
1:设计信息输入部;2、3001:设计信息变换部;3:需求规格输入部;4、4A、4B、4C、4D、3002:控制规则导出部;5、3003:程序生成部;6:需求规格变换部;7:参数输入部;8:显示部;9、9D:需求规格学习部;1102A、1102B:处理电路;1103:存储装置;1104A、1104B:输入装置;1105A、1105B:输出装置。
具体实施方式
以下,参照所附的图来说明实施方式。在以下的实施方式中,为了说明技术而还示出详细的特征等,但是它们是例示,它们并非全部都是为了能够实施实施方式所必需的特征。
此外,图是概略性地表示的,为了便于说明,在图中适当进行了结构的省略或结构的简化。另外,在不同的图中分别示出的结构等的大小及位置的相互关系未必被准确地记载,可适当变更。另外,在不是截面图的平面图等图中,也为了便于理解实施方式的内容而有时附加阴影。
另外,在以下所示的说明中,对同样的结构要素附加相同的符号来进行图示,关于它们的名称及功能也同样。因而,为了避免重复而有时省略关于它们的详细的说明。
另外,在本申请说明书所记载的说明中,在记载为“具备”、“包括”或“具有”某结构要素等的情况下,除非另有说明,否则不是排除其它结构要素的存在的排他性表现。
另外,在本申请说明书所记载的说明中,即使存在使用“第一”或“第二”等序数的情况,这些用语也是为了便于理解实施方式的内容而使用的,实施方式的内容不限定于由这些序数可能产生的顺序等。
<关于程序生成装置的概念性的结构>
图11是概念性地表示与本实施方式有关的程序生成装置的结构(功能部)的例子的图。
图11中概念性地示出的程序生成装置是用于生成由对控制对象进行控制的控制器执行的程序的程序生成装置。
如图11中例示的那样,程序生成装置具备设计信息变换部3001、控制规则导出部3002以及程序生成部3003。
设计信息变换部3001将设计信息变换为模型,该设计信息至少包含构成控制对象的设备的多个状态、在控制对象与控制器之间输入输出的信号与设备的状态的各个关系以及设备的状态的各个变化所需的时间,该模型至少包含作为设备的状态的集合的状态集、作为从控制器输入到控制对象的信号的集合的输入集、作为表示状态集中包含的设备的状态间的因输入到控制对象的信号引起的转移的函数的转移函数以及用转移函数表示的各个转移所需的时间。
控制规则导出部3002基于包含与设备的状态的转移所需的时间有关的规格的需求规格以及模型,以满足需求规格的方式导出将设备的各个状态与从控制器输入到控制对象的信号建立对应的控制规则。
程序生成部3003基于控制规则生成程序。
在以下的实施方式中使用图等示出的各个结构用于更具体地示出上述的图11中示出的结构的例子。
<第一实施方式>
以下,说明与本实施方式有关的程序生成装置和程序生成方法。
<关于程序生成装置的结构>
与本实施方式有关的程序生成装置是生成由用于控制生产系统的控制器执行的程序的装置。
作为用于控制生产系统的控制器,例如存在可编程逻辑控制器(programmablelogic controller、即PLC)、数值控制装置(numerical control、即NC)或产业用PC等,但是不限于它们,只要能够描述用于利用后述的方法对控制对象进行建模的设计信息以及对于控制对象的动作的需求规格,就能够应用于对控制对象进行控制的所有控制器。
图1是概念性地表示与本实施方式有关的程序生成装置的结构的例子的图。
如图1中示例的那样,程序生成装置具备设计信息输入部1、设计信息变换部2、需求规格输入部3、控制规则导出部4、程序生成部5以及需求规格变换部6。控制对象的设计信息A被输入到设计信息输入部1,需求规格B被输入到需求规格输入部3。
设计信息输入部1将被输入的控制对象的设计信息A以能够由后述的设计信息变换部2进行变换的格式输出到设计信息变换部2。
控制对象的设计信息A是至少包含构成控制对象的设备的状态、在控制对象与控制器之间输入输出的信号与设备的状态的关系以及从设备的某状态向其它状态的变化所需的时间的信息。
另外,控制对象的设计信息A被输出到设计信息变换部2时的控制对象的设计信息A的格式例如是Petri网或状态转移图等。然而,控制对象的设计信息A的格式无需在被输入到设计信息输入部1的时间点预先成为这些格式,还可考虑将基于图形用户接口(graphical user interface、即GUI)的对话性的输入或基于3DCAD工具的输入等格式的控制对象的设计信息A在设计信息输入部1中进行变换来设为Petri网或状态转移图等格式后将控制对象的设计信息A输出到设计信息变换部2。
设计信息变换部2将从设计信息输入部1输入的控制对象的设计信息A变换为转移系统(模型)。转移系统能够包含:构成控制对象的设备可取的全部状态的集合(状态集);从控制器向控制对象的输入信号的集合(输入集);表示因各个输入信号引起的、状态集中包含的状态间的转移的转移函数;用转移函数规定的各个转移所需的时间;以及状态集中包含的各个状态所满足的性质。
关于状态集中包含的各个状态所满足的性质,例如用命题的集合来表示。命题是例如在以Petri网格式表现了控制对象的设计信息A的情况下如“库所A中存在一个令牌”那样的关于库所(place)与令牌(token)的关系的描述。
需求规格输入部3被输入关于控制对象的状态转移描述的需求规格B。需求规格B是使用命题描述了控制对象应满足的规格的逻辑式,例如用以前述的命题为原子命题的时序逻辑式等来表示。需求规格B至少包含与设备的状态的转移所需的时间有关的规格。
另外,需求规格输入部3确认被输入的需求规格B是否矛盾。需求规格输入部3在构成需求规格的命题的真假值的全部组合中不存在需求规格为真的组合的情况下视为需求规格B矛盾。
需求规格变换部6基于从需求规格输入部3输入的需求规格B生成自动机(automaton)。自动机是用状态集、初始状态、输入集、转移函数以及受理状态这5个组来表现的状态转移机器。关于自动机,例如能够通过对SCHECK2或Rabinizer3等现有的工具输入需求规格来生成,由所生成的自动机受理的语言全部都满足需求规格。
控制规则导出部4从基于需求规格B的自动机和转移系统生成合成自动机。合成自动机是用状态集、初始状态、输入集、转移函数以及受理状态这5个组来表现的状态转移机器。稍后叙述合成自动机的生成方法。
合成自动机的状态转移将转移系统的状态转移与自动机的状态转移同时表现,由合成自动机受理的状态转移对应于在转移系统满足需求规格的情况下的状态转移。
因此,通过用合成自动机求出能够从初始状态到达受理状态的路径,能够以使控制对象的状态转移满足需求规格B的方式导出将控制对象的状态与来自控制器的输入信号建立对应的函数(控制规则)。
程序生成部5基于导出的控制规则生成用于由控制器执行的程序。
<关于程序生成装置的动作>
接着,说明各个功能部中的动作。在此,作为例子,设控制对象的设计信息A以带时间的Petri网的格式被输入到设计信息输入部1。
Petri网是有向图的一种,由被称为库所(place)及变迁(transition)的两种节点以及被称为弧(arc)的边缘(edge)构成。库所和变迁用弧连结,弧中存在权重。在此,为了简单起见,假定权重全部为1。对库所能够赋予被称为令牌的标记,将Petri网整体的令牌的分布称为标识(marking)。另外,将初始状态下的标识称为初始标识。
在存在从库所p连接到变迁t的弧的情况下,将库所p称为变迁t的输入库所。另外,在存在从变迁t连接到库所p的弧的情况下,将库所p称为变迁t的输出库所。还有时输入库所和输出库所均为集合。
变迁在其全部的输入库所中存在令牌的情况下能够触发(fireable),当触发时,从输入库所去除令牌,在输出库所追加令牌。将从初始标识通过触发可触发的变迁来出现的标识称为可到达标识。
在将Petri网的库所视为状态、将变迁视为控制信号时,能够进行机器的建模。
图2是表示对推进器装置进行建模的情况下的例子的图。在图2中,圆表示库所,长方形表示变迁。另外,箭头是弧,在箭头的附近标注的数值表示权重。另外,存在于圆的内部的点表示令牌。
在图2中,将推出了推进器的状态设为库所P0,将收回了推进器的状态设为库所P1,将用于推出推进器的信号设为变迁T0,将用于收回推进器的信号设为变迁T1。
在库所中存在令牌的情况下,表示设备也处于对应的状态。在图2中示出推进器装置处于推出了推进器的状态。
带时间的Petri网是对Petri网的变迁追加触发持续时间而成的,是变迁的触发持续预先决定的固定时间的模型。在带时间的Petri网中,在触发了变迁的情况下,在触发开始时从该变迁的输入库所去除令牌,在经过上述的触发持续时间之后的触发结束时,在该变迁的输出库所追加令牌。
如果用带时间的Petri网对推进器装置进行建模,则对于变迁T0和变迁T1的各变迁而言,从收回了推进器的状态变化为推出了推进器的状态为止的时间以及从推出了推进器的状态变化为收回了推进器的状态为止的时间成为触发持续时间。
设需求规格B是用作为时序逻辑(Linear Temporal Logic)的子类的scLTL(Syntactically Co-safe LTL)来描述的。
另外,设控制对象的状态所满足的性质和需求规格是使用关于Petri网的库所与令牌的关系的命题来描述的。命题例如是“在库所P0中存在令牌”,在推进器装置的例子中,命题表示“处于推出了推进器的状态”。
设计信息变换部2将被输入的控制对象的设计信息A变换为转移系统的格式。关于转移系统,用状态集、输入集、转移函数、观测值以及观测映射这5个组来表现。
将状态集设为从带时间的Petri网的初始标识通过任意的次数的变迁的触发可到达的全部标识的集合。将输入集设为变迁与空集的并集。空集表示任何变迁都不触发的情况。
关于转移函数,用从状态集与输入集的直积到状态集的映射来表示,表示对状态集的状态施加了输入集的输入时的转移目的地的状态。关于状态x下的因输入σ引起的转移目的地的状态x’,能够使用转移函数δ通过以下的式来表示。
[数1]
x’=δ(x,σ)
在控制对象的设计信息A从带时间的Petri网变换为转移系统的格式的情况下,转移函数表示在状态集中包含的标识中通过输入集中包含的变迁的触发而转移到状态集中包含的哪个标识。
将观测值设为命题的幂集。观测映射是对于状态集中包含的状态将各个状态所满足的命题的集合建立对应的规则,用从状态集到观测值的映射来表示。
需求规格变换部6将被输入的需求规格B变换为有限状态自动机。已知用scLTL的格式描述的规格能够变换为有限状态自动机。这例如记载在“O.Kupferman andM.Y.Vardi:Model Checking of Safety Properties,Formal Methods in SystemDesign,19:291-314(2001)”。
此外,即使在规格没有用scLTL的格式被描述的情况下,用时序逻辑式描述的规格也能够变换为自动机,因此对于没有用scLTL的格式描述的规格也能够同样地进行变换。
有限状态自动机是用状态集、初始状态、输入集、转移函数以及受理状态这5个组来表现的状态转移机器。输入集是上述的转移系统的观测值。另外,关于状态s下的因输入o1引起的转移目的地的状态s’,能够使用转移函数δA通过以下的式来表示。
[数2]
s’=δA(s,o1)
根据上述的式,有限状态自动机用于进行以作为转移系统的状态转移的结果观测到的观测值为输入的状态转移。因此,通过判定作为转移系统的状态转移的结果观测到的观测值的列是否被该有限状态自动机受理,能够判定转移系统的状态转移是否满足需求规格。
在控制规则导出部4中,使用转移系统和有限状态自动机生成合成自动机,进一步导出控制规则。合成自动机是用状态集、初始状态、输入集、转移函数以及受理状态这5个组来表现的自动机(状态转移机器),分别如下。
状态集是转移系统的状态集与有限状态自动机的状态集的直积集。初始状态是转移系统的初始状态与有限状态自动机的初始状态的直积集。
输入集与转移系统的输入集相同。关于转移函数,用后述的式来表示,表示因合成自动机的输入集中包含的输入引起的、合成自动机的状态集中包含的状态间的转移。受理状态是转移系统的状态集与有限状态自动机的受理状态的直积集。
关于表示在合成自动机的状态(x,s)下施加了输入σ时的转移目的地的状态(x’,s’)的转移函数δP,能够通过以下的式来表示。
[数3]
δP((x,s),σ)=(δ(x,σ),δA(s,o(x)))
在此,x是转移系统的状态,δ是转移系统的转移函数,o是转移系统的观测映射。并且,s是自动机的状态,δA是自动机的转移函数。
由这样生成的合成自动机受理的输入列是保证控制对象以满足需求规格的方式进行动作的输入列,通过该输入列而到达的状态对应于通过该输入列而转移的控制对象的状态。
因此,通过求出从合成自动机的初始状态能够到达受理状态的路径,能够求出在控制对象满足需求规格B的情况下的状态转移以及该转移所需的输入列。
根据以上,能够以使控制对象满足需求规格B的方式导出将控制对象的状态与来自控制器的输入建立对应的函数(控制规则)。
图3是表示控制规则导出部4中的动作的例子的流程图。如图3所示,在步骤ST101中,控制规则导出部4等待从设计信息变换部2输入转移系统、并从需求规格变换部6输入有限状态自动机后开始动作。
接着,在步骤ST102中,控制规则导出部4将从设计信息变换部2输入的转移系统与从需求规格变换部6输入的有限状态自动机进行合成来生成合成自动机。
接着,在步骤ST103中,控制规则导出部4求出从合成自动机的初始状态能够到达受理状态的路径。关于详细的流程,稍后参照图4来叙述。
接着,在步骤ST104中,控制规则导出部4针对在步骤ST103中求出的各个路径求出从初始状态到受理状态的转移时间。关于详细的流程,稍后参照图5来叙述。
接着,在步骤ST105中,控制规则导出部4针对在步骤ST104中求出的转移时间最短的路径,求出用于从初始状态到达受理状态的输入,将各个状态与输入的对应设为控制规则。
接着,在步骤ST106中,控制规则导出部4结束动作。
接着,关于步骤ST103的详细的流程,参照图4来进行说明。此外,图4是表示控制规则导出部4中的路径导出动作的例子的流程图。
如图4所示,在步骤ST201中,控制规则导出部4等待输入合成自动机后开始路径导出动作。
接着,在步骤ST202中,控制规则导出部4重新定义目标状态的集合。目标状态的集合成为存在能够到达受理状态的转移的状态的集合,起初是仅受理状态的集合(空集)。
接着,在步骤ST204中,控制规则导出部4求出通过1次转移能够到达属于目标状态的集合的状态的状态。
接着,在步骤ST205中,控制规则导出部4判定在步骤ST204中是否存在通过1次转移能够到达属于目标状态的集合的状态的状态。然后,在存在这样的状态的情况、即对应于从图4中示例的步骤ST205分支的“是”的情况下,进入图4中示例的步骤ST206。另一方面,在不存在这样的状态的情况、即对应于从图4中示例的步骤ST205分支的“否”的情况下,进入图4中示例的步骤ST207。
在步骤ST206中,控制规则导出部4对目标状态的集合添加在步骤ST204中求出的状态。然后,进入步骤ST208。
在步骤ST207中,控制规则导出部4向用户通知由于不存在能够到达目标状态的集合的状态而无法生成满足需求规格的程序。然后,进入步骤ST209而结束路径导出动作。
在步骤ST208中,控制规则导出部4判定在目标状态的集合中是否包含初始状态。然后,在包含初始状态的情况、即对应于从图4中示例的步骤ST208分支的“是”的情况下,进入图4中示例的步骤ST209而结束路径导出动作。另一方面,在不包含初始状态的情况、即对应于从图4中示例的步骤ST208分支的“否”的情况下,返回到图4中示例的步骤ST202。
接着,关于步骤ST104的详细的流程,参照图5来进行说明。此外,图5是表示控制规则导出部4中的转移时间计算动作的例子的流程图。
如图5所示,在步骤ST301中,控制规则导出部4等待输入仅定义有能够到达受理状态的路径的合成自动机后开始转移时间计算动作。
接着,在步骤ST302中,控制规则导出部4将处理的起点设为初始状态,将初始状态的标签设为0。在以后的处理过程中,还有时上述的起点成为集合。
接着,在步骤ST304中,控制规则导出部4针对从起点通过1次转移能够到达的全部状态,将起点的标签与该转移所需的时间之和作为标签来赋予。在起点是集合的情况下,针对集合中包含的全部状态进行同样的处理。
接着,在步骤ST305中,控制规则导出部4判定是否存在被赋予了多个标签的状态。然后,在存在被赋予了多个标签的状态的情况、即对应于从图5中示例的步骤ST305分支的“是”的情况下,进入图5中示例的步骤ST306。另一方面,在不存在被赋予了多个标签的状态的情况、即对应于从图5中示例的步骤ST305分支的“否”的情况下,进入图5中示例的步骤ST307。
在步骤ST306中,控制规则导出部4删除被赋予的多个标签中的除最小的标签以外的标签。在最小的标签存在多个的情况下,仅留下一个。然后,进入步骤ST307。
接着,在步骤ST307中,控制规则导出部4将从起点能够转移的全部状态设为新的起点。
接着,在步骤ST308中,控制规则导出部4判定是否对全部状态赋予了标签。然后,在对全部状态赋予了标签的情况、即对应于从图5中示例的步骤ST308分支的“是”的情况下,进入图5中示例的步骤ST309而结束转移时间计算动作。另一方面,在未对全部状态赋予标签的情况、即对应于从图5中示例的步骤ST308分支的“否”的情况下,返回到图5中示例的步骤ST304。
根据上述的流程,在控制规则导出部4中求出关于时间进行了最优化的控制规则,因此能够决定使控制对象满足需求规格、且使控制对象的控制时间最小的、对于控制对象的各个状态应该从控制器输入的控制信号。
程序生成部5以来自控制规则导出部4的控制规则为输入来生成用于由控制器执行的控制程序。通过控制规则,对于控制对象的各个状态将应该从控制器输入到控制对象的信号建立对应,因此生成重复执行如下的一系列处理的程序:首先进行控制对象的状态的观测,接着进行基于控制规则的控制信号的计算,接着向控制对象输出控制信号。通过该程序,能够以使控制对象满足需求规格、且使控制对象的控制时间最小的方式进行控制。
关于生成的程序的语言,能够由用户适当选择。作为语言的种类,例如可考虑在顺序程序的创建中使用的在IEC61131-3中规定的5种语言或通用的C/C++等语言,只要是能够描述上述的处理的语言,就可以是任意的语言。
通过本实施方式,能够生成满足控制对象的需求规格、且使控制对象的控制时间最小化、并且不限定语言的程序。
此外,在本实施方式中,即使在不存在需求规格变换部6的情况下,也能够通过如下所述变更控制规则导出部4的处理来导出控制规则。
即,在控制规则导出部4中,关于被输入的转移系统,生成以状态为节点且以转移为边缘来记述从初始状态能够到达的全部状态的有向图。
然后,通过从在所生成的有向图中从初始状态开始的全部路径中选择满足给定的需求规格、且以最小的转移时间到达目标状态的路径,能够导出控制规则。
在该情况下,也能够获得与具备需求规格变换部6的情况同样的效果,但是有时与使用需求规格变换部6的结构相比直到导出控制规则为止的处理时间长。
<第二实施方式>
说明与本实施方式有关的程序生成装置和程序生成方法。此外,在以下的说明中,对与在以上记载的实施方式中说明的结构要素同样的结构要素附加相同的符号来进行图示,适当省略其详细的说明。
<关于程序生成装置的结构>
图6是概念性地表示与本实施方式有关的程序生成装置的结构的例子的图。在图6所示的结构中,程序生成装置具备设计信息输入部1、设计信息变换部2、需求规格输入部3、控制规则导出部4A、程序生成部5、需求规格变换部6以及参数输入部7。控制规则导出部4A由转移系统和自动机生成合成自动机。
参数输入部7从用户等受理作为与控制规则导出部4A中的控制规则导出时间有关的阈值的参数(1以上且从初始状态到受理状态的最小步数以下的整数值K)的输入。参数输入部7将设为标签赋予的对象的设备的状态限定在与该参数对应的范围中。
与在第一实施方式中示出的情况不同的点是与图3中的步骤ST104对应的流程(特别是,求出从合成自动机的初始状态能够到达受理状态的路径中的最小的转移时间的路径的处理),在本实施方式中,进行使用输入到参数输入部7的整数值K的处理。
接着,关于与上述的步骤ST104对应的流程,参照图7来进行说明。此外,图7是表示控制规则导出部4A中的转移时间计算动作的例子的流程图。
如图7所示,在步骤ST401中,控制规则导出部4A等待输入仅定义有能够到达受理状态的路径的合成自动机后开始转移时间计算动作。
接着,在步骤ST402中,控制规则导出部4A将处理的起点设为初始状态,将初始状态的标签设为0。
接着,在步骤ST404中,控制规则导出部4A使用预先输入到参数输入部7的作为阈值的整数值K,针对从起点通过K次转移能够到达的全部状态,将起点的标签与K次该转移所需的时间之和作为标签来赋予。
接着,在步骤ST405中,控制规则导出部4A判定是否存在被赋予了多个标签的状态。然后,在存在被赋予了多个标签的状态的情况、即对应于从图7中示例的步骤ST405分支的“是”的情况下,进入图7中示例的步骤ST406。另一方面,在不存在被赋予了多个标签的状态的情况、即对应于从图7中示例的步骤ST405分支的“否”的情况下,进入图7中示例的步骤ST407。
在步骤ST406中,控制规则导出部4A删除被赋予的多个标签中的除最小的标签以外的标签。在最小的标签存在多个的情况下,仅留下一个。然后,进入步骤ST407。
接着,在步骤ST407中,控制规则导出部4A求出向从起点通过K次转移能够转移的全部状态中的被赋予了最小的标签的状态转移的路径。
接着,在步骤ST408中,控制规则导出部4A在通过步骤ST407求出的路径中将从起点通过1次转移来到达的状态设为新的起点。
接着,在步骤ST409中,控制规则导出部4A判定是否对受理状态赋予了标签。然后,在对受理状态赋予了标签的情况、即对应于从图7中示例的步骤ST409分支的“是”的情况下,进入图7中示例的步骤ST410而结束转移时间计算动作。另一方面,在未对受理状态赋予标签的情况、即对应于从图7中示例的步骤ST409分支的“否”的情况下,返回到图7中示例的步骤ST404。
本实施方式中的控制规则导出部4A的处理相比于第一实施方式中的控制规则导出部4的处理而言,无需对合成自动机的全部状态赋予标签。因此,削减直到导出控制规则为止的处理时间。
但是,由于是仅对合成自动机的有限的状态赋予标签的动作,因此对受理状态赋予的标签有可能与对全部状态赋予了标签的情况相比大。这意味着,最终得到的程序的执行时间有可能比通过第一实施方式得到的程序的执行时间长。
另外,在上述的情况下,根据由参数输入部7设定的整数值K而其影响程度发生变化。在整数值K大的情况下,处理时间的削减效果小,但是得到的程序的执行时间更短的可能性高(但是,不会比通过第一实施方式得到的程序的执行时间小)。另一方面,在整数值K小的情况下,处理时间的削减效果大,但是得到的程序的执行时间更长的可能性高。
因此,用户通过调整由参数输入部7设定的整数值K,能够在短时间内得到具有能够容许的执行时间的程序。
<第三实施方式>
说明与本实施方式有关的程序生成装置和程序生成方法。此外,在以下的说明中,对与在以上记载的实施方式中说明的结构要素同样的结构要素附加相同的符号来进行图示,适当省略其详细的说明。
<关于程序生成装置的结构>
图8是概念性地表示与本实施方式有关的程序生成装置的结构的例子的图。在图8所示的结构中,程序生成装置具备设计信息输入部1、设计信息变换部2、需求规格输入部3、控制规则导出部4B、程序生成部5、需求规格变换部6以及显示部8。控制规则导出部4B从转移系统和自动机生成合成自动机。
显示部8根据由设计信息变换部2生成的转移系统的信息、控制对象的设计信息A以及控制规则,显示控制对象的外观、控制对象的动作以及控制对象的各个状态所满足的性质。由此,能够确认在按照由控制规则导出部4B导出的控制规则对控制对象进行了控制的情况下的动作,或者能够一边确认控制对象的动作、一边校正需求规格B等。
关于显示部8,例如能够利用3D模拟器等实现。关于显示部8中显示的控制对象的外观,能够通过对控制对象的设计信息A进行变换来生成。
关于控制对象的动作,能够通过使用由设计信息变换部2生成的转移系统来进行显示。根据转移系统的状态的定义,控制对象的状态与转移系统的状态建立对应,因此能够将与转移系统的当前的状态对应的控制对象的状态显示在显示部8。
并且,根据转移函数的定义,可知在状态集中包含的各个状态下在存在输入集中包含的各个输入的情况下的转移目的地的状态和转移时间,因此可知在控制对象的各个状态下在被输入了各个控制信号的情况下的转移目的地的状态和转移时间。通过将它们与显示部8的控制对象的外观相对应地进行显示,能够显示控制对象的动作。
另外,在转移系统中还定义了观测映射,因此能够将控制对象的各个状态所满足的性质也显示在显示部8。由此,用户能够一边确认在控制对象的各个状态下满足的性质、一边进行需求规格B的校正。
根据本实施方式,用户能够适当确认控制对象的外观或动作等。因此,能够进行在使用所生成的程序对控制对象进行了控制的情况下的动作确认或者需求规格的修正等,作为结果,能够容易地得到用户所期望的程序。
<第四实施方式>
说明与本实施方式有关的程序生成装置和程序生成方法。此外,在以下的说明中,对与在以上记载的实施方式中说明的结构要素同样的结构要素附加相同的符号来进行图示,适当省略其详细的说明。
在本实施方式中,目的在于生成即使不描述对于控制对象的需求规格B的全部也使控制对象如用户所期望的那样动作的程序。
<关于程序生成装置的结构>
图9是概念性地表示与本实施方式有关的程序生成装置的结构的例子的图。在图9所示的结构中,程序生成装置具备设计信息输入部1、设计信息变换部2、控制规则导出部4C、程序生成部5以及基于需求规格关联信息C进行学习的需求规格学习部9。控制规则导出部4C由转移系统和从需求规格学习部9输出的自动机生成合成自动机。
需求规格关联信息C是包含满足需求规格B的作为控制对象的设备的状态转移的例子和作为控制对象的设备不能陷入的状态(即,不满足需求规格B的设备的状态转移)的例子的信息,是能够由用户根据来自需求规格学习部9的请求适当进行输入或追加等的信息。
需求规格学习部9基于需求规格关联信息C,使用学习自动机的方法或强化学习等学习方法,学习仅受理满足需求规格B的输入列的自动机。
以后,作为需求规格学习部9中的学习方法,例如示出使用Angluin的L*算法的情况下的自动机的学习方法。
Angluin的L*算法的详情例如记载在“Dana Angluin:Learning Regular Setsfrom Queries and Counterexamples.Information and Computation 75,87-106(1987)”。
L*算法是通过利用以下的查询来学习受理未知的语言L的自动机的算法。
查询中存在membership查询和equivalence查询这两种查询。membership查询用于询问某输入列是否属于未知的语言L。另外,equivalence查询用于询问在L*算法的处理过程中输出的自动机是否与受理未知的语言L的自动机相等、且在不相等的情况下询问反例。
需求规格学习部9在L*算法的处理过程中,在需要的时机向用户请求对上述的查询的回答,从用户得到对上述的查询的回答,由此学习受理未知的语言L的自动机并输出该自动机。
在向用户请求对上述的查询的回答时,也可以使用如图8所示的显示部8来显示请求内容等,对此在图9中未示出。在该情况下,在请求对membership查询的回答的情况下,也可以将与输入列对应的控制对象的动作显示在显示部8,来确认是否偏离了用户所期望的控制对象的动作。另外,在请求对equivalence查询的回答的情况下,也可以针对由正在用L*算法学习的自动机受理的多个输入列,将对应的控制对象的动作显示在显示部8,来确认控制对象是否如用户所期望的那样动作。
需求规格学习部9也可以还被输入对于控制对象的需求规格B的一部分。图10是概念性地表示与本实施方式有关的程序生成装置的结构的变形例的图。
在图10所示的结构中,程序生成装置具备设计信息输入部1、设计信息变换部2、控制规则导出部4D、程序生成部5、需求规格输入部3以及基于需求规格B和需求规格关联信息C进行学习的需求规格学习部9D。控制规则导出部4D根据转移系统和从需求规格学习部9D输出的自动机生成合成自动机。
如图10中示例的那样,对于需求规格学习部9D,从需求规格输入部3输入需求规格B的一部分,另外还输入需求规格关联信息C。需求规格学习部9D在能够使用被输入的需求规格B的一部分生成对上述的查询的回答的情况下,能够不向用户请求回答。通过这样,能够减少用户回答上述的查询的麻烦。
通过本实施方式,即使在用户无法完整地描述需求规格B的情况下,也能够生成使控制对象如用户所期望的那样动作的程序。
此外,图6中示出的参数输入部7和图8中示出的显示部8均也能够应用于本实施方式的控制规则导出部。
<关于程序生成装置的硬件结构>
图12和图13是概略性地例示在实际运用图1、图6、图8、图9以及图10中示例的程序生成装置的情况下的硬件结构的图。
此外,图12和图13中例示的硬件结构有时与图1、图6、图8、图9以及图10中例示的结构之间数量等不匹配,这是因为图1、图6、图8、图9以及图10中例示的结构表示概念性的单位。
因此,至少可设想:图1、图6、图8、图9以及图10中例示的一个结构由图12和图13中例示的多个硬件结构构成的情况;图1、图6、图8、图9以及图10中例示的一个结构与图12及图13中例示的硬件结构的一部分对应的情况;以及图1、图6、图8、图9以及图10中例示的多个结构配备于图12和图13中例示的一个硬件结构的情况。
在图12中,作为用于实现图1、图6、图8、图9以及图10中的设计信息输入部1、设计信息变换部2、需求规格输入部3、控制规则导出部4、程序生成部5、需求规格变换部6、参数输入部7、显示部8、需求规格学习部9等的硬件结构,示出:进行运算的处理电路1102A;能够存储信息的存储装置1103;鼠标、键盘、触摸面板或各种开关等能够输入信息的输入装置1104A;以及显示器、液晶显示装置或灯等能够输出信息的输出装置1105A(包括与输入装置1104A共用的情况)。这些结构在其它实施方式中也同样。
在图13中,作为用于实现图1、图6、图8、图9以及图10中的设计信息输入部1、设计信息变换部2、需求规格输入部3、控制规则导出部4、程序生成部5、需求规格变换部6、参数输入部7、显示部8、需求规格学习部9等的硬件结构,示出:进行运算的处理电路1102B;鼠标、键盘、触摸面板或各种开关等能够输入信息的输入装置1104B;以及显示器、液晶显示装置或灯等能够进行信息的输出的输出装置1105B(包括与输入装置1104B共用的情况)。该结构在其它实施方式中也同样。
存储装置1103例如也可以是硬盘驱动器(Hard disk drive、即HDD)、随机存取存储器(random access memory、即RAM)、只读存储器(read only memory、即ROM)、快闪存储器、erasable programmable read only memory(EPROM、可擦可编程只读存储器)以及electrically erasable programmable read-only memory(EEPROM、电可擦可编程只读存储器)等易失性或非易失性的半导体存储器、包括磁盘、软盘、光盘、高密度磁盘、迷你盘或DVD等的存储器(记录介质)、或将来使用的所有记录介质。
处理电路1102A也可以是用于执行在存储装置1103、外部的CD-ROM、外部的DVD-ROM或外部的快闪存储器等中保存的程序的电路。即,例如也可以是中央运算处理装置(central processing unit、即CPU)、微型处理器、微型计算机、数字信号处理器(digitalsignal processor、即DSP)。
在处理电路1102A是执行在存储装置1103、外部的CD-ROM、外部的DVD-ROM或外部的快闪存储器等中保存的程序的电路的情况下,设计信息变换部2、控制规则导出部4、程序生成部5、需求规格变换部6、需求规格学习部9是通过由处理电路1102A执行存储装置1103中保存的程序的软件、固件或软件与固件的组合来实现的。此外,设计信息变换部2、控制规则导出部4、程序生成部5、需求规格变换部6、需求规格学习部9的功能例如也可以通过由多个处理电路协作来实现。
软件和固件也可以被描述为程序并被存储在存储装置1103中。在该情况下,处理电路1102A通过读出并执行存储装置1103中保存的程序来实现上述的功能。即,存储装置1103也可以是存储通过被处理电路1102A执行而结果上实现上述的功能的程序的装置。
另外,处理电路1102B也可以是专用的硬件。即,例如也可以是单一电路、复合电路、被编程的处理器、被并行编程的处理器、集成电路(application specific integratedcircuit、即ASIC)、field-programmable gate array(FPGA、现场可编程门阵列)或将它们组合而成的电路。
在处理电路1102B是专用的硬件的情况下,设计信息变换部2、控制规则导出部4、程序生成部5、需求规格变换部6、需求规格学习部9是通过由处理电路1102B进行动作来实现的。此外,关于设计信息变换部2、控制规则导出部4、程序生成部5、需求规格变换部6、需求规格学习部9的功能,既可以由各自不同的电路实现,也可以由单一的电路实现。
此外,关于设计信息变换部2、控制规则导出部4、程序生成部5、需求规格变换部6、需求规格学习部9的功能,也可以在执行存储装置1103中保存的程序的处理电路1102A中实现其一部分,在作为专用的硬件的处理电路1102B中实现其一部分。
另外,设计信息输入部1、需求规格输入部3、参数输入部7是通过输入装置1104A或输入装置1104B来实现的。
另外,显示部8是通过输出装置1105A或输出装置1105B来实现的(也可以与输入装置共用)。
<关于通过以上记载的实施方式产生的效果>
接着,示出通过以上记载的实施方式产生的效果的例子。此外,在以下的说明中,基于在以上记载的实施方式中示例的具体结构记载该效果,但是在产生同样的效果的范围内也可以置换为本申请说明书中示例的其它具体结构。即,以下有时为了方便而仅将相对应的具体结构中的某一个作为代表来记载,但是也可以将作为代表记载的具体结构置换为相对应的其它具体结构。
另外,该置换也可以跨多个实施方式地进行。即,也可以是将在不同的实施方式中示例的各个结构相组合来产生同样的效果的情况。
根据以上记载的实施方式,程序生成装置具备设计信息变换部2、控制规则导出部4(或者,控制规则导出部4A、控制规则导出部4B、控制规则导出部4C、控制规则导出部4D)以及程序生成部5。设计信息变换部2将设计信息A变换为模型,该模型至少包含作为设备的状态的集合的状态集、作为从控制器输入到控制对象的信号的集合的输入集、作为表示状态集中包含的设备的状态间的因输入到控制对象的信号引起的转移的函数的转移函数以及用转移函数表示的各个转移所需的时间。此外,设计信息A至少包含构成控制对象的设备的多个状态、在控制对象与控制器之间输入输出的信号与设备的状态的各个关系以及设备的状态的各个变化所需的时间。控制规则导出部4基于包含与设备的状态的转移所需的时间有关的规格的需求规格B以及模型,以满足需求规格B的方式导出将设备的各个状态与从控制器输入到控制对象的信号建立对应的控制规则。程序生成部5基于控制规则生成程序。
另外,根据以上记载的实施方式,程序生成装置具备执行程序的处理电路1102A和存储要执行的程序的存储装置1103。而且,通过由处理电路1102A执行程序,实现以下的动作。
即,设计信息A被变换为模型,该设计信息A至少包含构成控制对象的设备的多个状态、在控制对象与控制器之间输入输出的信号与设备的状态的各个关系以及设备的状态的各个变化所需的时间,该模型至少包含作为设备的状态的集合的状态集、作为从控制器输入到控制对象的信号的集合的输入集、作为表示状态集中包含的设备的状态间的因输入到控制对象的信号引起的转移的函数的转移函数以及用转移函数表示的各个转移所需的时间。然后,基于包含与设备的状态的转移所需的时间有关的规格的需求规格B以及模型,以满足需求规格B的方式导出将设备的各个状态与从控制器输入到控制对象的信号建立对应的控制规则。然后,基于控制规则生成程序。
另外,根据以上记载的实施方式,程序生成装置具备作为专用的硬件的处理电路1102B。而且,作为专用的硬件的处理电路1102B进行以下的动作。
即,作为专用的硬件的处理电路1102B将设计信息A变换为模型,该设计信息A至少包含构成控制对象的设备的多个状态、在控制对象与控制器之间输入输出的信号与设备的状态的各个关系以及设备的状态的各个变化所需的时间,该模型至少包含作为设备的状态的集合的状态集、作为从控制器输入到控制对象的信号的集合的输入集、作为表示状态集中包含的设备的状态间的因输入到控制对象的信号引起的转移的函数的转移函数以及用转移函数表示的各个转移所需的时间。然后,基于包含与设备的状态的转移所需的时间有关的规格的需求规格B以及模型,以满足需求规格B的方式导出将设备的各个状态与从控制器输入到控制对象的信号建立对应的控制规则。然后,基于控制规则生成程序。
根据这样的结构,基于包含转移所需的时间的模型以满足包含转移所需的时间的需求规格的方式导出控制规则,因此在基于该控制规则生成的程序中进行与时间有关的控制(最优化),能够提高控制对象的动作效率。另外,生成的程序的变换规则不限定于梯形图语言,因此程序的语言变换的自由度提高。
此外,即使在对上述的结构适当追加了本申请说明书中示例的其它结构的情况、即适当追加了未作为上述的结构提及的本申请说明书中的其它结构的情况下,也能够产生同样的效果。
另外,根据以上记载的实施方式,模型包含设备的状态所满足的性质。根据这样的结构,基于包含转移所需的时间的模型以满足包含转移所需的时间的需求规格的方式导出控制规则,因此在基于该控制规则生成的程序中进行与时间有关的控制(最优化),能够提高控制对象的动作效率。另外,生成的程序的变换规则不限定于梯形图语言,因此程序的语言变换的自由度提高。
另外,根据以上记载的实施方式,程序生成装置具备需求规格变换部6,该需求规格变换部6用于将需求规格B变换为自动机的格式。控制规则导出部4(或者,控制规则导出部4A、控制规则导出部4B)基于模型以及被变换为自动机的格式的需求规格B,以满足需求规格B的方式导出控制规则。根据这样的结构,控制规则导出部4中的控制规则的导出变得容易,能够缩短直到导出控制规则为止的处理时间。
另外,根据以上记载的实施方式,程序生成装置具备需求规格学习部9(或者需求规格学习部9D),该需求规格学习部9(或者需求规格学习部9D)用于基于与满足需求规格B的设备的状态的转移有关的信息以及与不满足需求规格B的设备的状态的转移有关的信息,学习与设备的状态的转移有关的需求规格B。控制规则导出部4C(或者控制规则导出部4D)基于模型以及由需求规格学习部9(或者需求规格学习部9D)学习的需求规格B,以满足需求规格B的方式导出控制规则。根据这样的结构,即使不直接输入需求规格B,也能够通过基于需求规格关联信息C学习来得到需求规格B,从而导出控制规则。
另外,根据以上记载的实施方式,需求规格学习部9D被输入至少一部分的需求规格B。根据这样的结构,能够一边参照一部分需求规格B、一边辅助地使用通过基于需求规格关联信息C的学习得到的需求规格。因此,即使在用户无法完整地描述需求规格B的情况下,也能够生成使控制对象如用户所期望的那样动作的程序。
另外,根据以上记载的实施方式,程序生成装置具备参数输入部7,该参数输入部7用于对控制规则导出部4输入用于限制设备的状态的转移的次数的阈值。控制规则导出部4导出转移的次数不超过阈值的控制规则。根据这样的结构,通过调整由参数输入部7设定的整数值K来限制状态的转移的次数,能够在短时间内得到具有能够容许的执行时间的程序。
另外,根据以上记载的实施方式,程序生成装置具备显示部8,该显示部8用于至少基于设计信息A、模型以及控制规则显示控制对象的外观和动作中的至少一方。根据这样的结构,能够适当确认显示在显示部8的控制对象的外观和动作,因此能够利用于基于所生成的程序的控制对象的动作的确认、或者需求规格的修正等,作为结果,容易地得到用户所期望的程序。
根据以上记载的实施方式,在程序生成方法中,将设计信息A变换为模型,该设计信息A至少包含构成控制对象的设备的多个状态、在控制对象与控制器之间输入输出的信号与设备的状态的各个关系以及设备的状态的各个变化所需的时间,该模型至少包含作为设备的状态的集合的状态集、作为从控制器输入到控制对象的信号的集合的输入集、作为表示状态集中包含的设备的状态间的因输入到控制对象的信号引起的转移的函数的转移函数以及用转移函数表示的各个转移所需的时间。然后,基于包含与设备的状态的转移所需的时间有关的规格的需求规格B以及模型,以满足需求规格B的方式导出将设备的各个状态与从控制器输入到控制对象的信号建立对应的控制规则。然后,基于控制规则生成程序。
根据这样的结构,基于包含转移所需的时间的模型以满足包含转移所需的时间的需求规格的方式导出控制规则,因此在基于该控制规则生成的程序中进行与时间有关的控制(最优化),能够提高控制对象的动作效率。另外,生成的程序的变换规则不限定于梯形图语言,因此程序的语言变换的自由度提高。
此外,在没有特别的限制的情况下,能够变更进行各个处理的顺序。
另外,即使在对上述的结构适当追加了本申请说明书中示例的其它结构的情况、即适当追加了未作为上述的结构提及的本申请说明书中的其它结构的情况下,也能够产生同样的效果。
<关于以上记载的实施方式的变形例>
在以上记载的实施方式中,有时还记载各个结构要素的尺寸、形状、相对的配置关系或实施的条件等,但是这些在所有方面均是一例,并非限定性的。
因而,在本申请说明书所公开的技术的范围内可设想未示例的无数个变形例和等同物。例如,包括将至少一个结构要素变形的情况、追加的情况或省略的情况以及提取至少一个实施方式中的至少一个结构要素并与其它实施方式中的结构要素组合的情况。
另外,只要不产生矛盾,则在以上记载的实施方式中记载为具备“一个”结构要素的情况下,也可以具备“一个以上”该结构要素。
另外,本申请说明书中的说明是以与本技术关联的全部的目的而参照的,均不被认为是现有技术。
另外,在以上记载的实施方式中记载的各个结构要素既可以设想为软件或固件,也可以设想为与其对应的硬件,在这双方的概念中,各个结构要素被称为“部”或“处理电路”(circuitry)等。
另外,本申请说明书所公开的技术也可以包括各个结构要素分散地配备于多个装置的情况,即也可以是如作为多个装置的组合的系统那样的方式。
Claims (8)
1.一种程序生成装置,用于生成程序,该程序由对控制对象进行控制的控制器执行,所述程序生成装置具备:
设计信息变换部,用于将设计信息变换为模型,该设计信息至少包含构成所述控制对象的设备的多个状态、在所述控制对象与所述控制器之间输入输出的信号与所述设备的所述状态的各个关系以及所述设备的所述状态的各个变化所需的时间,该模型至少包含作为所述设备的所述状态的集合的状态集、作为从所述控制器输入到所述控制对象的所述信号的集合的输入集、作为表示所述状态集中包含的所述设备的所述状态间的因输入到所述控制对象的所述信号引起的转移的函数的转移函数以及用所述转移函数表示的各个所述转移所需的时间;
控制规则导出部,用于基于需求规格以及所述模型,以满足所述需求规格的方式,导出将所述设备的各个所述状态与从所述控制器输入到所述控制对象的所述信号建立对应的控制规则,其中,所述需求规格包含与所述设备的所述状态的所述转移所需的时间有关的规格;以及
程序生成部,用于基于所述控制规则生成所述程序。
2.根据权利要求1所述的程序生成装置,其中,
所述模型包含所述设备的所述状态所满足的性质。
3.根据权利要求1或2所述的程序生成装置,其中,
还具备用于将所述需求规格变换为自动机的格式的需求规格变换部,
所述控制规则导出部基于所述模型以及被变换为自动机的格式的所述需求规格,以满足所述需求规格的方式导出所述控制规则。
4.根据权利要求1至3中的任一项所述的程序生成装置,其中,
还具备需求规格学习部,该需求规格学习部用于基于与满足所述需求规格的所述设备的所述状态的所述转移有关的信息以及与不满足所述需求规格的所述设备的所述状态的所述转移有关的信息,学习与所述设备的所述状态的所述转移有关的所述需求规格,
所述控制规则导出部基于所述模型以及由所述需求规格学习部学习的所述需求规格,以满足所述需求规格的方式导出所述控制规则。
5.根据权利要求4所述的程序生成装置,其中,
所述需求规格学习部被输入至少一部分的所述需求规格。
6.根据权利要求1至5中的任一项所述的程序生成装置,其中,
还具备参数输入部,该参数输入部用于对所述控制规则导出部输入用于限制所述设备的所述状态的所述转移的次数的阈值,
所述控制规则导出部导出作为不超过所述阈值的所述转移的次数的所述控制规则。
7.根据权利要求1至6中的任一项所述的程序生成装置,其中,
还具备显示部,该显示部用于至少基于所述设计信息、所述模型以及所述控制规则显示所述控制对象的外观和动作中的至少一方。
8.一种程序生成方法,用于生成程序,该程序由对控制对象进行控制的控制器执行,所述程序生成方法包括:
将设计信息变换为模型,该设计信息至少包含构成所述控制对象的设备的多个状态、在所述控制对象与所述控制器之间输入输出的信号与所述设备的所述状态的各个关系以及所述设备的所述状态的各个变化所需的时间,该模型至少包含作为所述设备的所述状态的集合的状态集、作为从所述控制器输入到所述控制对象的所述信号的集合的输入集、作为表示所述状态集中包含的所述设备的所述状态间的因输入到所述控制对象的所述信号引起的转移的函数的转移函数以及用所述转移函数表示的各个所述转移所需的时间,
基于包含与所述设备的所述状态的所述转移所需的时间有关的规格的需求规格以及所述模型,以满足所述需求规格的方式导出将所述设备的各个所述状态与从所述控制器输入到所述控制对象的所述信号建立对应的控制规则,
基于所述控制规则生成所述程序。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2021/014264 WO2022208860A1 (ja) | 2021-04-02 | 2021-04-02 | プログラム生成装置、および、プログラム生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117099057A true CN117099057A (zh) | 2023-11-21 |
Family
ID=83460053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180096505.0A Pending CN117099057A (zh) | 2021-04-02 | 2021-04-02 | 程序生成装置和程序生成方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20240168447A1 (zh) |
JP (1) | JPWO2022208860A1 (zh) |
CN (1) | CN117099057A (zh) |
DE (1) | DE112021007449T5 (zh) |
WO (1) | WO2022208860A1 (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2528198B2 (ja) * | 1990-05-11 | 1996-08-28 | 株式会社神戸製鋼所 | ラダ―シ―ケンスプログラムの作成方法及び作成装置 |
JPH086777A (ja) * | 1994-06-23 | 1996-01-12 | Hitachi Ltd | 情報制御システムの開発システムおよび開発方法 |
GB0423110D0 (en) * | 2004-10-18 | 2004-11-17 | Manthatron Ip Ltd | Acting on a subject system |
US9390208B2 (en) * | 2013-06-14 | 2016-07-12 | Synopsys, Inc. | Formal verification of temporal properties expressed using local variables |
-
2021
- 2021-04-02 CN CN202180096505.0A patent/CN117099057A/zh active Pending
- 2021-04-02 US US18/280,673 patent/US20240168447A1/en active Pending
- 2021-04-02 JP JP2023510127A patent/JPWO2022208860A1/ja active Pending
- 2021-04-02 DE DE112021007449.0T patent/DE112021007449T5/de active Pending
- 2021-04-02 WO PCT/JP2021/014264 patent/WO2022208860A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
JPWO2022208860A1 (zh) | 2022-10-06 |
WO2022208860A1 (ja) | 2022-10-06 |
DE112021007449T5 (de) | 2024-02-01 |
US20240168447A1 (en) | 2024-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Maher et al. | CADSYN: A case-based design process model | |
CN104699883A (zh) | 采用紧凑多波形表示的电路设计评估 | |
Wang et al. | Diagnosis of time Petri nets using fault diagnosis graph | |
Wang et al. | Formal modeling and synthesis of programmable logic controllers | |
US20180307193A1 (en) | Automated control of processes | |
CN106845665A (zh) | 用于利用遗传算法对配送路线进行优化的方法和系统 | |
CN103220685A (zh) | 基于动态规划的传感器网络软件模型检验方法 | |
Sangnier et al. | Parameterized verification of algorithms for oblivious robots on a ring | |
CN117099057A (zh) | 程序生成装置和程序生成方法 | |
Simpson et al. | Structural modeling | |
Li et al. | Probabilistic preference planning problem for markov decision processes | |
EP3779623A1 (en) | A system for generation of a holistic digital twin | |
Ogundare et al. | No code ai: Automatic generation of function block diagrams from documentation and associated heuristic for context-aware ml algorithm training | |
Königseder et al. | Analyzing generative design grammars | |
Bork et al. | Learning Explainable and Better Performing Representations of POMDP Strategies | |
JPH11514123A (ja) | 製造データを機械的に自動的に作成する方法 | |
Paul et al. | VERILAT: Verification using logic augmentation and transformations | |
KR102219655B1 (ko) | 프로그래머블 로직 컨트롤러 | |
JP4702357B2 (ja) | 動作レベル記述とレジスタ転送レベル記述間の等価性検証方法及び装置並びにプログラム | |
RU2637464C1 (ru) | Устройство моделирования сценариев развития ситуации | |
JP2007128138A (ja) | ビジネスプロセステスト設計支援装置、ビジネスプロセス試験方法、及びコンピュータプログラム | |
CN110245755A (zh) | 故障设备的维修数据匹配方法和设备 | |
Fu et al. | Optimal planning on register automata | |
Jiang et al. | The verification of conversion algorithms between finite automata. | |
Tan et al. | The Application of Maze algorithm in Translating Ladder Diagram into Instruction Lists of Programmable Logical Controller |
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 |