JP2021082031A - プログラム作成支援装置 - Google Patents

プログラム作成支援装置 Download PDF

Info

Publication number
JP2021082031A
JP2021082031A JP2019209186A JP2019209186A JP2021082031A JP 2021082031 A JP2021082031 A JP 2021082031A JP 2019209186 A JP2019209186 A JP 2019209186A JP 2019209186 A JP2019209186 A JP 2019209186A JP 2021082031 A JP2021082031 A JP 2021082031A
Authority
JP
Japan
Prior art keywords
program
safety
unfinished
block
input
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
Application number
JP2019209186A
Other languages
English (en)
Inventor
政嗣 川中
Masatsugu Kawanaka
政嗣 川中
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.)
Keyence Corp
Original Assignee
Keyence Corp
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 Keyence Corp filed Critical Keyence Corp
Priority to JP2019209186A priority Critical patent/JP2021082031A/ja
Publication of JP2021082031A publication Critical patent/JP2021082031A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Abstract

【課題】本発明は、簡略した手順で生成プログラムを作成しつつ、安全性の基準を満たすことを保証する仕組みを提供する。【解決手段】安全コントローラで実行される安全プログラムの作成を支援するプログラム作成支援装置は、動作確認が行われた安全プログラムを構成する、入力機器からの安全入力信号を割り付けるための入力ブロックと、安全機能を実現する機能ブロックと、安全出力信号を出力する出力ブロックとのうち、前記入力ブロック及び前記出力ブロックの少なくとも一方をダミーブロックに置き換えた未完成の安全プログラムを記憶する記憶装置を備える。さらに、本プログラム作成支援装置は、記憶装置に記憶されている未完成の安全プログラムを取得し、取得した未完成の安全プログラムを編集可能に提供し、提供した未完成の安全プログラムをユーザ入力に従って編集して、完成した安全プログラムを作成する。【選択図】図12

Description

