JP4784355B2 - プログラマブルコントローラシステム、プログラマブルコントローラのデバッグ方法、プログラミング支援プログラム、プログラマブルコントローラのデバッグ制御プログラム - Google Patents

プログラマブルコントローラシステム、プログラマブルコントローラのデバッグ方法、プログラミング支援プログラム、プログラマブルコントローラのデバッグ制御プログラム Download PDF

Info

Publication number
JP4784355B2
JP4784355B2 JP2006075234A JP2006075234A JP4784355B2 JP 4784355 B2 JP4784355 B2 JP 4784355B2 JP 2006075234 A JP2006075234 A JP 2006075234A JP 2006075234 A JP2006075234 A JP 2006075234A JP 4784355 B2 JP4784355 B2 JP 4784355B2
Authority
JP
Japan
Prior art keywords
program
instruction
break
programmable controller
execution
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.)
Active
Application number
JP2006075234A
Other languages
English (en)
Other versions
JP2007249828A (ja
Inventor
元治 鈴木
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.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric 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 Fuji Electric Co Ltd filed Critical Fuji Electric Co Ltd
Priority to JP2006075234A priority Critical patent/JP4784355B2/ja
Publication of JP2007249828A publication Critical patent/JP2007249828A/ja
Application granted granted Critical
Publication of JP4784355B2 publication Critical patent/JP4784355B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Programmable Controllers (AREA)

Description

本発明は、プログラマブルコントローラシステム、プログラマブルコントローラのデバッグ方法、プログラミング支援プログラム、プログラマブルコントローラのデバッグ制御プログラムに関し、たとえば、産業用のプログラマブルコントローラ(PLC)におけるデバッグ等に適用して有効な技術に関する。
従来、PLCはシーケンス命令実行を高速に行わせるための専用ハードウェア(大規模専用LSIなどに代表される)を備えたものが主流であった。専用ハードウェアであるためデバッグ用のブレーク、ステップ実行もハードウェアによってサポートされていた。このようなハードウェアの場合、ブレーク設定された位置の命令を特殊な命令に置き換えて、割込みを発生させブレーク成立チェックルーチンへの分岐、成立した場合のブレーク状態を作り出すことが可能であった。
しかし、(1)専用プロセッサは高価である、(2)専用のマシン語体系をもちシステムプログラム開発が比較的困難である、というデメリットも存在していた。
近年、パーソナルコンピュータ、携帯端末などの普及により、市販の汎用CPUの技術革新が進み、高速実行が可能なCPUを非常に安価に入手することが可能になってきた。また、汎用であるため、ファームウェアの開発ツールを豊富に市場から調達できるようになってきたため、汎用CPUを使ったPLCも作られるようになってきており、特許文献1に見られるように、シーケンス命令(制御プログラムの命令)1命令につき、数個のマシン語の組合せによってシーケンス命令の実行を実現する例が知られている。
PLCのアプリケーションは、ラダー図、テキスト記述言語などによって表現され、シーケンス言語命令の集合体で構成され、上述の特許文献1に見られるように、汎用CPUによるPLCでは、シーケンス命令1命令につき、数個のマシン語によってシーケンス命令実行を実現している例が知られている。
なお、本明細書中、プログラム、ファンクションブロック、ファンクションの定義については、特に断らない限り、PLCにおける記述言語規格IEC61131−3に準ずるものとして説明は割愛する。
デバッグサポートとしては、指定した条件、命令位置で実行を一時中断するブレーク機能(条件停止とも呼ばれる)、ブレーク状態から1命令ずつ実行してはブレークするステップ機能などがある。
ユーザはプログラミング支援装置にてプログラミングを行い、プログラムをPLCに転送し、実行させてプログラムのテストを行うわけだが、その際にシーケンスプログラムの任意の位置でブレークをさせたいし、ステップ実行もシーケンス命令単位で行いたい。
そのため、シーケンス命令単位でのブレーク指定、ステップ実行機能の実現要求があるが、特許文献1等の先行技術によればデバッガなるソフトウェアをプログラミング支援装置に含み、かつ内部ではC言語ソースコード、Cソースデバッガを内蔵させており、制御プログラムの作成のために必要なハードウェア資源のほかに多量の資源を準備しなければならない問題点がある。また、PLC側(実行装置側)もアプリケーション実行機能とは別にCソースデバッガとのインタフェースのためにソフトウェア量、ハードウェア資源を備えなければならず、コストアップを招くといった問題がある。追加のソフト、ハード資源が少なくてすみ、また割込み発生命令など汎用性に乏しい特殊命令を使わないで、一般的なCPUであれば可能な方式でのデバッグサポート機能の実現が第1の課題である。
ユーザプログラム(POU)中には接点、コイルなどのビット命令がある。これらの命令は実行順にならんでおりステップ実行のたびに次の命令でブレークすればよい。しかしビット命令のほかに条件によって実行の可否を決定するためのジャンプ命令が含まれている場合がある。この場合、ジャンプ命令の実行の結果、POU内のどの命令が次に実行される命令なのかが確定しない。このように、ジャンプ命令が含まれている場合であってもステップ実行ができるようにすることが第2の課題である。
ユーザプログラムは、親となるプログラム(PG)から共通的な処理を1POUに記述したサブルーチンすなわちユーザファンクション(UFCT)、ユーザファンクションブロック(UFB)をコールし、ユーザファンクション、ユーザファンクションブロックでの実行を終えた後、リターン命令によりプログラムに実行が戻ってくる場合がある。PG内でステップをすすめていきコール命令があった場合、呼び先のユーザファンクションまたはユーザファンクションブロックの先頭でブレークさせることが第3の課題である。
プログラムサイズが小さければ必要とするメモリが少なくてすみコストを削減できる、またプログラム実行を高速に行わせることができれば単位時間あたりのプログラマブルコントローラの処理量は増すので、できるだけプログラムサイズを小さくでき、高速に実行ができることが第4の課題である。
特開2002−99312号公報
本発明の目的は、追加のソフトウェアおよびハードウェア等の資源が少なくてすみ、また割込み発生命令など汎用性に乏しい特殊命令を使わないで、一般的なCPUであれば可能な汎用的な方法で、プログラマブルコントローラのデバッグサポート機能を実現することにある。
本発明の他の目的は、ジャンプ命令が含まれている場合であっても的確にステップ実行が可能な、プログラマブルコントローラのデバッグサポート機能を実現することにある。
本発明の他の目的は、プログラム内のステップ実行の進行中にコール命令があった場合、呼び先のユーザファンクションまたはユーザファンクションブロックの先頭でブレークさせることが可能な、プログラマブルコントローラのデバッグサポート機能を実現することにある。
本発明の他の目的は、デバッグ時以外は、できるだけプログラムサイズを小さくでき、高速に実行ができることが可能なプログラマブルコントローラのデバッグサポート機能を実現することにある。
本発明の第1の観点は、シーケンス言語で記述された第1プログラムをプログラマブルコントローラを構成するマイクロコンピュータが解釈実行できるマシン語で記述された第2プログラムに変換する機能と、前記シーケンス言語の命令単位に対応して変換された前記マシン語群の各々の先頭に前記マシン語のNOP(ノーオペレーション)命令を挿入する機能と、前記第2プログラムの先頭からの個々の前記NOP命令までの相対位置を列挙した切れ目テーブルを生成する機能と、前記第2プログラムのブレーク(実行停止)位置を前記シーケンス言語の命令単位で指定できるデバッグサポート機能を含み、前記シーケンス言語の命令単位でステップ実行指令を発行するプログラミング支援装置と、
前記プログラミング支援装置から前記第2プログラムおよび前記切れ目テーブルを受信し前記第2プログラム中の指定された前記ブレーク位置の前記NOP命令をブレーク(実行停止)処理への分岐命令に書き替え前記切れ目テーブルを用いて前記ステップ実行指令に対応したブレーク(実行停止)を実現する機能を備えた前記プログラマブルコントローラと、
を含むプログラマブルコントローラシステムを提供する。
本発明の第2の観点は、汎用のマイクロコンピュータを使用するプログラマブルコントローラのデバッグ方法であって、
プログラミング支援装置が、シーケンス言語または中間言語で記述された第1プログラムを前記マイクロコンピュータのマシン語で記述された第2プログラムに変換するときに、前記第2プログラムにおける前記第1プログラムの命令単位の切れ目に、前記マシン語のNOP(ノーオペレーション)命令を挿入するとともに、前記第2プログラムの先頭からの個々の前記NOP命令までの相対位置を列挙した切れ目テーブルを生成し、前記第2プログラムとともにプログラマブルコントローラに送信するステップと、
前記プログラマブルコントローラが、受信した前記第2プログラムのデバッグ時に、前記NOP命令をブレーク実行停止)処理へ分岐する分岐命令に置き換え前記切れ目テーブルを用いて、前記プログラミング支援装置から受信するステップ実行指令に対応したブレーク(実行停止)を実現するステップと、
を含むプログラマブルコントローラのデバッグ方法を提供する。
本発明の第3の観点は、シーケンス言語で記述された第1プログラムを、プログラマブルコントローラを構成するマイクロコンピュータが解釈実行できるマシン語で記述された第2プログラムに変換するときに、前記シーケンス言語の命令単位に対応して変換された前記マシン語群の各々の先頭に前記マシン語のNOP(ノーオペレーション)命令を挿入し、前記第2プログラムを実行する前記プログラマブルコントローラが前記NOP命令をブレーク(実行停止)処理へ分岐する分岐命令に置き換え可能にする機能と、
前記第2プログラムの先頭からの個々の前記NOP命令までの相対位置を列挙した切れ目テーブルを生成する機能と、
前記第2プログラムと前記切れ目テーブルを前記プログラマブルコントローラに転送する機能と、
前記プログラマブルコントローラが前記NOP命令を前記分岐命令に書き換えた前記第2プログラムを実行する時に前記切れ目テーブルを使用し、前記第2プログラムのブレーク(実行停止)位置を前記シーケンス言語の命令単位で指定できるデバッグサポート機能と、
前記シーケンス言語の命令単位でステップ実行指令を発行する機能と、
をプログラミング支援装置を構成するコンピュータにて実現するプログラミング支援プログラムを提供する。
本発明の第4の観点は、汎用のマイクロコンピュータを使用するプログラマブルコントローラのデバッグ制御プログラムであって、
シーケンス言語または中間言語で記述された第1プログラムの命令単位に対応した前記マイクロコンピュータのマシン語を含み、前記命令単位の切れ目に前記マシン語のNOP(ノーオペレーション)命令が挿入された第2プログラムおよび前記第2プログラムの先頭からの個々の前記NOP命令までの相対位置を列挙した切れ目テーブルをプログラミング支援装置から受信し、受信した前記第2プログラム中の指定された前記NOP命令を、ブレーク(実行停止)処理への分岐命令に書き替える機能と、前記切れ目テーブルを用いて前記プログラミング支援装置から受信したステップ実行指令に対応してブレーク(実行停止)を実現する機能と、を前記マイクロコンピュータにて実現するプログラマブルコントローラのデバッグ制御プログラムを提供する。
すなわち、本発明では、たとえば、第1の課題を解決するために、プログラミング支援装置にて、シーケンス命令で組まれたユーザプログラム(第1プログラム)をPLCの汎用CPUが実行するマシン語プログラム(第2プログラム)へと変換をする際に、シーケンス命令の切れ目にあたるマシン語とマシン語の間にNOP命令を挿入する。
さらにPOU先頭から数えて、挿入したNOP命令までのプログラムカウンタ(PC)のカウント値すなわちオフセット値を列挙した「シーケンス言語切れ目テーブル」を生成する。
マシン語プログラムと「シーケンス言語切れ目テーブル」はセットで使うようにする。
プログラミング支援装置から、PLCへ「マシン語プログラム」と「シーケンス言語切れ目テーブル」を転送しPLC内で保持する。アプリケーション起動要求により、マシン語プログラムが実行される。
ブレークを行いたい場合のために、ブレーク設定コマンドを設ける。ブレーク設定コマンドは、ブレーク位置、条件(条件は必須ではない)で構成されるが、位置の指定はシーケンス命令単位である。ユーザ操作により、プログラムの任意の位置でのブレークを指定したのち、支援装置によってブレーク設定コマンドはPLCに発行される。
ブレーク設定コマンドを受けたPLCは、コマンド中のブレーク位置(たとえばN番目の命令でブレーク指定されたとする)を検索キーとして「シーケンス命令切れ目テーブル」のN番目からオフセット値を得て、マシン語プログラムの先頭からオフセット値分すすんだところに存在しているNOP命令を、ブレーク処理への分岐命令へと書き替える。同時に命令置換テーブルを作成する。命令置換テーブルには、ブレーク位置(シーケンス命令アドレス)、置き換えたNOP命令の絶対アドレス、置き換え前命令コード(NOP命令)、置き換え後命令コード(ブレーク処理部への分岐命令)が含まれている。
この分岐命令はマシン語レベルのCALL命令であり、命令実行時にはCALL先でPCが変化すると同時にCALL命令の次のPCが戻り番地として汎用CPUでは保存される。
ブレーク状態をつくりだすために、アプリタスクよりも実行優先度の高いデバッグタスクを設ける。
デバッグタスク内にステップ処理(前処理)、ステップ処理(後処理)、継続起動処理、コマンド待ち処理を設ける。
ローダとのインタフェースのために、コマンド処理部を設け、ブレーク設定コマンド、ステップ実行コマンド、継続起動コマンドの各処理を設けてデバッグタスクとの待ち合わせにより処理要求、実行完了応答を行い、ローダとのインタフェースを完了させる。
ブレーク設定実行処理では、受信したコマンドの中からブレーク成立条件の退避、命令置換テーブル作成し、アプリケーションプログラム(POU)の命令置き換え操作を行う。
ステップ実行はブレーク状態にあるPLCに対してステップ実行コマンドをローダが発行することにより行う。PLC側はすでにブレーク状態にありデバッグタスク内でローダコマンドを待っている状態にあって、そこへステップ実行コマンドがくるとステップ処理(前処理)を行い、デバッグタスクを終了させ、アプリに戻り1シーケンス命令分のマシン語実行を行って再びブレーク処理経由してデバッグタスク起動し、ステップ処理(後処理)しブレーク状態にさせるようにする。
ここでステップ前処理では、次の切れ目のNOP命令をブレーク処理への分岐命令へ置換する処理、およびステップ実行中ビットのセットを行う。ステップ後処理では、今回の切れ目をNOPに戻しステップ実行中ビットをOFFする。
継続起動処理では、ローダコマンド処理部に対して継続起動処理完了の通知、デバッグタスクの終了を行う。
また、本発明では、たとえば、第2の課題を解決するために、ステップ実行前処理において、現在いるPOUの全切れ目のNOP命令をブレーク処理への分岐命令に置き換える。全置換済であれば全置換は行わない。全切れ目への置換を実施した後全置換実施済みフラグセットを行う。全置換実施済みフラグのセットおよび参照はステップの度に全置換をしなくてよくするためのものである。
さらに継続起動処理において、全切れ目の置換を元のNOP命令に戻す処理を追加する。
また、本発明では、たとえば、第3の課題を解決するために、UFB,UFCTのコール命令、リターン命令を実行するシステムマクロをマシン語プログラムから直接CALLさせるのではなく、JMPテーブルを設けてプログラムから一旦JMPテーブルにJMPさせてさらに、マクロ本体へJMPするようにさせる。加えて、ステップ実行時にのみ呼ばれるデバッグ用コール命令マクロ、リターン命令マクロを設けて、ステップ実行コマンド受信時には前処理内でJMPテーブルを書き替えて通常用命令マクロからデバッグ用命令マクロへJMPするようにさせる。さらにデバッグ用命令マクロの中では、通常のコール、リターン処理に加えて移動元のPOUの全切れ目を元のNOP命令に復元する処理と、移動先のPOUの全切れ目のNOPをブレーク処理への分岐命令に置換する処理を行わせるようにする。
また、本発明では、たとえば、第4の課題を解決するために、ローダのコンパイラにデバッグサポート要/不要を選択できるモードを持たせ、デバッグサポート機能を不要とする場合は、NOP挿入しないでマシン語プログラム生成を行えるようにする。
本発明によれば、追加のソフトウェアおよびハードウェア等の資源が少なくてすみ、また割込み発生命令など汎用性に乏しい特殊命令を使わないで、一般的なCPUであれば可能な汎用的な方法で、プログラマブルコントローラのデバッグサポート機能を実現することができる。
また、ジャンプ命令が含まれている場合であっても的確にステップ実行が可能な、プログラマブルコントローラのデバッグサポート機能を実現することができる。
また、プログラム内のステップ実行の進行中にコール命令があった場合、呼び先のユーザファンクションまたはユーザファンクションブロックの先頭でブレークさせることが可能な、プログラマブルコントローラのデバッグサポート機能を実現することができる。
また、デバッグ時以外は、できるだけプログラムサイズを小さくでき、高速に実行ができることが可能なプログラマブルコントローラのデバッグサポート機能を実現することができる。
以下、図面を参照しながら、本発明の実施の形態について詳細に説明する。
(実施の形態1)
図1は、本発明の一実施の形態であるプログラマブルコントローラシステムの作用の一例を示す概念図、図2は、本実施の形態のプログラマブルコントローラシステムの構成の一例を示す概念図である。
図2に例示されるように、本実施の形態のプログラマブルコントローラシステムは、プログラミング支援装置100(以下、ローダ100と記す)と、プログラマブルコントローラ200(以下、PLC200と記す)を含んでいる。
ローダ100は、マイクロプロセッサ110、主記憶120、外部記憶装置130、ユーザインタフェース140、通信インタフェース150を含んでいる。
主記憶120には、基本ソフトウェアとしてオペレーティングシステム160が実装され、マイクロプロセッサ110がこのオペレーティングシステム160を実行することで、ローダ100の全体を制御する。
本実施の形態の場合、この主記憶120には、ローダプログラム170(プログラミング支援プログラム)が実装されている。
そして、マイクロプロセッサ110が、このローダプログラム170を実行することで、後述のようなシーケンス命令記述プログラム310(第1プログラム)あるいは中間言語からマシン語プログラム320(第2プログラム)への変換、シーケンス命令切れ目テーブル330の生成、さらにはPLC200におけるマシン語プログラム320のデバッグ、等の機能を提供する。
外部記憶装置130は、シーケンス言語で記述されたシーケンス命令記述プログラム310、このシーケンス命令記述プログラム310からローダプログラム170が生成したマシン語プログラム320およびシーケンス命令切れ目テーブル330を保持する。
そして、マシン語プログラム320に挿入されたNOP命令322と、シーケンス命令切れ目テーブル330の情報を用いることで、後述のように、PLC200におけるマシン語プログラム320のデバッグを、シーケンス命令記述プログラム310の個々のシーケンス命令311の単位で可能とする。
ユーザインタフェース140は、たとえば、ディスプレイやキーボード等からなり、ローダ100を制御するためのユーザ入力や、シーケンス命令記述プログラム310の編集、デバッグ時のユーザ操作の入力等に用いられる。
通信インタフェース150は、PLC200とローダ100との間の情報通信を制御する。
一方、PLC200は、汎用マイコン210、システムメモリ220、通信インタフェース230を含んでいる。
本実施の形態の場合、汎用マイコン210は、市販の汎用のマイクロプロセッサ等からなる。
システムメモリ220には、汎用マイコン210が実行するソフトウェアが格納される。
本実施の形態の場合、システムメモリ220には、オペレーティングシステム221、ローダサーバ240(デバッグ制御プログラム)、デバッグタスク250(デバッグ制御プログラム)、マシン語プログラム320、シーケンス命令切れ目テーブル330が格納される。このマシン語プログラム320およびシーケンス命令切れ目テーブル330は、ローダ100から転送されたものである。
また、システムメモリ220には、ブレーク成立条件テーブル260、命令置換テーブル270、JMP(ジャンプ)テーブル280、全置換済フラグ290、ステップ実行中ビット291、等の情報が格納される。
通信インタフェース230は、ローダ通信線231を介してローダ100との情報通信を行う。
また、被制御機器通信線232を介して、PLC200(マシン語プログラム320)の制御対象である図示しない産業機器等との間における情報通信を行う。
オペレーティングシステム221は、汎用マイコン210によってPLC200の全体を制御する。
ローダサーバ240は、ローダ100(ローダプログラム170)との間における情報の授受を制御するソフトウェアである。本実施の形態の場合には、後述のようにデバッグに用いられるコマンド処理部241を含んでいる。
デバッグタスク250は、マシン語プログラム320のデバッグ時に生成されるプロセスであり、オペレーティングシステム221の制御の下で、アプリケーションタスクであるマシン語プログラム320よりも高い優先度にて実行される。
デバッグタスク250は、コマンド待ち処理251、継続起動処理252、ステップ前処理253、ステップ後処理254、を含んでいる。
マシン語プログラム320およびシーケンス命令切れ目テーブル330は、ローダ100において、汎用マイコン210のマシン語で記述されたマシン語プログラム320に変換され、通信インタフェース230を介してローダ100からロードされる。
そして、このマシン語プログラム320を、汎用マイコン210に実行させることで、シーケンス命令記述プログラム310と等価な制御動作を、PLC200において実現する。
図1は、本実施の形態のローダ100において、ローダプログラム170が、シーケンス命令記述プログラム310からマシン語プログラム320およびシーケンス命令切れ目テーブル330を生成する課程を例示している。
図1に例示されるように、シーケンス言語で記述されたシーケンス命令記述プログラム310のユーザによる作成が完了し、ローダプログラム170によるコンパイルを行うと、マシン語プログラム320およびシーケンス命令切れ目テーブル330が生成される。
すなわち、シーケンス命令記述プログラム310の個々のシーケンス命令311(1命令)が、マシン語プログラム320の複数個の汎用マイコン210のマシン語321に変換され、同時にマシン語321の、個々のシーケンス命令311に対応した命令群の切れ目にNOP命令322が挿入される。
また、個々のシーケンス命令記述プログラム310(POU)ごとに、シーケンス命令切れ目テーブル330が生成される。シーケンス命令切れ目テーブル330は、POUの先頭を0としたオフセットで表現され、シーケンス命令311の1命令、1命令についてオフセット値331(X1,X2,,,,,,XN)が列挙されて記録される。ここでオフセット値331は汎用マイコン210のマシン語321のPC(プログラムカウンタ)単位である。一般的にはバイトアドレスで表現されることが多い。
こうして生成されたマシン語プログラム320とシーケンス命令切れ目テーブル330がセットでローダ100からPLC200へ転送され、PLC200ではマシン語プログラム320をシステムメモリ220上に配置し、実行を行う。
このようにしてPLC200において実行されるマシン語プログラム320のデバッグを、ローダ100の制御の下で行う例を説明する。
まず、図3を使って、マシン語プログラム320のデバッグにおけるブレーク(実行停止)の実現について説明する。
ブレークは、ローダ100からPLCへのブレーク設定コマンド410を発行することによっておこなう。
ブレーク設定コマンド410は、POU種別411、POU番号412、POU内相対アドレス413、ブレーク成立条件414といったデータで構成される。このPOU内相対アドレス413はマシン語アドレスではなく、シーケンス命令単位の指定である。
ブレーク設定コマンド410を受けたPLCでは、コマンド処理部241でブレーク設定処理を行う。コマンドデータを解釈し、ブレーク成立条件の退避(ステップ511)、命令置換テーブルの作成(ステップ512)、アプリケーションプログラム(POU)への命令置き換え操作(ステップ513)を行う。ブレーク条件としてPC一致指定しかサポートしない場合は、ブレーク成立条件テーブル260は不要である。
命令置換テーブル270は、一例として、図4の構成となっている。すなわち、ブレーク設定コマンド410で与えられたPOU種別271、POU番号272、POU内アドレス273のほか、置き換えを行う命令の番地を示すマイコン絶対アドレス274を保管するフィールド、置き換えを行う前の命令(置換前命令コード275)を保管するフィールド、置き換えをしたあとの命令(置換後命令コード276)を保管するフィールドによって構成される。ブレーク設定の削除を行うときのために、この命令置換テーブル270を作成しておく。
マイコン絶対アドレスは274、シーケンス命令切れ目テーブル330からPOU内アドレスnを検索キーとして読み出したn番目のオフセット値と、該当のPOU先頭アドレス(メモリの何番地からPOUが割り付けられているか記述されているプログラムエントリテーブルから取得する)を加算して求める。こうして算出したマイコン絶対アドレス274に格納されているNOP命令322を、ブレーク処理への分岐命令に書き替える。以上により、アプリケーションプログラム(シーケンス命令記述プログラム310、マシン語プログラム320)のブレーク位置にはブレーク処理への分岐命令が仕組まれて、スキャンのたびに、図5に例示されるブレーク処理へ遷移する。
ここでブレーク処理について図5を使って説明する。
ブレーク処理へはアプリケーションプログラムであるマシン語プログラム320から飛んできて、ブレーク条件が成立したかをチェックする(ステップ521、ステップ522)。成立していればブレーク状態にするため、デバッグタスク250を起動する(ステップ523)。
このデバッグタスク250はマシン語プログラム320等のアプリケーションタスクより高い優先度にしておき、デバッグタスク250の実行中は(ステップ521)、例え起動設定した定周期タイミングになったとしてもアプリケーションタスク(マシン語プログラム320)は実行されず、ブレーク状態が保持される。ちなみに、マルチタスク実行に関しては、たとえば、μITRONなどのOS(オペレーティングシステム221)が管理実行できるのでここでは一般的な技術として詳細説明は省く。
次に図6を参照してデバッグタスク250について説明する。
デバッグタスク250は、先頭にてステップ実行中ビット291を参照し、ステップ実行中かをチェックし(ステップ531)、ステップ実行中であればステップ処理(後処理)を行う(ステップ532)。後処理完了にて完了イベントをローダコマンド処理部に対して発行し(ステップ533)、コマンド処理部241は完了イベント受信により、ローダ100へ完了応答を通知する。
完了イベントを発行した後、デバッグタスク250は次のコマンドを待つ(ステップ534)。
すなわち、ローダ100からのステップ実行コマンド420または継続起動コマンド430を待つ(ステップ535)。
ステップ実行コマンド420を受信した場合、ステップ処理(前処理)を行い(ステップ536)、デバッグタスクを終了する。
継続起動コマンド430を受信した場合、継続起動処理を行い(ステップ537)、デバッグタスク250を行い、完了イベントを立てて(ステップ538)、デバッグタスク250を終了する。
デバッグタスク250を終了するとブレーク処理に戻り、さらにブレーク処理からアプリケーションプログラム(PG)(マシン語プログラム320)へ戻る。
前出のステップ536のステップ処理(前処理)では、POU(マシン語プログラム320)内の全切れ目に配置されたNOP命令322をブレーク処理へのCALL命令に置き換える処理と、ステップ実行中ビット291のONを実行しているので、シーケンス1命令分のマシン語を実行した後、ブレーク処理経由で再度、デバッグタスク250に戻ってブレーク状態となる。
ブレーク状態から通常の運転状態に戻るために継続起動コマンド430を用いる。ローダ100からの継続起動コマンド430の受信により、デバッグタスク250が終了され優先度が低かったために実行が抑えられていたアプリタスク(マシン語プログラム320)が実行できるようになり、このようにしてブレーク状態から通常の運転状態へと戻る。
次にマシン語プログラム320のデバッグ時のステップ実行について説明する。ステップ実行はブレーク状態にあるPLC200に対してステップ実行コマンド420をローダ100が発行することにより始まる。したがって、すでにブレーク設定による条件成立し、PLC200がブレーク状態になっている前提で説明をする。
PLC200はデバッグタスク250にて次なるコマンドを待っている(ステップ534)。ローダ100からステップ実行コマンド420がきて、ローダサーバ240のコマンド処理部241からステップコマンド受信を通知され、ステップ前処理を行う(ステップ536)。ステップ前処理253では、次の切れ目のNOP命令322をブレーク処理への分岐命令へ置換する処理、ステップ実行中ビット291のセットを行う。
その後、デバッグタスク250を終了しアプリプログラム(マシン語プログラム320)に戻る。アプリプログラムではシーケンス1命令分のマシン語を実行し、ステップ前処理253にて置換されたブレーク処理への分岐命令によってブレーク処理へと実行が移り、ブレーク処理の中ではステップ実行中ビット291を参照しONであるのでデバッグタスク250の起動を実行する。デバッグタスク250にてステップ実行中ビット291を参照しONであるのでステップ後処理(ステップ532)を行う。ステップ後処理254ではステップ実行中ビット291をOFFする。さらにコマンド処理部241へステップ処理完了を通知する。そして次のコマンドを待つ。一方、ステップ処理完了を受けたコマンド処理部241ではローダ100にコマンド応答を返す。以上によりステップ実行の一連の処理を終える。
(実施の形態2)
ユーザプログラム(シーケンス命令記述プログラム310)内に条件分岐命令、無条件分岐命令が含まれている場合、命令の並び順に実行されるとは限らない。そのため、以下のように、マシン語プログラム320内の全ての切れ目のNOP命令322をデバッグサポート処理(デバッグタスク250)への遷移に置換する処理を伴う、ステップ前処理253、継続起動処理252を提供する。
この場合について、図7、図8を参照して説明する。
ブレーク設定によりブレーク状態になるまでの経緯については前出のとおりであるため説明を省略する。PLC200はデバッグタスク250内でローダ100からの次のデバッグコマンドを待っており(コマンド待ち処理251)、ここでステップ実行コマンド420がローダ100によって与えられたとする。
このときコマンド処理部241では、ブレーク中か判別し(ステップ541)、ブレーク中の場合には、ステップコマンド受信フラグをONにして、デバッグタスク250のコマンド待ち処理251にイベント通知を行い(ステップ542)、ステップ処理完了待ちになる(ステップ543)。
デバッグタスク250から制御が戻ったら、戻り値に“正常”をセットして(ステップ544)、ローダサーバ240に制御を戻す。
上述のステップ541でブレーク中でないと判定された場合には、戻り値に“非ブレーク状態”をセットして(ステップ545)、ローダサーバ240に制御を戻す。
一方、デバッグタスク250では、上述のステップ542におけるコマンド処理部241からのイベント通知を契機に、ステップ前処理253を行うが、この中で、図8に例示されるように、現在のPOU(マシン語プログラム320)の全切れ目のNOP命令322をブレーク処理への分岐命令に置換して、デバッグタスク250を終了し、アプリケーションタスク(マシン語プログラム320)に戻る。
もどって実行する命令が分岐命令である場合、分岐命令の実行後、POU(マシン語プログラム320)内のどの命令に実行先が移動するか事前には不明であるが、どこに移動した場合であっても全切れ目にブレーク処理への分岐命令323が仕組まれているため、結局、ブレーク処理へ飛び、ステップ実行中ビット291を参照しONであるのでステップ後処理254を行う。このステップ後処理254内でステップ実行中ビット291をOFFし、コマンド処理部241へステップ処理完了を通知する。
コマンド処理部241は、上述のステップ543で、このステップ処理完了通知を受けてローダ100に完了応答を返す。以上によりステップ実行の一連の処理を終える。
また継続起動コマンド430がローダ100によって与えられた場合、デバッグタスク250内の継続起動処理(後述の図9)内にて命令復元処理(NOP命令322に戻す)を行っているためブレーク処理に飛んでくることはない。
(実施の形態3)
プログラム(PG)からユーザファンクションブロック(UFB)、ユーザファンクション(UFCT)へのコール、あるいはユーザファンクションブロック(UFB)、ユーザファンクション(UFCT)からのリターンのように、複数のPOU(シーケンス命令記述プログラム310)をまたがって実行が移るケースがある。本実施の形態3では、このような場合のステップ実行を実現するデバッグ実行方式を提供する。
本実施の形態3のステップ実行、継続起動について、図7、図9、図10を参照して説明する。
ブレーク設定によりブレーク状態になるまでの経緯については前出のとおりであるため説明を省略する。PLC200はデバッグタスク250内で次のローダ100からのコマンドを待っており(コマンド待ち処理251)、ここでステップ実行コマンド420がローダ100によって与えられたとする。ステップ前処理253(図7)を行うが、この中で現在のPOU(マシン語プログラム320)の全切れ目のNOP命令322をブレーク処理への分岐命令323に置換して、さらにコール命令、リターン命令を実行する実体であるシステムマクロへのJMPテーブル280の内容を、通常走らせるマクロへのJMP先から、ステップ実行要求時用のマクロへのJMPとなるように書き替える(ステップ606)。そしてデバッグタスク250を終了し、アプリPG(マシン語プログラム320)に戻る。
すなわち、ステップ処理では、以下の各処理を実行する。
ブレーク状態でステップ実行コマンドを受ける(ステップ604、ステップ605)。
アプリサポートJMPテーブルのJMP Start_UFBを、デバッグ用Start_UFBDに書き換える(ステップ606)。
全置換されているかチェックし、されていなければ現在の全置換済フラグ290および戻しステップ実行中ビット291をONした後、アプリに戻る(次命令がCAL UFBなら以下実行。CAL UFBでないなら現POUの次の切れ目でブレークする)。
アプリ(マシン語プログラム320)に戻り(ステップ608、ステップ609)、CALL アプリサポートa番を実行する(ステップ610)。
JMPテーブル280にはJMP Start_UFBDがセットされているため、Start_UFBDの実行する(ステップ611)。
次に実行すべきシーケンス命令がコール命令であった場合、例えば図10に示すようにCAL FB,1であれば、アプリPGからアプリサポートJMPテーブルのコールマクロ先(JMPテーブル280のオフセットa)へJMPしたのち(ステップ610)、マクロ先(UFBn)へとさらに飛ぶ。
ここでコールマクロ先であるが、通常時はJMP Start_UFBとなっているのがステップ実行前処理によってJMP Start_UFBDへと書き換わっているため、Start_UFBDへとJMPする(ステップ611)。
Start_UFBDでは通常のユーザFBコール処理に加えて、移動元POUの全置換JMPを元のNOPに戻す処理(ブレークポイント設定による置換分岐は残す)(ステップ612)、移動先FBの全切れ目のNOP命令をCALLブレーク処理に置換(図10のステップ613)し、全置換済フラグをONする処理、を行い通常のStart_UFBと同様にCAL先UFBへ移動する(ステップ614)。
実行がコール先UFB(UFB1)の先頭に移る(図10のステップ615)が、そこにはブレーク処理への分岐命令がおかれているためブレーク処理へ移動する(ステップ601、ステップ602、ステップ603)。ステップ実行中フラグがONしており、デバッグタスクを起動する。デバッグタスク250内でステップ後処理254としてコマンド処理部241へのステップ実行完了通知を行い(ステップ605)、次のコマンド待ち状態となる(ステップ604)。すなわちブレーク状態となる(ステップ608)。
一方、ステップ実行完了通知を受けたコマンド処理部241はローダ100に完了応答を返す。
以上によりステップ実行の一連の処理を終える(ステップ609)。ステップ実行コマンドが繰り返しローダ100から発行される場合にそなえて、JMPテーブル280はステップ実行処理が終了しても復元せず書換えたままとする。
継続起動コマンド430がローダ100によって与えられた場合には、図9に例示されるように、ローダサーバ240のコマンド処理部241では、継続起動コマンド430を受けると、ブレーク中か判定し(ステップ551)、ブレーク中の場合には、継続起動コマンド受信フラグをONして、デバッグタスク250のコマンド待ち処理251にイベント通知を行い(ステップ552)、継続起動処理完了待ちになる(ステップ553)。
ステップ553で、継続起動処理の完了イベントをデバッグタスク250から受け取ると、戻り値に“正常”をセットして(ステップ554)、ローダサーバ240に戻る。
上述のステップ551でブレーク中でないと判定された場合には、戻り値に“非ブレーク状態”をセットして(ステップ555)、ローダサーバ240に戻る。
一方、デバッグタスク250内では、コマンド待ち処理251におけるコマンド処理部241からの上述のステップ552でのイベント通知を契機に、継続起動処理252として、NOP命令の復元、およびJMPテーブル280の復元(ステップ用コールマクロへのJMPを通常用コールマクロJMPへ書き戻す)を行う。その後、完了イベントをコマンド処理部241のステップ553に通知することは上述のとおりである。
ちなみに、ステップ実行する命令がコール命令ではなくリターン命令である場合は、使用されるシステムマクロがStart_UFB(コールサポート関数)/Start_UFBD(デバッグ用コールサポート関数)ではなく、それぞれ、たとえば、図示しないEnd_UFB(リターンサポート関数)/End_UFBD(デバッグ用リターンサポート関数)となる点が異なるのみで、移動元POUの全置換を元に戻す処理(ステップ612)、移動先POUの全切れ目をブレーク処理への分岐命令に置換する処理(ステップ613)を同様に行えばステップ実行が実現できる。
(実施の形態4)
ローダ100のローダプログラム170におけるシーケンス命令記述プログラム310からマシン語プログラム320への変換を行うコンパイラ機能にデバッグサポート要/不要を選択できるモードを持たせ、ブレークやステップ実行が必要な場合は、デバッグサポート機能ありでシーケンス言語からマシン語への変換を、NOP命令322の挿入ありで、行う。生成されたマシン語プログラム320をPLC200に転送し実行させることでユーザは、ローダ100を介して、PLC200におけるマシン語プログラム320の実行時のブレーク、ステップ実行ができるようになることは前出のとおりである。
デバッグを終えて、PLC200を通常の運転に移行した場合、マシン語プログラム320のプログラムサイズを抑制し、システムメモリ220におけるメモリサイズが少なくてもPLC200に格納できるよう、また運転中は可能な限り実行時間を短縮し、スキャンを短くして制御性能を上げたい。
その場合には、デバッグサポート機能を不要とするモードでシーケンス命令記述プログラム310からマシン語プログラム320への変換をNOP命令322の挿入なしで行う。生成されたマシン語プログラム320をPLC200に転送し実行させることでユーザはサイズのより小さいPLC200で高速な実行を行えるようになる。
以上説明したように、本発明の実施の形態1によれば、シーケンス命令記述プログラム310をマシン語プログラム320に変換してPLC200にて実行させることで制御機能を実現するPLC200において、特殊な命令や割込み発生命令をそなえた特異なマイコンを選ばずとも、汎用マイコン210が一般的な汎用マイコンであればブレーク、ステップ実行といったデバッグサポート機能を備えることができ、デバッグのために特別なハードウェア、ソフトウェアを追加したり、割込み発生命令など汎用性に乏しい特殊命令を使うことなく、安価に、汎用マイコン210を使用したPLC200が実現可能となる。
また、上述の実施の形態2によれば、シーケンス命令記述プログラム310等のユーザプログラム中にJMPなどの分岐命令が含まれている場合であっても、デバッグ時のステップ実行が実現可能となる。
また、上述の実施の形態3によれば、シーケンス命令記述プログラム310等のユーザプログラムの中にファンクションブロックやファンクションといったPOUを含み、構造化記述がされている場合であっても、デバッグ時のステップ実行が実現可能となる。
また、上述の実施の形態4によれば、デバッグを終えたマシン語プログラム320をより小さいプログラムサイズにすることができ、PLC200において、より高速な実行時間で同じ制御内容を実現することが可能となる。
なお、本発明は、上述の実施の形態に例示した構成に限らず、その趣旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
たとえば、PLC200とローダ100を別個に実装する場合を例示したが、これに限らず、たとえば、PLC200の中に、ローダプログラム170を実装して、汎用マイコン210に実行させることで、シーケンス命令記述プログラム310からマシン語プログラム320への変換(コンパイル)およびシーケンス命令切れ目テーブル330の生成、デバッグコマンドの発行等のプログラミング支援機能を一体に実装してもよい。
本発明の一実施の形態であるプログラマブルコントローラシステムの作用の一例を示す概念図である。 本発明の一実施の形態であるプログラマブルコントローラシステムの構成の一例を示す概念図である。 本発明の一実施の形態であるプログラマブルコントローラシステムにおけるデバッグ時のブレーク設定処理を示す概念図である。 本発明の一実施の形態であるプログラマブルコントローラシステムにおける命令置換テーブルの構成例を示す概念図である。 本発明の一実施の形態であるプログラマブルコントローラシステムにおけるデバッグ時のブレーク処理を示す概念図である。 本発明の一実施の形態であるプログラマブルコントローラシステムにおけるデバッグタスクの動作例を示す概念図である。 本発明の一実施の形態であるプログラマブルコントローラシステムにおけるデバッグ時のブレーク位置からステップ実行を示す概念図である。 本発明の一実施の形態であるプログラマブルコントローラシステムにおけるデバッグ時において、複数のプログラム間に跨がるブレーク位置からステップ実行でのNOP命令の置換の推移を示す概念図である。 本発明の一実施の形態であるプログラマブルコントローラシステムにおけるデバッグ時の継続起動コマンドの実行例を示す概念図である。 本発明の一実施の形態であるプログラマブルコントローラシステムにおけるデバッグ時において、複数のプログラム間に跨がるブレーク位置からステップ実行を示す概念図である。
符号の説明
100 プログラミング支援装置
110 マイクロプロセッサ
120 主記憶
130 外部記憶装置
140 ユーザインタフェース
150 通信インタフェース
160 オペレーティングシステム
170 ローダプログラム
200 プログラマブルコントローラ
210 汎用マイコン
220 システムメモリ
221 オペレーティングシステム
230 通信インタフェース
231 ローダ通信線
232 被制御機器通信線
240 ローダサーバ
241 コマンド処理部
250 デバッグタスク
251 コマンド待ち処理
252 継続起動処理
253 ステップ前処理
254 ステップ後処理
260 ブレーク成立条件テーブル
270 命令置換テーブル
271 POU種別
272 POU番号
273 POU内アドレス
274 マイコン絶対アドレス
275 置換前命令コード
276 置換後命令コード
280 JMPテーブル
290 全置換済フラグ
291 ステップ実行中ビット
310 シーケンス命令記述プログラム
311 シーケンス命令
320 マシン語プログラム
321 マシン語
322 NOP命令
323 分岐命令
330 シーケンス命令切れ目テーブル
331 オフセット値
410 ブレーク設定コマンド
411 POU種別
412 POU番号
413 POU内相対アドレス
414 ブレーク成立条件
420 ステップ実行コマンド
430 継続起動コマンド

