JP2019144762A - プログラマブルコントローラ - Google Patents
プログラマブルコントローラ Download PDFInfo
- Publication number
- JP2019144762A JP2019144762A JP2018027217A JP2018027217A JP2019144762A JP 2019144762 A JP2019144762 A JP 2019144762A JP 2018027217 A JP2018027217 A JP 2018027217A JP 2018027217 A JP2018027217 A JP 2018027217A JP 2019144762 A JP2019144762 A JP 2019144762A
- Authority
- JP
- Japan
- Prior art keywords
- application
- function unit
- variable
- data
- 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.)
- Pending
Links
- 230000006870 function Effects 0.000 claims abstract description 150
- 238000004891 communication Methods 0.000 claims description 8
- 238000012545 processing Methods 0.000 description 49
- 238000010586 diagram Methods 0.000 description 16
- 238000000034 method Methods 0.000 description 14
- 238000012544 monitoring process Methods 0.000 description 14
- 230000003068 static effect Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Programmable Controllers (AREA)
Abstract
【課題】共有メモリにおいて、変数のデータにアドレスが割り当て直された場合でも、共有メモリから変数のデータを読出して、第2アプリケーションを実行する。【解決手段】プログラマブルコントローラのプロセッサは、外部装置を制御する第1アプリケーション(以下、アプリ)を作成するエンジニアリングツール(以下、ツール)と、ツールから入力された第1アプリで用いられる変数のデータを、共有メモリにおいて当該データに割り当てられるアドレスの記憶領域に保存し、データを用いて第1アプリを実行するコントローラ機能部と、共有メモリに記憶されるデータを読み出す第2アプリを実行するソフトウェア機能部と、をプログラムの実行により実現する。ツールは、コントローラ機能部に対して第1アプリを出力する度に、変数と、当該変数のデータに割り当てられたアドレスと、が対応付けられかつソフトウェア機能部により参照可能なテーブルを作成する。【選択図】図1
Description
本発明の実施形態は、プログラマブルコントローラに関する。
プログラマブルロジックコントローラ(所謂、プログラマブルコントローラ)に対して、ソフトウェア機能部を追加し、1台のプログラマブルコントローラを多用な用途に使用可能とする技術が開発されている。
上述したように、プログラマブルコントローラは、多様な用途で使用可能であり、一例として、外部装置を制御するアプリケーションを作成するエンジニアリングツールと、当該エンジニアリングツールから入力されるアプリケーションで用いられる変数のデータを共有メモリに保存しかつ当該共有メモリに記憶されるデータを用いて当該アプリケーションを実行するコントローラ機能部と、共有メモリに記憶されるデータを読み出す処理を実行するソフトウェア機能部と、を1台で実現することが提案されている。ところで、共有メモリに記憶される変数のデータの記憶領域のアドレスは、エンジニアリングツールからコントローラ機能部に対してアプリケーションが出力される度に割り当て直される。そのため、ソフトウェア機能部は、共有メモリから変数のデータを読み出す際に、変数のデータに割り当てられる記憶領域のアドレスが不明となり、共有メモリから変数のデータを読み出せない場合がある。
実施形態のプログラマブルコントローラは、共有メモリと、プロセッサと、を備える。プロセッサは、外部装置を制御する第1アプリケーションを作成するエンジニアリングツールと、エンジニアリングツールから入力された第1アプリケーションで用いられる変数のデータを、共有メモリにおいて当該データに割り当てられるアドレスの記憶領域に保存し、データを用いて第1アプリケーションを実行するコントローラ機能部と、共有メモリに記憶されるデータを読み出す第2アプリケーションを実行するソフトウェア機能部と、をプログラムの実行により実現する。エンジニアリングツールは、コントローラ機能部に対して第1アプリケーションを出力する度に、変数と、当該変数のデータに割り当てられたアドレスと、が対応付けられかつソフトウェア機能部により参照可能なテーブルを作成する。
以下、添付の図面を用いて、本実施形態にかかるプログラマブルロジックコントローラ(所謂、プログラマブルコントローラ)について説明する。
(第1の実施形態)
図1は、第1の実施形態にかかるプログラマブルコントローラの構成の一例を示す図である。本実施形態にかかるプログラマブルコントローラは、計装分野において用いられる制御装置である。図1に示すように、プログラマブルコントローラは、CPU(Central Processing Unit、プロセッサの一例)1と、共有メモリ2と、通信インタフェース3と、を有する。CPU1は、記憶部に記憶されるプログラムを実行することにより、エンジニアリングツール101と、コントローラ機能部102と、ソフトウェア機能部103と、を実現する。
図1は、第1の実施形態にかかるプログラマブルコントローラの構成の一例を示す図である。本実施形態にかかるプログラマブルコントローラは、計装分野において用いられる制御装置である。図1に示すように、プログラマブルコントローラは、CPU(Central Processing Unit、プロセッサの一例)1と、共有メモリ2と、通信インタフェース3と、を有する。CPU1は、記憶部に記憶されるプログラムを実行することにより、エンジニアリングツール101と、コントローラ機能部102と、ソフトウェア機能部103と、を実現する。
エンジニアリングツール101は、I/O機器4(外部装置の一例)の制御に用いる各種情報の設定を行う。本実施形態では、エンジニアリングツール101は、通信インタフェース3を介してI/O機器4との間で制御データを入出力する処理など、I/O機器4を制御する処理を実行する第1アプリケーション104を作成する。そして、エンジニアリングツール101は、作成した第1アプリケーション104をコンパイルしてコントローラ機能部102に出力する。
コントローラ機能部102は、エンジニアリングツール101により設定される各種設定に従って、I/O機器4の制御を行う。本実施形態では、コントローラ機能部102は、エンジニアリングツール101から第1アプリケーション104が入力される。また、コントローラ機能部102は、第1アプリケーション104で用いられる変数のデータを、共有メモリ2において、当該データに割り当てられたアドレスの記憶領域に保存する。本実施形態では、CPU1により実行されるOSが、変数のデータに対して、共有メモリ2において当該データを保存する記憶領域のアドレスを割り当てる。さらに、コントローラ機能部102は、共有メモリ2に記憶される変数のデータを用いて、第1アプリケーション104を実行する。これにより、コントローラ機能部102は、I/O機器4との間での制御データの入出力処理など、I/O機器4を制御する処理を実行する。
ソフトウェア機能部103は、コントローラ機能部102によるI/O機器4の制御結果の表示やコントローラ機能部102によるI/O機器4の制御処理の監視等の各種処理を実行する。本実施形態では、ソフトウェア機能部103は、ミドルウェア106およびAPI(Application Programming Interface)107を有する。また、ソフトウェア機能部103は、共有メモリ2から、I/O機器4の制御結果の表示やI/O機器4の制御処理の監視等に用いる変数のデータを読み出す第2アプリケーション105を実行する。本実施形態では、第2アプリケーション105は、ミドルウェア106およびAPI107を介して、共有メモリ2にアクセスして、当該共有メモリ2に記憶される変数のデータを読み出す。
図2は、第1の実施形態にかかるプログラマブルコントローラのソフトウェア機能部による第2アプリケーションの実行処理の流れの一例を示すフローチャートである。次に、図2を用いて、本実施形態にかかるプログラマブルコントローラのソフトウェア機能部103による第2アプリケーション105の実行処理の流れの一例について説明する。
エンジニアリングツール101は、第1アプリケーション104を作成し、当該作成した第1アプリケーション104をコンパイルしてコントローラ機能部102に出力する(ステップS201)。その際、CPU1により実行されるOSは、第1アプリケーション104で用いられる変数のデータに対して、共有メモリ2において、当該変数のデータを保存する記憶領域のアドレスを割り当てる(ステップS202)。本実施形態では、CPU1により実行されるOSは、エンジニアリングツール101からコントローラ機能部102に対して第1アプリケーション104が出力される度に、変数のデータに対してアドレスを割り当て直す。
また、エンジニアリングツール101は、コントローラ機能部102に対して第1アプリケーション104を出力する度に、下記の表1に示す変数データテーブル(テーブルの一例)を作成する(ステップS203)。表1に示すように、変数データテーブルは、第1アプリケーション104の変数(例えば、「変数_0000」)と、当該変数のデータに割り当てられたアドレス(例えば、「AD1_0000」)と、が対応付けられ、かつソフトウェア機能部103により参照可能なテーブルである。本実施形態では、エンジニアリングツール101は、作成した変数データテーブルを、共有メモリ2に保存することにより、当該変数データテーブルを、ソフトウェア機能部103により参照可能とする。これにより、コントローラ機能部102に第1アプリケーション104を出力する度に、変数のデータに対してアドレスが割り当て直された場合でも、共有メモリ2内で変数のデータが記憶された記憶領域をソフトウェア機能部103が特定できるので、共有メモリ2において、変数のデータにアドレスが割り当て直された場合でも、第2アプリケーション105を実行できる。
コントローラ機能部102は、エンジニアリングツール101から入力される第1アプリケーション104で用いられる変数のデータを、共有メモリ2において、当該データに割り当てられたアドレスの記憶領域に保存する(ステップS204)。これにより、共有メモリ2内における変数のデータの配置を最適化する。また、コントローラ機能部102は、共有メモリ2に記憶される変数のデータを用いて、第1アプリケーション104を実行して、I/O機器4との間での制御データの入出力処理など、I/O機器4を制御する処理を行う(ステップS205)。
ソフトウェア機能部103は、第2アプリケーション105を実行する。第2アプリケーション105は、共有メモリ2に記憶される変数データテーブルを読み出す(ステップS206)。次いで、第2アプリケーション105は、読み出した変数データテーブルにおいて、I/O機器4の制御結果の表示やI/O機器4の制御処理の監視等の処理に用いる読出対象の変数と対応付けられるアドレスを特定する(ステップS207)。そして、第2アプリケーション105は、共有メモリ2から、当該特定したアドレスの記憶領域に記憶される変数のデータを読み出す(ステップS208)。さらに、第2アプリケーション105は、読み出した変数のデータを用いて、I/O機器4の制御結果の表示やI/O機器4の制御処理の監視等の処理を実行する(ステップS209)。
図3は、第1の実施形態にかかるプログラマブルコントローラのソフトウェア機能部による第2アプリケーションの実行処理の一例を説明するための図である。次に、図3を用いて、本実施形態にかかるプログラマブルコントローラのソフトウェア機能部103による第2アプリケーション105の実行処理の一例について説明する。
ソフトウェア機能部103の第2アプリケーション105は、ミドルウェア106およびAPI107を介して、共有メモリ2から、変数データテーブルを読み出す。次に、第2アプリケーション105は、変数データテーブルにおいて、第2アプリケーション105で用いる変数(例えば、変数_0000)と対応付けられるアドレス(例えば、AD1_0000)を特定する。そして、第2アプリケーション105は、ミドルウェア106およびAPI107を介して、共有メモリ2のうち当該特定したアドレスの記憶領域から、変数のデータを読み出す。その後、第2アプリケーション105は、ミドルウェア106およびAPI107を介して取得した変数のデータを用いて、I/O機器4の制御結果の表示やI/O機器4の制御処理の監視等の処理を行う。
このように、第1の実施形態にかかるプログラマブルコントローラによれば、コントローラ機能部102に第1アプリケーション104を出力する度に、変数のデータに対してアドレスが割り当て直された場合でも、共有メモリ2内で変数のデータが記憶される記憶領域をソフトウェア機能部103が特定できるので、共有メモリ2において、変数のデータにアドレスが割り当て直された場合でも、第2アプリケーション105を実行できる。
(第2の実施形態)
本実施形態は、エンジニアリングツールとソフトウェア機能部との間で通信可能とするインタフェース部を備える例である。以下の説明では、第1の実施形態と同様の構成については説明を省略する。
本実施形態は、エンジニアリングツールとソフトウェア機能部との間で通信可能とするインタフェース部を備える例である。以下の説明では、第1の実施形態と同様の構成については説明を省略する。
図4は、第2の実施形態にかかるプログラマブルコントローラの構成の一例を示す図である。図4に示すように、本実施形態にかかるプログラマブルコントローラのCPU400は、記憶部に記憶されるプログラムを実行することにより、エンジニアリングツール401、コントローラ機能部102、およびソフトウェア機能部402に加えて、インタフェース部403を実現する。
インタフェース部403は、APIやOS等により実現され、エンジニアリングツール401とソフトウェア機能部402との間で通信可能とする。ソフトウェア機能部402は、第2アプリケーション105が用いる変数をエンジニアリングツール101に出力する。
エンジニアリングツール401は、インタフェース部403を介して、ソフトウェア機能部402から、変数が入力される。そして、エンジニアリングツール401は、入力され変数のデータをソフトウェア機能部402(第2アプリケーション105)に出力する。これにより、コントローラ機能部102に第1アプリケーション104を出力する度に、変数のデータに対してアドレスが割り当て直された場合でも、ソフトウェア機能部402がエンジニアリングツール401から変数のデータを取得できるので、共有メモリ2において、変数のデータにアドレスが割り当て直された場合でも、エンジニアリングツール401から入力される変数のデータを用いて、第2アプリケーション105を実行できる。
図5は、第2の実施形態にかかるプログラマブルコントローラのソフトウェア機能部により第2アプリケーションの実行処理の流れの一例を示すフローチャートである。次に、図5を用いて、本実施形態にかかるプログラマブルコントローラのソフトウェア機能部402による第2アプリケーション105の実行処理の流れの一例について説明する。
エンジニアリングツール401は、第1アプリケーション104を作成し、当該作成した第1アプリケーション104をコンパイルしてコントローラ機能部102に出力する(ステップS501)。その際、CPU400により実行されるOSは、第1アプリケーション104で用いられる変数のデータに対して、共有メモリ2において、当該変数のデータを保存する記憶領域のアドレスを割り当てる(ステップS502)。本実施形態においても、CPU400により実行されるOSは、エンジニアリングツール401からコントローラ機能部102に対して第1アプリケーション104が出力される度に、変数のデータに対してアドレスを割り当て直す。
コントローラ機能部102は、エンジニアリングツール401から入力される第1アプリケーション104で用いられる変数のデータを、共有メモリ2において、当該データに割り当てられたアドレスの記憶領域に保存する(ステップS503)。これにより、共有メモリ2内における変数のデータの配置を最適化する。また、コントローラ機能部102は、共有メモリ2に記憶される変数のデータを用いて、第1アプリケーション104を実行して、I/O機器4との間での制御データの入出力処理など、I/O機器4を制御する処理を行う(ステップS504)。
ソフトウェア機能部402は、インタフェース部403を介して、エンジニアリングツール401に対して、第2アプリケーション105が用いる変数を出力する(ステップS505)。エンジニアリングツール401は、ソフトウェア機能部402から変数が入力されると、当該変数のデータを、インタフェース部403を介して、ソフトウェア機能部402に出力する(ステップS506)。
本実施形態では、ソフトウェア機能部402は、第2アプリケーション105が用いる変数のデータを取得する際、エンジニアリングツール401に対して、変数を出力しているが、これに限定するものではない。例えば、第2アプリケーション105が用いる変数のデータが、共有メモリ2において、静的アドレスが示す記憶領域に記憶される変数のデータである場合、ソフトウェア機能部402は、変数に代えて、静的アドレスを、インタフェース部403を介して、エンジニアリングツール401に出力しても良い。ここで、静的アドレスは、変数のデータに対するアドレスの割り当て直しの前後において、共有メモリ2内の同一の記憶領域に保存される変数のデータに付与するアドレスである。すなわち、静的アドレスは、共有メモリ2内において、アドレスの割り当て直しが行われない変数のデータが保存される記憶領域のアドレスである。エンジニアリングツール401は、ソフトウェア機能部402から、静的アドレスが入力された場合、当該入力された静的アドレスの記憶領域に記憶された変数のデータを、インタフェース部403を介して、ソフトウェア機能部402に出力する。
ソフトウェア機能部402は、第2アプリケーション105を実行する。第2アプリケーション105は、エンジニアリングツール401から変数のデータが入力されると、当該データを用いて、I/O機器4の制御結果の表示やI/O機器4の監視等の処理を実行する(ステップS507)。これにより、コントローラ機能部102に第1アプリケーション104を出力する度に、変数のデータに対してアドレスが割り当て直されて、当該変数のデータに割り当てられたアドレスが不明であっても、エンジニアリングツール401から、第2アプリケーション105が用いる変数のデータを取得できるので、共有メモリ2において、変数のデータにアドレスが割り当て直された場合でも、第2アプリケーション105を実行できる。
図6は、第2の実施形態にかかるプログラマブルコントローラのソフトウェア機能部による第2アプリケーションの実行処理の具体例を説明するための図である。次に、図6を用いて、本実施形態にかかるプログラマブルコントローラのソフトウェア機能部402による第2アプリケーション105の実行処理の具体例について説明する。
ソフトウェア機能部402において第2アプリケーション105を実行する場合、ソフトウェア機能部402は、インタフェース部403を介して、エンジニアリングツール401に対して、第2アプリケーション105が用いる変数(例えば、変数_0001)を出力する。次いで、エンジニアリングツール401は、ソフトウェア機能部402から入力された変数(例えば、変数_0001)に基づいて、当該変数のデータ(例えば、DT_0001)を、インタフェース部403を介して、ソフトウェア機能部402に出力する。そして、ソフトウェア機能部402の第2アプリケーション105は、エンジニアリングツール401から入力された変数のデータ(例えば、DT_0001)を用いて、I/O機器4の制御結果の表示やI/O機器4の監視等の処理を行う。これにより、ソフトウェア機能部402において、第2アプリケーション105を実行する際に、共有メモリ2から変数のデータを読み出す必要が無いため、共有メモリ2へのアクセスにより生じる処理負荷を軽減でき、共有メモリ2に記憶される変数のデータを用いて実行される第1アプリケーション104による処理(例えば、入出力処理)が滞ることを防止できる。
このように、第2の実施形態にかかるプログラマブルコントローラによれば、コントローラ機能部102に第1アプリケーション104を出力する度に、変数のデータに対してアドレスが割り当て直されて、当該変数のデータに割り当てられたアドレスが不明であっても、エンジニアリングツール401から、第2アプリケーション105が用いる変数のデータを取得できるので、共有メモリ2において、変数のデータにアドレスが割り当て直された場合でも、第2アプリケーション105を実行できる。
(第3の実施形態)
本実施形態は、共有メモリとは異なる記憶部をさらに備え、エンジニアリングツールは、作成したテーブルを記憶部に保存し、ソフトウェア機能部は、記憶部に記憶されるテーブルにおいて、第2アプリケーションで用いる変数と対応付けられるアドレスを特定するAPIを含む例である。以下の説明では、第1の実施形態と同様の構成については説明を省略する。
本実施形態は、共有メモリとは異なる記憶部をさらに備え、エンジニアリングツールは、作成したテーブルを記憶部に保存し、ソフトウェア機能部は、記憶部に記憶されるテーブルにおいて、第2アプリケーションで用いる変数と対応付けられるアドレスを特定するAPIを含む例である。以下の説明では、第1の実施形態と同様の構成については説明を省略する。
図7は、第3の実施形態にかかるプログラマブルコントローラの構成の一例を示す図である。本実施形態にかかるプログラマブルコントローラは、CPU700、共有メモリ2、および通信I/F3に加えて、共有メモリ2とは異なる記憶部の一例であるHDD(Hard Disk Drive)705を備える。また、本実施形態にかかるプログラマブルコントローラのCPU700は、エンジニアリングツール701およびソフトウェア機能部702における処理が、第1の実施形態にかかるプログラマブルコントローラと異なる。
本実施形態では、エンジニアリングツール701は、コントローラ機能部102に対して第1アプリケーション104を出力する度に作成する変数データテーブルを、HDD705に保存する。
本実施形態では、ソフトウェア機能部702のAPI704は、ミドルウェア703を介して、第2アプリケーション105が用いる変数を取得する。そして、API704は、HDD705に記憶される変数データテーブルにおいて、ミドルウェア703から取得した変数と対応付けられるアドレスを特定し、特定したアドレスを、ミドルウェア703を介して、第2アプリケーション105に通知する。そして、第2アプリケーション105は、共有メモリ2において、API704により特定されたアドレスの記憶領域から変数のデータを読み出す。
これにより、コントローラ機能部102に第1アプリケーション104を出力する度に、変数のデータに対してアドレスが割り当て直された場合でも、ソフトウェア機能部702において共有メモリ2内で変数のデータが記憶された記憶領域を特定できるので、共有メモリ2において、変数のデータにアドレスが割り当て直された場合でも、共有メモリ2から変数のデータを読み出して、第2アプリケーション105を実行できる。
図8は、第3の実施形態にかかるプログラマブルコントローラのソフトウェア機能部による第2アプリケーションの実行処理の流れの一例を示すフローチャートである。次に、図8を用いて、本実施形態にかかるプログラマブルコントローラのソフトウェア機能部702による第2アプリケーション105の実行処理の流れの一例について説明する。以下の説明では、図2と同様の処理については説明を省略する。
エンジニアリングツール701は、コントローラ機能部102に対して第1アプリケーション104を出力する度に、変数データテーブルを作成し、当該作成した変数データテーブルをHDD705に保存する(ステップS801)。これにより、変数データテーブルを、ソフトウェア機能部702により参照可能とする。
その後、ソフトウェア機能部702の第2アプリケーション105は、当該第2アプリケーション105が用いる変数を、ミドルウェア703を介して、API704に出力する(ステップS802)。次いで、API704は、HDD705に記憶される変数データテーブルにおいて、ミドルウェア703から入力される変数と対応付けられるアドレスを特定する(ステップS803)。そして、API704は、特定したアドレスを、ミドルウェア703を介して、第2アプリケーション105に通知する。第2アプリケーション105は、共有メモリ2から、API704により特定されたアドレスの記憶領域に記憶される変数のデータを読み出す(ステップS804)。さらに、第2アプリケーション105は、読み出された変数のデータを用いて、I/O機器4の制御結果の表示やI/O機器4の制御処理の監視等の処理を実行する(ステップS209)。
図9は、第3の実施形態にかかるプログラマブルコントローラのソフトウェア機能部により第2アプリケーションの実行処理の具体例を説明するための図である。例えば、エンジニアリングツール701は、コントローラ機能部102に対して、第1アプリケーション104を出力する。その後、エンジニアリングツール701は、第1アプリケーション104を出力する度に作成する変数データテーブルを、HDD705に保存する。
そして、コントローラ機能部102によって、共有メモリ2に記憶される変数のデータを用いて第1アプリケーション104が実行されて、I/O機器4との間で制御データの入出力処理等が行われると、ソフトウェア機能部702の第2アプリケーション105は、ミドルウェア703を介して、API704に対して、I/O機器4の制御結果の表示やI/O機器4の制御処理の監視等の処理で用いる変数を出力する。
API704は、変数(例えば、変数_0001)が入力されると、HDD705に記憶される変数データテーブルにおいて、変数(例えば、変数_0001)と対応付けられるアドレス(例えば、AD1_0001)を特定する。そして、API704は、特定したアドレス(例えば、AD1_0001)を、ミドルウェア703を介して、第2アプリケーション105に通知する。第2アプリケーション105は、共有メモリ2から、API704により特定されたアドレス(例えば、AD1_0001)の記憶領域に記憶される変数のデータ(例えば、DT_0001)を読み出す。第2アプリケーション105は、読み出された変数のデータ(例えば、DT_0001)を用いて、I/O機器4の制御結果の表示やI/O機器4の監視等の処理を実行する。これにより、共有メモリ2に対して1回アクセスするだけで、変数のデータを取得できるので、共有メモリ2のアクセスによりソフトウェア機能部702にかかる処理負荷を軽減できる。
このように、第3の実施形態にかかるプログラマブルコントローラによれば、コントローラ機能部102に第1アプリケーション104を出力する度に、変数のデータに対してアドレスが割り当て直された場合でも、ソフトウェア機能部702において共有メモリ2内で変数のデータが記憶された記憶領域を特定できるので、共有メモリ2において、変数のデータにアドレスが割り当て直された場合でも、共有メモリ2から変数のデータを読み出して、第2アプリケーション105を実行できる。
(第4の実施形態)
本実施形態は、ソフトウェア機能部により参照可能な変数データテーブルを作成する処理、またはインタフェース部を介して、ソフトウェア機能部から入力された変数のデータをソフトウェア機能部に出力する処理を選択可能とする例である。以下の説明では、上述の実施形態と同様の構成については説明を省略する。
本実施形態は、ソフトウェア機能部により参照可能な変数データテーブルを作成する処理、またはインタフェース部を介して、ソフトウェア機能部から入力された変数のデータをソフトウェア機能部に出力する処理を選択可能とする例である。以下の説明では、上述の実施形態と同様の構成については説明を省略する。
図10は、第4の実施形態にかかるプログラマブルコントローラの構成の一例を示す図である。本実施形態にかかるプログラマブルコントローラのCPU1000は、エンジニアリングツール1001、コントローラ機能部102、ソフトウェア機能部1002、およびインタフェース部403を有する。
本実施形態では、エンジニアリングツール1001は、コントローラ機能部102に対して第1アプリケーション104を出力する度に作成する変数データテーブルを、共有メモリ2、またはHDD705に保存する。これにより、ソフトウェア機能部1002において変数データテーブルを参照可能となるので、コントローラ機能部102に第1アプリケーション104を出力する度に、変数のデータに対してアドレスが割り当て直された場合でも、第2アプリケーション105を実行できる。
また、本実施形態では、エンジニアリングツール1001は、インタフェース部403を介して、ソフトウェア機能部1002から、変数が入力される。そして、エンジニアリングツール1001は、入力された変数のデータを、インタフェース部403を介して、ソフトウェア機能部1002に出力する。これにより、コントローラ機能部102に第1アプリケーション104を出力する度に、変数のデータに対してアドレスが割り当て直された場合でも、ソフトウェア機能部1002がエンジニアリングツール1001から変数のデータを取得できるので、共有メモリ2において、変数のデータにアドレスが割り当て直された場合でも、エンジニアリングツール1001から入力される変数のデータを用いて、第2アプリケーション105を実行できる。
本実施形態では、ソフトウェア機能部1002は、第2アプリケーション105が用いる変数のデータを取得する方法を適宜切り替える。ソフトウェア機能部1002の第2アプリケーション105は、共有メモリ2から変数のデータを取得する場合、図2に示す処理の流れと同様に、共有メモリ2に記憶される変数データテーブルを参照して、I/O機器4の制御結果の表示やI/O機器4の監視等の処理で用いる変数のデータと対応付けられるアドレスを特定する。そして、第2アプリケーション105は、共有メモリ2において、特定したアドレスの記憶領域に記憶される変数のデータを読み出し、当該読み出した変数のデータを用いて、I/O機器4の制御結果の表示やI/O機器4の監視等の処理を実行する。または、ソフトウェア機能部1002のAPI704は、図8に示す処理の流れと同様に、HDD705に記憶される変数データテーブルを参照して、I/O機器4の制御結果の表示やI/O機器4の監視等の処理で用いる変数のデータと対応付けられるアドレスを特定する。そして、第2アプリケーション105は、共有メモリ2において、API704により特定されたアドレスの記憶領域に記憶される変数のデータを読み出し、当該読み出した変数のデータを用いて、I/O機器4の制御結果の表示やI/O機器4の監視等の処理を実行する。
一方、ソフトウェア機能部1002は、エンジニアリングツール1001から変数のデータを取得する場合、図5に示す処理の流れと同様に、インタフェース部403を介して、第2アプリケーション105が用いる変数を、エンジニアリングツール1001に対して出力する。そして、ソフトウェア機能部1002の第2アプリケーション105は、エンジニアリングツール1001から入力される変数のデータを用いて、I/O機器4の制御結果の表示やI/O機器4の監視等の処理を実行する。
図11は、第4の実施形態にかかるプログラマブルコントローラのソフトウェア機能部による第2アプリケーションの実行処理の具体例を説明するための図である。例えば、エンジニアリングツール1001は、コントローラ機能部102に対して、第1アプリケーション104を出力する。その後、エンジニアリングツール1001は、第1アプリケーション104を出力する度に作成する変数データテーブルを、HDD705に保存する。
その後、ソフトウェア機能部1002は、外部装置から、エンジニアリングツール1001からの変数のデータの取得が指示された場合、インタフェース部403を介して、エンジニアリングツール1001に対して変数(例えば、変数_0000)を出力する。エンジニアリングツール1001は、ソフトウェア機能部1002から入力された変数(例えば、変数_0000)が入力されると、インタフェース部403を介して、当該入力された変数のデータ(例えば、DT_0000)を、ソフトウェア機能部1002に出力する。そして、ソフトウェア機能部1002の第2アプリケーション105は、エンジニアリングツール1001から入力された変数のデータ(例えば、DT_0000)を用いて、I/O機器4の制御結果の表示やI/O機器4の監視等の処理を実行する。
一方、ソフトウェア機能部1002の第2アプリケーション105は、外部装置から、共有メモリ2からの変数のデータの取得が指示された場合、ミドルウェア703を介して、API704に対して変数(例えば、変数_0001)を出力する。API704は、HDD705に記憶される変数データテーブルにおいて、入力された変数(例えば、変数_0001)と対応付けられたアドレス(例えば、AD1_0001)を特定する。第2アプリケーション105は、共有メモリ2において、API704により特定されたアドレス(例えば、AD1_0001)の記憶領域から変数のデータ(例えば、DT_0001)を読み出す。その後、ソフトウェア機能部1002の第2アプリケーション105は、読み出した変数のデータ(例えば、DT_0001)を用いて、I/O機器4の制御結果の表示やI/O機器4の監視等の処理を実行する。
このように、第4の実施形態にかかるプログラマブルコントローラによれば、コントローラ機能部102に第1アプリケーション104を出力する度に、変数のデータに対してアドレスが割り当て直された場合でも、共有メモリ2内で変数のデータが記憶された記憶領域をソフトウェア機能部1002が特定できるので、共有メモリ2において、変数のデータにアドレスが割り当て直された場合でも、共有メモリ2から変数のデータを読み出して、第2アプリケーション105を実行できる。または、エンジニアリングツール1001から、第2アプリケーション105の実行に用いる変数のデータを取得できるので、共有メモリ2において、変数のデータにアドレスが割り当て直された場合でも、第2アプリケーション105を実行できる。
以上説明したとおり、第1から第4の実施形態によれば、共有メモリ2において、変数のデータにアドレスが割り当て直された場合でも、第2アプリケーション105を実行できる。
なお、本実施形態のプログラマブルコントローラで実行されるプログラムは、ROM(Read Only Memory)等に予め組み込まれて提供される。本実施形態のプログラマブルコントローラで実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
さらに、本実施形態のプログラマブルコントローラで実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態のプログラマブルコントローラで実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
本実施形態のプログラマブルコントローラで実行されるプログラムは、上述した各部(エンジニアリングツール101,401,701,1001、コントローラ機能部102、ソフトウェア機能部103,402,702,1002、インタフェース部403)を含むモジュール構成となっており、実際のハードウェアとしてはCPU1,400,700,1000が上記ROMからプログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、エンジニアリングツール101,401,701,1001、コントローラ機能部102、ソフトウェア機能部103,402,702,1002、インタフェース部403が主記憶装置上に生成されるようになっている。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1,400,700,1000 CPU
2 共有メモリ
3 通信I/F
4 I/O機器
101,401,701,1001 エンジニアリングツール
102 コントローラ機能部
103,402,702,1002 ソフトウェア機能部
104 第1アプリケーション
105 第2アプリケーション
106,703 ミドルウェア
107,704 API
403 インタフェース部
705 HDD
2 共有メモリ
3 通信I/F
4 I/O機器
101,401,701,1001 エンジニアリングツール
102 コントローラ機能部
103,402,702,1002 ソフトウェア機能部
104 第1アプリケーション
105 第2アプリケーション
106,703 ミドルウェア
107,704 API
403 インタフェース部
705 HDD
Claims (5)
- 共有メモリと、
外部装置を制御する第1アプリケーションを作成するエンジニアリングツールと、前記エンジニアリングツールから入力された前記第1アプリケーションで用いられる変数のデータを、前記共有メモリにおいて当該データに割り当てられるアドレスの記憶領域に保存し、前記データを用いて前記第1アプリケーションを実行するコントローラ機能部と、前記共有メモリに記憶される前記データを読み出す第2アプリケーションを実行するソフトウェア機能部と、をプログラムの実行により実現するプロセッサと、を備え、
前記エンジニアリングツールは、前記コントローラ機能部に対して前記第1アプリケーションを出力する度に、前記変数と、当該変数の前記データに割り当てられた前記アドレスと、が対応付けられかつ前記ソフトウェア機能部により参照可能なテーブルを作成する、プログラマブルコントローラ。 - 前記エンジニアリングツールは、前記共有メモリに対して、作成した前記テーブルを保存し、
前記第2アプリケーションは、前記共有メモリに記憶される前記テーブルにおいて、前記変数と対応付けられる前記アドレスを特定し、当該特定したアドレスの前記記憶領域から前記データを読み出す請求項1に記載のプログラマブルコントローラ。 - 前記共有メモリとは異なる記憶部をさらに備え、
前記エンジニアリングツールは、作成した前記テーブルを前記記憶部に保存し、
前記ソフトウェア機能部は、前記記憶部に記憶される前記テーブルにおいて、前記第2アプリケーションで用いる前記変数と対応付けられる前記アドレスを特定するAPI(Application Programming Interface)を含み、
前記第2アプリケーションは、前記APIにより特定される前記アドレスの前記記憶領域から前記データを読み出す請求項1に記載のプログラマブルコントローラ。 - 共有メモリと、
外部装置を制御する第1アプリケーションを作成するエンジニアリングツールと、前記エンジニアリングツールから入力された前記第1アプリケーションで用いられる変数のデータを、前記共有メモリにおいて当該データに割り当てられるアドレスの記憶領域に保存し、前記データを用いて前記第1アプリケーションを実行するコントローラ機能部と、前記共有メモリに記憶される前記データを読み出す第2アプリケーションを実行するソフトウェア機能部と、前記エンジニアリングツールと前記ソフトウェア機能部との間で通信可能とするインタフェース部と、をプログラムの実行により実現するプロセッサと、を備え、
前記エンジニアリングツールは、前記インタフェース部を介して、前記ソフトウェア機能部から、前記第2アプリケーションが用いる前記変数が入力され、入力された前記変数の前記データを前記ソフトウェア機能部に出力する、プログラマブルコントローラ。 - 共有メモリと、
外部装置を制御する第1アプリケーションを作成するエンジニアリングツールと、当該エンジニアリングツールから入力された前記第1アプリケーションで用いられる変数のデータを、前記共有メモリにおいて当該データに割り当てられるアドレスの記憶領域に保存し、前記データを用いて前記第1アプリケーションを実行するコントローラ機能部と、前記共有メモリに記憶される前記データを読み出す第2アプリケーションを実行するソフトウェア機能部と、前記エンジニアリングツールと前記ソフトウェア機能部との間で通信可能とするインタフェース部と、をプログラムの実行により実現するプロセッサと、を備え、
前記エンジニアリングツールは、
前記コントローラ機能部に対して前記第1アプリケーションを出力する度に、前記変数と、当該変数の前記データに割り当てられた前記アドレスと、が対応付けられかつ前記ソフトウェア機能部により参照可能なテーブルを作成し、かつ
前記インタフェース部を介して、前記ソフトウェア機能部から、前記第2アプリケーションが用いる前記変数が入力され、当該変数の前記データを前記ソフトウェア機能部に出力する、プログラマブルコントローラ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018027217A JP2019144762A (ja) | 2018-02-19 | 2018-02-19 | プログラマブルコントローラ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018027217A JP2019144762A (ja) | 2018-02-19 | 2018-02-19 | プログラマブルコントローラ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019144762A true JP2019144762A (ja) | 2019-08-29 |
Family
ID=67773782
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018027217A Pending JP2019144762A (ja) | 2018-02-19 | 2018-02-19 | プログラマブルコントローラ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2019144762A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020008942A (ja) * | 2018-07-03 | 2020-01-16 | オムロン株式会社 | コンパイル装置およびコンパイル方法 |
JP2020008941A (ja) * | 2018-07-03 | 2020-01-16 | オムロン株式会社 | 制御装置および制御方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09128018A (ja) * | 1995-11-01 | 1997-05-16 | Fuji Electric Co Ltd | マルチプロセッサ式コントローラ用プログラミング装置 |
JP2003291033A (ja) * | 2002-04-02 | 2003-10-14 | Sodick Co Ltd | 数値制御プログラム作成方法と数値制御放電加工装置 |
-
2018
- 2018-02-19 JP JP2018027217A patent/JP2019144762A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09128018A (ja) * | 1995-11-01 | 1997-05-16 | Fuji Electric Co Ltd | マルチプロセッサ式コントローラ用プログラミング装置 |
JP2003291033A (ja) * | 2002-04-02 | 2003-10-14 | Sodick Co Ltd | 数値制御プログラム作成方法と数値制御放電加工装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020008942A (ja) * | 2018-07-03 | 2020-01-16 | オムロン株式会社 | コンパイル装置およびコンパイル方法 |
JP2020008941A (ja) * | 2018-07-03 | 2020-01-16 | オムロン株式会社 | 制御装置および制御方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106547701B (zh) | 记忆装置及数据读取方法 | |
JP2017059229A (ja) | 算術演算を行う方法及び処理装置 | |
US10210109B2 (en) | Pre-allocating memory buffers by physical processor and using a bitmap metadata in a control program | |
JP2019144762A (ja) | プログラマブルコントローラ | |
US11029924B2 (en) | Program optimization by converting code portions to directly reference internal data representations | |
US8266416B2 (en) | Dynamic reconfiguration supporting method, dynamic reconfiguration supporting apparatus, and dynamic reconfiguration system | |
Sparrow | The importance of contextual relevance | |
US8375371B2 (en) | Importance-based call graph construction | |
WO2020158347A1 (ja) | 情報処理装置、方法およびプログラム | |
CN110737533B (zh) | 一种任务调度方法、装置及电子设备和存储介质 | |
JP2015210728A (ja) | プラント制御装置、プラント制御プログラム、およびプラント制御方法 | |
JP2015184824A (ja) | 情報処理プログラム、情報処理方法および情報処理装置 | |
US10083011B2 (en) | Smart tuple class generation for split smart tuples | |
KR20200081502A (ko) | 설계 지원 장치, 설계 지원 방법 및 기록 매체에 저장된 프로그램 | |
KR102179385B1 (ko) | 명령어를 실행하는 방법 및 프로세서, 명령어를 부호화하는 방법 및 장치 및 기록매체 | |
US20200174822A1 (en) | Startup method and apparatus for virtual machine, and smart terminal | |
US9904520B2 (en) | Smart tuple class generation for merged smart tuples | |
US20130318509A1 (en) | Generating object code from a conjoined assembler directive | |
JPWO2018225747A1 (ja) | 分散システム、データ管理装置、データ管理方法、及びコンピュータ読み取り可能な記録媒体 | |
WO2015163219A1 (ja) | 制御装置 | |
JP2009206606A (ja) | 情報処理装置 | |
KR20150062877A (ko) | 재구성 가능 프로세서의 레지스터를 제어하는 방법 및 장치와 재구성 가능 프로세서의 레지스터를 제어하는 명령어를 생성하는 방법 및 장치 | |
JP6243291B2 (ja) | 設計支援装置と設計支援プログラム | |
US9207926B2 (en) | Dynamic image composition system employing fenced applications | |
JP2014178871A (ja) | 情報処理装置及びそのコンテンツファイル変換処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20201106 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210721 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210803 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20220215 |