控制装置、控制方法以及计算机可读存储介质与流程

文档序号:17830367发布日期:2019-06-05 22:59阅读:126来源:国知局
本发明涉及一种用于将在工业用控制装置内受到管理的变量公开给外部机器的技术,尤其涉及一种控制装置、控制方法以及计算机可读存储介质。
背景技术
::在各种生产现场,使生产工序自动化的工厂自动化(factoryautomation,fa)系统(system)正在普及。fa系统包含各种工业用驱动机器。工业用驱动机器例如包含用于使工件(work)移动的移动平台(table)、用于搬送工件的输送器(conveyor)、及用于使工件移动到预定的目标场所为止的手臂机器人(armrobot)等。这些驱动机器是由可编程逻辑控制器(programmablelogiccontroller,plc)或机器人控制器(robotcontroller)等工业用控制装置(以下也称作“控制器”)来控制。为了监控工业用驱动机器的状态,必须对控制器内的数据进行访问(access)。关于用于对控制器内的数据进行访问的技术,日本专利特开2012-018541号公报(专利文献1)揭示了一种显示装置,其“可容易地收集外部机器的数据,而与外部机器的种类或连接无关”。[现有技术文献][专利文献]专利文献1:日本专利特开2012-018541号公报技术实现要素:[发明所要解决的问题]近年来,支持用于过程控制的对象链接与嵌入-统一架构(objectlinkingandembeddingforprocesscontrolunifiedarchitecture,opc-ua)的控制器正逐渐普及。所谓opc-ua,是指为了不依存于厂商(vendor)或操作系统(operatingsystem,os)的种类等而实现数据交换所规定的通信的标准规格。通过使用支持opc-ua的控制器,外部机器能够容易地访问在所述控制器内受到管理的数据(变量)。控制器为了将变量公开给外部机器,必须将访问变量所需的数据(例如变量自身或实例等)在存储器中展开。由于存储器的存储区域的一部分已被驱动机器的控制程序使用,因此存储器的空闲容量有限。因此,当公开变量的数量多时,控制器有可能无法公开所有的公开变量。本发明是为了解决如上所述的问题而完成,一方面的目的在于,提供一种能够将公开优先级更高的变量尽可能多地公开给外部机器的技术。[解决问题的技术手段]本发明的一例中,用于控制驱动机器的控制装置包括:存储器,用于保存地址信息,所述地址信息是公开给外部机器的信息,且对所述驱动机器的控制程序中所含的变量的逻辑地址进行规定;决定部,用于按照预定的规则,对所述控制程序中所含的变量决定向所述外部机器的公开优先级;监控部,用于监控所述存储器的空闲容量;以及地址管理部,用于针对所述控制程序中所含的变量内的、允许对所述外部机器公开的一个以上的公开变量,在所述空闲容量不会低于预定阈值的范围内,将所述一个以上的公开变量各自的逻辑地址按照所述公开优先级的顺序而追加至所述地址信息。根据本发明,控制装置在存储器的空闲容量不会低于预定阈值的范围内将公开变量的逻辑地址追加至地址信息,因此能够将尽可能多的公开变量公开给外部机器。而且,由于是从公开优先级高的公开变量开始依序追加逻辑地址,因此控制装置能够将重要的公开变量优先公开给外部机器。本发明的一例中,所述决定部按照所述预定的规则来对所述控制程序中所含的变量进行分类(sort),对于所述分类顺序越上位的变量,使所述公开优先级越高。根据本发明,控制装置能够依照变量的分类顺序来决定变量的公开优先级。本发明的一例中,所述预定的规则包含:按照变量名的字符码的顺序来对所述控制程序中所含的变量进行分类。根据本发明,设计者能够依照变量的命名规则来设定公开优先级,因此能够节省对各变量设定优先级的工夫。本发明的一例中,所述预定的规则包含:按照对各变量预先设定的优先级的顺序来对所述控制程序中所含的变量进行分类。根据本发明,控制装置能够将由设计者所设定的公开优先级高的变量较之其他变量而优先公开。本发明的一例中,对于所述一个以上的公开变量分别关联有名称空间。所述预定的规则包含:按照对所述名称空间预先设定的优先级的顺序来对所述控制程序中所含的变量进行分类。根据本发明,设计者能够依照名称空间来指定公开优先级,因此无须对所有变量设定公开优先级。本发明的一例中,所述预定的规则包含:以包含预定的关键字(keyword)的变量的分类顺序较之其他变量处于上位的方式,来对所述控制程序中所含的变量进行分类。根据本发明,设计者能够依照变量名来指定公开优先级,因此能够节省对各变量名设定优先级的工夫。本发明的另一示例中,用于控制驱动机器的控制装置的控制方法包括下述步骤:在存储器中准备地址信息,所述地址信息是公开给外部机器的信息,且对所述驱动机器的控制程序中所含的变量的逻辑地址进行规定;按照预定的规则,对所述控制程序中所含的变量决定向外部机器的公开优先级;监控所述存储器的空闲容量;以及针对所述控制程序中所含的变量内的、允许对所述外部机器公开的一个以上的公开变量,在所述空闲容量不会低于预定阈值的范围内,将所述一个以上的公开变量各自的逻辑地址按照所述公开优先级的顺序而追加至所述地址信息。根据本发明,控制装置的控制方法在存储器的空闲容量不会低于预定阈值的范围内将公开变量的逻辑地址追加至地址信息,因此能够将尽可能多的公开变量公开给外部机器。而且,由于是从公开优先级高的公开变量开始依序追加逻辑地址,因此控制装置的控制方法能够将重要的公开变量优先公开给外部机器。本发明的另一示例中,由驱动机器的控制装置来执行的程序是使所述控制装置执行下述步骤:在存储器中准备地址信息,所述地址信息是公开给外部机器的信息,且对所述驱动机器的控制程序中所含的变量的逻辑地址进行规定;按照预定的规则,对所述控制程序中所含的变量决定向外部机器的公开优先级;监控所述存储器的空闲容量;以及针对所述控制程序中所含的变量内的、允许对所述外部机器公开的一个以上的公开变量,在所述空闲容量不会低于预定阈值的范围内,将所述一个以上的公开变量各自的逻辑地址按照所述公开优先级的顺序而追加至所述地址信息。根据本发明,由控制装置所执行的程序在存储器的空闲容量不会低于预定阈值的范围内将公开变量的逻辑地址追加至地址信息,因此能够将尽可能多的公开变量公开给外部机器。而且,由于是从公开优先级高的公开变量开始依序追加逻辑地址,因此控制装置的控制程序能够将重要的公开变量优先公开给外部机器。[发明的效果]在一方面,能够将公开优先级更高的变量尽可能多地公开给外部机器。附图说明图1是表示依据实施方式的fa系统的结构例的图。图2是表示控制程序中所含的变量的一览、与公开给外部机器的地址信息的图。图3是以视觉方式表示地址信息的图。图4是表示opc-ua服务器的启动直至停止为止的处理的流程图。图5是表示opc-ua服务器的初始化处理的流程图。图6是表示依据实施方式的控制器的功能结构的一例的图。图7是表示依据实施方式的控制器的硬件结构的一例的示意图。[符号的说明]1:fa系统100:控制器101:外部通信接口102:处理器103:程序执行部104:芯片组106:存储器108:快闪存储器109:系统程序110:用户程序110a:序列程序110b:运动程序111:变量112:控制程序113:地址信息122:内部总线控制器124:现场总线控制器126:i/o单元130:资源管理器131:系统变量132:事件管理部135:工具接口136:非易失性存储器137:变量设定139:存储卡接口140:存储卡150:opc-ua服务器151:通信栈152:监控部153:主程序154:决定部155:初始化程序156:地址管理部200:驱动机器200a:机器人控制器200b:伺服驱动器200c:视觉传感器201a:手臂机器人201b:伺服马达300:外部机器350a、350b、350c:opc-ua客户端400:支持装置401:设定画面具体实施方式以下,参照附图来说明依据本发明的各实施方式。以下的说明中,对于同一零件及构成元件标注同一符号。它们的名称及功能也相同。因此,不再重复对它们的详细说明。<a.适用例>参照图1来说明本发明的适用例。图1是表示fa系统1的结构例的图。fa系统1是用于使生产工序自动化的系统。图1的示例中,fa系统1包含控制器100、驱动机器200及外部机器300。控制器100及驱动机器200连接于现场网络(fieldnetwork)nw1。对于现场网络nw1,优选采用进行保证数据到达时间的固定周期通信的网络。作为进行此种固定周期通信的网络,已知有ethercat(注册商标)、ethernet/ip(注册商标)、devicenet(注册商标)、componet(注册商标)等。驱动机器200包含用于使生产工序自动化的各种工业用机器。作为一例,驱动机器200包含对手臂机器人201a进行控制的机器人控制器200a、对伺服马达(servomotor)201b进行控制的伺服驱动器(servodriver)200b、用于拍摄工件的视觉传感器200c、及在生产工序中利用的其他机器等。控制器100及外部机器300连接于现场网络nw2。对于现场网络nw2,例如理想的是采用遵照下述通信规格的网络,即,不依存于厂商或操作系统(operatingsystem,os)的种类等而能够实现数据交换。作为此种通信规格,例如已知有opc-ua等。以下,以opc-ua为前提来进行说明,但现场网络nw2所采用的通信规格并不限定于opc-ua。为了实现遵照opc-ua的通信,必须使控制器100作为服务器发挥功能,并且使外部机器300作为客户端发挥功能。更具体而言,在控制器100中,安装着具有服务器功能的opc-ua服务器150(服务器部)。此处所说的“opc-ua服务器”,是指作为通信驱动器发挥功能的应用(application)(程序)。而且,所谓opc-ua服务器的“服务器功能”,是指利用控制器100的存储器106上的存储区域的功能的,尤其是指用于与外部机器300进行通信而实现与外部机器300的数据交换的功能。而且,在外部机器300中,安装着具有与opc-ua服务器150的通信功能的opc-ua客户端350a~350c。此处所说的“opc-ua客户端”,是指向opc-ua服务器150发送通信请求(访问请求)的应用。以下,也将opc-ua客户端350a~350c总称作opc-ua客户端350。opc-ua客户端350通过向opc-ua服务器150发送访问请求,从而参照对驱动机器200的控制程序112中所含的变量111的逻辑地址进行规定的地址信息113,从opc-ua服务器150中获取在控制器100内受到管理的变量111。地址信息113的详细将后述。opc-ua客户端350基于所获取的变量,以图形方式(graphical)来显示控制器100或驱动机器200的状态。作为opc-ua客户端350发挥功能的外部机器300例如包含人机接口(humanmachineinterface,hmi)、个人计算机(personalcomputer,pc)、智能电话(smartphone)、平板(tablet)终端或具有显示功能的其他信息处理装置。控制器100除了opc-ua服务器150以外,还包含处理器(processor)102及存储器106。处理器102包含程序执行部103以作为功能结构。opc-ua服务器150包含监控部152、决定部154及地址管理部156,以作为功能结构。程序执行部103基于受理了控制程序112的执行命令的情况,将控制程序112的执行所需的各种数据在存储器106中展开,并依据控制程序112来控制驱动机器200。这样,存储器106作为工作存储器(workingmemory)发挥功能,临时保存控制程序112的执行所需的各种数据。在控制程序112内,将在控制器100与驱动机器200之间交换的信号(典型的是输入信号及输出信号)分别作为变量111进行处理。即,这些现实的信号与控制程序112内的对应的变量111本质上相同。监控部152监控存储器106的空闲容量,并将所述使用容量输出至地址管理部156。决定部154根据预定的规则,对控制程序112中所含的变量111决定向外部机器300的公开优先级。公开优先级的决定方法的详细将后述。地址管理部156对于变量111内的、允许对外部机器300公开的变量(以下也称作“公开变量”),在存储器106的空闲容量不会低于预定阈值的范围内,按照由决定部154所决定的公开优先级的顺序,来将公开变量各自的逻辑地址追加至地址信息113。地址信息113的详细将后述。通过将公开变量的逻辑地址追加至地址信息113,外部机器300能够访问控制器100内的公开变量,从而能够参照公开变量的值。由于存储器106的存储区域的一部分被用于控制驱动机器200的控制程序112使用,因此存储器106的空闲容量有限。此种状况下,若将所有的变量111公开给外部机器300,则存储器106的空闲容量有可能变无。此时,控制程序112有可能意外停止,从而造成fa系统1停止。若fa系统1停止,则会产生巨大的机会损失,因此期望尽可能不停止fa系统1。依据本实施方式的控制器100是在存储器106的空闲容量不会低于预定阈值的范围内,将公开变量的逻辑地址追加至地址信息113,因此不会因公开变量的公开处理导致控制程序112停止。另一方面,优选的是,公开变量是在存储器106存在空闲的范围内,尽可能多地公开。依据本实施方式的控制器100是在存储器106的空闲容量不会低于预定阈值的范围内将公开变量公开,因此能够公开尽可能多的公开变量。而且,由于是从公开优先级高的公开变量开始依序追加逻辑地址,因此控制器100能够将重要的公开变量优先公开给外部机器300。另外,所述中,对fa系统1包含一个控制器100(opc-ua服务器150)的示例进行了说明,但fa系统1也可包含两个以上的控制器100(opc-ua服务器150)。而且,所述中,对fa系统1包含三个外部机器300(opc-ua客户端350)的示例进行了说明,但fa系统1只要包含一个以上的外部机器300(opc-ua客户端350)即可。而且,所述中,对监控部152监控存储器106的空闲容量的示例进行了说明,但由于存储器106的空闲容量与存储器106的使用容量是彼此相关的概念,因此监控部152也可构成为对存储器106的使用容量进行监控。此时,监控部152能够通过从存储器106的存储器容量减去使用容量而算出存储器106的空闲容量。而且,所述中,作为用于实现与外部机器300的通信的服务器,举opc-ua服务器150为例进行了说明,但opc-ua服务器150只要是能够实现与外部机器300的通信的服务器,则可利用任意种类的服务器来代用。作为一例,opc-ua服务器150也可利用结构化查询语言(structuredquerylanguage,sql)服务器等数据库(database,db)服务器、文件传输协议(filetransferprotocol,ftp)服务器、或者超文本传输协议(hypertexttransferprotocol,http)服务器等网页(web)服务器来代用。而且,图1中,对监控部152、决定部154及地址管理部156被安装于opc-ua服务器150中的示例进行了说明,但监控部152、决定部154及地址管理部156也可安装于opc-ua服务器150外。此时,监控部152针对多个服务器部分别独立地监控存储器106的使用容量。决定部154针对每个服务器部来决定公开变量的公开优先级。地址管理部156针对每个服务器部而独立地管理地址信息113。<b.公开变量的设定>参照图2来说明公开变量的设定方法。图2是表示控制程序112中所含的变量的一览、与公开给外部机器300的地址信息113的图。控制程序112的设计者能够在支持(support)装置400上进行针对opc-ua客户端350的公开变量的设定。支持装置400例如是pc、平板终端或具有显示功能的其他信息处理装置。在支持装置400中,可安装控制程序112的开发工具。设计者在所述开发工具上设计控制程序112,将所设计的控制程序112安装至控制器100。控制程序112的开发工具例如是欧姆龙公司制的“sysmacstudio”。图2中表示了公开变量的设定画面401。设计者能够在设定画面401上,对控制程序112中规定的各变量设定属性。可设定的属性例如包含变量名、变量的类型、变量的初始值与对opc-ua客户端350的公开属性。作为公开属性,可设定“仅公开”、“输入”、“输出”、“非公开”中的任一种。被设定为“仅公开”、“输入”、“输出”的变量将被公开给opc-ua客户端350,而被设定为“非公开”的变量不公开给opc-ua客户端350。图2的示例中,opc-ua客户端350能够访问作为公开属性而设定为“仅公开”的变量“变量1(var1)”、作为公开属性而设定为“输入”的变量“变量2(var2)”与作为公开属性而设定为“输出”的变量“变量3(var3)”。另一方面,opc-ua客户端350无法访问作为公开属性而设定为“非公开”的变量“var4”。更具体而言,对于设定为“仅公开”的变量“变量1(var1)”,opc-ua客户端350只能确定变量名,而无法获取变量的值。对于设定为“输入”的变量“变量2(var2)”,opc-ua客户端350能够读取变量的值,但无法改写变量的值。对于设定为“输出”的变量“变量3(var3)”,opc-ua客户端350既能读取也能改写变量的值。<c.地址信息113>接着,参照图2并参照图3,对地址信息113进行说明。图3是以视觉方式表示地址信息113的图。如图2所示,根据设定画面401中的公开变量的设定而生成地址信息113。典型的是,地址信息113是由控制器100所生成,但也可由支持装置400生成。所生成的地址信息113可由作为opc-ua客户端350发挥功能的外部机器300进行参照。在地址信息113中,规定了控制程序112中所含的变量111的逻辑地址。所谓逻辑地址,是指在存储器106上的逻辑位置,表示以存储器106上的规定信息(例如图2的“根目录(root)”)作为基准的相对位置。更具体而言,地址信息113包含多个节点(node)。各节点规定对应变量的属性(例如地址、变量值、变量的类型等)。各节点是与其他节点关联并具有阶层关系。opc-ua客户端350循着在地址信息113中规定的各节点的逻辑地址,能够探索目标节点,通过参照所循到的目标节点的属性,能够获取所述节点中规定的变量的类型或变量的值。图2及图3中,控制器“新_控制器_0(new_controller_0)”内的变量是作为节点n1~n3受到管理。opc-ua客户端350依序循着对象“设备设置(deviceset)”中所含的节点“新_控制器_0(new_controller_0)”、对象“资源(resources)”中所含的节点“cpu”,从而能够访问对象“全局变量(globalvars)”中所含的节点n1~n3。图3的示例中,在节点n1~n3中,作为变量的属性,规定有变量的值与变量的类型。opc-ua客户端350通过参照节点n1,能够确定与节点n1关联的变量“变量1(var1)”的类型及值。而且,opc-ua客户端350通过参照节点n2,能够确定与节点n2关联的变量“变量2(var2)”的类型及值。而且,opc-ua客户端350通过参照节点n3,能够确定与节点n3关联的变量“变量3(var3)”的类型及值。<d.整体流程>参照图4来说明控制器100内的opc-ua服务器150的控制结构。图4是表示opc-ua服务器150的启动直至停止为止的处理的流程图。图4所示的处理是通过控制器100的处理器102(参照图1)执行程序而实现。在另一方面,处理的一部分或全部也可由电路元件或其他硬件来执行。在步骤s110中,处理器102判断是否探测到用于启动opc-ua服务器150的事件。处理器102在判断为探测到用于启动opc-ua服务器150的事件时(步骤s110中为是(yes)),将控制切换至步骤s120。若并非如此(步骤s110中为否(no)),则处理器102再次执行步骤s110的处理。在步骤s120中,处理器102启动opc-ua服务器150,执行opc-ua服务器150的初始化处理。opc-ua服务器150的初始化处理的详细将后述。在步骤s150中,处理器102判断opc-ua服务器150的初始化处理是否已完成。处理器102在判断为opc-ua服务器150的初始化处理已完成时(步骤s150中为是),将控制切换至步骤s152。若并非如此(步骤s150中为否),则处理器102再次执行步骤s150的处理。在步骤s152中,处理器102将opc-ua服务器150的状态设为运转中。由此,opc-ua服务器150成为能够从opc-ua客户端350接收对公开变量的访问请求的状态。所述访问请求例如为读(read)请求、写(write)请求或订阅(subscription)请求。若访问请求为读(read)请求,则opc-ua服务器150将作为访问对象的公开变量的值向opc-ua客户端350发送一次。若访问请求为写(write)请求,则opc-ua服务器150将作为访问对象的公开变量改写为指定的值。若访问请求为订阅(subscription)请求,则opc-ua服务器150定期发送作为访问对象的公开变量的值。在步骤s160中,处理器102判断是否探测到用于停止opc-ua服务器150的事件。处理器102在探测到用于停止opc-ua服务器150的事件时(步骤s160中为是),将控制切换至步骤s162。若并非如此(步骤s160中为否),则处理器102将控制返回步骤s152。在步骤s162中,处理器102执行opc-ua服务器150的停止处理。此时,处理器102不停止控制程序112对驱动机器200的控制。由此,处理器102能够只停止opc-ua服务器150的服务器功能,而不会阻碍驱动机器200的驱动。优选的是,处理器102在释放了opc-ua服务器150所使用的存储器106上的存储区域后停止服务器功能。由此,opc-ua服务器150能够减少存储器106的使用容量,从而能够切实地防止驱动机器200的控制程序112的执行被停止。<e.初始化流程>参照图5来说明图4所示的步骤s120的初始化处理。图5是表示opc-ua服务器150的初始化处理的流程图。在步骤s112中,处理器102作为所述决定部154(参照图1),按照预定的分类规则,对控制程序112中所含的变量111进行分类。处理器102根据所述分类顺序,来决定各变量的公开优先级。变量分类规则的具体例将后述。对于所述分类顺序越为上位的变量,处理器102使公开优先级越高。在步骤s114中,处理器102将步骤s112中的分类顺序为最上位的变量设为目标变量。在步骤s120中,处理器102判断当前的目标变量是否为公开变量。各变量的公开/非公开的设定是预先进行。公开变量的设定方法如图2中所说明的那样,因此不再重复其说明。处理器102在判断为当前的目标变量为公开变量时(步骤s120中为是),将控制切换至步骤s130。若并非如此(步骤s120中为否),则处理器102将控制切换至步骤s142。在步骤s130中,处理器102作为所述监控部152(参照图1),判断存储器106的使用容量是否存在空闲。作为一例,处理器102在存储器106的使用容量为预定的阈值以上时,判断为存储器106的使用容量存在空闲。处理器102在判断为存储器106的使用容量存在空闲时(步骤s130中为是),将控制切换至步骤s132。若并非如此(步骤s130中为否),则处理器102结束图5所示的opc-ua服务器150的初始化处理。在步骤s132中,处理器102作为所述地址管理部156(参照图1),将当前的目标变量追加至地址信息113(参照图2、图3)。与目标变量相关的信息作为节点而追加至地址信息113。在所述节点中,包含目标变量的逻辑地址、目标变量的类型、或者从所述节点朝向其他节点的参照目标(例如节点的逻辑地址)等信息。在步骤s140中,处理器102判断当前的目标变量的分类顺序是否为最下位(最后)。处理器102在判断为当前的目标变量的分类顺序为最下位时(步骤s140中为是),处理器102结束图5所示的opc-ua服务器150的初始化处理。若并非如此(步骤s140中为否),则处理器102将控制切换至步骤s142。在步骤s142中,处理器102根据步骤s112中的分类顺序,将分类顺序为当前目标变量的下一个的变量设定为新的目标变量。如上所述,处理器102按照预定的分类规则来对控制程序112中所含的变量111进行分类。随后,处理器102从分类顺序为上位的公开变量开始依序追加至地址信息113。此时,处理器102是在存储器106存在空闲的范围内,进行公开变量向地址信息113中的追加处理。优选的是,处理器102将因存储器106的使用容量达到上限而无法公开的公开变量记录到日志中。此时,处理器102将存储器106的使用容量已达到上限作为无法公开的理由而记录到日志中。所述日志例如被保存在存储卡140(参照图7)等外部存储装置中。另外,所述中,对下述示例进行了说明,即,处理器102按照预定的规则来对控制程序112中所含的变量111进行分类,并按照所述分类顺序来决定各变量111的公开优先级,但处理器102在决定各变量111的优先级时,未必需要对变量111进行分类。<f.公开优先级的决定方法>如上所述,控制器100按照预定的分类规则来对控制程序112中所含的变量111进行分类,并从分类顺序为上位的变量开始依序追加至地址信息113。对于所述分类规则,可采用各种算法(algorithm)。以下,作为此例,对分类规则的具体例1~4进行说明。(f1.分类规则的具体例1)在本具体例的分类规则中,控制器100按照变量名的字符码来对控制程序112中所含的变量111的各个进行分类。更具体而言,控制器100按照变量名的字符码,以升序/降序来对控制程序112中所含的变量111的各个进行分类。在以升序进行分类时,控制器100着眼于变量的第1个字符,对于数字按照“0”→“9”的顺序、对于英文字母按照“a”→“z”的顺序来对各变量进行分类。接下来,控制器100对于第1个字符相同的变量群的各个,按照第2个字符的字符码,以升序进行分类。控制器100通过反复进行此种分类处理,从而以升序对变量111进行分类。在以降序进行分类时,控制器100着眼于变量的第1个字符,对于数字按照“9”→“0”的顺序、对于英文字母按照“z”→“a”的顺序来对各变量进行分类。接下来,控制器100对于第1个字符相同的变量群的各个,按照第2个字符的字符码,以降序进行分类。控制器100通过反复进行此种分类处理,从而以降序对变量111进行分类。设计者能够依照变量的命名规则来设定公开优先级,因此能够节省对各变量设定优先级的工夫。(f2.分类规则的具体例2)本具体例的分类规则中,opc-ua服务器150按照对各变量预先设定的优先级的顺序,来对控制程序112中所含的变量111进行分类。针对各变量的优先级的设定例如是在图2所示的支持装置400的设定画面401上进行。更具体而言,设计者在设定画面401中,对于变量111的各个设定是否允许对外部机器300公开,并且将关于各变量的公开优先级设定为变量的属性。在一方面,在设定画面401中,与各变量并列显示文字输入区域(例如文本框(textbox)),设计者在文字输入区域的各个中,利用数值(例如1~5这五阶段)来指定公开优先级。在另一方面,在设定画面401中,与各变量并列显示下拉菜单(pulldownmenu),设计者通过从各下拉菜单中所含的选择项目中选择一个选择项目来设定公开优先级。作为一例,所述选择项目包含高优先项目、中优先项目与低优先项目。设定有高优先项目的变量较之其他变量而优先公开。设定有中优先项目的变量是继设定有高优先项目的变量之后而优先公开。设定有低优先项目的变量是继设定有中优先项目的变量之后而优先公开。控制器100按照所设定的优先级的顺序来对控制程序112中所含的变量111进行分类。由此,opc-ua服务器150能够将由设计者所设定的公开优先级高的变量较之其他变量而优先公开。(f3.分类规则的具体例3)本具体例的分类规则中,opc-ua服务器150按照对各变量所属的名称空间预先设定的优先级的顺序,来对控制程序112中所含的变量111进行分类。更具体而言,变量111的各个有时在控制程序112上属于由设计者所定义的名称空间。控制器100对于相同变量名的变量,能够根据所属的名称空间来加以区别。针对名称空间的优先级的设定例如是在图2所示的支持装置400的设定画面401上进行。作为一例,在设定画面401上显示所定义的名称空间的一览,设计者对各名称空间设定公开优先级。在一方面,在设定画面401中,与各变量并列显示文字输入区域(例如文本框),设计者在文字输入区域的各个中,利用数值(例如1~5这五阶段)来指定公开优先级。在另一方面,在设定画面401中,与各变量并列显示下拉菜单,设计者通过从各下拉菜单中所含的选择项目中选择一个选择项目来设定公开优先级。作为一例,所述选择项目包含高优先项目、中优先项目与低优先项目。属于设定有高优先项目的名称空间的变量较之其他变量而优先公开。属于设定有中优先项目的名称空间的变量是继属于设定有高优先项目的名称空间的变量之后而优先公开。属于设定有低优先项目的名称空间的变量是继属于设定有中优先项目的名称空间的变量之后而优先公开。控制器100按照对名称空间设定的优先级的顺序来对控制程序112中所含的变量111进行分类。由此,opc-ua服务器150能够将属于公开优先级高的名称空间的变量较之属于其他名称空间的变量而优先公开。而且,设计者能够利用名称空间来指定公开优先级,因此不再需要对所有变量设定公开优先级。(f4.分类规则的具体例4)本具体例的分类规则中,opc-ua服务器150以包含预定的关键字的变量的分类顺序较之其他变量而处于上位的方式,来对控制程序112中所含的变量111进行分类。作为一例,opc-ua服务器150将包含关键字“公开_(public_)”的变量的分类顺序较之其他变量而设为上位。设计者对想要提高公开优先级的变量赋予关键字“公开_(public_)”,由此,能够提高所述变量的公开优先级。在所述关键字的种类存在多种的情况下,设计者也可对各关键字设定优先级。例如假设定义有关键字“公开1_(public1_)”及关键字“公开2_(public2_)”。此时,设计者对关键字“公开1_(public1_)”及“公开2_(public2_)”分别设定优先级。在将关键字“公开1_(public1_)”的优先级设定得高于关键字“公开2_(public2_)”的优先级的情况下,opc-ua服务器150将包含关键字“公开1_(public1_)”的变量的分类顺序较之包含关键字“公开2_(public2_)”的变量而设为上位。而且,opc-ua服务器150将包含关键字“公开2_(public2_)”的变量的分类顺序较之剩余的变量而设为上位。由此,设计者能够利用变量名来指定公开优先级,因此能够节省对各变量名设定优先级的工夫。(f5.其他分类规则)另外,变量111的分类规则并不限定于所述“具体例1”~“具体例4”,可采用其他的各种分类规则。例如,对于变量111的分类规则,也可采用用于以效率良好地公开更多变量的方式来对变量111进行分类的算法(例如用于解决背包(knapsack)问题的算法)。而且,变量111的分类规则并不需要为固定,也可动态变更。作为一例,所适用的分类规则既可由用户动态设定,也可自动设定。此时,在公开变量的设定时一览显示适用候补的分类规则,用户从所述一览显示的分类规则中选择适用的分类规则。opc-ua服务器150按照所选择的分类规则来对控制程序112中所含的变量111进行分类。<g.控制器100的功能结构>参照图6来说明控制器100的功能。图6是表示控制器100的功能结构的一例的图。控制器100包含外部通信接口101、程序执行部103、资源管理器(resourcemanager)130、事件管理部132、工具接口(toolinterface)135、非易失性存储器136及opc-ua服务器150。opc-ua服务器150包含通信栈(stack)151、主程序(mainprogram)153及初始化程序155。外部通信接口101进行与作为外部机器300的opc-ua客户端350a、350b的通信。对于外部通信接口101,例如采用ethernet(注册商标)。而且,外部通信接口101进行与支持装置400的通信。在支持装置400中,安装有作为控制程序112的开发工具的“sysmacstudio”。工具接口135经由外部通信接口101来接收在所述开发工具上设计的控制程序112。而且,工具接口135经由外部通信接口101来接收与所述开发工具上的项目文件(projectfile)相关的设定(例如变量设定等),并将所述设定写入至变量设定137。而且,工具接口135将控制器100的错误信息或日志数据(logdata)经由外部通信接口101而发送至支持装置400。资源管理器130保持控制器100内的各变量的实体,负责各变量的管理或各变量的读写等。作为一例,资源管理器130在收到变量的读取命令(获取命令)时,对作为读取对象的变量进行访问,并将所述变量送往读取命令的发送目标。而且,资源管理器130在收到变量的写入命令时,对作为写入对象的变量进行访问,将所述变量改写为所指定的值。由资源管理器130所管理的变量包含控制程序112内的变量、表示控制器100的状态的系统变量131等。事件管理部132执行与控制器100内发生的事件相应的处理。在一方面,事件管理部132在探测到表示存储器106的使用容量将要达到上限的事件时,输出警告。所述事件是基于存储器106的使用容量超过规定阈值的情况而发出。警告的输出形态为任意。作为一例,将警告的内容作为日志而写入至非易失性存储器136中,由此来输出警告。或者,将警告的内容作为日志写入至存储卡140(参照图7)等外部存储装置中,由此来输出警告。opc-ua通信栈151临时保持朝向opc-ua客户端350的发送数据、或来自opc-ua客户端350的接收数据。主程序153是用于实现opc-ua服务器150的服务器功能的软件。初始化程序155是用于实现所述图5所示的opc-ua服务器150的初始化处理的软件。初始化程序155是用于实现监控部152对存储器106的空闲容量的监控功能、所述决定部154对变量的公开优先级的决定功能、或者地址管理部156对地址信息113的管理功能的软件。初始化程序155既可与主程序153一体地构成,也可如图6所示,独立于主程序153而构成。<h.控制器100的硬件结构>参照图7来说明控制器100的硬件结构。图7是表示控制器100的硬件结构的一例的示意图。控制器100包含外部通信接口101、中央处理器(centralprocessingunit,cpu)或微处理器(micro-processingunit,mpu)等处理器102、芯片组(chipset)104、作为主存储器(mainmemory)的存储器106、快闪存储器(flashmemory)108、内部总线控制器(buscontroller)122、现场总线控制器124以及存储卡接口139。处理器102读出保存在快闪存储器108中的控制程序112,在存储器106中展开并执行,由此来实现对驱动机器200的一例即伺服驱动器200b等的任意控制。控制程序112包含用于对控制器100进行控制的各种程序。作为一例,控制程序112包含系统程序(systemprogram)109及用户程序(userprogram)110等。系统程序109包含用于提供控制器100的基本功能的命令代码(code),所述基本功能为数据的输入/输出处理或执行时机控制等。用户程序110是根据控制对象而任意设计,包含用于执行序列控制的序列程序(sequenceprogram)110a及用于执行运动(motion)控制的运动程序(motionprogram)110b。控制程序112例如是以梯形图(ladder)语言或结构化文本(structuredtext,st)语言而记述的plc程序。芯片组104通过控制各组件(component),从而实现作为控制器100整体的处理。内部总线控制器122是与通过内部总线而跟控制器100连结的各种元件交换数据的接口。作为此类元件的一例,连接有输入/输出(input/output,i/o)单元126。现场总线控制器124是与通过现场总线而跟控制器100连结的各种元件交换数据的接口。作为此类元件的一例,连接有伺服驱动器200b。除此以外,也可连接机器人控制器200a(参照图1)或视觉传感器200c(参照图1)等。内部总线控制器122及现场总线控制器124能够对所连接的元件给予任意指令,并且能够获取元件所管理的任意数据(包含测定值)。而且,内部总线控制器122和/或现场总线控制器124也作为用于与伺服驱动器200b之间交换数据的接口发挥功能。外部通信接口101对通过各种有线/无线网络的数据交换进行控制。存储卡接口139构成为,可装卸作为外部存储介质的一例的存储卡140(例如安全数字(securedigital,sd)卡),能够对存储卡140写入数据,从存储卡140读出数据。<i.总结>如上所述,控制器100包含opc-ua服务器150,所述opc-ua服务器150用于实现与作为opc-ua客户端350发挥功能的外部机器300的通信。opc-ua服务器150按照预定的分类规则来对控制程序112中所含的变量111进行分类。随后,opc-ua服务器150将允许对外部机器300公开的变量(即,公开变量)从分类顺序为上位的变量开始依序追加至地址信息113。此时,opc-ua服务器150是在存储器106存在空闲的范围内,进行公开变量向地址信息113的追加处理。在如控制器100之类的工业用控制装置那样,存储器106的可使用容量受到限制的状况下,若将所有的变量111公开给外部机器300,则存储器106的空闲容量有可能变无。此时,控制程序112有可能意外停止。由于opc-ua服务器150是在存储器106的空闲容量不会低于预定阈值的范围内将公开变量公开,因此不会因公开变量的公开处理导致控制程序112停止。另一方面,opc-ua服务器150是在存储器106的空闲容量不会低于预定阈值的范围内将公开变量的逻辑地址追加至地址信息113,因此能够公开尽可能多的公开变量。而且,由于是从公开优先级高的公开变量开始依序追加逻辑地址,因此控制器100能够将重要的公开变量优先公开给外部机器300。<j.附注>如上所述,本实施方式包含如下所述的揭示。[结构1]一种控制装置,是用于控制驱动机器200的控制装置100,包括:存储器106,用于保存地址信息113,所述地址信息113是公开给外部机器300的信息,且对所述驱动机器200的控制程序112中所含的变量的逻辑地址进行规定;决定部154,用于按照预定的规则,对所述控制程序112中所含的变量决定向所述外部机器300的公开优先级;监控部152,用于监控所述存储器106的空闲容量;以及地址管理部156,用于针对所述控制程序112中所含的变量内的、允许对所述外部机器300公开的一个以上的公开变量,在所述空闲容量不会低于预定阈值的范围内,将所述一个以上的公开变量各自的逻辑地址按照所述公开优先级的顺序而追加至所述地址信息113。[结构2]根据结构1所述的控制装置,其中,所述决定部154按照所述预定的规则来对所述控制程序112中所含的变量进行分类,对于所述分类顺序越上位的变量,使所述公开优先级越高。[结构3]根据结构2所述的控制装置,其中,所述预定的规则包含:按照变量名的字符码的顺序来对所述控制程序112中所含的变量进行分类。[结构4]根据结构2所述的控制装置,其中,所述预定的规则包含:按照对各变量预先设定的优先级的顺序来对所述控制程序112中所含的变量进行分类。[结构5]根据结构2所述的控制装置,其中,对于所述一个以上的公开变量分别关联有名称空间,所述预定的规则包含:按照对所述名称空间预先设定的优先级的顺序来对所述控制程序112中所含的变量进行分类。[结构6]根据结构2所述的控制装置,其中,所述预定的规则包含:以包含预定的关键字的变量的分类顺序较之其他变量处于上位的方式,来对所述控制程序112中所含的变量进行分类。[结构7]一种控制方法,是用于控制驱动机器200的控制装置100的控制方法,包括下述步骤:在存储器106中准备地址信息113,所述地址信息113是公开给外部机器300的信息,且对所述驱动机器200的控制程序112中所含的变量的逻辑地址进行规定;按照预定的规则,对所述控制程序112中所含的变量决定向外部机器300的公开优先级;监控所述存储器106的空闲容量;以及针对所述控制程序112中所含的变量内的、允许对所述外部机器300公开的一个以上的公开变量,在所述空闲容量不会低于预定阈值的范围内,将所述一个以上的公开变量各自的逻辑地址按照所述公开优先级的顺序而追加至所述地址信息113。[结构8]一种控制程序,是用于控制驱动机器200的控制装置100的控制程序,所述控制程序112使所述控制装置100执行下述步骤:在存储器106中准备地址信息113,所述地址信息113是公开给外部机器300的信息,且对所述驱动机器200的控制程序112中所含的变量的逻辑地址进行规定;按照预定的规则,对所述控制程序112中所含的变量决定向外部机器300的公开优先级;监控所述存储器106的空闲容量;以及针对所述控制程序112中所含的变量内的、允许对所述外部机器300公开的一个以上的公开变量,在所述空闲容量不会低于预定阈值的范围内,将所述一个以上的公开变量各自的逻辑地址按照所述公开优先级的顺序而追加至所述地址信息113。应认为,本次揭示的实施方式在所有方面仅为例示而非限制者。本发明的范围是由权利要求而非所述说明所示,且意图包含与权利要求均等的含义及范围内的所有变更。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1