支持装置以及支持程序的制作方法

文档序号:23729296发布日期:2021-01-26 19:29阅读:88来源:国知局
支持装置以及支持程序的制作方法

[0001]
本公开涉及一种支援工厂自动化(factory automation,fa)的程序开发的支持装置以及开发支援程序。


背景技术:

[0002]
在各种生产现场,使用可编程逻辑控制器(programmable logic controller,plc)等控制装置的fa技术正广泛普及。伴随近年的信息通信技术(information and communication technology,ict)的发展,此种fa领域中的控制装置也逐渐高性能化及高功能化。
[0003]
伴随于此,在与fa控制相关的各种程序的开发中,也存在下述期望,例如想要利用在适合于windows(注册商标)操作系统(operating system,os)的应用程序的开发环境中提供的外部控制,来作为构成适合于非windows且面向fa的os的应用程序的用户接口(user interface,ui)要素。例如存在下述期望,即:想要利用外部控制,来作为构成用于提供ui画面的人机接口(human machine interface,hmi)程序的ui要素,所述ui画面用于经由控制装置来监测或控制现场机器的状态。
[0004]
专利文献1(日本专利特表2015-524126号公报)中公开了:源代码中的不依赖于平台(platform)的源代码使用为了不同的平台和/或版本而标注有注释的源代码的一个或多个部分来进行扩展。
[0005]
现有技术文献
[0006]
专利文献
[0007]
专利文献1:日本专利特表2015-524126号公报


技术实现要素:

