JP6135247B2 - 情報処理装置および情報処理プログラム - Google Patents

情報処理装置および情報処理プログラム Download PDF

Info

Publication number
JP6135247B2
JP6135247B2 JP2013073799A JP2013073799A JP6135247B2 JP 6135247 B2 JP6135247 B2 JP 6135247B2 JP 2013073799 A JP2013073799 A JP 2013073799A JP 2013073799 A JP2013073799 A JP 2013073799A JP 6135247 B2 JP6135247 B2 JP 6135247B2
Authority
JP
Japan
Prior art keywords
unit
program
information
user
user program
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
JP2013073799A
Other languages
English (en)
Other versions
JP2014199485A (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
Priority to JP2013073799A priority Critical patent/JP6135247B2/ja
Publication of JP2014199485A publication Critical patent/JP2014199485A/ja
Application granted granted Critical
Publication of JP6135247B2 publication Critical patent/JP6135247B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Description

本発明は、ネットワークを介して1つまたは複数のリモート装置とデータを遣り取りする制御装置において実行されるユーザプログラムを生成する情報処理装置および情報処理プログラムに関する。
多くの生産現場で使用される機械や設備は、典型的には、プログラマブルコントローラ(Programmable Logic Controller;以下「PLC」とも称す)などの制御装置を主たる構成とした制御システムによって制御される。このような制御装置で実行される制御プログラムは、典型的には、ユーザがサポート装置と称される情報処理装置を操作して設計することで生成される。このようなユーザによって自由に設計・作成されるプログラムをユーザプログラムとも称す。非特許文献1は、このようなサポート装置によって提供される機能の一例を開示する。
「オートメーションソフトウェア Sysmac Studio Version 1 オペレーションマニュアル」、オムロン株式会社、2012年8月
非特許文献1に記載のアプリケーションでは、例えば、IO(Input/Output)ユニットに入力される値および/または出力される値を変数で定義することができる。このような変数を用いることで、ユーザプログラムをより容易に作成することができる。
しかしながら、何らかのユーザプログラムを作成した後、制御システムの構成が変更されることもある。例えば、新たなIOユニットが追加されたり、ネットワーク構成が変更されたりする場合がある。従来のアプリケーションでは、このような場合において、既に作成したユーザプログラムを見直して、当該変更に伴って対応する部分を変更する必要が生じる。
すなわち、制御システムの構成の変更に伴って、ユーザプログラムの修正が必要になり、ユーザ(開発者など)にとって、手間がかかるという課題があった。そこで、本発明は、制御システムの構成が変更されても、ユーザプログラムをそのまま利用できる情報処理装置および情報処理プログラムを提供することを目的とする。
本発明のある局面によれば、ネットワークを介して1つまたは複数のリモート装置とデータを遣り取りする制御装置において実行されるユーザプログラムを生成する情報処理装置が提供される。リモート装置は、通信カプラユニットと内部バスを介して通信カプラユニットと接続される1または複数の機能ユニットとを含む。情報処理装置は、対象のリモート装置をネットワーク上で特定するためのアドレス情報と、当該対象のリモート装置内の対象の機能ユニットを特定するためのユニット情報とを、任意の変数に関連付けるための設定を受け付けるユーザインターフェイスを提供する手段と、変数を利用してユーザプログラムを生成可能なユーザインターフェイスを提供する手段と、生成されたユーザプログラムを制御装置へ送信する手段とを含む。
好ましくは、情報処理装置は、変数を利用して作成されたソースプログラムから実行可能なユーザプログラムを生成する手段をさらに含む。
好ましくは、アドレス情報は、ネットワーク上のノードアドレスまたはインターネットアドレスを含み、ユニット情報は、対象の機能ユニットまでの経路情報を含む。
好ましくは、設定を受け付けるユーザインターフェイスを提供する手段は、対象のリモート装置をネットワーク上で特定するためのアドレス情報を受け付ける第1のユーザインターフェイス画面と、第1のユーザインターフェイス画面とは異なる、対象のリモート装置内の対象の機能ユニットを特定するためのユニット情報を受け付ける第2のユーザインターフェイス画面とを提供する。
本発明の別の局面によれば、ネットワークを介して1つまたは複数のリモート装置とデータを遣り取りする制御装置において実行されるユーザプログラムを生成する情報処理プログラムが提供される。リモート装置は、通信カプラユニットと内部バスを介して通信カプラユニットと接続される1または複数の機能ユニットとを含む。情報処理プログラムは、コンピュータを、対象のリモート装置をネットワーク上で特定するためのアドレス情報と、当該対象のリモート装置内の対象の機能ユニットを特定するためのユニット情報とを、任意の変数に関連付けるための設定を受け付けるユーザインターフェイスを提供する手段と、変数を利用してユーザプログラムを生成可能なユーザインターフェイスを提供する手段と、生成されたユーザプログラムを制御装置へ送信する手段として機能させる。
本発明によれば、制御システムの構成が変更されても、ユーザプログラムをそのまま利用できる。
本実施の形態に係る制御システムのシステム構成を示す模式図である。 本実施の形態に係るPLCの主要部を示すハードウェア構成を示す模式図である。 本実施の形態に係るPLCのソフトウェア構成を示す模式図である。 本実施の形態に係るPLCに接続して用いられるサポート装置のハードウェア構成を示す模式図である。 制御システムのシステム構成の変更例を示す図である。 システム構成の変更とユーザプログラムとの関係を示す図である。 本実施の形態に係るサポート装置が提供するユーザプログラムの生成機能を説明するための模式図である。 本実施の形態に係るサポート装置が提供するネットワーク構成を設定するためのユーザインターフェイスの一例を示す図である。 本実施の形態に係るサポート装置が提供するユニット構成を設定するためのユーザインターフェイスの一例を示す図である。 本実施の形態に係るサポート装置が提供するネットワーク構成を変更する場合の手順を示す図である。 本実施の形態に係るサポート装置が提供するネットワーク構成を変更する場合の手順を示す図である。
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
<A.システム構成>
まず、本実施の形態に係る制御システムのシステム構成について説明する。本実施の形態においては、機械や設備などの制御対象を制御するプログラマブルコントローラ(PLC)を制御装置の典型例として説明を行う。但し、本発明に係る制御装置は、PLCに限られることなく、各種の制御装置へ適用可能である。
図1は、本実施の形態に係る制御システム1のシステム構成を示す模式図である。図1を参照して、制御システム1は、PLC100と、PLC100に接続されるサポート装置300とを含む。PLC100は、サポート装置300によって生成されるユーザプログラムを周期的またはイベント的に実行する。サポート装置300は、PLC100において実行されるユーザプログラムを生成する情報処理装置の典型例である。
サポート装置300は、接続ケーブル114を介してPLC100に接続可能になっている。サポート装置300は、後述するようなユーザプログラムの生成、PLC100へのユーザプログラムの転送、各種パラメータの設定、モニタ、デバッグなどの機能を提供する。PLC100とサポート装置300との間は、典型的には、USB(Universal Serial Bus)規格に従って通信可能に構成される。
PLC100は、制御演算を実行するCPUユニット104と、1つ以上の機能ユニット106とを含む。これらの機能ユニットは、典型的には、IOユニット、通信ユニット、サーボユニットなどを含み、PLCシステムバス(図示しない)を介して、データを互いに遣り取りできるように構成される。また、これらの機能ユニットには、電源ユニット102によって適切な電圧の電源が供給される。
制御システム1において、PLC100は、機能ユニット106を介して、および/または、フィールドバス110を介して、各種のフィールド機器との間でデータを遣り取りする。これらのフィールド機器は、制御対象に対して何らかの処理を行うためのアクチュエータや、制御対象から各種情報を取得するためのセンサなどを含む。図1には、このようなフィールド機器の一例として、検出スイッチ10およびリレー20を示す。また、PLC100は、フィールドバス110を介して、1つ以上のリモートIO装置200とも接続されている。リモートIO装置200は、基本的には、機能ユニット106と同様に、一般的な入出力処理に関する処理を行う。
フィールドバス110としては、任意の種類のバス方式を採用することができる。例えば、フィールドバス110として、各種の産業用イーサネット(登録商標)を用いることができる。産業用イーサネット(登録商標)としては、例えば、EtherCAT(登録商標)、PROFINET IRT、MECHATROLINK(登録商標)−III、Powerlink、SERCOS(登録商標)−III、CIP Motionなどがある。さらに、産業用イーサネット(登録商標)以外のフィールドネットワークを用いてもよい。例えば、DeviceNet、CompoNet(登録商標)などを用いてもよい。
リモートIO装置200は、PLC100とネットワークを介して接続される複数のリモート装置の典型例である。PLC100は、これらのリモートIO装置200との間でデータを遣り取りする。
より具体的には、リモートIO装置200は、フィールドバス110でのデータ伝送に係る処理を行うための通信カプラ202と、1つ以上の機能ユニット204とを含む。これらの機能ユニットは、リモートIO装置バス(図示しない)を介して、データを互いに遣り取りできるように構成される。
<B.PLC100の構成>
次に、本実施の形態に係るPLC100の構成について説明する。図2は、本実施の形態に係るPLC100の主要部を示すハードウェア構成を示す模式図である。図3は、本実施の形態に係るPLC100のソフトウェア構成を示す模式図である。
図2を参照して、PLC100のCPUユニット104のハードウェア構成について説明する。CPUユニット104は、プロセッサ120と、チップセット122と、システムクロック124と、主メモリ126と、不揮発性メモリ128と、USBコネクタ130と、PLCシステムバスコントローラ140と、フィールドバスコントローラ150と、メモリカードインターフェイス170とを含む。チップセット122と他のコンポーネントとの間は、各種のバスを介してそれぞれ結合されている。
プロセッサ120およびチップセット122は、典型的には、汎用的なコンピュータアーキテクチャに準じて構成される。すなわち、プロセッサ120は、チップセット122から内部クロックに従って順次供給される命令コードを解釈して実行する。チップセット122は、接続されている各種コンポーネントとの間で内部的なデータを遣り取りするとともに、プロセッサ120に必要な命令コードを生成する。システムクロック124は、予め定められた周期のシステムクロックを発生してプロセッサ120に提供する。チップセット122は、プロセッサ120での演算処理の実行の結果得られたデータなどをキャッシュする機能を有する。
CPUユニット104は、記憶手段として、主メモリ126および不揮発性メモリ128を有する。主メモリ126は、揮発性の記憶領域であり、プロセッサ120で実行されるべき各種プログラムを保持するとともに、各種プログラムの実行時の作業用メモリとしても使用される。不揮発性メモリ128は、OS(Operating System)、システムプログラム、ユーザプログラム、データ定義情報、ログ情報などを不揮発的に保持する。
USBコネクタ130は、サポート装置300とCPUユニット104とを接続するためのインターフェイスである。典型的には、サポート装置300から転送される実行可能なプログラムなどは、USBコネクタ130を介してCPUユニット104に取込まれる。
CPUユニット104は、通信手段として、PLCシステムバスコントローラ140、フィールドバスコントローラ150、および上位通信コントローラ160を有する。これらの通信回路は、データの送信および受信を行う。
PLCシステムバスコントローラ140は、PLCシステムバス108を介したデータの遣り取りを制御する。より具体的には、PLCシステムバスコントローラ140は、バッファメモリ142と、PLCシステムバス制御回路144と、DMA(Dynamic Memory Access)制御回路146とを含む。PLCシステムバスコントローラ140は、PLCシステムバスコネクタ148を介してPLCシステムバス108と接続される。
フィールドバスコントローラ150は、バッファメモリ152と、フィールドバス制御回路154と、DMA制御回路156とを含む。フィールドバスコントローラ150は、フィールドバスコネクタ158を介してフィールドバス110と接続される。
メモリカードインターフェイス170は、CPUユニット104に対して着脱可能なメモリカード172とプロセッサ120とを接続する。
次に、図3を参照して、本実施の形態に係るPLC100が提供する各種機能を実現するためのソフトウェア構成について説明する。これらのソフトウェアに含まれる命令コードは、適切なタイミングで読み出され、CPUユニット104のプロセッサ120によって実行される。
図3を参照して、CPUユニット104で実行されるソフトウェアとしては、OS180と、システムプログラム188と、ユーザプログラム186との3階層になっている。
OS180は、プロセッサ120がシステムプログラム188およびユーザプログラム186を実行するための基本的な実行環境を提供する。
システムプログラム188は、PLC100としての基本的な機能を提供するためのソフトウェア群である。具体的には、システムプログラム188は、シーケンス命令プログラム190と、DB(データベース)アクセス処理プログラム192と、入出力処理プログラム194と、Toolインターフェイス処理プログラム196と、スケジューラ198とを含む。一方、ユーザプログラム186は、制御対象に対する制御目的に応じて任意に作成されたプログラムである。
ユーザプログラム186は、シーケンス命令プログラム190と協働して、ユーザにおける制御目的を実現する。すなわち、ユーザプログラム186は、シーケンス命令プログラム190によって提供される命令、関数、機能モジュールなどを利用することで、プログラムされた動作を実現する。
データ定義情報182は、ユーザプログラム186などが実行される際に、参照されるデータ(入力データ、出力データ、内部データ)をユニークな変数として扱うための定義を含む。稼動ログ184には、システムプログラム188およびユーザプログラム186の実行に伴って、予め定められた事象が発生した際に、当該発生した事象の情報が時刻情報と関連付けて格納される。
以下、各プログラムについてより詳細に説明する。
シーケンス命令プログラム190は、ユーザプログラム186の実行に伴って、ユーザプログラム186内で指定されているシーケンス命令の実体を呼び出して、その命令の内容を実現するための命令コード群を含む。
DBアクセス処理プログラム192は、ユーザプログラム186の実行に伴って、データベース装置へアクセスするために必要な処理を実現するための命令コード群を含む。
入出力処理プログラム194は、機能ユニット106や各種のフィールド機器との間で、入力データの取得および出力データの送信を管理するためのプログラムである。
Toolインターフェイス処理プログラム196は、サポート装置300との間でデータを遣り取りするためのインターフェイスを提供する。
スケジューラ198は、予め定められた優先度やシステムタイマの値などに従って、制御プログラムを実行するためのスレッドやプロシージャを生成する。
ユーザプログラム186は、上述したように、ユーザにおける制御目的(たとえば、対象のラインやプロセス)に応じて作成される。ユーザプログラム186は、典型的には、CPUユニット104のプロセッサ120で実行可能なオブジェクトプログラム形式になっている。ユーザプログラム186は、サポート装置300などにおいて、ラダー形式やファンクションブロック形式で記述されたソースプログラムがコンパイルされることで生成される。そして、生成されたオブジェクトプログラム形式のユーザプログラムは、サポート装置300からCPUユニット104へ転送され、不揮発性メモリ128などに格納される。
<C.リモートIO装置200の構成>
次に、本実施の形態に係るリモートIO装置200の構成について説明する。リモートIO装置200は、図2に示すPLC100のハードウェア構成と類似したハードウェア構成を有している。但し、リモートIO装置200ではユーザプログラムを実行する必要がないので、プロセッサ120などの演算処理を行う部分を簡素化することもできる。
リモートIO装置200は、通信カプラ202と、内部バス(図示しないリモートIO装置バス)を介して通信カプラ202と接続される1つ以上の機能ユニット204とを含む。機能ユニット204は、CPUユニット104に接続される機能ユニット106と同様であるので、詳細な説明は繰り返さない。
<D.サポート装置300の構成>
次に、本実施の形態に係るサポート装置300について説明する。サポート装置300は、PLC100のCPUユニット104の使用を支援するためのものであり、PLC100との間で各種パラメータの設定、プログラミング、モニタ、デバッグなどの機能を提供する。
図4は、本実施の形態に係るPLC100に接続して用いられるサポート装置300のハードウェア構成を示す模式図である。サポート装置300は、典型的には、汎用のコンピュータで構成される。
図4を参照して、サポート装置300は、OSを含む各種プログラムを実行するCPU302と、BIOSや各種データを格納するROM(Read Only Memory)304と、CPU302でのプログラムの実行に必要なデータを格納するための作業領域を提供するメモリRAM306と、CPU302で実行されるプログラムなどを不揮発的に格納するハードディスク(HDD)308とを含む。より具体的には、ハードディスク308には、サポート装置300が提供する機能を実現するためのサポートプログラム330が格納されている。
サポート装置300は、さらに、ユーザからの操作を受け付けるキーボード310およびマウス312と、情報をユーザに提示するためのモニタ314とを含む。さらに、サポート装置300は、PLC100(CPUユニット104)などと通信するための通信インターフェイス(IF)318を含む。
サポート装置300で実行されるサポートプログラム330などは、光学記録媒体332に格納されて流通する。光学記録媒体332に格納されたプログラムは、光学ディスク読取装置316によって読み取られ、ハードディスク308などへ格納される。あるいは、上位のホストコンピュータなどからネットワークを通じてプログラムをダウンロードするように構成してもよい。
<E.ユーザプログラムの生成機能>
次に、本実施の形態に係るサポート装置300が提供するユーザプログラムの生成機能について説明する。
(e1:概要)
図5は、制御システム1のシステム構成の変更例を示す図である。図6は、システム構成の変更とユーザプログラムとの関係を示す図である。
まず、制御システム1を構成するリモートIO装置200に含まれる特定の機能ユニット204の位置などが変更された場合を考える。例えば、図5(a)に示すように、フィールドバス110においてノード1のネットワークアドレス(アドレス情報)が割り当てられた通信カプラ202から2番目のスロットに接続されている機能ユニット204を対象とする処理がユーザプログラムで定義されていたとする。その後、通信カプラ202に新たな機能ユニット204が追加されると、対象の機能ユニット204は、通信カプラ202から3番目のスロットに接続されることになる。
あるいは、図5(b)に示すように、フィールドバス110においてノード1のネットワークアドレス(アドレス情報)が割り当てられた通信カプラ202から1番目のスロットに接続されている機能ユニット204を対象とする処理がユーザプログラムで定義されていたとする。その後、フィールドバス110に新たな通信カプラ202(リモートIO装置200)が追加されると、対象の機能ユニット204が接続されている通信カプラ202のネットワークアドレスは、ノード1からノード2へ変更されることになる。
このような機能ユニット204の物理的および/または論理的な位置が変更されると、これらの情報を利用して定義されているユーザプログラム中の命令も更新される必要がある。
本実施の形態に係るサポート装置300は、このような機能ユニット204の物理的および/または論理的な位置の変更があったとしても、ユーザプログラムに対する変更を行わなくてもよい開発環境を提供する。より具体的には、図6に示すように、「ユニットの位置を示す変数」を用いてユーザプログラムを作成できる環境が提供されている。この変数によって参照される機能ユニット204の物理的および/または論理的な位置は、ユーザが設定する制御システムの構成に応じて適宜更新されるようになっている。すなわち、サポート装置300は、「ユニットの位置を示す変数」と、参照先の機能ユニット204との対応関係を逐次更新する。
「XXX」という識別情報を有する機能ユニット204を特定する変数を用いてユーザプログラムを作成しておけば、当該「XXX」という識別情報を有する機能ユニット204が存在していたスロットに、別の「YYY」という識別情報を有する機能ユニット204が装着されたとしても、ユーザプログラムに対する変更は不要である。
これによって、対象のユニットを一意に示す変数を用いてプログラミングしておけば、制御システム1の構成が変更されたとしても、すなわち機能ユニット204の位置や番号が変更されても、ユーザプログラムを変更する必要がない。
なお、図5には、リモートIO装置200における機能ユニット204の位置変更、および、リモートIO装置200のネットワークアドレスの変更の例を示すが、これに限られることなく、各種の変更によって動的に対応関係が更新される変数を用いるようにしてもよい。例えば、PLC100に含まれる機能ユニット204の位置が変更された場合であっても、上述の変数を用いることで、ユーザプログラムを変更する必要はない。
(e2:処理手順およびユーザインターフェイス)
次に、本実施の形態に係るサポート装置300が提供するユーザプログラムの生成機能のより詳細な処理手順について説明する。
図7は、本実施の形態に係るサポート装置300が提供するユーザプログラムの生成機能を説明するための模式図である。図7を参照して、サポート装置300は、ユーザが任意に設計するユーザプログラム354を、ユニット構成情報350および変数テーブル352とともにビルド(コンパイル)することで、実行可能なユーザプログラム356(オブジェクトプログラム)を生成する。
ユニット構成情報350は、機能ユニット204(または、機能ユニット106)についての構成情報を含む。一例として、ユニット構成情報350は、各機能ユニットについて、ユニット番号およびデバイス名を示す情報を含む。この例では、ユニット番号が「10」で、デバイス名が「abc」である例を示す。
図8は、本実施の形態に係るサポート装置300が提供するネットワーク構成を設定するためのユーザインターフェイスの一例を示す図である。図9は、本実施の形態に係るサポート装置300が提供するユニット構成を設定するためのユーザインターフェイスの一例を示す図である。
図8に示すユーザインターフェイス画面280において、マスターユニット(PLC100/CPUユニット104)に接続される(あるいは、接続されることが予定されている)スレーブユニット(リモートIO装置200/通信カプラ202)が一覧表示される(符号282)。ユーザは、この一覧表示されたネットワークを構成するユニットの各々を選択し、必要な設定値を入力する。具体的には、ユーザは、少なくとも、デバイス名およびネットワークアドレス(ノードアドレス/アドレス情報)を設定する(符号284)。対象のユニットの種別に応じて、ユーザは、これ以外の必要な情報を設定する。図8に示すユーザインターフェイス画面280において、機能ユニット204が接続される通信カプラ202についてのデバイス名およびアドレス情報が設定される。
続いて、図9に示すユーザインターフェイス画面290において、選択されているリモートIO装置200の構成(あるいは、構成することが予定されている)がグラフィカル表示される(符号292)。ユーザは、例えば、ドラッグアンドドロップ操作によって、機能ユニットの種類や位置などを任意に設定できる。さらに、ユーザは、このグラフィカル表示されたユニットの各々を選択し(符号294)、必要な設定値を入力する。具体的には、ユーザは、少なくとも、選択した機能ユニットのデバイス名およびユニット番号を設定する(符号296)。
図8および図9に示すように、サポート装置300は、対象のリモート装置(リモートIO装置200)をネットワーク上で特定するためのアドレス情報(ノードアドレス)と、当該対象のリモート装置内の対象の機能ユニットを特定するためのユニット情報(符号296内のユニット番号)とを、任意の変数(符号296内のデバイス名)に関連付けるための設定を受け付けるユーザインターフェイスを提供する。すなわち、ユーザは、図8および図9に示すようなユーザインターフェイス画面280および290によって、対象の機能ユニットのユニット番号を対応するデバイス名に対応付けることができる。
このとき、対象のリモート装置(リモートIO装置200)をネットワーク上で特定するためのアドレス情報(ノードアドレス)を受け付けるユーザインターフェイス画面280と、ユーザインターフェイス画面280とは異なる、対象のリモート装置内の対象の機能ユニットを特定するためのユニット情報を受け付けるユーザインターフェイス画面290とが提供される。
再度図7を参照して、上述のような手順によって、ユニット構成情報350が設定される。ユーザプログラム354では、ユニット構成情報350において設定されたデバイス名を引数とする変数(この例では、「abc」)を用いることで、対象の機能ユニットを特定することができる。すなわち、サポート装置300は、変数を利用してユーザプログラムを生成可能なユーザインターフェイスを提供する。
なお、両者の間で同一のデバイス名を用いることができれば、ユニット構成情報350の生成(構成情報の設定)とユーザプログラム354の生成との順序は、いずれであってもよい(この点については、後述する)。
本実施の形態に係るサポート装置300は、ユニット構成情報350に基づいて、変数テーブル352を動的に生成/更新する。すなわち、ユーザは、ユニット構成情報350を作成すれば、ユーザプログラム354において利用される変数についての対応関係を定義する変数テーブル352が自動的に生成/更新される。より具体的には、ユーザプログラム354のビルドが要求されると、サポート装置300は、ユニット構成情報350に基づいて変数テーブル352を生成/更新した上で、実行可能なユーザプログラム356を生成する。この生成過程において、サポート装置300は、例えば、デバイス名「abc」を引数とする変数「abc.UnitNo」については、ユニット構成情報350におけるデバイス名「abc」に対応するユニット番号「10」をその初期値とするオブジェクトを生成する。すなわち、コントローラ(サポート装置300/CPUユニット104)は、変数「abc.UnitNo」に値「10」をセットする。
このように、ユーザプログラムのビルドにおいては、サポート装置300は、各変数について初期値として何らかの値が記載されているか否かにかかわらず、指定された変数と同じ名前を有するデバイスを検索し、当該探索したデバイスに設定されているノードアドレスなどを当該変数の初期値として内部的にセットする。なお、該当するデバイスが存在しない場合には、ユーザに対して警告を通知するようにしてもよい。
本実施の形態においては、オブジェクト思考のプログラミング環境を提供するために、変数として構造体型を採用する。すなわち、ユーザプログラム354に含まれるFUN命令に対して、集合体abcを引数とする構造体型変数を指定することで、目的の機能ユニットを特定するユニット番号を入力することができる。
このように、サポート装置300は、変数を利用して作成されたソースプログラム(ユーザプログラム354)から実行可能なユーザプログラム356を生成する機能を有する。さらに、サポート装置300は、生成された実行可能なユーザプログラム356をPLC100(CPUユニット104)へ送信する機能を有する。
また、一旦設計したシステム構成を変更する場合もある。このような場合において、ユーザは、基本的には、システム構成(ユニット構成情報350)を更新するだけでよく、ユーザプログラム354を変更する必要はない。
図10および図11は、本実施の形態に係るサポート装置300が提供するネットワーク構成を変更する場合の手順を示す図である。例えば、フィールドバス110に新たな通信カプラ202(リモートIO装置200)を追加する場合には、図10に示すユーザインターフェイス画面280において、ユーザは、ドラッグアンドドロップ操作によって、通信カプラ202を追加する。そして、必要な設定値が入力される。
また、任意の通信カプラ202に新たな機能ユニット204を追加する場合には、図11に示すユーザインターフェイス画面290において、ユーザは、ドラッグアンドドロップ操作によって、機能ユニット204を追加する。そして、必要な設定値が入力される。
このようなシステム構成が変更されると、図6に示すユニット構成情報350が変更されることになる。このような場合には、ユーザプログラム354を変更することなく、再度ビルド(コンパイル)すればよい。サポート装置300は、変更後のユニット構成情報350を参照して、変数テーブル352を更新し、この更新された変数テーブル352に従って、ユーザプログラム354から新たなシステム構成に適合した、実行可能なユーザプログラム356(オブジェクトプログラム)を生成する。
(e3:変数構造)
上述したような「ユニットの位置を示す変数」については、どのようなデータ構造を採用してもよいが、一例として、構造体型が採用されてもよい。このような構造体型の「ユニットの位置を示す変数」としては、例えば、以下のような変数構造を採用できる。
_sNXUNIT_ID
NodeAdr:UINT; //通信カプラのノードアドレス
IPAdr:BYTE[5]; //通信カプラのIPアドレス
UnitNo:UDINT; //対象の機能ユニットのユニット番号
Path:BYTE[64]; //対象の機能ユニットの経路情報
PathLength:USINT //経路情報の有効データ長
本実施の形態においては、フィールドバス110として任意の方式を採用できるので、ネットワークの方式に応じて、NodeAdrメンバまたはIPAdrメンバに対して有効な初期値がセットされる。すなわち、機能ユニット204が接続される通信カプラ202が所属するネットワークアドレス体系によって、NodeAdrメンバとIPAdrメンバとが選択的に使用される。より具体的には、NodeAdrメンバは、EtherCAT(登録商標)などのネットワークにおいて用いられ、ノードアドレスの値がセットされる。一方、IPAdrメンバは、TCP/IPなどを利用したネットワークにおいて用いられ、インターネットアドレス(IPアドレス)の値がセットされる。このように、変数に係るアドレス情報は、ネットワーク上のノードアドレスまたはインターネットアドレスを含む。
Pathメンバには、リモートIO装置200の機能ユニットとして、増設ユニットを接続するための通信ユニットが装着された場合などに、対象の機能ユニットへの経路情報がセットされる。すなわち、ある通信カプラ202から1または複数の通信ユニットを経由して目的の機能ユニットに到達できるようなシステムが採用された場合などには、その通信カプラ202から目的の機能ユニットまでの経路情報を示す値がセットされる。このように、変数に係るアドレス情報は、対象の機能ユニットまでの経路情報を含む。また、PathLengthメンバには、Pathメンバにセットされる値のうち、有効なデータとみなされる範囲を示す値がセットされる。
(e4:設計手順例)
上述したように、ユーザプログラム354では、ユニット構成情報350において指定された変数を用いて機能ユニット204を特定できる。ユニット構成情報350とユーザプログラム354との生成順序は、以下のように設計手順に応じて異なる。
(1)システム構成(使用する機能ユニット204)が先に決定している場合
この場合には、ユーザは、まずユーザインターフェイス画面280および290(図8および図9)上でシステム構成を設計する。すなわち、ユニット構成情報350が先に生成される。このとき、ユーザは、機能デバイスの各々に対して、ユニークなデバイス名を割り当てる。
続いて、ユーザは、ユーザプログラム354を作成する。このとき、先に割り当てたデバイス名を引数とする変数を用いることで、目的の機能デバイスを特定する。すなわち、目的の機能ユニットのデバイス名を用いて「デバイスの位置を示す変数」を定義する。この変数は、グローバル変数およびローカル変数のいずれとしても使用可能である。
最後に、ユーザがビルドを指定すると、サポート装置300は、ユニット構成情報350に基づいて変数テーブル352を更新し、ユーザプログラム356において指定された各変数の初期値を更新し、実行可能なユーザプログラム356(オブジェクトプログラム)を生成する。
(2)目的の制御要求が先に決定している場合
この場合には、ユーザは、まずユーザプログラム356を作成する。このユーザプログラム356においては、グローバル変数またはローカル変数として、「デバイスの位置を示す変数」を用いる。「デバイスの位置を示す変数」に引数となるデバイス名については、ユニークな任意の値を用いてもよい。
次に、制御システムの設計時(システム構成の設定時)に、使用する機能ユニット204の各々に、ユーザプログラム356に用いた変数に対応するデバイス名を設定する。
最後に、ユーザがビルドを指定すると、サポート装置300は、ユニット構成情報350に基づいて変数テーブル352を作成し、ユーザプログラム356において指定された各変数の初期値を更新し、実行可能なユーザプログラム356(オブジェクトプログラム)を生成する。
<F.変形例>
上述の実施の形態においては、ユニット構成情報350および変数テーブル352において定義された設定がビルド(コンパイル)によってリンクされて、ユーザプログラム356に反映される処理例について説明した。しかしながら、ユニット構成情報350、変数テーブル352、およびユーザプログラム354の間の変数の関連付けについては、どのようなタイミングおよび手順で実行してもよい。
例えば、ビルド(コンパイル)を実行するアプリケーションとは別のアプリケーションを用いてユニット構成情報350を作成するとともに、ユニット構成情報350に対する操作に連動して、変数テーブル352の内容が生成/更新されるようにしてもよい。そして、ビルドの処理においては、更新後の変数テーブル352の内容を用いて、ユーザプログラム354から実行可能なユーザプログラム356(オブジェクトプログラム)が生成されてもよい。
このような処理を採用した場合には、ユニット構成情報350の内容が変更されたり、PLC100における機能ユニット106の構成自体が変更されたりしたときに、変数テーブル352の内容も更新される。また、ユニット構成情報350の生成/更新に伴って、変数テーブル352に定義される各変数の初期値についても決定/更新されるようにしてもよい。
<G.利点>
本実施の形態によれば、機能ユニットを特定する変数を用いてユーザプログラムを作成できるプログラミング環境が提供される。そのため、制御システムのシステム構成が予め決定している場合、および、制御システムのシステム構成は決定されていないが、必要な制御処理が予め決定している場合、のいずれの場合にも効率的にユーザプログラムを作成できる。
また、ユーザプログラムを作成後に、制御システムのシステム構成が変更された場合であっても、それに伴ってユーザプログラムのソースコードを変更する必要がない。そのため、システム構成の変更に対して柔軟に対応することができる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 制御システム、10 検出スイッチ、20 リレー、100 PLC、102 電源ユニット、104 CPUユニット、106 機能ユニット、108 PLCシステムバス、110 フィールドバス、114 接続ケーブル、120 プロセッサ、122 チップセット、124 システムクロック、126 主メモリ、128 不揮発性メモリ、130 USBコネクタ、140 PLCシステムバスコントローラ、142 バッファメモリ、144 PLCシステムバス制御回路、146,156 DMA制御回路、148 PLCシステムバスコネクタ、150 フィールドバスコントローラ、152 バッファメモリ、154 フィールドバス制御回路、158 フィールドバスコネクタ、160 上位通信コントローラ、170 メモリカードインターフェイス、172 メモリカード、180 OS、182 データ定義情報、184 稼動ログ、186,354,356 ユーザプログラム、188 システムプログラム、190 シーケンス命令プログラム、192 アクセス処理プログラム、194 入出力処理プログラム、196 インターフェイス処理プログラム、198 スケジューラ、200 リモートIO装置、202 通信カプラ、204 機能ユニット、300 サポート装置、302 CPU、304 ROM、306 RAM、308 ハードディスク、310 キーボード、312 マウス、314 モニタ、316 光学ディスク読取装置、330 サポートプログラム、332 光学記録媒体、350 ユニット構成情報、352 変数テーブル。

Claims (5)

  1. ネットワークを介して1つまたは複数のリモート装置とデータを遣り取りする制御装置において実行されるユーザプログラムを生成する情報処理装置であって、前記リモート装置は、通信カプラユニットと内部バスを介して前記通信カプラユニットと接続される1または複数の機能ユニットとを含み、前記情報処理装置は、
    対象のリモート装置を前記ネットワーク上で特定するためのアドレス情報と、当該対象のリモート装置内の対象の機能ユニットを特定するためのユニット情報とを、任意の変数に関連付けるための設定を受け付けるユーザインターフェイスを提供する手段と、
    前記変数を利用してユーザプログラムを生成可能なユーザインターフェイスを提供する手段と、
    生成されたユーザプログラムを前記制御装置へ送信する手段とを備える、情報処理装置。
  2. 前記変数を利用して作成されたソースプログラムから実行可能なユーザプログラムを生成する手段をさらに備える、請求項1に記載の情報処理装置。
  3. 前記アドレス情報は、前記ネットワーク上のノードアドレスまたはインターネットアドレスを含み、
    前記ユニット情報は、前記対象の機能ユニットまでの経路情報を含む、請求項1または2に記載の情報処理装置。
  4. 前記設定を受け付けるユーザインターフェイスを提供する手段は、前記対象のリモート装置を前記ネットワーク上で特定するためのアドレス情報を受け付ける第1のユーザインターフェイス画面と、前記第1のユーザインターフェイス画面とは異なる、前記対象のリモート装置内の対象の機能ユニットを特定するためのユニット情報を受け付ける第2のユーザインターフェイス画面とを提供する、請求項1〜3のいずれか1項に記載の情報処理装置。
  5. ネットワークを介して1つまたは複数のリモート装置とデータを遣り取りする制御装置において実行されるユーザプログラムを生成する情報処理プログラムであって、前記リモート装置は、通信カプラユニットと内部バスを介して前記通信カプラユニットと接続される1または複数の機能ユニットとを含み、前記情報処理プログラムは、コンピュータを
    対象のリモート装置を前記ネットワーク上で特定するためのアドレス情報と、当該対象のリモート装置内の対象の機能ユニットを特定するためのユニット情報とを、任意の変数に関連付けるための設定を受け付けるユーザインターフェイスを提供する手段と、
    前記変数を利用してユーザプログラムを生成可能なユーザインターフェイスを提供する手段と、
    生成されたユーザプログラムを前記制御装置へ送信する手段として機能させる、情報処理プログラム。
JP2013073799A 2013-03-29 2013-03-29 情報処理装置および情報処理プログラム Active JP6135247B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013073799A JP6135247B2 (ja) 2013-03-29 2013-03-29 情報処理装置および情報処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013073799A JP6135247B2 (ja) 2013-03-29 2013-03-29 情報処理装置および情報処理プログラム

Publications (2)

Publication Number Publication Date
JP2014199485A JP2014199485A (ja) 2014-10-23
JP6135247B2 true JP6135247B2 (ja) 2017-05-31

Family

ID=52356369

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013073799A Active JP6135247B2 (ja) 2013-03-29 2013-03-29 情報処理装置および情報処理プログラム

Country Status (1)

Country Link
JP (1) JP6135247B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6323685B2 (ja) * 2015-06-18 2018-05-16 株式会社安川電機 プログラマブルコントローラ
JP6627571B2 (ja) * 2016-02-26 2020-01-08 オムロン株式会社 プログラマブルコントローラ、プログラマブルコントローラの制御方法、プログラマブルコントローラの制御プログラム
JP6816554B2 (ja) * 2017-02-22 2021-01-20 オムロン株式会社 制御システム、制御装置および制御プログラム
JP7462848B1 (ja) 2023-04-14 2024-04-05 三菱電機株式会社 Plcシステム、リモートユニット、マスタ局、リモートユニット制御方法、マスタ局制御方法、リモートユニット制御プログラム及びマスタ局制御プログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6246304A (ja) * 1985-08-23 1987-02-28 Hitachi Ltd プログラマブルコントロ−ラ
JPH01163802A (ja) * 1987-12-21 1989-06-28 Mitsubishi Electric Corp プログラマブルコントローラ
JP2000268016A (ja) * 1999-03-15 2000-09-29 Omron Corp 分散制御システム並びにその構成要素

Also Published As

Publication number Publication date
JP2014199485A (ja) 2014-10-23

Similar Documents

Publication Publication Date Title
JP6442843B2 (ja) 制御装置
JP6357770B2 (ja) 制御装置および通信制御方法
JP6409557B2 (ja) 制御装置、コントローラ・システム、出力制御方法、およびプログラム
JP6299064B2 (ja) 制御装置、制御方法、およびプログラム
EP2672384A1 (en) Cpu of plc, system program for plc, and recording medium storing system program for plc
JP6624008B2 (ja) エンジニアリングツール連携装置、エンジニアリングツール連携方法、エンジニアリングツール連携プログラム及び記録媒体
JP2018129020A (ja) インダストリアル・インターネットオペレーティングシステムに基づくインダストリアル・プロセス制御管理方法と装置
JP6135247B2 (ja) 情報処理装置および情報処理プログラム
JP2015176191A (ja) コントローラ
JP2018132829A (ja) 制御装置
WO2013145940A1 (ja) 情報処理装置、情報処理方法、およびプログラム
WO2024140416A1 (zh) 一种工业控制程序开发平台及方法
US11165745B2 (en) Control system, controller, and control method
JP6362821B2 (ja) 制御装置、制御方法および命令セット
WO2019176336A1 (ja) 制御システム、開発支援装置、および開発支援プログラム
US20190306250A1 (en) Support apparatus, non-transitory computer-readable recording medium and setting method
JP2011186607A (ja) フィールドデバイス、フィールドデバイスの設定方法、フィールドデバイス管理装置及びプログラム
US20190303319A1 (en) Support apparatus, non-transitory computer-readable recording medium and setting method
JP6119452B2 (ja) プログラマブルコントローラシステム、その支援装置、プログラマブルコントローラ、プログラム
US10599112B2 (en) Method for programming and configuring a device in a traceable manner
JP6455096B2 (ja) コントロールシステム、その支援装置、プログラマブルコントロール装置
JP2018139162A (ja) 制御装置および通信制御方法
WO2022249713A1 (ja) 制御システム、システムプログラムおよびデバッグ方法
WO2024190551A1 (ja) サポート装置、制御方法、およびサポートプログラム
WO2024190554A1 (ja) サポート装置、制御方法、およびサポートプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160307

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170410

R150 Certificate of patent or registration of utility model

Ref document number: 6135247

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