JP7247808B2 - 制御システム、解析方法およびプログラム - Google Patents

制御システム、解析方法およびプログラム Download PDF

Info

Publication number
JP7247808B2
JP7247808B2 JP2019141417A JP2019141417A JP7247808B2 JP 7247808 B2 JP7247808 B2 JP 7247808B2 JP 2019141417 A JP2019141417 A JP 2019141417A JP 2019141417 A JP2019141417 A JP 2019141417A JP 7247808 B2 JP7247808 B2 JP 7247808B2
Authority
JP
Japan
Prior art keywords
controller
program
target
information
trajectory
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
JP2019141417A
Other languages
English (en)
Other versions
JP2021026309A (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.)
Omron Corp
Original Assignee
Omron 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 Omron Corp filed Critical Omron Corp
Priority to JP2019141417A priority Critical patent/JP7247808B2/ja
Priority to CN202080046809.1A priority patent/CN114041092A/zh
Priority to EP20847255.5A priority patent/EP4006663A4/en
Priority to US17/622,959 priority patent/US20220229416A1/en
Priority to PCT/JP2020/009718 priority patent/WO2021019818A1/ja
Publication of JP2021026309A publication Critical patent/JP2021026309A/ja
Application granted granted Critical
Publication of JP7247808B2 publication Critical patent/JP7247808B2/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/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4155Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
    • 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
    • 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/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/406Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by monitoring or safety
    • G05B19/4069Simulating machining process on screen
    • 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/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/32Operator till task planning
    • G05B2219/32043Program, information flow
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/35Nc in input of data, input till input file format
    • G05B2219/35349Display part, programmed locus and tool path, traject, dynamic locus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Description