本発明は、安全システムで動作する安全プログラムの作成を支援するプログラム作成支援装置に関する。
製品(ワーク)を生産する製品工場においては多数の産業機械が稼働している。安全システムは、産業機械から人間の安全を確保するために欠かせないシステムである。安全システムは、一般に、産業機械の稼働エリア内に人間が侵入すると、産業機械を緊急停止させる。
安全システムで動作するコンピュータプログラムは安全プログラムと呼ばれている。安全プログラムは人間の安全を守るものであるから、より正確に設計されなければならない。安全プログラムを作成する作業が複雑であると、バグなどを招きやすい。したがって、安全プログラムをユーザが簡単に作成できるようなプログラムの作成環境を提供することが望ましい。たとえば、複数のファンクションブロックを任意に配置して、いくつかのファンクションブロックを結線することで安全プログラムを作成するファンクション・ブロック・ダイアグラム(FBD)が知られている(特許文献1)。
特開2008−282341号公報
しかし、上記FBDを用いた安全プログラムの作成であっても専門的な知識が必要であり、正確な設計を行うことができる設計者は限られてしまう。たとえば、安全プログラムはその安全用途(アプリケーション)に適した種々の入力ブロック、ファンクションブロック及び出力ブロックを選択して、それらを好適に配置して構築されなければならない。このように、安全プログラムの作成は特定の開発者(ユーザ)に依存するため、安全システムを構築する上でそれらの開発者の負担が増大してしまう。そこで、安全プログラムについて十分に精通していないユーザであっても簡単にプログラム可能な仕組みが提供されれば、対応可能なユーザが広がり、特定のユーザに対する負担を軽減することができ、システムの構築を容易にすることができる。一方で、安全性の基準を満たすためには一定のルールを満足するように安全プログラムを設計する必要がある。
そこで、本発明は、簡略した手順で生成プログラムを作成しつつ、安全性の基準を満たすことを保証する仕組みを提供することを目的とする。
本発明は、たとえば、安全コントローラで実行される安全プログラムの作成を支援するプログラム作成支援装置であって、動作確認が行われた安全プログラムを構成する、入力機器からの安全入力信号を割り付けるための入力ブロックと、安全機能を実現する機能ブロックとのうち、前記入力ブロックをダミーブロックに置き換えた未完成の安全プログラムを記憶する記憶手段と、前記記憶手段に記憶されている前記未完成の安全プログラムを取得する取得手段と、前記取得手段によって取得した前記未完成の安全プログラムを編集可能に提供する提供手段と、前記提供手段によって提供された前記未完成の安全プログラムをユーザ入力に従って編集して、完成した安全プログラムを作成する作成手段とを備えることを特徴とする。
本発明によれば、簡略した手順で生成プログラムを作成しつつ、安全性の基準を満たすことを保証することができる。
安全コントローラシステムを説明する図 メインモジュールと拡張モジュールを説明する図 プログラム作成支援装置を説明する図 ユーザーインターフェースを説明する図 ユーザーインターフェースを説明する図 ユーザーインターフェースを説明する図 ユーザーインターフェースを説明する図 ユーザーインターフェースを説明する図 ユーザーインターフェースを説明する図 ユーザーインターフェースを説明する図 ユーザーインターフェースを説明する図 安全プログラム作成時のフローチャートを説明する図 安全プログラム作成時のフローチャートを説明する図 CPUの機能を説明する図
以下、添付図面を参照して実施形態が詳しく説明される。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態で説明されている特徴の組み合わせの全てが発明に必須のものとは限らない。実施形態で説明されている複数の特徴のうち二つ以上の特徴が任意に組み合わされてもよい。また、同一または同様の構成には同一の参照番号が付され、重複した説明は省略される。とりわけ、小文字のアルファベットは複数の同種の構成要素を区別するために付与されており、複数の構成要素に共通した説明が記載されるときには、小文字のアルファベットが省略されることがある。
<安全コントローラシステム>
図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と通信して入力信号を受信したり、出力信号を送信したりする。
拡張モジュール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はソリッドステートドライブの略称である。
記憶装置15は、編集プログラム16、およびカスタムレシピ情報17を記憶する。これらの情報は、後に更新することができる。PC2のユーザは記憶装置15に記憶されている編集プログラム16をCPU13に実行させて、操作部6bを通じて安全プログラムや設定情報などを編集し、メインモジュール3に転送する。設定情報は、メインモジュール3に接続されている拡張モジュール4の識別情報と、IOコネクタ10a〜10cに設けられた各入力端子と各出力端子に接続されている安全入力機器11および動力源12の識別情報(端子割り当て情報)などを含む。カスタムレシピ情報17は、プログラム作成支援装置であるPC2に予め格納されているプリセットレシピ17aと、ユーザが作成した安全プログラムの一部である登録レシピ17bとがファイル形式で含まれる。
ここでレシピとは、安全基準を満たすように作成され、かつ、動作確認が行われた安全プログラムの一部を含むプログラム情報であり、未完成の安全プログラムを示す。当該未完成の安全プログラムは、各ブロックの配置関係と、それらのブロック間における入出力の結線情報とが含まれ、入出力ブロックについてはダミーブロックに置き換えられたものである。従って、ユーザはレシピ情報に基づいて、ダミーブロックの部分に任意の入出力機器を割り付けることにより、安全プログラムを簡略した手順で完成させることができる。また、各レシピ情報には固有値であるCRC(Cyclic Redundancy Check)値が付与されている。なお、本発明においては上記CRC値に限定する意図はなく、レシピファイルから求まる固有の検出符号であればどのような符号でもよい。このCRC値は各レシピのブロックの配置関係及び結線情報に基づく接続状態を維持している限り当該プログラムに含まれるものである。一方、上記配置関係や接続状態が変更されると、対応するCRC値は削除される。このCRC値で安全基準を満たすプログラムの提供を保証することができる。即ち、レシピに従って完成された安全プログラムはCRC値をそのまま含むものであり、これが安全基準を満たすことを保証する。これらのレシピ情報の詳細については後述する。
<ユーザーインターフェース(UI)>
図4はCPU13が編集プログラム16にしたがって表示装置5bに表示するUI30を示している。編集ボタン31は安全プログラムの編集を指示するためのボタンである。編集ボタン31が選択された状態のUI30では、入力機器からの安全入力信号を割り付けるための入力ブロックと、安全機能を実現する機能ブロック(ファンクションブロックとも称する。)と、安全出力信号を出力する出力ブロックとをユーザが自由に配置及び結線することができる。
シミュレーションボタン32は安全プログラムのシミュレーションを指示するボタンである。リスト部33は、ユーザにより選択可能なファンクションブロック34の一覧を選択可能に表示する表示領域である。プログラム作成エリア35は、入力タイプのファンクションブロックが配置される入力配置エリア36と、演算タイプおよび出力タイプのファンクションブロックが配置されるブロック配置エリア37とを有している。ユーザは、リスト部33から任意のファンクションブロック34を選択して、入力配置エリア36またはブロック配置エリア37にドラッグアンドドロップする。入力配置エリア36およびブロック配置エリア37はスクロール表示可能となっており、より多くのファンクションブロックを配置可能となっている。
レシピ読込ボタン38aは、記憶装置15に記憶されたプリセットレシピ17aや、登録レシピ17bを読み込んで、当該レシピ情報に従って各ブロックの配置や、ブロック間の入出力の結線を行った状態でユーザに提供し、編集を行うためのボタンである。カスタムレシピは、たとえば動作確認が行われた安全プログラムの入出力ブロックをダミーブロックへ置き換えた未完成の安全プログラムとして記憶されている。従って、ユーザは、カスタムレシピを読み込んで、ダミーブロックの位置に入出力機器を割り付ける(ダミーブロックを入出力機器で置き換える)ことにより、安全プログラムを容易に完成させることができる。編集方法の詳細については後述する。一方、ユーザは、安全プログラムを作成して動作確認したプログラムを登録レシピ17bとして登録することができる。登録される際には、入出力ブロックがダミーブロックへ置き換えられた状態で記憶装置15に記憶される。なお、本実施形態では、カスタムレシピ情報17がPC2の記憶装置15に記憶されている例について説明するが、PC2に通信可能に接続された外部の装置やデータベース等に記憶されてもよい。
レシピ登録・管理ボタン38bは、新たに作成した安全プログラムを登録レシピとして登録したり、記憶装置15に記憶された登録レシピ17bの管理を行うための画面へ遷移するためのボタンである。ここでの管理では、たとえば登録したレシピの編集、削除、外部装置との連携により、外部に記憶されたレシピのインポートや外部へエクスポートなどの処理を行うことができる。
(プログラムの編集)
図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は、各ファンクションブロックごとに、入力信号に対する出力信号を演算して求める。ユーザは任意の入力ブロックをタッチまたはクリックすることで、安全プログラムの全体の挙動を確認することができる。
<結線チェックが失敗した場合(プログラム未完成)>
CPU13は、シミュレーションボタン32が押されると、ブロック配置エリア37に配置された複数のファンクションブロックについて結線チェックを実行してもよい。ファンクションブロックの種類に応じて、結線されることが必須の端子と、結線されなくてもよい任意の端子とが存在する。CPU13は、すべてのファンクションブロックについて、結線されることが必須の端子に接続線40が接続されていることを確認する。結線されることが必須の端子に接続線40が接続されていなければ、CPU13は結線チェックが失敗したと判定する。この場合、CPU13は安全プログラムの全体を通したシミュレーションを実行できないため、個別のシミュレーションに進む。
<レシピの読み込み>
(読込画面)
図7は、たとえば図4のUI30である編集画面を表示中にレシピ読込ボタン38aが操作された際に遷移する読込画面70である。読込画面70は、CPU13によって表示制御され、PC2の表示装置5bに表示される。読込画面70は、プリセットレシピのリスト71、登録レシピのリスト72、表示領域73〜75、開くボタン76、及びキャンセルボタン77を含んで構成される。
プリセットレシピのリスト71は、予め記憶装置15に記憶されている、1以上のプリセットレシピを表示するものであり、リスト上で項目が選択されると、表示領域73〜75が選択されたレシピの情報に切り替わる。なお、プリセットレシピは、外部からインポートして記憶装置15に記憶されてもよい。同様に、登録レシピのリスト72は、ユーザによって登録されたり、外部からインポートされた1以上の登録レシピを表示するものであり、リスト上で項目が選択されると、表示領域73〜75が選択されたレシピの情報に切り替わる。
上述したように表示領域73〜75には、リスト71、72から選択されたレシピの詳細情報が表示される。表示領域73には、選択されたレシピの回路構成(プレビュー画面)が表示される。73aは入力ブロックを示し、73bは機能ブロックを示し、73cは出力ブロックを示す。なお、レシピは入出力ブロックがダミーブロックに置き換えられている。なお、ダミーブロックの数については、後にユーザ入力によって増減されてもよい。表示領域74には、選択されたレシピのメモが表示される。メモには、たとえばレシピについての安全機能の説明やプロジェクト情報などを記載することができる。PC2は、レシピに含まれる情報に従って表示領域74にメモ情報を表示する。表示領域75には、各レシピのレシピファイルに付与されたCRC値が表示される。
当該CRC値は、レシピ毎に固有の値であり、レシピのプログラム情報から求められる。プログラム情報としては、各ブロックの種類、配置位置、結線情報、及び設定パラメータなど種々の情報が含まれるが、CRC値を計算するための情報としては上記情報の少なくとも1つの情報が用いられる。たとえば、CRC値は、これらの情報のうちプログラム制御に影響を与える情報を用いて計算されてもよい。プログラム制御に影響を与える情報としては、機能ブロックの設定情報、種類、設定パラメータや結線情報などである。一方、プログラム制御に影響を与えない情報としては、機能ブロックの名称やプログラムの回路構成図に配置された各ブロックの配置座標などである。これらのCRC値は、レシピの登録時に計算され、設計者(ユーザ)によって開かれたレシピがレシピ登録時と同じ構成内容であることを保証する。これらの構成内容、つまり、上記プログラム制御に影響を与える情報が編集(変更)されると、CRC値は削除される。一方で、上記プログラム制御に影響を与えない情報が変更された場合には、CRC値は削除されてもよいし、削除されなくともよい。つまり、作成された安全プログラムにCRC値が含まれるということは、当該安全プログラムが所定の安全基準を満たすレシピを用いて作成されたことを意味し、制限された編集範囲内(ダミーブロックの割り付け)で作成され安全基準を満たすことを保証するものである。
レシピが選択された状態で開くボタン76が操作されると、当該レシピに従って編集可能なレシピ編集画面80に遷移する。レシピ編集画面80については図8を用いて後述する。一方、キャンセルボタン77が操作されると、読込画面70に遷移する前の画面、例えばUI30の編集画面(図4)に戻る。
(レシピ編集画面)
図8は、たとえば図7の読込画面70を介してレシピが開かれた際に遷移するレシピ編集画面80を示す。レシピ編集画面80は、CPU13によって表示制御され、PC2の表示装置5bに表示される。レシピ編集画面80は、図5に示す編集画面と比較して、入出力機器のリスト81と、編集制限解除ボタン89と、を含んで構成される。表示領域83は、読み込んだレシピの編集領域である。レシピを読み込んだタイミングにおいて、表示領域83には、ダミーブロックである入力ブロック83aと、機能ブロック群83bと、ダミーブロックである出力ブロック83cと、レシピのCRC値83dとを含んで構成される。入力ブロック83a及び出力ブロック83cには、リスト81からそれぞれ安全入力機器又は安全出力機器が選択されて割り付けられる。操作方法としては、たとえばリスト81上の項目をドラッグして所定のダミーブロックへドロップすることにより安全入力機器又は安全出力機器のメインモジュール等の入力端子への割付 が行われる。
レシピ編集画面では、図4及び図5を用いて説明した編集画面とは異なり、編集の制限が設けられる。ここで、編集の制限とは、各ブロックの配置関係や接続状態、ブロックの属性を変更する編集を禁止することを示す。ブロックの属性 とは、たとえば入力端子数の増減や機能ブロックに対する結線可能な入力機器の種類、機能ブロックの機能設定、タイムアウトなどの時間設定、オプション機能の使用の有無などである。これらの編集を許可すると、安全基準を満たさなくなる虞があり、それを防止するためにこのような編集の制限を設けている。また、所定のダミーブロックに割り付けることが可能な入力機器又は出力機器を、ブロックごとに制限してもよい。これにより、推奨されない入出力機器がダミーブロックへ割り付けられることを制限することができる。
図9は、編集の制限の一例を示している。レシピ編集画面80等の操作はPC2に接続された種々の入力デバイスによって行うことができるが、ここではPC2に接続されうるポインティングデバイス、たとえばマウスを用いた場合における編集制限の制御について説明する。91は、マウスで操作されるポインタ(カーソル)を示す。ポインタ91が編集禁止のブロック、図9の例では機能ブロックの1つであるAND回路に重畳すると、当該ブロックに編集禁止を示すマーク(アイコン)92が表示され、図4及び図5に示すUI30では操作可能であったブロックの再配置等の処理が制限される。また、編集禁止の結線上にポインタ91が重畳すると、編集を禁止するメッセージ93が表示され、当該接続線を編集することが禁止される。なお、機能ブロックについては全ての機能ブロックを編集禁止にしてもよいし、一部の機能ブロックのみを編集禁止にしてもよい。一部の機能ブロックのみを編集禁止にする場合には、機能ブロックごとに、置換可能か、又は属性変更可能かどうかの値(編集禁止情報)を保持するようにしてもよい。この場合、ポインタ91が機能ブロックに重畳すると、上記値が参照され、編集禁止であれば上述のようなマーク92やメッセージ93を表示するようにしてもよい。上記編集禁止情報としては、例えば、“0”が編集禁止を示し、“1”が編集可能を示してもよい。或いは、“0”が全ての編集禁止(例えば、置換不可、属性変更不可)、“1”が属性変更のみ可能、“2”が置換可能、属性変更可能を示してもよい。これらの値は、編集禁止の内容に応じて任意に割り当てることができる。
一方で、レシピを利用してさらに複雑なプログラムを設計したい場合やレシピ自体を改良したい場合などのユースケースが想定されるため、本実施形態によれば、編集の制限を解除可能にレシピを提供する。本実施形態に係るカスタムレシピの編集においては、その編集の制限を編集制限解除ボタン89を操作することにより解除することができる。編集制限解除ボタン89が操作されると、図10に示す画面に遷移する。編集の制限が解除されるとCRC値が削除されるため、図10に示す画面においてはCRC値83dの表示が削除される。なお、編集制限を解除するためには、一定の制限を設けてもよい。例えば、編集制限解除ボタン89が操作されると、所定のパスワードの入力を要求し、当該パスワードを用いた認証が成功すると、制限を解除するようにしてもよい。さらにログインユーザの権限を参照し、編集制限の解除を許可するか否かを判断してもよい。また、編集制限解除ボタン89が操作されたタイミングでポップアップで警告画面を表示するようにしてもよい。このように、本実施形態によれば、編集の制限を解除可能にレシピを提供してユーザビリティを向上させつつ、安全基準を満たすことを保証するCRC値をプログラムから削除することにより、安全基準を満たさない可能性を警告することができる。
<レシピの登録>
(登録・管理画面)
図11は、たとえば図4のUI30である編集画面を表示中にレシピ登録・管理ボタン38bが操作された際に遷移するレシピの登録・管理画面110を示す。レシピの登録・管理画面110は、CPU13によって表示制御され、PC2の表示装置5bに表示される。レシピの登録・管理画面110には、登録レシピのリスト111、表示領域112、115、インポートボタン113、エクスポートボタン114、登録ボタン116、編集ボタン117、削除ボタン118、及び閉じるボタン119を含んで構成される。
登録レシピのリスト111には、登録されているレシピのリストが選択可能に表示される。表示領域112、115には、選択された登録レシピの各種情報が表示される。表示領域112には、当該登録レシピの回路構成が表示され、さらにはメモ情報も表示される。表示領域115には、選択されたレシピのCRC値が表示される。なお、図11の例では、登録レシピのリスト111からマニュアルリセット回路改というレシピが選択され、当該レシピに関する情報が表示領域112、115に表示されている状態を示す。登録・管理画面110に遷移した直後には、遷移前の画面で編集中であった回路構成が有れば表示領域112に表示される。この回路については、動作確認が終了していれば、登録ボタン116を操作することにより登録レシピとして登録することができる。登録ボタン116が操作されると、ポップアップ画面等が表示され、登録するレシピの名称等をユーザ入力により設定することができる。登録する際には、そのファイルデータからCRC値が計算され付与される。
登録レシピのリスト111が選択された状態で編集ボタン117が操作されると、当該レシピを編集可能なレシピ編集画面80に遷移する。レシピ編集画面80で編集した安全プログラムは、レシピ登録・管理ボタン38bを操作することにより、新たなレシピとして登録することが可能である。登録レシピのリスト111が選択された状態で削除ボタン118が操作されると、選択したレシピが記憶装置15から削除される。
インポートボタン113が操作されると、不図示の所定の画面へ遷移し、ネットワーク等を介して接続された外部装置が保持するレシピファイルを取得することができる。エクスポートボタン114が操作されると、不図示の所定の画面へ遷移し、記憶装置15に記憶されている1以上のレシピを選択して、ネットワークを介して接続された外部装置に選択したレシピファイルを送信することができる。閉じるボタン119が操作されると、レシピの登録・管理画面110に遷移する前の画面へ戻る。
<フローチャート>
図12は安全プログラムを作成する際のプログラム作成支援装置であるPC2の処理手順を示すフローチャートである。以下で説明する処理は、CPU13が編集プログラム16を実行することにより実現される。ここでは、図4や図5に示すUI30の編集画面が表示装置5bに表示されている際に、レシピ読込ボタン38aが操作された際の処理について説明する。
S1でCPU13は図7に示すレシピの読込画面70を表示装置5bに表示する。続いて、S2でCPU13は図7を用いて説明した手順でユーザ入力に従ってレシピを選択する。レシピが選択されて開かれると、S3でCPU13は選択されたレシピを編集可能なレシピ編集画面80を表示装置5bに表示する。
S4でCPU13はユーザによって編集制限解除ボタン89が操作されたか否かを判定する。なお、ここでは、説明を容易にするため、このタイミングで編集制限解除ボタン89が操作されたか否かを判定する処理を説明するが、本発明はこれに限らず、レシピ編集画面80が表示されている間は常に当該判定が行われるものである。操作されていると判定された場合はS8に進み、操作されていないと判定された場合はS5に進む。S8でCPU13は開かれているレシピのCRC値を削除して図4や図5に示す編集画面へ遷移し、その後は通常の編集処理を実行する。なお、CRC値を削除する際にその旨の表示などユーザに対して警告を行ってもよい。さらに当該警告でユーザの承認を受け付け可能とし、承認を受け付けた段階で編集制限を解除するようにしてもよい。
一方、S5でCPU13はユーザ入力に従って開かれたレシピのダミーブロックを、入出力機器で置き換える。ここで、プログラムの編集中において、図9を参照して説明したように、編集禁止の機能ブロック等に所定の操作(ポインティングデバイスによる操作など)が行われると、CPU13は、マーク92やメッセージ93などの警告を表示するように制御する。なお、一部の機能ブロックのみ編集禁止が行われている場合には、表示中の何れかの機能ブロックに対して所定の操作が行われると、CPU13は、当該機能ブロックに紐付けて予め保持されている編集禁止情報を参照し、上記警告を表示するか否かを判断してもよい。次に、S6でCPU13はシミュレーションボタン32が操作されたことに従って編集中の安全プログラムの動作確認を行う。動作確認が完了すると、S7でCPU13は安全プログラムを完成させ、処理を終了する。なお、作成された安全プログラムはメインコントローラであるメインモジュール3に転送されて実行される。
図13は安全プログラムを作成する際のプログラム作成支援装置であるPC2の処理手順を示すフローチャートである。以下で説明する処理は、CPU13が編集プログラム16を実行することにより実現される。ここでは、図4や図5に示すUI30の編集画面が表示装置5bに表示されている際に、レシピの登録・管理ボタン38bが操作された際の処理について説明する。
S21でCPU13は図11に示すレシピの登録・管理画面110を表示装置5bに表示する。ここで、CPU13は、UI30の編集画面においてレシピの登録・管理ボタン38bが操作された際に、編集中の安全プログラム(回路構成)があれば表示領域112に表示する。なお、登録レシピとして登録するための条件として動作確認が正常に終了していることを条件としてもよい。この場合、CPU13は動作確認が完了している編集中の安全プログラムがある場合には登録・管理画面110の表示領域112に表示し、安全プログラムの編集中であっても動作確認が正常に終了していなければ表示領域112に表示しない。これらの条件の設定はユーザ入力により行うことができ、所定の管理者権限を有するユーザのみが条件を変更できるように制御してもよい。さらに、CPU13は登録レシピのリスト111に記憶装置15に記憶されている登録レシピ17bをリスト表示する。
次に、S22でCPU13はリスト111の何れかが選択された状態でユーザ操作を受け付けると、登録ボタン116が操作されたか否かを判定する。登録ボタン116が操作されていればS23に進み、そうでなければS26に進む。S23でCPU13は登録情報を受け付けるための画面、たとえば不図示のポップアップ画面を表示し、登録に必要な情報を受け付ける。登録に必要な情報には種々の情報が含まれてよいが、たとえば登録するレシピのファイル名や当該安全プログラムのメモ、プロジェクト情報などである。登録情報を受け付けると、S24でCPU13は登録レシピのレシピファイルの内容、特に上述したプログラム制御に影響を与える情報からCRC値を算出する。S25でCPU13は算出したCRC値を含むレシピファイルを記憶装置15の登録レシピ17bに登録し、処理を終了する。
一方、S22で登録ボタン116の操作でないと判定すると、S26でCPU13は編集ボタン117が操作されたか否かを判定する。編集ボタン117が操作された場合は図5に示すUI30の通常の編集画面へ遷移し、処理を終了する。また、編集ボタン117が操作されていない場合はS27に進み、CPU13はその他の処理、たとえば登録リストの管理制御を行い、処理を終了する。その他の処理には、例えば、インポートボタン113、エクスポートボタン114、削除ボタン118、又は閉じるボタン119が操作された場合の処理が該当する。各ボタンが操作された際の処理は図11を用いて既に説明しているため詳細な説明は省略する。
<CPUの機能>
図14はCPU13が編集プログラム16を実行することで実現される様々な機能を示している。機能構成として、CPU13は、編集部1401、プログラム生成部1408、表示制御部1409、プログラムチェック部1412、結果出力部1413、および転送部1415を含む。編集部1401は、割り付け部1402、結線受付部1403、レシピ読込部1404、レシピ登録・管理部1405、及びCRC値算出部1406を含む。
編集部1401は図4乃至図11を用いて説明した各種画面を通じた安全プログラムの編集に関わる制御を行う。割り付け部1402は、編集画面上でリスト表示された各ブロック(入出力ブロックや論理ブロックなど)をブロック配置エリア37へのユーザのドラッグアンドドロップ操作に従って各ブロックの配置を行う。カスタムレシピの編集においては、割り付け部1402はユーザが選択した入出力機器をダミーブロックと置き換える。結線受付部1403は、ユーザによりタッチされたあるファンクションブロックの出力端子から、ユーザによりタッチされた他のファンクションブロックの入力端子まで接続線40を結線する。結線受付部1403は、接続線40が接続している二つの端子を示す結線情報を安全プログラム1430の一部として記憶装置15に格納する。レシピ読込部1404は、レシピの読込画面70を通じて、記憶装置15等に格納されているカスタムレシピを編集可能に読み込む。レシピ登録・管理部1405は、レシピの登録・管理画面110を通じて、編集した安全プログラムを登録レシピとして登録する制御を行ったり、登録レシピのリストの管理制御を行う。CRC値算出部1406は、レシピを登録する際に当該レシピファイルの内容からCRC値を算出し、当該登録レシピに付与する。
表示制御部1409は、各種画面を表示装置5bに表示する制御を行う。当該画面に対して入力されたユーザ操作については対応する機能部へ伝達する。たとえば読込画面70を介して入力されたユーザ操作はレシピ読込部1404へ伝達する。プログラム生成部1408は、新たに編集された安全プログラムやカスタムレシピに従って編集された安全プログラムの生成を行う。プログラムチェック部1412は、編集されたプログラムの動作をチェックする。具体的には、配置された各ブロックのチェックや、ブロック間の入出力における結線チェックが行われる。なお、カスタムレシピを編集した場合には、既に機能ブロック群の配置関係や接続状態の動作確認は終了しているため、ダミーブロックに対する入出力機器の割り付けチェックなどのみが行われてもよい。結果出力部1413は、全体シミュレーションまたは部分シミュレーションの実行画面を表示する(図6など)。転送部1415は、完成した安全プログラム1430をメインモジュール3に転送する。
記憶装置15には、編集プログラム16、FB部品群1420、安全プログラム1430、及びカスタムレシピ情報17が少なくとも格納されている。編集プログラム16は、上述のように、CPU13により実行されると各機能部の動作を実現する。FB部品群1420は、ファンクションブロックを配置する際のリスト表示に使用される機能ブロックの情報が含まれる。安全プログラム1430には、編集して、完成した安全プログラムや関連する情報が含まれる。カスタムレシピ情報17には、プリセットレシピ17aおよび登録レシピ17bが含まれる。
<まとめ>
PC2は、安全コントローラで実行される安全プログラムの作成を支援するプログラム作成支援装置として機能する。安全コントローラシステム1やメインモジュール3は安全コントローラの一例である。記憶装置15は、動作確認が行われた安全プログラムを構成する、入力機器からの安全入力信号を割り付けるための入力ブロックと、安全機能を実現する機能ブロックとのうち、前記入力ブロックをダミーブロックに置き換えた未完成の安全プログラムを記憶する。レシピ読込部1404は、記憶装置15に記憶されている未完成の安全プログラム(カスタムレシピ情報17)を取得し、取得した未完成の安全プログラムを編集可能に提供する(図8乃至図10)。編集部1401及びプログラム生成部1408は、未完成の安全プログラムをユーザ入力に従って編集して、完成した安全プログラムを作成する。このように、本実施形態によれば、既に動作確認が行われた安全プログラムの入出力ブロックの少なくとも1つをダミーブロックとした未完成の安全プログラムをレシピとして提供し、ユーザ入力に従ってダミーブロックへ入出力ブロックを割り付けて完成した安全プログラムを容易に作成することができる。これにより、本実施形態によれば、簡略した手順で生成プログラムを作成しつつ、安全性の基準を満たすことを保証する仕組みを提供することができる。
編集部1401及びプログラム生成部1408は、さらに、ユーザ入力に従って、入力ブロック、および機能ブロックを配置し、ブロック間の入出力における接続関係を編集して新たな安全プログラムを作成する。レシピ登録・管理部1405は作成した新たな安全プログラムを未完成の安全プログラムとして、作成した新たな安全プログラムのCRC(Cyclic Redundancy Check)値を紐づけて記憶装置15に記憶させる。このように、本プログラム作成支援装置は、レシピに対してCRC値を付与して登録し、安全性の基準を満たすことをより好適に保証するものである。
編集部1401は、レシピとして読み込んだ未完成の安全プログラムに対する所定の編集を制限してもよい。編集の制限とは、各ブロックの配置関係や接続状態を変更する編集を禁止することを示す。これにより、動作確認が完了している未完成の安全プログラムの回路構成の維持し、安全基準を容易に保証することができる。また、編集部1401は、未完成の安全プログラムに対して、所定の編集が行われると、当該未完成の安全プログラムに紐づけられたCRC値を削除してもよい。これにより、完成した安全プログラムにCRC値が付与されているか否かを判断するだけで、レシピを利用して作成された安全プログラムの安全基準を容易に判断することができる。また、これらのCRC値は編集画面において表示され、削除されたタイミングで当該表示についても削除するように制御してもよい(図8、図10)。
レシピ編集画面では、提供した未完成の安全プログラムのうち編集不可能なブロックについては、編集画面においてその旨を表示してもよい。例えば、編集画面におけるその旨の表示は、ポインティングデバイスによって操作可能なポインタが対応する編集不可能なブロックに重畳すると表示されてもよい(図9)。これにより、編集不可能なブロックをユーザに好適に通知することができ、ユーザフレンドリな操作体系を実現することができる。
発明は上記の実施形態に制限されるものではなく、発明の要旨の範囲内で、種々の変形・変更が可能である。