Claims (7)

  1. シーケンス言語で記述された第1プログラムをプログラマブルコントローラを構成するマイクロコンピュータが解釈実行できるマシン語で記述された第2プログラムに変換する機能と、前記シーケンス言語の命令単位に対応して変換された前記マシン語群の各々の先頭に前記マシン語のNOP(ノーオペレーション)命令を挿入する機能と、前記第2プログラムの先頭からの個々の前記NOP命令までの相対位置を列挙した切れ目テーブルを生成する機能と、前記第2プログラムのブレーク(実行停止)位置を前記シーケンス言語の命令単位で指定できるデバッグサポート機能を含み、前記シーケンス言語の命令単位でステップ実行指令を発行するプログラミング支援装置と、
    前記プログラミング支援装置から前記第2プログラムおよび前記切れ目テーブルを受信し前記第2プログラム中の指定された前記ブレーク位置の前記NOP命令をブレーク(実行停止)処理への分岐命令に書き替え前記切れ目テーブルを用いて前記ステップ実行指令に対応したブレーク(実行停止)を実現する機能を備えた前記プログラマブルコントローラと、
    を含むことを特徴とするプログラマブルコントローラシステム。
  2. 請求項1記載のプログラマブルコントローラシステムにおいて、
    さらに、前記ブレーク(実行停止)の状態においてステップ実行指令が発行された場合に、現在実行中のプログラム実行単位(POU)の全切れ目の前記NOP命令を前記ブレーク(実行停止)処理への分岐命令に書き替え、前記シーケンス言語レベルでのステップ実行を実現する機能を備えたことを特徴とするプログラマブルコントローラシステム。
  3. 請求項1記載のプログラマブルコントローラシステムにおいて、
    さらに、前記第2プログラム中に、既存のユーザファンクションブロック(UFB)および/またはユーザファンクション(UFCT)へのコール命令およびリターン命令が存在し、前記プログラム実行単位をまたがるステップ実行になろうとも、前記ステップ実行指令が前記プログラミング支援装置から与えられた際に通常実行するコールサポート関数および/またはリターンサポート関数からデバッグ用コールサポート関数および/またはデバッグ用リターンサポート関数へ分岐するように分岐テーブルを書き替え、前記デバッグ用コールサポート関数および/またはデバッグ用リターンサポート関数内にて、移動元の前記プログラム実行単位の全切れ目の前記NOP命令への復元、移動先の前記プログラム実行単位の全切れ目のブレーク処理への分岐命令置き換えを実施する機能を備え、コール先の前記プログラム実行単位および/またはリターン先の前記プログラム実行単位へのステップ実行が可能なことを特徴とするプログラマブルコントローラシステム。
  4. 請求項1記載のプログラマブルコントローラシステムにおいて、
    さらに、デバッグの要否に応じて、前記第2プログラムの生成時における前記NOP命令の挿入の有無を制御する機能を備え、
    前記NOP命令の分だけ前記第2プログラムの実行時間の短縮、前記第2プログラムのステップ数の削減を実現することを特徴とするプログラマブルコントローラシステム。
  5. 汎用のマイクロコンピュータを使用するプログラマブルコントローラのデバッグ方法であって、
    プログラミング支援装置が、シーケンス言語または中間言語で記述された第1プログラムを前記マイクロコンピュータのマシン語で記述された第2プログラムに変換するときに、前記第2プログラムにおける前記第1プログラムの命令単位の切れ目に、前記マシン語のNOP(ノーオペレーション)命令を挿入するとともに、前記第2プログラムの先頭からの個々の前記NOP命令までの相対位置を列挙した切れ目テーブルを生成し、前記第2プログラムとともにプログラマブルコントローラに送信するステップと、
    前記プログラマブルコントローラが、受信した前記第2プログラムのデバッグ時に、前記NOP命令をブレーク実行停止)処理へ分岐する分岐命令に置き換え前記切れ目テーブルを用いて、前記プログラミング支援装置から受信するステップ実行指令に対応したブレーク(実行停止)を実現するステップと、
    を含むことを特徴とするプログラマブルコントローラのデバッグ方法。
  6. シーケンス言語で記述された第1プログラムを、プログラマブルコントローラを構成するマイクロコンピュータが解釈実行できるマシン語で記述された第2プログラムに変換するときに、前記シーケンス言語の命令単位に対応して変換された前記マシン語群の各々の先頭に前記マシン語のNOP(ノーオペレーション)命令を挿入し、前記第2プログラムを実行する前記プログラマブルコントローラが前記NOP命令をブレーク(実行停止)処理へ分岐する分岐命令に置き換え可能にする機能と、
    前記第2プログラムの先頭からの個々の前記NOP命令までの相対位置を列挙した切れ目テーブルを生成する機能と、
    前記第2プログラムと前記切れ目テーブルを前記プログラマブルコントローラに転送する機能と、
    前記プログラマブルコントローラが前記NOP命令を前記分岐命令に書き換えた前記第2プログラムを実行する時に前記切れ目テーブルを使用し、前記第2プログラムのブレーク(実行停止)位置を前記シーケンス言語の命令単位で指定できるデバッグサポート機能と、
    前記シーケンス言語の命令単位でステップ実行指令を発行する機能と、
    をプログラミング支援装置を構成するコンピュータにて実現することを特徴とするプログラミング支援プログラム。
  7. 汎用のマイクロコンピュータを使用するプログラマブルコントローラのデバッグ制御プログラムであって、
    シーケンス言語または中間言語で記述された第1プログラムの命令単位に対応した前記マイクロコンピュータのマシン語を含み、前記命令単位の切れ目に前記マシン語のNOP(ノーオペレーション)命令が挿入された第2プログラムおよび前記第2プログラムの先頭からの個々の前記NOP命令までの相対位置を列挙した切れ目テーブルをプログラミング支援装置から受信し、受信した前記第2プログラム中の指定された前記NOP命令を、ブレーク(実行停止)処理への分岐命令に書き替える機能と、前記切れ目テーブルを用いて前記プログラミング支援装置から受信したステップ実行指令に対応してブレーク(実行停止)を実現する機能と、を前記マイクロコンピュータにて実現することを特徴とするプログラマブルコントローラのデバッグ制御プログラム。