本開示は、NCプログラムに従った制御およびシーケンスプログラムに従った制御を行なう制御システム、当該制御システムにおける解析方法およびプログラムに関する。
従来、CNC(Computer Numerical Control:コンピュータ数値制御)に従う工作機械(以下、「CNC工作機械」とも総称する。)が様々な生産現場で利用されている。このような工作機械は、設計者によって設計されたNC(Numerical Control)プログラムに従って制御される。
特開昭59-707号公報(特許文献1)には、NCプログラムのデバッグのために、工具軌跡をグラフィック表示装置に表示する技術が開示されている。グラフィック表示装置は、工具軌跡のうち、NCプログラム中から選択された部分に対応する軌跡を表示する。これにより、設計者は、NCプログラムと工具軌跡との関係を確認しやすくなる。
特開昭59-707号公報
近年、NCプログラムに従って制御される工作機械と、シーケンスプログラムに従って制御される対象機器とを連係動作させるFAシステムが開発されている。対象機器は、工作機械の周辺機器であり、例えば搬送装置である。
このようなFAシステムでは、NCプログラムおよびシーケンスプログラムのデバッグが別個に実行される。例えば、NCプログラムのデバッグは、特許文献1に開示の技術を用いて、NCプログラムの各部分に対応する軌跡を画面上で確認しながら実行される。シーケンスプログラムのデバッグは、シーケンスプログラムの実行により更新される変数の値の推移を画面上で確認しながら実行される。設計者は、別個の画面を確認しながら、NCプログラムに従って制御される工作機械とシーケンスプログラムに従って制御される対象機器とが所望の連係動作を行なうように各プログラムのデバックを実行する必要がある。そのため、デバッグ効率が低下し、アプリケーションの開発生産性が低い。
本発明は、上記の問題に鑑みてなされたものであり、その目的は、互いに連係して動作する工作機械およびその周辺の対象機器をそれぞれ制御するためのNCプログラムおよびシーケンスプログラムのデバッグ効率を向上させる制御システム、解析方法およびプログラムを提供することである。
本開示の一例によれば、制御システムは、NCプログラムに従って工作機械を制御する第1コントローラと、シーケンスプログラムに従って対象機器を制御する第2コントローラと、サポート装置とを備える。第1コントローラおよび第2コントローラは、互いに時刻同期される。サポート装置は、第1取得部と第2取得部とを含む。第1取得部は、NCプログラムの実行によって生成された指令値に対応する工作機械の位置と、第1コントローラによる当該指令値を用いた制御時刻を示す第1時刻情報とを対応付けた軌跡情報を取得する。第2取得部は、シーケンスプログラムの実行により更新される変数の値と更新時刻を示す第2時刻情報とを対応付けた変数履歴情報を取得する。第1時刻情報および第2時刻情報は、第1コントローラおよび第2コントローラによってそれぞれ生成される。サポート装置はさらに、選択部と、第1描画部と、第2描画部とを含む。選択部は、NCプログラムおよびシーケンスプログラムの実行期間のうちの対象期間を選択する。第1描画部は、軌跡情報によって示される軌跡のうち対象期間に対応する第1対象部分を表示装置に表示させる。第2描画部は、変数履歴情報によって示される変数の値の推移のうち対象期間に対応する第2対象部分を表示装置に表示させる。
この開示によれば、軌跡情報に含まれる第1時刻情報と変数履歴情報に含まれる第2時刻情報とは、互いに時刻同期された第1コントローラと第2コントローラとによってそれぞれ生成される。そのため、第1時刻情報と第2時刻情報とは、共通の時間軸上の時刻を示す。従って、設計者は、軌跡のうち対象期間に対応する第1対象部分と、対象期間における変数の値とを表示装置で確認することにより、対象期間における工作機械と対象機器との動作の関係を容易に確認できる。その結果、互いに連係して動作する工作機械およびその周辺の対象機器をそれぞれ制御するためのNCプログラムおよびシーケンスプログラムのデバッグ効率が向上する。
上述の開示において、第1描画部は、軌跡情報によって示される軌跡を表示装置に表示させる。選択部は、表示装置に表示された軌跡のうちの指定区間の入力を受け、軌跡情報に基づいて指定区間に対応する期間を対象期間として選択する。第1描画部は、表示装置に表示された軌跡のうち第1対象部分を残りの部分と異なる表示形式で表示する。
この開示によれば、設計者は、軌跡情報によって示される軌跡の中から確認したい部分を指定区間として指定できる。指定区間に対応する期間が対象期間として選択されるため、指定区間は第1対象部分と一致する。そして、軌跡のうち第1対象部分が残りの部分と異なる表示形式で表示される。そのため、設計者は、指定区間(すなわち第1対象部分)の軌跡全体に対する相対位置を確認しやすくなるとともに、指定区間に対応する期間(対象期間)に更新された変数の値を容易に確認できる。
上述の開示において、第2描画部は、変数履歴情報によって示される変数の値の推移を表示装置に表示させる。選択部は、表示装置に表示された推移のうちの指定期間の入力を受け、指定期間を対象期間として選択する。第2描画部は、表示装置に表示された推移のうち第2対象部分を残りの部分と異なる表示形式で表示する。
この開示によれば、設計者は、変数履歴情報によって示される変数の値の推移の中から確認したい期間を指定期間として指定できる。指定期間が対象期間として選択されるため、軌跡のうち指定期間に対応する部分が第1対象部分となり、第1対象部分が表示装置に表示される。そのため、設計者は、指定期間における変数の値の推移と工作機械の位置との関係を容易に確認しやすくなる。
上述の開示において、サポート装置は、NCプログラムのうち対象期間に実行された第3対象部分のソースコードを表示装置に表示させる第3描画部をさらに含む。
この開示によれば、設計者は、対象期間に実行されたNCプログラムと対象期間における工作機械の位置との関係を容易に確認でき、NCプログラムをデバッグしやすくなる。
上述の開示において、サポート装置は、NCプログラムの第3対象部分の中に第2コントローラに対して信号を出力する命令が含まれることに応じて、シーケンスプログラムのうち信号に関連する第4対象部分のソースコードを表示装置に表示させる第4描画部をさらに含む。
この開示によれば、設計者は、対象期間においてNCプログラムに従って出力される信号に関連した、シーケンスプログラムのソースコードを容易に確認でき、シーケンスプログラムをデバッグしやすくなる。
上述の開示において、第1コントローラと第2コントローラとは、1つの制御装置に含まれ、制御装置が有する共通のタイマを用いて動作する。
この開示によれば、第1コントローラと第2コントローラとを容易に時刻同期させることができる。
上述の開示において、第1コントローラおよび第2コントローラは、互いに時刻同期された第1タイマおよび第2タイマをそれぞれ有する。
この開示によれば、第1コントローラと第2コントローラとが別体の装置に設けられていても、第1コントローラと第2コントローラとを容易に時刻同期させることができる。
本開示の一例によれば、制御システムは、NCプログラムに従って工作機械を制御する第1コントローラと、シーケンスプログラムに従って対象機器を制御する第2コントローラとを備える。第1コントローラおよび第2コントローラは、互いに時刻同期される。制御システムにおける解析方法は、第1および第2のステップを備える。第1のステップは、NCプログラムの実行によって生成された指令値に対応する工作機械の位置と、第1コントローラによる当該指令値を用いた制御時刻を示す第1時刻情報とを対応付けた軌跡情報を取得するステップである。第2のステップは、シーケンスプログラムの実行により更新される変数の値と更新時刻を示す第2時刻情報とを対応付けた変数履歴情報を取得するステップである。第1時刻情報および第2時刻情報は、第1コントローラおよび第2コントローラによってそれぞれ生成される。解析方法はさらに、第3~第5のステップを備える。第3のステップは、NCプログラムおよびシーケンスプログラムの実行期間のうちの対象期間を選択するステップである。第4のステップは、軌跡情報によって示される軌跡のうち対象期間に対応する第1対象部分を表示装置に表示させるステップである。第5のステップは、変数履歴情報によって示される変数の値の推移のうち対象期間に対応する第2対象部分を表示装置に表示させるステップである。
本開示の一例によれば、プログラムは、制御システムにおける上記の解析方法をコンピュータに実行させる。
これらの開示によっても、互いに連係して動作する工作機械およびその周辺の対象機器をそれぞれ制御するためのNCプログラムおよびシーケンスプログラムのデバッグ効率が向上する。
本開示によれば、互いに連係して動作する工作機械およびその周辺の対象機器をそれぞれ制御するためのNCプログラムおよびシーケンスプログラムのデバッグ効率が向上する。
実施の形態に係る制御システムの全体構成例を示す模式図である。 本実施の形態に係る制御装置の機能構成例を示す模式図である。 本実施の形態に係る制御装置のNCコントローラの処理を概念的に示す模式図である。 NCコントローラにおける処理の具体例を示す模式図である。 サポート装置による支援画面の生成処理の概要を説明する図である。 本実施の形態に係る制御システムに備えられる制御装置のハードウェア構成例を示すブロック図である。 本実施の形態に従う制御システムに備えられるサポート装置のハードウェア構成例を示す模式図である。 変数履歴情報の一例を示す図である。 軌跡情報の一例を示す図である。 サポート装置の機能構成例を示す模式図である。 線分情報の一例を示す図である。 指定区間の入力を受け付けるウィンドウの一例の示す図である。 変数の値の推移を示すウィンドウの一例の示す図である。 軌跡から対象期間を選択するときの第1解析部における処理の流れの一例を示すフローチャートである。 軌跡から対象期間を選択するときの第2解析部における処理の流れの一例を示すフローチャートである。 第3解析部における処理の流れの一例を示すフローチャートである。 第4解析部における処理の流れの一例を示すフローチャートである。 表示装置に表示される支援画面の一例を示す図である。 変数履歴情報から対象期間を選択するときの第2解析部における処理の流れの一例を示すフローチャートである。 変数履歴情報から対象期間を選択するときの第1解析部における処理の流れの一例を示すフローチャートである。 変形例1に係る制御システムを示す模式図である。
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
§1 適用例
まず、図1~図5を参照して、本発明が適用される場面の一例について説明する。
<1-A.制御システムの全体構成>
図1は、実施の形態に係る制御システムの全体構成例を示す模式図である。図1に例示される制御システム1は、制御装置100と、サポート装置200と、フィールドデバイス500とを備える。
制御装置100は、各種の設備や装置などを制御する産業用コントローラに相当する。制御装置100は、後述するような制御演算を実行する一種のコンピュータであり、典型的には、PLC(プログラマブルロジックコントローラ)として具現化されてもよい。
制御装置100は、フィールドネットワーク2を介して各種のフィールドデバイス500と接続される。制御装置100は、フィールドネットワーク2などを介して、1または複数のフィールドデバイス500との間でデータを遣り取りする。
制御装置100において実行される制御演算は、フィールドデバイス500において収集または生成されたデータ(入力データ)を収集する処理(入力処理)、フィールドデバイス500に対する指令値などのデータ(出力データ)を生成する処理(演算処理)、生成した出力データを対象のフィールドデバイス500へ送信する処理(出力処理)などを含む。
フィールドネットワーク2は、定周期通信を行うバスまたはネットワークを採用することが好ましい。このような定周期通信を行うバスまたはネットワークとしては、EtherCAT(登録商標)、EtherNet/IP(登録商標)、DeviceNet(登録商標)、CompoNet(登録商標)などが知られている。データの到達時間が保証される点において、EtherCAT(登録商標)が好ましい。
フィールドネットワーク2には、任意のフィールドデバイス500を接続することができる。フィールドデバイス500は、フィールド側にある製造装置および生産ラインなどに対して何らかの物理的な作用を与えるアクチュエータ、および、フィールドとの間で情報を遣り取りする入出力装置などを含む。
フィールドネットワーク2を介して、制御装置100とフィールドデバイス500との間でデータが遣り取りされる。これらの遣り取りされるデータは、数100μsecオーダ~数10msecオーダのごく短い制御周期で更新される。
図1に例示される制御装置100は、CNC工作機械540と、CNC工作機械540に対してワークWを供給する搬送装置550とを制御する。
CNC工作機械540は、工具541の位置または速度を指定するNCプログラム32に従って、マシニングセンタなどを制御することで、ワークWを加工する。工具541は、ワークWに対して加工を行なう部位である。CNC工作機械540としては、図示のものに限られず、旋盤加工、フライス盤、放電加工などの任意の加工装置に適用できる。搬送装置550は、シーケンスプログラム30に従って制御される。
CNC工作機械540および搬送装置550は、制御装置100からの指令値に従って駆動される。搬送装置550により搬送されるワークWは、作業台554の上に配置され、CNC工作機械540により指定された加工が行われる。
図1に例示されるフィールドデバイス500は、リモートI/O(Input/Output)装置510と、サーボドライバ520_1,520_2,520_3およびサーボモータ522_1,522_2,522_3と、サーボドライバ530とを含む。
リモートI/O装置510は、典型的には、フィールドネットワーク2を介して通信を行う通信カプラと、入力データの取得および出力データの出力を行うための入出力部(以下、「I/Oユニット」とも称す。)とを含む。リモートI/O装置510には、入力リレーや各種センサ(例えば、アナログセンサ、温度センサ、振動センサなど)などの入力データを収集する装置、および、出力リレー、コンタクタ、サーボドライバ、および、その他任意のアクチュエータなどのフィールドに対して何らかの作用を与える装置が接続される。
フィールドデバイス500としては、これらに限られることなく、入力データを収集する任意のデバイス(例えば、視覚センサなど)、出力データに従う何らかの作用を与える任意のデバイス(例えば、インバータ装置など)、各種ロボットなどを採用することができる。
サーボモータ522_1,522_2,522_3は、CNC工作機械540の一部として組み込まれており、サーボドライバ530は、搬送装置550のコンベアに連結されたサーボモータ532を駆動する。サーボドライバ520_1~520_3,530は、制御装置100からの指令値(位置指令値、速度指令値など)に従って、対応するサーボモータを駆動する。
図1に例示されるサーボモータ522_1,522_2,522_3はそれぞれ、CNC工作機械540のX軸,Y軸,Z軸の駆動源である。これらの3軸は、一体的に制御されることが好ましい。
本実施の形態に係る制御装置100は、シーケンスプログラム30を実行することで、シーケンス命令およびモーション命令に従って指令値を生成するとともに、NCプログラム32を実行することで、CNC工作機械540の挙動を制御するための指令値を生成する。なお、シーケンスプログラム30に含まれる制御命令により、NCプログラム32の実行開始および実行終了などが制御されてもよい。
制御装置100には、サポート装置200が接続可能になっている。サポート装置200は、制御装置100が制御対象を制御するために必要な準備を支援する装置である。具体的には、サポート装置200は、制御装置100で実行されるプログラム(NCプログラム32およびシーケンスプログラム30を含む)の開発環境(プログラム作成編集ツール、パーサ、コンパイラなど)、制御装置100および制御装置100に接続される各種デバイスの構成情報(コンフィギュレーション)を設定するための設定環境、生成したプログラムを制御装置100へ出力する機能、制御装置100上で実行されるプログラムをオンラインで修正・変更(デバッグ)する機能、などを提供する。
<1-B.制御装置の機能構成>
図2は、本実施の形態に係る制御装置100の機能構成例を示す模式図である。図2に例示される制御装置100は、シーケンスコントローラ10と、NCコントローラ11と、共有メモリ12とを含む。
本明細書において、「シーケンスプログラム」は、実行毎に全体がスキャンされて、実行毎に1または複数の指令値が算出されるプログラムを包含する。「シーケンスプログラム」は、典型的には、国際電気標準会議(International Electrotechnical Commission:IEC)によって規定された国際規格IEC61131-3に従って記述された1または複数の命令からなるプログラムを包含する。「シーケンスプログラム」には、シーケンス命令および/またはモーション命令を含み得る。なお、「シーケンスプログラム」としては、国際規格IEC61131-3に従って記述された命令に限らず、PLC(プログラマブルロジックコントローラ)の製造メーカまたはベンダーなどが独自に規定した命令を含むようにしてもよい。「シーケンスプログラム」は、即時性および高速性が要求される制御に好適である。
「シーケンスプログラム」のソースコードは、変数名、変数型、LD/ST命令およびパラメータを含む。
「NCプログラム」は、逐次解釈されるプログラムであり、1行ずつ逐次解釈して実行するインタプリタ方式で実行可能な言語で記述される。NCプログラム32は、例えば「G言語」を用いて記述される。
「NCプログラム」のソースコードは、行(ブロック)ごとに、ブロック番号、Gコード番号またはMコード番号、およびパラメータを含む。Gコードは、工作機械540の位置決めおよび方向指定などの準備機能を規定する。Mコードは、加工を行なうための補助機能を規定する。Mコードには、外部信号を出力するためのコードが含まれる。当該外部信号は、シーケンスプログラム30のソースコードにも使用され得る。
シーケンスコントローラ10は、シーケンスプログラム30の全体を制御周期毎にスキャンして指令値16を更新する。より具体的には、シーケンスコントローラ10は、制御装置100が備えるタイマ101に従って、予め定められた制御周期毎にシーケンスプログラム30を実行(スキャン)して1または複数の指令値16を更新する。シーケンスプログラム30は、シーケンス命令およびモーション命令を含み得る。シーケンス命令は、入力値、出力値、内部値などを含む1または複数の論理演算を規定する。モーション命令は、サーボモータなどのアクチュエータに対して、位置、速度、加速度、加加速度、角度、角速度、角加速度、角加加速度といった数値の演算手順を規定する。
シーケンスコントローラ10は、シーケンスプログラム30の実行により更新される変数を管理する変数管理部13を含む。「変数」は、フィールドデバイス500から取得する入力データ、フィールドデバイス500へ与えられる出力データ(指令値16)、制御演算を実行するために一時的に算出されるデータなどを含み得る。変数の値は、制御周期毎に更新される。変数管理部13は、制御周期毎に、変数の値と当該制御周期の時刻情報とを対応付けた変数履歴情報34を生成する。変数履歴情報34に含まれる時刻情報は、タイマ101に従って生成され、変数の値の更新時刻を示す。
NCコントローラ11は、逐次解釈されるNCプログラム32に従って制御周期毎に指令値17を更新する。より具体的には、NCコントローラ11は、NCプログラム32をインタプリタ方式で実行する。ただし、NCコントローラ11による指令値17の算出(更新)は、制御周期毎に繰返し実行される。NCコントローラ11は、タイマ101に従って、シーケンスコントローラ10による指令値16の算出に同期して、NCプログラム32に従う指令値17を算出する。このような制御周期毎の指令値17の算出を実現するために、NCコントローラ11は、インタプリタ14と、NC指令値演算部15とを含む。
インタプリタ14は、NCプログラム32の少なくとも一部を解釈して、中間コードを生成し、生成した中間コードを図示しない中間コードバッファに順次格納する。インタプリタ14は、NCプログラム32から中間コードの生成をある程度事前に行う。そのため、中間コードバッファには、複数の中間コードが格納されることもある。
NC指令値演算部15は、インタプリタ14が事前に生成した中間コードに従って、制御周期毎に指令値17を算出する。一般的に、NCプログラムに記述される命令(コード)は、逐次解釈されるために、演算周期毎に指令値17を算出できる保証はないが、中間コードを利用することで、制御周期毎の指令値17の算出を実現できる。
図3は、本実施の形態に係る制御装置のNCコントローラの処理を概念的に示す模式図である。
一般的に、NCプログラムは、インタプリタ方式で逐次解釈されるコードを含んでおり、各コードを逐次解釈した場合に必要となる時間は、各コードが記述する内容に応じて変化する。すなわち、インタプリタ方式で逐次解釈されるため、制御周期毎に指令値を算出することは容易ではない。
そこで、本実施の形態に係る制御装置100においては、NCコントローラ11のインタプリタ14が、NCプログラム32に記述された1または複数のコードを解釈し、その解釈された内容に基づいて、制御周期毎に指令値を算出するための中間コードを生成する。中間コードは、NCプログラム32に記述された1または複数のコード毎に生成されるので、通常は、1つのNCプログラム32から複数の中間コードが生成される。生成される中間コードは、中間コードバッファに順次キューイングされる。
中間コードの各々においては、時間に関する変数を入力として、指令値を算出できる関数が規定されていてもよい。すなわち、中間コードは、NC指令値演算部15が制御周期毎に指令値を更新するための関数であってもよい。このような関数を用いることで、NC指令値演算部15は、生成される中間コードを順次参照して、各制御周期における指令値を算出できる。
より具体的には、中間コードは、時間と指令値との関係を規定する関数であってもよい。中間コードを規定するための時間に関する変数としては、時刻、ある基準タイミングからの経過時間、制御周期の累積サイクル数などを用いることができる。
例えば、1番目の中間コードが制御周期の10倍分の期間に亘って指令値を規定するものであるとすると、NC指令値演算部15は、1番目の中間コードをキューイングして、10制御周期分の期間に亘って指令値を周期的に算出する。同様に、他の中間コードについても、基本的には、複数の制御周期に亘って指令値を算出できるものとなる。
したがって、インタプリタ14によるNCプログラム32からの中間コードの生成処理が、NC指令値演算部15による指令値の演算処理に比較して、十分に先だって実行されれば、シーケンスプログラム30に従う処理と同期して、NCプログラム32に従う処理を同期実行できる。
図4は、NCコントローラにおける処理の具体例を示す模式図である。図4に示されるように、NCコントローラ11のインタプリタ14は、NCプログラム32を逐次実行すると、NCプログラム32に含まれる各命令を解釈する((1)プログラム解釈)。この命令の解釈によって、規定された軌道が内部的に生成される((2)軌道生成)。最終的に、インタプリタ14は、生成した軌道を規定する1または複数の関数(中間コード)を生成する((3)中間コード生成)。
中間コードの一例としては、時間と指令値(位置指令値または速度指令値)との関係を規定する関数であってもよい。図4に例示される軌道は、直線の組み合わせで規定される。直線毎の軌道は、時間と位置との関係を示す関数F1(t),F2(t),F3(t)で示される。
NCコントローラ11のNC指令値演算部15は、生成された中間コードに従って制御周期毎の指令値を算出する。図4に示す例では、関数F1(t),F2(t),F3(t)に、各制御周期の時刻を入力することによって、当該時刻における指令値が一意に決定される。
図2に戻って、NC指令値演算部15は、制御周期毎に算出される指令値17に対応する工具541の位置と、当該指令値を用いて制御時刻を示す時刻情報とを対応付けた軌跡情報36を生成する。時刻情報は、タイマ101を用いて生成される。
<1-C.サポート装置による支援画面の生成処理>
サポート装置200は、シーケンスプログラム30およびNCプログラム32のデバッグを支援するための画面(以下、「支援画面」と称する。)を設計者に提供する。
図5は、サポート装置による支援画面の生成処理の概要を説明する図である。サポート装置200は、制御装置100から変数履歴情報34および軌跡情報36を取得する。支援画面は、取得した軌跡情報36によって示される軌跡を表示するためのウィンドウ61と、変数履歴情報34によって示される変数の値の推移を表示するためのウィンドウ62とを含む。変数の値の推移は、例えばグラフを用いて表現される。
サポート装置200は、設計者による操作に従って、対象期間を選択する。例えば、サポート装置200は、ウィンドウ61に表示されている軌跡のうちの一部の区間(指定区間)の入力を受け付け、当該指定区間に対応する期間を対象期間として選択してもよい。もしくは、サポート装置200は、ウィンドウ62に表示されているグラフのうちの一部の期間(指定期間)の入力を受け付け、当該指定期間を対象期間として選択してもよい。
対象期間が選択されると、サポート装置200は、軌跡情報36によって示される軌跡のうち対象期間に対応する第1対象部分65をウィンドウ61に表示する。図5に示す例では、サポート装置200は、ウィンドウ61において、第1対象部分65を他の部分と異なる表示形式で表示する。さらに、サポート装置200は、変数履歴情報34によって示される変数の値の推移のうち対象期間に対応する第2対象部分75をウィンドウ62に表示する。
上述したように、変数履歴情報34および軌跡情報36は、共通のタイマ101を用いて生成された時刻情報を含む。そのため、変数履歴情報34に含まれる時刻情報と軌跡情報36に含まれる時刻情報とは、同一の時間軸上の時刻を示す。従って、ウィンドウ61,62にそれぞれ表示される第1対象部分65および第2対象部分75を確認することにより、設計者は、対象期間における工作機械540と搬送装置550との動作の関係を容易に確認できる。その結果、互いに連係して動作する工作機械およびその周辺の対象機器をそれぞれ制御するためのNCプログラムおよびシーケンスプログラムのデバッグ効率が向上する。
サポート装置200は、NCプログラム32のソースコードを表示するためのウィンドウ63を支援画面に含めてもよい。
サポート装置200は、ウィンドウ63において、NCプログラム32のうち対象期間に実行された第3対象部分76を表示させる。図5に例示されるウィンドウ63では、第3対象部分76のソースコード(ブロック番号「3」~「7」のソースコード)が他の部部のソースコードと異なる表示形式で表示されている。これにより、設計者は、NCプログラムのデバッグを行ないやすくなる。
サポート装置200は、シーケンスプログラム30のソースコードを表示するためのウィンドウ64を支援画面に含めてもよい。
サポート装置200は、NCプログラム32のうち対象期間に実行された第3対象部分76のソースコードにシーケンスコントローラ10に対して信号を出力する命令が含まれることに応じて、シーケンスプログラム30のうち当該信号に関連する第4対象部分77のソースコードをウィンドウ64に表示してもよい。
シーケンスプログラム30のソースコードに含まれるパラメータの中には、NCプログラム32の実行によって出力される外部信号を規定するためのMコード番号が記述され得る。そのため、サポート装置200は、NCプログラム32のうち対象期間に実行された第3対象部分76のソースコードにMコード番号が含まれることに応じて、シーケンスプログラム30の中から当該Mコード番号を含むソードコードを抽出すればよい。Mコード番号を含むソースコードは、NCコントローラ11からシーケンスコントローラ10に対して出力された信号に関連する。
図5に例示されるウィンドウ64には、シーケンスプログラム30のうち、NCプログラム32のブロック番号「5」に記述されたMコード番号「101」を含む第4対象部分77のソースコードが表示されている。これにより、設計者は、シーケンスプログラム30のデバッグを行ないやすくなる。
§2 具体例
次に、本実施の形態に係る制御システム1の具体例について説明する。
<2-A.制御装置のハードウェア構成例>
図6は、本実施の形態に係る制御システムに備えられる制御装置のハードウェア構成例を示すブロック図である。図6に示されるように、制御装置100は、CPUユニットと称される演算処理部であり、プロセッサ102と、チップセット104と、主記憶装置106と、二次記憶装置108と、上位ネットワークコントローラ110と、USB(Universal Serial Bus)コントローラ112と、メモリカードインターフェイス114と、内部バスコントローラ120と、フィールドネットワークコントローラ130と、タイマ101とを含む。
プロセッサ102は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)などで構成される。プロセッサ102としては、複数のコアを有する構成を採用してもよいし、プロセッサ102を複数配置してもよい。チップセット104は、プロセッサ102および周辺エレメントを制御することで、制御装置100全体としての処理を実現する。主記憶装置106は、DRAM(Dynamic Random Access Memory)およびSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。二次記憶装置108は、例えば、HDD(Hard Disk Drive)およびSSD(Solid State Drive)などの不揮発性記憶装置などで構成される。
プロセッサ102は、二次記憶装置108に格納された各種プログラムを読出して、主記憶装置106に展開して実行することで、制御対象に応じた制御、および、後述するような各種処理を実現する。二次記憶装置108には、基本的な機能を実現するためのシステムプログラム38に加えて、制御対象の製造装置および設備に応じて作成されるユーザプログラム(シーケンスプログラム30およびNCプログラム32)が格納される。
上位ネットワークコントローラ110は、上位ネットワークを介して、図示しないサーバ装置などとの間のデータの遣り取りを制御する。USBコントローラ112は、USB接続を介してサポート装置200との間のデータの遣り取りを制御する。
メモリカードインターフェイス114は、メモリカード116が着脱可能に構成されており、メモリカード116に対してデータを書込み、メモリカード116から各種データ(ユーザプログラムやトレースデータなど)を読出すことが可能になっている。
内部バスコントローラ120は、制御装置100に装着されるI/Oユニット122との間のデータの遣り取りを制御する。フィールドネットワークコントローラ130は、フィールドネットワーク2を介したフィールドデバイス500との間のデータの遣り取りを制御する。
タイマ101は、例えば、時間経過に応じてインクリメントまたはデクリメントされるカウンタである。
図6には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。あるいは、制御装置100の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
図6に示す制御システム1においては、制御装置100およびサポート装置200がそれぞれ別体として構成されているが、これらの機能の全部または一部を単一の装置に集約するような構成を採用してもよい。
<2-B.サポート装置のハードウェア構成例>
図7は、本実施の形態に従う制御システムに備えられるサポート装置のハードウェア構成例を示す模式図である。サポート装置200は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。
図7に示されるように、サポート装置200は、プロセッサ202と、メインメモリ204と、入力装置206と、表示装置208と、ストレージ210と、光学ドライブ212と、USBコントローラ220とを含む。これらのコンポーネントは、プロセッサバス218を介して接続されている。
プロセッサ202は、CPUやGPUなどで構成され、ストレージ210に格納されたプログラム(一例として、OS2102およびサポートプログラム2104)を読出して、メインメモリ204に展開して実行することで、制御システム1に対する設定処理などを実現する。
メインメモリ204は、DRAMおよびSRAMなどの揮発性記憶装置などで構成される。ストレージ210は、例えば、HDDおよびSSDなどの不揮発性記憶装置などで構成される。
ストレージ210には、基本的な機能を実現するためのOS2102に加えて、サポート装置200としての機能を提供するためのサポートプログラム2104が格納される。すなわち、サポートプログラム2104は、制御装置100に接続されるコンピュータにより実行されることで、本実施の形態に係るサポート装置200を実現する。
入力装置206は、キーボードおよびマウスなどで構成され、ユーザ操作を受け付ける。表示装置208は、プロセッサ202からの処理結果などを表示する。
USBコントローラ220は、USB接続を介して、制御装置100などとの間のデータを遣り取りする。
サポート装置200は、光学ドライブ212を有しており、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体214(例えば、DVD(Digital Versatile Disc)などの光学記録媒体)から、その中に格納されたプログラムが読取られてストレージ210などにインストールされる。
サポート装置200で実行されるサポートプログラム2104などは、コンピュータ読取可能な記録媒体214を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係るサポート装置200が提供する機能は、OSが提供するモジュールの一部を利用する形で実現される場合もある。
図7には、プロセッサ202がプログラムを実行することで、サポート装置200として必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。
<2-C.変数履歴情報>
図8は、変数履歴情報の一例を示す図である。上述したように、変数履歴情報34は、制御装置100の変数管理部13(図2参照)によって生成される。
図8に例示される変数履歴情報34は、要素341の集合である。要素341は、変数が更新された制御周期を識別するインデックスと、当該制御周期の時刻を示す時刻情報と、変数情報とを対応付けた情報である。変数情報は、変数名と変数型と変数の値とを含む。インデックスは連続する番号である。時刻情報は、例えば、対応する制御周期における、開始時刻、終了時刻、またはユーザによって指定された時刻(命令の開始時刻)である。時刻情報は、タイマ101を用いて生成され、例えばタイマ101のカウント値を示す。
変数管理部13は、シーケンスプログラム30の実行により更新される各変数について、制御周期毎に要素341を生成し、生成した要素341を変数履歴情報34に追加する。
<2-D.軌跡情報>
図9は、軌跡情報の一例を示す図である。上述したように、軌跡情報36は、制御装置100のNC指令値演算部15(図2参照)によって生成される。
図9に例示される軌跡情報36は、制御周期毎の要素361を含む。要素361は、工具541(図1参照)の位置情報(以下、「工具点位置情報」と称する。)と、ブロック番号と、時刻情報とを対応付けた情報である。
工具点位置情報は、対応する制御周期の指令値17に対応する工具541の位置を示している。工具点位置情報は、X軸位置座標、Y軸位置座標およびZ軸位置座標を含む。NC指令値演算部15は、指令値17(位置指令値または速度指令値)に基づいて工具点位置情報を生成する。図3および図4を用いて説明したように、指令値17は、NCプログラム32の各行(ブロック)を逐次解釈することにより生成される中間コードに従って算出される。NC指令値演算部15は、制御周期毎に、指令値17に基づいて生成した工具点位置情報と、当該指令値17の算出に用いた中間コードに対応するブロック番号と、当該指令値17を用いた制御時刻を示す時刻情報とを対応付けた要素361を生成する。制御時刻は、例えば、対応する制御周期における、開始時刻、終了時刻、またはユーザによって指定された時刻(命令の開始時刻)である。NC指令値演算部15は、生成した要素361を軌跡情報36に追加する。なお、時刻情報は、タイマ101を用いて生成され、例えばタイマ101のカウント値を示す。
NCプログラム32の1つの行(ブロック)を解釈することにより生成された中間コード(例えば図4に示す関数F1(t))に、複数の制御周期の時刻が入力され得る。そのため、軌跡情報36において、同一のブロック番号を含む複数の要素361が連続し得る。
また、NCプログラム32には、Mコードを規定する行(ブロック)や、停止または待機を規定する行(ブロック)も含まれ得る。このような行(ブロック)を解釈することにより生成される中間コードは、工具541の位置が一定であることを示す。そのため、軌跡情報36において、同一の工具点位置情報を含む複数の要素361が連続し得る。
<2-E.サポート装置の機能構成例>
図10は、サポート装置の機能構成例を示す模式図である。図10には、制御装置100上で実行されるシーケンスプログラム30およびNCプログラム32のデバッグを支援する機能に関する構成が示されている。図10に示されるように、サポート装置200は、第1解析部21、第2解析部22、第3解析部23および第4解析部24を含む。
(2-E-1.第1解析部)
第1解析部21は、制御装置100から軌跡情報36を取得し、軌跡情報36に対する解析処理を実行する。第1解析部21は、描画部40と入力受付部41と対象部分決定部42とを含む。
描画部40は、軌跡情報36によって示される軌跡を表示装置208(図7参照)に表示させる。具体的には、描画部40は、軌跡情報36に基づいて線分情報を生成し、線分情報に従って軌跡の描画を行なう。
図11は、線分情報の一例を示す図である。図11に例示される線分情報37は、線分ごとの要素371を含む。要素371は、線分オブジェクトIDと、線分の開始点と、線分の終了点と、ブロック番号とを対応付けた情報である。描画部40は、軌跡情報36における連続する2つの要素361(図9参照)を用いて1つの要素371を生成する。具体的には、描画部40は、軌跡情報36における連続する2つの要素361のうち時刻が古い第1の要素361で示される工具点位置情報を開始点とし、時刻が新しい第2の要素361で示される工具点位置情報を終了点として、要素371を生成する。描画部40は、第2の要素361のブロック番号を要素371に含める。さらに、描画部40は、ユニークな線分オブジェクトIDを要素371に含める。描画部40は、軌跡情報36における連続する2つの要素361の全ての組み合わせの各々に対して要素371を生成する。このようにして、線分情報37が生成される。
上述したように、軌跡情報36において、同一の工具点位置情報を含む複数の要素361が連続し得る。そのため、開始点と終了点とが一致する要素371が線分情報37に含まれ得る。当該要素371に対応する線分は点となる。そのため、本明細書において「線分」には「点」も含まれ得る。
描画部40は、仮想空間を表示装置208に表示する。描画部40は、線分情報37に含まれる全ての要素371の各々について、開始点と終了点とを結ぶ線分を仮想空間上に配置する。線分情報37に含まれる全ての要素371に対応する線分を順に繋ぎ合わせた線は、軌跡情報36によって示される軌跡を示す。これにより、設計者は、表示装置208を確認することにより、NCプログラム32を実行したときの工具541の軌跡を認識できる。
入力受付部41は、表示装置208に表示された軌跡のうちの指定区間の入力を受け付ける。指定区間には、1または連続する複数の線分が含まれる。
図12は、指定区間の入力を受け付けるウィンドウの一例の示す図である。図12に例示されるウィンドウ61は、軌跡上の2つの点66a,66bを含む。入力受付部41は、点66aから点66bまでの区間を指定区間として受け付ける。点66a,66bの位置は、入力装置206(図7参照)への操作に応じて可変である。そのため、設計者は、所望の線分が含まれるように点66a,66bの位置を変更すればよい。
なお、指定区間の入力方法は、図12に示す例に限定されない。例えば、入力受付部41は、軌跡上の任意の点のクリックを受け付けてもよい。この場合、入力受付部41は、クリックされた点を含む線分を指定区間として決定すればよい。もしくは、入力受付部41は、クリックされた点を含む線分に対応するブロック番号と同じブロック番号に対応する全ての線分を指定区間として決定してもよい。これにより、ユーザは、NCプログラム32のブロック単位で指定区間を指定できる。
対象部分決定部42は、軌跡情報36によって示される軌跡のうち強調表示の対象となる第1対象部分を決定する。対象部分決定部42は、軌跡情報36によって示される軌跡のうち対象期間に対応する部分を第1対象部分として決定する。対象部分決定部42は、第1対象部分に対応する線分オブジェクトIDを描画部40に出力する。描画部40は、対象部分決定部42から受けた線分オブジェクトIDの線分(第1対象部分)を他の線分と異なる表示形式で表示する。例えば、第1対象部分は、他の部分よりも太い線で表示される。あるいは、第1対象部分は、他の部分(例えば黒色)と異なる色(例えば赤色)で表示されてもよい。
対象部分決定部42は、以下の2つの方法(a)(b)のいずれかに従って、第1対象部分を決定する。
・方法(a):指定区間を入力受付部41から受けた場合、対象部分決定部42は、指定区間に含まれる全ての線分を第1対象部分として決定する。
・方法(b):第2解析部22から対象期間を示す対象期間情報を受けた場合、対象部分決定部42は、対象期間に含まれる時刻情報を含む全ての要素361を軌跡情報36から抽出する。対象部分決定部42は、軌跡情報36から抽出した要素361に含まれる工具点位置情報およびブロック番号と一致する終了点およびブロック番号を含む要素371を線分情報37から抽出する。対象部分決定部42は、線分情報37から抽出した要素371の線分オブジェクトIDの線分を第1対象部分として決定する。
さらに、対象部分決定部42は、入力受付部41が指定区間を受け付けた場合、指定区間に対応する期間を対象期間として選択する。具体的には、対象部分決定部42は、指定区間に含まれる全ての線分に対応する要素371を線分情報37から抽出する。対象部分決定部42は、抽出した要素371に含まれる終了点およびブロック番号と一致する工具点位置情報およびブロック番号を含む要素361を軌跡情報36から抽出する。対象部分決定部42は、抽出した要素361に含まれる時刻情報に基づいて対象期間を決定する。
対象部分決定部42は、軌跡情報36から連続する複数の要素361を抽出した場合、当該複数の要素361のうちの1番目の要素361に含まれる時刻情報の時刻から最後の要素361に含まれる時刻情報の時刻までの期間を対象期間として決定する。対象部分決定部42は、軌跡情報36から1つの要素361のみを抽出した場合、抽出した要素361に含まれる時刻情報の時刻を対象期間として決定する。
このように、入力受付部41および対象部分決定部42は、表示装置208に表示された軌跡のうちの指定区間の入力を受け、軌跡情報36に基づいて指定区間に対応する期間を対象期間として選択する選択部として動作する。
対象部分決定部42は、対象期間の選択に応じて、当該対象期間を示す対象期間情報を第2解析部22に出力する。
さらに、対象部分決定部42は、対象期間の選択に応じて、対象期間に属する時刻情報を有する要素361を軌跡情報36から抽出し、抽出した要素361に含まれるブロック番号を第3解析部23に出力する。対象部分決定部42は、第2解析部22から対象期間情報を受けたことに応じて、対象期間情報で示される対象期間に属する時刻情報を有する要素361を軌跡情報36から抽出し、抽出した要素361に含まれるブロック番号を第3解析部23に出力する。対象部分決定部42から第3解析部23に出力されるブロック番号は、NCプログラム32のうち対象期間に実行された部分に対応している。
(2-E-2.第2解析部)
第2解析部22は、制御装置100から変数履歴情報34を取得し、変数履歴情報34に対する解析処理を実行する。なお、解析対象となる変数の種別は予め設定者によって設定されている。そのため、第2解析部22は、予め設定された種別の変数に対応する変数履歴情報34を制御装置100から取得すればよい。第2解析部22は、描画部43と入力受付部44と対象部分決定部45とを含む。
描画部43は、変数履歴情報34によって示される変数の値を表示装置208(図7参照)に表示させる。例えば、描画部43は、変数の値の推移を示すグラフを表示装置208に表示させる。
入力受付部44は、表示装置208に表示された変数の値の推移のうちの指定期間の入力を受け付ける。
図13は、変数の値の推移を示すウィンドウの一例の示す図である。図13に例示されるウィンドウ62は、指定期間の開始時刻および終了時刻をそれぞれ設定するためのスライダー67a,67bを含む。さらに、ウィンドウ62は、スライダー67a,67bの時刻をそれぞれ入力するための入力欄68a,68bを含む。入力受付部44は、スライダー67a,67bまたは入力欄68a,68bを用いて、指定期間の入力を受け付ける。
対象部分決定部45は、変数履歴情報34によって示される変数の値の推移のうち表示対象(または強調表示の対象)となる第2対象部分を決定する。対象部分決定部45は、変数履歴情報34によって示される変数の値の推移のうち対象期間に対応する部分を第2対象部分として決定する。第2対象部分は、例えば、変数履歴情報34に含まれる1または連続する複数のインデックス(図7参照)によって特定される。対象部分決定部45は、決定した第2対象部分を特定するインデックスを描画部43に出力する。描画部43は、対象部分決定部45から受けたインデックスに対応する変数の値のみをウィンドウ62に表示する。もしくは、描画部43は、対象部分決定部45から受けたインデックスに対応する変数の値を他のインデックスに対応する変数の値と異なる表示形式で表示する。
対象部分決定部42は、以下の2つの方法(A)(B)のいずれかに従って、第2対象部分を決定する。
・方法(A):入力受付部44が指定期間の入力を受け付けた場合、対象部分決定部45は、指定期間の開始時刻に対応するインデックスから指定期間の終了時刻に対応するインデックスまでを第2対象部分として決定する。
・方法(B):第1解析部21から対象期間情報を受けた場合、対象部分決定部45は、対象期間情報で示される対象期間に属する時刻情報に対応するインデックスを第2対象部分として決定する。
さらに、対象部分決定部45は、入力受付部44が指定期間の入力を受け付けた場合、当該指定期間を対象期間として選択する。このように、入力受付部44および対象部分決定部45は、表示装置208に表示された変数の値の推移のうちの指定期間の入力を受け、当該指定期間を対象期間として選択する選択部として動作する。対象部分決定部42は、対象期間の選択に応じて、対象期間を示す対象期間情報を第1解析部21に出力する。
(2-E-3.第3解析部)
第3解析部23は、制御装置100からNCプログラム32のソースコードを取得し、NCプログラム32に対する解析処理を行なう。NCプログラム32のソースコードは、上述したように、行(ブロック)ごとに、ブロック番号、Gコード番号またはMコード番号、およびパラメータを含む。第3解析部23は、対象部分決定部46と描画部47とを含む。
対象部分決定部46は、NCプログラム32のうち表示対象(または強調表示対象)となる第3対象部分を決定する。対象部分決定部46は、NCプログラム32のうち対象期間に実行された部分を第3対象部分として決定する。具体的には、対象部分決定部46は、第1解析部21から受けたブロック番号の行(ブロック)を第3対象部分として決定する。上述したように、第1解析部21の対象部分決定部42から第3解析部23に出力されるブロック番号は、NCプログラム32のうち対象期間に実行された部分である。
対象部分決定部46は、第3対象部分の中にMコード番号が含まれる場合、当該Mコード番号を第4解析部24に出力する。
描画部47は、対象部分決定部46によって決定された第3対象部分のソースコードを表示装置208に表示させる。描画部47は、第3対象部分のソースコードのみを表示装置208に表示させてもよい。もしくは、描画部47は、第3対象部分のソースコードとその上下のブロック番号のソースコードとを表示装置208に表示させ、第3対象部分のソースコードをそれ以外のソースコードと異なる表示形式で表示させてもよい。
これにより、設計者は、NCプログラム32のうち対象期間に実行された第3対象部分のソースコードを容易に確認できる。
(2-E-4.第4解析部)
第4解析部24は、制御装置100からシーケンスプログラム30のソースコードを取得し、シーケンスプログラム30に対する解析処理を行なう。シーケンスプログラム30のソースコードは、上述したように、LD/ST命令およびパラメータを含む。第4解析部24は、対象部分決定部48と描画部49とを含む。
対象部分決定部48は、シーケンスプログラム30のうち表示対象(または強調表示の対象)となる第4対象部分を決定する。対象部分決定部48は、シーケンスプログラム30のうち第3解析部23から受けたMコード番号を含む部分を第4対象部分として決定する。上述したように、第3解析部23の対象部分決定部46は、NCプログラム32のうち対象期間に実行された第3対象部分の中に含まれるMコード番号を第4解析部24に出力する。Mコード番号の中には、外部に信号を出力する命令(機能)に対応する番号が含まれる。そのため、対象部分決定部48によって決定される第4対象部分は、シーケンスプログラム30のうち、対象期間においてNCコントローラ11から出力された信号に関連する部分となる。
描画部49は、対象部分決定部48によって決定された第4対象部分のソースコードを表示装置208に表示させる。描画部49は、第4対象部分のソースコードのみを表示装置208に表示させてもよい。もしくは、描画部49は、第4対象部分のソースコードとその上下のソースコードとを表示装置208に表示させ、第4対象部分のソースコードをそれ以外のソースコードと異なる表示形式で表示させてもよい。
これにより、設計者は、シーケンスプログラム30のうち対象期間にNCコントローラ11から出力された信号に関連する第4対象部分のソースコードを容易に確認できる。
<2-F.軌跡から対象期間を選択するときのサポート装置の処理フロー>
図14~図18を参照して、軌跡から対象期間を選択するときのサポート装置200における処理の流れについて説明する。図14は、軌跡から対象期間を選択するときの第1解析部における処理の流れの一例を示すフローチャートである。図15は、軌跡から対象期間を選択するときの第2解析部における処理の流れの一例を示すフローチャートである。図16は、第3解析部における処理の流れの一例を示すフローチャートである。図17は、第4解析部における処理の流れの一例を示すフローチャートである。図18は、表示装置に表示される支援画面の一例を示す図である。
(2-F-1.第1解析部の処理フロー)
図14に示されるように、第1解析部21は、軌跡情報36から線分情報37を生成し、線分情報37に従って、NCプログラム32を実行したときの工具541の軌跡を表示装置208に表示する(ステップS1)。図18に示されるように、工具541の軌跡70は、表示装置208のウィンドウ61に表示される。
次に、第1解析部21は、表示された軌跡70上の1または連続する複数の線分の選択を受け付ける(ステップS2)。第1解析部21は、線分情報37の中から、選択された線分の線分オブジェクトID(以下、「対象線分オブジェクトID」と称する。)を抽出する(ステップS3)。第1解析部21は、対象線分オブジェクトIDの線分(すなわち第1対象部分65)を強調表示させる(ステップS4)。図17に示す例では、第1対象部分71が他の線分よりも太く表示されている。
次に、第1解析部21は、対象線分オブジェクトIDに対応する終了点およびブロック番号を線分情報37から抽出する(ステップS5)。
次に、第1解析部21は、線分情報37から抽出したブロック番号が軌跡情報36にあるか否かを判定する(ステップS6)。抽出したブロック番号が軌跡情報36にない場合(ステップS6でNO)、第1解析部21は、エラーメッセージを表示装置208に表示させ(ステップS7)、処理を終了する。エラーメッセージは、軌跡情報36に不備がある旨を示す。
抽出したブロック番号が軌跡情報36にある場合(ステップS6でYES)、第1解析部21は、抽出したブロック番号(以下、「対象ブロック番号」と称する。)を第3解析部23に出力する(ステップS8)。なお、ステップS2において連続する複数の線分が選択され、かつ、ステップS5において複数のブロック番号が抽出された場合、当該複数のブロック番号の全てが対象ブロック番号である。
次に、第1解析部21は、ステップS5において抽出した終了点およびブロック番号と一致する工具点位置情報およびブロック番号を有する要素361の時刻情報を軌跡情報36から抽出する(ステップS9)。第1解析部21は、ステップS9において抽出した時刻情報に基づいて対象期間を選択する(ステップS10)。第1解析部21は、選択した対象期間を示す対象期間情報を第2解析部22に出力する(ステップS11)。ステップS11の後、第1解析部21は処理を終了する。
(2-F-2.第2解析部の処理フロー)
図15に示されるように、第2解析部22は、第1解析部21から対象期間情報を取得する(ステップS21)。第2解析部22は、対象期間情報で示される対象期間に属する時刻情報が変数履歴情報34にあるか否かを判定する(ステップS12)。対象期間に属す時刻情報が変数履歴情報34にない場合(ステップS12でNO)、第2解析部22は、処理を終了する。
対象期間に属する時刻情報が変数履歴情報34にある場合(ステップS12でYES)、第2解析部22は、対象期間に属する時刻情報を有する要素341(対象期間に対応する要素341)を変数履歴情報34から抽出する(ステップS23)。第2解析部22は、抽出した要素341に含まれる変数の値の推移を表示装置208に表示する(ステップS24)。ステップS23において抽出された要素341は、対象期間に対応している。そのため、ステップS24で表示される推移は、変数履歴情報34によって示される変数の値の推移のうち対象期間に対応する第2対象部分75となる。図18に示されるように、第2対象部分75は、ウィンドウ62においてグラフ形式で表現されている。ステップS24の後、第2解析部22は処理を終了する。
なお、ステップS14において、第2解析部22は、対象期間だけでなく対象期間の前後を含む期間に対応する要素341の変数の値の推移をウィンドウ62に表示してもよい。この場合、第2解析部22は、第2対象部分75を他の期間内の変数の値と異なる表示形式で表示する。
(2-F-3.第3解析部の処理フロー)
図16に示されるように、第3解析部23は、第1解析部21から対象ブロック番号を取得する(ステップS31)。第3解析部23は、対象ブロック番号がNCプログラム32に記述されているか否かを判定する(ステップS32)。対象ブロック番号がNCプログラム32に記述されていない場合(ステップS32でNO)、第3解析部23は、エラーメッセージを表示装置208に表示し(ステップS33)、処理を終了する。エラーメッセージは、NCプログラム32に対象期間に実行されたと推定されるブロック番号がない旨を示す。
対象ブロック番号がNCプログラム32に記述されている場合(ステップS32でYES)、第3解析部23は、NCプログラム32のうち対象ブロック番号のソースコードを表示装置208に表示する(ステップS34)。対象ブロック番号は、対象期間に実行されたソースコードに対応している。そのため、ステップS34で表示されるソースコードは、NCプログラム32のうち対象期間に実行された第3対象部分76となる。図18に示されるように、第3対象部分76は、ウィンドウ63において、NCプログラム32の他の部分と異なる表示形式(網掛け)で表示されている。
第3解析部23は、対象ブロック番号のソースコードにMコード番号が含まれているか否かを判定する(ステップS35)。対象ブロック番号のソースコードにMコード番号が含まれていない場合(ステップS35でNO)、第3解析部23は、処理を終了する。対象ブロック番号のソースコードにMコード番号が含まれている場合(ステップS25でYES)、第3解析部23は、対象ブロック番号のソースコードに含まれるMコード番号(以下、「対象Mコード番号」と称する。)を第4解析部24に出力し(ステップS36)、処理を終了する。
(2-F-4.第4解析部の処理フロー)
図17に示されるように、第4解析部24は、第3解析部23から対象Mコード番号を取得する(ステップS41)。第4解析部24は、対象Mコード番号に関連する命令がシーケンスプログラム30に記述されているか否かを判定する(ステップS42)。対象Mコード番号に関連する命令がシーケンスプログラム30に記述されていない場合(ステップS42でNO)、第4解析部24は、処理を終了する。
対象Mコード番号に関連する命令がシーケンスプログラム30に記述されている場合(ステップS42でYES)、第4解析部24は、シーケンスプログラム30のうち対象Mコード番号に関連する命令のソースコードを表示装置208に表示する(ステップS43)。対象Mコード番号は、NCプログラム32のうち対象期間に実行された第3対象部分に含まれる。そのため、ステップS43で表示されるソースコードは、シーケンスプログラム30のうち、シーケンスコントローラ10に対して出力された信号に関連する命令である第4対象部分77となる。図18に例示される支援画面では、対象Mコード番号に関連する第4対象部分77のソースコードがウィンドウ64に表示されている。
なお、ステップS43において、第4解析部24は、対象Mコード番号に関連する第4対象部分77だけでなくその前後の命令のソースコードをウィンドウ64に表示してもよい。この場合、第4解析部24は、第4対象部分77のソースコードを他のソースコードと異なる表示形式で表示する。
<2-G.変数履歴情報から対象期間を選択するときのサポート装置の処理フロー>
図19および図20を参照して、変数履歴情報34から対象期間を選択するときのサポート装置200における処理の流れについて説明する。図19は、変数履歴情報から対象期間を選択するときの第2解析部における処理の流れの一例を示すフローチャートである。図20は、変数履歴情報から対象期間を選択するときの第1解析部における処理の流れの一例を示すフローチャートである。なお、変数履歴情報34から対象期間を選択するときの第3解析部23および第4解析部24の処理の流れは、図17および図18とそれぞれ同じである。そのため、第3解析部23および第4解析部24の処理の流れの説明を省略する。
(2-G-1.第2解析部の処理フロー)
図19に示されるように、第2解析部22は、変数履歴情報34によって示される変数の値の推移を表示装置208に表示する(ステップS121)。
次に、第2解析部22は、表示された変数の値の推移のうちの指定期間の入力を受け付ける(ステップS122)。第2解析部22は、入力された指定期間を対象期間として選択する(ステップS123)。
第2解析部22は、対象期間に属する時刻情報を有する要素341(対象期間に対応する要素341)を変数履歴情報34から抽出する(ステップS124)。第2解析部22は、抽出した要素341の変数の値(対象期間に対応する変数の値)を表示する(ステップS125)。すなわち、第2解析部22は、対象期間に対応する変数の値を他の期間に対応する変数の値と異なる表示形式で表示する。もしくは、第2解析部22は、対象期間に対応する変数の値の推移のみを拡大して表示してもよい。
第2解析部22は、選択した対象期間を示す対象期間情報を第1解析部21に出力する(ステップS126)。
(2-G-2.第1解析部の処理フロー)
図20に示されるように、第1解析部21は、軌跡情報36から線分情報37を生成し、線分情報37に従って、工具541の全軌跡を表示装置208に表示する(ステップS101)。
第1解析部21は、第2解析部22から対象期間情報を取得する(ステップS102)。第1解析部21は、対象期間情報で示される対象期間に属する時刻情報を有する要素361(対象期間に対応する要素361)を軌跡情報36から抽出する(ステップS103)。第1解析部21は、抽出した要素361に含まれる工具点位置情報およびブロック番号と一致する終了点およびブロック番号に対応する線分オブジェクトIDを線分情報37から抽出する(ステップS104)。第1解析部21は、ステップS104で抽出した線分オブジェクトIDの線分(つまり第1対象部分)を強調表示させる(ステップS105)。
次に、第1解析部21は、ステップS103において抽出した要素361のブロック番号(対象ブロック番号)を第3解析部23に出力する(ステップS1067)。
<2-G.作用・効果>
以上のように、制御システム1は、NCプログラム32に従ってCNC工作機械540を制御するNCコントローラ11と、シーケンスプログラム30に従って搬送装置550を制御するシーケンスコントローラ10と、サポート装置200とを備える。NCコントローラ11およびシーケンスコントローラ10は、互いに時刻同期されている。サポート装置200は、第1解析部21と第2解析部22とを含む。第1解析部21は、NCプログラム32の実行によって生成された指令値17に対応する工具541の位置と、NCコントローラ11による当該指令値を用いた制御時刻を示す第1時刻情報とを対応付けた軌跡情報36を取得する。第2解析部22は、シーケンスプログラム30の実行により更新される変数の値と更新時刻を示す第2時刻情報とを対応付けた変数履歴情報34を取得する。第1時刻情報および第2時刻情報は、NCコントローラ11およびシーケンスコントローラ10によってそれぞれ生成される。サポート装置200は、NCプログラム32およびシーケンスプログラム30の実行期間のうちの対象期間を選択する選択部をさらに含む。当該選択部は、入力受付部41,44および対象部分決定部42,45によって構成される。サポート装置200は、描画部40,43を含む。描画部40は、軌跡情報36によって示される軌跡のうち対象期間に対応する第1対象部分を表示装置208に表示させる。描画部43は、変数履歴情報34によって示される変数の値の推移のうち対象期間に対応する第2対象部分を表示装置208に表示させる。
上記の構成によれば、軌跡情報36に含まれる第1時刻情報と変数履歴情報34に含まれる第2時刻情報とは、互いに時刻同期されたNCコントローラ11とシーケンスコントローラ10とによってそれぞれ生成される。そのため、第1時刻情報と第2時刻情報とは、共通の時間軸上の時刻を示す。従って、設計者は、軌跡のうち対象期間に対応する第1対象部分と、対象期間における変数の値とを表示装置208で確認することにより、対象期間におけるCNC工作機械540と搬送装置550との動作の関係を容易に確認できる。その結果、互いに連係して動作する工作機械およびその周辺の対象機器をそれぞれ制御するためのNCプログラムおよびシーケンスプログラムのデバッグ効率が向上する。
描画部40は、軌跡情報36によって示される軌跡を表示装置208に表示させてもよい。入力受付部41および対象部分決定部42は、表示装置208に表示された軌跡のうちの指定区間の入力を受け、軌跡情報36に基づいて指定区間に対応する期間を対象期間として選択してもよい。描画部40は、表示装置208に表示された軌跡のうち第1対象部分を残りの部分と異なる表示形式で表示する。
これにより、設計者は、軌跡情報36によって示される軌跡の中から確認したい部分を指定区間として指定できる。指定区間に対応する期間が対象期間として選択されるため、指定区間は第1対象部分と一致する。そして、軌跡のうち第1対象部分が残りの部分と異なる表示形式で表示される。そのため、設計者は、指定した指定区間(すなわち第1対象部分)の軌跡全体に対する相対位置を確認しやすくなるとともに、指定区間に対応する期間(対象期間)に更新された変数の値を容易に確認できる。
あるいは、描画部43は、変数履歴情報34によって示される変数の値の推移を表示装置208に表示させてもよい。入力受付部44および対象部分決定部45は、表示装置208に表示された推移のうちの指定期間の入力を受け、当該指定期間を対象期間として選択してもよい。描画部43は、表示装置208に表示された推移のうち対象期間に対応する第2対象部分を残りの部分と異なる表示形式で表示する。
これにより、設計者は、変数履歴情報34によって示される変数の値の推移の中から確認したい期間を指定期間として指定できる。指定期間が対象期間として選択されるため、軌跡のうち指定期間に対応する部分が第1対象部分となり、第1対象部分が表示装置208に表示される。そのため、設計者は、指定期間における変数の値の推移とCNC工作機械540の位置との関係を容易に確認しやすくなる。
サポート装置200は、NCプログラム32のうち対象期間に実行された第3対象部分のソースコードを表示装置208に表示させる描画部47をさらに含む。
これにより、設計者は、対象期間に実行されたNCプログラム32と対象期間におけるCNC工作機械540の位置との関係を容易に確認でき、NCプログラム32をデバッグしやすくなる。
サポート装置200は、NCプログラム32の第3対象部分の中にシーケンスコントローラ10に対して信号を出力する命令が含まれることに応じて、シーケンスプログラム30のうち当該信号に関連する第4対象部分のソースコードを表示装置208に表示させる描画部49をさらに含む。
これにより、設計者は、対象期間においてNCプログラム32に従って出力される信号に関連した、シーケンスプログラム30のソースコードを容易に確認でき、シーケンスプログラム30をデバッグしやすくなる。
NCコントローラ11とシーケンスコントローラ10とは、1つの制御装置100に含まれ、制御装置100が有する共通のタイマ101に従って動作する。これにより、NCコントローラ11とシーケンスコントローラ10とを容易に時刻同期させることができる。
<2-H.変形例>
(2-H-1.変形例1)
上記の説明では、制御装置100がシーケンスコントローラ10およびNCコントローラ11を備えるものとした。これにより、シーケンスコントローラ10およびNCコントローラ11は共通のタイマ101を用いて時刻同期される。しかしながら、NCコントローラ11は、制御装置100と別体であってもよい。
図21は、変形例1に係る制御システム1を示す模式図である。図20に例示される制御システム1にいて、シーケンスコントローラ10およびNCコントローラ11は、互いに独立した装置であり、ネットワークを介して互いに接続される。シーケンスコントローラ10およびNCコントローラ11は、互いに時刻同期されたタイマ101a,101bを有する。もしくは、シーケンスコントローラ10およびNCコントローラ11は、例えばTSN(Time-Sensitive Networking)技術を用いて、互いに時刻同期されてもよい。
シーケンスコントローラ10およびNCコントローラ11が互いに時刻同期されているため、シーケンスコントローラ10によって生成される変数履歴情報34に含まれる時刻情報と、NCコントローラ11によって生成される軌跡情報36に含まれる時刻情報とは、同一の時間軸上の時刻を示す。その結果、設計者は、対象期間を選択することにより、軌跡情報36によって示される軌跡のうち当該対象期間に対応する部分と、変数履歴情報34によって示される変数の値の推移のうち当該対象期間に対応する部分との関係を容易に確認できる。
(2-H-2.変形例2)
上記の実施の形態では、図14に示すステップS5において、第1解析部21は、選択された線分の線分オブジェクトIDに対応する終了点およびブロック番号と同じ工具点位置情報およびブロック番号を有する要素361を軌跡情報36から抽出する。そして、抽出された要素361に基づいて対象期間が選択されるものとした。しかしながら、ステップS5において、第1解析部21は、選択された線分の線分オブジェクトIDに対応するブロック番号と同じブロック番号を有する要素361を軌跡情報36から抽出してもよい。これにより、NCプログラム32の行(ブロック)単位で対象期間を選択することができる。
<2-I.付記>
以上のように、本実施の形態は以下のような開示を含む。
(構成1)
制御システム(1)であって、
NCプログラム(32)に従って工作機械(540)を制御する第1コントローラ(11)と、
シーケンスプログラム(30)に従って対象機器(550)を制御する第2コントローラ(10)と、
サポート装置(200)とを備え、
前記第1コントローラ(11)および前記第2コントローラ(10)は、互いに時刻同期され、
前記サポート装置(200)は、
前記NCプログラム(32)の実行によって生成された指令値に対応する前記工作機械(540)の位置と、前記第1コントローラ(11)による当該指令値を用いた制御時刻を示す第1時刻情報とを対応付けた軌跡情報(36)を取得する第1取得部(21)と、
前記シーケンスプログラム(30)の実行により更新される変数の値と更新時刻を示す第2時刻情報とを対応付けた変数履歴情報(34)を取得する第2取得部(22)とを含み、
前記第1時刻情報および前記第2時刻情報は、前記第1コントローラ(11)および前記第2コントローラ(10)によってそれぞれ生成され、
前記サポート装置(200)はさらに、
前記NCプログラム(32)および前記シーケンスプログラム(30)の実行期間のうちの対象期間を選択する選択部(41,42,44,45)と、
前記軌跡情報(36)によって示される軌跡のうち前記対象期間に対応する第1対象部分を表示装置(208)に表示させる第1描画部(40)と、
前記変数履歴情報(34)によって示される変数の値の推移のうち前記対象期間に対応する第2対象部分を前記表示装置(208)に表示させる第2描画部(43)とを含む、制御システム(1)。
(構成2)
前記第1描画部(40)は、前記軌跡情報(36)によって示される軌跡を前記表示装置(208)に表示させ、
前記選択部(41,42)は、前記表示装置(208)に表示された前記軌跡のうちの指定区間の入力を受け、前記軌跡情報(36)に基づいて前記指定区間に対応する期間を前記対象期間として選択し、
前記第1描画部(40)は、前記表示装置(208)に表示された前記軌跡のうち前記第1対象部分を残りの部分と異なる表示形式で表示する、構成1に記載の制御システム(1)。
(構成3)
前記第2描画部(43)は、前記変数履歴情報(34)によって示される前記変数の値の推移を前記表示装置(208)に表示させ、
前記選択部(44,45)は、前記表示装置(208)に表示された前記推移のうちの指定期間の入力を受け、前記指定期間を前記対象期間として選択し、
前記第2描画部(43)は、前記表示装置(208)に表示された前記推移のうち前記対象期間に対応する第2対象部分を残りの部分と異なる表示形式で表示する、構成1に記載の制御システム(1)。
(構成4)
前記サポート装置(200)は、
前記NCプログラム(32)のうち前記対象期間に実行された第3対象部分のソースコードを前記表示装置(208)に表示させる第3描画部(47)をさらに含む、構成1から3のいずれかに記載の制御システム(1)。
(構成5)
前記サポート装置(200)は、
前記NCプログラム(32)の前記第3対象部分の中に前記第2コントローラに対して信号を出力する命令が含まれることに応じて、前記シーケンスプログラム(30)のうち前記信号に関連する第4対象部分のソースコードを前記表示装置(208)に表示させる第4描画部(49)をさらに含む、構成4に記載の制御システム(1)。
(構成6)
前記第1コントローラ(11)と前記第2コントローラ(10)とは、1つの制御装置(100)に含まれ、前記制御装置(100)が有する共通のタイマ(101)を用いて動作する、構成1から5のいずれかに記載の制御システム(1)。
(構成7)
前記第1コントローラ(11)および前記第2コントローラ(10)は、互いに時刻同期された第1タイマ(101b)および第2タイマ(101a)をそれぞれ有する、構成1から5のいずれかに記載の制御システム(1)。
(構成8)
制御システム(1)における解析方法であって、
前記制御システム(1)は、
NCプログラム(32)に従って工作機械(540)を制御する第1コントローラ(11)と、
シーケンスプログラム(30)に従って対象機器(550)を制御する第2コントローラ(10)とを備え、
前記第1コントローラ(11)および前記第2コントローラ(10)は、互いに時刻同期され、
前記解析方法は、
前記NCプログラム(32)の実行によって生成された指令値に対応する前記工作機械(540)の位置と、前記第1コントローラ(11)による当該指令値を用いた制御時刻を示す第1時刻情報とを対応付けた軌跡情報(36)を取得するステップと、
前記シーケンスプログラム(30)の実行により更新される変数の値と更新時刻を示す第2時刻情報とを対応付けた変数履歴情報(34)を取得するステップとを備え、
前記第1時刻情報および前記第2時刻情報は、前記第1コントローラ(11)および前記第2コントローラ(10)によってそれぞれ生成され、
前記解析方法はさらに、
前記NCプログラム(32)および前記シーケンスプログラム(30)の実行期間のうちの対象期間を選択するステップと、
前記軌跡情報(36)によって示される軌跡のうち前記対象期間に対応する第1対象部分を表示装置(208)に表示させるステップと、
前記変数履歴情報(34)によって示される変数の値の推移のうち前記対象期間に対応する第2対象部分を前記表示装置(208)に表示させるステップとを備える、解析方法。
(構成9)
制御システム(1)における解析方法をコンピュータに実行させるプログラムであって、
前記制御システム(1)は、
NCプログラム(32)に従って工作機械(540)を制御する第1コントローラ(11)と、
シーケンスプログラム(30)に従って対象機器(550)を制御する第2コントローラ(10)とを備え、
前記第1コントローラ(11)および前記第2コントローラ(10)は、互いに時刻同期され、
前記解析方法は、
前記NCプログラム(32)の実行によって生成された指令値に対応する前記工作機械(540)の位置と、前記第1コントローラ(11)による当該指令値を用いた制御時刻を示す第1時刻情報とを対応付けた軌跡情報(36)を取得するステップと、
前記シーケンスプログラム(30)の実行により更新される変数の値と更新時刻を示す第2時刻情報とを対応付けた変数履歴情報(34)を取得するステップとを含み、
前記第1時刻情報および前記第2時刻情報は、前記第1コントローラ(11)および前記第2コントローラ(10)によってそれぞれ生成され、
前記解析方法はさらに、
前記NCプログラム(32)および前記シーケンスプログラム(30)の実行期間のうちの対象期間を選択するステップと、
前記軌跡情報(36)によって示される軌跡のうち前記対象期間に対応する第1対象部分を表示装置(208)に表示させるステップと、
前記変数履歴情報(34)によって示される変数の値の推移のうち前記対象期間に対応する第2対象部分を前記表示装置(208)に表示させるステップとを含む、プログラム。
本発明の実施の形態について説明したが、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 制御システム、2 フィールドネットワーク、10 シーケンスコントローラ、11 NCコントローラ、12 共有メモリ、13 変数管理部、14 インタプリタ、15 NC指令値演算部、16,17 指令値、21 第1解析部、22 第2解析部、23 第3解析部、24 第4解析部、30 シーケンスプログラム、32 NCプログラム、34 変数履歴情報、36 軌跡情報、37 線分情報、38 システムプログラム、40,43,47,49 描画部、41,44 入力受付部、42,45,46,48 対象部分決定部、61,62,63,64 ウィンドウ、65 対象部分、66a,66b 点、67a,67b スライダー、68a,68b 入力欄、70 軌跡、71 第1対象部分、72 グラフ、100 制御装置、101,101a,101b タイマ、102,202 プロセッサ、104 チップセット、106 主記憶装置、108 二次記憶装置、110 上位ネットワークコントローラ、112,220 USBコントローラ、114 メモリカードインターフェイス、116 メモリカード、120 内部バスコントローラ、122 I/Oユニット、130 フィールドネットワークコントローラ、200 サポート装置、204 メインメモリ、206 入力装置、208 表示装置、210 ストレージ、212 光学ドライブ、214 記録媒体、218 プロセッサバス、341,361,371 要素、500 フィールドデバイス、510 リモートI/O装置、520,530 サーボドライバ、522,532 サーボモータ、540 CNC工作機械、541 工具、550 搬送装置、554 作業台、2104 サポートプログラム、W ワーク。