Claims (16)

  1. 安全コントローラで実行される安全プログラムの作成を支援するプログラム作成支援装置であって、
    動作確認が行われた安全プログラムを構成する、入力機器からの安全入力信号を割り付けるための入力ブロックと、安全機能を実現する機能ブロックのうち、前記入力ブロックをダミーブロックに置き換えた未完成の安全プログラムを記憶する記憶手段と、
    前記記憶手段に記憶されている前記未完成の安全プログラムを取得する取得手段と、
    前記取得手段によって取得した前記未完成の安全プログラムを編集可能に提供する提供手段と、
    前記提供手段によって提供された前記未完成の安全プログラムをユーザ入力に従って編集して、完成した安全プログラムを作成する作成手段と
    を備えることを特徴とするプログラム作成支援装置。
  2. 前記作成手段は、さらに、ユーザ入力に従って、入力ブロック、および機能ブロックを配置し、ブロック間の入出力における接続関係を編集して新たな安全プログラムを作成し、前記作成した新たな安全プログラムを前記未完成の安全プログラムとして、該作成した新たな安全プログラムのCRC(Cyclic Redundancy Check)値を紐づけて前記記憶手段に記憶させることを特徴とする請求項1に記載のプログラム作成支援装置。
  3. 前記作成手段は、前記未完成の安全プログラムに対する所定の編集を制限することを特徴とする請求項2に記載のプログラム作成支援装置。
  4. 前記作成手段は、前記未完成の安全プログラムに対して、前記所定の編集が行われると、該未完成の安全プログラムに紐づけられたCRC値を削除することを特徴とする請求項3に記載のプログラム作成支援装置。
  5. 前記提供手段は、前記未完成の安全プログラムを編集可能な編集画面を用いて提供し、前記編集画面には前記CRC値の表示が含まれることを特徴とする請求項4に記載のプログラム作成支援装置。
  6. 前記提供手段は、前記未完成の安全プログラムに対して、前記所定の編集が行われる際に、前記編集画面において、該未完成の安全プログラムに紐づけられた前記CRC値を削除する旨の警告を表示することを特徴とする請求項5に記載のプログラム作成支援装置。
  7. 前記提供手段は、前記CRC値が削除されると、前記編集画面からCRC値の表示を削除することを特徴とする請求項5又は6に記載のプログラム作成支援装置。
  8. 前記所定の編集とは、前記未完成の安全プログラムに含まれる各ブロックの変更、各ブロックの接続関係の変更、各ブロックの属性の変更の少なくとも1つであることを特徴とする請求項3乃至7の何れか1項に記載のプログラム作成支援装置。
  9. 前記作成手段は、ユーザ入力に従って選択された入力機器を前記未完成の安全プログラムのダミーブロックと置き換えることにより安全プログラムを作成することを特徴とする請求項1乃至8の何れか1項に記載のプログラム作成支援装置。
  10. 前記作成手段は、前記未完成の安全プログラムのダミーブロックへ割り付けることが可能な入力機器を、ブロックごとに制限することを特徴とする請求項9に記載のプログラム作成支援装置。
  11. 前記提供手段は、提供した前記未完成の安全プログラムのうち編集不可能なブロックについては、前記編集画面においてその旨を表示することを特徴とする請求項5乃至7の何れか1項に記載のプログラム作成支援装置。
  12. 前記編集画面におけるその旨の表示は、ポインティングデバイスによって操作可能なポインタが対応する編集不可能なブロックに重畳すると表示されることを特徴とする請求項11に記載のプログラム作成支援装置。
  13. 前記未完成の安全プログラムには、入力ブロック、および機能ブロックの配置関係と、ブロック間の入出力の結線情報とが含まれることを特徴とする請求項1乃至12の何れか1項に記載のプログラム作成支援装置。
  14. 前記未完成の安全プログラムに含まれる入力ブロックのダミーブロックの数が、ユーザ入力によって増減されることを特徴とする請求項1乃至13の何れか1項に記載のプログラム作成支援装置。
  15. 前記取得手段は、前記未完成の安全プログラムを取得する際に、1以上の前記未完成の安全プログラムについてのプレビュー画面を提供することを特徴とする請求項1乃至14の何れか1項に記載のプログラム作成支援装置。
  16. 前記取得手段は、前記未完成の安全プログラムを前記記憶手段に代えて、外部装置から取得することを特徴とする請求項1乃至15の何れか1項に記載のプログラム作成支援装置。
