JP2009110455A - プログラマブル操作表示器、そのプログラム - Google Patents

プログラマブル操作表示器、そのプログラム Download PDF

Info

Publication number
JP2009110455A
JP2009110455A JP2007284534A JP2007284534A JP2009110455A JP 2009110455 A JP2009110455 A JP 2009110455A JP 2007284534 A JP2007284534 A JP 2007284534A JP 2007284534 A JP2007284534 A JP 2007284534A JP 2009110455 A JP2009110455 A JP 2009110455A
Authority
JP
Japan
Prior art keywords
program
executed
macro
instruction
processing
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
JP2007284534A
Other languages
English (en)
Inventor
Shinya Sato
晋哉 佐藤
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.)
HAKKO ELECTRIC
Hakko Electronics Co Ltd
Original Assignee
HAKKO ELECTRIC
Hakko Electronics Co Ltd
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 HAKKO ELECTRIC, Hakko Electronics Co Ltd filed Critical HAKKO ELECTRIC
Priority to JP2007284534A priority Critical patent/JP2009110455A/ja
Publication of JP2009110455A publication Critical patent/JP2009110455A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Abstract

【課題】ユーザの手間が殆ど掛かることなく、表示更新/入力機能の機能低下を防ぐことができる。
【解決手段】ユーザ等は、定周期プログラム中の1以上の任意の箇所に特殊命令を挿入する作業を行う。この様な定周期プログラムを実行する場合、このプログラムの各命令を順次実行する過程で特殊命令がある毎に、一旦処理を中断し、表示更新処理を実行する。そして、表示更新処理を実行完了したら中断したところから処理を再開する。
【選択図】図3

Description

