(57)【要約】【課題】ＰＬＣの制御プログラムをダウンロードすることなく、特定の処理単位を有効又は無効にできるＰＬＣを提供する。【解決手段】ＰＬＣを制御するための制御プログラムに対応するコードを受信する受信部と、前記コードを記憶する記憶部と、前記記憶部に記憶された前記コードに基づいて、前記制御プログラムに対応する論理回路を構成し、実行する演算部と、を備え、前記記憶部は、前記制御プログラムにおける特定の処理単位の実行を有効又は無効にするための仮想スイッチと、該仮想スイッチのオン／オフを定義するためのレジスタと、を有し、前記受信部は、前記特定の処理単位を有効又は無効にする指示を受信し、前記演算部は、前記受信部で前記指示を受信すると、対応する前記レジスタの値を変更して、前記仮想スイッチをオン又はオフする。【選択図】  図１
2020181383.tif 000002
【特許請求の範囲】
【請求項１】
プログラマブルロジックコントローラを制御するための制御プログラムに対応するコードを受信する受信部と、
前記コードを記憶する記憶部と、
前記記憶部に記憶された前記コードに基づいて、前記制御プログラムに対応する論理回路を構成し、実行する演算部と、
を備え、
前記記憶部は、前記制御プログラムにおける特定の処理単位の実行を有効又は無効にするための仮想スイッチと、該仮想スイッチのオン／オフを定義するためのレジスタと、を有し、
前記受信部は、前記特定の処理単位を有効又は無効にする指示を受信し、
前記演算部は、前記受信部で前記指示を受信すると、対応する前記レジスタの値を変更して、前記仮想スイッチをオン又はオフする、
プログラマブルロジックコントローラ。
【請求項２】
前記特定の処理単位は、複数の処理単位を含み、
前記記憶部は、前記複数の処理単位を範囲指定するための範囲指定レジスタを有し、
前記演算部は、前記受信部で前記指示を受信すると、前記範囲指定レジスタの値を変更し、変更後の前記範囲指定レジスタの値に基づいて、前記仮想スイッチをオン又はオフする、
請求項１に記載のプログラマブルロジックコントローラ。
【請求項３】
前記受信部は、前記複数の処理単位を有効又は無効にする範囲指定を受信し、
前記演算部は、前記範囲指定に基づいて、前記範囲指定レジスタの指定範囲を変更する、
請求項２に記載のプログラマブルロジックコントローラ。
【請求項４】
前記制御プログラムを表示する表示器と、
前記制御プログラムの前記特定の処理単位を有効又は無効にする操作を受け付けるユーザインタフェースと、
をさらに備えた、
請求項１乃至請求項３のいずれか１項に記載のプログラマブルロジックコントローラ。
【請求項５】
請求項１乃至請求項３のいずれか１項に記載のプログラマブルロジックコントローラと、
前記プログラマブルロジックコントローラに接続される情報処理装置と、
を備え、
前記情報処理装置は、
前記制御プログラムを表示する表示器と、
前記制御プログラムの前記特定の処理単位を有効又は無効にする操作を受け付けるユーザインタフェースと、
前記操作に基づいて前記指示を前記プログラマブルロジックコントローラに送信する送信部と、
を備えた、
情報処理システム。
【請求項６】
プログラマブルロジックコントローラを制御するための制御プログラムを表示器に表示する処理と、
前記制御プログラムの編集を受け付ける処理と、
前記制御プログラムに対応するコードをプログラマブルロジックコントローラに送信する処理と、
を情報処理装置に実行させるプログラムであって、
前記制御プログラムの特定の処理単位を有効又は無効にする操作を受け付ける処理と、
前記操作に基づいて前記特定の処理単位を有効又は無効にする指示を送信する処理と、
を前記情報処理装置に実行させ、
前記指示は、前記プログラマブルロジックコントローラに対して、前記特定の処理単位の実行を有効又は無効にするための仮想スイッチを定義するためのレジスタの値を変更させて、前記仮想スイッチをオン又はオフさせるための指示である、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルロジックコントローラを制御するための技術に関する。
【背景技術】
【０００２】
プログラマブルロジックコントローラ（以下、ＰＬＣともいう。）は、例えばラダープログラムのような制御プログラムを用いて制御される。ラダープログラムは、ＰＬＣと通信可能なパーソナルコンピュータ等の情報処理装置を使用して編集される。ＰＬＣは、編集されたラダープログラムに対応する論理回路を構成し、実行する。
【０００３】
例えば、特許文献１には、ラダープログラムによるプログラム開発の際に、特定の行をコメントアウト可能なＰＬＣの制御プログラムの作成方法が提案されている。特許文献１に記載の発明において、ラダープログラムの特定の行のコメントアウトの設定及び解除は、ラダープログラミングツールを用いて行われる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−２２４５９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述のようにラダープログラム等の制御プログラムは、パーソナルコンピュータ又は専用の端末を用いて編集される。制御プログラムの一部を無効にする場合、制御プログラムの一部を無効化（コメントアウト）して編集した後に、コンパイルしてＰＬＣにダウンロードする必要がある。逆に制御プログラムの一部を有効にする場合も、同様に制御プログラムの編集後に、コンパイルしてＰＬＣにダウンロードする必要がある。
【０００６】
そこで、本発明の目的は、制御プログラムをダウンロードすることなく、特定の処理単位を有効又は無効にできるプログラマブルロジックコントローラ、情報処理システム、及びプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
この発明のプログラマブルロジックコントローラは、プログラマブルロジックコントローラを制御するための制御プログラムに対応するコードを受信する受信部と、前記コードを記憶する記憶部と、前記記憶部に記憶された前記コードに基づいて、前記制御プログラムに対応する論理回路を構成し、実行する演算部と、を備え、前記記憶部は、前記制御プログラムにおける特定の処理単位の実行を有効又は無効にするための仮想スイッチと、該仮想スイッチのオン／オフを定義するためのレジスタと、を有し、前記受信部は、前記特定の処理単位を有効又は無効にする指示を受信し、前記演算部は、前記受信部で前記指示を受信すると、対応する前記レジスタの値を変更して、前記仮想スイッチをオン又はオフすることを特徴とする。
【０００８】
この構成では、制御プログラムにおける特定の処理単位の実行を有効又は無効にするための仮想スイッチを有する。演算部は、受信部が受信する指示に基づいて、仮想スイッチのオン／オフを定義するレジスタの値を変更する。レジスタの値が変更されると、レジスタに対応する仮想スイッチがオン又はオフに切り替えられる。この場合、制御プログラム自体は変更されない。これにより、制御プログラムにおける特定の処理単位の実行を有効又は無効にするために、制御プログラムを再度ダウンロードする必要がない。
【０００９】
また、前記特定の処理単位は、複数の処理単位を含み、前記記憶部は、前記複数の処理単位を範囲指定するための範囲指定レジスタを有し、前記演算部は、前記受信部で前記指示を受信すると、前記範囲指定レジスタの値を変更し、変更後の前記範囲指定レジスタの値に基づいて、前記仮想スイッチをオン又はオフしてもよい。
【００１０】
この構成では、範囲指定レジスタの値を変更することで、範囲指定レジスタに対応する制御プログラムにおける特定の処理単位の実行を有効又は無効にできる。
【００１１】
また、前記受信部は、前記複数の処理単位を有効又は無効にする範囲指定を受信し、前記演算部は、前記範囲指定に基づいて、前記範囲指定レジスタの指定範囲を変更してもよい。
【００１２】
この構成では、ユーザは、複数の処理単位に亘って有効又は無効にする範囲指定を一度に設定することができる。例えば、ユーザは、１〜１０行目の範囲のような複数の行に亘る処理単位を設定し変更できる。これにより、ユーザは、特定の処理単位を1単位毎に指定することがないため、切り替え操作が簡易になる。
【００１３】
また、前記制御プログラムを表示する表示器と、前記制御プログラムの前記特定の処理単位を有効又は無効にする操作を受け付けるユーザインタフェースと、をさらに備えてもよい。
【００１４】
この構成では、ユーザは、表示器に表示される制御プログラムを確認しながら、ユーザインタフェースを介して特定の処理単位を有効又は無効にする操作を行うことができる。これにより、ユーザは、他の情報処理装置を用いることなく、プログラマブルロジックコントローラのみで特定の処理単位を有効又は無効にすることができる。
【００１５】
この発明の情報処理システムは、前記プログラマブルロジックコントローラと、前記プログラマブルロジックコントローラに接続される情報処理装置と、を備え、前記情報処理装置は、前記制御プログラムを表示する表示器と、前記制御プログラムの前記特定の処理単位を有効又は無効にする操作を受け付けるユーザインタフェースと、前記操作に基づいて前記指示を前記プログラマブルロジックコントローラに送信する送信部と、を備えてもよい。
【００１６】
この構成では、情報処理装置及びプログラマブルロジックコントローラは、互いに接続されている。ユーザは、情報処理装置の表示器に表示される制御プログラムを確認しながら、ユーザインタフェースを介して特定の処理単位を有効又は無効にする指示を入力することができる。この場合も、情報処理装置からプログラマブルロジックコントローラへ制御プログラムを再度ダウンロードする必要がない。
【発明の効果】
【００１７】
この発明によれば、制御プログラムを再度ダウンロードすることなく、制御プログラムの一部の無効又は有効を切り替えることができる。
【図面の簡単な説明】
【００１８】
【図１】図１は、情報処理システム１の構成を示すブロック図である。
【図２】図２（Ａ）は、情報処理システム１でラダープログラムを使用する場合の表示器２１の表示態様の一例を示す図である。図２（Ｂ）は、情報処理システム１でラダープログラムの特定の行を有効又は無効にする指示を説明するための図である。図２（Ｃ）は、ＰＬＣ１０で構成される実際の論理回路を示す図である。
【図３】図３は、プログラマブルロジックコントローラ１０の変形例１を示すブロック図である。
【図４】図４（Ａ）及び図４（Ｂ）は、変形例１で所定の範囲を有効又は無効にする指示を説明するための図である。
【図５】図５は、ＰＬＣ１０の変形例２に係るＰＬＣ５０を示すブロック図である。
【発明を実施するための形態】
【００１９】
図１は、プログラマブルロジックコントローラ１０を使用した実施形態に係る情報処理システム１の主要構成を示すブロック図である。図２（Ａ）は、情報処理システム１でラダープログラムを使用する場合の表示器２１の表示態様の一例を示す図である。図２（Ｂ）は、情報処理システム１でラダープログラムの特定の行を有効又は無効にする指示を説明するための図である。図２（Ｃ）は、ＰＬＣ１０で構成される実際の論理回路を示す図である。
【００２０】
図１に示すように、情報処理システム１は、情報処理装置２０と、ＰＬＣ１０とを備える。情報処理装置２０は、ＰＬＣ１０と通信可能に接続されている。
【００２１】
情報処理装置２０は、例えばパーソナルコンピュータ、又はプログラミングコンソール等である。情報処理装置２０は、表示器２１、ユーザインタフェース（ユーザＩ／Ｆ）２２、送信部２３、メモリ２４、ＣＰＵ（ＣｅｎｔｒａｌＰｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ）２５、ＲＡＭ（Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）２６、及びバス２９を備える。バス２９は、表示器２１、ユーザインタフェース（ユーザＩ／Ｆ）２２、送信部２３、メモリ２４、ＣＰＵ２５、及びＲＡＭ２６を接続している。
【００２２】
ＣＰＵ２５は、情報処理装置２０の動作を制御する制御部である。ＣＰＵ２５は、記憶媒体であるメモリ２４に記憶された所定のプログラムをＲＡＭ２６に読み出して実行することにより各種の動作を行なう。
【００２３】
図２（Ａ）に示すように、表示器２１は、ＰＬＣ１０を制御するための制御プログラムを開発（編集）する支援ツール２１０を表示する。制御プログラムは、例えばラダープログラム、ファンクションブロックダイアグラム、シーケンシャルファンクションチャート、インストラクションリスト、又はストラクチャードテキスト等を含む。本実施形態においては、一例としてラダープログラムを制御プログラムとして使用する場合について説明する。すなわち、ＰＬＣ１０は、ラダープログラムを用いて制御される。
【００２４】
ラダープログラムは、支援ツール２１０で編集される。支援ツール２１０は、プログラム表示領域２１１を備える。ラダープログラムは、プログラム表示領域２１１に表示される。ユーザは以下で説明するユーザＩ／Ｆ２２により、支援ツール２１０に入力できる。
【００２５】
ラダープログラムは、ＰＬＣ１０で実行する論理回路を表したものである。ラダープログラムは、論理回路を複数の行として表す。ラダープログラムの各行は、本発明の「処理単位」の一例である。
【００２６】
例えば、図２（Ａ）では、一行目は、スイッチＭ００００がオンになると、コイルＭ２０００が作動する論理回路を示している。支援ツール２１０で編集されたラダープログラムは、ＰＬＣ１０で読み込まれるようにコードにコンパイルされる。これにより、ラダープログラムは、対応するコードにコンパイルされる。また、情報処理装置２０は、ラダープログラムに対応するコードをＰＬＣ１０に転送する。ＰＬＣ１０は、ラダープログラムに対応するコードをダウンロードして、論理回路を構成し、実行する。
【００２７】
ユーザＩ／Ｆ２２は、例えばマウスやキーボード、タッチパネル等の入力装置である。ユーザＩ／Ｆ２２は、ユーザから操作を受け付ける。例えば、ユーザＩ／Ｆ２２は、ラダープログラムの特定の行を有効又は無効にする指示を受け付ける。例えば、ユーザは、マウス操作により図２（Ａ）に示す画面上の二行目の行にカーソルを合わせて選択することにより、二行目の行を無効にする指示の入力ができる。
【００２８】
二行目の行を無効にすると、図２（Ｂ）に示すように、表示器２１は、ラダープログラム二行目の行を薄く表示する。これにより、ユーザは、ラダープログラムの二行目の行を無効にする指示を入力したことを確認できる。また、無効の行の表示の仕方は、ラダープログラム特定の行を薄く表示するのみに限らない。表示器２１は、ラダープログラムの特定の行が有効であるか、又は無効であるかがユーザに解るように表示の仕方を変えればよい。例えば、表示器２１は、特定の行を破線で表示する、特定の行の色を変えて表示する、又は特定の行を消してもよい。
【００２９】
送信部２３は、ユーザがユーザＩ／Ｆ２２へ入力した操作に基づいて、ラダープログラムの特定の行を有効又は無効にする指示をＰＬＣ１０に送信する。上述の例の場合、送信部２３は、ラダープログラムの二行目の行を無効にする指示を送信する。
【００３０】
ＰＬＣ１０は、受信部１１、記憶部１２、演算部１３、及びバス１９を備える。バス１９は、受信部１１、記憶部１２、及び演算部１３を接続している。
【００３１】
受信部１１は、ラダープログラムに対応するコードを受信する。記憶部１２は、受信部１１で受信したコードを記憶する。記憶部１２は、レジスタ１５を有する。レジスタ１５は、スイッチ１２２、コイル１２３、及び仮想スイッチ１４を有する。なお、図２（Ａ）で、スイッチ１２２、コイル１２３、及び仮想スイッチ１４は、それぞれ代表的に一つしか表されていない。実際は、スイッチ１２２、コイル１２３、及び仮想スイッチ１４は、ラダープログラムに基づいた論理回路に使用する数だけ存在している。例えば、仮想スイッチ１４は、ラダープログラムの行の数だけ存在する。
【００３２】
演算部１３は、記憶部１２に記憶されたコードに基づいて、ラダープログラムに対応する論理回路を構成する。演算部１３は、構成した論理回路を実行する。
【００３３】
仮想スイッチ１４は、ラダープログラムにおける全ての行の先頭に定義されている。すなわち、図２（Ｃ）に示すように、実際仮想スイッチ１４は、ラダープログラムの各行の先頭に配置されている。図２（Ｃ）に示すスイッチＭ７０００からスイッチＭ７９９９が、各仮想スイッチ１４に相当する。しかし、仮想スイッチ１４は、通常図２（Ａ）に示すように表示器２１では表示されない。なお、仮想スイッチ１４は、ラダープログラムの一部の行に定義されていてもよく、又は全ての行の先頭に定義されていてもよい。
【００３４】
レジスタ１５は、仮想スイッチ１４を定義し、かつそのオン又はオフを定義する。レジスタ１５の値が１の時、仮想スイッチ１４はオンである。また、レジスタ１５の値が０の時、仮想スイッチ１４はオフである。このように、ＰＬＣ１０は、レジスタ１５の値を変更することにより、仮想スイッチ１４のオン又はオフを切り替えることができる。
【００３５】
情報処理装置２０の送信部２３がＰＬＣ１０へラダープログラムの特定の行を有効又は無効にする指示を送信すると、受信部１１は該指示を受信する。受信部１１が該指示を受信すると、演算部１３は、ラダープログラムの特定の行の仮想スイッチ１４に対応するレジスタ１５の値を変更する。
【００３６】
例えば、受信部１１がラダープログラムの二行目の行を無効にする指示を受信すると、演算部１３は、ラダープログラムの二行目の行の仮想スイッチ１４に対応するレジスタ１５の値を指示に基づいて０に変更する。すると、ラダープログラムの二行目の行の仮想スイッチ１４に対応するスイッチＭ７００１がオフになる。二行目の行の先頭にあるスイッチＭ７００１がオフになると、ラダープログラムの二行目の行のスイッチＭ７００１の後段は、すべて無効とみなされる。これにより、ラダープログラムの二行目が無効になる。
【００３７】
このとき、ラダープログラムの二行目が無効とみなされるが、ラダープログラムの二行目をコメントアウトしているわけではない。すなわち、ラダープログラム自体は、変更されていない。従って、ラダープログラムにおける特定の行の実行を有効又は無効にするために、情報処理装置２０からＰＬＣ１０へ再度ラダープログラムをダウンロードし直す必要がない。これにより、ユーザはラダープログラムをダウンロードし直すことなく、容易にラダープログラムの特定の行の有効又は無効を切り替えることができる。
【００３８】
ＰＬＣは、一般的に安定性が要求される。例えばＰＬＣが工場で大型の装置の制御に使用される場合、安全上の理由からＰＬＣは常に同じ制御をすることが要求される。このため、ＰＬＣ用の制御プログラムは書き換えられないことが好ましい。本実施形態においては、ラダープログラムは変更されないため、ＰＬＣの安定性が確保される。また、ラダープログラムの行数が多い場合、ＰＬＣ１０へのダウンロードは長い時間を要する。本実施形態においては、情報処理装置２０からＰＬＣ１０へ再度ラダープログラムをダウンロードし直す必要がないため、ユーザは迅速にラダープログラムの特定の行の有効又は無効を切り替えることができる。さらに、ユーザは予め有効又は無効を切り替える可能性のあるラダープログラムの行を予想して、先頭に内部リレーを入れておく必要もない。
【００３９】
なお、本実施形態においてラダープログラムの特定の行が一行のみ選択される例について説明したが、複数の行が選択されてもよい。
【００４０】
次に、ＰＬＣ１０の変形例１について説明する。図３は、ＰＬＣ１０の変形例１に係るＰＬＣ３０を示すブロック図である。図４（Ａ）及び図４（Ｂ）は、ＰＬＣ３０で所定の範囲を有効又は無効にする指示を説明するための図である。ＰＬＣ３０の説明については、ＰＬＣ１０と異なるところについてのみ説明を行い、後は省略する。
【００４１】
図３に示すように、ＰＬＣ３０の記憶部１２は、範囲指定レジスタ１６を有する。範囲指定レジスタ１６は、所定の範囲の複数の行を範囲指定する。図４（Ａ）に示すように、ユーザは表示器２１の画面上の不図示のツールバーから、「範囲指定」の欄を選択する。「範囲指定」の欄が選択されると、表示器２１は、ユーザが所定の範囲の複数の行を範囲指定するためのボックス４２を表示する。ユーザは、ラダープログラムの行を範囲指定し、該当する行の実行が有効／無効であるかを選択する。
【００４２】
例えば、ユーザは、ボックス４２の範囲指定欄に２と１０とを入力し、無効のラジオボタンを選択する。このように、ユーザは、ラダープログラムの２から１０行目を範囲指定して無効にする指示を情報処理装置２０に入力することができる。なお、行の範囲指定は、ボックス４２のように数字を入力する入力欄を設けてもよく、又はプルダウン式のリストメニューを設けてもよい。
【００４３】
その後、ユーザがＯＫボタンを押すことにより、送信部２３がＰＬＣ１０へ指示を送信する。演算部１３は、ラダープログラムの２から１０行目の行の仮想スイッチ１４に対応する範囲指定レジスタ１６の値を指示に基づいて０に変更する。これにより、ラダープログラムの２から１０行目に対応する仮想スイッチ１４はオフになる。図４（Ｂ）に示すように、表示器２１は、ラダープログラムの２から１０行目を薄く表示する。また、表示器２１は、無効として選択された行の表示欄４３を表示してもよい。これにより、無効となった行が多い場合、ユーザは範囲を一度に把握することができる。
【００４４】
このように、ユーザは、範囲指定レジスタ１６の値を変更することで、ラダープログラムの特定の範囲の行の実行を有効又は無効にできる。なお、ユーザは、１行のみを指定することもできる。また、変形例１において、ラダープログラムの特定の範囲が一つである例を挙げたが、複数であってもよい。これにより、ユーザは複数の範囲の実行を一度に有効又は無効にできる。
【００４５】
また、演算部１３は、さらに範囲指定レジスタ１６の範囲指定を変更してもよい。受信部１１は、所定の範囲の複数の行を有効又は無効にする範囲指定を受信する。例えば、ユーザは、ラダープログラムの１から１０行目の範囲指定をラダープログラムの１０１から１１０行目に変更することができる。これにより、ラダープログラムの１から１０行目に対応する仮想スイッチ１４はオンになり、ラダープログラムの１０１から１１０行目に対応する仮想スイッチ１４はオフになる。これにより、ユーザは、複数の行に亘って有効又は無効にする範囲指定を一度に設定し変更することができる。従って、ユーザは、ラダープログラムを1行毎に指定する必要が省けるため、切り替え操作が簡易になる。
【００４６】
次に、ＰＬＣ１０の変形例２について説明する。図５は、ＰＬＣ１０の変形例２に係るＰＬＣ５０を示すブロック図である。ＰＬＣ５０の説明については、ＰＬＣ１０と異なるところについてのみ説明を行い、後は省略する。
【００４７】
ＰＬＣ５０は、ラダープログラムを表示する表示器２１と、ラダープログラムの特定の行を有効又は無効にする操作を受け付けるユーザＩ／Ｆ２２と、をさらに備える。バス１９は、受信部１１、記憶部１２、演算部１３、表示器２１、及びユーザＩ／Ｆ２２を接続している。
【００４８】
この構成では、ユーザは、表示器２１に表示されるラダープログラムを確認しながら、ＰＬＣ５０が配置されている現場でユーザＩ／Ｆ２２を介して特定の行を有効又は無効にする操作を行うことができる。これにより、ユーザは、他の情報処理装置を用いることなく、ＰＬＣ５０のみでラダープログラムの特定の行を有効又は無効にすることができる。
【００４９】
上述の実施形態の説明は、すべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上述の実施形態ではなく、特許請求の範囲によって示される。さらに、本発明の範囲には、特許請求の範囲と均等の意味及び範囲内での全ての変更が含まれることが意図される。
【符号の説明】
【００５０】
１…情報処理システム
１０，３０，５０…プログラマブルロジックコントローラ（ＰＬＣ）
１１…受信部
１２…記憶部
１３…演算部
１４…仮想スイッチ
１５…レジスタ
１６…範囲指定レジスタ
１９，２９…バス
２０…情報処理装置
２１…表示器
２３…送信部
２４…メモリ
２５…ＣＰＵ
２６…ＲＡＭ
４２…ボックス
４３…表示欄
１２２…スイッチ
１２３…コイル
２１０…支援ツール
２１１…プログラム表示領域
【図１】
2020181383.tif 000003
【図２】
2020181383.tif 000004
【図３】
2020181383.tif 000005
【図４】
2020181383.tif 000006
【図５】
2020181383.tif 000007