JP7361669B2 - 制御装置 - Google Patents

制御装置 Download PDF

Info

Publication number
JP7361669B2
JP7361669B2 JP2020146504A JP2020146504A JP7361669B2 JP 7361669 B2 JP7361669 B2 JP 7361669B2 JP 2020146504 A JP2020146504 A JP 2020146504A JP 2020146504 A JP2020146504 A JP 2020146504A JP 7361669 B2 JP7361669 B2 JP 7361669B2
Authority
JP
Japan
Prior art keywords
data
application
memory
control
shared memory
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
JP2020146504A
Other languages
English (en)
Other versions
JP2022041359A (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.)
Hitachi Industrial Equipment Systems Co Ltd
Original Assignee
Hitachi Industrial Equipment Systems Co Ltd
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 Hitachi Industrial Equipment Systems Co Ltd filed Critical Hitachi Industrial Equipment Systems Co Ltd
Priority to JP2020146504A priority Critical patent/JP7361669B2/ja
Priority to PCT/JP2021/025342 priority patent/WO2022049885A1/ja
Publication of JP2022041359A publication Critical patent/JP2022041359A/ja
Application granted granted Critical
Publication of JP7361669B2 publication Critical patent/JP7361669B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • General Engineering & Computer Science (AREA)
  • Programmable Controllers (AREA)
  • Information Transfer Systems (AREA)

Description

