JP5800135B2 - プログラマブルコントローラ - Google Patents
プログラマブルコントローラ Download PDFInfo
- Publication number
- JP5800135B2 JP5800135B2 JP2011156328A JP2011156328A JP5800135B2 JP 5800135 B2 JP5800135 B2 JP 5800135B2 JP 2011156328 A JP2011156328 A JP 2011156328A JP 2011156328 A JP2011156328 A JP 2011156328A JP 5800135 B2 JP5800135 B2 JP 5800135B2
- Authority
- JP
- Japan
- Prior art keywords
- machine language
- language object
- optimized machine
- programmable controller
- instruction
- 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
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Programmable Controllers (AREA)
Description
請求項1に係る発明は、最適化機械語オブジェクトを保持する第一の記憶領域と、最適化機械語オブジェクトの先頭アドレスが登録されるテーブルと、テーブルに登録された先頭アドレスを指定して最適化機械語オブジェクトを実行するプログラム実行部と、このプログラム実行部をサイクリックに呼び出し最適化機械語オブジェクトを実行するプログラム実行管理部と、トレース指示に基づき、プログラム実行管理部のプログラム実行部の呼び出し後にトレース処理に切り替えるデバッグ制御部と、トレース処理の実行結果を出力するトレース結果出力部と、最適化機械語オブジェクトに対応した非最適化機械語オブジェクトを保持する第二の記憶領域と、を備え、デバッグ制御部は、オブジェクトの実行の停止位置を含むブレーク指示が与えられると停止位置に基づき非最適化機械語オブジェクトにブレーク命令を挿入するとともに非最適化機械語オブジェクトの先頭アドレスをテーブルに登録するブレーク実行手段をさらに備え、プログラム実行部は、ブレーク実行手段によって登録された非最適化機械語オブジェクトの先頭アドレスを指定して非最適化機械語オブジェクトを実行し、該非最適化機械語オブジェクトに挿入されたブレーク命令の実行に伴い、非最適化機械語オブジェクトの実行を停止し、この停止情報を出力することを特徴とする。
とが確認されるとソースコードをコンパイルせず非最適化機械語オブジェクトを未生成とし、有無情報を参照した結果、非最適化機械語オブジェクトがプログラマブルコントローラに登録されてないことが確認されるとソースコードをコンパイルして非最適化機械語オブジェクトを生成し、該生成された非最適化機械語オブジェクトをプログラマブルコントローラに送信するように構成される。
ユーザがデバッグモードとしてブレークを選択すると、支援装置はソースコード上に設定されたブレークポイントを基にデバッグ情報を生成する。この際、デバッグ対象の非最適化機械語オブジェクトが既にプログラマブルコントローラに格納されていれば非最適化機械語オブジェクトを生成せず、デバッグ情報のみをプログラマブルコントローラに送信する。一方、デバッグ対象の非最適化機械語オブジェクトが既にプログラマブルコントローラに格納されていれば、支援装置はソースコードをコンパイルして非最適化機械語オブジェクトを生成しデバッグ情報および非最適化機械語オブジェクトの両方をプログラマブルコントローラに送信する。
図1は本発明に係るプログラマブルコントローラシステムの一実施形態を説明する構成図である。
PLC200はCPU(Central Processing Unit)モジュール210を有する。このCPUモジュール210はCPU211、ドライバ/レシーバ217、PLC固有バスインターフェース214、システムプログラムメモリ(FLASH)212、システムワークメモリ(RAM(Random Access Memory))216、ユーザプログラムメモリ(RAM)213、ユーザデータメモリ(RAM)215などを有し、それらがバス218により接続されている。また、CPUモジュール210はPLC固有バスインターフェース214を通して入出力モジュール222と接続される。
図6は、PLC200が機械語オブジェクトをプログラムメモリ213に転送し、デバッグする際の処理手順(以下PLC処理)の一例を示している。このPLC処理は、先ず、ステップS21で、支援装置100から最適化機械語オブジェクト13を受信したか否かを判定し、最適化機械語オブジェクト13を受信していないときにはステップS31に移行し、最適化機械語オブジェクト13を受信したときにはステップS22に移行する。
次に、上記実施形態の動作を説明する。
(機械語オブジェクトをダウンロードするまでの支援装置100に係る動作)
支援装置100を使用してPLC200に機械語オブジェクトをダウンロードするには、ユーザは先ず、支援装置100のユーザインタフェース部11でプログラムをIEC言語で記述したソースコードを作成する。このソースコードを作成した状態で、支援装置100で、表示器103に表示された処理メニューからコンパイル開始ボタン31を選択する。このコンパイル開始ボタン31の選択がされることによって、支援装置100はコンパイラ12でソースコードを最適化コンパイルして最適化機械語オブジェクト13を生成し、これを記憶領域に格納する。この最適化コンパイルは、ソースコードの実行順序の変更、レジスタの有効活用等を行なうことにより、コードサイズを縮小する。ここで、最適化機械語オブジェクト13は、POU(Program Organization Unit)毎に生成される。このPOUとは、プログラム構成単位であり、PLC200の言語要素である。なお、POUの種類には、アプリケーションプログラム、ファンクションブロック等があり、C言語の関数に相当するものである。
このとき、最適化機械語オブジェクト13は、図7に示すように、POU単位の機械語オブジェクト43(オブジェクト本体)に対して識別番号41及び最適化機械語オブジェクトであるか非最適化機械語オブジェクトであるかを表す情報42が付加されてプPLC200にダウンロードされる。識別番号41はコンパイルされた最適化機械語オブジェクトおよび非最適化機械語オブジェクトそれぞれのPOUに付与される番号であり、POUを一意に識別するための識別子である。種別42は機械語オブジェクト43が最適化されたものか、デバッグ可能な非最適化のものかを示す種別コードであり、本発明の実施形態では「1」を最適化された機械語オブジェクト、「2」を非最適化機械語オブジェクト(デバッグ可能な機械語オブジェクト)として定義している。
例えば、PLC200は支援装置100から図9に示すような機械語オブジェクト(61a、61b)を支援装置100からダウンロードされたとする。機械語オブジェクト61aおよび61bは、その種別が「1」なので最適化である。PLC200はこれら機械語オブジェクト(POU本体)をユーザプログラムメモリ213の最適化機械語オブジェクト格納領域(0番地〜7FFF番地)に識別番号順に転送して保存し、アドレステーブル24の識別番号1用アドレス欄に、機械語オブジェクト61aの格納先頭アドレス「0000」を登録する。同様、アドレステーブル24の識別番号2用アドレス欄には、ユーザプログラムメモリ213に保存された機械語オブジェクト61bの先頭アドレス「1000」が登録される。
PLC200はアドレステーブル24を参照して、該アドレステーブル24の情報を間接アドレス指定して機械語オブジェクトを実行する。通常時、上述のようにアドレステーブル24には最適化機械語オブジェクトの先頭アドレスが登録されているので、PLC200は最適化機械語オブジェクト22を高速に実行している。
図5のメニュー画面でブレーク処理のラジオボタンが選択され、デバッグ開始ボタン32が選択されると、支援装置100はPLC200をブレークさせるデバッグを開始する。
(ブレークを目的としたデバッグにおけるPLC200の動作)
ユーザによりブレークを目的とした操作が行われ、例えば、図10に示す機械語オブジェクト(62a、62b)とデバッグ情報(ブレーク指示)が支援装置100からPLC200にダウンロードされたとする。機械語オブジェクト61aおよび61bはその種別が「2」なので非最適化である。PLC200は、デバッグ情報に含まれるデバッグ処理パラメータを参照してブレーク処理を認識し、機械語オブジェクト62aおよび62bをユーザプログラムメモリ213の非最適化機械語オブジェクト格納領域(8000番地〜)に識別番号順に保存する。
(トレースを目的としたデバッグにおける支援装置100の動作)
ユーザは要求するデバッグモードとして図5のトレース処理のラジオボタンを選択し開始ボタン32を選択する。そして、ユーザはトレースの開始条件としてトリガ条件を設定するが、このトリガ条件は前述ブレークポイントの設定の要領と同じように設定される。すなわち、トレースの開始ポイントをブレークポイントの設定と同じようにユーザがソースコード上に設定し、この設定を基に支援装置100は図8に示すデバッグ情報を抽出し、PLC200に送信する。このとき支援装置100は、デバッグ情報に加えて、選択されたデバッグモードがトレースであることを示すデバッグ処理パラメータをPLC200に送信し、PLC200の処理完了通知を待つ。以降の動きは前述ブレークの動きと同じである。
(トレースを目的としたデバッグにおけるPLC200の動作)
選択されたデバッグ処理がトレースであることを示すデバッグ処理パラメータを受信したPLC200は、デバッグ情報を参照してトリガ条件を設定するが、上述の如く最適化機械語オブジェクトはプログラムの実行順序などが変更された可能性があるため、上述ブレークポイント処理コードのような所定の処理コードを最適化機械語オブジェクトに埋め込むことができない。
デバッグ終了通知を受信するとデバッグ制御部26は、オペレーション機能内に挿入したトレース処理実行コードを削除し、トレースを終了する。
以上説明したように、本発明はソースコード上にブレークポイントもしくはトリガ条件が設定され、デバッグモードとしてブレークが選択されたときデバッグ情報を生成し、PLC200に送信する。この送信の際、デバッグ対象の非最適化機械語オブジェクトが既にPLC200に格納されていればデバッグ情報のみを送信する、一方デバッグ対象の非最適化機械語オブジェクトが既にPLC200に格納されていなければ支援装置100は非最適化機械語オブジェクト15とデバッグ情報の両方をPLC200に送信する。
また、支援装置100は図8に示すデバッグ情報をPLC200に送信する際、図5に示すラジオボタン(ブレーク処理もしくはトレース処理)の選択情報を送信パケットに含ませてPLC200に送信している。PLC200は支援装置100からデバッグ情報を受信した際、前述送信パケットに含まれる選択情報を参照し、デバッグ情報がブレーク指示なのかトレース指示なのかを把握できるように構成されている。
11…ユーザインタフェース部、12…コンパイラ、13…最適化機械語オブジェクト、14…通信部、15…非最適化機械語オブジェクト
21…通信部、22…最適化機械語オブジェクト、23…非最適化機械語オブジェクト、24…アドレステーブル、25…オブジェクト展開部、26…デバッグ制御部、27…プログラム実行部
41…識別番号、42…種別、43…機械語オブジェクト
51…識別番号、52…ブレーク位置
61…最適化機械語オブジェクト
61a,61b…最適化機械語オブジェクト(本体)
62…非最適化機械語オブジェクト
62a,62b…非最適化機械語オブジェクト(本体)
Claims (6)
- 最適化機械語オブジェクトを保持する第一の記憶領域と、
前記最適化機械語オブジェクトの先頭アドレスが登録されるテーブルと、
前記テーブルに登録された前記先頭アドレスを指定して前記最適化機械語オブジェクトを実行するプログラム実行部と、
このプログラム実行部をサイクリックに呼び出し前記最適化機械語オブジェクトを実行するプログラム実行管理部と、
トレース指示に基づき、前記プログラム実行管理部の前記プログラム実行部の呼び出し後にトレース処理に切り替えるデバッグ制御部と、
前記トレース処理の実行結果を出力するトレース結果出力部と、
前記最適化機械語オブジェクトに対応した非最適化機械語オブジェクトを保持する第二の記憶領域と、を備え、
前記デバッグ制御部は、オブジェクトの実行の停止位置を含むブレーク指示が与えられると前記停止位置に基づき前記非最適化機械語オブジェクトにブレーク命令を挿入するとともに前記非最適化機械語オブジェクトの先頭アドレスを前記テーブルに登録するブレーク実行手段をさらに備え、
前記プログラム実行部は、前記ブレーク実行手段によって登録された前記非最適化機械語オブジェクトの先頭アドレスを指定して前記非最適化機械語オブジェクトを実行し、該非最適化機械語オブジェクトに挿入された前記ブレーク命令の実行に伴い、前記非最適化機械語オブジェクトの実行を停止し、この停止情報を出力することを特徴とするプログラマブルコントローラ。 - 請求項1記載のプログラマブルコントローラにおいて、
前記デバッグ制御部は、前記トレース指示に基づき前記プログラム実行管理部の前記最適化機械語オブジェクトの呼出し命令を抽出し、該抽出された呼び出し命令の後に前記トレース処理を呼び出すトレース命令を挿入し、前記プログラム実行管理部に前記トレース命令を実行させることにより前記トレース処理に切り替えることを特徴とするプログラマブルコントローラ。 - 請求項1または請求項2記載のプログラマブルコントローラにおいて、
前記ブレーク指示は前記プログラマブルコントローラと通信部を介して接続される支援装置から与えられ、
前記デバッグ制御部は前記非最適化機械語オブジェクトへのブレーク命令の挿入に先立ち、前記非最適化機械語オブジェクトが前記プログラマブルコントローラに既に登録されているかを示す有無情報を前記支援装置に送信し、この送信の後に前記支援装置から前記非最適化機械語オブジェクトを受信することにより該受信した非最適化機械語オブジェクトを前記第二の記憶領域に転送することを特徴とするプログラマブルコントローラ。 - 請求項3記載のプログラマブルコントローラにおいて、
前記支援装置は所定のソースコードをコンパイルするコンパイル手段を有し、
該コンパイル手段は前記ブレーク指示を含むデバッグ開始指示を受けると、前記有無情報の返信を要求するコマンドを前記プログラマブルコントローラに送信し、この送信に対する前記有無情報を含む応答を前記プログラマブルコントローラから受信し、
この受信された前記有無情報を参照して前記非最適化機械語オブジェクトが前記プログラマブルコントローラに既に登録されていることを確認し、この確認の結果、前記非最適化機械語オブジェクトが前記プログラマブルコントローラに既に登録されていることが確認されると前記ソースコードをコンパイルせず前記非最適化機械語オブジェクトを未生成とし、前記有無情報を参照した結果、前記非最適化機械語オブジェクトが前記プログラマブルコントローラに登録されてないことが確認されると前記ソースコードをコンパイルして前記非最適化機械語オブジェクトを生成し、該生成された非最適化機械語オブジェクト
を前記プログラマブルコントローラに送信することを特徴とするプログラマブルコントローラ。 - 請求項2記載のプログラマブルコントローラにおいて、
前記デバッグ制御部は前記トレース命令を前記サイクリックの周期に同期して挿入し、トレース解除指示が与えられると前記プログラム実行管理部に挿入した前記トレース命令を前記サイクリックの周期に同期して削除することを特徴とするプログラマブルコントローラ。 - 請求項1記載のプログラマブルコントローラにおいて、
前記デバッグ制御部は前記ブレーク命令を前記サイクリックの周期に同期して挿入し、
ブレーク解除指示が与えられると前記サイクリックの周期に同期して前記非最適化機械語オブジェクトに挿入した前記ブレーク命令を削除するとともに前記テーブルに前記最適化機械語オブジェクトの先頭アドレスを登録することを特徴とするプログラマブルコントローラ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011156328A JP5800135B2 (ja) | 2011-07-15 | 2011-07-15 | プログラマブルコントローラ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011156328A JP5800135B2 (ja) | 2011-07-15 | 2011-07-15 | プログラマブルコントローラ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013025347A JP2013025347A (ja) | 2013-02-04 |
JP5800135B2 true JP5800135B2 (ja) | 2015-10-28 |
Family
ID=47783675
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011156328A Active JP5800135B2 (ja) | 2011-07-15 | 2011-07-15 | プログラマブルコントローラ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5800135B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5849592B2 (ja) * | 2011-10-07 | 2016-01-27 | 富士電機株式会社 | プログラマブルコントローラシステム、そのプログラミング装置、プログラマブルコントローラ、プログラム、デバッグ方法 |
JP5957936B2 (ja) * | 2012-02-15 | 2016-07-27 | 富士電機株式会社 | プログラマブルコントローラシステム、その支援装置、プログラム |
US9727442B2 (en) | 2014-05-08 | 2017-08-08 | Mitsubishi Electric Corporation | Engineering tool, program editing device, and program editing system |
KR101743836B1 (ko) | 2015-10-22 | 2017-06-07 | 엘에스산전 주식회사 | 범용 마이크로 프로세서를 이용한 plc의 디버깅 방법 |
WO2024069730A1 (ja) * | 2022-09-27 | 2024-04-04 | 三菱電機株式会社 | デバッグ装置及びデバッグ方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10247105A (ja) * | 1997-03-05 | 1998-09-14 | Yaskawa Electric Corp | プログラマブルコントローラ |
JP2006202233A (ja) * | 2005-01-24 | 2006-08-03 | Fuji Electric Fa Components & Systems Co Ltd | コントローラ、そのプログラム |
-
2011
- 2011-07-15 JP JP2011156328A patent/JP5800135B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2013025347A (ja) | 2013-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101558832B1 (ko) | 시퀀스 프로그램 디버그 지원 장치 | |
JP5800135B2 (ja) | プログラマブルコントローラ | |
JP4877068B2 (ja) | ソフトウェア開発支援プログラム、ソフトウェア開発支援方法 | |
CN101681280B (zh) | 使用外部调试基础结构的进程内调试 | |
US20150212923A1 (en) | Nontransitory processor readable recording medium having fault injection program recorded therein and fault injection method | |
US20070226702A1 (en) | Method for operating a microcontroller in a test environment | |
US10789192B2 (en) | System and method for programming data transfer within a microcontroller | |
CN106021101B (zh) | 对移动终端进行测试的方法及装置 | |
JP5636783B2 (ja) | プログラマブルコントローラ、およびプログラマブルコントローラのデバッグ方法 | |
KR20120139403A (ko) | 게임 서버의 작업 파일 실행 장치 및 방법 | |
JP2009146229A (ja) | プログラマブルコントローラシステム | |
JP5849592B2 (ja) | プログラマブルコントローラシステム、そのプログラミング装置、プログラマブルコントローラ、プログラム、デバッグ方法 | |
CN112463139A (zh) | 基于电子积木的编程方法、装置、电子设备及存储介质 | |
WO2014136228A1 (ja) | プログラマブルコントローラ、プログラマブルコントローラシステムおよび実行エラー情報作成方法 | |
CN110647349B (zh) | 一种实现iOS APP持续交付的方法 | |
JP2008135008A (ja) | プログラムモジュール検証方式 | |
JP5589670B2 (ja) | デバッグ方法 | |
CN108614704B (zh) | 代码编译方法及装置 | |
CN105653333B (zh) | 可编程逻辑控制器用户程序在线修改***及方法 | |
JP2007004516A (ja) | 組込みシステムのプログラムデバッグ方法 | |
JP4853998B2 (ja) | デバッガ装置及びそのデバッガ装置を使用したデバッグ方法 | |
KR100294633B1 (ko) | 피엘씨의시뮬레이터 | |
JP5120103B2 (ja) | デバッグ方法およびデバッグプログラム | |
JP2011216056A (ja) | プログラマブルコントローラ及びその周辺装置 | |
JP2007188366A (ja) | コンパイル装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140616 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150316 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150324 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150410 |
|
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: 20150729 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150811 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5800135 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |