JP4802775B2 - Controller support device and programmable controller - Google Patents

Controller support device and programmable controller Download PDF

Info

Publication number
JP4802775B2
JP4802775B2 JP2006064365A JP2006064365A JP4802775B2 JP 4802775 B2 JP4802775 B2 JP 4802775B2 JP 2006064365 A JP2006064365 A JP 2006064365A JP 2006064365 A JP2006064365 A JP 2006064365A JP 4802775 B2 JP4802775 B2 JP 4802775B2
Authority
JP
Japan
Prior art keywords
instruction
controller
code
user program
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
JP2006064365A
Other languages
Japanese (ja)
Other versions
JP2007241728A (en
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 JP2006064365A priority Critical patent/JP4802775B2/en
Publication of JP2007241728A publication Critical patent/JP2007241728A/en
Application granted granted Critical
Publication of JP4802775B2 publication Critical patent/JP4802775B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Programmable Controllers (AREA)

Description

本発明はコントローラ支援装置およびプログラマブルコントローラに係り、特に、ユーザ側のアプリケーションプログラム(以下、「アプリケーション」と略称する)を実行するCPUとして汎用マイコンが使用される場合のプログラマブルコントローラと、ユーザプログラムデバッグ機能により、このプログラマブルコントローラを支援するコントローラ支援装置およびプログラマブルコントローラに関する。   The present invention relates to a controller support device and a programmable controller, and in particular, a programmable controller and a user program debugging function when a general-purpose microcomputer is used as a CPU for executing a user-side application program (hereinafter referred to as “application”). Thus, the present invention relates to a controller support device and a programmable controller that support the programmable controller.

プログラマブルコントローラは、FA(Factory Automation)などの用途に使用されているコンピュータである。
従来、プログラマブルコントローラの制御対象は、スイッチのON/OFFなど、ビット操作が主だったため、ビット演算を高速に行える専用LSI(ASIC)が用いられることが多かった。しかしながら、ASICは高価であって、低性能で済ませるべき製品や、低コストにすることが要求される製品には用いることができなかった。また、近年のLSIの高速化に伴い、ASICを用いなくても高速の汎用マイコンを用いることで十分に要求する演算性能が得られることがあるので、実際、ユーザプログラムの実行LSIとしては、ASICの代用として汎用マイコンを用いたプログラマブルコントローラも多数存在する。
The programmable controller is a computer used for applications such as FA (Factory Automation).
Conventionally, a programmable controller is controlled mainly by bit operations such as ON / OFF of a switch, and therefore a dedicated LSI (ASIC) that can perform bit operations at high speed is often used. However, ASICs are expensive, and cannot be used for products that should have low performance or products that require low cost. In addition, with the recent increase in speed of LSIs, there is a case where a sufficiently high computing performance can be obtained by using a high-speed general-purpose microcomputer without using an ASIC. There are also many programmable controllers using general-purpose microcomputers as substitutes.

このような汎用マイコンの中でも、RISC(縮小命令セットコンピュータ)命令を使用したマイコン(以下、「汎用RISCマイコン」と称する)は、その命令セットの簡潔さから、処理速度の高速化に適しており、かつCISC(複合命令セットコンピュータ)命令を用いたマイコンよりもコードの移植性に優れているので、コントローラの専用ASICで実行されていたコントローラ専用機械語の実行処理の移植が可能なCPUとして使用されている。   Among such general-purpose microcomputers, microcomputers using RISC (reduced instruction set computer) instructions (hereinafter referred to as “general-purpose RISC microcomputers”) are suitable for increasing the processing speed because of the simplicity of the instruction set. Also, since it is superior in code portability to a microcomputer using a CISC (Compound Instruction Set Computer) instruction, it is used as a CPU capable of porting execution processing of a controller-dedicated machine language executed by a controller-dedicated ASIC. Has been.

なお、プログラマブルコントローラのためのデバッグシステムとしては、例えば、特許文献1に開示されているように、制御プログラムを変更することなく、1行ずつのステップ実行を可能にしたものが提案されている。
特開平9−265413号公報
As a debugging system for a programmable controller, for example, as disclosed in Patent Document 1, a system that enables step execution line by line without changing a control program has been proposed.
JP-A-9-265413

ところで、上記背景技術で述べた従来のプログラマブルコントローラにあっては、例えば、前述の汎用RISCマイコンを使ったコントローラの場合、ユーザプログラムのデバッグ機能を提供することが一つの課題となっており、このようなデバッグ機能の1例として、ブレーク機能を挙げることができる。   By the way, in the conventional programmable controller described in the background art, for example, in the case of a controller using the above-mentioned general-purpose RISC microcomputer, providing a debugging function for a user program has become one problem. An example of such a debugging function is a break function.

このブレーク機能では、単にユーザプログラムの実行を停止するのみでなく、その時点での演算結果の参照や演算実行フラグの情報表示など、幾つかの実行したい処理が有り、それらの複雑な処理をユーザがブレーク対象に選んだ1命令に対して行う必要がある。   In this break function, there are some processes that you want to execute, such as referencing the operation results at that time and displaying the information of the operation execution flag, as well as simply stopping the execution of the user program. Must be performed for one instruction selected for break.

ASICを用いてユーザプログラムの実行を実現している従来のコントローラでは、現在実行しているユーザプログラムのプログラム番号(以下、「実行PC」と略称する)と、ユーザが停止させたいプログラム位置とを、ASIC内部の比較回路(コンパレータ)によってハードウェア的に比較し、一致した場合に内部割込み信号を発生して、その割込み処理内で前記ブレーク機能を実現することができるように構成されている。   In a conventional controller that implements execution of a user program using an ASIC, the program number of the currently executing user program (hereinafter abbreviated as “execution PC”) and the program position that the user wants to stop are displayed. The hardware is compared by a comparison circuit (comparator) in the ASIC, and an internal interrupt signal is generated when they match, and the break function can be realized in the interrupt processing.

けれども、汎用マイコンを用いたコントローラでは、前記のようなハードウェアを用いる手段での実行アドレスの比較は不可能なので、ユーザプログラムの中の実行を停止させたい位置にブレーク処理を行うためのブレークコード埋め込んで予めコンパイルを行うこととし、実行時、制御の流れが、このブレーク処理に遭遇する都度、コントローラにダウンロードしてデバッグを行わせるようにしていた。   However, in a controller using a general-purpose microcomputer, it is impossible to compare execution addresses by means using hardware as described above, so a break code for performing break processing at a position where execution is to be stopped in the user program. The program is embedded and compiled in advance, and at the time of execution, whenever the control flow encounters this break process, it is downloaded to the controller and debugged.

図11は、従来の汎用マイコンコントローラにおけるブレークコードの配置を示す説明図である。
図11(a)に示すように、コントローラメモリ71には、当初、ユーザプログラム72と、システムファームウェア74とが配置されているが、デバック機能を実行させる場合、図11(b)に示すように、ユーザプログラム72には、ユーザプログラム72aとユーザプログラム72aとの間にブレーク処理のコード73が挿入される。
FIG. 11 is an explanatory diagram showing the arrangement of break codes in a conventional general-purpose microcomputer controller.
As shown in FIG. 11A, a user program 72 and system firmware 74 are initially arranged in the controller memory 71. However, when the debug function is executed, as shown in FIG. In the user program 72, a break processing code 73 is inserted between the user program 72a and the user program 72a.

しかしながら、このように構成した場合、
(1) ユーザプログラム領域の多くがデバッグ機能のサブルーチンで消費されてしまう、
(2) デバッグ完了の時点では、ユーザが明示的にデバッグ処理を削除した正規のユーザプログラムをダウンロードしない限り、ユーザプログラムにデバッグコードが埋め込まれたままとなり、誤動作の原因になる、
という問題点があり、この解決も本発明の課題であった。
However, when configured in this way,
(1) Most of the user program area is consumed by the subroutine of the debug function.
(2) At the time of debugging completion, unless the user downloads a legitimate user program from which debug processing has been explicitly deleted, the debug code remains embedded in the user program, causing malfunction.
This problem is also an object of the present invention.

本発明は、上記従来の問題点に鑑みてなされたものであって、デバッグコードをユーザプログラム中に含める手間を無くすと共に、デバッグ作業に付随するコンパイルとダウンロードとを不要にすることができるコントローラ支援装置を提供することを目的としている。   The present invention has been made in view of the above-mentioned conventional problems, and eliminates the trouble of including debug code in a user program and eliminates the need for compiling and downloading accompanying debugging work. The object is to provide a device.

本発明の他の目的は、運転中のいかなるタイミングであっても、ユーザプログラム中の指定された命令を自動的にデバッグコードで置き換えることができるプログラマブルコントローラを提供することにある。   Another object of the present invention is to provide a programmable controller that can automatically replace specified instructions in a user program with debug code at any timing during operation.

上記課題を解決するために、本発明に係るコントローラ支援装置は、デバッグ機能を備え、ブレーク設定等のデバッグ指示命令を含むユーザプログラムを実行するコントローラ支援装置であって、前記ユーザプログラムを読み込む手段と、前記ユーザプログラムを構成するコントローラ専用機械語を汎用マイコンの実行コードに翻訳する翻訳手段と、縮小命令セットに対応し、前記汎用マイコンの実行コードに変換されたユーザプログラムを実行する実行手段と、前記汎用マイコンの実行コードに変換されたユーザプログラム内の擬似命令コードに、デバッグ用のコントローラファームウェアへの絶対分岐命令を埋め込む手段と、を備え、ユーザからのブレーク設定等のデバッグ指示によりブレーク指定されたユーザプログラムコードを、前記擬似命令コード内の絶対分岐命令への相対分岐命令に置き換えることで、前記実行手段の実行中に、デバッグ機能を有効化させることを特徴とする。   In order to solve the above problems, a controller support apparatus according to the present invention is a controller support apparatus that has a debugging function and executes a user program including a debug instruction instruction such as a break setting, and means for reading the user program; Translation means for translating a controller-dedicated machine language constituting the user program into an execution code of a general-purpose microcomputer; and execution means for executing a user program corresponding to the reduced instruction set and converted into the execution code of the general-purpose microcomputer; Means for embedding an absolute branch instruction to the controller firmware for debugging in the pseudo instruction code in the user program converted to the execution code of the general-purpose microcomputer, and a break is designated by a debug instruction such as a break setting from the user The previous user program code By replacing the relative branch instruction to an absolute branch instruction directive in the code during execution of said execution means and thereby enable the debugging features.

また、前記コントローラ支援装置において、前記実行手段は、RISC(即ち、縮小命令セット・コンピュータ命令)を使用したマイコンにより実現されることを特徴とする。
また、本発明に係るプログラマブルコントローラは、請求項1または請求項2記載のコントローラ支援装置における実行手段を構成するプログラマブルコントローラであって、デバッグ処理への分岐命令をテーブルとして、固定番地に配置することで、コントローラ内のデバッグ処理ファームウェアのコードアドレス変更が前記コントローラ支援装置へ影響しないように構成されたことを特徴とする。
In the controller support device, the execution means is realized by a microcomputer using RISC (that is, a reduced instruction set / computer instruction).
Moreover, the programmable controller which concerns on this invention is a programmable controller which comprises the execution means in the controller assistance apparatus of Claim 1 or Claim 2, Comprising: The branch instruction to a debugging process is arranged at a fixed address as a table. Thus, the code address change of the debug processing firmware in the controller is configured not to affect the controller support device.

本発明では、デバッグ処理手続きを予めコントローラ本体のシステムファームウェア上に構成し、ユーザアプリケーションの中の、支援ツールで参照するためだけに使われるコントローラでは実行されないコード(以下、「擬似命令コード」と呼称する)内にコントローラシステムファームウェア内のデバッグ処理への絶対分岐命令を埋め込んでおき、ユーザからのブレーク設定などのデバッグ操作が行われた段階で、ブレーク対象の命令を、予め埋め込んでおいた前記絶対分岐命令への相対分岐命令に置き換えることで、レジスタへの戻り番地の保存とシステムファームウェアへの分岐を実現している。   In the present invention, a debugging process procedure is configured in advance on the system firmware of the controller main body, and a code (hereinafter referred to as “pseudo instruction code”) that is not executed by a controller that is used only for reference by a support tool in a user application. The absolute branch instruction to the debugging process in the controller system firmware is embedded in the above, and when the debugging operation such as the break setting from the user is performed, the break target instruction is embedded in advance. Replacing with a branch instruction relative to the branch instruction realizes saving of the return address to the register and branching to the system firmware.

また、この時、分岐先をデバッグ処理そのものから分岐命令テーブルとすることで、コントローラのファームウェアの変更に起因する支援ツールの生成コードの修正を不要とし、また、コントローラと支援ツールとのバージョン依存性や機種依存性を排除するので、コントローラ本体、支援ツールとも独立して機能を更新することが可能となる。   At this time, the branch destination is changed from the debugging process itself to the branch instruction table, so that it is not necessary to modify the generated code of the support tool due to the controller firmware change, and the version dependency between the controller and the support tool And the dependency on the model is eliminated, so that the function can be updated independently of the controller body and the support tool.

以上説明したように、本発明のプログラマブルコントローラ及びその支援装置によれば、デバッグコードをユーザプログラム中に含める必要がないので、従来のように、デバッグ作業の都度、コンパイルとダウンロードとを行う必要がなくなる効果がある。   As described above, according to the programmable controller and its support device of the present invention, it is not necessary to include debug code in the user program. It has the effect of disappearing.

また、デバッグ完了時点でのデバッグ用コードの取り忘れなどの不具合を防ぐことができる効果がある。
さらに、運転中のいかなるタイミングであっても、指定されたユーザプログラムの命令を、自動的にデバッグコードに置き換えることができるので、コントローラ本体の機能アップや機種変更によるデバッグ処理コードのメモリ上の実装位置を支援ツール側で考慮する必要がなくなり、コントローラ本体と、その支援ツールとの変更の自由度が向上する効果がある。
In addition, there is an effect that it is possible to prevent problems such as forgetting to take debug code when debugging is completed.
In addition, it is possible to automatically replace specified user program instructions with debug code at any time during operation. There is no need to consider the position on the support tool side, and the degree of freedom of change between the controller main body and the support tool is improved.

以下、本発明のプログラマブルコントローラ及びその支援装置の最良の実施形態について、図面を参照して詳細に説明する。
図1は、本発明の実施形態に係るプログラマブルコントローラを含むコントローラ支援装置の概念的な構成を示す構成図である。
BEST MODE FOR CARRYING OUT THE INVENTION Hereinafter, a preferred embodiment of a programmable controller and its support apparatus according to the present invention will be described in detail with reference to the drawings.
FIG. 1 is a configuration diagram showing a conceptual configuration of a controller support device including a programmable controller according to an embodiment of the present invention.

同図において、本実施形態のコントローラ支援装置は、ユーザのプログラムを入力するコントローラ支援部10と、前記入力されたプログラムを実行形式のプログラムに変換するコンパイラ11と、前記実行形式のプログラムを伝送する伝送装置12と、前記実行形式のプログラムを実行するコントローラ13(本発明の実施形態に係るプログラマブルコントローラ)と、を備える。   In the figure, the controller support apparatus of the present embodiment transmits a controller support unit 10 for inputting a user program, a compiler 11 for converting the input program into an executable program, and the executable program. The transmission apparatus 12 and the controller 13 (programmable controller which concerns on embodiment of this invention) which performs the program of the said execution format are provided.

コントローラ支援部10は、前記ユーザのプログラムの入力を受け付ける入力装置15と、前記入力されたプログラムを表示する表示装置14と、前記入力されたプログラムを記憶するための記憶媒体16と、を備える。   The controller support unit 10 includes an input device 15 that receives an input of the user's program, a display device 14 that displays the input program, and a storage medium 16 that stores the input program.

なお、図1に示す構成では、コンパイラ11とコントローラ支援部10とを異なる構成要素として示しているが、両者は、デバッグ機能付きの同一のハードウェア(例えばパソコン)で構成されていてもよい。また、伝送装置12についても、これらと同一のハードウェア要素で構成されていてもよい。よって、本発明の実施形態に係るコントローラ支援装置の他の構成として、前記の構成に加えて、コンパイラ11と、伝送装置12まで含めた構成とすることも可能である。   In the configuration shown in FIG. 1, the compiler 11 and the controller support unit 10 are shown as different components, but both may be configured by the same hardware (for example, a personal computer) with a debugging function. Further, the transmission apparatus 12 may also be configured with the same hardware elements as these. Therefore, as another configuration of the controller support device according to the embodiment of the present invention, a configuration including the compiler 11 and the transmission device 12 in addition to the above-described configuration may be employed.

以下、本実施形態のプログラマブルコントローラの機能について説明する。
ユーザのプログラムは、コントローラ支援部10の入力装置15に入力され、表示装置14に表示されると共に、記録媒体16に記録される。
Hereinafter, the function of the programmable controller of this embodiment will be described.
The user program is input to the input device 15 of the controller support unit 10, displayed on the display device 14, and recorded on the recording medium 16.

コンパイラ11は、前記入力されたプログラムを実行形式のプログラム(オブジェクトコード)に変換する。
伝送装置12は、この実行形式のプログラムをコントローラ13に伝送する。
The compiler 11 converts the input program into an executable program (object code).
The transmission device 12 transmits the execution format program to the controller 13.

コントローラ13は、この伝送された実行形式のプログラムを一旦格納し、実行する。
本実施形態に係るコントローラ13は、汎用RISCマイコンを用いたコントローラであり、そのためコントローラ13の実行コードは、汎用マイコン用機械語である。よって、コンパイラ11は、ユーザプログラム→コントローラ用専用機械語→汎用マイコン用機械語の順で、コード変換を行うものとする。
The controller 13 temporarily stores the transmitted execution format program and executes it.
The controller 13 according to the present embodiment is a controller using a general-purpose RISC microcomputer, and therefore the execution code of the controller 13 is a general-purpose microcomputer machine language. Therefore, the compiler 11 performs code conversion in the order of user program → controller dedicated machine language → general purpose microcomputer machine language.

以下、本実施形態に係るコントローラ13について説明する。
コントローラ13は、汎用RISCマイコン(図示は省略)と、ユーザプログラムと、ユーザプログラムが使用するデータのデータ領域を有するRAMと、システムファームウェアを格納するROMなどから成る(勿論、このコントローラ13の構成は、コントローラハードウェア機能の一部機能を実現するための構成であり、その他に、通信のためのインタフェース等があってもよい)。
Hereinafter, the controller 13 according to the present embodiment will be described.
The controller 13 includes a general-purpose RISC microcomputer (not shown), a user program, a RAM having a data area for data used by the user program, a ROM for storing system firmware, and the like. It is a configuration for realizing a part of the controller hardware function, and in addition, there may be an interface for communication.

ユーザプログラムは、書換え可能なROM(フラッシュメモリ等)に一旦格納しておき、そこで実行することも可能であるが、処理を高速化するため、ダウンロード時はフラッシュメモリに書込み、よりアクセス速度が高速のRAMに展開してから実行することが好ましい。   The user program can be temporarily stored in a rewritable ROM (flash memory, etc.) and executed there. However, in order to speed up the processing, it is written to the flash memory at the time of download, and the access speed is higher. It is preferable to execute the program after expanding it in the RAM.

コントローラ13として、市販されている既成のコントローラ本体を使用する場合、そのシステムファームウェアは、本発明に係る支援ツールとは異なる汎用マイコン用ファームウェア開発環境で開発されたものである。また、このシステムファームウェアは、既に前記既成のコントローラ本体上に実装されている。   In the case of using a commercially available controller main body as the controller 13, the system firmware is developed in a general-purpose microcomputer firmware development environment different from the support tool according to the present invention. The system firmware is already mounted on the existing controller body.

しかしながら、ユーザプログラムは、前述の支援ツール上で作成され、前述のとおり、コンパイラ11により、機械語に変換されており、ユーザプログラムによってアクセスされるのは、ユーザデータメモリとユーザプログラムに限られるので、通常、前記システムファームウェア上の関数のアドレスは、ユーザプログラム内からは参照されない。   However, the user program is created on the above-described support tool, and is converted into machine language by the compiler 11 as described above. Since the user program can access only the user data memory and the user program. Normally, the address of the function on the system firmware is not referenced from within the user program.

以下、本発明で用いるRISCマイコンの分岐(ジャンプ)命令について説明する。分岐命令には相対分岐と絶対分岐がある。
相対分岐命令は、主にサブルーチンコールなどで用いられる命令である。ここで、相対という用語の意味は、当該実行命令(相対分岐命令)のアドレスをオリジンアドレスとして、前方何ワード(若しくは後方何ワード)分移動したアドレスに分岐せよという指定が可能であることを示している。
The branch (jump) instruction of the RISC microcomputer used in the present invention will be described below. Branch instructions include relative branches and absolute branches.
A relative branch instruction is an instruction mainly used in a subroutine call or the like. Here, the term “relative” means that it is possible to specify branching to an address that is moved by how many words (or what number of words behind) the address of the execution instruction (relative branch instruction) is the origin address. ing.

この相対分岐命令は、ジャンプサイズの違いなどはあるが、汎用のRISCマイコンの場合、1命令で構成されることが一般的である。また、呼び出されたサブルーチンは、その処理が終わった後の復帰先として、前記分岐命令の次の命令に戻る必要があるので、当該分岐実行時に、次の実行アドレス(戻りPC)がレジスタやスタックに退避され、当該サブルーチンの終了時に、この値をプログラムカウンタレジスタ(PC)にセットすることで、当該サブルーチンからの復帰を実現している。   Although this relative branch instruction has a difference in jump size, in the case of a general-purpose RISC microcomputer, it is generally composed of one instruction. Since the called subroutine needs to return to the instruction next to the branch instruction as a return destination after the processing is completed, the next execution address (return PC) is set to a register or stack at the time of execution of the branch. When the subroutine is finished, this value is set in the program counter register (PC) to realize the return from the subroutine.

一方、絶対分岐命令は、特定の物理番地をPCにセットすることで、分岐を実現する命令である。PCに設定可能な番地であれば、いかなる番地にも分岐可能である。マイコンによっては、絶対分岐用の命令は存在せず、汎用のレジスタ上にアドレスを生成し、それをPCに移動させることで、分岐を実現している。なお、絶対分岐命令においては、前述の相対分岐命令における戻りPCの退避は行われない。   On the other hand, the absolute branch instruction is an instruction for realizing a branch by setting a specific physical address in the PC. Any address that can be set in the PC can be branched to any address. Some microcomputers do not have instructions for absolute branching, and branching is realized by generating an address on a general-purpose register and moving it to a PC. In the absolute branch instruction, the return PC in the relative branch instruction is not saved.

以下、前述の相対分岐命令と絶対分岐命令を示す例として、ARM社の汎用RISCマイコンであるARMシリーズのアセンブラコードを参照して説明する。ARM社の汎用RISCマイコンは、汎用RISCマイコンのコアとして、世界中で広く用いられている(その仕様は、ARM社のマニュアル等を参照)。   Hereinafter, an example showing the above-described relative branch instruction and absolute branch instruction will be described with reference to an ARM series assembler code which is a general-purpose RISC microcomputer manufactured by ARM. ARM's general-purpose RISC microcomputer is widely used all over the world as the core of general-purpose RISC microcomputer (refer to ARM's manual etc. for its specifications).