Claims (9)

  1. 制御システムであって、
    NCプログラムに従って工作機械を制御する第1コントローラと、
    シーケンスプログラムに従って対象機器を制御する第2コントローラと、
    サポート装置とを備え、
    前記第1コントローラおよび前記第2コントローラは、互いに時刻同期され、
    前記サポート装置は、
    前記NCプログラムの実行によって生成された指令値に対応する前記工作機械の位置と、前記第1コントローラによる当該指令値を用いた制御時刻を示す第1時刻情報とを対応付けた軌跡情報を取得する第1取得部と、
    前記シーケンスプログラムの実行により更新される変数の値と更新時刻を示す第2時刻情報とを対応付けた変数履歴情報を取得する第2取得部とを含み、
    前記第1時刻情報および前記第2時刻情報は、前記第1コントローラおよび前記第2コントローラによってそれぞれ生成され、
    前記サポート装置はさらに、
    前記NCプログラムおよび前記シーケンスプログラムの実行期間のうちの対象期間を選択する選択部と、
    前記軌跡情報によって示される軌跡のうち前記対象期間に対応する第1対象部分を表示装置に表示させる第1描画部と、
    前記変数履歴情報によって示される変数の値の推移のうち前記対象期間に対応する第2対象部分を前記表示装置に表示させる第2描画部とを含む、制御システム。
  2. 前記第1描画部は、前記軌跡情報によって示される軌跡を前記表示装置に表示させ、
    前記選択部は、前記表示装置に表示された前記軌跡のうちの指定区間の入力を受け、前記軌跡情報に基づいて前記指定区間に対応する期間を前記対象期間として選択し、
    前記第1描画部は、前記表示装置に表示された前記軌跡のうち前記第1対象部分を残りの部分と異なる表示形式で表示する、請求項1に記載の制御システム。
  3. 前記第2描画部は、前記変数履歴情報によって示される前記変数の値の推移を前記表示装置に表示させ、
    前記選択部は、前記表示装置に表示された前記推移のうちの指定期間の入力を受け、前記指定期間を前記対象期間として選択し、
    前記第2描画部は、前記表示装置に表示された前記推移のうち前記第2対象部分を残りの部分と異なる表示形式で表示する、請求項1に記載の制御システム。
  4. 前記サポート装置は、
    前記NCプログラムのうち前記対象期間に実行された第3対象部分のソースコードを前記表示装置に表示させる第3描画部をさらに含む、請求項1から3のいずれか1項に記載の制御システム。
  5. 前記サポート装置は、
    前記NCプログラムの前記第3対象部分の中に前記第2コントローラに対して信号を出力する命令が含まれることに応じて、前記シーケンスプログラムのうち前記信号に関連する第4対象部分のソースコードを前記表示装置に表示させる第4描画部をさらに含む、請求項4に記載の制御システム。
  6. 前記第1コントローラと前記第2コントローラとは、1つの制御装置に含まれ、前記制御装置が有する共通のタイマを用いて動作する、請求項1から5のいずれか1項に記載の制御システム。
  7. 前記第1コントローラおよび前記第2コントローラは、互いに時刻同期された第1タイマおよび第2タイマをそれぞれ有する、請求項1から5のいずれか1項に記載の制御システム。
  8. 制御システムにおける解析方法であって、
    前記制御システムは、
    NCプログラムに従って工作機械を制御する第1コントローラと、
    シーケンスプログラムに従って対象機器を制御する第2コントローラとを備え、
    前記第1コントローラおよび前記第2コントローラは、互いに時刻同期され、
    前記解析方法は、
    前記NCプログラムの実行によって生成された指令値に対応する前記工作機械の位置と、前記第1コントローラによる当該指令値を用いた制御時刻を示す第1時刻情報とを対応付けた軌跡情報を取得するステップと、
    前記シーケンスプログラムの実行により更新される変数の値と更新時刻を示す第2時刻情報とを対応付けた変数履歴情報を取得するステップとを備え、
    前記第1時刻情報および前記第2時刻情報は、前記第1コントローラおよび前記第2コントローラによってそれぞれ生成され、
    前記解析方法はさらに、
    前記NCプログラムおよび前記シーケンスプログラムの実行期間のうちの対象期間を選択するステップと、
    前記軌跡情報によって示される軌跡のうち前記対象期間に対応する第1対象部分を表示装置に表示させるステップと、
    前記変数履歴情報によって示される変数の値の推移のうち前記対象期間に対応する第2対象部分を前記表示装置に表示させるステップとを備える、解析方法。
  9. 制御システムにおける解析方法をコンピュータに実行させるプログラムであって、
    前記制御システムは、
    NCプログラムに従って工作機械を制御する第1コントローラと、
    シーケンスプログラムに従って対象機器を制御する第2コントローラとを備え、
    前記第1コントローラおよび前記第2コントローラは、互いに時刻同期され、
    前記解析方法は、
    前記NCプログラムの実行によって生成された指令値に対応する前記工作機械の位置と、前記第1コントローラによる当該指令値を用いた制御時刻を示す第1時刻情報とを対応付けた軌跡情報を取得するステップと、
    前記シーケンスプログラムの実行により更新される変数の値と更新時刻を示す第2時刻情報とを対応付けた変数履歴情報を取得するステップとを含み、
    前記第1時刻情報および前記第2時刻情報は、前記第1コントローラおよび前記第2コントローラによってそれぞれ生成され、
    前記解析方法はさらに、
    前記NCプログラムおよび前記シーケンスプログラムの実行期間のうちの対象期間を選択するステップと、
    前記軌跡情報によって示される軌跡のうち前記対象期間に対応する第1対象部分を表示装置に表示させるステップと、
    前記変数履歴情報によって示される変数の値の推移のうち前記対象期間に対応する第2対象部分を前記表示装置に表示させるステップとを含む、プログラム。
