CN111954854A - 支持装置以及支持程序 - Google Patents

支持装置以及支持程序 Download PDF

Info

Publication number
CN111954854A
CN111954854A CN201980025084.5A CN201980025084A CN111954854A CN 111954854 A CN111954854 A CN 111954854A CN 201980025084 A CN201980025084 A CN 201980025084A CN 111954854 A CN111954854 A CN 111954854A
Authority
CN
China
Prior art keywords
data
type
variable
information
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.)
Granted
Application number
CN201980025084.5A
Other languages
English (en)
Other versions
CN111954854B (zh
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 CN111954854A publication Critical patent/CN111954854A/zh
Application granted granted Critical
Publication of CN111954854B publication Critical patent/CN111954854B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/436Semantic checking
    • G06F8/437Type checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)

Abstract

本发明支持考虑到控制数据的数据类型的、控制程序的容易的开发。命令代码生成部件生成:信息,所述信息定义控制数据别的变量、及与所述变量对应且数据的操作方式相同的其他数据类型中的一个以上的数据类型;以及命令代码,所述命令代码使用所定义的变量来记述控制装置所执行的处理。可执行程序生成部件在使用定义的信息及命令代码来生成可执行程序时,生成包含与命令代码所示的运算式具有的各变量相对应而定义的一个以上的数据类型的类型集合,基于用于保证运算精度的基准而从运算式的类型集合中选择一个,决定为运算结果的数据类型。

Description