本発明は、産業システムの制御装置の技術に関する。
産業システムの制御装置として、プログラマブル・オートメーション・コントローラ(Programmable Automation Controller:PAC)がある。PACを含む産業システムをPACシステムと記載する場合がある。PACシステムは、工場等の生産現場に設置されている産業機械等の設備、センサ、プログラマブル・ロジック・コントローラ(PLC)、および生産ライン等と、それらに対し接続される制御装置としてのPACとを有する。PACは、産業システムの制御対象装置に対し、対応付けられる入出力ポートを通じて接続され、その入出力ポートを通じて各種のデータの入出力や制御等を行う。
上記制御装置に係わる先行技術例として、特開2004-362327号公報(特許文献1)や特開2006-178818号公報(特許文献2)が挙げられる。特許文献1には、「拡張性の高い分散型監視制御システムを提供する」旨等が記載されている。特許文献2には、「ラダー言語プログラムとC言語プログラムの間でデータを高速で送受信させ、両プログラムをモーション制御に同期させる」旨等が記載されている。
特開2004-362327号公報 特開2006-178818号公報
従来技術例の産業システムの制御装置は、装置やプログラムの構成が固定的である場合、産業システムの増大や変更に対応しにくく、演算処理能力や記憶容量といった資源に関して、不足や枯渇の発生が懸念される。
そこで、特許文献1等の例にもあるように、システムの多様性や拡張性に対応できる構成が検討されている。比較例としては、同一の制御装置内で、制御アプリケーションと情報アプリケーションとの両方を実行する構成や、別々のモジュール等の装置に分けて制御アプリケーションと情報アプリケーションとを実行する構成が考えられる。
PACシステムの場合、制御装置が実行する情報処理としては、制御アプリケーションによる情報処理と、情報アプリケーションによる情報処理とが挙げられる。制御アプリケーションは、PLC制御が可能なラダー言語等で記述され、制御対象装置に対応付けられる入出力ポートを通じて制御対象装置の動作等を制御する情報処理を行うプログラムである。情報アプリケーションは、C言語等の汎用的な高級プログラミング言語で記述され、制御アプリケーションによる制御以外の、制御アプリケーションでは実現しにくい情報処理を行うプログラムである。PACシステムは、制御アプリケーションと情報アプリケーションとの間で、データを共有したい場合がある。
しかしながら、いずれの比較例でも、システムの多様性や拡張性への対応と、制御アプリケーションと情報アプリケーションとの間での適切なデータ共有との両方には対応できておらず、検討や改善の余地がある。
本発明の目的は、PACシステム等の制御装置の技術に関して、システムの多様性や拡張性への対応と、制御アプリケーションと情報アプリケーションとの間での適切なデータ共有との両方を実現できる技術を提供することである。
本発明のうち代表的な実施の形態は、以下に示す構成を有する。実施の形態の制御装置は、制御対象装置の動作を制御するための制御アプリケーションを実行する第1プロセッサを備えるメインモジュールと、第1情報アプリケーションを実行する第2プロセッサを備えるサブモジュールと、前記メインモジュールと前記サブモジュールとを接続して前記メインモジュールと前記サブモジュールとの間でデータを転送するための専用バスと、を備え、前記メインモジュールは、前記制御アプリケーションと前記第1情報アプリケーションとの間でデータを共有するための第1共有メモリを備え、前記サブモジュールは、前記制御アプリケーションと前記第1情報アプリケーションとの間でデータを共有するための第2共有メモリを備え、前記メインモジュールと前記サブモジュールは、前記制御アプリケーションと前記第1情報アプリケーションとの間でデータを共有する場合、前記第1共有メモリ、前記専用バス、および前記第2共有メモリを介して、前記データを転送する。
本発明のうち代表的な実施の形態によれば、PACシステム等の制御装置の技術に関して、システムの多様性や拡張性への対応と、制御アプリケーションと情報アプリケーションとの間での適切なデータ共有との両方を実現できる。
本発明の実施の形態1の制御装置を含む、システムの構成を示す。 実施の形態1の制御装置の構成を示す。 実施の形態1で、専用バスの実装例を示す。 実施の形態1で、入出力ポートの実装例を示す。 実施の形態1で、ハードウェアおよびソフトウェアの構成例を示す。 実施の形態1で、制御装置の主な処理のフローを示す。 実施の形態1で、時間軸上の制御例を示す。 実施の形態1で、拡張例として2つのサブモジュールを有する場合を示す。 実施の形態1の変形例における、制御装置の構成を示す。 本発明の実施の形態2の制御装置の構成を示す。 実施の形態2で、データの分割に関する構成例を示す。 実施の形態2で、入力リフレッシュ処理の場合の処理シーケンスを示す。 実施の形態2で、出力リフレッシュ処理の場合の処理シーケンスを示す。 実施の形態2および変形例で、監視動作に関する構成例を示す。 実施の形態2で、設定画面の例を示す。 本発明の実施の形態3の制御装置の構成を示す。 本発明の実施の形態に対する比較例の構成を示す。
[課題等]
以下、図面を用いながら実施の形態について詳細に説明する。まず課題等について補足説明する。PACシステムの多様化や拡張に伴い、既設の制御装置に対し、情報アプリケーションの追加やモジュールの追加によって、機能や性能を向上し、計算機の演算処理能力や記憶容量といった資源の不足や枯渇に対処することが考えられる。例えば、拡張に伴い、既設の制御装置に対し、サブモジュール等のハードウェアが追加され、そのサブモジュールに情報アプリケーションが配置される。このようなシステム構成変更により、制御装置は、異なる2台以上のハードウェアを一体として扱い、安定性やリアルタイム性が要求される制御アプリケーションと、それ以外の情報アプリケーションとを動作させる。
図17は、課題等についての補足説明図として、実施の形態に対する比較例としての制御装置の構成の概要と、各構成の利点および不利点とをまとめた表を示す。説明上、各構成を、第1比較例および第2比較例とする。
第1比較例では、制御装置内のプロセッサが制御アプリケーションの情報処理と情報アプリケーションの情報処理との両方を実行する。第1比較例では、同一の制御装置内のメモリを通じて、制御アプリケーションと情報アプリケーションとの2種類のプログラム間でのデータの共有が比較的容易に可能である。第1比較例では、物理的に同一のデバイス内であるがゆえに、制御アプリケーションと情報アプリケーションとの間のデータ共有が比較的容易に可能である。しかし、第1比較例では、システム拡張に伴ってアプリケーションの増加や変更をしたい場合、制御装置の実装の変更が必要であるため拡張が難しく、システムの多様性や拡張性の点で検討が不十分である。
第2比較例では、制御装置は、メインモジュールとサブモジュールとの組合せで構成され、メインモジュールとサブモジュールが通信で連携する。モジュールとは、演算装置であり、物理的なデバイスである。説明上、メインモジュールとは、メインプロセッサである第1プロセッサを備え、制御アプリケーションを実行する、メインとなる演算装置である。サブモジュールとは、メインプロセッサに対してのサブプロセッサである第2プロセッサを備え、情報アプリケーションを実行する、サブとなる演算装置である。
第2比較例では、システム拡張に伴って情報アプリケーションの増加や変更をしたい場合、メインモジュールの制御アプリケーションについては変更せずに、モジュールの追加や変更によって対応できるので拡張が容易であり、システムの多様性や拡張性の点で有利である。しかし、第2比較例では、制御装置がメインモジュールとサブモジュールとの物理的に異なるデバイスに分かれるので、制御アプリケーションと情報アプリケーションとの間でのデータの共有については、直接的には実現できないので難しく、そのデータ共有をいかに適切に実現するかについて検討が不十分である。
いずれの比較例でも、システムの多様性・拡張性への対応と、制御アプリケーションと情報アプリケーションとの間の適切なデータ共有との2つの観点の両方については実現できていない。実施の形態の制御装置は、これらの2つの観点の両方を実現する。実施の形態の制御装置は、デバイスとして異なるメインモジュールとサブモジュールとの間で、制御アプリケーションと情報アプリケーションとの間でのデータ共有を適切に実現できる、好適な共有メモリ構成や通信方法等を含む構成を示す。この制御装置は、メインモジュール内の第1共有メモリと、モジュール間の専用バスと、サブモジュール内の第2共有メモリとを介して、アプリケーション間での共有データを転送する通信を行う。
また、従来、PACシステムの制御装置は、少なくとも1つの制御アプリケーションが配置された演算装置を有する。この演算装置は、プロセッサやメモリといったハードウェア資源を有する。この制御装置の制御アプリケーションにおける制御に必要な資源の性能や量は、一般的なPC等の計算機の性能や資源に比べて少なくて済む場合が多い。この制御装置の役割として重要なことは、制御アプリケーションを周期的に実行することで、制御対象装置を遅延無く制御すること、PLC制御の場合にはPLCを遅延無く制御することであり、高い安定性やリアルタイム性が要求される。
この制御装置は、制御対象装置の制御に必要な情報をデータとして取得するための通信が必要である。制御装置は、その通信の際、制御対象装置に対応付けられる入出力ポート(Input/Output Port)を通じてデータを入出力する。制御装置は、その際、予め設定された入出力ポートに対し、予め設定された制御周期毎に、データを入力または出力する動作(スキャン動作やスキャン処理と記載する)を行う。このスキャン動作は、制御対象装置からのデータの読み込みと、読み込んだデータの演算と、演算したデータの書き込みとを含む。このデータ入出力は、PLC制御での入出力リフレッシュ処理に相当する。
このようなデータ入出力の通信は、制御アプリケーションの一部の情報処理とする構成、あるいは、制御アプリケーションとは別に分離した情報処理とする構成が考えられる。別にする場合の構成例としては、データ入出力の通信を、サブモジュールの一種としての入出力モジュールが行う構成が挙げられる。データ入出力の通信以外にも、特定の情報処理については、制御アプリケーションとは別に分離して、情報アプリケーションを備えるサブモジュールが行う構成が考えられる。
制御装置は、制御アプリケーションと情報アプリケーションとに分けることで、制御アプリケーションの処理の安定性やリアルタイム性を確保しつつ、それとは独立に情報アプリケーションの処理による機能拡張等を実現できる。
計算機資源の節約の観点からは、制御アプリケーションと情報アプリケーションとの両方を同一の制御装置内で実行する第1比較例が有利である。第1比較例の場合、制御アプリケーションと情報アプリケーションとの間の通信媒体としては、例えば制御装置内のメモリを利用できる。すなわち、第1比較例では、制御装置内のメモリを共有メモリとして、制御アプリケーションと情報アプリケーションとの間でのデータ共有が比較的容易に実現できる。
一方、制御装置は、制御対象装置の制御の安定性やリアルタイム性を維持するために、制御アプリケーションによる情報処理を優先する場合がある。その優先の場合、第2比較例が有利である。第2比較例では、制御アプリケーションを実行するプロセッサと、情報アプリケーションを実行するプロセッサとを別にできる。この場合、サブモジュールによる情報アプリケーションの処理は、メインモジュールによる制御アプリケーションの処理と同時に行うこともできる。第2比較例の場合、制御アプリケーションと情報アプリケーションとの間の通信媒体としては、プロセッサの外部の通信媒体、例えば外部バスや通信網を利用できる。しかし、第2比較例では、メインモジュールの制御アプリケーションとサブモジュールの情報アプリケーションとの間で、メモリや外部バスを介してどのように共有データを授受すれば適切であるか、検討不十分であった。
また、従来一般的に、同一のハードウェア内において、複数のプロセッサからメモリへアクセスする場合、または、メモリから他のメモリにアクセスする場合には、共通バスの構成や、メモリに複数のバスが接続され基板上にできるだけ短い距離で配線された構成が採られる。第1比較例でもそのような構成とすることで高速通信が可能である。一方、第2比較例を考えた場合、メインモジュールの制御アプリケーションとサブモジュールの情報アプリケーションとの間でのデータ共有のための適切でなるべく高速な通信方法等が必要である。この通信では、外部バスとして例えばベースボードのバス、あるいは汎用通信インタフェースのLAN等の利用が選択肢となる。そのため、この通信では、同一ハードウェア内のメモリ用のバスに比べて、配線距離に相当する距離が長い。言い換えると、第2比較例でのデータ共有のための通信は、通信速度や処理効率等の観点でも課題がある。第2比較例に基づいて、モジュール間およびアプリケーション間でのデータ共有の際に、なるべく高速な通信等を実現するためには、バス同士の接続や通信方法等の工夫が必要となる。実施の形態の制御装置は、その工夫に係わる構成も示す。
<実施の形態1>
図1~図9等を用いて、本発明の実施の形態1の制御装置について説明する。実施の形態1の制御装置は、PACシステムの制御装置である。実施の形態1の制御装置は、以下のような構成点を含む。この制御装置は、制御アプリケーションを実行するメインモジュールと、情報アプリケーションを実行するサブモジュールと、それらを接続する専用バスとを有し、制御アプリケーションと情報アプリケーションとの間でのデータ共有を、モジュール内の共有メモリおよびモジュール間の専用バスを介して所定の通信で実現する。また、この制御装置は、通信方法として、メインモジュールの制御アプリケーションとサブモジュールの情報アプリケーションとの間でのデータ共有の際に、データを分割せずに転送する。この分割とは、後述の実施の形態2での分割を指す。また、この制御装置は、メインモジュール内にも情報アプリケーションが配置される。また、この制御装置は、メインモジュールの制御アプリケーションとサブモジュールの情報アプリケーションとの間でのデータ共有の際に、メインモジュールを主体として、専用バスを通じたデータ転送を含む通信処理を行う。
[システム]
図1は、実施の形態1の制御装置1を含む、システムの構成を示す。図1のシステムは、産業システムおよびPACシステムの構成例を含む。図1のシステムは、1つ以上の各々の生産現場10のシステムの特に制御装置1と、クラウドコンピューティングシステム20の特にサーバ21とが、通信網9を介して接続されるシステムである。通信網9は、例えばインターネットのようなWANでもよい。PACシステムは、このようにクラウドコンピューティングシステムやIoTシステムを用いて実現されてもよい。
生産現場10は、工場等である。各生産現場10には、システムとして、産業システム、言い換えると生産システムが構築されている。生産現場10のシステムは、設備11、PLC12、センサ13、および生産ライン14等と、それらに対し接続される1つ以上の制御装置1とを有する。制御装置1の制御対象装置は、設備11、PLC12、センサ13、および生産ライン14等である。制御装置1、設備11、およびPLC12等を含むシステムを、PACシステムともいう。PACシステムは、サーバ21を含んでもよい。生産現場10のシステムにおける制御装置1を含む各要素は、例えばLAN15で接続されている。
設備11は、産業機械等である。設備11は、例えば工作機械、自動組立装置、自動搬送装置等が挙げられる。設備11は、例えば産業用のモータやコンプレッサ等の機器を含む。PLC12は、設備11等の動作を制御するプログラマブル・ロジック・コントローラである。PLC12は、制御装置1と一体でもよいし、設備11等と一体でもよい。センサ13は、生産現場10に設置された各種のセンサであり、設備11等の状態を検出・測定するためのセンサである。センサ13は、設備11等に内蔵されてもよい。センサ13の一例は温度センサや圧力センサである。生産ライン14は、設備11を用いて製造フローに従って製品を製造・生産するためのラインである。
クラウドコンピューティングシステム20は、各生産現場10のシステムについての管理システム等であり、制御装置1に対する上位システムである。クラウドコンピューティングシステム20は、管理システムの例として、MES(Manufacturing Execution System)やERP(Enterprise Resource Planning)等のシステムや機能を実現する。クラウドコンピューティングシステム20は、サーバ21、データベース(DB)、他の通信機器等を有する。サーバ21は、複数のサーバコンピュータで構成されるクラウドサーバであり、仮想サーバないし仮想マシンによるサービスを提供する。サーバ21は、通信網9およびLAN15を介して制御装置1と通信する。サーバ21は、各生産現場10の制御装置1から、生産システムや制御装置1に係わる各種のデータを収集・取得し、DBに格納・蓄積する。サーバ21は、各生産現場10の制御装置1に対し、制御・管理用の情報を与える。サーバ21は、DBのデータを用いて分析や可視化等の処理を行う。この処理は、生産システムの生産状況の分析や可視化等である。サーバ21は、分析や可視化のデータを、DBに格納し、ユーザのクライアント端末22等に対し提供する。
ユーザは、管理者等であり、クライアント端末22を操作し、管理作業等を行う。クライアント端末22は、設定端末としても機能する。クライアント端末22は、通信網9やLAN15を介して制御装置1と接続されてもよい。クライアント端末22は、一般的なPCやスマートフォン等で実現できる。クライアント端末22は、ユーザによる操作入力を受け付け、表示画面に画像を表示する。ユーザは、クライアント端末22の表示画面で、設定情報や、分析や可視化の情報の確認が可能である。クライアント端末22は、ユーザによる指示または予めの設定に基づいて、サーバ21や制御装置1に対し、指示や設定を行うことができる。
LAN15および通信網9上では、制御装置1やサーバ21によって、適宜に制御・管理用の情報通信が行われる。この情報通信は、制御アプリケーションによる制御対象装置に対するデータ入出力のスキャン処理の際の通信とは別である。なお、各種の通信のインタフェースは、有線でも無線でもよい。サーバ21は、生産システムの管理とともに、制御装置1のシステム構成管理を行ってもよい。その場合、サーバ21は、制御装置1毎に、構成要素のモジュールの情報を管理・保持する。サーバ21は、各モジュールに配置される各種のアプリケーションを管理・保持してもよい。
制御装置1は、プログラマブル・オートメーション・コントローラ(Programmable Automation Controller:PAC)である。制御装置1は、言い換えると、制御システムであり、産業システムやPACシステムのコントローラである。PACである制御装置1は、PLC12の制御を通じて設備11等の動作の制御を行い、センサ13等を通じて各種のデータの収集を行う。制御装置1は、後述の図2の複数のモジュールの組合せで構成される。制御装置1は、設備11等の制御対象装置に対し、入出力ポート(後述の図4)を通じて、所定の通信インタフェースでの通信で接続される。制御装置1の制御アプリケーションは、制御対象装置に対応付けられる入出力ポートを通じて、制御対象装置に対するデータ入出力のスキャン動作を行い、これによって生産や制御に係わる情報を取得する。
PACシステムの構成は、図1のクラウドコンピューティングシステム20を含む構成に限らず可能である。生産現場10に制御装置1およびサーバ21が設けられた構成等でもよい。クラウドコンピューティングシステム20は、外部の他のシステムやサービス(例えばインターネット上のWebサービス)との連携や利用を行ってもよい。
[制御装置]
図2は、実施の形態1の制御装置1の構成を示す。図2の制御装置1は、少なくともメインモジュール101とサブモジュール102とを含む複数のモジュールの組合せで構成される。また、制御装置1は、モジュール間を接続する専用バス111を有する(後述の図3)。専用バス111にはメインモジュール101およびサブモジュール112が接続されている。なお、メインやサブの呼称や、第1、第2等の呼称は、説明の便宜上のものである。各モジュールは、言い換えると、演算装置、計算機、または情報処理装置である。各モジュールは、プロセッサ、メモリ、および通信インタフェース装置等のハードウェアを備える(後述の図5)。なお、制御装置1は、他の種類のモジュールとして、電源モジュールや入出力モジュール等を有してもよい。また、少なくともメインモジュール101は、LAN15にも接続される。
制御装置1は、少なくともメインモジュール101を備え、さらに、メインモジュール101に、1台以上のサブモジュール102が拡張装置として接続可能である。図2の例では、サブモジュール102を1台とするが、必要に応じて2台以上とすることもできる。サブモジュール102は、システムの多様性や拡張性の必要に応じて増設や減設が可能である(後述の図8)。なお、図2の例でサブモジュール101が減設された場合、制御装置1はメインモジュール101のみで構成される。
メインモジュール101は、言い換えると第1演算装置であり、プロセッサとしてメインプロセッサを有し、メインプロセッサによって、制御アプリケーションCPと、第2情報アプリケーションAP2とを実行する。サブモジュール102は、言い換えると第2演算装置であり、プロセッサとしてサブプロセッサを有し、サブプロセッサによって、第1情報アプリケーションAP1を実行する。制御アプリケーションCPは、メインモジュール101に配置される。情報アプリケーションは、メインモジュール101とサブモジュール102とのいずれにも配置可能であり、本例では両方のモジュールに配置されている。
また、制御装置1のモジュール内には、制御アプリケーションCPと第1情報アプリケーションAP1とのデータ共有を可能とする共有メモリSMとして、第1共有メモリSM1および第2共有メモリSM2が配置されている。メインモジュール101内には第1共有メモリSM1(「共有メモリB」)が配置され、サブモジュール102内には第2共有メモリSM2(「共有メモリC」)が配置されている。メインモジュール101の制御アプリケーションCPと、サブモジュール102の第1情報アプリケーションAP1との間では、各共有メモリSM(SM1,SM2)および専用バス111を介して、共有データが授受される。
また、実施の形態1の制御装置1は、メインモジュール101内に、制御アプリケーションCPに加え、第2情報アプリケーションAP2(「情報プログラムA」)が配置されており、それに対応して、制御アプリケーションCPと第2情報アプリケーションAP2との間のデータ共有のための第3共有メモリSM3(「共有メモリA」)を備える。制御アプリケーションCPと第2情報アプリケーションAP2の間では、第3共有メモリSM3を通じて共有データが授受される。
図2では、メインモジュール101の第1共有メモリSM1と、サブモジュール102の第2共有メモリSM2との間には、通信媒体として、モジュール間の専用バス111を有する。第1共有メモリSM1と第2共有メモリSM2は、専用バス111を介して同期する。メインモジュール101は、第1共有メモリSM1と第2共有メモリSM2との間で、専用バス111を介して、共有データの入出力(言い換えると送信・受信)を行う。メインモジュール101は、制御アプリケーションCPから共有データを第1情報アプリケーションAP1に出力する場合には、第1共有メモリSM1に格納したデータを、専用バス111を通じて、データ転送202によって、第2共有メモリSM2に格納する。メインモジュール101は、第1情報アプリケーションAP1から共有データを制御アプリケーションCPに入力する場合には、第2共有メモリSM2に格納されたデータを、専用バス111を通じて、データ転送201によって、第1共有メモリSM1へ格納する。
メインモジュール101内では、メインモジュール101が持つ記憶装置(例えばメインメモリ)の記憶領域の資源に基づいて、第1共有メモリSM1および第3共有メモリSM3が設定される。サブモジュール102内では、サブモジュール102が持つ記憶装置(例えばメインメモリ)の記憶領域の資源に基づいて、第2共有メモリSM2が設定される。ユーザは、設定画面で共有メモリのサイズ等を設定可能である。なお、本例では、第1共有メモリSM1と第2共有メモリSM2とで同じサイズが設定されている。これにより、資源有効活用や処理効率化ができる。これに限らず、各共有メモリのサイズを異ならせる設定も可能である。また、予め、モジュール内に固定的に所定の記憶装置が共有メモリとして設けられた構成としてもよい。
第1共有メモリSM1は、記憶領域において、書き込みエリアA11と、読み出しエリアA12とを有する。第2共有メモリSM2は、記憶領域において、書き込みエリアA21と読み出しエリアA22とを有する。第3共有メモリSM3は、記憶領域において、書き込みエリアA31と、読み出しエリアA32とを有する。各モジュールは、それらの各エリアのアドレスやサイズ等を設定する。
書き込みエリアA11および書き込みエリアA21は、制御アプリケーションCPから第1情報アプリケーションAP1へ出力するためのデータが格納される。読み出しエリアA12および読み出しエリアA22は、制御アプリケーションCPが第1情報アプリケーションAP1から入力するためのデータが格納される。書き込みエリアA21は、書き込みエリアA11から転送されたデータが格納される。読み出しエリアA22は、読み出しエリアA12へ転送するためのデータが格納される。
書き込みエリアA31は、制御アプリケーションCPから第2情報アプリケーションAP2へのデータが格納される。読み出しエリアA32は、第2情報アプリケーションAP2から制御アプリケーションCPへのデータが格納される。制御アプリケーションCPは書き込みエリアA31に共有データを書き込み、第2情報アプリケーションAP2は書き込みエリアA31から共有データを読み出す。第2情報アプリケーションAP2は読み出しエリアA32に共有データを書き込み、制御アプリケーションCPは読み出しエリアA32から共有データを読み出す。
アプリケーション間の共有データは、各プログラムが扱う変数値等が挙げられる。変数値は、例えば、制御対象装置の状態や制御内容を表す情報である。授受される共有データの例は、変数名と変数値とのセットである。
図2の各モジュール内には、後述の図4の入出力ポートを有する。各モジュールは、入出力ポートを用いて、制御対象装置との接続や、専用バス111を通じた接続が可能である。入出力ポートを含む通信インタフェース装置の部分は、メインモジュール101やサブモジュール102とは別種のモジュールである入出力モジュールとして実装されてもよい。専用バス111は、入出力ポートを介さないものとして実装されてもよい。
図2の全モジュールは、基本的なハードウェア構成、例えば資源の規模等の構成が同じでもよいし、異なってもよい。例えば、メインモジュール101の資源の規模は、重要な制御アプリケーションCPのためにサブモジュール102よりも大きい構成でもよい。
実施の形態1では、情報アプリケーションは、制御アプリケーションCPとの関係に応じて、メインモジュール101内に配置されるもの、例えば第2情報アプリケーションAP2と、サブモジュール102内に配置されるもの、例えば第1情報アプリケーションAP1とが混在してもよい。情報アプリケーションに応じて配置するモジュールを選択可能である。メインモジュール101内に配置する場合、データ共有の通信媒体としてメインモジュール101内のメモリが使用でき、サブモジュール102内に配置する場合、データ共有の通信媒体として専用バス111およびサブモジュール102内のメモリが使用できる。実施の形態1では、情報アプリケーションをメインモジュール101内に配置する場合とサブモジュール102内に配置する場合との両方に対応でき、通信媒体の変更にも容易に対応できる。
制御アプリケーションCPは、自分の情報処理のために、メインモジュール101の記憶装置(例えばメインメモリ)の一部を、ワークメモリ、言い換えると制御アプリケーション用メモリとして使用する。このワークメモリのサイズ等についても、資源の範囲内で設定可能である。
各アプリケーションは、予め対象モジュール内にインストールされていてもよいし、所定のプログラムソースから配信されてもよい。例えば、図1のサーバ21は、システム構成変更等の必要に応じて、プログラム配布サーバとして、通信網9を介して、制御装置1の各モジュールに、各アプリケーションを配布してもよい。例えば、図2のメインモジュール101にサブモジュール102が追加される場合に、サーバ21からそのサブモジュール102に情報アプリケーションを配布してインストールしてもよい。プログラムのバージョン更新がある場合、サーバ21から更新プログラムを配布してもよい。
各プログラムは、非一過性のコンピュータ読み取り可能な記憶媒体、例えばモジュールに装着されるメモリカード等の記憶媒体を用いてもよい。各プログラムは、より詳細には、複数のプログラムモジュールから構成されてもよい。
説明上、「プログラム」または「アプリケーション」、あるいは「機能」等を主語として処理等を説明する場合がある。この処理等の主体は、ハードウェアとしては、プロセッサ、あるいは対応するコントローラ等である。プロセッサは、メモリや通信インタフェースを適宜に用いながら、プログラムに従った処理を実行することで、所定の機能や処理部を実現する。また、プログラム処理は、FPGA等の回路でも実装可能である。その場合、処理の主体はその回路である。
制御装置等のメモリには、データや情報が所定の形式・構造で格納される。メモリの構造やデータ・情報の形式・構造については限定しない。例えば、構造化データでもよいし非構造化データでもよい。また、各装置やデータは、管理上、識別情報を用いて識別される。識別情報の形式についても限定しない。例えば、ID、名、番号等が用いられる。
[制御用通信]
制御装置1は、メインモジュール101と各サブモジュール102との間で制御用に通信し、互いに情報を授受してもよい。制御用の通信は、専用バス111とは別に、LAN15等を用いてもよい。授受する情報は、例えば、各モジュールのハードウェアやソフトウェアの資源の情報が挙げられる。例えば、メインモジュール101は、自分および各サブモジュール102から、メモリやアプリケーション等の情報を収集して、構成や状態を把握する。また、サーバ21は、制御装置1と通信してそれらの情報を取得してシステム構成情報として把握する。
[システム構成の設定]
予め、制御装置1のシステム構成が構築・設定可能である。システム構成の設定は、ユーザによるクライアント端末22の操作に基づいて、サーバ21から制御装置1に対し可能である。制御装置1のシステム構成は、サブモジュール102の有無や台数、各モジュールに配置される情報アプリケーション、各モジュールのプロセッサやメモリ等の資源、各モジュールの使用する入出力ポート、各モジュールに接続される通信媒体、等が挙げられる。制御装置1は、予め備えるハードウェア資源の範囲内で、アプリケーション毎に使用できるメモリ等の資源を設定できる。各モジュールは、使用できる資源の範囲内で、1つ以上のアプリケーションを配置できる。
実施の形態1の制御装置1は、システム構成変更が柔軟かつ容易に可能である。システム構成変更は、プロセッサやメモリ等の資源の増減と、情報アプリケーションの追加や変更と、情報アプリケーションの配置先モジュールの追加や変更との少なくとも1つが含まれる。ユーザは、制御装置1やサーバ21が提供する設定機能を用いて、システム構成変更の作業が容易に可能である。
メインモジュール101またはサーバ21の少なくとも一方は、制御装置1のシステム構成に関するシステム構成情報を管理・保持する。サーバ21やメインモジュール101は、ユーザ・インタフェースのために、Webサーバプログラム等を有し、これによって、システム構成の設定や確認のためのGUIを伴う設定画面を提供する。ユーザは、クライアント端末22に表示される設定画面を通じて、システム構成情報を設定・確認できる。メインモジュール101やサーバ21は、クライアント端末22からの要求(例えば設定指示)を受け付けて応答を送信する。同様に、サブモジュール102は、Webサーバプログラムを備えてもよい。
また、以下のような設定も可能である。メインモジュール101とサブモジュール102は、ハードウェア資源(例えばメモリや入出力ポート)の共有利用も可能である。共有利用する資源は、モジュール内の資源でもよいし、モジュール外に接続される資源でもよい。例えば、各サブモジュール102がメインモジュール101の資源を共有するか否か、および共有する場合の資源の量等が設定可能である。
[共有メモリの設定]
図2の各共有メモリは、モジュールが備える記憶装置(図5のメモリ)の資源の最大範囲内で確保される。各モジュールのプロセッサは、例えば電源投入に基づいた起動時に、システム構成情報や設定情報を確認し、各共有メモリのサイズ等の設定を行う。各共有メモリのサイズ等は、アプリケーション等に応じて、予め設定情報に設定できる。
[専用バス]
図3は、専用バス111に関する実装例を示す。図3の(A)は、第1実装例である。制御装置1の外観の例としては、図示のように、モジュール毎にボックス形状を有する。各モジュールには、モジュール間の相互接続のためのコネクタを有する。メインモジュール101はコネクタ301を有し、サブモジュール102はコネクタ302を有する。相互接続するモジュール間では、コネクタ同志が接続される。例えばメインモジュール101のコネクタ301と、サブモジュール102のコネクタ302とが、接続部品303を通じて接続される。これらのコネクタおよび接続部品には、専用バス111が実装されている。専用バス111のインタフェースは、例えばシリアル・バス・インタフェースである。本例に限らず、モジュール側面に設けられたコネクタ同志が接続される構成等でもよい。また、専用バス111は、例えばメインモジュール101と第1サブモジュールとの第1専用バス、および、メインモジュール101と第2サブモジュールとの第2専用バスといったように、複数の専用バスとして設けられてもよい。
図3の(B)は別の第2実装例である。メインモジュール101やサブモジュール102とは別に、ベースモジュールであるベースボード310を有する。ベースボード310には、複数のコネクタ311を有し、コネクタ311間には専用バス111が実装されている。ベースモジュール310のコネクタ311には、メインモジュール101のコネクタやサブモジュール102のコネクタが接続可能である。メインモジュール101と各サブモジュール102は、ベースボード310内の専用バス111を介して相互接続される。なお、ベースボード310を用いずに、例えばイーサネット(登録商標)等の汎用通信インタフェースで接続する構成も可能である。
専用バス111は、PIO(Programmed I/O)方式のバスとしてもよいし、モジュールにプリントされたバスとしてもよい。
各モジュールは、専用バス111を介する通信のために、図示しない専用バス制御インタフェース装置を有する。この専用バス制御インタフェース装置(言い換えると通信回路)は、例えばFPGAの回路で実装される。この専用バス制御インタフェース装置は、専用バス111に対するデータ転送のための情報処理や駆動を行う。
[入出力ポート]
図4は、入出力ポートに関する実装例を示す。図4の(A)は第1実装例である。この実装例では、メインモジュール101内に入出力ポート410を有し、サブモジュール102内に入出力ポート420を有する。入出力ポート410および入出力ポート420は、それぞれ、複数のポートを有してもよい。ポートは、入力、出力、または入出力両方が可能な通信ポートである。本例では、入出力ポート410の一部のポートは、制御対象装置400(例えば図1のPLC12)と通信媒体430を通じて接続されている。通信媒体430はLAN15でもよい。入出力ポート410の他の一部のポートは、専用バス111を介して、サブモジュール102の入出力ポート420のポートと接続されている。入出力ポート410,420間の通信媒体は、専用バス111に限らず、専用の通信網、例えばイーサネット(登録商標)等のLAN15としてもよい。入出力ポートには、周辺機器等が接続可能である。周辺機器は、図1のセンサ13でもよいし、外部記憶装置(例えばHDD)でもよい。資源の必要に応じて外部記憶装置の増減が可能である。
図4の(B)は別の第2実装例である。この実装例では、メインモジュール101内には入出力ポートを備えず、1つのサブモジュール102に入出力ポート420を備える。このサブモジュール102は、入出力モジュールとして機能する。このサブモジュール102に備える情報アプリケーションは、入出力ポートを用いたデータ入出力等の通信処理を行うアプリケーションとしてもよい。メインモジュール101は、専用バス111またはLAN15を介してサブモジュール102と接続され、サブモジュール102の入出力ポート420を利用する。入出力ポート420の一部のポートは、制御対象装置400と通信媒体430を通じて接続されている。サブモジュール102の第1情報アプリケーションAP1は、例えば制御対象装置400に対するデータ入出力の処理を行う。なお、メインモジュール101およびサブモジュール102以外のモジュールを入出力モジュールとして設けてもよい。
制御対象装置400や周辺機器と入出力ポートとの対応関係は、任意に設定可能であり、一対一、一対多、多対多、等が可能である。また、一部の入出力ポートは、制御アプリケーションCPと情報アプリケーションとで共有利用されてもよい。
[ハードウェアおよびソフトウェア]
図5は、制御装置1におけるハードウェアおよびソフトウェアの構成例を示す。メインモジュール101は、プロセッサ501、メモリ502、通信インタフェース装置503等を備え、それらが内部バス504を介して相互に接続されている。メインモジュール101やサブモジュール102は、その他図示しない操作装置や電源装置等を備える。
プロセッサ501は、メインプロセッサ、メインCPUであり、CPU、ROM、RAM等で構成される。メモリ502は、1つ以上の記憶装置で構成される。記憶装置は、揮発性記憶装置や不揮発性記憶装置がある。メモリ502は、例えば第1記憶装置であるメインメモリと、第2記憶装置であるFPGA内部メモリとを有する。プロセッサ501は、メモリ502に格納されているプログラムおよび設定情報521に基づいた処理の実行によって、制御アプリケーションCPや第2情報アプリケーションAP2を実現する。例えばEPROM内には、制御アプリケーションCP等のプログラムが格納されている。プロセッサ501は、EPROM内の制御アプリケーションCPのプログラムをメインメモリ上に読み出してそのプログラムに従った処理を実行する。プロセッサ501は、プログラムおよび設定情報521に基づいて、メモリ502内に第1共有メモリSM1や第3共有メモリSM3を設定する。
サブモジュール102は、プロセッサ511、メモリ512、通信インタフェース装置513等を備え、それらが内部バス514を介して相互に接続されている。プロセッサ511は、サブプロセッサ、サブCPUであり、CPU、ROM、RAM等で構成される。メモリ512は、1つ以上の記憶装置で構成される。メモリ512は、例えば第1記憶装置であるメインメモリと、第2記憶装置であるFPGA内部メモリとを有する。プロセッサ511は、メモリ512に格納されているプログラムおよび設定情報522に基づいた処理の実行によって、第1情報アプリケーションAP1を実現する。プロセッサ511は、プログラムおよび設定情報522に基づいて、メモリ512内に第2共有メモリSM2を設定する。
通信インタフェース装置503,513は、通信網9、LAN15、および専用バス111と接続され、それらの各通信インタフェースに対応した通信の情報処理や駆動を行う。これに限らず、各モジュールは、通信網9、LAN15、および専用バス111等の通信インタフェース毎に、通信インタフェース装置を備えてもよい。各モジュールは、その他、周辺インタフェース装置や入出力インタフェース装置等を備えてもよい。周辺インタフェース装置には適宜に周辺機器が接続され、入出力インタフェース装置には適宜に入力機器や出力機器が接続される。各モジュールに備える、通信インタフェース、入出力インタフェース、周辺インタフェース、および入出力ポート等は、それぞれ1つ以上のデバイスで構成され、同種のインタフェースでもよいし、異種のインタフェースでもよい。モジュールの一部の機能は、FPGA(Field-Programmable Gate Array)やASIC(Application Specific Integrated Circuit)等で実装されてもよい。例えば通信インタフェース装置503,513の一部は、FPGAの回路で実装される。
各モジュールは、その他、上記ハードウェア等に基づいて実現されるOSやミドルウェア等を備え、そのOS等の上で、制御アプリケーションCPや情報アプリケーションを並列に動作させてもよい。メインモジュール101のOSは、例えばリアルタイム汎用OSであり、このOSは各プログラムの実行タイミングを制御してもよい。
プロセッサは、1つ以上のデバイスで構成される。プロセッサは、典型的にはCPUのようなマイクロプロセッサで構成される。プロセッサは、GPU等で構成されてもよい。プロセッサは、シングルコアでもよいしマルチコアでもよい。マルチコアは、複数のコアを独立に動作させるものである。1つのコアは、少なくとも1つのプログラムの処理を実行する。プロセッサは、例えば制御アプリケーションCPの処理と情報アプリケーションの処理とを周期的に実行してもよい。マルチコアの場合、例えば第1コアが制御アプリケーションCP、第2コアが情報アプリケーションの処理を実行してもよい。各アプリケーションに優先度等が設定されてもよい。プロセッサは、その優先度等に従ってプログラム実行制御をしてもよい。例えば、制御アプリケーションCPは、最優先として設定され、十分な資源を用いて優先的に実行される。
[アプリケーションおよび言語]
制御アプリケーションCPと情報アプリケーション(図2のAP1,AP2)とでは、言語や役割が異なる。実施の形態1では、それらの区別として、PLC制御が可能なラダー言語等で記述されたものを制御アプリケーション(制御プログラムともいう)と記載し、それ以外のアプリケーションとして汎用的なC言語等の高級プログラミング言語で記述されたものを情報アプリケーション(情報プログラムともいう)として記載している。PACシステムの制御装置1において、制御アプリケーションCPはメインで重要な機能である。それに対し、情報アプリケーション(AP1,AP2)は、制御アプリケーションCPを支援等するサブとしての機能という位置付けである。メインモジュール101のプロセッサは、例えばラダー言語で記述された制御アプリケーションCPの情報処理を実行する。サブモジュール102のプロセッサは、例えばC言語で記述された第1情報アプリケーションAP1の情報処理を実行する。
ラダー言語(ラダー・ロジックやラダー・ダイアグラム等と呼ばれる場合もある)は、論理回路を記述する方式であり、多くのPLCで採用されているプログラム言語である。PACシステムでのPLCのシーケンス制御には、ラダー言語等が使用される。国際標準規格IEC61131-3では、PLCのプログラミング言語として、5つの言語が規定されている。その5つの言語は、ラダー・ダイアグラム(LD)、ファンクション・ブロック・ダイアグラム(FBD)、ストラクチャード・テキスト(ST)、インストラクション・リスト(IL)、およびシーケンシャル・ファンクション・チャート(SFC)である。制御アプリケーションCPは、ラダー言語以外も適用可能である。
制御アプリケーションCPの情報処理は、前述のように、制御対象装置の制御のために、安定性やリアルタイム性が要求される。制御装置1は、その制御と関連して、複雑な演算や、例えばMES等のシステムとの情報送受信、等が必要となる場合がある。このような情報処理は、PLC制御用の言語のみでは実装が難しい場合がある。そこで、このような情報処理は、C言語等を用いて、情報アプリケーションとして実装し、制御アプリケーションと情報アプリケーションとを連携させる構成が考えられる。この情報アプリケーションの情報処理は、制御アプリケーションの情報処理を妨げないことが望ましい。
情報アプリケーションの他の例は、制御装置1の外部装置とのデータ入出力等の通信を、制御アプリケーションとは分離した情報処理として行うプログラムである。この情報アプリケーションは、制御アプリケーションとは異なり、制御対象装置に対応付けられる入出力ポートへのスキャン動作を行わない。情報アプリケーションの他の例は、制御アプリケーションによって取得されたデータを用いて、分析や可視化等の処理を行うプログラムである。
高級プログラミング言語は、機械語等の低級プログラミング言語に比べて、記述の抽象度合いが高いプログラム言語であり、C言語に限らず、Java(登録商標)言語等が挙げられる。高級プログラミング言語では、メモリ制御や入出力制御等、ハードウェアに依存した低水準の処理・操作を記述する必要が無い。
実施の形態1では、例えば第1情報アプリケーションAP1におけるC言語等による命令のレベルは、第2共有メモリSM2や専用バス111等のハードウェアにおけるデータの読み書きや転送の命令のレベルとは異なる。情報アプリケーションは、共有メモリや専用バス111への直接的なアクセスはできない。そのため、情報アプリケーションと共有メモリとの間では、専用の関数等を用いた変換を介在する。例えば、サブモジュール102のプロセッサは、第1情報アプリケーションAP1と第2共有メモリSM2との間でデータを読み書きする際には、予め定義された専用の関数を用いて、C言語の命令と低水準の命令との間で変換する。例えば第1情報アプリケーションAP1のC言語における共有データの送信の命令は、専用の関数の呼び出しおよび実行によって、第2共有メモリSM2の読み出しエリアA22のアドレスへのデータの書き込みの命令に変換される。
[処理フロー]
図6は、実施の形態1の制御装置1における主な処理のフローを示す。図6のフローは、ステップS1~S4を有する。図6のフローは、一般的なPLCのリフレッシュ処理を含むフローである。このリフレッシュ処理は、ステップS1の入力リフレッシュ処理と、ステップS3の出力リフレッシュ処理とを含む。
本フローの開始は、PLC12(図1)のRUN開始に相当する。RUN開始すると、まず、制御装置1におけるメインモジュール101のプロセッサ(図5)は、ステップS1で、入力リフレッシュ処理を行い、入力情報(言い換えると入力データ)を取り込む。この処理は、入出力ポートを通じて、制御対象装置(例えばPLC12)から入力情報を取り込むことを含む。ステップS2で、メインモジュール101のプロセッサは、取り込んだ入力情報を使用して、プログラム、ここでは制御アプリケーションCPによる演算等を実行する。ステップS3で、メインモジュール101のプロセッサは、ステップS2で得た演算結果を、出力リフレッシュ処理を行うことで、外部に反映する。この処理は、入出力ポートを通じて、制御対象装置(例えばPLC12)へ出力情報(言い換えると出力データ)を送信して反映することを含む。
ステップS3の出力リフレッシュ処理が完了した後、ステップS4で、メインモジュール101のプロセッサは、ユーザからのRUN停止要求があるか否かを確認する。確認の結果、RUN停止要求がある場合(Y)には、本フローの処理を終了する。RUN停止要求が無い場合(N)には、すなわち継続の場合には、ステップS1に戻り、同様の繰り返しとなる。上記処理は、時間軸上で所定の周期で繰り返し行われる(後述の図7)。
[制御装置-データ転送]
図2において、図6のフローとの関連を説明する。図6の制御アプリケーションCPによる制御対象装置との間のデータ入出力のリフレッシュ処理に、図2のようなモジュール間での共有データの転送を含む処理が追加される。図2で、データ転送201,202は、制御アプリケーションCPと第1情報アプリケーションAP1との間で共有データを授受する場合のデータ転送である。データ転送201は、メインモジュール101がサブモジュール102から共有データを読み出して受信・入力する場合のデータ転送である。データ転送202は、メインモジュール101がサブモジュール102へ共有データを送信・出力して書き込む場合のデータ転送である。データ転送201を含む入力処理は、図6のステップS1の入力リフレッシュ処理で行うこともできるし、それとは別の時間で行うこともできる。データ転送202を含む出力処理は、図6のステップS3の出力リフレッシュ処理で行うこともできるし、それとは別の時間で行うこともできる(後述の図7)。
以下には処理の一例を示す。入力時のデータ転送201の場合には以下の処理例が挙げられる。メインモジュール101の第1共有メモリSM1の読み出しエリアA12の更新は、ステップS1の入力リフレッシュ処理によって行われる。メインモジュール101は、この入力リフレッシュ処理の時間に、サブモジュール102内の第2共有メモリSM2の読み出しエリアA22のデータを、専用バス111を介して、第1共有メモリSM1内の読み出しエリアA12に高速転送する。この転送に応じて、第1共有メモリSM1内の読み出しエリアA12のデータが、制御アプリケーションCPに展開される。制御アプリケーションCPは、読み出しエリアA12のデータを取得する。
出力時のデータ転送202の場合には以下の処理例が挙げられる。メインモジュール101の第1共有メモリSM1の書き込みエリアA11の更新は、ステップS3の出力リフレッシュ処理によって行われる。メインモジュール101は、制御アプリケーションCPから第1共有メモリSM1の書き込みエリアA11にデータを書き込む。メインモジュール101は、書き込みエリアA11のデータを、専用バス111を介して、サブモジュール102の第2共有メモリSM2の書き込みエリアA21に高速転送する。書き込みエリアA21のデータは、第1情報アプリケーションAP1に展開される。第1情報アプリケーションAP1は、書き込みエリアA21のデータを取得する。
第1情報アプリケーションAP1から第2共有メモリSM2へのアクセスの際には、前述のように第1情報アプリケーションAP1から専用の関数を呼び出して実行することで、第2共有メモリSM2からのデータの取得や第2共有メモリSM2へのデータの格納が可能である。例えば、第1情報アプリケーションAP1から共有データを読み出しエリアA22に格納する際には、上記関数によって変換されたデータが、上記関数によって得られるアドレスに書き込まれる。上記関数は、第1情報アプリケーションAP1から呼び出されるため、第2共有メモリSM2へのアクセスのタイミングは任意のタイミングとなる。なお、各モジュールにおける専用バス111上でのデータ転送の主体や対応する機構については限定しないが、例えばプロセッサとは別に、FPGAの回路で実装された通信回路を用いることができる。
[時間軸上の制御例]
図7は、メインモジュール101およびサブモジュール102における時間軸上の情報処理の制御例を示す。予め、制御アプリケーションCPにおいて、制御周期(処理周期やリフレッシュ周期ともいう)CCが定められている。制御周期CCは、第1時間T1であるスキャン時間と、第2時間T2である待機時間とを有する。スキャン時間は、スキャン処理に要する時間である。待機時間は、スキャン時間以外の時間である。待機時間は、例えば制御アプリケーションCPがハードウェア資源を利用していない時間である。
例えば、メインモジュール101のプロセッサは、制御周期CC毎のタイミングにおいて、第1時間T1であるスキャン時間に、制御アプリケーションCPによるスキャン処理を行い、第2時間T2である待機時間に、第2情報アプリケーションAP2による処理等を行ってもよい。情報アプリケーションは、制御アプリケーションCPの制御周期CCとは異なる処理周期で動作させることもできるし、必ずしも周期的に動作させなくてもよい。
図7の例では、メインモジュール101は、制御周期CCにおいて、時点t1から時点t2までの第1時間T1をスキャン時間として、制御アプリケーションCPによるスキャン動作を、制御対象装置に対応付けられる入出力ポートに対して行う。スキャン動作は、データの入力701と、データに対する演算702と、データの出力703とを有する。また、メインモジュール101は、例えば、時点t2から時点t3までの第2時間T2を待機時間として、第2情報アプリケーションAP2による情報処理を行う。
また、メインモジュール101は、第1情報アプリケーションAP1とのデータ共有の通信を含む処理については、スキャン時間内(入力701や出力703)に行ってもよいし、図示のデータ共有704のように、スキャン動作後の待機時間に行ってもよい。例えば、メインモジュール101は、スキャン時間での制御アプリケーションCPによる演算702の終了後に得られるデータとして制御対象装置に関する変数値等の情報を、その後の待機時間に、サブモジュール102の第1情報アプリケーションAP1に送信する。メインモジュール101は、同様に、制御周期CC毎に得られる異なる情報をサブモジュール102に送信できる。上記データ共有704の処理が待機時間に行われる場合、制御アプリケーションCPの処理時間が独立に確保でき、リアルタイム性等の点では好適である。
一方、サブモジュール101は、制御周期CCに対応する時間において、例えば第1時間T1に、第1情報アプリケーションAP1による情報処理を行う。また、サブモジュール101は、制御アプリケーションCPとのデータ共有の通信を含む処理については、いずれのタイミングで行ってもよいが、例えば、メインモジュール101の待機時間と合わせた時間で行ってもよい。
上記制御例によって、制御アプリケーションCPによる制御の信頼性を確保しつつ、第1情報アプリケーションAPによる機能も実現できる。上記制御例に限らず、例えば、メインモジュール101は、複数のプロセッサを持つ場合、あるいはマルチコアのプロセッサを持つ場合、スキャン時間中に制御アプリケーションCPの処理と他の処理とを並列に実行してもよい。
なお、制御アプリケーションCPによるスキャン処理は、一般に、情報アプリケーションによる情報処理に比べて高速である。例えば、ある一定の時間において、情報アプリケーションは、1回のデータ更新処理を行うとする。それに対し、同じ時間において、制御アプリケーションCPは、制御対象装置の入出力ポートに対するデータ入出力の処理を、繰り返し、複数回行うことが可能である。
[データ共有設定情報]
アプリケーション間でのデータ共有を行う場合、各アプリケーションは、データ共有に必要な情報を適宜に設定し、保持・参照してもよい。この情報(データ共有設定情報とする)は、例えば、共有相手のモジュールやアプリケーションのID、使用する共有メモリや専用バス111のID、共有データのID、等がある。専用バス111は、複数のバスがある場合には、使用するバスをバス番号で指定可能としてもよい。また、変数値等のデータ項目毎に、共有対象とするか否かや、共有するアプリケーションを設定可能としてもよい。共有メモリに格納される共有データの位置やサイズは、共有メモリのメモリ空間のアドレスやデータ長で管理される。
図2の各モジュールの各アプリケーションは、データ共有設定情報に基づいて、コマンド等を用いて、共有データの入出力の指定を行うことができる。例えば、制御アプリケーションCPは、第1情報アプリケーションAP1との間で、所定の変数値を共有データとして出力する場合、所定のコマンドを用いて、第1共有メモリSM1の書き込みエリアA11にその共有データを書き込む。これに応じて、メインモジュール101のFPGAの回路は、第1共有メモリSM1から専用バス111を介して第2共有メモリSM2へのデータ転送202を自動的に行う。
各モジュールは、各アプリケーションからの共有データに関する入力や出力のためのコマンドを受け付け、コマンドに従って、ハードウェアのレベルでの共有メモリのデータの読み書きや、専用バス111上のデータ転送等を処理する。例えば、出力・送信のコマンドである場合、引数として、送信元アプリケーションID、送信先アプリケーションID等を有する。モジュールは、コマンドでの入出力指定の内容から、どの共有メモリのどのエリアを使用するかや専用バス111の使用有無等を把握する。
また、共有データに関するアクセス権を設定可能としてもよい。例えば、制御アプリケーションCPが、ある変数を、情報アプリケーションとの共有データとする場合に、その情報アプリケーションからのその共有データへのアクセスに関するアクセス権を設定できる。すなわち、共有データ毎に、読み書きや送信・受信が許可されるアプリケーションが設定できる。例えば、変数Aは、全アプリケーションで読み書きや送信・受信が許可される。変数Bは、制御アプリケーションCPのみが変数値の更新ができ、情報アプリケーションは変数値の参照のみが許可される。これにより、重要なデータについては保護でき、複数のアプリケーションによる競合や待ち時間の発生も防止でき、制御アプリケーションCPのリアルタイム性をより確保できる。
[システム拡張例]
図8は、実施の形態1でのシステム拡張例として、メインモジュール101に、専用バス111を介して、複数、例えば2台のサブモジュール102が接続された場合の構成例を示す。本例では、2つのサブモジュール102として、サブモジュール102Xとサブモジュール102Yとを有する。サブモジュール102Xは第1サブモジュール、サブモジュール102Yは第2サブモジュールである。各サブモジュールはID(例えば#1,#2)で識別される。図8のメインモジュール101およびサブモジュール102Xは、図2のものと同じとし、それらにサブモジュール102Yが増設されたとする。各サブモジュール102は、さらにLAN15に接続されてもよい。
サブモジュール102Yは、第3情報アプリケーションAP3、および第4共有メモリSM4を有する。第4共有メモリSM4は、制御アプリケーションCPと第3情報アプリケーションAP3とのデータ共有のために設定されている。メインモジュール101には、例えば前述の第1共有メモリSM1において、サブモジュール102Xの第1情報アプリケーションAP1との共有メモリ領域801と、サブモジュール102Yの第3情報アプリケーションAP3との共有メモリ領域802とが設定されている。共有メモリ領域801や共有メモリ領域802には、前述と同様に書き込みエリアおよび読み出しエリアが設定されている。あるいは、メインモジュール101内に、各サブモジュール102との各共有メモリが別に設けられてもよい。
例えば、サブモジュール102Xの第1情報アプリケーションAP1は、前述の入出力ポートを用いた通信処理を行うものでもよい。例えば、第1情報アプリケーションAP1は、外部装置との間でデータ入出力の通信を行い、そのデータを制御アプリケーションCPとの共有データとして第2共有メモリSM2に格納する。また、サブモジュール102Yの第3情報アプリケーションAP3は、第1情報アプリケーションAP1等とは異なる所定の情報処理を行い、制御アプリケーションCPとの共有データを第4共有メモリSM4に格納する。
メインモジュール101は、各サブモジュール102との間で、各共有メモリおよび専用バス111を介して、各共有データのデータ転送を行う。例えば、メインモジュール101は、制御アプリケーションCPによるデータXを、サブモジュール102Xに出力する場合、共有メモリ領域801の書き込みエリアに格納したデータXを、専用バス111上で第2共有メモリSM2の書き込みエリアに転送する。また、メインモジュール101は、サブモジュール102Yの第3情報アプリケーションAP3によるデータYを入力する場合、第4共有メモリSM4に格納されたデータYを、専用バス111上で共有メモリ領域802の読み出しエリアに転送する。
上記例に限らず、複数の制御アプリケーションや複数の情報アプリケーションがある場合、制御アプリケーション間でのデータ共有や、情報アプリケーション間でのデータ共有を、同様に実現できる。サブモジュール102間の情報アプリケーション(例えばAP1,AP3)間でデータ共有を行う場合にも、同様に、共有メモリ(SM2,SM4)および専用バス111を介して共有データのデータ転送を行ってもよい。また、各モジュールは、データ転送の前後に、LAN15上で制御用通信を行うことで、専用バス111の使用に係わる設定や調停等を行ってもよい。
データ共有は、3個以上のアプリケーション間でも可能である。図8の例では、制御アプリケーションCPと第1情報アプリケーションAP1と第3情報アプリケーションAP3との3個の間でデータ共有が可能である。この例では、制御アプリケーションCPを中心に介在したデータ共有が可能である。また、各モジュールは、共有データの入出力の相手のアプリケーションを指定する際に、複数のアプリケーションが指定可能でもよい。例えば、コマンドで、複数の送信先アプリケーションIDが指定可能でもよい。全アプリケーションを指定する場合には、“ALL”等の記述で指定可能でもよい。
[効果等]
上記のように、実施の形態1によれば、PACシステムの多様性や拡張性として例えば情報アプリケーションによる機能を適宜に追加・変更できることと、メインとなる制御アプリケーションとサブとなる情報アプリケーションとの間で適切にデータを共有できることとの両方を実現できる。実施の形態1によれば以下のような効果が挙げられる。PACシステムの制御装置は、制御アプリケーションと情報アプリケーションとの間でのデータ共有を、メインモジュール内の共有メモリ、サブモジュール内の共有メモリ、および専用バスを介したデータ転送を含む通信で実現できる。これにより、システムの多様性や拡張性の実現とともに、それに伴う演算処理能力や記憶容量といった資源の不足や枯渇についても解消・対処が可能である。産業システムに必要な能力や資源に応じて、サブモジュールおよび情報アプリケーションの追加や変更によるシステム構成変更が柔軟で容易に可能である。また、既設システムにおいて制御装置内で実行されていた情報アプリケーションをサブモジュールに移植するといった活用も可能である。また、システム拡張に伴う情報アプリケーションの追加や変更を、サブモジュールの追加によって、既設システムへの影響を最小限に抑えながら実現できる。これにより、特に制御アプリケーションの安定性やリアルタイム性を確保しつつ、情報アプリケーションによる機能向上等が可能である。また、2台以上のモジュールで構成される制御装置において、制御アプリケーションと情報アプリケーションとのデータ共有を行う場合に、メモリや専用バスの読み書きの工夫を含む通信方法によって、高速通信や効率化等を実現できる。
[変形例(1-1)]
実施の形態1の変形例として以下も可能である。図9は、実施の形態1の変形例の制御装置1の構成を示す。この変形例は、図2のような実施の形態1の構成のうちで、メインモジュール101内の第2情報アプリケーションAP2が無い形態に相当する。この変形例では、メインモジュール101内には制御アプリケーションCPのみを備え、情報アプリケーションを備えない。サブモジュール102内には第1情報アプリケーションAP1を備える。これに対応して、制御アプリケーションCPと第1情報アプリケーションAP1との間での共有メモリとしては、メインモジュール101内に1つの第1共有メモリSM1を有し、サブモジュール102内に1つの第2共有SM2を有する。この変形例によれば、メインモジュール101は、相対的に重要な制御アプリケーションCPの情報処理に集中できる。前述の第2情報アプリケーションAP2については、例えばいずれかのサブモジュール102内に設けるシステム構成が可能である。
[変形例(1-2)]
実施の形態1では、1つのメインモジュール101に1つの制御アプリケーションを備える構成としたが、変形例として以下でもよい。変形例の制御装置1は、拡張等に応じて、複数の制御アプリケーションを設ける。この制御装置1は、例えば、複数のメインモジュールを設け、各メインモジュールに1つ以上の制御アプリケーションを配置する。複数の制御アプリケーションは、各制御アプリケーションが独立に各制御対象装置を制御するものでもよい。あるいは、複数の制御アプリケーションが、同じ1つの制御対象装置を制御するものでもよい。
<実施の形態2>
図10~図14等を用いて、本発明の実施の形態2の制御装置について説明する。実施の形態2等における基本的な構成は実施の形態1と同様である。以下では、実施の形態2等における実施の形態1とは異なる構成部分について主に説明する。実施の形態2は以下のような構成点を含む。図10等に示す実施の形態2の制御装置1は、前述の共有メモリとは別に、専用バス111上のデータ転送のためのメモリを専用バス転送メモリTMとして設ける。実施の形態2の制御装置1は、メインモジュール101の制御アプリケーションCPと、サブモジュール102の第1情報アプリケーションAP1との間でのデータ共有を、各モジュール内の専用バス転送メモリTM(TM1,TM2)を介して行う方式とする。
前述のように、モジュール間でなるべく高速通信を行うためには、メモリやバス同士の接続や通信方法の工夫が必要となる。実施の形態2の例では、専用バス転送メモリTMとしてFPGA内部メモリを用いる。FPGAは、基本的な論理回路の組合せで、ASICと同様の振る舞いができる。実施の形態2では、以下の処理方法によって、FPGAを用いた好適な専用バス転送メモリが実現できる。なお、FPGAでの実装に限定されず、ASICやCPLD(Complex Programmable Logic Device)等も適用可能である。
各モジュール内には、記憶装置として、例えば第1記憶装置としてのメインメモリと、第2記憶装置としてのFPGA内部メモリとを有する。図5で言えば、メモリ502やメモリ512は、それぞれ、それらの記憶装置を含む。実施の形態2では、メインメモリ内に設定される共有メモリSMと、FPGA内部メモリ内に設定される専用バス転送メモリTMとを用いる。
また、実施の形態2では、モジュールの実装における資源の制約の例として、第2記憶装置の記憶容量が限られており、第1記憶装置の記憶容量よりも少ないとする。これに対応して、専用バス転送メモリTMの方が共有メモリSMよりも記憶容量が少ない。例えば、第1転送メモリTM1のサイズは、第1共有メモリSM1のサイズに対し、例えば何倍にも小さい。この場合、第1共有メモリSM1のデータと第2共有メモリSM2のデータとを同期させるためには、工夫が必要である。このため、実施の形態2の制御装置1は、共有メモリSMと専用バス転送メモリTMとの間では適宜にデータを分割して授受する方式とする。制御装置1は、共有メモリの共有データを分割して専用バス転送メモリに格納し、専用バス111上では分割データを転送する。
[制御装置]
図10は、実施の形態2の制御装置1の構成を示す。図10の構成は、図2の構成に対し、主に異なる点として、メインモジュール101およびサブモジュール102は、専用バス転送メモリTMを備える。メインモジュール101は、第1共有メモリSM1と専用バス111との間に配置されている第1転送メモリTM1を備える。サブモジュール102は、第2共有メモリSM2と専用バス111との間に配置されている第2転送メモリTM2を備える。メインモジュール101内のFPGA内部メモリには、第1転送メモリTM1が設定される。サブモジュール102内のFPGA内部メモリには、第2転送メモリTM2が設定される。データ転送1001は、制御アプリケーションCPが第1情報アプリケーションAP1からデータを入力する際のデータ転送である。データ転送1002は、制御アプリケーションCPから第1情報アプリケーションAP1へデータを出力する際のデータ転送である。
専用バス転送メモリTM間でのデータ転送の主体や対応する機構については限定しないが、実施の形態1と同様に例えばFPGAの回路を適用できる。メインモジュール101は、第1転送メモリTM1の記憶領域において、書き込みエリアB11と、読み出しエリアB12とを設定する。サブモジュール102は、第2転送メモリTM2の記憶領域において、書き込みエリアB21と、読み出しエリアB22とを設定する。
第1転送メモリTM1のサイズ(V2とする)は、第1共有メモリSM1のサイズ(V1とする)よりも小さい。V2<V1であり、一例として、八分の一の関係とするならば、V2=V1÷8である。同様に、第2転送メモリTM2のサイズ(V4とする)は、第2共有メモリSM2のサイズ(V3とする)よりも小さい。
実施の形態2では、各モジュールの共有メモリSM(例えばSM1,SM2)は、メモリ空間で定義され、共有データが共有メモリ空間のアドレス領域に格納される。共有メモリの各エリア(書き込みエリアおよび読み出しエリア)の更新は、実施の形態1と同様に、図6の入出力リフレッシュ処理で行われる。専用バス転送メモリTM間でのデータ転送を含む処理は、その入出力リフレッシュ処理(図7での第1時間)で行うこともできるし、それ以外の時間(図7での第2時間)で行うこともできる。
実施の形態2での共有データの入出力の処理例は以下が挙げられる。メインモジュール101の制御アプリケーションCPからサブモジュール102の第1情報アプリケーションAP1に変数値等の共有データを出力する場合には以下が挙げられる。制御アプリケーションCPは、1つの共有データ(データXとする)を、第1共有メモリSM1の書き込みエリアA11に書き込む。メインモジュール101は、第1共有メモリSM1の書き込みエリアA11の1つのデータXを、第1転送メモリTM1の書き込みエリアB11を通じて、専用バス111上で第2転送メモリTM2に転送する。この際、メインモジュール101は、そのデータXのサイズが書き込みエリアB11のサイズよりも大きい場合、そのデータXを複数のデータに分割し、分割されたデータ(分割データと記載する)毎に書き込みエリアB11に格納する。そして、メインモジュール101は、複数の分割データを順次に専用バス111上で転送する。このように対象の共有データを分割する際の数を、分割数Nとする。
[データ分割]
図11は、共有データの分割に関する説明図である。図11は、図10のうち、出力時のデータ転送1002の際に、第1共有メモリSM1の書き込みエリアA11に格納された1つのデータXを、複数の分割データに分割して、分割データ毎に第1転送メモリTM1の書き込みエリアB11に格納する場合を示す。例えば、第1共有メモリSM1の書き込みエリアA11内のデータXのサイズが512kBである。第1転送メモリTM1の書き込みエリアB11内に格納される分割データのサイズが64kBである。この場合、N=8として、データXは、8個の64kB毎の分割データ(X1,X2,……,X8とする)に分割されている。各モジュールは、各分割データをIDで管理する。このIDはシーケンス番号とする。分割データは、このシーケンス番号の順序で転送される。
メインモジュール101は、書き込みエリアA11のデータXのうち、まず、最初のIDのデータX1を、第1転送メモリTM1の書き込みエリアB11に書き込む。メインモジュール101は、FPGAの回路によって、書き込みエリアB11のデータX1を、専用バス111上で第2転送メモリTM2の書き込みエリアB21に高速転送する。サブモジュール102は、第2転送メモリTM2の書き込みエリアB21にデータX1が格納されたことを検知すると、そのデータX1を第2共有メモリSM2に展開する。この際、サブモジュール102は、メインモジュール101側でのデータ分割処理に対応させて、分割データを元のデータに戻す処理を行う。サブモジュール102は、まず、第2転送メモリTM2のデータX1を第2共有メモリSM2の書き込みエリアA21に格納する。
次に、メインモジュールの101は、書き込みエリアA11のデータXのうち、次のIDのデータX2を、第1転送メモリTM1の書き込みエリアB11に書き込む。メインモジュール101は、書き込みエリアB11のデータX2を、専用バス111上で第2転送メモリTM2の書き込みエリアB21に高速転送する。サブモジュール102は、第2転送メモリTM2の書き込みエリアB21に格納されたデータX2を、第2共有メモリSM2に展開する。この際、サブモジュール102は、第2転送メモリTM2のデータX2を、第2共有メモリSM2の書き込みエリアA21内のデータX1につなげる。以降、データX1の最後の分割データ(データX8)まで同様に転送等の処理が行われる。これにより、第2転送メモリTM2の書き込みエリアA21には、データX1が作成される。第1情報アプリケーションAP1は、そのデータX1を読み出して取得する。入力時のデータ転送1001の場合にも、上記と同様の処理が可能である。
[入力リフレッシュ処理]
図12は、図10に基づいて、図6の入力リフレッシュ処理時に、メインモジュール101がサブモジュール102から共有データのデータ転送1001を含む入力処理を行う場合の処理シーケンス例を示す。本例では、簡単のため、N=2の場合を示す。図11で言えば、対象データをデータXとして、2個の分割データをデータX1,X2とする。データX1はデータXの前半部分、データX2はデータXの後半部分に相当する。データX1のシーケンス番号は#1、データX2のシーケンス番号は#2である。
ステップS101で、メインモジュール101のプロセッサは、サブモジュール102に対し、所定のコマンドで、データ要求を発行し送信する。ここでの要求対象データは、第1情報アプリケーションAP1が第2共有メモリSM2に格納した1つのデータXであるとする。データ要求のコマンドの構成例としては、要求元のモジュールまたはアプリケーションのアドレス、要求先のモジュールまたはアプリケーションのアドレス、および要求対象データID等を有する。最初、要求対象データは、データX1のうちの最初のシーケンス番号#1を持つデータX1である。
サブモジュール102は、ステップS101のデータ要求を受信すると、ステップS102で、まずシーケンス番号#1とデータX1を、第2転送メモリTM2の読み出しエリアB22にセットする。なお、分割データ本体とは別に、シーケンス番号が、所定のサイズの値として第2転送メモリTM2に格納される。例えばシーケンス番号#1~#8の8値がある場合には、シーケンス番号用のサイズとして3ビットが必要である。
ステップS103で、メインモジュール101は、まずシーケンス番号#1を監視する動作を行う。この監視動作は、サブモジュール102の第2転送メモリTM2の読み出しエリアB22のデータを、高速転送によって第1転送メモリTM1の読み出しエリアA12に取り込む動作として行われる。監視対象は、要求対象データのうちのシーケンス番号で順序付けられた複数の分割データのうちの未取得の分割データのうちの最初の分割データのシーケンス番号である。この監視動作は、言い換えると分割データ転送確認である。この監視動作は、所定のコマンドを用いて、例えば第2転送メモリTM2の読み出しエリアB22の全データをコピーとして読み出して転送する動作として実現できる。この監視動作は、所定の時間間隔で定期的に繰り返されてもよい。その時間間隔についても予め設定可能である。この監視動作で取り込んだデータにシーケンス番号#1が無い場合には、まだサブモジュール102側での処理が済んでいないということである。
ステップS104で、メインモジュール101は、監視動作で取り込んだデータにシーケンス番号#1が有る場合、一緒に取り込んでいるデータX1も取得できたということになる。よって、ステップS105で、メインモジュール101は、第1転送メモリTM1の読み出しエリアB12のそのデータ(#1,X1)を、第1共有メモリSM1の読み出しエリアA12に展開する。すなわち、メインモジュール101は、シーケンス番号で表す順序に従って、データX1を、読み出しエリアA12内に書き込む。
次に、ステップS106で、メインモジュール101は、次のシーケンス番号#2のデータX2に関するデータ要求を同様に発行する。サブモジュール102は、そのデータ要求を受信すると、ステップS107で、シーケンス番号#2とデータX2を、第2転送メモリTM2の読み出しエリアB22にセットする。ステップS108で、メインモジュール101は、シーケンス番号#2の監視動作を行う。すなわち、メインモジュール101は、読み出しエリアB22のデータを高速転送で第1転送メモリTM1の読み出しエリアB12に取り込む。ステップS108ではシーケンス番号#2が無いとする。ステップS109で、メインモジュール101は、シーケンス番号#2が有る場合、ステップS110で、第1転送メモリTM1の読み出しエリアB12のデータ(#2,X2)を、第1共有メモリSM1の読み出しエリアA12に展開する。これにより、読み出しエリアA12には、2個の分割データ(X1,X2)からデータXが作成される。
ステップS111で、メインモジュール101は、対象のデータXの全分割データが取得済みとなったので、データ転送1001に係わる入力処理を終了する。この後、制御アプリケーションCPは、第1共有メモリSM1の読み出しエリアA12からデータXを読み出して取得することができる。
[出力リフレッシュ処理]
図13は、図10に基づいて、図6の出力リフレッシュ処理時に、メインモジュール101がサブモジュール102へ共有データのデータ転送1002を含む出力処理を行う場合の処理シーケンス例を同様に示す。制御アプリケーションCPは、第1共有メモリSM1の書き込みエリアA11にデータXを書き込む。
ステップS201で、メインモジュール101は、第1共有メモリSM1の書き込みエリアA11から、第1転送メモリTM1の書き込みエリアB11に、まず最初のシーケンス番号#1とそれに対応する分割データであるデータX1とを書き込む。データX1は、データXの前半部分のコピーとして得られる。ステップS202で、メインモジュール101は、第1転送メモリTM1の書き込みエリアB11のデータ(#1,X1)を、第2転送メモリTM2の書き込みエリアB21に高速転送する。
一方、サブモジュール102は、FPGAの回路によって、常時に、第2転送メモリTM2の書き込みエリアB21へのデータの受信・格納を監視する動作を行っている。ステップS203で、サブモジュール102は、その監視動作に基づいて、書き込みエリアB21のデータに最初のシーケンス番号#1が有ることを検知する。この場合、サブモジュール102は、書き込みエリアB21のデータ(#1,X1)を、第2共有メモリSM2の書き込みエリアA21にコピーすることで書き込む。ステップS204で、サブモジュール102は、第2転送メモリTM2の読み出しエリアB22に、完了シーケンス番号#1をセットする。この完了シーケンス番号は、そのシーケンス番号で示す分割データの転送が完了したことを、メインモジュール101側に伝えるための情報である。
一方、ステップS205で、メインモジュール101は、完了シーケンス番号#1を監視する動作を行っている。この監視動作は、サブモジュール102の第2転送メモリTM2の読み出しエリアB22のデータを高速転送で第1転送メモリTM1の読み出しエリアB12に取り込む動作として行われる。この監視は、所定の時間間隔で行われてもよい。ステップS205では完了シーケンス番号#1が無いとする。ステップS206で、監視の結果、完了シーケンス番号#1が有るとする。この場合、メインモジュール101は、サブモジュール102がデータX1を取得できたことがわかる。
次に、ステップS207で、メインモジュール101は、第1共有メモリSM1のデータXに基づいて、第1転送メモリTM1の書き込みエリアB11に、次のシーケンス番号#2とそれに対応するデータX2とを書き込む。データX2は、データXの後半部分のコピーとして得られる。ステップS208で、メインモジュール101は、書き込みエリアB11のデータ(#2,X2)を、第2転送メモリTM2の書き込みエリアB21に高速転送する。ステップS209で、サブモジュール102は、第2転送メモリTM2の書き込みエリアB21にシーケンス番号#2のデータが格納されたことを検知した場合、書き込みエリアB21のデータ(#2,X2)を、第2共有メモリSM2の書き込みエリアA21にコピーすることで書き込む。ステップS210で、サブモジュール102は、第2転送メモリTM2の読み出しエリアB22に完了シーケンス番号#2をセットする。
ステップS211で、メインモジュール101は、同様に、完了シーケンス番号#2を監視している。ステップS212で、完了シーケンス番号#2が有る場合、ステップS213で、メインモジュール101は、データXの全分割データをサブモジュール102が取得済みとなったので、このデータ転送1002に係わる出力処理を完了する。
[シーケンス番号監視動作]
図14は、上記シーケンス番号監視動作を含むデータ転送の動作についての詳しい構成例の説明図を示す。本例では、制御アプリケーションCPが第1情報アプリケーションAP1からデータXを入力する場合を示す。同様にN=2の場合を示す。サブモジュール102の第1情報アプリケーションAP1は、第2共有メモリSM2の読み出しエリアA22にデータXを格納する。データXは、第2転送メモリTM2への書き込みの際、シーケンス番号#1のデータX1とシーケンス番号#2のデータX2とに分割される。
第2転送メモリTM2の読み出しエリアB22には、例えば最初にシーケンス番号#1のデータX1が格納される。ここで、第2転送メモリTM2の記憶領域(書き込みエリアB21および読み出しエリアB22)は、シーケンス番号#を格納する領域b21と、データ本体を格納する領域b22とがセットとなった所定のサイズの領域b20として設定されている。同様に、メインモジュール101側では、データ転送1001の際に、第1転送メモリTM1の読み出しエリアB12には、例えば最初にシーケンス番号#1のデータX1が格納される。第1転送メモリTM1の記憶領域(書き込みエリアB11および読み出しエリアB12)は、シーケンス番号#を格納する領域b11と、データ本体を格納する領域b12とがセットとなった所定のサイズの領域b10として設定されている。
各モジュールは、専用バス転送メモリTMの領域を、メモリ空間のアドレス領域として、読み書きのアクセスが可能である。例えば、サブモジュール102は、読み出しエリアB22の1つの領域b20を単位として、1つのセットのデータ(#1,X1)を格納する。メインモジュール101は、読み出しエリアB12の1つの領域b10を単位として、データ転送1001で得た1つのセットのデータ(#1,X1)を格納する。メインモジュール101は、図12のステップS103等でシーケンス番号の監視動作を行う。その際、メインモジュール101は、第2転送メモリTM2の読み出しエリアB22から、領域b20のデータをまとめて転送して取得する。
[変形例(2-1)]
上記シーケンス番号の監視動作に係わる変形例として以下としてもよい。この変形例の基本構成は図14と同様とする。この変形例では、専用バス転送メモリTM(TM1,TM2)内において、シーケンス番号の領域と、データ本体の領域とが分かれて、各アドレス領域として設定されている。各モジュールは、それらの各領域に対し独立して読み書きのアクセスが可能である。例えば、メインモジュール101は、図14のサブモジュール102の第2転送メモリTM2の読み出しエリアB22にアクセスする際に、領域b20のうち、シーケンス番号の領域b21のみの読み書きと、データ本体の領域b22のみの読み書きとのいずれも可能である。
メインモジュール101は、図12のステップS103等の監視のアクセスの際には、第2転送メモリTM2の読み出しエリアB22のうち、まずシーケンス番号の領域b21のデータのみを読み出して高速転送し、そのデータ値であるシーケンス番号を確認する。メインモジュール101は、その確認したシーケンス番号が、対象の分割データを表すシーケンス番号ではない場合には、時間を空けて、次の監視のアクセスを同様に行う。メインモジュール101は、その確認したシーケンス番号が、対象の分割データを表すシーケンス番号である場合には、続いて、第2転送メモリTM2の読み出しエリアB22のうち、データ本体の領域b22のデータを読み出して高速転送し、分割データを得る。
この変形例では、専用バス転送メモリTMにおいて、シーケンス番号の領域とデータ本体の領域との管理が必要である代わりに、モジュール間での専用バス111上のデータ転送の際に、より少ないサイズのデータ転送で済む場合が多い。これにより、処理効率化が期待できる。例えば、シーケンス番号の領域のサイズに対し、データ本体の領域のサイズが何倍にも大きいとする。先の実施の形態2では、監視のアクセスを何回も行う場合、その都度、セットの領域b20のサイズでのデータ転送が必要である。一方、変形例では、監視のアクセスを何回も行う場合でも、シーケンス番号のみのデータ転送が殆どであり、データ本体の転送は最後のみで済む。
[変形例(2-2)]
実施の形態1,2の変形例として以下も可能である。実施の形態1,2では、共有メモリはメモリ空間で定義される構成としたが、これに限らず可能である。変形例では、各モジュールの共有メモリに格納されるデータの形式をファイルシステム形式としてもよい。すなわち、各アプリケーション(制御アプリケーションと情報アプリケーションとの少なくとも一方)は、共有メモリをファイルシステムで管理し、共有データを共有メモリにファイルとして格納する。
[設定画面]
実施の形態2の制御装置1は、各モジュールの各メモリのサイズ等を設定する設定機能を有し、設定機能によってユーザに対しGUIを伴う設定画面を提供する。図15は、その設定画面の例を示す。図1のシステムで、管理者等のユーザは、例えばクライアント端末22からサーバ21にアクセスする。サーバ21は、制御装置1にアクセスして最新のシステム構成情報を把握する。サーバ21は、システム構成情報に基づいて、Webページ等の形式による設定画面をユーザのクライアント端末22に提供する。クライアント端末22の表示画面にはその設定画面が表示される。
図15の設定画面は、メインモジュール101についての設定欄1501、サブモジュール102についての設定欄1502、サブモジュール102についての追加・変更ボタン1503等を有する。設定欄1501では、メインモジュール101に備える制御アプリケーションCPの情報や第2情報アプリケーションAP2の情報が設定・確認できる。制御アプリケーションCPの情報としては、使用するメインメモリのワークエリアのサイズ等を設定・確認できるようにしてもよい。また、設定欄1501では、メインモジュール101内に設定される第1共有メモリSM1、第3共有メモリSM3、および第1転送メモリTM1の情報が設定・確認できる。
例えば、ユーザは、サブモジュール102の第1情報アプリケーションAP1とのデータ共有用の第1共有メモリSM1について、メインメモリ容量内でのサイズを、リストボックス等からの選択によって可変に設定できる。第3共有メモリSM3についても同様に設定できる。第1転送メモリTM1についても、FPGA内部メモリ容量内でのサイズを可変に設定できる。リストボックスでは、例えばメインメモリの全記憶容量のうち制御アプリケーションCP用に確保されている記憶容量を除いた記憶容量を、概略的に最大値として、その最大値以下の範囲内でのサイズが選択肢として表示される。
設定欄1502では、サブモジュール102に備える第1情報アプリケーションAP1の情報、ならびに、サブモジュール102内に設定される第2共有メモリSM2および第2転送メモリTM2の情報が設定・確認できる。例えば、ユーザは、制御アプリケーションCPとのデータ共有用の第2共有メモリSM2について、サブモジュール102のメインメモリ容量内でのサイズを可変に設定できる。第2転送メモリTM2についても同様に設定できる。
ユーザは、制御装置1を構成するサブモジュール102について追加や変更したい場合、追加・変更ボタン1503を押す。これにより、画面には、サブモジュール102の追加や変更のための欄が表示されする。その欄では、ユーザは、追加や変更するサブモジュール102の情報を設定できる。GUIは上記例に限らず可能である。他のGUIとして、ユーザがパラメータ値を直接入力できる構成でもよいし、画面内にメモリ記憶領域を矩形等の図形で表示し、その図形の操作に応じて共有メモリ等のサイズを可変設定できる構成としてもよい。
<実施の形態3>
図16を用いて、実施の形態3の制御装置について説明する。図16に示す実施の形態3の制御装置1は、メインモジュール101内に、DMA(ダイレクト・メモリ・アクセス)コントローラ160を備える。実施の形態3では、専用バス111でのデータ転送処理を、メインモジュール101のプロセッサ等ではなく、DMAコントローラ160を主体として行う。
図16は、実施の形態3の制御装置1の構成を示す。メインモジュール101は、図10の実施の形態2と同様の要素に加え、専用バス111に接続されるDMAコントローラ160を有する。メインモジュール101のプロセッサは、制御アプリケーションCPによる処理と、制御アプリケーションCPと第2情報アプリケーションAP2との間での第3共有メモリSM3を介したデータ共有の処理とを行う。制御アプリケーションCPは、サブモジュール102の第1情報アプリケーションAP1との間でのデータ共有を行う場合、第1共有メモリSM1およびDMAコントローラ160を用いる。
例えば、出力リフレッシュ処理時に制御アプリケーションCPから第1情報アプリケーションAP1へ共有データを出力・送信する場合のデータ転送1602を含む制御例は以下が挙げられる。制御アプリケーションCPは、共有データを第1共有メモリSM1の書き込みエリアA11に書き込む。第1共有メモリSM1と第1転送メモリTM1との間のデータの読み書きは、主体を限定しないが、プロセッサ、またはFPGAの回路、またはDMAコントローラ160が行う。本例ではそれをFPGAの回路が行うとする。FPGAの回路は、出力リフレッシュ処理の際に、第1共有メモリSM1の書き込みエリアA11の共有データ(例えばデータX)を複数の分割データ(例えばデータX1,X2)に分割し、分割データ毎に順次に第1転送メモリTM1の書き込みエリアB11に格納する。DMAコントローラ160は、第1転送メモリTM1の書き込みエリアB11に格納されたデータ(例えばデータX1)を、専用バス111上で高速転送して第2転送メモリTM2の書き込みエリアB21に格納する。DMAコントローラ160は、例えば図13と同様にシーケンス番号の監視動作を行いながら、複数の分割データを順次に転送する。
サブモジュール102の例えばFPGAの回路は、第2転送メモリTM2の書き込みエリアB21へのデータの格納を監視しており、シーケンス番号の順序での分割データ(例えばデータX1)の格納を検知すると、その分割データを第2共有メモリSM2の書き込みエリアA21に書き込む。サブモジュール102は、シーケンス番号に従って複数の分割データを順次に第2共有メモリSM2に格納して元のデータXを作成する。第1情報アプリケーションAP1は、第2共有メモリSM2の書き込みエリアA21から共有データ(データX)を読み出して取得する。入力リフレッシュ処理時に第1情報アプリケーションAP1から制御アプリケーションCPへ共有データを入力・受信する場合のデータ転送1601を含む制御例も同様に可能である。
実施の形態3によれば、メインモジュール101にDMAコントローラ160の実装が必要である代わりに、メインモジュール101のプロセッサは、重要な制御アプリケーションCPの処理に集中でき、DMAコントローラ160を用いることで、専用バス111上のデータ転送を高速に効率的に処理できる。実施の形態3では、システム全体で、処理負荷の抑制や分散が実現できる。
[変形例(3-1)]
実施の形態1~3の変形例として以下も可能である。変形例では、専用バス111上のデータ転送を含むデータ入出力の処理を、メインモジュール101ではなくサブモジュール102を主体として行う。例えば、サブモジュール102のプロセッサ、またはFPGAの回路、またはサブモジュール102内に設けられたDMAコントローラを主体とする。例えば、サブモジュール102は、第1情報アプリケーションAP1から制御アプリケーションCPへの共有データを、専用バス111を介して転送する。その場合に、サブモジュール102は、第2共有メモリSM2から第2転送メモリTM2に共有データの分割データを順次に格納し、第2転送メモリTM2から分割データを順次に専用バス111上で高速転送して第1転送メモリTM1に格納する。また、サブモジュール101は、制御アプリケーションCPから共有データを受信する場合、第1転送メモリTM1から順次に分割データを専用バス111上で高速転送して第2転送メモリTM2に格納する。サブモジュール102は、第2転送メモリTM2の分割データを順次に第2共有メモリSM2に格納して元のデータを作成する。上記サブモジュール102によるデータ転送の際には、前述と同様に、シーケンス番号の監視の仕組みを適用できる。
この変形例では、サブモジュール102がデータ転送を担うので、サブモジュール102の処理負荷が増える代わりに、メインモジュール101の処理負荷を低減できる。この変形例で、サブモジュール102にDMAコントローラを備える場合には、サブモジュール102の処理負荷を低減できる。
[変形例(3-2)]
他の変形例としては、メインモジュール101およびサブモジュール102のいずれもが、専用バス111を介した共有データの入力・出力のいずれも行うことができる形態としてもよい。制御装置1は、例えば、共有データの入力または出力の都度に、各モジュールや各アプリケーションの処理負荷の状況や共有データの種類等に応じて、メインモジュール101とサブモジュール112とのいずれをデータ転送の主体とするかを決める。これにより、状況等に応じた効率的な処理が可能である。
以上、本発明を実施の形態に基づいて具体的に説明したが、本発明は前述の実施の形態に限定されず、要旨を逸脱しない範囲で種々変更可能である。
1…制御装置(PAC)、15…LAN、101…メインモジュール、102…サブモジュール、111…専用バス、201,202…データ転送、CP…制御アプリケーション、AP1…第1情報アプリケーション、AP2…第2情報アプリケーション、SM…共有メモリ、SM1…第1共有メモリ、SM2…第2共有メモリ、SM3…第3共有メモリ、A11,A21,A31…書き込みエリア、A12,A22,A32…読み出しエリア。

Claims (12)

  1. 制御対象装置の動作を制御するための制御アプリケーションを実行する第1プロセッサを備えるメインモジュールと、
    第1情報アプリケーションを実行する第2プロセッサを備えるサブモジュールと、
    前記メインモジュールと前記サブモジュールとを接続して前記メインモジュールと前記サブモジュールとの間でデータを転送するための専用バスと、
    を備え、
    前記メインモジュールは、前記制御アプリケーションと前記第1情報アプリケーションとの間でデータを共有するための第1共有メモリを備え、
    前記サブモジュールは、前記制御アプリケーションと前記第1情報アプリケーションとの間でデータを共有するための第2共有メモリを備え、
    前記メインモジュールと前記サブモジュールは、前記制御アプリケーションと前記第1情報アプリケーションとの間でデータを共有する場合、前記第1共有メモリ、前記専用バス、および前記第2共有メモリを介して、前記データを転送し、
    前記制御アプリケーションは、前記制御対象装置との間でのデータの入出力のために設けられている入出力ポートに対しアクセスして前記制御対象装置との間でのデータの入出力の動作を行い、前記入出力のデータを用いて前記制御対象装置のPLC制御を含む情報処理を行う、前記PLC制御が可能な言語で記述されたプログラムであり、
    前記第1情報アプリケーションは、前記制御対象装置との間でのデータの入出力の動作を行わず、前記制御対象装置のPLC制御以外の情報処理を行う、高級プログラミング言語で記述されたプログラムであり、
    前記第1情報アプリケーションからデータを前記制御アプリケーションに入力する場合、前記サブモジュールの前記第1情報アプリケーションは、前記データを前記第2共有メモリに書き込み、前記メインモジュールは、前記第2共有メモリの前記データを、前記専用バスを介して転送して前記第1共有メモリに書き込み、前記制御アプリケーションは、前記第1共有メモリの前記データを読み出して取得し、
    前記制御アプリケーションからデータを前記第1情報アプリケーションに出力する場合、前記メインモジュールの前記制御アプリケーションは、前記データを前記第1共有メモリに書き込み、前記メインモジュールは、前記第1共有メモリの前記データを、前記専用バスを介して転送して前記第2共有メモリへ書き込み、前記サブモジュールの前記第1情報アプリケーションは、前記第2共有メモリの前記データを読み出して取得し、
    前記第1情報アプリケーションと前記第2共有メモリとの間では、専用の変換を介在し、
    前記制御対象装置に接続される前記入出力ポートは、前記メインモジュールまたは前記サブモジュールの少なくとも一方に設けられており、
    前記PLC制御は、周期制御として、前記入出力ポートを介して前記制御対象装置からデータを取り込む入力リフレッシュ処理、取り込んだデータに対する前記制御アプリケーションによる演算、および、演算結果のデータを前記入出力ポートを介して前記制御対象装置に反映する出力リフレッシュ処理、を繰り返すものであり、
    前記メインモジュールと前記サブモジュールとの間で、前記第1共有メモリ、前記第2共有メモリ、および前記入出力ポートの共有利用が可能であり、前記共有利用のための設定が可能であり、前記共有利用のための設定は、共有相手のモジュールおよびアプリケーションの情報と、使用する前記第1共有メモリおよび前記第2共有メモリの情報と、使用する前記専用バスの情報と、使用する前記入出力ポートの情報と、共有する共有データの情報と、を有する、
    制御装置。
  2. 請求項1記載の制御装置において、
    前記共有データに、アクセス権として、アクセスが許可されるアプリケーションを設定する、
    制御装置。
  3. 請求項1記載の制御装置において、
    前記入出力ポートは、前記サブモジュールに設けられており、
    前記サブモジュールの前記第1情報アプリケーションは、前記入出力ポートを用いてデータの入出力の処理を行い、
    前記メインモジュールの前記制御アプリケーションは、前記サブモジュールの前記入出力ポートを用いてデータの入出力を行う、
    制御装置。
  4. 請求項1記載の制御装置において、
    前記第1情報アプリケーションからデータを前記制御アプリケーションに入力する場合のデータ転送は、前記入力リフレッシュ処理の一部として行われ、
    前記制御アプリケーションからデータを前記第1情報アプリケーションに出力する場合のデータ転送は、前記出力リフレッシュ処理の一部として行われる、
    制御装置。
  5. 請求項1記載の制御装置において、
    前記メインモジュールと前記サブモジュールの前記第1情報アプリケーションとの間でデータ共有する場合に、前記制御アプリケーションによる前記PLC制御の周期制御の処理の時間の後にある待機時間に、共有するデータを、前記第1情報アプリケーションへ送信する、
    制御装置。
  6. 請求項1記載の制御装置において、
    前記メインモジュールは、
    前記第1プロセッサが実行する第2情報アプリケーションと、
    前記制御アプリケーションと前記第2情報アプリケーションとの間でデータを共有するための第3共有メモリと、
    を備え、
    前記制御アプリケーションによる前記PLC制御の周期制御の処理の時間の後にある待機時間に、前記第2情報アプリケーションによる処理を行う、
    制御装置。
  7. 請求項1記載の制御装置において、
    前記メインモジュールは、前記専用バスを介してデータを転送するための第1転送メモリを備え、
    前記サブモジュールは、前記専用バスを介してデータを転送するための第2転送メモリを備え、
    前記メインモジュールと前記サブモジュールは、前記制御アプリケーションと前記第1情報アプリケーションとの間でデータを共有する場合、前記第1共有メモリ、前記第1転送メモリ、前記専用バス、前記第2転送メモリ、および前記第2共有メモリを介して、前記データを転送する、
    制御装置。
  8. 請求項7記載の制御装置において、
    前記第1情報アプリケーションからデータを前記制御アプリケーションに入力する場合、前記サブモジュールの前記第1情報アプリケーションは、前記データを前記第2共有メモリに書き込み、前記サブモジュールは、前記第2共有メモリの前記データを前記第2転送メモリに書き込み、前記メインモジュールは、前記第2転送メモリの前記データを、前記専用バスを介して転送して前記第1転送メモリに書き込み、前記第1転送メモリの前記データを前記第1共有メモリに書き込み、前記制御アプリケーションは、前記第1共有メモリの前記データを読み出して取得し、
    前記制御アプリケーションからデータを前記第1情報アプリケーションに出力する場合、前記メインモジュールの前記制御アプリケーションは、前記データを前記第1共有メモリに書き込み、前記メインモジュールは、前記第1共有メモリの前記データを前記第1転送メモリに書き込み、前記第1転送メモリの前記データを、前記専用バスを介して転送して前記第2転送メモリに書き込み、前記サブモジュールは、前記第2転送メモリの前記データを前記第2共有メモリに書き込み、前記第1情報アプリケーションは、前記第2共有メモリの前記データを読み出して取得する、
    制御装置。
  9. 請求項7記載の制御装置において、
    前記第1転送メモリは、前記第1共有メモリよりも記憶容量が小さく、
    前記第2転送メモリは、前記第2共有メモリよりも記憶容量が小さく、
    前記メインモジュールは、前記第1共有メモリの前記データを前記第1転送メモリに格納する際には、前記第1共有メモリの前記データを複数の分割データに分割し、分割データ毎に順次に前記第1転送メモリに格納し、前記専用バスで前記分割データ毎に順次に転送し、
    前記サブモジュールは、前記第2共有メモリの前記データを前記第2転送メモリに格納する際には、前記第2共有メモリの前記データを複数の分割データに分割し、分割データ毎に順次に前記第2転送メモリに格納する、
    制御装置。
  10. 請求項9記載の制御装置において、
    前記データにおける前記複数の分割データは、前記分割データ毎のシーケンス番号と、前記分割データ毎のデータ本体とを有し、
    前記第1転送メモリおよび前記第2転送メモリは、前記シーケンス番号を格納する第1領域と、前記データ本体を格納する第2領域とを有し、
    前記メインモジュールは、前記データを入力または出力する場合、前記第2転送メモリの少なくとも前記第1領域のデータを監視するアクセスによって、前記シーケンス番号を確認し、前記複数の分割データを前記分割データ毎に順次に転送する、
    制御装置。
  11. 請求項7記載の制御装置において、
    前記メインモジュールは、前記メインモジュール内の第1記憶装置の資源を用いて、前記第1共有メモリを設定し、前記メインモジュール内の第2記憶装置の資源を用いて、前記第1転送メモリを設定し、
    前記サブモジュールは、前記サブモジュール内の第1記憶装置の資源を用いて、前記第2共有メモリを設定し、前記サブモジュール内の第2記憶装置の資源を用いて、前記第2転送メモリを設定する、
    制御装置。
  12. 請求項1記載の制御装置において、
    前記メインモジュールは、DMAコントローラを備え、
    前記DMAコントローラは、前記専用バスを介したデータの転送を行う、
    制御装置。
JP2020146504A 2020-09-01 2020-09-01 制御装置 Active JP7361669B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020146504A JP7361669B2 (ja) 2020-09-01 2020-09-01 制御装置
PCT/JP2021/025342 WO2022049885A1 (ja) 2020-09-01 2021-07-05 制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020146504A JP7361669B2 (ja) 2020-09-01 2020-09-01 制御装置

Publications (2)

Publication Number Publication Date
JP2022041359A JP2022041359A (ja) 2022-03-11
JP7361669B2 true JP7361669B2 (ja) 2023-10-16

Family

ID=80491072

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020146504A Active JP7361669B2 (ja) 2020-09-01 2020-09-01 制御装置

Country Status (2)

Country Link
JP (1) JP7361669B2 (ja)
WO (1) WO2022049885A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001022401A (ja) 1999-07-09 2001-01-26 Toshiba Corp 統合コントローラ及び制御システム並びに伝送装置
JP2002278606A (ja) 2001-03-15 2002-09-27 Omron Corp プログラミングツール及び制御装置
JP2015207170A (ja) 2014-04-21 2015-11-19 株式会社東芝 監視制御システム、監視制御装置、およびコントローラ装置
WO2019097800A1 (ja) 2017-11-16 2019-05-23 株式会社日立産機システム コントロール装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH043205A (ja) * 1990-04-20 1992-01-08 Yokogawa Electric Corp データ・アクセス・システム
JPH09274511A (ja) * 1996-04-04 1997-10-21 Yokogawa Electric Corp シーケンス制御装置
JPH1195812A (ja) * 1997-09-17 1999-04-09 Fuji Electric Co Ltd プログラマブルコントローラ
JP2010079355A (ja) * 2008-09-24 2010-04-08 Koyo Electronics Ind Co Ltd 複数plc間の協調制御システム
JP6550269B2 (ja) * 2015-05-27 2019-07-24 株式会社キーエンス プログラム作成支援装置、制御方法およびプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001022401A (ja) 1999-07-09 2001-01-26 Toshiba Corp 統合コントローラ及び制御システム並びに伝送装置
JP2002278606A (ja) 2001-03-15 2002-09-27 Omron Corp プログラミングツール及び制御装置
JP2015207170A (ja) 2014-04-21 2015-11-19 株式会社東芝 監視制御システム、監視制御装置、およびコントローラ装置
WO2019097800A1 (ja) 2017-11-16 2019-05-23 株式会社日立産機システム コントロール装置

Also Published As

Publication number Publication date
JP2022041359A (ja) 2022-03-11
WO2022049885A1 (ja) 2022-03-10

Similar Documents

Publication Publication Date Title
JP5942446B2 (ja) サポート装置およびサポートプログラム
CN107272549B (zh) 控制装置、控制方法以及记录介质
US7516265B2 (en) System and method for providing an application with memory access methods
WO2015136960A1 (ja) コントローラ
US10712731B2 (en) Control device, control method, and non-transitory computer-readable recording medium
JP2005129026A (ja) プログラマブルコントローラおよび通信ユニットならびにコントローラシステムおよびデータ処理方法ならびに変数解決方法およびデータ受渡方法
JP6996257B2 (ja) 制御装置、制御方法、およびプログラム
US11287793B2 (en) Control device, control method for control device, information processing program, and recording medium
JP7361669B2 (ja) 制御装置
US11036205B2 (en) Control device and communication device
JP6772748B2 (ja) 演算装置および制御システム
JP6135247B2 (ja) 情報処理装置および情報処理プログラム
JP4013250B2 (ja) Opc通信ステーション
JP7294912B2 (ja) コントロールシステム
JP4883194B2 (ja) プログラマブルコントローラおよびコントローラシステム
CN110098949B (zh) 网络系统、控制方法以及控制装置
JP2021120850A (ja) データ処理装置及び関連製品
JP2001325010A (ja) プログラマブルコントローラシステム
JP2020190765A (ja) 転送装置、情報処理装置、および、データ転送方法
WO2022025134A1 (ja) コントロールシステム
KR20160035446A (ko) 공장 자동화 시스템의 제어방법
JP2016133898A (ja) 画像処理装置、画像処理装置の制御方法、及びプログラム
JP6303200B2 (ja) 回路情報作成装置、回路情報作成システム、および回路情報作成プログラム
JP2022185645A (ja) 制御システムおよび制御方法
JP2019117979A (ja) 制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220929

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230404

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230601

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230627

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230822

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231003

R150 Certificate of patent or registration of utility model

Ref document number: 7361669

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150