JP2021082030A - プログラム作成支援装置 - Google Patents
プログラム作成支援装置 Download PDFInfo
- Publication number
- JP2021082030A JP2021082030A JP2019209185A JP2019209185A JP2021082030A JP 2021082030 A JP2021082030 A JP 2021082030A JP 2019209185 A JP2019209185 A JP 2019209185A JP 2019209185 A JP2019209185 A JP 2019209185A JP 2021082030 A JP2021082030 A JP 2021082030A
- Authority
- JP
- Japan
- Prior art keywords
- safety
- input
- program
- block
- output
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/313—Logic programming, e.g. PROLOG programming language
Abstract
【課題】本発明は、安全用途に応じた安全プログラムを作成する際に、簡略した手順で安全プログラムを作成可能な仕組みを提供する。【解決手段】本プログラム作成支援装置は、安全コントローラで実行される安全プログラムの作成を支援する。本プログラム作成支援装置は、作成する安全プログラムの安全用途をユーザ入力に従って選択し、選択した安全用途に基づき、安全プログラムを構成する、入力機器からの安全入力信号を割り付けるための入力ブロックと、選択された安全用途に適する安全機能を実現する機能ブロックとを決定し、決定した各ブロックを含む未完成の安全プログラムをプログラム可能に提供し、ユーザ入力に従って、未完成の安全プログラムを補完し、安全プログラムを作成する。【選択図】図12
Description
本発明は、安全システムで動作する安全プログラムの作成を支援するプログラム作成支援装置に関する。
製品(ワーク)を生産する製品工場においては多数の産業機械が稼働している。安全システムは、産業機械から人間の安全を確保するために欠かせないシステムである。安全システムは、一般に、産業機械の稼働エリア内に人間が侵入すると、産業機械を緊急停止させる。
安全システムで動作するコンピュータプログラムは安全プログラムと呼ばれている。安全プログラムは人間の安全を守るものであるから、より正確に設計されなければならない。安全プログラムを作成する作業が複雑であると、バグなどを招きやすい。したがって、安全プログラムをユーザが簡単に作成できるようなプログラムの作成環境を提供することが望ましい。たとえば、複数のファンクションブロックを任意に配置して、いくつかのファンクションブロックを結線することで安全プログラムを作成するファンクション・ブロック・ダイアグラム(FBD)が知られている(特許文献1)。
しかし、上記FBDを用いた安全プログラムの作成であっても専門的な知識が必要であり、正確な設計を行うことができる設計者は限られてしまう。たとえば、安全プログラムはその安全用途(アプリケーション)に適した種々の入力ブロック、ファンクションブロック及び出力ブロックを選択して、それらを好適に配置して構築されなければならない。このように、安全プログラムの作成は特定の開発者(ユーザ)に依存するため、安全システムを構築する上でそれらの開発者の負担が増大してしまう。そこで、安全プログラムについて十分に精通していないユーザであっても簡単にプログラム可能な仕組みが提供されれば、対応可能なユーザが広がり、特定のユーザに対する負担を軽減することができ、システムの構築を容易にすることができる。また、安全プログラムに精通しているユーザに対してもより効率的な作業環境を提供することが望ましい。
そこで、本発明は、安全用途に応じた安全プログラムを作成する際に、簡略した手順で安全プログラムを作成可能な仕組みを提供することを目的とする。
本発明は、たとえば、安全コントローラで実行される安全プログラムの作成を支援するプログラム作成支援装置であって、作成する安全プログラムの安全用途をユーザ入力に従って選択する用途選択手段と、前記用途選択手段によって選択された安全用途に基づき、安全プログラムを構成する、入力機器からの安全入力信号を割り付けるための入力ブロックと、選択された安全用途に適する安全機能を実現する機能ブロックとを決定する決定手段と、前記決定手段によって決定された各ブロックを含む未完成の安全プログラムをプログラム可能に提供する提供手段と、ユーザ入力に従って、前記未完成の安全プログラムを補完し、安全プログラムを作成する作成手段とを備えることを特徴とするプログラム作成支援装置を提供する。
本発明によれば、安全用途が選択されたことにより、基準となる各ブロックの配置及び接続関係を含む未完成の安全プログラムを提供することができ、その後に簡略したユーザ手順で安全プログラムを完成することができる。
以下、添付図面を参照して実施形態が詳しく説明される。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態で説明されている特徴の組み合わせの全てが発明に必須のものとは限らない。実施形態で説明されている複数の特徴のうち二つ以上の特徴が任意に組み合わされてもよい。また、同一または同様の構成には同一の参照番号が付され、重複した説明は省略される。とりわけ、小文字のアルファベットは複数の同種の構成要素を区別するために付与されており、複数の構成要素に共通した説明が記載されるときには、小文字のアルファベットが省略されることがある。
<安全コントローラシステム>
図1はシステムの全体を示している。この例で、安全コントローラシステム1は、メインモジュール(メインコントローラ)3、拡張モジュール4a、4bを有している。メインモジュール3は、ユーザが安全プログラムを作成することを支援する作成支援装置として機能するPC2から転送されてきた安全プログラムを実行する。メインモジュール3は、表示装置5a、操作部6a、通信コネクタ7a、IOコネクタ10aなどを有している。PC2も表示装置5b、および操作部6bを有している。通信コネクタ7aは、USBや有線LANのためのコネクタであってもよい。PC2からの通信ケーブルは通信コネクタ7aに接続されている。有線LANは産業用のイーサネット(登録商標)であってもよい。LANはローカルエリアネットワークの略称である。IOコネクタ10aの入力端子には、緊急停止スイッチやライトカーテンなどの安全入力機器11aが接続される。IOコネクタ10aの出力端子には、ロボットアームなどの産業機器が動力源として接続される。メインモジュール3は、安全入力機器11aから入力される入力値に対して安全プログラムにしたがった演算処理を実行して出力値を求め動力源12へ出力する。たとえば、安全入力機器11aの一種である緊急停止スイッチが押し下げられると、メインモジュール3は、出力値をON(安全)からOFF(安全ではない)に変更する。これにより、動力源12が停止する。メインモジュール3に設けられたIOコネクタ10aだけではすべての安全入力機器および動力源を接続できない場合がある。このような場合には、拡張モジュール4a、4bがメインモジュール3に接続される。拡張モジュール4a、4bはそれぞれIOコネクタ10b、10cを有しており、安全入力機器11bおよび動力源12などを接続できる。拡張モジュール4a、4bとメインモジュール3は相互に通信することで、入力信号および出力信号を受け渡す。つまり、メインモジュール3は、自己に接続された安全入力機器11aおよび拡張モジュール4a、4bに接続された安全入力機器11aから取得した入力信号に安全プログラムを適用することで出力信号を生成する。さらに、メインモジュール3は、安全プログラムに従って生成した出力信号を、自己に接続された動力源12に出力したり、拡張モジュール4a、4bに接続された動力源12に出力したりする。
図1はシステムの全体を示している。この例で、安全コントローラシステム1は、メインモジュール(メインコントローラ)3、拡張モジュール4a、4bを有している。メインモジュール3は、ユーザが安全プログラムを作成することを支援する作成支援装置として機能するPC2から転送されてきた安全プログラムを実行する。メインモジュール3は、表示装置5a、操作部6a、通信コネクタ7a、IOコネクタ10aなどを有している。PC2も表示装置5b、および操作部6bを有している。通信コネクタ7aは、USBや有線LANのためのコネクタであってもよい。PC2からの通信ケーブルは通信コネクタ7aに接続されている。有線LANは産業用のイーサネット(登録商標)であってもよい。LANはローカルエリアネットワークの略称である。IOコネクタ10aの入力端子には、緊急停止スイッチやライトカーテンなどの安全入力機器11aが接続される。IOコネクタ10aの出力端子には、ロボットアームなどの産業機器が動力源として接続される。メインモジュール3は、安全入力機器11aから入力される入力値に対して安全プログラムにしたがった演算処理を実行して出力値を求め動力源12へ出力する。たとえば、安全入力機器11aの一種である緊急停止スイッチが押し下げられると、メインモジュール3は、出力値をON(安全)からOFF(安全ではない)に変更する。これにより、動力源12が停止する。メインモジュール3に設けられたIOコネクタ10aだけではすべての安全入力機器および動力源を接続できない場合がある。このような場合には、拡張モジュール4a、4bがメインモジュール3に接続される。拡張モジュール4a、4bはそれぞれIOコネクタ10b、10cを有しており、安全入力機器11bおよび動力源12などを接続できる。拡張モジュール4a、4bとメインモジュール3は相互に通信することで、入力信号および出力信号を受け渡す。つまり、メインモジュール3は、自己に接続された安全入力機器11aおよび拡張モジュール4a、4bに接続された安全入力機器11aから取得した入力信号に安全プログラムを適用することで出力信号を生成する。さらに、メインモジュール3は、安全プログラムに従って生成した出力信号を、自己に接続された動力源12に出力したり、拡張モジュール4a、4bに接続された動力源12に出力したりする。
<メインモジュールと拡張モジュールのハードウエア>
図2が示すように、メインモジュール3のコントローラ20aは二つのMCU23a、24aとメモリ25aとを有している。コントローラ20aはPC2から受信した安全プログラムをメモリ25aに記憶する。信頼性を高めるためにMCU(マイクロコントローラユニット)は二重化されている。MCU23a、24aはそれぞれメモリ25aに保持されている安全プログラムを実行する。MCU23a、24aは安全入力IF21aを介して安全入力機器11の入力信号およびバスIF26aを介して拡張モジュール4から入力された入力信号に基づき出力信号を生成して安全出力IF22aおよび拡張モジュール4に出力する。たとえば、MCU23a、24aがともにON信号を出力していれば、安全出力IF22aはON信号を出力する。MCU23a、24aのうちの一方または両方がOFF信号を出力していれば、安全出力IF22aはOFF信号を出力する。このようにコントローラ20aは、バスIF26aを介して拡張モジュール4と通信して入力信号を受信したり、出力信号を送信したりする。
図2が示すように、メインモジュール3のコントローラ20aは二つのMCU23a、24aとメモリ25aとを有している。コントローラ20aはPC2から受信した安全プログラムをメモリ25aに記憶する。信頼性を高めるためにMCU(マイクロコントローラユニット)は二重化されている。MCU23a、24aはそれぞれメモリ25aに保持されている安全プログラムを実行する。MCU23a、24aは安全入力IF21aを介して安全入力機器11の入力信号およびバスIF26aを介して拡張モジュール4から入力された入力信号に基づき出力信号を生成して安全出力IF22aおよび拡張モジュール4に出力する。たとえば、MCU23a、24aがともにON信号を出力していれば、安全出力IF22aはON信号を出力する。MCU23a、24aのうちの一方または両方がOFF信号を出力していれば、安全出力IF22aはOFF信号を出力する。このようにコントローラ20aは、バスIF26aを介して拡張モジュール4と通信して入力信号を受信したり、出力信号を送信したりする。
拡張モジュール4のコントローラ20bは二つのMCU23b、24bとメモリ25bとを有している。信頼性を高めるためにMCU(マイクロコントローラユニット)は二重化されている。MCU23b、24bはそれぞれメモリ25bに保持されている制御プログラムを実行する。コントローラ20bは安全入力IF21bを介して安全入力機器11の入力信号を受信すると、バスIF26bを介してメインモジュール3に送信する。コントローラ20bはバスIF26bを介してメインモジュール3から出力信号を受信すると、安全出力IF22bを介して動力源12などに出力する。
<PCのハードウエア>
図3が示すように、PC2は、CPU13、表示装置5b、操作部6b、記憶装置15および通信IF27bを備えている。表示装置5b、操作部6b、記憶装置15および通信IF27bは、それぞれCPU13に対して電気的に接続されている。記憶装置15はRAMやROM、HDD、SSDを含み、さらに着脱可能なメモリカードを含んでもよい。CPUは中央演算処理装置の略称である。ROMはリードオンリーメモリの略称である。RAMはランダムアクセスメモリの略称である。HDDはハードディスクドライブの略称である。SSDはソリッドステートドライブの略称である。
図3が示すように、PC2は、CPU13、表示装置5b、操作部6b、記憶装置15および通信IF27bを備えている。表示装置5b、操作部6b、記憶装置15および通信IF27bは、それぞれCPU13に対して電気的に接続されている。記憶装置15はRAMやROM、HDD、SSDを含み、さらに着脱可能なメモリカードを含んでもよい。CPUは中央演算処理装置の略称である。ROMはリードオンリーメモリの略称である。RAMはランダムアクセスメモリの略称である。HDDはハードディスクドライブの略称である。SSDはソリッドステートドライブの略称である。
記憶装置15は、編集プログラム16、および安全用途関連情報17を記憶する。これらの情報は、後に更新することができる。PC2のユーザは記憶装置15に記憶されている編集プログラム16をCPU13に実行させて、操作部6bを通じて安全プログラムや設定情報などを編集し、メインモジュール3に転送する。設定情報は、メインモジュール3に接続されている拡張モジュール4の識別情報と、IOコネクタ10a〜10cに設けられた各入力端子と各出力端子に接続されている安全入力機器11および動力源12の識別情報(端子割り当て情報)などを含む。安全用途関連情報17は、後述する安全用途の選択において、ユーザに問い合わせるための安全用途に関連する種々の情報を含む。たとえば、安全用途関連情報17は、安全用途ごとに、ユーザが安全用途を選択する際の情報となる選択情報や、選択された安全用途に適した機能ブロックおよび入出力ブロック(入出力機器)の配置情報、接続情報などである。結線情報とは、各ブロック間の入出力の接続関係を示す情報である。
<標準モードのユーザーインターフェース(UI)>
図4はCPU13が編集プログラム16にしたがって表示装置5bに表示する標準モードのUI30を示している。38の表示は、当該編集プログラムが標準モードであることを示している。本実施形態に係る安全プログラムの作成には、詳細にプログラム可能な標準モード(第1モード)と、標準モードよりも容易な手順でプログラム可能なEASYモード(第2モード)とを選択することができるようにしてもよい。標準モードでは、入力機器からの安全入力信号を割り付けるための入力ブロックと、選択された安全用途に適する安全機能を実現する機能ブロック(ファンクションブロックとも称する。)と、安全出力信号を出力する出力ブロックとをユーザが自由に配置及び結線することができる。一方、EASYモードでは、ユーザが安全用途を選択すると、当該安全用途に適した各ブロックの配置及び結線が行われた状態の未完成の安全プログラムが提供され、ユーザはその未完成の安全プログラムを容易な手順で補完することにより完成させることができる。詳細については後述する。なお、本発明はこのような構成に限定されず、例えば、EASYモードのみを含むプログラム支援装置として提供されてもよい。
図4はCPU13が編集プログラム16にしたがって表示装置5bに表示する標準モードのUI30を示している。38の表示は、当該編集プログラムが標準モードであることを示している。本実施形態に係る安全プログラムの作成には、詳細にプログラム可能な標準モード(第1モード)と、標準モードよりも容易な手順でプログラム可能なEASYモード(第2モード)とを選択することができるようにしてもよい。標準モードでは、入力機器からの安全入力信号を割り付けるための入力ブロックと、選択された安全用途に適する安全機能を実現する機能ブロック(ファンクションブロックとも称する。)と、安全出力信号を出力する出力ブロックとをユーザが自由に配置及び結線することができる。一方、EASYモードでは、ユーザが安全用途を選択すると、当該安全用途に適した各ブロックの配置及び結線が行われた状態の未完成の安全プログラムが提供され、ユーザはその未完成の安全プログラムを容易な手順で補完することにより完成させることができる。詳細については後述する。なお、本発明はこのような構成に限定されず、例えば、EASYモードのみを含むプログラム支援装置として提供されてもよい。
編集ボタン31は安全プログラムの編集を指示するためのボタンである。シミュレーションボタン32は安全プログラムのシミュレーションを指示するボタンである。リスト部33は、ユーザにより選択可能なファンクションブロック34の一覧を選択可能に表示する表示領域である。プログラム作成エリア35は、入力タイプのファンクションブロックが配置される入力配置エリア36と、演算タイプおよび出力タイプのファンクションブロックが配置されるブロック配置エリア37とを有している。なお、入力タイプのファンクションブロックは、ブロック配置エリア37にも配置することができる。ユーザは、リスト部33から任意のファンクションブロック34を選択して、入力配置エリア36またはブロック配置エリア37にドラッグアンドドロップする。入力配置エリア36およびブロック配置エリア37はスクロール表示可能となっており、より多くのファンクションブロックを配置可能となっている。
(プログラムの編集)
図5は標準モードにおける安全プログラムの作成例を示している。入力配置エリア36には、メインモジュール3と拡張モジュール4に接続された安全入力機器11に対応する入力ブロックが配置される。図5では、入力配置エリア36には、非常停止スイッチに対応した入力ブロックと、リセットスイッチに対応した入力ブロックと、ライトカーテンXに対応した入力ブロックと、ドアスイッチに対応した入力ブロックが、リスト部33からドラッグアンドドロップされて配置されている。
図5は標準モードにおける安全プログラムの作成例を示している。入力配置エリア36には、メインモジュール3と拡張モジュール4に接続された安全入力機器11に対応する入力ブロックが配置される。図5では、入力配置エリア36には、非常停止スイッチに対応した入力ブロックと、リセットスイッチに対応した入力ブロックと、ライトカーテンXに対応した入力ブロックと、ドアスイッチに対応した入力ブロックが、リスト部33からドラッグアンドドロップされて配置されている。
ブロック配置エリア37には、二つのANDブロックと、リセットブロックと、出力ブロックとが配置されている。出力ブロックは、IOコネクタ10a〜10cにおけるいずれかの出力端子に対応している。各ファンクションブロックを表すアイコンには、入力端子や出力端子が含まれている。ユーザは、あるファンクションブロックの出力端子と、他のファンクションブロックの入力端子との間に接続線40で結線することで、安全プログラムを完成させる。
この事例では、非常停止ボタンが押されていない場合、リセットブロックはON(安全)を出力する。また、左側のANDブロックは、ライトカーテンがONであり、かつ、ドアスイッチがONである場合に、ONを出力する。右側のANDブロックには、リセットブロックの出力端子と、左側のANDブロックの出力端子とが接続されている。よって、右側のANDブロックの二つの入力端子にいずれもONが入力されている場合に、右側のANDブロックはONを出力ブロックに出力する。非常停止ボタンが押されると、リセットブロックにOFF(安全でない)が入力される。その結果、右側のANDブロックの出力がONからOFFに切り替わり、出力ブロックにOFFが伝搬する。リセットブロックは、リセットスイッチが押されない限り、OFF出力を維持する。リセットブロックは、リセットスイッチが押されると、出力をONに復帰させる。
CPU13は、安全プログラムを構成しているファンクションブロックの種別情報およびプログラム部品と、各ファンクションブロックの接続関係を示す接続情報とを含む設定情報を作成し、記憶装置15に格納する。この場合、設定情報内に安全プログラムが含まれていることになる。あるいは、CPU13は、接続情報に従ってプログラム部品をリンクして安全プログラムを作成してもよい。ユーザによる転送指示が入力されると、CPU13は設定情報と安全プログラムをメインモジュール3に送信して書き込む。設定情報は安全プログラムの一部であってもよい。
このようにユーザは、任意のファンクションブロックを組み合わせることで安全プログラムを作成できるようになる。なお、シミュレーションボタン32が押されると、CPU13はシミュレーションUIを表示装置5bに表示する。
<結線チェックが成功している場合(プログラム完成)>
図6はシミュレーション画面39を含むUI30を示している。シミュレーションボタン32が押されると、CPU13は、UI30内にシミュレーション画面39を表示する。シミュレーション画面39はUI30とは異なる独立したウインドウに表示されてもよい。ユーザが入力タイプのファンクションブロックにタッチまたはクリックすることで、入力タイプのファンクションブロックの出力が反転する(ON→OFFまたはOFF→ON)。このような反転処理はトグルと呼ばれてもよい。なお、CPU13は、ONを出力しているファンクションブロックとOFFを出力しているファンクションブロックとを区別できるように表示してもよい。図6では、リセットスイッチに対応するブロックがユーザにタッチされたことでOFFになったため、強調表示されている。なお、CPU13は、ONを出力しているファンクションブロックをライトグリーン(またはライトブルー)で着色し、OFFを出力しているファンクションブロックをライトピンク(オレンジ)などで着色してもよい。また、CPU13は、ONを出力している出力端子とONが入力されている入力端子とをそれぞれ濃いグリーン(濃いブルー)に着色してもよい。CPU13は、OFFを出力している出力端子とOFFが入力されている入力端子とをそれぞれレッド(濃いオレンジ)に着色してもよい。CPU13は、各ファンクションブロックごとに、入力信号に対する出力信号を演算して求める。ユーザは任意の入力ブロックをタッチまたはクリックすることで、安全プログラムの全体の挙動を確認することができる。
図6はシミュレーション画面39を含むUI30を示している。シミュレーションボタン32が押されると、CPU13は、UI30内にシミュレーション画面39を表示する。シミュレーション画面39はUI30とは異なる独立したウインドウに表示されてもよい。ユーザが入力タイプのファンクションブロックにタッチまたはクリックすることで、入力タイプのファンクションブロックの出力が反転する(ON→OFFまたはOFF→ON)。このような反転処理はトグルと呼ばれてもよい。なお、CPU13は、ONを出力しているファンクションブロックとOFFを出力しているファンクションブロックとを区別できるように表示してもよい。図6では、リセットスイッチに対応するブロックがユーザにタッチされたことでOFFになったため、強調表示されている。なお、CPU13は、ONを出力しているファンクションブロックをライトグリーン(またはライトブルー)で着色し、OFFを出力しているファンクションブロックをライトピンク(オレンジ)などで着色してもよい。また、CPU13は、ONを出力している出力端子とONが入力されている入力端子とをそれぞれ濃いグリーン(濃いブルー)に着色してもよい。CPU13は、OFFを出力している出力端子とOFFが入力されている入力端子とをそれぞれレッド(濃いオレンジ)に着色してもよい。CPU13は、各ファンクションブロックごとに、入力信号に対する出力信号を演算して求める。ユーザは任意の入力ブロックをタッチまたはクリックすることで、安全プログラムの全体の挙動を確認することができる。
<結線チェックが失敗した場合(プログラム未完成)>
CPU13は、シミュレーションボタン32が押されると、ブロック配置エリア37に配置された複数のファンクションブロックについて結線チェックを実行してもよい。ファンクションブロックの種類に応じて、結線されることが必須の端子と、結線されなくてもよい任意の端子とが存在する。CPU13は、すべてのファンクションブロックについて、結線されることが必須の端子に接続線40が接続されていることを確認する。結線されることが必須の端子に接続線40が接続されていなければ、CPU13は結線チェックが失敗したと判定する。この場合、CPU13は安全プログラムの全体を通したシミュレーションを実行できないため、個別のシミュレーションに進む。
CPU13は、シミュレーションボタン32が押されると、ブロック配置エリア37に配置された複数のファンクションブロックについて結線チェックを実行してもよい。ファンクションブロックの種類に応じて、結線されることが必須の端子と、結線されなくてもよい任意の端子とが存在する。CPU13は、すべてのファンクションブロックについて、結線されることが必須の端子に接続線40が接続されていることを確認する。結線されることが必須の端子に接続線40が接続されていなければ、CPU13は結線チェックが失敗したと判定する。この場合、CPU13は安全プログラムの全体を通したシミュレーションを実行できないため、個別のシミュレーションに進む。
<プログラミングモードの選択>
図7は作成する安全プログラムの対象機器と、安全プログラムを作成する際のプログラミングモードとを選択するユーザーインターフェースを示す。選択画面70は、CPU13によって表示制御され、PC2の表示装置5bに表示される。選択画面70では、メインモジュールであるメインコントローラの選択と、プログラミングモードの選択とを行うことができる。図7の例では、2つのメインコントローラ71、72の中から作成する安全プログラムを実行するメインコントローラを選択することができる。プログラミングモードとしては、標準モード(第1モード)73と、EASYモード(第2モード)74とを選択することができる。
図7は作成する安全プログラムの対象機器と、安全プログラムを作成する際のプログラミングモードとを選択するユーザーインターフェースを示す。選択画面70は、CPU13によって表示制御され、PC2の表示装置5bに表示される。選択画面70では、メインモジュールであるメインコントローラの選択と、プログラミングモードの選択とを行うことができる。図7の例では、2つのメインコントローラ71、72の中から作成する安全プログラムを実行するメインコントローラを選択することができる。プログラミングモードとしては、標準モード(第1モード)73と、EASYモード(第2モード)74とを選択することができる。
標準モード73では、図4及び図5を用いて説明したように、ユーザは入力ブロック、ファンクションブロック、および出力ブロックを自由に選択して配置することができ、各端子間の結線も自由に行うことができる。つまり、標準モード73は自由度の高いプログラミングモードとなる。一方、EASYモード74では、ユーザは安全用途を選択することにより、当該安全用途に適した各ブロックが既に配置され、かつ、結線が行われた未完成の安全プログラムが提供される。本実施形態に係る未完成のプロググラムとは、入力ブロックに割り付けられる入力機器が未割付の状態で提供される。ユーザは任意に入力機器を所定の入力ブロックへ割り付けることにより、安全プグラムを容易な手順で完成させることができる。なお、このような未完成の安全プログラムを提供する際の完成具合について、本発明を限定する意図はない。即ち、本発明は、任意の完成具合、たとえば入力ブロックから機能ブロックへの結線については未完成な状態で提供されてもよい。また、追加のブロックを配置することができる状態で提供されてもよい。
メインコントローラ及びプログラミングモードとが選択された状態で、選択画面70上のOKボタン75が操作されると、モードが決定し、それぞれの編集画面(プログラム作成画面)へ遷移する。標準モード73が選択された場合は、上述した図4乃至図6の流れで安全プログラムが生成される。EASYモード74が選択された場合については後述する。一方、キャンセルボタン76が操作された場合は、メインコントローラ及びプログラミングモードの選択を行うことなく、選択画面70へ遷移する前の画面へ戻る。
<EASYモードのユーザーインターフェース(UI)>
(入出力機器の登録)
図8はEASYモードの入出力機器の登録画面80を示す。登録画面80は、CPU13によって表示制御され、PC2の表示装置5bに表示される。登録画面80は、基本的に上記選択画面70でEASYモードが選択された状態で、OKボタン75が操作されると遷移する画面である。登録画面80では、生成する安全プログラムの入力ブロック(入力機器)及び出力ブロック(出力機器又は出力端子)を登録する。表示81は、プログラミングモードがEASYモードであることを示す。領域82には、登録可能な安全入力機器及び安全出力機器がリスト表示される。これらのリストは後に編集プログラム16やそれに関わる情報が更新されることにより、他の入出力機器を追加することができる。領域83は、入力機器の登録スペースである。ユーザは領域82に表示される入力機器のリストの中から構築する安全システムで使用する入力機器を領域83へドラッグアンドドロップすることにより、当該入力機器を登録することができる。図8の例では、ライトカーテン、非常停止スイッチ、リセットスイッチなどが登録されている。なお、登録した各機器についてはメインコントローラに対する接続端子を登録することができる。領域84は、出力機器の登録スペースである。ユーザは、領域82に表示される出力機器のリストの中から構築する安全システムで使用する出力機器を領域84へドラッグアンドドロップすることにより、当該出力機器を登録することができる。図8の例では、S−OUTや、AUX出力などが登録されている。なお、登録した各機器についてはメインコントローラに対する接続端子を登録することができる。入出力機器を登録した状態で不図示のOKボタン等の確定ボタンが操作されることにより、入出力機器の登録が完了する。
(入出力機器の登録)
図8はEASYモードの入出力機器の登録画面80を示す。登録画面80は、CPU13によって表示制御され、PC2の表示装置5bに表示される。登録画面80は、基本的に上記選択画面70でEASYモードが選択された状態で、OKボタン75が操作されると遷移する画面である。登録画面80では、生成する安全プログラムの入力ブロック(入力機器)及び出力ブロック(出力機器又は出力端子)を登録する。表示81は、プログラミングモードがEASYモードであることを示す。領域82には、登録可能な安全入力機器及び安全出力機器がリスト表示される。これらのリストは後に編集プログラム16やそれに関わる情報が更新されることにより、他の入出力機器を追加することができる。領域83は、入力機器の登録スペースである。ユーザは領域82に表示される入力機器のリストの中から構築する安全システムで使用する入力機器を領域83へドラッグアンドドロップすることにより、当該入力機器を登録することができる。図8の例では、ライトカーテン、非常停止スイッチ、リセットスイッチなどが登録されている。なお、登録した各機器についてはメインコントローラに対する接続端子を登録することができる。領域84は、出力機器の登録スペースである。ユーザは、領域82に表示される出力機器のリストの中から構築する安全システムで使用する出力機器を領域84へドラッグアンドドロップすることにより、当該出力機器を登録することができる。図8の例では、S−OUTや、AUX出力などが登録されている。なお、登録した各機器についてはメインコントローラに対する接続端子を登録することができる。入出力機器を登録した状態で不図示のOKボタン等の確定ボタンが操作されることにより、入出力機器の登録が完了する。
(安全用途の選択)
図9及び図10は、EASYモードでの安全用途の選択画面90、100を示す。選択画面90、100は、CPU13によって表示制御され、PC2の表示装置5bに表示される。選択画面90、100では、登録画面80で選択された出力機器ごとに、想定される安全用途の選択肢を提供し、ユーザ入力により選択することができる。つまり、選択画面90、100は、本実施形態では登録画面80で安全入出力機器が登録された後に表示される。しかし、本発明はこれに限定されず、例えば安全用途から選択した後に、選択された安全用途ごとに安全入出力機器が登録されるようにしてもよい。
図9及び図10は、EASYモードでの安全用途の選択画面90、100を示す。選択画面90、100は、CPU13によって表示制御され、PC2の表示装置5bに表示される。選択画面90、100では、登録画面80で選択された出力機器ごとに、想定される安全用途の選択肢を提供し、ユーザ入力により選択することができる。つまり、選択画面90、100は、本実施形態では登録画面80で安全入出力機器が登録された後に表示される。しかし、本発明はこれに限定されず、例えば安全用途から選択した後に、選択された安全用途ごとに安全入出力機器が登録されるようにしてもよい。
まず、図9の選択画面90について説明する。選択画面90では、設定する安全出力(S−OUT)に応じて、たとえばマニュアルリセットとオートリセットの少なくとも1つを含む安全用途を選択できる。図9に示すように、選択画面90は、設定する安全出力91、安全用途の選択肢92、選択対象の安全用途の解説欄93、OKボタン97、およびキャンセルボタン98を含んで構成される。選択肢92には、マニュアルリセットの選択肢、オートリセットの選択肢、マニュアルリセット+オートリセットの選択肢、及び協働制御の選択肢の4つの選択肢が含まれる。マニュアルリセットとは、安全入力OFFによって安全出力がOFFになった後に、安全入力ONによって安全が確認され、かつ、リセットスイッチ等で安全出力をONにする(安全システムを起動する)方式である。当該方式は、たとえば、非常停止スイッチが操作された際の復帰や、危険領域内に立ち入られる箇所にライトカーテンなどを設置している場合や不意にドアが閉まる可能性のある場所に使用される。オートリセットとは、安全入力OFFによって安全出力がOFFになった後に、安全入力ONによって安全が確認されると自動的に安全出力をONにする方式である。マニュアルリセット+オートリセットとは、マニュアルで動作する安全入力と、オートリセットで動作する安全入力とを併用する方式である。両方の安全入力がONになると安全出力をONにする(安全システムを起動する)方式である。協働制御とは、端的に言えばマニュアル+オートリセットのOR方式である。たとえば、作業者とロボットが同じ危険領域に入る可能性がある場合などに、ライトカーテンをそれぞれの侵入口に使用して制御するケースで使用されうる。この場合、一方のライトカーテンの安全入力がOFFしただけでは、人間とロボットが危険領域に同時に立ち入ることがないため、安全出力はOFFせず、両方のライトカーテンがOFFになった場合に、安全出力がOFFに制御される。
このような安全用途の各選択肢については、選択画面90の解説欄93においてユースケースなどの説明が表示される。解説欄93には、たとえば当該選択肢の概要94、使用例95、及び安全入力、安全出力、リセット入力のタイミングチャートが表示される。概要94には、当該選択肢における制御の概要が説明される。使用例95では、人間とロボットとの危険領域での関係や、復帰手順などが説明される。タイミングチャート96には、上述した入出力のタイミング関係が示され、復帰タイミングが詳細に示される。ユーザは選択肢92のうち何れかを選択した状態でOKボタン97を操作することにより、安全用途を選択することができる。また、キャンセルボタン98を操作した場合には、当該選択画面90へ遷移する前の画面に戻る。
次に、他の安全用途の選択例として図10の選択画面100について説明する。選択画面100では、設定する安全出力(ロック解除出力)に対応して、たとえばロック制御の種別として、2入力方式102と、1入力方式103との安全用途を選択できる。さらに、ロック解除の許可入力を使用する104または使用しない105を選択することができる。ロック解除の許可入力は、装置の稼働中はドアが開かないようにするなど、ロック解除タイミングを制限したい場合に使用される。ユーザは選択肢102〜104から、ロック制御入力とロック解除許可入力について何れかを選択した状態でOKボタン106を操作することにより、安全用途を選択することができる。また、キャンセルボタン98を操作した場合には、当該選択画面107へ遷移する前の画面に戻る。
このように、本実施形態によれば、登録された安全出力に応じて適切な選択画面をユーザに提供し、安全用途を選択させる。この際、PC2のCPU13は、記憶装置15に格納されている、安全出力ごとに選択可能な安全用途の情報を含む安全用途関連情報17を参照し、適切な選択画面をユーザに提示する。なお、本実施形態では、登録された安全出力に応じて提示する選択画面を制御する方法について説明したが、本発明を限定する意図はなく、たとえば登録された安全入力に依存してもよいし、両方に依存して制御してもよい。それらの場合であっても、記憶装置15に予め必要な情報が記憶される。或いは、本発明は、安全入力や安全出力が登録される前に安全用途を選択するように制御してもよい。この場合、対応可能な安全用途をリスト形式で提示し、選択された安全用途によって、追加の質問を行ってユーザ入力をさらに求めるなど対話形式で行われてもよい。さらに、その後に安全入力及び安全出力の登録が行われてもよい。この際、選択された安全入力において推奨される安全入力や安全出力が提示されるようにしてもよい。
(EASYモードでのプログラムの作成)
図11は、EASYモードにおける編集画面110を示す。編集画面110は、CPU13によって表示制御され、PC2の表示装置5bに表示される。編集画面110では、ユーザによって選択された安全出力ごとの安全用途に応じた未完成の安全プログラムが提示され、簡略した手順で当該プログラムを補完し生成することができる。つまり、複数の安全出力が登録されている場合には、それぞれの未完成の安全プログラムが提供されうる。未完成の安全プログラムとは、選択された安全用途に適した機能ブロックと、登録された入力ブロックおよび出力ブロックとが配置され、かつ、各ブロック間の入出力が結線された状態であり、入力ブロックに対して入力機器が割り付けられていない状態のプログラムとなる。
図11は、EASYモードにおける編集画面110を示す。編集画面110は、CPU13によって表示制御され、PC2の表示装置5bに表示される。編集画面110では、ユーザによって選択された安全出力ごとの安全用途に応じた未完成の安全プログラムが提示され、簡略した手順で当該プログラムを補完し生成することができる。つまり、複数の安全出力が登録されている場合には、それぞれの未完成の安全プログラムが提供されうる。未完成の安全プログラムとは、選択された安全用途に適した機能ブロックと、登録された入力ブロックおよび出力ブロックとが配置され、かつ、各ブロック間の入出力が結線された状態であり、入力ブロックに対して入力機器が割り付けられていない状態のプログラムとなる。
編集画面110は、EASYモードを示す表示81、編集ボタン112、シミュレーションボタン113、標準モードプレビューボタン114a、標準モード切替ボタン114b、リスト部(第1領域)115、およびプログラム作成エリア(第2領域)116を含む。図11では、編集ボタン112が選択された状態で、プログラム作成エリア116に提供された未完成の安全プログラムが編集可能となっている。EASYモードでのプログラムの作成は、プログラム作成エリア116の入力ブロック117a〜117cに対して、リスト部115にリスト表示されている中から、構築する安全システムで使用する入力機器を割り付けることにより行われる。リスト部115には、登録画面80を介して登録された入力機器が選択可能に表示されている。ユーザは、リスト部115に表示されている入力機器115aを、プログラム作成エリア116の所定の場所、たとえば追加ボックス117d、117eにドラッグアンドドロップすることにより、入力機器を入力ブロックに割り付けることができる。追加ボックス117d又は117eに入力機器が割り付けられると、さらに入力機器を割付可能な追加ボックスが表示され、割り付ける入力機器の数を増やすことができる。追加ボックス117d又は117eに入力機器が割り付けられると、割り付けられた複数の入力機器からの信号を論理演算して出力する論理ブロックが入力ブロック内に内部的に挿入される。従って、入力機器が追加で挿入された場合であっても、入力ブロック117a、117cにおいては、内部的に論理演算が行われており、出力端子としては1つのまま維持される。当該論理ブロックは、例えば論理積を行うANDブロックや論理和を行うORブロックなどである。もちろん他の論理演算を行うブロックであってもよい。基本的には、入出力機器の登録において登録された全ての入力機器が割り付けられるとプログラムが完成することになる。なお、入力ブロック117a、117cのように安全入力機器が割り付けられる入力ブロックにおいては、いずれかの場所でエラーが発生すると機械を停止する必要があるため、一般的には複数の入力機器の論理積を出力する構成となる。一方、入力ブロック117bのようにリセット信号が入力される場合には、安全上の観点から入力機器を追加で増やすような追加ボックスは設けられないことが望ましい。
また、図11においては不図示であるが、リスト部115(第1領域)において、論理演算を行う論理ブロック、例えばANDブロックやORブロックが選択可能に表示されてもよい。この場合において、ユーザ入力によって論理ブロックが追加ボックス117d、117eにドラッグアンドドロップされると、複数の入力機器を割り付け可能な論理ボックスが入力ブロック117a、117cなどに挿入される。当該論理ボックスは、割り付けられた各入力機器からの信号を論理演算して出力するものであり、当該出力は、対応する入力ブロックにおいて、1つの入力信号として扱われる。従って、論理ボックスを利用することにより、入力ブロック内において複雑な機能ブロックを構成することも可能となる。
なお、図11の例では、入力ブロック117a、117cに示すように、1つのボックスとして提供される例について説明したが、本発明を限定する意図はない。例えば、選択された安全用途に応じて、複数の論理ボックスから構成される入力ブロックとして提供されてもよい。各論理ボックスには1以上の入力機器が割付可能である。一例として、複数の論理ボックスとして2つのANDボックスを想定する。この場合、ANDボックス1とANDボックス2の出力が1つの論理ブロック、例えば、ORブロックに入力されてその論理和が出力されるような入力ブロックが予め構成されて提供することも可能である。
プログラム作成エリア116は、登録された出力機器ごとに表示され、図11の例では、タブ116aに示すように、一の出力機器(S−OUT A)が選択され、当該出力機器に対するプログラム作成エリアが表示されている状態である。タブ116aのうち、他の出力機器(S−OUT B)のタブが選択されると、当該出力機器のプログラム作成エリアが表示される。プログラム作成エリア116には、入力ブロック117、ファンクションブロック118、及び出力ブロック119が所定の配置関係で表示され、各ブロック間の入出力は既に結線された状態(接続状態)で提供される。116bは、当該安全出力(たとえばS−OUTA)に対する安全用途の再選択を行うためのボタンである。ボタン116aが操作されると、対応する選択画面90、100へ遷移する。これにより、ユーザは未完成の安全プログラムを詳細に確認した後に、他の安全用途を再び選択することができるため、ユーザフレンドリな操作体系を提供することができる。
シミュレーションボタン113が操作されると、図6を用いて説明したように、標準モードと同様に作成した安全プログラムのシミュレーションを実行し、動作確認を行うことができる。なお、EASYモードでは、既に結線確認が行われた状態のプログラムが提供されているため、エラーとなる場合は入力機器の割り付けに関するエラーとなる。入力機器の割り付けに関するエラーとは、たとえば未割付や、所定のブロックにおいて推奨されない入力機器が割り付けられた場合などがある。推奨さない入力機器が割り付けられた場合には、動作確認が行われる前に、ユーザがリスト部115からプログラム作成エリア116へドラッグアンドドロップした際に、エラー表示するようにしてもよいし、或いは、割付できないようにブロックしてもよい。
標準モードプレビューボタン114aが操作されると、EASYモードの表示から、図5を用いて説明した標準モードでの編集画面に示すような詳細なブロック構成及び接続状態を確認する画面へ遷移する。当該画面においては参照のみが可能で、編集はできない。一方、標準モード切替ボタン114bが操作されると、EASYモードから標準モードへ遷移する。従って、図5のUI30と同等の画面へ遷移し、ユーザは結線やブロックの配置を自由に行うことができる。なお、標準モードへ遷移後は、EASYモードへ再び戻ることはできない。これは、標準モードで結線やブロックが変更された場合に、EASYモードにおいて安全用途に応じて提供した最適なファンクションブロックの構成が変更される可能性があるためである。たとえば、EASYモードへ再び戻ることを許可すると、動作不具合などが発生する可能性があり、安全上の観点で望ましくない。なお、これらのモード遷移のポリシーについては、ユーザ設定で変更できるように制御してもよい。また、一旦標準モードへ遷移しても編集が行われなかった場合にはEASYモードへ再び遷移するように制御してもよい。
<フローチャート>
図12は安全プログラムを作成する際のプログラム作成支援装置であるPC2の処理手順を示すフローチャートである。
図12は安全プログラムを作成する際のプログラム作成支援装置であるPC2の処理手順を示すフローチャートである。
S1でCPU13は図7に示すプログラミングモードの選択画面70を表示装置5bに表示し、ユーザ入力を受け付けていずれのモードが選択されたかを判定する。ここで、標準モードが選択された場合にはS2に進み、EASYモードが選択された場合にはS7へ進む。
標準モードが選択されると、S2でCPU13は図4に示す編集画面30を表示装置5bに表示する。続いて、S3及びS4でCPU13は入出力ブロック(入出力機器)及びファンクションブロックの配置と、配置された各ブロック間の入出力の結線をユーザ操作により受け付けて編集を行う。なお、便宜上、S3、S4の順で記載しているが、これらはユーザ操作に合わせてどのような順で処理されてもよい。即ち、全てのブロックを配置した後に結線が行われる必要なく、順不同に行われてよい。さらには、後述のS5も含めて順不同で処理されうる。次に、S5でCPU13は図6を用いて説明したようにシミュレーションボタン32の押下によりシミュレーションを実行し、作成されたブロック構成において動作確認を行う。動作確認が正常に終了すると、S6でCPU13は当該ブロック構成及び接続状態に基づいて安全プログラムを作成し処理を終了する。なお、作成された安全プログラムはメインコントローラであるメインモジュール3に転送されて実行される。
一方、EASYモードが選択されると、S7でCPU13は図8に示す登録画面80を表示装置5bに表示し、ユーザ入力を受け付けて、構築する安全システムに使用する入出力機器の登録を行う。ここで、ユーザは登録画面80上において、構築する安全システムにおいて使用する入出力機器を、領域82から領域83、84へドラッグアンドドロップすることにより、登録する。続いて、S8でCPU13は登録された出力機器(出力端子)ごとに安全用途(アプリケーション)の選択をユーザ入力により行う。S8の詳細な処理については図13を用いて後述する。
安全用途が選択されると、S9でCPU13は登録された出力機器ごとの編集を行うことができる図11に示すような編集画面110を表示装置5bに表示する。上述したように、ここで表示される編集画面は選択された安全用途に従って予め保持されている未完成の安全プログラムを構成する各ブロックと所定の接続状態で提供される。続いてS10でCPU13はユーザ入力を受け付けて未割付の入力機器の割り付けを行う。S10では、上述したように、ユーザ入力に従った入力機器の割り付けに応じて割り付けられる入力機器を増やすこともでき、上述した論理ボックス(ANDボックスやORボックス)を入力ブロック内に追加することも可能である。そのような場合であっても、全ての割り付けが完了し、ユーザにより例えばシミュレーションボタン113が操作されるとS11へ進む。なお、入力が増やされた場合には、CPU13は、割り付けられた複数の入力機器からの信号を論理演算して出力する論理ブロックを、必要に応じて入力ブロック内に内部的に挿入する。S11でCPU13は入力機器が割り付けられた安全プログラムの動作確認を行う。EASYモードでは既に動作確認が行われている各ブロックの配置と、各ブロック間の入出力の結線状態とを引き継いでいるため、本実施形態の例において動作エラーとなる場合は入力機器の割り付けエラーがある場合となる。入力機器の割り付けエラーとは、たとえばそもそも割付されていない場合や、所定の入力ブロックに割付が推奨されない入力機器が割り付けられている場合などである。なお、推奨されない入力機器が割り付けられようとした場合には、警告メッセージ等を表示するようにしてもよい。
動作確認が終了すると、S12でCPU13はS7で登録された他の出力機器の編集が完了しているかどうかを判定する。完了していない場合はS9に戻り登録された出力機器ごとにS9乃至S11の処理を繰り返す。完了している場合はS13に進み、CPU13は割り付けられた入力機器に応じて未完成の安全プログラムを補完し、当該プログラムを完成させ、処理を終了する。なお、作成された安全プログラムはメインコントローラであるメインモジュール3に転送されて実行される。
図13は図12のS8の安全用途の選択に関する詳細な処理手順を示すフローチャートである。
S21でCPU13は安全用途の選択が終わっていないS7で登録された入出力機器があるか否かを判定する。S7で登録された全ての出力機器について安全用途の選択が終わっていれば本フローチャートの処理を終了する。一方、安全用途の選択が行われていない出力機器があればS22に進む。
S22でCPU13は図9及び図10に示すような出力機器に応じた安全用途の選択画面を表示装置5bに表示する。S23でCPU13は表示した選択画面を介するユーザ入力を受け付けて安全用途の選択を行う。続いて、S24でCPU13は安全用途の選択中である出力機器に対して追加の設定が必要か否かを判断し、必要であればS26に進み追加設定を促す画面表示を行い、ユーザ入力を受け付けて追加設定を行う。その後さらにS24の判定を行う。追加設定が必要か否かの判定は記憶装置15に予め格納されている安全用途関連情報17等を参照することにより判断する。また、ユーザが選択した情報に応じて追加設定が必要か否かを判断することもできる。S24で追加設定が必要ないと判断すると、S25でCPU13は選択した安全用途に応じた未完成の安全プログラムを記憶装置15から取得し、処理をS21に戻す。S21乃至S26の処理を登録された出力機器ごとに行い、対応する未完成の安全プログラムの取得が終了すると本フローチャートを終了する。このように、本実施形態によれば、ユーザと対話を行い、ユーザが所望する安全用途を詳細に特定することができる。
<CPUの機能>
図14はCPU13が編集プログラム16を実行することで実現される様々な機能を示している。機能構成として、CPU13は、モード選択部1401、標準モード制御部1402、EASYモード制御部1403、プログラム生成部1408、表示制御部1409、プログラムチェック部1412、結果出力部1413、および転送部1415を含む。EASYモード制御部1403は、登録部1404、割り付け部1405、用途選択部1407、および切替部1407を含む。
図14はCPU13が編集プログラム16を実行することで実現される様々な機能を示している。機能構成として、CPU13は、モード選択部1401、標準モード制御部1402、EASYモード制御部1403、プログラム生成部1408、表示制御部1409、プログラムチェック部1412、結果出力部1413、および転送部1415を含む。EASYモード制御部1403は、登録部1404、割り付け部1405、用途選択部1407、および切替部1407を含む。
モード選択部1401は、図7に示す選択画面70を介したユーザ入力に従ってプログラミングモードの選択を行う。標準モード制御部1402は、標準モードで安全プログラムの編集(作成)が行われる場合の各種制御を行い、たとえば図4乃至図6を用いて説明した編集画面等を用いて制御する。
EASYモード制御部1403は、EASYモードで安全プログラムの編集(作成)が行われる場合の制御を行う。登録部1404は、図8に示す登録画面80を介したユーザ入力に従って入出力機器の登録を行う。用途選択部1406は、図9及び図10等の安全用途の選択画面を介したユーザ入力に従って、登録された出力機器ごとに安全用途の選択を行う。割り付け部1405は、登録された出力機器ごとの未完成の安全プログラムに対して、ユーザ入力従って登録された入力機器の割り付けを行う。切替部1407は、EASYモードで作成している安全プログラムを標準モードで作成する場合のプレビュー画面を表示したり、プログラミングモードをEASYモードから標準モードへ切り替える。
表示制御部1409は、各種画面を表示装置5bに表示する制御を行う。当該画面に対して入力されたユーザ操作については対応する機能部へ伝達する。たとえば登録画面80を介して入力されたユーザ操作は登録部1404へ伝達する。プログラム生成部1408は、標準モード制御部1402およびEASYモード制御部1403でそれぞれ編集されたプログラムの生成を行う。プログラムチェック部1412は、各モードでそれぞれ編集されたプログラムの動作をチェックする。標準モードでは配置された各ブロックのチェックや、各ブロック間の入出力における結線チェックが行われ、EASYモードでは入力ブロックに対する入力機器の割り付けチェックなどが行われる。結果出力部1413は、全体シミュレーションまたは部分シミュレーションの実行画面を表示する(図6など)。転送部1415は、完成した安全プログラム1430をメインモジュール3に転送する。
記憶装置15には、編集プログラム16、FB部品群1420、安全プログラム1430、及び安全用途関連情報1440が少なくとも格納されている。編集プログラム16は、上述のように、CPU13により実行されると各機能部の動作を実現する。FB部品群1420は、標準モードにおいてファンクションブロックを配置する際のリスト表示に使用される機能ブロックの情報が含まれる。さらに、FB部品群1420には、EASYモードで選択された安全用途の未完成の安全プログラムに含まれるファンクションブロックの情報が紐づけて格納される。安全プログラム1430には、編集して完成した安全プログラムに加えて、安全用途ごとの未完成の安全プログラムに関する情報が含まれる。安全用途関連情報17には、安全用途ごとに、ユーザが安全用途を選択する際の情報となる選択情報や、選択された安全用途に適した機能ブロックおよび入出力ブロック(入出力機器)の配置情報、接続情報などが含まれる。
<まとめ>
PC2は、安全コントローラで実行される安全プログラムの作成を支援するプログラム作成支援装置として機能する。安全コントローラシステム1やメインモジュール3は安全コントローラの一例である。用途選択部1406は、作成する安全プログラムの安全用途をユーザ入力に従って選択する。EASYモード制御部1403は、用途選択部1406によって選択された安全用途に基づき、安全プログラムを構成する、入力機器からの安全入力信号を割り付けるための入力ブロックと、選択された安全用途に適する安全機能を実現する機能ブロックとを決定し、決定した各ブロックを含む未完成の安全プログラムをプログラム可能に提供する。プログラム生成部1408は、ユーザ入力に従って、未完成の安全プログラムを補完し、安全プログラムを作成する。このように、本実施例によれば、選択した出力機器ごとに使用される安全用途をユーザに選択させ、選択された安全用途に従った未完成の安全プログラムをユーザに提供する。ユーザは未完成の安全プログラムに対して、未割付の入力機器を割り付けることで安全プログラムを容易に完成させることができる。よって、本実施形態では、安全用途に応じた安全プログラムを作成する際に、簡略した手順で安全プログラムを作成可能な仕組みを提供することができる。また、詳細にプログラム可能な第1モードと、第1モードよりも容易な手順でプログラム可能な第2モードとから、安全プログラムを作成するモードをユーザ入力に従って選択するモード選択部1401を備えてもよい。第2モードが選択されると、上述した安全プログラムを容易に作成可能なモードとなる。これにより、ユーザは所望のモードを選択して、安全プログラムを作成することができ、より使い勝手のよい安全プログラムを作成可能な仕組みを提供することができる。
PC2は、安全コントローラで実行される安全プログラムの作成を支援するプログラム作成支援装置として機能する。安全コントローラシステム1やメインモジュール3は安全コントローラの一例である。用途選択部1406は、作成する安全プログラムの安全用途をユーザ入力に従って選択する。EASYモード制御部1403は、用途選択部1406によって選択された安全用途に基づき、安全プログラムを構成する、入力機器からの安全入力信号を割り付けるための入力ブロックと、選択された安全用途に適する安全機能を実現する機能ブロックとを決定し、決定した各ブロックを含む未完成の安全プログラムをプログラム可能に提供する。プログラム生成部1408は、ユーザ入力に従って、未完成の安全プログラムを補完し、安全プログラムを作成する。このように、本実施例によれば、選択した出力機器ごとに使用される安全用途をユーザに選択させ、選択された安全用途に従った未完成の安全プログラムをユーザに提供する。ユーザは未完成の安全プログラムに対して、未割付の入力機器を割り付けることで安全プログラムを容易に完成させることができる。よって、本実施形態では、安全用途に応じた安全プログラムを作成する際に、簡略した手順で安全プログラムを作成可能な仕組みを提供することができる。また、詳細にプログラム可能な第1モードと、第1モードよりも容易な手順でプログラム可能な第2モードとから、安全プログラムを作成するモードをユーザ入力に従って選択するモード選択部1401を備えてもよい。第2モードが選択されると、上述した安全プログラムを容易に作成可能なモードとなる。これにより、ユーザは所望のモードを選択して、安全プログラムを作成することができ、より使い勝手のよい安全プログラムを作成可能な仕組みを提供することができる。
EASYモード制御部1403は、決定された入力ブロック、機能ブロック、及び出力ブロックの配置と、ブロック間における入出力の結線とを行った状態の未完成の安全プログラムを、さらにプログラム可能なプログラム作成画面(図11)として提供してもよい。ユーザは提供された未完成の安全プログラムを補完し、安全プログラムを容易に生成することができる。
登録部1404は、入力ブロックへ安全入力信号を入力する1以上の入力機器と1以上の出力機器との少なくとも1つを登録する。EASYモード制御部1403は、登録された1以上の出力機器に従って、入力ブロック、機能ブロック、及び出力ブロックの配置と、ブロック間における入出力の結線とを決定する。この場合、プログラム作成画面には、登録された1以上の入力機器のリストを選択可能に表示する第1領域と、決定された各ブロックの配置関係及び結線状態を示す第2領域とが含まれる。ユーザは、プログラム作成画面において、第1領域に表示されている入力機器をドラッグし、第2領域に表示される入力ブロック内の入力機器を割り付ける領域へドロップすることにより、当該入力ブロックへの信号を入力する入力機器を割り付けることができる。このように、本実施形態によれば、登録された出力機器に応じて適切なブロック構成(配置)及び接続状態を、未完成の安全プログラムとして提供し、ユーザは未割付の入力機器を割り付けることにより、簡略した手順で安全プログラムを作成することができる。なお、登録された出力機器ごとにプログラム可能なプログラム作成画面が提供されうる。
未完成の安全プログラムに含まれる入力ブロックは、1つの前記入力ブロックに対して、複数の入力機器を割付可能であり、割り付けられた複数の入力機器からの信号を論理演算して出力する(117a、117c)。割り付け部1405及びプログラム生成部1408は、1つの入力ブロックに対して、入力機器が割り付けられるごとに、割り付けられた複数の入力機器からの信号の論理演算を行う論理ブロックを1つの入力ブロックに内部的に挿入することにより、安全プログラムを作成する。また、第1の領域において、論理演算を行う論理ブロックが選択可能に表示されてもよい。この場合、割り付け部1405は、ユーザ入力により、プログラム作成画面において、第1領域に表示されている論理ブロックがドラッグされ、第2領域に表示される入力ブロック内の入力機器を割り付ける領域(追加ボックス117d、117e)へドロップされることに応じて、複数の入力機器が割り付け可能な論理ボックスであって、かつ、割り付けられた各入力機器からの信号を論理演算して出力する論理ボックスを入力ブロック内に挿入する。これにより、入力ブロックとして提供された場合であっても、後に詳細な機能ブロックとして構成することが可能となる。また、未完成の安全プログラムに含まれる入力ブロックは、複数の入力機器が割り付け可能な論理ボックスであって、かつ、挿入された各入力機器からの信号を論理演算して出力する論理ボックスを複数含み、さらに、複数の論理ボックスからの出力を論理演算して出力する論理ブロックを含むように構成されてもよい。このように、安全用途が選択された後に提供される未完成の安全プログラムとして予め提供されるようにしてもよい。
プログラム作成画面では、安全プログラムを作成するモードをEASYモード(第2モード)から標準モード(第1モード)へ切り替えるモード切替を受付可能であり、EASYモード制御部1403は、プログラム作成画面を介してモード切替を受け付けると、各ブロックの配置及びブロック間における入出力の結線を指定可能な第1モードでのプログラム作成画面を提供してもよい。或いは、現在編集中のプログラムを標準モードでのプレビュー画面として詳細なブロック構成を表示してもよい(図5など)。これにより、よりユーザフレンドリな操作体系を提供することができる。
用途選択部1406は、複数の安全用途のうち何れかの安全用途を選択可能な選択画面を提供する。当該選択画面では、安全コントローラが制御する所定システムの停止からの復帰方法である、所定システムの安全が確認できた後にユーザによりリセットスイッチが押下されると当該所定システムを起動するマニュアルリセットと、所定システムの安全が確認されると該所定システムを起動するオートリセットとの少なくとも1つを含む安全用途が選択可能である(図9)。また、当該選択画面では、出力ブロックのロック制御として、2入力のロック制御を有する安全用途と、1入力のロック制御を有する安全用途とが選択可能である(図10)。さらに、当該選択画面には、選択対象の安全用途ごとに、対応する使用例と、安全入力信号及び前記安全出力信号に関するタイミングチャートと、の少なくとも一方が各安全用途の解説として表示される。このように、本プログラム作成支援装置の操作者であるユーザは、安全プログラムを作成するための専門的な知識が十分でない場合であっても、解説された安全用途を選択することで、ある程度完成された安全プログラム(未完成の安全プログラム)を取得することができ、当該プログラムを補完することで、選択した安全用途に適した安全プログラムを作成することができる。
発明は上記の実施形態に制限されるものではなく、発明の要旨の範囲内で、種々の変形・変更が可能である。
Claims (18)
- 安全コントローラで実行される安全プログラムの作成を支援するプログラム作成支援装置であって、
作成する安全プログラムの安全用途をユーザ入力に従って選択する用途選択手段と、
前記用途選択手段によって選択された安全用途に基づき、安全プログラムを構成する、入力機器からの安全入力信号を割り付けるための入力ブロックと、選択された安全用途に適する安全機能を実現する機能ブロックとを決定する決定手段と、
前記決定手段によって決定された各ブロックを含む未完成の安全プログラムをプログラム可能に提供する提供手段と、
ユーザ入力に従って、前記未完成の安全プログラムを補完し、安全プログラムを作成する作成手段と
を備えることを特徴とするプログラム作成支援装置。 - 詳細にプログラム可能な第1モードと、該第1モードよりも容易な手順でプログラム可能な第2モードとから、安全プログラムを作成するモードをユーザ入力に従って選択するモード選択手段をさらに備え、
前記用途選択手段は、前記モード選択手段によって前記第2モードが選択されると、作成する安全プログラムの安全用途をユーザ入力に従って選択することを特徴とする請求項1に記載のプログラム作成支援装置。 - 前記決定手段は、さらに、前記用途選択手段によって選択された安全用途に基づき、安全プログラムを構成する、安全出力信号を出力する出力ブロックを決定することを特徴とする請求項2に記載のプログラム作成支援装置。
- 前記提供手段は、前記決定手段によって決定された各ブロックの配置と、ブロック間における入出力の結線とを行った状態の前記未完成の安全プログラムを、さらにプログラム可能なプログラム作成画面として提供することを特徴とする請求項3に記載のプログラム作成支援装置。
- 前記入力ブロックへ安全入力信号を入力する1以上の入力機器と1以上の出力機器との少なくとも1つを登録する登録手段をさらに備え、
前記決定手段は、前記登録手段によって登録された前記1以上の出力機器に従って、前記入力ブロック、前記機能ブロック、及び前記出力ブロックの配置と、ブロック間における入出力の結線とを決定することを特徴とする請求項4に記載のプログラム作成支援装置。 - 前記提供手段は、前記登録手段によって登録された前記1以上の入力機器のリストを選択可能に表示する第1領域と、前記決定手段によって決定された各ブロックの配置関係及び結線状態を示す第2領域とを含む前記プログラム作成画面を提供することを特徴とする請求項5に記載のプログラム作成支援装置。
- 前記作成手段は、ユーザ入力により、前記プログラム作成画面において、前記第1領域に表示されている入力機器がドラッグされ、前記第2領域に表示される前記入力ブロック内の入力機器を割り付ける領域へドロップされることに応じて、該入力ブロックへの信号を入力する入力機器を割り付けることを特徴とする請求項6に記載のプログラム作成支援装置。
- 前記未完成の安全プログラムに含まれる前記入力ブロックは、
1つの前記入力ブロックに対して、複数の入力機器を割付可能であり、
割り付けられた前記複数の入力機器からの信号を論理演算して出力することを特徴とする請求項7に記載のプログラム作成支援装置。 - 前記作成手段は、前記1つの入力ブロックに対して、前記入力機器が割り付けられるごとに、割り付けられた前記複数の入力機器からの信号の論理演算を行う論理ブロックを前記1つの入力ブロックに内部的に挿入することにより、安全プログラムを作成することを特徴とする請求項8に記載のプログラム作成支援装置。
- 前記提供手段は、前記第1領域において、論理演算を行う論理ブロックを選択可能に表示し、
前記作成手段は、ユーザ入力により、前記プログラム作成画面において、前記第1領域に表示されている前記論理ブロックがドラッグされ、前記第2領域に表示される前記入力ブロック内の入力機器を割り付ける領域へドロップされることに応じて、複数の入力機器が割り付け可能な論理ボックスであって、かつ、割り付けられた各入力機器からの信号を論理演算して出力する前記論理ボックスを該入力ブロック内に挿入することを特徴とする請求項6乃至9の何れか1項に記載のプログラム作成支援装置。 - 前記第1領域に表示される論理ブロックには、論理積を演算するANDブロック及び論理和を演算するORブロックの少なくとも1つの論理ブロックが含まれることを特徴とする請求項10に記載のプログラム作成支援装置。
- 前記未完成の安全プログラムに含まれる前記入力ブロックは、
複数の入力機器が割り付け可能な論理ボックスであって、かつ、挿入された各入力機器からの信号を論理演算して出力する前記論理ボックスを複数含み、
さらに、複数の前記論理ボックスからの出力を論理演算して出力する論理ブロックを含むことを特徴とする請求項7に記載のプログラム作成支援装置。 - 前記提供手段は、前記登録手段によって登録された前記出力機器ごとにプログラム可能なプログラム作成画面を提供することを特徴とする請求項5乃至12の何れか1項に記載のプログラム作成支援装置。
- 前記プログラム作成画面では、安全プログラムを作成するモードを前記第2モードから前記第1モードへ切り替えるモード切替を受付可能であり、
前記提供手段は、前記プログラム作成画面を介して前記モード切替を受け付けると、各ブロックの配置及びブロック間における入出力の結線を指定可能な前記第1モードでのプログラム作成画面を提供することを特徴とする請求項4乃至13の何れか1項に記載のプログラム作成支援装置。 - 前記用途選択手段は、複数の安全用途のうち何れかの安全用途を選択可能な選択画面を提供することを特徴とする請求項4乃至14の何れか1項に記載のプログラム作成支援装置。
- 前記選択画面では、前記安全コントローラが制御する所定システムの停止からの復帰方法である、該所定システムの安全が確認できた後にユーザによりリセットスイッチが押下されると該所定システムを起動するマニュアルリセットと、前記所定システムの安全が確認されると該所定システムを起動するオートリセットとの少なくとも1つを含む安全用途が選択可能であることを特徴とする請求項15に記載のプログラム作成支援装置。
- 前記選択画面では、前記出力ブロックのロック制御として、2入力のロック制御を有する安全用途と、1入力のロック制御を有する安全用途とが選択可能であることを特徴とする請求項15又は16に記載のプログラム作成支援装置。
- 前記選択画面には、選択対象の安全用途ごとに、対応する使用例と、前記安全入力信号及び前記安全出力信号に関するタイミングチャートと、の少なくとも一方が各安全用途の解説として表示されることを特徴とする請求項15乃至17の何れか1項に記載のプログラム作成支援装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019209185A JP2021082030A (ja) | 2019-11-19 | 2019-11-19 | プログラム作成支援装置 |
US17/066,499 US11321055B2 (en) | 2019-11-19 | 2020-10-09 | Program creation assistance device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019209185A JP2021082030A (ja) | 2019-11-19 | 2019-11-19 | プログラム作成支援装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021082030A true JP2021082030A (ja) | 2021-05-27 |
Family
ID=75908706
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019209185A Pending JP2021082030A (ja) | 2019-11-19 | 2019-11-19 | プログラム作成支援装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11321055B2 (ja) |
JP (1) | JP2021082030A (ja) |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3854512B2 (ja) | 2002-01-25 | 2006-12-06 | 株式会社キーエンス | 多光軸光電式安全装置用の表示モニタ |
JP4212970B2 (ja) | 2003-06-30 | 2009-01-21 | 株式会社キーエンス | 安全リレーシステム |
JP4619231B2 (ja) * | 2005-07-29 | 2011-01-26 | 株式会社ジェイテクト | 安全plc |
JP4919822B2 (ja) | 2007-01-25 | 2012-04-18 | 株式会社キーエンス | 多光軸光電センサ |
JP4849261B2 (ja) | 2007-05-14 | 2012-01-11 | オムロン株式会社 | 安全アプリケーション作成支援装置 |
US20130253940A1 (en) * | 2012-03-20 | 2013-09-26 | Zilla Collections Llc | System and method for diagnosis involving crowdsourcing |
US9430589B2 (en) * | 2013-02-05 | 2016-08-30 | Rockwell Automation Technologies, Inc. | Safety automation builder |
US10152030B2 (en) * | 2013-12-31 | 2018-12-11 | Rockwell Automation Technologies, Inc. | Safety relay configuration system with safety monitoring and safety output function blocks |
US10020151B2 (en) * | 2013-12-31 | 2018-07-10 | Rockwell Automation Technologies, Inc. | Safety relay configuration system with multiple test pulse schemes using graphical interface |
US9361073B2 (en) * | 2013-12-31 | 2016-06-07 | Rockwell Automation Technologies, Inc. | Development environment for a safety relay configuration system |
JP6525532B2 (ja) * | 2014-09-02 | 2019-06-05 | キヤノン株式会社 | 情報処理装置、情報処理装置の制御方法、及びプログラム |
US9971330B2 (en) * | 2015-03-06 | 2018-05-15 | Rockwell Automation Technologies, Inc. | Safety relay configuration editor |
JP6458754B2 (ja) * | 2016-03-14 | 2019-01-30 | オムロン株式会社 | プログラム開発支援装置、プログラム開発支援プログラムおよびプログラム開発支援方法 |
CN108572611B (zh) * | 2017-03-13 | 2021-01-22 | 欧姆龙株式会社 | 信息处理装置、信息处理方法及计算机可读取记录媒体 |
JP6620380B1 (ja) * | 2019-02-12 | 2019-12-18 | 株式会社安川電機 | モータ制御システム |
US11249452B2 (en) * | 2019-07-10 | 2022-02-15 | Banner Engineering Corp. | Methods to configure a safety control system |
-
2019
- 2019-11-19 JP JP2019209185A patent/JP2021082030A/ja active Pending
-
2020
- 2020-10-09 US US17/066,499 patent/US11321055B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11321055B2 (en) | 2022-05-03 |
US20210149643A1 (en) | 2021-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3065017B1 (en) | Safety relay configuration editor | |
CN104750063B (zh) | 用于配置工业安全继电器的系统和工业安全系统配置方法 | |
CN104749993B (zh) | 用于配置工业安全继电器的系统和方法 | |
JP4888717B2 (ja) | 安全コントローラのプログラム開発支援装置 | |
EP3223148A1 (en) | Program development support device, program development support method, and program development support program | |
JP6111675B2 (ja) | 安全コントローラのユーザプログラムの設計を支援する方法、装置およびプログラム | |
CN104749992B (zh) | 配置工业安全继电器的系统和配置安全继电器程序的方法 | |
US8532797B2 (en) | Mechanism for constructing generic control logic including versions in various protocols | |
JP2007025736A (ja) | 安全plc | |
CN107407922B (zh) | 可编程逻辑控制器及其控制方法以及记录介质 | |
CN104750514A (zh) | 配置工业安全继电器的系统和安全继电器程序配置方法 | |
JP7409832B2 (ja) | プログラム作成支援装置 | |
JP4849261B2 (ja) | 安全アプリケーション作成支援装置 | |
US6711448B2 (en) | Setting display apparatus for a programmable controller | |
JP2021082030A (ja) | プログラム作成支援装置 | |
US20130238104A1 (en) | System design device | |
JP2021082031A (ja) | プログラム作成支援装置 | |
CN106155519B (zh) | 画面信息生成装置 | |
JP7398856B2 (ja) | プログラム作成支援装置 | |
EP3952222A1 (en) | Network management device, management method, management program, and recording medium | |
JP2002278666A (ja) | 設備制御用操作盤 | |
JP6922583B2 (ja) | 情報処理装置、情報処理方法、および、情報処理プログラム | |
JP2006140837A (ja) | 遠隔監視制御システム | |
JP2017111641A (ja) | プログラマブルコントローラ | |
JP2002108731A (ja) | コンピュータのネットワーク設定方法、そのプログラムが記録された記録媒体、および、その方法でネットワーク設定可能なコンピュータ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20210113 |