JP2006075234A 2006-03-17 2006-03-17 プログラマブルコントローラシステム、プログラマブルコントローラのデバッグ方法、プログラミング支援プログラム、プログラマブルコントローラのデバッグ制御プログラム Active JP4784355B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006075234A JP4784355B2 (ja) 2006-03-17 2006-03-17 プログラマブルコントローラシステム、プログラマブルコントローラのデバッグ方法、プログラミング支援プログラム、プログラマブルコントローラのデバッグ制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006075234A JP4784355B2 (ja) 2006-03-17 2006-03-17 プログラマブルコントローラシステム、プログラマブルコントローラのデバッグ方法、プログラミング支援プログラム、プログラマブルコントローラのデバッグ制御プログラム

Publications (2)

Publication Number Publication Date
JP2007249828A JP2007249828A (ja) 2007-09-27
JP4784355B2 true JP4784355B2 (ja) 2011-10-05

Family

ID=38594011

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006075234A Active JP4784355B2 (ja) 2006-03-17 2006-03-17 プログラマブルコントローラシステム、プログラマブルコントローラのデバッグ方法、プログラミング支援プログラム、プログラマブルコントローラのデバッグ制御プログラム

Country Status (1)

Country Link
JP (1) JP4784355B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5155829B2 (ja) * 2008-11-18 2013-03-06 株式会社東芝 プログラマブルコントローラのダイアグラムのデバッグシステム、そのプログラミング装置及びそのプログラム
KR101743836B1 (ko) 2015-10-22 2017-06-07 엘에스산전 주식회사 범용 마이크로 프로세서를 이용한 plc의 디버깅 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01205348A (ja) * 1988-02-12 1989-08-17 Nec Corp プログラムデバッグ方式
JPH08137521A (ja) * 1994-11-15 1996-05-31 Toshiba Corp プログラム管理方法
JPH09265413A (ja) * 1996-03-29 1997-10-07 Matsushita Electric Works Ltd プログラマブルコントローラのデバッグシステム
JP3526232B2 (ja) * 1999-02-19 2004-05-10 Tdk株式会社 ステップ実行型プログラマブルコントローラのオンラインエディット機能処理方法