JP2019141417A 2019-07-31 2019-07-31 制御システム、解析方法およびプログラム Active JP7247808B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2019141417A JP7247808B2 (ja) 2019-07-31 2019-07-31 制御システム、解析方法およびプログラム
CN202080046809.1A CN114041092A (zh) 2019-07-31 2020-03-06 控制系统、分析方法以及程序
EP20847255.5A EP4006663A4 (en) 2019-07-31 2020-03-06 CONTROL SYSTEM, ANALYSIS METHOD AND PROGRAM
US17/622,959 US20220229416A1 (en) 2019-07-31 2020-03-06 Control system, analysis method, and program
PCT/JP2020/009718 WO2021019818A1 (ja) 2019-07-31 2020-03-06 制御システム、解析方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019141417A JP7247808B2 (ja) 2019-07-31 2019-07-31 制御システム、解析方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2021026309A JP2021026309A (ja) 2021-02-22
JP7247808B2 true JP7247808B2 (ja) 2023-03-29

Family

ID=74228604

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019141417A Active JP7247808B2 (ja) 2019-07-31 2019-07-31 制御システム、解析方法およびプログラム

Country Status (5)

Country Link
US (1) US20220229416A1 (ja)
EP (1) EP4006663A4 (ja)
JP (1) JP7247808B2 (ja)
CN (1) CN114041092A (ja)
WO (1) WO2021019818A1 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000353003A (ja) 1999-06-11 2000-12-19 Fanuc Ltd Ncデータ確認装置
JP2013012050A (ja) 2011-06-29 2013-01-17 Jtekt Corp ブロック実行順表示装置
JP2017059046A (ja) 2015-09-17 2017-03-23 ファナック株式会社 Cncの動作状況をコメント中に追加表示可能なラダー図モニタ装置
JP2019032789A (ja) 2017-08-10 2019-02-28 オムロン株式会社 情報処理装置、情報処理方法、および情報処理プログラム
JP2019049947A (ja) 2017-09-12 2019-03-28 オムロン株式会社 制御装置および制御方法
JP2019067046A (ja) 2017-09-29 2019-04-25 オムロン株式会社 制御システムおよび制御装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59707A (ja) 1982-06-28 1984-01-05 Fanuc Ltd 数値制御装置
US5212645A (en) * 1990-07-19 1993-05-18 General Electric Company Flexible real-time, multi-tasking architecture for tool condition monitoring
JP2641797B2 (ja) * 1990-11-08 1997-08-20 ファナック株式会社 対話形数値制御装置
JP2001062676A (ja) * 1999-08-24 2001-03-13 Canon Inc 数値制御データ作成装置、数値制御加工方法及び記憶媒体
EP1383018B1 (en) * 2001-04-27 2009-06-03 Citizen Holdings Co., Ltd. Automatic lathe, and method for controlling the same and device for controlling the same
JP4562591B2 (ja) * 2005-06-09 2010-10-13 株式会社牧野フライス製作所 工具軌跡描画方法及び装置
JP5512954B2 (ja) * 2008-10-31 2014-06-04 オークマ株式会社 数値制御機械の位置制御装置
JP4648471B2 (ja) * 2009-07-14 2011-03-09 ファナック株式会社 工作機械の工具軌跡表示装置
JP5418322B2 (ja) * 2010-03-15 2014-02-19 オムロン株式会社 表示装置、表示制御方法、プログラム、およびコンピュータ読み取り可能な記録媒体
JP6219866B2 (ja) * 2015-03-06 2017-10-25 株式会社ソディック 表示機能付き数値制御装置および表示プログラム
EP3115857A1 (de) * 2015-07-09 2017-01-11 Siemens Aktiengesellschaft Trajektorienbestimmungsverfahren für nebenzeitbewegungen
JP7244367B2 (ja) * 2019-06-20 2023-03-22 ファナック株式会社 加工指令改良システム及び加工指令改良方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000353003A (ja) 1999-06-11 2000-12-19 Fanuc Ltd Ncデータ確認装置
JP2013012050A (ja) 2011-06-29 2013-01-17 Jtekt Corp ブロック実行順表示装置
JP2017059046A (ja) 2015-09-17 2017-03-23 ファナック株式会社 Cncの動作状況をコメント中に追加表示可能なラダー図モニタ装置
JP2019032789A (ja) 2017-08-10 2019-02-28 オムロン株式会社 情報処理装置、情報処理方法、および情報処理プログラム
JP2019049947A (ja) 2017-09-12 2019-03-28 オムロン株式会社 制御装置および制御方法
JP2019067046A (ja) 2017-09-29 2019-04-25 オムロン株式会社 制御システムおよび制御装置

