Nothing Special   »   [go: up one dir, main page]

JP2024136415A - 制御システム、サポート装置、および制御装置 - Google Patents

制御システム、サポート装置、および制御装置 Download PDF

Info

Publication number
JP2024136415A
JP2024136415A JP2023047528A JP2023047528A JP2024136415A JP 2024136415 A JP2024136415 A JP 2024136415A JP 2023047528 A JP2023047528 A JP 2023047528A JP 2023047528 A JP2023047528 A JP 2023047528A JP 2024136415 A JP2024136415 A JP 2024136415A
Authority
JP
Japan
Prior art keywords
variable
control device
variables
user
file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2023047528A
Other languages
English (en)
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 JP2023047528A priority Critical patent/JP2024136415A/ja
Publication of JP2024136415A publication Critical patent/JP2024136415A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Abstract

【課題】アドレス空間内の変数ノードと変数空間内の変数との対応関係をユーザが設定可能な技術を提供する。【解決手段】制御システムは、制御装置200とサポート装置100とを備える。制御装置200は、メモリ空間211が定義される記憶装置を備え、メモリ空間211は、変数が定義される変数空間210と、変数ノードが定義されるアドレス空間220とを含む。サポート装置100は、メモリ空間211を含む情報モデルを設定するためのファイルを生成する生成部と、ファイルを制御装置200へ出力する出力部とを備える。ファイルは、変数ノードに対応付けられる変数を規定するマッピング情報を含む。制御装置200は、ファイルを受信したときに、マッピング情報に従って変数ノードに変数を対応付ける。【選択図】図3

Description