JP2019209186A 2019-11-19 2019-11-19 プログラム作成支援装置 Pending JP2021082031A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019209186A JP2021082031A (ja) 2019-11-19 2019-11-19 プログラム作成支援装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019209186A JP2021082031A (ja) 2019-11-19 2019-11-19 プログラム作成支援装置

Publications (1)

Publication Number Publication Date
JP2021082031A true JP2021082031A (ja) 2021-05-27

Family

ID=75965293

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019209186A Pending JP2021082031A (ja) 2019-11-19 2019-11-19 プログラム作成支援装置

Country Status (1)

Country Link
JP (1) JP2021082031A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021035558A (ja) * 2020-11-11 2021-03-04 株式会社三洋物産 遊技機

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021035558A (ja) * 2020-11-11 2021-03-04 株式会社三洋物産 遊技機

Similar Documents

Publication Publication Date Title
EP3798817B1 (en) User interface logical and execution view navigation and shifting
KR101401158B1 (ko) 프로젝트 데이터 작성 장치 및 프로그래머블 표시기
US8793668B2 (en) Protocol independent programming environment
JP6443190B2 (ja) プログラマブルロジックコントローラ、プログラマブルロジックコントローラの制御方法、及び、制御プログラム
JP4302146B2 (ja) プログラム作成支援装置
JP5875555B2 (ja) 画像作成システム
JP2014032529A (ja) Plcシステム、その作画エディタ装置、プログラマブル表示器
JP5921765B2 (ja) プログラムグラフ表示装置、プログラムグラフ表示方法およびプログラムグラフ表示プログラム
JPWO2015075790A1 (ja) シーケンスプログラム作成支援装置
JP6889510B2 (ja) プログラミング装置、およびプログラム
JP6477178B2 (ja) Plc制御データ生成装置、plc制御データ生成方法、及び、plc制御データ生成プログラム
US9684738B2 (en) Text-based command generation
CN110765028A (zh) 验证环境的可视化搭建方法、装置及存储介质
JP2021082031A (ja) プログラム作成支援装置
JP2008097550A (ja) 画面表示用コンピュータ、制御プログラムおよびそのプログラムを記録した記録媒体
WO2020195195A1 (ja) 開発支援装置、開発支援装置の制御方法、情報処理プログラム、および記録媒体
JP2021082033A (ja) プログラム作成支援装置
JP2007094724A (ja) プログラマブル表示器、制御プログラムおよびそのプログラムを記録した記録媒体、ならびに画面作成装置、画面作成プログラムおよびそのプログラムを記録した記録媒体
JP2009223471A (ja) シミュレーション・システム
JP2011192088A (ja) Plcのプログラム開発支援装置
WO2021192456A1 (ja) 情報処理装置およびラダープログラムを表示するためのプログラム
CN107561950B (zh) 楼宇中控制器的编程方法及提供控制器编程工具的服务器
JP6121706B2 (ja) プログラミング方法および装置
JP2006099573A (ja) 画面作成装置、画面作成プログラムおよびそれを記録した記録媒体
US20210149643A1 (en) Program creation assistance device

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20210113