本公开涉及用于对下载到控制器的软件的利用进行管理的技术。
背景技术:
在各种生产现场中,使生产工序自动化的fa(factoryautomation:工厂自动化)系统正在普及。fa系统由各种产业用的驱动设备构成。产业用的驱动设备例如包含用于移动工件的移动台、用于搬送工件的传送带、用于将工件移动到预定的目标场所的手臂机器人等。这些驱动设备由plc(programmablelogiccontroller:可编程逻辑控制器)、机器人控制器等产业用的控制器来控制。
近年来,能够从外部设备安装软件的控制器正在普及。这种控制器在国际公开第2015/136965号(专利文献1)、国际公开第2015/136972号(专利文献2)、国际公开第2015/136966号(专利文献3)和国际公开第2015/136964号(专利文献4)被公开。
现有技术文献
专利文献
专利文献1:国际公开第2015/136965号
专利文献2:国际公开第2015/136972号
专利文献3:国际公开第2015/136966号
专利文献4:国际公开第2015/136964号
技术实现要素:
发明要解决的课题
近年来,开发了各种软件,软件的许可证的管理复杂化。在未适当管理许可证的情况下,所购入的软件可能被不正当地复制,可能在不具有许可证的其他控制器中不正当地利用软件。因此,期望防止这种不正当利用的结构。
本公开正是为了解决上述这种问题而完成的,某个方面的目的在于,提供能够防止下载到控制器的软件的不正当利用的结构。
用于解决课题的手段
在本公开的一例中,具有:取得部,其用于从外部设备取得在上述控制器中利用的软件;以及处理器,其用于执行上述软件。上述软件包含:生成模块,其用于根据用于唯一识别上述控制器或上述外部设备的第1固有信息生成上述软件的执行权;以及检查模块,其用于在生成上述执行权后的规定的时机根据上述执行权生成第2固有信息,在该第2固有信息与上述第1固有信息不一致时,禁止利用上述软件。
根据该公开,通过根据许可证信息禁止利用所取得的软件,防止该软件的不正当利用。
在本公开的一例中,包含构成为能够与上述控制器进行通信的通信设备。上述取得部从与上述控制器进行通信连接的上述通信设备下载上述软件。
根据该公开,防止从通信设备下载的软件的不正当利用。
在本公开的一例中,上述外部设备包含能够与上述控制器电连接的存储卡。上述取得部从与上述控制器电连接的存储卡取得上述软件。
根据该公开,防止从存储卡取得的软件的不正当利用。
在本公开的一例中,上述处理器在将取得的上述软件从上述控制器移动到上述外部设备时,删除上述执行权。
根据该公开,软件的许可证信息不会存在多个,更加可靠地防止软件的不正当利用。
在本公开的一例中,上述处理器在将取得的上述软件从上述控制器移动到上述外部设备时,删除上述生成模块和上述检查模块。
根据该公开,通过删除生成模块和检查模块,能够有效利用控制器的资源。
在本公开的一例中,能够从上述外部设备取得的软件包含:在上述控制器的固件上进行动作的程序、向该固件追加的程序、以及上述控制器中能够利用的数据中的至少一方。
根据该公开,不正当利用的防止防止在固件上进行动作的程序和向该固件追加的程序的不正当利用。
在本公开的另一例中,在对控制对象进行控制的控制器中利用的软件的许可证的管理方法具有以下步骤:取得步骤,从外部设备取得在上述控制器中利用的软件和与该软件有关的第1许可证信息;以及执行步骤,执行上述软件。上述执行步骤包含以下步骤:根据用于唯一识别上述控制器或上述外部设备的第1固有信息生成上述软件的执行权;以及在生成上述执行权后的规定的时机根据上述执行权生成第2固有信息,在该第2固有信息与上述第1固有信息不一致时,禁止利用上述软件。
根据该公开,通过根据许可证信息禁止利用所取得的软件,防止该软件的不正当利用。
在本公开的另一例中,在对控制对象进行控制的控制器中利用的软件的许可证的管理程序上述管理程序使上述控制器执行以下步骤:取得步骤,从外部设备取得在对控制对象进行控制的控制器中利用的软件;以及执行步骤,执行上述软件。上述执行步骤包含以下步骤:根据用于唯一识别上述控制器或上述外部设备的第1固有信息生成上述软件的执行权;以及在生成上述执行权后的规定的时机根据上述执行权生成第2固有信息,在该第2固有信息与上述第1固有信息不一致时,禁止利用上述软件。
根据该公开,通过根据许可证信息禁止利用所取得的软件,防止该软件的不正当利用。
发明效果
在某个方面,能够防止下载到控制器的软件的不正当利用。
附图说明
图1是示出基于实施方式的fa系统的概略的图。
图2是概略地示出基于实施方式的fa系统的装置结构的示意图。
图3是示出下载销售套装软件的结构的图。
图4是示出控制器、开发辅助装置和服务器之间的数据流的顺序图。
图5是示出软件管理表的数据构造的图。
图6是示出基于实施方式的控制器的硬件结构的一例的示意图。
图7是示出基于实施方式的外部设备的硬件结构的示意图。
图8是示出从开发辅助装置下载套装软件的处理的流程图。
图9是示出使套装软件的利用有效化的处理的流程图。
图10是示出执行权的检查处理的流程图。
图11是示出所下载的套装软件的执行处理的流程图。
图12是示出利用存储卡销售套装软件的结构的图。
图13是示出从存储卡下载套装软件的处理的流程图。
图14是概略地示出套装软件的部署(deploy)处理的流程的图。
图15是示出图14所示的部署处理的后续的图。
图16是示出在控制器与存储卡之间移动套装软件的状况的图。
图17是示出bto(buildtoorder:按订单制造)销售套装软件的结构的图。
具体实施方式
下面,参照附图对基于本发明的各实施方式进行说明。在以下的说明中,对相同部件和结构要素标注相同标号。它们的名称和功能也相同。因此,不重复进行它们的详细说明。
<a.应用例>
参照图1对本发明的应用例进行说明。图1是示出fa系统10的概略的图。
fa系统10是用于对机器和装置等控制对象进行控制来使生产工序自动化的系统。fa系统10由1个以上的控制器100、1个以上的外部设备200和1个以上的驱动设备300构成。
控制器100包含取得部101、处理器102和存储装置110作为硬件结构。存储装置110存储从外部设备200下载的套装软件141和控制器100的固有信息143a。
外部设备200提供控制器100中能够执行的各种软件。作为这种外部设备200,列举出后述开发辅助装置200a(参照图2)、后述服务器200b(参照图2)、后述存储卡200c(参照图2)等。
取得部101是具有从外部设备200取得软件的功能的任意硬件。作为一例,取得部101包含用于与外部设备200进行通信的通信接口、连接sd卡等存储卡的存储卡接口等。
在图1的例子中,示出从外部设备200下载的软件作为套装软件141。套装软件141表示使各种功能套装化的销售对象的程序的单位。作为套装软件141的一例,列举出针对控制器100的追加功能、数据等。
处理器102通过执行控制器100的各种程序,对作为控制对象的驱动设备300进行控制。作为一例,由处理器102执行的程序包含所下载的套装软件141等各种程序。
所下载的套装软件141包含生成模块154、检查模块156和其他功能模块。该其他功能模块是用户能够利用的功能模块,生成模块154和检查模块156附随于该功能模块。
生成模块154根据用于唯一识别控制器100的固有信息143a(第1固有信息)生成套装软件141的执行权139。执行权139相当于用于执行套装软件141的权限。即,保持有执行权139的控制器100能够执行套装软件141。固有信息143a例如包含控制器100或处理器102的形式、生产信息(制造编号等)、名字以及用于唯一识别控制器100的其他信息。
执行权139的生成方法是任意的。作为一例,生成模块154以预定的加密方式对固有信息143a进行加密,由此生成执行权139。该情况下,生成模块154使用规定的加密密钥生成执行权139。或者,生成模块154也可以生成对能够进行可逆计算的预定的计算式代入固有信息143a而得到的结果作为执行权139。所生成的执行权139存储在存储装置110中。
检查模块156在起动控制器100时、执行套装软件141时等生成执行权139后的规定的时机,根据执行权139生成固有信息(第2固有信息)。下面,为了便于说明,将控制器100中预先保持的固有信息称为“固有信息143a”,将生成执行权139后根据执行权139生成的固有信息称为“固有信息143b”。检查模块156在固有信息143b与本来的固有信息143a不一致时,禁止利用套装软件141。
更具体而言,检查模块156包含解密模块156a和比较模块156b。解密模块156a以利用规定的解密密钥的预定的解密方式对执行权139进行解密,生成固有信息143b。
比较模块156b将起动控制器100时、利用套装软件141时生成的固有信息143b与本来的固有信息143a进行比较。在固有信息143b与固有信息143a一致的情况下,比较模块156b允许利用所下载的套装软件141。另一方面,在固有信息143b与固有信息143a不一致的情况下,比较模块156b禁止利用所下载的套装软件141。
这里所说的“一致”不仅能够包含全部固有信息143b与全部固有信息143a一致的情况,还能够包含固有信息143b的规定部位与固有信息143a的规定部位一致的情况。“不一致”是指不满足“一致”这样的条件的情况。
如上所述,根据本来的固有信息143a和执行套装软件141时等生成的固有信息143b的比较结果,对套装软件141的利用的允许/禁止进行切换。由此,例如,在套装软件141不正当地移动到与下载时不同的控制器的情况下,能够防止套装软件141的利用。此外,通过将检查许可证的结构组装到套装软件141中,不需要在控制器100中预先搭载许可证的检查功能。
<b.fa系统10的装置结构>
参照图2对fa系统10的装置结构的一例进行说明。图2是概略地示出fa系统10的装置结构的示意图。
fa系统10包含1个以上的控制器100和1个以上的外部设备200。在图2的例子中,fa系统10由2个控制器100a、100b构成。作为能够与控制器100连接的外部设备200的例子,示出开发辅助装置200a、服务器200b和存储卡200c。
下面,也将控制器100a、100b统称为控制器100。控制器100具有多个物理性的通信端口。能够在各个通信端口连接不同的网络。在图2的例子中,控制器100具有2个通信端口p1、p2。在通信端口p1连接有网络nw1。在通信端口p2连接有网络nw2。
网络nw1例如采用ethernet/ip(注册商标)、ethernet(注册商标)等。作为一例,开发辅助装置200a、服务器200b等具有与控制器100进行通信的通信功能的各种通信设备能够连接于网络nw1。
开发辅助装置200a例如是pc(personalcomputer:个人计算机)、平板终端或智能手机等。能够在开发辅助装置200a中安装程序开发工具。程序开发工具是用于对控制器100用的控制程序的开发进行辅助的应用。作为一例,程序开发工具是欧姆龙公司制的“sysmacstudio”。用户能够在程序开发工具上设计控制器100用的控制程序,将设计出的控制程序安装在控制器100中。所生成的控制程序作为由开发辅助装置200a编译后的执行形式的文件被发送到控制器100。
服务器200b是提供控制器100中能够执行的各种套装软件141的装置。所提供的套装软件141例如包含与外部数据库连接的功能、与nc(numericalcontrol:数值控制)控制有关的各种功能、与机器人控制有关的各种功能、与ai(artificialintelligence:人工智能)有关的各种功能、控制器100中能够利用的各种数据(例如通过ai的学习处理而得到的各种数据)和用于对特定的驱动设备300进行控制的各种功能(例如振动控制功能)等。另外,套装软件141的提供方不限于服务器200b,可从任意的外部设备200提供。作为一例,也可以从存储卡200c提供套装软件141。
网络nw2优选采用保证数据的到达时间的进行恒定周期通信的现场网络。作为这种进行恒定周期通信的现场网络,公知有ethercat(注册商标)、componet(注册商标)等。控制器100按照在开发辅助装置200a上生成的控制程序对控制对象的驱动设备300进行控制。
驱动设备300是用于直接或间接地对工件进行规定的作业的设备的集合。在图2的例子中,驱动设备300包含机器人控制器300a、伺服驱动器300b、被机器人控制器300a控制的手臂机器人301a、被伺服驱动器300b控制的伺服马达301b等。此外,驱动设备300也可以包含用于拍摄工件的视觉传感器、生产工序中利用的其他设备等。
<c.套装软件141的销售方式>
参照图3对套装软件141的销售方式的一例进行说明。图3是示出下载销售套装软件141的结构的图。
在图3的例子中,示出套装软件141的提供方的服务器200b和套装软件141的提供目的地的开发辅助装置200a。作为一例,服务器200b设置于销售方的公司“a”。开发辅助装置200a设置于套装软件141的销售目的地的公司“b”。
在步骤(1)中,开发辅助装置200a的用户访问服务器200b的网站等,从所销售的套装软件中选择下载对象的套装软件。所销售的套装软件包含在控制器100的固件上进行动作的程序、向固件追加的固件程序等。在固件上进行动作的套装软件依赖于从固件提供的基本功能而进行动作。
开发辅助装置200a的用户在选择购入对象的套装软件141后,进行购入手续。当购入手续完成时,服务器200b将所购入的套装软件141安装在开发辅助装置200a中。此时,在步骤(2)中,服务器200b将用于允许利用套装软件141的许可证权142发送到开发辅助装置200a。
在步骤(3)中,开发辅助装置200a将从服务器200b安装的套装软件141和许可证权142安装在控制器100中。
在步骤(4)中,开发辅助装置200a受理用于使套装软件141的许可证权有效的有效化操作。由此,开发辅助装置200a将有效化命令发送到控制器100。控制器100根据接收到有效化命令,根据控制器100的固有信息143a生成执行权139。
在步骤(5)中,开发辅助装置200a根据套装软件141的有效化处理已正常完成,向服务器200b发送行使了套装软件141的利用权。此时,行使了利用权的利用者的信息被发送到服务器200b,该信息被登记在服务器200b中。
<d.数据流程>
参照图4和图5对用于实现上述图3所示的下载销售的控制流程进行说明。图4是示出控制器100、开发辅助装置200a和服务器200b之间的数据流的顺序图。
在步骤s10中,开发辅助装置200a的用户访问服务器200b的网站,进行套装软件141的销售操作。此时,用户为了购入套装软件141而输入各种信息(以下也称为“购入信息”。)。该购入信息包含用于确定购入对象的套装软件141的信息、与购入者有关的各种信息(例如名字、住址等)、与下载对象的控制器100有关的各种信息。所输入的购入信息被发送到服务器200b。
在步骤s14中,服务器200b根据从开发辅助装置200a接收到的购入信息,发行套装软件141的许可证权142。所发行的许可证权142与购入对象的套装软件141一起被发送到开发辅助装置200a。
在步骤s20中,开发辅助装置200a受理了从服务器200b下载的套装软件141的下载操作。由此,开发辅助装置200a将套装软件141和许可证权142发送到所指定的控制器100。
在步骤s26中,控制器100执行将套装软件141配置在内部的存储装置110(参照图1)中的部署处理。此时,控制器100对用于将套装软件配置在内部的存储装置中的管理的软件管理表进行更新。图5是示出软件管理表155的数据构造的图。
软件管理表155是用于管理下载到控制器100的套装软件的数据库。软件管理表155包含套装软件的一览表160和套装软件的详细信息161~163。
套装软件的一览表160包含规定套装软件的简称的列160a、规定套装软件的版本的列160b、规定套装软件的分类的列160c、规定套装软件的插入类型的列160d、规定套装软件的提供方式的列160e、规定套装软件的全称的列160f、规定套装软件的提供方的列160f。
套装软件的一览表160的各记录与套装软件的详细信息相关联。作为一例,将一览表160的列160a的信息作为关键字而关联有各套装软件141的详细信息。在图5的例子中,在表示为“ecat”的套装名中关联有详细信息161。在表示为“ai”的套装名中关联有详细信息162、163。
详细信息161包含规定套装软件的简称的列161a、表示对应语言的种类的列161b、规定套装软件的全称的列161c、规定套装软件的提供方的列161d。
详细信息162包含规定套装软件的简称的列162a、表示对应语言的种类的列162b、规定套装软件的全称的列162c、规定套装软件的提供方的列162d。
详细信息163规定了套装软件中包含的各种方法(处理)。详细信息163包含表示方法的名字的列163a、表示套装软件的调出的类型的列163b、规定套装软件的部署方法的列163c、规定套装软件的回滚方法的列163d。
再次参照图4,在步骤s28中,控制器100作为上述生成模块154(参照图1),根据自身的固有信息143a生成执行权139。生成模块154以预定的加密方式根据固有信息143a生成执行权139。作为一例,生成模块154使用规定的加密密钥生成执行权139。所生成的执行权139存储在控制器100的存储装置110中。
在步骤s30中,控制器100判断规定的时机是否到来。该规定的时机例如包含起动控制器100时、执行套装软件141时、生成执行权139后的预定的任意的时机。控制器100在判断为该规定的时机到来的情况下(步骤s30:是),将控制切换为步骤s32。不是这样的情况下(步骤s30:否),控制器100再次执行步骤s30的处理。
在步骤s32中,控制器100作为上述检查模块156(参照图1),根据步骤s28中生成的执行权139生成固有信息143b。作为一例,控制器100以与步骤s28中根据固有信息143a生成执行权139而使用的加密方式对应的解密方式对执行权139进行解密,生成固有信息143b。
在步骤s40中,控制器100作为上述检查模块156(参照图1),判断步骤s32中生成的固有信息143b是否与本来的固有信息143a一致。控制器100在判断为所生成的固有信息143b与本来的固有信息143a一致的情况下(步骤s40:是),将控制切换为步骤s42。不是这样的情况下(步骤s40:否),控制器100将控制切换为步骤s44。
在步骤s42中,控制器100允许利用所下载的套装软件141。允许利用套装软件141的方法是任意的。作为一例,在控制器100中管理表示利用的禁止/允许的标志,控制器100将该标志改写为表示允许。
在步骤s44中,控制器100禁止利用所下载的套装软件141。禁止利用套装软件141的方法是任意的。作为一例,在控制器100中管理表示利用的禁止/允许的标志,控制器100将该标志改写为表示禁止。
<e.硬件结构>
参照图6和图7依次对控制器100和外部设备200的硬件结构进行说明。
(e1.控制器100的硬件结构)
首先,参照图6对控制器100的硬件结构进行说明。图6是示出控制器100的硬件结构的一例的示意图。
控制器100包含通信接口101a、存储卡接口101b、cpu(centralprocessingunit:中央处理单元)或mpu(micro-processingunit:微处理单元)等处理器102、芯片组104、主存储器106、非易失性存储装置110、内部总线控制器122、现场总线控制器124。
处理器102读出存储装置110中存储的控制程序130,在主存储器106中展开并执行,由此实现针对控制对象的驱动设备300等的任意控制。控制程序130包含用于对控制器100进行控制的各种程序。作为一例,控制程序130包含作为固件的系统程序140、套装软件141、用户程序145等。系统程序140包含用于提供数据的输入输出处理、执行定时控制等控制器100的基本功能的命令代码。用户程序145是从外部设备200下载的。用户程序145是根据控制对象在外部设备200上任意设计的,包含用于执行顺序控制的顺序程序145a和用于执行运动控制的运动程序145b。
芯片组104通过对各组成部分进行控制,实现作为控制器100整体的处理。
存储装置110除了存储控制程序130以外,还存储各种数据。作为一例,存储装置110存储套装软件141的许可证权142、用于唯一识别控制器100的固有信息143a、上述软件管理表155(参照图5)等。许可证权142包含套装软件141的执行权139。例如,例如在套装软件141的下载时(配置时)等预定的时机生成执行权139。
内部总线控制器122是与通过内部总线连结于控制器100的各种设备交换数据的接口。连接有i/o单元126作为这种设备的一例。
现场总线控制器124是与通过现场总线连结于控制器100的各种驱动设备300交换数据的接口。连接有机器人控制器300a、伺服驱动器300b作为这种设备的一例。除此之外,也可以连接有视觉传感器等驱动设备。
内部总线控制器122和现场总线控制器124能够对所连接的设备赋予任意指令,并且能够取得设备所管理的任意数据。此外,内部总线控制器122和/或现场总线控制器124还作为用于在与机器人控制器300a、伺服驱动器300b之间交换数据的接口发挥功能。
通信接口101a是上述取得部101(参照图1)的一例。通信接口101a对通过各种有线/无线网络的数据的交换进行控制。控制器100经由通信接口101a而与开发辅助装置200a、服务器200b等外部设备200进行通信。控制器100能够经由通信接口101a从外部设备200下载套装软件141等。
存储卡接口101b是上述取得部101(参照图1)的一例。存储卡接口101b是用于电连接作为外部存储介质的一例的存储卡200c(例如sd卡)的接口。存储卡接口101b构成为能够拆装存储卡200c,能够对存储卡200c写入数据,从存储卡200c读出数据。控制器100能够经由存储卡接口101b从存储卡200c下载套装软件141等。此外,在存储卡200c中存储有套装软件141的许可证权142、用于唯一识别存储卡200c的固有信息243a等。
(e2.外部设备200的硬件结构)
接着,参照图7对外部设备200的硬件结构进行说明。图7是示出外部设备200的硬件结构的示意图。
作为一例,外部设备200由基于通用的计算机架构构成的计算机构成。外部设备200例如是上述开发辅助装置200a或上述服务器200b。外部设备200包含cpu或mpu等控制装置202、主存储器204、非易失性存储装置208、通信接口211、i/o(input/output:输入/输出)接口214、显示接口220。这些组成部分经由内部总线225以能够通信的方式相互连接。
控制装置202在主存储器204中展开并执行存储装置208中存储的开发辅助程序208a,由此实现程序开发工具中的各种处理。开发辅助程序208a是用于提供用户程序145的开发环境的程序。存储装置208除了存储开发辅助程序208a以外,还存储发布对象的套装软件141等各种数据。
通信接口211在与其他通信设备之间经由网络交换数据。该其他通信设备例如包含控制器100、服务器等外部设备。外部设备200也可以构成为能够经由通信接口211从该其他通信设备下载开发辅助程序208a等各种程序。
i/o接口214与操作部215连接,取入表示来自操作部215的用户操作的信号。典型地讲,操作部215由键盘、鼠标、触摸面板、触摸板等构成,受理来自用户的操作。
显示接口220与显示部221连接,按照来自控制装置202等的指令,对显示部221送出用于显示图像的图像信号。显示部221由lcd(liquidcrystaldisplay:液晶显示器)、有机el(electroluminescence:电致发光)显示器等构成,对用户提示各种信息。能够在显示部221上显示由程序开发工具提供的各种画面。另外,在图7的例子中,外部设备200和显示部221分开示出,但是,外部设备200和显示部221也可以一体地构成。
<f.控制构造>
参照图8~图12对控制器100的控制构造进行说明。图8是示出从开发辅助装置200a下载套装软件141的处理的流程图。图9是示出通过生成执行权139而使套装软件141的利用有效化的处理的流程图。图10是示出执行权139的检查处理的流程图。图11是示出所下载的套装软件141的执行处理的流程图。
控制器100的处理器102执行程序,由此实现图8~图11所示的处理。在其他方面,也可以通过电路元件或其他硬件执行处理的一部分或全部。
下面,依次对图8~图11所示的流程图进行说明。
(f1.套装软件141的下载处理)
首先,参照图8对从开发辅助装置200a下载套装软件141的下载处理进行说明。
在步骤s110中,处理器102判断是否从开发辅助装置200a接收到套装软件141的下载命令。例如,用户对开发辅助装置200a进行下载操作,由此发出该下载命令。处理器102在判断为从开发辅助装置200a接收到套装软件141的下载命令的情况下(步骤s110:是),将控制切换为步骤s120。不是这样的情况下(步骤s110:否),结束图8所示的下载处理。
在步骤s120中,处理器102判断下载对象的套装软件141是否对应于下载目的地的控制器100。更具体而言,处理器102从外部设备200接收与下载对象的套装软件141有关的软件信息。该软件信息例如包含对应的控制器100的形式信息等。控制器100将套装信息中规定的形式信息与控制器100的形式信息进行比较,判断这些形式信息是否对应。在这些形式信息一致的情况下,处理器102判断为下载对象的套装软件141对应于控制器100。
处理器102在判断为下载对象的套装软件141对应于控制器100的情况下(步骤s120:是),将控制切换为步骤s122。不是这样的情况下(步骤s120:否),处理器102将控制切换为步骤s126。
在步骤s122中,处理器102从开发辅助装置200a接收套装软件141和该套装软件141的许可证权142。
在步骤s124中,处理器102将接收到的套装软件141和许可证权142保存在控制器100的存储装置110中。
在步骤s126中,处理器102输出表示下载对象的套装软件141不对应于控制器100的错误。该错误的输出方式是任意的。作为一例,该错误可以作为错误日志进行输出,也可以通过错误音、消息等进行输出。
(f2.有效化处理)
接着,参照图9对用于使套装软件141的利用有效化的有效化处理进行说明。在任意的时机开始执行该有效化处理。作为一例,根据开发辅助装置200a接收到有效化命令,开始执行该有效化处理。例如,根据用户对开发辅助装置200a进行了有效化操作,向所指定的控制器100发出该有效化命令。当开始执行有效化处理时,依次执行图9所示的各处理。
在步骤s180中,控制器100的处理器102判断是否具有套装软件141的许可证权142。典型地讲,处理器102根据控制器100的存储装置110中是否存储有许可证权142,判断有无许可证权142。处理器102在判断为具有套装软件141的许可证权142的情况下(步骤s180:是),将控制切换为步骤s182。不是这样的情况下(步骤s180:否),处理器102将控制切换为步骤s184。
在步骤s182中,处理器102作为上述生成模块154(参照图1),根据控制器100的固有信息143a生成套装软件141的执行权139。
在步骤s184中,处理器102输出表示不具有套装软件141的许可证权的错误。该错误的输出方式是任意的。作为一例,该错误可以作为错误日志进行输出,也可以通过错误音、消息等进行输出。
(f3.执行权的检查处理)
接着,参照图10对图9中生成的执行权的检查处理进行说明。该检查处理是使套装软件141的利用有效化或无效化的处理。在任意的时机开始执行该检查处理。作为一例,在起动控制器100时、执行套装软件141的时等开始执行该检查处理。当开始执行许可证的检查处理时,依次执行图10所示的各处理。
更具体而言,在步骤s210中,处理器102判断是否存在套装软件141的执行权139。处理器102在判断为存在套装软件141的执行权139的情况下(步骤s210:是),将控制切换为步骤s212。不是这样的情况下(步骤s210:否),处理器102将控制切换为步骤s224。
在步骤s212中,处理器102作为上述解密模块156a(参照图1),根据执行权139生成控制器100的固有信息143b。固有信息143b例如包含控制器100或处理器102的制造编号、控制器名、mac地址或用于唯一识别控制器100的其他信息。
在步骤s220中,处理器102作为上述比较模块156b(参照图1),判断步骤s212中生成的固有信息143b是否与控制器100中存储的本来的固有信息143a一致。处理器102在判断为固有信息143b与控制器100的本来的固有信息143a一致的情况下(步骤s220:是),将控制切换为步骤s222。不是这样的情况下(步骤s220:否),处理器102将控制切换为步骤s224。
在步骤s222中,处理器102允许利用套装软件141。作为一例,在控制器100的存储装置110中管理表示利用的禁止/允许的标志,处理器102将该标志改写为表示允许。
在步骤s224中,处理器102禁止利用套装软件141。作为一例,在控制器100的存储装置110中管理表示利用的禁止/允许的标志,处理器102将该标志改写为表示禁止。
(f4.套装软件141的执行处理)
接着,参照图11对所下载的套装软件141的执行处理进行说明。
在步骤s310中,处理器102判断是否受理了套装软件141的执行命令。处理器102在判断为受理了套装软件141的执行命令的情况下(步骤s310:是),将控制切换为步骤s320。不是这样的情况下(步骤s310:否),处理器102再次执行步骤s310的处理。
在步骤s320中,处理器102判断是否允许利用执行对象的套装软件141。作为一例,处理器102在表示套装软件141的利用的禁止/允许的标志表示允许的情况下,处理器102判断为允许利用套装软件141。处理器102在判断为允许利用执行对象的套装软件141的情况下(步骤s320:是),将控制切换为步骤s322。不是这样的情况下(步骤s320:否),处理器102将控制切换为步骤s324。
在步骤s322中,处理器102执行套装软件141。
在步骤s324中,处理器102不执行套装软件141,输出表示套装软件141的执行被禁止的错误。该错误的输出方式是任意的。作为一例,该错误可以作为错误日志进行输出,也可以通过错误音、消息等进行输出。
<g.变形例1>
(g1.套装软件141的其他销售方式)
上述在下载销售套装软件141的前提下进行了说明,但是,套装软件141的销售方式不限定于此。作为一例,套装软件141也可以存储在存储卡200c中进行销售。
下面,参照图12对套装软件141的销售方式的另一例进行说明。图12是示出利用存储卡200c销售套装软件141的结构的图。
在图12的例子中,示出公司“a”~公司“c”。公司“a”具有管理套装软件141的服务器200b。公司“b”销售存储了套装软件141的存储卡200c。公司“c”是套装软件141的销售目的地。
作为更加具体的销售方式,在步骤(1)中,在公司“b”中制造存储了销售对象的套装软件141的存储卡200c。
在步骤(2)中,公司“b”针对公司“a”进行套装软件141的登记。此时,与销售对象的套装软件141有关的套装信息被发送到公司“a”的服务器200b。服务器200b根据接收到的套装信息进行套装软件141的登记处理。
在步骤(3)中,公司“c”的购入者访问公司“b”的网站等,选择购入对象的套装软件141,进行购入手续。当购入手续完成时,公司“b”准备存储了所购入的套装软件141的存储卡200c。此时,发行套装软件141的许可证权142,许可证权142保存在存储卡200c中。公司“b”将存储了套装软件141和许可证权142的存储卡200c送到公司“c”。
在步骤(4)中,购入者将所购入的存储卡200c与控制器100连接,从存储卡200c安装套装软件141和许可证权142。
(g2.套装软件141的下载处理)
参照图13对本变形例中的套装软件141的下载处理进行说明。图13是示出从存储卡200c下载套装软件141的处理的流程图。
控制器100的处理器102执行程序,由此实现图13所示的处理。在其他方面,也可以通过电路元件或其他硬件执行处理的一部分或全部。
在步骤s150中,处理器102判断存储卡200c是否与控制器100连接。处理器102在判断为存储卡200c与控制器100连接的情况下(步骤s150:是),将控制切换为步骤s160。不是这样的情况下(步骤s150:否),处理器102结束图13所示的下载处理。
在步骤s160中,处理器102判断是否从开发辅助装置200a接收到套装软件141的下载命令。例如,用户对开发辅助装置200a进行下载操作,由此发出该下载命令。处理器102在判断为从开发辅助装置200a接收到套装软件141的下载命令的情况下(步骤s160:是),将控制切换为步骤s170。不是这样的情况下(步骤s160:否),结束图13所示的下载处理。
在步骤s170中,处理器102判断下载对象的套装软件141是否对应于下载目的地的控制器100。更具体而言,处理器102从存储卡200c取得与下载对象的套装软件141有关的软件信息。该软件信息例如包含对应的控制器100的形式信息等。控制器100将套装信息中规定的形式信息与控制器100的形式信息进行比较,判断这些形式信息是否对应。在这些形式信息一致的情况下,处理器102判断为下载对象的套装软件141对应于下载目的地的控制器100。
处理器102在判断为下载对象的套装软件141对应于控制器100的情况下(步骤s170:是),将控制切换为步骤s172。不是这样的情况下(步骤s170:否),处理器102将控制切换为步骤s176。
在步骤s172中,处理器102从存储卡200c取得套装软件141和该套装软件141的许可证权142。
在步骤s174中,处理器102将所取得的套装软件141和许可证权142保存在控制器100的存储装置110中。
在步骤s176中,处理器102输出表示下载对象的套装软件141不对应于控制器100的错误。该错误的输出方式是任意的。作为一例,该错误可以作为错误日志进行输出,也可以通过错误音、消息等进行输出。
<h.套装软件141的部署处理>
参照图14和图15对将套装软件141配置在控制器100中的部署处理进行说明。图14是概略地示出套装软件141的部署处理的流程的图。图15是示出图14所示的部署处理的后续的图。
控制器100的处理器102包含对所下载的套装软件进行管理的套装管理模块150。在存储卡200c中下载对象的套装软件141被示为套装软件"x"。
在步骤(1)中,某个调出方将套装软件"x"的部署命令输出到套装管理模块150。作为该调出方,例如列举出固件的updater、外部设备200(例如开发辅助装置200a)、控制器100内的过程、控制器100内的库(library)等。
在步骤(2)中,套装管理模块150执行存储卡200c上的套装软件"x"的部署方法。部署方法预先定义在“package_x.db”中,套装管理模块150从“package_x.db”中搜索并执行该方法。
在步骤(3)、(4)中,部署方法141a开始检查控制器100的处理器102的形式信息是否对应于套装软件"x"。
更具体而言,部署方法141a参照处理器102的固有信息143a,取得处理器102的形式信息。部署方法141a对处理器102的形式信息和套装软件"x"的对应形式信息进行比较,检查是否能够将套装软件"x"配置在控制器100中。部署方法141a在所取得的处理器102的形式与套装软件"x"的对应形式一致的情况下,判断为能够将套装软件"x"配置在控制器100中。不是这样的情况下,部署方法判断为无法将套装软件"x"配置在控制器100中。
在步骤(5)、(6)中,部署方法141a检查下载对象的套装软件141与已经下载到控制器100中的套装软件(以下也称为“现有的套装软件”。)之间的依赖关系。
更具体而言,部署方法141a参照套装软件的一览表160,取得现有的套装软件的一览。然后,部署方法141a检查下载对象的套装软件141与现有的套装软件之间的依赖关系。在下载对象的套装软件141与现有的套装软件处于无法共存的关系的情况下,判断为无法将套装软件"x"配置在控制器100中。
在步骤(7)中,部署方法141a将各种文件(例如so文件)配置在处理器102中。
在步骤(8)中,部署方法141a将描述了自身信息的db文件“package_x.db”配置在处理器102中。该db文件的一例是上述详细信息161~163。
在步骤(9)中,部署方法141a根据各种文件的配置已经结束,在套装管理模块150中登记套装软件"x"。
在步骤(10)中,套装管理模块150将新配置的套装软件"x"的信息追加到套装软件的一览表160。
在步骤(11)中,套装管理模块150将套装变更/追加的记录保存在变更历史165中。
另外,在图14和图15中,对从存储卡200c下载套装软件141的情况下的部署处理进行了说明,但是,在从存储卡200c以外的外部设备200下载套装软件141的情况下,也能够应用图14和图15所示的部署处理。
<i.套装软件141的移动处理>
下载到控制器100的套装软件141能够移动到外部设备200。此时,从控制器100中删除包含套装软件141的执行权139的许可证权142、用于检查许可证的各种功能模块。由此,执行权139、许可证权142不会存在多个,能够唯一地管理许可证权142。
下面,参照图16对套装软件141的移动处理进行说明。图16是示出在控制器100与存储卡200c之间移动套装软件141的状况的图。
在图16的(a)中示出将套装软件141下载到控制器100之前的状况。控制器100存储有自身的固有信息143a。存储卡200c存储有下载对象的套装软件141、包含其执行权139的许可证权142、上述生成模块154、上述检查模块156、存储卡200c的固有信息243a。
在图16的(b)中示出将套装软件141从存储卡200c下载到控制器100的情况下的状况。根据套装软件141被移动,从存储卡200c中删除套装软件141、包含其执行权139的许可证权142、生成模块154、检查模块156。从存储卡200c到控制器100的套装软件141的移动功能例如组装在套装软件141本身中,由控制器100的处理器102执行。
在图16的(c)中示出将套装软件141从控制器100移动到存储卡200c的情况下的状况。根据套装软件141被移动,从控制器100中删除套装软件141、包含其执行权139的许可证权142、生成模块154、检查模块156。从控制器100到存储卡200c的套装软件141的移动功能例如组装在套装软件141本身中,由控制器100的处理器102执行。
另外,在图16中,对控制器100与存储卡200c之间的套装软件141的移动处理进行了说明,但是,在存储卡200c以外的外部设备200与控制器100之间的套装软件141的移动时也能够应用移动功能。
<j.变形例2>
上述对下载销售套装软件141的例子和套装软件141存储在存储卡200c中进行销售的例子进行了说明,但是,套装软件141的销售方式不限定于此。作为一例,套装软件141也可以进行bto销售。
下面,参照图17对套装软件141的销售方式的又一例进行说明。图17是示出bto销售套装软件141的结构的图。
在图17的例子中,示出公司“a”~公司“c”。公司“a”具有管理套装软件141的服务器200b。公司“b”是销售套装软件141的公司。公司“c”是从公司“b”或其他公司购入套装软件141或控制器100等、并销售组合了它们的系统的公司。
作为更加具体的销售方式,在步骤(1)中,公司“b”的设计者使用开发辅助装置200a设计销售对象的套装软件141。
在步骤(2)中,套装软件141的销售方即公司“b”针对公司“a”进行销售对象的套装软件141的登记。此时,与销售对象的套装软件141有关的套装信息被发送到公司“a”的服务器200b。服务器200b根据接收到的套装信息进行套装软件141的登记处理。
在步骤(3)中,公司“c”的购入者访问公司“b”的网站等,选择下载对象的套装软件141,进行购入手续。此时,输入下载目的地的控制器100的固有信息。当购入手续完成时,根据用于唯一识别下载目的地的控制器100的固有信息生成许可证权142,与所购入的套装软件141一起发送到公司“c”。
在步骤(4)中,将购入对象的套装软件141和许可证权142安装在控制器100中。
在步骤(5)中,公司“c”向其他公司销售安装了套装软件141和许可证权142的控制器100。
<k.总结>
如上所述,控制器100在下载套装软件141时等,根据控制器100的固有信息143a生成套装软件141的执行权139。然后,在执行套装软件141时、起动控制器100时等,控制器100根据执行权139生成固有信息143b。在所生成的固有信息143b与本来的固有信息143a不一致时,控制器100禁止利用套装软件141。
由此,例如,在套装软件141被不正当地移动到与下载时不同的控制器的情况下,能够利用套装软件141。此外,通过将检查许可证的结构组装到套装软件141中,不需要在控制器100中预先搭载许可证的检查功能。
<l.附记>
如上所述,本实施方式包含以下那样的公开。
[结构1]
一种控制器(100),其用于对控制对象进行控制,其中,所述控制器(100)具有:
取得部(101),其用于从外部设备(200)取得在所述控制器(100)中利用的软件(141);以及
处理器(102),其用于执行所述软件(141),
所述软件(141)包含:
生成模块(154),其用于根据用于唯一识别所述控制器(100)或所述外部设备(200)的第1固有信息生成所述软件(141)的执行权(139);以及
检查模块(156),其用于在生成所述执行权(139)后的规定的时机根据所述执行权(139)生成第2固有信息,在该第2固有信息与所述第1固有信息不一致时,禁止利用所述软件(141)。
[结构2]
根据结构1所述的控制器,其中,
所述外部设备(200)包含构成为能够与所述控制器(100)进行通信的通信设备,
所述取得部(101)从与所述控制器(100)进行通信连接的所述通信设备下载所述软件(141)。
[结构3]
根据结构1或2所述的控制器,其中,
所述外部设备(200)包含能够与所述控制器(100)电连接的存储卡,
所述取得部(101)从与所述控制器(100)电连接的存储卡取得所述软件(141)。
[结构4]
根据结构1~3中的任意一项所述的控制器,其中,
所述处理器(102)在将取得的所述软件(141)从所述控制器(100)移动到所述外部设备(200)时,删除所述执行权(139)。
[结构5]
根据结构1~4中的任意一项所述的控制器,其中,
所述处理器(102)在将取得的所述软件(141)从所述控制器(100)移动到所述外部设备(200)时,删除所述生成模块(154)和所述检查模块(156)。
[结构6]
根据结构1~5中的任意一项所述的控制器,其中,
能够从所述外部设备(200)取得的软件(141)包含:在所述控制器(100)的固件上进行动作的程序、向该固件追加的程序、以及所述控制器(100)中能够利用的数据中的至少一方。
[结构7]
一种管理方法,其是在对控制对象进行控制的控制器(100)中利用的软件(141)的许可证的管理方法,其中,所述管理方法具有以下步骤:
取得步骤,从外部设备(200)取得在所述控制器(100)中利用的软件(141)和与该软件(141)有关的第1许可证信息;以及
执行步骤,执行所述软件(141),
所述执行步骤包含以下步骤:
根据用于唯一识别所述控制器(100)或所述外部设备(200)的第1固有信息生成所述软件(141)的执行权(139);以及
在生成所述执行权(139)后的规定的时机根据所述执行权(139)生成第2固有信息,在该第2固有信息与所述第1固有信息不一致时,禁止利用所述软件(141)。
[结构8]
一种管理程序,其是在对控制对象进行控制的控制器(100)中利用的软件(141)的许可证的管理程序,其中,
所述管理程序使所述控制器(100)执行以下步骤:
取得步骤,从外部设备(200)取得在对控制对象进行控制的控制器(100)中利用的软件(141);以及
执行步骤,执行所述软件(141),
所述执行步骤包含以下步骤:
根据用于唯一识别所述控制器(100)或所述外部设备(200)的第1固有信息生成所述软件(141)的执行权(139);以及
在生成所述执行权(139)后的规定的时机根据所述执行权(139)生成第2固有信息,在该第2固有信息与所述第1固有信息不一致时,禁止利用所述软件(141)。
应该理解到本次公开的实施方式在全部方面是例示而不是限制。本发明的范围不由上述说明示出而由权利要求书示出,意图包含与权利要求书等同的意思和范围内的全部变更。
标号说明
10:fa系统;100、100a、100b:控制器;101:取得部;101a、211:通信接口;101b:存储卡接口;102:处理器;104:芯片组;106、204:主存储器;110、208:存储装置;122:内部总线控制器;124:现场总线控制器;126:i/o单元;130:控制程序;139:执行权;140:系统程序;141:套装软件;141a:部署方法;142:许可证权;143a、143b、243a:固有信息;145:用户程序;145a:顺序程序;145b:运动程序;150:套装管理模块;154:生成模块;155:软件管理表;156:检查模块;156a:解密模块;156b:比较模块;160:一览表;160a、160b、160c、160d、160e、160f、161a、161b、161c、161d、162a、162b、162c、162d、163a、163b、163c、163d:列;161、162、163:详细信息;165:变更历史;200:外部设备;200a:开发辅助装置;200b:服务器;200c:存储卡;202:控制装置;208a:开发辅助程序;214:接口;215:操作部;220:显示接口;221:显示部;225:内部总线;300:驱动设备;300a:机器人控制器;300b:伺服驱动器;301a:手臂机器人;301b:伺服马达。