支持装置以及支持程序
技术领域
本公开涉及一种用于支持可编程逻辑控制器(Programmable Logic Controller,以下称为“PLC”)的使用及运用的支持装置、以及用于实现所述支持装置的支持程序,所述可编程逻辑控制器是为了控制机械或设备等器件而使用。
背景技术
作为用于控制机械或设备等器件的控制器,典型而言可使用PLC。关于此种PLC,由于用户可根据控制对象的器件而自由地制作程序,因而通用性高,广泛地普及。以往的PLC中,用于控制器件的输入数据、输出数据、内部计算用数据等保存在存储区域的预定位置。在程序中利用(参照)这些数据的情况下,需要确定存储区域的(绝对或相对)地址。
相对于此,考虑到程序的再利用性或通用处理化(通用模块化)等,而逐渐可进行面向对象(object)的编程(programming)。具体而言,逐渐提供下述编程环境,即:可按数据来使用变量,利用(参照)输入数据、输出数据、内部计算用数据等。在与以往的程序比对的含意下,通过此种编程环境生成的程序也被称为“变量程序”。
另一方面,为了降低PLC本体的装置成本,有积极采用通用器件的倾向。伴随这种通用器件的采用,下述动向变得活跃,即:代替以往的制造厂商即供应商(vendor)各自的独自规范,而多个厂商形成联盟(alliance),导入通用规范等。由此,从用户来看,可获得不依赖于器件的供应商而可构筑统一系统等优点。作为此种通用规范化的一例,正进行使控制器件的数据别的变量通用化等。
在使控制器件的数据别的变量通用化的情况下,有即便变量相同但数据的类型也不同的例子(case)。例如,在提供器件的供应商不同的情况下,有时即便为相同变量,每个供应商的所述变量的数据的类型也不同。本说明书中,将这一情况也称为“器件支持的数据类型”不同。
在此种“器件支持的数据类型”不同的背景下,编程器在编程中,为了声明适当的数据类型,或为了记载适当的数据类型转换命令,编程器需要事先掌握包含PLC的网络内的各个器件支持的数据类型。这种“器件支持的数据类型”的掌握耗费工夫,可能成为程序的生产性提高的瓶颈(neck)。
日本专利特开2013-161106号公报(专利文献1)的支持装置为了不依赖于对象侧PLC的类别而更容易地在PLC间交换数据,而根据可编程逻辑控制器的类别,使与变量对应地在存储器上确保的数据的数据结构变得合适。
日本专利特开2010-176377号公报(专利文献2)为了将以独自的语言形式开发的PLC的应用程序转换为依据JISB3503(国际电工委员会(International ElectrotechnicalCommission,IEC)61131-3)语言的程序,而使用数据的类型转换命令。
现有技术文献
专利文献
专利文献1:日本专利特开2013-161106号公报
专利文献2:日本专利特开2010-176377号公报
发明内容
发明所要解决的问题
但是,专利文献1和专利文献2中,并未对基于“器件支持的数据类型”的差异的、编程的效率化进行提案。
本公开的目的在于提供一种环境,此环境支持考虑到控制对象的器件的控制数据的数据类型的、控制程序的容易的开发。
解决问题的技术手段
本公开的一例的支持装置生成可执行程序,所述可执行程序是由控制对象的控制装置所执行,且所述支持装置包括:数据保存部件,用于针对控制对象的数据的型别而保存多个数据类型的信息,所述多个数据类型包含所述数据的类型、及在执行程序时数据的操作方式可与通过控制装置的所述数据的类型相同的其他数据类型;生成进行定义的信息的部件,所述信息定义数据别的变量、及与所述变量对应且为多个数据类型中的一个以上的数据类型;生成命令代码的部件,所述命令代码是使用所定义的变量来记述控制装置所执行的处理而成;以及使用进行定义的信息及命令代码来生成可执行程序的部件。
生成可执行程序的部件构成为:生成类型集合,所述类型集合包含与命令代码所示的运算式具有的各变量相对应而定义的一个以上的数据类型,并基于用于保证运算精度的基准而从运算式的类型集合中选择一个,决定为运算结果的数据类型。
根据所述公开,可对用于记述命令代码的数据别的变量,定义与通过控制装置的所述数据的操作方式相同的一个或多个数据类型。而且,即便对数据别的变量定义有多个数据类型,也可在生成可执行程序时,将包含变量而记述的运算式的数据类型决定为保证运算精度的数据类型。由此,可不依赖于控制对象的器件支持的数据类型而进行控制对象的程序的开发。
所述公开中,控制对象的数据的型别的多个数据类型是依对象的每个供应商而保存,每个供应商的多个数据类型包含由所述供应商预先决定的数据类型、及数据的操作方式可与所述预定的数据类型相同的其他的数据的类型。
根据所述公开,可使多个数据类型中包含依赖于对象的供应商的数据类型。
所述公开中,生成进行定义的信息的部件构成为,生成信息来定义数据别的变量、及将与对象的供应商对应的多个数据类型定义为与所述变量对应的数据类型。
根据所述公开,可依对象的每个供应商而定义多个数据类型。
所述公开中,支持装置从控制装置接收信息,所述信息确定连接于所述控制装置的对象的供应商。
根据所述公开,支持装置可从例如控制装置实机而接收对象的供应商的信息。
所述公开中,生成进行定义的信息的部件构成为,基于用户操作而定义与数据别的变量对应的一个以上的数据类型,并使变量显示于监视器,且与所述变量关联地使多个数据类型显示于监视器。
根据所述公开,用户可进行下述操作,即:从显示于监视器的多个数据类型中,选择需定义的数据类型。
所述公开中,通过数据类型的所述操作方式包含基于数据尺寸的大小的操作方式。支持装置还包括用于与各数据类型相对应而保存优先级的部件,所述优先级表示基于操作的数据尺寸而所述数据类型优先于其他数据类型与变量对应地设定的程度。决定运算结果的数据类型包含:从类型集合中选择具有依据用于保证运算精度的基准的优先级的数据类型,将所选择的数据类型决定为运算结果的数据类型。
根据所述公开,通过基于与数据类型对应的数据尺寸来决定运算结果的数据类型,从而可避免在通过控制装置实施运算的情况下的、运算结果的缺位、溢位等信息损失。
所述公开中,生成类型集合包含:基于运算式具有的运算符的种类,生成包含与所述式具有的变量相对应而定义的一个以上的数据类型的类型集合。
根据所述公开,可使类型集合与和运算式所含的运算符的种类相应的内容不同。
根据本公开的一例,提供一种支持程序,生成可执行程序,所述可执行程序由控制对象的控制装置所执行。支持程序使计算机作为以下的部件发挥功能。计算机包括:数据保存部件,用于针对控制对象的数据的型别而保存多个数据类型的信息,所述多个数据类型包含所述数据的类型、及在执行程序时数据的操作方式可与通过控制装置的所述数据的类型相同的其他数据类型。
所述以下的部件包括:生成进行定义的信息的部件,所述信息定义数据别的变量、及与所述变量对应且为多个数据类型中的一个以上的数据类型;生成命令代码的部件,所述命令代码是使用所定义的变量来记述控制装置所执行的处理而成;以及使用进行定义的信息及命令代码来生成可执行程序的部件。生成可执行程序的部件构成为,生成类型集合,所述类型集合包含与命令代码所示的运算式具有的各变量相对应而定义的一个以上的数据类型,基于用于保证运算精度的基准而从运算式的类型集合中选择一个,将所选择的一个类型决定为运算结果的数据类型。
通过所述公开的支持程序由计算机执行,从而可对用于记述命令代码的数据别的变量,定义与通过控制装置的所述数据的操作方式相同的一个或多个数据类型。而且,即便对数据别的变量定义有多个数据类型,也可在生成可执行程序时,将包含变量而记述的运算式的数据类型决定为保证运算精度的数据类型。
发明的效果
根据本公开的一例,可提供一种环境,所述环境支持考虑到控制对象的器件的控制数据的数据类型的、控制程序的容易的开发。
附图说明
图1为表示本发明的实施方式的PLC系统SYS的一例的示意图。
图2为表示本发明的实施方式的PLC的处理单元10的硬件结构的一例的示意图。
图3为表示本发明的实施方式的支持装置200的硬件结构的一例的示意图。
图4为表示安装于本发明的实施方式的PLC的处理单元10的、软件结构的一例的示意图。
图5为表示安装于本发明的实施方式的支持装置200的、软件结构的一例的示意图。
图6为概略性地表示本实施方式的支持装置200的程序的开发环境的一例的图。
图7为表示本实施方式的程序开发的概略处理的一例的流程图。
图8为表示本实施方式的源程序271的一例的图。
图9为示意性地表示本实施方式的编辑器信息277的一例的图。
图10为表示本实施方式的器件的每个供应商的数据类型的对应信息294的一例的图。
图11为对本实施方式的视为相同数据类型的原则的一例加以说明的图。
图12为表示显示本实施方式的程序的画面的一例的图。
图13为概略性地表示本实施方式的统一设定处理的一例的处理流程图。
图14为表示本实施方式的变量化处理的一例的流程图。
图15为表示本实施方式的个别设定处理的一例的处理流程图。
图16为表示本实施方式的个别设定处理的数据类型候补的显示的一例的图。
图17为表示本实施方式的编译处理的一例的流程图。
图18为表示本实施方式的编译处理的一例的流程图。
图19为表示与本实施方式的式对应的AST的一例的图。
图20为表示本实施方式的代码分析处理中的AST的变化的一例的图。
图21为表示本实施方式的代码分析处理中的AST的变化的一例的图。
图22为表示本实施方式的代码分析处理中的AST的变化的一例的图。
图23为表示本实施方式的代码分析处理中的AST的变化的一例的图。
图24为表示本实施方式的代码分析处理中的AST的变化的一例的图。
图25为表示适用于本实施方式的代码分析处理的函数的一例的图。
图26为表示适用于本实施方式的代码分析处理的函数的一例的图。
图27为表示适用于本实施方式的代码分析处理的函数的一例的图。
图28为表示本实施方式的排位表的一例的图。
图29为表示适用于本实施方式的代码分析处理的函数的一例的图。
具体实施方式
一方面参照附图一方面对本发明的实施方式加以详细说明。此外,对图中的相同或相应部分标注相同符号,不重复进行其说明。
<A.适用例>
首先,参照图6,对适用本发明的场景的一例进行说明。图6为概略性地表示本实施方式的支持装置200的程序的开发环境的一例的图。本实施方式中,提供支持装置200,此支持装置200支持对控制对象进行控制的控制装置所执行的可执行程序的开发。可执行程序例如可包含用于对控制对象进行控制的控制程序。控制装置例如可包含可编程逻辑控制器。控制对象相当于由控制装置进行控制的致动器(actuator)、检测传感器等器件。
支持装置200包括编程应用250作为对控制程序等用户程序、也就是可执行程序的开发进行支持的环境。支持装置200包括:编辑器252,编辑并生成源程序271;以及编译器254,对所编辑的源程序271进行编译而转换为可执行程序273。而且,支持装置200包括包含随机存取存储器(Random Access Memory,RAM)、硬盘驱动器(Hard Disc Drive,HDD)等的数据保存部270,作为保存在源程序271的编辑时或编译时所利用的数据的区域、及作业区域。
数据保存部270包含编辑器信息277。编辑器信息277针对用于控制对象的数据的型别而具有多个数据类型的信息,所述多个数据类型包含所述数据的类型、及在执行程序时数据的操作方式可与通过控制装置的所述数据的类型相同的其他数据类型。所谓所述数据的操作方式,包含由通过数据类型的数据尺寸、或数据在存储器中的对齐(alignment)。对象相当于致动器、检测传感器等各种器件。
编辑器252按照用户操作来编辑源程序271。在源程序271的编辑时,编辑器252生成对应的源代码272。源程序271包含按照预定的程序语言(例如国际规范IEC61131-3)记述的程序。此外,程序语言的种类不限定于依据国际规范IEC61131-3的语言。
源程序包含使用变量编辑器253进行记述的变量声明部、及使用编辑器252进行记述的代码部。变量编辑器253相当于下述部件,即:在变量声明部中,生成信息来定义数据别的变量、及与所述变量对应且为所述多个数据类型中的一个以上的数据类型。编辑器252相当于下述部件,即:在代码部中,生成使用所定义的变量来记述控制装置所执行的处理的命令代码。更具体而言,编辑器252按照经由键盘等受理的用户操作,生成表示运算式的命令代码。所述运算式包含逻辑运算或算术运算,运算式包含运算符(operator)和操作数(operand)。进而,运算符包含一元运算符或二元运算符等。
编译器254使用此种变量声明部的定义信息及代码部的命令代码来生成可执行程序273。具体而言,编译器254按照预定的程序语言的形式,对包含变量声明部的定义信息及代码部的命令代码的源程序271(更特定而言为源代码272)进行编译,由此由源程序271生成包含控制装置的处理器可执行的代码的可执行程序273。
可执行程序273通过传输模块211而传输(下载或上传)至PLC等控制装置。控制装置的处理器通过执行可执行程序273,从而对作为控制对象的各种器件进行控制。
编译器254相当于生成可执行程序的部件。编译器254为了扫描源程序271进行分析,而包含字句分析部212、语法分析部213、含意分析部214及代码分析部215。进而,编译器254包含可重配置代码生成部216,此可重配置代码生成部216基于源程序271的分析结果而由源程序271生成可重配置代码。
代码分析部215具有生成类型集合的部件,所述类型集合包含与源程序271的代码部所含的命令代码所示的运算式具有的变量对应地由变量声明部定义的一个以上的数据类型。具体而言,代码分析部215按照数据保存部270的规则278,生成包含与所述运算式具有的变量对应地由变量声明部定义的一个以上的数据类型的类型集合。规则278包含下述函数,此函数用于基于运算式具有的运算符的种类,生成包含与所述式具有的变量相对应而定义的一个以上的数据类型的类型集合。通过基于此种规则278,从而可将类型集合设为包含运算式的运算符可取的数据类型的类型集合。
而且,代码分析部215具有下述部件,此部件基于用于保证运算精度的基准而从运算式的类型集合中选择一个,决定为运算结果的数据类型。
此处,通过数据类型的数据的操作方式可包含基于数据尺寸的大小的操作方式。支持装置200在数据保存部270中,具有与各数据类型对应地保存了优先级的排位表289,所述优先级表示基于操作的数据尺寸而所述数据类型优先于其他数据类型与变量对应地设定的程度。在决定运算结果的数据类型的情况下,代码分析部215从所述类型集合中,选择具有下述优先级的数据类型,决定为运算结果的数据类型、也就是运算式的数据类型,所述优先级依据用于保证运算精度的基准。
根据本实施方式的支持装置200,编辑器252由信息及命令代码来生成源程序271,所述信息定义用于控制对象的数据别的变量、及与所述变量对应且通过控制装置的所述数据的操作方式相同的一个或多个数据类型,所述命令代码是使用所定义的变量记述控制装置所执行的处理而成。因此,可对用于记述命令代码的数据别的变量,定义与通过控制装置的所述数据的操作方式相同的一个或多个数据类型。
由此,即便在由供给对象器件的供应商导致所述器件的控制数据的数据类型不同的情况下,即,即便在存在“器件支持的数据类型”的差异的情况下,也可在源程序271中,通过对数据别的变量定义多个数据类型,从而应对此种数据类型的差异。
而且,代码分析部215可如上文所述那样,针对命令代码所示的运算式,以保证运算精度的方式,从与所述运算式的变量对应的数据类型的类型集合中决定运算结果的数据类型。由此,即便对数据别的变量定义有多个数据类型,也可在生成可执行程序273时,将源程序271中记述的各运算式的数据类型决定为保证运算精度的数据类型。
由此,在由控制装置执行程序时,依据命令代码所示的运算式的运算是按照针对所述运算式所决定的保证运算精度的数据类型来实施。因此,在执行程序时获取的运算结果中,可避免产生缺位、溢位等信息的损失(loss)。这一情况下,即便存在“器件支持的数据类型”的差异,控制装置也可利用基于运算结果的控制数据来适当地控制作为器件的对象。
本说明书中,“程序”对应于变量程序,典型而言可包含顺序程序。顺序程序例如包含下述程序,此程序包含按照国际电工委员会(International ElectrotechnicalCommission,IEC)所规定的国际规范IEC61131-3而记述的一个或多个命令。顺序程序中,可含有包含顺序命令和/或运动命令的各种命令。此外,作为顺序程序,不限于按照国际规范IEC61131-3记述的命令,也可包含PLC(可编程控制器)的制造厂商或供应商等独自规定的命令。
本说明书中,“用户”表示包含制作程序的编程器的概念。
本说明书中,“顺序命令”基本上为包含一个或多个命令的术语,所述一个或多个命令是由算出用于控制器件的输入值、输出值、内部值等参数的一个或多个逻辑回路所记述。本说明书中,“运动命令”为包含一个或多个命令的术语,所述一个或多个命令用于针对伺服马达(servo motor)等致动器等器件,算出位置、速度、加速度、加加速度、角度、角速度、角加速度、角加加速度等用于控制所述器件的参数作为指令。此种命令可包含逻辑运算命令及算术运算命令。
本说明书中,上文所述的用于控制器件的参数对应于用于控制器件的控制数据。本说明书中,控制数据可包含位置、速度、加速度、加加速度、角度、角速度、角加速度、角加加速度等。变量程序中,对各控制数据分配变量,所述逻辑运算命令及算术运算命令等算出命令的命令代码是使用运算符和变量而记述。
本说明书中所谓“数据的操作方式”,表示用于由PLC按照预定的编程语言的形式对数据适当进行处理(包含运算、访问存储器(读出、写入)等)的、数据的处理方法。具体而言,“数据的操作方式”例如是基于控制数据的数据尺寸、访问存储器的情况下的存储器上的位置的调整等对齐、数据格式(双精度、单精度、定点、浮点等)等基准。此外,“数据的操作方式”的基准不限定于数据尺寸、对齐、数据格式。本说明书中,此种存储器可包含物理存储器或逻辑存储器(虚拟存储器)。
本说明书中,所谓“可视为相同的数据类型”,表示PLC规定的“数据的操作方式”是否相同等观点。例如,在即便在将具有某个数据类型的控制数据改变为其他数据类型的情况下,也可保证运算精度等而使用其他数据类型对控制数据进行适当处理(包括运算、访问存储器(读出、写入)等)的情况下,可称两数据类型为“可视为相同的数据类型”。更具体而言,在即便在将一个供应商提供的器件的某个控制数据所具有的数据类型改变为其他数据类型的情况下,但PLC也可使用其他数据类型对某个控制数据进行适当处理(包括运算、访问存储器(读出、写入)等)的情况下,两数据类型表示“可视为相同的数据类型”。
以下,作为本发明的更具体的应用例,对本实施方式的支持装置200的更详细的结构及处理进行说明。
<B.系统结构>
首先,对包含本实施方式的支持装置支持使用及运用的PLC的系统加以说明。
图1为表示本发明的实施方式的PLC系统SYS的示意图。本实施方式的PLC系统SYS包含经由网络NW进行网络连接的多个PLC(PLC1、PLC2、PLC3)。这些PLC的类别相同或不同。在PLC1与PLC2之间、PLC2与PLC3之间、及PLC3与PLC1之间,有时经由网络NW交换数据。
各PLC包含:处理单元10,为执行程序的主体;电源单元12,向处理单元10等供给电力;以及输入输出(Input/Output,IO)单元14,进行来自现场的信号的交换。IO单元14经由系统总线11而与处理单元10连接。典型而言,IO单元14从作为现场机器的检测传感器6获取输入信号,而且根据处理单元10中的程序的执行结果来驱动作为现场机器的致动器7。检测传感器6例如检测致动器的控制量。检测传感器6及致动器7为成为PLC控制的“对象”的器件的一实施例,器件的种类不限定于检测传感器6及致动器7。
支持装置200经由电缆13而连接于PLC的处理单元10。支持装置200也可与处理单元10无线连接。具有生成PLC所执行的程序(以下也称为“可执行程序”)的功能、及监视连接目的地的PLC的运转状态或各种数据的值等的功能。进而,支持装置200也可为了支持用户生成可执行程序,而具有编辑功能、编译功能、调试功能、模拟(simulation)功能等。编译功能也可作为构建功能而提供。
<C.硬件结构>
接下来,对构成图1所示的PLC系统SYS的PLC及支持装置200的硬件结构加以说明。
(c1:PLC的硬件结构)
图2为表示本发明的实施方式的PLC的处理单元10的硬件结构的示意图。参照图2,处理单元10包含处理器(processor)100、芯片组(chip set)102、主存储器104、非易失性存储器106、系统计时器(system timer)108、系统总线控制器120、网络控制器140、通用串行总线(Universal Serial Bus,USB)连接器110、及网络接口卡(Network Interface Card,NIC)150。芯片组102与其他组件之间经由各种总线而分别结合。
处理器100及芯片组102典型而言是依据通用的计算机架构而构成。即,处理器100对从芯片组102按照内部时钟依次供给的命令代码进行解释并执行。芯片组102在与所连接的各种组件之间进行内部数据的交换,并且生成处理器100所必需的命令代码。进而,芯片组102具有缓存处理器100中执行运算处理结果所得的数据等的功能。
处理单元10具有主存储器104及非易失性存储器106作为存储器。
主存储器104为易失性的存储区域,保存向处理单元10接通电源后应由处理器100执行的各种程序。主存储器104也用作处理器100执行各种程序时的作业用存储器。作为此种主存储器104,可使用动态随机存取存储器(Dynamic Random Access Memory,DRAM)或静态随机存取存储器(Static Random Access Memory,SRAM)等器件。
非易失性存储器106非易失性地保存实时操作系统(Operating System,OS)、系统程序、后述的可执行程序273等各种程序(模块)、系统设定参数及配置信息1061等数据。配置信息1061针对连接于PLC的每个器件而包含用于控制所述器件的数据别(以下称为控制数据)的变量及数据类型等。
这些程序或数据视需要以处理器100可访问的方式复制于主存储器104。
处理单元10具有系统总线控制器120及网络控制器140作为通信接口。这些通信接口进行输出数据的发送及输入数据的接收。
系统总线控制器120控制经由系统总线11的数据的交换。更具体而言,系统总线控制器120包含直接存储器访问(Direct Memory Access,DMA)控制电路122、系统总线控制电路124、及缓冲存储器126。系统总线控制器120经由系统总线连接器130而与系统总线11进行内部连接。
网络控制器140为了控制经由网络NW及NIC 150的与其他PLC之间的数据交换,而包含直接存储器访问(Direct Memory Access,DMA)控制电路142、网络控制电路144及缓冲存储器146。
网络控制电路144在与连接于网络NW的其他PLC之间,进行发送缓冲存储器146的输出数据的处理、及接收输入数据并保存于缓冲存储器146的处理。
USB连接器110为用于将支持装置200与处理单元10连接的通信接口。典型而言,从支持装置200传输的、处理单元10的处理器100可执行的程序等经由USB连接器110而导入至PLC。
(c2:支持装置的硬件结构)
图3为表示本发明的实施方式的支持装置200的硬件结构的一例的示意图。参照图3,支持装置200典型而言包含通用的计算机。此外,从维护性的观点来看,也可为可携性优异的笔记本型的个人计算机。
参照图3,支持装置200包含:CPU 201,执行包含OS的各种程序;只读存储器(ReadOnly Memory,ROM)202,保存基本输入输出系统(Basic Input Output System,BIOS)或各种数据;存储器RAM 203,提供用于保存CPU 201执行程序所必需的数据的作业区域;以及硬盘驱动器(Hard Disc Drive,HDD)204,非易失性地保存CPU 201所执行的程序等。
支持装置200还包含:键盘205及鼠标206,相当于用于受理来自用户的操作的操作部;以及监视器207,用于向用户显示信息。支持装置200包含用于与PLC(处理单元10)等通信的通信IF(接口)209。这些各部经由内部总线210而相互交换数据。
如后述那样,支持装置200所执行的各种程序是保存于只读光盘(Compact Disk-Read Only Memory,CD-ROM)300而流通。保存于所述CD-ROM 300的程序是由CD-ROM驱动装置208读取,并保存于硬盘驱动器(HDD)204等。或者,也能以从上位的主计算机等通过网络下载程序的方式构成。
<D.软件结构>
(d1:PLC的软件结构)
接下来,对用于由PLC(处理单元10)提供各种功能的软件结构加以说明。
图4为表示安装于本发明的实施方式的PLC的处理单元10的、软件结构的一例的示意图。图4所示的软件所含的命令代码是在适当的时机读出,并提供给处理单元10的处理器100,由处理器100执行。
参照图4,处理单元10中,在实时OS 190上安装有PLC进行处理所需要的程序。
实时OS 190是根据处理单元10的计算机架构而设计,提供用于由处理器100执行PLC中的处理所必需的程序的、基本的执行环境。更具体而言,实时OS 190提供用于随着时间经过而切换执行多个程序的环境。若产生控制循环开始的切入,则实时OS 190将处理器100中的执行对象在切入产生时间点由执行中的程序切换为调度器(scheduler)160。
作为本实施方式的可执行程序,基本上设想用户定义应用170。用户定义应用170是由支持装置200生成,从支持装置200向处理单元10传输。此外,关于执行用户定义应用170所必需的一部分模块(或者库(library)),也可采用预先保存于处理单元10并将这些在适当时机调出而利用的形态(软链接(symbolic link))。此时,支持装置200生成不含一部分模块的可执行程序。或者,也可包含用户定义应用170及命令执行模块180而设为可执行程序。
更具体而言,在处理单元10,安装有调度器160、用户定义应用170、输入处理模块172、输出处理模块174、通信处理模块176、其他系统模块178、命令执行模块180、内存管理器(memory manager)184。
调度器160针对用户定义应用170、输入处理模块172、输出处理模块174及通信处理模块176,控制执行开始时机及处理中断。
用户定义应用170是用户根据其控制目的而制作。即,为根据使用PLC系统SYS控制的对象的线(过程)等而任意地设计的程序。用户定义应用170中,可包含由支持装置200生成的可执行程序273。
用户定义应用170可包含顺序处理及运动运算等特殊处理。用户定义应用170与命令执行模块180协作,实现用户定义应用170所含的处理。
命令执行模块180是在执行用户定义应用170中定义的某个顺序命令或某个功能命令时调出。
输入处理模块172将由系统总线控制器120所接收的输入数据重配置为适于用户定义应用170使用的形式。输出处理模块174将通过执行用户定义应用170所生成的输出数据重配置为适于向系统总线控制器120传输的形式。
通信处理模块176控制通过网络控制器140进行的与其他PLC之间的通信处理或与支持装置200的通信。
其他系统模块178是将图4中分别表示的程序以外的、用于实现PLC1的各种功能的一个或多个模块归总而表示。
内存管理器184管理保存于主存储器104的数据。
(d2:支持装置的软件结构)
接下来,对用于由支持装置200提供各种功能的软件结构加以说明。
图5为表示安装于本发明的实施方式的支持装置200的、软件结构的一例的示意图。图5所示的软件所含的命令代码是由CPU 201读出并执行。
参照图5,在支持装置200,安装有OS 240、编程应用250及网络设定应用280。通过在支持装置200中执行OS 240,从而提供可执行编程应用250及网络设定应用280的环境。用于实现本实施方式的支持装置200的支持程序至少包含编程应用250。
编程应用250包含具有变量编辑器253的编辑器252、编译器254、调试器256、图形用户接口(Graphical User Interface,GUI)模块258、模拟器260及数据保存部270。编程应用250所含的各个模块典型而言以保存于CD-ROM 300的状态流通,并安装于支持装置200。数据保存部270包含ROM 202、RAM 203或HDD 204等而构成。
编辑器252提供用于按照预定的程序语言的形式来制作源程序的、输入及编辑等功能。更具体而言,编辑器252除了提供受理用户对键盘205或鼠标206的操作内容,并按照所受理的操作内容来编辑(制作)源程序271的功能以外,还提供所制作的源程序271的保存功能。在编辑器252编辑源程序时,编辑器252经由GUI模块258而使监视器207显示用于支持编辑作业的信息。
编译器254提供下述功能,即:按照预定的程序语言的形式,对源程序271进行编译,生成处理单元10的处理器100可执行(目标)形式的可执行程序。
调试器256提供用于对可执行程序(源程序)进行调试的功能。作为其调试内容,包含局部地执行源程序中用户指定的范围、追踪源程序的执行中的变量值的随时间的变化等动作。调试器256通过GUI模块258将用于支持调试的信息显示于监视器207。
模拟器260构筑在支持装置200内模拟PLC的处理单元10中的程序执行的环境。
数据保存部270保存由编程应用250的各部所利用(读写)的各种信息。关于数据保存部270保存的内容,将在下文中描述。
网络设定应用280包含配置器257及数据保存部299。网络设定应用280所含的模块典型而言以保存于CD-ROM 300的状态流通,并安装于支持装置200。
配置器257获取表示PLC系统SYS的网络结构的网络信息293,并将所获取的网络信息293保存于数据保存部299。网络信息293包含从连接于网络NW的各PLC接收(下载)的配置信息。此外,网络信息293所具有的配置信息包含从PLC实机接收的配置信息1061、或并非实机信息的逻辑(虚拟)信息。逻辑信息可包含通过用户操作键盘205或鼠标206从而经由编辑器252输入的信息。
(d3.程序的开发环境)
再次参照图6对支持装置200的程序的开发环境进行说明。图6中,为了说明,编程应用250中示出编辑器252及编译器254而省略其他部分的图示。而且,图6中,与编辑器252及编译器254关联地示出数据保存部270及传输模块211。图6中,数据保存部270的数据中,示出与编辑器252及编译器254关联的源程序271、源代码272、可执行程序273、编辑器252中的程序编辑时所参照的编辑器信息277、后述的排位表289、及依据预定的程序语言的形式的各种规则278。编辑器信息277的详情将在下文中描述。规则278包含各种规则,所述各种规则包含用于记述控制器件的程序等的、预定的程序语言的记述形式等。传输模块211以将可执行程序273传输(下载或上传)至PLC的方式控制通信IF 209。
参照图6,编辑器252编辑(edit)按照经由键盘205或鼠标206而受理的用户操作内容所记述的源程序271,并将源程序271转换为预定的程序语言的源代码272。编辑器252将编辑后的源程序271及源代码272保存于数据保存部270。
编译器254包含预定的程序语言用的编译器。具体而言,编译器254包含字句分析部212、语法分析部213、含意分析部214、代码分析部215及可重配置代码生成部216。这些部分按照规则278或排位表289对源程序271(更特定而言为源代码272)进行编译,生成包含PLC可执行的代码的可执行程序273。
支持装置200通过传输模块211将可执行程序273传输至PLC。PLC中,通过由处理器100执行可执行程序273,从而实施PLC间的数据交换、或作为控制对象的器件的控制。
<E.程序开发的处理>
图7为表示本实施方式的程序开发的概略处理的一例的流程图。参照图7,支持装置200中,在生成(变更)源程序271的情况下,首先启动编辑器252。编辑器252实施源程序271的编辑(edit)处理(步骤S1)。具体而言,编辑器252按照经由键盘205或鼠标206受理的用户操作内容,编辑源程序271并显示于监视器207,并且生成与源程序271对应的源代码272(步骤S1)。
在编译源程序271的情况下,支持装置200启动编译器254。编译器254对源程序271(更特定而言为源代码272)进行编译,生成可执行程序273(步骤S2)。关于编译处理,将在图17中后述。
在将可执行程序273传输至PLC的情况下,传输模块211以将可执行程序273传输至PLC的方式控制通信IF 209(步骤S3)。
(e1.源程序的例示)
图8为表示本实施方式的源程序271的一例的图。参照图8,源程序271包含变量声明部281及代码部282。代码部282包含一个或多个命令代码及注释(comment)部283,所述一个或多个命令代码包含控制器件的命令等。代码部282例如包含用于控制器件的命令代码。命令代码包含使用控制数据的变量而记述的一个或多个运算式(逻辑运算式或算术运算式)的代码。注释部283包含作为从编译对象中排除的记述内容的、例如用于调试等的信息。此处,在注释部283,记述有用于指示多个运算式各自的句子的“句1”~“句3”。
在变量声明部281,记述有代码部282中记述的变量284(更特定而言为变量名等标识符)、及与各变量关联地分配有所述变量的控制数据的数据类型285。
(e2.编辑器信息)
图9为示意性地表示本实施方式的编辑器信息277的一例的图。图10为表示本实施方式的器件的每个供应商的数据类型的对应信息294的一例的图。图11为对本实施方式的视为相同数据类型的原则的一例进行说明的图。图9中,保存于支持装置200的数据保存部270的编辑器信息277是与PLC所具有的配置信息1061关联地示出。图9中,配置信息1061与连接于PLC的各器件对应地,关联地包含所述器件的各控制数据的变量及所述控制数据的类型。此外,此处配置信息1061是针对每个器件来表示各控制数据的变量与数据类型的组,但配置信息1061的种类不限定于这些。
参照图9,编辑器信息277例如包含器件信息群291、变量编辑器信息292、网络信息293及每个供应商的数据类型的对应信息(以下也称为对应信息)294。器件信息群291针对可连接于PLC系统SYS的每个器件而包含器件信息29。
器件信息29包含所述器件的名称等器件标识符241、所述器件的供应商的名称等供应商标识符242、及与所述器件的各参数对应的参数数据243。参数数据243包含参数名(param1、param2、…)及所述参数的数据类型。此外,器件信息29所含的信息不限定于这些。器件信息29也有时不含供应商标识符242。器件信息群291为在源程序271的编辑时不变化的、所谓固定信息。
变量编辑器信息292为在编辑时由变量编辑器253动态生成的、所谓动态信息。网络信息293为表示与配置信息1061相同的内容的信息。网络信息293例如包含支持装置200从PLC实机接收的配置信息1061、或基于从键盘205或鼠标206受理的用户的操作内容的配置信息。
对应信息294例如为由各供应商提供的信息。参照图10,对应信息294针对每个供应商而包含记录290。各供应商的记录290包含辨识所述供应商的供应商信息295、及所述供应商指定为可视为相同的数据类型的数据类型群296。可视为相同的数据类型群296包含所述供应商提供的器件的参数(控制数据)具有的数据类型297、及类似数据类型群298,所述类似数据类型群298包含与各数据类型297对应的类似的数据类型。类似数据类型群298包含可与对应的数据类型297视为相同的、一个以上的其他数据类型。
在本实施方式中,可视为相同的数据类型群296的数据类型例如同时满足图11所示的原则(1)和原则(2)两个条件。图11中,对原则(1)和原则(2)分别关联地例示有满足所述原则的数据类型。具体而言,原则(1)表示“可视为相同的数据类型彼此在执行命令(逻辑)的架构(PLC)中,数据尺寸(占有的位数)及对齐必须相同”。
满足原则(1)的条件的可视为相同的数据类型群296中,例如包含UINT型(16位、对齐2)及WORD型(16位、对齐2)。此时,UDINT型(32位、对齐4)及LWORD型(64位、对齐4)在与UINT型(16位、对齐2)及WORD型(16位、对齐2)之间不可成为可视为相同的数据类型(即,不满足原则(1)),不包含于所述可视为相同的数据类型群296。
而且,原则(2)表示“可视为相同的数据类型彼此在对于对应的变量的程序上的操作中,不会因某一者的操作而在预定的程序语言形式上成为不适当的值(内存)”。
满足原则(2)的条件的可视为相同的数据类型群296中,例如包含UINT型及WORD型。而且,例如LTIME型及LINT型若其数据格式相同,则两者包含于满足原则(2)的条件的可视为相同的数据类型群296。而且,例如LINT型及LREAL型不满足原则(2)的条件。即,其原因在于,LINT型适用包含浮点数算术标准规范(电气和电子工程师协会(Institute ofElectrical and Electronics Engineers,IEEE)754)的数据格式,但LREAL型无法适用所述浮点数算术标准规范以外的数据格式。
图11中,作为可视为相同的数据类型彼此应满足的原则,例示了原则(1)和原则(2)两种,但原则的种类不限定于这些。而且,作为满足这些原则的数据类型,例示了UINT型、WORD型、UDINT型、LWORD型、LTIME型、LINT型、LREAL型等,但不限定于这些数据类型。
<F.编辑处理>
本实施方式中,作为编辑源程序271的编辑处理,主要对变量声明部281的编辑进行说明。在代码部282的编辑中,编辑器252基于键盘205的用户操作而记述命令代码。代码部282的编辑可使用以往的编辑方法,因而此处不重复进行说明。
本实施方式中,编辑器252在编辑变量声明部281的情况下启动变量编辑器253。变量编辑器253基于图11所示的原则,在变量声明部281中,对各变量设定数据类型285的候补。本实施方式中,为了进行变量284的设定及数据类型285的候补的设定,变量编辑器253实施统一设定处理或个别设定处理。关于统一设定处理,变量编辑器253针对由网络信息293所示的各器件,对所述器件的所有参数(控制数据)设定变量284和数据类型285。而且,个别设定处理中,变量编辑器253对用户所指定的器件的所有参数(控制数据)设定变量284和数据类型285。
图12为表示显示本实施方式的程序的画面的一例的图。本实施方式中,用户在记述代码部282的情况下,使用变量声明部281中声明(记述)的变量名来记述命令代码。图12的监视器207的画面包含为了启动统一设定处理而操作的按键286、及为了启动个别设定处理而操作的按键287。
(f1.统一设定处理)
图13为概略性地表示本实施方式的统一设定处理的一例的处理流程图。图14为表示本实施方式的变量化处理的一例的流程图。依据图13及图14的流程图的处理是在图7的编辑处理(步骤S1)中实施。编辑处理中,例如编辑器252如图12那样使编辑中的程序显示于监视器207。
若操作图12的按键286而启动统一设定处理,则图9的编辑器信息277可从数据保存部270被读出并显示于监视器207。用户判断监视器207中显示的编辑器信息277的网络信息293所示的所有器件所对应的器件信息是否包含在器件信息群291中(步骤T1)。
在不包含的情况下(步骤T1中为否(NO)),用户操作键盘205等,将器件的供应商提供的器件信息追加至现有的器件信息群291(步骤T3)。在所有器件的器件信息包含于器件信息群291中的情况下(步骤T1中为是(YES)),变量编辑器253实施器件的参数(控制数据)的变量化处理(步骤T7)。
参照图14的流程图来说明变量化处理。变量化处理中,变量编辑器253基于键盘205的操作内容,判断变量化处理是将连接于网络的所有器件作为对象,还是将用户指定的器件作为对象(步骤T70)
变量编辑器253若基于经由键盘205的用户的操作内容而判断为将所有器件作为对象来实施变量化处理(步骤T70中为是(YES)),则变量编辑器253从网络信息293中选择所有器件中的一个(以下称为器件D)(步骤T71)。变量编辑器253对所选择的器件D实施设定处理(步骤T72~步骤T78)。
设定处理中,变量编辑器253基于器件D的标识符来搜索器件信息群291。变量编辑器253基于其搜索结果,判断能否从器件信息群291获取与器件D对应的器件信息29(步骤T72)。在能获取的情况下(步骤T72中为是(YES)),即,在器件信息群291中有器件D的器件信息29的情况下,针对所获取的器件D的器件信息29所含的各个参数名(param1、param2、…),实施设定变量名和数据类型的处理(步骤T73~步骤T77)。
具体而言,首先从器件D的器件信息29中选择一个参数(以下称为参数p)(步骤T73)。根据器件信息29来确定与参数p对应的供应商(以下称为供应商V)的标识符和数据类型(以下称为数据类型τ)。接着,在对应信息294中搜索供应商V的记录290,并基于搜索的结果,来判断记录290的类似数据类型群298中是否存在与所述数据类型τ关联的数据类型(步骤T74)。即,判断是否存在可视为与数据类型τ相同的其他数据类型。
变量编辑器253若判断为不存在可视为相同的其他数据类型(步骤T74中为否(NO)),则将使用参数p的参数名和数据类型τ的表述数据注册于变量编辑器信息292(步骤T75a)。由此,在变量编辑器信息292中,例如注册有图9的表述2922或表述2924等。
另一方面,变量编辑器253若判断为存在可视为相同的其他数据类型(步骤T74中为是(YES)),则生成将参数p的参数名与数据类型τ及类似数据类型群298的数据类型(即,可视为相同的其他数据类型)连结的数据类型集合表述(步骤T75),并将所生成的数据类型集合表述注册于变量编辑器信息292(步骤T76)。由此,在变量编辑器信息292中,例如注册有图9的表述2921或表述2923等。
变量编辑器253搜索器件D的器件信息29,基于搜索的结果来判断是否存在下一参数数据243所示的参数(未经处理的参数p)(步骤T77)。变量编辑器253若判断为存在下一参数p(步骤T77中为是(YES)),则回到步骤T73,与上文所述同样地对下一参数p实施步骤T74以后的处理。
另一方面,变量编辑器253若判断为不存在下一参数p(步骤T77中为否(NO)),即,在针对器件D的器件信息29所含的所有参数p而完成了将其表述注册于变量编辑器信息292的情况下,跳转至步骤T79。
步骤T79中,变量编辑器253搜索器件信息群291,基于搜索的结果来判断是否存在下一器件信息29(未经设定处理的器件信息29)(步骤T79)。变量编辑器253若判断为存在下一器件信息29(步骤T79中为是(YES)),则回到步骤T71,与上文所述同样对下一器件信息29实施步骤T72以后的设定处理。
步骤T79中,变量编辑器253若判断为不存在下一器件信息29(未经设定处理的器件信息29)(步骤T79中为否(NO)),即,若判定为对器件信息群291的所有器件信息29实施了设定处理,则变量编辑器253将变量编辑器信息292的内容记述于数据保存部270的源程序271的变量声明部281(步骤T82)。这样,包含变量声明部281的记述的源程序271例如像图12那样显示于监视器207。
另一方面,变量编辑器253若判断为器件信息群291中不存在器件D的器件信息29(步骤T72中为否(NO)),则从网络信息293提取器件D的参数p的参数名(param1、param2、…)及与各参数名对应的数据类型τ,针对各参数p而生成使用参数名和数据类型τ的表述数据,将所生成的表述数据注册于变量编辑器信息292(步骤T78)。由此,在变量编辑器信息292中,例如注册有图9的表述2922或表述2924等。然后,跳转至步骤T79。
变量编辑器253若基于经由键盘205的用户的操作内容而判断为以用户所选择的器件作为对象来实施变量化处理(步骤T70中为否(NO),T80中为是(YES)),则变量编辑器253对用户所选择的器件实施上文所述的设定处理(步骤T72~步骤T78)(步骤T81)。然后,变量编辑器253与上文所述同样地实施步骤T82的处理。另一方面,变量编辑器253在未判断为以用户所选择的器件作为对象来实施变量化处理的情况下(步骤T70中为否(NO),T80中为否(NO)),回到图13的原处理。
根据上文所述的图14的变量化处理,而例如在源程序271的变量声明部281中,记述有通过设定处理所设定的变量284、及分配有各变量284的控制数据的数据类型285。本实施方式中,变量编辑器253按照预定的规则,以可唯一地辨识的方式生成各变量284。
(f2.个别设定处理)
图15为表示本实施方式的个别设定处理的一例的处理流程图。图16为表示本实施方式的个别设定处理的数据类型候补的显示例的图。个别设定处理中,变量编辑器253针对变量声明部281的参数(变量),从一个或多个数据类型(候补)中设定(记述)用户所选择的数据类型。参照图15,对设定某个器件的参数(变量)的数据类型的处理进行说明。
用户通过操作键盘205,从而选择器件D的变量v的数据类型τ。变量编辑器253受理此种变量v的数据类型τ的选择操作(步骤T13)。
变量编辑器253基于所受理的操作内容来搜索器件信息群291(步骤T15)。变量编辑器253根据搜索的结果,判断器件信息群291中是否存在相当于变量v的供应商标识符242(步骤T17)。若判断为器件信息群291中不存在供应商标识符242(步骤T17中为否(NO)),则变量编辑器253仅显示数据类型τ作为监视器207的变量声明部281的变量v的数据类型的候补(步骤T23)。
另一方面,若变量编辑器253根据搜索的结果而判断为器件信息群291中存在相当于变量v的供应商标识符242(步骤T17中为是(YES)),则变量编辑器253判断在根据对应信息294而与和所述供应商标识符242一致的供应商信息295对应的数据类型297中,是否存在从用户受理的数据类型τ(步骤T19)。变量编辑器253在判断为数据类型297中不存在数据类型τ的情况下(步骤T19中为否(NO)),仅显示数据类型τ作为变量v的数据类型的候补276(步骤T23)。然后,跳转至步骤T25。
而且,变量编辑器253在判断为数据类型297中存在数据类型τ的情况下(步骤T19中为是(YES)),将与数据类型297的数据类型τ对应的类似数据类型群298所含的一个一个可视为相同的数据类型、及将这些连结而成的数据类型集合表述作为候补275,显示于监视器207的变量声明部281(步骤T21)。步骤T23、步骤T21中的候补276、候补275的显示例示于图16。
例如,在从用户受理的数据类型τ表示UINT的情况下,步骤T23中,变量编辑器253如图16的候补276那样,仅显示从用户受理的数据类型τ(即,UINT)。相对于此,步骤T21中,变量编辑器253在监视器207的受理了用户的选择操作的位置显示提示符(prompt)279,同时与提示符279关联地显示候补275。候补275包含与从用户受理的数据类型τ(即,UINT)可视为相同的一个一个数据类型(例如UINT、WORD)、及将这些连结而成的数据类型集合表述(例如UINT WORD)的三个候补。
用户操作键盘205,从显示于监视器207的候补275的三个候补中选择一个。变量编辑器253在提示符279的位置显示基于用户的选择操作而选择的数据类型(步骤T24)。
变量编辑器253将步骤T24或步骤T23中显示的数据类型记述于数据保存部270的源程序271的变量声明部281(步骤T25)。
这样,本实施方式的个别设定处理中,变量编辑器253经由监视器207来提示基于对应信息294的一个或多个数据类型(候补),作为支持用于由用户设定与变量声明部281的参数(变量)对应的数据类型的操作的信息。
<G.编译处理>
图17及图18为表示本实施方式的编译处理的一例的流程图。编译器254对通过编辑处理所编辑的源程序271(更特定而言为源代码272)进行编译。编译处理包含源程序271的语法错误(syntax error)等的检测、记述于代码部282的控制数据的数据类型的决定等,关于语法错误等的检测,可使用以往的方法,因而本实施方式中,主要对数据类型的决定进行说明。
参照图17的(A),编译处理中,字句分析部212及语法分析部213将源程序271转换为适于编译的数据结构。作为所述数据结构,例如使用AST(Abstract Syntax Tree,抽象语法树)。具体而言,字句分析部212一边扫描源程序271一边进行分析,基于分析的结果而分类为包含变量等标识符的多个令牌(token),输出包含经分类的令牌的令牌列。语法分析部213对来自字句分析部212的令牌列进行分析,基于分析的结果而生成AST(步骤S21)。含意分析处理中,含意分析部214基于语法分析部213输出的AST,以使源代码272适合于程序语言的记述形式的方式来决定数据的类型或包含命令代码的式的类型(步骤S23)。可重配置代码生成部216基于通过含意分析所得的式的数据类型的信息,与以往同样地将源程序271的源代码272转换为可重配置代码(步骤S25)。编译器254将由可重配置代码生成部216生成的可重配置代码作为可执行程序273而保存于数据保存部270。然后,回到图7的原处理。所述可重配置代码相当于可执行程序273。
参照图17的(B),含意分析处理(步骤S23)包含字符分解处理(步骤S31)和代码分析处理(步骤S32)。字符分解处理中,含意分析部214将变量声明部281中声明的变量284注册于数据保存部270的未图示的字符表,使用字符表将记述于代码部282的标识符(变量)置换为字符。
代码分析处理(步骤S32)中,代码分析部215对表现记述于代码部282的各式的AST进行分析,基于分析的结果来决定所述式的数据类型。此处,源程序271总体的AST包含与记述于代码部282的各式对应的部分AST。
参照图18,代码分析部215判断是否对与源程序271的AST所含的所有式对应的AST进行了分析处理(步骤S41)。若判断为对与所有式对应的AST进行了分析(步骤S41中为是(YES)),则结束代码分析处理,回到图17的(B)的原处理。
若判断存在与未分析的式对应的AST(步骤S41中为否(NO)),则代码分析部215从源程序271的AST中提取与未分析的下一个式对应的AST(步骤S42)。代码分析部215对所提取的AST进行分析,基于分析的结果来决定所述式的数据类型(步骤S43)。然后,回到步骤S41。
(g1.式的类型分析处理)
对代码分析部215进行的、决定式的类型的处理(步骤S43)加以说明。代码分析部215例如决定以何种数据类型来运算源程序271所含的句1、句2及句3各自的运算式。图19为表示与本实施方式的式对应的AST的一例的图。图20~图24为表示本实施方式的代码分析处理中的AST的变化的一例的图。图25、图26、图27及图29为表示适用于本实施方式的代码分析处理的函数的一例的图。图28为表示本实施方式的排位表289的一例的图。包含图25、图26、图27及图29的函数的规则278及图28的排位表289保存于数据保存部270。
(g1-1.AST的结构)
图19的(A)、图19的(B)及图19的(C)表示与源程序271所含的句1、句2及句3各自的式对应的AST。例如,句1~句3使用代入的运算符(:=)作为运算符(operator),表示将右边的运算式的结果(值)代入至左边的变量(操作数(operand))的运算式。此处,为了使说明简单,示出句2的一元运算或句1、句3的二元运算,但运算式不限定于这些。
与句1、句2及句3各自的式对应的AST具有层次结构。层次结构包含被分配有运算符(:=)的节点N1、其右边所含的被分配有运算符的节点N2、及作为连接于节点的操作数的被分配有变量的叶(leaf)。层次结构中,被分配有运算符(:=)的节点N1也称为根节点N1,对根节点N1连接有下位层的(下一位的)节点(例如节点N2)或叶L1,对节点N2连接有叶L2、叶L21、叶L22等。代码分析部215在对AST进行处理的情况下,从下位层向上位层实施处理。
(g1-2.算出叶的类型集合)
首先,代码分析部215针对与句1~句3的式对应的各个AST,使用图25的L函数,算出与所有叶对应的类型集合。本实施方式中,所谓类型集合,表示含有数据类型作为元素的、数据类型的数学集合。参照图25,L函数定义为,将与式对应的AST的各叶作为自变量,而返回叶可取的数据类型的类型集合。因此,代码分析部215针对与图19的(A)、图19的(B)及图19的(C)的句1~句3的式对应的各个AST,使用L函数算出各叶的类型集合,由此生成图20的(A)、图20的(B)及图20的(C)的AST。图20的(A)、图20的(B)及图20的(C)的AST是将图19的(A)、图19的(B)及图19的(C)的AST的叶置换为所述叶的类型集合而成。
(g1-3.算出节点的类型集合)
代码分析部215适用图26的F1函数、或图27的F2函数,算出与图20的(A)、图20的(B)及图20的(C)的AST的一个运算符及其所附带的操作数对应的类型集合。代码分析部215对与图20的(A)、图20的(B)及图20的(C)的式对应的AST的所有运算符进行所述操作。在与AST对应的式含有多个运算符的情况下,代码分析部215按照以预定的程序语言的形式规定的运算符的优先级对各运算符适用操作。
图26的F1函数表示在运算符为一元运算符的情况下适用的函数。F1函数定义为,将一元运算符(θ)和连接于所述运算符的节点的叶(操作数)的类型集合(A)作为自变量,返回仅以所述一元运算符可取的数据类型作为元素的类型集合。图20的(B)的句2的下位层的节点N2的运算符为一元运算符。因此,代码分析部215针对与图20的(B)的句2的式对应的AST的节点N2的一元运算符,使用F1函数而算出仅以所述一元运算符可取的数据类型作为元素的类型集合。具体而言,代码分析部215在处理图20的(B)的节点N2的一元运算符的情况下,在F1函数中,作为自变量,分别对一元运算符(θ)设定“NOT”及对类型集合(A)设定“UINTWORD”,执行F1函数。由此,如图26所示,作为F1函数的运算结果,如图21的(B)那样获取节点N2的类型集合(WORD)。
图27的F2函数表示在运算符为二元运算符的情况下适用的函数。所述函数定义为,将二元运算符(θ)、在所述二元运算符的节点左边连接的叶的操作数(即,左操作数)的类型集合(A)及在所述二元运算符的节点右边连接的叶的操作数(即,右操作数)的类型集合(B)作为自变量,返回仅包含所述二元运算符可取为操作数的数据类型作为元素的类型集合。
F2函数的执行中,参照图28的排位表289。排位表289定义为可按照预定的程序记述语言的形式记述的多个数据类型的位次。图28的排位表289按照优先级来表示带有位次的信息,所述优先级表示根据基于“数据的操作方式”的基准而所述多个数据类型相较于其他数据类型优先设定为变量的数据类型的程度。本实施方式中,决定优先级的所述基准例如设为数据类型可取的数据尺寸,但所述基准不限定于数据尺寸。
图20的(A)的句1和图20的(C)的句3中,下位层的节点N2的运算符均为二元运算符。因此,代码分析部215针对图20的(A)和图20的(C)的AST的节点N2的二元运算符,使用F2函数而算出仅以所述二元运算符可取的数据类型作为元素的类型集合。
具体而言,代码分析部215在处理图20的(A)的节点N2的二元运算符的情况下,在F2函数中,作为自变量,对二元运算符(θ)设定“+”,对类型集合(A)设定“UINT”及对类型集合(B)设定“UINT WORD”,执行F2函数。由此,如图27所示,作为F2函数的运算结果的中间值M(A,B),基于二元运算符(θ)而由类型集合(A)和类型集合(B)算出类型集合(UINT)。所述中间值M(A,B)的类型集合仅包含一个类型,因而无需适用图28的排位表289。因此,所述中间值M(A,B)的类型集合表示F2函数的最终的运算结果的类型集合(UINT)。由此,通过执行F2函数,从而如图21的(A)那样获取节点N2的类型集合(UINT)。
而且,代码分析部215在处理图20的(C)的节点N2的二元运算符的情况下,在F2函数中,作为自变量,分别对二元运算符(θ)设定“-”,对类型集合(A)设定“LINT TIME”及对类型集合(B)设定“SINT INT DINT LINT USINT UINT UDINT ULINT BYTE WORD DWORD LWORDREAL LREAL TIME”,执行F2函数。由此,如图27所示,作为F2函数的运算结果的中间值M(A,B),基于二元运算符(θ)而由类型集合(A)和类型集合(B)算出类型集合(LINT TIME SINTINT DINT USINT UINT UDINT ULINT BYTE WORD DWORD LWORD REAL LREAL TIME LINTULINT REAL LREAL)。所述中间值M(A,B)的类型集合包含多个类型,因而对中间值M(A,B)适用图28的排位表289,选择优先级更高的数据类型。由此,如图21的(C)那样,获取F2函数的最终的运算结果的类型集合(LINT ULINT REAL LREAL TIME)作为节点N2的类型集合。
通过这样适用F2函数,从而二元运算符的操作数的数据类型被决定为图28的排位表289中优先级更高的数据类型。在优先级以数据尺寸为基准的情况下,对二元运算符的操作数设定的数据类型是以成为可操作更大数据尺寸的数据类型的方式决定。由此,例如在程序执行中,通过PLC来执行使用所述二元运算符的运算的情况下,可避免对操作数设定的数据类型具有的有效位数等数据尺寸小所引起的、运算结果或运算中途的结果的缺位、溢位等信息的损失(信息缺失)。
代码分析部215如上文所述那样,算出下位层的节点N2的类型集合。由此,图20的(A)、图20的(B)及图20的(C)的AST分别转换为图21的(A)、图21的(B)及图21的(C)的AST。
接下来,使用F1函数或F2函数,与节点N2同样地算出上位层的节点N1的类型集合。图21的(A)、图21的(B)及图21的(C)的节点N1的运算符均为二元运算符(:=)。因此,代码分析部215针对图21的(A)、图21的(B)及图21的(C)的AST的节点N1的二元运算符,使用F2函数而算出仅以所述二元运算符可取的数据类型作为元素的类型集合。
具体而言,代码分析部215在处理图21的(A)、图21的(B)及图21的(C)的AST的节点N1的二元运算符的情况下,在F2函数中,作为自变量,对二元运算符(θ)设定“:=”,对类型集合(A)设定节点N1的左操作数的类型集合及对类型集合(B)设定节点N1的右操作数的类型集合,执行F2函数。由此,在图21的(A)的节点N1的情况下,如图22的(A)那样获取类型集合(UINT),图21的(B)的节点N1的情况下,如图22的(B)那样获取类型集合(UINT)。图21的(C)的节点N1的情况下,如图22的(C)那样获取类型集合(LINT ULINT REAL LREAL TIME)。
代码分析部215通过如上文所述那样算出节点N1的类型集合,从而将图21的(A)、图21的(B)及图21的(C)的AST分别转换为图22的(A)、图22的(B)及图22的(C)的类型集合。
(g1-4.式的类型决定)
代码分析部215通过执行图29的U函数,从而从针对与图22的(A)、图22的(B)及图22的(C)所示的各式对应的AST而最终获取的类型集合中,获取新的类型集合。图29的U函数定义为,以图22的(A)、图22的(B)及图22的(C)的类型集合(A)作为自变量,返回仅包含所述自变量的类型集合中的一个元素(数据类型)的类型集合。参照图29,执行U函数时,若自变量的类型集合(A)为空集合则返回空集合,若并非空集合,则返回类型集合(A)所含的数据类型中的、基于图28的排位表289所定义的优先级而相当于最低位次(优先级)的数据类型。由此,代码分析部215将图22的(A)、图22的(B)及图22的(C)的AST分别转换为图23的(A)、图23的(B)及图23的(C)的类型集合。
通过这样适用U函数,从而式的类型(即,式的左边的操作数的数据类型)被决定为图28所定义的位次中优先级更低的数据类型。由此,在表示句1~句3的式的算出值的操作数的变量在源程序271的其他式中被用作操作数的情况下,可保证下述可能性,即:在通过代码分析部215对所述其他式的AST执行L函数或F1函数、F2函数时,可获取包含优先级较所述操作数的变量的数据类型更高的数据类型的类型集合。
代码分析部215将通过执行U函数从而获取的图23的(A)、图23的(B)及图23的(C)的AST的类型集合,分别转换为图24的(A)、图24的(B)及图24的(C)的与句1~句3对应的式的数据类型。具体而言,若图23的(A)、图23的(B)及图23的(C)的AST的类型集合为单元,则代码分析部215将其元素决定为与所述AST对应的式的数据类型,若并非如此(若为空集合),则作为类型不适合的错误而结束处理。
根据本实施方式,变量编辑器253在源程序271的编辑时,在变量声明部281中,基于每个器件供应商的数据类型的对应信息294,定义器件的各控制数据(变量)的可视为相同的一个或多个数据类型候补。在编辑后的源程序271的编译时,编译器254针对源程序271中的各式,从定义为所述式的变量的一个或多个数据类型候补中,按照预定的规则(L函数、F1函数、F2函数及U函数)及图28的排位表289,以保证运算精度的方式决定所述式的数据类型。由此,即便PLC系统SYS所含的每个器件可支持的数据类型不同,编辑器252及编译器254也可对编程器提供在编程中支持适当数据类型的声明的功能、及支持可避免程序执行时的错误(缺位、溢位等信息损失)的可执行代码的生成的环境。
<H.编辑器及编译器的程序>
本实施方式中,也可通过支持装置200的CPU 201执行必要的程序,而执行编辑器252及编译器254进行的所述处理。所述程序也可存储于HDD 204等存储单元。CPU 201在执行必要的程序时,将存储于存储单元的成为对象的程序在RAM 203展开。另外,通过CPU 201解释及执行在RAM 203展开的所述程序,从而实施编辑器252及编译器254的变量编辑器253、字句分析部212、语法分析部213、含意分析部214、代码分析部215及可重配置代码生成部216的各元件的处理。
CPU 201根据信息处理而控制支持装置200的各结构元件。所述存储单元例如不限定于HDD 204,可包含固态驱动器等辅助存储装置。这种存储单元可保存程序、规则278及编辑器信息277等数据。
支持装置200中,程序或数据可经由存储介质而提供。此种存储介质为以计算机等装置、机械等可读取所记录的程序等信息的方式,通过电作用、磁作用、光学作用、机械作用或化学作用而存储所述程序等信息的介质。本实施方式中,此种存储介质例如包含CD-ROM300。而且,支持装置200也可经由通信网络而从外部装置接收此种程序和/或数据。
如上所述的本实施方式包含以下所述的技术思想。
[结构1]
一种支持装置(200),生成可执行程序(273),所述可执行程序(273)是由控制对象(6、7)的控制装置(PLC1~PLC3)所执行,且所述支持装置(200)包括:
数据保存部件(270),用于针对控制所述对象的数据的型别而保存多个数据类型的信息(294),所述多个数据类型包含所述数据的类型、及在执行所述程序时数据的操作方式可与通过所述控制装置的所述数据的类型相同的其他数据类型;
生成进行定义的信息(281)的部件(253),所述信息(281)定义数据别的变量、及与所述变量对应且为所述多个数据类型中的一个以上的数据类型;
生成命令代码(282)的部件(252),所述命令代码(282)是使用所定义的变量来记述所述控制装置执行的处理而成;以及
使用所述进行定义的信息及所述命令代码来生成所述可执行程序的部件(215、216),
生成所述可执行程序的部件构成为,
生成类型集合,所述类型集合包含与所述命令代码所示的运算式具有的各变量相对应而定义的一个以上的数据类型,
基于用于保证运算精度的基准而从所述运算式的所述类型集合中选择一个,决定为运算结果的数据类型。
[结构2]
根据结构1所记载的支持装置,其中,
控制所述对象的数据的型别的所述多个数据类型是依所述对象的每个供应商而保存,
所述每个供应商的所述多个数据类型包含由所述供应商预先决定的数据类型(297)、及数据的操作方式可与所述预定的数据类型相同的其他数据类型(298)。
[结构3]
根据结构1或2所记载的支持装置,其中生成所述进行定义的信息的部件构成为,
生成信息来定义所述数据别的变量、及将与所述对象的供应商对应的所述多个数据类型定义为与所述变量对应的数据类型。
[结构4]
根据结构3所记载的支持装置,其中,
所述支持装置从所述控制装置接收信息,所述信息确定连接于所述控制装置的所述对象的供应商。
[结构5]
根据结构1至结构4中任一项所记载的支持装置,其中,
生成所述进行定义的信息的部件构成为,
基于用户操作而定义与所述数据别的变量对应的一个以上的数据类型,
使所述变量显示于监视器(207),且与所述变量关联地使所述多个数据类型显示于监视器(207)。
[结构6]
根据结构1至结构5中任一项所记载的支持装置,其中,
通过所述数据类型的所述操作方式包含基于数据尺寸的大小的操作方式,
所述支持装置还包含用于与各数据类型对应地保存优先级的部件(289),所述优先级表示基于操作的所述数据尺寸而所述数据类型优先于其他数据类型与所述变量对应地设定的程度,
决定所述运算结果的数据类型包含:
从所述类型集合中选择具有依据用于保证所述运算精度的基准的数据类型,决定为运算结果的数据类型。
[结构7]
根据结构1至6中任一项所记载的支持装置,其中,
生成所述类型集合包含:
基于所述运算式具有的运算符的种类,生成包含与所述式具有的变量相对应而定义的一个以上的数据类型的类型集合。
[结构8]
一种支持程序,生成可执行程序(273),所述可执行程序(273)是由控制对象(6、7)的控制装置(PLC1~PLC3)所执行,所述支持程序使计算机作为以下的部件发挥功能,
所述计算机包括:
数据保存部件(270),针对控制所述对象的数据的型别而保存多个数据类型的信息(294),其中所述多个数据类型包含所述数据的类型、及在执行所述程序时数据的操作方式可与通过所述控制装置的所述数据的类型相同的其他数据类型,
所述部件包括:
生成进行定义的信息(281)的部件(253),所述信息(281)定义数据别的变量、及与所述变量对应且为所述多个数据类型中的一个以上的数据类型;
生成命令代码(282)的部件(252),所述命令代码(282)是使用所定义的变量来记述所述控制装置所执行的处理而成;以及
使用所述进行定义的信息及所述命令代码来生成所述可执行程序的部件(215、216),
生成所述可执行程序的部件构成为,
生成类型集合,所述类型集合包含与所述命令代码所示的运算式具有的各变量相对应而定义的一个以上的数据类型,
基于用于保证运算精度的基准而从所述运算式的所述类型集合中选择一个,决定为运算结果的数据类型。
应认为本次公开的实施方式在所有方面为例示而非限制性。本发明的范围并非所述说明,而是由权利要求表示,包含与权利要求均等的含意及范围内的所有变更。
符号的说明
6:检测传感器
7:致动器
200:支持装置
300:CD-ROM
202:ROM
203:RAM
205:键盘
206:鼠标
207:监视器
211:传输模块
212:字句分析部
213:语法分析部
214:含意分析部
215:代码分析部
216:可重配置代码生成部
241:器件标识符
242:供应商标识符
243:参数数据
250:编程应用
252:编辑器
253:变量编辑器
254:编译器
270:数据保存部
271:源程序
272:源代码
273:可执行程序
277:编辑器信息
278:规则
279:提示符
280:网络设定应用
281:变量声明部
282:代码部
283:注释部
284、v:变量
285、297:数据类型
286、287:按键
289:排位表
290:记录
291:器件信息群
292:变量编辑器信息
293:网络信息
294:对应信息
295:供应商信息
296:可视为相同的数据类型群
298:类似数据类型群
1061:配置信息
L1、L2、L21、L22:叶
N1、N2:节点
NW:网络
SYS:PLC系统
V:供应商
p:参数