図2は、ARM社の汎用RISCマイコンのレジスタを示す説明図である。
同図において、ARM社の汎用RISCマイコンは、汎用レジスタとしてR0〜R15(21)を備える。R14は戻りPCを保存するためのリンクレジスタ(LR)(22)として使用され、R15は実行PCを置数するレジスタ(PC)(23)として使用されている。
FIG. 2 is an explanatory diagram showing registers of a general-purpose RISC microcomputer manufactured by ARM.
In the figure, the ARM general-purpose RISC microcomputer includes R0 to R15 (21) as general-purpose registers. R14 is used as a link register (LR) (22) for storing the return PC, and R15 is used as a register (PC) (23) for storing the execution PC.

図3は、相対分岐命令と絶対分岐命令をARM社の汎用RISCマイコンのアセンブラコードで例示した説明図である。
同図において、blと書かれた命令(符号31)が相対分岐命令であり、この命令が実行されると、「Calc」というラベルの付いた命令への相対分岐が行われる。実際の機械語では、このようなラベルは、当該ラベルの付いた命令までの相対コード数に変換されている。この命令bl(符号31)にて、前記PC(図2の符号23で示す汎用レジスタ)への相対アドレスオフセットの加算と、前記LR(図2の符号22で示される汎用レジスタ)への戻りPC(図3の符号34で示す命令のPC)のセットとが同時に行われる。
FIG. 3 is an explanatory diagram illustrating relative branch instructions and absolute branch instructions as assembler codes of a general-purpose RISC microcomputer manufactured by ARM.
In the drawing, an instruction (reference numeral 31) written as bl is a relative branch instruction, and when this instruction is executed, a relative branch to an instruction labeled “Calc” is performed. In an actual machine language, such a label is converted into a relative code number up to the instruction with the label. With this instruction bl (reference numeral 31), addition of a relative address offset to the PC (general-purpose register indicated by reference numeral 23 in FIG. 2) and return to the LR (general-purpose register indicated by reference numeral 22 in FIG. 2) PC (PC of the instruction indicated by reference numeral 34 in FIG. 3) is set at the same time.

