JP2018194898A - 支援装置、支援装置の制御方法、情報処理プログラム、および記録媒体 - Google Patents
支援装置、支援装置の制御方法、情報処理プログラム、および記録媒体 Download PDFInfo
- Publication number
- JP2018194898A JP2018194898A JP2017095736A JP2017095736A JP2018194898A JP 2018194898 A JP2018194898 A JP 2018194898A JP 2017095736 A JP2017095736 A JP 2017095736A JP 2017095736 A JP2017095736 A JP 2017095736A JP 2018194898 A JP2018194898 A JP 2018194898A
- Authority
- JP
- Japan
- Prior art keywords
- program
- user
- sequence
- unit
- tool
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 48
- 230000010365 information processing Effects 0.000 title claims 4
- 230000009471 action Effects 0.000 claims description 29
- 238000010586 diagram Methods 0.000 claims description 26
- 230000006870 function Effects 0.000 description 57
- 230000008569 process Effects 0.000 description 32
- 238000011161 development Methods 0.000 description 31
- 238000012545 processing Methods 0.000 description 28
- 230000000694 effects Effects 0.000 description 16
- 238000012546 transfer Methods 0.000 description 15
- 239000000284 extract Substances 0.000 description 5
- 230000007704 transition Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000002542 deteriorative effect Effects 0.000 description 1
- 238000003754 machining Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical 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/4093—Numerical 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 part programming, e.g. entry of geometrical information as taken from a technical drawing, combining this with machining and material information to obtain control information, named part programme, for the NC machine
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/056—Programming the PLC
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0426—Programming the control sequence
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical 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/414—Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
- G05B19/4145—Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller characterised by using same processor to execute programmable controller and numerical controller function [CNC] and PC controlled NC [PCNC]
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/13—Plc programming
- G05B2219/13144—GUI graphical user interface, icon, function bloc editor, OI operator interface
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/34—Director, elements to supervisory
- G05B2219/34418—Scheduler for sequential control, task planning, control sequence
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/36—Nc in input of data, input key till input tape
- G05B2219/36266—Tool path editor, for offset, multi-passes
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Manufacturing & Machinery (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Geometry (AREA)
- Programmable Controllers (AREA)
- Numerical Control (AREA)
- Stored Programmes (AREA)
Abstract
【課題】シーケンスプログラムとNCプログラムとを含むプログラム全体を容易に把握する。【解決手段】ツール(10)は、同期させて実行されるべきシーケンスプログラムとNCプログラムとを編集可能に一画面中に表示する表示制御部(120)を備えている。【選択図】図1
Description
本発明は、産業用制御装置で実行されるユーザプログラムの作成を支援する支援装置等に関する。
従来、プログラマブルコントローラ(Programmable Logic Controller、以下「PLC」と略記する)等の産業用制御装置を使用した制御システムの開発を支援するための開発支援装置が知られている。例えば、下掲の特許文献1には、PLC(Programmable Logic Controller)などのシーケンス制御装置において実行されるシーケンスプログラムと、数値制御装置において実行されるNC(Numerical Control、数値制御)プログラムと、を効率的にプログラミングするための発明が開示されている。
図19は、特許文献1の発明等を含む、従来の開発システム9の全体概要を示す図である。図19に示すように、従来の開発システム9は、PLC等のシーケンス制御装置であるIECコントローラ920と、数値制御装置であるNCコントローラ930と、FA(Factory Automation)開発環境を提供するツール900と、を含んでいる。IECコントローラ920は、IECプログラム(すなわち、シーケンスプログラム)を実行してシーケンス制御を行なうシーケンス制御エンジン921を備えている。NCコントローラ930は、NCプログラムを実行して数値制御を行なう数値制御エンジン931を備えている。言い換えれば、従来の開発システム9において、IECプログラムとNCプログラムとは各々、別々のコントローラによって、すなわち、IECコントローラ920およびNCコントローラ930によって、実行される。なお、IECプログラムとは、IEC(International Electrotechnical Commission)61131‐3に準拠したシーケンスプログラムを指す。
ツール900は、IECコントローラ920において実行されるIECプログラムの作成編集、コンパイル、および、転送ための機能部として、IECプログラムエディタ901と、IECプログラム処理部903と、IECプログラム転送部904と、を含む。IECプログラムエディタ901は、ソースコードとしてのIECプログラム902をユーザが作成・編集するための機能を提供する。IECプログラム処理部903は、ユーザが作成・編集したIECプログラム902をコンパイルする。IECプログラム転送部904は、IECプログラム処理部903によってコンパイルされたIECプログラム902をIECコントローラ920に転送する。
また、ツール900は、NCコントローラ930において実行されるNCプログラムの作成編集、コンパイル、および、転送のための機能部として、NCプログラムエディタ911と、NCプログラム処理部913と、NCプログラム転送部914と、を含む。NCプログラムエディタ911は、ソースコードとしてのNCプログラム912をユーザが作成・編集するための機能を提供する。NCプログラム処理部913は、ユーザが作成・編集したNCプログラム912をコンパイルする。NCプログラム転送部914は、NCプログラム処理部913によってコンパイルされたNCプログラム912をNCコントローラ930に転送する。
図19に示すように、ツール900において、IECプログラム902およびNCプログラム912をユーザが作成・編集するための機能は、各々、IECプログラムエディタ901とNCプログラムエディタ911とに分かれている。言い換えれば、IECプログラム902およびNCプログラム912は、各々、別々のエディタで作成・編集され、つまり、IECプログラムエディタ901およびNCプログラムエディタ911で作成・編集される。ツール900において、IECプログラム902およびNCプログラム912は、各々、別々のコントローラに、つまり、IECコントローラ920およびNCコントローラ930に、転送される。
図19に示すように、従来の開発システム9におけるツール900は、IECプログラム902およびNCプログラム912をユーザが作成・編集するための機能は、各々、IECプログラムエディタ901とNCプログラムエディタ911とに分かれている。
したがって、上述のような従来技術は、同期させて実行されるべきシーケンスプログラム(IECプログラム)とNCプログラムとをユーザが同じ画面で同時に確認することができないという問題がある。言い換えれば、上述のような従来技術は、シーケンスプログラムとNCプログラムとを含む全てのプログラム(ユーザプログラム)をユーザが見通すことが困難であり、ユーザのプログラミング効率が低下するという問題がある。
本発明の一態様は、ユーザが、シーケンスプログラムとNCプログラムとを含むユーザプログラムの全体を容易に把握することができ、ユーザのプログラミング効率を向上させることの可能なプログラム開発環境等を提供することを目的とする。
上記の課題を解決するために、本発明の一態様に係る支援装置は、産業用制御装置で実行されるユーザプログラムの作成を支援する支援装置であって、同期させて実行されるべきシーケンスプログラムとNCプログラムとに係るユーザのプログラミング操作を受け付ける受付部と、前記受付部により受け付けられた前記プログラミング操作に従って、前記ユーザプログラムとして、前記シーケンスプログラムと前記NCプログラムとを編集可能に一画面中に表示する表示制御部と、を備えることを特徴としている。
前記の構成によれば、前記支援装置は、同期させて実行されるべき前記シーケンスプログラムと前記NCプログラムとを編集可能に一画面中に表示する。
したがって、前記支援装置は、ユーザが、前記シーケンスプログラムと前記NCプログラムとを含む前記ユーザプログラムの全体を容易に把握することを可能とし、ユーザのプログラミング効率を向上させることができるという効果を奏する。ユーザは、前記支援装置を用いて、前記シーケンスプログラムと前記NCプログラムとを一画面中で作成・編集することができ、つまり、前記シーケンスプログラムと前記NCプログラムとを含む前記ユーザプログラムを効率的にプログラミングすることができる。
本発明に係る支援装置は、前記表示制御部によって表示された前記ユーザプログラムをビルドする際に、(A)前記ユーザプログラム中の前記NCプログラムを退避させ、(B)前記ユーザプログラム中の、退避した前記NCプログラムがあった位置に、退避した前記NCプログラムを呼び出すファンクションブロックであって、退避した前記NCプログラムに対応する識別子を付与したファンクションブロックを、挿入するプログラム処理部をさらに備えてもよい。
前記の構成によれば、前記支援装置は、同期させて実行されるべき前記シーケンスプログラムと前記NCプログラムとを含む前記ユーザプログラムをビルドする際に、(A)前記ユーザプログラム中の前記NCプログラムを退避させ、(B)前記ユーザプログラム中の、退避した前記NCプログラムがあった位置に、退避した前記NCプログラムを呼び出すファンクションブロックであって、退避した前記NCプログラムに対応する識別子を付与したファンクションブロックを、挿入する。つまり、退避した前記NCプログラムを呼び出す前記ファンクションブロックが挿入された後の前記ユーザプログラムは、前記NCプログラムを含んでおらず、前記シーケンスプログラムのみより成る。
そのため、前記支援装置は、「シーケンスプログラムのみを処理可能な従来までのエディタ」に、「退避した前記NCプログラムを呼び出す前記ファンクションブロックが挿入された後の前記ユーザプログラム」を処理させることができる。言い換えれば、前記支援装置は、「退避した前記NCプログラムを呼び出す前記ファンクションブロックが挿入された後の前記ユーザプログラム」に対する処理に、前記従来までのエディタの備える構成を利用することができる。
そのため、前記支援装置は、「シーケンスプログラムのみを処理可能な従来までのエディタ」の構成を利用して、「前記NCプログラムを退避し、代わりに、前記NCプログラムを呼び出す前記FBを挿入した前記ユーザプログラム」を処理することができる。言い換えれば、前記支援装置は、「前記NCプログラムを退避し、代わりに、前記NCプログラムを呼び出す前記FBを挿入した前記ユーザプログラム」に対する処理に、前記従来までのエディタの備える構成を利用することができる。例えば、前記支援装置は、前記従来までの構成を利用して、「前記NCプログラムを退避し、代わりに、前記NCプログラムを呼び出す前記FBを挿入した前記ユーザプログラム」のビルド、および、ビルドしたプログラムの前記産業用制御装置への転送等の処理を実行することができる。
したがって、前記支援装置は、「シーケンスプログラムのみを処理可能な従来までのエディタ」の構成を利用することができ、前記支援装置を実現するためのコストを抑制することができるという効果を奏する。
また、前記支援装置は、「NCプログラムのみを処理可能な従来までのエディタ」の構成を利用して、「前記ユーザプログラムから退避させた前記NCプログラム」を処理することができる。言い換えれば、前記支援装置は、「前記ユーザプログラム中から退避させた前記NCプログラム」に対する処理に、前記従来までのエディタの備える構成を利用することができる。例えば、前記支援装置は、前記従来までの構成を利用して、「前記ユーザプログラム中から退避させた前記NCプログラム」のビルド、および、ビルドしたプログラムの前記産業用制御装置への転送等の処理を実行することができる。
したがって、前記支援装置は、「NCプログラムのみを処理可能な従来までのエディタ」の構成を利用することができ、前記支援装置を実現するためのコストを抑制することができるという効果を奏する。
本発明に係る支援装置において、前記表示制御部は、前記シーケンスプログラムから前記NCプログラムを区別するための情報を付した前記NCプログラムを、前記シーケンスプログラムと共に、編集可能に一画面中に表示してもよい。
前記の構成によれば、前記支援装置は、前記シーケンスプログラムから前記NCプログラムを区別するための情報を付した前記NCプログラムを、前記シーケンスプログラムと共に、編集可能に一画面中に表示する。
したがって、前記支援装置は、ユーザが、「前記一画面において編集可能に表示されている前記ユーザプログラムから、前記シーケンスプログラムと前記NCプログラムとを容易に判別する」ことを可能にするとの効果を奏する。
また、前記の構成によれば、前記支援装置は、「前記NCプログラムを前記シーケンスプログラムから区別するための情報」に基づいて、前記ユーザプログラムについて、前記シーケンスプログラムと前記NCプログラムとを容易に判別することができるという効果を奏する。
本発明に係る支援装置において、前記表示制御部は、ラダーダイアグラムおよびファンクションブロックダイアグラムの少なくとも一方でプログラミングされた前記シーケンスプログラム中に、前記NCプログラムを編集可能な領域を表示してもよい。
前記の構成によれば、前記支援装置は、前記ラダーダイアグラム(LD)および前記ファンクションブロックダイアグラム(FBD)の少なくとも一方でプログラミングされた前記シーケンスプログラム中に、前記NCプログラムを編集可能な領域を表示する。
ここで、前記LDおよび前記FBDは、各々、前記シーケンスプログラムのために一般的に利用されているプログラミング言語であり、ユーザにとって使い慣れたプログラミング言語である。
したがって、前記支援装置は、前記LDおよび前記FBDで前記シーケンスプログラムをプログラミングしつつ、前記シーケンスプログラム中に前記NCプログラムをプログラミングすることのできる環境をユーザに提供することができるとの効果を奏する。
本発明に係る支援装置において、前記表示制御部は、ストラクチャードテキストでプログラミングされた前記シーケンスプログラム中に、前記NCプログラムの開始および終了を示すプラグマを表示し、表示した前記開始および前記終了を示すプラグマの間に前記NCプログラムを編集可能に表示してもよい。
前記の構成によれば、前記支援装置は、前記ストラクチャードテキスト(ST)でプログラミングされた前記シーケンスプログラム中に、前記NCプログラムの開始および終了を示すプラグマを表示し、表示した前記開始および前記終了を示すプラグマの間に前記NCプログラムを編集可能に表示する。
ここで、前記STは、前記シーケンスプログラムのために一般的に利用されているプログラミング言語であり、ユーザにとって使い慣れたプログラミング言語である。
したがって、前記支援装置は、前記STで前記シーケンスプログラムをプログラミングしつつ、前記シーケンスプログラム中に前記NCプログラムをプログラミングすることのできる環境をユーザに提供することができるとの効果を奏する。
本発明に係る支援装置において、前記表示制御部は、シーケンシャルファンクションチャートでプログラミングされた前記シーケンスプログラム中に、前記NCプログラムであることを示す属性を付したアクションであって、前記NCプログラムを含むアクションを、編集可能に表示してもよい。
前記の構成によれば、前記支援装置は、前記シーケンシャルファンクションチャート(SFC)でプログラミングされた前記シーケンスプログラム中に、前記NCプログラムであることを示す属性を付したアクションであって、前記NCプログラムを含むアクションを、編集可能に表示する。
ここで、前記SFCは、前記シーケンスプログラムのために一般的に利用されているプログラミング言語であり、ユーザにとって使い慣れたプログラミング言語である。
したがって、前記支援装置は、前記SFCで前記シーケンスプログラムをプログラミングしつつ、前記シーケンスプログラム中に前記NCプログラムをプログラミングすることのできる環境をユーザに提供することができるとの効果を奏する。
本発明に係る支援装置は、前記シーケンスプログラムと前記NCプログラムとを、前記シーケンスプログラムと前記NCプログラムとを同期させて実行する1台の産業用制御装置に転送するプログラム転送部をさらに備えてもよい。
前記の構成によれば、前記支援装置は、前記シーケンスプログラムと前記NCプログラムとを、前記シーケンスプログラムと前記NCプログラムとを同期させて実行する1台の産業用制御装置に転送する。
したがって、前記支援装置は、自装置を用いてユーザによりプログラミングされた前記シーケンスプログラムと前記NCプログラムとを前記1台の産業用制御装置により、同期させて実行させることができるという効果を奏する。
本発明に係る支援装置において、前記表示制御部は、前記ユーザプログラム中の前記NCプログラムを一覧表示してもよい。
前記の構成によれば、前記支援装置は、前記ユーザプログラム中の前記NCプログラムを一覧表示する。
したがって、前記支援装置は、例えば、1つの前記ユーザプログラム中に複数の前記NCプログラムが散在している場合であっても、前記ユーザプログラム中に散在する複数の前記NCプログラムを一覧表示し可読性を向上させることができるという効果を奏する。
本発明に係る支援装置において、前記表示制御部は、前記ユーザプログラム中の前記NCプログラムを、前記ユーザプログラムを編集可能に表示した画面とは異なる画面に、編集可能に拡大表示してもよい。
前記の構成によれば、前記支援装置は、前記ユーザプログラム中の前記NCプログラムを、前記ユーザプログラムを編集可能に表示した画面とは異なる画面に、編集可能に拡大表示する。つまり、前記支援装置は、前記ユーザプログラム中でプログラミング中の前記NCプログラムを別のエディタビューで拡大表示することができる。
したがって、前記支援装置は、前記NCプログラムの可読性が低下するのを防ぎ、前記NCプログラムをユーザが効率的にプログラミングすることのできる環境を提供することができるという効果を奏する。
本発明に係る支援装置において、前記表示制御部は、(A)前記ユーザプログラム中の前記NCプログラムのプログラム名および内容の少なくとも一方と、(B)前記ユーザプログラムまたは前記シーケンスプログラムのプログラム名、および、前記NCプログラムを呼び出すFBの識別情報の少なくとも一方と、を対応付けて表示してもよい。
前記の構成によれば、前記支援装置は、(A)前記ユーザプログラム中の前記NCプログラムのプログラム名および内容の少なくとも一方と、(B)前記ユーザプログラムまたは前記シーケンスプログラムのプログラム名、および、前記NCプログラムを呼び出すファンクションブロックの識別情報の少なくとも一方と、を対応付けて表示する。
したがって、前記支援装置は、例えば、複数の前記ユーザプログラムの各々に、複数の前記NCプログラムが散在している場合であっても、複数の前記NCプログラムの各々が存在している前記ユーザプログラムまたは前記シーケンスプログラムをユーザが容易に確認することを可能とするという効果を奏する。
上記の課題を解決するために、本発明に係る制御方法は、産業用制御装置で実行されるユーザプログラムの作成を支援する支援装置の制御方法であって、同期させて実行されるべきシーケンスプログラムとNCプログラムとに係るユーザのプログラミング操作を受け付ける受付ステップと、前記受付ステップにて受け付けた前記プログラミング操作に従って、前記ユーザプログラムとして、前記シーケンスプログラムと前記NCプログラムとを編集可能に一画面中に表示する表示制御ステップと、を含むことを特徴としている。
前記の方法によれば、前記制御方法は、同期させて実行されるべき前記シーケンスプログラムと前記NCプログラムとを編集可能に一画面中に表示する。
したがって、前記制御方法は、ユーザが、前記シーケンスプログラムと前記NCプログラムとを含む前記ユーザプログラムの全体を容易に把握することを可能とし、ユーザのプログラミング効率を向上させることができるという効果を奏する。ユーザは、前記制御方法を実行するエディタ(プログラミング支援装置)を用いて、前記シーケンスプログラムと前記NCプログラムとを一画面中で作成・編集することができる。つまり、ユーザは、前記制御方法を実行するエディタを用いて、前記シーケンスプログラムと前記NCプログラムとを含む前記ユーザプログラムを効率的にプログラミングすることができる。
本発明の一態様によれば、ユーザが、シーケンスプログラムとNCプログラムとを含むユーザプログラムの全体を容易に把握することができ、ユーザのプログラミング効率を向上させることができるとの効果を奏する。
〔実施形態1〕
以下、本発明の実施形態1について、図1から図18に基づいて詳細に説明する。図中同一または相当部分には同一符号を付してその説明は繰返さない。本発明の一態様に係るツール10に係る理解を容易にするため、先ず、ツール10を含む開発システム1の概要を、図2を用いて説明する。
以下、本発明の実施形態1について、図1から図18に基づいて詳細に説明する。図中同一または相当部分には同一符号を付してその説明は繰返さない。本発明の一態様に係るツール10に係る理解を容易にするため、先ず、ツール10を含む開発システム1の概要を、図2を用いて説明する。
ツール10は、ユーザが制御目的(たとえば、対象のラインおよびプロセス)に応じてコントローラ20に実行させる制御プログラムとしてのユーザプログラムをプログラミングするための環境を提供するプログラミング支援装置である。ツール10は、エディタ、プログラミングエディタと呼ばれることもある。ツール10の提供するプログラミング支援環境においてユーザがプログラミングするユーザプログラムは、シーケンスプログラムとNC(Numeral Control、数値制御)プログラムとを含んでいる。
なお、以下では、ツール10の提供するプログラミング支援環境において、ユーザがシーケンスプログラム中にNCプログラムを組み込む例を説明する。すなわち、以下に説明するユーザプログラムは、シーケンスプログラム中にNCプログラムがプログラミングされたユーザプログラムである。
しかしながら、ユーザは、ツール10を利用することによって、NCプログラム中にシーケンスプログラムを組み込むこともできる。すなわち、ツール10は、シーケンスプログラムとNCプログラムとを一画面中に編集可能に表示すればよい。ツール10は、シーケンスプログラムを編集するための画面内にNCプログラムを編集するための領域を設けてもよいし、NCプログラムを編集するための画面内にシーケンスプログラムを編集するための領域を設けてもよい。ツール10は、シーケンスプログラムを編集するための画面内にNCプログラムを編集するための領域を設けることにより、主としてシーケンスプログラムをプログラミングするユーザにとって利用しやすい開発環境を提供することができる。また、ツール10は、NCプログラムを編集するための画面内にシーケンスプログラムを編集するための領域を設けることにより、主としてNCプログラムをプログラミングするユーザにとって利用しやすい開発環境を提供することができる。
以下の説明において、「シーケンスプログラム」は、例えば、IEC(International Electrotechnical Commission)61131‐3に準拠したシーケンスプログラムであり、「IECプログラム」と称することがある。また、「NCプログラム」は、NC工作機械といった数値制御装置等により実行され、「CNC(Computer Numerical Control)プログラム」、「数値制御加工プログラム」、「数値制御プログラム」、または「加工プログラム」と称することがある。
(開発システムの概要)
図2は、ツール10を含む開発システム1の全体概要を示す図である。図2に例示する開発システム1は、数値制御およびシーケンス制御のための総合開発環境を提供するツール10と、ツール10を利用して作成・編集されたプログラムを実行して数値制御およびシーケンス制御を同期させて実行するコントローラ20と、を含む。
図2は、ツール10を含む開発システム1の全体概要を示す図である。図2に例示する開発システム1は、数値制御およびシーケンス制御のための総合開発環境を提供するツール10と、ツール10を利用して作成・編集されたプログラムを実行して数値制御およびシーケンス制御を同期させて実行するコントローラ20と、を含む。
コントローラ20は、シーケンスプログラムとNCプログラムとを同期させて実行することのできる制御装置であり、シーケンス制御エンジン21と、数値制御エンジン22と、を備えている。言い換えれば、シーケンス制御エンジン21がシーケンスプログラムを実行して行なうシーケンス制御と、数値制御エンジン22がNCプログラムを実行して行なう数値制御と、が1台のコントローラ20において統合されている。
図19に例示したように、従来の開発システム9において、IECプログラムとNCプログラムとは各々、別々のコントローラによって実行されていた。つまり、図19に示す従来の開発システム9においては、IECプログラムとNCプログラムとは、各々、別々のコントローラにおいて実行され、そのため、別々のツール上で処理されていた。IECプログラムとNCプログラムとの開発環境を統合するためには、IECプログラムとNCプログラムとを実行するコントローラの統合が先に必要となる。
これに対して、図2に例示する開発システム1において、シーケンスプログラムおよびNCプログラムは、コントローラ20の内部で相互に連携したシーケンス制御エンジン21および数値制御エンジン22により実行される。
ツール10は、コントローラ20で実行されるユーザプログラムおよび設定情報を生成する。言い換えれば、ツール10は、コントローラ20の開発環境を提供する装置であり、ユーザが、制御目的(たとえば、対象のラインおよびプロセス)に応じてユーザプログラムを作成する(作成・編集する)ための環境を提供する装置である。ユーザは、ツール10の提供する開発環境(プログラミングツール)を用いて、コントローラ20で実行させる制御プログラム(ユーザプログラム)のプログラムコードを作成する。ツール10は、コントローラ20で実行させる制御プログラムをユーザが作成・編集するのを支援するため、デバック機能およびシミュレーション機能を有していてもよい。ツール10は、コントローラ20の運転状態、および各種データの値などを監視してもよく、さらに、コントローラ20のシミュレータであってもよい。すなわち、ツール10は、コントローラ20のプログラミング、コンフィグレーション(構成設定)、デバッグ、メンテナンス、モニタリング機能の他、3Dモーションシミュレーションにも対応した統合開発環境を提供する装置であってもよい。
ツール10は、例えば、不図示のDVD−ROM等に格納されたプログラム(実行処理プログラム)を実行するパーソナルコンピュータによって、前記の機能を実現する。また、ツール10は、前記DVD−ROMに格納されたプログラムと同様のプログラムを上位のホストコンピュータなどからネットワークを通じてダウンロードして該プログラムを実行するパーソナルコンピュータによって、前記の機能を実現するように構成してもよい。
図2に示すように、ツール10は、シーケンスプログラムとNCプログラムとを含むユーザプログラムを、ユーザが作成・編集することの可能な開発環境を提供する。ツール10は、例えば、シーケンスプログラムのための編集画面内に、NCプログラムをプログラミングすることの可能な領域を設ける。ツール10は、ユーザにより作成、編集されたシーケンスプログラムとNCプログラムとをコンパイルしてコントローラ20に転送する。
従来、図19に示すように、従来の開発システム9においては、IECプログラム902およびNCプログラム912は、各々、IECプログラムエディタ901とNCプログラムエディタ911とで開発され、つまり、作成・編集されていた。従来の開発システム9のツール900においては、IECプログラム902およびNCプログラム912の各々の呼び出しは明示的にはされず、システム設定上で行われていた。つまり、ツール900において、IECプログラム902をプログラミングするための画面と、NCプログラム912をプログラミングするための画面と、は別々の画面であり、両方のプログラムを同じ画面でプログラミングすることはできなかった。そのため、ユーザ(=開発者)は、IECプログラムエディタ901とNCプログラムエディタ911とを含むユーザプログラムを一度に見通すことができないという問題があった。
図2に例示する開発システム1において、ツール10は、例えば、「ユーザが、シーケンスプログラム内にNCプログラムを埋め込んでプログラミングを行なう」ことのできる環境を提供する。言い換えれば、ツール10は、シーケンスプログラムとNCプログラムとを統合してプログラミングすることのできる環境を提供する。ツール10の提供するプログラミング環境において、ユーザは、シーケンスプログラムのプログラミングと、NCプログラムのプログラミングと、を同一の画面で行なうことができる。
したがって、ツール10によって、ユーザは、複数の画面を行き来することなく、シーケンスプログラムとNCプログラムとをプログラミングすることができ、また、シーケンスプログラムとNCプログラムとの間のつながりを容易に把握することができる。また、ツール10によって、ユーザは、シーケンスプログラムとNCプログラムとのプログラミングを行なうときに、GUI操作等のプログラミング以外のユーザ操作を行なう必要がなく、プログラミングに集中することができるため、開発効率の向上につながる。
(ツールの概要)
これまで、開発システム1、および、開発システム1に含まれる装置(ツール10およびコントローラ20)の概要について、図2を用いて説明を行ってきた。次に、開発システム1に含まれるツール10について、その構成および処理の内容等を、図1等を用いて説明していく。図1を参照してツール10の詳細について説明する前に、ツール10についての理解を容易にするため、ツール10の概要について以下のように整理しておく。
これまで、開発システム1、および、開発システム1に含まれる装置(ツール10およびコントローラ20)の概要について、図2を用いて説明を行ってきた。次に、開発システム1に含まれるツール10について、その構成および処理の内容等を、図1等を用いて説明していく。図1を参照してツール10の詳細について説明する前に、ツール10についての理解を容易にするため、ツール10の概要について以下のように整理しておく。
ツール10(支援装置)は、コントローラ20(産業用制御装置)で実行されるユーザプログラムの作成を支援する支援装置であって、同期させて実行されるべきシーケンスプログラムとNCプログラムとに係るユーザのプログラミング操作を受け付ける操作受付部110(受付部)と、操作受付部110により受け付けられた前記プログラミング操作に従って、前記ユーザプログラムとして、前記シーケンスプログラムと前記NCプログラムとを編集可能に一画面中に表示する表示制御部120と、を備えている。
前記の構成によれば、ツール10は、同期させて実行されるべき前記シーケンスプログラムと前記NCプログラムとを編集可能に一画面中に表示する。具体的には、ツール10は、表示装置40に、同期させて実行されるべき前記シーケンスプログラムと前記NCプログラムとを編集可能に一画面中に表示させる。
したがって、ツール10は、ユーザが、前記シーケンスプログラムと前記NCプログラムとを含む前記ユーザプログラムの全体を容易に把握することを可能とし、ユーザのプログラミング効率を向上させることができるという効果を奏する。ユーザは、ツール10を用いて、前記シーケンスプログラムと前記NCプログラムとを一画面中で作成・編集することができ、つまり、前記シーケンスプログラムと前記NCプログラムとを含む前記ユーザプログラムを効率的にプログラミングすることができる。
ツール10は、表示制御部120によって表示された前記ユーザプログラムをビルドする際に、(A)前記ユーザプログラム中の前記NCプログラムを退避させ、(B)前記ユーザプログラム中の、退避した前記NCプログラムがあった位置に、退避した前記NCプログラムを呼び出すファンクションブロック(FB)であって、退避した前記NCプログラムに対応する識別子を付与したFBを、挿入するプログラム処理部130をさらに備えてもよい。
前記の構成によれば、ツール10は、同期させて実行されるべき前記シーケンスプログラムと前記NCプログラムとを含む前記ユーザプログラムをビルドする際に、(A)前記ユーザプログラム中の前記NCプログラムを退避させ、(B)前記ユーザプログラム中の、退避した前記NCプログラムがあった位置に、退避した前記NCプログラムを呼び出すFBであって、退避した前記NCプログラムに対応する識別子を付与したFBを、挿入する。つまり、退避した前記NCプログラムを呼び出す前記FBが挿入された後の前記ユーザプログラムは、前記NCプログラムを含んでおらず、前記シーケンスプログラムのみより成る。
そのため、ツール10は、「シーケンスプログラムのみを処理可能な従来までのエディタ」の構成を利用して、「前記NCプログラムを退避し、代わりに、前記NCプログラムを呼び出す前記FBを挿入した前記ユーザプログラム」を処理することができる。言い換えれば、ツール10は、「前記NCプログラムを退避し、代わりに、前記NCプログラムを呼び出す前記FBを挿入した前記ユーザプログラム」に対する処理に、前記従来までのエディタの備える構成を利用することができる。例えば、ツール10は、前記従来までの構成を利用して、「前記NCプログラムを退避し、代わりに、前記NCプログラムを呼び出す前記FBを挿入した前記ユーザプログラム」のビルド、および、ビルドしたプログラムの前記産業用制御装置への転送等の処理を実行することができる。
したがって、ツール10は、「シーケンスプログラムのみを処理可能な従来までのエディタ」の構成を利用することができ、ツール10を実現するためのコストを抑制することができるという効果を奏する。
また、ツール10は、「NCプログラムのみを処理可能な従来までのエディタ」の構成を利用して、「前記ユーザプログラムから退避させた前記NCプログラム」を処理することができる。言い換えれば、ツール10は、「前記ユーザプログラム中から退避させた前記NCプログラム」に対する処理に、前記従来までのエディタの備える構成を利用することができる。例えば、ツール10は、前記従来までの構成を利用して、「前記ユーザプログラム中から退避させた前記NCプログラム」のビルド、および、ビルドしたプログラムの前記産業用制御装置への転送等の処理を実行することができる。
したがって、ツール10は、「NCプログラムのみを処理可能な従来までのエディタ」の構成を利用することができ、ツール10を実現するためのコストを抑制することができるという効果を奏する。
なお、ツール10は、前記ユーザプログラム中の前記NCプログラムについて、前記NCプログラムを特定可能な識別子を付与して、前記NCプログラムを前記ユーザプログラム中から退避させる。ツール10は、前記ユーザプログラム中の前記NCプログラムの各々について、各々の前記NCプログラムを特定可能な識別子を付与することにより、各々の前記NCプログラムを識別し、管理する。ツール10は、前記ユーザプログラムにおいてユーザが各々の前記NCプログラムを特定するための情報として各々の前記NCプログラムの先頭に付加する「プログラム番号」を、各々の前記NCプログラムを特定可能な識別子として利用することができる。
ツール10は、前記ユーザプログラム中の前記NCプログラムの各々を呼び出すFB(以下、「FB(NC呼出)」ともいう)の各々について、各々のFB(NC呼出)を特定可能な識別子を付与することにより、各々の前記FB(NC呼出)を識別し、管理する。
詳細は、図4の(A)を用いて後述するが、ツール10は、ユーザプログラム中の各々のNCプログラムを特定可能な識別子を付与したNCプログラムと、各々のFB(NC呼出)を特定可能な識別子を付与したFB(NC呼出)とを対応付けて管理する。
ツール10において、表示制御部120は、前記シーケンスプログラムから前記NCプログラムを区別するための情報を付した前記NCプログラムを、前記シーケンスプログラムと共に、編集可能に一画面中に表示してもよい。
前記の構成によれば、ツール10は、前記シーケンスプログラムから前記NCプログラムを区別するための情報を付した前記NCプログラムを、前記シーケンスプログラムと共に、編集可能に一画面中に表示する。
したがって、ツール10は、ユーザが、「前記一画面において編集可能に表示されている前記ユーザプログラムから、前記シーケンスプログラムと前記NCプログラムとを容易に判別する」ことを可能にするとの効果を奏する。
また、前記の構成によれば、ツール10は、「前記NCプログラムを前記シーケンスプログラムから区別するための情報」に基づいて、前記ユーザプログラムについて、前記シーケンスプログラムと前記NCプログラムとを容易に判別することができるという効果を奏する。
ツール10において、表示制御部120は、ラダーダイアグラムおよびファンクションブロックダイアグラムの少なくとも一方でプログラミングされた前記シーケンスプログラム中に、前記NCプログラムを編集可能な領域であるNCボックスを表示してもよい。
前記の構成によれば、ツール10は、前記ラダーダイアグラム(LD)および前記ファンクションブロック(FBD)の少なくとも一方でプログラミングされた前記シーケンスプログラム中に、前記NCプログラムを編集可能な領域であるNCボックスを表示する。
ここで、前記LDおよび前記FBDは、各々、前記シーケンスプログラムのために一般的に利用されているプログラミング言語であり、ユーザにとって使い慣れたプログラミング言語である。
したがって、ツール10は、前記LDおよび前記FBDで前記シーケンスプログラムをプログラミングしつつ、前記シーケンスプログラム中に前記NCプログラムをプログラミングすることのできる環境をユーザに提供することができるとの効果を奏する。
ツール10において、表示制御部120は、ストラクチャードテキストでプログラミングされた前記シーケンスプログラム中に、前記NCプログラムの開始および終了を示すプラグマを表示し、表示した前記開始および前記終了を示すプラグマの間に前記NCプログラムを編集可能に表示してもよい。
前記の構成によれば、ツール10は、前記ストラクチャードテキスト(ST)でプログラミングされた前記シーケンスプログラム中に、前記NCプログラムの開始および終了を示すプラグマを表示し、表示した前記開始および前記終了を示すプラグマの間に前記NCプログラムを編集可能に表示する。
ここで、前記STは、前記シーケンスプログラムのために一般的に利用されているプログラミング言語であり、ユーザにとって使い慣れたプログラミング言語である。
したがって、ツール10は、前記STで前記シーケンスプログラムをプログラミングしつつ、前記シーケンスプログラム中に前記NCプログラムをプログラミングすることのできる環境をユーザに提供することができるとの効果を奏する。
ツール10において、表示制御部120は、シーケンシャルファンクションチャートでプログラミングされた前記シーケンスプログラム中に、前記NCプログラムであることを示す属性を付したアクションであって、前記NCプログラムを含むアクションを、編集可能に表示してもよい。
前記の構成によれば、ツール10は、前記シーケンシャルファンクションチャート(SFC)でプログラミングされた前記シーケンスプログラム中に、前記NCプログラムであることを示す属性を付したアクションであって、前記NCプログラムを含むアクションを、編集可能に表示する。
ここで、前記SFCは、前記シーケンスプログラムのために一般的に利用されているプログラミング言語であり、ユーザにとって使い慣れたプログラミング言語である。
したがって、ツール10は、前記SFCで前記シーケンスプログラムをプログラミングしつつ、前記シーケンスプログラム中に前記NCプログラムをプログラミングすることのできる環境をユーザに提供することができるとの効果を奏する。
ツール10は、前記シーケンスプログラムと前記NCプログラムとを、前記シーケンスプログラムと前記NCプログラムとを同期させて実行するコントローラ20(1台の産業用制御装置)に転送するプログラム転送部140をさらに備えてもよい。
前記の構成によれば、ツール10は、前記シーケンスプログラムと前記NCプログラムとを、前記シーケンスプログラムと前記NCプログラムとを同期させて実行するコントローラ20に転送する。
したがって、ツール10は、自装置を用いてユーザによりプログラミングされた前記シーケンスプログラムと前記NCプログラムとをコントローラ20により、同期させて実行させることができるという効果を奏する。
これまでに概要を説明してきたツール10について、次に、ツール10の構成の詳細等を、図1を用いて説明する。
(ツールの詳細)
図1は、ツール10の要部構成等を示すブロック図である。図1に例示するように、ツール10は、入力装置30の受け付けたユーザ操作を、入力装置30から取得する。そして、ツール10は、取得したユーザ操作に応じた情報を、言い換えれば、取得したユーザ操作に対応する画像を、表示装置40に表示させる。
図1は、ツール10の要部構成等を示すブロック図である。図1に例示するように、ツール10は、入力装置30の受け付けたユーザ操作を、入力装置30から取得する。そして、ツール10は、取得したユーザ操作に応じた情報を、言い換えれば、取得したユーザ操作に対応する画像を、表示装置40に表示させる。
入力装置30は、ツール10に対するユーザ操作(例えば、プログラミングのための入力操作等)を受け付け、受け付けたユーザ操作をツール10に出力する。入力装置30は、例えば、キーボード、マウス等であり、入力装置30が受け付けたユーザ操作は、ツール10(具体的には、操作受付部110)においてユーザからの命令として受け付けられる。表示装置40は、ツール10(具体的には、表示制御部120)の制御に従って画像を表示するディスプレイである。
図1に示すツール10は、制御部100および記憶部200を含む構成である。なお、記載の簡潔性を担保するため、本実施の形態に直接関係のない構成(例えば、不図示の外部装置等と通信するためのインターフェースなどの構成)は、説明およびブロック図から省略している。ただし、実施の実情に則して、ツール10は、当該省略された構成を備えてもよい。
(制御部)
制御部100は、ツール10の機能を統括して制御するものである。図示の制御部100には、機能ブロックとして、操作受付部110、表示制御部120、プログラム処理部130、および、プログラム転送部140が含まれている。
制御部100は、ツール10の機能を統括して制御するものである。図示の制御部100には、機能ブロックとして、操作受付部110、表示制御部120、プログラム処理部130、および、プログラム転送部140が含まれている。
操作受付部110は、入力装置30が受け付けたユーザ操作を、ユーザからの命令として、入力装置30から取得する。操作受付部110は、取得したユーザ操作を、その内容に応じて、表示制御部120およびプログラム処理部130の少なくとも一方に、ユーザからの命令として通知する。
表示制御部120は、表示装置40に表示させる情報(つまり、画像)を制御する。表示制御部120は、例えば、「コントローラ20により実行される、シーケンスプログラムおよびNCプログラム」を含むユーザプログラムを作成・編集するための画面である「編集画面」を表示装置40に表示させる。つまり、表示制御部120は、ユーザがユーザプログラムをプログラミング(作成・編集)するのをサポートするエディタ機能を実現する。表示制御部120は、エディタ切替部121、シーケンスプログラムエディタ部122、および、NCプログラムエディタ部123を含んでいる。表示制御部120は、編集画面においてユーザによって作成・編集された「コントローラ20により実行される、シーケンスプログラムおよびNCプログラムを含むユーザプログラム」を、記憶部200に、ユーザプログラム201として格納してもよい。
シーケンスプログラムエディタ部122は、シーケンスプログラムをユーザがプログラミングするための画像を表示装置40に表示させる。シーケンスプログラムエディタ部122は、例えば、シーケンスプログラムをユーザがプログラミングするための画面である「シーケンスプログラム編集画面」を表示装置40に表示させる。
また、シーケンスプログラムエディタ部122は、NCプログラム編集画面中に、シーケンスプログラムをユーザがプログラミングするための領域である「シーケンスプログラム編集領域」を表示させる。「NCプログラム編集画面」とは、NCプログラムエディタ部123が表示装置40に表示させる画面であって、「NCプログラムをユーザがプログラミングする」ための画面である。
すなわち、シーケンスプログラムエディタ部122は、シーケンスプログラムをユーザが作成・編集するための環境を提供するエディタである。シーケンスプログラムエディタ部122は、例えば、IEC(International Electrotechnical Commission)61131‐3に準拠したシーケンスプログラムをユーザが作成・編集するための環境を提供する。具体的には、シーケンスプログラムエディタ部122は、ユーザが以下のプログラミング言語でシーケンスプログラムを作成・編集するための環境を提供する。すなわち、シーケンスプログラムエディタ部122は、ラダーダイアグラム(LD、Ladder Diagram)、ファンクションブロックダイアグラム(FBD、Function Block Diagram)、ストラクチャードテキスト(ST、Structured Text)、シーケンシャルファンクションチャート(SFC、Sequential Function Chart)等でプログラミングするための環境を提供する。シーケンスプログラムエディタ部122は、ユーザがシーケンスプログラムをIL(Instruction List)で作成・編集するための環境を提供してもよい。シーケンスプログラムエディタ部122は、複数のプログラミング言語が混在したシーケンスプログラムを作成・編集するための環境を提供できてもよい。
シーケンスプログラムエディタ部122は、例えば、ユーザがシーケンスプログラムを、主としてLDで作成・編集するためのLD編集画面を表示装置40に表示させる。シーケンスプログラムエディタ部122は、例えば、ユーザがシーケンスプログラムを、主としてFBDで作成・編集するためのFBD編集画面を表示装置40に表示させる。シーケンスプログラムエディタ部122は、例えば、ユーザがシーケンスプログラムを、主としてSTで作成・編集するためのST編集画面を表示装置40に表示させる。シーケンスプログラムエディタ部122は、例えば、ユーザがシーケンスプログラムを、主としてSFCで作成・編集するためのSFC編集画面を表示装置40に表示させる。すなわち、シーケンスプログラムエディタ部122は、従来から一般的な、LDエディタ、FBDエディタ、STエディタ、および、SFCエディタの機能を備えている。
なお、LD編集画面、FBD編集画面、ST編集画面、および、SFC編集画面の各々において、ユーザは、LD、FBD、ST、および、SFC以外のプログラミング言語でシーケンスプログラムを作成・編集することも可能である。例えば、ユーザは、LD編集画面において、LD、FBD、および、STが混在したシーケンスプログラムを作成・編集することができる。IEC61131‐3で規定された複数のプログラミング言語にはそれぞれ長所・短所があり、ユーザは、ツール10を利用することにより、それら複数のプログラミング言語を、適材適所で使い分けることができる。したがって、ユーザは、ツール10を利用することにより、プログラミング時間(コーディング時間)の短縮を実現し、プログラミングしたプログラムの可読性を向上させることができる。
NCプログラムエディタ部123は、NCプログラムをユーザがプログラミングするための画像を表示装置40に表示させる。NCプログラムエディタ部123は、例えば、NCプログラムをユーザがプログラミングするための画面である「NCプログラム編集画面」を表示装置40に表示させる。
また、NCプログラムエディタ部123は、シーケンスプログラム編集画面中に、NCプログラムをユーザがプログラミングする(編集・描画する)ための領域である「NCプログラム編集領域」を表示させる。「シーケンスプログラム編集画面」とは、シーケンスプログラムエディタ部122が表示装置40に表示させる画面であって、「シーケンスプログラムをユーザがプログラミングする」ための画面である。
すなわち、NCプログラムエディタ部123は、NCプログラムをユーザが作成・編集するための環境を提供するエディタであり、例えば、ユーザがGコード、Mコード等を用いてNCプログラムを作成・編集するための環境を提供するエディタである。
エディタ切替部121は、操作受付部110が受け付けたユーザ操作に応じてユーザのプログラミングを処理するエディタを切り替え、つまり、シーケンスプログラムエディタ部122またはNCプログラムエディタ部123にユーザのプログラミングを処理させる。具体的には、エディタ切替部121は、以下の(A)〜(D)を実行する。
(A)エディタ切替部121は、シーケンスプログラム編集画面において「NCプログラム編集領域を設ける」ユーザ操作を操作受付部110が受け付けると、NCプログラムエディタ部123に、以下の処理を実行させる。すなわち、シーケンスプログラム編集画面の表示中に「NCプログラム編集領域を設ける」ユーザ操作があると、エディタ切替部121は、NCプログラムエディタ部123に、NCプログラム編集領域をシーケンスプログラム編集画面中に表示させる。
(A−1)エディタ切替部121は、LD編集画面において「NCプログラム編集領域を設ける」ユーザ操作があると、NCプログラムエディタ部123に、LD編集画面中の「NCプログラム編集領域」として、「NCボックス」を表示させる。具体的には、エディタ切替部121は、「主にLDでプログラミングされているシーケンスプログラム(LDプログラム)」内に、「NCプログラム」を編集、描画するための領域(NCプログラム編集領域)である「NCボックス」を表示させる。
(A−2)エディタ切替部121は、FBD編集画面において「NCプログラム編集領域を設ける」ユーザ操作があると、NCプログラムエディタ部123に、FBD編集画面中の「NCプログラム編集領域」として、「NCボックス」を表示させる。具体的には、エディタ切替部121は、「主にFBDでプログラミングされているシーケンスプログラム(FBDプログラム)」内に、「NCボックス」を表示させる。
(A−3)エディタ切替部121は、ST編集画面において「NCプログラム」の開始および終了を示すプラグマを記載するユーザ操作があると、NCプログラムエディタ部123に、そのプラグマにより囲まれた領域を「NCプログラム編集領域」として表示させる。
(A−4)エディタ切替部121は、SFC編集画面において或る「アクション」の属性として「NCプログラム」を選択するユーザ操作があると、NCプログラムエディタ部123に、その或るアクション内の領域を「NCプログラム編集領域」として表示させる。
(B)エディタ切替部121は、NCプログラム編集画面において「シーケンスプログラム編集領域を設ける」ユーザ操作を操作受付部110が受け付けると、シーケンスプログラムエディタ部122に、以下の処理を実行させる。すなわち、NCプログラム編集画面の表示中に「シーケンスプログラム編集領域を設ける」ユーザ操作があると、エディタ切替部121は、シーケンスプログラムエディタ部122に、シーケンスプログラム編集領域をNCプログラム編集画面中に表示させる。
(C)エディタ切替部121は、「シーケンスプログラム編集画面」中の「NCプログラム編集領域」に対するユーザ操作を操作受付部110が受け付けると、NCプログラムエディタ部123に、そのユーザ操作に対応する情報を表示させる。言い換えれば、エディタ切替部121は、「NCプログラム編集領域」に対するユーザ操作を、「NCプログラムのプログラミング」として、NCプログラムエディタ部123に処理させる。
(D)エディタ切替部121は、「NCプログラム編集画面」中の「シーケンスプログラム編集領域」に対するユーザ操作を操作受付部110が受け付けると、シーケンスプログラムエディタ部122に、そのユーザ操作に対応する情報を表示させる。言い換えれば、エディタ切替部121は、「シーケンスプログラム編集領域」に対するユーザ操作を、「シーケンスプログラムのプログラミング」として、シーケンスプログラムエディタ部122に処理させる。
以上の説明を整理すれば、表示制御部120は、LD編集画面、FBD編集画面、ST編集画面、および、SFC編集画面の各々を表示装置40に表示させるとともに、各画面中に、NCプログラム編集領域を表示させる。すなわち、表示制御部120は、表示装置40に、シーケンスプログラム編集画面を表示させ、さらに、表示させたシーケンスプログラムの編集画面中に、NCプログラムをプログラミングすることの可能なNCプログラム編集領域を表示させる。
具体的には、(I)表示制御部120は、LD編集画面において、シーケンスプログラム中に、NCプログラム編集領域として、「NCボックス」を、表示装置40に表示させる。(II)表示制御部120は、FBD編集画面において、シーケンスプログラム中に、NCプログラム編集領域として、「NCボックス」を、表示装置40に表示させる。(III)表示制御部120は、ST編集画面において、シーケンスプログラム中に記載された「NCプログラムの開始および終了を示すプラグマ」に囲まれた領域を、NCプログラム編集領域として、表示装置40に表示させる。(IV)表示制御部120は、SFC編集画面において、属性として「NCプログラム」が選択された「アクション」内を、NCプログラム編集領域として、表示装置40に表示させる。
プログラム処理部130は、表示制御部120により提供される編集画面で作成されたユーザプログラム(ソースプログラム)をコンパイルして、オブジェクトプログラム形式のユーザプログラムを作成するコンパイラである。プログラム処理部130は、プログラム分離部131、プログラム置換部132、シーケンスプログラム処理部133、および、NCプログラム処理部134を含んでいる。
プログラム分離部131は、「シーケンスプログラムおよびNCプログラム」を含むユーザプログラムから、シーケンスプログラムおよびNCプログラムの各々を分離する。プログラム分離部131は、例えば、NCプログラムを含むシーケンスプログラムから、NCプログラムを取り出して、取り出したNCプログラムを保持する(退避させる)。
具体的には、(A)プログラム分離部131は、LD編集画面におけるシーケンスプログラム(ユーザプログラム)について、そのシーケンスプログラム中の「NCボックス」内にプログラミングされたプログラムを、NCプログラムとして取り出す。プログラム分離部131は、取り出したプログラムを、記憶部200にNCプログラム204として格納する。
(B)プログラム分離部131は、FBD編集画面におけるシーケンスプログラム(ユーザプログラム)について、そのシーケンスプログラム中の「NCボックス」内にプログラミングされたプログラムを、NCプログラムとして取り出す。プログラム分離部131は、取り出したプログラムを、記憶部200にNCプログラム204として格納する。
(C)プログラム分離部131は、ST編集画面におけるシーケンスプログラム(ユーザプログラム)について、そのシーケンスプログラム中の「NCプログラムの開始および終了を示すプラグマ」に囲まれた領域内にプログラミングされたプログラムを、NCプログラムとして取り出す。プログラム分離部131は、取り出したプログラムを、記憶部200にNCプログラム204として格納する。
(D)プログラム分離部131は、SFC編集画面におけるシーケンスプログラム(ユーザプログラム)について、そのシーケンスプログラム中の、属性が「NCプログラム」である「アクション」内にプログラミングされたプログラムを、NCプログラムとして取り出す。プログラム分離部131は、取り出したプログラムを、記憶部200にNCプログラム204として格納する。
なお、プログラム分離部131は、例えば、シーケンスプログラムを含むNCプログラムから、シーケンスプログラムを取り出して、取り出したシーケンスプログラムを保持してもよい(退避させてもよい)。
プログラム置換部132は、NCプログラムを取り出されたシーケンスプログラム(ユーザプログラム)について、取り出されたNCプログラムのあった位置に、取り出されたNCプログラムを呼び出すFBを、以下の識別情報(番号、ID)を付与して、挿入する。すなわち、プログラム置換部132は、対応管理情報202を参照して空き番号(任意のNCプログラムに対応付けられていない番号)を取得し、取得した空き番号を、取り出されたNCプログラムを呼び出すFBに付与して、前記シーケンスプログラムに挿入する。つまり、プログラム置換部132は、シーケンスプログラム(ユーザプログラム)中の、取り出されたNCプログラムのあった位置に、取り出されたNCプログラムを呼び出すFBであって、取り出されたNCプログラムに対応する識別子を付与したFBを挿入する。プログラム置換部132は、例えば、NCプログラムを含むシーケンスプログラム(ユーザプログラム)をビルドする際に、そのシーケンスプログラムに含まれているNCプログラムを、「そのNCプログラムを呼び出すシーケンスプログラム」に置き替える。
なお、以下の説明においては、「対応するNCプログラムを呼び出すFB」を「FB(NC呼出)」と呼ぶことがある。例えば、プログラム置換部132は、或るシーケンスプログラム中の「ID=01」であるNCプログラムを「ID(番号)=01」である「FB(NC呼出)」に置き替える。また、プログラム置換部132は、その或るシーケンスプログラム中の「ID=02」であるNCプログラムを「ID(番号)=02」である「FB(NC呼出)」に置き替える。「ID=01」である「FB(NC呼出)」は「ID=01」であるNCプログラムを呼び出すFBであり、「ID=02」である「FB(NC呼出)」は「ID=02」であるNCプログラムを呼び出すFBである。
プログラム置換部132は、「或るNCプログラム」を、その「或るNCプログラム」を呼び出す「FB(NC呼出)」に置換すると、その「FB(NC呼出)」に割り当てた番号(ID)と共に、対応管理情報202として記憶部200に格納する。上述の例に即して言えば、プログラム置換部132は、「ID=01」であるNCプログラムと、「ID(番号)=01」である「FB(NC呼出)」と、を対応付けた情報を、対応管理情報202として記憶部200に格納する。また、プログラム置換部132は、「ID=02」であるNCプログラムと「ID(番号)=02」である「FB(NC呼出)」とを対応付けた情報を、対応管理情報202として記憶部200に格納する。
シーケンスプログラム処理部133は、シーケンスプログラムのコンパイラであり、コメントなど「シーケンスプログラム」の実行に不要な情報を除去して、オブジェクトプログラム形式のシーケンスプログラムを生成する。具体的には、シーケンスプログラム処理部133は、NCプログラムが取り出され、取り出されたNCプログラムを呼び出すFBであって、取り出されたNCプログラムに対応する識別子を付与したFBが挿入されたシーケンスプログラムをコンパイルする。
NCプログラム処理部134は、NCプログラムのコンパイラであり、オブジェクトプログラム形式のNCプログラムを生成する。具体的には、NCプログラム処理部134は、プログラム分離部131によってシーケンスプログラム(ユーザプログラム)から取り出されたNCプログラムから、コメントなど「NCプログラム」の実行に不要な情報を除去してコンパイルする。
プログラム転送部140は、プログラム処理部130によって生成されたオブジェクトプログラム形式のユーザプログラムを、コントローラ20に転送する機能部であり、シーケンスプログラム転送部141およびNCプログラム転送部142を含んでいる。シーケンスプログラム転送部141は、シーケンスプログラム処理部133によって生成されたオブジェクトプログラム形式のシーケンスプログラムを、コントローラ20に転送する。NCプログラム転送部142は、NCプログラム処理部134によって生成されたオブジェクトプログラム形式のNCプログラムを、コントローラ20に転送する。
上述した制御部100の各機能ブロックは、例えば、CPU(central processing unit)などが、ROM(read only memory)、NVRAM(non-Volatile random access memory)等で実現された記憶装置(記憶部200)に記憶されているプログラムを不図示のRAM(random access memory)等に読み出して実行することで実現できる。
(記憶部)
記憶部200は、ツール10が使用する各種データを格納している。すなわち、記憶部200は、ツール10が実行する(1)制御プログラム、(2)OSプログラム、(3)各種機能を実行するためのアプリケーションプログラム、および(4)該アプリケーションプログラムを実行するときに読み出す各種データを格納している。上記の(1)〜(4)のデータは、例えば、ROM(read only memory)、フラッシュメモリ、EPROM(Erasable Programmable ROM)、EEPROM(登録商標)(Electrically EPROM)、HDD(Hard Disc Drive)等の不揮発性記憶装置に記憶される。また、記憶部200は、ユーザプログラム201、対応管理情報202、シーケンスプログラム203、NCプログラム204、および、IEC−NCプログラムテーブル205を格納する。
記憶部200は、ツール10が使用する各種データを格納している。すなわち、記憶部200は、ツール10が実行する(1)制御プログラム、(2)OSプログラム、(3)各種機能を実行するためのアプリケーションプログラム、および(4)該アプリケーションプログラムを実行するときに読み出す各種データを格納している。上記の(1)〜(4)のデータは、例えば、ROM(read only memory)、フラッシュメモリ、EPROM(Erasable Programmable ROM)、EEPROM(登録商標)(Electrically EPROM)、HDD(Hard Disc Drive)等の不揮発性記憶装置に記憶される。また、記憶部200は、ユーザプログラム201、対応管理情報202、シーケンスプログラム203、NCプログラム204、および、IEC−NCプログラムテーブル205を格納する。
ユーザプログラム201は、表示制御部120が表示装置40に表示させる編集画面においてユーザによって作成・編集された、「コントローラ20により実行される、シーケンスプログラムおよびNCプログラム」を含むユーザプログラムである。
対応管理情報202は、プログラム置換部132によって置き替えられる、置き替え元の「NCプログラム」と、置き替え先の「FB(NC呼出)」と、を対応付けて管理する情報である。例えば、対応管理情報202は、置き替え元の「NCプログラム」の識別情報(ID)およびプログラムの内容と、置き替え先の「FB(NC呼出)」の識別情報(ID、番号)およびプログラムの内容と、を対応付けている。対応管理情報202の詳細については、図4の(A)を用いて後述する。
シーケンスプログラム203は、NCプログラムを含むシーケンスプログラム(ユーザプログラム)について、プログラム置換部132によってNCプログラムが「FB(NC呼出)」に置き替えられたシーケンスプログラムである。
NCプログラム204は、NCプログラムを含むシーケンスプログラム(ユーザプログラム)からプログラム分離部131によって取り出されたNCプログラムである。言い換えれば、NCプログラム204は、プログラム置換部132によって「FB(NC呼出)」に対応付けられたNCプログラムである。
IEC−NCプログラムテーブル205は、NCプログラムを含むシーケンスプログラム(ユーザプログラム)について、そのシーケンスプログラムの名称等の識別情報と、そのNCプログラムの識別情報および内容の少なくとも一方と、を対応付けた情報である。IEC−NCプログラムテーブル205の詳細については、図17等を用いて後述する。
(ユーザプログラムを構成する要素のデータ構造)
図3は、ツール10において、ユーザプログラムを構成する要素(部品。例えば、命令語等)のデータ構造の一例を示す図面である。図3に例示するように、LDプログラムを構成する要素は、「IEC部品:id1」と、「NCボックス:id2」とを含む。「IEC部品:id1」は、「変数:id1−1」、「LD/OUT等:id1−1」、「FB/Function等:id1−2」、および、「STボックス:id1−3」を含んでいる。ここで、「STボックス:id1−3」は、LDプログラム中に記載することのできる、STプログラムを指す。「NCボックス:id2」は、属性として「プログラム番号」を含む。
図3は、ツール10において、ユーザプログラムを構成する要素(部品。例えば、命令語等)のデータ構造の一例を示す図面である。図3に例示するように、LDプログラムを構成する要素は、「IEC部品:id1」と、「NCボックス:id2」とを含む。「IEC部品:id1」は、「変数:id1−1」、「LD/OUT等:id1−1」、「FB/Function等:id1−2」、および、「STボックス:id1−3」を含んでいる。ここで、「STボックス:id1−3」は、LDプログラム中に記載することのできる、STプログラムを指す。「NCボックス:id2」は、属性として「プログラム番号」を含む。
STプログラムを構成する要素は、「キーワード:id1」を含む。「キーワード:id1」は、「変数:id1−1」、「FB/Function等:id1−2」、および、「プラグマ:id1−3」を含んでいる。
SFCプログラムを構成する要素は、「キーワード:id1」を含む。「キーワード:id1」は、「変数:id1−1」、「アクション:id1−2」、および、「トランジション:id1−3」を含む。ユーザは「アクション:id1−2」の「属性」を選択することができ、アクション内にシーケンスプログラムを記載するアクションの属性は「0」(IEC:0)とし、アクション内にNCプログラムを記載するアクションの属性を「1」(NC:1)とする。
図4は、「プログラム置換部132によって参照される対応管理情報202」、プログラム置換部132によって置き替えられる、置き替え元の「NCプログラム」、および、置き替え先の「FB(NC呼出)」の一例を示す図である。
図4の(A)は、対応管理情報202のデータ構造の一例を示す図である。前述の通り、対応管理情報202は、「シーケンスプログラム中にプログラミングされたNCプログラム(NC部品。つまり、シーケンスプログラムの構成(部品)としてのNCプログラム)」と、「FB(NC呼出)」と、を対応付けた情報である。プログラム置換部132は、NC部品と「FB(NC呼出)」とを置き替えるときに、対応管理情報202を参照して、置き替える「FB(NC呼出)」に空き番号を付与し、その番号を、その「FB(NC呼出)」のIDとする。
図4の(A)に示す例では、「FB(NC呼出)」のID(図中の「NCプログラム番号」)について、「0」および「2」は使用されている(「使用・未使用=1」)。つまり、「ID=0」の「FB(NC呼出)」、および、「ID=2」の「FB(NC呼出)」には、何らかのNC部品(NCプログラム)が対応付けられている。例えば、「ID=0」の「FB(NC呼出)」は「ID=0」のNCプログラムを呼び出すFBであり、「ID=2」の「FB(NC呼出)」は「ID=2」のNCプログラムを呼び出すFBである。
これに対して、「FB(NC呼出)」の「NCプログラム番号」について、「1」は未使用である(「使用・未使用=0」)。したがって、プログラム置換部132は、或るNC部品(例えば、「ID=1」のNCプログラム)について、その或るNC部品を呼び出す「FB(NC呼出)」のID(=「NCプログラム番号」)を、「1」としてもよい。
例えば、後述する図6には、「プログラム番号(ユーザがユーザプログラム中の各々のNCプログラムを特定するためにNCプログラムに付加する情報)」として「100」が付加されたNCプログラムが例示されている。図6に例示するユーザプログラム中のNCプログラムについて、プログラム置換部132は、対応管理情報202を参照して「100」が未使用であることを確認すると、以下の処理を実行する。すなわち、このNCプログラムの先頭に付加されている「プログラム番号(NCプログラム番号)」である「100」を、プログラム置換部132は、このNCプログラムを呼び出す「FB(NC呼出)」のID(=「NCプログラム番号」)とする。すなわち、プログラム置換部132は、対応管理情報202を参照して、或るNCプログラムを呼び出すFB(NC呼出)のIDを、その或るNCプログラムのプログラム番号としてもよい。また、プログラム分離部131は、このNCプログラムについて、「ID(NCプログラム番号)=100」を付与して、ユーザプログラムから退避させてもよい。
ツール10は、ユーザプログラム中のNCプログラムの各々を、例えば「プログラム番号」により識別する。また、ツール10は、それらのNCプログラムの各々を呼び出すFB(NC呼出)の各々について、それらのFB(NC呼出)の各々に対して付与するIDにより識別する。ツール10は、ユーザプログラム中のNCプログラムの各々のプログラム番号と、NCプログラムの各々を呼び出すFB(NC呼出)の各々のIDとを対応付けた情報(例えば、対応管理情報202等)を管理している。
図4の(B)は、プログラム置換部132によって置き替えられる、置き替え元の「NCプログラム」の一例を示している。図4の(B)に例示する「置き替え元Gコード」は、プログラム置換部132によって、図4の(C)に例示する「FB(NC呼出)」に置き換えられる。なお、以下の説明においては、プログラム置換部132によって「FB(NC呼出)」に置き換えられる、「シーケンスプログラム中にプログラミングされたNCプログラム」を、「NC部品」とも称する。
図4の(C)は、LDプログラム、FBDプログラム、STプログラム、および、SFCプログラムの各々について、プログラム置換部132が、NC部品を、どのようなFBに、つまり、どのようなシーケンスプログラムに、置き替えるのかの例を示す図である。
「置き替え先FB(NC呼出)」の「LD」には、NC部品を含む、LDプログラムおよびFBDプログラムにおいて、そのNC部品を呼び出す「FB(NC呼出)」の例が、つまり、そのNC部品を呼び出すシーケンスプログラムの例が、示されている。
「置き替え先FB(NC呼出)」の「ST」には、NC部品を含むSTプログラムにおいて、そのNC部品を呼び出す「FB(NC呼出)」の例が、つまり、そのNC部品を呼び出すシーケンスプログラムの例が、示されている。
「置き替え先FB(NC呼出)」の「SFC」には、「上記2つの言語のいずれか」が示されている。つまり、NC部品を含むSFCプログラムにおいては、そのNC部品を呼び出す「FB(NC呼出)」は、「LD」または「ST」で示した「FB(NC呼出)」と同様である。
図5は、LDプログラム(またはFBDプログラム)中でNCプログラムを作成・編集する例を示す図である。表示制御部120は、LD編集画面(またはFBD編集画面)において、シーケンスプログラム中に、NCプログラムを作成・編集な領域である「NCボックス」(点線で囲んだ領域Ar304(01))を表示装置40に表示させる。図5において、領域Ar304(01)は、Gコード、Mコード等でNCプログラムをプログラミング可能な領域である「NCボックス」を示している。
図6は、STプログラム中でNCプログラムを作成・編集する例を示す図である。表示制御部120は、ST編集画面において、シーケンスプログラム中にプログラミングされた「NCプログラムの開始および終了を示すプラグマ」に囲まれた領域(点線で囲んだ領域Ar304(02))を、NCプログラム編集領域として表示装置40に表示させる。
図6には、「NCプログラムの開始および終了を示すプラグマ」が、「#」で始まる特定のキーワードである例が示されている。すなわち、図6に示す例においては、「NCプログラムの開始を示すプラグマ」は、「#」の後にNCプログラムの識別情報(NCプログラム番号)を記載したものであり、「NCプログラムの終了を示すプラグマ」は、「#END_NC_PROG」である。表示制御部120は、識別情報が「NC_PROG 100」であるNCプログラムをGコード、Mコード等でプログラミング可能なNCプログラム編集領域を、「#NC_PROG 100」と「#END_NC_PROG」との間に表示させる。
図7は、SFCプログラム中でNCプログラムを作成・編集する例を示す図である。表示制御部120は、SFC編集画面において、シーケンスプログラム中の、「属性として『NCプログラム』が選択された『アクション』」(点線で囲んだ領域Ar304(03))内を、NCプログラム編集領域として、表示装置40に表示させる。図7において、領域Ar304(03)は、Gコード、Mコード等でNCプログラムをプログラミング可能な「アクション」を示している。
(ツールの実行する処理)
これまで説明してきたように、ツール10の実行する制御方法は、コントローラ20(産業用制御装置)で実行されるユーザプログラムの作成を支援する支援装置の制御方法であって、同期させて実行されるべきシーケンスプログラムとNCプログラムとに係るユーザのプログラミング操作を受け付ける受付ステップと、前記受付ステップにて受け付けた前記プログラミング操作に従って、前記ユーザプログラムとして、前記シーケンスプログラムと前記NCプログラムとを編集可能に一画面中に表示する表示制御ステップと、を含んでいる。
これまで説明してきたように、ツール10の実行する制御方法は、コントローラ20(産業用制御装置)で実行されるユーザプログラムの作成を支援する支援装置の制御方法であって、同期させて実行されるべきシーケンスプログラムとNCプログラムとに係るユーザのプログラミング操作を受け付ける受付ステップと、前記受付ステップにて受け付けた前記プログラミング操作に従って、前記ユーザプログラムとして、前記シーケンスプログラムと前記NCプログラムとを編集可能に一画面中に表示する表示制御ステップと、を含んでいる。
前記の方法によれば、前記制御方法は、同期させて実行されるべき前記シーケンスプログラムと前記NCプログラムとを編集可能に一画面中に表示する。
したがって、前記制御方法は、ユーザが、前記シーケンスプログラムと前記NCプログラムとを含む前記ユーザプログラムの全体を容易に把握することを可能とし、ユーザのプログラミング効率を向上させることができるという効果を奏する。ユーザは、前記制御方法を実行するエディタ(プログラミング支援装置)であるツール10を用いて、前記シーケンスプログラムと前記NCプログラムとを一画面中で作成・編集することができる。つまり、ユーザは、ツール10を用いて、前記シーケンスプログラムと前記NCプログラムとを含む前記ユーザプログラムを効率的にプログラミングすることができる。
つまり、表示制御部120は、「コントローラ20により実行される、シーケンスプログラムおよびNCプログラム」を含むユーザプログラムをユーザがプログラミングするための画面である「編集画面」を表示装置40に表示させる。操作受付部110は、「コントローラ20により同期されて実行されるべきシーケンスプログラムおよびNCプログラム」に係るユーザのプログラミング操作を受け付ける。
以下、LD編集画面、FBD編集画面、ST編集画面、および、SFC編集画面において、ユーザによりNCプログラムを含んで作成・編集されたシーケンスプログラム(ユーザプログラム)についてツール10が実行する処理を図8〜11を参照して説明する。
(LDプログラム)
図8は、LD編集画面において作成・編集された「NCプログラムを含む、LDプログラム(ユーザプログラム)」についてツール10が実行する処理の概要を示すフロー図である。図8において、先ずプログラム処理部130(特に、プログラム分離部131)は、LDでプログラミングされたプログラム(LDプログラム)をパースし(S110)、LDプログラム内にNCボックスがあるかを判定する(S120)。
図8は、LD編集画面において作成・編集された「NCプログラムを含む、LDプログラム(ユーザプログラム)」についてツール10が実行する処理の概要を示すフロー図である。図8において、先ずプログラム処理部130(特に、プログラム分離部131)は、LDでプログラミングされたプログラム(LDプログラム)をパースし(S110)、LDプログラム内にNCボックスがあるかを判定する(S120)。
「LDプログラム内にNCボックスがある」と判定すると(S120でYes)、プログラム分離部131は以下の処理を実行する。すなわち、プログラム分離部131は、NCボックス内のNCプログラムを保持(退避)し(S130)、例えば、LDプログラム中の「NCボックス」内にプログラミングされたNCプログラムを記憶部200にNCプログラム204として格納する。そして、プログラム処理部130(特に、プログラム置換部132)は、LDプログラム内のNCボックスを、そのNCボックスに対応する番号(ID)を付与した「FB(NC呼出)」に入れ替える(S140)。
プログラム処理部130(特に、シーケンスプログラム処理部133)は、LDプログラム(NCボックスが、そのNCボックスに対応する番号を付与された「FB(NC呼出)」に入れ替えられたLDプログラム)をコンパイルする(S150)。
プログラム分離部131が「LDプログラム内にNCボックスがない」と判定すると(S120でNo)、プログラム処理部130(特に、シーケンスプログラム処理部133)は、(NCボックスを含まない)LDプログラムをコンパイルする(S150)。
プログラム分離部131が保持(退避)したNCプログラムをNCプログラム処理部134に渡して、図11に示すS410へと処理が遷移する(S160)。なお、NCプログラム処理部134は、NCプログラムをプログラム分離部131から取得する代わりに、記憶部200に格納されたNCプログラム204を取得してもよい。また、シーケンスプログラム処理部133は、コンパイルしたLDプログラム(シーケンスプログラム)を、シーケンスプログラム転送部141に渡す(S170)。
なお、FBD編集画面において作成・編集された「NCボックス(つまり、NCプログラム)を含む、FBDプログラム(ユーザプログラム)」についても、ツール10は、図8に示したのと同様の処理を実行する。
(STプログラム)
図9は、ST編集画面において作成・編集された「NCプログラムを含む、STプログラム(ユーザプログラム)」についてツール10が実行する処理の概要を示すフロー図である。図8において、先ずプログラム処理部130(特に、プログラム分離部131)は、STでプログラミングされたプログラム(STプログラム)をパースし(S210)、STプログラム内にNCプログラム用のプラグマがあるかを判定する(S220)。
図9は、ST編集画面において作成・編集された「NCプログラムを含む、STプログラム(ユーザプログラム)」についてツール10が実行する処理の概要を示すフロー図である。図8において、先ずプログラム処理部130(特に、プログラム分離部131)は、STでプログラミングされたプログラム(STプログラム)をパースし(S210)、STプログラム内にNCプログラム用のプラグマがあるかを判定する(S220)。
「STプログラム内にNCプログラム用のプラグマがある」と判定すると(S220でYes)、プログラム分離部131は、NCプログラム用のプラグマを検索し、検索したプラグマに囲まれたNCプログラムを保持(退避)する(S230)。プログラム分離部131は、例えば、STプログラム中のNCプログラム用のプラグマに囲まれている領域にプログラミングされたNCプログラムを、記憶部200にNCプログラム204として格納する。
プログラム処理部130(特に、プログラム置換部132)は、STプログラム中のNCプログラムを、そのNCプログラムに対応する番号を付与した「FB(NC呼出)」に入れ替える(S240)。より正確には、プログラム処理部130は、STプログラム中のNCプログラム用のプラグマ、および、そのプラグマに囲まれている領域にプログラミングされたNCプログラムを、そのNCプログラムに対応する番号を付与した「FB(NC呼出)」に入れ替える。
プログラム処理部130(特に、シーケンスプログラム処理部133)は、STプログラムをコンパイルする(S250)。プログラム処理部130は、「NCプログラム用のプラグマ、および、そのプラグマに囲まれている領域にプログラミングされたNCプログラムが、そのNCプログラムに対応する番号を付与された『FB(NC呼出)』に入れ替えられたSTプログラム」をコンパイルする。
プログラム分離部131が「STプログラム内にNCプログラム用のプラグマがない」と判定すると(S220でNo)、プログラム処理部130(特に、シーケンスプログラム処理部133)は、STプログラムをコンパイルする(S250)。プログラム処理部130は、NCプログラム用のプラグマが記載されていないSTプログラムをコンパイルする。
プログラム分離部131が保持(退避)したNCプログラムをNCプログラム処理部134に渡して、図11に示すS410へと処理が遷移する(S260)。なお、NCプログラム処理部134は、NCプログラムをプログラム分離部131から取得する代わりに、記憶部200に格納されたNCプログラム204を取得してもよい。また、シーケンスプログラム処理部133は、コンパイルしたSTプログラム(シーケンスプログラム)を、シーケンスプログラム転送部141に渡す(S270)。
(SFCプログラム)
図10は、SFC編集画面において作成・編集された「NCプログラムを含む、SFCプログラム(ユーザプログラム)」についてツール10が実行する処理の概要を示すフロー図である。図10において、先ずプログラム処理部130(特に、プログラム分離部131)は、SFCでプログラミングされたプログラム(SFCプログラム)をパース(S310)し、属性がNCであるアクションがあるかを判定する(S320)。
図10は、SFC編集画面において作成・編集された「NCプログラムを含む、SFCプログラム(ユーザプログラム)」についてツール10が実行する処理の概要を示すフロー図である。図10において、先ずプログラム処理部130(特に、プログラム分離部131)は、SFCでプログラミングされたプログラム(SFCプログラム)をパース(S310)し、属性がNCであるアクションがあるかを判定する(S320)。
「属性がNCであるアクションがある」と判定すると(S320でYes)、プログラム分離部131は、属性がNCであるアクション内のNCプログラムを保持する(退避する)(S330)。プログラム分離部131は、例えば、SFCプログラム中の「属性がNCであるアクション」内にプログラミングされたNCプログラムを記憶部200にNCプログラム204として格納する。そして、プログラム処理部130(特に、プログラム置換部132)は、「属性がNCであるアクション」内のNCプログラムを、そのNCプログラムに対応する番号を付与した「FB(NC呼出)」に入れ替える(S340)。
プログラム処理部130(特に、シーケンスプログラム処理部133)は、SFCプログラムをコンパイルする(S350)。プログラム処理部130は、「『属性がNCであるアクション』内のNCプログラムが、そのNCプログラムに対応する番号を付与された『FB(NC呼出)』に入れ替えられたSFCプログラム」をコンパイルする(S150)。
プログラム分離部131が「属性がNCであるアクションはない」と判定すると(S320でNo)、プログラム処理部130(特に、シーケンスプログラム処理部133)は、SFCプログラムをコンパイルする(S350)。プログラム処理部130は、「属性がNCであるアクション」を含まないSFCプログラムをコンパイルする。
プログラム分離部131が保持(退避)したNCプログラムをNCプログラム処理部134に渡して、図11に示すS410へと処理が遷移する(S360)。なお、NCプログラム処理部134は、NCプログラムをプログラム分離部131から取得する代わりに、記憶部200に格納されたNCプログラム204を取得してもよい。また、シーケンスプログラム処理部133は、コンパイルしたSFCプログラム(シーケンスプログラム)を、シーケンスプログラム転送部141に渡す(S370)。
図11は、図8〜10に示した処理の後にツール10が実行する処理の概要を示すフロー図である。NCプログラム処理部134は、プログラム分離部131からNCプログラムを受け取ると(S410)、受け取った「NCプログラム」を加工し、例えば、コメントの削除などを実行した後、コンパイルする(S420)。NCプログラム処理部134は、加工した「NCプログラム」を、つまり、コンパイルした「NCプログラム」を、NCプログラム転送部142に渡す(S430)。なお、ツール10の実行する以降の転送処理は、一般的なコントローラへの転送処理に準ずるため、詳細は略記する。
(置き換えの具体例)
図12は、プログラム置換部132が、シーケンスプログラム(ユーザプログラム)中のNCプログラム(NC部品)を、そのNCプログラムを呼び出す「FB(NC呼出)」に置き換える一例を示す図である。具体的には、図12の紙面上段には、図6に例示したのと同様の、NC部品を含むユーザプログラム(シーケンスプログラム)が示されている。図12の紙面上段において、「NCプログラムの開始を示すプラグマ」である「#NC_PROG 100」と、「NCプログラムの終了を示すプラグマ」である「#END_NC_PROG」と、に囲まれた領域Ar304(02)が、NCプログラム編集領域である。図12の紙面下段には、図4の(C)において、「置き替え先FB(NC呼出)」の「ST」の段に例示したのと同様の、「FB(NC呼出)(02)」の例が示されている。
図12は、プログラム置換部132が、シーケンスプログラム(ユーザプログラム)中のNCプログラム(NC部品)を、そのNCプログラムを呼び出す「FB(NC呼出)」に置き換える一例を示す図である。具体的には、図12の紙面上段には、図6に例示したのと同様の、NC部品を含むユーザプログラム(シーケンスプログラム)が示されている。図12の紙面上段において、「NCプログラムの開始を示すプラグマ」である「#NC_PROG 100」と、「NCプログラムの終了を示すプラグマ」である「#END_NC_PROG」と、に囲まれた領域Ar304(02)が、NCプログラム編集領域である。図12の紙面下段には、図4の(C)において、「置き替え先FB(NC呼出)」の「ST」の段に例示したのと同様の、「FB(NC呼出)(02)」の例が示されている。
プログラム置換部132は、図12の紙面上段に示すNCプログラム編集領域(点線で囲んだ領域Ar304(02))を、図12の紙面下段に示す「FB(NC呼出)(02)」に置き換える。「FB(NC呼出)(02)」は、領域Ar304(02)に記載されているNCプログラム(NC部品)を呼び出すFBであって、領域Ar304(02)に記載されているNCプログラムのみに対応付けられたID(番号)を付与されたFBである。
図12には、STプログラム中のNC部品を、図4の(C)における「置き替え先FB(NC呼出)」の「ST」の段に例示したのと同様の「FB(NC呼出)」であって、そのNC部品を呼び出す「FB(NC呼出)」に置き換える例を示した。プログラム置換部132は、LDプログラム、FBDプログラム、および、SFCプログラム中のNC部品についても、図4の(C)における「置き替え先FB(NC呼出)」に例示したのと同様の「FB(NC呼出)」であって、そのNC部品を呼び出す「FB(NC呼出)」に置き換える。
(NCプログラム一覧表示機能)
図13は、ツール10の備える「NCプログラム一覧表示機能」の概要を説明するための図である。シーケンスプログラム(ユーザプログラム)中に複数のNCプログラムを散在させて記載した場合、ユーザは、その複数のNCプログラムを一覧で確認したいことがあり得る。ツール10は、「NCプログラム一覧表示機能」を備え、表示制御部120(特に、NCプログラム処理部134)は、シーケンスプログラム中に存在する複数のNCプログラムのみを、図13に例示するように別のビューで一覧表示する。ツール10は、シーケンスプログラム中に存在する複数のNCプログラムを一覧表示することにより、「どのNCプログラムが動作するのか」について、一覧可読性が低下することを防ぐ。
図13は、ツール10の備える「NCプログラム一覧表示機能」の概要を説明するための図である。シーケンスプログラム(ユーザプログラム)中に複数のNCプログラムを散在させて記載した場合、ユーザは、その複数のNCプログラムを一覧で確認したいことがあり得る。ツール10は、「NCプログラム一覧表示機能」を備え、表示制御部120(特に、NCプログラム処理部134)は、シーケンスプログラム中に存在する複数のNCプログラムのみを、図13に例示するように別のビューで一覧表示する。ツール10は、シーケンスプログラム中に存在する複数のNCプログラムを一覧表示することにより、「どのNCプログラムが動作するのか」について、一覧可読性が低下することを防ぐ。
図14は、「NCプログラム一覧表示機能」を実行するツール10の処理の一例を示すフロー図である。図14に例示するように、操作受付部110がメニュー等において「NCプログラム一覧表示」を選択するユーザ操作を受け付けると(S510)、表示制御部120(特に、プログラム分離部131)は、以下の処理を実行する。
例えば、LD編集画面において「NCプログラム一覧表示」を選択するユーザ操作があると、プログラム分離部131は、そのLD編集画面に表示中のユーザプログラムを検索し、全てのNCボックス内のNCプログラムのデータを抽出する(S520)。すなわち、「NCプログラム一覧表示」を選択するユーザ操作があると、プログラム分離部131は、編集画面で編集可能に表示されているユーザプログラム(シーケンスプログラム)中の全てのNCプログラムを抽出する。なお、プログラム分離部131は、任意のユーザプログラムについて「NCプログラム一覧表示」を選択するユーザ操作があると、そのユーザプログラム中の全てのNCプログラムを抽出してもよい。
プログラム分離部131は、抽出したNCプログラムのデータをクリップボードにコピーし、または、テンポラリファイルを作成し(S530)、NCプログラムエディタ部123に、クリップボードのデータ、または、テンポラリファイルのデータを渡す(S540)。NCプログラムエディタ部123は、別のビューで、プログラム分離部131が抽出した全てのNCプログラムの一覧を表示し(S550)し、つまり、クリップボードのデータ、または、テンポラリファイルのデータを一覧表示する。
図13および図14を用いて説明してきたように、ツール10において、表示制御部120は、前記ユーザプログラム中の前記NCプログラムを一覧表示してもよい。
前記の構成によれば、ツール10は、前記ユーザプログラム中の前記NCプログラムを一覧表示する。具体的には、ツール10は、表示装置40に、前記ユーザプログラム中の前記NCプログラムを一覧表示させる。
したがって、ツール10は、例えば、1つの前記ユーザプログラム中に複数の前記NCプログラムが散在している場合であっても、前記ユーザプログラム中に散在する複数の前記NCプログラムを一覧表示し可読性を向上させることができるという効果を奏する。
(NCプログラム拡大表示機能)
図15は、ツール10の備える「NCプログラム拡大表示機能」の概要を説明するための図である。編集画面において、ユーザプログラム(シーケンスプログラム)中にNCプログラムをプログラミングするための「NCプログラム編集領域」は大きく表示することができないため、ユーザの可読性は必ずしも好くない。そこで、ツール10は、NCボックス等の「NCプログラム編集領域」でプログラミング中のNCプログラムについて「NCプログラム拡大表示(NCボックス単独表示)」を選択するユーザ操作を受け付けると、そのNCプログラムを別のエディタで拡大表示する。ツール10は、「NCプログラム編集領域」でプログラミング中のNCプログラムについて、別エディタで編集可能に表示することにより、可読性が低下するのを防ぐ。
図15は、ツール10の備える「NCプログラム拡大表示機能」の概要を説明するための図である。編集画面において、ユーザプログラム(シーケンスプログラム)中にNCプログラムをプログラミングするための「NCプログラム編集領域」は大きく表示することができないため、ユーザの可読性は必ずしも好くない。そこで、ツール10は、NCボックス等の「NCプログラム編集領域」でプログラミング中のNCプログラムについて「NCプログラム拡大表示(NCボックス単独表示)」を選択するユーザ操作を受け付けると、そのNCプログラムを別のエディタで拡大表示する。ツール10は、「NCプログラム編集領域」でプログラミング中のNCプログラムについて、別エディタで編集可能に表示することにより、可読性が低下するのを防ぐ。
図16は、「NCプログラム拡大表示機能」を実行するツール10の処理の一例を示すフロー図である。図16に例示するように、操作受付部110は、例えば、LD編集画面において、任意のNCボックスを選択して「NCボックス単独表示(NCプログラム拡大表示)」を指示するユーザ操作を受け付ける(S610)。言い換えれば、操作受付部110は、別ビューで編集可能に拡大表示すべきNCプログラムを選択するユーザ操作を受け付ける。
表示制御部120(特に、プログラム分離部131)は、選択されたNCボックス等の「NCプログラム編集領域」内のNCプログラムのデータを、クリップボードにコピーし、または、テンポラリファイルを作成する(S620)。プログラム分離部131は、NCプログラムエディタ部123に、作成した「クリップボードのデータ、または、テンポラリファイルのデータ」を渡す(S630)。NCプログラムエディタ部123は、プログラム分離部131から取得したNCプログラムを、別ビューで、編集可能に拡大表示する(S640)。
図15および図16を用いて説明してきたように、ツール10において、表示制御部120は、前記ユーザプログラム中の前記NCプログラムを、前記ユーザプログラムを編集可能に表示した画面とは異なる画面に、編集可能に拡大表示してもよい。
前記の構成によれば、ツール10は、前記ユーザプログラム中の前記NCプログラムを、前記ユーザプログラムを編集可能に表示した画面とは異なる画面に、編集可能に拡大表示する。つまり、ツール10は、前記ユーザプログラム中でプログラミング中の前記NCプログラムを別のエディタビューで拡大表示することができる。具体的には、ツール10は、表示装置40に、前記ユーザプログラム中でプログラミング中の前記NCプログラムを別のエディタビューで拡大表示させる。
したがって、ツール10は、前記NCプログラムの可読性が低下するのを防ぎ、前記NCプログラムをユーザが効率的にプログラミングすることのできる環境を提供することができるという効果を奏する。
(IEC-NCプログラムテーブル表示機能)
図17は、ツール10の備える「IEC-NCプログラムテーブル表示機能」の概要を説明するための図である。「IEC-NCプログラムテーブル表示機能」は、NCプログラムと、そのNCプログラムを呼び出す「FB(NC呼出)」と、そのNCプログラムを含むユーザプログラム(シーケンスプログラム)と、を対応付けて表示する機能である。
図17は、ツール10の備える「IEC-NCプログラムテーブル表示機能」の概要を説明するための図である。「IEC-NCプログラムテーブル表示機能」は、NCプログラムと、そのNCプログラムを呼び出す「FB(NC呼出)」と、そのNCプログラムを含むユーザプログラム(シーケンスプログラム)と、を対応付けて表示する機能である。
「IEC-NCプログラムテーブル表示機能」は、例えば、任意のNCプログラムについて、そのNCプログラムのID(プログラム番号)、プログラム名、内容に加えて、そのNCプログラムを呼び出す「FB(NC呼出)」のID等を表示する機能である。「IEC-NCプログラムテーブル表示機能」は、NCプログラムと、そのNCプログラムを呼び出す「FB(NC呼出)」と、を対応付けた情報を一覧表示する。
ユーザは、IEC-NCプログラムテーブルを確認することにより、ユーザプログラム(シーケンスプログラム)内のFB(特に、「FB(NC呼出)」)と、そのFBに対応するNCプログラムとの関係を確認することができる。したがって、ユーザは、「どのNCプログラムが、どのユーザプログラムで利用されているか」を容易に把握することが可能となる。
また、「IEC-NCプログラムテーブル表示機能」は、任意のNCプログラムについて、そのNCプログラムを含むシーケンスプログラム(ユーザプログラム)のID(プログラム番号)、プログラム名等を表示する機能である。
図17の紙面右側上段に例示したIEC-NCプログラムテーブルの1行目には、「プログラム名(NCプログラム名)=NC Program1」であるNCプログラムについて、以下の情報が表示されている。すなわち、「プログラム名=NC Program1」であるNCプログラムについて、「内容(NCプログラム内容)」が「G01 X00 Y100、M30」であることが示されている。また、「プログラム名=NC Program1」であるNCプログラムは、「プログラム名(IECプログラム名)=ローダ処理」であるユーザプログラム(シーケンスプログラム)中に記載されていることが示されている。
図17の紙面右側上段に例示したIEC-NCプログラムテーブルの2行目には、「プログラム名(NCプログラム名)=NC Program2」であるNCプログラムについて、以下の情報が表示されている。すなわち、「プログラム名=NC Program2」であるNCプログラムについて、「内容(NCプログラム内容)」が「G01 X10 Y20、M30」であることが示されている。また、「プログラム名=NC Program2」であるNCプログラムは、「プログラム名(IECプログラム名)=加工機械開始」であるユーザプログラム(シーケンスプログラム)中に記載されていることが示されている。
図17の紙面右側上段に例示したIEC-NCプログラムテーブルの3行目には、「プログラム名(NCプログラム名)=NC Program3」であるNCプログラムについて、以下の情報が表示されている。すなわち、「プログラム名=NC Program3」であるNCプログラムについて、「内容(NCプログラム内容)」が「G02 X0 Y-10、M30」であることが示されている。また、「プログラム名=NC Program3」であるNCプログラムは、「プログラム名(IECプログラム名)=加工機械開始」であるユーザプログラム(シーケンスプログラム)中に記載されていることが示されている。
したがって、図17の紙面右側上段に例示したIEC-NCプログラムテーブルを確認したユーザは、任意のNCプログラムについて、「どのユーザプログラムで利用されているか」を容易に把握することができる。また、ユーザは、図17の紙面右側上段に例示したIEC-NCプログラムテーブルの2行目および3行目を確認して、「プログラム名=加工機械開始」であるユーザプログラム中に含まれている全てのNCプログラムを把握することができる。
なお、図17の紙面左側下段に例示するように、1つのNCプログラム(NC部品)を複数の異なるユーザプログラム(シーケンスプログラム)で利用することもできる。言い換えれば、同じ1つのNCプログラム(NC部品)を呼び出す「FB(NC呼出)」を、つまり、IDが同じ「FB(NC呼出)」を、複数の異なるユーザプログラム(シーケンスプログラム)で利用することもできる。
1つのユーザプログラム(シーケンスプログラム)中に複数のNCプログラムが散在すると一覧可読性が下がるが、ユーザは、IEC-NCプログラムテーブルを利用して、そのユーザプログラム中の全てのNCプログラムの一覧を確認することができる。ツール10は、NCプログラムとそのNCプログラムを利用するユーザプログラム(シーケンスプログラム)との関係を一覧表示し、例えば、1つ以上のNCプログラムの各々について、そのNCプログラムが埋め込まれたユーザプログラムと対応付けて表示する。また、ツール10は、NCプログラムとそのNCプログラムを呼び出すFBとの関係を一覧表示し、例えば、1つ以上のNCプログラムの各々について、そのNCプログラムを呼び出すFBと対応付けて表示する。ツール10は、1つ以上のNCプログラムの各々について、「そのNCプログラムを呼び出すFB」および「そのFBの記載されているユーザプログラムのID等」と対応付けて表示してもよい。さらに、ツール10は、IEC-NCプログラムテーブルにおいて任意のNCプログラムを選択するユーザ操作を受け付けると、そのNCプログラムの編集画面を別ビューで表示する。
図18は、「IEC-NCプログラムテーブル表示機能」を実行するツール10の処理の一例を示すフロー図である。図18に例示するように、操作受付部110がメニュー等において「IEC-NCプログラムテーブル表示」を選択するユーザ操作を受け付けると(S710)、表示制御部120(特に、プログラム分離部131)は、以下の処理を実行する。すなわち、プログラム分離部131は、記憶部200に格納されているユーザプログラム201を検索して、ユーザプログラム名と、NCボックス等の「NCプログラム編集領域」内のNCプログラムのデータとを対応付けたIEC−NCプログラムテーブル205を生成する(S720)。
プログラム分離部131は、生成したIEC−NCプログラムテーブル205を、表示制御部120(例えば、NCプログラムエディタ部123)に渡す(S730)。プログラム分離部131からIEC−NCプログラムテーブル205を取得した表示制御部120は、取得したIEC−NCプログラムテーブル205を、表示装置40に表示させる(S740)。
図17および図18を用いて説明してきたように、ツール10において、表示制御部120は、(A)前記ユーザプログラム中の前記NCプログラムのプログラム名および内容の少なくとも一方と、(B)前記ユーザプログラムまたは前記シーケンスプログラムのプログラム名、および、前記NCプログラムを呼び出すFBの識別情報の少なくとも一方と、を対応付けて表示してもよい。
前記の構成によれば、ツール10は、(A)前記ユーザプログラム中の前記NCプログラムのプログラム名および内容の少なくとも一方と、(B)前記ユーザプログラムまたは前記シーケンスプログラムのプログラム名、および、前記NCプログラムを呼び出すFBの識別情報の少なくとも一方と、を対応付けて表示する。具体的には、ツール10は、表示装置40に、(A)前記ユーザプログラム中の前記NCプログラムのプログラム名および内容の少なくとも一方と、(B)前記ユーザプログラムまたは前記シーケンスプログラムのプログラム名、および、前記NCプログラムを呼び出すFBの識別情報の少なくとも一方と、を対応付けて表示させる。
したがって、ツール10は、例えば、複数の前記ユーザプログラムの各々に、複数の前記NCプログラムが散在している場合であっても、複数の前記NCプログラムの各々が存在している前記ユーザプログラムまたは前記シーケンスプログラムをユーザが容易に確認することを可能とするという効果を奏する。
〔ソフトウェアによる実現例〕
ツール10の制御ブロック(特に、操作受付部110、表示制御部120、プログラム処理部130、および、プログラム転送部140)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェアによって実現してもよい。
ツール10の制御ブロック(特に、操作受付部110、表示制御部120、プログラム処理部130、および、プログラム転送部140)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェアによって実現してもよい。
後者の場合、ツール10は、各機能を実現するソフトウェアであるプログラムの命令を実行するCPU、上記プログラムおよび各種データがコンピュータ(またはCPU)で読み取り可能に記録されたROM(Read Only Memory)または記憶装置(これらを「記録媒体」と称する)、上記プログラムを展開するRAM(Random Access Memory)などを備えている。そして、コンピュータ(またはCPU)が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
10 ツール(支援装置)
20 コントローラ(産業用制御装置)
110 操作受付部(受付部)
120 表示制御部
130 プログラム処理部
140 プログラム転送部
20 コントローラ(産業用制御装置)
110 操作受付部(受付部)
120 表示制御部
130 プログラム処理部
140 プログラム転送部
Claims (13)
- 産業用制御装置で実行されるユーザプログラムの作成を支援する支援装置であって、
同期させて実行されるべきシーケンスプログラムとNCプログラムとに係るユーザのプログラミング操作を受け付ける受付部と、
前記受付部により受け付けられた前記プログラミング操作に従って、前記ユーザプログラムとして、前記シーケンスプログラムと前記NCプログラムとを編集可能に一画面中に表示する表示制御部と、を備えることを特徴とする支援装置。 - 前記表示制御部によって表示された前記ユーザプログラムをビルドする際に、(A)前記ユーザプログラム中の前記NCプログラムを退避させ、(B)前記ユーザプログラム中の、退避した前記NCプログラムがあった位置に、退避した前記NCプログラムを呼び出すファンクションブロックであって、退避した前記NCプログラムに対応する識別子を付与したファンクションブロックを、挿入するプログラム処理部をさらに備えることを特徴とする請求項1に記載の支援装置。
- 前記表示制御部は、前記シーケンスプログラムから前記NCプログラムを区別するための情報を付した前記NCプログラムを、前記シーケンスプログラムと共に、編集可能に一画面中に表示することを特徴とする請求項1または2に記載の支援装置。
- 前記表示制御部は、ラダーダイアグラムおよびファンクションブロックダイアグラムの少なくとも一方でプログラミングされた前記シーケンスプログラム中に、前記NCプログラムを編集可能な領域を表示することを特徴とする請求項1から3のいずれか1項に記載の支援装置。
- 前記表示制御部は、ストラクチャードテキストでプログラミングされた前記シーケンスプログラム中に、前記NCプログラムの開始および終了を示すプラグマを表示し、表示した前記開始および前記終了を示すプラグマの間に前記NCプログラムを編集可能に表示することを特徴とする請求項1から4のいずれか1項に記載の支援装置。
- 前記表示制御部は、シーケンシャルファンクションチャートでプログラミングされた前記シーケンスプログラム中に、前記NCプログラムであることを示す属性を付したアクションであって、前記NCプログラムを含むアクションを、編集可能に表示することを特徴とする請求項1から5のいずれか1項に記載の支援装置。
- 前記シーケンスプログラムと前記NCプログラムとを、前記シーケンスプログラムと前記NCプログラムとを同期させて実行する1台の産業用制御装置に転送するプログラム転送部をさらに備えることを特徴とする請求項1から6のいずれか1項に記載の支援装置。
- 前記表示制御部は、前記ユーザプログラム中の前記NCプログラムを一覧表示することを特徴とする請求項1から7のいずれか1項に記載の支援装置。
- 前記表示制御部は、前記ユーザプログラム中の前記NCプログラムを、前記ユーザプログラムを編集可能に表示した画面とは異なる画面に、編集可能に拡大表示することを特徴とする請求項1から8のいずれか1項に記載の支援装置。
- 前記表示制御部は、(A)前記ユーザプログラム中の前記NCプログラムのプログラム名および内容の少なくとも一方と、(B)前記ユーザプログラムまたは前記シーケンスプログラムのプログラム名、および、前記NCプログラムを呼び出すFBの識別情報の少なくとも一方と、を対応付けて表示することを特徴とする請求項1から9のいずれか1項に記載の支援装置。
- 産業用制御装置で実行されるユーザプログラムの作成を支援する支援装置の制御方法であって、
同期させて実行されるべきシーケンスプログラムとNCプログラムとに係るユーザのプログラミング操作を受け付ける受付ステップと、
前記受付ステップにて受け付けた前記プログラミング操作に従って、前記ユーザプログラムとして、前記シーケンスプログラムと前記NCプログラムとを編集可能に一画面中に表示する表示制御ステップと、を含むことを特徴とする制御方法。 - 請求項1から10のいずれか1項に記載の支援装置としてコンピュータを機能させるための情報処理プログラムであって、前記各部としてコンピュータを機能させるための情報処理プログラム。
- 請求項12に記載の情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017095736A JP2018194898A (ja) | 2017-05-12 | 2017-05-12 | 支援装置、支援装置の制御方法、情報処理プログラム、および記録媒体 |
CN201810151325.8A CN108873815A (zh) | 2017-05-12 | 2018-02-13 | 辅助装置、辅助装置的控制方法及计算机可读取记录介质 |
US15/894,933 US20180329396A1 (en) | 2017-05-12 | 2018-02-13 | Support device, control method of support device, and non-transitory computer-readable recording medium |
EP18156820.5A EP3401746A1 (en) | 2017-05-12 | 2018-02-14 | Support device, control method of support device, and non-transitory computer-readable recording medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017095736A JP2018194898A (ja) | 2017-05-12 | 2017-05-12 | 支援装置、支援装置の制御方法、情報処理プログラム、および記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018194898A true JP2018194898A (ja) | 2018-12-06 |
Family
ID=61226423
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017095736A Pending JP2018194898A (ja) | 2017-05-12 | 2017-05-12 | 支援装置、支援装置の制御方法、情報処理プログラム、および記録媒体 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20180329396A1 (ja) |
EP (1) | EP3401746A1 (ja) |
JP (1) | JP2018194898A (ja) |
CN (1) | CN108873815A (ja) |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS57132207A (en) * | 1981-02-10 | 1982-08-16 | Toyoda Mach Works Ltd | Online monitor device of sequence controller |
DE4013960A1 (de) * | 1989-05-01 | 1990-11-08 | Honda Motor Co Ltd | Verfahren und vorrichtung zum generieren eines steuerprogramms |
KR940020218A (ko) * | 1993-02-26 | 1994-09-15 | 가또 도요 | 프로그래머블콘트롤러의 프로그래밍장치 |
JP2963299B2 (ja) * | 1993-03-31 | 1999-10-18 | 三菱電機株式会社 | プログラマブルコントローラの周辺装置、及び内部情報設定方法 |
US5485620A (en) * | 1994-02-25 | 1996-01-16 | Automation System And Products, Inc. | Integrated control system for industrial automation applications |
US5896292A (en) * | 1995-06-05 | 1999-04-20 | Canon Kabushiki Kaisha | Automated system for production facility |
JP2000099117A (ja) | 1998-09-28 | 2000-04-07 | Mitsubishi Electric Corp | 制御装置 |
US6954904B2 (en) * | 2001-08-15 | 2005-10-11 | National Instruments Corporation | Creating a graphical program to configure one or more switch devices |
US7200448B2 (en) * | 2001-11-27 | 2007-04-03 | Rockwell Automation Technologies, Inc. | System and method for function block execution order generation |
JP4438552B2 (ja) * | 2004-07-29 | 2010-03-24 | 株式会社ジェイテクト | 安全plc、シーケンスプログラム作成支援ソフトウェア及びシーケンスプログラムの判定方法 |
CN1265938C (zh) * | 2004-10-11 | 2006-07-26 | 李维谦 | 数控机床主轴变速逻辑控制方法 |
JP3910196B2 (ja) * | 2004-10-21 | 2007-04-25 | ファナック株式会社 | シーケンスプログラムの編集装置 |
US7536235B2 (en) * | 2005-12-22 | 2009-05-19 | The Boeing Company | Multihead composite material application machine post-processor method and apparatus for manufacturing composite structures |
JP2007286858A (ja) * | 2006-04-17 | 2007-11-01 | Toyota Motor Corp | 面モデルの作成装置と作成方法 |
JP2009009462A (ja) * | 2007-06-29 | 2009-01-15 | Fanuc Ltd | シーケンスプログラム編集装置 |
CN104205057B (zh) * | 2012-05-08 | 2017-05-03 | 三菱电机株式会社 | 可编程逻辑控制器、编程工具以及程序及参数编辑系统 |
WO2014091543A1 (ja) * | 2012-12-10 | 2014-06-19 | 三菱電機株式会社 | Ncプログラム検索方法、ncプログラム検索装置、ncプログラム作成方法およびncプログラム作成装置 |
WO2016051545A1 (ja) * | 2014-09-30 | 2016-04-07 | 株式会社牧野フライス製作所 | 工作機械の制御装置 |
-
2017
- 2017-05-12 JP JP2017095736A patent/JP2018194898A/ja active Pending
-
2018
- 2018-02-13 CN CN201810151325.8A patent/CN108873815A/zh active Pending
- 2018-02-13 US US15/894,933 patent/US20180329396A1/en not_active Abandoned
- 2018-02-14 EP EP18156820.5A patent/EP3401746A1/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
EP3401746A1 (en) | 2018-11-14 |
CN108873815A (zh) | 2018-11-23 |
US20180329396A1 (en) | 2018-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI470383B (zh) | 序列程式除錯支援裝置 | |
JP2024071732A (ja) | プログラマブル表示器及びこれを備えるプログラマブルロジックコントローラシステム | |
KR20090010942A (ko) | 프로그래머블 컨트롤러의 주변 장치, 치환 방법 및프로그램 | |
JPWO2007110953A1 (ja) | プログラム作成支援装置、プログラム作成支援方法とその方法をコンピュータに実行させるプログラムおよびそれを記録した記録媒体 | |
TW201642058A (zh) | 程式產生裝置、程式產生方法和程式產生程式產品 | |
JP5777837B2 (ja) | プログラム開発支援装置およびその方法 | |
CN109213061A (zh) | 程序制作装置 | |
KR102280116B1 (ko) | 엔지니어링 장치, 엔지니어링 장치의 제어 방법 및 프로그램 | |
JP2009157533A (ja) | プログラマブルコントローラシステム | |
JP7466319B2 (ja) | プログラマブル表示器及びこれを備えるプログラマブルロジックコントローラシステム | |
CN113939780B (zh) | 支持装置以及记录介质 | |
JP2018194898A (ja) | 支援装置、支援装置の制御方法、情報処理プログラム、および記録媒体 | |
KR101447846B1 (ko) | 모션 sfc 프로그램 부품 작성 장치 | |
JP2005301520A (ja) | プログラミングシステム | |
CN113614659A (zh) | 开发支持装置、开发支持装置的控制方法、信息处理程序、及记录介质 | |
EP4343468A1 (en) | Development assistance device, control method for development assistance device, information processing program, and recording medium | |
JPWO2014167622A1 (ja) | プログラム編集装置、プログラム編集方法およびプログラム編集プログラム | |
CN111033463A (zh) | 信息处理装置、信息处理方法以及信息处理程序 | |
JP2006309387A (ja) | プログラマブル・ロジック・コントローラのプログラム編集支援方法 | |
CN113518947B (zh) | 程序创建辅助装置、程序创建辅助方法及储存有程序创建辅助程序的记录介质 | |
US20240134336A1 (en) | Production system, program creation device, and information storage medium | |
JP2018151537A (ja) | 画面作成装置および画面作成プログラム | |
JP7234810B2 (ja) | サポート装置およびサポートプログラム | |
JP6355861B1 (ja) | プログラム開発支援装置、プログラム開発支援方法、プログラム開発支援プログラムおよび記録媒体 | |
KR100817364B1 (ko) | 프로그래머블 로직 컨트롤러의 주변 장치 및 그 프로그램작성 방법 |