JP6370503B1 - プログラム作成装置 - Google Patents

プログラム作成装置 Download PDF

Info

Publication number
JP6370503B1
JP6370503B1 JP2017562385A JP2017562385A JP6370503B1 JP 6370503 B1 JP6370503 B1 JP 6370503B1 JP 2017562385 A JP2017562385 A JP 2017562385A JP 2017562385 A JP2017562385 A JP 2017562385A JP 6370503 B1 JP6370503 B1 JP 6370503B1
Authority
JP
Japan
Prior art keywords
program
database
definition
creation device
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.)
Active
Application number
JP2017562385A
Other languages
English (en)
Other versions
JPWO2018193503A1 (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Application granted granted Critical
Publication of JP6370503B1 publication Critical patent/JP6370503B1/ja
Publication of JPWO2018193503A1 publication Critical patent/JPWO2018193503A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/10Programme control other than numerical control, i.e. in sequence controllers or logic controllers using selector switches
    • G05B19/102Programme control other than numerical control, i.e. in sequence controllers or logic controllers using selector switches for input of programme steps, i.e. setting up sequence
    • 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/41835Total 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 programme execution
    • 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/42Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine
    • 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/242Query formulation
    • G06F16/2428Query predicate definition using graphical user interfaces, including menus and forms
    • 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/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • 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/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23246Create control program by demonstrating behaviours using widget and inferencing them
    • 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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Manufacturing & Machinery (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Operations Research (AREA)
  • Programmable Controllers (AREA)

Abstract

本発明にかかるプログラム作成装置(1)は、プログラマブルロジックコントローラ内のデータベースの構成を示す情報であるデータベース定義情報を取得する定義情報取得部(11)と、データベースを操作するプログラムの作成に使用するプログラム部品をデータベース定義情報に基づいて生成するプログラム部品生成部(13)と、を備える。

Description

本発明は、プログラマブルロジックコントローラで実行するプログラムを作成するプログラム作成装置に関する。
近年、プログラマブルコントローラ(Programmable Logic Controllers、以下、PLCと記載する)は、生産レシピ等の大容量のデータを取り扱うケースが増えてきている。大容量のデータをラダープログラムで取り扱う場合、プログラムが煩雑になり、また大容量のデータから条件に一致するデータの検索や更新を行うのは困難であった。そのため、データベース機能を有するPLCも普及しつつある(特許文献1)。
特許文献1に記載のPLCは、PLCが実行するラダープログラムで使用される命令として、データベースを操作するための命令であるデータベースアクセス用命令を定義し、データベースアクセス用命令を検出するとSQL(Structured Query Language)の命令に変換する。これによりデータベースを操作する際の工程数を削減して容易に大容量データを取り扱えるようにしている。データベースアクセス用命令は、ラダープログラムでデータベースを操作できるようにSQLの操作を命令名とし、条件をデバイスに割り付けたものとなっている。また、特許文献1には、データベースアクセス用命令として、データベースからのデータの読み出し、データベースへのデータの追加、データベース内のデータの変更、データベース内のデータの削除といった命令を定義することが記載されている。
特許第5518266号公報
しかしながら、特許文献1に記載のPLCで使用されるデータベースアクセス用命令の引数のアドレスは、ユーザが任意に設定することが可能な反面、設定が難しいという問題がある。具体的には、先頭のデバイスアドレスからのオフセットに応じて現在の設定項目は何であるか、データベースにどのような属性が存在するかをユーザが把握し、注意深く設定しなければならない。また、各設定項目のオフセットはデータベースの定義および上位アドレスの項目の設定値によって変化するため、常に同じオフセットが同じ項目となるわけではない。このように、データベースアクセス用命令により大容量データのプログラミングは容易となり、検索および編集も簡単になったが、データベースアクセス用命令の使用には試行錯誤と経験が必要となっている。
本発明は、上記に鑑みてなされたものであって、データベース機能を有するPLCのプログラム作成作業、具体的にはデータベースの操作用プログラムの作成作業の煩雑さを解消させることが可能なプログラム作成装置を得ることを目的とする。
上述した課題を解決し、目的を達成するために、本発明にかかるプログラム作成装置は、プログラマブルロジックコントローラ内のデータベースの構成を示す情報であるデータベース定義情報を取得し、データベース定義情報に基づいて、プログラマブルロジックコントローラで実行されるプログラムを作成する際に使用されるプログラム部品であり、データベースを操作する命令をユーザが作成する際に使用されるプログラム部品生成する。
本発明にかかるプログラム作成装置は、データベースの操作用プログラムの作成作業の煩雑さを解消させることができる、という効果を奏する。
実施の形態1にかかるプログラム作成装置およびPLCの構成例を示す図 実施の形態1にかかるプログラム作成装置を実現するハードウェア構成を示す図 実施の形態1にかかるプログラム作成装置の動作を示すフローチャート 実施の形態1にかかるプログラム作成装置が取得する、テーブルの定義情報を説明するための図 実施の形態1にかかるプログラム作成装置が表示する画面の一例を示す図 実施の形態1にかかるプログラム作成装置がテーブルの定義情報をユーザから取得する動作を開始後に表示する画面の一例を示す図 実施の形態1にかかるプログラム作成装置がテーブルの定義情報の入力を受け付ける画面の一例を示す図 実施の形態1にかかるプログラム作成装置がテーブルの定義情報の入力を受け付けた後に表示する画面の一例を示す図 実施の形態1にかかるプログラム作成装置が生成するDB定義ファイルに含まれるファイルの一例を示す図 実施の形態1にかかるプログラム作成装置がラベルを生成する動作の途中段階を示す図 実施の形態1にかかるプログラム作成装置がラベルを生成した後の状態を示す図 実施の形態1にかかるプログラム作成装置が生成したラベルの使用方法の一例を示す図 実施の形態1にかかるプログラム作成装置が生成するファンクションブロックの一例を示す図 実施の形態1にかかるプログラム作成装置が表示する画面の一例を示す図 実施の形態1にかかるプログラム作成装置を使用して作成するラダープログラムの第1の例を示す図 実施の形態1にかかるプログラム作成装置を使用して作成するラダープログラムの第2の例を示す図 実施の形態1にかかるプログラム作成装置を使用して作成するラダープログラムの第3の例を示す図 実施の形態1にかかるプログラム作成装置を使用して作成するラダープログラムの第4の例を示す図 実施の形態1にかかるプログラム作成装置がデータベース操作用のファンクションブロックを変換することにより得られる命令の一例を示す図 実施の形態2にかかるプログラム作成装置およびPLCの構成例を示す図
以下に、本発明の実施の形態にかかるプログラム作成装置を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態1.
図1は、本発明の実施の形態1にかかるプログラム作成装置およびプログラム作成装置が作成したプログラムを実行するPLCの構成例を示す図である。
実施の形態1にかかるプログラム作成装置1は、PLC2で実行されるプログラムを作成するための装置であり、定義情報取得部11、DB(Data Base)定義ファイル生成部12、プログラム部品生成部13、DB定義ファイル記憶部14、プログラム部品記憶部15、プログラム作成部16、プログラムファイル記憶部17および通信部18を備える。
PLC2は、データベース機能を有するプログラマブルロジックコントローラであり、データベース生成部21、DB定義ファイル記憶部22、データベース23、プログラム実行部24、プログラムファイル記憶部25および通信部26を備える。図1では記載を省略しているが、PLC2は、データベースの構築、構築されたデータベースに対して各種操作を行うためのデータベース管理システム(DBMS:Database Management System)を搭載しているものとする。DBMSはデータベース機能を有する機器で一般的に使用されているシステムであるため、詳細説明は省略する。データベースに対して行う各種操作には、データベースへのデータの追加、データベース内のデータの更新、データベース内のデータの削除、データベース内のデータの検索といったものが該当する。
プログラム作成装置1を構成している各部について簡単に説明する。定義情報取得部11は、プログラムの設計者であるユーザからデータベースを構成するテーブルの定義情報を取得する。DB定義ファイル生成部12は、定義情報取得部11が取得した定義情報に基づいて、PLC2の内部に構築されるデータベース23のデータベース定義ファイル(以下、DB定義ファイルと記載する)を生成する。DB定義ファイルは、データベース23を構成する各テーブルの定義情報をファイルとして永続化したものである。プログラム部品生成部13は、定義情報取得部11が取得した定義情報に基づいて、PLC2のプログラムを作成する際に使用可能なプログラム部品を作成する。プログラム部品生成部13が作成するプログラム部品は、データベース23の操作を含んだプログラムの作成で使用可能なプログラム部品である。また、プログラム部品生成部13が作成するプログラム部品は、ラベルとも呼ばれる変数定義およびファンクションブロック(以下、FBと記載する)とも呼ばれる関数定義である。DB定義ファイル記憶部14は、DB定義ファイル生成部12が生成したDB定義ファイルを受け取って記憶する。プログラム部品記憶部15は、プログラム部品生成部13が生成したプログラム部品を受け取って記憶する。プログラム部品記憶部15は、プログラム部品生成部13が生成したプログラム部品以外のプログラム部品も記憶するようにしてもよい。すなわち、プログラム作成装置1は、プログラム部品生成部13以外にもプログラム部品を作成する機能(図示せず)を有し、この機能を使用して作成されたプログラム部品をプログラム部品記憶部15が記憶するようにしてもよい。
プログラム作成部16は、プログラムエディタおよびコンパイラを含んで構成され、プログラムを作成するとともに、作成したプログラムをコンパイルして実行形式のプログラムファイルを生成する。プログラムファイル記憶部17は、プログラム作成部16が生成したプログラムファイルを受け取って記憶する。通信部18は、DB定義ファイル記憶部14が記憶しているDB定義ファイルおよびプログラムファイル記憶部17が記憶しているプログラムファイルをPLC2へ送信する。なお、通信部18がPLC2へDB定義ファイルを送信するタイミングとプログラムファイルを送信するタイミングとは異なることを前提とするが、DB定義ファイルとプログラムファイルとを同じタイミングで送信すなわち2つのファイルを一緒に送信してもよい。
つづいて、PLC2を構成している各部について簡単に説明する。データベース生成部21は、プログラム作成装置1で作成され、DB定義ファイル記憶部22で記憶されているDB定義ファイルに基づいてデータベース23を生成する。データベース生成部21は、DBMSを利用して実現される。DB定義ファイル記憶部22は、プログラム作成装置1で作成されたDB定義ファイルを通信部26経由で受け取って記憶する。データベース23は、1つ以上のテーブルで構成され、プログラム実行部24から受け取ったデータを指定されたテーブルに格納して管理する。プログラム実行部24は、プログラム作成装置1で作成され、プログラムファイル記憶部25で記憶されているプログラムを実行することにより、PLC2が有する各種機能を実現する。プログラムファイル記憶部25は、プログラム作成装置1で作成されたプログラムを通信部26経由で受け取って記憶する。通信部26は、プログラム作成装置1が作成したDB定義ファイルおよびプログラムファイルを受信する。通信部26は、DB定義ファイルを受信した場合はDB定義ファイル記憶部22に格納し、プログラムを受信した場合はプログラムファイル記憶部25に格納する。
なお、DB定義ファイル記憶部22は、データベース生成部21によりデータベース23が生成された後は記憶しているDB定義ファイルを消去してもよい。すなわち、DB定義ファイル記憶部22は、プログラム作成装置1から受け取ったDB定義ファイルを、データベース生成部21がデータベース23を生成するまで一時的に保持するものであってもよい。
また、プログラム作成装置1の通信部18とPLC2の通信部26との間の通信は有線通信であってもよいし無線通信であってもよい。また、プログラム作成装置1は、PLC2のプログラムを作成する際にPLC2が接続されていなくてもよい。すなわち、プログラム作成装置1は、PLC2のプログラムを作成する際にPLC2と通信できない状態であってもよい。プログラム作成装置1は、作成したプログラム、ファイルなどのデータの送受信をPLC2との間で行う必要があるときにPLC2と接続されていればよい。
ここで、プログラム作成装置1のハードウェア構成について説明する。図2は、実施の形態1にかかるプログラム作成装置1を実現するハードウェア構成を示す図である。
プログラム作成装置1は、表示装置101、入力装置102、プロセッサ103、メモリ104および通信装置105を含むハードウェア100で実現される。表示装置101は、情報を表示する装置であり、液晶ディスプレイが例示されるがこれに限定されるものではない。入力装置102は、プログラム作成装置1に対して文字を含む各種情報を入力するための装置であり、キーボード、マウス、ポインティングデバイスおよびタッチパネルが例示されるが、これらに限定されるものではない。入力装置102は、ユーザによる各種操作を受け付ける場合に使用される。すなわち、入力装置102は、定義情報取得部11がテーブルの定義情報の入力をユーザから受け付ける場合、および、プログラム作成部16がプログラム作成のための操作をユーザから受け付ける場合に使用される。これら以外の操作をユーザから受け付ける場合にも入力装置102が使用される。通信装置105は、DB定義ファイルおよびプログラムファイルを含む各種データをPLC2との間で送受信する装置であり、通信部18を実現する。
プログラム作成装置1が有する定義情報取得部11、DB定義ファイル生成部12、プログラム部品生成部13およびプログラム作成部16の機能は、プロセッサ103およびメモリ104により実現される。プロセッサ103は、CPU(Central Processing Unit:中央処理装置)、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、又はDSP(Digital Signal Processor)ともいう。メモリ104は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリー、EPROM(Erasable Programmable Read Only Memory)、及びEEPROM(Electrically Erasable Programmable Read Only Memory)といった揮発性又は不揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、及びDVD(Digital Versatile Disc)が該当する。
すなわち、定義情報取得部11、DB定義ファイル生成部12、プログラム部品生成部13およびプログラム作成部16の機能は、ソフトウェア、ファームウェア、又はソフトウェアとファームウェアとの組合せにより実現される。ソフトウェア及びファームウェアはプログラムとして記述され、メモリ104に記憶される。プロセッサ103は、メモリ104に記憶されたプログラムを読み出して実行することにより、定義情報取得部11、DB定義ファイル生成部12、プログラム部品生成部13およびプログラム作成部16の機能を実現する。
これらのプログラムは、定義情報取得部11、DB定義ファイル生成部12、プログラム部品生成部13およびプログラム作成部16が実行する手順をコンピュータに実行させるものであるともいえる。
DB定義ファイル記憶部14、プログラム部品記憶部15およびプログラムファイル記憶部17は、メモリ104により実現される。
なお、PLC2は図2に示したハードウェア100のプロセッサ103、メモリ104および通信装置105で実現することができる。
つづいて、実施の形態1にかかるプログラム作成装置1の全体動作について、図3を参照しながら説明する。図3は、実施の形態1にかかるプログラム作成装置1の動作を示すフローチャートである。図3のフローチャートは、プログラム作成装置1がプログラム部品およびDB定義ファイルを作成する場合の動作を示している。
プログラム作成装置1は、まず、PLC2内に構築するデータベース23の各テーブルの定義情報を取得する(ステップS11)。具体的には、定義情報取得部11が、プログラムの設計者であるユーザから、データベース23を構成する各テーブルの定義情報の入力を受け付ける。
ここで、テーブルの定義情報について、図4を用いて説明する。図4は、実施の形態1にかかるプログラム作成装置1が取得する、テーブルの定義情報を説明するための図である。
図4に示したように、データベースを構成するテーブルは、レコードとフィールドとにより決まる複数の領域を有し、各領域にデータが格納される。テーブルおよび各フィールドには名称が付与される。図4に示した例では、データベースを構成する複数のテーブルの中に「Product_Recipe」という名称のテーブルが含まれる。また、このテーブルは、「Product_ID」、「Material_A」、「Material_B」および「Material_C」という名称のフィールドを含んでいる。このテーブルの定義情報は、図4の右側に示したように、テーブルの名称である「テーブル名」と、各フィールドの名称である「フィールド名」と、各フィールドに格納するデータの種類である「データ型」とにより構成される。なお、本明細書では、データベースを構成する各テーブルの定義情報の集合をデータベース定義情報と呼ぶこととする。データベース定義情報は、データベースの構成を示す情報である。
図3の説明に戻り、ステップS11において、定義情報取得部11は、データベース23を構成する各テーブルの名称すなわちテーブル名と、各テーブルに含まれる各フィールドの名称すなわちフィールド名と、各フィールドに格納されるデータの種類すなわちデータ型とを、テーブルの定義情報として取得する。
図5〜図8は、実施の形態1にかかるプログラム作成装置1がテーブルの定義情報をユーザから取得する動作を説明するための図である。図5は、実施の形態1にかかるプログラム作成装置1が表示する、プロジェクトの構成を表示するウィンドウの一例を示す図である。図6は、実施の形態1にかかるプログラム作成装置1がテーブルの定義情報をユーザから取得する動作を開始後に表示する画面の一例を示す図である。図7は、実施の形態1にかかるプログラム作成装置1がテーブルの定義情報の入力を受け付ける画面の一例を示す図である。図8は、実施の形態1にかかるプログラム作成装置1がテーブルの定義情報の入力を受け付けた後に表示する画面の一例を示す図である。プログラム作成装置1は、データベース23を構成するテーブルの定義情報の入力を開始するための操作が行われたことを検出すると、図5に示した内容の画面を、図2に示した表示装置101に表示させる。
プログラム作成装置1は、図5に示した画面すなわちプロジェクトの構成を表示するウィンドウ51を表示している状態において、以下に示す操作をユーザが行ったことを検出すると、テーブルの定義情報の入力操作が開始されたと判断し、図6に示した画面を表示する。なお、ユーザは、マウスおよびキーボードといった入力装置、すなわち図2に示した入力装置102を使用して操作を行う。プログラム作成装置1は、図5に示した、「データベース」の下の「Databese1」がユーザにより選択され、さらに、テーブルの定義情報の新規入力を指示する操作が行われたことを検出した場合、図6に示した画面を表示する。ユーザが「Databese1」を選択する操作方法としては、マウスで「Databese1」をクリックする操作が該当するが他の方法で選択するようにしてもよい。また、ユーザがテーブルの定義情報の新規入力を指示する操作としては、「Databese1」が選択された状態で右クリックして選択可能なメニューを表示させ、表示されたメニューの中から「テーブルの定義情報の入力」を選択する操作が該当する。プログラム作成装置1は、図5に示した画面に対して図6に示した画面を重ねて表示するようにしてもよい。図6は、新たに入力する定義情報を有するテーブルの名称を入力するための画面表示の例を示している。
プログラム作成装置1は、図6に示した画面を表示した状態で、「テーブル名」が入力され、さらに、「入力終了」ボタンが選択すなわちクリックされると、図7に示した画面を表示する。ここでは、テーブル名として「Product_Recipe」が入力されたものとして説明を続ける。図7に示したように、プログラム作成装置1は、入力されたテーブル名「Product_Recipe」をウィンドウ51内の「Databese1」の下に追加表示する。また、プログラム作成装置1は、テーブルの構成情報を入力するためのウィンドウ71を表示する。図7に示した画面が表示された状態でユーザが入力する構成情報は、「フィールド名」、「データ型」、「主キー」および「Not Null」とする。「フィールド名」および「データ型」は図4を用いて説明したとおりである。「主キー」とは、他のテーブルとの関連付けに使用するデータが格納されるフィールドを示す。すなわち、新規に作成するテーブルは、「主キー」に設定されたフィールドに格納されたデータを使用して他のテーブルと関連付けられる。「Not Null」とは、Nullすなわちデータが格納されていない状態が許容されないフィールドを示す。よって、「Not Null」が設定されたフィールドには必ずデータを格納する必要がある。
プログラム作成装置1は、図7に示した画面を表示した状態で、構成情報の入力操作、すなわち、「フィールド名」および「データ型」の入力操作、「主キー」および「Not Null」の設定操作が行われたことを検出すると、検出した入力操作に応じて画面表示すなわちウィンドウ71内の表示を更新する。「データ型」の入力は、予め定義されている型の中からプルダウンで選択して入力するようにしてもよい。図8は、プログラム作成装置1が構成情報の入力操作を検出して更新を行った後の画面表示の一例を示している。
プログラム作成装置1は、図8に示した画面を表示している状態で構成情報の入力を終了する操作、例えば、図示を省略している「テーブル定義の終了」といったボタンを押下する操作が行われたことを検出すると、名称が「Product_Recipe」のテーブルの定義情報の取得を終了する。
プログラム作成装置1は、図5から図8を用いて説明した動作を繰り返し実行し、PLC2内のデータベース23を構成する各テーブルの定義情報を取得する。すなわち、ユーザは、名称が「Product_Recipe」のテーブルの定義情報を入力する上記の動作と同様の動作を繰り返し実行し、PLC2内のデータベース23を構成する各テーブルの定義情報をプログラム作成装置1に入力する。
プログラム作成装置1は、「Database1」を構成するテーブルの定義情報の入力を終了してDB定義ファイルの生成を指示する操作、例えば、図示を省略している「データベース定義ファイルの生成」といったボタンを押下する操作を受け付けると、データベース23の定義ファイルすなわちDB定義ファイルを生成する(ステップS12)。ステップS12においては、プログラム作成装置1のDB定義ファイル生成部12が、ステップS11で入力されたテーブルの定義情報に基づいてデータベース23のDB定義ファイルを生成する。上述したように、DB定義ファイルはデータベース23を構成する各テーブルの定義情報をファイル形式で永続化したものである。本明細書において、DB定義ファイルは、データベース定義に含まれる各テーブルの定義情報を個別に永続化したファイルの集合とする。図9は、実施の形態1にかかるプログラム作成装置1が生成するDB定義ファイルに含まれるファイル、すなわち、ある1つのテーブルの定義情報を永続化したファイルの一例を示す図である。図9に示したように、テーブルの定義情報を永続化したファイルは、「データベース名」、「テーブル名」、「フィールド名」、「データ型」、「主キー」および「Not Null」を含んでいる。図9に示した例は、テーブル名が「Product_Recipe」のテーブルの定義情報をテキストファイルとして永続化したものである。なお、ファイルの形式をテキスト形式に限定するものではない。また、図9に示したファイルは、「Product_ID」フィールドに格納されたデータが主キーとして設定され、「Product_ID」、「Material_A」、「Material_B」および「Material_C」が「Not_Null」に設定されていることを示している。DB定義ファイル生成部12は、生成したDB定義ファイルをDB定義ファイル記憶部14に格納する。
プログラム作成装置1は、ステップS12の処理に続いて、データベース23を操作するプログラム部品を生成する(ステップS13)。ステップS13においては、プログラム作成装置1のプログラム部品生成部13が、ステップS11で定義情報取得部11が取得した、テーブルの定義情報に基づいて、プログラム部品を生成する。上述したように、プログラム部品生成部13が生成するプログラム部品は、ラベルおよびFBである。プログラム部品生成部13が生成するラベルは、データベース23の各テーブルのデータを格納する変数定義である。また、プログラム部品生成部13が生成するFBは、データベース23の各テーブルに対してレコードの追加を実行する関数定義、各テーブルに対してレコードの更新を実行する関数定義、各テーブルに対してレコードの削除を実行する関数定義、および、各テーブルに対してレコードの検索を実行する関数定義である。ステップS11において、定義情報取得部11がテーブルの定義情報を複数取得した場合、プログラム部品生成部13は、複数の定義情報のそれぞれに基づいてプログラム部品を生成する。プログラム部品生成部13が、プログラム部品を生成する動作については後述する。プログラム部品生成部13は、生成したプログラム部品をプログラム部品記憶部15に格納する。
なお、プログラム作成装置1は、ステップS12およびS13を逆の順番で実行してもよいし、並列に実行してもよい。
プログラム作成装置1は、ステップS13の処理に続いて、DB定義ファイルをPLC2へ送信する(ステップS14)。すなわち、プログラム作成装置1は、DB定義ファイル記憶部14で記憶しているDB定義ファイルをPLC2へ送信する。PLC2は、DB定義ファイルを受信すると、これをDB定義ファイル記憶部22で記憶する。また、PLC2では、データベース生成部21が、DB定義ファイル記憶部22が保持しているDB定義ファイルを使用してデータベース23を生成する。すなわち、データベース生成部21は、DB定義ファイルに含まれているデータベース名、テーブル名、各テーブルのフィールド名、各フィールドに格納するデータのデータ型、などの情報に基づいてデータベース23を生成する。
プログラム作成装置1は、次に、プログラム部品を使用してPLC2のプログラムを作成する(ステップS15)。このステップS15は、ステップS14よりも前に実行してもよいしステップS14と並列に実行してもよい。PLC2のプログラムを作成する動作は、作成開始を指示する操作をユーザから受け付けると開始する。ステップS15では、プログラム作成部16が、ユーザからの操作を受け付け、受け付けた操作の内容に従ってプログラムを作成する。プログラム部品を使用したプログラムの作成は従来から存在する手法であるため、ここでは説明を省略する。プログラムの作成動作は、プログラムをコンパイルして実行形式のプログラムファイルを作成するまでの動作を含む。プログラム作成部16が作成したプログラムファイルはプログラムファイル記憶部17に格納される。なお、データベース23を操作するプログラム部品を使用してプログラムを作成する方法については後述する。
プログラム作成装置1は、プログラムの作成が終了した後、プログラムすなわちプログラムファイル記憶部17で保持しているプログラムファイルをPLC2へ送信する(ステップS16)。PLC2は、プログラムファイルを受信すると、これをプログラムファイル記憶部25で記憶する。プログラムファイル記憶部25が記憶しているプログラムファイルは、PLC2が動作を開始する際にプログラム実行部24により読み出される。すなわち、PLC2が動作を開始する際、プログラム実行部24が、プログラムファイル記憶部25からプログラムファイルを読み出して実行する。
つづいて、上記のステップS13でプログラム部品生成部13がラベルを生成する手順を、図10および図11を用いて説明する。図10および図11は、実施の形態1にかかるプログラム作成装置1のプログラム部品生成部13がラベルを生成する動作を説明するための図である。図10は、プログラム部品生成部13がラベルを生成する動作の途中段階を示しており、図11は、プログラム部品生成部13によるラベル生成が終了した後の状態を示している。
プログラム部品生成部13は、ラベルを生成する場合、まず、図10に示したように、データベース定義情報を構成するテーブルの定義情報の各々に基づいて構造体を生成する。すなわち、プログラム部品生成部13は、定義情報が示すテーブルの構成に対応する構造体の定義情報(以下、構造体定義情報と記載する)を生成する。具体的には、プログラム部品生成部13は、テーブルの各フィールド名をメンバ名とした構造体の構造体定義情報を生成する。構造体の各メンバのデータ型はテーブルの各フィールドに格納するデータのデータ型とする。プログラム部品生成部13は、データベース定義情報が複数のテーブルの定義情報を含んでいる場合、各テーブルの定義情報に基づいて、各テーブルに対応する構造体定義情報を生成する。構造体定義情報が生成されると、図10に示したように「プロジェクト」を構成する「構造体」として、名称が「Product_Recipe」という構造体が追加される。プログラム部品生成部13は、次に、生成した各構造体定義情報に基づいてラベルを生成する。プログラム部品生成部13は、構造体定義情報が複数存在する場合、各構造体定義情報に対応するラベルを生成する。すなわち、プログラム部品生成部13は、データベース23を構成する各テーブルのそれぞれに対応するラベルを生成する。具体的には、プログラム部品生成部13は、生成した構造体の型定義をデータ型とするラベルを作成する。その結果、図11に示したように、作成したラベルが使用可能なラベルの一覧に追加される。図11は、「data」、「name」、「count」などが既存のラベルとして存在している状態でプログラム部品生成部13がラベルを生成し、生成したラベルが「record」という名称のラベルとして追加された場合の画面表示の例を示している。図11に示したように、生成したラベル「record」がラベル一覧に追加される。この結果、対応するテーブルのレコードにデータを格納する変数としてラベル「record」を使用することが可能となる。なお、詳細の説明については省略するが、プログラム部品生成部13は、ラベル「record」と同じ構成のラベル「results」についても同様の方法で生成する。ラベル「results」は、データベースに登録されたレコードを検索する際に使用される。ラベル「results」の使用方法の例については後述する。
プログラム部品生成部13が作成したラベルをプログラム作成時に使用する方法を説明する。図12は、実施の形態1にかかるプログラム作成装置1が生成したラベルの使用方法の一例を示す図である。図12に示したように、ラベルを使用してプログラムを作成する場合、ユーザは、ラベル名を入力すなわち記述し、さらに、その直後にドット“.”を記述する。これに伴い、候補となるメンバの一覧すなわちフィールドの一覧が表示される。ユーザは、表示されたメンバの中からデータを格納するフィールドに対応するメンバを選択する。なお、「MOV」命令は、第1引数に指定した値を、第2引数に代入する命令である。よって、図12に示した「MOV K30 record.Material_A」は、「K30」で表された10進数の30をラベル「record」のメンバ「Material_A」に代入することを意味する。「MOV K30 record.Material_B」とした場合は10進数の30をラベル「record」のメンバ「Material_B」に代入することになる。
次に、プログラム部品生成部13がFBを生成する動作について説明する。図13は、プログラム部品生成部13が生成するFBの1つである、データベースにレコードを追加する操作で使用するレコード追加用FBを示す図である。プログラム部品生成部13は、テーブルの定義情報に基づいてFBの名称を決定するとともに、引数を決定してFBを生成する。FBのインスタンス名については固定とし、図13に示した例ではレコード追加用FBのインスタンス名を「Insert01」としている。また、FBの名称は、FBの処理を示す文字列をテーブルの名称に付加することにより決定する。図13に示した例では、「_Insert」をレコードの追加を示す文字列として使用している。レコード追加用FBは、実行条件、追加するレコードの各フィールドに格納するデータ、返り値を引数とし、追加するレコードのデータをラベル名が「record」のラベルで指定する構成となっている。ENが実行条件、Recordが追加するレコードのデータ、RETが返り値である。
プログラム部品生成部13がレコード追加用FBを生成する動作について説明したが、データベースからレコードを削除する操作で使用するレコード削除用FBを生成する動作、データベース内のレコードを更新する操作で使用するレコード更新用FBを生成する動作、データベース内の所望のレコードを検索する操作で使用するレコード検索用FBを生成する動作も同様である。
プログラム部品生成部13は、レコード削除用FBを生成する場合、テーブルの定義情報に基づいてレコード削除用FBの名称を決定するとともに、引数を決定する。名称は、テーブルの名称に「_Delete」を付加したものとする。引数は、実行条件、返り値、および、削除するレコードの検索キーとする。レコード追加用FBと同様、インスタンス名は固定とし、ここでは「Delete01」とする。また、プログラム部品生成部13は、レコード更新用FBを生成する場合、テーブルの定義情報に基づいてレコード更新用FBの名称を決定するとともに、引数を決定する。名称は、テーブルの名称に「_Update」を付加したものとする。引数は、実行条件、返り値、更新するレコードの検索キー、および、更新するレコードの各フィールドに格納するデータとする。レコード追加用FBなどと同様、インスタンス名は固定とし、ここでは「Update01」とする。また、プログラム部品生成部13は、レコード検索用FBを生成する場合、テーブルの定義情報に基づいてレコード検索用FBの名称を決定するとともに、引数を決定する。名称は、テーブルの名称に「_Select」を付加したものとする。引数は、実行条件、返り値、レコードの検索キー、および、検索結果とする。レコード追加用FBなどと同様、インスタンス名は固定とし、ここでは「Select01」とする。
つづいて、プログラム部品生成部13が生成したFBを使用してラダープログラムを作成する方法を説明する。図14は、実施の形態1にかかるプログラム作成装置1が表示する画面の一例を示す図である。図14では、左側にプロジェクトの表示ウィンドウを表示し、右側にラダープログラムの作成ウィンドウを表示する画面の例を示している。ユーザは、例えば、左側のウィンドウに表示されたFBの中から使用するFBを選択し、ドラッグ・アンド・ドロップにより、選択したFBを右側のウィンドウに表示されたラダープログラムの中に挿入する。図14は、上述したレコード追加用FBを貼付する場合の例を示している。
レコード追加用FBをラダープログラムの作成ウィンドウに貼付した場合、次に、ユーザは、図15に示したように、追加するレコードデータの作成と、作成したレコードデータの追加処理の作成を行う。レコードデータは、構造体型のラベルrecordの各メンバに対し、追加するレコードの各フィールドのデータを代入することで作成する。また、作成したレコードデータをレコード追加用FBの引数に渡すようにする。図15に示した例では、「MOV K1 record.Product_ID」、「MOV K30 record.Material_A」、「MOV K30 record.Material_B」および「MOV K40 record.Material_C」が、「record」の各メンバにデータを代入してレコードデータを作成する処理に該当する。
図15に示したラダープログラムの動作は以下のとおりである。
(1)M10(ビットデバイス)がONすると、
(2)FBインスタンス「Insert01」は、引数に指定された「record」をデータベースに追加し、
(3)リターン値(1:成功 or 0:失敗)をM50(ビットデバイス)に格納する。
図15に示したラダープログラムを動作させた場合、図15の右下に示したように、Database1内の名称がProduct_Recipeのテーブルに対して、Product_IDが「1」、Material_AおよびMaterial_Bが「30」、Material_Cが「40」のレコードが追加される。
図16は、レコード削除用FBを使用したラダープログラムの一例を示す図である。レコード削除用FBを使用したプログラムを作成する場合、ユーザは、レコード削除用FBをラダープログラムに挿入した後、「Product_ID」を用いて削除するレコードを指定する。図16に示したラダープログラムは、レコード削除用FBであるDelete01のFBを実行する前に「MOV K1 record.Product_ID」を実行する内容となっている。また、Delete01のFBに対し、削除するレコードの検索キーとして「record.Product_ID」を与える内容となっている。図16に示したラダープログラムを実行した場合、名称がProduct_RecipeのテーブルからProduct_IDが「1」のレコードが削除される。
図17は、レコード更新用FBを使用したラダープログラムの一例を示す図である。レコード更新用FBを使用したプログラムを作成する場合、ユーザは、レコード更新用FBをラダープログラムに挿入した後、「Product_ID」を用いて更新するレコードを指定するとともに「record」を用いて各フィールドのデータを更新する。図17に示したラダープログラムは、レコード更新用FBであるUpdate01のFBを実行する前に「MOV K1 record.Product_ID」、「MOV K40 record.Material_A」、「MOV K40 record.Material_B」、および「MOV K20 record.Material_C」を実行する内容となっている。また、Update01のFBに対し、更新するレコードの検索キーとして「record.Product_ID」を与え、レコードの各フィールドに格納するデータとして「record」を与える内容となっている。図17に示したラダープログラムを実行した場合、名称がProduct_Recipeのテーブル内のProduct_IDが「1」のレコードが更新される。具体的には、「Material_A」および「Material_B」が40に更新され、「Material_C」が20に更新される。
図18は、レコード検索用FBを使用したラダープログラムの一例を示す図である。レコード検索用FBを使用したプログラムを作成する場合、ユーザは、レコード検索用FBをラダープログラムに挿入した後、「Product_ID」を用いて検索するレコードを指定する。図18に示したラダープログラムは、レコード検索用FBであるSelect01のFBを実行する前に「MOV K1 record.Product_ID」を実行する内容となっている。また、Select01のFBに対し、レコードの検索キーとして「record.Product_ID」を与える内容となっている。図18に示したラダープログラムを実行した場合、名称がProduct_Recipeのテーブル内のProduct_IDが「1」のレコードの検索が行われる。Select01のFBは、検索の結果、該当するレコードすなわちProduct_IDが「1」のレコードが存在していれば、このレコードのデータを出力引数「RES」に指定されたラベル「results」に格納する。ここで、検索結果を格納するラベル「results」は、ラベル「record」と同じく「Product_Recipe」型の変数である。なお、検索結果が複数の場合、「results」は配列(構造体配列)となる。ラベル「results」は、プログラム部品生成部13がラベル「record」を生成する際に一緒に生成される。図18に示した例では、Product_IDが「1」のレコードの各フィールドに格納されているデータが「results」の各メンバに格納される。
つづいて、プログラム作成部16がプログラムをコンパイルすることにより得られるプログラムファイルについて説明する。
プログラムファイルの中では、プログラムはPLCの命令列として表現される。プログラム部品生成部13が生成したデータベース操作用の各種FBについても、それぞれFB呼出し命令として変換すなわちコンパイルされ、プログラムファイルに保存される。FB呼出し命令は、データベース操作用のFBに限らず、通常のFBでも同様に使用するものであり、引数に指定したサブルーチン呼出しを実行する。また、FBの引数に指定した値は、サブルーチンに渡す引数として指定される。但し、データベース操作用のFBを変換する場合、FBの引数に指定した値だけでなく、対象のデータベースおよびテーブルを併せて指定する。また、通常のFBと異なり、PLC2のデータベース管理システム(DBMS)が備えているアプリケーション・プログラミング・インタフェース(API:Application Programming Interface)をサブルーチンとして呼び出す。
図19は、実施の形態1にかかるプログラム作成装置1がデータベース操作用のFBを変換することにより得られるFB呼出し命令の一例を示す図である。なお、プログラム作成部16は、データベース操作用の各FBを変換する際、各FBの引数に指定された値が受け入れ可能かどうかのチェックを併せて実行する。特に、テーブルを操作するためのレコードを指定する引数、検索キーを指定する引数については、当該テーブルに対応するラベルを使用して指定されているかどうかをチェックする。プログラム作成部16は、テーブルを操作するためのレコードを指定する引数、検索キーを指定する引数が対応するラベルを使用して指定されていない場合、変換エラーとする。
つづいて、プログラム作成部16が生成したプログラムファイルをPLC2が実行する動作について説明する。
プログラム作成装置1のプログラム作成部16が生成したプログラムファイルは通信部18を介してPLC2へ送信され、プログラムファイル記憶部25で記憶される。PLC2では、プログラム実行部24がプログラムファイル記憶部25からプログラムファイルを読み出し、プログラムファイルに書かれている命令を順次解釈して実行する。ここで、プログラム実行部24は、データベース操作用のFBのFB呼出し命令を検出すると、データベース23を管理するDBMSが備えているAPIの呼出し処理を実行し、データベース23に対して操作を行う。APIは、PLC2のファームウェアから直接呼出し可能な関数、または、SQLステートメントであってもよい。なお、操作対象のデータベース23そのものは、プログラム作成装置1のDB定義ファイル生成部12で生成されたDB定義ファイルに基づいてデータベース生成部21により生成される。データベース生成部21は、データベース23を生成する際、DBMSのAPIを呼び出すことにより、データベースを生成する。データベース23、およびデータベース23を操作するプログラムの両方がPLC2の内蔵メモリすなわち図2に示したメモリ4に格納された状態でPLC2が実行状態に移行すると、PLC2はデータベース23にアクセスするプログラムを実行する。
以上のように、本実施の形態にかかるプログラム作成装置1は、PLC2の内部に構築するデータベースを構成する各テーブルの定義情報をユーザから取得し、取得した定義情報に基づいて、DB定義ファイルと、データベースの操作を指令するためのプログラム部品としてのラベルおよびFBとを生成する。これにより、データベースを操作するプログラムの作成作業の煩雑さを解消させることができ、プログラム作成にかかる作業量を削減することができる。従来は、メモリマップおよびデータベース定義を意識しながらデータベースにアクセスするプログラムを作成する必要があった。例えば、データベースに追加するレコードのデータをデバイスに格納していたため、データとアドレスの関係を管理する必要があった。また、対象のテーブルがどのフィールドを備えているかどうか、都度データベース定義書等で確認する必要があった。一方、本実施の形態にかかるプログラム作成装置1では、データベースを構成する各テーブルの定義情報に従って構造体型のラベルを生成し、ユーザはラベルを使用してデータベース操作用のプログラムを作成することが可能である。そのため、ユーザはメモリマップを意識する必要がない。また、データベース定義書等を参照しなくても、データベースがどのフィールドを備えているか知ることができる。
実施の形態2.
図20は、本発明の実施の形態2にかかるプログラム作成装置およびプログラム作成装置が作成したプログラムを実行するPLCの構成例を示す図である。
実施の形態2にかかるプログラム作成装置1aは、実施の形態1で説明したプログラム作成装置1の定義情報取得部11を定義情報取得部11aとし、さらに、DB定義ファイル取得部19を追加したものである。プログラム作成装置1aの定義情報取得部11aおよびDB定義ファイル取得部19以外の構成要素は、プログラム作成装置1の同じ符号が付された構成要素と同じであるため、説明を省略する。プログラム作成装置1aは、プログラム作成装置1と同様に、図2に示したハードウェア100で実現することができる。
実施の形態2にかかるPLC2aは、実施の形態1で説明したPLC2に対してDB定義ファイル送信部27を追加したものである。PLC2aのDB定義ファイル送信部27以外の構成要素は、PLC2の同じ符号が付された構成要素と同じであるため、説明を省略する。
本実施の形態にかかるプログラム作成装置1aおよびPLC2aの動作について、プログラム作成装置1aの定義情報取得部11aおよびDB定義ファイル取得部19、PLC2aのDB定義ファイル送信部27の動作を中心に説明する。
DB定義ファイル取得部19は、PLC2aからDB定義ファイルの読み出しを指示する操作がユーザにより行われたことを検出した場合、PLC2aのDB定義ファイル送信部27に対し、DB定義ファイルの送信を要求する。
PLC2aのDB定義ファイル送信部27は、プログラム作成装置1aのDB定義ファイル取得部19からDB定義ファイルの送信要求を受けた場合、DB定義ファイル記憶部22がDB定義ファイルを記憶していれば、それを読出してプログラム作成装置1aのDB定義ファイル取得部19に送信する。
プログラム作成装置1aのDB定義ファイル取得部19は、PLC2aのDB定義ファイル送信部27からDB定義ファイルを受信した場合、受信したDB定義ファイルを定義情報取得部11aに出力するとともに、DB定義ファイル記憶部14に格納する。
定義情報取得部11aは、DB定義ファイル取得部19からDB定義ファイルを受け取った場合にこれを解析し、プログラム部品生成部13がプログラム部品を生成するために必要なデータベース定義情報を抽出してプログラム部品生成部13に出力する。すなわち、定義情報取得部11aは、PLC2a内に構築されているデータベース23のデータベース定義情報をPLC2aから取得する。なお、定義情報取得部11aは、実施の形態1で説明した定義情報取得部11が有する機能、すなわちデータベース定義情報をユーザから取得する機能も有する。
なお、PLC2aのDB定義ファイル送信部27は、DB定義ファイルの送信要求を受けた場合、データベース23からデータベース定義情報を取得し、取得したデータベース定義情報を使用してDB定義ファイルを生成してプログラム作成装置1aのDB定義ファイル取得部19へ送信するようにしてもよい。この場合、DB定義ファイル送信部27は、DBMSのAPIを使用して、データベース23からデータベース定義情報を取得する。
このように、本実施の形態にかかるプログラム作成装置1aは、PLC2aから既存のデータベースのDB定義ファイルを取得するDB定義ファイル取得部19を備え、DB定義ファイル取得部19が取得したDB定義ファイルに基づいて、データベースの操作を指令するためのプログラム部品を生成する。本実施の形態にかかるプログラム作成装置1aによれば、既存のデータベース資産を流用し、当該データベースに対する操作プログラムの設計工数を削減することが可能となる。例えば、プログラム作成装置1aは、プログラム作成装置1aが作成したDB定義ファイルとは異なるDB定義ファイルに基づいてデータベース23の生成が終了している状態のPLC2aと接続し、PLC2aから取得したDB定義ファイルに基づいてプログラム部品を生成する。その結果、プログラム作成装置1aのユーザは、既存のDB定義ファイルに基づいて生成されたプログラム部品を使用してPLC2aのプログラムを修正することができる。
各実施の形態では、プログラム部品生成部13が、データベース23の各テーブルに対してレコードの追加を実行する関数定義、各テーブルに対してレコードの更新を実行する関数定義、各テーブルに対してレコードの削除を実行する関数定義、および、各テーブルに対してレコードの検索を実行する関数定義をプログラム部品として生成することとした。しかし、プログラム部品生成部13の動作は一例であり、プログラム部品生成部13は、データベース23に対する他の操作を表す関数定義をプログラム部品として生成してもよい。また、プログラム部品生成部13は、上記の関数定義の中の少なくとも1つ以上を生成する構成であってもよい。
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
1,1a プログラム作成装置、2,2a プログラマブルロジックコントローラ、11,11a 定義情報取得部、12 DB定義ファイル生成部、13 プログラム部品生成部、14 DB定義ファイル記憶部、15 プログラム部品記憶部、16 プログラム作成部、17,25 プログラムファイル記憶部、18,26 通信部、19 DB定義ファイル取得部、21 データベース生成部、22 DB定義ファイル記憶部、23 データベース、24 プログラム実行部、27 DB定義ファイル送信部。

Claims (8)

  1. プログラマブルロジックコントローラ内のデータベースの構成を示す情報であるデータベース定義情報を取得する定義情報取得部と、
    前記データベース定義情報に基づいて、前記プログラマブルロジックコントローラで実行されるプログラムを作成する際に使用されるプログラム部品であり、前記データベースを操作する命令をユーザが作成する際に使用されるプログラム部品生成するプログラム部品生成部と、
    を備えることを特徴とするプログラム作成装置。
  2. 前記定義情報取得部は、前記データベース定義情報をユーザから取得する、
    ことを特徴とする請求項1に記載のプログラム作成装置。
  3. 前記定義情報取得部は、前記データベース定義情報をデータベースが構築済みのプログラマブルロジックコントローラから取得する、
    ことを特徴とする請求項1に記載のプログラム作成装置。
  4. 前記データベース定義情報に基づいてデータベース定義ファイルを生成するデータベース定義ファイル生成部と、
    前記データベース定義ファイルを前記プログラマブルロジックコントローラへ送信する通信部と、
    を備えることを特徴とする請求項1、2または3に記載のプログラム作成装置。
  5. 前記プログラム部品生成部は、データベースを構成するテーブルのレコードおよびフィールドを指定するための変数定義と、前記変数定義で指定したレコードおよびフィールドに対して実行する操作を指定する関数定義と、を前記プログラム部品として生成する、
    ことを特徴とする請求項1から4のいずれか一つに記載のプログラム作成装置。
  6. 前記プログラム部品を使用して前記プログラムを作成するプログラム作成部、
    を備えることを特徴とする請求項1から5のいずれか一つに記載のプログラム作成装置。
  7. 前記データベース定義情報は、前記データベースを構成するテーブルの名称、前記テーブルに含まれる各フィールドの名称および前記各フィールドに格納されるデータの種類を表す、
    ことを特徴とする請求項1から6のいずれか一つに記載のプログラム作成装置。
  8. 前記プログラム部品生成部は、前記データベースを構成するテーブルに対してレコードの追加を実行する関数定義、前記テーブルに対してレコードの削除を実行する関数定義、前記テーブルに対してレコードの更新を実行する関数定義、および、前記テーブルに対してレコードの検索を実行する関数定義、の中の1つ以上を前記プログラム部品として生成する、
    ことを特徴とする請求項1から7のいずれか一つに記載のプログラム作成装置。
JP2017562385A 2017-04-17 2017-04-17 プログラム作成装置 Active JP6370503B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/015483 WO2018193503A1 (ja) 2017-04-17 2017-04-17 プログラム作成装置

Publications (2)

Publication Number Publication Date
JP6370503B1 true JP6370503B1 (ja) 2018-08-08
JPWO2018193503A1 JPWO2018193503A1 (ja) 2019-06-27

Family

ID=63104321

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017562385A Active JP6370503B1 (ja) 2017-04-17 2017-04-17 プログラム作成装置

Country Status (5)

Country Link
US (1) US20190121816A1 (ja)
JP (1) JP6370503B1 (ja)
KR (1) KR101986476B1 (ja)
CN (1) CN109478051A (ja)
WO (1) WO2018193503A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190011810A (ko) * 2016-08-30 2019-02-07 미쓰비시덴키 가부시키가이샤 프로그램 편집 장치, 프로그램 편집 방법 및 기억 매체에 기억된 프로그램 편집 프로그램
JP6664563B1 (ja) * 2019-03-05 2020-03-13 三菱電機株式会社 プログラム作成支援装置、プログラム作成支援方法およびプログラム作成支援プログラム

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6452916B1 (ja) * 2018-03-28 2019-01-16 三菱電機株式会社 プログラミング支援装置、プログラミング支援方法およびプログラム
US11307554B2 (en) 2019-11-20 2022-04-19 Younes Faraj System and method for keyword-based PLC programming

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05100718A (ja) * 1991-10-09 1993-04-23 Mitsubishi Electric Corp プログラマブルコントローラの周辺装置
JP2006004145A (ja) * 2004-06-17 2006-01-05 Ul Systems Inc プログラムコード生成装置
JP2013191275A (ja) * 2012-03-12 2013-09-26 Ulvac Japan Ltd 透明導電膜の形成方法及び透明電極の形成方法
JP2016194808A (ja) * 2015-03-31 2016-11-17 オムロン株式会社 プログラマブルロジックコントローラ、データ収集装置、データベースアクセス方法およびデータベースアクセスプログラム

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5518266A (en) 1978-07-26 1980-02-08 Ebara Infilco Co Ltd Treatment of waste water
JP2003308332A (ja) * 2002-04-15 2003-10-31 Sumitomo Electric Ind Ltd データベースアクセスプログラム、そのプログラムを記録したコンピュータ読取可能な記録媒体およびデータベース操作方法
US20030233632A1 (en) * 2002-06-12 2003-12-18 Lockheed Martin Corporation Automatically generated client application source code using database table definitions
US20060004856A1 (en) * 2004-06-15 2006-01-05 Xiangyang Shen Data management and persistence frameworks for network management application development
US8578399B2 (en) * 2004-07-30 2013-11-05 Microsoft Corporation Method, system, and apparatus for providing access to workbook models through remote function cells
US7468731B2 (en) * 2006-04-11 2008-12-23 Invensys Systems, Inc. Automatic resizing of moved attribute elements on a graphical representation of a control object
US7801886B1 (en) * 2006-10-10 2010-09-21 Intuit Inc. Method and apparatus for performing database operations involving custom fields
JP5322620B2 (ja) * 2008-12-18 2013-10-23 株式会社東芝 情報処理装置、プログラム開発システム、プログラム検証方法及びプログラム
US20110023022A1 (en) * 2009-07-24 2011-01-27 Ensequence, Inc. Method for application authoring employing an application template stored in a database
US20120330915A1 (en) * 2011-06-21 2012-12-27 Salesforce.Com, Inc. Streaming transaction notifications
US9110653B2 (en) 2011-08-26 2015-08-18 Siemens Product Lifecycle Management Software Inc. Generating PLC code from CAD models
US10061809B2 (en) 2012-06-22 2018-08-28 Omron Corporation Control device
US8938477B1 (en) * 2012-09-26 2015-01-20 Emc Corporation Simulating data storage system configuration data
CN103970776B (zh) * 2013-01-30 2017-06-16 广州汽车集团股份有限公司 一种创建can分层树的方法和系统
DE112013006971B4 (de) * 2013-05-17 2024-06-13 Mitsubishi Electric Corporation Programmierbare Steuerung und Programm für Zugriff auf Tabellendaten der programmierbaren Steuerung
JP5991948B2 (ja) * 2013-06-19 2016-09-14 三菱電機株式会社 製造実行システム
US9305044B2 (en) * 2013-07-18 2016-04-05 Bank Of America, N.A. System and method for modelling data
KR20160075629A (ko) * 2013-10-31 2016-06-29 미쓰비시덴키 가부시키가이샤 프로그램 작성 장치, 프로그램 작성 방법 및 프로그램
US10108183B2 (en) * 2014-11-12 2018-10-23 Yokogawa Electric Corporation Process control system and configuration system
US10387385B1 (en) * 2016-09-29 2019-08-20 Servicenow, Inc. System and method for batch database modification

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05100718A (ja) * 1991-10-09 1993-04-23 Mitsubishi Electric Corp プログラマブルコントローラの周辺装置
JP2006004145A (ja) * 2004-06-17 2006-01-05 Ul Systems Inc プログラムコード生成装置
JP2013191275A (ja) * 2012-03-12 2013-09-26 Ulvac Japan Ltd 透明導電膜の形成方法及び透明電極の形成方法
JP2016194808A (ja) * 2015-03-31 2016-11-17 オムロン株式会社 プログラマブルロジックコントローラ、データ収集装置、データベースアクセス方法およびデータベースアクセスプログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190011810A (ko) * 2016-08-30 2019-02-07 미쓰비시덴키 가부시키가이샤 프로그램 편집 장치, 프로그램 편집 방법 및 기억 매체에 기억된 프로그램 편집 프로그램
KR102041772B1 (ko) 2016-08-30 2019-11-07 미쓰비시덴키 가부시키가이샤 프로그램 편집 장치, 프로그램 편집 방법 및 기억 매체에 기억된 프로그램 편집 프로그램
JP6664563B1 (ja) * 2019-03-05 2020-03-13 三菱電機株式会社 プログラム作成支援装置、プログラム作成支援方法およびプログラム作成支援プログラム
WO2020178983A1 (ja) * 2019-03-05 2020-09-10 三菱電機株式会社 プログラム作成支援装置、プログラム作成支援方法およびプログラム作成支援プログラム

Also Published As

Publication number Publication date
KR101986476B1 (ko) 2019-06-05
CN109478051A (zh) 2019-03-15
KR20190007503A (ko) 2019-01-22
US20190121816A1 (en) 2019-04-25
WO2018193503A1 (ja) 2018-10-25
JPWO2018193503A1 (ja) 2019-06-27

Similar Documents

Publication Publication Date Title
JP6370503B1 (ja) プログラム作成装置
US9727313B2 (en) Systems and methods for bi-directional visual scripting for programming languages
US20050060653A1 (en) Object operation apparatus, object operation method and object operation program
CN109446218A (zh) Sql语句生成方法、装置及计算机可读存储介质
KR101966518B1 (ko) 엑셀 기반 건축 설계 파일의 버전 제어 방법
US9880815B2 (en) SQL visualizer
JP5619328B1 (ja) シーケンスプログラム作成支援装置
US20110179397A1 (en) Systems and methods for metamodel transformation
CN104504171A (zh) 一种基于统一建模环境的建模方法
US9684738B2 (en) Text-based command generation
CN117453713A (zh) 多类型数据库的sql语句生成方法、设备和存储介质
WO2017179177A1 (ja) 情報管理装置、情報管理方法および情報管理システム
JPH1139145A (ja) プログラム構築支援装置及び記憶媒体
KR102213815B1 (ko) 앤서블을 위한 gui 시스템
KR102357029B1 (ko) 컴퓨터 수치제어 공작기계의 대화형 프로그램에서 복합 공정 등록 장치 및 방법
JP5971301B2 (ja) 情報処理装置、情報処理装置の制御方法、およびプログラム
US20210004524A1 (en) Catalog file creation assistance device, catalog file creation assistance method, and catalog file creation assistance program
JP7105683B2 (ja) 電子計算機、方法及びプログラム
KR101765324B1 (ko) Sql과 다이어그램을 이용하는 소스코드 생성 장치 및 그의 처리 방법
JP2005078119A (ja) ソフトウェア開発支援装置およびソフトウェア開発支援方法およびプログラムおよび記録媒体
JPS62197826A (ja) システムフロ−仕様生成方式
KR102025239B1 (ko) 도면 파일 자동 생성 방법
JP7322255B2 (ja) 電子計算機、方法及びプログラム
WO2024014354A1 (ja) 制御プログラム編集装置、編集方法、およびプログラム
JP2000322295A (ja) データベースストアドサブプログラム用プログラミング支援方法ならびに装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171130

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171130

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20171130

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20180131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180313

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: 20180612

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180710

R150 Certificate of patent or registration of utility model

Ref document number: 6370503

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250