図3の符号33で示すmov命令は、レジスタ間の値の移動命令であるが、ここでは前記LRから前記PCへ値を移動しており、制御の流れ(実行)を復帰先へ移す絶対分岐命令の役割を果たしている。よって、このmov命令の実行によって、符号31で示すbl命令の次の命令(即ち符号34で示すmov命令)のPCに分岐することになる。   The mov instruction indicated by reference numeral 33 in FIG. 3 is a value movement instruction between registers. Here, a value is moved from the LR to the PC, and an absolute branch that moves the control flow (execution) to the return destination. Plays the role of instruction. Therefore, execution of this mov instruction branches to the PC of the instruction next to the bl instruction indicated by reference numeral 31 (that is, the mov instruction indicated by reference numeral 34).

以下、本発明で想定されるユーザプログラムの例を説明する。
一般に、プログラマブルコントローラで実行されるユーザプログラムには、プログラマブルコントローラ上のユーザプログラムだけで、前述の支援ツール上にユーザの作成したプログラムが復元できるように、様々な情報が埋め込まれている。これらの情報は擬似命令と呼ばれ、通常は実行されないコードとしてコントローラに格納される。
Hereinafter, an example of a user program assumed in the present invention will be described.
In general, various information is embedded in the user program executed by the programmable controller so that the program created by the user can be restored on the above-described support tool only by the user program on the programmable controller. These pieces of information are called pseudo instructions and are stored in the controller as codes that are not normally executed.

