JP4192380B2 - Plcシミュレータ装置及びシミュレーションするためのプログラムとこれが記録された記録媒体 - Google Patents
Plcシミュレータ装置及びシミュレーションするためのプログラムとこれが記録された記録媒体 Download PDFInfo
- Publication number
- JP4192380B2 JP4192380B2 JP2000015550A JP2000015550A JP4192380B2 JP 4192380 B2 JP4192380 B2 JP 4192380B2 JP 2000015550 A JP2000015550 A JP 2000015550A JP 2000015550 A JP2000015550 A JP 2000015550A JP 4192380 B2 JP4192380 B2 JP 4192380B2
- Authority
- JP
- Japan
- Prior art keywords
- task
- execution
- interrupt
- instruction
- program
- 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.)
- Expired - Lifetime
Links
Images
Description
【発明の属する技術分野】
この発明はタスクから構成されるPLCプログラムのシミュレーションを行なうPLCシミュレータ装置及びシミュレーションするためのプログラムが記録された記録媒体に関し、詳しくは、PLCプログラムを構成するタスクのうち割込みタスクのシミュレーションを可能にしたPLCシミュレータ装置及びシミュレーションするためのプログラムが記録された記録媒体に関する。
【0002】
【従来の技術】
従来、PLC(プログラマブルロジックコントローラ)のプログラムをデバッグする場合、例えばパソコン上でプログラムを仮想的に1命令ごと実行させることによってプログラムのシミュレーションを行ない、プログラムのデバッグを行なっていた。
【0003】
ところで、従来、PLCのプログラムは1つの連続したプログラムとして構成されていたが、近年、1つの連続したプログラムをタスクという複数のプログラムに分割してPLCのプログラムを構成する方式が普及してきている。
【0004】
図6はタスクでプログラムを構成する場合の説明図であるが、従来は同図(a)に示す如く、1つの連続したプログラムでPLCプログラム(ユーザプログラム)を構成していたが、タスクを利用したプログラムでは、従来の1つの連続したプログラムを、同図(b)に示す如く、複数のタスク(同図ではタスク1,2,3)に分割してプログラムを構成する。各タスクに割り付けたプログラムは、従来と同じく最後にEND命令をもった1つのプログラムである。
【0005】
タスクの特徴は、その実行及び非実行(「待機」と呼ぶ)を、他のタスクからの「タスク制御命令」によって任意に制御できることである。図6(b)では、タスク1とタスク3が実行状態で、タスク2は非実行(待機)とされている。
【0006】
従って、いくつかのプログラム部品をタスクとして組み込んでおき(プログラムのモジュール化)、品種や工程などに応じて、あるプログラム(タスク)だけを実行することができる(プログラムの段取り替え)。
【0007】
また、必要なときに、必要なプログラムのみを実行させることができるため、性能(サイクルタイム)向上にも貢献する。
【0008】
また、プログラムのモジュール化が可能なので、デバッグもタスクごとのデバッグが行なえる。
【0009】
なお、いったん実行とされたタスクは、次のサイクル以降でも実行される。また、いったん待機とされたタスクは、他のタスクから実行に戻されない限り、次のサイクル以降でも待機のままである。
【0010】
従来のプログラムを実行する場合とタスクを実行する場合の差異を図7を参照しながら模式的に説明すると、従来は、図7(a)に示す如く、巻物50をはじめから読んでいくイメージなのに対して、タスクは、図7(b)に示す如く、カードを個々に読んでいくイメージである。
【0011】
すでに述べたように、タスクの場合、各カードは互いに実行、待機を指示でき、待機とされたカードは読み飛ばされる。実行、待機の指示はタスク制御命令にて行なう。図7(b)の場合、タスク1からのタスク制御命令でタスク2を実行可能状態(活性化)とし、タスク3を待機(非活性化)としている。
【0012】
【発明が解決しようとする課題】
ところで、タスクにはサイクル実行タスクと割込みタスクがある。
【0013】
サイクル実行タスクは、1サイクルに1回、タスクの状態が「実行可能状態」なら実行されるタスクである。
【0014】
また、割込みタスクは割込み要因が発生すると、サイクル実行タスク実行中でも割り込んで実行されるタスクである。割込みタスクには次の4種類ある。
(1)電断割込みタスク:電源断時に実行
(2)定時割込みタスク:一定時間間隔で実行
(3)I/O割込みタスク:割込み入力ユニットの接点立ち上がりで実行
(4)外部割込みタスク:外部の高機能ユニット等から要求があったとき実行
【0015】
ここで、このようなタスクより構成されたプログラムをデバッグのためシミュレーションしようとする場合、以下の問題点があった。
【0016】
(1)サイクル実行タスクはシミュレーションできるのでデバッグが行なえるが、割込みタスクは実機と接続されていないのでシミュレーションできず、デバッグが行なえない。
【0017】
そこで、従来はPLCシステムを構築後、割込み要因を発生させるデバッグ用装置を取り付け、その装置を手動により操作することで行なっていた。
【0018】
しかし、このとき、不具合が発生した場合には、すでにできあがったプログラムの再度の検証が必要となり、後処理が面倒であるという問題点があった。また、別途デバッグ用装置が必要になり、コスト高になるという問題点があった。
【0019】
(2)また、従来は、タスクの内部状態の変更、すなわち、実行可能状態、待機の変更は、実際にPLCシステムを構築後、PLCに接続されたプログラミングコンソールやパソコン上のアプリケーションを通じて、あるいは上記の如き他のタスクからのタスク制御命令の実行を通じてのみ変更可能であった。
【0020】
従って、タスクの内部状態を変更するデバッグ作業はシステム構築後の工程で行なわれることになり、同じく不具合発生時の後処理が面倒であるという問題点があった。
【0021】
(3)また、タスクでプログラムを構成する場合でも、なるべくサイクルタイムを短くしなければならないが、そのための特別の構成がなく、サイクルタイムの短縮化が困難であるという問題点があった。
【0022】
そこで、本発明は、割込みタスクのシミュレーションを実機と接続することなく行なえ、また、タスクの実行可能状態及び待機の内部状態の変更及びサイクルタイムの短縮化をシミュレーションで行なえるPLCシミュレータ装置及びシミュレーションするためのプログラムが記録された記録媒体を提供することを目的とする。
【0023】
【課題を解決するための手段】
本発明に係るPLCシミュレータ装置は、サイクル実行タスク及び割込みタスク等の複数のタスクで構成されるユーザプログラムを繰り返し実行するPLCシミュレータ装置において、前記PLCシミュレータ装置は、デバッガとラダー実行エンジンとからなり、前記デバッガは、前記ユーザプログラムを1命令ずつ実行するように指示する機能、前記サイクル実行タスクを表示するとともに前記割込みタスクをクリックで指定可能に表示するメッセージウィンドウ、このメッセージウィンドウに表示されたタスク中のうちいずれの割込みタスクが指定されたかを判定する機能、及び、その指定された割込みタスクの起動を前記ラダー実行エンジンに指示する機能を有し、前記ラダー実行エンジンは、前記デバッガからの1命令ずつの実行指示に基づき前記ユーザプログラムを1命令ずつ実行する機能、その1命令の実行ごとに割込み要因として前記割込みタスクの起動指示が発生したかどうかを判定する機能、及び、前記サイクル実行タスクの実行中に前記割込みタスクの起動指示が発生したら、そのサイクル実行タスクの実行を停止して割込みタスクを1命令ずつ実行する機能を有することを特徴とする。
本発明に係るコンピュータ読み取り可能な記録媒体は、サイクル実行タスク及び割込みタスク等の複数のタスクで構成されるユーザプログラムを繰り返し実行するPLCシミュレータ装置でシミュレーションするためのプログラムが記録された記録媒体であって、前記記録媒体は、コンピュータを、前記ユーザプログラムを1命令ずつ実行するように指示する機能、前記サイクル実行タスクを表示するとともに前記割込みタスクをクリックで指定可能に表示するメッセージウィンドウ、このメッセージウィンドウに表示されたタスク中のうちいずれの割込みタスクが指定されたかを判定する機能、及び、その指定された割込みタスクの起動を前記ラダー実行エンジンに指示する機能を有するデバッガとして機能させるとともに、前記デバッガからの1命令ずつの実行指示に基づき前記ユーザプログラムを1命令ずつ実行する機能、その1命令の実行ごとに割込み要因として前記割込みタスクの起動指示が発生したかどうかを判定する機能、及び、前記サイクル実行タスクの実行中に前記割込みタスクの起動指示が発生したら、そのサイクル実行タスクの実行を停止して割込みタスクを1命令ずつ実行する機能を有するラダー実行エンジンとして機能させるためのプログラムを格納したコンピュータ読み取り可能な記録媒体である。
本発明に係るプログラムは、サイクル実行タスク及び割込みタスク等の複数のタスクで構成されるユーザプログラムを繰り返し実行するPLCシミュレータ装置でシミュレーションするためのプログラムであって、前記プログラムは、コンピュータを、前記ユーザプログラムを1命令ずつ実行するように指示する機能、前記サイクル実行タスクを表示するとともに前記割込みタスクをクリックで指定可能に表示するメッセージウィンドウ、このメッセージウィンドウに表示されたタスク中のうちいずれの割込みタスクが指定されたかを判定する機能、及び、その指定された割込みタスクの起動を前記ラダー実行エンジンに指示する機能を有するデバッガとして機能させるとともに、前記デバッガからの1命令ずつの実行指示に基づき前記ユーザプログラムを1命令ずつ実行する機能、その1命令の実行ごとに割込み要因として前記割込みタスクの起動指示が発生したかどうかを判定する機能、及び、前記サイクル実行タスクの実行中に前記割込みタスクの起動指示が発生したら、そのサイクル実行タスクの実行を停止して割込みタスクを1命令ずつ実行する機能を有するラダー実行エンジンとして機能させるためのプログラムである。
【0024】
ここで、PLCプログラムの命令実行をシミュレーションするとは、PLC上で制御対象機器の動作を制御する制御プログラムが設計通り動作するか否か調べるため、パソコン等でPLCプログラムを仮想的に実行することをいう。従って、PLCシミュレータ装置とは、そうして使用されるパソコン等をいう。なお、PLCシミュレータ装置は、PLC、PLCと表示装置の組み合わせ等でも構成できる。
【0025】
ここで、本発明でシミュレーションするPLCプログラムは、サイクル実行タスクと割込みタスクより構成されている。
【0026】
サイクル実行タスクは、1サイクルに1回、タスクの状態が「実行可能状態」なら実行されるタスクである。
【0027】
また、割込みタスクは割込み要因が発生すると、サイクル実行タスク実行中でも割り込んで実行されるタスクである。割込みタスクには次の4種類ある。
(1)電断割込みタスク:電源断時に実行
(2)定時割込みタスク:一定時間間隔で実行
(3)I/O割込みタスク:割込み入力ユニットの接点立ち上がりで実行
(4)外部割込みタスク:外部の高機能ユニット等から要求があったとき実行
【0028】
ここで、このようなタスクより構成されたプログラムをデバッグのためシミュレーションしようとする場合、サイクル実行タスクはシミュレーションできるのでデバッグが行なえるが、外部の実機から起動される割込みタスクはシミュレーション時、装置は実機と接続されていないのでシミュレーションできず、デバッグが行なえない。
【0029】
そこで、本発明では、割込み要因発生手段で特定の割込みタスクを起動するための割込み要因を発生させ、タスク実行手段で上記割込み要因発生手段で指定された割込みタスクを実行する。
【0030】
特定の割込みタスクを起動するための割込み要因を発生させるとは、実際には電断割込みタスクでは電源断、定時割込みタスクでは一定時間の到来、I/O割込みタスクでは割込み入力ユニットの接点立ち上がり、外部割込みタスクでは外部の高機能ユニット等から要求等であるが、実施形態では、図2に示したメッセージウィンドウ32上のタスク種別表示部32−2に表示されたタスク中のうちいずれかの割込みタスクの指定及びこれに続くポップアップ画面(図示せず)中の「起動」ボタンのクリックに基づくタスク管理部31の割込みタスク起動指示である。
【0031】
また、タスク実行手段で上記割込み要因発生手段で指定された割込みタスクを実行するとは、実施形態では、図3のフローチャートのステップ110〜116の割込みタスク実行処理である。
【0032】
このように、本発明では、割込みタスクをシミュレーション上で実行でき、PLCシステムを構築前にデバッグを行なうことができる。
【0033】
従って、PLCシステム構築後の、すでにできあがったプログラムの再度の検証等が不要となり、デバッグ効率が向上する。また、デバッグ用装置が不要になり、低コストにデバッグを行なうことができる。
【0043】
また、本発明は、サイクル実行タスク及び割込みタスク等の複数のタスクで構成されるPLCプログラムの命令実行をPLCシミュレータ装置でシミュレーションするためのプログラムが記録された記録媒体であって、前記記録媒体は、コンピュータを、前記複数のタスクを表示するウィンドウを生成するウィンドウ生成手段、前記ウィンドウ上に表示された複数のタスクのうちオペレータによって指定された割込みタスクの起動を支持する割込みタスク起動指示手段、前記割込みタスク起動指示手段で指示された割込みタスクを実行する割込みタスク実行手段として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体である。
さらに、本発明は、サイクル実行タスク及び割込みタスク等の複数のタスクで構成されるPLCプログラムの命令実行をPLCシミュレータ装置でシミュレーションするためのプログラムであって、前記プログラムは、コンピュータを、前記複数のタスクを表示するウィンドウを生成するウィンドウ生成手段、前記ウィンドウ上に表示された複数のタスクのうちオペレータによって指定された割込みタスクの起動を支持する割込みタスク起動指示手段、前記割込みタスク起動指示手段で指示された割込みタスクを実行する割込みタスク実行手段として機能させるためのプログラムである。
【0044】
ここで、シミュレーションするためのプログラムが記録された記録媒体は、例えば、フロッピィディスクで構成される。
【0045】
この記録媒体に記録されたプログラムがパソコン等より構成されるPLCシミュレータ装置に読み取られて実行されると、割込みタスクをシミュレーション上で実行できる。
【0046】
以下、この発明の実施の形態について添付図面を参照して詳細に説明する。
【0047】
図1は、この発明に係わるPLCシミュレータ装置の概略構成を示すブロック図である。
【0048】
図1において、PLCシミュレータ装置10はパソコン等より構成され、タスクより構成されるPLCプログラムの命令実行をシミュレーションすることによってプログラムのデバッグを支援するもので、ラダー実行エンジン20とデバッガ30より構成されている。
【0049】
ここで、ラダー実行エンジン20は、デバッガ30からの指令によってPLCのプログラムを実行するもので、メイン処理部21、ラダー実行処理部22、周辺処理部23より構成されている。
【0050】
ここで、メイン処理部21はデバッガ30からの指示によりプログラムの実行、停止、タスクの切り替え、タスクの内部状態の変更、プログラムの実行時間の積算処理等を行なう。また、ラダー実行処理部22及び周辺処理部23の管理を行なう。
【0051】
ラダー実行処理部22は、メイン処理部21からの指令によりプログラムを1命令ずつ実行する。
【0052】
周辺処理部23は、ラダー実行処理部22の非実行時、メイン処理部21からの指令により、図示しない通信機器(例えばPLC)やアプリケーションとの通信処理を行なう。
【0053】
デバッガ30は、デバッグのためラダー実行エンジン20に対してプログラムを1命令ずつ実行するよう指示するとともに、本実施形態では特に、ラダー実行エンジン20に対して割込みタスクの起動指示、タスクの内部状態の変更指示、及びタスクの実行時間の管理等が行なえるよう構成され、タスク管理部31とメッセージウィンドウ32を具備している。
【0054】
ここで、タスク管理部31は、後に詳述する如く、PLCプログラムを構成するタスクの管理を行なうものである。
【0055】
メッセージウィンドウ32はデバッガ30の行なうプログラムのデバッグを支援するものである。
【0056】
ところで、本実施形態は、PLCプログラムのシミュレーションをタスク単位で行なうものであるが、その際、従来できなかったシミュレーション上での割込みタスクの実行、シミュレーション上でのタスクの内部状態の変更、シミュレーション上での各タスクの実行時間の演算を行なう。
【0057】
そこで、本実施形態では、デバッガ30のメッセージウィンドウ32には、図2に示す如きメッセージ画面が表示され、オペレータはこの画面上でマウス等を利用した各種操作を行なうことで上記の如き処理を行なう。
【0058】
なお、請求項でいうシミュレーションするためのプログラムが記録された記録媒体とは、上記の如き処理を行なうプログラムが記録された記録媒体であり、フロッピィディスク等に記録される。
【0059】
なお、図2において、メッセージウィンドウ32には、タスク表示切替部32−1、タスク種別表示部32−2、タスクNo.表示部32−3、タスク設定表示部32−4、[閉じる]ボタン32−5、メインメニュー表示部32−6、モニタボタン32−7、タスク起動間隔表示部32−8、タスク状態表示部32−9、タスク実行回数表示部32−10、タスク実行時間表示部32−11が設けられている。
【0060】
ここで、タスク表示切替部32−1は、この部分をマウスでクリックすることによってタスクの表示を切り替えるものである。
【0061】
タスク種別表示部32−2は、タスクの種別を表示するもので、割込みタスクかサイクル実行タスクかの種別が表示される。
【0062】
タスクNo.表示部32−3はタスクの番号を表示するものである。
【0063】
タスク設定表示部32−4はタスクの設定状態を表示するもので、割込みタスクの場合は割込みの種別、すなわち、「定時」割込みタスクか、「外部」割込みタスクか、「I/O」割込みタスクか等の種別が表示される。なお、サイクル実行タスクは種別がないので、「サイクル」とのみ表示される。
【0064】
[閉じる]ボタン32−5は、現在の画面を終了させるものである。
【0065】
メインメニュー表示部32−6は「タスク」とか「ヘルプ」とかのメインメニューが表示されるものである。
【0066】
モニタボタン32−7は、タスクの状態をモニタするためのスイッチである。
【0067】
タスク起動間隔表示部32−8は定時割込みタスクの起動間隔を表示するものである。
【0068】
タスク状態表示部32−9は、サイクル実行タスクの現在の状態を表示するもので、サイクル実行タスクは、未実行状態(INI)、実行可能状態(READY)、実行状態(RUN)、待機状態(WAIT)の4つの状態を遷移するので、いずれの状態かが表示される。
【0069】
タスク実行回数表示部32−10は、そのタスクのそれまでの実行回数が表示される。
【0070】
タスク実行時間表示部32−11はそのタスクの実行時間が表示される。
【0071】
図3は、シミュレーション上で割込みタスクを実行する場合の処理手順を示すフローチャートである。
【0072】
この処理では、まず、デバッガ30のタスク管理部31よりラダー実行エンジン20のメイン処理部21に対して割込みタスク起動を指示する(ステップ100)。これは、図2に示したメッセージウィンドウ32上でタスク種別表示部32−2に表示されたタスク中のうちいずれかの割込みタスクをマウスでクリックし、このクリックでメッセージウィンドウ32には割込みタスク起動のためのポップアップ画面(図示せず)が出るので、さらにポップアップ画面中の「起動」ボタンをクリックすることにより行なう。
【0073】
これによって、メイン処理部21は割込み要因を受け取る(ステップ102)。なお、割込み要因とは、実際には電断割込みタスクでは電源断、定時割込みタスクでは一定時間の到来、I/O割込みタスクでは割込み入力ユニットの接点立ち上がり、外部割込みタスクでは外部の高機能ユニット等から要求等であるが、シミュレーション上では、上記の如き、メッセージウィンドウ32上のタスク種別表示部32−2に表示されたタスク中のうちいずれかの割込みタスクの指定及びこれに続くポップアップ画面中の「起動」ボタンのクリックに基づくタスク管理部31の割込みタスク起動指示である。
【0074】
こうして、割込み要因を受け取ると、メイン処理部21は割込み要因の受け取りを記憶するが、この記憶は後にステップ108で判断される。
【0075】
次に、メイン処理部21はラダー実行処理部22に対して1命令の実行を依頼する(ステップ104)。これによって、ラダー実行処理部22は1命令を実行する(ステップ106)。
【0076】
次に、ステップ108では割込み要因が発生しているか否かが調べられる。ここでは、ステップ102でメイン処理部21は割込み要因を受け取っているので、割込み要因は発生していると判断される(ステップ108でYES)。従って、ステップ110に進み、メイン処理部21は割込み要因を分析し、該当する割込みタスクへ実行を移す。該当する割込みタスクとは、ステップ102で受け取った割込みタスクである。
【0077】
次に、該当する割込みタスクの1命令の実行依頼をメイン処理部21からラダー実行処理部22に対して行なう(ステップ112)。ラダー実行処理部22は1命令を実行する(ステップ114)。
【0078】
次に、割込みタスクの最後のプログラムか否か、すなわちEND命令か否かが調べられ(ステップ116)、プログラムの最後でない場合は(ステップ116でNO)、ステップ112に戻ってさらに1命令を行なうが、プログラムの最後の場合は(ステップ116でYES)、ステップ108に戻って、再度割込み要因が発生しているか否かが調べられる。
【0079】
ここで、割込み要因が発生している場合は(ステップ108でYES)、再び110に進み、該当する割込みタスクを実行する。なお、この場合の割込み要因の発生は、割込みタスク実行中にさらに割込みタスクの起動があった場合である。
【0080】
また、割込み要因が発生していない場合は(ステップ108でNO)、プログラム(PLCプログラム)の最後か否かが調べられ(ステップ118)、プログラムの最後でない場合は(ステップ118でNO)、ステップ104に進んでさらに1命令を実行する。また、プログラムの最後の場合は(ステップ118でYES)、メイン処理部21は周辺処理部23に対して周辺処理を行なうよう指示する(ステップ120)。そして、再びステップ104の処理を行なう。
【0081】
以上が、シミュレーション上で割込みタスクを実行する場合の処理手順である。
【0082】
なお、以上の説明では、割込み要因の発生方法として、図2に示したメッセージウィンドウ32上でタスク種別表示部32−2に表示されたタスク中のうちいずれかの割込みタスクをマウスでクリックする等して行なうようにしたが、その他、実機を接続して特定のI/Oの入力の変化で割込み要因を発生させるようにすることもできる。
【0083】
なお、ステップ108で、割込み要因が発生していると判別された場合は、ステップ110以下の割込みタスクの実行を行ない、割込みタスクの実行中にさらに割込み要因が発生した場合は、再度ステップ110以下の割込みタスクの実行を行なうようにしたが、これは新しく発生した割込み要因は保留とし、現在実行している割込みタスクが終了すると保留した割込みタスクを実行するようにしたものである。つまり、割込みタスクの保留があると、ステップ108では、割込み要因が発生していると判断する。
【0084】
このように、図3の処理では、図2に示したメッセージウィンドウ32上でタスク種別表示部32−2に表示されたタスク中のうちいずれかの割込みタスクをマウスでクリックする等して特定の割込み要因を発生させ、割込みタスクのシミュレーションを行なうようにしたので、PLCシステムの構築前にシミュレーションによってプログラムのデバッグが行なえ、PLCシステムの構築前に割込みタスクを含めた全てのタスクのデバックを確実に行なうことができる等の効果を奏する。
【0085】
次に、タスクの内部状態を、シミュレーションによって実行可能状態から待機状態に、又は待機状態から実行可能状態に変更する場合の処理手順を図4のフローチャートに基づいて説明する。
【0086】
このタスクの内部状態変更処理では、まず、デバッガ30のタスク管理部31でタスクの内部状態変更指示を行なう(ステップ130)。次に、この変更指示は待機状態から実行可能状態への変更指示か否かが調べられ(ステップ132)、待機状態から実行可能状態への変更指示の場合は(ステップ132でYES)、ラダー実行エンジン20のメイン処理部21は指定されたタスクの内部状態を実行可能状態にする(ステップ134)。
【0087】
また、変更指示が待機状態から実行可能状態への変更指示でない場合は(ステップ132でNO)、次に、この変更指示は実行可能状態から待機状態への変更指示か否かが調べられ(ステップ136)、実行可能状態から待機状態への変更指示の場合は(ステップ136でYES)、ラダー実行エンジン20のメイン処理部21は指定されたタスクの内部状態を待機状態にする(ステップ138)。
【0088】
また、変更指示が実行可能状態から待機状態への変更指示でない場合は(ステップ136でNO)、当処理を終了する。
【0089】
このように、本実施形態では、タスクの内部状態を、シミュレーションによって実行可能状態から待機状態に、又は待機状態から実行可能状態に変更できる。
【0090】
従って、タスクの内部状態を変更するデバッグ作業をシステム構築前に行なうことができ、不具合発生を事前に防止できる等の効果を奏する。
【0091】
次に、シミュレーション上で各タスクの実行時間等の演算を行なう場合の処理手順を図5のフローチャートに基づいて説明する。
【0092】
この処理においては、タスクの実行が開始されると(ステップ150)、1命令のニモニック(コード)読込みを行ない(ステップ152)、実行条件成立か否かが判別される(ステップ154)。これは、1命令について所定の入力条件が成立したか否かが調べられているもので、実行条件不成立の場合は(ステップ154でNO)、非実行処理時間を読込み(ステップ156)、ステップ162に進む。
【0093】
一方、実行条件成立の場合は(ステップ154でYES)、ニモニック処理、すなわち1命令を実行し(ステップ158)、1命令の実行処理時間を読込む(ステップ160)。そして、前回までの処理時間に積算するが(ステップ162)、初めての命令実行の場合は積算しない。
【0094】
次に、1タスクの実行が終了したか否かが調べられ(ステップ164)、1タスクの実行が終了しない場合は(ステップ164でNO)、ステップ152に戻り、1タスクの実行を継続するが、1タスクの実行が終了した場合は(ステップ164でYES)、ステップ166に進み、当該1タスクの処理時間を記憶し、タスク数を1インクリメントし(ステップ168)、さらに最後のタスクか否かが調べられる(ステップ170)。
【0095】
ここで、最後のタスクでない場合は(ステップ170でNO)、ステップ152に戻り、1タスクの実行を継続するが、最後のタスクの場合は(ステップ170でYES)、タスクの総実行時間(プログラムの総実行時間)を記憶し(ステップ172)、実行した総タスク数を記憶し(ステップ174)、タスクの実行を終了する(ステップ176)。
【0096】
このように、本実施形態では、シミュレーションにおいて、
(1)1つのタスクを構成する1命令ごとの実行時又は非実行時の処理時間を記憶し、
(2)1つのタスクの実行が終了すると各命令の処理時間を積算してその1タスクの処理時間を記憶し、
(3)全てのタスクの実行が終了すると、タスクの総実行時間と、プログラムを構成する総タスク数を記憶
するようにした。
【0097】
このため、タスクごとの実行時間等が分かり、例えばプログラムの1サイクルタイムが長い場合等には、そのプログラムを構成する各タスクの実行時間を検証し、1サイクルタイムの短縮化に資することができる等の効果を奏する。
【0098】
【発明の効果】
以上説明したように、本発明では以下の効果を奏する。
【0099】
(1)サイクル実行タスク及び割込みタスクより構成されるPLCプログラムの命令実行をシミュレーションするPLCシミュレータ装置において、特定の割込みタスクを起動するための割込み要因を発生させる割込み要因発生手段と、上記割込み要因発生手段で指定された割込みタスクを実行する割込みタスク実行手段と、を具備するようにしたので、割込みタスクをシミュレーション上で実行でき、PLCシステムを構築前にデバッグを行なうことができる。
【0100】
従って、PLCシステム構築後の、すでにできあがったプログラムの再度の検証等が不要となり、デバッグ効率が向上する。また、デバッグ用装置が不要になり、低コストにデバッグを行なうことができる。
【0101】
(2)また、タスク起動命令とタスク待機命令によって他のタスクの実行状態を制御できるPLCプログラムの命令実行をシミュレーションするPLCシミュレータ装置において、タスクの内部状態を待機状態と実行可能状態に相互に変更できる内部状態変更手段を具備するようにしたので、タスクの内部状態をシミュレーション上で変更できる。
【0102】
従って、同じく、PLCシステム構築後の、すでにできあがったプログラムの再度の検証等が不要となり、デバッグ効率が向上する。
【0103】
(3)また、タスク単位で実行されるPLCプログラムの命令実行をシミュレーションするPLCシミュレータ装置において、タスク中の1命令毎の実行時または非実行時の処理時間を計測する1命令処理時間計測手段と、上記1命令処理時間計測手段で計測された処理時間を積算して1タスクの処理時間を計測する1タスク処理時間計測手段と、上記1タスク処理時間計測手段で計測された処理時間を記憶する1タスク処理時間記憶手段と、を具備するようにしたので、タスクごとの実行時間等が分かり、例えばプログラムの1サイクルタイムが長い場合等には、そのプログラムを構成する各タスクの実行時間を検証し、1サイクルタイムの短縮化に資することができる。
【図面の簡単な説明】
【図1】この発明に係わるPLCシミュレータ装置の一実施形態の概略構成を示すブロック図である。
【図2】図1に示したPLCシミュレータ装置50で実行されるPLCプログラムの内容を示す図。
【図3】図2に示したプログラムが実行された場合のデバッガ30のメッセージウィンドウ32における表示例を示す図。
【図4】図1に示した実施形態の処理手順を示すフローチャート。
【図5】同じく図1に示した実施形態の処理手順を示すフローチャート。
【図6】タスクでプログラムを構成する場合の説明図で、(a)は1つの連続したプログラムでPLCプログラム(ユーザプログラム)を構成する場合、(b)は(a)のプログラムを複数のタスク(同図ではタスク1,2,3)に分割してプログラムを構成する場合の説明図である。
【図7】従来のプログラムを実行する場合とタスクを実行する場合の差異を模式的に説明する図で、(a)は従来のプログラムを実行する場合、(b)はタスクを実行する場合の説明図である。
【符号の説明】
10 PLCシミュレータ装置
20 ラダー実行エンジン
21 メイン処理部
22 ラダー実行処理部
23 周辺処理部
30 デバッガ
31 タスク管理部
32 メッセージウィンドウ
32−1 タスク表示切替部
32−2 タスク種別表示部
32−3 タスクNo.表示部
32−4 タスク設定表示部
32−5 [閉じる]ボタン
32−6 メインメニュー表示部
32−7 モニタボタン
32−8 タスク起動間隔表示部
32−9 タスク状態表示部
32−10 タスク実行回数表示部
32−11 タスク実行時間表示部
Claims (3)
- サイクル実行タスク及び複数の割込みタスクで構成されるユーザプログラムを繰り返し実行するPLCシミュレータ装置において、
前記PLCシミュレータ装置は、デバッガとラダー実行エンジンとからなり、
前記デバッガは、
前記PLCプログラムを1命令ずつ実行するように指示する機能、前記サイクル実行タスクを表示するとともに前記割込みタスクをクリックで指定可能に表示するメッセージウィンドウ、このメッセージウィンドウに表示された複数の割込みタスクのうちいずれの割込みタスクが指定されたかを判定する機能、及び、その指定された割込みタスクの起動を前記ラダー実行エンジンに指示する機能を有し、
前記ラダー実行エンジンは、
前記デバッガからの1命令ずつの実行指示に基づき前記ユーザプログラムを1命令ずつ実行する機能、その1命令の実行ごとに割込み要因として前記割込みタスクの起動指示が発生したかどうかを判定する機能、及び、前記サイクル実行タスクの実行中に前記割込みタスクの起動指示が発生したら、そのサイクル実行タスクの実行を停止して割込みタスクを1命令ずつ実行する機能を有すること
を特徴とするPLCシミュレータ装置。 - サイクル実行タスク及び複数の割込みタスクで構成されるユーザプログラムを繰り返し実行するPLCシミュレータ装置でシミュレーションするためのプログラムが記録された記録媒体であって、
前記記録媒体は、コンピュータを、
前記ユーザプログラムを1命令ずつ実行するように指示する機能、前記サイクル実行タスクを表示するとともに前記割込みタスクをクリックで指定可能に表示するメッセージウィンドウ、このメッセージウィンドウに表示された複数の割込みタスクのうちいずれの割込みタスクが指定されたかを判定する機能、及び、その指定された割込みタスクの起動を前記ラダー実行エンジンに指示する機能を有するデバッガとして機能させるとともに、
前記デバッガからの1命令ずつの実行指示に基づき前記ユーザプログラムを1命令ずつ実行する機能、その1命令の実行ごとに割込み要因として前記割込みタスクの起動指示が発生したかどうかを判定する機能、及び、前記サイクル実行タスクの実行中に前記割込みタスクの起動指示が発生したら、そのサイクル実行タスクの実行を停止して割込みタスクを1命令ずつ実行する機能を有するラダー実行エンジンとして機能させるためのプログラムを格納したコンピュータ読み取り可能な記録媒体。 - サイクル実行タスク及び複数の割込みタスクで構成されるユーザプログラムを繰り返し実行するPLCシミュレータ装置でシミュレーションするためのプログラムであって、
前記プログラムは、コンピュータを、
前記ユーザプログラムを1命令ずつ実行するように指示する機能、前記サイクル実行タスクを表示するとともに前記割込みタスクをクリックで指定可能に表示するメッセージウィンドウ、このメッセージウィンドウに表示された複数の割込みタスクのうちいずれの割込みタスクが指定されたかを判定する機能、及び、その指定された割込みタスクの起動を前記ラダー実行エンジンに指示する機能を有するデバッガとして機能させるとともに、
前記デバッガからの1命令ずつの実行指示に基づき前記ユーザプログラムを1命令ずつ実行する機能、その1命令の実行ごとに割込み要因として前記割込みタスクの起動指示が発生したかどうかを判定する機能、及び、前記サイクル実行タスクの実行中に前記割込みタスクの起動指示が発生したら、そのサイクル実行タスクの実行を停止して割込みタスクを1命令ずつ実行する機能を有するラダー実行エンジンとして機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000015550A JP4192380B2 (ja) | 2000-01-25 | 2000-01-25 | Plcシミュレータ装置及びシミュレーションするためのプログラムとこれが記録された記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000015550A JP4192380B2 (ja) | 2000-01-25 | 2000-01-25 | Plcシミュレータ装置及びシミュレーションするためのプログラムとこれが記録された記録媒体 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008034448A Division JP4811678B2 (ja) | 2008-02-15 | 2008-02-15 | Plcシミュレータ装置及びシミュレーションするためのプログラムとこれが記録された記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001209409A JP2001209409A (ja) | 2001-08-03 |
JP4192380B2 true JP4192380B2 (ja) | 2008-12-10 |
Family
ID=18542826
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000015550A Expired - Lifetime JP4192380B2 (ja) | 2000-01-25 | 2000-01-25 | Plcシミュレータ装置及びシミュレーションするためのプログラムとこれが記録された記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4192380B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008059421A (ja) * | 2006-09-01 | 2008-03-13 | Yokogawa Electric Corp | シーケンスプログラム編集支援装置 |
-
2000
- 2000-01-25 JP JP2000015550A patent/JP4192380B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2001209409A (ja) | 2001-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0965921A2 (en) | Distributed indirect software instrumentation | |
CN110659198A (zh) | 应用程序的测试用例执行方法、装置和软件测试系统 | |
JP4811678B2 (ja) | Plcシミュレータ装置及びシミュレーションするためのプログラムとこれが記録された記録媒体 | |
JP2000020349A (ja) | プログラム開発支援装置、プログラム開発支援方法及びプログラム開発支援用プログラムを記録した媒体 | |
WO2020039900A1 (ja) | 情報処理装置およびプログラム | |
CN111142469B (zh) | 一种plc的组态程序的调试方法及调试系统 | |
JP4192380B2 (ja) | Plcシミュレータ装置及びシミュレーションするためのプログラムとこれが記録された記録媒体 | |
JP2861962B2 (ja) | コンピュータプログラムのシミュレーション装置および方法 | |
JP2000293210A (ja) | 制御プログラムの開発環境装置、制御プログラムを実行する制御装置、並びに、それらを実現するプログラムの記録媒体 | |
JP5212508B2 (ja) | デバッグ装置 | |
JP2009223471A (ja) | シミュレーション・システム | |
CN110497406B (zh) | 一种设备分组的方法、装置、设备及介质 | |
JP2005250937A (ja) | マイクロコンピュータソフトウェアのプログラム検証装置 | |
JP2001209412A (ja) | シーケンスプログラムのシミュレーション装置 | |
JP2007004516A (ja) | 組込みシステムのプログラムデバッグ方法 | |
WO2001097035A1 (fr) | Procede et systeme d'evaluation automatique, et support de stockage d'un programme d'evaluation automatique | |
JPH04352245A (ja) | シュミレ−ション方式 | |
JP3339708B2 (ja) | イベント記録方式 | |
JPS63177231A (ja) | 並列プログラムデバグ方式 | |
JP3443184B2 (ja) | プログラマブルコントローラ用プログラム作成装置 | |
JPH07105045A (ja) | 情報処理装置機能試験プログラムのデバッグ方式 | |
JPH08194506A (ja) | 制御装置 | |
CN115562991A (zh) | 自动化测试方法、自动化测试装置、电子设备、存储介质 | |
JPH01217650A (ja) | ソフトウェアシミュレータにおける試験実行方式 | |
JPH07319730A (ja) | テスト・デバッグ方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050304 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20071211 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071217 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080215 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080314 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080507 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080604 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080731 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080826 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080908 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4192380 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111003 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111003 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121003 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121003 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131003 Year of fee payment: 5 |
|
EXPY | Cancellation because of completion of term |