JP7447574B2 - サポート装置、サポートプログラムおよびサポート方法 - Google Patents

サポート装置、サポートプログラムおよびサポート方法 Download PDF

Info

Publication number
JP7447574B2
JP7447574B2 JP2020043238A JP2020043238A JP7447574B2 JP 7447574 B2 JP7447574 B2 JP 7447574B2 JP 2020043238 A JP2020043238 A JP 2020043238A JP 2020043238 A JP2020043238 A JP 2020043238A JP 7447574 B2 JP7447574 B2 JP 7447574B2
Authority
JP
Japan
Prior art keywords
program
list
file
copy
edited
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
JP2020043238A
Other languages
English (en)
Other versions
JP2021144521A (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 JP2020043238A priority Critical patent/JP7447574B2/ja
Priority to CN202080097357.XA priority patent/CN115151873A/zh
Priority to US17/908,146 priority patent/US20230134007A1/en
Priority to PCT/JP2020/047035 priority patent/WO2021181796A1/ja
Priority to EP20924716.2A priority patent/EP4120034A4/en
Publication of JP2021144521A publication Critical patent/JP2021144521A/ja
Application granted granted Critical
Publication of JP7447574B2 publication Critical patent/JP7447574B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/058Safety, monitoring
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • 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/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13004Programming the plc

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Automation & Control Theory (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Programmable Controllers (AREA)

Description

本開示は、サポート装置、サポートプログラムおよびサポート方法に関する。
従来、プログラマブルコントローラのプログラムの作成および編集を支援するサポート装置が知られている。例えば、特開平4-286002号公報(特許文献1)には、プログラマブルコントローラ上で実行されるシーケンスプログラムを、プログラマブルコントローラに設定するためのプログラミング装置が開示されている。このプログラミング装置は、基本構成単位としてのプログラムと、該プログラムにおける変数名各々に対応して初期値、繰り返し規則および繰り返し数とからなる外部入力データとに基づき、基本構成単位の繰り返しからなるシーケンスプログラムを自動作成する。
特開平4-286002号公報
特許文献1に開示のプログラミング装置によれば、予め入力された繰り返し規則に従って、繰り返される基本構成単位の変数名が自動的に書き換えられる。しかしながら、繰り返される基本構成単位において変数名を任意に変更したい場合には、特許文献1の技術を適用できない。そのため、変数名の変更のための入力作業の手間がかかる。
本開示は、上記の問題に鑑みてなされたものであり、その目的は、変数名を任意に変更したい場合であっても、ユーザの入力作業の手間を低減できるサポート装置、サポートプログラムおよびサポート方法を提供することである。
本開示の一例によれば、制御対象を制御する制御装置において実行される制御プログラムの開発を支援するサポート装置は、受付部と、抽出部と、生成部と、コピー処理部とを備える。受付部は、制御プログラムの中からコピー対象となる対象プログラムの選択を受け付ける。抽出部は、対象プログラムから変数名を抽出する。生成部は、抽出された変数名のリストを生成する。コピー処理部は、対象プログラムをコピーすることにより得られるコピープログラムを制御プログラム内に設定する。コピー処理部は、リストの編集により得られる編集済リストに基づいて、コピープログラムにおける変数名を書き換える。
この開示によれば、ユーザは、リストに含まれる変数名を変更することにより、コピープログラムにおける変数名を任意にかつ容易に変更できる。これにより、コピープログラムの変数名を任意に変更したい場合であっても、ユーザの入力作業の手間を低減できる。
上述の開示において、生成部は、上記のリストを含み、指定されたファイル形式を有する設定ファイルをエクスポートする。コピー処理部は、上記のファイル形式を有するファイルを編集可能なアプリケーションを用いて設定ファイルを編集することにより生成された、上記の編集済リストを含む編集済ファイルをインポートすることにより、コピープログラムにおける変数名を書き換える。
この開示によれば、ユーザは、アプリケーションが有する各種機能を用いて、設定ファイルに含まれるリスト内の変数名を容易に変更できる。
上述の開示において、生成部は、対象プログラムに対応する第1誤り検出符号を設定ファイルに含ませる。コピー処理部は、第1誤り検出符号と編集済ファイルに含まれる第2誤り検出符号とが一致することに応じて、編集済ファイルのインポートを許可し、第1誤り検出符号と第2誤り検出符号とが異なることに応じて、編集済ファイルのインポートを許可しない。
この開示によれば、設定ファイルを編集することにより得られた編集済ファイルとは異なるファイルが誤って指定された場合に、当該ファイルを用いた処理が継続されることを防止できる。
上述の開示において、生成部は、上記のリストをユーザインターフェイスに表示する。サポート装置は、さらに、ユーザインターフェイスへの入力に応じて、上記のリストを編集して編集済リストを生成する編集部を備える。
この開示によれば、ユーザは、アプリケーションを用いることなく、リストを編集することができる。
上述の開示において、抽出部は、対象プログラムから、変数ごとのコメントをさらに抽出する。生成部は、抽出されたコメントを上記のリストに含ませる。コピー処理部は、編集済リストに基づいて、コピープログラムにおける変数ごとのコメントを書き換える。
この開示によれば、ユーザは、上記のリストに含まれるコメントを変更することにより、コピープログラムにおける変数ごとのコメントを任意にかつ容易に変更できる。
上述の開示において、抽出部は、対象プログラムから、対象プログラムを構成する単位プログラムごとのコメントをさらに抽出する。生成部は、抽出されたコメントを上記のリストに含ませる。コピー処理部は、編集済リストに基づいて、コピープログラムにおける単位プログラムごとのコメントを書き換える。
この開示によれば、ユーザは、上記のリストに含まれるコメントを変更することにより、コピープログラムを構成する単位プログラムごとのコメントを任意にかつ容易に変更できる。
上述の開示において、ファイル形式はCSV形式である。この開示によれば、ユーザは、例えばMicrosoft Excel(登録商標)のような汎用アプリケーションを用いて、設定ファイルを容易に編集できる。
本開示の一例によれば、サポートプログラムは、制御対象を制御する制御装置との間で通信可能なコンピュータで実行され、制御装置において実行される制御プログラムの開発を支援する。サポートプログラムは、コンピュータに、第1~第4のステップを実行させる。第1のステップは、制御プログラムの中からコピー対象となる対象プログラムの選択を受け付けるステップである。第2のステップは、対象プログラムから変数名を抽出するステップである。第3のステップは、抽出された変数名のリストを生成するステップである。第4のステップは、対象プログラムをコピーすることにより得られるコピープログラムを制御プログラム内に設定するステップである。第4のステップは、上記のリストの編集により得られる編集済リストに基づいて、コピープログラムにおける変数名を書き換えるステップを含む。
本開示の一例によれば、制御対象を制御する制御装置において実行される制御プログラムの開発を支援するサポート装置におけるサポート方法は、上記の第1~第4のステップを備える。
本開示によれば、変数名を任意に変更したい場合であっても、ユーザの入力作業の手間を低減できる。
本実施の形態に係るサポート装置200の適用場面を模式的に示す図である。 制御システム1の構成例を示す模式図である。 PLC100のハードウェア構成例を示す模式図である。 サポート装置200のハードウェア構成例を示す模式図である。 作成中の制御プログラム400を含む表示画面30の一例を示す図である。 コピー処理の条件を設定するための設定画面40の一例を示す図である。 設定ファイル300のファイル形式およびファイルパスの指定を促すダイアログボックス55の一例を示す図である。 対象プログラム420の一例を示す図である。 図8に示す対象プログラム420に対応する設定ファイル300の一例を示す図である。 図9に示す設定ファイル300を編集することにより得られる編集済ファイル302の一例を示す図である。 編集済ファイル302のファイルパスの指定を促すダイアログボックス60の一例を示す図である。 10に示す編集済ファイル302に応じて書き換えられたコピープログラム422を示す図である。 設定ファイル300をエクスポートするときのサポート装置200の処理の流れの一例を示すフローチャートである。 編集済ファイル302をインポートするときのサポート装置200の処理の流れの一例を示すフローチャートである。 変形例における設定画面40Aの一例を示す図である。
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。以下で説明される各実施の形態および各変形例は、適宜選択的に組み合わせてもよい。
§1 適用例
図1を参照して、本発明が適用される場面の一例について説明する。図1は、本実施の形態に係るサポート装置200の適用場面を模式的に示す図である。
サポート装置200は、制御プログラム400の開発支援環境を提供する装置である。サポート装置200は、制御プログラム400の開発を支援するための機能として、制御プログラム400の作成および編集するためのエディタ機能を有している。なお、エディット機能は、オンラインエディット機能とオフラインエディット機能とを含み得る。
制御プログラム400の複数箇所において、同一のプログラムが設定され得る。このような場合に、当該複数箇所の各々において同一のプログラムを作成すると、制御プログラム400の作成に要するユーザ(設定者)の手間が大きくなる。そのため、本実施の形態に係るサポート装置200は、制御プログラム400の中のコピー対象となる対象プログラム420をコピーすることにより得られるコピープログラム422を制御プログラム400内に設定する機能を有する。これにより、制御プログラム400の作成に要するユーザの手間が低減される。
図1に例示されるサポート装置200は、制御プログラム400の開発支援環境を提供する構成として、保持部20と、受付部21と、抽出部22と、生成部23と、コピー処理部24とを備える。
サポート装置200は、編集部28をさらに有する。編集部28は、制御プログラム400の開発支援環境を提供する構成としてサポート装置200に実装されてもよいし、開発支援環境を提供する構成とは別の構成としてサポート装置200に実装されてもよい。
保持部20は、ユーザによって作成または編集された制御プログラム400を保持する。保持部20は、典型的には、サポート装置200において実行される各種プログラムを不揮発的に格納するハードディスクによって実現される機能である。制御プログラム400は、制御対象を制御するための制御装置の一例であるPLC(Programmable Logic Controller)100において実行される。
受付部21は、ユーザ操作を受け付ける。例えば、受付部21は、マウスやキーボードからの入力信号を受け付ける、入力インターフェイスである。受付部21は、作成中の制御プログラム400の中からコピー対象となる対象プログラム420の選択を受け付ける。
抽出部22は、コピー対象として選択された対象プログラム420から変数名を抽出する。すなわち、抽出部22は、対象プログラム420に用いられている1つ以上の変数の各々について、変数名を抽出する。生成部23は、抽出された変数名のリスト25を生成する。
編集部28は、ユーザの指示に応じて、リスト25を編集し、編集済リスト26を生成する。具体的には、ユーザは、リスト25に含まれる変数名を所望の名称に変更する。
コピー処理部24は、対象プログラム420をコピーすることにより得られるコピープログラム422を制御プログラム400内に設定する。
コピー処理部24は、編集済リスト26に基づいて、コピープログラム422における変数名を書き換える。すなわち、コピー処理部24は、編集済リスト26に含まれる変数名を、コピープログラム422に反映させる。
コピー処理部24は、ユーザによって指定されたコピー回数だけコピープログラム422を制御プログラム400内に設定してもよい。この場合、リスト25および編集済リスト26は、コピープログラム422ごとに生成される。
以上のように、サポート装置200は、リスト25の編集により得られる編集済リスト26に含まれる変数名を、コピープログラム422に反映させる。そのため、ユーザは、リスト25に含まれる変数名を変更することにより、コピープログラム422内の変数名を任意にかつ容易に変更できる。すなわち、本実施の形態に係るサポート装置200によれば、変数名を任意に変更したい場合であっても、ユーザの入力作業の手間を低減できる。
§2.具体例
<A.システム構成>
図2を参照して、本実施の形態に従うサポート装置200を含む制御システム1について説明する。図2は、制御システム1の構成例を示す模式図である。
図2に例示される制御システム1は、複数のPLC100-1,PLC100-2,PLC100-3,PLC100-4,…(以下、「PLC100」とも総称する。)と、サポート装置200とを含む。
PLC100の各々は、リレー,センサー等のフィールド機器である制御対象を制御する制御装置の一例である。なお、制御システム1は、1台のPLC100を含む構成であってもよい。制御システム1は、以下では、説明を簡単にするため、1台のPLC100を対象とした開発支援環境を説明する。
PLC100は、典型的には、制御プログラム400(図1参照)を含む各種プログラムを実行する主体であるCPU(Central Processing Unit)ユニット10と、CPUユニット10などへ電力を供給する電源ユニット12と、フィールドからの信号を遣り取りするI/O(Input/Output)ユニット14とを含む。I/Oユニット14は、CPUユニット10とシステムバス11を介して接続されている。
サポート装置200は、PLC100に接続可能であり、PLC100で実行される制御プログラム400の開発支援環境を提供する。このような開発支援環境は、サポート装置200にサポートプログラムがインストールされることで提供される。
ユーザ(設計者)は、サポートプログラムを利用して、PLC100用の制御プログラム400を設計し、設計した制御プログラム400をPLC100にインストールすることができる。
サポートプログラムは、例えば、記録媒体250に格納されて流通し、サポート装置200にインストールされる。記録媒体250に代えて、外部のサーバ装置などからネットワークを介して、サポートプログラムをインストールするようにしてもよい。サポート装置200は、一例として、接続ケーブルを介してPLC100のCPUユニット10と接続される。サポート装置200は、典型的には、パーソナルコンピュータで実現される。
サポート装置200が提供する開発支援環境は、プログラムのエディタ(編集)、デバッカ、シミュレータおよびこれらの出力情報をディスプレイ等のモニタに出力するためのモニタ機能等を有し得る。サポート装置200は、さらに、運転中のPLC100の状態値を取得し、ディスプレイ等のモニタに出力する機能などを備えていてもよい。
開発対象の制御プログラム400は、例えば国際規格IEC61131-3に従う。国際規格IEC61131-3は、プログラミング言語として、ラダーダイアグラム(LD:Ladder Diagram)、ファンクションブロックダイアグラム(FBD:Function Block Diagram)、シーケンシャルファンクションチャート(SFC:Sequential Function Chart)、インストラクションリスト(IL:Instruction List)、ストラクチャードテキスト(ST:Structured Text)の5種類を規定する。本実施の形態に係る制御プログラムは、国際規格IEC61131-3に従ういずれのプログラミング言語で記述されていてもよい。特に、ラダーダイアグラム、ファンクションブロックダイアグラ、シーケンシャルファンクションチャートは、図形の記述や配置が必要となるプログラム言語であり、プログラムの記述や変数名の設定に手間がかかる。上述したように、本実施の形態に係るサポート装置200によれば、変数名の変更が容易である。そのため、本実施の形態に係るサポート装置200は、ラダーダイアグラム、ファンクションブロックダイアグラ、シーケンシャルファンクションチャートのいずれかのプログラム言語で記述された制御プログラム400の開発に有効である。
サポート装置200は、制御プログラム400の内容を表示可能である。具体的には、サポート装置200は、制御プログラム400のソースコードを表示可能である。サポート装置200は、例えば、制御プログラム400の編集、更新作業中に制御プログラム400の内容を表示する。
<B.PLC100のハードウェア構成>
図3は、PLC100のハードウェア構成例を示す模式図である。図3を参照して、PLC100は、予めインストールされたプログラムをプロセッサが実行することで、制御対象に対する制御を実現する。より具体的には、PLC100は、CPUやMPU(Micro-Processing Unit)などのプロセッサ102と、チップセット104と、メインメモリ106と、フラッシュメモリ108と、USB(Universal Serial Bus)インターフェイス116と、メモリカードインターフェイス118と、内部バスコントローラ122と、フィールドバスコントローラ124とを含む。フラッシュメモリ108は、システムプログラム110および制御プログラム400を格納する。
プロセッサ102は、フラッシュメモリ108に格納されたシステムプログラム110および制御プログラム400を読み出して、メインメモリ106に展開して実行することで、制御対象に対する制御を実現する。
システムプログラム110は、データの入出力処理や実行タイミング制御などの、PLC100の基本的な機能を提供するための命令コードを含む。制御プログラム400は、ユーザにおける制御目的(例えば、対象のラインやプロセス)に応じて作成される。
制御プログラム400は、例えば、シーケンス制御を実行するためのシーケンスプログラムおよびモーション制御を実行するためのモーションプログラムである。なお、制御プログラム400は、これらのプログラムに限られず、PLC100にインストール可能なプログラムであって、ユーザによって作成または編集されたプログラムであればよい。
チップセット104は、各コンポーネントを制御することで、PLC100全体としての処理を実現する。
内部バスコントローラ122は、PLC100と内部バスを通じて連結されるI/Oユニット14との間でデータを遣り取りするインターフェイスである。フィールドバスコントローラ124は、PLC100と図示しないフィールドバスを通じて連結されるI/Oユニット16との間でデータを遣り取りするインターフェイスである。内部バスコントローラ122およびフィールドバスコントローラ124は、I/Oユニット14およびI/Oユニット16にそれぞれ入力される状態値を取得するとともに、プロセッサ102での演算結果をI/Oユニット14およびI/Oユニット16から指令値としてそれぞれ出力する。
USBインターフェイス116は、USBによりデータの遣り取りを制御する。サポート装置200は、USBインターフェイス116を介してPLC100と通信する。メモリカードインターフェイス118は、メモリカード120を着脱可能に構成されており、メモリカード120に対してデータを書込み、メモリカード120からデータを読出すことが可能になっている。
ユーザによって作成または編集された制御プログラム400は、サポート装置200、メモリカード120、または、配信サーバなどからインストールされ得る。
図3には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。あるいは、PLC100の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
<C.サポート装置200のハードウェア構成>
図4は、サポート装置200のハードウェア構成例を示す模式図である。図4を参照して、サポート装置200は、典型的には、汎用のコンピュータで構成される。なお、PLC100が配置される製造現場における保守性の観点からは、可搬性に優れたノート型のパーソナルコンピュータが好ましい。
サポート装置200は、記憶部201と、OSを含む各種プログラムを実行するCPU202とを備える。記憶部201は、BIOSや各種データを格納するROM(Read Only Memory)204と、CPU202でのプログラムの実行に必要なデータを格納するための作業領域を提供するRAM(Random Access Memory)206と、CPU202で実行されるプログラムなどを不揮発的に格納するハードディスク(HDD)208とを含む。これらのコンポーネントは、バス220を介して接続される。
HDD208には、制御プログラムの開発支援環境を提供するためのサポートプログラム230と、汎用アプリケーション232とが格納される。汎用アプリケーション232は、例えばMicrosoft Excel(登録商標)である。図1に示す受付部21、抽出部22、生成部23およびコピー処理部24は、CPU202がサポートプログラム230を実行することにより実現される。図1に示す編集部28は、CPU202が汎用アプリケーション232を実行することにより実現される。
サポート装置200は、さらに、サポート装置200に指示を入力するためにユーザが操作するキーボード210およびマウス211を含む操作部203、および情報をユーザに提示するためのディスプレイ214を含む。操作部203およびディスプレイ214は、ユーザインターフェイスを構成する。
サポート装置200は、記録媒体250からサポートプログラム230および汎用アプリケーション232を読み取るための光学記録媒体読取装置216を含む。なお、サポートプログラム230および汎用アプリケーション232は、メモリカード、配信サーバなどからインストールされてもよい。
USBインターフェイス218は、USBによりデータの遣り取りを制御する。サポート装置200は、USBインターフェイス218を介してPLC100と通信する。なお、サポート装置200とPLC100との間の通信は、USBに限らず、イーサネット(登録商標)などであってもよい。
図4には、CPU202等のプロセッサがプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
<D.対象プログラムのコピー処理の方法>
図5~図12を参照して、サポート装置200における、対象プログラム420のコピー処理の方法について説明する。対象プログラム420のコピー処理は、操作部203への入力およびサポートプログラム230に従ってCPU202によって実行される。
CPU202は、操作部203への入力に応じて、制御プログラム400を作成する。CPU202は、作成中の制御プログラム400をディスプレイ214に表示させる。
図5は、作成中の制御プログラム400を含む表示画面30の一例を示す図である。図5に例示される表示画面30は、ディスプレイ214に表示される。
表示画面30には、ファンクションブロックダイアグラムで記述された制御プログラム400が示されている。制御プログラム400は、行ごとの単位プログラム440によって構成されている。各行には行番号450が付与されている。ユーザは、単位プログラム440ごとにコメント(以下、「行コメント」と称する。)を入力できる。CPU202は、入力された行コメントを単位プログラム440と対応付けて、制御プログラム400内に設定する。一般に、行コメントは、対応する単位プログラム440の内容を表すように入力される。
ユーザは、各単位プログラム440において用いられる各変数について、変数名460およびコメント(以下、「変数コメント470」と称する。)を設定できる。なお、簡略化のために、図5において、一部の変数についてのみ符号「460」および「470」を付与している。同一の変数について、同一の変数名460および同一の変数コメント470が設定される。変数コメント470は、全ての変数について設定されなくてもよい。すなわち、ユーザは、所望の変数についてのみ変数コメント470を入力できる。一般に、変数コメント470は、変数の種類、内容などを表すように入力される。図5に例示される表示画面30では、変数名460_1に対応する変数について、変数コメント470が設定されていない。一方、変数名460_2,460_3に対応する変数について、変数コメント470_2,470_3がそれぞれ設定されている。
受付部21として動作するCPU202は、表示画面30において、制御プログラム400の中からコピー対象となる対象プログラム420の選択を受け付ける。対象プログラム420は、1または複数の単位プログラム440からなる。
表示画面30は、コピー対象範囲を示す枠線31を含む。ユーザは、枠線31のサイズを変更することにより、コピー対象範囲を変更できる。CPU202は、コピー指示が操作部203に入力されたことに応じて、枠線31内の1または複数の単位プログラム440からなるプログラムを対象プログラム420として選択する。図5に例示される表示画面30では、「3」および「4」を示す行番号450に対応する2つの単位プログラム440からなるプログラムが対象プログラム420として選択されている。
図6は、コピー処理の条件を設定するための設定画面40の一例を示す図である。設定画面40は、対象プログラム420のコピー回数を入力するための入力欄41を含む。ユーザは、対象プログラム420をコピーすることにより得られるコピープログラム422の必要数を入力欄41に入力すればよい。
コピー処理部24(図1参照)として動作するCPU202は、対象プログラム420をコピー回数だけコピーすることにより、コピー回数と同数のコピープログラム422を生成する。このとき、コピープログラム422における変数名、変数コメントおよび行コメントは、対象プログラム420における変数名460、変数コメント470および行コメントとそれぞれ同一である。
CPU202は、コピープログラム422における変数名を、第1~第3の方法のいずれかに従って書き換える。
第1の方法は、コピープログラム422における変数名を、対象プログラム420における変数名460に含まれる数字のうち先頭の数字をオフセット分だけ加算した名称に書き換える方法である。例えば、対象プログラム420における変数名460が「SBX_U02_IN00」である場合、コピープログラム422における変数名は、先頭の数字「02」をオフセット「1」だけ加算した「SBX_U03_IN00」に書き換えられる。
なお、入力欄41に2以上の整数が入力された場合、2つ以上のコピープログラム422が制御プログラム400に設定される。この場合、k番目のコピープログラム422における変数名は、対象プログラム420における変数名460の先頭の数字をオフセットのk倍分だけ加算した変数名に書き換えられる。
第2の方法は、コピープログラム422における変数名を、対象プログラム420における変数名460に含まれる数字のうち末尾の数字をオフセット分だけ加算した名称に書き換える方法である。例えば、対象プログラム420における変数名460が「SBX_U02_IN00」である場合、コピープログラム422における変数名は、末尾の数字「00」をオフセット「1」だけ加算した「SBX_U02_IN01」に書き換えられる。
なお、入力欄41に2以上の整数が入力された場合、2つ以上のコピープログラム422が制御プログラム400に設定される。この場合、k番目のコピープログラム422における変数名は、対象プログラム420における変数名460の末尾の数字をオフセットのk倍分だけ加算した変数名に書き換えられる。
第3の方法は、コピープログラム422における変数名を任意に書き換える方法である。第3の方法の詳細については後述する。
設定画面40は、第1~第3の方法にそれぞれ対応するラジオボタン43~45を含む。ラジオボタン43が選択された場合、CPU202は、第1の方法に従って、コピープログラム422における変数名を書き換える。ラジオボタン44が選択された場合、CPU202は、第2の方法に従って、コピープログラム422における変数名を書き換える。ラジオボタン45が選択された場合、CPU202は、第3の方法に従って、コピープログラム422における変数名を書き換える。
設定画面40は、変数リスト46を含む。変数リスト46は、対象プログラム420において用いられる各変数について、変数名とデータ型と変数コメントとが対応付けられたリストである。CPU202は、対象プログラム420を解析することにより、各変数について、変数名とデータ型と変数コメントとを抽出する。CPU202は、抽出した変数名、データ型および変数コメントを対応付けた変数リスト46を作成し、作成した変数リスト46を設定画面40に含める。変数リスト46は、さらに、各変数について、チェックボックス47と、オフセットを入力するための入力欄48とを含む。なお、入力欄48には、デフォルト値「1」が入力されている。
変数リスト46は、第1の方法または第2の方法に従ったコピー処理の条件を設定するために使用される。そのため、CPU202は、ラジオボタン43またはラジオボタン44が選択されたことに応じて、変数リスト46のチェックボックス47および入力欄48への入力を受け付ける。
CPU202は、チェックボックス47がチェックされた変数についてのみ、入力欄48に入力されたオフセットに応じてコピープログラム422の変数名を書き換える。そのため、ユーザは、オフセットに応じて変数名を設定したい変数についてのみチェックボックス47をチェックすればよい。なお、CPU202は、変数名に数字を含む変数についてのみ、チェックボックス47へのチェックを受け付ける。
第1の方法および第2の方法では、数字をオフセット分だけ変更するように変数名が書き換えられる。ユーザは、任意に変数名を変更したい場合、第3の方法に対応するラジオボタン45を選択する。以下、第3の方法について説明する。
設定画面40は、リスト25(図1参照)を含む設定ファイル300をエクスポートするためのボタン49と、編集済リスト26(図1参照)を含む編集済ファイル302をインポートするためのボタン50とを含む。ボタン49,50は、第3の方法に関連する。そのため、CPU202は、ラジオボタン45が選択されたことに応じて、ボタン49,50の操作を受け付ける。設定画面40は、さらに、設定ファイル300のファイルパスを表示するための表示欄51を含む。なお、初期状態において表示欄51には何も記述されていない。
ボタン49の操作に応じて、CPU202は、設定ファイル300のファイル形式およびファイルパスの指定を促すダイアログボックスをディスプレイ214に表示する。
図7は、設定ファイル300のファイル形式およびファイルパスの指定を促すダイアログボックス55の一例を示す図である。図7に示されるように、ダイアログボックス55は、設定ファイル300のディレクトリを指定するための入力欄56と、ファイル名を指定するための入力欄57と、ファイル形式を指定するための入力欄58とを含む。入力欄58は、予め定められた1つ以上のファイル形式の中から1つのファイル形式を選択するための欄である。本実施の形態では、汎用アプリケーション232によって編集可能なファイル形式(例えばCSV形式)が選択される。
ユーザは、所望のディレクトリおよびファイル名を入力欄56,57にそれぞれ入力する。さらに、ユーザは、入力欄58を操作して、ファイル形式を指定する。入力欄56,57,58への入力に応じたファイルパスが、図6の表示欄51に反映される。
ダイアログボックス55は、設定ファイル300のエクスポートの実行を指示するためのボタン59を含む。ボタン59の操作に応じて、抽出部22(図1参照)として動作するCPU202は、対象プログラム420から変数名460を抽出する。CPU202は、さらに、対象プログラム420から、変数ごとの変数コメント470、および対象プログラム420を構成する単位プログラム440ごとの行コメントの少なくとも一方を抽出してもよい。
次に、生成部23(図1参照)として動作するCPU202は、抽出された変数名460のリスト25を含み、指定されたファイル名およびファイル形式を有する設定ファイル300を作成する。CPU202は、作成した設定ファイル300を指定されたディレクトリに保存する。
CPU202は、対象プログラム420から抽出された変数コメント470および行コメントを設定ファイル300に含ませてもよい。
CPU202は、対象プログラム420に対応する誤り検出符号を設定ファイル300に含ませてもよい。例えば、CPU202は、対象プログラム420のCRC(Cyclic Redundancy Check)を計算し、当該CRCを設定ファイル300に書き込む。
図8は、対象プログラム420の一例を示す図である。なお、図8には、対象プログラム420のうち、先頭の単位プログラム440のみが示されている。図9は、図8に示す対象プログラム420に対応する設定ファイル300の一例を示す図である。
CPU202は、図8に例示される対象プログラム420から、変数名460_4~460_7を抽出する。さらに、CPU202は、変数コメントが設定されている場合には、当該変数コメントについても抽出する。具体的には、CPU202は、変数名460_4,460_6に対してそれぞれ設定されている変数コメント470_4,470_6を抽出する。さらに、CPU202は、対象プログラム420を構成する各単位プログラム440に対応する行コメントも抽出する。
図9には、CSV形式を有する設定ファイル300が示される。図9に示されるように、設定ファイル300の1行目には、ファイル名310、ファイルバージョン320および誤り検出符号330が記述されている。
設定ファイル300の2行目には、対象プログラム420と、指定されたコピー回数分のコピープログラム422とを識別する文字列が記述されている。図9において、 [Template]は、コピー対象となる対象プログラム420を識別する。[k](kは1~コピー回数までの整数)は、k番目のコピープログラム422を識別する。[Template]は、2行目の1列目の項目(フィールド)に記述される。[k]は、2行目の(2k+1)列目の項目に記述される。
設定ファイル300の3行目には、4行目以降のデータのタイトルが記述される。<Variable>は、変数名を示す。<Comment>は、変数コメントまたは行コメントを示す。<Variable>は、3行目の1列目および(2k+1)列目の項目に記述される。<Comment>は、3行目の2列目および(2k+2)列目の項目に記述される。
設定ファイル300の4行目以降には、抽出された変数名、変数コメント、行コメントが記述される。すなわち、設定ファイル300の4行目以降の項目は、対象プログラム420から抽出された変数名、変数コメントおよび行コメントのリスト25に対応する。図9には、1番目のコピープログラム422用に生成されたリスト25_1と、2番目のコピープログラム422用に生成されたリスト25_2の一部とが示されている。
1列目には、対象プログラム420から抽出された変数名が出現順に記述される。なお、対象プログラム420を構成する各単位プログラム440から抽出された変数名を区別するために、各単位プログラム440から抽出された変数名が記述される行の直前の行に「//NetworkComment」が記述される。図9に例示される設定ファイル300では、1列目の4行目および9行目の項目に「//NetworkComment」が記述されている。そのため、1列目の5行目から8行目の項目に、対象プログラム420の先頭の単位プログラム440から抽出された4つの変数名、すなわち図8に示す変数名460_4~460_7がそれぞれ記述されている。
2列目の項目には、対象プログラム420から抽出された行コメントおよび変数コメントが記述される。行コメントは、「//NetworkComment」が記述された項目の次の項目に記述される。例えば、図8に示す単位プログラム440に対応する行コメント「Input_E-STOP 01」は、2列目の4行目の項目に記述される。変数コメントは、対応する変数名が記述された項目の次の項目に記述される。例えば、図8に示す変数コメント470_4,470_6は、変数名460_4,460_6が記述されている項目の次の項目、すなわち、2列目の5行目,7行目の項目にそれぞれ記述されている。
1列目の4行目以降の項目に記述された文字列は、(2k+1)列目の4行目以降の項目にコピーされる。2列目の4行目以降の項目に記述された文字列は、(2k+2)列目の4行目以降の項目にコピーされる。
エクスポートされた設定ファイル300は、汎用アプリケーション232によって編集可能なファイル形式を有する。そのため、ユーザは、汎用アプリケーション232を用いて、設定ファイル300を編集できる。例えば、ユーザは、Microsoft Excel(登録商標)である汎用アプリケーション232を用いて、CSV形式を有する設定ファイル300の項目に記述された変数名、変数コメントおよび行コメントを編集する。このとき、ユーザは、汎用アプリケーション232の各種機能を利用して、変数名、変数コメントおよび行コメントを編集できる。あるいは、ユーザは、別途準備されている変数一覧ファイルに記述されている1または複数の変数名および変数コメントを用いて、設定ファイル300に記述されている1または複数の変数名および変数コメントを上書きしてもよい。このように、ユーザは、変数名、変数コメントおよび行コメントを容易に変更できる。
ユーザは、設定ファイル300を外部の情報処理装置に移動させ、当該情報処理装置にインストールされている汎用アプリケーションを用いて、設定ファイル300を編集してもよい。
このようにして、ユーザは、設定ファイル300を編集することにより、編集済リスト26(図1参照)を含む編集済ファイル302を作成する。編集済ファイル302は、設定ファイル300を上書きすることにより作成されてもよいし、設定ファイル300とは別に作成されてもよい。
図10は、図9に示す設定ファイル300を編集することにより得られる編集済ファイル302の一例を示す図である。
図10に示されるように、編集済ファイル302の1行目には、ファイル名312、ファイルバージョン322および誤り検出符号332が記述される。編集済ファイル302を作成するときに設定ファイル300のファイル名310、ファイルバージョン320および誤り検出符号330を編集しない限り、ファイル名312、ファイルバージョン322および誤り検出符号332は、ファイル名310、ファイルバージョン320および誤り検出符号330とそれぞれ一致する。
図10に示される編集済ファイル302は、図9に示す設定ファイル300と比較して、以下の点で異なる。
・3列目5~8行目の項目(フィールド)に記述された変数名、
・3列目10~12行目の項目に記述された変数名、
・4列目4行目の項目に記述された行コメント、
・4列目5行目の項目に記述された変数コメント、
・4列目9行目の項目に記述された行コメント、
・4列目10行目の項目に記述された変数コメント。
ユーザは、変数名、変数コメントおよび行コメントについて、数字を追加、変更または削除してもよいし、数字以外の文字列を追加、変更または削除してもよい。このように、ユーザは、変数名、変数コメントおよび行コメントを任意に変更できる。編集済ファイル302の(2k+1),(2k+2)列目の4行目以降の項目は、k番目のコピープログラム422に対応する変数名、変数コメントおよび行コメントの編集済リスト26に対応する。図10には、1番目のコピープログラム422用に生成された編集済リスト26_1と、2番目のコピープログラム422用に生成された編集済リスト26_2の一部とが示されている。
ユーザは、編集済ファイル302を作成すると、図6に示す設定画面40のボタン50を操作する。ボタン50の操作に応じて、コピー処理部24(図1参照)として動作するCPU202は、編集済ファイル302のファイルパスの指定を促すダイアログボックスをディスプレイ214に表示する。
図11は、編集済ファイル302のファイルパスの指定を促すダイアログボックス60の一例を示す図である。図11に示されるように、ダイアログボックス60は、編集済ファイル302のディレクトリを指定するための入力欄61と、ファイル名を指定するための入力欄62とを含む。初期状態において、入力欄61,62には、設定ファイル300のファイルパスに対応するディレクトリとファイル名とが表示される。そのため、設定ファイル300を上書きすることにより編集済ファイル302を作成した場合、ユーザによる入力欄61,62への入力の手間を省くことができる。
ダイアログボックス60は、編集済ファイル302のインポートの実行を指示するためのボタン63を含む。ボタン63の操作に応じて、CPU202は、編集済ファイル302をインポートして、コピープログラム422における変数名を書き換える。編集済ファイル302に変数コメントおよび行コメントが記述されている場合、CPU202は、さらに、コピープログラム422における変数コメントおよび行コメントを書き換える。
図12は、図10に示す編集済ファイル302に応じて書き換えられたコピープログラム422を示す図である。図12には、コピープログラム422を構成する先頭の単位プログラム440のみが示されている。
図12に示されるように、コピープログラム422における変数名460_8~460_11は、図8に示す変数名460_4~460_7からそれぞれ変更されている。さらに、コピープログラム422における変数コメント470_8は、図8に示す変数コメント470_4から変更されている。なお、図10に示す編集済ファイル302の4列目、7行目の項目の文字列は、図に示す設定ファイル300の4列目、7行目の項目の文字列と一致する。そのため、コピープログラム422における変数コメント470_10は、図8に示す変数コメント470_6と同じである。さらに、図示しないが、コピープログラム422を構成する先頭の単位プログラム440に対応する行コメントは、編集済ファイル302に従って、「Input_E-STOP 01」から「Input_E-STOP 03」に変更されている。
図6に戻って、設定画面40は、コピープログラム422の制御プログラム400への設定を実行するためのボタン52を含む。ボタン52の操作に応じて、コピー処理部24(図1参照)として動作するCPU202は、コピープログラム422を制御プログラム400に設定する(貼り付ける)。
設定画面40は、コピー処理をキャンセルするためのボタン53を含む。ボタン53の操作に応じて、CPU202は、コピー処理を中止する。
<E.サポート装置の処理の流れ>
次に、設定ファイル300をエクスポートするときのサポート装置200の処理の流れと、編集済ファイル302をインポートするときのサポート装置200の処理の流れとを説明する。これらの処理は、(i)図5に示す表示画面30において対象プログラム420が選択され、(ii)図6に示す設定画面40において、コピー回数が入力され、かつ、ラジオボタン45が選択されたときに、実行される。なお、CPU202は、設定画面40の入力欄41に入力されたコピー回数と同数のコピープログラム422を作成し、制御プログラム400に設定している。
図13は、設定ファイル300をエクスポートするときのサポート装置200の処理の流れの一例を示すフローチャートである。
まず、CPU202は、設定画面40(図6参照)のボタン49の操作に応じて、設定ファイル300のファイルパスおよびファイル形式の指定を促す画面(例えば図7に示すダイアログボックス55)をディスプレイ214に表示する(ステップS1)。
CPU202は、指定されたファイル形式に従って空の設定ファイル300を作成し、指定されたファイルパスによって示される場所に、作成した設定ファイル300を保存する(ステップS2)。以下、CSV形式の設定ファイル300が作成されたものとして説明する。
CPU202は、コピー対象となる対象プログラム420の誤り検出符号(例えばCRC)を計算する(ステップS3)。
CPU202は、ファイル名、ファイルバージョンおよびCRCをRAM206に一時的に保存する(ステップS4)。さらに、CPU202は、保存したファイル名、ファイルバージョンおよびCRCを設定ファイル300の1行目に書き込む(ステップS5)。
CPU202は、対象プログラム420から、変数名、変数コメントおよび行コメントを抽出する(ステップS6)。
CPU202は、抽出した変数名、変数コメントおよび行コメントのデータセット(リスト25を示すデータセット)をテンプレート用として設定ファイル300に書き込む(ステップS7)。テンプレート用のデータセットは、コピー対象となる対象プログラム420の変数名、変数コメントおよび行コメントに対応する。
さらに、CPU202は、当該データセットをコピー回数分だけ設定ファイル300に書き込む(ステップS8)。コピー回数分だけ書き込まれたデータセットは、コピープログラム422の変数名、変数コメントおよび行コメントに対応する。ステップS8の完了後、CPU202は、設定ファイル300のエクスポートの処理を終了する。
図14は、編集済ファイル302をインポートするときのサポート装置200の処理の流れの一例を示すフローチャートである。
まず、CPU202は、設定画面40(図6参照)のボタン50の操作に応じて、編集済ファイル302のファイルパスの指定を促す画面(例えば図11に示すダイアログボックス60)をディスプレイ214に表示する(ステップS11)。
CPU202は、指定されたファイルパスに保存されている編集済ファイル302を開く(ステップS12)。さらに、CPU202は、編集済ファイル302から、ファイル名、ファイルバージョンおよびCRCを読み込む(ステップS13)。
CPU202は、読み込んだファイル名、ファイルバージョンおよびCRCと、図13に示すステップS4においてRAM206に一時的に保存したファイル名、ファイルバージョンおよびCRC(保存データ)とが一致するか否かを判定する(ステップS14)。
ステップS14でYESの場合、CPU202は、編集済ファイル302のインポートを許可し、ステップS15以降の処理を続ける。ステップS14でNOの場合、CPU202は、編集済ファイル302のインポートを許可しない。具体的には、CPU202は、インポートの失敗をディスプレイ214に表示し、インポートの処理を終了する。これにより、図13に示すフローチャートに従ってエクスポートされた設定ファイル300の1行目に記述されたファイル名、ファイルバージョンおよびCRCと異なるファイルが誤って指定された場合に、当該ファイルを用いた処理が継続されることを防止できる。
ステップS15において、CPU202は、編集済ファイル302のファイルフォーマットを確認する。例えば、CPU202は、図10に示される編集済ファイル302の2行目の項目、すなわち、対象プログラム420およびコピー回数分のコピープログラム422を識別する文字列([Template]、[k](kは1~コピー回数までの整数))を読み込む。
CPU202は、ファイルフォーマットが正常であるか否かを判定する(ステップS16)。具体的には、CPU202は、編集済ファイル302の2行目の1列目の項目に記述される文字列が「Template」に一致し、かつ、2行目の3列以降の項目に記述される文字列[k]の最大値がコピー回数に一致することに応じて、ファイルフォーマットが正常であると判定する。
ステップS16でYESの場合、CPU202は、編集済ファイル302のインポートを許可し、コピー回数分のコピープログラム422ごとに、ステップS17~S20の書き換えループを繰り返す。
ステップS18において、CPU202は、編集済ファイル302から、k番目のコピープログラム422に対応する編集済リスト26の文字列を読み込む。具体的には、CPU202は、図10に示す編集済ファイル302の(2k+1)列目および(2k+2)列目の4行目以降の項目に記述された文字列を読み込む。
ステップS19において、CPU202は、読み込んだ文字列に従って、k番目のコピープログラム422における変数名、変数コメントおよび行コメントを書き換える。
CPU202は、k=1~コピー回数の各々について、ステップS18およびステップS19の処理を完了すると、編集済ファイル302のインポートの処理を終了する。
ステップS16でNOの場合、CPU202は、編集済ファイル302のインポートを許可しない。具体的には、CPU202は、インポートの失敗をディスプレイ214に表示し、インポートの処理を終了する。これにより、異なるファイルフォーマットを有するファイルが指定された場合であっても、当該ファイルを用いた処理が継続されることを防止できる。
<F.変形例>
上記の具体例では、リスト25(図1参照)を含み、指定されたファイル形式を有する設定ファイル300がエクスポートされる。そして、設定ファイル300を編集することにより生成された、編集済リスト26(図1参照)を含む編集済ファイル302がインポートされる。これにより、ユーザは、サポートプログラム230とは別の汎用アプリケーション232を用いて設定ファイル300を編集し、編集済ファイル302を作成できる。しかしながら、サポートプログラム230は、リスト25を編集して編集済リスト26を生成する機能を提供してもよい。これにより、汎用アプリケーション232が不要となる。
本変形例では、編集部28は、CPU202がサポートプログラム230を実行することにより、実現される。
生成部23として動作するCPU202は、対象プログラム420から抽出された変数名460のリスト25を生成し、生成したリスト25をディスプレイ214に表示する。編集部28として動作するCPU202は、操作部203への入力に応じて、リスト25を編集して編集済リスト26を生成する。コピー処理部24として動作するCPU202は、生成された編集済リスト26に基づいて、コピープログラム422の変数名を書き換える。なお、CPU202は、対象プログラム420から変数コメント470および行コメントを抽出し、抽出した変数コメント470および行コメントをリスト25に含めてもよい。この場合、CPU202は、編集済リスト26に基づいて、コピープログラム422の変数コメントおよび行コメントを書き換える。
図15は、変形例における設定画面40Aの一例を示す図である。図15に示されるように、設定画面40Aは、コピープログラム422における変数名を任意に設定するためのボタン64を含む。CPU202は、ラジオボタン45が選択されたことに応じて、ボタン64の操作を受け付ける。
ボタン64の操作に応じて、抽出部22として動作するCPU202は、対象プログラム420から変数名460を抽出する。CPU202は、さらに、対象プログラム420から、変数ごとの変数コメント470、および対象プログラム420を構成する単位プログラム440ごとの行コメントの少なくとも一方を抽出してもよい。そして、CPU202は、抽出された変数名460、変数コメント470および行コメントのリスト25を生成し、生成したリスト25を含むウィンドウ65をディスプレイ214に表示する。CPU202は、指定されたコピー回数分だけリスト25を生成して表示する。
操作部203は、ウィンドウ65内のリスト25に対する編集指示の入力を受け付ける。編集部28として動作するCPU202は、操作部203への入力に応じて、リスト25を編集して編集済リスト26(図1参照)を作成する。CPU202は、ウィンドウ65のボタン67の操作に応じて、編集済リスト26を示す内部データを生成し、生成した内部データをRAM206に記録する。
コピー処理部24として動作するCPU202は、設定画面40Aのボタン52の操作に応じて、RAM206上の内部データに基づいて、コピープログラム422における変数名、変数コメントおよび行コメントを書き換える。その後、CPU202は、コピープログラム422を制御プログラム400に設定する(貼り付ける)。
本変形例では、設定ファイル300と編集済ファイル302との対応関係を確認する必要がないため、誤り検出符号の算出などの処理が省略される。具体的には、図13に示すステップS1~S5が省略される。また、ステップS7,S8の代わりに、抽出された変数名460、変数コメント470および行コメントのリスト25を生成し、生成したリスト25をディスプレイ214に表示するステップが行なわれる。
本変形例では、図14に示すステップS11~S16が省略される。また、ステップS18の代わりに、RAM206に記録された内部データによって示される編集済リスト26(図1参照)から変数名、変数コメントおよび行コメントに対応する文字列を読み込むステップが行なわれる。
<G.作用・効果>
以上のように、サポート装置200は、制御対象を制御するPLC100において実行される制御プログラム400の開発を支援する。サポート装置200は、受付部21と、抽出部22と、生成部23と、コピー処理部24とを備える。受付部21は、制御プログラム400の中からコピー対象となる対象プログラム420の選択を受け付ける。抽出部22は、対象プログラム420から変数名を抽出する。生成部23は、抽出された変数名のリスト25(図1参照)を生成する。コピー処理部24は、対象プログラム420をコピーすることにより得られるコピープログラム422を制御プログラム400内に設定する。コピー処理部24は、リスト25の編集により得られる編集済リスト26に基づいて、コピープログラム422における変数名を書き換える。
上記の構成によれば、ユーザは、アプリケーションが有する各種機能を用いて、リスト25に含まれる変数名を変更することにより、コピープログラム422における変数名を任意にかつ容易に変更できる。これにより、変数名を任意に変更したい場合であっても、ユーザの入力作業の手間を低減できる。
生成部23は、リスト25を含み、指定されたファイル形式を有する設定ファイル300をエクスポートする。コピー処理部24は、汎用アプリケーション232を用いて設定ファイル300を編集することにより生成された、編集済リスト26を含む編集済ファイル302をインポートすることにより、コピープログラム422における変数名を書き換える。汎用アプリケーション232は、指定されたファイル形式を有するファイルを編集可能なアプリケーションである。これにより、ユーザは、汎用アプリケーション232が有する各種機能を用いて、設定ファイル300に含まれるリスト25内の変数名を容易に変更できる。
生成部23は、対象プログラム420に対応する誤り検出符号(例えばCRC)を設定ファイル300に含ませる。コピー処理部24は、設定ファイル300に含まれる誤り検出符号(第1誤り検出符号)と編集済ファイル302に含まれる誤り検出符号(第2誤り検出符号)とが一致することに応じて、編集済ファイル302のインポートを許可する。コピー処理部24は、第1誤り検出符号と第2誤り検出符号とが異なることに応じて、編集済ファイル302のインポートを許可しない。
上記の構成によれば、設定ファイル300を編集することにより得られた編集済ファイル302とは異なるファイルが誤って指定された場合に、当該ファイルを用いた処理が継続されることを防止できる。
生成部23は、リスト25をユーザインターフェイスとして構成されるディスプレイ214に表示してもよい。サポート装置200は、さらに、ユーザインターフェイスとして構成される操作部203への入力に応じて、リスト25を編集して編集済リスト26を生成する編集部28を備える。これにより、ユーザは、汎用アプリケーション232を用いなくても、リスト25を編集できる。
抽出部22は、対象プログラム420から、変数ごとの変数コメントをさらに抽出してもよい。生成部23は、抽出された変数コメントをリスト25に含ませる。コピー処理部24は、編集済リスト26に基づいて、コピープログラム422における変数コメントを書き換える。これにより、ユーザは、リスト25に含まれる変数コメントを変更することにより、コピープログラム422における変数コメントを任意にかつ容易に変更できる。
抽出部22は、対象プログラム420から、対象プログラム420を構成する単位プログラム440ごとの行コメントをさらに抽出してもよい。生成部23は、抽出された行コメントをリスト25に含ませる。コピー処理部24は、編集済リスト26に基づいて、コピープログラム422における単位プログラム440ごとの行コメントを書き換える。これにより、ユーザは、リスト25に含まれる行コメントを変更することにより、コピープログラム422における行コメントを任意にかつ容易に変更できる。
ファイル形式は例えばCSV形式である。これにより、ユーザは、例えばMicrosoft Excel(登録商標)のような汎用アプリケーション232を用いて、設定ファイル300を容易に編集できる。
<H.付記>
以上のように、本実施の形態は以下のような開示を含む。
(構成1)
制御対象を制御する制御装置(100)において実行される制御プログラム(400)の開発を支援するサポート装置(200)であって、
前記制御プログラム(400)の中からコピー対象となる対象プログラム(420)の選択を受け付ける受付部(21,202)と、
前記対象プログラム(420)から変数名を抽出する抽出部(22,202)と、
抽出された前記変数名のリスト(25)を生成する生成部(23,202)と、
前記対象プログラム(420)をコピーすることにより得られるコピープログラム(422)を前記制御プログラム(400)内に設定するコピー処理部(24,202)とを備え、
前記コピー処理部(24,202)は、前記リスト(25)の編集により得られる編集済リスト(26)に基づいて、前記コピープログラム(422)における変数名を書き換える、サポート装置(200)。
(構成2)
前記生成部(23,202)は、前記リスト(25)を含み、指定されたファイル形式を有する設定ファイル(300)をエクスポートし、
前記コピー処理部(24,202)は、前記ファイル形式を有するファイルを編集可能なアプリケーション(232)を用いて前記設定ファイル(300)を編集することにより生成された、前記編集済リスト(26)を含む編集済ファイル(302)をインポートすることにより、前記コピープログラム(422)における変数名を書き換える、構成1に記載のサポート装置(200)。
(構成3)
前記生成部(23,202)は、前記対象プログラム(420)に対応する第1誤り検出符号を前記設定ファイル(300)に含ませ、
前記コピー処理部(24,202)は、前記第1誤り検出符号と前記編集済ファイル(302)に含まれる第2誤り検出符号とが一致することに応じて、前記編集済ファイルのインポートを許可し、前記第1誤り検出符号と前記第2誤り検出符号とが異なることに応じて、前記編集済ファイル(302)のインポートを許可しない、構成2に記載のサポート装置(200)。
(構成4)
前記生成部(23,202)は、前記リスト(25)をユーザインターフェイス(214)に表示し、
前記サポート装置(200)は、さらに、
前記ユーザインターフェイス(203)への入力に応じて、前記リスト(25)を編集して前記編集済リスト(26)を生成する編集部(28)を備える、構成1に記載のサポート装置(200)。
(構成5)
前記抽出部(22,202)は、前記対象プログラム(420)から、変数ごとのコメントをさらに抽出し、
前記生成部(23,202)は、抽出された前記コメントを前記リスト(25)に含ませ、
前記コピー処理部(24,202)は、前記編集済リスト(26)に基づいて、前記コピープログラム(422)における前記変数ごとのコメントを書き換える、構成1から4のいずれかに記載のサポート装置(200)。
(構成6)
前記抽出部(22,202)は、前記対象プログラム(420)から、前記対象プログラム(420)を構成する単位プログラム(440)ごとのコメントをさらに抽出し、
前記生成部(23,202)は、抽出された前記コメントを前記リスト(25)に含ませ、
前記コピー処理部(24,202)は、前記編集済リスト(26)に基づいて、前記コピープログラム(422)における前記単位プログラム(440)ごとのコメントを書き換える、構成1から4のいずれかに記載のサポート装置(200)。
(構成7)
前記ファイル形式はCSV形式である、構成2または3に記載のサポート装置(200)。
(構成8)
制御対象を制御する制御装置(100)との間で通信可能なコンピュータで実行され、前記制御装置(100)において実行される制御プログラム(400)の開発を支援するサポートプログラム(230)であって、
前記サポートプログラム(230)は、前記コンピュータ(200)に、
前記制御プログラム(400)の中からコピー対象となる対象プログラム(420)の選択を受け付けるステップと、
前記対象プログラム(420)から変数名を抽出するステップと、
抽出された前記変数名のリスト(25)を生成するステップと、
前記対象プログラム(420)をコピーすることにより得られるコピープログラム(422)を前記制御プログラム(400)内に設定するステップとを実行させ、
前記設定するステップは、前記リスト(25)の編集により得られる編集済リスト(26)に基づいて、前記コピープログラム(422)における変数名を書き換えるステップを含む、サポートプログラム。
(構成9)
制御対象を制御する制御装置において実行される制御プログラム(400)の開発を支援するサポート装置(200)におけるサポート方法であって、
前記制御プログラム(400)の中からコピー対象となる対象プログラム(420)の選択を受け付けるステップと、
前記対象プログラム(420)から変数名を抽出するステップと、
抽出された前記変数名のリスト(25)を生成するステップと、
前記対象プログラム(420)をコピーすることにより得られるコピープログラム(422)を前記制御プログラム(400)内に設定するステップとを備え、
前記設定するステップは、前記リスト(25)の編集により得られる編集済リスト(26)に基づいて、前記コピープログラム(422)における変数名を書き換えるステップを含む、サポート方法。
本発明の実施の形態について説明したが、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 制御システム、10 CPUユニット、11 システムバス、12 電源ユニット、14,16 I/Oユニット、20 保持部、21 受付部、22 抽出部、23 生成部、24 コピー処理部、25 リスト、26 編集済リスト、28 編集部、30 表示画面、31 枠線、40 設定画面、41,48,56,57,58,61,62 入力欄、43~45 ラジオボタン、46 変数リスト、47 チェックボックス、49,50,52,53,59,63,64,67 ボタン、51 表示欄、55,60 ダイアログボックス、65 ウィンドウ、100 PLC、102 プロセッサ、104 チップセット、106 メインメモリ、108 フラッシュメモリ、110 システムプログラム、116,218 USBインターフェイス、118 メモリカードインターフェイス、120 メモリカード、122 内部バスコントローラ、124 フィールドバスコントローラ、200 サポート装置、201 記憶部、202 CPU、203 操作部、206 RAM、210 キーボード、211 マウス、214 ディスプレイ、216 光学記録媒体読取装置、220 バス、230 サポートプログラム、232 汎用アプリケーション、250 記録媒体、300 設定ファイル、302 編集済ファイル、310,312 ファイル名、320,322 ファイルバージョン、330,332 誤り検出符号、400 制御プログラム、420 対象プログラム、422 コピープログラム、440 単位プログラム、450 行番号、460 変数名、470 変数コメント。

Claims (7)

  1. 制御対象を制御する制御装置において実行される制御プログラムの開発を支援するサポートプログラムを実行するサポート装置であって、
    前記制御プログラムの中からコピー対象となる対象プログラムの選択を受け付ける受付部と、
    前記対象プログラムから変数名を抽出する抽出部と、
    抽出された前記変数名のリストを生成する生成部と、
    前記対象プログラムをコピーすることにより得られるコピープログラムを前記制御プログラム内に設定するコピー処理部とを備え、
    前記コピー処理部は、前記リストの編集により得られる編集済リストに基づいて、前記コピープログラムにおける変数名を書き換え、
    前記生成部は、前記リストを含み、指定されたファイル形式を有する設定ファイルをエクスポートし、
    前記コピー処理部は、前記ファイル形式を有するファイルを編集可能なアプリケーションを用いて前記設定ファイルを編集することにより生成された、前記編集済リストを含む編集済ファイルをインポートすることにより、前記コピープログラムにおける変数名を書き換え、
    前記受付部、前記抽出部、前記生成部および前記コピー処理部は、前記サポート装置のプロセッサが前記サポートプログラムを実行することにより実現され、
    前記ファイル形式はCSV形式であり、
    前記アプリケーションは、前記サポートプログラムとは異なる、サポート装置。
  2. 前記生成部は、前記対象プログラムに対応する第1誤り検出符号を前記設定ファイルに含ませ、
    前記コピー処理部は、前記第1誤り検出符号と前記編集済ファイルに含まれる第2誤り検出符号とが一致することに応じて、前記編集済ファイルのインポートを許可し、前記第1誤り検出符号と前記第2誤り検出符号とが異なることに応じて、前記編集済ファイルのインポートを許可しない、請求項に記載のサポート装置。
  3. 前記生成部は、前記リストをユーザインターフェイスに表示し、
    前記サポート装置は、さらに、
    前記ユーザインターフェイスへの入力に応じて、前記リストを編集して前記編集済リストを生成する編集部を備え、
    前記編集部は、前記プロセッサが前記アプリケーションを実行することにより実現される、請求項1に記載のサポート装置。
  4. 前記抽出部は、前記対象プログラムから、変数ごとのコメントをさらに抽出し、
    前記生成部は、抽出された前記コメントを前記リストに含ませ、
    前記コピー処理部は、前記編集済リストに基づいて、前記コピープログラムにおける前記変数ごとのコメントを書き換える、請求項1からのいずれか1項に記載のサポート装置。
  5. 前記抽出部は、前記対象プログラムから、前記対象プログラムを構成する単位プログラムごとのコメントをさらに抽出し、
    前記生成部は、抽出された前記コメントを前記リストに含ませ、
    前記コピー処理部は、前記編集済リストに基づいて、前記コピープログラムにおける前記単位プログラムごとのコメントを書き換える、請求項1からのいずれか1項に記載のサポート装置。
  6. 制御対象を制御する制御装置との間で通信可能なコンピュータで実行され、前記制御装置において実行される制御プログラムの開発を支援するサポートプログラムであって、
    前記サポートプログラムは、前記コンピュータに、
    前記制御プログラムの中からコピー対象となる対象プログラムの選択を受け付けるステップと、
    前記対象プログラムから変数名を抽出するステップと、
    抽出された前記変数名のリストを生成するステップと、
    前記対象プログラムをコピーすることにより得られるコピープログラムを前記制御プログラム内に設定するステップとを実行させ、
    前記設定するステップは、前記リストの編集により得られる編集済リストに基づいて、前記コピープログラムにおける変数名を書き換えるステップを含み、
    前記生成するステップは、前記リストを含み、指定されたファイル形式を有する設定ファイルをエクスポートするステップを含み、
    前記設定するステップは、前記ファイル形式を有するファイルを編集可能なアプリケーションを用いて前記設定ファイルを編集することにより生成された、前記編集済リストを含む編集済ファイルをインポートすることにより、前記コピープログラムにおける変数名を書き換えるステップを含み、
    前記ファイル形式はCSV形式であり、
    前記アプリケーションは、前記サポートプログラムとは異なる、サポートプログラム。
  7. 制御対象を制御する制御装置において実行される制御プログラムの開発を支援するサポート装置におけるサポート方法であって、
    プロセッサがサポートプログラムを実行することにより、前記制御プログラムの中からコピー対象となる対象プログラムの選択を受け付けるステップと、
    前記プロセッサが前記サポートプログラムを実行することにより、前記対象プログラムから変数名を抽出するステップと、
    前記プロセッサが前記サポートプログラムを実行することにより、抽出された前記変数名のリストを生成するステップと、
    前記プロセッサが前記サポートプログラムを実行することにより、前記対象プログラムをコピーすることにより得られるコピープログラムを前記制御プログラム内に設定するステップとを備え、
    前記設定するステップは、前記リストの編集により得られる編集済リストに基づいて、前記コピープログラムにおける変数名を書き換えるステップを含み、
    前記生成するステップは、前記リストを含み、指定されたファイル形式を有する設定ファイルをエクスポートするステップを含み、
    前記設定するステップは、前記ファイル形式を有するファイルを編集可能なアプリケーションを用いて前記設定ファイルを編集することにより生成された、前記編集済リストを含む編集済ファイルをインポートすることにより、前記コピープログラムにおける変数名を書き換えるステップを含み、
    前記ファイル形式はCSV形式であり、
    前記アプリケーションは、前記サポートプログラムとは異なる、サポート方法。
JP2020043238A 2020-03-12 2020-03-12 サポート装置、サポートプログラムおよびサポート方法 Active JP7447574B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2020043238A JP7447574B2 (ja) 2020-03-12 2020-03-12 サポート装置、サポートプログラムおよびサポート方法
CN202080097357.XA CN115151873A (zh) 2020-03-12 2020-12-16 支持装置、支持程序以及支持方法
US17/908,146 US20230134007A1 (en) 2020-03-12 2020-12-16 Support device, non-transitory computer-readable storage medium, and support method
PCT/JP2020/047035 WO2021181796A1 (ja) 2020-03-12 2020-12-16 サポート装置、サポートプログラムおよびサポート方法
EP20924716.2A EP4120034A4 (en) 2020-03-12 2020-12-16 SUPPORT DEVICE, SUPPORT PROGRAM AND SUPPORT METHOD

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020043238A JP7447574B2 (ja) 2020-03-12 2020-03-12 サポート装置、サポートプログラムおよびサポート方法

Publications (2)

Publication Number Publication Date
JP2021144521A JP2021144521A (ja) 2021-09-24
JP7447574B2 true JP7447574B2 (ja) 2024-03-12

Family

ID=77671555

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020043238A Active JP7447574B2 (ja) 2020-03-12 2020-03-12 サポート装置、サポートプログラムおよびサポート方法

Country Status (5)

Country Link
US (1) US20230134007A1 (ja)
EP (1) EP4120034A4 (ja)
JP (1) JP7447574B2 (ja)
CN (1) CN115151873A (ja)
WO (1) WO2021181796A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014041617A (ja) 2012-08-23 2014-03-06 Lsis Co Ltd プログラミング言語の誤り検出装置及び誤り検出方法
JP2017220142A (ja) 2016-06-10 2017-12-14 富士電機株式会社 プログラミング装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2916015B2 (ja) 1991-03-15 1999-07-05 株式会社日立製作所 プログラマブルコントローラのプログラミング装置
US6850808B2 (en) * 1999-09-24 2005-02-01 Rockwell Software Inc. Method and system for developing a software program using compound templates
JP4420210B2 (ja) * 2004-06-08 2010-02-24 オムロン株式会社 プログラム開発支援装置および処理方法
JP6394516B2 (ja) * 2015-07-01 2018-09-26 株式会社安川電機 開発支援プログラム、記録媒体、開発支援方法、及び開発支援装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014041617A (ja) 2012-08-23 2014-03-06 Lsis Co Ltd プログラミング言語の誤り検出装置及び誤り検出方法
JP2017220142A (ja) 2016-06-10 2017-12-14 富士電機株式会社 プログラミング装置

Also Published As

Publication number Publication date
WO2021181796A1 (ja) 2021-09-16
EP4120034A1 (en) 2023-01-18
CN115151873A (zh) 2022-10-04
JP2021144521A (ja) 2021-09-24
EP4120034A4 (en) 2024-03-20
US20230134007A1 (en) 2023-05-04

Similar Documents

Publication Publication Date Title
US7484200B2 (en) Automatically analyzing and modifying a graphical program
JP4982020B2 (ja) 分散ブロック・ダイアグラム実行およびユーザ・インタフェース表示を使用するグラフィカル・プログラミング・システム
US6120550A (en) Design file templates for implementation of logic designs
RU2417391C2 (ru) Устройства, системы и способы конфигурирования программируемого логического контроллера
JP4865634B2 (ja) プログラム編集支援装置、コンピュータプログラム、プログラム編集支援方法及びplcシステム
US8341594B1 (en) Version control in modeling environments
US20060036799A1 (en) Multi-platform development and execution of graphical programs
JP3227066B2 (ja) プログラム部品を用いたプログラム生成方法
US20220197238A1 (en) Development support device, method for controlling development support device, and recording medium
JP7447574B2 (ja) サポート装置、サポートプログラムおよびサポート方法
JP2007011507A (ja) プログラムツリーの表示方法、およびプログラム生成システム
JP5205988B2 (ja) Plcのグローバル変数定義方式
JP2016224559A (ja) プログラム作成支援装置、制御方法およびプログラム
EP3926465A1 (en) Method and system for creating an app by merging source code
WO2021044654A1 (ja) 情報処理システム、プログラマブル表示器および情報処理装置
JP7238678B2 (ja) 情報処理装置、サポートプログラムおよびサポートシステム
JP3697274B2 (ja) ソフトウェア開発支援装置
JP3171363B2 (ja) プログラミング装置
JP7208441B1 (ja) Fa制御テスト支援プログラム、fa制御テスト支援装置、fa制御テスト支援方法及びfa制御テスト支援システム
CN112204480A (zh) 信息处理装置以及显示程序
JP7241982B1 (ja) 画像生成プログラム、画像生成装置、プログラマブルコントローラシステム及び画像生成方法
JP7380376B2 (ja) 情報処理装置およびラダープログラムを表示するためのプログラム
EP4261678A1 (en) Generation of a technical instruction
JP2010157155A (ja) プログラム作成支援方法、プログラム及びプログラム作成支援装置
JPH0954688A (ja) Gui設計支援方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231003

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231030

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240212

R150 Certificate of patent or registration of utility model

Ref document number: 7447574

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150