コントローラ13として汎用マイコンを用いた場合、この擬似命令は次に有効な実効命令へのジャンプ命令とし、このジャンプ命令とジャンプ先の命令との間に任意の情報を格納しておく。このようにして格納される任意の情報としては、プログラム名や、プログラムの作成年月日、プログラム画面表記時の改ページ情報などが挙げられる。   When a general-purpose microcomputer is used as the controller 13, the pseudo instruction is a jump instruction to the next effective effective instruction, and arbitrary information is stored between the jump instruction and the jump destination instruction. Arbitrary information stored in this way includes a program name, a program creation date, page break information when the program screen is displayed, and the like.

図4は、本実施形態に係るプログラマブルコントローラで実行されるユーザプログラムの1例を示す説明図である。
同図に示すように、コントローラ13で実行されるユーザプログラム(ユーザアプリケーション)は、複数のプログラムから構成されるため、それらを識別するためのプログラム番号(符号41)が、各プログラムに付けられる。その上で、ユーザは処理したいプログラムコード(符号42)を記述する。
FIG. 4 is an explanatory diagram showing an example of a user program executed by the programmable controller according to the present embodiment.
As shown in the figure, since the user program (user application) executed by the controller 13 is composed of a plurality of programs, a program number (reference numeral 41) for identifying them is given to each program. After that, the user describes the program code (reference numeral 42) to be processed.

