(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-08-16
(45)【発行日】2022-08-24
(54)【発明の名称】情報処理装置、画像表示方法、および画像表示プログラム
(51)【国際特許分類】
G09G 5/00 20060101AFI20220817BHJP
G05B 19/05 20060101ALI20220817BHJP
【FI】
G09G5/00 530T
G05B19/05 D
G09G5/00 510C
(21)【出願番号】P 2018192531
(22)【出願日】2018-10-11
【審査請求日】2021-08-05
(31)【優先権主張番号】P 2017197387
(32)【優先日】2017-10-11
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110000970
【氏名又は名称】弁理士法人 楓国際特許事務所
(72)【発明者】
【氏名】永田 雄大
【審査官】松本 泰典
(56)【参考文献】
【文献】実開昭61-6718(JP,U)
【文献】特開2002-6944(JP,A)
【文献】特開2007-316405(JP,A)
【文献】特開平3-72396(JP,A)
【文献】特開2009-110455(JP,A)
【文献】特開2008-125287(JP,A)
【文献】特開昭57-94804(JP,A)
【文献】特開平5-281938(JP,A)
【文献】特開平11-304634(JP,A)
【文献】特開平11-331610(JP,A)
【文献】特開2015-87569(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/05
G09G 5/00
(57)【特許請求の範囲】
【請求項1】
制御対象を制御周期で制御するシーケンス制御、および表示器の画面に表示させるモニタ画像を更新周期で更新するモニタ画像制御を実行する演算処理部と、
前記演算処理部が前記シーケンス制御、および前記モニタ画像制御の実行に際してアクセスする記憶部と、を備え、
前記演算処理部は、
前記表示器の画面に表示させる前記モニタ画像の更新にかかる処理負荷の大きさが、予め定めた上限レベルを超えているかどうかを判断する判断機能と、
前記判断機能によって、前記モニタ画像の更新にかかる処理負荷の大きさが、予め定めた上限レベルを超えていると判断した場合、前記表示器の画面に表示させている更新前の前記モニタ画像を、複数の前記更新周期に亘って、段階的に更新後の前記モニタ画像に更新する段階更新機能と、
1つ以上のユーザインタフェース部品について配置位置が設定されたレイアウトに応じて、前記モニタ画像を生成するモニタ画像生成機能と、を有し、
前記判断機能は、更新前の前記モニタ画像と、更新後の前記モニタ画像との間で、前記レイアウトが異なる場合、前記モニタ画像の更新にかかる処理負荷の大きさが、予め定めた上限レベルを超えていると判断する、
情報処理装置。
【請求項2】
前記段階更新機能は、前記モニタ画像を複数の部分領域に区分する区分データを用い、前記更新周期毎に、前記部分領域を順次選択し、更新前の前記モニタ画像に対して、今回選択した部分領域を更新後の前記モニタ画像に順次置き換える、請求項1に記載の情報処理装置。
【請求項3】
前記判断機能は、更新前の前記モニタ画像と、更新後の前記モニタ画像との差分を示す相違レベルによって、前記モニタ画像の更新にかかる処理負荷の大きさが、予め定めた上限レベルを超えているかどうかを判断する、請求項
1、または2に記載の情報処理装置。
【請求項4】
前記相違レベルは、更新前の前記モニタ画像と、更新後の前記モニタ画像とにおいて、対応する画素間で画素値が異なる画素の総数である、請求項
3に記載の情報処理装置。
【請求項5】
制御対象を制御周期で制御するシーケンス制御、および表示器の画面に表示させるモニタ画像を更新周期で更新するモニタ画像制御を実行する演算処理部が、
前記表示器の画面に表示させる前記モニタ画像の更新にかかる処理負荷の大きさが、予め定めた上限レベルを超えているかどうかを判断する判断ステップと、
前記判断ステップで、前記モニタ画像の更新にかかる処理負荷の大きさが、予め定めた上限レベルを超えていると判断した場合、前記表示器の画面に表示させている更新前の前記モニタ画像を、複数の前記更新周期に亘って、段階的に更新後の前記モニタ画像に更新する段階更新ステップと、
1つ以上のユーザインタフェース部品について配置位置が設定されたレイアウトに応じて、前記モニタ画像を生成するモニタ画像生成ステップと、を実行し、
前記判断ステップは、更新前の前記モニタ画像と、更新後の前記モニタ画像との間で、前記レイアウトが異なる場合、前記モニタ画像の更新にかかる処理負荷の大きさが、予め定めた上限レベルを超えていると判断するステップである、
画像表示方法。
【請求項6】
制御対象を制御周期で制御するシーケンス制御、および表示器の画面に表示させるモニタ画像を更新周期で更新するモニタ画像制御を実行する演算処理部に、
前記表示器の画面に表示させる前記モニタ画像の更新にかかる処理負荷の大きさが、予め定めた上限レベルを超えているかどうかを判断する判断ステップと、
前記判断ステップで、前記モニタ画像の更新にかかる処理負荷の大きさが、予め定めた上限レベルを超えていると判断した場合、前記表示器の画面に表示させている更新前の前記モニタ画像を、複数の前記更新周期に亘って、段階的に更新後の前記モニタ画像に更新する段階更新ステップと、
1つ以上のユーザインタフェース部品について配置位置が設定されたレイアウトに応じて、前記モニタ画像を生成するモニタ画像生成ステップと、を実行させ、
前記判断ステップは、更新前の前記モニタ画像と、更新後の前記モニタ画像との間で、前記レイアウトが異なる場合、前記モニタ画像の更新にかかる処理負荷の大きさが、予め定めた上限レベルを超えていると判断するステップである、
画像表示プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、シーケンス制御、およびモニタ画像制御を実行するコンピュータにかかる技術に関する。
【背景技術】
【0002】
従来、PLC(ProgrammableLogic Controller)機能と、HMI(HumanMachine Interface)機能とを備えて、機械や設備等の制御対象の動作を制御するPLCシステムがあった。PLC機能は、機械や設備等の制御対象に応じて設計されたユーザプログラム(シーケンス制御プログラム)を制御周期(制御サイクル)で実行し、制御対象の動作を制御する機能である。HMI機能は、PLC機能が制御している制御対象の状態等を示すモニタ画像を表示器の画面に表示するとともに、ユーザの入力操作を受け付ける機能である。ユーザは、表示器の画面上に貼付されたタッチパネル等の入力デバイスを操作する。
【0003】
PLC機能は、制御対象からの入力信号及びHMI機能で受け付けたユーザの入力操作に応じて、制御対象に対する制御信号を作成する。PLC機能は、作成した制御信号を制御対象に出力することにより、制御対象を制御する。また、HMI機能は、表示器の画面に表示されているモニタ画像を更新周期で更新する。PLC機能における制御周期と、HMI機能における更新周期とは、個別に設定されている。
【0004】
また、PLC機能は、制御周期を一定にすることで、制御対象の動作に対する制御指令が安定する。すなわち、PLC機能が制御周期を一定にすることで、制御対象の動作が安定する。特許文献1には、PLCにおいて、シーケンスプログラム実行時間と、入出力リフレッシュ時間の和であるスキャンタイムを一定化する技術が開示されている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、PLC機能、およびHMI機能を、CPU、メモリ、内部バス等のリソースを共有して実現した産業用情報処理装置(IPC(Industrial PersonalComputer))がある。このIPCは、HMI機能により表示器の画面に表示させるモニタ画像の変化が大きくなるにつれて、このHMI機能におけるリソースの占有率が高くなる。HMI機能におけるリソースの占有率が高くなると、必然的にPLC機能におけるリソースの占有率が低くなる。PLC機能は、リソースの占有率が低下するにつれて、ユーザプログラムの実行時間が長くなる。したがって、HMI機能におけるリソースの占有率がある程度まで高くなると、PLC機能が制御対象の動作を制御周期で制御できない(ユーザプログラムを1周期の間に実行できない。)事態が生じる。このような事態が生じると、PLC機能によって制御されている制御対象の動作が不安定になる。
【0007】
本発明の目的は、制御対象の動作が、表示器の画面に表示させるモニタ画像の更新によって、不安定になるのを抑制する技術を提供することにある。
【課題を解決するための手段】
【0008】
この発明の情報処理装置は、上記目的を達するために、以下のように構成している。
【0009】
情報処理装置は、演算処理部、および記憶部を有している。演算処理部、および記憶部は、制御対象を制御周期で制御するシーケンス制御、および表示器の画面に表示させるモニタ画像を更新周期で更新するモニタ画像制御において、共有されるリソースである。モニタ画像は、例えば、シーケンス制御されている制御対象の状態、および情報処理装置本体に対する操作案内等にかかるHMI(Human Machine Interface)画像である。制御周期と、更新周期とは、個別に設定されるものであり、同じであってもよいし、異なっていてもよい。
【0010】
また、演算処理部は、以下に示す、判断機能、および段階更新機能を有している。判断機能は、表示器の画面に表示させるモニタ画像の更新時に、この更新にかかる処理負荷の大きさが、予め定めた上限レベルを超えているかどうかを判断する。例えば、判断機能は、更新前のモニタ画像と、更新後のモニタ画像との差分を示す相違レベルによって、モニタ画像の更新にかかる処理負荷の大きさが、予め定めた上限レベルを超えているかどうかを判断する構成にすればよい。この場合、相違レベルは、例えば、更新前のモニタ画像と、更新後のモニタ画像とにおいて、対応する画素間で画素値が異なる画素の総数を用いればよい。判断機能は、更新前のモニタ画像と、更新後のモニタ画像とにおいて、対応する画素間で画素値が異なる画素の総数が、設定している上限数を超えていれば、モニタ画像の更新にかかる処理負荷の大きさが、予め定めた上限レベルを超えていると判断すればよい。
【0011】
また、段階更新機能は、判断機能によってモニタ画像の更新にかかる処理負荷の大きさが、予め定めた上限レベルを超えていると判断された場合、表示器の画面に表示させている更新前のモニタ画像を、複数の更新周期に亘って、段階的に更新後のモニタ画像に更新する。
【0012】
このように、情報処理装置は、モニタ画像の更新にかかる処理負荷が予め定めた上限レベルを超える大きさであると判断すると、複数の更新周期に亘って、モニタ画像の更新を行う。すなわち、モニタ画像の更新にかかる処理負荷が大きいときには、その処理負荷を単一の更新周期に集中させるのではなく、複数の更新周期に分散させる。これにより、情報処理装置は、モニタ画像制御におけるリソースの占有率が高くなり、シーケンス制御におけるリソースの占有率が低くなって、制御対象を制御周期で制御することができないという事態が生じるのを抑制できる。すなわち、制御対象の動作が、表示器の画面に表示させるモニタ画像の更新によって、不安定になるのを抑制できる。
【0013】
また、段階更新機能は、例えば、モニタ画像を複数の部分領域に区分する区分データを用い、更新周期毎に、部分領域を順次選択し、更新前の前記モニタ画像に対して、今回選択した部分領域を更新後のモニタ画像に順次置き換える、構成にしてもよい。
【0014】
さらに、モニタ画像制御部が、1つ以上のユーザインタフェース部品について配置位置が設定されたレイアウトに応じて、モニタ画像を生成するモニタ画像生成部を有し、判断機能が、更新前のモニタ画像と、更新後のモニタ画像との間で、レイアウトが異なる場合、モニタ画像の更新にかかる処理負荷の大きさが、予め定めた上限レベルを超えていると判断する、構成にしてもよい。
【0015】
通常、レイアウトが異なるモニタ画像間では、対応する画素間で画素値が異なっている画素が多い。したがって、モニタ画像の更新にかかる処理負荷の大きさが、予め定めた上限レベルを超えているかどうかを、レイアウトの変更の有無を判断するという簡単な処理で実現できる。
【発明の効果】
【0016】
本発明によれば、制御対象の動作が、表示器の画面に表示させるモニタ画像の更新によって、不安定になるのを抑制できる。
【図面の簡単な説明】
【0017】
【
図1】この例にかかる情報処理装置を適用した産業用ネットワークシステムの概要を示すブロック図である。
【
図2】この例にかかるIPCの主要部の構成を示すブロック図である。
【
図3】シーケンス制御プログラムの実行時間と、制御対象の制御周期と、の関係を示す図である。
【
図4】この例にかかるIPCの制御ユニットが有するHMI制御部の機能ブロックを示すである。
【
図5】この例にかかる描画制御機能の詳細を示す図である。
【
図6】
図6(A)は、ディスプレイ40の画面に表示されているモニタ画像を画像Aから画像Bへ一度に更新した例であり、
図6(B)は、
図6(A)に示すモニタ画像の更新時におけるHMI機能のリソースの占有率を示し、
図6(C)は、ディスプレイ40の画面に表示されているモニタ画像を画像Aから画像Bへ4段階に分けて更新した例であり、
図6(D)は、
図6(C)に示すモニタ画像の更新時におけるHMI機能のリソースの占有率を示し、
図6(E)は、画像Bの分割を示す図である。
【
図7】
図7(A)は、ディスプレイ40が画像Aから画像Bへ1回の更新周期で書き換えた場合を示す遷移図である。
図7(B)は、分割処理のための部分領域(1)~(4)を示す図で、
図7(C)~
図7(F)は、更新周期毎に部分領域の画像データが順番に書き換えられていく様子を示す図である。
【
図8】この例にかかるモニタ画像更新処理を示すフローチャートである。
【発明を実施するための形態】
【0018】
図1は、本発明の実施形態に係る情報処理装置を適用した産業用ネットワークシステムの概要を示すブロック図である。この例にかかる産業用ネットワークシステム1は、パーソナルコンピュータ10(PC10)と、産業用パーソナルコンピュータ30(IPC(Industrial PersonalComputer)30)と、ディスプレイ40と、制御対象50と、を備えている。
【0019】
この例では、IPC30は、イーサネット(登録商標)20でPC10と接続されており、PC10との間で情報の入出力が行える。また、IPC30は、EtherCAT(登録商標)21で制御対象50と接続されており、制御対象50との間で情報の入出力が行える。EtherCAT(登録商標)21は、産業用のオープンなネットワークで、フィールドネットワークとして利用されているものである。IPC30には、1つ以上の制御対象50が接続される。IPC30に接続されている制御対象50が複数である場合、複数の制御対象50は、同じ種類のものであってもよいし、異なる種類のものが混在していてもよい。また、IPC30とディスプレイ40とは、入出力ケーブルで接続される構成であってもよいし、無線で接続される構成であってもよい。
【0020】
IPC30が、この発明で言う情報処理装置に相当する。また、ディスプレイ40が、この発明で言う表示器に相当する。制御対象50は、例えば産業用ロボットを含む生産機械、生産現場の設備機器である。
【0021】
この例では、IPC30は、PLC(ProgrammableLogic Controller)機能、およびHMI(HumanMachine Interface)機能を有している。ユーザは、IPC30で実行させる各種プログラムの作成に、例えばPC10を用いる。ユーザがPC10で作成するプログラムは、例えばシーケンス制御プログラム、HMIプログラムである。IPC30は、シーケンス制御プログラムを実行することにより、制御対象50を制御周期でシーケンス制御するPLC機能を実現する。すなわち、シーケンス制御プログラムは、PLC機能を実現させるためのプログラムである。また、IPC30は、HMIプログラムを実行することにより、PLC機能に対するユーザの入力操作を受け付けるモニタ画像を生成し、ディスプレイ40の画面に表示させるHMI機能を実現する。また、モニタ画像には、制御対象50の状態に関連するデータも含まれる。すなわち、HMI制御プログラムは、HMI機能を実現させるためのプログラムである。また、HMI機能は、ユーザインタフェース部品(UI部品)の種類、配置等が異なる複数種類のレイアウト画像の中から、選択されているレイアウト画像を用いてモニタ画像を生成する。このレイアウト画像は、1種類であってもよいし、複数種類であってもよい。
【0022】
また、ユーザは、実行中のプログラムが参照する各種情報の作成にもPC10を用いる。例えば、実行中のHMIプログラムが参照するレイアウト情報をPC10で作成する。PC10において作成された各種プログラム、および各種情報は、イーサネット(登録商標)20を通信路にしてPC10からIPC30に送られる。レイアウト情報は、上述したレイアウト画像を示すものである。
【0023】
なお、PC10と、IPC30との間における、各種プログラム、および各種情報の受け渡しについては、USBメモリ等の記憶媒体を媒介にして行ってもよい。したがって、PC10と、IPC30とは、イーサネット(登録商標)20等のネットワークで接続されていなくても特に問題はない。また、IPC30が、シーケンス制御プログラム、HMIプログラム、レイアウト情報等を作成する機能を有する構成であってもよい。
【0024】
IPC30には、図示していないマウス、キーボード等の入力デバイスが接続されている。また、ディスプレイ40の画面には、タッチパネルが貼付されている。このタッチパネルも、IPC30に接続されている入力デバイスの1つである。
【0025】
図2は、IPCの主要部の構成を示す概略図である。IPC30は、CPU3Aと、メモリ3Bと、表示制御部3Cと、記憶媒体3Dと、入力インタフェース3E(入力I/F3E)とを備えている。CPU3A、メモリ3B、表示制御部3C、記憶媒体3D、および入力I/F3Eは、内部バスによって接続されている。
【0026】
CPU3Aは、制御対象50を制御周期で制御するPLC制御、およびディスプレイ40に表示させるモニタ画像を生成するHMI制御を並行して実行する。CPU3Aが、この発明で言う演算処理部に相当する。また、PLC制御が、この発明で言うシーケンス制御に相当し、HMI制御が、この発明で言うモニタ画像制御に相当する。
【0027】
CPU3Aは、PLC制御、およびHMI制御の実行時に、メモリ3Bをワーキングエリアとして使用する。すなわち、CPU3Aは、PLC制御、およびHMI制御の実行時に、メモリ3Bにアクセスする。メモリ3Bは、例えばDRAMである。表示制御部3Cは、HMI制御によって作成されたモニタ画像をディスプレイ40に表示させる。表示制御部3Cは、公知のグラフィックボードであり、設定されているリフレッシュレート(例えば、60Hz)でディスプレイ40のVRAMを書き換える。このリフレッシュレートが、この発明で言う更新周期である。
【0028】
記憶媒体3Dは、制御対象をシーケンス制御するためのシーケンス制御プログラム、HMI制御を行うためのHMIプログラム、レイアウト画像を示すレイアウト情報等を記憶する。記憶媒体3Dは、例えば、ハードディスクドライブ、ソリッドステートドライブである。
【0029】
IPC30は、CPU3Aがシーケンス制御プログラムを実行することにより、PLC機能を実現し、CPU3AがHMIプログラムを実行することにより、HMI機能を実現する。CPU3Aは、シーケンス制御プログラム、およびHMIプログラムを同時に実行できる。
【0030】
ここで、IPC30における、シーケンス制御プログラムの実行時間の変動について簡単に説明しておく。
図3は、シーケンス制御プログラムの実行時間の変動を示す概略図である。
図3では、制御対象50の制御周期1、2、…を時間方向(横軸)に示している。また、
図3では、出力データの送信処理P1、入力データの受信処理P2及びシーケンス制御プログラムの実行処理P3を縦軸方向に並べている。
【0031】
IPC30は、制御周期毎に、P1処理、P2処理、P3処理をこの順で実行する。
図3に示す例では、制御周期1、4、5は、P1処理、P2処理、P3(P31、P34、P35)処理が時間内に適正に実行された例である。一方、制御周期2は、シーケンス制御プログラムの実行時間が長くなり、P32処理が時間内に適正に実行されなかった例である。制御周期2においても、P1処理、P2処理は、上述した制御周期1、4、5と同程度の時間で終了している。この制御周期2に示す状況は、例えばHMI制御におけるリソースの占有率が高くなった場合に生じる。
【0032】
また、シーケンス制御プログラムが適正に実行されなかった制御周期2に連続する制御周期3では、本来のP1処理、P2処理の後に実行されるシーケンス制御プログラムの実行処理P3が、制御周期2で未実行であった部分のP321処理になる。すなわち、シーケンス制御プログラムが、制御周期2、3に亘って(2つの制御周期に亘って)1回実行されることになり、制御対象50の動作が不安定になる。
【0033】
なお、場合によっては、シーケンス制御プログラムが、3つ以上の制御周期に亘って1回実行されることもある。
【0034】
この例にかかるIPC30は、HMI制御におけるリソースの占有率が大きくなって、シーケンス制御プログラムが、複数の制御周期に亘って1回実行される事態の発生を防止することによって、制御対象50の動作が不安定になるのを抑制するものである。
【0035】
図4は、IPCのHMI制御機能を示す機能ブロックを示すである。この
図3では、PLC機能にかかる機能ブロックについては図示を省略している。CPU3Aは、HMI制御機能31、および描画制御機能32として機能する。記憶媒体3Dには、HMIプログラム331、およびレイアウト情報332が記憶される。HMIプログラム331、およびレイアウト情報332は、例えばPC10において作成される。PC10が、作成したHMIプログラム331、およびレイアウト情報332を、イーサネット(登録商標)20を介してIPC30に配信する。
【0036】
HMIプログラム331は、HMI機能を実現するためのHMIプログラムである。レイアウト情報332は、レイアウト画像を示すものであり、レイアウト画像の種類毎に生成されている。
【0037】
なお、記憶媒体3Dには、シーケンス制御プログラムも記憶されている。CPU3Aは、このシーケンス制御プログラムを実行することにより、PLC機能を実現する。
【0038】
また、メモリ3Bには、更新前画像データ341、および更新後画像データ342を記憶するバッファ領域34が設けられている。更新後画像データ342は、今回作成したモニタ画像にかかる画像データである。更新前画像データ341は、前回作成したモニタ画像にかかる画像データである。すなわち、モニタ画像が作成されると、更新後画像データ342が更新前画像データ341になり、今回作成されたモニタ画像にかかる画像データが更新後画像データ342になる。更新後画像データ342は、以下に示すように、HMI制御機能31が作成する。
【0039】
CPU3Aが、HMIプログラム331を実行することにより、HMI制御機能31、および描画制御機能32として機能する。HMIプログラム331は、メモリ3Bに展開される。HMI制御機能31は、ユーザの入力操作を受け付け、ユーザの入力操作等に応じてモニタ画像にかかる画像データ(更新後画像データ342)の作成、PLC機能との間におけるデータの入出力等、HMI機能にかかる処理を行う。HMI制御機能31は、生成した更新後画像データ342を、バッファ領域34に記憶させる。
【0040】
また、描画制御機能32は、HMI制御機能31からの指示にしたがって、ディスプレイ40の画面に表示させるモニタ画像にかかる画像データ(ディスプレイ用画像データ35)を生成する。描画制御機能32は、生成したディスプレイ用画像データ35をメモリ3Bに記憶させる。表示制御部3Cには、記憶させたディスプレイ用画像データ35がメモリ3Bに転送される。このディスプレイ用画像データ35は、ディスプレイ40のVRAMに書き込むデータである。表示制御部3Cは、転送されてきたディスプレイ用画像データ35をディスプレイ40のVRAMに書き込む。表示制御部3Cは、ディスプレイ40のVRAMに対するディスプレイ用画像データ35の書き込みをリフレッシュレートで実行する。
【0041】
ディスプレイ40は、VRAMに書き込まれているディスプレイ用画像データ35に応じてモニタ画像を更新する。
【0042】
入力インタフェース3E(入力I/F3E)は、ディスプレイ40の画面に貼付されているタッチパネル、マウス、キーボード等の入力デバイスにおけるユーザの入力操作を受け付ける。入力I/F3Eは、ユーザの入力操作に応じたイベントをCPU3Aに入力する。
【0043】
ディスプレイ用画像データ35は、ディスプレイ40が更新の前後において画面に表示していたモニタ画像の変化が大きくなるにつれて、その容量が大きくなる。すなわち、IPC30では、ディスプレイ40に表示させるモニタ画像を大きく変化させるとき、HMI機能におけるリソースの占有率が高くなる。特に、メモリ3Bと表示制御部3Cとの間におけるディスプレイ用画像データ35の転送にかかるバスの占有率が高くなる。このため、PLC機能におけるリソースの占有率が低くなる。
【0044】
図5は、この例にかかる描画制御機能の詳細を示す図である。この例にかかる描画制御機能32は、更新設定処理機能311と、判断処理機能312と、段階更新処理機能313と、合成処理機能314と、によって構成されている。
【0045】
更新設定処理機能311は、設定されているリフレッシュレートに基づき、ディスプレイ40の画面に表示させているモニタ画像の更新タイミングを判定する。
【0046】
判断処理機能312は、ディスプレイ40の画面に表示させるモニタ画像を、更新前画像データ341に基づく画像から、更新後画像データ342に基づく画像へ一度に更新したときの処理負荷の大きさが、予め定めた上限レベルを超えているかどうかを判断する。例えば、判断処理機能312は、更新前画像データ341に基づく画像と、更新後画像データ342に基づく画像との差分を示す相違レベルによって、ディスプレイ40の画面に表示させるモニタ画像を一度に更新したときの処理負荷の大きさが、予め定めた上限レベルを超えているかどうかを判断する。具体的には、判断処理機能312は、更新前画像データ341に基づく画像と、更新後画像データ342に基づく画像とにおいて、対応する画素間で画素値が異なる画素の総数が閾値を超えていれば、一度に更新したときの処理負荷の大きさが、予め定めた上限レベルを超えていると判断する。
【0047】
また、判断処理機能312は、ディスプレイ40の画面に表示させるモニタ画像のレイアウトが更新の前後で異なる場合、ポップアップ画面をモニタ画像に表示する場合、表示サイズをリサイズする場合等も、ディスプレイ40の画面に表示させるモニタ画像を一度に更新したときの処理負荷の大きさが、予め定めた上限レベルを超えていると判断してもよい。判断処理機能312が、この発明で言う判断機能に相当する。
【0048】
段階更新処理機能313は、ディスプレイ40の画面に表示させるモニタ画像を一度に更新したときの処理負荷の大きさが予め定めた上限レベルを超えている場合、複数の更新周期に亘って、ディスプレイ40の画面に表示させるモニタ画像を、更新前画像データ341に基づく画像から、更新後画像データ342に基づく画像へ段階的に更新する。
【0049】
合成処理機能314は、モニタ画像の更新にかかる処理負荷の大きさが、予め定めた上限レベルを超えていない場合、ディスプレイ40の画面に表示させるモニタ画像を、更新前画像データ341に基づく画像から、更新後画像データ342に基づく画像へ一度に更新する。
【0050】
図6は、段階更新処理の原理を説明する図である。
図6(A)は、ディスプレイ40の画面に表示されているモニタ画像を画像Aから画像Bへ一度に更新した例であり、
図6(B)は、
図6(A)に示すモニタ画像の更新時におけるHMI機能のリソースの占有率を示し、
図6(C)は、ディスプレイ40の画面に表示されているモニタ画像を画像Aから画像Bへ4段階に分けて更新した例であり、
図6(D)は、
図6(C)に示すモニタ画像の更新時におけるHMI機能のリソースの占有率を示し、
図6(E)は、画像Bの分割を示す図である。
【0051】
図6(B)、および
図6(D)から明らかなように、ディスプレイ40の画面に表示されているモニタ画像を画像Aから画像Bへ更新する場合、一度に更新するよりも、複数段階に分けて更新したほうが、HMI機能のリソースの占有率を抑えることができる。すなわち、HMI機能がディスプレイ40の画面に表示されているモニタ画像を画像Aから画像Bへ更新する場合、一度に更新するよりも、複数段階に分けて更新したほうが、PLC機能のリソースの占有率の低下を抑えられる。
【0052】
この
図6(C)に示す例は、画像Bを左右方向に4つの部分領域4B1~4B4に分割し(
図6(E)参照)、右側の部分領域4B1から順に更新周期(リフレッシュレート)で画像Aを書き換えることによって、最終的にディスプレイ40の画面に画像Bをモニタ画像として表示させる例である。
【0053】
具体的には、描画制御機能32は、最初の更新周期において、更新後画像データ342を参照して、部分領域4B1にかかるディスプレイ用画像データ35を生成し、メモリ3Bに記憶させる。このディスプレイ用画像データ35は、表示制御部3Cに転送される。表示制御部3Cが転送されてきたディスプレイ用画像データ35をディスプレイ40のVRAMに書き込む。これにより、ディスプレイ40の画面には、画像Aの右側が画像Bの部分領域4B1に書き換えられたモニタ画像が表示される。
【0054】
また、描画制御機能32は、2番目の更新周期において、更新後画像データ342を参照して、部分領域4B2にかかるディスプレイ用画像データ35を生成し、メモリ3Bに記憶させる。このディスプレイ用画像データ35は、表示制御部3Cに転送される。表示制御部3Cが転送されてきたディスプレイ用画像データ35をディスプレイ40のVRAMに書き込む。これにより、ディスプレイ40の画面には、画像Aの右側が画像Bの部分領域4B1、4B2に書き換えられたモニタ画像が表示される。
【0055】
また、描画制御機能32は、3番目の更新周期において、更新後画像データ342を参照して、部分領域4B3にかかるディスプレイ用画像データ35を生成し、メモリ3Bに記憶させる。このディスプレイ用画像データ35は、表示制御部3Cに転送される。表示制御部3Cが転送されてきたディスプレイ用画像データ35をディスプレイ40のVRAMに書き込む。これにより、ディスプレイ40の画面には、画像Aの右側が画像Bの部分領域4B1、4B2、4B3に書き換えられたモニタ画像が表示される。
【0056】
また、描画制御機能32は、4番目の更新周期において、更新後画像データ342を参照して、部分領域4B4にかかるディスプレイ用画像データ35を生成し、メモリ3Bに記憶させる。このディスプレイ用画像データ35は、表示制御部3Cに転送される。表示制御部3Cが転送されてきたディスプレイ用画像データ35をディスプレイ40のVRAMに書き込む。これにより、ディスプレイ40の画面には、画像Bに書き換えられたモニタ画像が表示される。
【0057】
図7は、画像の分割書き換え処理の別の例を示す図である。
図7(A)は、ディスプレイ40が画像Aから画像Bへ1回の更新周期で書き換えた場合を示す遷移図である。
図7(B)は、分割処理のための部分領域(1)~(4)を示す図で、
図7(C)~
図7(F)は、更新周期毎に部分領域の画像データが順番に書き換えられていく様子を示す図である。
【0058】
図7(A)に示すように、更新前画像と更新後画像とは、表示領域a1とa2とでは画像の変化が大きく、一方、表示領域b1とb2とは画像の変化がない。この例では、
図7(B)に示すように、4つの部分領域(1)~(4)を設定している。そして、更新周期に同期して、まず部分領域(1)を書き換え(
図7(C))、次に、部分領域(2)を書き換え(
図7(D))、続いて部分領域(3)を書き換え(
図7(E))、最後に部分領域(4)を書き換える(
図7(F))。これによって4回の更新周期で、ディスプレイ40の画面に表示されているモニタ画像が、
図7(A)に示す画像Aから画像Bへ更新される。
【0059】
図8は、HMI機能におけるモニタ画像の更新処理を示すフローチャートである。この処理は、描画制御機能32が実行する。描画制御機能32は、ディスプレイ40の画面に表示されているモニタ画像を更新する更新タイミングになるのを待っている(s1)。描画制御機能32は、更新タイミングになると、ディスプレイ40の画面に表示させるモニタ画像を、更新前画像データ341に基づく画像から、更新後画像データ342に基づく画像へ一度に更新するときの処理負荷の大きさが上限レベルを超えているかどうかを判断する(s2)。判断処理機能312が、s2にかかる判断を行う。判断処理機能312は、上述したように、更新前のモニタ画像と、更新後のモニタ画像とにおいて、対応する画素間で画素値が異なる画素の総数が、閾値を超えているかどうかによって、この判断を行う。また、判断処理機能312は、ディスプレイ40の画面に表示させるモニタ画像のレイアウトが更新の前後で異なる場合、ポップアップ画面をモニタ画像に表示する場合、表示サイズをリサイズする場合等も、ディスプレイ40の画面に表示させるモニタ画像を、更新前画像データ341に基づく画像から、更新後画像データ342に基づく画像へ一度に更新するときの処理負荷の大きさが上限レベルを超えていると判断する。
【0060】
描画制御機能32は、s2で上限レベルを超えていないと判定すると、一括更新処理を行い(s3)、s1に戻る。s3では、描画制御機能32は、更新前画像データ341と、更新後画像データ342との差分に応じたディスプレイ用画像データ35を生成する。
【0061】
また、描画制御機能32は、s2で上限レベルを超えていると判定すると、更新後のモニタ画像を複数に分割する(s4)。描画制御機能32は、s4で分割した更新後のモニタ画像の分割領域を1つ抽出し(s5)、抽出した分割領域の更新にかかるディスプレイ用画像データ35を生成する(s6)。これにより、ディスプレイ40の画面に表示されているモニタ画像が、s5で抽出した部分領域にかかる画像に更新される。
【0062】
描画制御機能32は、未更新の分割領域の有無を判定し(s7)、未更新の分割領域がなければ、s1に戻る。描画制御機能32は、未更新の分割領域の有ると、ディスプレイ40の画面に表示されているモニタ画像を更新する更新タイミングになるのを待って(s8)、未更新の分割領域の中から、分割領域を1つ抽出し(s9)、s6に戻る。
【0063】
このように、この例では、ディスプレイ40の画面に表示させるモニタ画像を、更新前画像データ341に基づく画像から、更新後画像データ342に基づく画像へ一度に更新するときの処理負荷が大きいときには、複数の更新周期に亘って、ディスプレイ40の画面に表示させるモニタ画像を、更新前画像データ341に基づく画像から、更新後画像データ342に基づく画像へ段階的に更新する。したがって、IPC30は、HMI機能におけるディスプレイ40の画面に表示するモニタ画像の更新によって、リソースの占有率が大きくなるのを抑制できる。すなわち、IPC30は、PLC機能におけるリソースの占有率が低下するのを抑制できる。したがって、PLC機能で制御している制御対象50の動作が不安定になるのを抑制できる。
【0064】
また、
図6、および
図7では、更新後画像データ342に基づく画像を4分割する例を示したが、更新後画像データ342に基づく画像の分割数は、2分割以上であれば、何分割であってもよい。また、
図6、および
図7では、部分領域の形状が長方形である例を示したが、長方形に限らず円、楕円等の種々の形状であってもよい。また、レイアウト画像が複数のレイヤで構成されている場合には、レイヤ単位で分割してもよい。
【0065】
この発明は、前記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、前記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【0066】
1…産業用ネットワークシステム
3A…CPU
3B…メモリ
3C…表示制御部
3D…記憶媒体
3E…入力インタフェース(入力I/F)
30…産業用パーソナルコンピュータ(IPC)
31…HMI制御機能
32…描画制御機能
34…バッファ領域
35…ディスプレイ用画像データ
40…ディスプレイ
50…制御対象
311…更新設定処理機能
312…判断処理機能
313…段階更新処理機能
314…合成処理機能
331…HMIプログラム
332…レイアウト情報
341…更新前画像データ
342…更新後画像データ