(57)【要約】【課題】特定のシーケンスプログラムの内容に変更を加えることなく、複数のシーケンスプログラムの間で一部のデータを共有化可能なプログラマブルコントローラを提供する。【解決手段】ＰＬＣ装置１０は、第２シーケンスプログラム４２の実行中における第１データ格納部３４へのアクセスの許否に関するアクセス規則６０を設定する規則設定部２８と、第１データ格納部３４のみにアクセスしながら第１シーケンスプログラム４０を実行する一方、設定されたアクセス規則６０に従って第１データ格納部３４及び第２データ格納部３６にアクセスしながら第２シーケンスプログラム４２を実行するプログラム実行部２６を備える。【選択図】図５
2018018248.tif 000002
【特許請求の範囲】
【請求項１】
複数のシーケンスプログラムを実行するプログラマブルコントローラであって、
第１シーケンスプログラムの中で定義される信号メモリの識別子と状態値を対応付けて格納する第１データ格納部と、
前記第１シーケンスプログラムとは異なる第２シーケンスプログラムの中で定義される信号メモリの識別子と状態値を対応付けて格納する第２データ格納部と、
前記第２シーケンスプログラムの実行中における前記第１データ格納部へのアクセスの許否に関するアクセス規則を設定する規則設定部と、
前記第１データ格納部のみにアクセスしながら前記第１シーケンスプログラムを実行する一方、前記規則設定部により設定された前記アクセス規則に従って前記第１データ格納部及び前記第２データ格納部にアクセスしながら前記第２シーケンスプログラムを実行するプログラム実行部と、
を備えることを特徴とするプログラマブルコントローラ。
【請求項２】
請求項１に記載のプログラマブルコントローラにおいて、
前記規則設定部は、前記第１シーケンスプログラム及び前記第２シーケンスプログラムの中で共通に定義される前記信号メモリの識別子毎に、前記状態値へのアクセスの許可属性が付与された前記アクセス規則を設定することを特徴とするプログラマブルコントローラ。
【請求項３】
請求項２に記載のプログラマブルコントローラにおいて、
前記プログラム実行部は、前記第１シーケンスプログラムの実行中に、前記アクセス規則に従って書込許可の属性が付与された前記信号メモリの識別子に関して、前記第１データ格納部における状態値の更新を無効化することを特徴とするプログラマブルコントローラ。
【請求項４】
請求項１〜３のいずれか１項に記載のプログラマブルコントローラにおいて、
前記第２シーケンスプログラムは、前記第１シーケンスプログラムをカスタマイズして作成したシーケンスプログラムであることを特徴とするプログラマブルコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のシーケンスプログラムを実行するプログラマブルコントローラに関する。
【背景技術】
【０００２】
従来から、シーケンスプログラムを実行可能なＰＬＣ装置（Programmable Logic Controller；以下、「プログラマブルコントローラ」ともいう）が開発されている。例えば、１台のプログラマブルコントローラを用いて複数のシーケンスプログラムを実行させる装置が提案されている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−０２５５４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、工作機械の製造業者は、機械の納品と併せてこの機械を制御するためのシーケンスプログラム（以下、本プログラムともいう）をユーザに提供する場合がある。このとき、ユーザは、提供された本プログラムを独自に改変し、カスタマイズされたシーケンスプログラム（以下、改変プログラムともいう）を使用したいという要望がある。
【０００５】
例えば、比較例である図７に示すように、プログラム実行部１は、第１シーケンスプログラム２の実行中に発生するデータを第１データ格納部３に格納し、第２シーケンスプログラム４の実行中に発生するデータを第２データ格納部５に格納する場合を想定する。そして、第１シーケンスプログラム２及び第２シーケンスプログラム４の間で共有しようとするデータ（例えば、非常停止信号）を共有データ格納部６にて格納可能に構成されている。
【０００６】
ところが、第２シーケンスプログラム４の一部を改変するとき、第２データ格納部５のみならず、共有データ格納部６におけるメモリ領域の定義を併せて変更しなければならない場合がある。その結果、共有データ格納部６での定義変更に伴って、第１シーケンスプログラム２の改変を余儀なくされる。
【０００７】
このように、本プログラムと改変プログラムの間でデータを共有させるためには、図７に示すような一般的なデータ管理方法を用いる限り、本プログラムの内容に変更を加える必要が生じる。すなわち、データ共有の簡易化の観点で、改良の余地が十分に残されている。
【０００８】
本発明は上記した問題を解決するためになされたものであり、特定のシーケンスプログラムの内容に変更を加えることなく、複数のシーケンスプログラムの間で一部のデータを共有化可能なプログラマブルコントローラを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係るプログラマブルコントローラは、複数のシーケンスプログラムを実行するコントローラであって、第１シーケンスプログラムの中で定義される信号メモリの識別子と状態値を対応付けて格納する第１データ格納部と、前記第１シーケンスプログラムとは異なる第２シーケンスプログラムの中で定義される信号メモリの識別子と状態値を対応付けて格納する第２データ格納部と、前記第２シーケンスプログラムの実行中における前記第１データ格納部へのアクセスの許否に関するアクセス規則を設定する規則設定部と、前記第１データ格納部のみにアクセスしながら前記第１シーケンスプログラムを実行する一方、前記規則設定部により設定された前記アクセス規則に従って前記第１データ格納部及び前記第２データ格納部にアクセスしながら前記第２シーケンスプログラムを実行するプログラム実行部と、を備える。
【００１０】
このように構成したので、第１シーケンスプログラムの独立性を確保しつつ、第２シーケンスプログラムの実行中であってもアクセス規則に従う範囲内で第１データ格納部（つまり、共有データの格納領域）にもアクセス可能となる。これにより、第１シーケンスプログラムの内容に変更を加えることなく、複数のシーケンスプログラムの間で一部のデータを共有化できる。
【００１１】
また、本発明に係るプログラマブルコントローラに関して、前記規則設定部は、前記第１シーケンスプログラム及び前記第２シーケンスプログラムの中で共通に定義される前記信号メモリの識別子毎に、前記状態値へのアクセスの許可属性が付与された前記アクセス規則を設定してもよい。これにより、共通に定義される信号メモリ毎にきめ細かな設定が可能となる。
【００１２】
また、本発明に係るプログラマブルコントローラに関して、前記プログラム実行部は、前記第１シーケンスプログラムの実行中に、前記アクセス規則に従って書込許可の属性が付与された前記信号メモリの識別子に関して、前記第１データ格納部における状態値の更新を無効化してもよい。これにより、第２シーケンスプログラムの実行結果に起因して、第１シーケンスプログラムによる予期しない動作が発生するのを防止できる。
【００１３】
また、本発明に係るプログラマブルコントローラに関して、前記第２シーケンスプログラムは、前記第１シーケンスプログラムをカスタマイズして作成したシーケンスプログラムであってもよい。第１シーケンスプログラムとの整合性を考慮することなく、高い自由度でカスタマイズを行うことができる。
【発明の効果】
【００１４】
本発明に係るプログラマブルコントローラによれば、特定のシーケンスプログラムの内容に変更を加えることなく、複数のシーケンスプログラムの間で一部のデータを共有化できる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態におけるプログラマブルコントローラ（ＰＬＣ装置）のブロック図である。
【図２】図１に示すプログラム実行部の機能を説明する概略図である。
【図３】図２のアクセス規則の内容を例示する図である。
【図４】プログラム実行部による第１の動作を示す図である。
【図５】プログラム実行部による第２の動作を示す図である。
【図６】プログラム実行部による第３の動作を示す図である。
【図７】共有データ格納部を設けた場合におけるプログラム実行部の動作を説明する概略図である。
【発明を実施するための形態】
【００１６】
以下、本発明に係るプログラマブルコントローラについて好適な実施形態を挙げ、添付の図面を参照しながら説明する。
【００１７】
［ＰＬＣ装置１０の構成］
＜全体構成＞
図１は、本発明の一実施形態におけるプログラマブルコントローラ（以下、ＰＬＣ装置１０という）のブロック図である。ＰＬＣ装置１０は、シーケンスプログラムで定められた順序又は条件に従って、Ｉ／Ｏ機器１２に接続された１つ又は複数の工作機械（不図示）の動作を制御する装置である。このＰＬＣ装置１０は、演算部１４と、記憶部１６と、入出力Ｉ／Ｆ１８と、コネクタ２０と、表示部２２を含んで構成される。
【００１８】
入出力Ｉ／Ｆ１８は、ＰＬＣ装置１０とＩ／Ｏ機器１２の間を通信可能に接続するためのインターフェースである。コネクタ２０は、外部記憶媒体の一形態であるメモリカード２４を挿抜可能に構成される。表示部２２は、演算部１４で生成された表示用データに基づき、作業者向けの可視情報を提供可能である。
【００１９】
演算部１４は、ＣＰＵ（Central Processing Unit）又はＭＰＵ（Micro-Processing Unit）のプロセッサによって構成されている。演算部１４は、記憶部１６に格納されたシステムプログラム（不図示）を読み出し実行することで、複数のシーケンスプログラムを実行するプログラム実行部２６と、シーケンスプログラムの実行中におけるアクセス規則６０（図２及び図３参照）を設定する規則設定部２８を含む各機能を実現可能である。
【００２０】
記憶部１６は、少なくとも１つの揮発性又は不揮発性のメモリ装置から構成される。メモリ装置は、例えば、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、ＰＲＯＭ（Programmable ROM）、ＥＥＰＲＯＭ（Electrically Erasable Programmable ROM）、フラッシュメモリ等で構成される。
【００２１】
本図例では、記憶部１６は、複数のシーケンスプログラムを格納可能なプログラム格納部３２と、第１シーケンスプログラム４０（図２）の実行に関わるデータを格納可能な第１データ格納部３４と、第２シーケンスプログラム４２（図２）の実行に関わるデータを格納可能な第２データ格納部３６を含んで構成される。
【００２２】
＜プログラム実行部２６の構成＞
図２は、図１に示すプログラム実行部２６の機能を説明する概略図である。プログラム実行部２６は、プログラム格納部３２（図１）から読み出した複数のシーケンスプログラム（例えば、第１シーケンスプログラム４０又は第２シーケンスプログラム４２）を択一的に又は並列で実行する。ここで、第１シーケンスプログラム４０は、図示しない工作機械の製造業者が作成したプログラムである。また、第２シーケンスプログラム４２は、エンドユーザとしての作業者が第１シーケンスプログラム４０の一部をカスタマイズして作成したプログラムである。
【００２３】
第１シーケンスプログラム４０は、例えばラダー言語を用いて、複数の信号メモリからなる第１ラダー図４４を記述する。以下、説明を容易にするため、第１ラダー図４４を構成する信号メモリのうち、識別子が「Ｘ０．０」である接点４６、識別子が「Ｘ２．０」である接点４７、及び識別子が「Ｙ０．０」である負荷４８のみに着目する。
【００２４】
第２シーケンスプログラム４２は、例えばラダー言語を用いて、複数の信号メモリからなる第２ラダー図５０を記述する。以下、説明を容易にするため、第２ラダー図５０を構成する信号メモリのうち、識別子が「Ｘ２．０」である接点５２、識別子が「Ｙ０．０」である負荷５３、及び識別子が「Ｙ１．０」である負荷５４のみに着目する。
【００２５】
第１データ格納部３４は、第１シーケンスプログラム４０の実行中に発生する信号（すなわち、信号メモリの状態値）を格納するための第１メモリ領域５６を有する。例えば、接点４６、４７、負荷４８がいずれもビットデバイスである場合、第１メモリ領域５６内には、識別子に応じたアドレスに信号メモリの状態値（１ビット単位）が格納される。
【００２６】
第２データ格納部３６は、第２シーケンスプログラム４２の実行中に発生する信号（すなわち、信号メモリの状態値）を格納するための第２メモリ領域５８を有する。例えば、接点５２、負荷５３、５４がいずれもビットデバイスである場合、第２メモリ領域５８内には、識別子に応じたアドレスに信号メモリの状態値（１ビット単位）が格納される。
【００２７】
ところで、規則設定部２８は、第２シーケンスプログラム４２の実行中における第１データ格納部３４へのアクセスの許否に関するアクセス規則６０を設定する。プログラム実行部２６は、規則設定部２８により設定されたアクセス規則６０に従って第２シーケンスプログラム４２を実行する。
【００２８】
図３に示すように、アクセス規則６０は、第１シーケンスプログラム４０及び第２シーケンスプログラム４２の中で共通に定義される信号メモリに関する、識別子（アドレス）毎の許可属性を示すテーブルデータである。３種類の許可属性のうち「Ｒ」は「読出許可」を、「Ｗ」は「書込許可」を、「Ｒ／Ｗ」は「読出・書込許可」をそれぞれ示す。
【００２９】
本図例では、「Ｘ０００２．０」（接点４７、５２の「Ｘ２．０」に相当）及び「Ｄ００００−００１０」の識別子或いはアドレスには、読出許可のアクセス権限が付与されている。また、「Ｒ０１００」及び「Ｙ００００．０」（負荷４８、５３の「Ｙ０．０」に相当）の識別子或いはアドレスには、書込許可のアクセス権限が付与されている。また、「Ｇ０００８」の識別子或いはアドレスには、読出・書込許可のアクセス権限が付与されている。
【００３０】
このように、規則設定部２８は、第１シーケンスプログラム４０及び第２シーケンスプログラム４２の中で共通に定義される信号メモリの識別子毎に、状態値へのアクセスの許可属性が付与されたアクセス規則６０を設定してもよい。これにより、共通に定義される信号メモリ毎にきめ細かな設定が可能となる。
【００３１】
［プログラム実行部２６の動作］
続いて、アクセス規則６０（図３）が設定されたプログラム実行部２６（図２）の動作について、図４〜図６を参照しながら説明する。
【００３２】
図４は、プログラム実行部２６による第１の動作を示す図である。本図は、信号メモリの識別子が互いに一致しないデータにアクセスする場合を想定する。プログラム実行部２６は、アクセス規則６０に列挙されていない「Ｘ０．０」に対して、通常のアクセス権限（ここでは「読出・書込許可」）を与えながら第１シーケンスプログラム４０を実行する。一方、プログラム実行部２６は、アクセス規則６０に列挙されていない「Ｙ１．０」に対して、通常のアクセス権限（ここでは「読出・書込許可」）を与えながら第２シーケンスプログラム４２を実行する。
【００３３】
図５は、プログラム実行部２６による第２の動作を示す図である。本図は、信号メモリの識別子が互いに一致するデータ（読出許可）にアクセスする場合を想定する。プログラム実行部２６は、アクセス規則６０に列挙されている「Ｘ２．０」に対して、通常のアクセス権限（ここでは「読出許可」）を与えながら第１シーケンスプログラム４０を実行する。一方、プログラム実行部２６は、アクセス規則６０に列挙されている「Ｘ２．０」に対して、アクセス規則６０に従ったアクセス権限（ここでは「読出許可」）を与えながら第２シーケンスプログラム４２を実行する。
【００３４】
図６は、プログラム実行部２６による第３の動作を示す図である。本図は、信号メモリの識別子が互いに一致するデータ（書込許可）にアクセスする場合を想定する。プログラム実行部２６は、アクセス規則６０に列挙されている「Ｙ０．０」に対して、アクセス権限を無効化（「書込不可」に設定）しながら第１シーケンスプログラム４０を実行する。この場合、プログラム実行部２６は、「Ｙ０．０」への書込動作を無効化する代わりに、書込み命令を変更して第１メモリ領域５６内の未使用アドレスを指定することで、第１シーケンスプログラム４０による動作の同一性を保つことができる。
【００３５】
一方、プログラム実行部２６は、アクセス規則６０に列挙されている「Ｙ０．０」に対して、アクセス規則６０に従ったアクセス権限（ここでは「書込許可」）を与えながら第２シーケンスプログラム４２を実行する。
【００３６】
このように、プログラム実行部２６は、第１シーケンスプログラム４０の実行中に、アクセス規則６０に従って書込許可の属性が付与された負荷４８、５３の識別子に関して、第１データ格納部３４における状態値の更新を無効化してもよい。これにより、第２シーケンスプログラム４２の実行結果に起因して、第１シーケンスプログラム４０により予期しない動作が発生するのを防止できる。
【００３７】
［ＰＬＣ装置１０による効果］
以上のように、ＰＬＣ装置１０は、［１］第１シーケンスプログラム４０の中で定義される信号メモリ（接点４６、４７、負荷４８）の識別子と状態値を対応付けて格納する第１データ格納部３４と、［２］第１シーケンスプログラム４０とは異なる第２シーケンスプログラム４２の中で定義される信号メモリ（接点５２、負荷５３、５４）の識別子と状態値を対応付けて格納する第２データ格納部３６と、［３］第２シーケンスプログラム４２の実行中における第１データ格納部３４へのアクセスの許否に関するアクセス規則６０を設定する規則設定部２８と、［４］第１データ格納部３４のみにアクセスしながら第１シーケンスプログラム４０を実行する一方、設定されたアクセス規則６０に従って第１データ格納部３４及び第２データ格納部３６にアクセスしながら第２シーケンスプログラム４２を実行するプログラム実行部２６と、を備える。
【００３８】
このように構成したので、第１シーケンスプログラム４０の独立性を確保しつつ、第２シーケンスプログラム４２の実行中であってもアクセス規則６０に従う範囲内で第１データ格納部３４（つまり、共有データの格納領域）にもアクセス可能となる。これにより、第１シーケンスプログラム４０の内容に変更を加えることなく、第１シーケンスプログラム４０と第２シーケンスプログラム４２の間で一部のデータを共有化できる。
【００３９】
特に、第２シーケンスプログラム４２は、第１シーケンスプログラム４０をカスタマイズして作成したシーケンスプログラムであることが好ましい。なぜならば、第１シーケンスプログラム４０との整合性を考慮することなく、高い自由度でのカスタマイズが可能となるからである。
【００４０】
［備考］
なお、この発明は、上述した実施形態に限定されるものではなく、この発明の主旨を逸脱しない範囲で自由に変更できることは勿論である。或いは、技術的に矛盾が生じない範囲で各々の構成を任意に組み合わせてもよい。
【００４１】
例えば、本実施形態では、プログラム実行部２６が２つのシーケンスプログラムを実行する場合を例に説明したが、本発明は３つ以上のシーケンスプログラムにも適用できる。
【符号の説明】
【００４２】
１０…ＰＬＣ装置（プログラマブルコントローラ）
１２…Ｉ／Ｏ機器                          １４…演算部
１６…記憶部                              １８…入出力Ｉ／Ｆ
２６…プログラム実行部                    ２８…規則設定部
３２…プログラム格納部                    ３４…第１データ格納部
３６…第２データ格納部                    ４０…第１シーケンスプログラム
４２…第２シーケンスプログラム            ４４…第１ラダー図
４６、４７、５２…接点（信号メモリ）      ４８、５３、５４…負荷（信号メモリ）
５０…第２ラダー図                        ５６…第１メモリ領域
５８…第２メモリ領域                      ６０…アクセス規則
【図１】
2018018248.tif 000003
【図２】
2018018248.tif 000004
【図３】
2018018248.tif 000005
【図４】
2018018248.tif 000006
【図５】
2018018248.tif 000007
【図６】
2018018248.tif 000008
【図７】
2018018248.tif 000009