(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-11
(45)【発行日】2024-01-19
(54)【発明の名称】安全コントローラおよび履歴表示装置
(51)【国際特許分類】
G05B 9/02 20060101AFI20240112BHJP
G05B 23/02 20060101ALI20240112BHJP
【FI】
G05B9/02 B
G05B23/02 301V
(21)【出願番号】P 2019209184
(22)【出願日】2019-11-19
【審査請求日】2022-09-12
(73)【特許権者】
【識別番号】000129253
【氏名又は名称】株式会社キーエンス
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(74)【代理人】
【識別番号】100076428
【氏名又は名称】大塚 康徳
(74)【代理人】
【識別番号】100115071
【氏名又は名称】大塚 康弘
(74)【代理人】
【識別番号】100112508
【氏名又は名称】高柳 司郎
(74)【代理人】
【識別番号】100116894
【氏名又は名称】木村 秀二
(74)【代理人】
【識別番号】100131886
【氏名又は名称】坂本 隆志
(72)【発明者】
【氏名】川中 政嗣
(72)【発明者】
【氏名】松本 智也
(72)【発明者】
【氏名】工藤 元宏
【審査官】大古 健一
(56)【参考文献】
【文献】特開2018-5453(JP,A)
【文献】特表2009-501968(JP,A)
【文献】特開2003-216229(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 9/00 - 9/05
G05B 23/00 -23/02
(57)【特許請求の範囲】
【請求項1】
一つ以上の安全入力機器から入力信号が入力される入力部と、
前記入力信号
と、ファンクションブロックを含む安全プログラムと、に基づき所定の演算を実行して出力信号を求め、当該出力信号として安全状態を示すON信号または安全ではない状態を示すOFF信号を出力する安全制御部と、
前記入力信号
、前記ファンクションブロックの状態および前記出力信号を時刻情報とともに履歴情報として記録する履歴記録手段と、
前記履歴記録手段に記録された履歴情報を読み出して
、当該履歴情報が記録された記録タイミングにおいて論理が変化した入力信
号および出力信号
の各信号またはファンクションブロックを強調するためのアイコンを前記安全プログラム上に変化点
として示す表示画面情報を作成して表示装置に提供する提供手段と、
を有することを特徴とする安全コントローラ。
【請求項2】
前記提供手段は、前記アイコンを前記安全プログラム上に変化点として示すとともに、当該安全プログラム上に前記各信号または前記ファンクションブロックの状態を示す前記表示画面情報を提供することを特徴とする請求項1に記載の安全コントローラ。
【請求項3】
一つ以上の安全入力機器から入力信号が入力される入力部と、
前記入力信号に基づき所定の演算を実行して出力信号を求め、当該出力信号として安全状態を示すON信号または安全ではない状態を示すOFF信号を出力する安全制御部と、
前記入力信号および前記出力信号を時刻情報とともに履歴情報として記録する履歴記録手段と、
前記履歴記録手段に記録された履歴情報を読み出して
、前記入力信号または前記出力信号に変化が生じた記録タイミングのうち一の記録タイミングにおける前記入力信号の変化点および前記出力信号の変化点を
選択的に示す表示画面情報を作成して
、内蔵する表示装置に提供する提供手段と、
を有することを特徴とする安全コントローラ。
【請求項4】
前記提供手段は、前記一の記録タイミングにおける前記入力信号および前記出力信号の変化点を示すとともに、前記入力信号および前記出力信号の現在の状態を示す前記表示画面情報を提供することを特徴とする請求項3に記載の安全コントローラ。
【請求項5】
前記安全制御部は、前記入力信号または前記入力信号から求められた演算信号に対してそれぞれ論理演算を実行する複数のファンクションブロックを有する安全プログラムを、スキャンサイクルごとに繰り返し実行するように構成されており、
前記履歴記録手段は、前記スキャンサイクルごとに、前記時刻情報とともに、前記複数のファンクションブロックのそれぞれの状態、前記入力信号および前記出力信号を前記履歴情報として記録することを特徴とする請求項1
ないし4のいずれか一項に記載の安全コントローラ。
【請求項6】
前記複数のファンクションブロックは、少なくとも二つの入力端子と少なくとも一つの出力端子を有し、
前記表示装置は、前記複数のファンクションブロックのそれぞれについて前記少なくとも二つの入力端子の状態と前記少なくとも一つの出力端子の状態とを表示することを特徴とする請求項
5に記載の安全コントローラ。
【請求項7】
前記提供手段は、前記表示装置において表示されている履歴情報よりも古い履歴情報または新しい履歴情報を表示することを指示されると、前記指示に基づき前記古い履歴情報または新しい履歴情報を示す表示画面情報を作成して前記表示装置に提供することを特徴とする請求項1ないし
6のいずれか一項に記載の安全コントローラ。
【請求項8】
前記表示装置は、前記入力信号の変化または前記出力信号の変化が生じた複数のイベントのうち一つのイベントを選択する選択オブジェクトを表示し、
前記提供手段は、前記選択オブジェクトを通じて選択されたイベントに関連付けられている履歴情報を前記履歴記録手段から取得して前記表示画面情報を作成することを特徴とする請求項1ないし
7のいずれか一項に記載の安全コントローラ。
【請求項9】
前記選択オブジェクトに列挙される複数のイベントを検索するための検索条件を入力する入力手段と、
前記入力手段に入力された前記検索条件にしたがってイベントを検索し、見つかったイベントを前記選択オブジェクトに列挙する列挙手段と、
をさらに有することを特徴とする請求項
8に記載の安全コントローラ。
【請求項10】
前記履歴情報は、前記一つ以上の安全入力機器の設置された設置環境を撮影して得られた画像データをさらに含み、
前記表示装置は、前記入力信号の変化点および前記出力信号の変化点とともに、前記画像データを表示することを特徴とする請求項1ないし
9のいずれか一項に記載の安全コントローラ。
【請求項11】
前記表示装置は、複数の履歴情報をタイムチャート上に表示することを特徴とする請求項1ないし
10のいずれか一項に記載の安全コントローラ。
【請求項12】
一つ以上の安全入力機器から入力信号が入力される入力部と、前記入力信号
と、ファンクションブロックを含む安全プログラムと、に基づき所定の演算を実行して出力信号を求め、当該出力信号として安全状態を示すON信号または安全ではない状態を示すOFF信号を出力する安全制御部と、前記入力信号
、前記ファンクションブロックの状態および前記出力信号を時刻情報とともに履歴情報として記録する履歴記録手段と、を有する安全コントローラに接続される履歴表示装置であって、
前記履歴記録手段に記録された履歴情報を読み出して
、当該履歴情報が記録された記録タイミングにおいて論理が変化した入力信
号および出力信号
の各信号またはファンクションブロックを強調するためのアイコンを前記安全プログラム上に変化点
として示す表示画面情報を作成する作成手段と、
前記表示画面
情報を表示する表示手段と
を有することを特徴とする履歴表示装置。
【請求項13】
前記安全制御部は、前記入力信号または前記入力信号から求められた演算信号に対してそれぞれ論理演算を実行する複数のファンクションブロックを有する安全プログラムを、スキャンサイクルごとに繰り返し実行するように構成されており、
前記履歴記録手段は、前記スキャンサイクルごとに、前記時刻情報とともに、前記複数のファンクションブロックのそれぞれの状態、前記入力信号および前記出力信号を前記履歴情報として記録することを特徴とする請求項
12に記載の履歴表示装置。
【請求項14】
前記複数のファンクションブロックは、少なくとも二つの入力端子と少なくとも一つの出力端子を有し、
前記表示手段は、前記複数のファンクションブロックのそれぞれについて前記少なくとも二つの入力端子の状態と前記少なくとも一つの出力端子の状態とを表示することを特徴とする請求項
13に記載の履歴表示装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、安全コントローラおよび履歴表示装置に関する。
【背景技術】
【0002】
製品を生産する製品工場においては危険源である多数の産業機械が稼働している。安全システムは、機械から人間の安全を確保するために欠かせないシステムである(特許文献1、2)。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2014-16930号公報
【文献】特開平10-011118号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
安全システムは安全であればON信号を出力し、安全でない可能性があればOFF信号を出力する。また、安全システムの信頼性を高めるために、マイクロコントローラユニット(MCU)は二重化されている。二つのMCUがともにON信号を出力する場合に限り、安全システムはON信号を出力する。二つのMCUのうちいずれか一方でもOFF信号を出力すると、安全システムはOFF信号を出力する。このように安全システムを設計することで、誤ったON信号が出力されることは防止される。その一方で、誤ってOFF信号を出力することは、作業者の安全性を確保する観点からは、許容されてきた。
【0005】
しかし、誤ったOFF信号が出力されると、機械が停止するため、製品の生産効率が低下する。したがって、誤ったOFF信号の原因を早急に解明することが要求される。
【0006】
そこで、本発明は、安全プログラムの動作に関連した履歴を記録することで、誤ったOFF信号の原因の解明に資することを目的とする。
【課題を解決するための手段】
【0007】
本発明は、たとえば、
一つ以上の安全入力機器から入力信号が入力される入力部と、
前記入力信号に基づき所定の演算を実行して出力信号を求め、当該出力信号として安全状態を示すON信号または安全ではない状態を示すOFF信号を出力する安全制御部と、
前記入力信号および前記出力信号を時刻情報とともに履歴情報として記録する履歴記録手段と、
前記履歴記録手段に記録された履歴情報を読み出して前記入力信号の変化点および前記出力信号の変化点を示す表示画面情報を作成して表示装置に提供する提供手段と、
を有することを特徴とする安全コントローラを提供する。
【発明の効果】
【0008】
本発明によれば、安全プログラムの動作に関連した履歴を記録することで、誤ったOFF信号の原因の解明に資することが可能となる。
【図面の簡単な説明】
【0009】
【
図2】メインモジュールと拡張モジュールを説明する図
【発明を実施するための形態】
【0010】
以下、添付図面を参照して実施形態が詳しく説明される。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態で説明されている特徴の組み合わせの全てが発明に必須のものとは限らない。実施形態で説明されている複数の特徴のうち二つ以上の特徴が任意に組み合わされてもよい。また、同一または同様の構成には同一の参照番号が付され、重複した説明は省略される。とりわけ、小文字のアルファベットは複数の同種の構成要素を区別するために付与されており、複数の構成要素に共通した説明が記載されるときには、小文字のアルファベットが省略されることがある。
【0011】
(安全コントローラシステム)
図1はシステムの全体を示している。この例で、安全コントローラシステム1は、メインモジュール3、拡張モジュール4a、4bを有している。メインモジュール3は、ユーザが安全プログラムを作成することを支援する作成支援装置として機能するPC2aから転送されてきた安全プログラムを実行する。メインモジュール3は、表示装置5a、操作部6a、通信コネクタ7a、IOコネクタ10aなどを有している。PC2aも表示装置5b、および操作部6bを有している。PC2bは安全コントローラシステム1で取得された履歴データを表示する履歴表示装置として機能することが可能なコンピュータである。PC2bも表示装置5c、および操作部6cを有している。通信コネクタ7aは、USBや有線LANのためのコネクタであってもよい。PC2aからの通信ケーブルは通信コネクタ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に出力したりする。
【0012】
(メインモジュールと拡張モジュールのハードウエア)
図2が示すように、メインモジュール3の制御部20aは二つのMCU23a、24aとメモリ25aとを有している。制御部20aはPC2aから受信した安全プログラムと履歴記録プログラムをメモリ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と通信して入力信号を受信したり、出力信号を送信したりする。通信IF27aは通信コネクタ7aを介して他の機器と通信する。
【0013】
拡張モジュール4の制御部20bは二つのMCU23b、24bとメモリ25bとを有している。信頼性を高めるためにMCU(マイクロコントローラユニット)は二重化されている。MCU23b、24bはそれぞれメモリ25bに保持されている制御プログラムを実行する。制御部20bは安全入力IF21bを介して安全入力機器11の入力信号を受信すると、バスIF26bを介してメインモジュール3に送信する。制御部20bはバスIF26bを介してメインモジュール3から出力信号を受信すると、安全出力IF22bを介して安全出力機器である動力源12などに出力する。
【0014】
(PCのハードウエア)
図3が示すように、PC2aは、CPU13b、表示装置5b、操作部6b、記憶装置15bおよび通信IF27bを備えている。表示装置5b、操作部6b、記憶装置15bおよび通信IF27bは、それぞれCPU13bに対して電気的に接続されている。記憶装置15bはRAMやROM、HDD、SSDを含み、さらに着脱可能なメモリカードを含んでもよい。CPUは中央演算処理装置の略称である。ROMはリードオンリーメモリの略称である。RAMはランダムアクセスメモリの略称である。HDDはハードディスクドライブの略称である。SSDはソリッドステートドライブの略称である。
【0015】
PC2aのユーザは記憶装置15bに記憶されている編集プログラム14をCPU13bに実行させて、操作部6bを通じて安全プログラム16や履歴記録プログラム、設定情報などを編集し、メインモジュール3に転送する。設定情報は、メインモジュール3に接続されている拡張モジュール4の識別情報と、IOコネクタ10a~10cに設けられた各入力端子と各出力端子に接続されている安全入力機器11および動力源12の識別情報(端子割り当て情報)などを含む。
【0016】
図4が示すように、PC2bは、CPU13c、表示装置5c、操作部6c、記憶装置15cおよび通信IF27cを備えている。表示装置5c、操作部6c、記憶装置15cおよび通信IF27cは、それぞれCPU13cに対して電気的に接続されている。記憶装置15cはRAMやROM、HDD、SSDを含み、さらに着脱可能なメモリカードを含んでもよい。
【0017】
CPU13cはWebブラウザプログラム91を実行することでWebブラウザ93として機能する。はWebブラウザプログラム91は、html(ハイパーテキストマークアップ言語)データ、css(カスタムスタイルシート)データ、JavaScript(R)の実行環境を有している。CPU13c(Webブラウザ93)は通信IF27cを介してメインモジュール3のWebサーバにアクセスして、履歴表示UIを表示装置5cに表示するためのソースデータ92および履歴データ18を受信して表示装置5cに履歴表示UIを表示する。なお、履歴データ18はソースデータ92の一部であってもよい。履歴表示UIは、誤ったOFF信号の原因解明に役立つであろう。
【0018】
(ユーザーインターフェース:UI)
図5はCPU13c(Webブラウザ93)がソースデータ92にしたがって表示装置5cに表示する履歴表示UI30を示している。履歴表示UI30は少なくとも二つの表示モードを有している。
【0019】
(1)ブロック情報モード
第一の表示モードはブロック情報モードである。ブロック情報モードは、安全プログラムを形成している複数のファンクションブロックに関連付けて履歴データ18を表示するモードである。ブロック情報ボタン31がクリックまたはタッチされたことを検知すると、CPU13cは、ブロック情報ボタン31にリンクされているWebページの表示リクエストをWebサーバにリクエストを送信し、当該Webページのソースデータ92を受信する。CPU13cは、受信したソースデータ92にしたがって、ブロック情報モードの履歴表示UI30を表示する。履歴表示UI30はブロック表示部40を有している。ブロック表示部40は、安全プログラム16を形成しているファンクションブロック41のアイコンと、各ファンクションブロックの端子42のアイコンと、端子間を接続する接続線38と、変化点表示アイコン43とを表示する。
【0020】
変化点表示アイコン43は、その時点で選択されている履歴レコード(イベント)において論理が変化した信号またはファンクションブロックを強調するための画像である。変化点表示アイコン43は、現在表示されている履歴レコード(イベント)が記録されたタイミングで、状態が変化したことを示している。変化点表示アイコン43が付与されていないファンクションブロックは、現在表示されているイベントの記録タイミングよりも過去の記録タイミングですでに状態が変化したことを意味する。よって、変化点表示アイコン43は、ユーザが注目している状態の変化をもたらした原因を解明しやすくなるであろう。
【0021】
表示条件選択部33は、メインモジュール3により記録された履歴データ18のうち、表示対象となるデータをフィルタリングするための条件を入力するために使用される。この条件は表示条件または抽出条件と呼ばれてもよい。条件指定部34、35は、予め用意された複数の条件候補のリストを表示し、当該リストから二つの条件を指定するためのプルダウンメニューである。条件指定部34、35は、任意のテキストを入力可能なテキストボックスであってもよい。表示条件選択部33において選択または指定された条件はWebサーバに送信される。
【0022】
履歴リスト36は、表示条件にしたがってメインモジュール3のWebサーバにより抽出されたレコード(イベント37)のリストを表示する。イベント37は、レコードの通し番号(イベント番号)、イベントの記録日時(タイムスタンプ)、イベントが発生したファンクションブロックの名称(識別情報)などを含んでもよい。なお、各レコードは、予め指定されたイベントが発生したときに記録されてもよいし、安全プログラム16のスキャンサイクルごとに記録されてもよい。ユーザが履歴リスト36に表示されているいずれかのイベント37を選択すると、CPU13cは、選択されたイベント37の識別情報を含むリクエストをメインモジュール3のWebサーバに送信する。メインモジュール3のWebサーバは、リクエストに対応する履歴レコード(イベント)を履歴データ18から読み出して、ブロック表示部40のソースデータを作成し、CPU13cに送信する。CPU13cは受信したソースデータにしたがってブロック表示部40の表示内容を更新する。
【0023】
ところで、ON状態のファンクションブロック41のアイコンはライトブルーやライトグリーンに着色されてもよい。OFF状態のファンクションブロック41のアイコンはライトピンクやオレンジに着色されてもよい。同様に、ON状態の端子42のアイコンはブルーまたはグリーンに着色されてもよい。OFF状態の端子42のアイコンはレッドに着色されてもよい。これにより視覚的に信号の論理と、各ファンクションブロックの状態とが確認しやすくなろう。これらのアイコンの着色は、たとえば、cssにより実現されてもよい。
【0024】
操作ボタン45aは、先頭のレコードまたはイベントに表示対象を変更するためのボタンである。操作ボタン45bは、指定された信号またはブロックについて直前の信号変化点にフォーカスを移動させるためのボタンである。操作ボタン45cは、指定された信号またはブロックについて直後の信号変化点にフォーカスを移動させるためのボタンである。操作ボタン45dは、最後のレコードまたはイベントに表示対象を変更するためのボタンである。操作ボタン45eは、表示対象となっている状態を一ステップ前の状態に変更するためのボタンである。操作ボタン45fは、表示対象となっている状態を一ステップ後の状態に変更するためのボタンである。メニュー46は、一ステップの時間間隔(例:100ms、200ms、500msなど)を選択するためのプルダウンメニューである。CPU13cは押された操作ボタンに対応するリクエストをWebサーバに送信することで、更新されたソースデータ92を受信して履歴表示UI30に反映させる。
【0025】
(2)タイムチャートモード
タイムチャートボタン32がクリックまたはタッチされたことを検知すると、第一の表示モードから第二の表示モードに切り替えるために、CPU13cは、タイムチャートのリクエストをWebサーバに送信し、更新されたソースデータ92を受信する。なお、タイムチャートボタン32は、第二の表示モードのユーザーインターフェースを提供するWebページに対してリンクされていてもよい。第二の表示モードは履歴データ18をタイムチャート形式で表示するタイムチャートモードである。
【0026】
図6は、第二の表示モードのソースデータ92に基づきWebブラウザ93に表示されるタイムチャートUI60を示している。この例では、タイムチャートUI60はブロック表示部40と切り替えられて表示されているが、タイムチャートUI60とブロック表示部40との両方が並行して表示されてもよい。たとえば、タイムチャートUI60が第一ブラウザウインドウ/第一ブラウザタブに表示され、ブロック表示部40が第二ブラウザウインドウ/第二ブラウザタブに表示されてもよい。また、タイムチャートUI60は、JavaScript(登録商標)によるポップアップにより実現されてもよい。
【0027】
タイムチャートUI60は、履歴データ18に含まれている各種の安全入力信号や安全出力信号、ファンクションブロックの出力端子の状態を表示する。現在位置バー61は、ユーザにより現在選択されているイベントまたはレコードのタイムスタンプの位置を示すバーである。時刻バー62は、履歴データ18に記録された最初のレコードのタイムスタンプから最後のレコードまでの履歴記録期間の全体を示すグラフィカルオブジェクトである。イベントバー65はイベントが発生した時刻を示すオブジェクトである。斜線を付与されたタイムチャート期間63は、タイムチャートUI60に表示されているタイムチャートの開始時刻から終了時刻までの期間(表示対象期間)を明示するためのオブジェクトである。現在位置オブジェクト64は、現在位置バー61により示されている時刻に対応している。
【0028】
この例では、非常停止スイッチが押されたことで、リセットファンクションブロックがOFFとなり、さらに、第一のANDブロックがOFFとなり、その結果として出力ブロックAがOFFになったことがわかる。さらに、リセットスイッチが押されたことで、リセットファンクションブロックがOFFからONに復帰し、第一のANDブロックがONとなり、その結果として出力ブロックAがONになったことがわかる。
【0029】
次のイベントでは、ライトカーテンが遮光されたことでライトカーテンがOFFとなり、第二のANDブロックがOFFとなり、さらに、第一のANDブロックがOFFとなり、その結果として出力ブロックAがOFFになったことがわかる。ライトカーテンの遮光が解除されたことでライトカーテンがONに戻り、第二のANDブロックもONとなり、さらに、第一のANDブロックもONとなり、その結果として出力ブロックAがONになったことがわかる。
【0030】
さらにイベントでは、ドアスイッチを取り付けされたドアが開かれたことでドアスイッチがOFFとなり、第二のANDブロックがOFFとなり、さらに、第一のANDブロックがOFFとなり、その結果として出力ブロックAがOFFになったことがわかる。ドアが閉められると、ドアスイッチがONに戻り、第二のANDブロックもONとなり、さらに、第一のANDブロックもONとなり、その結果として出力ブロックAがONになったことがわかる。
【0031】
ところで、本実施例のメインモジュール3は、ライトカーテンやドアスイッチなどの安全入力機器から付加情報を取得し、ファンクションブロックの状態および各信号の状態とともに付加情報を履歴データ18に記録してもよい。付加情報とは、安全出力信号の演算に関与しない情報である。ちなみに、安全出力信号の演算に関与する情報は、ライトカーテンのON/OFFやドアスイッチのON/OFFなどである。
【0032】
ライトカーテンの付加情報は、たとえば、ライトカーテンについての光軸のON/OFFを示す情報、ライトカーテンについての光軸の光量を示す情報、ライトカーテンにおいて発生したエラーを示す情報、ライトカーテンのミュート状態を示す情報、ライトカーテンのロック待ちを示す情報のうち少なくとも一つの情報を含む。ライトカーテンは、複数の発光素子を有する第一筐体と、第一筐体に対して対抗するように配置される第二筐体とを有している。第二筐体は、複数の受光素子を有し、複数の受光素子がいずれも所定の受光量を満たしている場合、ON信号を出力する。したがって、第一筐体の光軸と第二筐体の光軸とが正しく設置されないと、所定の受光量に対するマージンが小さくなってしまう。したがって、ユーザは、ライトカーテンに関するイベントを履歴データ18から取得し、光軸に関する付加情報を確認することで、ライトカーテンの配置を適切に見直すことが可能となろう。
【0033】
図7は付加情報UI70を示している。ブロック表示部40またはタイムチャートUI60においてライトカーテンに対応したファンクションブロックがクリックまたはタッチされると、CPU13cは付加情報UI70を表示するためのリクエストをWebサーバに送信する。メインモジュール3のWebサーバは、リクエストに基づき現在位置バー61に対応する時刻に関連付けられているライトカーテンの付加情報を履歴データ18から読み出して、付加情報UI70のソースデータを作成し、CPU13c(Webブラウザ93)に送信する。CPU13c(Webブラウザ93)は、受信したソースデータにしたがって付加情報UI70を表示装置5cに表示する。
【0034】
付加情報UI70は、付加情報に含まれている複数のセンサ情報から一つのセンサ情報を選択するための選択部71を有している。CPU13cは、選択部71においてユーザにより選択されたセンサ情報を、センサ情報表示部72に表示する。この例では、光量が選択されているため、ライトカーテンを構成している受光素子ごとの受光量が示されている。アドバイス表示部73は、ユーザに対するアドバイスを表示する。この例では、光軸調整を実行すべきことが助言されている。戻るボタン74は、付加情報UI70を表示しているWebページから、履歴表示UI30を表示するWebページに戻ることをCPU13cに指示するためのボタンである。
【0035】
セーフティレーザスキャナは、レーザ光で所定の領域をスキャンすることで、領域内に侵入する物体を検知する安全センサである。セーフティレーザスキャナの付加情報は、セーフティレーザスキャナについての光軸のON/OFFを示す情報、セーフティレーザスキャナについての各光軸の測定距離または光量を示す情報、セーフティレーザスキャナにおいて発生したエラーを示す情報、セーフティレーザスキャナのミュート状態を示す情報、セーフティレーザスキャナのリセット解除待ちを示す情報、セーフティレーザスキャナに設けられたカメラにより取得された画像情報のうち少なくとも一つの情報を含む。
【0036】
ドアスイッチの付加情報は、ドアスイッチのロック制御を示す情報、ドアスイッチにおいて発生したエラーを示す情報、ドアスイッチのミュート状態を示す情報、ドアスイッチのロック待ちを示す情報のうち少なくとも一つの情報を含む。
【0037】
<履歴記録処理>
(MCUの機能)
メインモジュール3は、二つのMCU23a、23bを有しているため、MCU23a、23bのいずれか一方のみが履歴記録プログラム19を実行してもよいし、MCU23a、23bの両方がそれぞれ履歴記録プログラム19を実行してもよい。後者の場合、二つの履歴データ18が作成されるが、MCU23a、23bの一方が、タイムスタンプに基づき二つの履歴データ18を一つの履歴データ18に統合してもよい。ここでは、MCU23a、23bのいずれか一方のみが履歴記録プログラムを実行する事例が詳細に説明される。
【0038】
図8はMCU23が履歴記録プログラム19または履歴表示プログラム830を実行することで実現する機能を示している。履歴表示プログラム830およびWebサーバプログラム831は、MCU23a、23bのいずれか一方のみが実行すればよい。
【0039】
実行エンジン801は、安全プログラム16を実行する。時刻同期部802は、メインモジュール3のリアルタイムクロック803に対して、拡張モジュール4のリアルタイムクロック、および、安全入力機器11のリアルタイムクロックを同期させる。FB情報取得部804は、実行エンジン801により実行される安全プログラムを構成している各ファンクションブロックの状態を実行エンジン801から取得する。付加情報取得部805は、メインモジュール3または拡張モジュール4に接続されている安全入力機器11と通信することで付加情報を取得する。安全入力機器11は、タイムスタンプを付与して付加情報を付加情報取得部805に送信してもよい。補正部806は、付加情報に付与されているタイムスタンプを補正する。メインモジュール3と安全入力機器11との間には通信遅延時間(通信処理時間)が存在する。そこで、補正部806は、通信遅延時間の分だけ付加情報に付与されているタイムスタンプを補正する。履歴記録部807は、記録条件が満たされると、安全入力信号、安全出力信号、ファンクションブロックの状態、付加情報を含むレコードを作成し、このレコードに対して、リアルタイムクロック803から取得されたタイムスタンプを付与して、履歴データ18に追記する。記録条件は、たとえば、スキャンサイクルごとであってもよい。スキャンサイクルとは、実行エンジン801による安全プログラム16の繰り返し実行周期である。つまり、実行エンジン801が安全プログラム16を一回実行するたびに、一つのレコードが作成されて、履歴データ18に追記される。記録条件は、所定のイベント(例:安全出力信号などの指定信号がONからOFFに変化したことなど)が発生したことであってもよい(変化点記録)。この場合、履歴データ18のサイズが小さくなるといったメリットが得られる。
【0040】
履歴表示部820はMCU23が履歴表示プログラム830を実行することで実現される機能である。履歴表示部820はWebブラウザ93に提供されるソースデータ92を作成したり、表示装置5aに表示される簡易画面の表示データを作成したりする。簡易画面とは、履歴データ18における信号やファンクションブロックの状態の変化点を表示するための画面である。簡易画面は、
図5ないし
図7を用いて説明されたUIと同等のものであってもよいし、より情報量の少ない画面であってもよい。ソースデータ作成部821は、履歴データ18とWebアプリケーションのテンプレートなどに基づきソースデータ92を作成する。Webサーバ822は、Webサーバプログラム831をMCU23が実行することで実現される。Webサーバ822は、PC2bで動作しているWebブラウザ93と通信し、Webブラウザ93によりリクエストされたソースデータ92をWebブラウザ93に送信する。Webサーバ822は、Webブラウザ93上でユーザにより入力された各種の操作情報をソースデータ作成部821に受け渡すことで、操作情報に応じてソースデータ92を更新するようソースデータ作成部821に指示してもよい。
【0041】
簡易画面作成部823は、履歴データ18に基づき簡易画面用の表示データを作成し、表示装置5aに簡易画面を表示する。簡易画面作成部823は、操作部6aから入力された操作情報に従って表示装置5aに表示される簡易画面を更新または変更する。つまり、簡易画面についての表示モードの変更指示や、付加情報の変更指示、表示条件の選択、履歴レコード(イベント)の選択は操作部6aを通じて入力される。なお、操作部6aは、タッチ感応式パネルとして表示装置5aに一体化されて実装されてもよい。
【0042】
(履歴の記録タイミング)
図9はスキャンサイクルごとの履歴記録を説明する図である。Scan0~Scan5は、スキャンサイクルごとに取得された安全制御に関する情報である。安全制御に関する情報とは、たとえば、安全出力信号の演算に関連または関与した情報(例:安全入力信号、ファンクションブロックの状態、安全出力信号)である。A01~A03は、たとえば、ライトカーテンの付加情報である。B01~B03はドアスイッチの付加情報である。この事例で、安全入力機器は、それぞれ個別の制御周期を有しているため、付加情報の取得タイミングが異なっている。履歴レコードは、スキャンサイクルごとに取得された安全制御に関する情報および付加情報を含む。スキャンサイクルと、安全入力機器の制御周期がずれているため、履歴レコードには、スキャンサイクルを基準とした安全制御に関する情報および付加情報が含まれている。この場合、履歴レコードに付与されるタイムスタンプは、スキャンサイクルを基準としたタイムスタンプとなる。
【0043】
ところで、ON信号が継続的に出力されている安全な期間などにおいては、連続した複数の履歴レコードがそれぞれ同一となることがある。この場合、履歴記録部807は、それぞれ同一である連続した複数の履歴レコードのうち最初の履歴レコードを残し、残りの履歴レコードを削除してもよい(変化点圧縮)。
【0044】
ここでは、スキャンサイクルごとに一つの履歴レコードが作成されているが、記録対象となるデータにはデータの種類ごとそれぞれ個別にタイムスタンプを付与されて、データの種類ごとにレコードが作成されてもよい。たとえば、安全出力信号については、スキャンサイクルごとに安全出力信号が取得されて、タイムスタンプが付与される。同様に、安全入力信号についても、スキャンサイクルごとに安全入力信号が取得されて、タイムスタンプが付与される。付加情報もスキャンサイクルごとまたは制御周期ごとに取得されて、タイムスタンプが付与されてもよい。この場合、PC2aが各データのタイムスタンプに基づき、ブロック表示部40またはタイムチャートUI60を作成して表示装置5bに表示してもよい。
【0045】
<フローチャート>
(履歴記録)
図10はメインモジュール3により実行される履歴記録処理を示すフローチャートである。メインモジュール3のMCU23は履歴記録プログラム19にしたがって以下の処理を実行する。
【0046】
S1でMCU23(時刻同期部802)は時刻同期を実行する。時刻同期部802は、安全入力IF21aに接続された安全入力機器11と、バスIF26aを介して接続された拡張モジュール4と、拡張モジュール4に接続された安全入力機器11とにそれぞれ時刻同期コマンドを送信することで、自己のリアルタイムクロック803に時刻同期させる。
【0047】
S2でMCU23(実行エンジン801)は安全入力信号を取得する。たとえば、実行エンジン801は、安全入力IF21aに接続された安全入力機器11と、拡張モジュール4に接続された安全入力機器11とからそれぞれ安全入力信号を取得する。
【0048】
S3でMCU23(実行エンジン801)は安全プログラム16を実行する。実行エンジン801は、安全プログラム16を実行することで、安全入力信号に対する安全出力信号を演算して求める。
【0049】
S4でMCU23(実行エンジン801)は安全出力信号を出力する。実行エンジン801は、安全出力IF22aに接続された動力源と、拡張モジュール4の安全出力IF22b、22cに接続された動力源に対して安全出力信号を出力する。
【0050】
S5でMCU23(FB情報取得部804)は実行エンジン801から安全プログラム16を形成している各ファンクションブロックの状態情報を取得する。
【0051】
S6でMCU23(付加情報取得部805)は安全入力IF21aに接続された安全入力機器11と、拡張モジュール4に接続された安全入力機器11とからそれぞれ付加情報を取得する。
【0052】
S7でMCU23(履歴記録部807)は、安全入力信号、安全出力信号、ファンクションブロックの状態情報、および付加情報を含む履歴レコードを作成し、履歴データ18に含まれている最新の履歴レコードに対して変化があるかどうかを判定する。履歴レコードはレコード作成部811により作成される。履歴レコードの変化の判定は変化判定部812により実行される。履歴レコードに変化があれば、MCU23は、S8に進む。履歴レコードに変化がなければ、MCU23は、S8をスキップしてS9に進む。なお、S7はオプションである。
【0053】
S8でMCU23(履歴記録部807)は、履歴レコードにタイムスタンプを付与して、履歴データ18に追記する。
【0054】
S9でMCU23(履歴記録部807)は、ユーザにより履歴記録プログラム19また安全プログラム16の終了指示が入力されたかどうかを判定する。終了指示が入力されていなければ、MCU23は、S2に戻る。終了指示が入力されると、MCU23は、履歴記録プログラム19を停止させる。
【0055】
(履歴表示)
図11はMCU23により実行される履歴表示方法を示している。Webブラウザ93からアクセスがあると、MCU23は以下の処理を実行する。なお、ソースデータ作成部821は、予め安全プログラム16を構成しているファンクションブロックを解析して特定し、ブロック表示部40に表示されるファンクションブロック群のソースデータ92を作成していてもよい。
【0056】
S10でMCU23(Webサーバ822)は履歴表示UI30のソースデータ92をPC2bのWebブラウザ93に送信することで、履歴表示UI30をWebブラウザ93に提供する。なお、この段階では履歴レコード(イベント)が選択されていないため、ブロック表示部40にはファンクションブロックだけが表示され、履歴レコードは反映されていない。あるいはブロック表示部40はブランクであってもよい。
【0057】
S11でMCU23(Webサーバ822)はWebブラウザ93から表示条件を受け付ける。
【0058】
S12でMCU23(ソースデータ作成部821)は表示条件にしたがって履歴データ18を検索し、抽出された履歴レコードの履歴リスト36を作成し、当該リストを表示するためのソースデータ92を作成し、Webサーバ822を介してWebブラウザ93にソースデータを送信する。Webブラウザ93はソースデータ92にしたがって履歴レコードの履歴リスト36を表示する。
【0059】
S13でMCU23(Webサーバ822)は表示対象となる履歴レコードの指定をWebブラウザ93から受け付ける。ユーザはWebブラウザ93に表示された履歴リスト36に列挙されている複数の履歴レコードのうち所望の履歴レコードをクリックまたはタッチする。
【0060】
S14でMCU23(ソースデータ作成部821)は表示対象となる履歴レコードを履歴データ18から読み出し、表示画面情報として履歴表示UI30のソースデータ92を作成する。
【0061】
S15でMCU23(Webサーバ822)は履歴表示UI30のソースデータ92をWebブラウザ93に送信する。Webブラウザ93は、受信したソースデータ92にしたがって履歴表示UI30を表示装置5cに表示する。
【0062】
S16でMCU23(Webサーバ822)は表示操作が入力されたかどうかを判定する。表示操作とは、タイムチャートボタン32や操作ボタン45などの操作である。表示操作が入力されていなければ、MCU23は、S18に進む。表示操作が入力されると、MCU23は、S17に進む。
【0063】
S17でMCU23(Webサーバ822)は表示操作に応じて表示画面を更新する。たとえば、Webサーバ822は、表示操作の内容をソースデータ作成部821に転送し、ソースデータ作成部821は表示操作内容に応じてソースデータ92を書き換える。Webサーバ822は、書き換えられたソースデータ92をWebブラウザ93に送信する。これにより、履歴表示UI30に表示される変化点が変更されたり、表示モードが変更されたりする。
【0064】
S18はオプションである。S18でMCU23は終了条件が満たされたかどうかを判定する。終了条件とは、明示的な終了指示の入力やタイムアウトなどである。終了条件が満たされると、MCU23は履歴表示処理を終了する。終了条件が満たされていなければ、MCU23はS16に戻る。
【0065】
ここでは、MCU23がソースデータ92を作成しているが、履歴データ18の表示処理を担当するWebアプリがJavaScript(登録商標)により作成されてもよい。この場合、WebサーバはWebアプリのソースデータ92をPC2bのWebブラウザ93に送信する。WebアプリはPC2bのWebブラウザ93において動作する。つまり、Webアプリがメインモジュール3から履歴データ18を読み出して、履歴表示UI30などを作成し、表示装置5cに表示する。
【0066】
<簡易画面>
図12はメインモジュール3の表示装置5aに表示される履歴表示UI100を示している。なお、MCU23は、履歴表示UI100を表示する前に、履歴データ18を参照して履歴データ18のリストを作成し、操作部6aを通じて履歴レコードの選択を受け付ける。MCU23は、選択された履歴レコードに基づき履歴表示UI100の表示データを作成し、表示装置5aに表示する。
【0067】
タイムスタンプ表示部101は、選択された履歴レコードに付与されているタイムスタンプを表示する。タイムスタンプ表示部101に表示されるタイムスタンプは、信号またはファンクションブロックの状態の変化点が発生した時刻は絶対的な時刻または相対的な時間のいずれであってもよい。現在状態表示部102は、信号またはファンクションブロックの現在の状態を示している。過去状態表示部104は、信号またはファンクションブロのタイムチャートを表示する。この例で、過去状態表示部104は、現在時刻から10分前に取得された履歴データ18に基づくタイムチャートを表示している。タイムスタンプ表示部101は、現在時刻から10分前に取得された履歴データ18が過去状態表示部104に表示されていることを示唆している。名称表示部103は、信号またはファンクションブロの識別情報(例:名称、略称、アイコン)を表示する。なお、操作部6aを通じて、ユーザは、履歴レコードを過去方向にさかのぼることを指示したり、履歴レコードを過去から現在に向かう方向に進めることを指示したりする。簡易画面作成部823は、入力された指示に応じて履歴データ18から履歴レコードを読み出して、簡易画面を作成し、表示装置5aに表示する。
【0068】
<その他>
上述されたように、安全コントローラシステムにおいて取得された履歴データは、Webブラウザを搭載したPC2b、メインモジュール3の表示装置5a、および、履歴表示プロブラムを実行するPC2aの表示装置5bのいずれかで表示可能とされる。PC2bとメインモジュール3に履歴を表示するケースがすでに詳細に説明されたため、以下では、履歴表示プロブラムを実行するPC2aの表示装置5bに履歴が表示されるケースが詳細に説明される。
【0069】
図13はプログラム作成支援装置として機能するPC2aのブロック図である。
図3と比較して、
図13では履歴表示プログラム830と履歴データ18とが記憶装置15bに記憶されている。
【0070】
図14を用いてPC2aのCPU13bにより実行される履歴表示方法を示している。操作部6bから履歴表示の開始指示が入力されると、CPU13bは履歴表示プログラム830を起動する。以下の処理は、履歴表示プログラム830にしたがってCPU13bにより実行される。CPU13bは、履歴表示プログラム830にしたがって履歴データ18をメインモジュール3から読み出して記憶装置15bに記憶する。CPU13bは操作部6bから入力される更新指示に基づき履歴データ18をメインモジュール3から再度読み出して、記憶装置15bに記憶されている履歴データ18を更新してもよい。
【0071】
S20でCPU13bは履歴表示UI30を表示装置5bに表示する。なお、この段階では履歴レコード(イベント)が選択されていないため、ブロック表示部40にはファンクションブロックだけが表示され、履歴レコードは反映されていない。あるいはブロック表示部40はブランクであってもよい。
【0072】
S21でCPU13bは操作部6bから表示条件を受け付ける。
【0073】
S22でCPU13bは表示条件にしたがって履歴データ18を検索し、抽出された履歴レコードの履歴リスト36を作成し、当該リストを表示するための表示画面情報を作成し、表示画面情報にしたがって履歴レコードの履歴リスト36を表示装置5bに表示する。
【0074】
S23でCPU13bは表示対象となる履歴レコードの指定を操作部6bから受け付ける。ユーザは表示装置5bに表示された履歴リスト36に列挙されている複数の履歴レコードのうち所望の履歴レコードをクリックまたはタッチする。
【0075】
S24でCPU13bは表示対象となる履歴レコードを履歴データ18から読み出し、履歴表示UI30のための表示画面情報を作成する。
【0076】
S25でCPU13bは表示画面情報にしたがって履歴表示UI30を表示装置5bに表示する。
【0077】
S26でCPU13bは操作部6bから表示操作が入力されたかどうかを判定する。表示操作とは、タイムチャートボタン32や操作ボタン45などの操作である。表示操作が入力されていなければ、CPU13bは、S28に進む。表示操作が入力されると、CPU13bは、S27に進む。
【0078】
S27でCPU13bは表示操作に応じて表示画面を更新する。たとえば、CPU13bは、表示操作の内容に応じて表示画面情報を書き換える。これにより、履歴表示UI30に表示される変化点が変更されたり、表示モードが変更されたりする。
【0079】
S28はオプションである。S28でCPU13bは終了条件が満たされたかどうかを判定する。終了条件とは、明示的な終了指示の入力やタイムアウトなどである。終了条件が満たされると、CPU13bは履歴表示処理を終了する。終了条件が満たされていなければ、CPU13bはS26に戻る。
【0080】
<まとめ>
図2が示すように、安全入力IF21a、21bは、一つ以上の安全入力機器から入力信号が入力される入力部として機能する。制御部20aは、入力信号に基づき所定の演算を実行して出力信号を求め、当該出力信号として安全状態を示すON信号または安全ではない状態を示すOFF信号を出力する安全制御部として機能する。
図9などが示すように、履歴記録部807は入力信号および出力信号を時刻情報とともに履歴情報として記録する履歴記録手段として機能する。履歴表示部820は、履歴記録手段に記録された履歴情報(例:履歴データ18)を読み出して入力信号の変化点および出力信号の変化点を示す表示画面情報(履歴表示UI30、100)を作成して表示装置に提供する提供手段として機能する。このように、安全プログラムの動作に関連した信号または状態の変化点の履歴を記録してユーザに提供することで、誤ったOFF信号の原因の解明に資することが可能となる。
【0081】
制御部20aは、入力信号または入力信号から求められた演算信号に対してそれぞれ論理演算を実行する複数のファンクションブロックを有する安全プログラム16を、スキャンサイクルごとに繰り返し実行するように構成されている。履歴記録部807は、所定の記録周期であるスキャンサイクルごとに、時刻情報とともに、複数のファンクションブロックのそれぞれの状態、入力信号および出力信号を履歴情報として記録してもよい。スキャンサイクルは安全プログラムを監視するうえで非常に短い間隔であるため、誤ったOFF信号の原因を解明するために多くの情報をユーザに提供することが可能となる。
【0082】
図6や
図12が示すように、表示装置5は、安全プログラムを形成している複数のファンクションブロックと、複数のファンクションブロックのそれぞれの状態を示すアイコンとを含む表示画面を表示してもよい。これにより安全プログラムのバグに起因した、誤ったOFF信号の原因を解明しやすくなろう。
【0083】
複数のファンクションブロックは、少なくとも二つの入力端子と少なくとも一つの出力端子を有しうる。表示装置5は、複数のファンクションブロックのそれぞれについて少なくとも二つの入力端子の状態と少なくとも一つの出力端子の状態とを表示してもよい。これによりユーザは自己が意図した通りにファンクションブロックが動作しているかどうかを確認しやすくなるであろう。
【0084】
提供手段(例:ソースデータ作成部821、簡易画面作成部823)は、表示装置において表示されている履歴情報よりも古い履歴情報または新しい履歴情報を表示することを指示されると、指示に基づき古い履歴情報または新しい履歴情報を示す表示画面情報を作成して表示装置に提供してもよい。これにより注目している変化点の前後の変化点の様子をユーザは容易に確認できるようになろう。
【0085】
表示装置5は、入力信号の変化または出力信号の変化が生じた複数のイベントのうち一つのイベントを選択する選択オブジェクト(例:履歴リスト36)を表示してもよい。提供手段(例:ソースデータ作成部821、簡易画面作成部823)は、選択オブジェクトを通じて選択されたイベントに関連付けられている履歴情報を履歴記録手段から取得して表示画面情報を作成してもよい。これによりユーザはイベントを容易に選択することが可能となろう。
【0086】
表示条件選択部33や操作部6aは、選択オブジェクトに列挙される複数のイベントを検索するための検索条件を入力する入力手段として機能する。MCU23(例:ソースデータ作成部821、簡易画面作成部823)は、入力手段に入力された検索条件にしたがってイベントを検索し、見つかったイベントを選択オブジェクトに列挙する列挙手段として機能する。これによりユーザは所望のイベント(履歴レコード)を容易に探し出すことが可能となろう。
【0087】
メインモジュール3には、通信IF27aを介してカメラが接続されてもよい。この場合、履歴記録部807は、一つ以上の安全入力機器の設置された設置環境をカメラに撮影させて、カメラにより得られた画像データを履歴データ18の一部として記録してもよい。この場合、履歴情報(履歴データ18)は、一つ以上の安全入力機器の設置された設置環境を撮影して得られた画像データを含む。表示装置5は、入力信号の変化点および出力信号の変化点とともに、画像データを表示してもよい。これにより、ユーザが注目している変化点の原因がさらに解明されやすくなろう。たとえば、ドアスイッチがONからOFFに変化したタイミングで取得された画像データからドアスイッチに対してどのようなイベントが発生したのかを、ユーザは視覚的に把握することが可能となる。信号やファンクションブロックの状態だけでは判別できない原因が、画像データであれば、判別可能となることもあろう。
【0088】
図7や
図12などが示すように、表示装置5は、複数の履歴情報をタイムチャート上に表示してもよい。これにより変化点の前後における信号の状態などを把握しやすくなろう。
【0089】
表示装置5は、安全コントローラに内蔵されている表示装置5aであってもよいし、安全コントローラに接続された外部コンピュータ(例:PC2)に設けられた表示装置5b、5cのいずれであってもよい。
【0090】
PC2bは履歴表示装置の一例である。PC2bで動作するCPU13(Webブラウザ93)は、履歴記録手段に記録された履歴情報に含まれている入力信号の変化点および出力信号の変化点を示す表示画面を作成する作成手段として機能してもよい。表示装置5cは表示画面を表示する表示手段として機能する。同様に、PC2aで動作するCPU13(履歴表示プロブラム830)も作成手段として機能してもよい。この場合、表示装置5bが表示手段として機能する。
【0091】
履歴情報は、安全プログラム16のスキャンサイクルごとに、時刻情報とともに、記録された複数のファンクションブロックのそれぞれの状態、入力信号および出力信号を含んでもよい。
【0092】
Webブラウザ93および表示装置5c(履歴表示プロブラム830および表示装置5b)は、安全プログラムを形成している複数のファンクションブロックと、複数のファンクションブロックのそれぞれの状態を示すアイコンとを含む表示画面を表示してもよい。
【0093】
複数のファンクションブロックは、少なくとも二つの入力端子と少なくとも一つの出力端子を有してもよい。Webブラウザ93および表示装置5c(履歴表示プロブラム830および表示装置5b)は、複数のファンクションブロックのそれぞれについて少なくとも二つの入力端子の状態と少なくとも一つの出力端子の状態とを表示してもよい。
【0094】
発明は上記の実施形態に制限されるものではなく、発明の要旨の範囲内で、種々の変形・変更が可能である。