本発明は、プログラマブル操作表示器に関する。
従来、上記プログラマブル操作表示器は、基本的に、PLC(プログラマブルコントローラ)本体に接続しており、当該PLC本体が制御する各種制御対象機器のデータ(センサによる計測データ等)を、当該PLC本体内のメモリから取得して表示する機能を有している。この様な処理(以下、表示更新処理という)は、例えば図10(a)に示す任意の表示サイクルで繰り返し実行されている。この表示サイクルは、一定ではなく、各表示更新処理時間によって決まる。但し、図では、各表示更新処理に掛かる時間は殆ど同じであるものとして示してある。ある表示更新処理を実行完了したら、直ちに次の表示更新処理実行に移る。
プログラマブル操作表示器の表示画面の一例を図10(b)に示す。この例では、「生産予定」、「生産台数」、「生産残台数」の3種類のデータが表示される。1回の表示更新処理では、この3種類のデータをPLC本体のメモリから読み出して当該表示画面上のこれら3種類のデータ全ての表示内容を更新することになる。各表示更新処理に掛かる時間が例えば100ms(ミリセカンド)ならば、表示内容の更新が100ms毎に行われることになる。この処理時間が短いほど、応答性能が高いと言える。
また、表示更新処理では、ユーザによる任意の入力も受け付ける。
更に、この様な基本的な機能以外にも、例えばLANに複数のプログラマブル操作表示器やパソコン等が接続されたネットワークシステムにおいて、他のプログラマブル操作表示器やパソコン等との通信を行ったり、任意の周辺機器の制御を行ったり、画面データの保存を行う等の、様々な処理を行っている。この様な各種処理(マクロ処理)は、上記表示更新処理とは別のサイクルで定期的に(例えば1.3秒毎に)実行されるものであり、以下、「定周期プログラム処理」というものとする。また、この様な「定周期プログラム処理」をCPU等により実行させるプログラムを、「定周期プログラム」というものとする。
この「定周期プログラム処理」が実行されるときには、1表示サイクルは、図10(c)に示すように「定周期プログラム処理+表示更新処理」となる。特に、近年、上記基本的な機能以外に様々な処理機能を追加していった結果、「定周期プログラム処理」の実行時間が長くなる傾向にある。
例えば、1回の表示更新処理に掛かる時間が上記の通り約100msであるものとし、「定周期プログラム処理」が上記の通り1.3秒毎に実行される設定となっており、仮に1回の「定周期プログラム処理」実行に1秒掛かるとした場合、「定周期プログラム処理」が実行されるときの1表示サイクルは約1.1秒となり、全体としての処理実行状態は図10(d)に示すようになる。図10(d)において、図示の“A”は表示更新処理、図示の“B”は「定周期プログラム処理」の実行を意味する。
図10(d)に示すように、「定周期プログラム処理」Bが表示更新処理Aに比べて長時間実行されることから、その間、画面表示更新処理が保留されるので応答性能が低くなり、またプログラマブル操作表示器の画面タッチ等のレスポンスに欠ける(最悪、スイッチ操作が停止してしまう)という問題があった。
また、例えば、特許文献1に記載の発明は、表示機能と制御機能の両方を具えると共にデータ処理の高速化を図ったプログラマブル表示装置が開示されている。
特開平10−78817号公報
従来、上記の通り、上記定周期プログラム処理実行が、表示/入力処理機能に悪影響を与え、ユーザによる使い勝手が悪くなるという問題があった。
この様な問題を解決する為に、定周期プログラム処理の実行周期を短くすること等が考えられるが、プログラムの複雑化や大容量化に伴い、限界がある。
この為、定周期プログラムを任意の単位で分割して、1回の表示サイクル当たりの定周期プログラム実行時間を短縮させることが考えられる。その為に、従来では、既存の定周期プログラムに条件判断処理を加える作業等が必要であった。例えば、定周期プログラムを3分割する場合には、条件判断処理を含む定周期プログラムは、当該定周期プログラム処理を3分割したそれぞれの処理を仮に、処理A、処理B、処理Cとすると、例えば以下のようになる。
IF COUNT=1
処理A
ELSE IF COUNT=2
処理B
ELSE IF COUNT=3
処理C
ENDIF
尚、上記COUNTとは、各処理実行する毎に+1インクリメントされ定周期プログラム実行完了毎に初期化(‘1’にする)されるカウンタ値であり、これを参照して判断する。
この様に従来では、ユーザが条件判断処理を作成する作業等が必要であり、手間が掛かるものであり、またプログラムが煩雑になるという問題もあった。
本発明の課題は、ユーザの手間が殆ど掛かることなく、定周期プログラムを任意に分割して実行させると共にこの各分割処理の合間に表示更新処理を実行させることができるプログラマブル操作表示器、そのプログラムを提供することである。
本発明のプログラマブル操作表示器は、定周期に実行されるプログラムであって該プログラム中の任意の1以上の箇所に特定の命令が挿入されているマクロプログラムを記憶するマクロプログラム記憶手段と、前記マクロプログラムの実行時以外は表示更新処理を繰り返し実行し、前記マクロプログラムの実行タイミングとなる毎に、該マクロプログラムの各命令を順次実行し、前記特定の命令がある毎に、一旦プログラム実行を中断して前記表示更新処理を実行した後、中断したところからプログラム実行を再開することを繰返すプログラム実行制御手段とを有する。
上記プログラム実行制御手段によって、マクロプログラムは特定の命令に基づいて分割実行されることになる。更に、この各分割処理の間に表示更新処理が実行されることになる。よって、たとえマクロプログラムの処理時間が長い場合であっても、各分割処理の処理時間は比較的短くなり、その都度、表示更新処理が実行されるので、表示更新処理が長時間実行されないようなことはなく且つその実行頻度が上がることになる。
本発明のプログラマブル操作表示器、そのプログラムによれば、ユーザの手間が殆ど掛かることなく、定周期プログラムを任意に分割して実行させると共にこの各分割処理の合間に表示更新処理を実行させることができる。すなわち、定周期プログラムの処理時間が長くても、長時間、表示更新処理が実行されないような事態にはならず、上記従来の問題が生じることはない。また、ユーザの作業は、定周期プログラム中の任意の箇所に特定の命令を挿入するだけで済む。
以下、図面を参照して本発明の実施の形態について説明する。
図1は、本例のプログラマブル操作表示器の構成例である。
図示のプログラマブル操作表示器1は、表示制御回路10と、タッチパネル2及びディスプレイ3を有する。表示制御回路10は、CPU11、ROM12、RAM13、通信コントローラ14、タッチパネルコントローラ15、グラフィックコントローラ16、及びビデオRAM17より成り、これらがバス18に接続されている。
CPU11は表示制御回路10全体を制御する中央処理装置(演算プロセッサ)である。CPU11はROM12に格納されているシステムプログラムに従って所定の演算動作を行う。各種の演算結果はRAM13に適宜格納される。グラフィックコントローラ16は、当該RAM13に格納された演算結果をビデオRAM17上に展開し、このビデオRAM17内への書き込み内容に対応した表示をディスプレイ3上で行う。
タッチパネル2に対する押圧操作による指示は、タッチパネルコントローラ15を介して取り込まれて解析される。これによりタッチパネル2を用いたユーザによる各種手動操作が実現される。また、通信コントローラ14は、不図示のPLC本体等の外部機器とのデータ送受信を制御する。
本例の後述する各種プログラム(管理プログラム、マクロプログラム(上記定周期プログラム等)、モニタデータ表示更新プログラム(上記表示更新処理を実行するプログラム)等)は、ROM12に格納されており、上述した通り、これらプログラムはCPU11によって読み出されて実行される。また、RAM13は、後述する作業領域を有する。
尚、各種プログラムを格納するメモリは、ROM12に限らず、例えばフラッシュメモリ等を用いても良い。
図2に、上記プログラマブル操作表示器のプログラム実行概念図を示す。
図示の実行概念図は、上記定周期プログラム実行時の処理を示すものであり、定周期プログラム実行時以外には図10(a)に示すように表示更新処理を繰り返し実行している。
本手法では、上述した定周期プログラム実行タイミングとなる毎に(上記一例では1.3秒毎)、図2に示すように、マクロ処理とモニタデータ表示更新処理(上記表示更新処理)とを繰り返し実行することになる。マクロ処理は、上記定周期プログラム処理に相当するが、ここでは定周期プログラム処理を分割した各処理(上述した処理A、処理B、処理C等に相当;以下、分割処理というものとする)を意味する。
従って、図2に示す実行概念は、各分割処理を実行する毎に表示更新処理を実行することを繰り返すことを意味する。
尚、図2には示していないが、上記マクロ処理やモニタデータ表示更新処理や、特に説明しない他の処理等の処理実行管理(例えば処理実行スケジュールの管理や割込み制御等
)を行う管理プログラムも、動作している。
尚、モニタデータ表示更新処理には、既に説明した通り、ユーザによる画面(タッチパネル)上での操作指示を受け付ける処理も含まれる。同様に、既に従来等で説明した通り、上記定周期プログラム処理は、プログラマブル操作表示器1に接続される各種外部機器との通信処理や内部演算処理等を行うものである。
尚、本プログラム(定周期プログラム等)は、逐次命令を解読しながら実行するインタープリタ(interpreter)形式のプログラムである。インタープリタとは、CPUが直接解釈できないプログラミング言語のソースコードを、CPUが直接解釈できる機械語に逐次的に変換しながら実行する形式のソフトウェアである。変換を逐次的に行う点が、事前にコンパイラによって全ての機械語変換が行われた実行形式のプログラムと異なる。
従来では、図10(c)に示すように、上述した定周期プログラム実行タイミングとなる毎に、1回の表示サイクルで定周期プログラム処理全体とモニタデータ表示更新処理とを実行した。既に述べた通り、1表示サイクルの期間は一定ではなく変動するものであり、マクロ処理(定周期プログラム処理)が実行される場合、1表示サイクルの期間(実行時間)は、「マクロ処理」の処理負荷と「モニタデータ表示更新処理」の処理負荷とに応じて決まることになる。特に、「マクロ処理」において多様な処理が組み込まれていると、1表示サイクル内で「マクロ処理」全体を実行する場合、その処理時間が長くなるので、上述した従来の問題が生じることになる。
この問題に対して、本手法では、定周期プログラム実行タイミングとなる毎に、複数の表示サイクルにわたって定周期プログラムを実行することになる。すなわち、図2に示す通り、1回の表示サイクルで1つの分割処理と表示更新処理とを実行し、これを複数の表示サイクルにわたって実行することになる。例えば、「定周期プログラム」を3分割した場合には、上記1表示サイクル毎に1つの分割プログラム(分割処理)を実行することになり、3回の表示サイクルで1つの「定周期プログラム処理」が実行完了することになる。
そして、本手法では、定周期プログラム処理を複数に分割して実行させたい場合、ユーザは、予め決められている特殊命令(後述する分割命令等)を、上記マクロプログラム中の所望の箇所に挿入する作業を行うだけで済む。特殊命令は、予め任意に決められている特定の命令である。つまり、既存のどの命令でもない新しい命令であり、プログラマ等により任意に決められたものである。
尚、「定周期プログラム=マクロプログラム」と考えてよい。定周期プログラムと記す場合もあればマクロプログラムと記す場合もあるが、同じ意味である。
例えば、図3(a)に示すマクロプログラム(定周期プログラム)を、図3(b)に示すプログラムA、B,Cに3分割したい場合、図3(b)に示すようにプログラムAとBとの間、及びプログラムBとCとの間に、それぞれ特殊命令を挿入すればよい。特殊命令は、上記の通り既存の命令ではない新たな命令であれば何でもよいが、この特殊命令を上記インタープリタで解釈することで後述するステップS20、S21,S17の処理が行われるようにしておく。
図4に、例えば図3(b)に示すように特殊命令が挿入されたマクロプログラムを実行した場合の処理フローチャート図を示す。但し、図4に示す処理において、マクロプログラム実行による処理はステップS13〜S17、S20、S21の処理であり、ステップS11、S12、S18、S19の処理は、上記管理プログラムが実行する。
図4の処理において、まず、ブレイクマクロ実行中か否かを判定する(ステップS11)。この判定は、マクロプログラムを最後まで実行している状態であるか、あるいは途中まで実行して中断している状態であるか(例えば図3(b)に示すプログラムAまで実行、あるいはプログラムBまで実行している状態)を判定するものであり、最後まで実行している状態であれば、ステップS11の判定はNOとなる。
尚、ステップS11の判定は、例えばブレイクマクロ実行中か否かを示す不図示のフラグを参照することで行い、このフラグは後述するステップS21又はS16の処理でON/OFFされる。フラグONであればステップS11の判定はYESとなる。
ブレイクマクロ実行中である場合には(ステップS11,YES)、前回の表示サイクルでの図4の処理における後述するステップS20の処理により記憶していた「次の命令の実行位置」を参照して、当該「次の命令の実行位置」からマクロプログラムの実行を開始させる(ステップS12)。
これによりマクロプログラムの各命令(マクロ命令)を順次実行するが(ステップS14)、このマクロ命令が上記特殊命令であった場合には(ステップS13、YES)、この特殊命令の次のマクロ命令の位置を上記「次の命令の実行位置」として記憶し(ステップS20)、更に上記ブレイクマクロ実行中か否かを示すフラグをONする(ステップS21)。そして、当該マクロ処理から抜けて(ステップS17)、図2に示す「モニタデータ表示更新処理」を実行し、この表示更新処理を実行完了したら、次の表示サイクルに移り、再び図4の処理を開始する。
一方、全マクロ命令を実行完了した場合には(ステップS15,YES)、すなわち上記マクロプログラムの最後のマクロ命令を実行した場合には、上記ブレイクマクロ実行中か否かを示すフラグをOFFして(ステップS16)、上記ステップS17の処理を行う。勿論、この場合も、上記と同様、図2に示す「モニタデータ表示更新処理」を実行し、この処理を実行完了したら、再び図4の処理を開始することになる。
そして、上記ブレイクマクロ実行中か否かを示すフラグがOFFの状態で図4の処理を実行開始した場合には、上記ステップS11の判定はNOになることから、ステップS18の処理に移行する。すなわち、予め決められている規定時間経過したか否かを判定し、規定時間経過していない場合には(ステップS18、NO)、当該マクロ処理から抜けて(ステップS17)、上記「モニタデータ表示更新処理」を実行し、この処理を実行完了したら、再び図4の処理を開始することになる。
尚、上記規定時間とは、マクロプログラム(定周期プログラム)の実行周期であり、例えば上述した一例では“1.3秒”である。
これにより、フラグOFFの場合には、規定時間経過するまでの間、マクロ処理は実行せずに、「モニタデータ表示更新処理」を例えば図10(a)に示す例のように繰り返し実行し続けることになる。そして、規定時間経過したら(ステップS18,YES)、再び上記マクロプログラムを最初のマクロ命令から実行させることになる(ステップS19)。
上記図3(b)に示す例のように特殊命令が挿入されたマクロプログラム(定周期プログラム)を、図4の処理により実行した場合の処理概念図を、図5(b)に示す。尚、比較の為、図5(a)に、従来のように1表示サイクルでマクロプログラム全てを実行する場合の処理概念図を示す。
図5(a)に示すように(そして従来で説明した通り)、1表示サイクルでマクロプロ
グラム全体を実行すると、比較的長時間(上記の例では1秒)定周期プログラムが実行されている状態(換言すれば表示更新処理が実行されない状態)が続くことになる。
これに対して、本手法では、図5(b)に示すように、定周期プログラムを複数の表示サイクルに渡って分割実行するので、1表示サイクル毎の定周期プログラムの処理時間が短くて済み、各分割処理実行後に表示更新処理が実行されるので、従来のような問題は生じない。そして、上記の通り、ユーザは、特殊命令をマクロプログラム中の任意の箇所に挿入する作業を行うだけで、この様な定周期プログラムの分割実行を行わせることができる。よって、ユーザの作業負担が軽減できる。
尚、図5(b)に示す定周期プログラム処理A、定周期プログラム処理B、定周期プログラム処理Cは、定周期プログラムを3分割した場合の各分割処理である。
以下、上述した処理についてより具体的に説明する。
図6(a)に、図3(b)のようにマクロプログラムを3分割した場合のROM12におけるプログラム格納状態を示す。
ROM12内には任意のプログラム領域20が設けられており、プログラム領域20は、管理プログラム格納領域21、マクロプログラム格納領域22、及びモニタデータ表示更新プログラム格納領域23より成る。
管理プログラム格納領域21とモニタデータ表示更新プログラム格納領域23には、それぞれ上記管理プログラムと上記「モニタデータ表示更新処理」のプログラムとが格納される。
マクロプログラム格納領域22には、上記マクロプログラム(定周期プログラム)が格納される。そして、このマクロプログラム中には、プログラム中の任意の箇所に上記特殊命令である分割命令が挿入されている。つまり、マクロプログラムが分割命令によって分割されたものとなっている。そして、図示の例では、上記3つの分割処理(上述した処理A、処理B、処理C)に分ける例に対応して、2箇所に分割命令が挿入されることで、マクロプログラムが、図示の分割プログラムA、分割プログラムB、分割プログラムCに分割されるものとする。
尚、マクロプログラム中の最後のマクロ命令は、当該マクロプログラムの終了を示すEND命令となっている。
図6(b)に、RAM13の作業領域に格納される各種データの一例を示す。
図示のように、作業領域30には、分割命令実行情報31、マクロ命令実行位置情報32、次命令ポインタ情報33、及びタイマ値退避情報34の各情報格納領域がある。
分割命令実行情報31は、マクロプログラム内に挿入された分割命令が実行されたときにセットされ、END命令が実行されたときにリセットされる情報(フラグ等)である。すなわち、分割命令実行情報31は、分割命令が実行されたか否かを示す状態情報、換言すればマクロプログラムを途中まで実行している(中断している)状態か否かを示す状態情報として扱われる情報である。
マクロ命令実行位置情報32は、上述した各分割プログラム(上記一例では分割プログラムA、分割プログラムB、分割プログラムC)を順次実行する為に、今回の表示サイクルの処理で実行すべき分割プログラムの先頭アドレスを示す情報である。例えば、ある表示サイクルで処理Aが実行された後、次の表示サイクルで処理を実行する際にマクロ命令実行位置情報32を参照すると、マクロ命令実行位置情報32には分割プログラムBの先頭アドレスを示すポインタ情報が格納されており、これによって処理Bが実行されるよう
になっている。
次命令ポインタ情報33の記憶領域は、マクロプログラムの各マクロ命令を順次実行中に分割命令があったときに、この分割命令の次の命令の格納アドレスを退避させる為の記憶領域である。すなわち、上記分割命令が格納されている記憶領域の先頭アドレス値に、当該分割命令が占有する記憶領域分を足した値を、次の命令のアドレス値として、次命令ポインタ情報33の記憶領域に格納する。
尚、詳しくは後に図7を参照して説明するが、上述した例では、処理Aを実行する表示サイクルにおいて最後に分割プログラムBの先頭アドレスを次命令ポインタ情報33に格納しておき、次の表示サイクルにおいて最初の方で次命令ポインタ情報33をマクロ命令実行位置情報32にセットすることになる。但し、この様な例に限らないので、例えば次命令ポインタ情報33は必要無いものとし、処理Aの最後で上記分割プログラムBの先頭アドレスをマクロ命令実行位置情報32に記憶させるようにしてもよい。
タイマ値退避情報34には、後述する図7のステップS33の処理、すなわち予め決められている規定時間(定周期プログラムの実行周期;本例では上記の通り1.3秒としている)経過したか否かを判定する際に必要となる情報である。詳しくは後に図7のステップS33の処理の説明の際に説明する。
尚、ユーザ等に任意の定周期プログラムに対して任意の箇所に上記特定の命令(特殊命令(分割命令))を挿入する操作を行わせる装置は、例えば既存のプログラム開発(作成)支援装置等である。よく知られているように、この様なプログラム開発支援装置は、例えばパソコン等の汎用コンピュータに、PLC本体(コントローラ本体)が実行する制御プログラム等を、ユーザに任意に作成/編集させる為のエディタ機能等が備えられたものである。このエディタ機能として、プログラマブル操作表示器のプログラムをユーザに作成/編集させるものも存在する。
プログラム開発支援装置のハードウェア構成は、一般的なパソコン等の構成であり特に図示しないが、CPUやハードディスク等の記憶装置、キーボード/マウス等の入力装置、ディスプレイ等から成り、上記エディタ機能は記憶装置に記憶されている所定のアプリケーションプログラムをCPUが読出し・実行することにより実現される。
例えばこのエディタ機能によりプログラム開発支援装置のディスプレイ上に不図示のプログラム作成/編集画面が表示される。この画面には例えば図3(a)に示すような定周期プログラムが表示され、ユーザ等は、キーボード/マウス等の入力装置を操作して、このプログラム上の任意の箇所に、例えば図3(b)に示すように特殊命令(分割命令)を挿入することができる。
そして、この様にして編集された定周期プログラムをROMのマクロプログラム格納領域22に格納し、このROMをプログラマブル操作表示器1内に上記ROM12として取り付ける。あるいは、プログラム格納用メモリとしてROMではなくフラッシュメモリ等を用いる場合には、上記編集された定周期プログラムを所定の通信線等を介して、上記プログラム開発支援装置からプログラマブル操作表示器1へダウンロードして、フラッシュメモリのマクロプログラム格納領域22に格納させる。
また、上記定周期プログラムを編集する装置は、上記プログラム開発支援装置に限らず、上記エディタ機能を備え且つディスプレイや入力装置を備える装置であればなんでもよい。従って、プログラマブル操作表示器1に上記エディタ機能を備えさせ、定周期プログラムの編集(分割命令の挿入/削除等)が可能となる構成とすることもできる。
図7に、例えば図6(a)に示すように特殊命令(分割命令)が挿入されたマクロプログラムを実行した場合の処理フローチャート図を示す。
尚、図7の処理は基本的に図4の処理と略同様である。図7の処理は例えば図6(b)に示すような作業領域30の各種情報を用いた処理(すなわち、より具体的・詳細な処理)を示すものである。
図7に示す処理は、上記管理プログラムが処理全体の管理制御を行うと共に、図示のステップS31〜S34の処理を実行する。このステップS31〜S34の処理は、図4におけるステップS11,S12,S18,S19の処理に相当する。
まず、ステップS31の処理では、分割命令実行情報31を参照して上記フラグ等がセットされているか否かを判定する(ステップS31)。そして、フラグセットされていない場合には(ステップS31,NO)、まず、予め決められている規定時間(上記の例では1.3秒)経過したか否かを判定する(ステップS33)。
ここで、上記の通り、フラグ等がセットされた状態とは、マクロプログラムを途中まで実行して中断している(分割命令のところで中断している)状態であることを意味する。従って、分割命令実行情報31がフラグセットされていない場合には(ステップS31,NO)、現在は、マクロプログラムが実行終了してから次にマクロプログラムを実行するタイミングとなるまでの間であることになるので、次にマクロプログラムを実行するタイミングとなるまで、すなわち予め決められている規定時間(上記の例では1.3秒)経過するまでは、ステップS33の判定(規定時間(1.3秒)経過したか?)はNOとなり、ステップS41のモニタデータ表示更新処理が実行されることになる。
モニタデータ表示更新処理後に再びステップS33の判定がNOとなると再びモニタデータ表示更新処理が実行されることになる。すなわち、図10(d)において定周期プログラムBを実行完了後に、次に定周期プログラムBを実行するタイミングとなるまで(図示の1.3秒経過するまで)表示更新処理Aを繰り返し実行する状態を示したが、これと同様の状態になる。
尚、ステップS33の処理は、具体的には以下の一例のような処理を実行する。
すなわち、ステップS33の処理は、不図示のタイマの値と、上記タイマ値退避情報34とを参照することで行う。タイマ値退避情報34は前回にステップS33の判定がYESとなったときのタイマ値が記憶されたものである(初期値は0)。よって、現在のタイマ値とタイマ値退避情報34との差分を計算することで、規定時間(1.3秒)経過したか否かを判定できる。
そして、規定時間(1.3秒)経過した場合には(ステップS33,YES)、マクロプログラムの最初から処理実行開始する。すなわち、予め登録されているマクロプログラム格納領域22の先頭アドレス(=分割プログラムAの先頭アドレス)を、マクロ命令実行位置情報32にセットする(ステップS34)。つまり、ステップS34の処理は、マクロプログラムの実行位置を初期化するための処理である。そして、マクロプログラム処理を開始させる。
一方、分割命令実行情報31がフラグセットされている場合には(ステップS31,YES)、既に説明してあるように、次命令ポインタ情報33をマクロ命令実行位置情報32にセットする(ステップS32)。すなわち、ステップS31がYESになる場合には、前回の処理でマクロプログラムを途中まで実行して中断していることになり、この中断したところの分割命令の次のマクロ命令の格納アドレスが、次命令ポインタ情報33とし
て記憶されているので、この格納アドレスをマクロ命令実行位置情報32にセットする。そして、マクロプログラム処理を開始させる。
マクロプログラム処理では、マクロ命令実行位置情報32が示すアドレスのマクロ命令から順に各マクロ命令を実行する(ステップS36)。そして、1命令実行する毎に、実行するマクロ命令が分割命令であるか否か(ステップS35)あるいはEND命令であるか否か(ステップS37)を判定する。実行するマクロ命令が分割命令、END命令の何れでもない場合には、単にそのマクロ命令の処理を実行することになる。
実行するマクロ命令が分割命令である場合には(ステップS35,YES)、ステップS39、S40の処理を実行して、今回の表示サイクルにおけるマクロプログラム(定周期プログラム)の処理は終了(中断)して、今回の表示サイクルにおけるモニタデータ表示更新処理を実行したら(ステップS41)、ステップS31の処理に戻り、次の表示サイクルの処理に移ることになる。
ステップS39,S40の処理は、上記ステップS20,S21に相当する処理である。ステップS39では、上記ステップS35の分割命令の次のマクロ命令の格納アドレス値を、次命令ポインタ情報33に記憶する。そして、ステップS40では、分割命令実行情報31をフラグセットする。
また、実行するマクロ命令がEND命令である場合には(ステップS37,YES)、マクロプログラムの実行が完了したこと、換言すれば上記分割プログラムA,B,C全てを実行したことになるので、分割命令実行情報31をフラグ・リセットする(ステップS38)。そして、モニタデータ表示更新処理を実行し(ステップS41)、実行完了したら、ステップS31の処理に戻り、次の表示サイクルの処理に移ることになる。そして、上述した通り、マクロプログラムの次の実行タイミングとなるまでの間、表示更新処理を繰返すことになる。
以上説明した図7の処理により、定周期毎(1.3秒等)にマクロプログラム(定周期プログラム)を実行するときに、マクロプログラムの各命令を順次実行する途中で分割命令がある毎に、マクロプログラムの処理を中断して当該処理を抜けて表示更新処理を実行する。すなわち、ある表示サイクルでマクロプログラムの一部(1つの分割プログラム)と表示更新処理とを実行し、次の表示サイクルで中断したマクロプログラムの処理の続き(但し、次の分割命令またはEND命令まで;すなわち1つの分割プログラム)と表示更新処理とを実行する、ということを、END命令となるまで繰り返し実行する。
すなわち、マクロプログラムを分割した各分割処理を各表示サイクル毎に1つずつ実行すると共に、各表示サイクル毎に表示更新処理も実行することになる。
従って、各表示サイクルにおける定周期プログラムの処理時間が短縮されると共に表示更新処理の実行頻度を上げることが可能となる。すなわち、定周期プログラム処理の実行期間中であっても、表示更新処理が長時間実行されないようなことはないので、上記定周期プログラム処理実行期間中に表示/入力処理機能が低下するようなことはなく、ユーザによる使い勝手が悪くなるということはなくなる。
そして、この様に定周期プログラムを複数の表示サイクルに渡って分割実行させる為にユーザが行う作業は、単に予め決められている特定の命令(分割命令)を、定周期プログラム中の所望の箇所に挿入するだけなので、手間が掛かることはなく、また特にプログラムの知識も必要とされないという効果が得られる。
更に、分割数や各分割処理の範囲を自由に決定/変更できるので、ユーザ自身で装置の
実行状態の調整を簡単に行うことが可能となる。図6等に示す例では、各分割処理の範囲はほぼ同じである、すなわち定周期プログラムをほぼ等分割しているが、勿論このようにする必要はなく、例えば処理Aの処理時間を処理B,Cの処理時間よりも長くする等、ユーザが自由に設定できる。
図8に、本手法による定周期プログラムの分割実行の概念図を示す。
まず、図8(a)には、分割命令を挿入する前の定周期プログラムの実行概念を示すと共に、この定周期プログラム中の任意の箇所(ここでは2箇所)に分割命令を挿入するイメージを示す。分割命令を挿入する前では、図示の通り、1表示サイクルで定周期プログラム全てが実行されるので、処理時間が長く、その後に表示更新処理が実行されるが、比較的長時間、表示更新処理が実行できない状態が続くことになる。この為、図示の通り2箇所に分割命令を挿入することで、定周期プログラムを処理A、処理B、処理Cの3つに分けると、図8(b)に示すように処理実行されることになる。
すなわち、図8(b)に示すように、まず最初の表示サイクル1で処理Aが実行されると共に表示更新処理が実行され、次の表示サイクル2で処理Bが実行されると共に表示更新処理が実行され、更に次の表示サイクル3で処理Cが実行されると共に表示更新処理が実行されることになる。
更に詳しくは、まず最初は処理Aを実行することになり、分割命令があるところで処理Aを終了するときに、次の処理(処理B)に受け渡す情報を残しておく。この情報は、上記分割命令実行情報31、次命令ポインタ情報33等である。処理Bは、処理Aが残した情報を参照することで、処理Bが格納された領域の先頭アドレスの命令から実行開始する。そして、処理Aの場合と同様に、処理Bを終了するときには次の処理(処理C)に受け渡す情報を残しておく。これより、処理Cも処理Bの場合と同様にして、処理Bが残した情報を参照することで、処理Cが格納された領域の先頭アドレスの命令から実行開始する。
そして、処理Cの実行の際には最後にEND命令を実行することになるので、これにより分割された定周期プログラム(処理A、B,C)の全てを実行したことになり、分割命令実行情報31をフラグ・リセットして、処理Cを抜ける。
当然、各処理A,B,C実行後に、表示更新処理を実行する。
このように、各表示サイクルにおける定周期プログラムの処理時間は、図8(a)の場合に比べて非常に短くなり、表示更新処理は各表示サイクルで毎回実行されるので、定周期プログラム実行期間中であっても画面タッチ等のレスポンスや画面更新処理機能が極端に低下するようなことはなくなる(画面表示更新処理が保留されたり、画面タッチ等のレスポンスに欠けるという問題がなくなる)。
図9は、本手法におけるプログラム全体の動きを示す状態遷移図である。
図示のモニタデータ更新状態1とモニタデータ更新状態2は、何れも表示更新処理を実行している状態を意味するが、状態1と状態2とに区別しているのは、定周期プログラム実行期間中に実行される表示更新処理を状態2、それ以外の場合を状態1としているからである。また、図示のマクロプログラム実行状態は、マクロプログラム(各分割プログラム)を実行している状態である。
通常はモニタデータ更新状態1に遷移しており、画面の更新処理に専念している(図10(a)のように表示更新処理を繰り返し実行している)。そして、定期的に(ここでは1.3秒毎に)マクロプログラム実行状態へ遷移する。
マクロプログラム実行状態において分割命令がある毎に、つまり1つの分割プログラムを実行完了する毎に(但し、最後の分割プログラムは除く)、マクロプログラムの実行を一旦中断して、モニタデータ更新状態2へ遷移する。モニタデータ更新状態2では、既に説明した通り、表示更新処理を一度のみ行い、画面データ更新完了したら、再びマクロプログラム実行状態へ遷移する。そして、上記中断されたところの分割命令の次の命令から、マクロプログラム実行を再開する。
この様にすることで、マクロプログラム全体の処理を分割した各分割処理が、複数の表示サイクルそれぞれで実行されるので、その処理負荷は時間的に分散される。この様に分散されたマクロプログラム処理(分割処理)の合間に、モニタデータ表示更新処理を実行するようにしたので、長時間表示更新処理が実行されないようなことはなく、表示更新処理が保留されたり、画面のレスポンスを損なうことがなくなる。
尚、マクロプログラム実行状態においてEND命令を実行したら、すなわち最後の分割プログラムを実行完了したら、モニタデータ更新状態1に遷移し、再び画面の更新処理に専念する。
本例のプログラマブル操作表示器の構成例である。 本例のプログラマブル操作表示器のプログラム実行概念図である。 (a)は元々の定周期プログラムの一例、(b)はこれに特殊命令を挿入した例である。 本例のプログラム実行の処理フローチャート図である。 (a)は従来の処理概念図、(b)は図4の処理による処理概念図である。 (a)はプログラム領域、(b)は作業領域のプログラム/データ格納状態を示す図である。 本例のプログラム実行の詳細な処理フローチャート図である。 (a)は分割命令挿入前の処理概念図、(b)は分割命令挿入後の処理概念図である。 本手法におけるプログラム全体の動きを示す状態遷移図である。 (a)〜(d)は、従来の各表示サイクルにおける処理実行の様子を示す図である。
符号の説明
1 プログラマブル操作表示器
2 タッチパネル
3 ディスプレイ
10 表示制御回路
11 CPU
12 ROM
13 RAM
14 通信コントローラ
15 タッチパネルコントローラ
16 グラフィックコントローラ
17 ビデオRAM
18 バス
20 プログラム領域
21 管理プログラム格納領域
22 マクロプログラム格納領域
23 モニタデータ表示更新プログラム格納領域
30 作業領域
31 分割命令実行情報
32 マクロ命令実行位置情報
33 次命令ポインタ情報
34 タイマ値退避情報