本発明は、制御システム、サポート装置、および制御装置に関する。
様々な生産現場において、生産工程を自動化するFA(Factory Automation)システムが普及している。FAシステムは、種々の産業用の駆動機器によって構成される。産業用の駆動機器は、たとえば、ワークを移動するための移動テーブル、ワークを搬送するためのコンベア、および予め定められた目的の場所までワークを移動させるためのアームロボットなどを含む。これらの駆動機器は、PLC(Programmable Logic Controller)またはロボットコントローラなどの産業用の制御装置によって制御される。
制御装置は、ユーザなどによって予め設計されたプログラム(以下、「ユーザプログラム」とも称する。)に従って、制御対象である各種の駆動機器を制御する。ユーザは、開発ツールを用いて、制御対象の駆動機器に合わせた任意のユーザプログラムを開発することができる。
OPC UA(Open Platform Communications Unified Architecture)に対応した制御装置が普及しつつある。OPC UAは、ベンダまたはOS(Operating System)の種類などに依存することなく、複数の装置間でデータの交換を実現するために定められた通信の標準規格である。OPC UAに対応した制御装置が用いられることで、外部装置は、制御装置が管理するデータに容易にアクセスすることができる。
特開2019-152949号公報(特許文献1)には、OPC UAで規定されるアドレス空間に関する説明がある。
特開2019-152949号公報
制御装置のメモリ空間には、変数空間とアドレス空間とが含まれる。変数空間には、ユーザプログラムの実行中に使用される変数が定義される。アドレス空間には、変数に対応する変数ノードが定義される。変数空間に定義される変数とアドレス空間に定義される変数ノードとを対応付けるためのマッピングをすることによって、変数と変数ノードとの対応関係が定まる。外部装置は、公開されている変数に、変数ノードを介してアクセスする。
多数のベンダによって様々な仕様の制御装置が提供される。制御装置において使用される変数の仕様は、ベンダによって決定される。これに対して、アドレス空間に定義される変数ノードの仕様は、たとえば、OPC UAの規格として標準化されている。従来、ユーザは、ユーザプログラムおよび変数ノードを設計した後、OPC UAに精通した外部の専門業者にマッピングを依頼していた。外部の専門業者は、専用の設定ツールを用いて、変数に変数ノードを対応付けることによってマッピングを実施していた。
従来のシステム開発のフローでは、ユーザは、ユーザプログラムを開発した後、マッピング作業などのシステム開発の一部の業務を専門業者に委ねる必要があった。このため、システム開発のフローが複雑化するばかりでなく、開発費用の負担が大きくなるという問題があった。
本開示は、上述したような課題を解決することを一つの目的とし、アドレス空間内の変数ノードと変数空間内の変数との対応関係をユーザが設定可能な技術を提供することを目的とする。
本開示の一例に従えば、制御システムが提供される。制御システムは、ユーザプログラムに従って制御対象を制御する制御装置と、制御装置をサポートするサポート装置とを備え、制御装置は、メモリ空間が定義される記憶装置を備え、メモリ空間は、ユーザプログラムが実行されるときに使用される変数が定義される変数空間と、変数ノードが定義されるアドレス空間とを含み、サポート装置は、メモリ空間を含む情報モデルを設定するためのファイルを生成する生成部と、ファイルを制御装置へ出力する出力部とを備え、ファイルは、変数ノードに対応付けられる変数を規定するマッピング情報を含み、制御装置は、ファイルを受信したときに、マッピング情報に従って変数ノードに変数を対応付ける。
この開示によれば、ユーザは、アドレス空間内の変数ノードと変数空間内の変数との対応関係を設定することができる。
上述の開示において、ファイルは、アドレス空間に変数ノードを生成するための変数ノード情報を含み、制御装置は、ファイルを受信したときに、変数ノード情報に従ってアドレス空間に変数ノードを生成する。
この開示によれば、ユーザは、アドレス空間に変数ノードを生成することができる。
上述の開示において、生成部は、変数ノードに対応付けられる変数を規定するためのユーザインタフェースを含む。
この開示によれば、ユーザは、ユーザインタフェースを用いて変数ノードに対応付けられる変数を規定することができる。
上述の開示において、変数空間には、ファンクションブロック毎に変数が定義されており、ユーザインタフェースは、変数ノードに、ファンクションブロック内に定義される変数を対応付ける操作を受け付ける。
この開示によれば、ユーザは、変数ノードに、ファンクションブロック内に定義される変数を対応付けることができる。
上述の開示において、アドレス空間は、OPC UA(Open Platform Communications Unified Architecture)に従ってメモリ空間に定義される。
この開示によれば、ユーザは、OPC UAに従うメモリ空間の変数ノードに、変数空間内の変数を対応付けることができる。
本開示の別の一例に従えば、ユーザプログラムに従って制御対象を制御する制御装置をサポートするサポート装置が提供される。制御装置は、メモリ空間が定義される記憶装置を備え、メモリ空間は、ユーザプログラムが実行されるときに使用される変数が定義される変数空間と、変数ノードが定義されるアドレス空間とを含み、サポート装置は、メモリ空間を含む情報モデルを設定するためのファイルを生成する生成部と、ファイルを制御装置へ出力する出力部とを備え、ファイルは、変数ノードに対応付けられる変数を規定するマッピング情報を含む。
この開示によれば、ユーザは、アドレス空間内の変数ノードと変数空間内の変数との対応関係を設定することができる。
本開示の別の一例に従えば、ユーザプログラムに従って制御対象を制御する制御装置が提供される。制御装置は、プロセッサと、メモリ空間が定義される記憶装置とを備え、メモリ空間は、ユーザプログラムが実行されるときに使用される変数が定義される変数空間と、変数ノードが定義されるアドレス空間とを含み、プロセッサは、メモリ空間を含む情報モデルを設定するためのファイルを取得し、ファイルは、変数ノードに対応付けられる変数を規定するマッピング情報を含み、プロセッサは、マッピング情報に従って変数ノードに変数を対応付ける。
この開示によれば、ユーザは、アドレス空間内の変数ノードと変数空間内の変数との対応関係を設定することができる。
実施の形態に係る制御システムの一例を示す図である。 ファンクションブロック(FB定義)のインスタンス化の一例を示す図である。 変数ノードに変数が対応付けられる流れを説明するためのブロック図である。 制御装置のハードウェア構成の一例を示す図である。 サポート装置のハードウェア構成の一例を示す図である。 外部装置のハードウェア構成の一例を示す図である。 サポート装置、制御装置、駆動機器、および外部装置の各々の処理の流れを示すシーケンス図である。 ノードセットファイルを生成する際にサポート装置が実行する処理を説明するためのフローチャートである。 ノードセットファイルに基づいた制御装置の処理を説明するためのフローチャートである。 サポート装置に表示される開発画面の一例を示す図である。 ユーザがマッピング情報を設定する際に、サポート装置に表示される設定画面の一例を示す図である。 ユーザがマッピング情報を設定する際に、サポート装置に表示される設定画面の一例を示す図である。 ユーザがマッピング情報を設定する際に、サポート装置に表示される設定画面の一例を示す図である。
本開示の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
<A.適用例>
図1を参照しながら、本開示のサポート装置100が適用される場面の一例について説明する。図1は、実施の形態に係る制御システム1の一例を示す図である。制御システム1は、生産工程を自動化するFAシステムである。図1に示されるように、制御システム1は、制御装置200と、制御装置200の制御対象である駆動機器400と、制御装置200との間でデータを遣り取りする外部装置300と、制御装置200をサポートするサポート装置100とを備える。
制御装置200は、制御対象を制御するためのユーザプログラム230を実行するPLCなどの装置である。制御装置200は、制御系ネットワーク10を介して、駆動機器400と通信可能に接続されている。制御系ネットワーク10には、データの到達時間が保証される、定周期通信を行うフィールドネットワークを採用することが好ましい。このような定周期通信を行うフィールドネットワークとしては、EtherCAT(登録商標)、EtherNet/IP(登録商標)、およびCompoNet(登録商標)などが知られている。なお、制御装置200は、制御系ネットワーク10として、リモートI/O(Input/Output)装置またはI/Oユニットを介して、駆動機器400と通信可能に接続されてもよい。
制御装置200は、情報系ネットワーク20を介して、外部装置300と通信可能に接続されている。情報系ネットワーク20は、たとえば、ベンダまたはOS(Operating System)の種類などに依存することなくデータ交換を実現することができる通信規格に従ったネットワークであることが好ましい。このような通信規格としては、たとえば、OPC UAなどが知られている。なお、情報系ネットワーク20に採用される通信規格は、OPC UAに限定されるわけではない。たとえば、情報系ネットワーク20は、特定のベンダまたはOS特有の通信規格に従ったネットワークであってもよい。
情報系ネットワーク20がOPC UAに従ったネットワークである場合、制御装置200は、OPC UAサーバの一例であり、外部装置300は、OPC UAクライアントの一例である。このようなOPC UAに対応する制御システム1においては、OPC UAクライアントである外部装置300は、OPC UAサーバである制御装置200が管理するデータに容易にアクセスすることができる。このような制御システム1が提供するサービスを、以下では、「ネットワーク公開サービス」とも称する。
制御装置200は、USB(Universal Serial Bus)接続などを介して、サポート装置100と通信可能に接続されている。
駆動機器400は、生産工程を自動化するための種々の産業用機器を含む。駆動機器400は、たとえば、ロボット401Aを制御するロボットコントローラ400Aと、サーボモータ401Bを制御するサーボドライバ400Bと、様々なデータを収集するセンサ400Cとを含む。これらの駆動機器400は、制御系ネットワーク10を介して、制御装置200によって制御される。
外部装置300は、情報系ネットワーク20を介して、制御装置200が管理するデータを取得する。外部装置300は、たとえば、HMI(Human Machine Interface)、ノート型またはデスクトップ型のPC(Personal Computer)、スマートフォン、タブレット端末、またはディスプレイを有するその他の情報処理装置を含む。図1においては、外部装置300として、HMI300AおよびHMI300Bが例示されている。なお、外部装置300は、ディスプレイを有するHMIなどの情報処理装置に限らず、制御装置200とは別の他の制御装置(PLCなど)であってもよい。たとえば、制御システム1は、複数の制御装置200が通信可能に接続されることで、複数の制御装置200の各々が管理するデータを複数の制御装置200の間で遣り取りするように構成されてもよい。
サポート装置100は、たとえば、ノート型またはデスクトップ型のPC、スマートフォン、タブレット端末、または、その他の情報処理装置である。
制御装置200は、変数空間210と、アドレス空間220と、ユーザプログラム230と、通信管理プログラム240と、ユーザ設定情報250と、公開設定情報260と、ノード設定プログラム290とを備える。これらの構成要素は、制御装置200の記憶装置202(図4参照)に格納されている。
制御装置200は、公開管理部270と、ノード設定部280とをさらに備える。公開管理部270およびノード設定部280は、制御装置200のプロセッサ201(図4参照)およびプロセッサ201が実行する各種のプログラムによって実現される。
変数空間210には、変数が定義されている。図1の例では、変数空間210は、変数A、変数B、および変数Cなどの複数の変数を含む。
「変数」は、制御装置200がユーザプログラム230の実行中に使用する、任意の数値または文字列を表現する概念である。「変数」という用語は、常に値が変化しない定数の対語として用いられる。また、「変数」は、外部との間で遣り取りした入出力データまたは内部処理時の一時データそのものに限らず、当該入出力データまたは当該一時データなどを格納する入れ物(メモリ領域)であるとも言える。制御装置200は、ユーザプログラム230を実行するときに変数を使用する。制御装置200は、ユーザプログラム230を実行する過程で変数を更新する。
アドレス空間220には、変数ノードが定義されている。実施の形態において、アドレス空間220は、たとえば、OPC UAに従って定義される。アドレス空間220は、変数ノードのアドレスを含む。図1の例では、アドレス空間220は、変数ノードA、変数ノードB、および変数ノードCの各アドレスを含む。
アドレス空間220に定義される変数ノードと変数空間に定義される変数とが対応付けられることによって、外部装置300は、公開されている変数に、変数ノードを介してアクセスすることが可能になる。アドレス空間220に定義される変数ノードと変数空間に定義される変数とを対応付けることを「マッピング」と称する。
ノード設定プログラム290は、アドレス空間220に変数ノードを実装(生成)する処理と、マッピング処理とを実行するためのプログラムである。ノード設定プログラム290は、ノード設定部280により実行される。
ユーザプログラム230は、制御装置200が制御対象である駆動機器400を制御するための処理が記述されたプログラムである。ユーザプログラム230は、サポート装置100によって生成されて、制御装置200にインストールされる。
ユーザプログラム230は、任意のプログラミング言語で記述され得る。たとえば、ユーザプログラム230は、ラダーダイアグラム(LD:Ladder Diagram)、命令リスト(IL:Instruction List)、構造化テキスト(ST:Structured Text)、およびシーケンシャルファンクションチャート(SFC:Sequential Function Chart)の少なくとも1つを用いて規定される。ユーザプログラム230は、JavaScript(登録商標)またはC言語のような汎用的なプログラミング言語で規定されてもよい。
通信管理プログラム240は、制御装置200をOPC UAサーバとして動作させるためのプログラムである。通信管理プログラム240には、外部装置300に変数を公開するための処理が記述されている。制御装置200は、外部装置300からアクセス要求を受けたときに、外部装置300に変数を公開するか否かを通信管理プログラム240に基づいて判定する。通信管理プログラム240は、サポート装置100によって生成されて、制御装置200にインストールされる。
ユーザ設定情報250は、外部装置300からアクセスする者を管理するためのログイン情報を含む。以下では、外部装置300からアクセスする者を「アクセスユーザ」とも称する。これに対して、サポート装置100を用いてユーザプログラム230およびノードセットファイルを生成する者を「ユーザ」と称する。なお、「ユーザ」と「アクセスユーザ」とは、同一人物であってもよいし、互いに異なる人物であってもよい。アクセスユーザは、ユーザ設定情報250として制御装置200に予め登録されている。ユーザ設定情報250は、サポート装置100によって生成されて、制御装置200にダウンロードされる。
公開設定情報260は、制御装置200が管理するデータを外部装置300に公開するか否かを特定するための情報を含む。公開設定情報260は、サポート装置100によって生成されて、制御装置200にダウンロードされる。
公開管理部270は、通信管理プログラム240に従って、外部装置300にデータを公開する。たとえば、公開管理部270は、外部装置300から変数に対するアクセス要求を受けたとき、ユーザ設定情報250に基づいてアクセスユーザを認証する。次に、公開管理部270は、ユーザ認証の後、アクセス要求の対象とされる変数を特定する。次に、公開管理部270は、対象の変数を外部装置300に公開することが許可されているか否かを公開設定情報260に基づいて判定する。
対象の変数を外部装置300に公開することが許可されている場合、公開管理部270は、対象の変数に対応する変数ノードを特定する。具体的には、公開管理部270は、対象の変数と対応付けられている変数ノードのアドレスをアドレス空間220から抽出する。公開管理部270は、抽出されたアドレスを外部装置300に公開する。外部装置300は、制御装置200から取得したアドレスを用いて、要求した変数にアクセスする。
サポート装置100には、エディタ140および開発ツール150がインストールされ得る。ユーザは、2つの情報処理装置のうちの一方にエディタ140をインストールし、他方に開発ツール150をインストールしてもよい。この場合、2つの情報処理装置のそれぞれが制御装置200をサポートするサポート装置として動作する。
エディタ140は、たとえば、OPC UAサーバとして動作する制御装置200の情報モデルを作成するためのアプリケーションである。ユーザは、エディタ140を用いて制御装置200の情報モデルを設計することができる。エディタ140で設計された情報モデルは、たとえば、XML形式のノードセットファイルとして制御装置200へ送信される。エディタ140は、サポート装置100が備える生成部の一例である。
ノードセットファイルは、変数ノード情報とマッピング情報とを含む。換言すると、エディタ140は、変数ノード情報とマッピング情報とを生成するためのユーザインタフェースをユーザに提供する。変数ノード情報は、アドレス空間220に変数ノードを実装するための情報を含む。マッピング情報は、アドレス空間220に定義される変数ノードと変数空間210に定義される変数とを対応付けるための情報を含む。
一般に、OPC UAサーバのアドレス空間は、ノードセットファイルによって記述される。ノードセットファイルは、たとえば、OPC UA環境においてXMLファイルの形態を有する。OPC UAサーバのアドレス空間を記述するためのノードセットファイルの仕様は、OPC UAにおいて標準化されている。このため、OPC UAの標準仕様に基づいて変数ノード情報を生成することが可能である。
実施の形態に関わるエディタ140は、アドレス空間220に変数ノードを生成することのみでなく、変数ノードに対応付けられる変数を設定するためのマッピング情報を生成することも可能である。変数ノードに対応付けられる変数を設定するためのマッピング情報を生成することは、OPC UAの標準仕様としてサポートされておらず、本開示に関わる発明者によって新規に発案された事項である。
OPC UAの情報モデルは複数のレイヤによって構築される。複数のレイヤにはCMI(Custom Information Model)を規定するレイヤが含まれる。OPC UAの情報モデルに従う変数ノードは、CMIにおいて標準仕様として定義されている。実施の形態に関わるエディタ140では、各設計者の解釈による利用が認められているCMIの拡張(Extension(s))データ部分が、マッピングに活用されている。CMIの拡張(Extension(s))データ部分をマッピングに活用するという発想は、従来、存在せず、本開示に関わる発明者によって新規にもたらされた。
発明者は、この発想をベースにして、ユーザが外部の専門業者に委託することなく、変数ノードを設計したユーザ自身で、変数ノードの実装およびマッピングを実行することが可能な制御システム1を開発するに至った。
ユーザは、エディタ140を用いて、変数ノード情報とマッピング情報とを含むノードセットファイルを生成することができる。サポート装置100は、ノードセットファイルを制御装置200へ出力する。制御装置200には、ノードセットファイルに含まれる変数ノード情報およびマッピング情報を処理するために必要なノード設定プログラム290が格納されている。ノード設定部280は、ノードセットファイルに含まれる変数ノード情報およびマッピング情報をノード設定プログラム290に基づいて解釈する。ノード設定部280は、その解釈に基づいて、アドレス空間220に変数ノードを生成すると共にマッピング処理を実行する。
開発ツール150は、ユーザプログラム230を開発するためのユーザインタフェース、および外部装置300に公開する変数を設定するためのユーザインタフェースをユーザに提供する。開発ツール150の一例としては、オムロン社製の「Sysmac Studio」が挙げられる。ユーザは、開発ツール150を用いてユーザプログラム230を開発する。ユーザは、開発ツール150を用いて、公開設定情報260を設定する。ユーザプログラム230および公開設定情報260は、サポート装置100から制御装置200へ出力される。制御装置200は、ユーザプログラム230および公開設定情報260を保存する。
ユーザプログラム230は、制御装置200の一例であるPLCのプログラミングに関する標準規格である「IEC61131-3」に従って作成され、POU(Program Organization Unit)と称されるプログラム構成単位で構成される。ユーザプログラム230は、POUの構成要素として、ファンクションブロック(以下、「FB」とも称する。)を含む。
「ファンクションブロック」は、ユーザプログラム230内で繰り返し使用される機能が部品化されたものである。より具体的には、ファンクションブロックは、タイマまたはカウンタなど、制御対象である駆動機器400の状態に応じて同じ入力変数に対して出力変数が異なる場合がある部品(たとえば、型)を作成するときに使用するPOUである。ファンクションブロックにおいては、当該ファンクションブロックの実行時に用いられる少なくとも1つの変数が予め定められている。
「少なくとも1つの変数」は、たとえば、入力変数、出力変数、入出力変数、および内部変数などを含む。入力変数は、ファンクションブロックに入力される入力データとしてファンクションブロック内で使用される変数である。出力変数は、ファンクションブロックから出力される出力データとしてファンクションブロック内で使用される変数である。入出力変数は、ファンクションブロックに対する入出力データとしてファンクションブロック内で使用される変数である。内部変数は、ファンクションブロック内における一時的なデータ格納用の変数である。
型として予め準備されたファンクションブロックは、FB定義とも称される。ファンクションブロック(FB定義)は、ユーザプログラム230において配置された時点で、インスタンスとして、ユーザプログラム230上で個別に扱われるようになり、ユーザプログラム230上で実際に動作可能になる。通常、「ファンクションブロック」という用語は、型を意味するファンクションブロック(FB定義)と、ユーザプログラム230に組み込まれてインスタンス化されたファンクションブロックとの両方を含む。実施の形態においては、「ファンクションブロック」は、型を意味するファンクションブロック(FB定義)を指す用語として扱われる。
図2は、ファンクションブロック(FB定義)のインスタンス化の一例を示す図である。図2を参照しながら、ファンクションブロック(FB定義)のインスタンス化について説明する。図2に示されるように、FB1(FB定義)は、少なくとも1つの変数(Var1,Var2,…)が予め定められている。このようなFB1(FB定義)は、ユーザプログラム230において配置されることで、インスタンス1に対応するFB1、およびインスタンス2に対応するFB1として、ユーザプログラム230上で個別に扱われる。
「インスタンス」は、ファンクションブロック(FB定義)をユーザプログラム230上に配置したものである。ユーザプログラム230上で規定された各インスタンスは、個別のメモリ領域を使用する。ユーザは、ユーザプログラム230上において、1つのファンクションブロック(FB定義)をベースにして複数のインスタンスを生成することにより、ユーザプログラム230に従って、同一機能で異なる入出力データの処理を制御装置200に実行させることができる。
図2に示されるように、ファンクションブロック(FB定義)は、識別情報として固有の「名前空間」を有する。たとえば、ファンクションブロック(FB定義)は、名前空間として「FB1」が対応付けられている。また、インスタンスは、識別情報として固有の「インスタンス名」を有する。たとえば、インスタンス1に対応するFB1は、インスタンス名として「FB1インスタンス1」が対応付けられ、インスタンス2に対応するFB1は、インスタンス名として「FB1インスタンス2」が対応付けられている。
図3は、変数ノードに変数が対応付けられる流れを説明するためのブロック図である。図3に示されるように、制御装置200には、メモリ空間211が形成される。メモリ空間211は、1または複数の記憶装置によって実現される。メモリ空間211は、たとえば、記憶装置202(図4参照)によって実現される。メモリ空間211には、変数空間210、アドレス空間220、およびユーザプログラム230が含まれる。
図3に示されるユーザプログラム230は、複数のファンクションブロックインスタンスを含む。以下、「ファンクションブロックインスタンス」を「FBインスタンス」と称する。FBインスタンスは、変数を含んで構成される。ユーザプログラム230に含まれるFBインスタンスは、変数空間210に配置される。
図3に示される変数空間210には、FBインスタンスF11,F12,…が配置されている。FBインスタンスF11,F12,…は、ユーザプログラム230に含まれるFBインスタンスの一例である。FBインスタンスF11,F12,…は、ユーザプログラム230によって使用される変数Var1,Var2…を含む。
ユーザは、サポート装置100により提供されるエディタ140を用いて、変数ノード情報およびマッピング情報を含むノードセットファイルを生成する。サポート装置100は、ユーザの指示に従ってノードセットファイルを制御装置200に出力する。
ノード設定部280は、ノードセットファイルの変数ノード情報に基づいてアドレス空間220に変数ノードN1,N2,…を生成する。ノード設定部280は、さらに、ノードセットファイルのマッピング情報に基づいて、マッピング処理を実行する。変数ノードと変数との対応は1対1の関係にある。このため、マッピング処理が実行されることにより、1つの変数ノードに対して、1つのFBインスタンスに含まれる1つの変数(Var)が対応付けられる。
たとえば、変数ノードN1に対して、FBインスタンスF11の「Var1」が対応付けられることがある。あるいは、変数ノードN1に対して、FBインスタンスF12の「Var2」が対応付けられることがある。
エディタ140で生成されるマッピング情報は、マッピングの方向付けに関する情報を含む。エディタ140では、変数ノードを基準として、変数ノードに対応付ける変数が設定される。換言すると、エディタ140では、変数ノードから変数に向かう方向でマッピングが設定される。OPC UAに精通している外部業者がツールを用いて実施しているマッピング処理では、変数から変数ノードに向かう方向でマッピングが設定される。
このため、実施の形態に関わるサポート装置100によって生成されるマッピング情報と、従来のツールによって生成されるマッピング情報とでは、マッピングの方向が異なる。実施の形態に関わる制御装置200は、サポート装置100から出力されるマッピング情報を解釈し、変数から変数ノードに向かう方向でマッピング処理を実行することが可能である。制御装置200に備えられるノード設定部280(図1参照)により、マッピング処理が実行される。
ユーザは、ノードセットファイルを制御装置200へ出力することによって、アドレス空間220に変数ノードF11,F12,…を実装する処理と、実装された変数ノードF11,F12,…から変数方向へのマッピング処理とを実施することができる。そのため、ユーザは、OPC UAに精通した外部業者に変数ノードの実装およびマッピング処理を依頼する必要がない。ユーザは、外部業者に変数ノードの実装およびマッピング処理を依頼する必要がないため、システム開発に必要な費用を抑えることができる。なお、制御装置200をユーザに販売するベンダが、ユーザに代わってエディタ140を用いてノードセットファイルを生成し、生成したノードセットファイルを制御装置200に出力してもよい。
<B.制御装置の構成>
図4を参照しながら、制御装置200のハードウェア構成について説明する。図4は、制御装置200のハードウェア構成の一例を示す図である。図4に示されるように、制御装置200は、主な構成として、プロセッサ201と、記憶装置202と、メモリ203と、チップセット204と、制御系インタフェース205と、情報系インタフェース206と、USBコントローラ207と、記憶媒体インタフェース208とを備える。
プロセッサ201は、各種のプログラムを実行することで、各種の処理を実行する演算主体(コンピュータ)である。プロセッサ201は、たとえば、CPU(central processing unit)またはMPU(Micro-processing unit)などで構成されている。なお、プロセッサ201は、プログラムを実行することによって各種の処理を実行する機能を有するが、これらの機能の一部または全部を、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)などの専用のハードウェア回路を用いて実装してもよい。プロセッサ201は、CPUまたはMPUのようにストアードプログラム方式で処理を実行する狭義のプロセッサに限らず、ASICまたはFPGAなどのハードワイヤード回路を含み得る。このため、プロセッサ201は、コンピュータ読み取り可能なコードおよび/またはハードワイヤード回路によって予め処理が定義されている、処理回路(processing circuitry)と読み替えることもできる。なお、プロセッサ201は、1チップで構成されてもよいし、複数のチップで構成されてもよい。さらに、プロセッサ201および関連する処理回路は、ローカルエリアネットワークまたは無線ネットワークなどを介して、有線または無線で相互接続された複数のコンピュータで構成されてもよい。プロセッサ201および関連する処理回路は、入力データに基づきリモートで演算し、その演算結果を離れた位置にある他のデバイスへと出力するような、クラウドコンピュータで構成されてもよい。
記憶装置202は、プロセッサ201が実行する各種のプログラムまたは各種のデータなどを記憶する。記憶装置202は、1または複数の非一時的コンピュータ可読媒体(non-transitory computer readable medium)であってもよいし、1または複数のコンピュータ読み取り可能な記憶媒体(computer readable storage medium)であってもよい。記憶装置202の一例としては、HDD(Hard Disk Drive)およびSSD(Solid State Drive)などが挙げられる。実施の形態に係る制御装置200において、記憶装置202は、変数空間210と、アドレス空間220と、ユーザプログラム230と、通信管理プログラム240と、ユーザ設定情報250と、公開設定情報260と、ノード設定プログラム290とを記憶する。
メモリ203は、プロセッサ201が各種のプログラムを実行するにあたって、プログラムコードやワークメモリなどを一時的に格納する揮発性の記憶領域(たとえば、ワーキングエリア)を含む。メモリ203の一例としては、DRAM(dynamic random access memory)およびSRAM(static random access memory)などの揮発性メモリ、または、ROM(Read Only Memory)およびフラッシュメモリなどの不揮発性メモリが挙げられる。
チップセット204は、制御装置200を構成する各装置間におけるデータの遣り取りを管理および処理するための中継機能を有する。
制御系インタフェース205は、制御装置200と駆動機器400との間のデータの遣り取りを仲介するインタフェースである。
情報系インタフェース206は、制御装置200と外部装置300との間のデータの遣り取りを仲介するインタフェースである。
USBコントローラ207は、制御装置200とサポート装置100との間のデータの遣り取りを仲介するインタフェースである。
記憶媒体インタフェース208は、記憶媒体209を着脱可能に構成されており、ユーザプログラム230、通信管理プログラム240、ユーザ設定情報250、公開設定情報260、およびノード設定プログラム290などの各種のデータを制御装置200が記憶媒体209に対して書き込み、または、当該各種のデータを制御装置200が記憶媒体209から読み出すためのインタフェースである。なお、記憶媒体209は、メモリカード、リムーバブルディスク、またはUSBメモリなど、1または複数の非一時的コンピュータ可読媒体(non-transitory computer readable medium)であってもよいし、1または複数のコンピュータ読み取り可能な記憶媒体(computer readable storage medium)であってもよい。
<C.サポート装置の構成>
図5を参照しながら、サポート装置100のハードウェア構成について説明する。図5は、サポート装置100のハードウェア構成の一例を示す図である。図5に示されるように、サポート装置100は、主な構成として、プロセッサ101と、記憶装置102と、メモリ103と、バス104と、表示部105と、入力部106と、USBコントローラ107と、記憶媒体インタフェース108とを備える。
プロセッサ101は、各種のプログラムを実行することで、各種の処理を実行する演算主体(コンピュータ)である。プロセッサ101は、たとえば、CPUまたはMPUなどで構成されている。なお、プロセッサ101は、プログラムを実行することによって各種の処理を実行する機能を有するが、これらの機能の一部または全部を、ASICまたはFPGAなどの専用のハードウェア回路を用いて実装してもよい。プロセッサ101は、CPUまたはMPUのようにストアードプログラム方式で処理を実行する狭義のプロセッサに限らず、ASICまたはFPGAなどのハードワイヤード回路を含み得る。このため、プロセッサ101は、コンピュータ読み取り可能なコードおよび/またはハードワイヤード回路によって予め処理が定義されている、処理回路(processing circuitry)と読み替えることもできる。なお、プロセッサ101は、1チップで構成されてもよいし、複数のチップで構成されてもよい。さらに、プロセッサ101および関連する処理回路は、ローカルエリアネットワークまたは無線ネットワークなどを介して、有線または無線で相互接続された複数のコンピュータで構成されてもよい。プロセッサ101および関連する処理回路は、入力データに基づきリモートで演算し、その演算結果を離れた位置にある他のデバイスへと出力するような、クラウドコンピュータで構成されてもよい。
記憶装置102は、プロセッサ101が実行する各種のプログラムまたは各種のデータなどを記憶する。記憶装置102は、1または複数の非一時的コンピュータ可読媒体(non-transitory computer readable medium)であってもよいし、1または複数のコンピュータ読み取り可能な記憶媒体(computer readable storage medium)であってもよい。記憶装置102の一例としては、HDDおよびSSDなどが挙げられる。
実施の形態に係るサポート装置100において、記憶装置102は、サポートプログラム130およびエディタ140を記憶する。サポートプログラム130は、図1に示される開発ツール150を実現する。エディタ140は、ノードセットファイルを生成するためのソフトウエアである。
メモリ103は、プロセッサ101が各種のプログラムを実行するにあたって、プログラムコードやワークメモリなどを一時的に格納する揮発性の記憶領域(たとえば、ワーキングエリア)を含む。メモリ103の一例としては、DRAMおよびSRAMなどの揮発性メモリ、または、ROMおよびフラッシュメモリなどの不揮発性メモリが挙げられる。
バス104は、サポート装置100を構成する各装置間におけるデータの遣り取りを管理および処理する。
表示部105は、たとえば、ディスプレイである。なお、表示部105は、サポート装置100とディスプレイとの間のデータの遣り取りを仲介するように構成されたディスプレイを接続するためのインタフェースであってもよい。すなわち、サポート装置100は、構成としてディスプレイを備えていてもよいし、ディスプレイと別体であってもよい。
入力部106は、たとえば、キーボードまたはマウスなどの周辺機器である。なお、入力部106は、サポート装置100と周辺機器との間のデータの遣り取りを仲介するように構成された周辺機器を接続するためのインタフェースであってもよい。すなわち、サポート装置100は、構成としてキーボードまたはマウスなどの周辺機器を備えていてもよいし、周辺機器と別体であってもよい。
USBコントローラ107は、サポート装置100と制御装置200との間のデータの遣り取りを仲介するインタフェースである。USBコントローラ107は、出力部の一例である。
記憶媒体インタフェース108は、記憶媒体109を着脱可能に構成されており、サポートプログラム130およびエディタ140などの各種のデータをサポート装置100が記憶媒体109に対して書き込み、または、当該各種のデータをサポート装置100が記憶媒体109から読み出すためのインタフェースである。なお、記憶媒体109は、メモリカード、リムーバブルディスク、またはUSBメモリなど、1または複数の非一時的コンピュータ可読媒体(non-transitory computer readable medium)であってもよいし、1または複数のコンピュータ読み取り可能な記憶媒体(computer readable storage medium)であってもよい。
<D.外部装置の構成>
図6を参照しながら、外部装置300のハードウェア構成について説明する。図6は、外部装置300のハードウェア構成の一例を示す図である。図6に示されるように、外部装置300は、主な構成として、プロセッサ301と、記憶装置302と、メモリ303と、バス304と、表示部305と、入力部306と、通信インタフェース307と、記憶媒体インタフェース308とを備える。
プロセッサ301は、各種のプログラムを実行することで、各種の処理を実行する演算主体(コンピュータ)である。プロセッサ301は、たとえば、CPUまたはMPUなどで構成されている。なお、プロセッサ301は、プログラムを実行することによって各種の処理を実行する機能を有するが、これらの機能の一部または全部を、ASICまたはFPGAなどの専用のハードウェア回路を用いて実装してもよい。プロセッサ301は、CPUまたはMPUのようにストアードプログラム方式で処理を実行する狭義のプロセッサに限らず、ASICまたはFPGAなどのハードワイヤード回路を含み得る。このため、プロセッサ301は、コンピュータ読み取り可能なコードおよび/またはハードワイヤード回路によって予め処理が定義されている、処理回路(processing circuitry)と読み替えることもできる。なお、プロセッサ301は、1チップで構成されてもよいし、複数のチップで構成されてもよい。さらに、プロセッサ301および関連する処理回路は、ローカルエリアネットワークまたは無線ネットワークなどを介して、有線または無線で相互接続された複数のコンピュータで構成されてもよい。プロセッサ301および関連する処理回路は、入力データに基づきリモートで演算し、その演算結果を離れた位置にある他のデバイスへと出力するような、クラウドコンピュータで構成されてもよい。
記憶装置302は、プロセッサ301が実行する各種のプログラムまたは各種のデータなどを記憶する。記憶装置302は、1または複数の非一時的コンピュータ可読媒体(non-transitory computer readable medium)であってもよいし、1または複数のコンピュータ読み取り可能な記憶媒体(computer readable storage medium)であってもよい。記憶装置302の一例としては、HDDおよびSSDなどが挙げられる。実施の形態に係る外部装置300において、記憶装置302は、通信プログラム330を記憶する。通信プログラム330は、外部装置300をOPC UAクライアントとして機能させるためのプログラムであって、外部装置300が制御装置200によって管理される変数に対してアクセスを要求するための処理が記述されている。
メモリ303は、プロセッサ301が各種のプログラムを実行するにあたって、プログラムコードやワークメモリなどを一時的に格納する揮発性の記憶領域(たとえば、ワーキングエリア)を含む。メモリ303の一例としては、DRAMおよびSRAMなどの揮発性メモリ、または、ROMおよびフラッシュメモリなどの不揮発性メモリが挙げられる。
バス304は、外部装置300を構成する各装置間におけるデータの遣り取りを管理および処理する。
表示部305は、たとえば、ディスプレイである。なお、表示部305は、外部装置300とディスプレイとの間のデータの遣り取りを仲介するように構成されたディスプレイを接続するためのインタフェースであってもよい。すなわち、外部装置300は、構成としてディスプレイを備えていてもよいし、ディスプレイと別体であってもよい。
入力部306は、たとえば、キーボードまたはマウスなどの周辺機器である。なお、入力部306は、外部装置300と周辺機器との間のデータの遣り取りを仲介するように構成された周辺機器を接続するためのインタフェースであってもよい。すなわち、外部装置300は、構成としてキーボードまたはマウスなどの周辺機器を備えていてもよいし、周辺機器と別体であってもよい。
通信インタフェース307は、外部装置300と制御装置200との間のデータの遣り取りを仲介するインタフェースである。
記憶媒体インタフェース308は、記憶媒体309を着脱可能に構成されており、通信プログラム330などの各種のデータを外部装置300が記憶媒体309に対して書き込み、または、当該各種のデータを外部装置300が記憶媒体309から読み出すためのインタフェースである。なお、記憶媒体309は、メモリカード、リムーバブルディスク、またはUSBメモリなど、1または複数の非一時的コンピュータ可読媒体(non-transitory computer readable medium)であってもよいし、1または複数のコンピュータ読み取り可能な記憶媒体(computer readable storage medium)であってもよい。
<E.シーケンスフロー>
図7を参照しながら、サポート装置100、制御装置200、駆動機器400、および外部装置300の各々の処理の流れについて説明する。図7は、サポート装置100、制御装置200、駆動機器400、および外部装置300の各々の処理の流れを示すシーケンス図である。
図7に示すサポート装置100の各STEP(以下、「S」で示す。)は、プロセッサ101がサポートプログラム130を実行することで実現される。プロセッサ101は、サポートプログラム130を実行することによって、図1に示される開発ツール150のユーザインタフェースをユーザに提供する。ユーザは、開発ツール150を用いて、ユーザプログラム230を開発し、ユーザ設定情報を生成し、公開設定情報を設定する。
図7に示す制御装置200の各STEPは、プロセッサ201がユーザプログラム230および通信管理プログラム240を実行することで実現される。図7に示す外部装置300の各STEPは、プロセッサ301が通信プログラム330を実行することで実現される。
図7に示されるように、サポート装置100は、開発画面を表示するための操作を受け付けると、表示部105に開発画面を表示する(S11)。ユーザは、開発画面を用いて、ユーザプログラム230を開発する。サポート装置100は、ユーザプログラム230をコンパイルして、実行形式のファイルとして制御装置200に送信する(S12)。
制御装置200は、サポート装置100から送信されたユーザプログラム230を受信すると、ユーザプログラム230を記憶装置202に記憶する(S21)。
サポート装置100は、ユーザ設定画面を表示するための操作を受け付けると、表示部105にユーザ設定画面を表示する(S13)。ユーザは、ユーザ設定画面を用いて、特定の人物をネットワーク公開サービスのアクセスユーザとして登録する。サポート装置100は、ユーザ設定画面の入力内容に基づき、ユーザ設定情報250を生成する(S14)。サポート装置100は、ユーザ設定情報250を制御装置200に送信する(S15)。
制御装置200は、サポート装置100から送信されたユーザ設定情報250を受信すすると、ユーザ設定情報250を記憶装置202に記憶する(S22)。
サポート装置100は、公開設定画面を表示するための操作を受け付けると、表示部105に公開設定画面を表示する(S16)。ユーザは、公開設定画面を用いて、外部装置300に対して制御装置200が管理するデータ(変数など)を公開するか否かに関する情報を入力する。サポート装置100は、公開設定画面の入力内容に基づき、公開設定情報260を生成する(S17)。サポート装置100は、公開設定情報260を制御装置200に送信する(S18)。
制御装置200は、サポート装置100から送信された公開設定情報260を受信すると、公開設定情報260を記憶装置202に記憶する(S23)。
制御装置200は、ユーザプログラム230の実行命令を受け付けると、ユーザプログラム230を実行して、駆動機器400を制御する。ユーザプログラム230がサイクリック実行型のプログラムである場合、制御装置200は、予め定められた制御周期毎にユーザプログラム230に含まれる命令群を繰り返し実行する。より具体的には、制御装置200は、ユーザプログラム230の先頭行から最終行までを1制御周期で実行し、その次の制御周期で再びユーザプログラム230の先頭行から最終行までを1制御周期で実行する。制御装置200は、制御周期毎に指令値を生成し、当該指令値を駆動機器400に出力する。
上述したように制御装置200がユーザプログラム230を実行して駆動機器400を制御することによって、ユーザプログラム230によって予め定められた各インスタンスに変数が格納される。
アクセスユーザがユーザプログラム230の実行時に生成された変数にアクセスする場合、外部装置300は、アクセスユーザによって入力されたログイン情報を受け付ける(S31)。
制御装置200は、外部装置300に入力されたログイン情報を受信すると、当該ログイン情報とユーザ設定情報250に含まれるログイン情報とを照合し、照合の結果、外部装置300に入力されたログイン情報とユーザ設定情報250に含まれるログイン情報とが一致する場合に、アクセスユーザの認証が正当であると判断する。
アクセスユーザがアクセスを希望する変数を特定する場合、外部装置300は、アクセスユーザによって入力された変数を特定するための情報を受け付ける(S33)。外部装置300は、アクセスユーザによって指定された変数について、制御装置200にアクセスを要求する(S34)。
制御装置200は、外部装置300からアクセス要求を受け付けると、公開設定情報260に基づき、アクセス要求の対象である変数のアクセスユーザに対する公開が許可されているか否かを判定する(S25)。制御装置200は、アクセス要求の対象である変数のアクセスユーザに対する公開が許可されていない場合(S25でNO)、アクセス要求の対象である変数をアクセスユーザに対して公開することなく、次の処理に移行する。一方、制御装置200は、アクセス要求の対象である変数のアクセスユーザに対する公開が許可されている場合(S25でYES)、アクセス要求の対象である変数を外部装置300に公開するために、アクセス要求の対象である変数にアクセスするためのアドレスを外部装置300に送信する(S26)。
外部装置300は、制御装置200から受信したアドレスに基づき、アクセス要求の対象である変数を表示部305に表示する(S34)。
このように、制御装置200は、アクセスユーザからの変数のアクセス要求があった場合、サポート装置100によって設定された公開設定に基づき当該変数の公開が許可されていることを条件に、当該変数をアクセスユーザに公開することができる。
<F.フローチャート>
図8および図9を参照しながら、変数ノードの生成およびマッピング処理について説明する。図8は、ノードセットファイルを生成する際にサポート装置100が実行する処理を説明するためのフローチャートである。図9は、ノードセットファイルに基づいた制御装置200の処理を説明するためのフローチャートである。
図8に示されるフローチャートの処理手順は、図1に示されるエディタ140に含まれる。図9に示されるフローチャートの処理手順は、図1に示されるノード設定プログラム290に含まれる。
図7に示されるように、サポート装置100は、変数ノード情報を設定するユーザ操作を受け付ける(S101)。次に、サポート装置100は、変数ノードに対応する変数を設定するユーザ操作(マッピング情報を設定するユーザ操作)を受け付ける(S102)。次に、サポート装置100は、S101およびS102で受け付けたユーザ操作に基づいてノードセットファイルを生成する(S103)。これにより、変数ノード情報およびマッピング情報が含まれるノードセットファイルが生成される。
次に、サポート装置100は、ノードセットファイルを出力するユーザ操作を受け付ける(S104)。次に、サポート装置100は、ノードセットファイルを制御装置200へ出力する(S105)。
図8に示されるように、制御装置200は、サポート装置100からノードセットファイルを受信する(S201)。次に、制御装置200は、ノードセットファイルに含まれる変数ノード情報に基づいて、アドレス空間220に変数ノードを生成する(S202)。次に、制御装置200は、マッピング処理を実行する(S203)。すなわち、制御装置200は、ノードセットファイルに含まれるマッピング情報に基づいて、変数ノードに変数を対応付ける。以上の処理が実行されることにより、変数ノードの実装およびマッピングが完了される。
<G.ユーザプログラムの開発画面>
図10を参照しながら、ユーザプログラム230の開発画面151について説明する。図10は、サポート装置100に表示される開発画面151の一例を示す図である。開発画面は、サポート装置100に搭載される開発ツール150によって実現される。
ユーザプログラム230は、ラダーダイアグラムで記述されている。ユーザは、開発画面151において、任意のファンクションブロックを組み合わせたり、変数またはファンクションブロックの入出力関係を規定したりすることで、制御対象の駆動機器400に対応するユーザプログラム230を設計することができる。
ユーザプログラム230は、少なくとも1つのファンクションブロックを含む。たとえば、図10に示されるように、ユーザプログラム230は、名前空間として「FB1」が付されたファンクションブロック(FB定義)と、名前空間として「FB2」が付されたファンクションブロック(FB定義)とを含む。FB1は、インスタンス1に対応するFB1と、インスタンス2に対応するFB1として、ユーザプログラム230に規定されている。インスタンス1に対応するFB1には、インスタンス名として「FB1インスタンス1」が付されている。インスタンス2に対応するFB1には、インスタンス名として「FB2インスタンス1」が付されている。FB2は、インスタンス1に対応するFB2と、インスタンス2に対応するFB2として、ユーザプログラム230に規定されている。インスタンス1に対応するFB2には、インスタンス名として「FB2インスタンス1」が付されている。インスタンス2に対応するFB2には、インスタンス名として「FB2インスタンス2」が付されている。
FB1インスタンス1に対応するファンクションブロックは、その入力に関連付けられている変数1に基づいて、自身の機能を実行する。FB1インスタンス1に対応するファンクションブロックの実行結果は、その出力に関連付けられている変数2に反映される。FB1インスタンス2に対応するファンクションブロックは、その入力に関連付けられている変数2に基づいて、自身の機能を実行する。FB1インスタンス2に対応するファンクションブロックの実行結果は、その出力に関連付けられている変数3に反映される。FB2インスタンス1に対応するファンクションブロックは、その入力に関連付けられている変数3に基づいて、自身の機能を実行する。FB2インスタンス1に対応するファンクションブロックの実行結果は、その出力に関連付けられている変数4に反映される。FB2インスタンス2に対応するファンクションブロックは、その入力に関連付けられている変数4に基づいて、自身の機能を実行する。FB2インスタンス2に対応するファンクションブロックの実行結果は、その出力に関連付けられている変数5に反映される。
このように、ユーザは、開発画面151において、変数またはファンクションブロックを組み合わせることで、任意のユーザプログラム230を開発することができる。
<H.マッピング情報の設定画面>
図11~図13を参照しながら、マッピング情報を設定するための設定画面141について説明する。図11~図13は、ユーザがマッピング情報を設定する際に、サポート装置100に表示される設定画面141の一例を示す図である。設定画面141は、ユーザインタフェースの一例である。
図11~図13に示されるように、設定画面141には、変数ノードを基準として、変数ノードに対応付ける変数をユーザが選択するためのインタフェースが表示される。ここでは、複数の変数ノードの例として、変数ノードN1~N4を挙げている。設定画面141に表示される変数ノードの数は1つであってもよく、5つ以上であってもよい。
設定画面141は、FBインスタンスを選択するステップと、選択されたFBインスタンスに含まれる変数の中から変数ノードに対応付ける変数を選択するステップとをユーザに提供する。ユーザは、これら2つのステップに対する操作をすることより、変数ノードに対応付ける変数を設定する。
ユーザは、設定画面141の「FBインスタンス」を操作部の一例のマウスでクリックする。これにより、図11に示されるように、ユーザプログラム230に関わる多数のFBインスタンスが「FBインスタンス」の下にプルダウン形式で表示される。図11には、ユーザがマウスカーソル145で「FB1インスタンス2」を指定する様子が示されている。
図12に示されるように、マウスカーソル145による指定に応じて、変数ノードN1に「FB1インスタンス2」が指定される。さらに、図12には、ユーザがマウスカーソル145で「FB1インスタンス2」内の変数「Var3」を指定する様子が示されている。
図13に示される設定画面141では、変数ノードN1に、「FB1インスタンス2」の変数「Var3」が指定されている。これにより、変数ノードN1を基準として、変数ノードN1に対応付ける変数が設定される。さらに、ユーザは、同様の手順を繰り返すことによって、変数ノードN2,N3…の各々に対応付ける変数を設定する。図13には、ユーザがマウスカーソル145で変数ノードN2に対応付ける変数を設定するための操作をする様子が示されている。
以上、図11~図13を用いて説明した設定画面141は、図8に示されるフローチャートのS102によって実現される。
<I.付記>
以上のように、本実施の形態では以下のような開示を含む。
(構成1)
制御システム(1)であって、
ユーザプログラム(230)に従って制御対象(400)を制御する制御装置(200)と、
前記制御装置をサポートするサポート装置(100)とを備え、
前記制御装置は、メモリ空間(211)が定義される記憶装置(202)を備え、
前記メモリ空間は、
前記ユーザプログラムが実行されるときに使用される変数が定義される変数空間(210)と、
変数ノードが定義されるアドレス空間(220)とを含み、
前記サポート装置は、
前記メモリ空間を含む情報モデルを設定するためのファイルを生成する生成部(140)と、
前記ファイルを前記制御装置へ出力する出力部(107)とを備え、
前記ファイルは、前記変数ノードに対応付けられる変数を規定するマッピング情報を含み、
前記制御装置は、前記ファイルを受信したときに、前記マッピング情報に従って前記変数ノードに前記変数を対応付ける(S203)、制御システム。
(構成2)
前記ファイルは、前記アドレス空間に前記変数ノードを生成するための変数ノード情報を含み、
前記制御装置は、前記ファイルを受信したときに、前記変数ノード情報に従って前記アドレス空間に前記変数ノードを生成する(S202)、構成1の制御システム。
(構成3)
前記生成部は、前記変数ノードに対応付けられる変数を規定するためのユーザインタフェース(141)を含む、構成1または構成2に記載の制御システム。
(構成4)
前記変数空間には、ファンクションブロック(F11,F12)毎に前記変数が定義されており、
前記ユーザインタフェースは、
前記変数ノードに、前記ファンクションブロック内に定義される変数を対応付ける操作を受け付ける(図11~図13)、構成3に記載の制御システム。
(構成5)
前記アドレス空間は、OPC UA(Open Platform Communications Unified Architecture)に従って前記メモリ空間に定義される、構成1~構成4のいずれか1項に記載の制御システム。
(構成6)
ユーザプログラム(230)に従って制御対象を制御する制御装置(200)をサポートするサポート装置(100)であって、
前記制御装置は、メモリ空間(211)が定義される記憶装置(202)を備え、
前記メモリ空間は、
前記ユーザプログラム(230)が実行されるときに使用される変数が定義される変数空間(210)と、
変数ノードが定義されるアドレス空間(220)とを含み、
前記サポート装置は、
前記メモリ空間を含む情報モデルを設定するためのファイルを生成する生成部(140)と、
前記ファイルを前記制御装置へ出力する出力部(107)とを備え、
前記ファイルは、前記変数ノードに対応付けられる変数を規定するマッピング情報を含む、サポート装置。
(構成7)
ユーザプログラム(230)に従って制御対象(400)を制御する制御装置(200)であって、
プロセッサ(201)と、
メモリ空間(211)が定義される記憶装置(202)とを備え、
前記メモリ空間は、
前記ユーザプログラムが実行されるときに使用される変数が定義される変数空間(210)と、
変数ノードが定義されるアドレス空間(220)とを含み、
前記プロセッサは、前記メモリ空間を含む情報モデルを設定するためのファイルを取得し(S201)、
前記ファイルは、前記変数ノードに対応付けられる変数を規定するマッピング情報を含み、
前記プロセッサは、前記マッピング情報に従って前記変数ノードに前記変数を対応付ける(S203)、制御装置。
<J.利点>
実施の形態に係る制御システム1、サポート装置100、および制御装置200によれば、ユーザは、アドレス空間内の変数ノードと変数空間内の変数との対応関係を設定することができる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 制御システム、10 制御系ネットワーク、20 情報系ネットワーク、100 サポート装置、101,201,301 プロセッサ、102,202,302 記憶装置、103,203,303 メモリ、104,304 バス、105,305 表示部、106,306 入力部、107,207 USBコントローラ、108,208,308 記憶媒体インタフェース、109,209,309 記憶媒体、110 提供部、120 公開設定部、130 サポートプログラム、140 エディタ、141 設定画面、145 マウスカーソル、150 開発ツール、151 開発画面、200 制御装置、204 チップセット、205 制御系インタフェース、206 情報系インタフェース、210 変数空間、211 メモリ空間、220 アドレス空間、230 ユーザプログラム、240 通信管理プログラム、250 ユーザ設定情報、260 公開設定情報、270 公開管理部、280 ノード設定部、290 ノード設定プログラム、300 外部装置、307 通信インタフェース、330 通信プログラム、400 駆動機器、400A ロボットコントローラ、400B サーボドライバ、400C センサ、401A ロボット、401B サーボモータ。

