JP6065008B2 - 制御装置 - Google Patents

制御装置 Download PDF

Info

Publication number
JP6065008B2
JP6065008B2 JP2014521521A JP2014521521A JP6065008B2 JP 6065008 B2 JP6065008 B2 JP 6065008B2 JP 2014521521 A JP2014521521 A JP 2014521521A JP 2014521521 A JP2014521521 A JP 2014521521A JP 6065008 B2 JP6065008 B2 JP 6065008B2
Authority
JP
Japan
Prior art keywords
name
sql statement
user program
definition information
database system
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.)
Active
Application number
JP2014521521A
Other languages
English (en)
Other versions
JPWO2013191275A1 (ja
Inventor
弘太郎 岡村
弘太郎 岡村
西山 佳秀
佳秀 西山
岡 実
実 岡
太田 政則
政則 太田
勝 中崎
勝 中崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Omron Corp filed Critical Omron Corp
Publication of JPWO2013191275A1 publication Critical patent/JPWO2013191275A1/ja
Application granted granted Critical
Publication of JP6065008B2 publication Critical patent/JP6065008B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24564Applying rules; Deductive queries
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/4185Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by the network communication
    • G05B19/4186Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by the network communication by protocol, e.g. MAP, TOP
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31369Translation, conversion of protocol between two layers, networks
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Computational Linguistics (AREA)
  • Programmable Controllers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Description

本発明は、プログラマブルロジックコントローラ(PLC:Programmable Logic Controller)などの制御装置に関し、特に、データベースシステムへのアクセスを容易にするための技術に関する。
PLCなどの制御装置は、工場などの自動機械の制御などに用いられ、複数の入出力機能を有して、例えば、センサ等から出力される値を逐次、読みこんでデータを保持する。
また、近年、制御装置は、データベースシステムと接続して、制御装置で保持しているデータを、データベースシステムに蓄積する。これにより、データベースに接続する情報処理装置同士でのデータの共有を容易にしたり、各種データを収集して、データの集計や解析などを容易にしたりすることができる。例えば、特開2007−80286号公報(下記の特許文献1)は、PLCが持つI/Oデータをリアルタイムで上位コンピュータに伝達することができるデータ収集装置を開示する。
特開2007−80286号公報
PLC等の制御装置の制御プログラミングを行う技術者は、構造体など、制御プログラミングで用いられるデータ構造には習熟している場合が多い。一方、データベースの操作については、SQL文の記述などが必要となり、技術者にとって煩わしく、また、データベースの操作に習熟していない場合もある。通常、データベース運用のノウハウは、データベースを含む上位のコンピュータシステムのエンジニアの方が習熟している。
そこで、本発明は、PLC等の制御装置の制御プログラミングにおいて、技術者にとって、データベースへのアクセスを含むプログラミングを容易にする技術を提供することを目的とする。
一実施形態に従う、データベースシステムへアクセス可能な制御装置は、構造体型の変数を含むユーザプログラム、および、ユーザプログラムに含まれる構造体型の定義を示す定義情報を記憶するための記憶部と、定義情報を読み出して、読み出した定義情報に基づいて、ユーザプログラムの実行によるデータベースシステムへのアクセス時のSQL文を生成する生成部と、生成されるSQL文をデータベースシステムへ送信することによりSQL文を実行する実行部とを含む。
好ましくは、生成部は、実行されるユーザプログラムに対応する定義情報の定義に示される構造体タグ名およびメンバ名を抽出し、抽出した構造体タグ名およびメンバ名を、所定の変換規則に従ってデータベースシステムへアクセスするためのテーブル名およびフィールド名として決定することでSQL文を生成することとしてもよい。
好ましくは、生成部は、定義情報に基づいて、データベースシステムへアクセスするためのテーブル名およびフィールド名が特定された、値を含まないSQL文を生成し、実行部は、値を含まないSQL文を予めデータベースシステムへ送信し、ユーザプログラムの命令により構造体型の変数のメンバの値を抽出し、抽出された値をデータベースシステムへ送信することにより、SQL文を実行することとしてもよい。
好ましくは、記憶部は、定義情報に示される、構造体タグ名およびメンバ名の定義と、データベースシステムへアクセスするためのテーブル名およびフィールド名との変換規則を示すマッピング情報を記憶しており、生成部は、定義情報に示される構造体タグ名およびメンバ名と、マッピング情報に示される変換規則とに基づいて、SQL文を生成することとしてもよい。
好ましくは、生成部は、マッピング情報に示されるテーブル名およびフィールド名に基づいて、値を含まないSQL文を生成し、実行部は、値を含まないSQL文を予めデータベースシステムへ送信し、ユーザプログラムの命令により構造体型の変数のメンバの値を抽出し、抽出された値をデータベースシステムへ送信することにより、SQL文を実行することとしてもよい。
好ましくは、記憶部は、定義情報に示される、構造体タグ名およびメンバ名の定義と、データベースシステムへアクセスするためのテーブル名およびフィールド名との変換規則を示すマッピング情報を記憶するように構成され、ユーザプログラムは、定義情報に基づきマッピング情報を生成すべき旨の命令を含み、生成部は、ユーザプログラムに含まれる、マッピング情報を生成すべき旨の命令を実行することで、定義情報に基づいてマッピング情報を生成し、定義情報に示される構造体タグ名およびメンバ名と、生成されるマッピング情報に示される変換規則とに基づいて、SQL文を生成することとしてもよい。
上記の一実施形態によると、制御装置の制御プログラミングを行う技術者は、データベース操作のためのSQL文を意識せずとも、構造体型のデータ構造を用いて、データベースへのアクセスを含むプログラミングをすることができ、プログラミングが容易になる。
この発明の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解されるこの発明に関する次の詳細な説明から明らかとなるであろう。
本実施形態におけるPLCシステム全体の構成を示す図である。 PC10の機能を示すブロック図である。 DBサーバ20の機能を示すブロック図である。DBサーバ20は、大容量の記憶装置などを備えるコンピュータシステムである。 PLC30の機能を示すブロック図である。 データベーステーブル26を示す図である。 DBアクセス処理プログラム35が、SQL文を作成し実行する処理を示すフローチャートである。 ユーザプログラムの一例を示す図である。 SQL文の例を示す図である。 実施の形態2におけるPLC30の構成を示す機能ブロック図である。 マッピング情報41の例を示す図である。 実施の形態2におけるDBアクセス処理プログラム35の動作を示すフローチャートである。
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
<1 実施の形態1>
<1.1 実施の形態1の構成>
まず、本実施の形態に係る制御システムのシステム構成について説明する。本実施の形態においては、機械や設備などの制御対象を制御するプログラマブルコントローラ(PLC)を制御装置の典型例として説明を行う。ただし、本発明に係る制御装置は、PLCに限られることなく、各種の制御装置へ適用可能である。
図1は、本実施形態におけるPLCシステム全体の構成を示す図である。
まず概要を説明する。図1に示すように、PLCシステムは、PC(Personal Computer)10と、DB(Database)サーバ20と、PLC30と、スイッチングハブ40とを含む。PC10は、PLC30で動作させるユーザプログラムをユーザが作成するための情報処理装置である。DBサーバ20は、データベースを管理するため、DBMS(database management system)として機能するサーバである。
ユーザプログラムは、PLC30の利用者によって作成される。ユーザは、例えばPC10を操作することにより、データベースへのアクセス命令を含むプログラム(ソースプログラム)を作成することができる。PC10は、ソースプログラムを、PLC30において実行可能な形式に変換し、変換されたユーザプログラムをPLC30へ送信する。PLC30は、ユーザプログラムを実行し、ユーザプログラムに含まれるアクセス命令に従って、DBサーバ20にアクセスすることができる。
PLC30は、スイッチングハブ40と接続されており、スイッチングハブ40を経由してPC10およびDBサーバ20と接続される。PLC30は、センサ出力などを外部から受け付けており、データを蓄積する。PLC30は、蓄積されたデータを、後述するDBアクセス処理プログラム35の処理により、DBサーバ20へ送信する。図1に示す例では、PLCシステムが複数のPLC30を含む例を示しており、PLC30それぞれの主要な構成は同一である。スイッチングハブ40は、PC10など複数の機器と接続され、各機器間で送受信されるデータを転送する。
次に、各機器の構成の詳細について説明する。
<1.2 各機器の構成の詳細>
図2は、PC10の機能を示すブロック図である。
PC10は、MCU(Micro Control Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)等を備えるコンピュータシステム(情報処理装置)である。図2に示すように、PC10は、プログラミングツール12の機能を発揮する。プログラミングツール12は、PLC30を動作させるためのユーザプログラムをユーザが作成するための機能をPC10に発揮させるプログラムである。プログラミングツール12は、データ型定義部14と、プログラミング機能16との機能を含む。ユーザがプログラミングツール12により作成したユーザプログラムは、PLC30へ送信され、PLC30で実行される。
ユーザプログラムは、構造体型の変数を含む。データ型定義部14は、構造体型を定義するためのソフトウェアである。構造体型は、構造体タグ名や1つ以上のメンバ名で構成される。データ型定義部14は、構造体タグ名や、これら構造体のメンバ名やそのデータ型を定義する。データ型定義部14は、例えば、工場等の生産管理において用いられる各指標を示すために、構造体タグ名を「ProductionTable」とし、この構造体の各メンバを、生産される製品の名称を示す「Name」(データ型はString)、製品のロット番号を管理するための「LotNo」(データ型はInteger)、製品の製造の成功数を示す「SuccessCount」(データ型はInteger)、製品の製造の失敗数を示す「FailedCount」(データ型はInteger)とする構造体型を定義する。データ型定義部14は、このように構造体型を定義して、その定義内容を示す定義情報32を生成する。プログラミング機能16は、ユーザによるプログラム作成を支援するためのソフトウェアである。PC10は、これらソフトウェアをPC10において実行することにより、データ型定義部14およびプログラミング機能16の機能を発揮する。
図3は、DBサーバ20の機能を示すブロック図である。DBサーバ20は、大容量の記憶装置などを備えるコンピュータシステムである。
DBサーバ20は、データベースへの読み出しおよび書き込みを管理するDBMS22の機能を発揮する。DBMS22は、データベースとして機能するDB24を含む。DB24は、複数のデータベーステーブル26を保持する。
図4は、PLC30の機能を示すブロック図である。PLC30は、コンピュータシステムであり、ユーザプログラムを周期的に実行する。PLC30は、PLC30内のメモリ領域の情報を読み書きして、ユーザプログラムに示される命令を順に実行する。PLC30は、入出力機能を備えており、センサ出力などPLC30の外部からデータを受け付けて、データを蓄積する。PLC30は、蓄積されたデータをDBサーバ20へ送信する。
図4に示すように、PLC30の各機能は、OS31と、システムプログラム33と、ユーザプログラム38および定義情報32とにより構成される。OS31は、PLC30のコンピュータアーキテクチャに応じて設計されており、マイクロプロセッサ(図示しない)がシステムプログラム33およびユーザプログラム38を実行するための基本的な実行環境を提供する。
システムプログラム33は、PLC30としての基本的な機能を提供するためのソフトウェア群であり、OS31上で動作し、ラダープログラムの制御などの機能を発揮する。システムプログラム33は、シーケンス命令プログラム34と、DBアクセス処理プログラム35と、入出力処理プログラム36と、スケジューラ37とを含んでいる。シーケンス命令プログラム34は、PLC30内のメモリ領域の情報を読み書きしながら、ユーザプログラム38の命令を順に実行する。DBアクセス処理プログラム35は、シーケンス命令プログラム34がユーザプログラム38を実行することに伴って呼び出され、ユーザプログラム38がDBサーバ20へアクセスするための処理、例えばSQL文の生成などの処理を実行する。
入出力処理プログラム36は、PLC30が備える複数の入出力機能によるPLC30へのデータ入力およびPLC30からのデータ出力を制御する。各入出力機能は、それぞれメモリのアドレスと割りつけられている。各入出力機能に対応するメモリに保持されるデータは、PLC30の外部のデータと一括して周期的に交換される。スケジューラ37は、シーケンス命令プログラム34と、DBアクセス処理プログラム35と、入出力処理プログラム36との実行を制御する。
ユーザプログラム38は、ユーザによってPC10上で作成され、PLC30のメモリに保持されている。図4に示すように、ユーザプログラム38とシーケンス命令プログラム34とが制御プログラム39を構成する。すなわち、シーケンス命令プログラム34がユーザプログラム38を読み出して、命令を順に実行することで、PLC30にユーザ所望の制御動作を実行させる。
定義情報32は、ユーザプログラム38に含まれる構造体型の変数の定義を示す情報であり、構造体タグ名、構造体に含まれる各メンバ名や、これらのデータ型が定義される。
<2 データ>
次に、本実施形態で用いるデータについて、説明する。
図5は、データベーステーブル26を示す図である。データベーステーブル26は、上述のとおり、DBサーバ20のDBMS22で管理されている。
データベーステーブル26は、テーブルの名称を示すテーブル名称51と、テーブルのフィールド(Name52、LotNo53、SuccessCount54、FailedCount55、・・)とにより構成される。図5の例では、テーブル名称51に示されるように、テーブルの名称は「Production Table」であり、製品に関する情報をテーブルに格納している。Name52は、製品の名称を示す。LotNo53は、製品のロット番号を示す。SuccessCount54は、製品製造の成功数を示し、FailedCount55は、製品製造の失敗数を示す。
<3 動作>
次に、本実施形態におけるPC10、PLC30の動作について、図面を用いて詳しく説明する。
実施の形態1における動作の概要は、以下のとおりである。
ユーザは、PC10において、PLC30で実行させるユーザプログラムを作成する。ユーザは、DBサーバ20へアクセスするため、構造体型の変数を含むユーザプログラムを作成する。
PLC30は、PC10から、ユーザプログラム、および、定義情報32を受信して記憶する。シーケンス命令プログラム34は、ユーザプログラム38の命令を順に実行し、ユーザプログラム38の命令の実行により、構造体型の変数の、各メンバの値をメモリから抽出する。シーケンス命令プログラム34は、DBアクセス処理プログラム35を呼び出す命令に応じて、DBアクセス処理プログラム35に処理を渡す。DBアクセス処理プログラム35は、ユーザプログラム38の定義情報32に示される定義などを解析し、ユーザプログラム38に含まれるデータや、ユーザプログラム38の命令の実行により抽出された、構造体型の変数の、各メンバの値を用いて、DBサーバ20へアクセスするためのSQL文を生成する。DBアクセス処理プログラム35は、生成されるSQL文をDBサーバ20へ送信することで、SQL文を実行する(DBサーバ20にSQL文を実行させる)。
なお、本実施形態では、プログラミングツール12のデータ型定義部14は、構造体タグ名およびメンバ名と、各メンバのデータ型を、DBサーバ20に保持されるデータベーステーブル26のテーブル名およびフィールド名と対応づけて定義している。すなわち、構造体タグ名とテーブル名とが対応し、メンバ名とフィールド名とが対応している。このような定義が、ユーザプログラム38の定義情報32に含まれる。そのため、DBアクセス処理プログラム35は、定義情報32に含まれる構造体タグ名をそのままテーブル名として使用してSQL文を作成することができる。メンバ名とフィールド名についても同様である。なお、構造体を定義する構造体タグ名を、データベーステーブル26のテーブル名と対応づけることとしてもよい。
図6は、DBアクセス処理プログラム35が、SQL文を作成し実行する処理を示すフローチャートである。
ステップS70において、DBアクセス処理プログラム35は、定義情報32を読み出す。
ステップS72において、DBアクセス処理プログラム35は、定義情報32に示される構造体の定義を参照してメンバ名を抽出し、抽出したメンバ名をDB24を操作するためのフィールド名とする。
ステップS74において、DBアクセス処理プログラム35は、定義情報32に示される構造体の定義の構造体タグ名を抽出し、抽出した構造体タグ名をDB24を操作するためのテーブル名とする。
ステップS76において、DBアクセス処理プログラム35は、ユーザプログラム38の実行により抽出された、構造体の各メンバの値を読み出す。
ステップS78において、DBアクセス処理プログラム35は、ステップS72で取得されたフィールド名と、ステップS76で読み出された値とを対応づけて、ステップS74で取得されたテーブル名を用いてSQL文を生成する。
ステップS80において、DBアクセス処理プログラム35は、生成されたSQL文をDBサーバ20へ送信することにより、DBサーバ20のDB24を操作する。
これにより、PLC30を制御するためのユーザプログラムを作成するユーザにとっては、データベースを操作するためのSQL文の記述をしなくとも、DBMS22へアクセスすることができる。例えば、データベース操作に不慣れなユーザであっても、データベース操作のためのSQLの概念などを習得しなくとも、データベースへアクセスするユーザプログラムを作成することができる。
以下、ユーザプログラムの例や、SQL文の例について、具体的に説明する。
プログラミングツール12により作成されるユーザプログラムの例について、説明する。図7は、ユーザプログラムの一例を示す図である。
図7のユーザプログラム71に示されるように、ユーザは、構造体型のデータ構造を用いて、プログラミングを実施する。ユーザプログラム71の例は、構造体型の変数の変数名が「ProductionTable」である。なお、図7のユーザプログラム71が実行されることにより、各メンバの値が抽出される。例えば、DBアクセス処理プログラム35は、メンバ「Name」の値が「Product1」、メンバ「LotNo」の値が「100」、メンバ「SuccessCount」の値が「49」、メンバ「FailedCount」の値が「1」とPLC30のメモリから抽出し、図8に示すSQL文を作成してPLC30からDBサーバ20へ送信する。これにより、データベースが更新される。
ここで、「NJtoDBFunc」は、シーケンス命令プログラム34に予め用意されたライブラリ(DBアクセス処理プログラム35によりDBMS22へアクセスするためのライブラリ)をPLC30が呼び出して、PLC30がDBアクセス処理プログラム35によりDBMS22へアクセスするための命令を示す。「DBHandle」は、PLC30がDBMS22に接続する際のハンドルを示す。ハンドルは、ユーザプログラム38によるDBMS22への接続の初期段階で設定される。「Variable」は、このプログラムにおいて、PLC30からDBサーバ20へと値を渡す対象となる構造体型の変数の変数名(図7の例では、「ProductionTable」)を示す。「Done」「Error」は、出力用の命令であり、命令が完了した状態を示す。
ステップS78において生成されるSQL文の例について、具体的に説明する。図8は、SQL文の例を示す図である。なお、図8は、図7のユーザプログラム71と対応している。
なお、ステップS72、ステップS74において、DBサーバ20が保持する各データベーステーブル26のうち、PLC30がアクセスする対象となるテーブル名およびフィールド名が抽出されている。ステップS76において、DBアクセス処理プログラム35は、ユーザプログラム71の各命令の字句を解析し、メモリからデータベースの値を読み出す。図8のSQL文81に示されるように、テーブル名「ProductionTable」において、各フィールドの値を更新するためのSQL文がDBアクセス処理プログラム35により生成される。
なお、この図8の例では、データベースへのデータの追加をする場合を示しているが、SQL文は、データベースへの書き込み、読みこみ、また、データベースそのものを作成するものもあり、DBアクセス処理プログラム35は、これらSQL文を生成してDBサーバ20へ送信することにより、データベースを操作する。SQL文の例としては、Insert、Selectなどデータを操作する言語、DML(Data Manipulation Language)、DDL(Data Definition Language)なども利用できる。
<4 変形例>
(実施例1の変形例1)
なお、上記実施例1の説明では、DBアクセス処理プログラム35は、定義情報32に含まれる構造体タグ名を、そのままDBMS22へアクセスするためのテーブル名とし、定義情報32に含まれるメンバ名を、フィールド名とするものとして説明した。
DBアクセス処理プログラム35は、所定の変換規則に基づいて、定義情報32に含まれる構造体タグ名およびメンバ名を、DBMS22へアクセスするためのテーブル名およびフィールド名に変換するものとしてもよい。ここで、所定の変換規則とは、例えば、構造体の構造体タグ名やメンバ名を、DBMS22へのアクセスを可能とする文字列に変換するための規則である。例えば、(i)構造体タグ名またはメンバ名の一部の文字列を省略してテーブル名またはフィールド名とする、(ii)DBMS22において、テーブル名およびフィールド名としての使用を禁止する文字列が定義情報32の構造体タグ名またはメンバ名に含まれる場合に、これら文字列を削除または修正してテーブル名等として使用する等である。
(実施例1の変形例2)
上記実施例1の説明では、DBアクセス処理プログラム35は、図8に示されるような、ステップS76で読み出された値を含むSQL文を生成するものとして説明した。これに限らず、DBアクセス処理プログラム35は、まず値を含まないSQL文を生成し、予めDBMS22へ送信し、続いて、周期的に取得される値を取得する都度、DBMS22へ値を送信することによりDBMS22を操作するものとしてもよい。
例えば、DBアクセス処理プログラム35は、図6の例において、ステップS70、ステップS72、ステップS74までの処理により、DB24を操作するためのフィールド名とテーブル名とを決定し、決定したフィールド名およびテーブル名を用いて、値を含まないSQL文を生成する。値を含まないSQL文は、図8の例では、「VALUE」の項目が空欄(例えば、VALUE(?, ?, ?, ?))になる。DBアクセス処理プログラム35は、値を含まないSQL文をDBMS22へ予め送信する。続いて、DBアクセス処理プログラム35は、SQL文の値を、ユーザプログラム38の処理結果に基づいて、DBMS22へ送信する。例えば、図7および8の例では、値「('Product1', 100, 49, 1)」がDBアクセス処理プログラム35の処理によってPLC30からDBMS22へ送信される。このように、値を含まないSQL文と、値とをDBアクセス処理プログラム35の処理によってPLC30がDBMS22へ送信することにより、SQL文が実行される。
<5 実施の形態2>
次に、別の実施の形態について説明する。実施の形態1では、PLC30が、ユーザプログラム38および定義情報32に基づいて、定義情報32に示される構造体タグ名およびメンバ名を、そのままテーブル名およびフィールド名とする、または、所定の変換規則に基づいてテーブル名およびフィールド名に変換するものとして説明している。
これに対し、実施の形態2では、定義情報32に示される構造体タグ名およびメンバ名と、DBアクセス処理プログラム35がDBMS22へアクセスするためのテーブル名およびフィールド名との変換規則を示すマッピング情報41を、PLC30が保持している。DBアクセス処理プログラム35は、構造体タグ名に対応するマッピング情報41に基づいて、SQL文を生成する。
以下、具体的に説明する。図9は、実施の形態2におけるPLC30の構成を示す機能ブロック図である。実施の形態1との相違点は、PLC30がマッピング情報41を保持している点である。
図10は、マッピング情報41の例を示す図である。図10に示すように、マッピング情報41は、構造体タグ名と、DBMS22へアクセスするためのテーブル名とを対応づけている。また、マッピング情報41は、構造体の各メンバ名と、各フィールド名とを対応づけている。
マッピング情報41は、例えば、予めDBサーバ20の管理者等により作成されてPLC30が保持するか、データベーステーブル26のテーブル情報およびフィールド情報をPC10が取得して、データ型定義部14により定義される構造体タグ名やメンバ名との変換規則を管理者等がPC10により作成することとしてもよい。
<6 実施の形態2の動作>
図11は、実施の形態2におけるDBアクセス処理プログラム35の動作を示すフローチャートである。
実施の形態1と同様に、PLC30は、PC10からユーザプログラム、および、定義情報32を受信して記憶する。シーケンス命令プログラム34は、ユーザプログラム38の命令を順に実行し、ユーザプログラム38の命令の実行により、構造体型の変数の、各メンバの値をメモリから抽出する。シーケンス命令プログラム34は、DBアクセス処理プログラム35を呼び出す命令に応じて、DBアクセス処理プログラム35に処理を渡す。
以下、具体的に説明する。
ステップS110において、DBアクセス処理プログラム35は、ユーザプログラム38の定義情報32を読み出す。
ステップS112において、DBアクセス処理プログラム35は、定義情報32の構造体タグ名と、各メンバとに対応するテーブル名、フィールド名とをマッピング情報41から読み出す。
ステップS114において、DBアクセス処理プログラム35は、ユーザプログラム38の実行により抽出された、構造体の各メンバの値を読み出す。
ステップS118において、DBアクセス処理プログラム35は、ステップS112で読み出したテーブル名、フィールド名と、ステップS114で読み出した値を用いて、DBサーバ20へアクセスするためのSQL文を生成する。
ステップS120において、DBアクセス処理プログラム35は、生成されるSQL文をDBサーバ20へ送信することでSQL文を実行する。
上記実施の形態2によると、定義情報32と、DBMS22へアクセスするためのテーブル名およびフィールド名との変換規則を、マッピング情報41により示しているため、例えば、テーブル名およびフィールド名として使用できない文字列が構造体タグ名やメンバ名に含まれている場合にも、DBアクセス処理プログラム35は、マッピング情報41を参照することによりSQL文を生成することができる。また、DBMS22において、テーブル名およびフィールド名の命名規則が、ユーザにとって扱いにくい場合(例えば、テーブル名が人間にとって覚えにくい文字列など)であっても、DBアクセス処理プログラム35がマッピング情報41を参照してSQL文を生成するため、ユーザは、理解しやすい文字列を構造体タグ名やメンバ名に用いてユーザプログラム38を作成することができる。また、ユーザが自由に構造体タグ名やメンバ名を設定したい場合にも有効であり、ユーザは、SQLの概念に習熟していなくとも、プログラミングをすることができる。
実施の形態2において、マッピング情報41は、例えば、予めDBサーバ20の管理者等により作成されてPLC30が保持するものと説明した。この他に、ユーザプログラム38に、PLC30がマッピング情報41を生成すべき旨の命令を含めることとしてもよい。例えば、PC10は、定義情報32に示される構造体のデータの定義(構造体タグ名、メンバ名など)と、PLC30がDBMS22へアクセスするためのテーブル名およびフィールド名との変換規則を含むユーザプログラム38を生成する。このユーザプログラム38は、PLC30がマッピング情報41を生成すべき命令を含む。
PLC30は、シーケンス命令プログラム34がユーザプログラム38を実行し、ユーザプログラム38に含まれる、上記の変換規則およびマッピング情報41を生成すべき命令に応じてマッピング情報41を生成し、生成したマッピング情報41をメモリに保持する。DBアクセス処理プログラム35は、マッピング情報41を生成した以降の処理で、ユーザプログラム38に含まれる構造体型の変数に基づいて、メモリに保持されるマッピング情報41を参照してSQL文を生成する。これにより、PLC30がSQL文を生成する処理が高速化する。
また、上記実施の形態の説明では、ユーザの入力操作に応じてPC10が定義情報32とユーザプログラムとを生成し、生成された定義情報32とユーザプログラムとをそれぞれPC10からPLC30へ送信するものとして説明してきた。この他に、ユーザプログラムが定義情報32を含むものとしてもよい。PC10は、定義情報32を含むユーザプログラムを生成し、生成されたユーザプログラムをPLC30へ送信する。
このように各実施形態について説明してきたが、これら実施形態を組み合わせてもよいことはいうまでもない。以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
今回開示された実施の形態はすべての点で例示であって制限的なものでないと考えられるべきである。この発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
10 PC、12 プログラミングツール、14 データ型定義部、16 プログラミング機能、20 DBサーバ、22 DBMS、24 DB、26 データベーステーブル、30 PLC、31 OS、32 定義情報、33 システムプログラム、34 シーケンス命令プログラム、35 DBアクセス処理プログラム、36 入出力処理プログラム、37 スケジューラ、38 ユーザプログラム、39 制御プログラム、40 スイッチングハブ、41 マッピング情報、51 テーブル名称、52 Name、53 LotNo、54 SuccessCount、55 FailedCount、71 ユーザプログラム、81 SQL文。

Claims (6)

  1. データベースシステムへアクセス可能な制御装置であって、
    構造体型の変数を含むユーザプログラム、および、前記ユーザプログラムに含まれる前記構造体型の定義を示す定義情報を記憶するための記憶部と、
    前記定義情報を読み出して、読み出した当該定義情報に基づいて、前記ユーザプログラムの実行による前記データベースシステムへのアクセス時のSQL文を生成する生成部と、
    生成されるSQL文を前記データベースシステムへ送信することにより前記SQL文を実行する実行部とを含む、制御装置。
  2. 前記生成部は、
    前記実行されるユーザプログラムに対応する前記定義情報の定義に示される構造体タグ名およびメンバ名を抽出し、抽出した構造体タグ名およびメンバ名を、所定の変換規則に従って前記データベースシステムへアクセスするためのテーブル名およびフィールド名として決定することで前記SQL文を生成する、請求項1に記載の制御装置。
  3. 前記生成部は、
    前記定義情報に基づいて、前記データベースシステムへアクセスするためのテーブル名およびフィールド名が特定された、値を含まないSQL文を生成し、
    前記実行部は、前記値を含まないSQL文を予め前記データベースシステムへ送信し、前記ユーザプログラムの命令により前記構造体型の変数のメンバの値を抽出し、抽出された値を前記データベースシステムへ送信することにより、前記SQL文を実行する、請求項1に記載の制御装置。
  4. 前記記憶部は、前記定義情報に示される、構造体タグ名およびメンバ名の定義と、前記データベースシステムへアクセスするためのテーブル名およびフィールド名との変換規則を示すマッピング情報を記憶しており、
    前記生成部は、前記定義情報に示される構造体タグ名およびメンバ名と、前記マッピング情報に示される変換規則とに基づいて、前記SQL文を生成する、請求項1に記載の制御装置。
  5. 前記生成部は、
    前記マッピング情報に示されるテーブル名およびフィールド名に基づいて、値を含まないSQL文を生成し、
    前記実行部は、前記値を含まないSQL文を予め前記データベースシステムへ送信し、前記ユーザプログラムの命令により前記構造体型の変数のメンバの値を抽出し、抽出された値を前記データベースシステムへ送信することにより、前記SQL文を実行する、請求項4に記載の制御装置。
  6. 前記記憶部は、前記定義情報に示される、構造体タグ名およびメンバ名の定義と、前記データベースシステムへアクセスするためのテーブル名およびフィールド名との変換規則を示すマッピング情報を記憶するように構成され、
    前記ユーザプログラムは、前記定義情報に基づき前記マッピング情報を生成すべき旨の命令を含み、
    前記生成部は、
    前記ユーザプログラムに含まれる、前記マッピング情報を生成すべき旨の命令を実行することで、前記定義情報に基づいて前記マッピング情報を生成し、
    前記定義情報に示される構造体タグ名およびメンバ名と、前記生成される前記マッピング情報に示される前記変換規則とに基づいて、前記SQL文を生成する、請求項1に記載の制御装置。
JP2014521521A 2012-06-22 2013-06-21 制御装置 Active JP6065008B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012141378 2012-06-22
JP2012141378 2012-06-22
PCT/JP2013/067088 WO2013191275A1 (ja) 2012-06-22 2013-06-21 制御装置

Publications (2)

Publication Number Publication Date
JPWO2013191275A1 JPWO2013191275A1 (ja) 2016-05-26
JP6065008B2 true JP6065008B2 (ja) 2017-01-25

Family

ID=49768866

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014521521A Active JP6065008B2 (ja) 2012-06-22 2013-06-21 制御装置

Country Status (5)

Country Link
US (1) US10061809B2 (ja)
EP (1) EP2866108A4 (ja)
JP (1) JP6065008B2 (ja)
CN (1) CN104395845B (ja)
WO (1) WO2013191275A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5875737B1 (ja) * 2014-04-25 2016-03-02 三菱電機株式会社 情報連携支援装置、情報連携支援プログラム
KR101704145B1 (ko) * 2014-12-30 2017-02-08 주식회사 포스코아이씨티 이기종 데이터베이스를 지원하는 제어기 관리 스테이션 및 이를 포함하는 제어 시스템
JP2016194808A (ja) * 2015-03-31 2016-11-17 オムロン株式会社 プログラマブルロジックコントローラ、データ収集装置、データベースアクセス方法およびデータベースアクセスプログラム
CN106255930B (zh) * 2015-04-06 2019-03-01 三菱电机株式会社 可编程控制器***、可编程控制器以及显示装置
US10169351B2 (en) 2015-08-19 2019-01-01 International Business Machines Corporation Merging directory information from a user directory to a common directory
KR101986476B1 (ko) * 2017-04-17 2019-06-05 미쓰비시덴키 가부시키가이샤 프로그램 작성 장치
WO2019046752A1 (en) * 2017-08-31 2019-03-07 Schneider Electric Software, Llc DATA NETWORK FOR INDEXING OBJECTS
JP6737298B2 (ja) 2018-03-15 2020-08-05 オムロン株式会社 コントローラ、制御方法、および制御プログラム
JP6720994B2 (ja) * 2018-03-15 2020-07-08 オムロン株式会社 制御システム、コントローラ、および制御方法
CN109885532A (zh) * 2019-02-11 2019-06-14 中国银行股份有限公司 一种交易数据标准化方法和装置
JP7014199B2 (ja) * 2019-03-08 2022-02-01 オムロン株式会社 制御システム、情報処理装置、および情報処理プログラム
CN112015831A (zh) * 2020-09-09 2020-12-01 深圳市绿联科技有限公司 基于c语言对关系型数据库进行操作的方法、装置及设备

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001034513A (ja) * 1999-07-19 2001-02-09 Hitachi Ltd データ変換方法および装置並びにデータ変換プログラムを格納した記憶媒体
US6735594B1 (en) 2000-06-23 2004-05-11 International Business Machines Corporation Transparent parameter marker support for a relational database over a network
JP2002023812A (ja) * 2000-07-05 2002-01-25 Mitsubishi Materials Corp 自動制御システムおよび自動制御方法
JP2002099561A (ja) 2000-09-21 2002-04-05 Toshiba Corp データ変換方法およびデータ変換システム並びに記憶媒体
JP2002149652A (ja) * 2000-11-07 2002-05-24 Hitachi Ltd データベース検索処理方法及びその実施装置並びにその処理プログラムを記録した記録媒体
JP2003091530A (ja) * 2001-09-17 2003-03-28 Toshiba Corp 構造化データ変換方法、構造化データ変換プログラム、構造化データ変換装置
US7467018B1 (en) * 2002-11-18 2008-12-16 Rockwell Automation Technologies, Inc. Embedded database systems and methods in an industrial controller environment
JP4244677B2 (ja) * 2003-03-31 2009-03-25 三菱電機株式会社 Faコントローラ
US20060026193A1 (en) * 2004-08-02 2006-02-02 Rockwell Software, Inc. Dynamic schema for unified plant model
JP2006164090A (ja) 2004-12-10 2006-06-22 Hitachi Ltd データベース操作プログラムの自動生成装置
US7565351B1 (en) * 2005-03-14 2009-07-21 Rockwell Automation Technologies, Inc. Automation device data interface
US8065666B2 (en) * 2006-06-02 2011-11-22 Rockwell Automation Technologies, Inc. Change management methodologies for industrial automation and information systems
JP4961928B2 (ja) * 2006-09-26 2012-06-27 富士電機株式会社 シーケンスプログラム変換装置、および、プログラマブルコントローラのプログラミング装置
DE102006046643A1 (de) 2006-09-29 2008-04-03 Phoenix Contact Gmbh & Co. Kg Speicherprogrammierbare Steuereinrichtung mit integriertem Datenbanktreiber
JP2007080286A (ja) 2006-11-13 2007-03-29 Omron Corp データ収集装置
CN100456237C (zh) * 2007-01-31 2009-01-28 华为技术有限公司 数据库访问方法和装置
US7853336B2 (en) * 2007-02-27 2010-12-14 Rockwell Automation Technologies, Inc. Dynamic versioning utilizing multiple controller engine instances to limit complications
CN101714087A (zh) * 2009-12-15 2010-05-26 四川长虹电器股份有限公司 C语言结构体至关系数据库表的映射***及映射方法
JP5549556B2 (ja) * 2010-11-16 2014-07-16 富士電機株式会社 データ収集システム、データ収集システムの異常要因判定方法
JP6201298B2 (ja) 2012-11-14 2017-09-27 オムロン株式会社 コントローラおよびプログラム

Also Published As

Publication number Publication date
CN104395845A (zh) 2015-03-04
JPWO2013191275A1 (ja) 2016-05-26
US20150254305A1 (en) 2015-09-10
US10061809B2 (en) 2018-08-28
EP2866108A4 (en) 2015-11-04
WO2013191275A1 (ja) 2013-12-27
CN104395845B (zh) 2017-07-25
EP2866108A1 (en) 2015-04-29

Similar Documents

Publication Publication Date Title
JP6065008B2 (ja) 制御装置
EP3072275B1 (en) A method and a system for replacing and commissioning a field device
US20220058502A1 (en) Gateway and method for transforming a description of an industrial process equipment into a data information model
EP3042254B1 (en) Systems and methods for virtualizing a programmable logic controller
US7600234B2 (en) Method for launching applications
US20120290539A1 (en) Methods and apparatus for a file system on a programmable logic controller
US20200050163A1 (en) Process image within controllers enabling visibility and accessibility of real world objects
JP6751551B2 (ja) 汎用プロセスシステムライブラリに基づきプロセス制御システムを構成する方法および装置
US8032232B2 (en) Natively retaining project documentation in a controller
WO2014184962A1 (ja) プログラマブルコントローラとその周辺装置、およびプログラマブルコントローラのテーブルデータアクセスプログラム
JP6372308B2 (ja) 情報処理装置、情報処理方法、情報処理プログラム、および記録媒体
WO2015075790A1 (ja) シーケンスプログラム作成支援装置
CN112363695A (zh) Pmml文件及其运行时环境与工业软件的集成方法
JP2021096833A (ja) 電子デバイス記述言語(eddl)検索およびナビゲーションアシスタント
WO2018193503A1 (ja) プログラム作成装置
JP4780308B2 (ja) 制御プログラム開発支援装置及びコンピュータプログラム
WO2018174000A1 (ja) 構成管理装置、構成管理方法および記録媒体
JP7381290B2 (ja) 計算機システム及びデータの管理方法
Runde et al. EDDL and semantic web—From field device integration (FDI) to Future Device Management (FDM)
CN112020684B (zh) 信息处理装置、***构建辅助方法及存储有***构建辅助程序的非易失性存储装置
Listl et al. Utilizing ISA-95 in an Industrial Knowledge Graph for Material Flow Simulation-Semantic Model Extensions and Efficient Data Integration
EP4099106A1 (en) Validation logic for opc ua connected devices
US20240103826A1 (en) Collaborative work on translations in industrial system projects
JP7014199B2 (ja) 制御システム、情報処理装置、および情報処理プログラム
KR102188562B1 (ko) 시각 블록 언어 기반 IoT 응용 프로그램 개발 도구 및 그 동작 방법

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160719

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161006

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20161018

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161122

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161205

R150 Certificate of patent or registration of utility model

Ref document number: 6065008

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150