Claims (3)

  1. 定周期に実行されるプログラムであって該プログラム中の任意の1以上の箇所に特定の命令が挿入されているマクロプログラムを記憶するマクロプログラム記憶手段と、
    前記マクロプログラムの実行時以外は表示更新処理を繰り返し実行し、前記マクロプログラムの実行タイミングとなる毎に、該マクロプログラムの各命令を順次実行し、前記特定の命令がある毎に、一旦プログラム実行を中断して前記表示更新処理を実行した後、中断したところからプログラム実行を再開することを繰返すプログラム実行制御手段と、
    を有することを特徴とするプログラマブル操作表示器。
  2. 前記プログラム実行制御手段は、前記プログラム実行を中断する際に、前記特定の命令の次の命令の格納位置を示すポインタ情報を記憶すると共に、プログラム実行を中断していることを示す情報を記憶することを特徴とする請求項1記載のプログラマブル操作表示器。
  3. コンピュータを、
    定周期に実行されるプログラムであって該プログラム中の任意の1以上の箇所に特定の命令が挿入されているマクロプログラムを記憶するマクロプログラム記憶手段と、
    上記マクロプログラムの実行時以外は表示更新処理を繰り返し実行し、上記マクロプログラムの実行タイミングとなる毎に、前記マクロプログラムの各命令を順次実行し、前記特定の命令がある毎に、一旦プログラム実行を中断して前記表示更新処理を実行した後、中断したところからプログラム実行を再開することを繰返すプログラム実行制御手段と、
    として機能させるためのプログラム。