Claims (7)

  1. 制御システムであって、
    ユーザプログラムに従って制御対象を制御する制御装置と、
    前記制御装置をサポートするサポート装置とを備え、
    前記制御装置は、メモリ空間が定義される記憶装置を備え、
    前記メモリ空間は、
    前記ユーザプログラムが実行されるときに使用される変数が定義される変数空間と、
    変数ノードが定義されるアドレス空間とを含み、
    前記サポート装置は、
    前記メモリ空間を含む情報モデルを設定するためのファイルを生成する生成部と、
    前記ファイルを前記制御装置へ出力する出力部とを備え、
    前記ファイルは、前記変数ノードに対応付けられる変数を規定するマッピング情報を含み、
    前記制御装置は、前記ファイルを受信したときに、前記マッピング情報に従って前記変数ノードに前記変数を対応付ける、制御システム。
  2. 前記ファイルは、前記アドレス空間に前記変数ノードを生成するための変数ノード情報を含み、
    前記制御装置は、前記ファイルを受信したときに、前記変数ノード情報に従って前記アドレス空間に前記変数ノードを生成する、請求項1に記載の制御システム。
  3. 前記生成部は、前記変数ノードに対応付けられる変数を規定するためのユーザインタフェースを含む、請求項1または請求項2に記載の制御システム。
  4. 前記変数空間には、ファンクションブロック毎に前記変数が定義されており、
    前記ユーザインタフェースは、
    前記変数ノードに、前記ファンクションブロック内に定義される変数を対応付ける操作を受け付ける、請求項3に記載の制御システム。
  5. 前記アドレス空間は、OPC UA(Open Platform Communications Unified Architecture)に従って前記メモリ空間に定義される、請求項1または請求項2に記載の制御システム。
  6. ユーザプログラムに従って制御対象を制御する制御装置をサポートするサポート装置であって、
    前記制御装置は、メモリ空間が定義される記憶装置を備え、
    前記メモリ空間は、
    前記ユーザプログラムが実行されるときに使用される変数が定義される変数空間と、
    変数ノードが定義されるアドレス空間とを含み、
    前記サポート装置は、
    前記メモリ空間を含む情報モデルを設定するためのファイルを生成する生成部と、
    前記ファイルを前記制御装置へ出力する出力部とを備え、
    前記ファイルは、前記変数ノードに対応付けられる変数を規定するマッピング情報を含む、サポート装置。
  7. ユーザプログラムに従って制御対象を制御する制御装置であって、
    プロセッサと、
    メモリ空間が定義される記憶装置とを備え、
    前記メモリ空間は、
    前記ユーザプログラムが実行されるときに使用される変数が定義される変数空間と、
    変数ノードが定義されるアドレス空間とを含み、
    前記プロセッサは、前記メモリ空間を含む情報モデルを設定するためのファイルを取得し、
    前記ファイルは、前記変数ノードに対応付けられる変数を規定するマッピング情報を含み、
    前記プロセッサは、前記マッピング情報に従って前記変数ノードに前記変数を対応付ける、制御装置。
