JP6881256B2 - 制御装置、制御方法、およびプログラム - Google Patents

制御装置、制御方法、およびプログラム Download PDF

Info

Publication number
JP6881256B2
JP6881256B2 JP2017226973A JP2017226973A JP6881256B2 JP 6881256 B2 JP6881256 B2 JP 6881256B2 JP 2017226973 A JP2017226973 A JP 2017226973A JP 2017226973 A JP2017226973 A JP 2017226973A JP 6881256 B2 JP6881256 B2 JP 6881256B2
Authority
JP
Japan
Prior art keywords
variables
variable
control program
priority
public
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
JP2017226973A
Other languages
English (en)
Other versions
JP2019096211A (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 JP2017226973A priority Critical patent/JP6881256B2/ja
Priority to EP18193416.7A priority patent/EP3489776B1/en
Priority to US16/127,254 priority patent/US10712731B2/en
Priority to CN201811062488.5A priority patent/CN109839910B/zh
Publication of JP2019096211A publication Critical patent/JP2019096211A/ja
Application granted granted Critical
Publication of JP6881256B2 publication Critical patent/JP6881256B2/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/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/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control 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/4183Total 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 data acquisition, e.g. workpiece identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • 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/25Pc structure of the system
    • G05B2219/25221Identification of messages and their relative priority

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • General Engineering & Computer Science (AREA)
  • Manufacturing & Machinery (AREA)
  • Quality & Reliability (AREA)
  • Theoretical Computer Science (AREA)
  • Programmable Controllers (AREA)

Description

本開示は、産業用の制御装置内で管理される変数を外部機器に公開するための技術に関する。
様々な生産現場において、生産工程を自動化するFA(Factory Automation)システムが普及している。FAシステムは、種々の産業用の駆動機器によって構成される。産業用の駆動機器は、たとえば、ワークを移動するための移動テーブルや、ワークを搬送するためのコンベアや、予め定められた目的の場所までワーク移動するためのアームロボットなどを含む。これらの駆動機器は、PLC(Programmable Logic Controller)やロボットコントローラなどの産業用の制御装置(以下、「コントローラ」ともいう。)によって制御される。
産業用の駆動機器の状態を監視するために、コントローラ内のデータにアクセスする必要がある。コントローラ内のデータにアクセスするための技術に関し、特開2012−018541号公報(特許文献1)は、「外部機器の種類や接続に関係なく、外部機器のデータを容易に収集することが可能な」表示装置を開示している。
特開2012−018541号公報
近年、OPC−UA(Object Linking and Embedding for Process Control Unified Architecture)に対応したコントローラが普及しつつある。OPC−UAとは、ベンダやOS(Operating System)の種類などに依存することなくデータ交換を実現するために定められた通信の標準規格である。OPC−UAに対応したコントローラが用いられることで、外部機器は、当該コントローラ内で管理されるデータ(変数)に容易にアクセスすることができる。
コントローラは、外部機器に変数を公開するためには、変数にアクセスするたに必要なデータ(たとえば、変数自体やインスタンスなど)をメモリに展開する必要がある。メモリの記憶領域の一部は、駆動機器の制御プログラムによって使用されているため、メモリの空き容量は、限られている。そのため、公開変数の数が多いときには、コントローラは、全ての公開変数を公開できない可能性がある。
本開示は上述のような問題点を解決するためになされたものであって、ある局面における目的は、公開の優先度がより高い変数を可能な限り多く外部機器に公開することが可能な技術を提供することである。
本開示の一例では、駆動機器を制御するための制御装置は、外部機器に公開される情報であって、上記駆動機器の制御プログラムに含まれる変数の論理アドレスを規定するアドレス情報を格納するメモリと、予め定められたルールに従って、上記制御プログラムに含まれる変数について、上記外部機器への公開の優先度を決定するための決定部と、上記メモリの空き容量を監視するための監視部と、上記制御プログラムに含まれる変数の内の、上記外部機器に対して公開することが許可されている1つ以上の公開変数について、上記空き容量が予め定められた閾値を下回らない範囲で、当該1つ以上の公開変数のそれぞれの論理アドレスを上記公開の優先度の順に上記アドレス情報に追加するためのアドレス管理部とを備える。
この開示によれば、制御装置は、メモリの空き容量が予め定められた閾値を下回らない範囲で公開変数の論理アドレスをアドレス情報に追加するので、可能な限り多くの公開変数を外部機器に公開することができる。また、公開の優先度が高い公開変数から順に論理アドレスが追加されるので、制御装置は、重要な公開変数を優先的に外部機器に公開することができる。
本開示の一例では、上記決定部は、上記予め定められたルールに従って上記制御プログラムに含まれる変数をソートし、当該ソート順が上位の変数ほど上記公開の優先度を高くする。
この開示によれば、制御装置は、変数のソート順で変数の公開の優先度を決定することができる。
本開示の一例では、上記予め定められたルールは、上記制御プログラムに含まれる変数を、変数名の文字コードの順にソートすることを含む。
この開示によれば、設計者は、公開の優先度を変数の命名規則で設定できるので、各変数に対して優先度を設定する手間を省くことができる。
本開示の一例では、上記予め定められたルールは、上記制御プログラムに含まれる変数を、各変数に予め設定されている優先度の順にソートすることを含む。
この開示によれば、制御装置は、設計者によって設定された公開の優先度が高い変数を他の変数よりも優先的に公開することができる。
本開示の一例では、上記1つ以上の公開変数のそれぞれには、名前空間が関連付けられている。上記予め定められたルールは、上記制御プログラムに含まれる変数を、上記名前空間に予め設定されている優先度の順にソートすることを含む。
この開示によれば、設計者は、公開の優先度を名前空間で指定することができるので、全変数に公開の優先度を設定する必要がない。
本開示の一例では、上記予め定められたルールは、予め定められたキーワードを含む変数が他の変数よりもソート順が上位になるように、上記制御プログラムに含まれる変数をソートすることを含む。
この開示によれば、設計者は、公開の優先度を変数名で指定することができるので、各変数名に対して優先度を設定する手間を省くことができる。
本開示の他の例では、駆動機器を制御するための制御装置の制御方法は、外部機器に公開される情報であって、上記駆動機器の制御プログラムに含まれる変数の論理アドレスを規定するアドレス情報をメモリに準備するステップと、予め定められたルールに従って、上記制御プログラムに含まれる変数について、外部機器への公開の優先度を決定するステップと、上記メモリの空き容量を監視するステップと、上記制御プログラムに含まれる変数の内の、上記外部機器に対して公開することが許可されている1つ以上の公開変数について、上記空き容量が予め定められた閾値を下回らない範囲で、当該1つ以上の公開変数のそれぞれの論理アドレスを上記公開の優先度の順に上記アドレス情報に追加するステップとを備える。
この開示によれば、制御装置の制御方法は、メモリの空き容量が予め定められた閾値を下回らない範囲で公開変数の論理アドレスをアドレス情報に追加するので、可能な限り多くの公開変数を外部機器に公開することができる。また、公開の優先度が高い公開変数から順に論理アドレスが追加されるので、制御装置の制御装置は、重要な公開変数を優先的に外部機器に公開することができる。
本開示の他の例では、駆動機器の制御装置によって実行されるプログラムは、上記制御装置に、外部機器に公開される情報であって、上記駆動機器の制御プログラムに含まれる変数の論理アドレスを規定するアドレス情報をメモリに準備するステップと、予め定められたルールに従って、上記制御プログラムに含まれる変数について、外部機器への公開の優先度を決定するステップと、上記メモリの空き容量を監視するステップと、上記制御プログラムに含まれる変数の内の、上記外部機器に対して公開することが許可されている1つ以上の公開変数について、上記空き容量が予め定められた閾値を下回らない範囲で、当該1つ以上の公開変数のそれぞれの論理アドレスを上記公開の優先度の順に上記アドレス情報に追加するステップとを実行させる。
この開示によれば、制御装置によって実行されるプログラムは、メモリの空き容量が予め定められた閾値を下回らない範囲で公開変数の論理アドレスをアドレス情報に追加するので、可能な限り多くの公開変数を外部機器に公開することができる。また、公開の優先度が高い公開変数から順に論理アドレスが追加されるので、制御装置の制御プログラムは、重要な公開変数を優先的に外部機器に公開することができる。
ある局面において、公開の優先度がより高い変数を可能な限り多く外部機器に公開することができる。
実施の形態に従うFAシステムの構成例を示す図である。 制御プログラムに含まれる変数の一覧と、外部機器に公開されるアドレス情報とを示す図である。 アドレス情報を視覚的に表した図である。 OPC−UAサーバーの起動から停止までの処理を表わすフローチャートである。 OPC−UAサーバーの初期化処理を表わすフローチャートである。 実施の形態に従うコントローラの機能構成の一例を示す図である。 実施の形態に従うコントローラのハードウェア構成の一例を示す模式図である。
以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。
<A.適用例>
図1を参照して、本発明の適用例について説明する。図1は、FAシステム1の構成例を示す図である。
FAシステム1は、生産工程を自動化するためのシステムである。図1の例では、FAシステム1は、コントローラ100と、駆動機器200と、外部機器300とで構成されている。
コントローラ100および駆動機器200は、フィールドネットワークNW1に接続されている。フィールドネットワークNW1には、データの到達時間が保証される、定周期通信を行うネットワークを採用することが好ましい。このような定周期通信を行うネットワークとしては、EtherCAT(登録商標)、EtherNet/IP(登録商標)、登録商標)、CompoNet(登録商標)などが知られている。
駆動機器200は、生産工程を自動化するための種々の産業用機器を含む。一例として、駆動機器200は、アームロボット201Aを制御するロボットコントローラ200Aや、サーボモータ201Bを制御するサーボドライバ200Bや、ワークを撮影するための視覚センサ200Cや、生産工程で利用されるその他の機器などを含む。
コントローラ100および外部機器300は、フィールドネットワークNW2に接続されている。フィールドネットワークNW2には、たとえば、ベンダやOSの種類などに依存することなくデータ交換を実現することができる通信規格に従ったネットワークを採用することが望ましい。このような通信規格としては、たとえば、OPC−UAなどが知られている。以下では、OPC−UAを前提として説明を行うが、フィールドネットワークNW2に採用される通信規格は、OPC−UAに限定されるわけではない。
OPC−UAに従った通信を実現するためには、コントローラ100をサーバーとして機能させるとともに、外部機器300をクライアントとして機能させる必要がある。より具体的には、コントローラ100には、サーバー機能を有するOPC−UAサーバー150(サーバー部)がインストールされている。ここでいう「OPC−UAサーバー」とは、通信ドライバとして機能するアプリケーション(プログラム)である。また、OPC−UAサーバーの「サーバー機能」とは、コントローラ100のメモリ106上の記憶領域を利用する機能のこといい、特に、外部機器300と通信し、外部機器300とのデータのやり取りを実現するための機能のことをいう。
また、外部機器300には、OPC−UAサーバー150との通信機能を有するOPC−UAクライアント350A〜350Cがインストールされている。ここでいう「OPC−UAクライアント」とは、OPC−UAサーバー150に通信要求(アクセス要求)を送信するアプリケーションである。以下では、OPC−UAクライアント350A〜350Cを総称して、OPC−UAクライアント350ともいう。
OPC−UAクライアント350は、OPC−UAサーバー150にアクセス要求を送信することで、駆動機器200の制御プログラム112に含まれる変数111の論理アドレスを規定するアドレス情報113を参照し、コントローラ100内で管理される変数111をOPC−UAサーバー150から取得する。アドレス情報113の詳細については後述する。OPC−UAクライアント350は、取得した変数に基づいて、コントローラ100や駆動機器200の状態をグラフィカルに表示する。OPC−UAクライアント350として機能する外部機器300は、たとえば、HMI(Human Machine Interface)、PC(Personal Computer)、スマートフォン、タブレット端末、または、表示機能を有するその他の情報処理装置を含む。
コントローラ100は、OPC−UAサーバー150の他に、プロセッサ102と、メモリ106とを含む。プロセッサ102は、機能構成として、プログラム実行部103を含む。OPC−UAサーバー150は、機能構成として、監視部152と、決定部154と、アドレス管理部156とを含む。
プログラム実行部103は、制御プログラム112の実行命令を受け付けたことに基づいて、制御プログラム112の実行に必要な各種データをメモリ106に展開し、制御プログラム112に従って駆動機器200を制御する。このように、メモリ106は、ワーキングメモリとして機能し、制御プログラム112の実行に必要な各種データを一時的に格納する。
コントローラ100と駆動機器200との間で遣り取りされる信号(典型的には、入力信号および出力信号)を制御プログラム112内では、それぞれ変数111として取り扱う。すなわち、これらの現実の信号と制御プログラム112内の対応する変数111とは本質的に同じものである。
監視部152は、メモリ106の空き容量を監視し、当該使用容量をアドレス管理部156に出力する。決定部154は、予め定められたルールに従って、制御プログラム112に含まれる変数111について、外部機器300への公開の優先度を決定する。公開の優先度の決定方法の詳細については後述する。
アドレス管理部156は、変数111の内の、外部機器300に対して公開することが許可されている変数(以下、「公開変数」ともいう。)について、メモリ106の空き容量が予め定められた閾値を下回らない範囲で、決定部154によって決定された公開の優先度の順に従って、公開変数のそれぞれの論理アドレスをアドレス情報113に追加する。アドレス情報113の詳細については後述する。公開変数の論理アドレスがアドレス情報113に追加されることで、外部機器300は、コントローラ100内の公開変数にアクセスすることができ、公開変数の値を参照することができる。
メモリ106の記憶領域の一部は、駆動機器200を制御するための制御プログラム112によって使用されているため、メモリ106の空き容量は、限られている。このような状況下では、変数111の全てが外部機器300に公開されると、メモリ106の空き容量がなくなってしまう可能性がある。この場合には、制御プログラム112が意図せずに停止してしまい、FAシステム1が停止してしまう可能性がある。FAシステム1が停止すると多大な機会損失が生じるため、FAシステム1を極力停止しないことが望まれている。本実施の形態に従うコントローラ100は、メモリ106の空き容量が予め定められた閾値を下回らない範囲で、公開変数の論理アドレスをアドレス情報113に追加するので、公開変数の公開処理により制御プログラム112が停止することはない。
一方で、公開変数は、メモリ106に空きがある限り、可能な限り多く公開されることが好ましい。本実施の形態に従うコントローラ100は、メモリ106の空き容量が予め定められた閾値を下回らない範囲で公開変数を公開するので、可能な限り多くの公開変数を公開することができる。また、公開の優先度が高い公開変数から順に論理アドレスが追加されるので、コントローラ100は、重要な公開変数を優先的に外部機器300に公開することができる。
なお、上述では、FAシステム1が1つのコントローラ100(OPC−UAサーバー150)で構成されている例について説明を行ったが、FAシステム1は、2つ以上のコントローラ100(OPC−UAサーバー150)で構成されてもよい。
また、上述では、FAシステム1が3つの外部機器300(OPC−UAクライアント350)で構成されている例について説明を行ったが、FAシステム1は、1つ以上の外部機器300(OPC−UAクライアント350)で構成されればよい。
また、上述では、監視部152がメモリ106の空き容量を監視する例について説明を行ったが、メモリ106の空き容量と、メモリ106の使用容量とは、互いに相関する概念であるため、監視部152は、メモリ106の使用容量を監視するように構成されてもよい。この場合、監視部152は、メモリ106のメモリ容量から使用容量を差分することで、メモリ106の空き容量を算出することができる。
また、上述では、外部機器300との通信を実現するためのサーバーとして、OPC−UAサーバー150を例に挙げて説明を行ったが、OPC−UAサーバー150は、外部機器300との通信を実現することが可能なサーバーであれば任意の種類のサーバーで代用され得る。一例として、OPC−UAサーバー150は、SQL(Structured Query Language)サーバーなどのDB(Data Base)サーバー、FTP(File Transfer Protocol)サーバー、または、HTTPサーバーなどのWebサーバーで代用されてもよい。
また、図1には、監視部152、決定部154、およびアドレス管理部156がOPC−UAサーバー150に実装されている例について説明を行ったが、監視部152、決定部154、およびアドレス管理部156は、OPC−UAサーバー150外に実装されてもよい。この場合、監視部152は、複数のサーバー部のそれぞれについてメモリ106の使用容量を個々に監視する。決定部154は、公開変数の公開の優先度をサーバー部ごとに決定する。アドレス管理部156は、アドレス情報113をサーバー部ごとに個々に管理する。
<B.公開変数の設定>
図2を参照して、公開変数の設定方法について説明する。図2は、制御プログラム112に含まれる変数の一覧と、外部機器300に公開されるアドレス情報113とを示す図である。
制御プログラム112の設計者は、OPC−UAクライアント350に対する公開変数の設定をサポート装置400上で行うことができる。サポート装置400は、たとえば、PC、タブレット端末、または、表示機能を有するその他の情報処理装置である。サポート装置400には、制御プログラム112の開発ツールがインストールされ得る。設計者は、当該開発ツール上で制御プログラム112を設計し、設計した制御プログラム112をコントローラ100にインストールする。制御プログラム112の開発ツールは、たとえば、オムロン社製の「Sysmac Studio」である。
図2には、公開変数の設定画面401が示されている。設計者は、設定画面401上において、制御プログラム112に規定される各変数について属性を設定することができる。設定可能な属性は、たとえば、変数名と、変数の型と、変数の初期値と、OPC−UAクライアント350への公開属性とを含む。公開属性としては、「公開のみ」、「入力」、「出力」、「非公開」のいずれかが設定され得る。「公開のみ」、「入力」、「出力」と設定された変数はOPC−UAクライアント350に公開され、「非公開」と設定された変数はOPC−UAクライアント350に公開されない。
図2の例では、OPC−UAクライアント350は、公開属性として「公開のみ」と設定された変数「Var1」と、公開属性として「入力」と設定された変数「Var2」と、公開属性として「出力」と設定された変数「Var3」とにアクセスすることができる。一方で、OPC−UAクライアント350は、公開属性として「非公開」と設定された変数「Var4」にはアクセスすることができない。
より具体的には、「公開のみ」と設定された変数「Var1」については、OPC−UAクライアント350は、変数名のみを特定でき、変数の値を取得することはできない。「入力」と設定された変数「Var2」については、OPC−UAクライアント350は、変数の値を読み込むことができるが、変数の値を書き換えることはできない。「出力」と設定された変数「Var3」については、OPC−UAクライアント350は、変数の値を読み込むことも書き換えることもできる。
<C.アドレス情報113>
引き続き図2を参照しつつ、図3を参照して、アドレス情報113について説明する。図3は、アドレス情報113を視覚的に表した図である。
図2に示されるように、設定画面401における公開変数の設定に従ってアドレス情報113が生成される。典型的には、アドレス情報113は、コントローラ100によって生成されるが、サポート装置400によって生成されてもよい。生成されたアドレス情報113は、OPC−UAクライアント350として機能する外部機器300から参照され得る。
アドレス情報113には、制御プログラム112に含まれる変数111の論理アドレスが規定されている。論理アドレスとは、メモリ106上の論理位置のこといい、メモリ106上の所定の情報(たとえば、図2の「ROOT」)を基準とした相対位置を表わす。より具体的には、アドレス情報113は、複数のノードで構成される。各ノードは、対応する変数の属性(たとえば、アドレス、変数値、変数の型など)を規定する。各ノードは、他のノードと関連付けられており階層関係を有する。OPC−UAクライアント350は、アドレス情報113に規定されている各ノードの論理アドレスを辿ることで、目的のノードを探索することができ、辿りついた目的のノードの属性を参照することで、当該ノードに規定されている変数の型や変数の値を取得することができる。
図2および図3には、コントローラ「new_Controller_0」内の変数がノードN1〜N3として管理されている。OPC−UAクライアント350は、オブジェクト「DeviceSet」に含まれるノード「new_Controller_0」、オブジェクト「Resources」に含まれるノード「CPU」を順に辿ることで、オブジェクト「GlobalVars」に含まれるノードN1〜N3にアクセスすることができる。
図3の例では、ノードN1〜N3には、変数の属性として、変数の値と変数の型とが規定されている。OPC−UAクライアント350は、ノードN1を参照することで、ノードN1に関連付けられている変数「Var1」の型および値を特定することができる。また、OPC−UAクライアント350は、ノードN2を参照することで、ノードN2に関連付けられている変数「Var2」の型および値を特定することができる。また、OPC−UAクライアント350は、ノードN3を参照することで、ノードN3に関連付けられている変数「Var3」の型および値を特定することができる。
<D.全体フロー>
図4を参照して、コントローラ100内のOPC−UAサーバー150の制御構造について説明する。図4は、OPC−UAサーバー150の起動から停止までの処理を表わすフローチャートである。図4に示される処理は、コントローラ100のプロセッサ102(図1参照)がプログラムを実行することにより実現される。他の局面において、処理の一部または全部が、回路素子またはその他のハードウェアによって実行されてもよい。
ステップS110において、プロセッサ102は、OPC−UAサーバー150を起動するためのイベントを検知したか否かを判断する。プロセッサ102は、OPC−UAサーバー150を起動するためのイベントを検知したと判断した場合(ステップS110においてYES)、制御をステップS120に切り替える。そうでない場合には(ステップS110においてNO)、プロセッサ102は、ステップS110の処理を再び実行する。
ステップS120において、プロセッサ102は、OPC−UAサーバー150を起動し、OPC−UAサーバー150の初期化処理を実行する。OPC−UAサーバー150の初期化処理の詳細については後述する。
ステップS150において、プロセッサ102は、OPC−UAサーバー150の初期化処理が完了したか否かを判断する。プロセッサ102は、OPC−UAサーバー150の初期化処理が完了したと判断した場合(ステップS150においてYES)、制御をステップS152に切り替える。そうでない場合には(ステップS150においてNO)、プロセッサ102は、ステップS150の処理を再び実行する。
ステップS152において、プロセッサ102は、OPC−UAサーバー150の状態を稼働中とする。これにより、OPC−UAサーバー150は、OPC−UAクライアント350から、公開変数へのアクセス要求を受信可能な状態となる。当該アクセス要求は、たとえば、Read要求、Write要求、または、Subscription要求である。アクセス要求がRead要求である場合、OPC−UAサーバー150は、アクセス対象の公開変数の値をOPC−UAクライアント350に1回送信する。アクセス要求がWrite要求である場合、OPC−UAサーバー150は、アクセス対象の公開変数を指定された値に書き換える。アクセス要求がSubscription要求である場合、OPC−UAサーバー150は、アクセス対象の公開変数の値を定期的に送信する。
ステップS160において、プロセッサ102は、OPC−UAサーバー150を停止するためのイベントを検知したか否かを判断する。プロセッサ102は、OPC−UAサーバー150を停止するためのイベントを検知したと判断した場合(ステップS160においてYES)、制御をステップS162に切り替える。そうでない場合には(ステップS160においてNO)、プロセッサ102は、制御をステップS152に戻す。
ステップS162において、プロセッサ102は、OPC−UAサーバー150の停止処理を実行する。このとき、プロセッサ102は、制御プログラム112による駆動機器200の制御については停止しない。これにより、プロセッサ102は、OPC−UAサーバー150のサーバー機能のみを停止することができ、駆動機器200の駆動を阻害せずに済む。
好ましくは、プロセッサ102は、OPC−UAサーバー150が使用しているメモリ106上の記憶領域を解放した上でサーバー機能を停止する。これにより、OPC−UAサーバー150は、メモリ106の使用容量を減らすことができ、駆動機器200の制御プログラム112の実行が停止されることを確実に防止することができる。
<E.初期化フロー>
図5を参照して、図4に示されるステップS120の初期化処理について説明する。図5は、OPC−UAサーバー150の初期化処理を表わすフローチャートである。
ステップS112において、プロセッサ102は、上述の決定部154(図1参照)として、予め定められたソートルールに従って、制御プログラム112に含まれる変数111をソートする。プロセッサ102は、当該ソート順に従って、各変数の公開の優先度を決定する。変数のソートルールの具体例については後述する。プロセッサ102は、当該ソート順が上位の変数ほど公開の優先度を高くする。
ステップS114において、プロセッサ102は、ステップS112でのソート順が最上位の変数を注目変数とする。
ステップS120において、プロセッサ102は、現在の注目変数が公開変数であるか否かを判断する。各変数の公開/非公開の設定は、予め行われている。公開変数の設定方法については図2で説明した通りであるので、その説明については繰り返さない。プロセッサ102は、現在の注目変数が公開変数であると判断した場合(ステップS120においてYES)、制御をステップS130に切り替える。そうでない場合には(ステップS120においてNO)、プロセッサ102は、制御をステップS142に切り替える。
ステップS130において、プロセッサ102は、上述の監視部152(図1参照)として、メモリ106の使用容量に空きがあるか否かを判断する。一例として、プロセッサ102は、メモリ106の使用容量が予め定められた閾値以上である場合に、メモリ106の使用容量に空きがあると判断する。プロセッサ102は、メモリ106の使用容量に空きがあると判断した場合(ステップS130においてYES)、制御をステップS132に切り替える。そうでない場合には(ステップS130においてNO)、プロセッサ102は、図5に示されるOPC−UAサーバー150の初期化処理を終了する。
ステップS132において、プロセッサ102は、上述のアドレス管理部156(図1参照)として、現在の注目変数をアドレス情報113(図2,図3参照)に追加する。注目変数に関する情報は、ノードとしてアドレス情報113に追加される。当該ノードには、注目変数の論理アドレスや、注目変数の型や、当該ノードから他のノードへの参照先(たとえば、ノードの論理アドレス)などの情報が含まれる。
ステップS140において、プロセッサ102は、現在の注目変数のソート順が最下位(最後)であるか否かを判断する。プロセッサ102は、現在の注目変数のソート順が最下位であると判断した場合(ステップS140においてYES)、プロセッサ102は、図5に示されるOPC−UAサーバー150の初期化処理を終了する。そうでない場合には(ステップS140においてNO)、プロセッサ102は、制御をステップS142に切り替える。
ステップS142において、プロセッサ102は、ステップS112でのソート順に従って、ソート順が現在の注目変数の次である変数を新たな注目変数として設定する。
以上のようにして、プロセッサ102は、制御プログラム112に含まれる変数111を予め定められたソートルールに従ってソートする。その後、プロセッサ102は、ソート順が上位である公開変数から順にアドレス情報113に追加する。このとき、プロセッサ102は、メモリ106に空きがある範囲でアドレス情報113への公開変数の追加処理を行う。
好ましくは、プロセッサ102は、メモリ106の使用容量が上限に達したことにより公開できなかった公開変数をログに記録する。このとき、プロセッサ102は、メモリ106の使用容量が上限に達したことを公開できなかった理由としてログに記録する。当該ログは、たとえば、メモリカード140(図7参照)などの外部記憶装置に格納される。
なお、上述では、プロセッサ102が制御プログラム112に含まれる変数111を予め定められたルールに従ってソートし、当該ソート順に従って各変数111の公開の優先度を決定する例について説明を行ったが、プロセッサ102は、各変数111の優先度を決定するにあたって、必ずしも変数111をソートする必要はない。
<F.公開の優先度の決定方法>
上述のように、コントローラ100は、制御プログラム112に含まれる変数111を予め定められたソートルールに従ってソートし、ソート順が上位の変数から順にアドレス情報113に追加する。当該ソートルールには、様々なアルゴリズムが採用され得る。以下では、その例として、ソートルールの具体例1〜4について説明する。
(F1.ソートルールの具体例1)
本具体例のソートルールでは、コントローラ100は、制御プログラム112に含まれる変数111の各々を変数名の文字コードに従ってソートする。
より具体的には、コントローラ100は、制御プログラム112に含まれる変数111の各々を変数名の文字コードに従って昇順/降順にソートする。昇順にソートする場合、コントローラ100は、変数の1文字目に着目し、数字については「0」→「9」の順に、英文字については「A」→「Z」の順に各変数をソートする。次に、コントローラ100は、1文字目が同じ変数群の各々について、2文字目の文字コードに従って昇順にソートする。コントローラ100は、このようなソート処理を繰り返すことで変数111を昇順にソートする。
降順にソートする場合、コントローラ100は、変数の1文字目に着目し、数字については「9」→「0」の順に、英文字については「Z」→「A」の順に各変数をソートする。次に、コントローラ100は、1文字目が同じ変数群の各々について、2文字目の文字コードに従って降順にソートする。コントローラ100は、このようなソート処理を繰り返すことで変数111を降順にソートする。
設計者は、公開の優先度を変数の命名規則で設定できるので、各変数に対して優先度を設定する手間を省くことができる。
(F2.ソートルールの具体例2)
本具体例のソートルールでは、OPC−UAサーバー150は、制御プログラム112に含まれる変数111を、各変数に予め設定されている優先度の順にソートする。
各変数に対する優先度の設定は、たとえば、図2に示されるサポート装置400の設定画面401上で行われる。より具体的には、設計者は、設定画面401において、変数111の各々について外部機器300へ公開を許可するか否かを設定するとともに、各変数についての公開の優先度を変数の属性として設定する。
ある局面において、設定画面401において、文字入力領域(たとえば、テキストボックス)が各変数と並べて表示され、設計者は、文字入力領域の各々に公開の優先度を数値(たとえば、1〜5の5段階)で指定する。
他の局面において、設定画面401において、プルダウンメニューが各変数と並べて表示され、設計者は、各プルダウンメニューに含まれる選択項目の中から1つの選択項目を選択することで公開の優先度を設定する。一例として、当該選択項目は、高優先項目と、中優先項目と、低優先項目とを含む。高優先項目が設定された変数は、他の変数よりも優先的に公開される。中優先項目が設定された変数は、高優先項目が設定された変数の次に優先的に公開される。低優先項目が設定された変数は、中優先項目が設定された変数の次に優先的に公開される。
コントローラ100は、設定された優先度の順に制御プログラム112に含まれる変数111をソートする。これにより、OPC−UAサーバー150は、設計者によって設定された公開の優先度が高い変数を他の変数よりも優先的に公開することができる。
(F3.ソートルールの具体例3)
本具体例のソートルールでは、OPC−UAサーバー150は、制御プログラム112に含まれる変数111を、各変数が属する名前空間に予め設定されている優先度の順にソートする。
より具体的には、変数111の各々は、制御プログラム112上で、設計者によって定義された名前空間に属していることがある。コントローラ100は、同じ変数名の変数を属する名前空間に応じて区別することができる。
名前空間に対する優先度の設定は、たとえば、図2に示されるサポート装置400の設定画面401上で行われる。一例として、定義されている名前空間の一覧が設定画面401上に表示され、設計者は、各名前空間について公開の優先度を設定する。
ある局面において、設定画面401において、文字入力領域(たとえば、テキストボックス)が各変数と並べて表示され、設計者は、文字入力領域の各々に公開の優先度を数値(たとえば、1〜5の5段階)で指定する。
他の局面において、設定画面401において、プルダウンメニューが各変数と並べて表示され、設計者は、各プルダウンメニューに含まれる選択項目の中から1つの選択項目を選択することで公開の優先度を設定する。一例として、当該選択項目は、高優先項目と、中優先項目と、低優先項目とを含む。高優先項目が設定された名前空間に属する変数は、他の変数よりも優先的に公開される。中優先項目が設定された名前空間に属する変数は、高優先項目が設定された名前空間に属する変数の次に優先的に公開される。低優先項目が設定された名前空間に属する変数は、中優先項目が設定された名前空間に属する変数の次に優先的に公開される。
コントローラ100は、名前空間に設定された優先度の順に制御プログラム112に含まれる変数111をソートする。これにより、OPC−UAサーバー150は、公開の優先度が高い名前空間に属する変数を他の名前空間に属する変数よりも優先的に公開することができる。また、設計者は、公開の優先度を名前空間で指定することができるので、全変数に公開の優先度を設定する必要がなくなる。
(F4.ソートルールの具体例4)
本具体例のソートルールでは、OPC−UAサーバー150は、予め定められたキーワードを含む変数が他の変数よりもソート順が上位になるように、制御プログラム112に含まれる変数111をソートする。
一例として、OPC−UAサーバー150は、キーワード「Public_」を含む変数を他の変数よりもソート順を上位とする。設計者は、公開の優先度を高くしたい変数にキーワード「Public_」を付すことで、当該変数の公開の優先度を高くすることができる。
当該キーワードの種類が複数種類存在する場合には、設計者は、各キーワードに優先度を設定してもよい。たとえば、キーワード「Public1_」およびキーワード「Public2_」が定義されているとする。この場合、設計者は、キーワード「Public1_」および「Public2_」のそれぞれについて優先度を設定する。キーワード「Public1_」の優先度がキーワード「Public2_」の優先度よりも高く設定されている場合、OPC−UAサーバー150は、キーワード「Public1_」を含む変数をキーワード「Public2_」を含む変数よりもソート順を上位とする。また、OPC−UAサーバー150は、キーワード「Public2_」を含む変数を残りの変数よりもソート順を上位とする。
これにより、設計者は、公開の優先度を変数名で指定することができるので、各変数名に対して優先度を設定する手間を省くことができる。
(F5.その他のソートルール)
なお、変数111のソートルールは、上記「具体例1」〜「具体例4」に限定されず、その他の様々なソートルールが採用され得る。たとえば、変数111のソートルールには、より多くの変数が効率よく公開されるように変数111をソートするためのアルゴリズム(たとえば、ナップサック問題を解決するためのアルゴリズム)が採用されてもよい。
また、変数111のソートルールは、固定されている必要はなく、動的に変更されてもよい。一例として、適用されるソートルールは、ユーザによって動的に設定されてもよいし、自動的に設定されてもよい。この場合、公開変数の設定時に適用候補のソートルールが一覧表示され、ユーザは、当該一覧表示されたソートルールの中から適用するソートルールを選択する。OPC−UAサーバー150は、選択されたソートルールに従って制御プログラム112に含まれる変数111をソートする。
<G.コントローラ100の機能構成>
図6を参照して、コントローラ100の機能について説明する。図6は、コントローラ100の機能構成の一例を示す図である。
コントローラ100は、外部通信インターフェイス101と、プログラム実行部103と、リソースマネージャ130と、イベント管理部132と、ツールインターフェイス135と、不揮発性メモリ136と、OPC−UAサーバー150とを含む。OPC−UAサーバー150は、通信スタック151と、メインプログラム153と、初期化プログラム155とを含む。
外部通信インターフェイス101は、外部機器300であるOPC−UAクライアント350A,350Bとの通信を行う。外部通信インターフェイス101には、たとえば、EtherNet(登録商標)が採用される。また、外部通信インターフェイス101は、サポート装置400との通信を行う。サポート装置400には、制御プログラム112の開発ツールである「Sysmac Studio」がインストールされている。ツールインターフェイス135は、当該開発ツール上で設計された制御プログラム112を、外部通信インターフェイス101を介して受信する。また、ツールインターフェイス135は、当該開発ツール上でのプロジェクトファイルに関する設定(たとえば、変数設定など)を外部通信インターフェイス101を介して受信し、当該設定を変数設定137に書き込む。また、ツールインターフェイス135は、コントローラ100のエラー情報やログデータを外部通信インターフェイス101を介してサポート装置400に送信する。
リソースマネージャ130は、コントローラ100内の各変数の実体を保持しており、各変数の管理や、各変数の読み書きなどを担う。一例として、リソースマネージャ130は、変数の読取命令(取得命令)を受けた場合には、読取対象の変数にアクセスし、当該変数を読取命令の発信元に送る。また、リソースマネージャ130は、変数の書込命令を受けた場合には、書込対象の変数にアクセスし、当該変数を指定された値に書き換える。リソースマネージャ130によって管理される変数は、制御プログラム112内の変数、コントローラ100の状態を示すシステム変数131などを含む。
イベント管理部132は、コントローラ100内で発生したイベントに応じた処理を実行する。ある局面において、イベント管理部132は、メモリ106の使用容量が上限に達しそうなことを示すイベントを検知した場合、警告を出力する。当該イベントは、メモリ106の使用容量が所定閾値を超えたことに基づいて発せられる。警告の出力態様は任意である。一例として、警告の内容が不揮発性メモリ136にログとして書き込まれることで、警告が出力される。あるいは、警告の内容がメモリカード140(図7参照)などの外部記憶装置にログとして書き込まれることで、警告が出力される。
OPC−UA通信スタック151は、OPC−UAクライアント350への送信データや、OPC−UAクライアント350からの受信データを一時的に保持する。メインプログラム153は、OPC−UAサーバー150によるサーバー機能を実現するためのソフトウェアである。初期化プログラム155は、上述の図5に示されるOPC−UAサーバー150の初期化処理を実現するためのソフトウェアである。初期化プログラム155は、監視部152によるメモリ106の空き容量の監視機能や、上述の決定部154による変数に対する公開の優先度の決定機能や、アドレス管理部156によるアドレス情報113の管理機能を実現するためのソフトウェアである。初期化プログラム155は、メインプログラム153と一体的に構成されてもよいし、図6に示されるように、メインプログラム153とは別に構成されてもよい。
<H.コントローラ100のハードウェア構成>
図7を参照して、コントローラ100のハードウェア構成について説明する。図7は、コントローラ100のハードウェア構成の一例を示す模式図である。
コントローラ100は、外部通信インターフェイス101と、CPU(Central Processing Unit)やMPU(Micro-Processing Unit)などのプロセッサ102と、チップセット104と、メインメモリとしてのメモリ106と、フラッシュメモリ108と、内部バスコントローラ122と、フィールドバスコントローラ124と、メモリカードインターフェイス139とを含む。
プロセッサ102は、フラッシュメモリ108に格納された制御プログラム112を読み出して、メモリ106に展開して実行することで、駆動機器200の一例であるサーボドライバ200Bなどに対する任意の制御を実現する。制御プログラム112は、コントローラ100を制御するための各種プログラムを含む。一例として、制御プログラム112は、システムプログラム109およびユーザプログラム110などを含む。システムプログラム109は、データの入出力処理や実行タイミング制御などの、コントローラ100の基本的な機能を提供するための命令コードを含む。ユーザプログラム110は、制御対象に応じて任意に設計され、シーケンス制御を実行するためのシーケンスプログラム110Aおよびモーション制御を実行するためのモーションプログラム110Bとを含む。制御プログラム112は、たとえば、ラダー言語やST(Structured Text)言語で記述されているPLCプログラムである。
チップセット104は、各コンポーネントを制御することで、コントローラ100全体としての処理を実現する。
内部バスコントローラ122は、コントローラ100と内部バスを通じて連結される各種デバイスとデータを遣り取りするインターフェイスである。このようなデバイスの一例として、I/Oユニット126が接続されている。
フィールドバスコントローラ124は、コントローラ100とフィールドバスを通じて連結される各種デバイスとデータを遣り取りするインターフェイスである。このようなデバイスの一例として、サーボドライバ200Bが接続されている。他にも、ロボットコントローラ200A(図1参照)や視覚センサ200C(図1参照)などが接続されてもよい。
内部バスコントローラ122およびフィールドバスコントローラ124は、接続されているデバイスに対して任意の指令を与えることができるとともに、デバイスが管理している任意のデータ(測定値を含む)を取得することができる。また、内部バスコントローラ122および/またはフィールドバスコントローラ124は、サーボドライバ200Bとの間でデータを遣り取りするためのインターフェイスとしても機能する。
外部通信インターフェイス101は、各種の有線/無線ネットワークを通じたデータの遣り取りを制御する。メモリカードインターフェイス139は、外部記憶媒体の一例であるメモリカード140(たとえば、SDカード)を着脱可能に構成されており、メモリカード140に対してデータを書き込み、メモリカード140からデータを読出すことが可能になっている。
<I.まとめ>
以上のようにして、コントローラ100は、OPC−UAクライアント350として機能する外部機器300との通信を実現するためのOPC−UAサーバー150を含む。OPC−UAサーバー150は、制御プログラム112に含まれる変数111を予め定められたソートルールに従ってソートする。その後、OPC−UAサーバー150は、外部機器300への公開が許可されている変数(すなわち、公開変数)をソート順が上位である変数から順にアドレス情報113に追加する。このとき、OPC−UAサーバー150は、メモリ106に空きがある範囲でアドレス情報113への公開変数の追加処理を行う。
コントローラ100のような産業用の制御装置のように、メモリ106の使用可能容量が制限されている状況下では、変数111の全てが外部機器300に公開されると、メモリ106の空き容量がなくなってしまう可能性がある。この場合には、制御プログラム112が意図せずに停止してしまう可能性がある。OPC−UAサーバー150は、メモリ106の空き容量が予め定められた閾値を下回らない範囲で公開変数を公開するため、公開変数の公開処理により制御プログラム112が停止することはない。
一方で、OPC−UAサーバー150は、メモリ106の空き容量が予め定められた閾値を下回らない範囲で公開変数の論理アドレスをアドレス情報113に追加するので、可能な限り多くの公開変数を公開することができる。また、公開の優先度が高い公開変数から順に論理アドレスが追加されるので、コントローラ100は、重要な公開変数を優先的に外部機器300に公開することができる。
<J.付記>
以上のように、本実施形態は以下のような開示を含む。
[構成1]
駆動機器(200)を制御するための制御装置(100)であって、
外部機器(300)に公開される情報であって、前記駆動機器(200)の制御プログラム(112)に含まれる変数の論理アドレスを規定するアドレス情報(113)を格納するためのメモリ(106)と、
予め定められたルールに従って、前記制御プログラム(112)に含まれる変数について、前記外部機器(300)への公開の優先度を決定するための決定部(154)と、
前記メモリ(106)の空き容量を監視するための監視部(152)と、
前記制御プログラム(112)に含まれる変数の内の、前記外部機器(300)に対して公開することが許可されている1つ以上の公開変数について、前記空き容量が予め定められた閾値を下回らない範囲で、当該1つ以上の公開変数のそれぞれの論理アドレスを前記公開の優先度の順に前記アドレス情報(113)に追加するためのアドレス管理部(156)とを備える、制御装置。
[構成2]
前記決定部(154)は、前記予め定められたルールに従って前記制御プログラム(112)に含まれる変数をソートし、当該ソート順が上位の変数ほど前記公開の優先度を高くする、構成1に記載の制御装置。
[構成3]
前記予め定められたルールは、前記制御プログラム(112)に含まれる変数を、変数名の文字コードの順にソートすることを含む、構成2に記載の制御装置。
[構成4]
前記予め定められたルールは、前記制御プログラム(112)に含まれる変数を、各変数に予め設定されている優先度の順にソートすることを含む、構成2に記載の制御装置。
[構成5]
前記1つ以上の公開変数のそれぞれには、名前空間が関連付けられており、
前記予め定められたルールは、前記制御プログラム(112)に含まれる変数を、前記名前空間に予め設定されている優先度の順にソートすることを含む、構成2に記載の制御装置。
[構成6]
前記予め定められたルールは、予め定められたキーワードを含む変数が他の変数よりもソート順が上位になるように、前記制御プログラム(112)に含まれる変数をソートすることを含む、構成2に記載の制御装置。
[構成7]
駆動機器(200)を制御するための制御装置(100)の制御方法であって、
外部機器(300)に公開される情報であって、前記駆動機器(200)の制御プログラム(112)に含まれる変数の論理アドレスを規定するアドレス情報(113)をメモリ(106)に準備するステップと、
予め定められたルールに従って、前記制御プログラム(112)に含まれる変数について、外部機器(300)への公開の優先度を決定するステップと、
前記メモリ(106)の空き容量を監視するステップと、
前記制御プログラム(112)に含まれる変数の内の、前記外部機器(300)に対して公開することが許可されている1つ以上の公開変数について、前記空き容量が予め定められた閾値を下回らない範囲で、当該1つ以上の公開変数のそれぞれの論理アドレスを前記公開の優先度の順に前記アドレス情報(113)に追加するステップとを備える、制御方法。
[構成8]
駆動機器(200)を制御するための制御装置(100)の制御プログラムであって、
前記制御プログラム(112)は、前記制御装置(100)に、
外部機器(300)に公開される情報であって、前記駆動機器(200)の制御プログラム(112)に含まれる変数の論理アドレスを規定するアドレス情報(113)をメモリ(106)に準備するステップと、
予め定められたルールに従って、前記制御プログラム(112)に含まれる変数について、外部機器(300)への公開の優先度を決定するステップと、
前記メモリ(106)の空き容量を監視するステップと、
前記制御プログラム(112)に含まれる変数の内の、前記外部機器(300)に対して公開することが許可されている1つ以上の公開変数について、前記空き容量が予め定められた閾値を下回らない範囲で、当該1つ以上の公開変数のそれぞれの論理アドレスを前記公開の優先度の順に前記アドレス情報(113)に追加するステップとを実行させる、制御プログラム。
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
1 FAシステム、100 コントローラ、101 外部通信インターフェイス、102 プロセッサ、103 プログラム実行部、104 チップセット、106 メモリ、108 フラッシュメモリ、109 システムプログラム、110 ユーザプログラム、110A シーケンスプログラム、110B モーションプログラム、111 変数、112 制御プログラム、113 アドレス情報、122 内部バスコントローラ、124 フィールドバスコントローラ、126 I/Oユニット、130 リソースマネージャ、131 システム変数、132 イベント管理部、135 ツールインターフェイス、136 不揮発性メモリ、137 変数設定、139 メモリカードインターフェイス、140 メモリカード、150 OPC−UAサーバー、151 通信スタック、152 監視部、153 メインプログラム、154 決定部、155 初期化プログラム、156 アドレス管理部、200 駆動機器、200A ロボットコントローラ、200B サーボドライバ、200C 視覚センサ、201A アームロボット、201B サーボモータ、300 外部機器、350A,350B,350C OPC−UAクライアント、400 サポート装置、401 設定画面。

