(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-13
(45)【発行日】2024-08-21
(54)【発明の名称】PLC装置及び記録媒体
(51)【国際特許分類】
G05B 19/05 20060101AFI20240814BHJP
【FI】
G05B19/05 S
(21)【出願番号】P 2023516009
(86)(22)【出願日】2021-04-23
(86)【国際出願番号】 JP2021016476
(87)【国際公開番号】W WO2022224448
(87)【国際公開日】2022-10-27
【審査請求日】2023-11-08
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100106002
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100165157
【氏名又は名称】芝 哲央
(74)【代理人】
【識別番号】100160794
【氏名又は名称】星野 寛明
(72)【発明者】
【氏名】高嶋 八起
【審査官】尾形 元
(56)【参考文献】
【文献】特開2004-62872(JP,A)
【文献】特開2004-199670(JP,A)
【文献】特開2001-282327(JP,A)
【文献】特開2001-282328(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/05
(57)【特許請求の範囲】
【請求項1】
第1PLC及び第2PLCを含むPLC装置において前記第1PLC及び第2PLCそれぞれのPLC実行部にシーケンスプログラムを試験実行させ、前記第1PLC及び第2PLCそれぞれのPLC実行部で前記シーケンスプログラムの開始から終了までにかかった時間を計測する計測部と、
前記計測部により計測された計測時間に基づいて、前記第1PLC及び第2PLCにおいて前記シーケンスプログラムの周期実行における実行時間及び実行周期の少なくとも1つを含むタイミング調整情報を算出するタイミング調整情報算出部と、
前記タイミング調整情報算出部により算出された前記タイミング調整情報を少なくとも前記第1PLC及び第2PLCのいずれか1つに対して設定するタイミング調整情報設定部と、
を備えるPLC装置。
【請求項2】
前記試験実行を行うモードと、前記タイミング調整情報を適用した前記周期実行を行うモードと、を切り替える切替部を備える、請求項1に記載のPLC装置。
【請求項3】
前記タイミング調整情報算出部により算出された前記第1PLC及び第2PLCの前記タイミング調整情報を外部装置に送信し、送信した前記タイミング調整情報に対する設定指示を前記外部装置から受信する通信部をさらに備え、
前記タイミング調整情報設定部は、受信した前記設定指示に基づいて前記タイミング調整情報を少なくとも前記第1PLC及び第2PLCのいずれか1つに対して設定する、請求項1又は請求項2に記載のPLC装置。
【請求項4】
試験実行において所定の状況を再現するために、前記通信部を介して前記外部装置からの指示に基づいて、前記シーケンスプログラムの書き換え、前記PLC装置における信号状態の書き換え、又はプログラム変数の書き換えを実行する書換部をさらに備える、請求項3に記載のPLC装置。
【請求項5】
第1PLC及び第2PLCを含むコンピュータであって前記第1PLC及び第2PLCそれぞれのPLC実行部にシーケンスプログラムを試験実行させるために、前記コンピュータを、
前記試験実行において前記第1PLC及び第2PLCそれぞれのPLC実行部で前記シーケンスプログラムの開始から終了までにかかった時間を計測する計測部と、
計測された計測時間に基づいて、前記第1PLC及び第2PLCにおいて前記シーケンスプログラムの周期実行における実行時間及び実行周期の少なくとも1つを含むタイミング調整情報を算出するタイミング調整情報算出部と、
算出された前記タイミング調整情報を少なくとも前記第1PLC及び第2PLCのいずれか1つに対して設定するタイミング調整情報設定部と、
して機能させるためのプログラムを記録したコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、PLC装置及び記録媒体に関する。
【背景技術】
【0002】
機能安全のために二重化された安全PLCでは相互に信号を照合することで故障を検出する技術が提案されている。例えば、特許文献1参照。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
図13は、機能安全なしのPLC520の一例を示す図である。
図13に示すように、機能安全なしのPLC520の場合、非常停止ボタン500がユーザにより押下されて非常停止の入力から、モータ550に対する実際の動力遮断までの間のIOユニット510、PLC520、IOユニット530、遮断器540のいずれかに故障等の問題があった場合、重大な事故につながる。
図14は、機能安全ありのPLC520a、520bの一例を示す図である。
図14に示すように、2系統のPLC520a、520bがあるため、一方の系統のIOユニット510、PLC520a(又は520b)、IOユニット530、遮断器540のいずれかに問題があっても、他方の系統により非常停止が作用する。また、それぞれの系統のPLC520a、520bは相互に監視を行うことで、故障(演算結果が異なるや、応答がない等)を検知することができる。
ただし、二重化したPLC520a、520bが同じ部品、同じ設計にて構成されていた場合、共通の不具合・部品の故障等により同時に動作しなくなるリスクがある(機能安全規格では「共通要因故障」という)。
そこで、共通要因故障のリスクを回避するため異なる部品、設計のPLC520a、520bを用いてそれぞれのシステムを構築することで多様性を持たせ、機能安全の信頼性を高める対策を取ることがある。
しかしながら、異なる部品、設計を用いた2つのPLC520a、520bは処理速度等の性能差が生じる。
【0005】
例えば、PLC520aがA社製CPUを搭載し、PLC520bがB社製CPUを搭載し、固定周期タイマで同一シーケンスプログラムを実行したときにA社製CPUでは3周期で実行が完了しB社製CPUでは4周期かかる場合の2つのPLC520a、520bにおける処理動作の時系列を、模式的に
図15に示す。
図15に示すように、4周期目において、PLC520bはスキャン処理を終了するのに対して、PLC520aは次のスキャン処理を開始する。この場合、PLC520aは、PLC520bのプログラムが終了していないのにスキャン処理を開始すると、PLC520aとPLC520bとの間でカウンタや計算結果にずれが生じてしまう。
【0006】
図16は、2つのPLC520a、520bを同期させる方法の一例を示す図である。
図16に示すように、CPUの実行速度が速いPLC520aに対するシーケンスプログラムにおいて、例えばPLC520bの実行が完了するまでPLC520aが新しい実行処理(スキャン処理)を開始しないように、破線の矩形で示す4周期目に何も処理しないように当該シーケンスプログラムを修正する。
【0007】
しかしながら、2つのPLC520a、520b間の性能差はCPUスペック値やPLCメーカのベンチマークから概算も可能であるが、各PLC520a、520bで動作するシーケンスプログラムの構成・内容に依存するため実際の処理にかかる時間の見積もることは難しい。また、性能差から生じたシーケンスプログラム実行速度差により誤作動が生じないように、シーケンスプログラムの設計を注意して行う必要があり、機能安全システムを設計するエンジニア等のユーザの負担となっている。
【0008】
そこで、実行速度の差を解消するためにシーケンスプログラムを修正せずに、PLC装置に、例えばパラメータを設定することで、2つのPLC間の性能差を吸収することを可能とし、機能安全システムを設計するユーザの負担を解消することが望まれている。
【課題を解決するための手段】
【0009】
(1)本開示のPLC装置の一態様は、第1PLC及び第2PLCを含むPLC装置において前記第1PLC及び第2PLCそれぞれのPLC実行部にシーケンスプログラムを試験実行させ、前記第1PLC及び第2PLCそれぞれのPLC実行部で前記シーケンスプログラムの開始から終了までにかかった時間を計測する計測部と、前記計測部により計測された計測時間に基づいて、前記第1PLC及び第2PLCにおいて前記シーケンスプログラムの周期実行における実行時間及び実行周期の少なくとも1つを含むタイミング調整情報を算出するタイミング調整情報算出部と、前記タイミング調整情報算出部により算出された前記タイミング調整情報を少なくとも前記第1PLC及び第2PLCのいずれか1つに対して設定するタイミング調整情報設定部と、を備える。
【0010】
(2)本開示の記録媒体の一態様は、第1PLC及び第2PLCを含むコンピュータであって前記第1PLC及び第2PLCそれぞれのPLC実行部にシーケンスプログラムを試験実行させるために、前記コンピュータを、前記試験実行において前記第1PLC及び第2PLCそれぞれのPLC実行部で前記シーケンスプログラムの開始から終了までにかかった時間を計測する計測部と、計測された計測時間に基づいて、前記第1PLC及び第2PLCにおいて前記シーケンスプログラムの周期実行における実行時間及び実行周期の少なくとも1つを含むタイミング調整情報を算出するタイミング調整情報算出部と、算出された前記タイミング調整情報を少なくとも前記第1PLC及び第2PLCのいずれか1つに対して設定するタイミング調整情報設定部と、して機能させるためのプログラムを記録したコンピュータが読み取り可能な記録媒体。
【発明の効果】
【0011】
一態様によれば、実行速度の差を解消するためにシーケンスプログラムを修正せずに、PLC装置に、例えばパラメータを設定することで、2つのPLC間の性能差を吸収することを可能とし、機能安全システムを設計するユーザの負担を解消することができる。
【図面の簡単な説明】
【0012】
【
図1】第1実施形態に係る機能安全システムの構成の一例を示す図である。
【
図3】タイミング調整情報のユーザインタフェース画面の一例を示す図である。
【
図4】故障時に処理Xを実行させるシーケンスプログラムの一例を示す図である。
【
図5】PLCの試験実行モードおける処理について説明するフローチャートである。
【
図6】PLCの周期実行モードおける処理について説明するフローチャートである。
【
図7】PLCプログラミング装置の調整・設定処理について説明するフローチャートである。
【
図8】PLCの実行時間が調整された場合の周期実行モードにおけるPLCの動作の一例を示す図である。
【
図10】PLCの試験実行モードおける処理について説明するフローチャートである。
【
図11】PLCの周期実行モードおける処理について説明するフローチャートである。
【
図12】PLCの実行周期が調整された場合の周期実行モードにおけるPLCの動作の一例を示す図である。
【
図13】機能安全なしのPLCの一例を示す図である。
【
図14】機能安全ありのPLCの一例を示す図である。
【
図15】2つのPLCにおける処理動作の時系列を模式的に示す図である。
【
図16】2つのPLCを同期させる方法の一例を示す図である。
【発明を実施するための形態】
【0013】
<第1実施形態>
まず、本実施形態の概略を説明する。本実施形態では、第1PLC及び第2PLCを含む安全PLC装置は、シーケンスプログラムを第1PLC及び第2PLCそれぞれに試験実行させ、第1PLC及び第2PLCそれぞれにおいて当該シーケンスプログラムの開始から終了までにかかった時間を計測する。安全PLC装置は、計測した計測時間に基づいて、第1PLC及び第2PLCにおいてシーケンスプログラムの周期実行における実行時間に係るタイミング調整情報を算出する。安全PLC装置は、算出したタイミング調整情報を外部のPLCプログラミング装置に送信し、PLCプログラミング装置からの設定指示に基づいて少なくとも第1PLC及び第2PLCのいずれか1つに対して設定する。
【0014】
これにより、本実施形態によれば、[発明が解決しようとする課題]の欄で述べた「実行速度の差を解消するためにシーケンスプログラムを修正せずに、PLC装置に、例えばパラメータを設定することで、2つのPLC間の性能差を吸収することを可能とし、機能安全システムを設計するユーザの負担を解消する」という課題を解決することができる。
以上が本実施形態の概略である。
【0015】
次に、本実施形態の構成について図面を用いて詳細に説明する。ここでは、第1PLCの実行速度が第2PLCの実行速度より速く、第1PLCのタイミング調整情報のうち実行時間を調整する場合を例示する。なお、本発明は、第2PLCの実行速度が第1PLCの実行速度より速く、第2PLCのタイミング調整情報の実行時間を調整する場合や、第1PLCのタイミング調整情報の実行時間と第2PLCのタイミング調整情報の実行時間とを所定の実行時間に調整する場合に対しても適用可能である。
図1は、第1実施形態に係る機能安全システムの構成の一例を示す図である。
図1に示すように、機能安全システム1は、IO入出力装置10a、10b、安全PLC装置20、及び外部装置としてのPLCプログラミング装置30を有する。なお、
図1では、IO入出力装置10a、10bに接続される遮断器等の装置の図示は省略する。
【0016】
IO入出力装置10a、10b、PLC装置としての安全PLC装置20、及びPLCプログラミング装置30は、図示しない接続インタフェースを介して互いに直接接続されてもよい。なお、IO入出力装置10a、10b、安全PLC装置20、及びPLCプログラミング装置30は、LAN(Local Area Network)等のネットワークを介して相互に接続されていてもよい。この場合、IO入出力装置10a、10b、安全PLC装置20、及びPLCプログラミング装置30は、かかる接続によって相互に通信を行うための図示しない通信部を備えてもよい。
【0017】
IO入出力装置10a、10bは、例えば、公知のスイッチやアクチュエータ等であり、後述する安全PLC装置20からの信号に基づいて、図示しない遮断器等の動作を制御する。
【0018】
<PLCプログラミング装置30>
PLCプログラミング装置30は、当業者にとって公知のコンピュータ等であり、後述する安全PLC装置20に実行させるラダープログラム等のシーケンスプログラムを作成し、作成したシーケンスプログラムを安全PLC装置20に送信する。
また、PLCプログラミング装置30は、液晶ディスプレイ等の表示部(図示しない)、及びキーボードや表示装置(図示しない)に配置されたタッチパネル等の入力装置(図示しない)等を含む。例えば、PLCプログラミング装置30は、入力装置(図示しない)を介したユーザの入力操作に基づいて試験実行を行うモード(非安全状態)(以下、「試験実行モード」ともいう)と、設定されたタイミング調整情報を適用した周期実行を行うモード(以下、「周期実行モード」ともいう)と、の一方が選択された場合、選択されたモードの実行指示を後述する安全PLC装置20に送信するようにしてもよい。ここで、非安全状態とは、セットアップ時や装置起動中等、機能安全が動作していない状態である。
また、PLCプログラミング装置30は、後述するように、試験実行モードの実行指示を安全PLC装置20に送信した場合、試験実行モードにより安全PLC装置20において算出された安全PLC装置20に含まれる第1PLCとしてのPLC21a、及び第2PLCとしてのPLC21bのタイミング調整情報を安全PLC装置20から受信し、受信したPLC21a、21bのタイミング調整情報を表示装置(図示しない)に表示してもよい。PLCプログラミング装置30は、入力装置(図示しない)を介したユーザの入力操作に基づいて、表示されたタイミング調整情報に対する設定指示を安全PLC装置20に送信してもよい。
【0019】
<安全PLC装置20>
図1に示すように、安全PLC装置20は、第1PLCとしてのPLC21a、第2PLCとしてのPLC21b、及び通信部22を含む。PLC21a、21b、及び通信部22は、バス23を介して相互に接続される。なお、バス23は、PLC21aとPLC21bと間でデータの相互チェックを行うためのデータ共通バスとして動作してもよい。
【0020】
通信部22は、PLCプログラミング装置30により生成されたシーケンスプログラムを受信し、受信したシーケンスプログラムをPLC21a、21bに出力する。また、通信部22は、PLC21a、21bのタイミング調整情報を調整する試験実行の指示をPLCプログラミング装置30から受信するとともに、当該試験実行の結果をPLCプログラミング装置30に送信するようにしてもよい。
【0021】
<PLC21a、21b>
PLC21a、21bは、ラダープログラム等のシーケンスプログラムを実行して、シーケンスプログラムに従って各種制御や演算処理、信号の入出力処理等を行う当業者にとって公知のPLCである。
図2は、PLC21aの構成を示すブロック図である。なお、PLC21bの構成は、PLC21aと同様であり、説明は省略する。ただし、PLC21aとPLC21bとの違いは、
図9の場合と同様に、PLC21aに含まれるCPUとPLC21bに含まれるCPUとの処理速度等の性能差がある。上述したように、例えば、第1PLCとしてのPLC21aの実行速度が第2PLCとしてのPLC21bの実行速度より速いとする。
図2に示すように、PLC21aは、制御部200、及び記憶部230を含む。また、制御部200は、PLC実行部210、及び実行時間調整部220を含む。また、実行時間調整部220は、計測部221、タイミング調整情報算出部222、タイミング調整情報設定部223、切替部224、及び書換部225を含む。また、記憶部230は、信号状態231、タイミング調整情報232、シーケンスプログラム233、及びプログラム変数234を含む。
【0022】
<記憶部230>
記憶部230は、例えば、ROM(Read Only Memory)やHDD(Hard Disk Drive)等であり、後述する制御部200が実行するシステムプログラム及びシーケンスプログラム等を格納する。また、記憶部230は、信号状態231、タイミング調整情報232、シーケンスプログラム233、及びプログラム変数234を記憶してもよい。
信号状態231は、例えば、後述する制御部200、PLC実行部210、及び実行時間調整部220により出力される信号の状態を示すログ情報等を格納する。なお、信号状態231が格納するログ情報には、各信号の状態とともに、各信号が出力されたときのPLC21aの動作状態(正常か故障等の異常か)を示す情報、及び時刻情報等が含まれてもよい。
タイミング調整情報232は、例えば、PLCプログラミング装置30により設定指示された実行時間又は実行周期含むタイミング調整情報を格納する。
シーケンスプログラム233は、PLCプログラミング装置30により作成された安全ラダープログラム等のシーケンスプログラムを格納する。
プログラム変数234は、例えば、後述する制御部200に含まれる図示しないCPU内蔵クロックやハードウェアタイマ等により出力されるクロック値やカウント値、時間等を格納する。
【0023】
<制御部200>
制御部200は、CPU、ROM、RAM、CMOS(Complementary Metal-Oxide-Semiconductor)メモリ等を有し、これらはバスを介して相互に通信可能に構成される、当業者にとって公知のものである。
CPUはPLC21aを全体的に制御するプロセッサである。CPUは、ROMに格納されたシステムプログラム及びアプリケーションプログラムを、バスを介して読み出し、システムプログラム及びアプリケーションプログラムに従ってPLC21a全体を制御する。これにより、
図2に示すように、制御部200が、PLC実行部210、及び実行時間調整部220の機能を実現するように構成され、実行時間調整部220が、計測部221、タイミング調整情報算出部222、タイミング調整情報設定部223、切替部224、及び書換部225の機能を実現するように構成される。RAMには一時的な計算データや表示データ等の各種データが格納される。また、CMOSメモリは図示しないバッテリでバックアップされ、安全PLC装置20の電源がオフされても記憶状態が保持される不揮発性メモリとして構成される。
【0024】
PLC実行部210は、例えば、PLCプログラミング装置30からの試験実行モード又は周期実行モードの実行指示に応じた安全ラダープログラム等のシーケンスプログラムを記憶部230のシーケンスプログラム233から読み出し、読み出したシーケンスプログラムを実行する。なお、PLC実行部210の動作について公知の手法を用いることができ、詳細な説明は省略する。
【0025】
計測部221は、例えば、PLC実行部210がPLCプログラミング装置30から実行指示を受信し、シーケンスプログラムを実行した場合、PLC実行部210でシーケンスプログラムの開始から終了までにかかった時間を計測する。
具体的には、計測部221は、例えば、PLC実行部210によるシーケンスプログラムの実行開始時に図示しないCPU内蔵クロック等が出力したクロック値を記憶し、図示しないCPU内蔵クロック等から出力されるクロック値と記憶したクロック値との差分から、経過時間を計測する。計測部221は、PLC実行部210がシーケンスプログラムの実行の終了時の図示しないCPU内蔵クロック等が出力したクロック値と開始時に記憶したクロック値との差分から、PLC実行部210でシーケンスプログラムの実行開始から終了までにかかった時間Tm1を計測する。
【0026】
タイミング調整情報算出部222は、計測部221により計測されたシーケンスプログラムの実行開始から終了までにかかった時間に基づいて、PLC21aにおいてシーケンスプログラムの周期実行モードにおける実行時間を含むタイミング調整情報を算出する。
具体的には、タイミング調整情報算出部222は、例えば、バス23を介して、PLC21bの計測部221により計測されたシーケンスプログラムの実行開始から終了までにかかった時間Tm2を取得する。上述したように、PLC21aの実行速度がPLC21bの実行速度より速いことから、Tm1≦Tm2となる。そして、1周期当たりの最大実行時間がTdの場合、タイミング調整情報算出部222は、PLC21aの制御部200のCPUの実行時間Tcycle1をTm1/Tm2×Tdと計算する。タイミング調整情報算出部222は、計算した実行時間Tcycle1を含むタイミング調整情報を、通信部22を介してPLCプログラミング装置30に送信する。
一方、PLC21bのタイミング調整情報算出部222は、PLC21bの実行速度がPLC21aの実行速度より遅いことから、計測部221により計測された実行時間を、PLC21bのタイミング調整情報としてPLCプログラミング装置30に送信する。
【0027】
PLCプログラミング装置30は、PLC21a、21bのタイミング調整情報を安全PLC装置20から受信し、受信したPLC21a、21bのタイミング調整情報を表示装置(図示しない)に表示する。
図3は、タイミング調整情報のユーザインタフェース画面の一例を示す図である。
図3のユーザインタフェース画面の一段目の「実行時間」は、1周期当たりの最大実行時間Tdであり、「2ms」を示す。また、ユーザインタフェース画面の二段目は、系統1としてのPLC21aで測定された実行時間T
m1、実行時間Tdに対するPLC21aに割り当てられる実行時間の割合、及び割り当てられた実行時間T
cycle1を示す。また、ユーザインタフェース画面の三段目は、系統2としてのPLC21bで測定された実行時間T
m2、実行時間Tdに対するPLC21bに割り当てられる実行時間の割合、割り当てられた実行時間T
cycle2を示す。
図3のユーザインタフェース画面では、PLCプログラミング装置30は、入力装置(図示しない)を介したユーザの入力操作に基づいて、実行時間Tdに対するPLC21a、21bに割り当てる実行時間の割合を調整することができる。本実施形態では、上述したように、PLC21aの実行速度がPLC21bの実行速度より速いことから、PLC21aの実行時間T
cycle1は実行時間Tdの50%に調整され、PLC21bの実行時間T
cycle2は実行時間Tdの100%の全てが割り当てられるように調整される。
調整された後、PLCプログラミング装置30は、入力装置(図示しない)を介して、ユーザによりSETボタンが押下されると、調整したタイミング調整情報の設定指示を安全PLC装置20に送信する。
【0028】
タイミング調整情報設定部223は、PLCプログラミング装置30からの設定指示を受信した場合、調整されたタイミング調整情報をPLC21aに対して設定する。
具体的には、タイミング調整情報設定部223は、PLCプログラミング装置30から受信したタイミング調整情報を記憶部230のタイミング調整情報232に格納する。
【0029】
切替部224は、PLCプログラミング装置30からの指示に基づいて、試験実行モード又は周期実行モードに切り替える。
【0030】
書換部225は、試験実行モードにおいて所定の状況を再現するために、通信部22を介してPLCプログラミング装置30からの指示に基づいて、シーケンスプログラムの書き換え、安全PLC装置20における信号状態の書き換え、又はプログラム変数234の書き換えを実行する。
図4は、故障時に処理Xを実行させるシーケンスプログラムの一例を示す図である。
図4に示すように、試験実行モードにおいてPLC実行部210が処理Xを実行するには、A、B、Cの信号状態((A OR B) AND C)に依存する。このため、所定の状況としてPLC21a、21bのいずれかが故障等でなければこの条件が成立しない場合、実行時間の最大値の計測ができない。そこで、書換部225は、例えば、PLCプログラミング装置30からの指示に基づいて、信号状態231において信号状態を実際の状態に替えて、故障等の((A OR B) AND C)が成立するA、B、Cの信号状態に書き換える。これにより、PLC実行部210は、試験実行モードにおいて処理Xを実行することができる。
また、書換部225は、プログラム変数234に格納されるカウンタ値や時間を書き換えないとシーケンスプログラムの処理時間の最大値を見積もれない場合があり、プログラム変数234のカウンタ値や時間等を書き換えるようにしてもよい。
また、書換部225は、信号状態231やプログラム変数234の書き換えに替えて、試験プログラムを埋め込んだラダープログラムで計測する等にも対応するために、シーケンスプログラム自体を書き換えるようにしてもよい。
【0031】
<PLC21aの試験実行モードにおける処理>
次に、
図5を参照しながら、PLC21aの試験実行モードおける処理の流れを説明する。なお、PLC21bについてもPLC21aと同様の処理が実行される。
図5は、PLC21aの試験実行モードおける処理について説明するフローチャートである。ここで示すフローは、PLCプログラミング装置30から試験実行モードを受信する度に実行される。
【0032】
ステップS11において、PLC実行部210は、PLCプログラミング装置30から試験実行モードの実行指示を受信した場合、シーケンスプログラムの実行を開始し、計測部221は、実行開始時に図示しないCPU内蔵クロック等が出力したクロック値を取得する。
【0033】
ステップS12において、PLC実行部210は、シーケンスプログラムの実行が終了したか否かを判定する。シーケンスプログラムの実行が終了した場合、処理はステップS13に進む。一方、シーケンスプログラムの実行が終了していない場合、処理はシーケンスプログラムの実行が終了するまで待機する。
【0034】
ステップS13において、計測部221は、シーケンスプログラムの終了時に図示しないCPU内蔵クロック等が出力したクロック値を取得し、取得したクロック値とステップS11で取得した開始時のクロック値との差分からPLC21aにおける実行時間Tm1を取得する。
【0035】
ステップS14において、タイミング調整情報算出部222は、ステップS13で取得された実行時間Tm1に基づいて、シーケンスプログラムの周期実行モードにおけるPLC21aの実行時間Tcycle1を含むタイミング調整情報を算出する。タイミング調整情報算出部222は、算出したタイミング調整情報をPLCプログラミング装置30に送信する。
【0036】
ステップS15において、タイミング調整情報設定部223は、ステップS14で送信したタイミング調整情報に対してPLCプログラミング装置30から調整されたタイミング調整情報の設定指示を受信した場合、受信したタイミング調整情報をタイミング調整情報232に格納し設定する。
【0037】
<PLC21aの周期実行モードにおける処理>
次に、
図6を参照しながら、PLC21aの周期実行モードおける処理の流れを説明する。なお、PLC21bについてもPLC21aと同様の処理が実行される。
図6は、PLC21aの周期実行モードおける処理について説明するフローチャートである。ここで示すフローは、PLC21aの1周期毎に実行される。
【0038】
ステップS21において、PLC実行部210は、PLCプログラミング装置30から周期実行モードの実行指示を受信した場合、シーケンスプログラムの実行を開始し、計測部221は、実行開始時に図示しないCPU内蔵クロック等が出力したクロック値を取得する。
【0039】
ステップS22において、PLC実行部210は、シーケンスプログラムの実行が終了したか否かを判定する。シーケンスプログラムの実行が終了した場合、当該周期の処理は終了し、次の周期に進む。一方、シーケンスプログラムの実行が終了していない場合、処理はステップS23に進む。
【0040】
ステップS23は、計測部221は、図示しないCPU内蔵クロック等から出力されるクロック値とステップS21で取得したクロック値との差分から経過時間を計測し、PLC実行部210は、計測された経過時間が実行時間Tcycle1を超えてタイムアップか否かを判定する。計測された経過時間が実行時間Tcycle1を超えてタイムアップの場合、処理はステップS24に進む。一方、計測された経過時間が実行時間Tcycle1以下でタイムアップでない場合、処理はステップS22に戻る。
【0041】
ステップS24において、PLC実行部210は、当該周期におけるシーケンスプログラムの実行を停止し、次の周期に移行する。
【0042】
<PLCプログラミング装置30の調整・設定処理>
次に、
図7を参照しながら、PLCプログラミング装置30の調整・設定処理(安全機能セットアップモード)の流れを説明する。
図7は、PLCプログラミング装置30の調整・設定処理について説明するフローチャートである。ここで示すフローは、機能安全設計者等のユーザにより作成された安全ラダープログラムのシーケンスプログラムがPLCプログラミング装置30に入力される度に実行される。
【0043】
ステップS31において、PLCプログラミング装置30は、入力装置(図示しない)を介して、ユーザにより作成された安全ラダープログラムを入力する。
【0044】
ステップS32において、PLCプログラミング装置30は、入力装置(図示しない)を介したユーザの入力操作に基づいて、試験実行モードの実行指示を安全PLC装置20に送信する。
【0045】
ステップS33において、PLCプログラミング装置30は、ステップS32で送信した実行指示に対する試験実行の結果を安全PLC装置20から受信し、受信した試験実行の結果を示す
図3のユーザインタフェース画面を表示装置(図示しない)に表示する。
【0046】
ステップS34において、PLCプログラミング装置30は、ステップS33で表示したユーザインタフェース画面において、タイミング調整情報を調整し、調整したタイミング調整情報を設定する設定指示を安全PLC装置20に送信する。
【0047】
ステップS35において、PLCプログラミング装置30は、ステップS31で入力された安全ラダープログラムを安全PLC装置20に登録する。
【0048】
図8は、PLC21aの実行時間が調整された場合の周期実行モードにおけるPLC21a、21bの動作の一例を示す図である。
図8に示すように、CPUの実行速度が速く実行時間が調整されたPLC21aは、タイミング調整情報により1周期当たりに割り当てられる最大実行時間を短縮して、PLC21bと同じく4周期で完了するように調整される。
【0049】
以上により、第1実施形態に係る安全PLC装置20は、試験実行モードにおいてPLC21a、21bそれぞれがタイミング調整情報を計算することで、実行速度の差を解消するためにシーケンスプログラムを修正せずに、安全PLC装置20に、例えばパラメータを設定することで、2つのPLC21a、21b間の性能差を吸収することを可能とし、機能安全システム1を設計するユーザの負担を解消することができる。
また、安全PLC装置20は、PLC実行タイミング調整に関わるパラメータの設定を、見積もりではなく実際の実行時間から算出するため精度の高いタイミング調整情報の設定が可能となる。
以上、第1実施形態について説明した。
【0050】
<第2実施形態>
次に、第2実施形態について説明する。第1実施形態では、安全PLC装置20は、PLC21aの実行時間を調整した。これに対して、第2実施形態では、安全PLC装置20は、PLC21aの実行周期を調整する点が、第1実施形態と相違する。
これにより、第2実施形態に係る安全PLC装置20は、実行速度の差を解消するためにシーケンスプログラムを修正せずに、安全PLC装置20に、例えばパラメータを設定することで、2つのPLC21a、21b間の性能差を吸収することを可能とし、機能安全システムを設計するユーザの負担を解消することができる。
以下、第2実施形態について説明する。
【0051】
第2実施形態に係る安全機能システム1は、
図1に示す第1実施形態と同様に、IO入出力装置10a、10b、安全PLC装置20、及びPLCプログラミング装置30を有する。
IO入出力装置10a、10b、及び外部装置PLCプログラミング装置30は、第1実施形態のIO入出力装置10a、10b、及びPLCプログラミング装置30と同様の構成を有する。
また、第2実施形態に係る安全PLC装置20は、第1実施形態の場合と同様に、第1PLCとしてのPLC21a、第2PLCとしてのPLC21b、及び通信部22を含む。
通信部22は、第1実施形態の通信部22と同様の機能を有する。
【0052】
<PLC21a、21b>
図9は、PLC21aの構成を示すブロック図である。なお、
図2のPLC21aの要素と同様の機能を有する要素については、同じ符号を付し、詳細な説明は省略する。また、PLC21bの構成は、PLC21aと同様であり、説明は省略する。また、PLC21aとPLC21bとの違いは、第1実施形態の場合と同様に、第1PLCとしてのPLC21aの実行速度が第2PLCとしてのPLC21bの実行速度より速いとする。
図9に示すように、PLC21aは、制御部200a、及び記憶部230を含む。また、制御部200aは、PLC実行部210、及び実行時間調整部220aを含む。また、実行時間調整部220aは、計測部221、タイミング調整情報算出部222a、タイミング調整情報設定部223、切替部224、及び書換部225を含む。また、記憶部230は、信号状態231、タイミング調整情報232、シーケンスプログラム233、及びプログラム変数234を含む。
【0053】
PLC実行部210は、第1実施形態のPLC実行部210と同様の機能を有する。
また、計測部221、タイミング調整情報設定部223、切替部224、及び書換部225は、第1実施形態の計測部221、タイミング調整情報設定部223、切替部224、及び書換部225と同様の機能を有する。
また、信号状態231、タイミング調整情報232、シーケンスプログラム233、及びプログラム変数234は、第1実施形態の信号状態231、タイミング調整情報232、シーケンスプログラム233、及びプログラム変数234と同様である。
【0054】
タイミング調整情報算出部222aは、計測部221により計測されたシーケンスプログラムの実行開始から終了までにかかった時間に基づいて、PLC21aにおいてシーケンスプログラムの周期実行モードにおける実行周期を含むタイミング調整情報を算出する。
具体的には、タイミング調整情報算出部222aは、例えば、第1実施形態のタイミング調整情報算出部222と同様に、バス23を介して、PLC21bの計測部221により計測されたシーケンスプログラムの実行開始から終了までにかかった時間Tm2を取得する。そして、1周期当たりの最大実行時間がTdの場合、タイミング調整情報算出部222aは、PLC21aの制御部200のCPUの実行周期Pcycle1をTm2/Tdの繰り上げ整数で計算する。タイミング調整情報算出部222aは、計算した実行周期Pcycle1を含むタイミング調整情報を、通信部22を介してPLCプログラミング装置30に送信する。
一方、PLC21bのタイミング調整情報算出部222aは、PLC21bの実行速度がPLC21aの実行速度より遅いことから、設定されているタイミング調整情報232の実行周期をPLCプログラミング装置30に送信する。
【0055】
<PLC21aの試験実行モードにおける処理>
次に、
図10を参照しながら、PLC21aの試験実行モードおける処理の流れを説明する。なお、PLC21bについてもPLC21aと同様の処理が実行される。
図10は、PLC21aの試験実行モードおける処理について説明するフローチャートである。ここで示すフローは、PLCプログラミング装置30から試験実行モードを受信する度に実行される。
なお、ステップS11からステップS13、及びステップS15の処理は、第1実施形態のステップS11からステップS13、及びステップS15の処理と同様であり、説明は省略する。
【0056】
ステップS14aにおいて、タイミング調整情報算出部222aは、ステップS13で取得された実行時間Tm1に基づいて、シーケンスプログラムの周期実行モードにおけるPLC21aの実行周期Pcycle1を含むタイミング調整情報を算出する。タイミング調整情報算出部222aは、算出したタイミング調整情報をPLCプログラミング装置30に送信する。
【0057】
<PLC21aの周期実行モードにおける処理>
次に、
図11を参照しながら、PLC21aの周期実行モードおける処理の流れを説明する。なお、PLC21bについてもPLC21aと同様の処理が実行される。
図11は、PLC21aの周期実行モードおける処理について説明するフローチャートである。ここで示すフローは、PLC21aの1スキャン毎に実行される。
なお、ステップS21の処理は、第1実施形態のステップS21の処理と同様であり、説明は省略する。
【0058】
ステップS22aにおいて、PLC実行部210は、シーケンスプログラムの実行が終了したか否かを判定する。シーケンスプログラムの実行が終了した場合、処理はステップS23aに進む。一方、シーケンスプログラムの実行が終了していない場合、処理はステップS22aで待機する。
【0059】
ステップS23aは、計測部221は、図示しないCPU内蔵クロック等から出力されるクロック値とステップS21で取得したクロック値との差分から経過時間を計測し、PLC実行部210は、計測された経過時間が実行周期Pcycle1を超えたか否かを判定する。計測された経過時間が実行周期Pcycle1を超えた場合、当該実行周期(スキャン)を終了し、次の実行周期(スキャン)に移行する。一方、計測された経過時間が実行周期Pcycle1以下の場合、処理はステップS23aで待機する。
【0060】
なお、PLCプログラミング装置30の調整・設定処理(安全機能セットアップモード)は、
図7の場合と同様であり、説明は省略する。
図12は、PLC21aの実行周期が調整された場合の周期実行モードにおけるPLC21a、21bの動作の一例を示す図である。
図12に示すように、CPUの実行速度が速く実行周期が調整されたPLC21aは、タイミング調整情報により実行周期を固定して、PLC21bと同じく4周期でプログラムがSTART-ENDまで1スキャンするように調整される。
【0061】
以上により、第2実施形態に係る安全PLC装置20は、試験実行モードにおいてPLC21a、21bそれぞれがタイミング調整情報を計算することで、実行速度の差を解消するためにシーケンスプログラムを修正せずに、安全PLC装置20に、例えばパラメータを設定することで、2つのPLC21a、21b間の性能差を吸収することを可能とし、機能安全システム1を設計するユーザの負担を解消することができる。
また、安全PLC装置20は、PLC実行タイミング調整に関わるパラメータの設定を、見積もりではなく実際の実行時間から算出するため精度の高いタイミング調整情報の設定が可能となる。
以上、第2実施形態について説明した。
【0062】
以上、第1実施形態及び第2実施形態について説明したが、安全PLC装置20は、上述の実施形態に限定されるものではなく、目的を達成できる範囲での変形、改良等を含む。
【0063】
<変形例1>
第1実施形態及び第2実施形態では、PLC21aの実行速度がPLC21bの実行速度より速いとしたが、これに限定されない。例えば、PLC21bの実行速度がPLC21aの実行速度より速くてもよい。この場合、PLC21bのタイミング調整情報算出部222は、PLC21bの制御部200のCPUの実行時間Tcycle2をTm2/Tm1×Tdと計算してもよい。また、PLC21bのタイミング調整情報算出部222は、PLC21aの制御部200のCPUの実行周期Pcycle2をTm1/Tdの繰り上げ整数で計算してもよい。そして、タイミング調整情報算出部222は、計算した実行時間Tcycle2及び実行周期Pcycle2の少なくとも1つを含むタイミング調整情報を、通信部22を介してPLCプログラミング装置30に送信するようにしてもよい。
一方、PLC21aのタイミング調整情報算出部222は、計測部221により計測された実行時間や、タイミング調整情報232に設定された実行周期を、PLC21aのタイミング調整情報としてPLCプログラミング装置30に送信してもよい。
【0064】
<変形例2>
また例えば、第1実施形態及び第2実施形態では、安全PLC装置20は、実行速度が速いPLC21a又はPLC21bのタイミング調整情報を調整したが、これに限定されない。例えば、安全PLC装置20は、PLC21aの実行時間又は実行周期と、PLC21bの実行時間又は実行周期と、を予め設定された所定の実行時間又は所定の実行周期に調整するようにしてもよい。
【0065】
<変形例3>
また例えば、第1実施形態及び第2実施形態では、PLC21a、21bは、実行時間調整部220及びタイミング調整情報232を有したが、これに限定されない。例えば、実行速度が速い、すなわちタイミング調整情報が調整されるPLC21a又はPLC21bのみが、実行時間調整部220及びタイミング調整情報232を有してもよい。
【0066】
なお、第1実施形態及び第2実施形態における安全PLC装置20に含まれる各機能は、ハードウェア、ソフトウェア又はこれらの組み合わせによりそれぞれ実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
【0067】
以上説明した第1実施形態及び第2実施形態の安全PLC装置20の全部又は一部は、ハードウェア、ソフトウェア又はこれらの組合せにより実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。ハードウェアで構成する場合、安全PLC装置20の一部又は全部を、例えば、LSI(Large Scale Integrated circuit)、ASIC(Application Specific Integrated Circuit)、ゲートアレイ、FPGA(Field Programmable Gate Array)等の集積回路(IC)で構成することができる。
【0068】
安全PLC装置20の全部又は一部をソフトウェアで構成する場合、安全PLC装置20の動作の全部又は一部を記述したプログラムを記憶した、ハードディスク、ROM等の記憶部、演算に必要なデータを記憶するDRAM、CPU、及び各部を接続するバスで構成されたコンピュータにおいて、演算に必要な情報をDRAMに記憶し、CPUで当該プログラムを動作させることで実現することができる。
【0069】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(Non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(Tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば、光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM)を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(Transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は、無線通信路を介して、プログラムをコンピュータに供給できる。
【0070】
なお、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0071】
以上を換言すると、本開示のPLC装置、及び記憶媒体は、次のような構成を有する各種各様の実施形態を取ることができる。
【0072】
(1)本開示の安全PLC装置20は、PLC21a及びPLC21bを含むPLC装置においてPLC21a及びPLC21bそれぞれのPLC実行部210にシーケンスプログラムを試験実行させ、PLC21a及びPLC21bそれぞれのPLC実行部210でシーケンスプログラムの開始から終了までにかかった時間を計測する計測部221と、計測部221により計測された計測時間に基づいて、PLC21a及びPLC21bにおいてシーケンスプログラムの周期実行における実行時間及び実行周期の少なくとも1つを含むタイミング調整情報を算出するタイミング調整情報算出部222と、タイミング調整情報算出部222により算出されたタイミング調整情報を少なくともPLC21a及びPLC21bのいずれか1つに対して設定するタイミング調整情報設定部223と、を備える。
この安全PLC装置20によれば、実行速度の差を解消するためにシーケンスプログラムを修正せずに、安全PLC装置20に、例えばパラメータを設定することで、2つのPLC21a、21b間の性能差を吸収することを可能とし、機能安全システム1を設計するユーザの負担を解消することができる。
【0073】
(2) (1)に記載の安全PLC装置20において、試験実行を行うモードと、タイミング調整情報を適用した周期実行を行うモードと、を切り替える切替部224を備えてもよい。
そうすることで、安全PLC装置20は、(1)と同様の効果を奏することができる。
【0074】
(3) (1)又は(2)に記載の安全PLC装置20において、タイミング調整情報算出部222により算出されたPLC21a及びPLC21bのタイミング調整情報をPLCプログラミング装置30に送信し、送信したタイミング調整情報に対する設定指示をPLCプログラミング装置30から受信する通信部22をさらに備え、タイミング調整情報設定部223は、受信した設定指示に基づいてタイミング調整情報を少なくともPLC21a及びPLC21bのいずれか1つに対して設定してもよい。
そうすることで、安全PLC装置20は、PLC実行タイミング調整に関わるパラメータの設定を、見積もりではなく実際の実行時間から算出するため精度の高いタイミング調整情報の設定が可能となる。
【0075】
(4) (3)に記載の安全PLC装置20において、試験実行において所定の状況を再現するために、通信部22を介してPLCプログラミング装置30からの指示に基づいて、シーケンスプログラムの書き換え、安全PLC装置20における信号状態の書き換え、又はプログラム変数234の書き換えを実行する書換部225をさらに備えてもよい。
そうすることで、安全PLC装置20は、試験実行モードにおいて所定の状況を再現することができる。
【0076】
(5)本開示の記録媒体は、PLC21a及びPLC21bを含むコンピュータであってPLC21a及びPLC21bそれぞれのPLC実行部210にシーケンスプログラムを試験実行させるために、コンピュータを、試験実行においてPLC21a及びPLC21bそれぞれのPLC実行部210でシーケンスプログラムの開始から終了までにかかった時間を計測する計測部221と、計測された計測時間に基づいて、PLC21a及びPLC21bにおいてシーケンスプログラムの周期実行における実行時間及び実行周期の少なくとも1つを含むタイミング調整情報を算出するタイミング調整情報算出部222と、算出されたタイミング調整情報を少なくともPLC21a及びPLC21bのいずれか1つに対して設定するタイミング調整情報設定部223と、して機能させるためのプログラムを記録したコンピュータが読み取り可能な記録媒体。
この記録媒体によれば、(1)と同様の効果を奏することができる。
【符号の説明】
【0077】
1 機能安全システム
10a、10b IO入出力装置
20 安全PLC装置
21a、21b PLC
22 通信部
200、200a 制御部
210 PLC実行部
220、220a 実行時間調整部
221 計測部
222、222a タイミング調整情報算出部
223 タイミング調整情報設定部
224 切替部
225 書換部
230 記憶部
231 信号状態
232 タイミング調整情報
233 シーケンスプログラム
234 プログラム変数
30 PLCプログラミング装置