図5は、図4で示したユーザプログラムのコントローラ専用コードへの変換例を示す説明図である。
同図において、DEF命令(符号51)は、プログラム番号(符号41)をコード内に保存しておくための擬似コードであり、コード実行上は無処理である。同様に、END命令(符号53)も、プログラムの終了位置を示すための擬似コードであり、コード実行上は無処理である。この例では、簡単のため、実行コード(符号52)中に、A、B、及びCなる変数名を使用しているが、通常はコントローラ13のアドレス番号が割り付けられている。
FIG. 5 is an explanatory diagram showing an example of conversion of the user program shown in FIG. 4 into a controller-dedicated code.
In the figure, a DEF instruction (reference numeral 51) is pseudo code for storing a program number (reference numeral 41) in the code, and is not processed in code execution. Similarly, the END instruction (reference numeral 53) is pseudo code for indicating the end position of the program, and is not processed in code execution. In this example, for the sake of simplicity, variable names A, B, and C are used in the execution code (reference numeral 52), but the address number of the controller 13 is normally assigned.

図6は、実際にコントローラで実行される汎用マイコンのコードの1例を示す説明図である。
同図に示すように、図5のDEF命令(符号51)は、実際にコントローラで実行される汎用マイコンのコードでは、b命令(符号61)、PG0の情報(符号62)、及びジャンプラベル(符号63)に変換される。
FIG. 6 is an explanatory diagram showing an example of a code of a general-purpose microcomputer actually executed by the controller.
As shown in FIG. 5, the DEF instruction (reference numeral 51) in FIG. 5 is a b-instruction (reference numeral 61), PG0 information (reference numeral 62), and a jump label (reference numeral 61) in the general-purpose microcomputer code actually executed by the controller. 63).

前記b命令は、分岐命令の一種であって、LRへの戻りPCの退避を行わない分岐命令である。ここでは、前述の支援ツールで使用するための前記PG0の情報(符号62)部分を読み飛ばし、ジャンプラベル(符号63)へ実行を移すために使用している。PG0の情報は、通常のプログラム実行では実行されることはないので、保存しておきたい任意の情報を格納しておくことが可能である。なお、符号64,65,66で示すコードは、図5に示す実行コードが汎用マイコンのコードで表記されたものであるが、本発明では重要部分ではないので、説明は省略する。   The b instruction is a kind of branch instruction and is a branch instruction that does not save the return PC to the LR. Here, the information (reference numeral 62) of the PG0 for use in the above-described support tool is skipped and used to move the execution to the jump label (reference numeral 63). Since the information of PG0 is not executed by normal program execution, it is possible to store arbitrary information that is desired to be saved. Note that the codes denoted by reference numerals 64, 65, and 66 are the execution codes shown in FIG. 5 expressed as codes of general-purpose microcomputers, but they are not important parts in the present invention, and thus description thereof is omitted.