Claims (8)

  1. 駆動機器を制御するための制御装置であって、
    外部機器に公開される情報であって、前記駆動機器の制御プログラムに含まれる変数の論理アドレスを規定するアドレス情報を格納するためのメモリと、
    予め定められたルールに従って、前記制御プログラムに含まれる変数について、前記外部機器への公開の優先度を決定するための決定部と、
    前記メモリの空き容量を監視するための監視部と、
    前記制御プログラムに含まれる変数の内の、前記外部機器に対して公開することが許可されている1つ以上の公開変数について、前記空き容量が予め定められた閾値を下回らない範囲で、当該1つ以上の公開変数のそれぞれの論理アドレスを前記公開の優先度の順に前記アドレス情報に追加するためのアドレス管理部とを備える、制御装置。
  2. 前記決定部は、前記予め定められたルールに従って前記制御プログラムに含まれる変数をソートし、当該ソート順が上位の変数ほど前記公開の優先度を高くする、請求項1に記載の制御装置。
  3. 前記予め定められたルールは、前記制御プログラムに含まれる変数を、変数名の文字コードの順にソートすることを含む、請求項2に記載の制御装置。
  4. 前記予め定められたルールは、前記制御プログラムに含まれる変数を、各変数に予め設定されている優先度の順にソートすることを含む、請求項2に記載の制御装置。
  5. 前記1つ以上の公開変数のそれぞれには、名前空間が関連付けられており、
    前記予め定められたルールは、前記制御プログラムに含まれる変数を、前記名前空間に予め設定されている優先度の順にソートすることを含む、請求項2に記載の制御装置。
  6. 前記予め定められたルールは、予め定められたキーワードを含む変数が他の変数よりもソート順が上位になるように、前記制御プログラムに含まれる変数をソートすることを含む、請求項2に記載の制御装置。
  7. 駆動機器を制御するための制御装置の制御方法であって、
    外部機器に公開される情報であって、前記駆動機器の制御プログラムに含まれる変数の論理アドレスを規定するアドレス情報をメモリに準備するステップと、
    予め定められたルールに従って、前記制御プログラムに含まれる変数について、外部機器への公開の優先度を決定するステップと、
    前記メモリの空き容量を監視するステップと、
    前記制御プログラムに含まれる変数の内の、前記外部機器に対して公開することが許可されている1つ以上の公開変数について、前記空き容量が予め定められた閾値を下回らない範囲で、当該1つ以上の公開変数のそれぞれの論理アドレスを前記公開の優先度の順に前記アドレス情報に追加するステップとを備える、制御方法。
  8. 駆動機器の制御装置によって実行されるプログラムであって、
    前記プログラムは、前記制御装置に、
    外部機器に公開される情報であって、前記駆動機器の制御プログラムに含まれる変数の論理アドレスを規定するアドレス情報をメモリに準備するステップと、
    予め定められたルールに従って、前記制御プログラムに含まれる変数について、外部機器への公開の優先度を決定するステップと、
    前記メモリの空き容量を監視するステップと、
    前記制御プログラムに含まれる変数の内の、前記外部機器に対して公開することが許可されている1つ以上の公開変数について、前記空き容量が予め定められた閾値を下回らない範囲で、当該1つ以上の公開変数のそれぞれの論理アドレスを前記公開の優先度の順に前記アドレス情報に追加するステップとを実行させる、プログラム。
