CN106021253A - 可编程逻辑控制器、数据收集装置、数据库访问方法及程序 - Google Patents
可编程逻辑控制器、数据收集装置、数据库访问方法及程序 Download PDFInfo
- Publication number
- CN106021253A CN106021253A CN201510801141.8A CN201510801141A CN106021253A CN 106021253 A CN106021253 A CN 106021253A CN 201510801141 A CN201510801141 A CN 201510801141A CN 106021253 A CN106021253 A CN 106021253A
- Authority
- CN
- China
- Prior art keywords
- data
- logic controller
- programmable logic
- plc
- record
- 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
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/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/24569—Query processing with adaptation to specific hardware, e.g. adapted for using GPUs or SSDs
-
- 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
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/15—Plc structure of the system
- G05B2219/15018—Communication, serial data transmission, modem
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供可编程逻辑控制器、数据收集装置、数据库访问方法及程序,在以不记述SQL语句的方式操作数据库的技术中,通过简易的结构将多条记录汇总来操作。可编程逻辑控制器(100)的数据库访问部(120)参照执行部(110)生成的数据组中包括的多个结构体数据及示出该结构体数据定义的定义数据,生成操作多条记录的SQL语句,并执行该SQL语句。
Description
技术领域
本发明涉及可编程逻辑控制器及数据收集装置、可编程逻辑控制器及数据收集装置的数据库访问方法以及用于可编程逻辑控制器及数据收集装置的数据库访问程序。
背景技术
本发明人等开发了如下技术:即使不记述用于数据库操作的SQL(Structured Query Language:结构化查询语言)语句,也能够进行包括对数据库的操作的编程(专利文献1)。
在专利文献1记载的技术中,能够访问数据库的可编程逻辑控制器存储包括结构体数据的用户程序及结构体定义信息。指令序列程序依次执行用户程序的指令,为了访问数据库而调用DB(Database:数据库)访问处理程序。DB访问处理程序读取结构体定义信息,根据读取的结构体定义信息,生成通过执行用户程序访问数据库时的SQL语句。DB访问处理程序执行生成的SQL语句。
专利文献1:国际公开WO2013/191275号手册(2013年12月27日公开)
在专利文献1记载的技术中,每次将一条记录的数据设置成结构体,并写入数据库。例如,如图6A所示,在定义了具有成员“ID”、成员“PTIME”、成员“DATA1”及成员“DATA2”的类型名为“RECORD”的结构体数据“RESULT”时,通过对结构体数据“RESULT”的各成员设置值,能够向如图6B所示的“实绩保存表”中插入一条记录。
但是,例如在工厂等收集并向数据库写入规定的实绩数据的情况下,可能存在该实绩数据的收集周期比将该实绩数据写入数据库所需要的时间短的情况。在该情况下,因为向数据库写入跟不上,所以存在不能将所期望的实绩数据写入数据库的可能性。
为了应对这样的问题,可以考虑:将多条记录的数据汇总并以适合于一条记录的方式加工,将加工后的数据设置成结构体,进行对数据库的写入;然后在数据库侧,将汇总的一条记录分离为原来的多条记录的方法(参考技术)。
例如,如图7A所示,在定义了具有与第一条记录对应的成员“D1_ID”、成员“D1_PTIME”、成员“D1_DATA1”及成员“D1_DATA2”以及与第二条记录对应的成员“D2_ID”、成员“D2_PTIME”、成员“D2_DATA1”及成员“D2_DATA2”的类型名为“RECORD2”的结构体“RESULT2”时,通过对结构体“RESULT2”的各成员设置值,能够作为一条记录插入如图7B所示的“实绩临时保存表”。而且,通过数据库侧的用户程序,通过将在“实绩临时保存表”中保存在一条记录中的数据分离为两条记录,能够生成如图7C所示的“实绩保存表”。
如此,通过将多条记录汇总来操作,即使在上述情况下也能够将所期望的实绩数据成功地写入数据库。
但是,在该方法中,需要在数据库侧的用户程序上下工夫,处理变得复杂。此外,考虑可编程逻辑控制器侧与数据库侧双方来构建系统非常困难。
发明内容
本发明是鉴于上述课题而提出的,其主要目的在于,在以不记述SQL语句的方式操作数据库的技术中,通过简易的结构将多条记录汇总来操作。
【用于解决课题的方法】
为了解决上述课题,本发明提供一种可编程逻辑控制器,能够访问数据库,其特征在于,具有:生成部,生成规定了一条记录的结构体数据,并且生成包括所生成的多个所述结构体数据的数据组;存储部,存储示出所述结构体数据定义的定义数据;数据库访问部,参照所述生成部生成的所述数据组所包括的所述多个结构体数据及存储于所述存储部的所述定义数据,生成操作多条记录的SQL语句,并执行该SQL语句。
通过上述结构,在生成部生成的数据组中,包括多个各自规定了一条记录的结构体数据。因此,数据库访问部通过参照该数据组,能够识别多条记录。而且,数据库访问部通过参照结构体数据的定义数据,能够识别记录的定义。由此,数据库访问部能够生成对分别与数据组所包括的多个结构体数据中的每一个对应的多条记录进行操作的SQL语句,通过执行该SQL语句,能够操作多条记录。如此,通过上述结构,能够在以不记述SQL语句的方式操作数据库的技术中,通过简易的结构将多条记录汇总来操作。
在本发明的可编程逻辑控制器中,所述数据组也可以包括将所述多个结构体数据进行排列的数组数据,以及示出所述多个结构体数据个数的个数数据。
通过上述结构,数据库访问部能够识别数据组所包括的结构体数据的个数。此外,因为多个结构体数据保存于数组数据,所以生成部能够容易地将多个结构体数据包括在数据组内,并且数据库访问部能够容易地读取每个结构体数据。由此,数据库访问部能够容易地生成上述SQL语句。
在本发明的可编程逻辑控制器中,也可以由所述生成部以与所述数据库访问部为了执行所述SQL语句而花费的时间相比更短的间隔,生成所述结构体数据。
通过上述结构,因为生成部以与数据库访问部为了执行SQL语句而花费的时间相比更短的间隔,生成结构体数据;所以如现有技术那样,每次将一条记录的数据设置成结构体,来操作数据库的情况下,存在数据库的操作跟不上的可能性。但是,因为通过本发明,能够将多条记录汇总来操作,所以即使生成部以与数据库访问部为了执行SQL语句而花费的时间相比更短的间隔,生成结构体数据,也能够成功地进行与生成的结构体数据对应的数据库的操作。
在本发明的可编程逻辑控制器中,所述SQL语句也可以请求插入或更新所述多条记录。
通过上述结构,能够汇总进行多条记录的插入或更新操作。
此外,本发明提供一种数据收集装置,与可编程逻辑控制器连接,并能够访问数据库,其特征在于,具有:获取部,从所述可编程逻辑控制器处获取数据;生成部,根据所述获取部获取的数据生成规定了一条记录的结构体数据,并且生成包括所生成的多个所述结构体数据的数据组;存储部,存储示出所述结构体数据定义的定义数据;数据库访问部,参照所述生成部生成的所述数据组所包括的所述多个结构体数据及存储于所述存储部的所述定义数据,生成操作多条记录的SQL语句,并执行该SQL语句。
通过上述结构,因为数据收集装置从可编程逻辑控制器处获取数据,根据获取的数据生成结构体数据,生成包括生成的多个结构体数据的数据组,参照该数据组及定义数据,生成操作多条记录的SQL语句,并执行该SQL语句,所以起到与本发明的可编程逻辑控制器相同的效果。
此外,本发明提供一种可编程逻辑控制器的数据库访问方法,可以包括:生成步骤,能够访问数据库的可编程逻辑控制器生成规定了一条记录的结构体数据,并且生成包括所生成的多个所述结构体数据的数据组;数据库访问步骤,所述可编程逻辑控制器参照在所述生成步骤中生成的所述数据组所包括的所述多个结构体数据及示出所述结构体数据定义的定义数据,生成操作多条记录的SQL语句,并执行该SQL语句。
此外,本发明提供一种数据库访问程序,可以使能够访问数据库的可编程逻辑控制器执行如下步骤:生成步骤,生成规定了一条记录的结构体数据,并且生成包括生成的多个所述结构体数据的数据组;数据库访问步骤,参照在所述生成步骤中生成的所述数据组所包括的所述多个结构体数据及示出所述结构体数据定义的定义数据,生成操作多条记录的SQL语句,并执行该SQL语句。
通过上述结构,起到与本发明的可编程逻辑控制器相同的效果。
此外,本发明提供一种数据收集装置的数据库访问方法,可以包括:获取步骤,与可编程逻辑控制器连接并能够访问数据库的数据收集装置从所述可编程逻辑控制器处获取数据;生成步骤,所述数据收集装置根据在所述获取步骤中获取的数据生成规定了一条记录的结构体数据,并且生成包括所生成的多个所述结构体数据的数据组;数据库访问步骤,所述数据收集装置参照在所述生成步骤中生成的所述数据组所包括的所述多个结构体数据及示出所述结构体数据定义的定义数据,生成操作多条记录的SQL语句,并执行该SQL语句。
此外,本发明提供一种数据库访问程序,可以使与所述可编程逻辑控制器连接的能够访问数据库的计算机执行如下步骤:获取步骤,从可编程逻辑控制器处获取数据;生成步骤,根据在所述获取步骤中获取的数据,生成规定了一条记录的结构体数据,并且生成包括生成的多个所述结构体数据的数据组;数据库访问步骤,参照在所述生成步骤中生成的所述数据组所包括的所述多个结构体数据及示出所述结构体数据定义的定义数据,生成操作多条记录的SQL语句,并执行该SQL语句。
通过上述结构,起到与本发明的数据收集装置相同的效果。
发明效果
通过本发明,能够在以不记述SQL语句的方式操作数据库的技术中,通过简易的结构将多条记录汇总来操作。
附图说明
图1是示出本发明的实施方式一的可编程逻辑控制器的概略结构的框图。
图2A、图2B是说明本发明的实施方式一的图,图2A示出定义结构体数据及数据组的例子,图2B示出通过该数据组操作的表的例子。
图3是说明本发明的实施方式一的数据库访问方法的流程图。
图4是示出本发明的实施方式二的数据收集装置的概略结构的框图。
图5是说明本发明的实施方式二的数据库访问方法的流程图。
图6A、图6B是说明现有技术的图,图6A示出定义结构体数据的例子,图6B示出通过该结构体数据操作的表的例子。
图7A至图7C是说明参考技术的图,图7A示出定义结构体数据的例子,图7B、图7C示出通过该结构体数据操作的表的例子。
其中,附图标记说明如下:
100 可编程逻辑控制器
110 执行部(生成部)
120 数据库访问部
130 存储部
200 数据库
300 数据收集装置
310 生成部
320 数据库访问部
330 存储部
340 获取部
400 可编程逻辑控制器
具体实施方式
(实施方式一)
本发明在一实施方式(实施方式一)中,提供能够访问数据库的可编程逻辑控制器。图1是示出实施方式一的可编程逻辑控制器100的概略结构的框图。如图1所示,可编程逻辑控制器100与数据库200连接。虽然在本实施方式中,数据库200构建于具有DBMS(database management system:数据库管理系统)的DB服务器内,但是并不限定于此。
并且,在本实施方式中,可编程逻辑控制器100与保存数据库200的DB服务器经由网络来连接。但是,本发明不限定于此,可编程逻辑控制器100与保存数据库200的DB服务器也可以直接有线或通过无线通信连接。此外,在变形例中,也可以在可编程逻辑控制器100内保存数据库200。
可编程逻辑控制器100是计算机系统,以重复执行用户程序的方式构成。特别是,可编程逻辑控制器100能够根据预先设定的时间(周期),周期性地执行用户程序。可编程逻辑控制器100读写可编程逻辑控制器100内的存储器区域的信息,按顺序执行在用户程序中示出的指令。可编程逻辑控制器100具有输入输出功能,从传感器等可编程逻辑控制器100的外部接收数据,并储存数据。可编程逻辑控制器100将储存的数据发送至DB服务器。
如图1所示,可编程逻辑控制器100具有:执行部(生成部)110、数据库访问部120及存储部130。执行部110执行OS(Operating System:操作系统)、系统程序及用户程序。但是,在OS及系统程序中关于数据库访问的部分,由数据库访问部120来执行。
OS是管理可编程逻辑控制器100的资源的操作系统,进行任务的调度。系统程序在OS上动作,发挥梯形图程序的控制等的功能。例如,系统程序包括:指令序列程序、输入输出处理程序及调度程序。指令序列程序读写可编程逻辑控制器100内的存储器区域的信息,并且按顺序执行用户程序的指令。输入输出处理程序根据可编程逻辑控制器100具有的多个输入输出功能,来控制对可编程逻辑控制器100的数据输入及来自可编程逻辑控制器100的数据输出。分别对各输入输出功能分配存储器的地址。按照周期,一并地将保持于与各输入输出功能对应的存储器的数据与可编程逻辑控制器100外部的数据进行交换。调度程序根据在可编程逻辑控制器100上执行的任务的优先级,进行任务的调度。
然后,执行部110通过执行用户程序,根据从外部的传感器等处获取的数据生成规定了应在数据库200中注册的一条记录的结构体数据,并且生成包括所生成的多个结构体数据的数据组。然后,执行部110为了访问数据库200,指定生成的数据组并调用数据库访问部120。这例如能够通过在控制程序内,调用规定的函数或方法执行。被调用的数据库访问部120通过执行与数据库访问相关的系统程序,参照包括多个结构体数据的数据组,执行SQL语句,来实现对数据库200的访问。
此外,在一变形例中,也可以在执行部110生成了数据组时,自动地调用数据库访问部120。
图2A是示出结构体数据及数据组的定义的一个例子的图。在图2A所示的例子中,规定了一条记录的结构体数据是具有成员“ID”、成员“PTIME”、成员“DATA1”及成员“DATA2”的类型名为“RECORD”的结构体数据;包括多个结构体数据的数据组是由类型名为“RECORD”的结构体数据的数组“RECORDS”及示出保存于数组“RECORDS”的结构体数据的个数“RECORDNUM”组成的类型名为“RECORDLIST”的数据组“RESULTS”。
并且,在本说明书中,“结构体数据”的意思是被赋予含义的多个数据的集合。
图2B是示出通过数据组“RESULTS”操作的表的一个例子的图。如图2B所示”实绩保存表”具有字段“ID”、字段“PTIME”、字段“DATA1”及字段“DATA2”,这些各字段与结构体数据的各成员一一对应。因此,通过结构体数据来规定一条记录。
虽然没有特别限定执行部110生成结构体数据及数据组的方法,但是在一实施方式中,执行部110也可以通过周期性地或非周期性地生成结构体数据,将生成的结构体数据依次保存于数组“RECORDS”,来生成数据组“RESULTS”。或者,也可以由执行部110将生成的结构体数据临时存储,在存储了规定数量的结构体数据时,通过将它们汇总保存于数组“RECORDS”,来生成数据组“RESULTS”。
并且,虽然在图2A所示的例子中,数据组包括将多个结构体数据进行排列的数组数据与示出多个结构体数据个数的个数数据,但是并不限定于此,数据组也可以包括多个结构体数据即可。但是,如后述所示,通过使数据组采用这样的结构,数据库访问部120能够恰当地生成SQL语句,并且因为执行部110也仅将生成的结构体数据保存至数组即可,所以能够将生成的多个结构体数据容易地包括在数据组内。
此外,如图2A示出的例子所示,数组数据即可以是固定长度数组,也可以是不定长度数组。
在本实施方式中,生成结构体数据及数据组的控制程序是用户能够按照所期望的目的进行输入的用户程序。
例如,用户通过使用能够与可编程逻辑控制器100连接的个人计算机上的编程工具生成用户程序,并将所述用户程序输入可编程逻辑控制器100,由此能够在可编程逻辑控制器100上设定用户程序。
这里,编程工具生成用户程序,并且生成示出在该用户程序中使用的结构体数据的定义的定义数据。然后,将定义数据与用户程序一起输入可编程逻辑控制器100。将输入至可编程逻辑控制器100的用户程序及定义数据存储于存储部130。
虽然没有特别限定定义数据的形式,但是例如可以是规定了结构体数据的变量名(在图2A的例子中,为“RESULTS”)及各成员名(在图2A的例子中为“ID”、“PTIME”、“DATA1”及“DATA2”)的如图2A所示的数据。此外,定义数据也可以还包括映射数据,所述映射数据规定了结构体数据的变量名与数据库200上的表名的对应关系以及规定了结构体数据的各成员名与数据库200上的表的各字段名的对应关系。在下面的说明中,定义数据包括据示出结构体数据的变量名“RESULTS”与表名“实绩保存表”对应的情况的映射数据。
并且,在一变形例中,生成结构体数据及数据组的控制程序也可以是系统程序。在该情况下,使示出在该系统程序中使用的结构体数据的定义的定义数据预先存储于存储部130即可。
如上所述,结构体数据包括与数据库200的记录的各字段对应的成员。用户程序生成与应注册于数据库200的记录对应的结构体数据。定义数据规定了结构体数据所包括的各成员的值与记录的哪个字段对应。数据库访问部120参照结构体数据及定义数据,获取应注册于数据库200的记录的各字段的值。由此,数据库访问部120能够对数据库200注册所期望的记录。
(数据库访问部)
在数据库访问部120在执行部110指定了数据组并被执行部110调用时,或通过执行部110生成了数据组时,执行对数据库的访问。
首先,数据库访问部120参照执行部110生成的数据组中所包括的多个结构体数据及存储部130中存储的定义数据,生成操作多条记录的SQL语句。若举一个例子说明关于生成SQL语句的详细情况,则如下所述。
数据库访问部120根据调用方式(例如,用户程序调用了哪个函数或方法),来决定要生成的SQL语句的类型(例如,插入记录的INSERT请求、更新记录的UPDATE请求等)。
接着,数据库访问部120参照定义数据生成已决定类型的SQL语句的雏形。例如,若为INSERT请求的SQL语句,则通过在“INSERT INTO<α>(<β>)VALUE(<γ>)”这样的字符串中,在<α>的位置上插入从定义数据中提取的结构体数据的变量名,在<β>的位置上列举从定义数据中提取的结构体数据的各成员名,能够生成SQL语句的雏形。
此外,在定义数据中包括规定了结构体数据的变量名与数据库200上的表名的对应关系及结构体数据的各成员名与数据库200上的表的各字段名的对应关系的映射数据的情况下,也可以代替结构体数据的变量名而插入在映射数据中建立关联的表名,代替结构体数据的各成员名而插入在映射数据中建立关联的各字段名。由此,例如,若为图2A所示的例子,则能够生成“INSERT INTO实绩保存表(ID、PTIME、DATA1、DATA2)VALUE(<γ>)”这样的SQL语句的雏形。
并且,既可以在数据库访问部120每次被调用时生成SQL语句的雏形,也可以一旦生成一次了所述SQL语句的雏形,则使存储部130存储所述SQL语句的雏形来进行再利用。
然后,数据库访问部120通过从数据组提取最初的结构体数据,将提取的结构体数据的各成员的值插入SQL语句的雏形的<γ>位置来生成SQL语句。对数据组所包括的所有的结构体数据进行该操作,生成多行SQL语句。
或者,在数据库200的DBMS与用于操作多条记录的特殊语法对应的情况下,也可以以符合该语法的方式生成SQL语句的雏形,来插入从数据组提取的多个结构体数据的各成员的值。
例如,本领域技术人员容易理解,在一部分的DBMS中通过“INSERTINTO<α>(<β>)VALUES(γ1)、(γ2)、…(γn)”((γ1)、(γ2)、…(γn)分别与各结构体数据对应)等的语法,能够通过一行SQL语句操作多条记录,及在其他的DBMS中通过“BULK INSERT”处理,能够一次注册多条记录。
并且,在本实施方式中,数据组包括:数组数据,将多个结构体数据进行排列;个数数据,示出多个结构体数据的个数。因此,因为数据库访问部120能够识别数据组所包括的结构体数据的个数,所以能够恰当地进行根据SQL语句的雏形生成SQL语句的步骤的重复控制。此外,因为多个结构体数据保存于数组数据,所以数据库访问部120能够容易地读取每个结构体数据。
根据上述内容,数据库访问部120能够生成SQL语句,所述SQL语句用于操作分别与数据组所包括的多个结构体数据中的每一个对应的多条记录。
然后,数据库访问部120通过执行生成的SQL语句(包括对数据库200的DBMS发送SQL语句并且接收与已发送的SQL语句对应的响应。),来执行对数据库200的访问;其结果是,能够对图2B所示的“实绩保存表”添加多条记录等。
如上所述,因为数据库访问部120能够根据数据组生成SQL语句,所以通过可编程逻辑控制器100,能够以不记述SQL语句的方式操作数据库200。此外,在执行部110生成的数据组中包括多个各自规定了一条记录的结构体数据。因此,数据库访问部120通过参照该数据组,能够识别多条记录。而且,数据库访问部120通过参照结构体数据的定义数据,能够识别记录的定义。由此,数据库访问部120能够生成SQL语句,所述SQL语句操作分别与数据组所包括的多个结构体数据中的每一个对应的多条记录;通过执行该SQL语句,能够操作多条记录。由此,通过可编程逻辑控制器100,能够在以不记述SQL语句的方式操作数据库的技术中,通过简易的结构将多条记录汇总来操作。
特别是,即使在与数据库访问部120为了执行SQL语句而花费的时间相比更短的间隔内,执行部110生成结构体数据的情况下,因为可编程逻辑控制器100能够汇总处理多个结构体数据,所以能够成功地进行处理。
即,在与数据库访问部120为了执行SQL语句而花费的时间相比更短的间隔内,执行部110生成结构体数据的情况下,若如现有技术那样,在每次将一条记录的数据设置为结构体操作数据库的情况下,存在数据库的操作跟不上的可能性。但是,因为通过可编程逻辑控制器100,能够将多条记录汇总来操作,所以即使在与数据库访问部120为了执行SQL语句而花费的时间相比更短的间隔内,执行部110生成结构体数据,也能够成功地进行与生成的结构体数据对应的数据库200的操作。
并且,数据库访问部120为了执行SQL语句而花费的时间是指,数据库访问部120访问数据库200所需要的时间。在本实施方式中,因为可编程逻辑控制器100与数据库200位于分开的位置并经由网络连接,所以可编程逻辑控制器100访问数据库200很花费时间。因此,容易出现执行部110在与数据库访问部120为了执行SQL语句而花费的时间相比更短的间隔内,生成结构体数据的情况。并且,即使采用可编程逻辑控制器100与数据库200直接连接的结构或在可编程逻辑控制器100内具有数据库200的结构,一般而言,数据库访问部120为了执行SQL语句而花费的时间与可编程逻辑控制器100本来的处理(控制处理的周期)相比,更花费时间。因此,可能出现在与数据库访问部120为了执行SQL语句而花费的时间相比更短的间隔内,执行部110生成结构体数据的情况。因此,在任一结构中本发明都有效。
虽然未图示,可编程逻辑控制器100也可以还具有:OS执行部,执行操作系统;接口部,用于进行与外部的传感器等的输入输出;通信接口部,用于与数据库200通信;以及电源部等。
此外,存储部130中也可以存储数据库访问部120进行数据库访问的结果日志,在数据库访问部120访问数据库失败的情况下,也可以暂时地存储发送数据。此外,在变形例中,也可以使存储部130存储数据库200。
(数据库访问方法)
图3是说明本实施方式的数据库访问方法的流程图。通过能够访问数据库200的可编程逻辑控制器100来执行本数据库访问方法。
首先,可编程逻辑控制器100生成规定了一条记录的结构体数据,并且生成包括生成的多个所述结构体数据的数据组(生成步骤)。详细来说,在步骤S1中,执行部110生成规定了一条记录的结构体数据;在步骤S2中,执行部110生成包括生成的多个结构体数据的数据组。
接着,可编程逻辑控制器100参照在生成步骤中生成的数据组中所包括的多个结构体数据及示出结构体数据的定义的定义数据,生成操作多条记录的SQL语句,并执行该SQL语句(数据库访问步骤)。详细来说,在步骤S3中,数据库访问部120参照执行部110生成的数据组中所包括的多个结构体数据及存储于存储部130的定义数据,生成操作多条记录的SQL语句;在步骤S4中,数据库访问部120执行SQL语句。
根据上述内容,能够在以不记述SQL语句的方式操作数据库的技术中,通过简易的结构将多条记录汇总来操作。即,(1)从执行部110向数据库访问部120传递数据时,虽然以往是一条记录一条记录地传递,但是在此能够作为汇总的数据组来传递,并且,(2)从数据库访问部120开始到数据库200(的DBMS)为止,能够汇总一并地进行通过多个指令来执行的数据库操作指令,所以能够实现效率化。
(变形例)
并且,在一变形例中,可编程逻辑控制器100也可以结合如下方法来实施,即,如专利文献1中记载的技术所示,执行部110生成结构体数据,数据库访问部120参照结构体数据及该结构体数据的定义数据生成SQL语句,来操作一条记录。例如,也可以在执行部110生成结构体数据的间隔较短的情况下,实施本实施方式的数据库访问方法;而在执行部110生成结构体数据的间隔较长的情况下,实施现有技术的方法。
(实施方式二)
此外,本发明在另一实施方式(实施方式二)中,提供与可编程逻辑控制器连接的能够访问数据库的数据收集装置。图4是示出实施方式二的数据收集装置300的概略结构的框图。如图4所示,数据收集装置300与可编程逻辑控制器400及数据库200连接。数据库200具有与实施方式一相同的功能。可编程逻辑控制器400从外部的传感器等处获取数据,并输出至数据收集装置300。
数据收集装置300是计算机,例如是IPC(Industrial Personal Computer:工业控制计算机),具有生成部310、数据库访问部320、存储部330及获取部340。
获取部340从可编程逻辑控制器400处获取由可编程逻辑控制器400从外部的传感器等处获取的数据,并输出至生成部310。对于获取部340从可编程逻辑控制器400处获取数据的时机并未作特别限定,能够周期性地或非周期性地执行。此外,也可以是按照事件从可编程逻辑控制器400侧向获取部340通知数据的结构。
生成部310根据获取部340获取的数据生成规定了应在数据库200中注册的一条记录的结构体数据,并且生成包括生成的多个结构体数据的数据组。然后,生成部310为了访问数据库200,指定生成的数据组并调用数据库访问部320。
生成部310生成数据组的方法及调用数据库访问部320的方法,能够以与实施方式一中的可编程逻辑控制器100的执行部110相同的方式来进行。即,生成部310也可以按照周期执行控制程序,进行数据组的生成及数据库访问部320的调用。
此外,在存储部330中与实施方式一中的可编程逻辑控制器100的存储部130一样,存储有定义数据。
此外,数据库访问部320生成并执行SQL语句的方法,能够以与实施方式一中的可编程逻辑控制器100的数据库访问部120相同的方式来进行。
图5是说明本实施方式的数据库访问方法的流程图。通过数据收集装置300来执行本数据库访问方法,所述数据收集装置300与可编程逻辑控制器400连接并能够访问数据库200。
首先,数据收集装置300从可编程逻辑控制器400处获取数据(获取步骤)。详细来说,在步骤S11中,获取部340从可编程逻辑控制器400处获取可编程逻辑控制器400从外部的传感器等处获取的数据。
接着,数据收集装置300根据在获取步骤中获取的数据生成规定了一条记录的结构体数据,并且生成包括生成的多个结构体数据的数据组(生成步骤)。详细来说,在步骤S12中,生成部310根据获取部340从可编程逻辑控制器400处获取的数据生成规定了一条记录的结构体数据;在步骤S13中,生成部310生成包括生成的多个结构体数据的数据组。
接着,数据收集装置300参照在生成步骤中生成的数据组中所包括的多个结构体数据及示出结构体数据定义的定义数据,生成操作多条记录的SQL语句,并执行该SQL语句(数据库访问步骤)。详细来说,在步骤S14中,数据库访问部320参照生成部310生成的数据组中所包括的多个结构体数据及存储于存储部330的定义数据,生成操作多条记录的SQL语句;在步骤S15中,数据库访问部320执行SQL语句。
根据上述内容,能够在以不记述SQL语句的方式操作数据库的技术中,通过简易的结构将多条记录汇总来操作。
(软件的实现例)
可编程逻辑控制器100及数据收集装置300的控制模块(特别是,执行部110、数据库访问部120、生成部310、数据库访问部320及获取部340)既可以通过形成于集成电路(IC(Integrated Circuit)芯片)等的逻辑电路(硬件)来实现,也可以使用CPU(Central Processing Unit:中央处理单元)通过软件来实现。
在后者的情况下,可编程逻辑控制器100及数据收集装置300具有如下构件等:CPU,执行实现各功能的软件即数据库访问程序的指令;ROM(ReadOnly Memory:只读型存储器)或存储装置(将它们称为“存储介质”),以通过计算机(或CPU)能够读取的方式将上述数据库访问程序及各种数据存储;RAM(Random Access Memory:随机存取存储器),将上述程序展开。而且,通过计算机(或CPU)从上述存储介质处读取并执行上述数据库访问程序,来实现本发明的目的。作为上述存储介质,能够使用“非易失性的有形介质”,例如,磁带、盘、卡、半导体存储器、可编程的逻辑电路等。此外,也可以经由能够传输该数据库访问程序的任意传输介质(通信网络或广播波等)将上述数据库访问程序供给至上述计算机。并且,本发明也可以通过利用电子传输实现了上述数据库访问程序的、在载波中嵌入的数据信号的方式来实现。
本发明不限定于上述各实施方式,在权利要求书所示的范围内能够进行各种变更,通过对分别在不同的实施方式中公开的技术手段进行恰当组合能够获得的实施方式也包括在本发明的技术范围内。
产业上的利用可能性
本发明可以在可编程逻辑控制器及其外围设备上利用。
Claims (9)
1.一种可编程逻辑控制器,能够访问数据库,其特征在于,具有:
生成部,生成规定了一条记录的结构体数据,并且生成包括所生成的多个所述结构体数据的数据组;
存储部,存储示出所述结构体数据的定义的定义数据;
数据库访问部,参照所述生成部生成的所述数据组所包括的所述多个结构体数据及存储于所述存储部的所述定义数据,生成操作多条记录的SQL语句,并执行该SQL语句。
2.如权利要求1所述的可编程逻辑控制器,其特征在于,
所述数据组包括:
数组数据,将所述多个结构体数据进行排列;
个数数据,示出所述多个结构体数据的个数。
3.如权利要求1或2所述的可编程逻辑控制器,其特征在于,
所述生成部以与所述数据库访问部为了执行所述SQL语句而花费的时间相比更短的间隔,生成所述结构体数据。
4.如权利要求1至3中任一项所述的可编程逻辑控制器,其特征在于,
所述SQL语句用于请求插入或更新所述多条记录。
5.一种数据收集装置,与可编程逻辑控制器连接,并能够访问数据库,其特征在于,具有:
获取部,从所述可编程逻辑控制器处获取数据;
生成部,根据所述获取部获取的数据生成规定了一条记录的结构体数据,并且生成包括所生成的多个所述结构体数据的数据组;
存储部,存储示出所述结构体数据的定义的定义数据;
数据库访问部,参照所述生成部生成的所述数据组所包括的所述多个结构体数据及存储于所述存储部的所述定义数据,生成操作多条记录的SQL语句,并执行该SQL语句。
6.一种可编程逻辑控制器的数据库访问方法,其特征在于,包括:
生成步骤,能够访问数据库的可编程逻辑控制器生成规定了一条记录的结构体数据,并且生成包括所生成的多个所述结构体数据的数据组;
数据库访问步骤,所述可编程逻辑控制器参照在所述生成步骤中生成的所述数据组所包括的所述多个结构体数据及示出所述结构体数据的定义的定义数据,生成操作多条记录的SQL语句,并执行该SQL语句。
7.一种数据库访问程序,其特征在于,使能够访问数据库的可编程逻辑控制器执行如下步骤:
生成步骤,生成规定了一条记录的结构体数据,并且生成包括所生成的多个所述结构体数据的数据组;
数据库访问步骤,参照在所述生成步骤中生成的所述数据组所包括的所述多个结构体数据及示出所述结构体数据的定义的定义数据,生成操作多条记录的SQL语句,并执行该SQL语句。
8.一种数据收集装置的数据库访问方法,其特征在于,包括:
获取步骤,与可编程逻辑控制器连接并能够访问数据库的数据收集装置从所述可编程逻辑控制器处获取数据;
生成步骤,所述数据收集装置根据在所述获取步骤中获取的数据生成规定了一条记录的结构体数据,并且生成包括所生成的多个所述结构体数据的数据组;
数据库访问步骤,所述数据收集装置参照在所述生成步骤中生成的所述数据组所包括的所述多个结构体数据及示出所述结构体数据的定义的定义数据,生成操作多条记录的SQL语句,并执行该SQL语句。
9.一种数据库访问程序,其特征在于,使与所述可编程逻辑控制器连接并能够访问数据库的计算机执行如下步骤:
获取步骤,从可编程逻辑控制器处获取数据;
生成步骤,根据在所述获取步骤中获取的数据,生成规定了一条记录的结构体数据,并且生成包括所生成的多个所述结构体数据的数据组;
数据库访问步骤,参照在所述生成步骤中生成的所述数据组所包括的所述多个结构体数据及示出所述结构体数据的定义的定义数据,生成操作多条记录的SQL语句,并执行该SQL语句。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015074291A JP2016194808A (ja) | 2015-03-31 | 2015-03-31 | プログラマブルロジックコントローラ、データ収集装置、データベースアクセス方法およびデータベースアクセスプログラム |
JP2015-074291 | 2015-03-31 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106021253A true CN106021253A (zh) | 2016-10-12 |
Family
ID=54705079
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510801141.8A Pending CN106021253A (zh) | 2015-03-31 | 2015-11-19 | 可编程逻辑控制器、数据收集装置、数据库访问方法及程序 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20160291564A1 (zh) |
EP (1) | EP3076309A1 (zh) |
JP (1) | JP2016194808A (zh) |
CN (1) | CN106021253A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112015831A (zh) * | 2020-09-09 | 2020-12-01 | 深圳市绿联科技有限公司 | 基于c语言对关系型数据库进行操作的方法、装置及设备 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018193503A1 (ja) * | 2017-04-17 | 2018-10-25 | 三菱電機株式会社 | プログラム作成装置 |
JP6720994B2 (ja) | 2018-03-15 | 2020-07-08 | オムロン株式会社 | 制御システム、コントローラ、および制御方法 |
JP6737298B2 (ja) | 2018-03-15 | 2020-08-05 | オムロン株式会社 | コントローラ、制御方法、および制御プログラム |
JP7014199B2 (ja) | 2019-03-08 | 2022-02-01 | オムロン株式会社 | 制御システム、情報処理装置、および情報処理プログラム |
JP7044086B2 (ja) | 2019-03-15 | 2022-03-30 | オムロン株式会社 | 制御システム、制御方法、および制御プログラム |
JP7088104B2 (ja) | 2019-03-27 | 2022-06-21 | オムロン株式会社 | 制御システム、および制御方法 |
JP7131455B2 (ja) | 2019-03-27 | 2022-09-06 | オムロン株式会社 | ユニット、ユニットの制御方法、および、ユニットの制御プログラム |
JP7379888B2 (ja) | 2019-07-08 | 2023-11-15 | オムロン株式会社 | 制御システム、および制御方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080168025A1 (en) * | 2007-01-04 | 2008-07-10 | International Business Machines Corporation | Methods, systems, and computer program products for reducing database workload volume |
US7725501B1 (en) * | 2004-11-12 | 2010-05-25 | Northrop Grumman Corporation | System and method for rapid database application deployment and use |
US20130086126A1 (en) * | 2011-09-30 | 2013-04-04 | Tata Consultancy Services Limited | Testing sql query writing skills |
CN103838781A (zh) * | 2012-11-27 | 2014-06-04 | 中兴通讯股份有限公司 | 数据库访问方法及系统 |
CN104063425A (zh) * | 2014-06-04 | 2014-09-24 | 五八同城信息技术有限公司 | 通过数据库中间件查询数据的方法和数据库中间件 |
CN104395845A (zh) * | 2012-06-22 | 2015-03-04 | 欧姆龙株式会社 | 控制装置 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6189004B1 (en) * | 1998-05-06 | 2001-02-13 | E. Piphany, Inc. | Method and apparatus for creating a datamart and for creating a query structure for the datamart |
JP3738803B2 (ja) * | 1998-07-17 | 2006-01-25 | オムロン株式会社 | データ収集制御装置 |
JP2003140933A (ja) * | 2001-11-06 | 2003-05-16 | Nec Soft Ltd | 汎用データベース組込システム |
US8458200B2 (en) * | 2002-02-26 | 2013-06-04 | International Business Machines Corporation | Processing query conditions having filtered fields within a data abstraction environment |
US7512614B2 (en) * | 2003-06-12 | 2009-03-31 | International Business Machines Corporation | System and method for data ETL in a data warehouse environment |
US7565351B1 (en) * | 2005-03-14 | 2009-07-21 | Rockwell Automation Technologies, Inc. | Automation device data interface |
JP5365128B2 (ja) * | 2008-10-03 | 2013-12-11 | 富士通株式会社 | 一括登録されるデータに係る情報システム、方法、およびプログラム |
JP5549556B2 (ja) * | 2010-11-16 | 2014-07-16 | 富士電機株式会社 | データ収集システム、データ収集システムの異常要因判定方法 |
JP5694236B2 (ja) * | 2012-05-28 | 2015-04-01 | 株式会社東芝 | 文書検索装置、方法およびプログラム |
JP2014026368A (ja) * | 2012-07-25 | 2014-02-06 | Canon Marketing Japan Inc | 情報処理装置、その制御方法、及びプログラム |
JP6287506B2 (ja) * | 2014-04-04 | 2018-03-07 | 富士通株式会社 | データベースアクセス制御プログラム、データベースアクセス制御方法、及び情報処理装置 |
-
2015
- 2015-03-31 JP JP2015074291A patent/JP2016194808A/ja active Pending
- 2015-11-19 CN CN201510801141.8A patent/CN106021253A/zh active Pending
- 2015-11-23 US US14/948,450 patent/US20160291564A1/en not_active Abandoned
- 2015-11-25 EP EP15196266.9A patent/EP3076309A1/en not_active Withdrawn
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7725501B1 (en) * | 2004-11-12 | 2010-05-25 | Northrop Grumman Corporation | System and method for rapid database application deployment and use |
US20080168025A1 (en) * | 2007-01-04 | 2008-07-10 | International Business Machines Corporation | Methods, systems, and computer program products for reducing database workload volume |
US20130086126A1 (en) * | 2011-09-30 | 2013-04-04 | Tata Consultancy Services Limited | Testing sql query writing skills |
CN104395845A (zh) * | 2012-06-22 | 2015-03-04 | 欧姆龙株式会社 | 控制装置 |
CN103838781A (zh) * | 2012-11-27 | 2014-06-04 | 中兴通讯股份有限公司 | 数据库访问方法及系统 |
CN104063425A (zh) * | 2014-06-04 | 2014-09-24 | 五八同城信息技术有限公司 | 通过数据库中间件查询数据的方法和数据库中间件 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112015831A (zh) * | 2020-09-09 | 2020-12-01 | 深圳市绿联科技有限公司 | 基于c语言对关系型数据库进行操作的方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
JP2016194808A (ja) | 2016-11-17 |
EP3076309A1 (en) | 2016-10-05 |
US20160291564A1 (en) | 2016-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106021253A (zh) | 可编程逻辑控制器、数据收集装置、数据库访问方法及程序 | |
CN109815252A (zh) | 测试数据生成方法、装置、计算机设备及可读存储介质 | |
CN105209988B (zh) | 监视控制系统以及控制装置 | |
US11893364B2 (en) | Accelerating application modernization | |
CN110275861B (zh) | 数据存储方法及装置、存储介质、电子装置 | |
CN104809062B (zh) | 一种人工智能应答系统的测试方法及系统 | |
CN104572122A (zh) | 一种软件应用数据的生成装置及方法 | |
CN106796533A (zh) | 自适应地选择执行模式的系统和方法 | |
CN106598874A (zh) | 一种软件自动化测试方法及装置 | |
CN103778179A (zh) | 数据库分析装置和数据库分析方法 | |
CN110134665B (zh) | 基于流量镜像的数据库自学习优化方法及装置 | |
CN108664657A (zh) | 一种大数据任务调度方法、电子设备、存储介质及平台 | |
CN110298007A (zh) | 用户行为统计方法、装置、电子设备及计算机可读存储介质 | |
CN104662564A (zh) | 数据分析装置以及程序 | |
CN107193738A (zh) | 一种基于功能点覆盖动态调整随机约束的验证方法 | |
CN107357721A (zh) | 测试系统的方法及装置 | |
CN111143196A (zh) | 数据库的测试方法以及装置 | |
US20080189095A1 (en) | Method and tool for generating simulation case for ic device | |
CN108875017A (zh) | 一种基于Sqoop技术的海量数据同步系统及方法 | |
CN107844360A (zh) | 一种硬盘执行应用代码的方法及装置 | |
CN110414669A (zh) | 一种加速神经网络结构选择的方法 | |
CN105868349A (zh) | 一种作物品种区域试验数据采集方法 | |
CN109376154A (zh) | 数据读取、写入方法及数据读取、写入系统 | |
Hammond et al. | Emergent properties of plants competing in silico for space and light: Seeing the tree from the forest | |
CN108255688A (zh) | 应用程序日志的显示方法、存储介质、电子设备及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20161012 |
|
WD01 | Invention patent application deemed withdrawn after publication |