図7は、デバッグ処理への絶対分岐命令を含むユーザプログラムの1例を示す説明図である。
本発明では、前述のとおり、問題点(1)および(2)を解決することを課題としている。よって、デバッグ用の処理を予めシステムファームウェアとしてコントローラ13に組み込んでおき、かつ図7の符号81に示すように、そのシステムファームウェア内のデバッグコードのアドレスへの絶対分岐命令をユーザプログラム内の擬似命令内に置いておく。本来、支援ツールでは、システムファームウェアの関数アドレス(図7の符号83で示すBREAK_ADDR)は、参照の必要はないが、ブレーク関数のアドレスは高々1つのみであるので、コントローラファームウェアのコンパイル後に、そのアドレスを取得し、固定値として支援ツールに持たせることは難しいことではない。
FIG. 7 is an explanatory diagram showing an example of a user program including an absolute branch instruction to debug processing.
In the present invention, as described above, it is an object to solve the problems (1) and (2). Therefore, debugging processing is incorporated in the controller 13 in advance as system firmware, and an absolute branch instruction to the address of the debug code in the system firmware is changed to a pseudo instruction in the user program as indicated by reference numeral 81 in FIG. Keep it inside. Originally, in the support tool, it is not necessary to refer to the function address of the system firmware (BREAK_ADDR indicated by reference numeral 83 in FIG. 7). However, since the address of the break function is at most one, It is not difficult to get the address and give it to the support tool as a fixed value.

図8は、本発明の実施形態に係るプログラマブルコントローラにおけるコントローラ13のメモリ配置を示す説明図である。
同図に示すように、ユーザプログラムは、コントローラ13が内蔵するメモリにおいて、符号92で示すプログラム領域の中に格納されている。また、ブレーク処理(符号95)は、予めシステムファームウェア(符号93)の中に定義されている。図7に示す擬似命令内で指定しているブレーク処理のアドレスは、符号94で示されるアドレスであり、システムファームウェアの生成時には確定したアドレスとなっている。今、ユーザ指示により、或る命令に対してブレーク設定を行うことを考える。支援ツール上で、ブレークしたい命令位置が選択されたら、その命令を置き換える分岐命令を生成する。ここで生成される分岐命令は、絶対分岐命令ではなく、擬似命令中の絶対分岐命令への相対分岐命令を用いる。
FIG. 8 is an explanatory diagram showing a memory arrangement of the controller 13 in the programmable controller according to the embodiment of the present invention.
As shown in the figure, the user program is stored in a program area denoted by reference numeral 92 in the memory built in the controller 13. The break process (reference numeral 95) is defined in advance in the system firmware (reference numeral 93). The address of the break process specified in the pseudo instruction shown in FIG. 7 is an address indicated by reference numeral 94, which is an address determined when the system firmware is generated. Now, consider setting a break for a certain instruction according to a user instruction. When an instruction position to be broken is selected on the support tool, a branch instruction that replaces the instruction is generated. The branch instruction generated here is not an absolute branch instruction but a relative branch instruction to the absolute branch instruction in the pseudo instruction.

ちなみに、絶対分岐命令を用いた場合は、分岐先アドレスの汎用レジスタへの準備、PCへのセット、及び戻り番地の退避のため、最低でも3命令が必要となり、実行中の命令を置き換えるとユーザプログラムの動作が異常となる可能性がある。また、これを避けるためには、置き換え処理中の割込み禁止などの手段が必要となることや、ユーザプログラムの最後の命令が置き換えられない可能性がある。   By the way, when an absolute branch instruction is used, at least 3 instructions are required to prepare the branch destination address in the general-purpose register, set it to the PC, and save the return address. Program operation may become abnormal. Also, in order to avoid this, there is a possibility that means such as interrupt prohibition during the replacement process is required, or the last instruction of the user program may not be replaced.

ここで、システムファームウェア内のブレーク処理へ直接相対分岐としない理由は、アドレスオフセットが相対分岐可能範囲を超えている可能性があるからであり、また、そもそもユーザプログラムがコントローラメモリのどこに配置されるかは、実際にユーザプログラムがコントローラ13によってRAMに配置された時点で初めて分かることであり、前述の支援ツール上では把握できないことだからである。   Here, the reason for not making a relative branch directly to the break processing in the system firmware is that the address offset may exceed the relative branchable range, and the user program is placed in the controller memory in the first place. This is because it is known for the first time when the user program is actually arranged in the RAM by the controller 13 and cannot be grasped on the above-described support tool.

ユーザプログラム内の特定の位置への相対分岐は、ユーザプログラムのジャンプやループ処理で一般的に行われているものであり、そのアドレス生成は、前述の支援ツールのコンパイラ機能などを用いれば難しくない。   Relative branching to a specific position in the user program is generally performed by jumping or loop processing of the user program, and its address generation is not difficult if the compiler function of the support tool described above is used. .

説明を戻して、前述のブレークしたい命令位置の命令を置き換える分岐命令が生成されたならば、前述の支援ツールより、コントローラ13に対して、この命令の置換処理を依頼する。この場合、置き換え対象となる命令は、高々1命令(分岐命令1つ分)なので、特に割り込み禁止などの処理を行わなくても、運転中に誤動作を起こすことなく、この命令置換が可能となる。   Returning to the description, if a branch instruction that replaces the instruction at the instruction position to be broken is generated, the controller 13 requests the controller 13 to perform a replacement process for the instruction. In this case, since the instruction to be replaced is at most one instruction (one branch instruction), this instruction replacement can be performed without causing a malfunction during operation without particularly performing processing such as interrupt prohibition. .

このブレーク用の命令の置き換え処理は、前述の支援ツールを使用するユーザからのデバッグ操作があった段階でRAM上に展開されたユーザプログラムに対して行うこととする。このようにすれば、デバッグ終了後にはコントローラ13をリセット等さえすれば、フラッシュメモリから、デバッグ置き換えコードを含まないユーザプログラムが再展開されるので、デバッグ処理用コードの削除し忘れを無くすことができる。   The instruction replacement for the break is performed on the user program developed on the RAM when there is a debugging operation from the user using the support tool. In this way, if the controller 13 is reset after the end of debugging, the user program not including the debug replacement code is re-deployed from the flash memory, so that it is possible to eliminate forgetting to delete the debug processing code. it can.