JP2017226973A 2017-11-27 2017-11-27 制御装置、制御方法、およびプログラム Active JP6881256B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2017226973A JP6881256B2 (ja) 2017-11-27 2017-11-27 制御装置、制御方法、およびプログラム
EP18193416.7A EP3489776B1 (en) 2017-11-27 2018-09-10 Control device, control method, and program
US16/127,254 US10712731B2 (en) 2017-11-27 2018-09-11 Control device, control method, and non-transitory computer-readable recording medium
CN201811062488.5A CN109839910B (zh) 2017-11-27 2018-09-12 控制装置、控制方法以及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017226973A JP6881256B2 (ja) 2017-11-27 2017-11-27 制御装置、制御方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP2019096211A JP2019096211A (ja) 2019-06-20
JP6881256B2 true JP6881256B2 (ja) 2021-06-02

Family

ID=63557241

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017226973A Active JP6881256B2 (ja) 2017-11-27 2017-11-27 制御装置、制御方法、およびプログラム

Country Status (4)

Country Link
US (1) US10712731B2 (ja)
EP (1) EP3489776B1 (ja)
JP (1) JP6881256B2 (ja)
CN (1) CN109839910B (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11340590B2 (en) * 2019-08-30 2022-05-24 Kabushiki Kaisha Yaskawa Denki Data collection system, data collection method, and information storage medium
JP2022136724A (ja) * 2021-03-08 2022-09-21 オムロン株式会社 制御装置、データ通信方法およびデータ通信プログラム
WO2023188069A1 (ja) * 2022-03-30 2023-10-05 ファナック株式会社 制御装置
US20240118671A1 (en) * 2022-10-10 2024-04-11 Schneider Electric Systems Usa, Inc. Systems and methods for using memory-mapped memories in a microcontroller-based instrument

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5113502A (en) * 1986-11-20 1992-05-12 Allen-Bradley Company, Inc. Method and apparatus for saving and performing industrial control commands
JPH09251389A (ja) * 1996-03-14 1997-09-22 Omron Corp データ処理装置
SE516171C2 (sv) * 1999-07-21 2001-11-26 Ericsson Telefon Ab L M Processorarkitektur anpassas för programspråk med sekventiellt instruktionsflöde
MXPA02010342A (es) * 2000-04-20 2004-09-06 Cogiscan Inc Sistema automatizado de control de manufactura.
US7065415B2 (en) * 2001-07-30 2006-06-20 Rockwell Automation Technologies, Inc. Method for consistent storage of data in an industrial controller
JP3748232B2 (ja) * 2002-03-20 2006-02-22 株式会社デジタル データ伝送装置、表示装置、および、制御システム
US6990383B2 (en) * 2003-02-03 2006-01-24 Deere & Company Infinitely variable, order specific, holistic assembly process control system
DE10345440A1 (de) * 2003-09-30 2005-05-12 Siemens Ag Verfahren, Computerprogramm mit Programmcode-Mitteln und Computerprogramm-Produkt zur Analyse von Einflussgrößen auf einen Brennvorgang in einer Brennkammer unter Verwendung eines trainierbaren, statistischen Modells
US7916574B1 (en) * 2004-03-05 2011-03-29 Netlist, Inc. Circuit providing load isolation and memory domain translation for memory module
US8751616B2 (en) * 2004-06-08 2014-06-10 Siemens Industry, Inc. System for accessing and browsing a PLC provided within a network
KR100590388B1 (ko) * 2005-03-10 2006-06-19 주식회사 하이닉스반도체 멀티-플레인 타입 플래쉬 메모리 장치와, 그 프로그램 동작및 리드 동작 제어 방법
US7953513B2 (en) * 2005-03-15 2011-05-31 Siemens Industry, Inc. Systems, devices, and methods for automation control
US7548789B2 (en) * 2005-09-29 2009-06-16 Rockwell Automation Technologies, Inc. Editing lifecycle and deployment of objects in an industrial automation environment
DE102007062986B4 (de) * 2007-12-21 2013-12-24 Abb Research Ltd. Verfahren und Einrichtung zur Client-Server-Kommunikation gemäß dem Standardprotokoll OPC UA
JP2009266152A (ja) * 2008-04-30 2009-11-12 Toshiba Corp コントローラ、ハードディスクドライブおよびコントロール方法
JP4659888B2 (ja) * 2009-02-13 2011-03-30 株式会社日立製作所 データベース処理システム、計算機及びデータベース処理方法
EP2559221B1 (de) * 2010-05-25 2015-04-01 Siemens Aktiengesellschaft Verfahren und vorrichtung zum austausch von daten sowie netzwerk
JP2012018541A (ja) 2010-07-07 2012-01-26 Hakko Denki Kk 表示装置
JP2013257801A (ja) * 2012-06-14 2013-12-26 Toshiba Corp サーバコンピュータおよびドライブ制御装置
US8832716B2 (en) * 2012-08-10 2014-09-09 Honeywell International Inc. Systems and methods for limiting user customization of task workflow in a condition based health maintenance system
CN103885377A (zh) * 2013-09-11 2014-06-25 陈华兴 一种可编程控制器的指令表示方法及可编程控制器
EP2924522B1 (de) * 2014-03-28 2016-05-25 dSPACE digital signal processing and control engineering GmbH Verfahren zur Beeinflussung eines Steuerprogramms
CN103942311B (zh) * 2014-04-21 2017-04-12 湖南深拓智能设备股份有限公司 一种监控系统变量的复用方法
US11513477B2 (en) * 2015-03-16 2022-11-29 Rockwell Automation Technologies, Inc. Cloud-based industrial controller
CN105162820B (zh) * 2015-06-25 2019-02-05 Oppo广东移动通信有限公司 一种数据同步方法和设备
US10268611B2 (en) * 2016-02-17 2019-04-23 Honeywell International Inc. Input/output (I/O) binding with automatic international electromechanical commission (IEC) address generation in remote terminal unit (RTU) configuration
JP2017174387A (ja) * 2016-03-17 2017-09-28 パナソニックIpマネジメント株式会社 メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びメモリ制御方法

Also Published As

Publication number Publication date
EP3489776B1 (en) 2022-07-20
JP2019096211A (ja) 2019-06-20
US10712731B2 (en) 2020-07-14
CN109839910A (zh) 2019-06-04
US20190163171A1 (en) 2019-05-30
EP3489776A1 (en) 2019-05-29
CN109839910B (zh) 2021-10-01

Similar Documents

Publication Publication Date Title
JP6881256B2 (ja) 制御装置、制御方法、およびプログラム
US10365626B2 (en) Extending the functionality of a programmable logic controller (PLC) with apps without changing the PLC programming
RU2487388C2 (ru) Исполнительный механизм для систем hvac и способ его функционирования
US9948591B2 (en) Messaging configuration system
US8782249B1 (en) Message engine
US20020124011A1 (en) Methods, systems, and computer program products for communicating with a controller using a database interface
CN113055478A (zh) 一种设备数据的处理方法、装置、设备及介质
JP6996257B2 (ja) 制御装置、制御方法、およびプログラム
US9170579B1 (en) System, method and computer program product for monitoring and controlling industrial energy equipment
WO2018154884A1 (ja) 制御システム、制御装置および制御プログラム
WO2015036462A1 (en) Integration method and system
JP7063009B2 (ja) 表示装置、画面生成方法、および画面生成プログラム
Seilonen et al. OPC UA information model and a wrapper for IEC 61499 runtimes
JP6135247B2 (ja) 情報処理装置および情報処理プログラム
JP6954191B2 (ja) 制御システム、開発支援装置、および開発支援プログラム
EP3751365B1 (en) Control device, monitoring method, and monitoring program
US20210405597A1 (en) Engineering device, engineering method, and information storage medium
JP2023125352A (ja) シミュレーションシステム、方法およびシミュレーションプログラム
CN108693865A (zh) 监视系统、装置及工程工具

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200305

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210322

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210419

R150 Certificate of patent or registration of utility model

Ref document number: 6881256

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250