[0008]
发明所要解决的问题
[0009]
专利文献1尽管公开了源代码的扩展,但对于可利用适合于通用os的外部控制来作为构成适合于非通用os的程序的ui要素的技术并未公开。
[0010]
本公开的一个目的是提供一种环境,支援不限定适合于hmi程序的构成要素的os的种类而能实现多样化的程序开发。
[0011]
解决问题的技术手段
[0012]
本公开的一例的支持装置支援由fa(工厂自动化)的对象装置所执行的hmi(人机接口)程序的开发,所述支持装置包括:受理部件,受理如下述的ui(用户接口)要素的指定,所述ui要素是构成hmi程序的ui要素,且是适合于第一种类的os的程序代码的ui要素;代码生成部件,由所指定的ui要素,来生成适合于第二种类的os的ui要素的程序代码,所述第二种类的os包含对象装置所具备的os的种类;以及封包(wrapper)生成部件,生成如下述的封包程序,所述封包程序包含所生成的适合于第二种类的os的程序代码、及指令代码,所述指令代码在满足对象装置所具有的os并非第一种类的os这一条件的情况下,指令包含所述程
序代码的执行模块的生成,作为适合于第一种类的os的程序代码的ui要素,由编入有封包程序的hmi程序生成能够执行代码的程序。
[0013]
根据本公开,能够实现一种程序开发的支援环境,作为hmi程序的构成要素,能够并行地开发包含适合于第一种类的os的ui要素的hmi程序、及包含适合于含有os的第二种类的os的ui要素的hmi程序。
[0014]
由此,若第一种类的os为通用的os,则也能够将在适合于通用os的应用的开发环境中提供的ui要素,利用于fa领域的hmi程序的开发。
[0015]
所述公开中,封包生成部件进而使指令代码中包含如下所述的代码,所述代码是在满足对象装置所具有的os为第一种类的os这一条件的情况下,指令如下述的hmi程序的执行模块的生成,所述hmi程序包含适合于第一种类的os的程序代码的ui要素。
[0016]
根据本公开,在由对象装置执行hmi程序的情况下,若对象装置具备第一种类的os,则生成包含适合于第一种类的os的程序代码的ui要素的hmi程序的执行模块,而且,若对象装置具备第二种类的os,则生成包含适合于第二种类的os的程序代码的ui要素的hmi程序的执行模块。
[0017]
由此,能够由一个hmi程序的程序代码,来生成适合于第一种类的os的执行模块与适合于第二种类的os的执行模块。因此,无须准备适合于第一种类的os的程序开发环境与适合于第二种类的os的程序开发环境这两者,而能够生成适合于各种类的os的一个hmi程序。
[0018]
所述公开中,代码生成部件提取适合于第一种类的os的程序代码的ui要素的属性中的、与适合于第二种类的os的程序代码的ui要素的属性一致的属性,由包含所提取的属性的ui要素的程序代码,来生成适合于第二种类的os的ui要素的程序代码。
[0019]
根据所述公开,使用适合于第一种类的os的程序代码的ui要素的属性,来生成适合于第二种类的os的ui要素的程序代码。因此,不需要新的信息,便能够生成适合于第二种类的os的ui要素的程序代码。
[0020]
所述公开中,还包括:输出ui要素的选择候选的一览的部件;以及登记部件,在一览中,登记受理部件所受理的、适合于第一种类的os的程序代码的ui要素,使用由用户从一览中选择的ui要素来编辑hmi程序。
[0021]
根据所述公开,通过将适合于第一种类的os的程序代码的ui要素登记到ui要素的选择候选的一览中,从而用户能够从一览中选择所述ui要素,并使用所选择的ui要素来作为构成hmi程序的ui要素。
[0022]
所述公开中,封包生成部件在生成能够执行代码的程序时,生成封包程序。
[0023]
根据所述公开,能够在生成经编辑的hmi程序的能够执行代码的程序时,生成封包程序。
[0024]
所述公开中,封包生成部件在由登记部件将适合于第一种类的os的程序代码的ui要素登记到一览中时,生成封包程序。
[0025]
根据所述公开,能够在将适合于第一种类的os的程序代码的ui要素登记到一览中时,生成封包程序。
[0026]
所述公开中,当对象装置所具备的os的种类并非第一种类时,代码生成部件由所指定的ui要素,来生成适合于第二种类的os的ui要素的程序代码。
[0027]
根据所述公开,若对象装置的os的种类符合第一种类,则能够省略代码生成部件对程序代码的生成及封包生成部件对封包程序的生成。
[0028]
本公开的一例的支持程序支援由fa(工厂自动化)的对象装置所执行的hmi(人机接口)程序的开发,所述支持程序使计算机执行下述步骤:受理如下述的ui(用户接口)要素的指定,所述ui要素是构成hmi程序的ui要素,且是适合于第一种类的os的程序代码的ui要素;由所指定的ui要素,来生成适合于第二种类的os的ui要素的程序代码;生成如下述的封包程序,所述封包程序包含所生成的适合于第二种类的os的程序代码、及如下述的指令代码,所述指令代码在满足对象装置所具有的os并非第一种类的os这一条件的情况下,指令包含所述程序代码的执行模块的生成;以及作为适合于第一种类的os的程序代码的ui要素,由编入有封包程序的hmi程序生成能够执行代码的程序。
[0029]
根据本公开,能够实现一种程序开发的支援环境,作为hmi程序的构成要素,能够并行地开发包含适合于第一种类的os的ui要素的hmi程序、及包含适合于含有os的第二种类的os的ui要素的hmi程序。
[0030]
由此,若第一种类的os为通用的os,则也能够将在适合于通用os的应用的开发环境中提供的ui要素,利用于fa领域的hmi程序的开发。
[0031]
发明的效果
[0032]
根据本公开,能够提供一种程序开发的支援环境,不限定适合于hmi程序的构成要素的os的种类而能实现多样化。
附图说明
[0033]
图1是示意性地表示本发明的实施方式的系统结构的图。
[0034]
图2是示意性地表示本发明的实施方式的控制装置100的硬件结构的一例的图。
[0035]
图3是示意性地表示本发明的实施方式的支持装置200的硬件结构的一例的图。
[0036]
图4是示意性地表示本发明的实施方式的程序的开发环境与执行环境的整体结构的一例的图。
[0037]
图5是示意性地表示本发明的实施方式的支持装置200中的开发环境与执行环境的具体结构例的图。
[0038]
图6是示意性地表示本发明的实施方式的用于外部控制的转换处理的模块结构的一例的图。
[0039]
图7是示意性地表示本发明的实施方式的工具箱管理的处理概要的图。
[0040]
图8是示意性地表示本发明的实施方式的生成i/f转换源代码的处理的一例的图。
[0041]
图9是示意性地表示本发明的实施方式的i/f转换对象目标的一例的图。
[0042]
图10是示意性地表示本发明的实施方式的hmi程序的编辑(edit)时的显示画面的一例的图。
[0043]
图11是例示本发明的实施方式的hmi程序112的内部代码的一部分的图。
[0044]
图12是概略地表示本发明的实施方式的将外部控制501导入至开发环境42的处理的一例的流程图。
[0045]
图13是表示本发明的实施方式的编辑及编译的处理的一例的流程图。
[0046]
图14是表示本发明的实施方式的hmi程序执行时的外部控制的处理的一例的流程
图。
[0047]
图15是表示本发明的实施方式的控制装置100的软件结构的一例的示意图。
具体实施方式
[0048]
一边参照附图,一边详细说明本发明的实施方式。另外,对于图中的相同或相当的部分,标注相同的符号并不再重复其说明。
[0049]
<a.适用例>
[0050]
首先,参照图1来说明适用本发明的场景的一例。图1是示意性地表示本发明的实施方式的系统1的结构的图。本实施方式的支持装置200是支援由fa的对象装置所执行的hmi程序的开发的装置,例如能够适用通用的计算机。对象装置包含作为控制装置的工业计算机(industrial personal computer,ipc)100-1及plc 100-2。控制装置对作为任意控制对象的、设在现场的设备300(例如制造装置或设备)进行控制。
[0051]
支持装置200对hmi程序112进行编辑,以及对编辑后的hmi程序112进行编译。通过编译,由hmi程序112生成执行格式程序,所述执行格式程序包含对象装置可执行的程序代码。对象装置通过执行从支持装置200传输的执行格式的hmi程序112,从而显示hmi画面。
[0052]
支持装置200在从用户受理了ui要素的指定时,由所指定的ui要素来生成适合于第二种类的os的ui要素的程序代码,所述ui要素是构成hmi程序112的ui(用户接口)要素,且是适合于第一种类的os的程序代码的ui要素。支持装置200生成相当于封包程序的i/f转换对象目标425b,所述封包程序包含所生成的适合于第二种类的os的程序代码、及指令代码,所述指令代码在满足对象装置所具有的os并非第一种类的os这一条件的情况下,指令包含所述程序代码的执行模块的生成。支持装置200在编译时,由编入有所述封包程序(i/f转换对象目标425b)的hmi程序112来生成可执行格式的程序,以作为适合于第一种类的os的程序代码的ui要素。
[0053]
图1的结构中,在从支持装置200将hmi程序112传输至对象装置,并由对象装置予以执行的情况下,通过执行封包程序,从而在对象装置具备第一种类的os的情况下,例如在ipc100-1中,生成包含适合于第一种类的os的程序代码的ui要素(例如外部控制501)的hmi程序的执行模块600。而且,在对象装置具备第二种类的os的情况下,例如在plc 100中,生成包含适合于第二种类的os的程序代码的ui要素(外部控制501的代替控制502)的hmi程序的执行模块700。
[0054]
通过像这样执行封包程序,从而能够由同一hmi程序112的源代码来生成适合于包含外部控制501的windows的执行模块、与适合于包含并非外部控制501的代替控制502的非windows的os的执行模块。
[0055]
由此,在支持装置200中,即使不准备适合于第一种类的os的程序开发环境与适合于第二种类的os的程序开发环境这两者,也能够开发可适合于对象装置所具备的种类的os的hmi程序112。
[0056]
所述第一种类的os典型的是例如windows(注册商标)等的通用os,第二种类的os是与第一种类的os为不同种类的os,典型的是适用于面向fa的程序的os。例如包含非windows的linux(注册商标)、unix(注册商标)等。而且,第一种类的os与第二种类的os也可为版本不同的os。例如也可为,第一种类的os为windows10(注册商标),而第二种类的os为
windowsce(注册商标)。
[0057]
另外,本实施方式中,适合于os的程序(或程序代码)表示具有可在所述os下进行解释及执行的代码体系的程序或程序代码。
[0058]
以下,作为本发明的更具体的应用例,详细说明本实施方式的支持装置200所提供的hmi程序的开发环境。
[0059]
<b.系统结构>
[0060]
图1是示意性地表示本发明的实施方式的系统结构的图。参照图1,fa的系统1对作为控制装置的ipc(工业计算机)100-1及plc 100-2、多个设备300以及支持装置200进行网络连接。控制装置为一种计算机,执行根据制造装置或制造设备等而设计的控制程序等用户程序。此种用户程序是利用在控制装置之外另行准备的作为开发环境的支持装置200来开发。
[0061]
支持装置200例如为通用的计算机,提供综合开发系统1的各种程序的环境,并且提供对控制装置传输用户程序的功能。以下,将ipc 100-1及plc 100-2总称作控制装置100。设备300对作为控制对象的未图示的现场机器进行网络连接。控制对象例如可包含传感器、致动器等。
[0062]
支持装置200与控制装置100之间例如采用遵照通用串行总线(universal serial bus,usb)的传输路。控制装置100与设备300的传输路优选采用例如依据时效性网络(time-sensitive networking,tsn)规格而保证数据到达时间的总线或网络。例如可采用作为机器控制用网络的一例的ethercat(注册商标)。
[0063]
在支持装置200中开发的用户程序例如包含:用于实施供控制装置100控制设备300的控制运算的控制程序、及用于实施hmi处理的hmi程序等各种程序。这些用户程序例如可包含适合于linux(注册商标)、unix(注册商标)等非windows的程序或者适合于windows的程序,但os的种类并不限定于这些。所开发的程序从支持装置200传输至控制装置100而由控制装置100的处理器予以执行。
[0064]
控制运算包含设备300从现场机器收集的数据或所生成的数据的处理、生成针对设备300的指令等数据的处理(运算处理)、将所生成的输出数据发送至对象设备300的处理(输出处理)等。
[0065]
hmi处理包含收集fa的各种机器(控制装置100、设备300及现场机器)的状态等信息、利用hmi画面来输出收集信息、以及经由hmi画面等来受理用于操作各种机器的用户设定(指令、值等的设定)操作等处理。
[0066]
另外,在图1所示的系统1中,支持装置200是独立于控制装置100而配设,但支持装置200也可一体地配设于控制装置100。即,支持装置200所具有的功能可内置于控制装置100。
[0067]
<c.控制装置100的硬件结构例>
[0068]
图2是示意性地表示本发明的实施方式的控制装置100的硬件结构的一例的图。参照图2,控制装置100包含中央处理器(central processing unit,cpu)或微处理器(micro processing unit,mpu)等处理器102、芯片组(chip set)104、主存储器106、快闪存储器(flash memory)108、外部网络控制器116、存储卡接口118、内部总线控制器122以及现场总线控制器124。
[0069]
处理器102读出保存在快闪存储器108中的系统程序110及用户程序,并在主存储器106中展开而执行,由此来实现对设备300或现场机器等控制对象的控制处理或者hmi处理。
[0070]
系统程序110包含用于提供plc 100的基本功能例如数据的输入/输出处理或执行时机控制等的命令代码。用户程序包含根据控制对象而任意设计的控制程序111及hmi程序112以及程序库113。控制程序111包含用于执行序列控制的序列程序及用于执行运动控制的运动程序等。hmi程序112例如包含与各hmi画面对应的程序。在程序库113中,以可执行代码(例如中间代码)的形态而登记有外部控制501、构成hmi程序的用户接口(user interface,ui)要素及构成控制程序的函数等单位程序等。ui要素包含后述的图5的用户所定义的用户定义ui 1163及由系统所定义的系统定义ui 1162的可执行代码。
[0071]
芯片组104通过控制各组件,从而实现作为控制装置100整体的处理。
[0072]
内部总线控制器122是在控制装置100与通过内部总线而连结的i/o单元14之间交换数据的接口。现场总线控制器124是在控制装置100与通过未图示的现场总线而连结的i/o单元16之间交换数据的接口。内部总线控制器122及现场总线控制器124获取向对应的i/o单元14及16分别输入的状态值,并且将处理器102中的运算结果从对应的i/o单元14及16分别输出作为指令值。
[0073]
外部网络控制器116对通过各种有线/无线网络的数据交换进行控制。存储卡接口118是可装卸存储卡120地构成,能够对存储卡120写入数据且从存储卡120读出数据。控制装置100经由外部网络控制器116或存储卡接口118来与支持装置200交换数据。
[0074]
也可将通过控制装置100执行程序来提供的功能的一部分或全部作为专用的硬件电路而安装。
[0075]
<d.支持装置200的硬件结构例>
[0076]
接下来,对支持装置200的硬件结构例进行说明。图3是示意性地表示本发明的实施方式的支持装置200的硬件结构的一例的图。参照图3,支持装置200既可为固定型,或者也可在配置控制装置100的制造现场以便携性优异的笔记型个人计算机的形态而提供。
[0077]
支持装置200包含:cpu 202,执行包含os的各种程序;只读存储器(read only memory,rom)204,保存基本输入输出系统(basic input output system,bios)或各种数据;随机存取存储器(random access memory,ram)206,提供用于保存cpu 202中的程序执行所需的数据的作业区域;以及硬盘(hard disk drive,hdd)208,非易失地保存由cpu 202所执行的程序等。
[0078]
支持装置200还包含:包含键盘210及鼠标212的输入部211,受理用户对支持装置200的操作;以及显示器214,用于将信息提示给用户。支持装置200包含用于与控制装置100进行通信的通信接口218。输入部211也可作为与显示器214一体地构成的触控面板而提供。
[0079]
支持装置200包含记录介质读取装置217,所述记录介质读取装置217用于从记录介质250读取保存于其中的支持程序。所述支持程序可包含实现程序开发环境的程序。支持装置200的各部经由总线220来相互通信。
[0080]
<e.控制装置100的软件结构>
[0081]
图15是表示本发明的实施方式的控制装置100的软件结构的一例的示意图。图15例如表示ipc 100-1的结构例。
[0082]
参照图15,在控制装置100中,管理程序(hypervisor)对控制装置100的硬件资源进行管理,并且对实时os 114及后述的windows512等通用os 1161,一边判优一边分配这些硬件资源,由此在共同的硬件资源上执行彼此独立的实时os 114及通用os 1161。即,使用管理程序来实现执行不同种类的os的虚拟环境。实时os 114与通用os 1161之间,经由管理程序而构成逻辑网络。
[0083]
实时os 114中,执行包含序列程序的控制程序111。在控制程序111的执行时,任务调度器(task scheduler)1142、程序管理器(program manager)1144、输入/输出(input/output,i/o)控制进程1146相联系。控制程序111被预先转换成可执行代码,在执行时,与任务调度器1142、程序管理器1144、i/o控制进程1146相联系,并反复进行来自控制对象的信号的获取、控制逻辑的执行、执行结果的反映(致动器的控制)。
[0084]
在通用os 1161下,作为任意用户应用的例如包含hmi程序112的用户应用1164及通用应用1162一边调用程序库113的各种程序一边执行。通用应用1162是在通用os 1161中可执行的标准应用,通过与hmi程序112等用户应用相联系,从而能够使用通用的处理或功能,以更少的工时来构建系统。
[0085]
程序库113以包含可执行代码的可执行格式而包括系统定义ui 1162、用户定义ui 1163及外部控制501。
[0086]
而且,在通用os 1161下,可生成适合于第一种类的os(通用os)的执行模块600或适合于第二种类的os(非通用os)的执行模块700。
[0087]
<f.程序开发环境与执行环境>
[0088]
图4是示意性地表示本发明的实施方式的程序的开发环境与执行环境的整体结构的一例的图。参照图4,开发环境42是在支持装置200中提供,执行环境47是在控制装置100中提供。图4中,开发环境42与执行环境47是配置于不同的装置,但也可利用同一装置来提供。另外,构成开发环境42的各种程序及数据被保存在支持装置200的ram 206等存储部中。
[0089]
参照图4,开发环境42与执行环境47是在windows40及.net的框架(framework)41上提供。开发环境42例如包含基于vb.net(visual basic.net)的脚本(script)的hmi程序语言处理系统46、面向hmi的ui要素的处理系统45、ui要素的编译器43及hmi程序的编译器44。执行环境47包括用于执行hmi程序的程序库等包含可执行代码的组件(assembly)49。本实施方式中,在开发环境中,由hmi语言处理系统的后述的编辑器(editor)309及面向hmi的ui要素的处理系统45所生成的程序源代码是通过ui要素的编译器43及编译器44来进行编译。通过编译,源代码成为包含可执行代码(中间代码)的可执行格式的文件。编译后的hmi程序在面向hmi的执行环境中,利用组件49而成为执行模块,从而对执行模块进行执行。执行模块是通过将ui要素的可执行格式的对象目标链接至可执行格式的hmi程序112而提供。
[0090]
图5是示意性地表示本发明的实施方式的支持装置200中的开发环境与执行环境的具体结构例的图。参照图5,在支持装置200中,执行在pc的硬件资源下执行的windows40和在windows40下提供的fa开发环境507的各种程序下,提供hmi程序112的开发环境42的程序。这些程序包含开发环境42中的外部控制转换器425、编译器506及编辑器309。包含这些用于实现hmi程序112的开发环境的程序的支持程序710被保存在ram 206中。
[0091]
外部控制转换器425将作为用于构成适合于windows的程序的ui要素而提供的外部控制501,转换成用于可在非windows的os下执行的代码。编译器506包含图4的ui要素的
编译器43及编译器44。编辑器309受理用户操作,依据所受理的操作内容来编辑(制作)hmi程序112。而且,在fa开发环境507下,也提供开发控制程序111的环境。外部控制501、hmi程序112及控制程序111也被保存在ram 206中。
[0092]
控制程序111包含遵循用于plc的编程标准即国际电工委员会(international electrotechnical commission,iec)的程序与各种程序库。hmi程序112包含用户所定义的ui或系统所定义的ui,以作为构成所述hmi程序112的ui要素。另外,用户在编辑时,能够选择外部控制501来作为构成hmi程序112的ui要素。
[0093]
当在fa开发环境507下启动编译器506时,hmi程序112受到编译,由此,由hmi程序112的源代码来生成可执行代码。可执行代码的hmi程序112被传输给控制装置100。
[0094]
在控制装置100的执行环境中,通过在windows512下启动的运行时间(runtime)513,来支援可执行代码的hmi程序112的执行。运行时间513由可执行代码的hmi程序112来生成适合于windows512的执行模块。windows512通过对hmi程序112的执行模块的代码进行解释及执行,从而实施对包含各种ui要素的hmi画面进行提示等的hmi处理。
[0095]
而且,经编译的控制程序111的可执行代码是通过实时os 114来解释及执行,从而实施控制处理。
[0096]
控制装置100中,在实施hmi处理的hmi程序112与实施控制处理的控制程序111之间,能够经由两者的os及逻辑网络(参照图15)来交换数据。由此,例如在执行环境中,能够通过hmi画面的ui要素的显示形态(例如显示色等),来对通过控制处理而获取的作为控制对象的现场机器的状态(传感器的输出等)进行提示。而且,能够使用对hmi画面的ui要素进行操作而输入的数据,作为通过控制处理来对作为控制对象的现场机器的状态进行变更的数据。
[0097]
<g.用于外部控制转换的结构>
[0098]
图6是示意性地表示本发明的实施方式的用于外部控制的转换处理的模块结构的一例的图。参照图6,开发环境42包含依据从经由输入部211的用户操作所受理的编译指示421a来启动编译器506的编译执行部421、os种类保持部424以及外部控制转换器425。编译器506包含:hmi编译器422,对包含ui要素的hmi程序112进行编译;以及winapp编译器423,对外部控制501进行编译。
[0099]
os种类保持部424获取控制装置100的os种类424a并保持(存储)到ram 206等存储器中。os种类保持部424从经由输入部211的用户操作的内容中获取os种类424a,或者通过从控制装置100接收而获取os种类424a。为了获取os种类424a,支持装置200例如依据超文本传输协议(hypertext transfer protocol,http)等通信协议来与控制装置100进行通信。
[0100]
外部控制转换器425在依据经由输入部211的用户操作而受理了外部控制501的导入指示425k时,对保存在ram 206中的外部控制501进行访问,由外部控制501的代码来生成接口(interface,i/f)转换源代码425a并保存到ram 206中。i/f转换源代码425a包含使适合于windows的外部控制501的i/f部分的源代码适合于非windows的ui要素的代码。图6的各部的运行的详情将在图12的说明中后述。
[0101]
<h.编辑器处理>
[0102]
图7是示意性地表示本发明的实施方式的工具箱管理的处理概要的图。图10是示
意性地表示本发明的实施方式的hmi程序的编辑(edit)时的显示画面的一例的图。图11是例示本发明的实施方式的hmi程序112的内部代码的一部分的图。
[0103]
(h1.编辑处理)
[0104]
本实施方式中,编辑器309在对hmi程序112进行编辑时,例如使图10所示的编辑器画面显示于显示器214。本实施方式中,hmi程序112包含与hmi画面对应的每个页面的程序。hmi程序112包含多个页面,在编辑器画面上,显示hmi程序的页面461与工具箱462。工具箱462的数据例如被保存在ram 206中,在hmi程序的编辑时,由编辑器309从ram 206读出而予以显示。
[0105]
参照图10,工具箱462相当于通过显示于显示器214而输出ui要素的选择候选的一览的部件。具体而言,在所述一览中,包含能够用于hmi程序112的编辑的ui要素的名称等标识符的一览。能够登记在工具箱462中的ui要素可包含用于fa的hmi的用户定义ui或系统定义ui与外部控制501。ui要素例如可包含按钮(button)、灯(lamp)等图形用户接口(graphical user interface,gui)要素。
[0106]
在对页面461进行编辑时,用户操作输入部211来从工具箱462中选择ui要素,通过拖拽(drag)操作使所选择的ui要素移动到页面461的所期望的位置为止并进行放开(drop)操作。编辑器309受理拖拽/放开操作而对页面461进行编辑(制作),以使所选择的ui要素被编入至所述页面461的hmi程序中。用户通过显示器214的页面461的切换操作,能够切换显示到其他的页面461并同样地进行编辑。这样,用户即使不输入程序代码,也能进行在页面461上配置ui要素的操作,由此,能够对hmi程序112进行编辑。
[0107]
例如,在选择了外部控制501来作为构成页面461的ui要素的情况下,在页面461的源代码中,追加用于调用i/f转换后的外部控制501的代码。例如,编辑器309如图11那样,追加使用对外部控制501的名称追加有converted_的“converted_samplecontrol”这一名称的外部控制501的调用代码。
[0108]
(h2.工具箱462的登记)
[0109]
接下来,对用于在所述编辑处理中所用的工具箱462中登记外部控制501的结构进行说明。
[0110]
参照图7,开发环境42包括外部控制文件选择部427、包括封包生成部428的外部控制转换器425及工具箱管理部391。用户操作输入部211来从功能菜单426中选择外部控制501的导入功能。外部控制文件选择部427基于依据用户的所述选择操作的外部控制导入指示425k,从ram 206中检索所选择的外部控制501的可执行代码的文件(“samplecontrol.dll”)。
[0111]
外部控制转换器425向工具箱管理部391输出将外部控制501的文件名即“samplecontrol”登记到工具箱462中的登记委托。工具箱管理部391相当于登记部件,所述登记部件将通过经由输入部211的用户操作而受理的适合于windows的程序代码的ui要素即外部控制501,登记到工具箱462的ui要素的候选的一览中。此时,工具箱管理部391将外部控制501的名称“samplecontrol”登记到工具箱462中。由此,能够将用户所选择的外部控制501登记到工具箱462的一览中,以作为能够用于hmi程序112的编辑的ui要素的候选。
[0112]
<i.外部控制转换处理>
[0113]
图8是示意性地表示本发明的实施方式的生成i/f转换源代码的处理的一例的图。
图9是示意性地表示本发明的实施方式的i/f转换对象目标的一例的图。
[0114]
(i1.i/f转换源代码的生成)
[0115]
外部控制转换器425实施i/f转换源代码的生成处理。具体而言,外部控制转换器425由登记在工具箱462中的外部控制501的文件“samplecontrol.dll”的代码,来生成i/f转换源代码425a。而且,外部控制转换器425对i/f转换源代码425a进行编译而生成i/f转换对象目标425b。i/f转换对象目标425b具有用于调用外部控制501的文件“samplecontrol.dll”的指令代码(脚本等)。
[0116]
首先,参照图8,外部控制转换器425读取外部控制501的文件“samplecontrol.dll”的代码,对所读取的代码进行分析,基于分析的结果来从代码中提取i/f(接口)425c。而且,外部控制转换器425对i/f 425c与所需i/f 425d进行比较。所述“i/f”可包含外部控制501或ui要素所具有的属性例如显示的属性(颜色、尺寸等)、或者用于与其他ui要素或其他程序等授受数据的通信属性等。所需i/f425d表示包含作为fa的hmi的ui要素所需的属性的i/f。更典型的是,表示包含以适合于非windows的os的程序代码所示的ui要素所具有的属性的i/f。另外,所需i/f 425d的数据被保持(保存)在ram 206等中。
[0117]
外部控制转换器425基于i/f比较的结果,提取i/f425c所具有的属性中的、与所需i/f425d中所含的属性一致的属性(属性的种类与数量)。外部控制转换器425使用提取(一致)属性来生成源代码425g,所述源代码425g用于将外部控制501提示为fa的hmi的ui要素,即适合于非windows的os的ui要素。i/f转换源代码425a包含作为调用目标的外部控制501的名称425e与转换后的(所生成的)源代码425g。
[0118]
(i2.i/f转换对象目标425b的生成)
[0119]
外部控制转换器425的封包生成部428通过对i/f转换源代码425a进行编译,而生成例如图9的i/f转换对象目标425b。图9的i/f转换对象目标425b具有封包程序的格式。即,i/f转换对象目标425b包含windows可解释及执行的源代码425h、可通过非windows的os来解释及执行的源代码425g与封包部500。
[0120]
源代码425h相对于windows512下的runtaime(运行时间)513,包含作为调用目标的外部控制501的名称、与指示调用并执行所述外部控制501的代码。
[0121]
源代码425g相对于非windows的os下的运行时间,包含执行由源代码425h来生成适合于非windows的os的ui要素的对象目标模块的代码。
[0122]
i/f转换对象目标425b也可以说是通过执行源代码425g而转换成包含可执行代码的对象目标模块的中间代码,而非外部控制501的“samplecontrol.dll”那样的、相对于hml程序的执行模块而动态地链接的包含可执行代码的文件。
[0123]
封包部500包含下述代码,所述代码在被执行时,使控制装置100的运行时间判断os种类,并基于所判断的os种类,来指示是否生成基于源代码425h的执行模块的切换。更具体而言,当所述代码被执行时,若满足os种类为windows这一条件,则生成包含由控制装置100的os(windows512)所提供的外部控制501的hmi程序112的执行模块。与此相对,若满足所判断的os种类为非windows这一条件,则执行源代码425g。由此,为了实现代替外部控制501的控制(ui要素),而生成包含源代码425g的可执行代码的hmi程序112的执行模块。
[0124]
通过像这样执行封包部500,从而能够由同一hmi程序112的源代码,来生成适合于包含外部控制501的windows的执行模块、与适合于包含并非外部控制501的代替外部控制
的非windows的os的执行模块。
[0125]
本实施方式中,外部控制转换器425生成i/f转换对象目标425b的时期并无特别限定。例如,外部控制转换器425在由编译器506从hmi程序112生成执行格式程序时,生成i/f转换对象目标425b(封包程序)。
[0126]
由此,能够使i/f转换对象目标425b的生成只要一次即可。即,在hmi程序112的编辑时,有通过试行错误来频繁地进行构成hmi程序112的ui要素的变更这一背景。考虑到此种背景,若在编辑时生成i/f转换对象目标425b,则所述生成将相对较频繁地反复进行。与此相对,若在对hmi程序112进行编译时生成i/f转换对象目标425b,则如上所述,能够使i/f转换对象目标425b的生成只要编译时的一次即可。
[0127]
而且,作为其他时期,外部控制转换器425也能够在由工具箱管理部391将外部控制501登记到工具箱462中时,生成i/f转换对象目标425b。此时,在hmi程序112的编译时不需要生成i/f转换对象目标425b,因此能够缩短编译的所需时间。
[0128]
<j.外部控制导入处理>
[0129]
图12是概略地表示本发明的实施方式的将外部控制501导入至开发环境42的处理的一例的流程图。依据图12的流程图,一边参照图7,一边对导入外部控制501来作为开发环境42中可利用的ui要素的处理进行说明。
[0130]
参照图12,外部控制转换器425在从经由输入部211的用户操作而受理外部控制导入指示425k时(步骤s1),获取由os种类保持部424所保持的对象装置的os种类(步骤s3),判断os种类是否表示windows(步骤s5)。外部控制转换器425在判断为os种类表示非windows时(步骤s5中为否),结束一连串的处理。
[0131]
另一方面,外部控制转换器425在判断为os种类表示windows时(步骤s5中为是),外部控制转换器425依据图8的流程来生成i/f转换源代码425a,所生成的辊转换器425依据图8的流程来将i/f转换源代码425a保存至ram 206中(步骤s7)。
[0132]
外部控制转换器425对i/f转换源代码425a进行编译,从i/f转换源代码425a中获取i/f转换对象目标425b(步骤s9)。
[0133]
外部控制转换器425将i/f转换对象目标425b的登记委托给工具箱管理部391(步骤s11)。工具箱管理部391在收到登记委托时,从i/f转换对象目标425b中提取外部控制501的名称(步骤s13),将所提取的外部控制501的名称追加(登记)到ram 206的工具箱462的数据中(步骤s15)。随后,处理结束。另外,对于登记到工具箱462中的外部控制501的名称,关联有ram 206的对应的i/f转换对象目标425b。
[0134]
<k.编辑及编译处理>
[0135]
图13是表示本发明的实施方式的编辑及编译的处理的一例的流程图。依据图13的流程图,对在开发环境42下通过编辑器309所进行的hmi程序的编辑与hmi程序的编译进行说明。在编辑时,如图10那样,在显示器214上显示hmi程序112与工具箱462。
[0136]
参照图13,编辑器309经由输入部211来受理用于将用户从工具箱462中选择的名称的外部控制作为ui要素而编入至hmi程序中的、拖拽/放开操作(步骤s21)。
[0137]
编辑器309依据所受理的用户操作内容,将与用户所选择的外部控制相关联的ram 206的i/f转换对象目标425b所具有的对象目标名作为调用目标对象目标名,而反映至hmi程序112的项目数据(project data)中(步骤s23)。由此,能够将外部控制作为构成所述程
disk-read only memory,cd-rom)、rom、ram及记录介质250等计算机可读取的记录介质中,而作为程序产品来提供。或者,也能够记录在内置于支持装置200的hdd 208等记录介质中来提供程序。而且,也能够通过从未图示的网络经由通信接口218来下载而提供程序。
[0153]
<n.附注>
[0154]
如上所述的本实施方式包含如下所述的技术思想。
[0155]
[结构1]
[0156]
一种支持装置(200),支援由fa(工厂自动化)的对象装置(100)所执行的hmi(人机接口)程序(112)的开发,所述支持装置包括:
[0157]
受理部件(211),受理ui(用户接口)要素的指定,所述ui要素是构成所述hmi程序的ui要素,且是适合于第一种类的os的程序代码的ui要素;
[0158]
代码生成部件(425),由所述指定的ui要素,来生成适合于第二种类的os的ui要素的程序代码(425a);以及
[0159]
封包生成部件(428),生成封包程序(425b),所述封包程序(425b)包含所生成的适合于所述第二种类的os的程序代码、及指令代码(500),所述指令代码(500)在满足所述对象装置所具有的os并非所述第一种类的os这一条件的情况下,指令包含所述程序代码的执行模块的生成,
[0160]
作为适合于所述第一种类的os的程序代码的ui要素,由编入有所述封包程序的所述hmi程序生成可执行代码的程序。
[0161]
[结构2]
[0162]
根据结构1所述的支持装置,其中
[0163]
所述封包生成部件进而使所述指令代码中包含代码(425e),所述代码(425e)是在满足所述对象装置所具有的os为所述第一种类的os这一条件的情况下,指令hmi程序的执行模块的生成,所述hmi程序包含适合于所述第一种类的os的程序代码的ui要素。
[0164]
[结构3]
[0165]
根据结构1或2所述的支持装置,其中
[0166]
所述代码生成部件提取适合于所述第一种类的os的程序代码的ui要素的属性中的、与适合于所述第二种类的os的程序代码的ui要素的属性一致的属性,由包含所提取的属性的ui要素的程序代码,来生成适合于所述第二种类的os的ui要素的程序代码。
[0167]
[结构4]
[0168]
根据结构1至3中任一项所述的支持装置,还包括:
[0169]
部件(462),输出所述ui要素的选择候选的一览;以及
[0170]
登记部件(391),在所述一览中,登记所述受理部件所受理的、适合于所述第一种类的os的程序代码的ui要素,
[0171]
使用由用户从所述一览中选择的ui要素来编辑所述hmi程序。
[0172]
[结构5]
[0173]
根据结构4所述的支持装置,其中
[0174]
所述封包生成部件在由所述执行格式生成部件生成所述可执行代码的程序时,生成所述封包程序。
[0175]
[结构6]
[0176]
根据结构4所述的支持装置,其中
[0177]
所述封包生成部件在由所述登记部件将适合于所述第一种类的os的程序代码的ui要素登记到所述一览中时,生成所述封包程序。
[0178]
[结构7]
[0179]
根据结构1至6中任一项所述的支持装置,其中
[0180]
当所述对象装置所具备的os的种类并非所述第一种类时,所述代码生成部件由所述指定的ui要素,来生成适合于第二种类的os的ui要素的程序代码。
[0181]
[结构8]
[0182]
一种支持程序(710),支援由fa(工厂自动化)的对象装置(100)所执行的hmi(人机接口)程序(112)的开发,
[0183]
所述支持程序使计算机(200)执行:
[0184]
步骤(s21),受理ui(用户接口)要素的指定,所述ui要素是构成所述hmi程序的ui要素,且是适合于第一种类的os的程序代码的ui要素;
[0185]
步骤(s7),由所述指定的ui要素,来生成适合于第二种类的os的ui要素的程序代码;
[0186]
步骤(s9),生成封包程序,所述封包程序包含所生成的适合于所述第二种类的os的程序代码、及指令代码,所述指令代码在满足所述对象装置所具有的os并非所述第一种类的os这一条件的情况下,指令包含所述程序代码的执行模块的生成;以及
[0187]
步骤(s27),作为适合于所述第一种类的os的程序代码的ui要素,由编入有所述封包程序的所述hmi程序生成可执行代码的程序。
[0188]
应认为,此次公开的实施方式在所有方面仅为例示,并非限制者。本发明的范围是由权利要求而非所述说明所示,且意图包含与权利要求均等的含义及范围内的所有变更。
[0189]
符号的说明
[0190]
1:系统
[0191]
42:开发环境
[0192]
100:控制装置
[0193]
200:支持装置
[0194]
309:编辑器
[0195]
391:工具箱管理部
[0196]
421:编译执行部
[0197]
421a:编译指示
[0198]
424:种类保持部
[0199]
424a:os种类
[0200]
425:外部控制转换器
[0201]
425a、425g:i/f转换源代码
[0202]
425b:i/f转换对象目标
[0203]
428:封包生成部
[0204]
462:工具箱
[0205]
500:封包部
[0206]
501:外部控制
[0207]
502:代替控制
[0208]
600、700:执行模块
[0209]
710:支持程序
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1