JP2023047528A 2023-03-24 2023-03-24 制御システム、サポート装置、および制御装置 Pending JP2024136415A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2023047528A JP2024136415A (ja) 2023-03-24 2023-03-24 制御システム、サポート装置、および制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2023047528A JP2024136415A (ja) 2023-03-24 2023-03-24 制御システム、サポート装置、および制御装置

Publications (1)

Publication Number Publication Date
JP2024136415A true JP2024136415A (ja) 2024-10-04

Family

ID=92911846

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023047528A Pending JP2024136415A (ja) 2023-03-24 2023-03-24 制御システム、サポート装置、および制御装置

Country Status (1)

Country Link
JP (1) JP2024136415A (ja)

Similar Documents

Publication Publication Date Title
US11927942B2 (en) Automatic setup of digital twins for industrial controllers
JP6624008B2 (ja) エンジニアリングツール連携装置、エンジニアリングツール連携方法、エンジニアリングツール連携プログラム及び記録媒体
JP6201917B2 (ja) フィールドデバイスを設定するためのシステムおよび方法
JP2018129020A (ja) インダストリアル・インターネットオペレーティングシステムに基づくインダストリアル・プロセス制御管理方法と装置
US20020065704A1 (en) Group work control system, group work control method and group work contrlo program
JP2019159996A (ja) コントローラ、制御方法、および制御プログラム
WO2019167512A1 (ja) 表示装置、画面生成方法、および画面生成プログラム
WO2019176336A1 (ja) 制御システム、開発支援装置、および開発支援プログラム
JP6135247B2 (ja) 情報処理装置および情報処理プログラム
JP2011186607A (ja) フィールドデバイス、フィールドデバイスの設定方法、フィールドデバイス管理装置及びプログラム
JP2024136415A (ja) 制御システム、サポート装置、および制御装置
EP3848866A1 (en) Method and system for managing engineering workflow in a cloud computing environment
WO2024190554A1 (ja) サポート装置、制御方法、およびサポートプログラム
WO2024190551A1 (ja) サポート装置、制御方法、およびサポートプログラム
EP4193225B1 (en) Method and system for providing engineering of an industrial device in a cloud computing environment
JP6455096B2 (ja) コントロールシステム、その支援装置、プログラマブルコントロール装置
EP3792710B1 (en) Control system, support device, and support program
JP7119714B2 (ja) 情報処理装置、表示プログラム、および方法
JP5027820B2 (ja) 装置および構成要素から構成されているモジュール式の生産機械を制御するための方法
JP7241982B1 (ja) 画像生成プログラム、画像生成装置、プログラマブルコントローラシステム及び画像生成方法
JP2020144594A (ja) 制御装置およびソフトウェアのデプロイ方法
Zia et al. Towards increased flexibility and interoperability in distributed process control applications
JP7303424B2 (ja) 情報提供システム、サーバおよび情報提供方法
WO2022190427A1 (ja) 開発支援装置、開発支援方法、及び、開発支援プログラム
JP6020854B2 (ja) コンピュータ化されたマシン制御システム