Claims (8)

1.一种支持装置,生成可执行程序,所述可执行程序是由控制对象的控制装置所执行,且所述支持装置包括:
数据保存部件,用于针对控制所述对象的数据的型别而保存多个数据类型的信息,所述多个数据类型包含所述数据的类型、及在执行所述程序时数据的操作方式能够与通过所述控制装置的所述数据的类型相同的其他数据类型;
生成进行定义的信息的部件,所述信息定义数据别的变量、及与所述变量对应且为所述多个数据类型中的一个以上的数据类型;
生成命令代码的部件,所述命令代码是使用所定义的所述变量记述所述控制装置所执行的处理而成;以及
使用所述进行定义的信息及所述命令代码而生成所述可执行程序的部件,
生成所述可执行程序的部件构成为,
生成类型集合,所述类型集合包含与所述命令代码所示的运算式具有的各变量相对应而定义的一个以上的数据类型,
基于用于保证运算精度的基准而从所述运算式的所述类型集合中选择一个,决定为运算结果的数据类型。
2.根据权利要求1所述的支持装置,其中,
控制所述对象的数据的型别的所述多个数据类型是依所述对象的每个供应商而保存,
每个所述供应商的所述多个数据类型包含由所述供应商预先决定的数据类型、及数据的操作方式能够与所述预定的数据类型相同的其他数据类型。
3.根据权利要求1或2所述的支持装置,其中,
生成所述进行定义的信息的部件构成为,
生成信息来定义所述数据别的变量、及将与所述对象的供应商对应的所述多个数据类型定义为与所述变量对应的数据类型。
4.根据权利要求3所述的支持装置,其中,
所述支持装置从所述控制装置接收信息,所述信息确定连接于所述控制装置的所述对象的供应商。
5.根据权利要求1至4中任一项所述的支持装置,其中,
生成所述进行定义的信息的部件构成为,
基于用户操作而定义与所述数据别的变量对应的一个以上的数据类型,
使监视器显示所述变量及与所述变量关联的所述多个数据类型。
6.根据权利要求1至5中任一项所述的支持装置,其中,
通过所述数据类型生成的所述操作方式包含基于数据尺寸的大小的操作方式,
所述支持装置还包括用于与各数据类型对应地保存优先级的部件,所述优先级表示基于操作的所述数据尺寸而所述数据类型优先于其他数据类型且与所述变量对应地设定的程度,
决定所述运算结果的数据类型包含:
从所述类型集合中选择具有依据用于保证所述运算精度的基准的优先级的数据类型,决定为运算结果的数据类型。
7.根据权利要求1至6中任一项所述的支持装置,其中,
生成所述类型集合包含:
基于所述运算式具有的运算符的种类,生成包含与所述式具有的变量相对应而定义的一个以上的数据类型的类型集合。
8.一种支持程序,生成可执行程序,所述可执行程序是由控制对象的控制装置所执行,且所述支持程序使计算机作为以下的部件发挥功能,
所述计算机包括:
数据保存部件,用于针对控制所述对象的数据的型别而保存多个数据类型的信息,所述多个数据类型包含所述数据的类型、及在执行所述程序时数据的操作方式能够与通过所述控制装置的所述数据的类型相同的其他数据类型,
所述以下的部件包括:
生成进行定义的信息的部件,所述信息来定义数据别的变量、及与所述变量对应且为所述多个数据类型中的一个以上的数据类型,
生成命令代码的部件,所述命令代码是使用所定义的变量来记述所述控制装置所执行的处理而成;以及
使用所述进行定义的信息及所述命令代码来生成所述可执行程序的部件,
生成所述可执行程序的部件构成为,
生成类型集合,所述类型集合包含与所述命令代码所示的运算式具有的各变量相对应而定义的一个以上的数据类型,
基于用于保证运算精度的基准而从所述运算式的所述类型集合中选择一个,决定为运算结果的数据类型。
CN201980025084.5A 2018-05-31 2019-05-09 支持装置以及计算机可读取存储介质 Active CN111954854B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2018104614A JP7003842B2 (ja) 2018-05-31 2018-05-31 サポート装置およびサポートプログラム
JP2018-104614 2018-05-31
PCT/JP2019/018549 WO2019230321A1 (ja) 2018-05-31 2019-05-09 サポート装置およびサポートプログラム

