CN114556242A - 程序开发装置及用于实现程序开发装置的程序 - Google Patents
程序开发装置及用于实现程序开发装置的程序 Download PDFInfo
- Publication number
- CN114556242A CN114556242A CN202080067892.0A CN202080067892A CN114556242A CN 114556242 A CN114556242 A CN 114556242A CN 202080067892 A CN202080067892 A CN 202080067892A CN 114556242 A CN114556242 A CN 114556242A
- Authority
- CN
- China
- Prior art keywords
- program
- variable
- module
- attribute
- variables
- 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
- 238000011156 evaluation Methods 0.000 claims abstract description 64
- 238000011161 development Methods 0.000 claims abstract description 17
- 238000012545 processing Methods 0.000 description 37
- 238000000034 method Methods 0.000 description 33
- 238000010586 diagram Methods 0.000 description 26
- 230000008569 process Effects 0.000 description 19
- 238000013461 design Methods 0.000 description 9
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000005856 abnormality Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
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/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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3616—Software analysis for verifying properties of programs using software metrics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
- Stored Programmes (AREA)
Abstract
提供一种用于提供由控制装置执行的用户程序的开发环境的程序开发装置。程序开发装置包含设定单元,所述设定单元针对在包含处于调用关系的第1程序和第2程序的用户程序中使用的1个或多个变量的每一个,受理与来自程序的参照相关的属性的设定。该设定的属性包含被第1程序和第2程序中的任意一方参照的第1属性、以及被第1程序和第2程序均参照的第2属性。程序开发装置包含评价单元,所述评价单元对用户程序进行分析,针对1个或多个变量的每一个,评价基于所设定的与来自程序的参照相关的属性的匹配性。
Description
技术领域
本发明涉及程序开发装置及用于实现程序开发装置的程序。
背景技术
伴随着作为FA(Factory Automation:工厂自动化)的基础的PLC(可编程逻辑控制器)等控制装置的高功能化,被称为用户程序的应用程序也大规模化。随着程序的大规模化,还存在想要提高程序的设计效率和再利用性的需求。
由控制装置执行的用户程序包含参照与现场装置组之间交换的信号(IO信号)的命令,因此在再利用时,需要适当修正用于参照IO信号的命令等。
例如,日本特开平4-205355号公报(专利文献1)虽然不面向控制装置,但公开了如下技术:通过分析针对源程序中的公共变量的变量使用限制信息,并存储该限制信息,一边参照该存储的限制信息一边检查源程序中的变量的使用,由此在源程序的阶段发现针对公共变量的错误使用。
现有技术文献
专利文献
专利文献1:日本特开平4-205355号公报
发明内容
发明所要解决的课题
上述的专利文献1所公开的技术只不过着眼于在源程序中使用的公共变量,在PLC等控制装置中无法实现提高程序的设计效率以及再利用性的目的。
本发明的一个目的在于提供一种能够提高由控制装置执行的用户程序的设计效率以及再利用性的新的结构。
用于解决课题的手段
根据本发明的一种实施方式,提供一种用于提供由控制装置执行的用户程序的开发环境的程序开发装置。程序开发装置包含设定单元,所述设定单元针对在包含处于调用关系的第1程序和第2程序的用户程序中使用的1个或多个变量的每一个,受理与来自程序的参照相关的属性的设定。该设定的属性包含被第1程序和第2程序中的任意一方参照的第1属性、以及被第1程序和第2程序均参照的第2属性。程序开发装置包含评价单元,所述评价单元对用户程序进行分析,针对1个或多个变量的每一个,评价基于所设定的与来自程序的参照相关的属性的匹配性。
根据该结构,能够预先设定被处于调用关系的第1程序和第2程序分别参照的变量的属性,确保成为适合于该设定的属性的使用方式。由此,能够创建再利用性高的用户程序。
评价单元对匹配性的评价也可以包含:设定有第1属性的变量是否被与作为参照源的程序不同的程序进行了参照。根据该结构,能够防止确定为被特定的程序参照的变量被其他程序参照。
评价单元对匹配性的评价也可以包含:设定有第2属性的变量是否被第1程序和第2程序均进行了参照。根据该结构,能够防止确定为被多个程序参照的变量仅被一部分程序参照。
程序开发装置也可以还包含结果提示单元,所述结果提示单元提示评价单元对匹配性的评价结果。根据该结构,用户能够参照匹配性的评价结果,适当地修正用户程序等。
结果提示单元也可以将由评价单元评价为不满足匹配性的变量以与其他变量不同的方式进行显示。根据该结构,一眼就能够掌握不满足匹配性的变量。
结果提示单元也可以提示1个或多个变量分别以输入和输出中的哪个类别在用户程序中被使用。根据该结构,能够针对变量的每个使用类别判断是否被适当地使用。
设定有第1属性的变量也可以与特定的IO单元对应。根据该结构,能够进行适合于参照IO单元的值的变量的设定。
设定单元也可以针对1个或多个变量的每一个,受理所使用的程序的设定。根据该结构,无需意识到属性的差异,仅通过设定所使用的程序就能够设定适当的属性。
第1程序和第2程序也可以分别包含所使用的变量以及对该变量设定的属性而被模块化。根据该结构,能够以模块化的单位使再利用变得容易。
根据本发明的另一实施方式,提供一种用于实现程序开发装置的程序,所述程序开发装置用于提供由控制装置执行的用户程序的开发环境。程序使计算机执行以下步骤:针对在包含处于调用关系的第1程序和第2程序的用户程序中使用的1个或多个变量的每一个,受理与来自程序的参照相关的属性的设定。该设定的属性包含被第1程序和第2程序中的任意一方参照的第1属性、以及被第1程序和第2程序均参照的第2属性。程序使计算机执行以下步骤:对用户程序进行分析,针对1个或多个变量的每一个,评价基于所设定的与来自程序的参照相关的属性的匹配性。
根据该结构,能够预先设定被处于调用关系的第1程序和第2程序分别参照的变量的属性,确保成为适合于该设定的属性的使用方式。由此,能够创建再利用性高的用户程序。
发明的效果
根据本发明,能够实现可提高由控制装置执行的用户程序的设计效率以及再利用性的新的结构。
附图说明
图1是表示在本实施方式的模块化编程中创建的项目的数据结构的一例的示意图。
图2是用于说明本实施方式的模块化编程中的变量处理的图。
图3是表示本实施方式的控制系统的整体结构例的示意图。
图4是表示本实施方式的构成控制系统的控制装置的硬件结构例的框图。
图5是表示本实施方式的构成控制系统的程序开发装置的硬件结构例的框图。
图6是表示本实施方式的模块化编程的整体处理步骤的流程图。
图7是表示按照本实施方式的模块化编程而创建的项目的一例的图。
图8是表示在图7所示的项目中包含几个错误的例子的图。
图9是表示在本实施方式的模块化编程中使用的全局变量定义的一例的图。
图10是表示本实施方式的模块化编程中的匹配性评价的处理步骤的流程图。
图11是表示通过图10所示的匹配性评价的处理而生成的每个模块变量使用状况的一例的图。
图12是表示在本实施方式的模块化编程中生成的对象全局变量定义的一例的图。
图13是表示本实施方式的程序开发装置所提供的匹配性评价的结果例的示意图。
图14是表示本实施方式的程序开发装置所提供的匹配性评价的另一结果例的示意图。
图15是表示本实施方式的变形例的模块化编程中的模块间接口的一例的图。
具体实施方式
参照附图对本发明的实施方式进行详细说明。另外,对图中的相同或相应的部分标注相同的标号并不重复其说明。
<A.应用例:模块化编程>
首先,对应用本发明的场景的一例进行说明。具体而言,对本实施方式的模块化编程进行概略说明。另外,如后所述,“模块化编程”这一用词是为了将程序和设定规定为模块,预定以模块为单位进行再利用。但是,本发明的技术思想不仅适用于模块化编程,也能够适用于包含多个程序的用户程序。
在国际电气标准会议(IEC:International Electrotechnical Commission)所规定的IEC61131-3中,构成程序或项目的块被称为POU(Program Organization Units:程序组织单元)。POU相当于程序要素的集合的单位。在用户程序内,能够规定从某个POU调用另一POU这样的、POU间的调用关系(以下,也称为“父子关系”或者“Parent-Child”等。)。
通过将POU作为模块的单位,能够表现模块间的父子关系,而控制装置或控制系统经由IO单元从输入设备取得输入信号,按照基于所取得的输入信号的控制运算来控制输出设备。因此,IO信号的数量远多于通用的计算机,另外,分配给IO单元的全局变量(表示IO信号的值)能够从任意层级的POU访问。因此,准备能够从各程序访问分配给IO单元的全局变量的IO-程序接口(IO-程序I/F)。
另外,关于POU间的接口,在采用仅允许严格的调用关系(即,仅通过各POU管理的输入变量及输出变量来规定调用关系)的程序结构的情况下,程序的再利用性降低,因此准备规定各POU能够访问的全局变量的模块间的接口(程序间接口(程序间I/F))。
图1是表示在本实施方式的模块化编程中创建的项目的数据结构的一例的示意图。参照图1,项目50包含用户程序52、IO单元定义54、IO-程序I/F 56、程序间I/F 58作为要素。
通常,在IO-程序I/F 56中定义表示IO单元交换的IO信号的全局变量。典型地,IO-程序I/F 56中设定的变量与特定的IO单元对应。另一方面,在程序间I/F 58中定义各程序均可参照的全局变量。
在图1所示的项目50中,规定了与控制对象的特性对应的模块。更具体而言,项目50包含装置模块60、工序模块62以及66。工序模块62还包含与工序内的各功能对应的工序内模块63和64。各模块包含分别属于用户程序52、IO单元定义54、IO-程序I/F 56及程序间I/F 58的程序要素。即,项目50所包含的各程序包含所使用的变量以及对该变量设定的属性而被模块化。
更具体而言,装置模块60包含用于对控制对象中所含的装置进行控制的装置程序53作为用户程序52,并且包含全局变量定义59作为程序间I/F 58。全局变量定义59包含可使用的全局变量名的定义及各全局变量名的数据类型的定义(以下,关于其他全局变量及局部变量也同样如此。)。
另外,在本说明书中,“局部变量”是指仅在定义该局部变量的程序内能够参照的变量,“全局变量”是指“局部变量”以外的变量。在以下的说明中,“全局变量”是包含能够被1个或多个程序或IO单元参照的变量的用词,不应将“全局”这一修饰词解释为严格的含义。
工序模块62包含对工序的功能进行协调和整体控制的程序531以及局部变量定义539作为用户程序52,并且包含全局变量定义59作为程序间I/F 58。
工序模块62所包含的工序内模块63包含功能程序532及被功能程序532调用的功能块533作为用户程序52,并且包含全局变量定义59作为程序间I/F 58。并且,工序内模块63包含全局变量定义57作为IO-程序I/F 56,并且包含IO单元设定55作为IO单元定义54。
同样地,工序模块62所含的工序内模块64包含功能程序534及被功能程序534调用的功能块535作为用户程序52,并且包含全局变量定义59作为程序间I/F 58。并且,工序内模块64包含全局变量定义57作为IO-程序I/F 56,并且包含IO单元设定55作为IO单元定义54。
工序模块66包含进行工序的整体控制的程序536作为用户程序52,并且包含全局变量定义59作为程序间I/F 58。
工序模块66所包含的工序内模块67包含功能程序537及被功能程序537调用的功能块538作为用户程序52,并且包含全局变量定义59作为程序间I/F 58。并且,工序内模块67包含全局变量定义57作为IO-程序I/F 56,并且包含IO单元设定55作为IO单元定义54。
另外,关于全局变量定义57及59,请参照后述的图9等。
例如,若设想再利用图1所示的项目50所包含的特定的模块(关于特定的工序的程序、变量定义及IO定义)的情况,则不仅用户程序52中所包含的程序,而且IO单元定义54、IO-程序I/F 56及程序间I/F 58中所包含的要素也必须在再利用时进行考虑。
仅用户程序52中包含的特定程序所参照的变量作为IO-程序I/F 56的全局变量而存在,在多个程序间相互参照的变量作为程序间I/F 58的全局变量而存在。然而,在IEC61131-3的变量定义中,不存在这种与变量的处理差异相关的信息,因此在用户程序的设计阶段,有可能无法进行适当的处理。
因此,在本实施方式的模块化编程中,能够对变量设定仅特定的程序参照、及在多个程序间参照中的任意的属性(或规则),并且能够评价基于所述设定的属性的匹配性。此外,也可以将与这些属性不同的属性设定为变量。
图2是用于说明本实施方式的模块化编程中的变量处理的图。参照图2,属于IO-程序I/F 56的全局变量仅允许被特定的程序参照,属于程序间I/F 58的全局变量允许被多个程序参照。
在本实施方式的模块化编程中,预先设定各全局变量是哪个属性,评价是否与该设定的属性匹配。
并且,也能够请求属于程序间I/F 58的全局变量被作为对象的多个程序参照。即,也能够将未被作为对象的多个程序中的任意程序参照的情况判定为不匹配。
通过进行这样的针对变量的属性设定以及匹配性评价,能够实现可提高用户程序的设计效率以及再利用性的新的结构。
<B.控制系统结构例>
接着,对执行由本实施方式的程序开发装置200创建的用户程序的控制系统1的结构例进行说明。
图3是表示本实施方式的控制系统1的整体结构例的示意图。参照图3,控制系统1包含1个或多个控制装置100。此外,在图3中例示了包含2个控制装置100的控制系统1,但也可以是由1个控制装置100构成的结构。
控制装置100分别执行用于对控制对象进行控制的控制运算,并且执行用于检测在控制对象所包含的监视对象中可能产生的某种异常的异常检测处理。控制装置100也可以具体化为PLC(可编程控制器)等一种计算机。
控制装置100经由现场总线2与现场装置组10连接。进而,控制装置100彼此经由本地网络4相互连接。有时在控制装置100上也连接有程序开发装置200。
作为现场总线2,优选采用保证数据的到达时间的、进行恒定周期通信的网络。作为进行此种恒定周期通信的网络,已知有EtherCAT(注册商标)等。
控制装置100收集由现场装置组10取得并传送到控制装置100的数据(以下,也称为“输入值”。)。现场装置组10包含收集控制对象或者与控制相关的制造装置或生产线等(以下,也总称为“现场”。)的状态值作为输入值的装置。
在本说明书中,“状态值”是包含能够在任意的控制对象(包含监视对象)中观测的值的用词,例如,可包含能够由任意的传感器测量的物理值、继电器或开关等的接通/断开状态、PLC对伺服驱动器给出的位置、速度、转矩等指令值、PLC在运算中使用的变量值等。
作为收集这样的状态值的装置,可设想输入继电器、各种传感器等。现场装置组10还包含基于由控制装置100生成的指令值(以下,也称为“输出值”。)对现场施加某种作用的装置。作为这样的对现场施加某种作用的装置,可设想输出继电器、接触器、伺服驱动器、伺服电机以及其他任意的致动器。这些现场装置组10经由现场总线2而与控制装置100之间交换包含输入值及输出值的数据。
在图3所示的结构例中,现场装置组10包含远程IO(Input/Output:输入输出)装置12、继电器组14、图像传感器18和摄像头20、伺服驱动器22和伺服电机24。
远程IO装置12包含经由现场总线2进行通信的通信部、和用于进行输入值的收集以及输出值的输出的输入输出部(以下,也称为“IO单元”。)。经由这样的IO单元,在控制装置100与现场之间交换输入值和输出值。图3示出了经由继电器组14交换数字信号作为输入值和输出值的例子。
IO单元也可以与现场总线直接连接。图3示出在现场总线2上直接连接有IO单元16的例子。
图像传感器18对由摄像头20拍摄到的图像数据进行图案匹配等图像计测处理,并将其处理结果发送到控制装置100。
伺服驱动器22按照来自控制装置100的输出值(例如位置指令等)来驱动伺服电机24。
程序开发装置200提供由控制装置100执行的用户程序的开发环境。用户操作程序开发装置200,创建由控制装置100执行的用户程序。具体而言,程序开发装置200提供由控制装置100执行的用户程序的开发环境(程序创建编辑工具、解析器、编译器等)、用于决定控制装置100及与控制装置100连接的各种设备的设定参数(配置)的功能、将所创建的用户程序向控制装置100发送的功能、在线修正/变更在控制装置100上执行的用户程序等的功能等。
本实施方式的程序开发装置200不仅能够提高由单一的控制装置100执行的用户程序内的再利用性,还能够提高由多个控制装置100分别执行的用户程序间的再利用性。
<C.硬件结构例>
接下来,对本实施方式的构成控制系统1的控制装置100及程序开发装置200的硬件结构例进行说明。
(c1.控制装置100的硬件结构例)
图4是表示本实施方式的构成控制系统1的控制装置100的硬件结构例的框图。参照图4,控制装置100包含CPU(Central Processing Unit:中央处理器)或MPU(Micro-Processing Unit:微处理器)等处理器102、芯片组104、主存储装置106、二次存储装置108、本地网络控制器110、USB(Universal Serial Bus:通用串行总线)控制器112、存储卡接口114、现场总线控制器120、内部总线控制器122以及IO单元124-1、124-2、……。
处理器102读出保存在二次存储装置108中的各种程序,在主存储装置106中展开并执行,由此实现与控制对象对应的控制以及后述那样的各种处理。芯片组104与处理器102一起控制各组件,由此实现作为控制装置100整体的处理。
在二次存储装置108中,除了未图示的系统程序以外,还存储在程序开发装置200中创建的执行形式的用户程序126(相当于控制程序)。
本地网络控制器110控制经由本地网络4的与其他装置之间的数据交换。USB控制器112经由USB连接来控制与程序开发装置200之间的数据交换。
存储卡接口114构成为能够装卸存储卡116,能够对存储卡116写入数据,并从存储卡116读出各种数据(用户程序、跟踪数据等)。
现场总线控制器120控制经由现场总线2的与其他装置之间的数据交换。内部总线控制器122是与搭载于控制装置100的IO单元124-1、124-2、……之间交换数据的接口。
在图4中,示出了通过处理器102执行程序代码而提供所需的功能的结构例,但也可以使用专用的硬件电路(例如,ASIC(Application Specific Integrated Circuit:专用集成电路)或者FPGA(Field-Programmable Gate Array:现场可编程门阵列)等)来安装这些所提供的功能的一部分或者全部。或者,也可以使用遵循通用架构的硬件(例如以通用个人计算机为基础的工业用个人计算机)来实现控制装置100的主要部分。
(c2:程序开发装置200的硬件结构例)
图5是表示本实施方式的构成控制系统1的程序开发装置200的硬件结构例的框图。作为一例,程序开发装置200也可以通过使用遵循通用架构的硬件(例如通用个人计算机)执行程序来实现。
参照图5,程序开发装置200包含CPU或MPU等处理器202、驱动器204、主存储装置206、二次存储装置208、USB控制器212、本地网络控制器214、输入部216和显示部218。这些组件经由总线220连接。
处理器202读出保存在二次存储装置208中的各种程序,在主存储装置206中展开并执行,由此实现后述的各种处理。
二次存储装置208例如由HDD(Hard Disk Drive:硬盘驱动器)、SSD(Solid StateDrive:固态驱动器)等构成。在二次存储装置208中保存有用于实现后述的各种功能的开发工具250。在二次存储装置208中,也可以保存OS以及其他必要的系统程序。
驱动器204能够对存储介质205写入数据,并从存储介质205读出各种数据(用户程序和各种数据)。存储介质205例如包含非临时性地保存计算机可读取的程序的存储介质205(例如,DVD(Digital Versatile Disc:数字多功能光盘)等光学存储介质)。
由程序开发装置200执行的开发工具250等可以经由计算机可读取的存储介质205进行安装,也可以以从网络上的服务器装置等下载的形式进行安装。另外,本实施方式的程序开发装置200提供的功能有时也以使用OS提供的模块的一部分的形式实现。
USB控制器212经由USB连接来控制与控制装置100之间的数据交换。本地网络控制器214控制经由任意网络的与其他装置之间的数据交换。
输入部216由键盘、鼠标等构成,受理用户操作。显示部218由显示器、各种指示器等构成,输出来自处理器202的处理结果。也可以在程序开发装置200上连接打印机。
在图5中,示出了通过处理器202执行程序代码而提供所需的功能的结构例,但也可以使用专用的硬件电路(例如ASIC或FPGA等)来安装这些所提供的功能的一部分或全部。
<D.用户编程的设计和匹配性评价>
接着,对按照本实施方式的模块化编程的用户程序的设计例及匹配性评价进行说明。
(d1:整体处理步骤)
图6是表示本实施方式的模块化编程的整体处理步骤的流程图。参照图6,用户操作程序开发装置200,定义在预定创建的用户程序中使用的预定的变量(步骤S2)。然后,用户操作程序开发装置200,创建用户程序(步骤S4)。
在用户程序的创建完成之前(在步骤S6中为“否”),反复执行步骤S2以及S4的处理。
当用户程序的创建完成时(在步骤S6中为“是”),用户对所创建的用户程序执行匹配性评价(步骤S8)。在不满足匹配性的情况下(在步骤S10中为“否”),用户重新考虑用户程序以及变量的定义(步骤S12)。然后,用户再次执行步骤S8以下的处理。
在满足匹配性的情况下(在步骤S10中为“是”),用户构建(build)所创建的用户程序并向控制装置100传送(步骤S14)。然后,用户程序的创建处理完成。
(d2:项目50的设计例)
图7是表示按照本实施方式的模块化编程而创建的项目50的一例的图。图7所示的项目50包含处于调用关系(父子关系)的2个模块(父模块70(Parent)和子模块80(Child))。父模块70包含接收来自输入单元A的输入信号并启动子模块80的命令。子模块80包含如下命令:在接收来自父模块70的启动指令,并执行处理后,将其处理结果输出至输出单元。这样,用户程序包含处于调用关系的多个程序。
在程序间I/F 58中规定有能够被父模块70和子模块80均参照的2个变量“Child_REQ”和“Child_ACK”。这些变量为了由父模块70对子模块80进行启动和结束而用于交接72、82。
另外,在父模块70的IO程序间I/F 58中规定有表示输入单元A的输入信号的变量“InA_Bit00”,在子模块80的程序间I/F 58中规定有表示输入单元B的输入信号的变量“InB_Bit00”及表示输出单元的输出信号的变量“OutC_Bit00”。
图8是表示在图7所示的项目50中包含几个错误的例子的图。在图8所示的项目50中,假设本来应该创建图7所示的项目50,但包含以下的2个错误。
在父模块70中,应将参照变量“Child_ACK”的命令71包含在程序中,但记载遗漏。其结果,程序间I/F 58中规定的变量“Child_ACK”未被参照((1)未被参照)。
另外,IO-程序I/F 56中规定的输入单元A的变量“InA_Bit00”应仅被父模块70参照,但包含被子模块80参照的命令81。其结果,IO-程序I/F 56中规定的变量“InA_Bit00”被与本来的模块不同的模块参照((2)从定义外的参照)。
这样,图8所示的项目50无法遵守关于IO-程序I/F 56以及程序间I/F 58的规则。
本实施方式的模块化编程能够评价对此种关于IO-程序I/F 56以及程序间I/F 58的规则的匹配性。
通过进行这样的针对变量的属性设定以及匹配性评价,能够实现可提高用户程序的设计效率以及再利用性的新的结构。
(d3:全局变量定义90)
图9是表示在本实施方式的模块化编程中使用的全局变量定义90的一例的图。图9所示的全局变量定义90也可以通过图6所示的步骤S2所示的由用户对定义的操作来创建。即,程序开发装置200针对在包含处于调用关系的多个程序(父模块70及子模块80)的用户程序中使用的各个变量,执行受理与来自程序的参照相关的属性的设定的处理。
参照图9,全局变量定义90包含:变量定义部93,其包含指定各全局变量的变量名的变量名91和定义对应的数据类型的数据类型92;IO单元分配定义部94,其表示各全局变量与IO单元的对应关系;以及参照模块部96,其规定参照目标模块。全局变量定义90还可以包含保存关于各全局变量的注释(任意)的注释部95。
这样,在全局变量定义90中,针对各变量,设定所使用(参照)的程序。在全局变量定义90中,根据这样的参照源程序的设定(即,与各全局变量关联地在参照模块部96中规定的模块的有无以及模块的数量),决定各全局变量是属于IO-程序I/F56还是属于程序间I/F58。
如图9所示,程序开发装置200针对在包含处于调用关系的多个程序的用户程序中使用的1个或多个变量的每一个,受理与来自程序的参照相关的属性(或规则)的设定。属于IO-程序I/F 56的变量具有被任意一个程序参照的属性。另外,属于程序间I/F 58的变量具有被关联的多个程序中的任意程序参照的属性。
(d4:匹配性评价)
程序开发装置200对用户程序进行分析,针对用户程序所包含的各个变量,评价基于所设定的与来自程序的参照相关的属性(属于IO-程序I/F 56和程序间I/F 58中的哪一个)的匹配性。作为这样的基于全局变量定义90的用户程序的匹配性评价的一例,对按每个模块分析变量使用状况的处理进行说明。
图10是表示本实施方式的模块化编程中的匹配性评价的处理步骤的流程图。图10所示的各步骤典型而言是通步骤序开发装置200的处理器202执行开发工具250而实现。即,开发工具250是用于实现程序开发装置200的程序,程序开发装置200用于提供由控制装置100执行的用户程序的开发环境。而且,程序开发装置200执行以下说明的处理,该处理用于对用户程序解析分析,针对各个变量,评价基于所设定的与来自程序的参照相关的属性的匹配性。
参照图10,程序开发装置200参照图9所示的全局变量定义90,提取分析对象的模块名(步骤S100)。程序开发装置200将具有提取出的任意模块名的程序设定为检索对象(步骤S102)。程序开发装置200读入被设定为检索对象程序的1行(步骤S104),判断是否使用了某种变量(步骤S106)。如果使用了某种变量(在步骤S106中为“是”),则提取所使用的变量的变量名、使用部位、输入/输出的类别、用途等(步骤S108)。提取出的各信息作为每个模块变量使用状况(参照后述的图11)而输出。另外,如果没有使用任何变量(在步骤S106中为“否”),则跳过步骤S108的处理。
程序开发装置200判断是否到达了检索对象程序的最后一行(步骤S110)。如果未到达检索对象程序的最后一行(在步骤S110中为“否”),则程序开发装置200读入被设定为检索对象的程序的下1行(步骤S112),再次执行步骤S106以下的处理。
如果到达了检索对象程序的最后一行(在步骤S110中“是”),则程序开发装置200判断是否对具有提取出的模块名的全部程序完成了检索处理(步骤S114)。如果具有提取出的模块名的程序中存在未完成检索处理的程序(在步骤S114中为“否”),则程序开发装置200将未完成检索处理的程序设定为新的检索对象(步骤S116)。然后,程序开发装置200再次执行步骤S102以下的处理。
如果针对具有提取出的模块名的全部程序完成了检索处理(在步骤S114中为“是”),则程序开发装置200执行步骤S120以下的处理。
图11是表示通过图10所示的匹配性评价的处理而生成的每个模块变量使用状况350的一例的图。参照图11,每个模块变量使用状况350包含在对象模块所包含的程序中使用的全局变量的一览。
更具体而言,每个模块变量使用状况350包含表示使用了对应的变量的模块的模块名351、所使用的变量的变量名352、对应的变量的使用部位353、对应的变量的输入/输出的类别354、对应的变量的用途355、以及保存表示在定义了对应的变量的模块以外使用的标志的定义外使用356。
使用部位353使用对应的程序的步骤编号等来确定对应的变量的使用部位。输入/输出的类别354表示对应的变量是被用作触点(输入变量),还是对应的变量被用作线圈(输出变量)。
另外,在图10的步骤S108中,存在从同一程序多次提取同一变量的情况,但这样的多次提取出的同一变量被合并,在每个模块变量使用状况350中,对于同一程序不会重复登记同一变量。另外,也可以删除在图10的步骤S108中提取出的变量中的、不存在对应的模块名的变量。
参照图11所示的每个模块变量使用状况350,执行图10所示的步骤S120以下的处理。再次参照图10,程序开发装置200删除全局变量定义90(图9)所包含的变量中的未被规定对应的参照目标模块(参照模块部96)的变量,生成仅由作为匹配性评价对象的变量构成的对象全局变量定义90A(步骤S120)。
图12是表示在本实施方式的模块化编程中生成的对象全局变量定义90A的一例的图。参照图12,对象全局变量定义90A仅包含与参照模块对应的全局变量。在对象全局变量定义90A中,能够对参照各全局变量的每个模块,设置用于评价有无使用的标志(参照模块部97)。
接着,执行处理,对图11所示的每个模块变量使用状况350与图12所示的对象全局变量定义90A进行比较来评价一致以及差异。
更具体而言,程序开发装置200读入每个模块变量使用状况350(图11)中的最初的条目(步骤S122),将读入的条目的变量名352作为关键字,检索对象全局变量定义90A中包含的具有相同变量名91的条目(步骤S124)。然后,在对象全局变量定义90A的检索到的条目中,对与读入的条目的模块名351相同的模块名设置表示已使用的标志(图12的参照模块部97)(步骤S126)。
接着,程序开发装置200判断在与所读入的条目的变量名352对应的对象全局变量定义90A的条目中,读入的模块名351是否包含在参照模块部97中(步骤S128)。如果读入的模块名351未包含在参照模块部97中(在步骤S128中为“否”),则程序开发装置200对读入的条目设置表示在定义外的模块中使用的标志(图11的定义外使用356)(步骤S130)。另一方面,若读入的模块名351包含在参照模块部97中(在步骤S128中为“是”),则程序开发装置200跳过步骤S130的处理。
即,在步骤S128以及S130中,关于所关注的变量,如果在对象全局变量定义90A的参照模块部97中包含每个模块变量使用状况350的模块名351,则判断为该所关注的变量被适当地使用。另一方面,如果在对象全局变量定义90A的参照模块部97中包含每个模块变量使用状况350的模块名351,则判断为该关注的变量的使用不正确(未定义的模块中的使用)。这样,作为匹配性评价,包含如下判断:属于IO-程序I/F 56的变量是否被与作为参照源的程序不同的程序进行了参照。
程序开发装置200判断处理是否已完成至每个模块变量使用状况350的最后的条目(步骤S132)。若处理未完成至每个模块变量使用状况350的最后的条目(在步骤S132中为“否”),则程序开发装置200读入每个模块变量使用状况350(图11)中的下一个条目(步骤S134),并再次执行步骤S124以下的处理。
若处理已完成至每个模块变量使用状况350的最后的条目(在步骤S132中为“是”),则程序开发装置200提取在对象全局变量定义90A的参照模块部97中未被设置标志的变量作为未被使用的变量(步骤S136),并基于每个模块变量使用状况350及对象全局变量定义90A,显示匹配性评价的结果(步骤S138)。这样,作为匹配性评价,包含如下判断:属于程序间I/F 58的变量是否被关联的程序均进行了参照。
然后,匹配性评价的处理结束。此外,也可以基于匹配性评价的结果,对用户程序执行用于进行某种修正的处理。
(d5:匹配性评价的结果例)
程序开发装置200具有提示上述那样的匹配性评价的结果的功能。
图13是表示本实施方式的程序开发装置200所提供的匹配性评价的结果例的示意图。参照图13,结果显示画面300每个模块变量使用状况350(图11)为基础,对每个模块示出变量的使用状况的匹配性评价结果。
结果显示画面300包含表示已被适当使用的变量的使用变量一览310、和表示未被使用的变量的未使用变量一览320。
使用变量一览310包含表示对象模块的模块名311、表示对象变量的变量名312、表示对象变量的数据类型的数据类型313、表示对象变量与IO单元的对应关系的IO单元分配314、关于对象变量的注释315(任意)、对象变量的用途316、以及表示针对对象的匹配性评价的结果的评价结果317。
在评价结果317中,关于在被定义为使用目的地的模块以外的模块中使用的变量(在每个模块变量使用状况350的定义外使用356中设置有标志的变量),对应地显示“模块的定义中所没有的使用”这样的错误消息318。
同样地,未使用变量一览320包含表示对象模块的模块名321、表示对象变量的变量名322、表示对象变量的数据类型的数据类型323、表示对象变量与IO单元的对应关系的IO单元分配324、关于对象变量的注释325(任意)、对象变量的用途326、以及表示针对对象的匹配性评价的结果的评价结果327。另外,由于未使用对象变量,因此无法对IO单元分配324及用途326设定有效的值。
在评价结果327中,对于未在所定义的模块中使用的变量(对象全局变量定义90A的参照模块部97的未设置标志的变量),对应地显示“未在所定义的模块中使用”这样的错误消息328。
通过将图13所示那样的匹配性评价的结果例提示给用户,一眼就能够掌握与预先确定的变量相关规则不匹配的变量。
图14是表示本实施方式的程序开发装置200所提供的匹配性评价的另一结果例的示意图。参照图14,结果显示画面330以对象全局变量定义90A(图12)为基础,对每个变量示出使用状况的匹配性评价结果。
结果显示画面330包含与对象全局变量定义90A(图12)对应的使用变量一览340。
使用变量一览340包含表示对象变量的变量名341、表示对象变量的数据类型的数据类型342、表示对象变量与IO单元的对应关系的IO单元分配343、关于对象变量的注释344(任意)、表示对象变量在模块中的使用状态的每个模块使用状态345、以及表示针对对象的匹配性评价的结果的评价结果348。
每个模块使用状态345包含表示各模块中有无使用定义的定义346、和表示在各模块中是否实际使用的使用347。在定义346中,在对应的模块中定义了对象变量的使用的情况下,显示评价标记。另外,在使用347中,显示表示对应的模块中的对象变量以何种方式被使用的信息。在对应的变量被用作触点(输入变量)的情况下显示为[R],在对应的变量被用作线圈(输出变量)的情况下显示为[W]。即,程序开发装置200提示各变量是以输入和输出中的哪一种类别(输入/输出)在用户程序中被使用。
在每个模块使用状态345中,与关于变量使用的预先确定的规则不匹配这一情况以与其他不同的显示方式进行协调显示。在图14所示的例子中,对变量“InA_Bit00”和“Child_ACK”示出了与使用相关规则不匹配。
在评价结果348中,显示与规则不匹配的详细内容。在图14所示的例子中,与变量“InA_Bit00”对应地显示“模块的定义中所没有的使用”、“在多个模块中有单元的访问”这样的错误消息。另外,与变量“Child_ACK”对应地显示“未在所定义的模块中使用”这样的错误消息。
这样,程序开发装置200将在匹配性评价中评价为不满足匹配性的变量以与其他变量不同的方式进行显示。
通过将图14所示那样的匹配性评价的结果例提示给用户,一眼就能够掌握与预先确定的变量相关规则不匹配的变量。
<E.变形例>
在上述的说明中,着眼于规定从各程序向IO单元的访问所参照的全局变量的IO-程序I/F 56、以及规定可在程序间访问的全局变量的程序间I/F 58进行了说明。程序间I/F58仅规定是可在程序(模块)间参照的全局变量,但也可以考虑程序(模块)间的调用关系(父子关系),进一步设定可在程序(模块)间参照的全局变量的属性(或规则)。
图15是表示本实施方式的变形例的模块化编程中的模块间接口的一例的图。参照图15的(A),设定了从父模块70(Parent)调用2个子模块80A以及80B(Child)的父子关系。关于这样的3个模块,可以存在父模块70与子模块80A的关系、父模块70与子模块80B的关系、以及子模块80A与子模块80B的关系这3种模块间接口。
也可以利用这样的模块间的父子关系的信息,评价在父子间以外是否存在作为模块间的接口的变量的匹配性。
例如,如图15的(B)所示,能够将IF_Parent_Child1规定为父模块70与子模块80A之间的模块间接口,将IF_Parent_Child2规定为父模块70与子模块80B之间的模块间接口,将IF_Child1_Child2规定为子模块80A与子模块80B之间的模块间接口。
即,能够通过参照模块间的父子关系,进行属于IF_Child1_Child2这样的子模块间的接口的变量的定义,由此能够评价子模块彼此的变量参照的匹配性。而且,能够将与这样的变量的属性(或者规则)不匹配的变量通知给用户。
此外,关于是否规定模块间的父子关系以外的关系(即,子模块彼此的接口),也可以依赖于用户的模块设计的规则。在该情况下,关于是否规定模块间的父子关系以外的关系,用户可以任意地进行选择(即,有效/无效的切换)。
<F.附记>
如上所述的本实施方式包含以下这样的技术思想。
[结构1]
一种程序开发装置(200),其用于提供由控制装置(100)执行的用户程序的开发环境,其中,
该程序开发装置(200)具有设定单元(90;S2),所述设定单元(90;S2)针对在包含处于调用关系的第1程序和第2程序的用户程序中使用的1个或多个变量的每一个,受理与来自程序的参照相关的属性的设定,
该设定的属性包含被所述第1程序和所述第2程序中的任意一方参照的第1属性(56)、以及被所述第1程序和所述第2程序均参照的第2属性(58),
该程序开发装置(200)具有评价单元(S100~S138),所述评价单元(S100~S138)对所述用户程序进行分析,针对所述1个或多个变量的每一个,评价基于所设定的与来自程序的参照相关的属性的匹配性。
[结构2]
在结构1所记载的程序开发装置中,
所述评价单元对匹配性的评价包含:设定有所述第1属性的变量是否被与作为参照源的程序不同的程序进行了参照。
[结构3]
在结构1或2所记载的程序开发装置中,
所述评价单元对匹配性的评价包含:设定有所述第2属性的变量是否被所述第1程序和所述第2程序均进行了参照。
[结构4]
在结构1~3中的任意一项所记载的程序开发装置中,
该程序开发装置还具有结果提示单元(300;330),所述结果提示单元(300;330)提示所述评价单元对匹配性的评价结果。
[结构5]
在结构4所记载的程序开发装置中,
所述结果提示单元将由所述评价单元评价为不满足匹配性的变量以与其他变量不同的方式进行显示。
[结构6]
在结构4或5所记载的程序开发装置中,
所述结果提示单元提示所述1个或多个变量分别以输入和输出中的哪个类别在所述用户程序中被使用。
[结构7]
在结构1~6中的任意一项所记载的程序开发装置中,
设定有所述第1属性的变量与特定的IO单元对应。
[结构8]
在结构1~5中的任意一项所记载的程序开发装置中,
所述设定单元针对所述1个或多个变量的每一个,受理所使用的程序的设定。
[结构9]
在结构1~8中的任意一项所记载的程序开发装置中,
所述第1程序和所述第2程序分别包含所使用的变量以及对该变量设定的属性而被模块化。
[结构10]
一种用于实现程序开发装置(200)的程序(250),所述程序开发装置(200)用于提供由控制装置(100)执行的用户程序的开发环境,其中,
所述程序使计算机执行以下步骤(S2):针对在包含处于调用关系的第1程序和第2程序的用户程序中使用的1个或多个变量的每一个,受理与来自程序的参照相关的属性的设定,
该设定的属性包含被所述第1程序和所述第2程序中的任意一方参照的第1属性(56)、以及被所述第1程序和所述第2程序均参照的第2属性(58),
所述程序使计算机执行以下步骤(S100~S138):对所述用户程序进行分析,针对所述1个或多个变量的每一个,评价基于所设定的与来自程序的参照相关的属性的匹配性。
<G.优点>
根据本实施方式的模块化编程,针对在用户程序中使用的变量,能够明确地规定是属于IO-程序I/F 56(被任意一个程序参照)的变量还是属于程序间I/F 58(被关联的多个程序均参照)的变量,因此能够评价是否是符合该规定的规则的使用方式,并且能够容易地修正不符合的部分。
由此,能够实现高品质的模块化编程,因此能够提高由控制装置100执行的用户程序的设计效率及再利用性。
应该认为本次公开的实施方式在所有方面都是例示而不是限制性的。本发明的范围由权利要求书、而不由上述的说明来表示,意在包含与权利要求书等同的意思以及范围内的所有变更。
标号说明
1:控制系统;2:现场总线;4:本地网络;10:现场装置组;12:远程IO装置;14:继电器组;16、124:IO单元;18:图像传感器;20:摄像头;22:伺服驱动器;24:伺服电机;50:项目;52、126:用户程序;53:装置程序;54、346:定义;55:IO单元设定;56:IO-程序I/F;57、59、90:全局变量定义;58:程序间I/F;60:装置模块;62、66:工序模块;63、64、67:工序内模块;70:父模块;71、81:命令;72、82:交接;80、80A、80B:子模块;90A:对象全局变量定义;91、312、322、341、352:变量名;92、313、323、342:数据类型;93:变量定义部;94:分配定义部;95:注释部;96、97:参照模块部;100:控制装置;102、202:处理器;104:芯片组;106、206:主存储装置;108、208:二次存储装置;110、214:本地网络控制器;112、212:USB控制器;114:存储卡接口;116:存储卡;120:现场总线控制器;122:内部总线控制器;200:程序开发装置;204:驱动器;205:存储介质;216:输入部;218:显示部;220:总线;250:开发工具;300、330:结果显示画面;310、340:使用变量一览;311、321、351:模块名;314、324、343:分配;315、325、344:注释;316、326、355:用途;317、327、348:评价结果;318、328:错误消息;320:未使用变量一览;345:每个模块使用状态;347:使用;350:每个模块变量使用状况;353:使用部位;354:类别;356:定义外使用;531、536:程序;532、534、537:功能程序;533、535、538:功能块;539:局部变量定义。
Claims (10)
1.一种程序开发装置,其用于提供由控制装置执行的用户程序的开发环境,其中,
该程序开发装置具有设定单元,所述设定单元针对在包含处于调用关系的第1程序和第2程序的用户程序中使用的1个或多个变量的每一个,受理与来自程序的参照相关的属性的设定,
该设定的属性包含被所述第1程序和所述第2程序中的任意一方参照的第1属性、以及被所述第1程序和所述第2程序均参照的第2属性,
该程序开发装置具有评价单元,所述评价单元对所述用户程序进行分析,针对所述1个或多个变量的每一个,评价基于所设定的与来自程序的参照相关的属性的匹配性。
2.根据权利要求1所述的程序开发装置,其中,
所述评价单元对匹配性的评价包含:设定有所述第1属性的变量是否被与作为参照源的程序不同的程序进行了参照。
3.根据权利要求1或2所述的程序开发装置,其中,
所述评价单元对匹配性的评价包含:设定有所述第2属性的变量是否被所述第1程序和所述第2程序均进行了参照。
4.根据权利要求1~3中的任意一项所述的程序开发装置,其中,
该程序开发装置还具有结果提示单元,所述结果提示单元提示所述评价单元对匹配性的评价结果。
5.根据权利要求4所述的程序开发装置,其中,
所述结果提示单元将由所述评价单元评价为不满足匹配性的变量以与其他变量不同的方式进行显示。
6.根据权利要求4或5所述的程序开发装置,其中,
所述结果提示单元提示所述1个或多个变量分别以输入和输出中的哪个类别在所述用户程序中被使用。
7.根据权利要求1~6中的任意一项所述的程序开发装置,其中,
设定有所述第1属性的变量与特定的IO单元对应。
8.根据权利要求1~5中的任意一项所述的程序开发装置,其中,
所述设定单元针对所述1个或多个变量的每一个,受理所使用的程序的设定。
9.根据权利要求1~8中的任意一项所述的程序开发装置,其中,
所述第1程序和所述第2程序分别包含所使用的变量以及对该变量设定的属性而被模块化。
10.一种用于实现程序开发装置的程序,所述程序开发装置用于提供由控制装置执行的用户程序的开发环境,其中,
所述程序使计算机执行以下步骤:针对在包含处于调用关系的第1程序和第2程序的用户程序中使用的1个或多个变量的每一个,受理与来自程序的参照相关的属性的设定,
该设定的属性包含被所述第1程序和所述第2程序中的任意一方参照的第1属性、以及被所述第1程序和所述第2程序均参照的第2属性,
所述程序使计算机执行以下步骤:对所述用户程序进行分析,针对所述1个或多个变量的每一个,评价基于所设定的与来自程序的参照相关的属性的匹配性。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019-183181 | 2019-10-03 | ||
JP2019183181A JP7404748B2 (ja) | 2019-10-03 | 2019-10-03 | プログラム開発装置およびプログラム開発装置を実現するためのプログラム |
PCT/JP2020/008950 WO2021065033A1 (ja) | 2019-10-03 | 2020-03-03 | プログラム開発装置およびプログラム開発装置を実現するためのプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114556242A true CN114556242A (zh) | 2022-05-27 |
Family
ID=75336853
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080067892.0A Pending CN114556242A (zh) | 2019-10-03 | 2020-03-03 | 程序开发装置及用于实现程序开发装置的程序 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20220365864A1 (zh) |
EP (1) | EP4040242A4 (zh) |
JP (1) | JP7404748B2 (zh) |
CN (1) | CN114556242A (zh) |
WO (1) | WO2021065033A1 (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006099639A (ja) * | 2004-09-30 | 2006-04-13 | Denso Wave Inc | プログラム作成装置,制御装置及びコンピュータプログラム |
JP2011186999A (ja) * | 2010-03-11 | 2011-09-22 | Cats Kk | 浮動小数点表現プログラムの固定小数点表現化支援装置及び支援プログラム |
CN107193249A (zh) * | 2016-03-14 | 2017-09-22 | 欧姆龙株式会社 | 程序开发辅助装置以及程序开发辅助方法 |
CN107193250A (zh) * | 2016-03-14 | 2017-09-22 | 欧姆龙株式会社 | 评价系统和评价方法 |
CN107615192A (zh) * | 2015-08-10 | 2018-01-19 | 欧姆龙株式会社 | 支持装置、方法以及保存有支持程序的记录介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04205355A (ja) | 1990-11-30 | 1992-07-27 | Mitsubishi Electric Corp | プログラム変数の使用検査装置 |
US7275236B1 (en) * | 2000-11-24 | 2007-09-25 | Mitsubishi Denki Kabushiki Kaisha | Method for programming a multiple device control system using object sharing |
EP2597566B1 (en) * | 2010-07-20 | 2019-04-03 | Hitachi, Ltd. | Software maintenance supporting device and electronic control device verified by the same |
JP4957853B1 (ja) * | 2011-03-15 | 2012-06-20 | オムロン株式会社 | Plcのcpuユニット、plc用のシステムプログラムおよびplc用のシステムプログラムを格納した記録媒体 |
JP5942446B2 (ja) * | 2012-02-01 | 2016-06-29 | オムロン株式会社 | サポート装置およびサポートプログラム |
JP6372308B2 (ja) * | 2014-10-29 | 2018-08-15 | オムロン株式会社 | 情報処理装置、情報処理方法、情報処理プログラム、および記録媒体 |
-
2019
- 2019-10-03 JP JP2019183181A patent/JP7404748B2/ja active Active
-
2020
- 2020-03-03 EP EP20872802.2A patent/EP4040242A4/en active Pending
- 2020-03-03 US US17/765,303 patent/US20220365864A1/en active Pending
- 2020-03-03 CN CN202080067892.0A patent/CN114556242A/zh active Pending
- 2020-03-03 WO PCT/JP2020/008950 patent/WO2021065033A1/ja unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006099639A (ja) * | 2004-09-30 | 2006-04-13 | Denso Wave Inc | プログラム作成装置,制御装置及びコンピュータプログラム |
JP2011186999A (ja) * | 2010-03-11 | 2011-09-22 | Cats Kk | 浮動小数点表現プログラムの固定小数点表現化支援装置及び支援プログラム |
CN107615192A (zh) * | 2015-08-10 | 2018-01-19 | 欧姆龙株式会社 | 支持装置、方法以及保存有支持程序的记录介质 |
CN107193249A (zh) * | 2016-03-14 | 2017-09-22 | 欧姆龙株式会社 | 程序开发辅助装置以及程序开发辅助方法 |
CN107193250A (zh) * | 2016-03-14 | 2017-09-22 | 欧姆龙株式会社 | 评价系统和评价方法 |
Also Published As
Publication number | Publication date |
---|---|
JP7404748B2 (ja) | 2023-12-26 |
US20220365864A1 (en) | 2022-11-17 |
EP4040242A1 (en) | 2022-08-10 |
WO2021065033A1 (ja) | 2021-04-08 |
EP4040242A4 (en) | 2023-11-01 |
JP2021060677A (ja) | 2021-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101228488B (zh) | 操作和观测控制设备的方法、相应的操作/观测设备、控制设备及具有这种控制设备的机器 | |
EP3379358A2 (en) | Control system, control device, control program, and control method | |
JP5540877B2 (ja) | 情報処理装置及び情報処理プログラム | |
US7130760B2 (en) | Reporting invalid parameter values for a parameter-based system | |
CN110168456B (zh) | 控制系统、控制装置以及计算机可读存储介质 | |
US20230384766A1 (en) | Information processing apparatus, ladder-program generation apparatus, information processing method, ladder-program generation method, method of manufacturing product, and recording medium | |
US20180365341A1 (en) | Three-Dimensional Cad System Device, and Knowledge Management Method Used in Three-Dimensional Cad | |
Kaiser et al. | Configurable solutions for low-cost digital manufacturing: a building block approach | |
CN114556242A (zh) | 程序开发装置及用于实现程序开发装置的程序 | |
EP4027208A1 (en) | Program development device, project creation method, and program for implementing program development device | |
Alkan et al. | Assessing complexity of component-based control architectures used in modular automation systems | |
JP7211135B2 (ja) | 情報処理装置、情報処理方法及び情報処理システム | |
CN103399817B (zh) | 基于模块建模与模型检测一体化系统检测装置 | |
Mehdi et al. | A simulator testbed for MT-Connect based machines in a scalable and federated multi-enterprise environment | |
CN101145216A (zh) | 电子元件的检验维护系统以及方法 | |
KR102340453B1 (ko) | 정보 처리 장치, 정보 처리 방법 및 기록 매체에 저장된 정보 처리 프로그램 | |
US7739654B2 (en) | Model curation for integrated circuit designs | |
JP2023168186A (ja) | 表示装置及び表示方法 | |
CN116301858A (zh) | 一种电子产品数字化调试工艺工装模型的构建方法 | |
CN117311672A (zh) | 软件模型架构、电池管理系统控制器和车辆 | |
JP2023168185A (ja) | 支援装置及び支援方法 | |
JP2023167382A (ja) | プログラマブルロジックコントローラ、支援装置、及び表示装置、並びに、ロギング方法、支援方法、及び表示方法 | |
CN113435681A (zh) | 信息处理设备、信息处理方法、记录介质和产品制造方法 | |
CN114297141A (zh) | 一种对Fab厂设备生产数据文件处理的方法及系统 | |
CN116166254A (zh) | 一种系统的开发方法、装置、电子设备及存储介质 |
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 |