(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-10
(45)【発行日】2023-10-18
(54)【発明の名称】プログラマブルコントローラ
(51)【国際特許分類】
G05B 19/05 20060101AFI20231011BHJP
【FI】
G05B19/05 F
(21)【出願番号】P 2019197432
(22)【出願日】2019-10-30
【審査請求日】2022-07-20
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】110001151
【氏名又は名称】あいわ弁理士法人
(72)【発明者】
【氏名】小野瀬 直
(72)【発明者】
【氏名】望月 充
【審査官】仁木 学
(56)【参考文献】
【文献】特開平02-083601(JP,A)
【文献】特開平10-326104(JP,A)
【文献】特開昭58-142450(JP,A)
【文献】特開2004-206511(JP,A)
【文献】特開2005-084800(JP,A)
【文献】特開昭59-212905(JP,A)
【文献】特開平01-140301(JP,A)
【文献】特開2013-117806(JP,A)
【文献】特開昭63-317834(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/05
G06F 9/48
(57)【特許請求の範囲】
【請求項1】
1つの動作周期における実行可能時間を予め定められた割合で分割した割当時間を複数の系統に割り当て、該割当時間において各系統のシーケンスプログラムを実行するプログラマブルコントローラにおいて、
前記割当時間内で前記シーケンスプログラムを実行するシーケンス実行部と、
前記シーケンスプログラムの実行が終了した際の、前記割当時間の余りである余り時間を測定する余り時間測定部と、
前記余り時間測定部が測定した前記余り時間において所定のシーケンスプログラムを実行するか否かを判断し、その判断結果に応じて前記所定のシーケンスプログラムを前記余り時間で実行するように前記シーケンス実行部へと指令する実行可否判断部と、
を備えたプログラマブルコントローラ。
【請求項2】
前記実行可能時間の前記複数の系統へ割り当てる割合を定義した割当テーブルを備え、
前記割当テーブルには、余り時間において実行する系統を指定する余り時間使用フラグを設定可能であり、
前記実行可否判断部は、前記余り時間使用フラグが設定された系統がある場合に、前記系統のシーケンスプログラムを前記余り事時間において実行すると判断する、
請求項1に記載のプログラマブルコントローラ。
【請求項3】
前記割当テーブルには、更に余り時間使用フラグが設定された系統の実行条件を設定可能であり、
前記実行可否判断部は、前記実行条件を満足する場合に、前記系統のシーケンスプログラムを前記余り時間において実行すると判断する、
請求項2に記載のプログラマブルコントローラ。
【請求項4】
前記割当テーブルには、更に余り時間使用フラグが設定された複数の系統間の優先順位が設定可能であり、
前記実行可否判断部は、前記優先順位を考慮して余り時間において実行する系統を判断する、
請求項3に記載のプログラマブルコントローラ。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラマブルコントローラに関する。
【背景技術】
【0002】
CNC(数値制御装置)などで使用されるプログラマブルコントローラ(プログラマブルロジックコントローラ、PLC)では、加工を行う機械の本体部や、加工に用いられる工具を管理する工具管理機構部、ローダなどの周辺機器部などの制御対象に係るシーケンスプログラムを動作させている。
【0003】
プログラマブルコントローラは、その動作周期毎にシーケンス制御を繰り返し行う。プログラマブルコントローラは、各動作周期の開始タイミングから所定の実行可能時間の間、シーケンスプログラムをスキャン(実行)している。プログラマブルコントローラでは、第1レベル、第2レベルといったように複数のプログラムレベルが用意されているものがある(例えば、特許文献1等)。
図9に例示されるように、複数のプログラムレベルを用意しているプログラマブルコントローラは、第1レベル用に用意されたシーケンスプログラムについては必ず1回は実行可能時間内でスキャン(実行)する。また、プログラマブルコントローラは、第2レベル用に用意されたシーケンスプログラムについては、実行可能時間内で第1レベルのシーケンスプログラムのスキャン(実行)が終了した後に、当該実行可能時間の残り時間でスキャン(実行)可能な分だけ分割し、割り込ませてスキャン(実行)する。
図9の例では、実行可能時間が16msであり、第1レベルでのスキャンは約4msで終了し、残りの約12msで第2レベルでのスキャンを行っている。なお、プログラマブルコントローラは、シーケンスプログラムのスキャンタイムが1回の実行可能時間に対して十分に小さい場合には、シーケンスプログラムのスキャンを複数回行う場合もある。例えば、実行可能時間が16msであり、シーケンスプログラムをスキャンするのに掛かるスキャンタイムが8msの場合、実行可能時間内でシーケンスプログラムのスキャンが2回行われる。
【0004】
ところで、シーケンスプログラムのスキャンに掛かる時間は、ファンクションブロックの実行条件や、通るラングによって変化する。そのため、
図10の32msからの動作周期に見られるように、実行可能時間内でスキャンするシーケンスプログラムのスキャンタイムが中途半端に短い場合、残った時間で2スキャン目のシーケンスプログラムのスキャンをすることができない。このような場合、実行可能時間の残りの「余り時間」はプログラマブルコントローラの動作における無駄な時間となる。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
プログラマブルコントローラにおいて、複数系統の複数のシーケンスプログラムを並列に実行する場合、実行可能時間をそれぞれの系統のシーケンスプログラムのスキャンタイムとして分割して割り当てる。この時、予め決められた割合で実行可能時間を割り当てて複数のシーケンスプログラムを並行にスキャンした場合、上記したように周辺機器の状況や処理条件によって各シーケンスプログラムのスキャンタイムが変動すると、たびたび余り時間が発生する。そして、結果としてプログラマブルコントローラの動作が非効率となる場合がある。
【0007】
このような課題は、各動作周期において、それぞれのシーケンスプログラムのスキャンタイムを考慮して動的に実行可能時間を割り当てることで解決を図ることができる。しかしながら、プログラマブルコントローラの実行可能時間の割当を予め定め、各動作周期におけるそれぞれの系統のシーケンスプログラムのスキャンの開始タイミングを固定的に定めておいた方が、プログラマブルコントローラの動作をCNCの分配周期と同期させることができるというメリットがあるため、設定された実行可能時間の割当を変更することが一概に良いとも言えない。
そこで、複数のシーケンスプログラムに対する実行可能時間の割当を保証し処理開始タイミングを変更することなく、余り時間を有効活用できる仕組みが望まれている。
【課題を解決するための手段】
【0008】
本発明では、各動作周期における実行可能時間を予め定められた時間割合で複数のシーケンスプログラムに割り当てて順次繰り返して実行するプログラマブルコントローラにおいて、余り時間が発生した際に、該余り時間を予め定めた系統のシーケンスプログラムの実行に割り当てることで、上記課題を解決する。
【0009】
そして、本発明の一態様は、1つの動作周期における実行可能時間を予め定められた割合で分割した割当時間を複数の系統に割り当て、該割当時間において各系統のシーケンスプログラムを実行するプログラマブルコントローラにおいて、前記割当時間内で前記シーケンスプログラムを実行するシーケンス実行部と、前記シーケンスプログラムの実行が終了した際の、前記割当時間の余りである余り時間を測定する余り時間測定部と、前記余り時間測定部が測定した前記余り時間において所定のシーケンスプログラムを実行するか否かを判断し、その判断結果に応じて前記所定のシーケンスプログラムを前記余り時間で実行するように前記シーケンス実行部へと指令する実行可否判断部と、
を備えたプログラマブルコントローラである。
【発明の効果】
【0010】
本発明の一態様により、多系統の制御を行う際に、複数のシーケンスプログラムを自由に割り付けることができるので、安価に数値制御システムを変更、拡充することができる。また、確実に行わなければならないシーケンス制御にはスキャンタイムを分配し、重要度の低い制御は余り時間発生時のみ実行する等の制御を可能とすることで、よりフレキシブルなシーケンス制御を実現する。また、シーケンスの開始タイミングは変更することなく、使用していない時間を有効活用することで無駄のない制御が可能となる。
【0011】
従来の多系統シーケンスでは、1つの系統は1実行周期で1回しか実行できなかったが、この方式によれば余り時間が存在すれば複数回特定の系統のシーケンスを繰り返し実行することが可能である。信号の更新処理が、1周期の間隔より早い場合やデータ収集等の処理に効果を発揮する。
【図面の簡単な説明】
【0012】
【
図1】一実施形態によるプログラマブルコントローラの概略的なハードウェア構成図である。
【
図2】一実施形態によるプログラマブルコントローラの概略的な機能を示すブロック図である。
【
図4】割当テーブルに従って複数の系統のシーケンプログラムを動作させた例を示す図である。
【
図5】余り時間に第4系統のシーケンプログラムを動作させた例を示す図である。
【
図6】割当テーブルに実行条件を設定した例を示す図である。
【
図7】割当テーブルに優先順位を設定した例を示す図である。
【
図8】一実施形態によるプログラマブルコントローラの概略的な動作を示すフローチャートである。
【
図9】従来技術によるプログラマブルコントローラの動作を説明する図である。
【
図10】従来技術によるプログラマブルコントローラの問題を説明する図である。
【発明を実施するための形態】
【0013】
以下、本発明の実施形態を図面と共に説明する。
図1は、本発明の一実施形態によるプログラマブルコントローラの概略的なハードウェア構成図である。プログラマブルコントローラ1はシーケンス制御を実行するCPU10を有する。CPU10には、バス19を介してROM11、RAM12、不揮発性メモリ13、入出力回路14、インタフェース15が接続されている。インタフェース15にはCFメモリ(Compact Flashメモリ)等を読み書きするための外部装置2が接続されている。CPU10は、インタフェース15を介してCFメモリ等が取り付けられた外部装置2から実行形式オブジェクトのシーケンスプログラムを取得し、不揮発性メモリ13へと記録することができる。また、バス19はバスインタフェース18を介して数値制御装置等の制御装置に接続可能になっている。入出力回路14にはI/Oユニット20を介して工作機械や周辺装置等の制御対象となる機械の各種アクチュエータやセンサなどに接続されている。
【0014】
ROM11には、プログラマブルコントローラ1のCPU10が実行するシステム・プログラムが記憶されている。CPU10は、該システム・プログラムを実行することによりプログラマブルコントローラ1の各部の動作を制御する。また、不揮発性メモリ13には、プログラマブルコントローラ1が実行するシーケンスプログラムが記憶される。シーケンスプログラムの実行時にCPU10は、不揮発性メモリ13から該シーケンスプログラムを読み出し、RAM12の実行用のシーケンスプログラム格納領域へと格納し、このRAM12に記憶された実行用のシーケンスプログラムを順次実行する。
【0015】
RAM12には、プログラマブルコントローラ1がシーケンスプログラムを実行するときの各種信号を記憶する実行用信号メモリ領域が設けられており、該実行用信号メモリ領域には、シーケンスプログラムを実行する際に必要となる入力信号、出力信号、シーケンスプログラムにおける内部リレーの状態等を記憶する領域が設けられている。
【0016】
タイマ16は、例えばRTC(Real Time Clock)等で構成され、処理時間等を計時するために用いられる。
【0017】
図2は、本発明の一実施形態によるプログラマブルコントローラ1が備える機能を概略的なブロック図として示したものである。本実施形態によるプログラマブルコントローラ1が備える各機能は、
図1に示したプログラマブルコントローラ1が備えるCPU10がシステム・プログラムを実行し、プログラマブルコントローラ1の各部の動作を制御することにより実現される。
【0018】
本実施形態のプログラマブルコントローラ1は、シーケンス制御部110を備える。また、プログラマブルコントローラ1のRAM12乃至不揮発性メモリ13には、プログラマブルコントローラ1で実行されるシーケンスプログラムを記憶する領域であるプログラム記憶部210、及びシーケンスプログラムに対する実行可能時間の割当情報が設定された割当テーブルを記憶する割当テーブル記憶部220が設けられている。
【0019】
シーケンス制御部110の機能は、
図1に示したプログラマブルコントローラ1が備えるCPU10がROM11から読み出したシステム・プログラムを実行し、主としてCPU10によるRAM12、不揮発性メモリ13を用いた演算処理と、タイマ16による計時処理、入出力回路14及びバスインタフェース18を介した入出力処理が行われることで実現される。シーケンス制御部110は、プログラム記憶部210に記憶されるシーケンスプログラムに対して各動作周期の実行可能時間を割り当て、割り当てた実行可能時間に従って各シーケンスプログラムを実行する。シーケンス制御部110は、シーケンス実行部112、余り時間測定部114、実行可否判断部116を備える。
【0020】
シーケンス制御部110が参照する割当テーブル記憶部220には、シーケンスプログラムに対する実行可能時間の割当情報が設定された割当テーブルが記憶されている。シーケンス制御部110は、割当テーブル記憶部220に記憶された割当テーブルで設定される実行可能時間の割当情報に従って実行可能時間を分割し、プログラム記憶部210から読みだした各シーケンスプログラムの実行に掛ける割当時間として割り当てる。
【0021】
シーケンス実行部112は、シーケンス制御部110が割り当てた各割当時間内において、プログラム記憶部210に予め記憶されている少なくとも1つのシーケンスプログラムを実行する。シーケンス実行部112は、割当時間内にシーケンスプログラムの全体の実行が終了しない場合には、割当時間内に実行可能な範囲でシーケンスプログラムを分割し、分割したシーケンスプログラムを実行する。
【0022】
図3は、割当テーブルの例を示している。割当テーブルは、例えば実行可能時間をシーケンスプログラムの実行に割り当てる割合を系統ごとに設定したテーブルとして定義できる。
図3で示す割当テーブルでは、例えば第1系統、第2系統、第3系統の3つの系統を備えた機械のシーケンス制御を行う際、第1系統のシーケンスプログラムの実行に50%、第2系統のシーケンスプログラムの実行に30%、第3系統のシーケンスプログラムの実行に20%の実行可能時間を、それぞれ割当時間として割り当てるように定義されている。また、例えば第1系統、第2系統、第3系統、第4系統の4つの系統を備えた機械のシーケンス制御を行う際、第1系統のシーケンスプログラムの実行に50%、第2系統のシーケンスプログラムの実行に30%、第3系統のシーケンスプログラムの実行に20%の実行可能時間を、それぞれ割当時間として割り当て、第4系統に対しては割当時間を割り当てないように定義されている。また、第4系統には余り時間使用フラグ(図中のアスタリスク)が設定されている。この余り時間使用フラグは、余り時間が発生した際に該余り時間で実行する系統に対して作業者が予め付与しておく。
【0023】
図4は、
図3に例示される割当テーブルに従って、シーケンス実行部112が第1系統、第2系統、第3系統、第4系統の4つの系統を備えた機械のシーケンス制御を行うために、それぞれのシーケンスプログラムの実行を行う例を示している。プログラム記憶部210に、第1系統の第1レベル用シーケンスプログラム及び第2レベル用シーケンスプログラム、第2系統の第1レベル用シーケンスプログラム及び第2レベル用シーケンスプログラム、第3系統の第1レベル用シーケンスプログラム及び第2レベル用シーケンスプログラム、第4系統の第2レベル用シーケンスプログラムがそれぞれ記憶されているとする。この時、シーケンス制御部110は、実行可能時間T
pの50%であるT
p×0.5を第1系統の第1レベル用シーケンスプログラム及び第2レベル用シーケンスプログラムの実行に割当時間として割り当てる。また、シーケンス制御部110は、実行可能時間T
pの30%であるT
p×0.3を第2系統の第1レベル用シーケンスプログラム及び第2レベル用シーケンスプログラムの実行に、実行可能時間T
pの残り20%であるT
p×0.2を第3系統の第1レベル用シーケンスプログラム及び第2レベル用シーケンスプログラムの実行に割当時間として割り当てる。なお、シーケンス制御部110は、第4系統には割当時間を割り当てない。そして、この割り当てられた割当時間に従って、シーケンス実行部112はそれぞれの系統のシーケンスプログラムを実行する。
【0024】
余り時間測定部114は、シーケンス実行部112が所定の割当時間においてシーケンスプログラムの実行が終了した時、余り時間が存在しているかを確認する。余り時間測定部114は、余り時間が存在することが確認された場合、割当時間の残り時間を余り時間として測定し、測定した結果を実行可否判断部116へと出力する。例えば、
図4では、第1系統のシーケンスプログラムの実行が終了した後、及び第2系統のシーケンスプログラムの実行が終了した後に、余り時間(点線矢印)が生じている。
【0025】
実行可否判断部116は、余り時間測定部114が測定した余り時間に実行可能なシーケンスプログラムが有るかを判断する。実行可否判断部116は、余り時間に実行可能なシーケンスプログラムがあると判断した場合、当該シーケンスプログラムを余り時間内に実行するようにシーケンス実行部112に指令する。本実施形態による実行可否判断部116は、余り時間使用フラグの有無で、余り時間に実行可能なシーケンスプログラムの存在を判断する。
【0026】
図5は、
図4に示されるように割当時間が各系統に割り当てられた際に、余り時間で第4系統の第2レベル用シーケンスプログラムルを実行した例である。第1系統の割当時間内に、第1レベル用シーケンスプログラム及び第2レベル用シーケンスプログラムの実行が終了して余り時間が生じると、実行可否判断部116は、割当テーブルを参照して余り時間使用フラグが付与されている系統を確認する。
図5の場合、第4系統に余り時間使用フラグが付与されているため、実行可否判断部116は、第4系統のシーケンスプログラムを余り時間で実行するようにシーケンス実行部112に指令する。そして、当該指令を受けたシーケンス実行部112は、プログラム記憶部210に記憶されている第4系統の第2レベル用シーケンスプログラムを分割して余り時間内で実行する。なお、余り時間使用フラグが付与される系統に対して複数のレベル用のシーケンスプログラムがある場合には、いずれのレベルのシーケンスプログラムを実行するのかを割当テーブルで指定できるようにしても良い。通常は、第1レベル用のシーケンスプログラムは毎動作周期に実行されることを前提としているので、余り時間に実行されるシーケンスプログラムとしては第2レベル用のシーケンスプログラムであることが望ましい。
【0027】
なお、上記実施例では、余り時間使用フラグを普段実行しない系統に対して付与している。しかしながら、余り時間使用フラグは、普段実行される系統のうちで、余り時間が生じた時に他のシーケンスプログラムに優先して実行したい系統に対して付与するようにしても良い。
【0028】
上記構成を備えた本実施形態によるプログラマブルコントローラ1は、余り時間を効率的に利用することができる。余り時間は、他のシーケンスプログラムと比較して重要度が低いシーケンスプログラムの実行や、逆に他のシーケンスプログラムよりも優先して実行したいシーケンスプログラムの実行に活用することができる。
【0029】
本実施形態によるプログラマブルコントローラ1の一変形例として、余り時間においてシーケンスプログラムを実行する条件を、割当テーブルに設定できるようにしても良い。
図6は、余り時間においてシーケンスプログラムを実行する条件を設定した割当テーブルの例を示している。
図6の例では、4系統のシーケンス制御を行う際に、第4系統に対しては割当時間を割り当てず、余り時間が発生した場合に実行されるように余り時間使用フラグが付与されている。また、余り時間が0.4ms以上である場合に限って、第4系統のシーケンスプログラムを実行するように設定されている。この時、シーケンスプログラムを実行している際に余り時間が発生すると、実行可否判断部116は、発生した余り時間が0.4ms以上である時に限って、当該余り時間に第4系統のシーケンスプログラムを実行するようにシーケンス実行部112に指令する。このような実行条件が設定できるようにすることで、例えば所定の閾値以上の余り時間が無いと実行できないシーケンスプログラムについては、余り時間の長さに応じて実行するか否かを判定することが可能となる。なお、実行条件は、上記した余り時間に対する条件以外にも、所定の信号の状態や、シーケンスプログラムが分割されて実行されているか否か等を条件として設定できるようにしても良い。所定の信号の状態を条件とすると、例えば操作盤から作業者が所定のシーケンスプログラムの実行を指令する信号を入力している場合のみ、該所定のシーケンスプログラム(例えば、動作ログを取るシーケンスプログラムなど)を実行する、といったような柔軟な運用が可能となる。また、シーケンスプログラムの分割実行を条件とすると、実行可能時間内で終了しなかったシーケンスプログラムに余り時間を使用させるといった柔軟な運用が可能となる。
【0030】
本実施形態によるプログラマブルコントローラ1の他の変形例として、余り時間に実行可能なシーケンスプログラムが複数ある場合に、それぞれのシーケンスプログラムの実行優先順位を、割当テーブルに設定できるようにしても良い。
図7は、余り時間に実行可能な複数のシーケンスプログラムに対して優先順位を設定した割当テーブルの例を示している。
図7の例では、4系統のシーケンス制御を行う際に、第4系統に対しては割当時間を割り当てず、第3系統と第4系統について余り時間が発生した場合に実行されるように余り時間使用フラグが付与されている。また、余り時間使用フラグには、第3系統が優先順1、第4系統が優先順2となるように優先度が設定されている。更に、第3系統は余り時間が0.6ms以上の時、第4系統は余り時間が0.4ms以上の時に実行するように実行条件が設定されている。この時、余り時間が発生すると、余り時間が0.6ms未満である場合には第4系統のシーケンスプログラムが、0.6ms以上である場合は第3系統のシーケンスプログラムが実行される。このように、優先順位が設定できるようにすることで、余り時間が発生した時のシーケンスプログラムの実行をより細かく制御することが可能となる。
【0031】
図8は、上記した変形例のプログラマブルコントローラ1の1回の動作周期における動作を概略的なフローチャートで示したものである。
プログラマブルコントローラ1が備えるシーケンス制御部110は、動作周期毎に割当テーブル記憶部220に記憶される割当テーブルの設定を読み込み(ステップSA01)、各系統に対して実行可能時間を割り当てる。そして、系統毎にステップSA03~SA09を繰り返し実行する(ステップSA02)。各系統では、タイマ16で処理時間を計測しながら(ステップSA03,ステップSA05)、シーケンス実行部112がシーケンスプログラムを実行してシーケンス制御処理を行う(ステップSA04)。
【0032】
そして、余り時間測定部114が割当時間に余り時間が発生したことを確認した場合(ステップSA06)、実行可否判断部116は、割当テーブルで余り時間使用フラグが付与されている系統について、優先順位に従ってステップSA08,ステップSA09を繰り返し実行する(ステップSA07)。実行可否判断部116は、余り時間の長さや各信号の状態、シーケンスプログラムが分割実行中か否か、等の実行条件の判定を行い(ステップSA08)、実行条件が成立している場合は、余り時間内に当該系統のシーケンスプログラムを実行するようにシーケンス実行部112に指令する。そして、シーケンス実行部112は、余り時間において指令されたシーケンスプログラムを実行する(ステップSA09)。
【0033】
以上、本発明の一実施形態について説明したが、本発明は上述した実施の形態の例のみに限定されることなく、適宜の変更を加えることにより様々な態様で実施することができる。
【符号の説明】
【0034】
1 プログラマブルコントローラ
2 外部装置
10 CPU
11 ROM
12 RAM
13 不揮発性メモリ
14 入出力回路
15 インタフェース
16 タイマ
18 バスインタフェース
19 バス
20 I/Oユニット
110 シーケンス制御部
112 シーケンス実行部
114 余り時間測定部
116 実行可否判断部
210 プログラム記憶部
220 割当テーブル記憶部