JP2007284534A 2007-10-31 2007-10-31 プログラマブル操作表示器、そのプログラム Pending JP2009110455A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007284534A JP2009110455A (ja) 2007-10-31 2007-10-31 プログラマブル操作表示器、そのプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007284534A JP2009110455A (ja) 2007-10-31 2007-10-31 プログラマブル操作表示器、そのプログラム

Publications (1)

Publication Number Publication Date
JP2009110455A true JP2009110455A (ja) 2009-05-21

Family

ID=40778846

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007284534A Pending JP2009110455A (ja) 2007-10-31 2007-10-31 プログラマブル操作表示器、そのプログラム

Country Status (1)

Country Link
JP (1) JP2009110455A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012027831A (ja) * 2010-07-27 2012-02-09 Yokogawa Electric Corp シーケンス制御装置
JP7124621B2 (ja) 2017-10-11 2022-08-24 オムロン株式会社 情報処理装置、画像表示方法、および画像表示プログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000172530A (ja) * 1998-12-08 2000-06-23 Nec Corp リアルタイム処理ソフトウェアの動作状態データの収集/表示装置、及び方法
JP2003131710A (ja) * 2001-10-26 2003-05-09 Digital Electronics Corp プログラマブル表示器
JP2006163552A (ja) * 2004-12-03 2006-06-22 Sony Computer Entertainment Inc マルチプロセッサシステムとそのシステムにおけるプログラム実行方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000172530A (ja) * 1998-12-08 2000-06-23 Nec Corp リアルタイム処理ソフトウェアの動作状態データの収集/表示装置、及び方法
JP2003131710A (ja) * 2001-10-26 2003-05-09 Digital Electronics Corp プログラマブル表示器
JP2006163552A (ja) * 2004-12-03 2006-06-22 Sony Computer Entertainment Inc マルチプロセッサシステムとそのシステムにおけるプログラム実行方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012027831A (ja) * 2010-07-27 2012-02-09 Yokogawa Electric Corp シーケンス制御装置
CN102375420A (zh) * 2010-07-27 2012-03-14 横河电机株式会社 顺序控制器
US9442761B2 (en) 2010-07-27 2016-09-13 Yokogawa Electric Corporation Sequence controller
JP7124621B2 (ja) 2017-10-11 2022-08-24 オムロン株式会社 情報処理装置、画像表示方法、および画像表示プログラム