図9は、ユーザプログラムのある命令をブレーク処理へのジャンプ命令に置き換えたユーザプログラムの1例を示す説明図である。
同図に示すユーザプログラムの処理を順に追っていくと、まず符号101で示す命令Bが実行され、その結果、PG0_CODEなるラベルのついた命令(符号104)に実行が移る。そこから符号105で示す一連の命令を実行し、置き換え命令(符号106)に到達する。この置き換え命令は、BL(相対分岐)命令であるので、LR(図2の符号22で示すレジスタ)に、次の命令(符号107)のアドレスが退避される。そして、ラベル(JMP_BREAK)に示された番地(符号102)(実際には実行中の命令からの相対オフセットが設定されている)へ移動する。すると、そこにはPCにアドレスをセットするコード(符号103)が記述されているので、PCへのアドレスセットを実行し、システムファームウェア上にあるブレーク処理を実行する。
FIG. 9 is an explanatory diagram showing an example of a user program in which an instruction in the user program is replaced with a jump instruction to break processing.
If the processing of the user program shown in the figure is followed in sequence, the instruction B indicated by reference numeral 101 is executed first, and as a result, execution shifts to the instruction labeled PG0_CODE (reference numeral 104). From there, a series of instructions indicated by reference numeral 105 is executed, and a replacement instruction (reference numeral 106) is reached. Since this replacement instruction is a BL (relative branch) instruction, the address of the next instruction (reference numeral 107) is saved in LR (register indicated by reference numeral 22 in FIG. 2). Then, it moves to the address (reference numeral 102) indicated by the label (JMP_BREAK) (actually a relative offset from the instruction being executed is set). Then, since a code (reference numeral 103) for setting an address in the PC is described there, the address setting to the PC is executed, and the break processing on the system firmware is executed.

このブレーク処理が完了したら、ブレーク処理内で置き換えた命令を元に戻し、LRに格納されたアドレスから、置き換えた命令の番地(符号106)を算出した後、制御の流れをユーザプログラムに戻す(ここで、ちなみにLRの示す番地に直接戻すようにすると、相対分岐命令に置き換えられた命令の処理が実行されないままとなる)。   When the break processing is completed, the instruction replaced in the break processing is restored, the address of the replaced instruction (reference numeral 106) is calculated from the address stored in the LR, and then the control flow is returned to the user program ( Here, if it is directly returned to the address indicated by LR, the processing of the instruction replaced with the relative branch instruction remains unexecuted).

図10は、ジャンプテーブルを参照してブレーク処理を実行させる方法を説明する説明図である。
なお、デバッグ関数のアドレスは、数は少ないものの、システムファームウェアが変更になるたびに変わるアドレスとなる。そのため、擬似命令中に埋め込む絶対分岐命令も、コントローラファームウェアの修正のたびに変更を行わなければならなくなる。しかしながら、本体ファームウェアの修正や変更は、支援ツールの変更と非同期に発生するものであり、本体ファームウェアが変更される度に支援ツールの変更を行っていたのでは非効率的である。
FIG. 10 is an explanatory diagram for explaining a method of executing break processing with reference to a jump table.
The address of the debug function is an address that changes every time the system firmware is changed, although the number is small. Therefore, the absolute branch instruction embedded in the pseudo instruction must be changed every time the controller firmware is corrected. However, the correction or change of the main body firmware occurs asynchronously with the change of the support tool, and it is inefficient if the support tool is changed every time the main body firmware is changed.

そこで、図10に示すように、支援ツールで生成する擬似命令中の絶対分岐先を、デバッグ処理そのものの先頭アドレスではなく、デバッグ処理へ分岐するジャンプテーブル111へのアドレスとする。その上で、ジャンプテーブル111の中身(符号112)を、実際のブレーク処理関数の先頭アドレス(符号113)への分岐命令としておけば、このジャンプテーブル111の位置が変更とならない限り、本体ファームウェアの修正が支援ツールに影響しないようになる。   Therefore, as shown in FIG. 10, the absolute branch destination in the pseudo-instruction generated by the support tool is not the start address of the debug process itself, but the address to the jump table 111 that branches to the debug process. Then, if the contents of the jump table 111 (symbol 112) is used as a branch instruction to the actual break processing function start address (symbol 113), unless the position of the jump table 111 is changed, Fixes will not affect support tools.

本発明の実施形態に係るプログラマブルコントローラを含むコントローラ支援装置の概念的な構成を示す構成図である。It is a block diagram which shows the notional structure of the controller assistance apparatus containing the programmable controller which concerns on embodiment of this invention. ARM社の汎用RISCマイコンのレジスタを示す説明図である。It is explanatory drawing which shows the register of the general purpose RISC microcomputer of ARM company. 相対分岐命令と絶対分岐命令をARM社の汎用RISCマイコンのアセンブラコードで例示した説明図である。It is explanatory drawing which illustrated the relative branch instruction and the absolute branch instruction by the assembler code of the general purpose RISC microcomputer of ARM company. 本実施形態に係るプログラマブルコントローラで実行されるユーザプログラムの1例を示す説明図である。It is explanatory drawing which shows an example of the user program performed with the programmable controller which concerns on this embodiment. 図4で示したユーザプログラムのコントローラ専用コードへの変換例を示す説明図である。It is explanatory drawing which shows the example of conversion into the controller exclusive code | cord | chord of the user program shown in FIG. 実際にコントローラで実行される汎用マイコンのコードの1例を示す説明図である。It is explanatory drawing which shows an example of the code | cord | chord of the general purpose microcomputer actually performed with a controller. デバッグ処理への絶対分岐命令を含むユーザプログラムの1例を示す説明図である。It is explanatory drawing which shows an example of the user program containing the absolute branch instruction to a debugging process. 本発明の実施形態に係るプログラマブルコントローラにおけるコントローラ13のメモリ配置を示す説明図である。It is explanatory drawing which shows the memory arrangement | positioning of the controller 13 in the programmable controller which concerns on embodiment of this invention. ユーザプログラムのある命令をブレーク処理へのジャンプ命令に置き換えたユーザプログラムの1例を示す説明図である。It is explanatory drawing which shows an example of the user program which replaced the instruction with the user program with the jump instruction to a break process. ジャンプテーブルを参照してブレーク処理を実行させる方法を説明する説明図である。It is explanatory drawing explaining the method of performing a break process with reference to a jump table. 従来の汎用マイコンコントローラにおけるブレークコードの配置を示す説明図である。It is explanatory drawing which shows arrangement | positioning of the break code in the conventional general purpose microcomputer controller.

符号の説明Explanation of symbols