Also Published As

Publication number Publication date
EP4006663A1 (en) 2022-06-01
JP2021026309A (ja) 2021-02-22
US20220229416A1 (en) 2022-07-21
WO2021019818A1 (ja) 2021-02-04
CN114041092A (zh) 2022-02-11
EP4006663A4 (en) 2023-08-02

Similar Documents

Publication Publication Date Title
US10496079B2 (en) Control device and control method
US10761515B2 (en) Control system for controlling control object and control device for linking control applications in control system
EP3441202A1 (en) Information processing apparatus, information processing method, and program
US10606246B2 (en) Control device and control method with various command values in a shared memory providing access to various program execution and command value operation parts in each control cycle
EP3441831B1 (en) Information processing device, information processing method, and information processing program
EP3441830B1 (en) Information processing device, information processing method, and information processing program
JP6900863B2 (ja) 制御装置、制御方法および制御プログラム
JP6626313B2 (ja) プログラマブル・ロジック・コントローラ、拡張ユニット、制御方法、プログラム作成支援装置、プログラム作成支援方法およびプログラム
JP7247808B2 (ja) 制御システム、解析方法およびプログラム
JP2019191737A (ja) 情報処理システム、情報処理方法、および情報処理プログラム
US10509393B2 (en) Control device and control method
JP7077848B2 (ja) 制御装置
JP7375632B2 (ja) 制御システムおよびサポート装置
CN115023673A (zh) 处理装置和处理方法
US6845350B1 (en) Simulation method
JP7167516B2 (ja) 制御装置、制御方法、および制御プログラム
JP2023151876A (ja) 制御装置、制御方法、開発支援装置、及びプログラム
WO2022249713A1 (ja) 制御システム、システムプログラムおよびデバッグ方法
JP2023151965A (ja) 制御装置、制御方法、開発支援装置、及びプログラム
JP2022114752A (ja) 制御装置、プログラム実行方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220513

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230227

R150 Certificate of patent or registration of utility model

Ref document number: 7247808

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150