JP6978458B2 - シーケンスプログラムのトレースに用いるシーケンスプログラム処理装置 - Google Patents

シーケンスプログラムのトレースに用いるシーケンスプログラム処理装置 Download PDF

Info

Publication number
JP6978458B2
JP6978458B2 JP2019036256A JP2019036256A JP6978458B2 JP 6978458 B2 JP6978458 B2 JP 6978458B2 JP 2019036256 A JP2019036256 A JP 2019036256A JP 2019036256 A JP2019036256 A JP 2019036256A JP 6978458 B2 JP6978458 B2 JP 6978458B2
Authority
JP
Japan
Prior art keywords
sequence program
trace
unit
program
sequence
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
JP2019036256A
Other languages
English (en)
Other versions
JP2020140502A (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.)
Fanuc Corp
Original Assignee
Fanuc Corp
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 Fanuc Corp filed Critical Fanuc Corp
Priority to JP2019036256A priority Critical patent/JP6978458B2/ja
Priority to DE102020200912.0A priority patent/DE102020200912A1/de
Priority to US16/774,607 priority patent/US11036617B2/en
Priority to CN202010084355.9A priority patent/CN111624933B/zh
Publication of JP2020140502A publication Critical patent/JP2020140502A/ja
Application granted granted Critical
Publication of JP6978458B2 publication Critical patent/JP6978458B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/054Input/output
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/323Visualisation of programs or trace data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3471Address tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3624Software debugging by performing operations on the source code, e.g. via a compiler
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)
  • Executing Machine-Instructions (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、シーケンスプログラムのトレースに用いるシーケンスプログラム処理装置に関する。
昨今、シーケンスプログラムのデバッグや保守作業のため、プログラマブルコントローラ(PLCともいう。)には、トレース機能が用意されている。トレース機能として、一般的には、シーケンスプログラムの開始及び終了時や、全ての命令の実行時に、サンプリングをする。また、サンプリング対象として、指定されたアドレス(変数)や、全てのアドレス(変数)、モニタに表示されるアドレス(変数)を指定する方法がある。
ただし、サンプリングのタイミングがシーケンスプログラムの開始及び終了時の場合、シーケンスプログラムの実行結果しかサンプリングすることができない。そのため、1周期内での信号のON/OFF等、シーケンスプログラム中で信号変化があった場合のサンプリングができない。
他方、シーケンスプログラムを記憶したプログラムメモリと、制御に必要なデータを記憶するデータメモリと、前記シーケンスプログラムの実行と全体の制御を実行するためのマイクロプロセッサと、前記シーケンスプログラムのモニタ範囲を実行中に、マイコンバス上のアドレス信号、データ信号、コマンド信号を監視し、シーケンス命令のオペランドデータがアクセスされたタイミングでオペランドデータをサンプリングして格納するデータトレース回路を備えたプログラマブルコントローラにおいて、前記マイクロプロセッサが前記シーケンスプログラム実行時に使用したオペランドデータを前記データメモリへのアクセスが発生した時点で格納しておき、モニタ装置が前記シーケンスプログラムのモニタ範囲を表示する際に、シーケンス命令と共に前記オペランドデータの内容を表示することにより、前記シーケンスプログラム実行中の実データをモニタ可能にしたプログラマブルコントローラが知られている(例えば、特許文献1)。
しかしながら、前述のプログラマブルコントローラでは、シーケンスプログラム内の全命令の実行時にサンプリングするため、不要な部分もサンプリングしてしまい、シーケンスプログラムのサイクルタイムが長くなるという問題がある。
また、サンプリング対象が指定されたアドレス(変数)の場合、シーケンスプログラムを解析し、サンプリングに必要なアドレス(変数)を見分ける必要があるため、サンプリング対象の選別が難しい。他方、サンプリング対象を全アドレス(変数)とすると、不要なアドレスもサンプリングしてしまうため、シーケンスプログラムのサイクルタイムが長くなるという問題がある。この点、サンプリング対象がモニタに表示されているアドレス(変数)というものもあるが、モニタに表示されているものしかサンプリングされない。
特許第3892873号公報
そこで、シーケンスプログラムの任意の位置の信号状態をトレース可能にする仕組みが望まれている。
(1)本開示の一態様は、プログラムメモリに記憶されたシーケンスプログラムのオブジェクトコードを実行するシーケンスプログラム処理装置であって、プログラム編集装置と、プログラマブルコントローラと、を備え、前記プログラム編集装置は、シーケンスプログラムにトレース開始位置とトレース終了位置とのペアを設定可能なプログラム編集部と、前記プログラム編集部により設定された前記トレース開始位置と前記トレース終了位置との間にある命令のアドレスを解析し、トレース用メモリへの信号値の転送命令を挿入し、及び、解析した前記アドレスをサンプリング用アドレステーブルに設定して、実行プログラムと前記サンプリング用アドレステーブルとを含む前記シーケンスプログラムのオブジェクトコードに変換するコンパイル部と、を含み、前記プログラマブルコントローラは、前記コンパイル部により変換された前記シーケンスプログラムのオブジェクトコードに含まれる前記サンプリング用アドレステーブルに基づいて、前記トレース用メモリにサンプリングアドレスを設定するサンプリングアドレス設定部と、前記シーケンスプログラムのオブジェクトコードを実行し、前記転送命令に従って前記信号値を前記トレース用メモリに格納するコード実行部と、を含む。
(2)本開示の一態様は、(1)に記載のシーケンスプログラム処理装置において、前記プログラマブルコントローラは、前記プログラム編集装置を含む。
一態様によれば、シーケンスプログラムの任意の位置の信号状態をトレース可能にするシーケンスプログラム処理装置を提供することができる。
本実施形態に係るシーケンスプログラム処理装置の機能ブロック図である。 本実施形態に係るプログラム編集装置によるプログラム編集処理を示すフローチャートである。 本実施形態に係るプログラム編集装置の処理の説明で使用するラダーの例を示す図である。 本実施形態に係るプログラム編集装置のプログラム編集部による処理後のラダーの例を示す図である。 本実施形態に係るプログラム編集装置のコンパイル部による処理後のラダーの例を示す図である。 本実施形態に係るプログラム編集装置による処理で設定したサンプリング用アドレステーブルの例を示す図である。 本実施形態に係るプログラム編集装置による処理で生成したシーケンスプログラムのオブジェクトコードのブロック図である。 本実施形態に係るプログラマブルコントローラによるトレース処理を示すフローチャートである。 本実施形態に係るプログラマブルコントローラによるトレースグラフ出力処理を示すフローチャートである。 本実施形態に係るプログラマブルコントローラのサンプリングアドレス設定部による処理を説明するための図である。 本実施形態に係るプログラマブルコントローラのコード実行部による処理を説明するための図である。 本実施形態に係るプログラマブルコントローラのグラフ出力部による処理を説明するための図である。 変形形態に係るプログラム編集装置のコンパイル部による処理後のラダーの例を示す図である。 変形形態に係るプログラマブルコントローラの機能ブロック図である。
(実施形態)
まず、一態様の実施形態の概略を説明する。本実施形態は、シーケンスプログラムに基づいて信号の入出力を行うプログラマブルコントローラが、任意の位置の信号値をトレース用メモリに格納するものに関する。
次に、本実施形態であるシーケンスプログラム処理装置100の構成について、図1を参照して説明をする。
図1に示すシーケンスプログラム処理装置100は、プログラム編集装置1と、プログラマブルコントローラ4とを備えている。
シーケンスプログラム処理装置100は、プログラム編集装置1が、シーケンスプログラムに、トレース開始位置及びトレース終了位置のペアを設定した上で、シーケンスプログラムのオブジェクトコードを生成する。そして、プログラマブルコントローラ4が、シーケンスプログラムのオブジェクトコードを実行し、トレース開始位置からトレース終了位置までの信号値を、トレース用メモリに格納する。また、プログラマブルコントローラ4は、トレース用メモリに格納された信号値に関するトレースグラフを生成する。
このように、シーケンスプログラム処理装置100は、プログラム編集装置1と、プログラマブルコントローラ4との処理によって、シーケンスプログラムの任意の位置の信号状態をトレース可能にする。
プログラム編集装置1と、プログラマブルコントローラ4とは、例えば、ネットワークを介して接続されるか、又は、接続インタフェースを介して直接接続されることで、通信可能に接続されている。
[プログラム編集装置1]
プログラム編集装置1は、シーケンスプログラムを編集し、編集したシーケンスプログラムをコンパイルすることで、編集後のシーケンスプログラムを、シーケンスプログラムのオブジェクトコードに変換するものである。
プログラム編集装置1は、例えば、パーソナルコンピュータ(PC)、タブレット端末、スマートフォン等任意の端末装置等でもよい。
プログラム編集装置1は、制御部10と、記憶部20と、入力部25と、表示部26と、通信部29とを備える。
制御部10は、CPU(中央処理装置)であってよく、記憶部20に記憶されたプログラム編集装置1を制御する各種のプログラムを実行することにより、プログラム編集装置1を統括制御する。
制御部10は、プログラム編集部11と、コンパイル部13とを備える。これらの各機能部は、制御部10が記憶部20に格納されたプログラムを実行することにより実現される。
プログラム編集部11は、シーケンスプログラムにトレース開始位置とトレース終了位置とのペアを設定する。プログラム編集部11は、例えば、入力部25から入力されたトレース開始位置とトレース終了位置の指示入力に基づいて、1以上のペアを設定可能である。
コンパイル部13は、プログラム編集部11により設定されたトレース開始位置とトレース終了位置とのペアごとに、トレース開始位置とトレース終了位置との間にある命令のアドレスを解析する。
次に、コンパイル部13は、トレース用メモリへの転送命令を、次のネットとの間に挿入する。
また、コンパイル部13は、トレース開始位置とトレース終了位置との間にある命令のアドレスを解析する際に、サンプリング用アドレステーブルに、解析したアドレスを設定する。
そして、コンパイル部13は、シーケンスプログラムを、実行プログラムとサンプリング用アドレステーブルとを含むシーケンスプログラムのオブジェクトコードに変換する。
なお、コンパイル部13は、後述するようにトレース機能を実行又は停止するために、トレース用メモリへの転送命令を、次のネットとの間に挿入する際に、トレース用メモリへの転送命令の実行又は停止に係る制御条件をあわせて挿入するものであってもよい。
記憶部20は、制御部10により実行されるプログラム等を記憶する記憶領域である。記憶部20は、前述した制御部10の各種機能を実行する編集用プログラム21を記憶している。
また、記憶部20は、一時記憶領域を備え、例えば、制御部10により生成されたシーケンスプログラムのオブジェクトコード等を記憶する。
入力部25は、例えば、キーボード、マウス、スイッチボタン等の各種ボタン等の入力装置である。
表示部26は、表示装置であり、例えば、CRT(Cathode Ray Tube)やLCD(Liquid Crystal Display)等により構成される。
なお、入力部25と、表示部26とが一体になったタッチパネルを備えるものであってもよい。
通信部29は、例えば、RS232C用コネクタ等の所定のコネクタによって構成され、プログラマブルコントローラ4との間で直接接続するための通信制御デバイスである。
[プログラマブルコントローラ4]
プログラマブルコントローラ4は、シーケンスプログラムのトレースに用いるシステムソフト等のプログラムを実行し、シーケンスプログラムのオブジェクトコードにより、信号の入出力を行う装置である。
プログラマブルコントローラ4は、制御部40と、記憶部50と、通信部59とを備える。
制御部40は、CPUであってよく、記憶部50に記憶されたプログラマブルコントローラ4を制御する各種のプログラムを実行することにより、プログラマブルコントローラ4を統括制御する。
制御部40は、サンプリングアドレス設定部45と、コード実行部47と、グラフ出力部48とを備える。これらの各機能部は、制御部40が記憶部50に格納されたプログラムを実行することにより実現される。
サンプリングアドレス設定部45は、シーケンスプログラムのオブジェクトコードに含まれるサンプリング用アドレステーブルを解析し、後述するトレース用メモリ57にサンプリングアドレスを設定する。
コード実行部47は、シーケンスプログラムのオブジェクトコードを実行することで、トレース用メモリ57への信号値の転送命令に従って、取得した信号値をトレース用メモリ57に格納する。
グラフ出力部48は、トレース用メモリ57に格納された信号値を含むトレース結果を、トレースグラフとして後述する表示部62に出力する。
記憶部50は、制御部40により実行されるプログラム等を記憶する記憶領域である。記憶部50は、少なくともROM(Read Only Memory)51と、RAM(Ramdom Access Memory)55とを備える。
ROM51は、システムソフト52を記憶している。システムソフト52は、前述した制御部40の各種機能を実行するプログラムである。
RAM55は、一時的な計算データや表示データや、入力部61を介してオペレータが入力した各種データ等を格納するための領域である。RAM55は、シーケンスプログラムメモリ56や、トレース用メモリ57を有する記憶領域である。
シーケンスプログラムメモリ56は、プログラム編集装置1で生成したシーケンスプログラムのオブジェクトコードを格納する領域である。
トレース用メモリ57は、シーケンスプログラムのオブジェクトコードに含まれるサンプリング用アドレステーブルに基づいて、サンプリングアドレスを設定する領域である。
通信部59は、例えば、RS232C用コネクタ等の所定のコネクタによって構成され、プログラム編集装置1や、入力部61、表示部62等との間で直接接続するための通信制御デバイスである。
なお、プログラマブルコントローラ4は、前述した機能部の他、プログラマブルコントローラ4に特有の処理部を有するが、それらは当業者にとって公知であることから、説明を省略する。
入力部61は、例えば、表示器/MDIユニットのキーボード等の手動データ入力装置である。
表示部62は、例えば、表示器/MDIユニットのディスプレイである。
[プログラム編集処理]
次に、本実施形態のシーケンスプログラム処理装置100における処理(シーケンスプログラムを編集して、任意の位置の信号値がトレース可能なシーケンスプログラムのオブジェクトコードを生成する処理)を説明する。
最初に、プログラム編集装置1での処理を、図2に基づいて説明する。図2は、プログラム編集装置1によるプログラム編集処理を示すフローチャートである。
図2のステップS(以下、ステップSを、単にSという。)11において、プログラム編集装置1の制御部10(プログラム編集部11)は、シーケンスプログラムの構成要素のうち、トレース対象とする構成要素をトレース対象区間に含むように、トレース開始位置と、トレース終了位置の指定を受け付ける。
シーケンスプログラムは、例えば、図3Aに例示されるように、ラダー図の形式で表すことができる。制御部10は、まず、図3Aに示すラダー70を、表示部26に表示させる。ラダー70は、ラダー回路からなるネットを1つ以上含み、各ネットにはネット番号が付されている。ネットは、接点(参照信号)やコイル(更新信号)といった構成要素(命令)を含む。
そして、プログラム編集者等のオペレータによる入力部25を介した入力を受け付けることで、制御部10は、入力部25を介してトレース開始位置及びトレース終了位置のペアの指定を受け付ける。
図3Bは、図3Aに示すラダー70に対して、指定によりトレース開始位置71aと、トレース終了位置71bとが設定されたラダー71である。ラダー71は、トレース開始位置71aと、トレース終了位置71bとの間である区間71xを、トレース対象区間としてシーケンスプログラムのトレース対象にすることを示している。そして、制御部10は、ラダー71で示される、編集後のシーケンスプログラムを、記憶部20に記憶させる。
図2のS12において、制御部10(コンパイル部13)は、S11で指定されたトレース開始位置及びトレース終了位置を含むシーケンスプログラムに基づいて、トレース開始位置とトレース終了位置との間にある命令のアドレスを解析する。図3Bのラダー71では、区間71xに含まれるネット番号002及びネット番号003が示すネット上の各構成要素が、アドレスの解析対象になる。
図2のS13において、制御部10(コンパイル部13)は、トレース用メモリへの転送命令を、次のネットとの間に挿入する。図4は、トレース用メモリへの転送命令がネット間に挿入されたラダー72の例を示す。トレース開始位置の後のネット番号002に対応するトレース用メモリへの転送命令である追加要素72aは、ネット番号002と、次のネット番号であるネット番号003との間に挿入されている。同様に、ネット番号003に対応するトレース用メモリへの転送命令である追加要素72bは、トレース終了位置の前に挿入されている。
図2のS14において、制御部10(コンパイル部13)は、記憶部20にサンプリング用アドレステーブルを用意し、S12において解析したアドレスを、用意したサンプリング用アドレステーブルに設定する。図5Aは、サンプリング用アドレステーブル32に設定されたサンプリングアドレスの例を示す。例えば、図4に示すネット番号002に関するアドレスは、R10.0と、R10.1と、R10.2との3つである。また、ネット番号003に関するアドレスは、R10.2と、R11.0と、R11.1との3つであり、R11.1は、2か所に含まれる。このように、同じアドレスが重複している場合には、制御部10は、重複した登録を避け、1つだけ設定する。
図2のS15において、制御部10(コンパイル部13)は、コンパイル処理によって、シーケンスプログラムのオブジェクトコードを生成し、記憶部20に記憶させる。その後、制御部10は、本処理を終了する。
図5Bは、生成されたシーケンスプログラムのオブジェクトコード30のブロック図である。図5Bに示すように、シーケンスプログラムのオブジェクトコード30は、ラダー72を示す実行プログラム31と、図2のS14で設定したサンプリング用アドレステーブル32とを含む。
プログラム編集装置1で生成されたシーケンスプログラムのオブジェクトコード30は、プログラマブルコントローラ4に受け渡されて、プログラマブルコントローラ4のシーケンスプログラムメモリ56に記憶する。ここで、シーケンスプログラムのオブジェクトコード30の受け渡しは、例えば、プログラム編集装置1の通信部29と、プログラマブルコントローラ4の通信部59との間で行うことができる。
[トレース処理]
次に、プログラマブルコントローラ4での処理(プログラム編集装置1で生成したシーケンスプログラムのオブジェクトコード30を実行して、指定位置の信号値のサンプリングを行う処理)を、図6に基づいて説明する。図6Aは、プログラマブルコントローラ4によるトレース処理を示すフローチャートである。
図6Aおいて、プログラマブルコントローラ4の制御部40は、ROM51に記憶されたシステムソフト52に従って、プログラム編集装置1で生成したシーケンスプログラムのオブジェクトコード30を実行する。
S21において、制御部40(サンプリングアドレス設定部45)は、シーケンスプログラムメモリ56に記憶されたシーケンスプログラムのオブジェクトコード30に含まれるサンプリング用アドレステーブル32を解析する。そして、制御部40(サンプリングアドレス設定部45)は、トレース用メモリ57にサンプリングアドレスを設定する。図7に、サンプリング用アドレステーブル32に基づいてサンプリングアドレスが設定されたトレース用メモリ57の例を示す。図7に示すように、トレース用メモリ57は、実行順(スキャン順)に各アドレスの信号値を格納できるように構成されたテーブルである。
図6AのS22において、制御部40(コード実行部47)は、シーケンスプログラムのオブジェクトコード30を実行することで、トレース用メモリ57への信号値の転送命令に従って、信号値をトレース用メモリに格納する。
図8に、ラダー72に対応した実行プログラム31により、トレース用メモリ57に各アドレスの信号値が格納されている態様を示す。ここで、信号値の1は、ONを示し、信号値の0は、OFFを示す。なお、図8では、2スキャン目までを記載しているが、外部からの割り込み命令等が行われない限りにおいて、制御部40は、3スキャン目以降も処理を行い、2スキャン目までと同様に各アドレスの信号値を格納する。
なお、制御部40は、シーケンスプログラムのオブジェクトコード30が実行中において、常にトレースし続ける。
[トレースグラフ出力処理]
次に、プログラマブルコントローラ4でのトレースグラフ出力処理を、図6Bに基づいて説明する。
トレース用メモリ57に格納されたアドレスの信号値の内容を確認したい場合、図6BのS31において、プログラマブルコントローラ4の制御部40(グラフ出力部48)は、まず、トレース用メモリ57に格納された信号値の格納結果に基づいて、トレースグラフを生成する。図9に、トレース用メモリ57の信号値に基づいて生成したトレースグラフ80の例を示す。このトレースグラフ80は、信号がON(つまり、信号値が1)の場合を白色で、信号がOFF(つまり、信号値が1以外)の場合を黒色で示している。なお、このトレースグラフ80は、一例であって、白色と黒色とを反転させたものであってもよい。
次に、図6BのS32において、制御部40(グラフ出力部48)は、生成したトレースグラフ80を、表示部62に出力する。そうすることで、表示部62には、トレースグラフ80が表示される。
以上により、シーケンスプログラム処理装置100では、プログラム編集装置1が、トレース開始位置71a及びトレース終了位置71bの指定を含むようにシーケンスプログラムを編集する。その結果、シーケンスプログラムには、トレース対象区間である区間71xが設定される。そして、プログラム編集装置1では、区間71xにある構成要素のアドレスを解析し、トレース用メモリ57への信号値の転送命令を挿入し、及び、解析したアドレスをサンプリング用アドレステーブル32に設定する。その後、プログラム編集装置1は、実行プログラム31とサンプリング用アドレステーブル32とを含むシーケンスプログラムのオブジェクトコード30に変換する。
そして、プログラマブルコントローラ4が、プログラム編集装置1により生成されたシーケンスプログラムのオブジェクトコード30をシーケンスプログラムメモリ56にローディングさせた後、システムソフト52に従って、プログラム編集装置1で生成したシーケンスプログラムのオブジェクトコード30を実行させる。そうすることによって、プログラマブルコントローラ4において、シーケンスプログラムのオブジェクトコード30が実行される。その結果、トレース用メモリ57に、トレース対象区間の命令の信号値が設定される。
よって、シーケンスプログラムのうちユーザが指定した開始及び終了位置の間の信号値のトレースが可能になり、必要な信号値のサンプリングができる。また、シーケンスプログラム中で信号変化があった場合のサンプリングを行える。さらに、シーケンスプログラムのサイクルタイムが長くなるのを抑えることができる。
なお、本実施形態で使用するプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non−transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば、光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(random access memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
また、前述した実施形態は、本発明の好適な実施形態の1つではあるが、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
(変形例1)
前述した実施形態では、シーケンスプログラムのオブジェクトコードを実行すると、順次トレース用メモリへの信号値の転送命令が実行されることによって、信号値を順番にトレース用メモリに格納するものを例に説明したが、これに限定されない。
例えば、プログラム編集装置1の制御部10(コンパイル部13)が、トレース機能を実行又は停止するために、トレース用メモリへの信号値の転送命令の実行又は停止に係る制御条件を挿入するものであってもよい。図10に示すラダー272は、トレース用メモリへの転送命令である追加要素72a及び72bの前に、トレース実行の制御条件273及び274が挿入されている。このようにすることで、例えば、入力部61からの入力によって、制御条件273及び274の信号状態が変化し、それに伴って、追加要素72a及び72bの実行が制御できる。
(変形例2)
前述した実施形態では、シーケンスプログラム処理装置100が、プログラム編集装置1と、プログラマブルコントローラ4とにより構成されるものを例に説明したが、これに限定されない。プログラマブルコントローラ4が、プログラム編集装置1を含むようにしてもよい。具体的には、プログラマブルコントローラ4が、プログラム編集装置1の備えるすべての機能を備えるようにしてもよい。
図11は、プログラム編集装置1の機能を含むプログラマブルコントローラ204を備えたシーケンスプログラム処理装置200のブロック図である。
プログラマブルコントローラ204は、制御部240と、記憶部250と、通信部59と、入力部61と、表示部62とを備える。
制御部240は、プログラム編集部241と、コンパイル部243と、サンプリングアドレス設定部45と、コード実行部47と、グラフ出力部48とを備える。プログラム編集部241及びコンパイル部243は、プログラム編集装置1のプログラム編集部11及びコンパイル部13と同様の機能を有する。
記憶部250は、ROM251と、RAM55とを備える。
ROM251は、システムソフト252を備える。システムソフト252は、プログラム編集装置1の編集用プログラム21と同様の処理を行うプログラムと、プログラマブルコントローラ4のシステムソフト52とを含む。
このようにすることで、プログラム編集機能を有した、単体のプログラマブルコントローラ204であっても、前述した実施形態と同様の機能を有するものにできる。
(変形例3)
前述した実施形態では、シーケンスプログラムとしてラダー方式のプログラムを例に説明したが、これに限定されない。例えば、SFC(Sequential Function Chart)方式等の他のシーケンスプログラムであってもよい。
(変形例4)
前述した実施形態では、トレース結果を表示部62に表示するものを例に説明したが、これに限定されない。データとしてファイルに出力するものであってもよい。
(変形例5)
前述した実施形態では、トレース開始位置とトレース終了位置とのペアを1つ設定したものを例に説明したが、これに限定されない。トレース開始位置とトレース終了位置とのペアを複数設定してもよい。
以上のように、本実施形態によれば、例えば以下の作用効果が得られる。
(1)シーケンスプログラムメモリ56に記憶されたシーケンスプログラムのオブジェクトコード30を実行するシーケンスプログラム処理装置100が、プログラム編集装置1と、プログラマブルコントローラ4と、を備え、プログラム編集装置1は、シーケンスプログラムにトレース開始位置とトレース終了位置とのペアを設定可能なプログラム編集部11と、プログラム編集部11により設定されたトレース開始位置とトレース終了位置との間にある命令のアドレスを解析し、トレース用メモリ57への信号値の転送命令を挿入し、及び、解析したアドレスをサンプリング用アドレステーブル32に設定して、実行プログラム31とサンプリング用アドレステーブル32とを含むシーケンスプログラムのオブジェクトコード30に変換するコンパイル部13と、を含み、プログラマブルコントローラ4は、コンパイル部13により変換されたシーケンスプログラムのオブジェクトコード30に含まれるサンプリング用アドレステーブル32に基づいて、トレース用メモリ57にサンプリングアドレスを設定するサンプリングアドレス設定部45と、シーケンスプログラムのオブジェクトコード30を実行し、転送命令に従って信号値をトレース用メモリ57に格納するコード実行部47と、を含む。
これにより、プログラム編集装置1と、プログラマブルコントローラ4との2つの装置を用いて、シーケンスプログラムのうち開始及び終了位置の間にある信号値のトレースが可能になり、簡単な設定によって必要な信号値のサンプリングができる。
(2) (1)に記載のシーケンスプログラム処理装置100において、プログラム編集部11は、設定の指示入力に基づいて、ペアを設定し、複数のペアの設定が可能であってもよい。
これにより、ユーザがペアを複数設定でき、複数のペアによる各トレース対象区間にある命令の信号値をサンプリングできる。
(3) (1)又は(2)に記載のシーケンスプログラム処理装置100において、コンパイル部13は、転送命令を、次のネットとの間に挿入してもよい。
これにより、次のネットの命令を実行する前に、命令の信号値をサンプリングできる。
(4) (1)から(3)までのいずれかに記載のシーケンスプログラム処理装置100において、コンパイル部13は、さらに転送命令に対する制御条件を挿入してもよい。
これにより、信号値のサンプリングの開始や停止を、入力部61からの入力によって制御できる。
(5) (1)から(4)までのいずれかに記載のシーケンスプログラム処理装置100において、プログラマブルコントローラ4は、コード実行部47によりトレース用メモリ57に格納された信号値を含むトレース結果を、トレースグラフとして出力するグラフ出力部48を備えてもよい。
これにより、命令の信号値を、トレースグラフとして見やすい態様で示すことができる。
(6) (1)から(5)までのいずれかに記載のシーケンスプログラム処理装置100において、プログラマブルコントローラ204は、プログラム編集装置1を含んでもよい。
これにより、(1)と同様の効果をプログラマブルコントローラ204だけで実現できる。
1 プログラム編集装置
4,204 プログラマブルコントローラ
10,40,240 制御部
11,241 プログラム編集部
13,243 コンパイル部
20,50,250 記憶部
21 編集用プログラム
30 シーケンスプログラムのオブジェクトコード
31 実行プログラム
32 サンプリング用アドレステーブル
45 サンプリングアドレス設定部
47 コード実行部
48 グラフ出力部
52,252 システムソフト
56 シーケンスプログラムメモリ
57 トレース用メモリ
62 表示部
100,200 シーケンスプログラム処理装置

Claims (6)

  1. プログラムメモリに記憶されたシーケンスプログラムのオブジェクトコードを実行するシーケンスプログラム処理装置であって、
    プログラム編集装置と、
    プログラマブルコントローラと、
    を備え、
    前記プログラム編集装置は、
    シーケンスプログラムにトレース開始位置とトレース終了位置とのペアを設定可能なプログラム編集部と、
    前記プログラム編集部により設定された前記トレース開始位置と前記トレース終了位置との間にある命令のアドレスを解析し、トレース用メモリへの信号値の転送命令を挿入し、及び、解析した前記アドレスをサンプリング用アドレステーブルに設定して、実行プログラムと前記サンプリング用アドレステーブルとを含む前記シーケンスプログラムのオブジェクトコードに変換するコンパイル部と、
    を含み、
    前記プログラマブルコントローラは、
    前記コンパイル部により変換された前記シーケンスプログラムのオブジェクトコードに含まれる前記サンプリング用アドレステーブルに基づいて、前記トレース用メモリにサンプリングアドレスを設定するサンプリングアドレス設定部と、
    前記シーケンスプログラムのオブジェクトコードを実行し、前記転送命令に従って前記信号値を前記トレース用メモリに格納するコード実行部と、
    を含む、シーケンスプログラム処理装置。
  2. 請求項1に記載のシーケンスプログラム処理装置において、
    前記プログラム編集部は、設定の指示入力に基づいて、前記ペアを設定し、複数の前記ペアの設定が可能である、シーケンスプログラム処理装置。
  3. 請求項1又は請求項2に記載のシーケンスプログラム処理装置において、
    前記コンパイル部は、前記転送命令を、次のネットとの間に挿入する、シーケンスプログラム処理装置。
  4. 請求項1から請求項3までのいずれか一項に記載のシーケンスプログラム処理装置において、
    前記コンパイル部は、さらに前記転送命令に対する制御条件を挿入する、シーケンスプログラム処理装置。
  5. 請求項1から請求項4までのいずれか一項に記載のシーケンスプログラム処理装置において、
    前記プログラマブルコントローラは、
    前記コード実行部により前記トレース用メモリに格納された前記信号値を含むトレース結果を、トレースグラフとして出力するグラフ出力部を備える、シーケンスプログラム処理装置。
  6. 請求項1から請求項5までのいずれか一項に記載のシーケンスプログラム処理装置において、
    前記プログラマブルコントローラは、前記プログラム編集装置を含む、シーケンスプログラム処理装置。
JP2019036256A 2019-02-28 2019-02-28 シーケンスプログラムのトレースに用いるシーケンスプログラム処理装置 Active JP6978458B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2019036256A JP6978458B2 (ja) 2019-02-28 2019-02-28 シーケンスプログラムのトレースに用いるシーケンスプログラム処理装置
DE102020200912.0A DE102020200912A1 (de) 2019-02-28 2020-01-27 Sequenzprogrammprozessor, der zum Verfolgen eines Sequenzprogramms verwendet wird
US16/774,607 US11036617B2 (en) 2019-02-28 2020-01-28 Sequence program processor used for tracing of sequence program
CN202010084355.9A CN111624933B (zh) 2019-02-28 2020-02-10 用于顺控程序的追踪的顺控程序处理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019036256A JP6978458B2 (ja) 2019-02-28 2019-02-28 シーケンスプログラムのトレースに用いるシーケンスプログラム処理装置

Publications (2)

Publication Number Publication Date
JP2020140502A JP2020140502A (ja) 2020-09-03
JP6978458B2 true JP6978458B2 (ja) 2021-12-08

Family

ID=72046192

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019036256A Active JP6978458B2 (ja) 2019-02-28 2019-02-28 シーケンスプログラムのトレースに用いるシーケンスプログラム処理装置

Country Status (4)

Country Link
US (1) US11036617B2 (ja)
JP (1) JP6978458B2 (ja)
CN (1) CN111624933B (ja)
DE (1) DE102020200912A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11681508B2 (en) * 2020-08-24 2023-06-20 Cisco Technology, Inc. Source code analysis to map analysis perspectives to events

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02253305A (ja) * 1989-03-27 1990-10-12 Fanuc Ltd Pcの信号トレース方式
JPH02306307A (ja) * 1989-05-22 1990-12-19 Yaskawa Electric Mfg Co Ltd プログラマブルコントローラ
JPH04235603A (ja) * 1991-01-10 1992-08-24 Fanuc Ltd Pcの信号トレース制御方式
JPH07281716A (ja) * 1994-04-15 1995-10-27 Hitachi Ltd プログラマブルコントローラ
US6249906B1 (en) * 1998-06-26 2001-06-19 International Business Machines Corp. Adaptive method and system to minimize the effect of long table walks
CN1209707C (zh) * 2001-04-03 2005-07-06 华邦电子股份有限公司 内存处理方法和处理系统
JP3892873B2 (ja) 2005-01-11 2007-03-14 株式会社東芝 プログラマブルコントローラ
JP4901813B2 (ja) * 2008-05-30 2012-03-21 三菱電機株式会社 マルチコントローラシステム
CN101488012A (zh) * 2009-02-13 2009-07-22 国网电力科学研究院 一种利用流程框图实现顺序控制的方法
JP5376509B2 (ja) * 2009-03-16 2013-12-25 スパンション エルエルシー 実行履歴トレース方法
WO2011116987A1 (en) * 2010-03-26 2011-09-29 Software Diagnostics Technology Gmbh A method for automatically generating a trace data set for a software system, a computer system, and a computer program product
US8438427B2 (en) * 2011-04-08 2013-05-07 Ca, Inc. Visualizing relationships between a transaction trace graph and a map of logical subsystems
US9098308B2 (en) * 2012-06-26 2015-08-04 Marvell World Trade Ltd. Method and apparatus for code performance analysis based on execution trace information
JP6747104B2 (ja) * 2016-06-30 2020-08-26 オムロン株式会社 セーフティシステム、プログラム、および方法
US10698792B2 (en) * 2018-05-02 2020-06-30 Microsoft Technology Licensing, Llc Execution control with cross-level trace mapping

Also Published As

Publication number Publication date
CN111624933A (zh) 2020-09-04
DE102020200912A1 (de) 2020-09-03
US11036617B2 (en) 2021-06-15
US20200278917A1 (en) 2020-09-03
CN111624933B (zh) 2024-02-20
JP2020140502A (ja) 2020-09-03

Similar Documents

Publication Publication Date Title
JP5649748B1 (ja) プログラマブルコントローラの周辺装置およびデバッグ支援プログラム
KR102141262B1 (ko) 상호작용적 그래픽 사용자 인터페이스로부터의 테스트 클래스 프리헤더의 자동화된 생성
US9727442B2 (en) Engineering tool, program editing device, and program editing system
US8079014B2 (en) Software development apparatus and method
EP3540536B1 (en) Development support device, development support method, and development support program
US20190196798A1 (en) Executable program creation device, executable program creation method, and executable program creation program
JP6978458B2 (ja) シーケンスプログラムのトレースに用いるシーケンスプログラム処理装置
US9547479B2 (en) Method for adapting GUI-based instrument components in a visual programming language
US6289264B1 (en) Debugging system for robot programs
KR100694381B1 (ko) 그래피컬 프로그래밍 장치 및 프로그래머블 표시기
JP4062546B2 (ja) デバッグ装置
JP6483507B2 (ja) 制御プログラム作成装置、及び制御プログラムのデバッグ方法
WO2021024520A1 (ja) 情報処理装置、サポートプログラムおよびサポートシステム
CN100367233C (zh) 程序执行控制方式
JP2003248504A (ja) 制御プログラムのデバッグ方法
JP6795568B2 (ja) トレース装置及びプログラマブルコントローラ
JP6773732B2 (ja) トレース装置
US10437226B2 (en) Positioning control apparatus
WO2022138442A1 (ja) ラダープログラム解析装置
JP5983397B2 (ja) 分析機器制御装置及び分析機器制御装置用プログラム
JP2007102385A (ja) デバッグ装置
JPWO2016157482A1 (ja) システム開発装置、プログラム開発方法および開発プログラム
KR20120040370A (ko) 기판 처리 장치의 모니터링 방법
CN112416736A (zh) 一种生成测试套件的方法、装置、服务器及可读存储介质
JP2010054280A (ja) Lsiテスタおよびテストプログラム自動作成ツール並びにテストシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200710

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210419

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210427

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211111

R150 Certificate of patent or registration of utility model

Ref document number: 6978458

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150