Publications (2)

Publication Number Publication Date
CN111954854A true CN111954854A (zh) 2020-11-17
CN111954854B CN111954854B (zh) 2024-07-16

Family

ID=68697592

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980025084.5A Active CN111954854B (zh) 2018-05-31 2019-05-09 支持装置以及计算机可读取存储介质

Country Status (5)

Country Link
US (1) US20210026609A1 (zh)
EP (1) EP3805879A4 (zh)
JP (1) JP7003842B2 (zh)
CN (1) CN111954854B (zh)
WO (1) WO2019230321A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022139090A (ja) * 2021-03-11 2022-09-26 オムロン株式会社 開発支援装置、開発支援方法および開発支援プログラム
JP7132557B1 (ja) 2021-09-01 2022-09-07 アドバンスデザインテクノロジー株式会社 デバイス制御システム
DE112022005741T5 (de) * 2022-02-09 2024-09-26 Fanuc Corporation Steuervorrichtung für einen roboter, die mit einer programmierbaren logiksteuerung kommuniziert

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000112737A (ja) * 1998-10-01 2000-04-21 Seiko Epson Corp プログラム作成装置
WO2001077882A1 (en) * 2000-04-07 2001-10-18 Healthmedia, Inc. System and method for generating computer source code
JP2005141563A (ja) * 2003-11-07 2005-06-02 Digital Electronics Corp エディタ装置、コンピュータをエディタ装置として機能させるためのプログラム、および記録媒体
JP2006099258A (ja) * 2004-09-28 2006-04-13 Digital Electronics Corp エディタ装置、コンピュータをエディタ装置として機能させるためのプログラム、そのプログラムを格納した記録媒体、制御システム、および表示器
JP2007213417A (ja) * 2006-02-10 2007-08-23 Canon Inc プログラムコード生成装置、方法、及びコンピュータプログラム
CN101395547A (zh) * 2006-03-07 2009-03-25 株式会社安川电机 编程装置以及自动的数据结构识别方法
US20100058302A1 (en) * 2006-11-20 2010-03-04 Freescale Semiconductor, Inc. System, apparatus and method for translating data
CN101776877A (zh) * 2009-01-12 2010-07-14 鸿富锦精密工业(深圳)有限公司 可编程逻辑控制器程序编辑系统及方法
CN102540953A (zh) * 2010-12-24 2012-07-04 深圳市合信自动化技术有限公司 可编程逻辑控制器的数据处理方法及可编程逻辑控制器
CN102713774A (zh) * 2010-01-20 2012-10-03 三菱电机株式会社 可编程控制器系统及开发系统
CN104067186A (zh) * 2012-02-01 2014-09-24 欧姆龙株式会社 支援装置、记录有支援程序的记录介质及生成可执行程序的方法
CN107341010A (zh) * 2017-06-26 2017-11-10 华中科技大学 一种C/C++与COStream混合编程方法和可视化编译系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7707566B2 (en) * 2003-06-26 2010-04-27 Microsoft Corporation Software development infrastructure
JP5262765B2 (ja) * 2009-01-29 2013-08-14 株式会社明電舎 Plcのプログラム変換ツール

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000112737A (ja) * 1998-10-01 2000-04-21 Seiko Epson Corp プログラム作成装置
WO2001077882A1 (en) * 2000-04-07 2001-10-18 Healthmedia, Inc. System and method for generating computer source code
JP2005141563A (ja) * 2003-11-07 2005-06-02 Digital Electronics Corp エディタ装置、コンピュータをエディタ装置として機能させるためのプログラム、および記録媒体
JP2006099258A (ja) * 2004-09-28 2006-04-13 Digital Electronics Corp エディタ装置、コンピュータをエディタ装置として機能させるためのプログラム、そのプログラムを格納した記録媒体、制御システム、および表示器
JP2007213417A (ja) * 2006-02-10 2007-08-23 Canon Inc プログラムコード生成装置、方法、及びコンピュータプログラム
CN101395547A (zh) * 2006-03-07 2009-03-25 株式会社安川电机 编程装置以及自动的数据结构识别方法
US20100058302A1 (en) * 2006-11-20 2010-03-04 Freescale Semiconductor, Inc. System, apparatus and method for translating data
CN101776877A (zh) * 2009-01-12 2010-07-14 鸿富锦精密工业(深圳)有限公司 可编程逻辑控制器程序编辑系统及方法
CN102713774A (zh) * 2010-01-20 2012-10-03 三菱电机株式会社 可编程控制器系统及开发系统
CN102540953A (zh) * 2010-12-24 2012-07-04 深圳市合信自动化技术有限公司 可编程逻辑控制器的数据处理方法及可编程逻辑控制器
CN104067186A (zh) * 2012-02-01 2014-09-24 欧姆龙株式会社 支援装置、记录有支援程序的记录介质及生成可执行程序的方法
CN107341010A (zh) * 2017-06-26 2017-11-10 华中科技大学 一种C/C++与COStream混合编程方法和可视化编译系统