Similar Documents

Publication Publication Date Title
JP4770664B2 (ja) マイクロプロセッサおよびそれを用いたマイクロコンピュータ
JP6006399B2 (ja) プログラマブル表示器、そのプログラム
US11768668B2 (en) Methods, apparatuses and computer program products for improving productivity for building applications
JP2006178646A (ja) 情報処理装置、情報処理方法、半導体装置、コンピュータプログラム
JP2009110455A (ja) プログラマブル操作表示器、そのプログラム
JP2001265412A (ja) プログラマブルコントローラ
JP5542643B2 (ja) シミュレーション装置及びシミュレーションプログラム
JP2003296123A (ja) 電力制御情報を付与する命令変換装置及び命令変換方法、命令変換を実現するプログラム及び回路、変換された命令を実行するマイクロプロセッサ
JP2006059340A (ja) 実時間処理ソフトウェア制御装置及び方法
JP2009140130A (ja) データ処理装置及びデータ処理装置の制御方法
JP5552042B2 (ja) プログラム解析の方法、システムおよびプログラム
JP3986670B2 (ja) スクリーンセーバ制御装置及びその装置での処理をコンピュータにて行わせるためのプログラムを格納した記憶媒体
JP2000020157A (ja) ハイバネーション処理機能を有するホスト連動処理装置
CN113760364B (zh) 逻辑器件的控制器
CN112286684B (zh) 一种内存使用量控制方法、装置、设备及介质
CN113448579B (zh) 一种在可视化界面中实现边动效的方法及装置
JPH04275603A (ja) プログラマブル・コントローラ
JP6591116B1 (ja) プログラマブルロジックコントローラのcpuユニット、プログラマブルロジックコントローラ、方法、及びコンピュータ
JP2006092441A (ja) プログラマブルコントローラ
JP2007241728A (ja) コントローラ支援装置およびプログラマブルコントローラ
CN114237839A (zh) 加速游戏运行的方法、装置及计算机可读存储介质
JP2009099068A (ja) モーションコントローラおよびモーションプログラム有効軸判別方法
JPH09244717A (ja) 制御装置
JP5028644B2 (ja) 電子式計算機および計算機制御プログラム
JP2006048090A (ja) データ処理方法、プログラムおよびコンピュータ

Legal Events

Date Code Title Description
A625 Written request for application examination (by other person)

Free format text: JAPANESE INTERMEDIATE CODE: A625

Effective date: 20100714

A977 Report on retrieval

Effective date: 20110921

Free format text: JAPANESE INTERMEDIATE CODE: A971007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110927

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120306