10 コントローラ支援部
11 コンパイラ
12 伝送装置
13 コントローラ(本発明に係るプログラマブルコントローラ)
14 表示装置
15 入力装置
16 記録媒体
21 汎用レジスタ
71 コントローラメモリ
72 ユーザプログラム
74 システムファームウェア
111 ジャンプテーブル
DESCRIPTION OF SYMBOLS 10 Controller support part 11 Compiler 12 Transmission apparatus 13 Controller (programmable controller which concerns on this invention)
14 Display device 15 Input device 16 Recording medium 21 General-purpose register 71 Controller memory 72 User program 74 System firmware 111 Jump table

Claims (3)

デバッグ機能を備え、ブレーク設定等のデバッグ指示命令を含むユーザプログラムを実行するコントローラ支援装置であって、
前記ユーザプログラムを読み込む手段と、
前記ユーザプログラムを構成するコントローラ専用機械語を汎用マイコンの実行コードに翻訳する翻訳手段と、
縮小命令セットに対応し、前記汎用マイコンの実行コードに変換されたユーザプログラムを実行する実行手段と、
前記汎用マイコンの実行コードに変換されたユーザプログラム内の擬似命令コードに、デバッグ用のコントローラファームウェアへの絶対分岐命令を埋め込む手段と、を備え、
ユーザからのブレーク設定等のデバッグ指示によりブレーク指定されたユーザプログラムコードを、前記擬似命令コード内の絶対分岐命令への相対分岐命令に置き換えることで、前記実行手段の実行中に、デバッグ機能を有効化させることを特徴とするコントローラ支援装置。
A controller support device having a debugging function and executing a user program including a debug instruction instruction such as a break setting,
Means for reading the user program;
A translation means for translating a machine language dedicated to the controller constituting the user program into an execution code of a general-purpose microcomputer;
An execution means for executing a user program corresponding to a reduced instruction set and converted into an execution code of the general-purpose microcomputer;
Means for embedding an absolute branch instruction to the controller firmware for debugging in the pseudo instruction code in the user program converted into the execution code of the general-purpose microcomputer,
By replacing the user program code that has been specified by a debug instruction such as a break setting from the user with a relative branch instruction to an absolute branch instruction in the pseudo instruction code, the debugging function is enabled during execution of the execution means. A controller support device characterized by comprising:
前記実行手段は、RISC(即ち、縮小命令セット・コンピュータ命令)を使用したマイコンにより実現されることを特徴とする請求項1記載のコントローラ支援装置。   2. The controller support apparatus according to claim 1, wherein the execution means is realized by a microcomputer using RISC (that is, a reduced instruction set / computer instruction). 請求項1または請求項2記載のコントローラ支援装置における実行手段を構成するプログラマブルコントローラであって、デバッグ処理への分岐命令をテーブルとして、固定番地に配置することで、コントローラ内のデバッグ処理ファームウェアのコードアドレス変更が前記コントローラ支援装置へ影響しないように構成されたことを特徴とするプログラマブルコントローラ。   3. A programmable controller constituting execution means in the controller support apparatus according to claim 1 or 2, wherein a branch instruction to debug processing is arranged as a table at a fixed address, so that code of debug processing firmware in the controller is obtained. A programmable controller characterized in that an address change does not affect the controller support device.
JP2006064365A 2006-03-09 2006-03-09 Controller support device and programmable controller Active JP4802775B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006064365A JP4802775B2 (en) 2006-03-09 2006-03-09 Controller support device and programmable controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006064365A JP4802775B2 (en) 2006-03-09 2006-03-09 Controller support device and programmable controller

Publications (2)

Publication Number Publication Date
JP2007241728A JP2007241728A (en) 2007-09-20
JP4802775B2 true JP4802775B2 (en) 2011-10-26

Family

ID=38587202

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006064365A Active JP4802775B2 (en) 2006-03-09 2006-03-09 Controller support device and programmable controller

Country Status (1)

Country Link
JP (1) JP4802775B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4919091B2 (en) * 2008-03-15 2012-04-18 オムロン株式会社 PLC system
JP5849592B2 (en) * 2011-10-07 2016-01-27 富士電機株式会社 Programmable controller system, programming device thereof, programmable controller, program, and debugging method

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04184544A (en) * 1990-11-20 1992-07-01 Fujitsu Ltd Break point control system
JPH04332051A (en) * 1991-05-07 1992-11-19 Fuji Electric Co Ltd Program debugging system apparatus built-in type microcomputer
JPH06139102A (en) * 1992-10-27 1994-05-20 Shibaura Eng Works Co Ltd Digital control device and its debugging method
JPH09265413A (en) * 1996-03-29 1997-10-07 Matsushita Electric Works Ltd Debugging system for programmable controller
JPH11224209A (en) * 1998-02-06 1999-08-17 Mitsubishi Electric Corp Debugging method

Also Published As

Publication number Publication date
JP2007241728A (en) 2007-09-20

Similar Documents

Publication Publication Date Title
US20080127113A1 (en) Method and system for implementing watchpoints
JP5226328B2 (en) Code converter
JP2002099312A (en) Programmable controller and control program development supporting device
JP2009146229A (en) Programmable controller system
JP2006331201A (en) Instruction execution device, debugging method, debugging device and debugging program
JP2008293138A (en) Software development support program and software development support method
JP2017142794A (en) Programmable controller system, controller thereof, support device, hci device, and duplex controller system
JP4802775B2 (en) Controller support device and programmable controller
JP2009157533A (en) Programmable controller system
JP5849592B2 (en) Programmable controller system, programming device thereof, programmable controller, program, and debugging method
JP2009104252A (en) Debugging support device and debugging support method
JP5906609B2 (en) Debug support program, debug support method, and debug support system
JPH1031595A (en) Simulator and its simulating method
JP5589670B2 (en) How to debug
JP2008204023A (en) Programmable controller system and debug method for programmable controller
JP4784355B2 (en) Programmable controller system, programmable controller debugging method, programming support program, programmable controller debug control program
JP6295914B2 (en) Programmable controller system, its support device, programmable controller
JP5850732B2 (en) Semiconductor device and control method thereof
JP2011090511A (en) Execution program, compiler, and device and method of correcting execution program operation
JP2002259121A (en) Source line debagging device
JP2007188366A (en) Compiler
JP2004272629A (en) Device for programmable controller, and programmable updating method and program starting method for the same
JP5109808B2 (en) Additional executable information generating apparatus, information processing apparatus, and program
JPH07200352A (en) Data processor, program translation method and debug tool
JP2011159169A (en) Program development support device, program debugging method, and program

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

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101020

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4802775

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140819

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