Also Published As

Publication number Publication date
JP2007249828A (ja) 2007-09-27

Similar Documents

Publication Publication Date Title
US9514026B2 (en) Debugging analysis in running multi-user systems
CN100555218C (zh) 用于改善片上仿真系统中高级语言的仿真速度的装置和方法
JP4388518B2 (ja) スレッドデバッグ装置、スレッドデバッグ方法及びプログラム
US8327316B2 (en) Compilation model
JP2011070256A (ja) デバッガおよびプログラム
JP2002099312A (ja) プログラマブルコントローラおよび制御プログラム開発支援装置
KR101264615B1 (ko) 게임 서버의 작업 파일 실행 장치 및 방법
US20060143523A1 (en) Apparatus and method for debugging embedded software
WO2020039900A1 (ja) 情報処理装置およびプログラム
JP4784355B2 (ja) プログラマブルコントローラシステム、プログラマブルコントローラのデバッグ方法、プログラミング支援プログラム、プログラマブルコントローラのデバッグ制御プログラム
JP6874706B2 (ja) アプリケーションプログラムを生成する方法、装置、プログラム
JP2007086921A (ja) 機械装置制御プログラム実行システム
JP7172864B2 (ja) サポート装置およびサポートプログラム
CN100349121C (zh) 嵌入式并行计算系统以及嵌入式并行计算方法
JP6318214B2 (ja) 汎用マイクロプロセッサを用いたplcのデバッグ方法
CN112579460B (zh) 一种基于多核嵌入式系统的多级调试方法
JP2005108082A (ja) デバイスドライバのインターフェース方法
JP4479738B2 (ja) プログラマブルコントローラ
JP4877257B2 (ja) プログラマブルコントローラ、プログラマブルコントローラ支援装置、及びプログラマブルコントローラシステム
JP2008204023A (ja) プログラマブルコントローラシステム、プログラマブルコントローラのデバッグ方法
JP7234810B2 (ja) サポート装置およびサポートプログラム
JP2005174045A (ja) ソースプログラム変換装置、ソースプログラム変換方法、ソースプログラム変換プログラム、および、プログラム記録媒体
EP4446889A1 (en) Device debugging method, device, and storage medium
US20240354076A1 (en) Driver generation device and driver generation method
EP0664509A1 (en) Method and apparatus for passing control from a first process to a second process

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20080919

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20080919

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080919

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110118

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20110422

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: 20110614

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: 20110627

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4784355

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: 20140722

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250