Also Published As

Publication number Publication date
EP3805879A1 (en) 2021-04-14
JP2019211823A (ja) 2019-12-12
US20210026609A1 (en) 2021-01-28
WO2019230321A1 (ja) 2019-12-05
CN111954854B (zh) 2024-07-16
JP7003842B2 (ja) 2022-01-21
EP3805879A4 (en) 2022-03-02

Similar Documents

Publication Publication Date Title
Vogel-Heuser et al. Model-driven engineering of manufacturing automation software projects–A SysML-based approach
US8327316B2 (en) Compilation model
US9235381B2 (en) Method and device for the programming and configuration of a programmable logic controller
Estévez et al. Automatic generation of PLC automation projects from component-based models
CN102640112B (zh) 程序制作支援装置
CN109143952B (zh) 可编程逻辑控制器编程语言转换系统
CN111954854B (zh) 支持装置以及计算机可读取存储介质
CN110271009B (zh) 基于plc仿机器人指令实现机械手示教功能方法
CN104067186A (zh) 支援装置、记录有支援程序的记录介质及生成可执行程序的方法
Julius et al. Transformation of GRAFCET to PLC code including hierarchical structures
CN102955460A (zh) 一种数控系统主站对io端子从站的控制系统
JP6550269B2 (ja) プログラム作成支援装置、制御方法およびプログラム
WO2024140416A1 (zh) 一种工业控制程序开发平台及方法
CN109032056B (zh) 可编程逻辑控制器编程语言转换方法
CN114564192A (zh) 一种实时以太网工控软件开发环境的数据映射方法
US11169510B2 (en) Engineering system and method for planning an automation system
US20210263715A1 (en) Support device and non-transient computer-readable recording medium recording support program
Magnenat et al. Scripting the swarm: event-based control of microcontroller-based robots.
Ebenhofer et al. Generic and reconfigurable IEC 61499 function blocks for advanced platform independent engineering
Lin et al. A Platform-Independent Code Model for Operation and Information Technologies Convergences in Industrial Edge Applications
CN116909205A (zh) 一种面向机器人的可视化编程方法及系统
Rzońca et al. Interfacing inputs and outputs with IEC 61131-3 control software
Geng et al. Automated code generation for development of electric vehicle controller
Trillhose Controlling the production cell using TERRA-LUNA
Sharov et al. Cross-platform programs implementation for specialized distributed embedded systems

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
GR01 Patent grant
GR01 Patent grant