JPWO2014167623A1 - プログラムグラフ表示装置、プログラムグラフ表示方法およびプログラムグラフ表示プログラム - Google Patents

プログラムグラフ表示装置、プログラムグラフ表示方法およびプログラムグラフ表示プログラム Download PDF

Info

Publication number
JPWO2014167623A1
JPWO2014167623A1 JP2015510970A JP2015510970A JPWO2014167623A1 JP WO2014167623 A1 JPWO2014167623 A1 JP WO2014167623A1 JP 2015510970 A JP2015510970 A JP 2015510970A JP 2015510970 A JP2015510970 A JP 2015510970A JP WO2014167623 A1 JPWO2014167623 A1 JP WO2014167623A1
Authority
JP
Japan
Prior art keywords
program
code
unit
instruction
graph
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.)
Granted
Application number
JP2015510970A
Other languages
English (en)
Other versions
JP5921765B2 (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Application granted granted Critical
Publication of JP5921765B2 publication Critical patent/JP5921765B2/ja
Publication of JPWO2014167623A1 publication Critical patent/JPWO2014167623A1/ja
Expired - Fee Related 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/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting
    • 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/052Linking several PLC's
    • 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/12Plc mp multi processor system
    • 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/13144GUI graphical user interface, icon, function bloc editor, OI operator interface

Landscapes

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

Abstract

命令コード抽出部(111)は、機器制御プログラム(210)から抽出対象コードリスト(191)に示される命令コードを抽出する。副制御プログラム生成部(112)は、抽出された命令コードを含んだ副制御プログラム(212)を生成する。副制御パラメータリスト生成部(113)は、副制御プログラム(212)に含まれる命令コード毎に命令コードを構成する一つ以上の要素のそれぞれをパラメータとして抽出する。副制御パラメータグラフ表示部(161)は、抽出された一つ以上のパラメータを命令コード毎に関連付けた副制御パラメータグラフ(194)のデータを生成し、生成した副制御パラメータグラフ(194)を表示する。

Description

本発明は、例えば、フィールド機器用のラダープログラムをグラフ形式で表示するためのプログラムグラフ表示装置、プログラムグラフ表示方法およびプログラムグラフ表示プログラムに関するものである。
工場の製造ライン等では、通常、複数のフィールド機器とCPU(CPUユニットまたはPLCともいう)とがネットワークを介して繋がる。
そして、CPUは、フィールド機器の入力端子に入力された入力情報に基づいてフィールド機器の出力端子から出力する出力情報を作成する演算プログラムを実行し、フィールド機器を自動制御する。
なお、CPUはCentral Processing Unitの略であり、PLCはprogrammable logic controllerの略である。
上記のようにCPUを用いてフィールド機器を自動制御する場合、フィールド機器とCPUとの間で通信する必要があり、フィールド機器に対する入出力処理に時間がかかってしまう。
そこで、より高速な入出力の応答性能を得るため、出力情報を作成する演算処理機能を持つフィールド機器が開発されている。
演算処理機能を持ったフィールド機器には演算処理を指定するパラメータが設定され、フィールド機器は設定されたパラメータに従って演算処理を実行する。但し、フィールド機器が実行可能な演算処理には制約がある。
非特許文献1には、独立して演算処理を行うフィールド機器が開示されている。
非特許文献1に開示されているフィールド機器は、高速な入出力制御を実現するファストロジック機能を備えている。ファストロジック機能とは、設定されたパラメータに従って入力情報に対する演算処理を行い、出力情報を生成する機能である。
例えば、ファストロジック機能は、2つの入力端子に入力された2つの入力情報に対して論理積(AND)または論理和(OR)などの論理演算を行い、論理演算の結果を出力端子に出力することができる。
入力端子、出力端子及び演算の種類を指定するためのパラメータ設定は専用の設定ツールを用いて行われ、パラメータが設定されたフィールド機器は高速な入出力の応答性能を得る。例えば、ファストロジック機能を持ったフィールド機器には、出力端子と入力端子と演算の種類とによって特定される演算処理機能が固定的に割り当てられている。そして、専用の設定ツールを用いたパラメータの設定により、演算処理機能が有効な機能として動作する。
特許文献1には、他のフィールド機器と連携して演算処理を行うフィールド機器を開示している。
また、特許文献1には、CPUを介さない自動制御を実現するために、ネットワーク上の各フィールド機器の入出力情報の対応関係を設定ツールを用いて設定するための技術が開示されている。なお、対応関係の情報はコネクションデータベースと呼ばれるパラメータとして各フィールド機器に配布される。
しかし、特許文献1には、設定ツールを用いてパラメータを設定する手段について言及されていない。仮に、特許文献1の実施の形態に記載された送受信対応表をフィールド機器毎に個別に設定する手段を用いると、システム全体の入出力情報間の依存関係を把握することが困難になる。理由は、送受信対応表がフィールド機器毎に別々に設定されているためである。
また、CPUを介さずにフィールド機器間で演算処理を行う場合、フィールド機器またはネットワークの仕様に従って、フィールド機器が実行する演算について制約が定められることが多い。例えば、演算の入力数は2つまで、組み合わせる演算の段数は2段まで、上段の演算は論理和演算だけ、などの制約が存在する。そして、演算の制約はフィールド機器またはネットワーク毎に異なる。そのため、開発するネットワークシステムで用いるネットワークまたはフィールド機器によって演算の制約を意識しながら、フィールド機器の設定を検討する必要がある。
特許文献2には、システム開発者がフィールド機器の制約またはネットワークの制約を考慮してフィールド機器にパラメータを設定することが開示されている。
特許文献2において、ロジック図編集装置は、プラント制御用のプログラムを設計する際にロジック図に対して指定された結線について、結線の制約を自動でチェックする。
従来は、一定条件を満たせばどんな結線を指定することも可能であったため、タイプの異なる端子間の結線など、成立しないはずの結線についてもロジック図に設定できてしまっていた。そこで、特許文献2のロジック図編集装置は制約情報を用いて結線の制約をチェックし、成立しないはずの結線の設定を防止する。
しかし、システム開発者は、ロジック図編集装置に制約の範囲内で設定を行わせるために、制約を意識して正しい制約情報を作成する必要がある。
特開2000−259208号公報 特開2004−213277号公報
「CC−Link IE フィールドネットワークリモートI/Oユニット ユーザーズマニュアル」、三菱電機株式会社、2012年12月
本発明は、例えば、フィールド機器用のラダープログラムをグラフ形式で表示できるようにすることを目的とする。
本発明のプログラムグラフ表示装置は、
第一の実行部と第二の実行部とによって実行する対象プログラムに含まれる複数の命令コードのうち、第二の実行部によって実行する命令コードを抽出対象コードとして記憶する抽出対象コード記憶部と、
前記対象プログラムに含まれる前記複数の命令コードのうち、前記抽出対象コード記憶部に記憶された前記抽出対象コードと同じ命令コードを抽出コードとして抽出する命令コード抽出部と、
前記第二の実行部によって実行する第二のプログラムとして、前記命令コード抽出部によって抽出された前記抽出コードを含んだプログラムを生成する第二のプログラム生成部と、
前記第二のプログラムに含まれる一つ以上の命令コードの命令コード毎に、命令コードを構成する一つ以上の要素のそれぞれをパラメータとして抽出するパラメータ抽出部と、
前記パラメータ抽出部によって抽出された一つ以上のパラメータを命令コード毎に関連付けた図を第二のプログラムグラフとして表すグラフデータを生成するグラフデータ生成部とを備える。
本発明によれば、例えば、フィールド機器用のラダープログラム(第二のプログラムの一例)をグラフ形式で表示することができる。
実施の形態1におけるプログラム編集装置100と機器制御装置200との関係図である。 実施の形態1におけるプログラム編集装置100の機能構成図である。 実施の形態1におけるプログラム編集装置100のプログラム編集処理を示すフローチャートである。 実施の形態1における機器制御プログラム210の一例を示す図である。 実施の形態1における抽出対象コードリスト191の一例を示す図である。 実施の形態1における抽出コードリスト192の一例を示す図である。 実施の形態1における副制御プログラム212の一例を示す図である。 実施の形態1における副制御パラメータリスト193の一例を示す図である。 実施の形態1における副制御パラメータ編集画面310の一例を示す図である。 実施の形態1における主制御プログラム211の一例を示す図である。 実施の形態1における主制御プログラム211の一例を示す図である。 実施の形態1におけるプログラム編集装置100のハードウェア資源の一例を示す図である。 実施の形態2におけるプログラム編集装置100の機能構成図である。 実施の形態2におけるグラフ形式表示画面410の一例を示す図である。 実施の形態2における表形式表示画面420の一例を示す図である。 実施の形態2における副制御パラメータグラフ表示部161の副制御パラメータグラフ生成処理を示すフローチャートである。 実施の形態3における副制御パラメータ編集画面430の一例を示す図である。 実施の形態4におけるプログラム編集装置100の機能構成図である。 実施の形態4におけるコード制約データ195の一例を示す図である。 実施の形態4における変換規則データ196の一例を示す図である。 実施の形態4における副制御プログラム編集部116のコード制約確認処理を示すフローチャートである。 実施の形態4における命令コードの変換例を示す図である。 実施の形態4における副制御パラメータ編集画面430の一例を示す図である。 実施の形態5におけるプログラム編集装置100の機能構成図である。
実施の形態1.
CPU用の制御プログラムからフィールド機器用のラダープログラムを生成し、生成したラダープログラムを編集する形態について説明する。
図1は、実施の形態1におけるプログラム編集装置100と機器制御装置200との関係図である。
実施の形態1におけるプログラム編集装置100と機器制御装置200との関係について、図1に基づいて説明する。
機器制御装置200は、センサーまたはモーターなどの周辺機器209を制御する。
例えば、機器制御装置200は、FA(Factory Automation)システムに用いられる。
機器制御装置200は、CPUユニット201と、入出力ユニット202(フィールド機器の一例)とを備える。
CPUユニット201(第一の実行部の一例)は、ネットワーク204を介して入出力ユニット202に接続し、入出力ユニット202および入出力ユニット202に接続する周辺機器209を制御する。
また、CPUユニット201は、プログラムを実行するための演算機能(例えば、演算素子または演算回路)を備え、周辺機器209を制御するための機器制御プログラム210(但し、入出力ユニット202によって実行される部分を除く)を実行する。
例えば、CPUユニット201の一例はプログラマブルロジックコントローラである。
入出力ユニット202(第二の実行部の一例)は、周辺機器209(フィールド機器の一例)に接続し、周辺機器209に対して信号の入出力を行う。例えば、入出力ユニット202は、周辺機器209から出力される出力信号を入力し、周辺機器209を制御するための制御信号を周辺機器209に出力する。
また、入出力ユニット202は、CPUユニット201と同様に演算機能を備え、機器制御プログラム210の一部を実行する。
機器制御プログラム210は、周辺機器209を制御するためのプログラムである。
例えば、機器制御プログラム210は、周辺機器209の出力信号(例えば、センサーが計測した計測値を表す信号)を処理し、処理結果に基づいて制御信号(例えば、モーターを起動または停止するための信号)を生成するための一つ以上の命令文(以下、命令コードという)を含む。
なお、機器制御プログラム210は、ラダー言語またはC言語などのプログラミング言語で記述されたソースプログラムと、機械語で記述されたオブジェクトプログラムとのいずれであっても構わない。
プログラム編集装置100は、機器制御プログラム210を編集することによって主制御プログラム211(第一のプログラムの一例)と副制御プログラム212(第二のプログラムの一例)とを生成するコンピュータである。
主制御プログラム211は、機器制御プログラム210のうち、CPUユニット201によって実行するプログラムの部分である。
副制御プログラム212は、機器制御プログラム210のうち、入出力ユニット202によって実行するプログラムの部分である。
以下に、プログラム編集装置100の詳細について説明する。
図2は、実施の形態1におけるプログラム編集装置100の機能構成図である。
実施の形態1におけるプログラム編集装置100の機能構成について、図2に基づいて説明する。
プログラム編集装置100は、命令コード抽出部111と、副制御プログラム生成部112(第二のプログラム生成部の一例)と、副制御パラメータリスト生成部113(パラメータ抽出部の一例)と、副制御パラメータリスト表示部114(第二のプログラム表示部の一例)と、編集指示入力部115と、副制御プログラム編集部116(第二のプログラム編集部の一例)とを備える。
プログラム編集装置100は、主制御プログラム生成部121(第一のプログラム生成部の一例)と、主制御プログラム編集部122(第一のプログラム編集部の一例)とを備える。
命令コード抽出部111は、機器制御プログラム210(対象プログラムの一例)に含まれる命令コードのうち抽出対象コードリスト191に示される抽出対象コードと同じ命令コードを抽出し、抽出コードリスト192を生成する。
抽出対象コードリスト191は、入出力ユニット202で実行できる命令コード(抽出対象コード)の一覧を示す。
抽出コードリスト192は、機器制御プログラム210から抽出された命令コード(以下、抽出コードという)の一覧を示す。
副制御プログラム生成部112は、抽出コードリスト192に示される抽出コードを含む副制御プログラム212(第二のプログラムの一例)を生成する。
副制御パラメータリスト生成部113は、副制御プログラム212または抽出コードリスト192に基づいて副制御パラメータリスト193(第二のプログラム情報の一例)を生成する。
副制御パラメータリスト193は、副制御プログラム212に含まれる命令コード(以下、副制御コードという)を構成する副制御パラメータの一覧を示す。
副制御パラメータは、副制御プログラム212に含まれる命令コード(副制御コード)を構成する構成要素である。
副制御パラメータリスト表示部114は、副制御パラメータリスト193が示す副制御パラメータを表示する。
編集指示入力部115は、副制御パラメータリスト193が示す副制御パラメータに対する編集指示を入力する。
副制御プログラム編集部116は、編集指示に従って副制御プログラム212を編集する。
例えば、副制御プログラム編集部116は、副制御プログラム212に含まれる副制御コードのうちユーザが指定した副制御コード(主制御プログラム211に移行する命令コード)を、副制御プログラム212から削除する。
主制御プログラム生成部121は、抽出コードリスト192に示される抽出コードを機器制御プログラム210から除外することによって、主制御プログラム211(第一のプログラムの一例)を生成する。
主制御プログラム編集部122は、主制御プログラム211を編集する。
例えば、主制御プログラム編集部122は、副制御プログラム212に含まれる副制御コードのうちユーザが指定した副制御コード(主制御プログラム211に移行する命令コード)を主制御プログラム211に追加する。
装置記憶部190は、プログラム編集装置100で使用するデータを記憶する。
例えば、装置記憶部190は、機器制御プログラム210と、抽出対象コードリスト191と、抽出コードリスト192と、副制御パラメータリスト193と、副制御プログラム212と、主制御プログラム211とを記憶する。
図3は、実施の形態1におけるプログラム編集装置100のプログラム編集処理を示すフローチャートである。
実施の形態1におけるプログラム編集装置100のプログラム編集処理について、図3に基づいて説明する。
S111において、命令コード抽出部111は、機器制御プログラム210に含まれる命令コードのうち、抽出対象コードリスト191に示される抽出対象コードと同じ命令コードを抽出する。
ここで、同じ命令コードとは、変数値も含めて全てが同じである命令コードと、変数値が異なるがコード形式が同じである命令コードと、命令または演算の種類が同じである命令コードと、のいずれであっても構わない。
S111の後、処理はS112に進む。
S112において、命令コード抽出部111は、機器制御プログラム210から抽出した命令コード(抽出コード)を一覧にした抽出コードリスト192を生成する。
抽出コードリスト192は、抽出コードの一覧を示すと共に、抽出コード毎に抽出コードの抽出箇所を識別する抽出箇所識別子を示す。
S112の後、処理はS113に進む。
以下に、対象コード抽出処理(S111)および抽出コードリスト生成処理(S112)の具体例を図4、図5および図6に基づいて説明する。
図4は、実施の形態1における機器制御プログラム210の一例を示す図である。
図4に示す機器制御プログラム210は、ラダー言語で記述されたラダープログラムであり、(1)から(4)の命令コードを含んでいる。
(1)の命令コードは1ビットのコピーを意味し、(2)の命令コードは2つの値の論理積の算出を意味し、(3)の命令コードは2つの値の論理和の出力を意味する。
Xnは入力デバイスを識別する変数値を示し、Ynは出力デバイスを識別する変数値を示している。これらの表記の意味は以降の図面においても同様である。
図5は、実施の形態1における抽出対象コードリスト191の一例を示す図である。
図5に示す抽出対象コードリスト191は、ラダー言語で記述された(a)から(c)の抽出対象コードを示している。
図6は、実施の形態1における抽出コードリスト192の一例を示す図である。
図6に示す抽出コードリスト192は、ラダー言語で記述された(1)から(3)の抽出コードを示している。
また、抽出コードリスト192は、抽出コード毎に抽出コードが抽出された抽出箇所を識別する抽出箇所識別子(例えば、機器制御プログラム210の行番号)を示している。図中のL1からL3が抽出箇所識別子である。Lnは機器制御プログラム210のn行目から抽出されたことを意味している。
図4の機器制御プログラム210に含まれる(1)から(4)の命令コードのうち、(1)から(3)の命令コードは、図5の抽出対象コードリスト191に示される(a)から(c)の抽出対象コードと同じ命令コードである。つまり、(1)から(3)の命令コードは、(a)から(c)の命令コードとコード形式および命令(演算)の種類が同じである。
また、機器制御プログラム210の(4)の命令コードは抽出対象コードリスト191に示されるいずれの抽出対象コードとも異なる命令コードである。
したがって、命令コード抽出部111は、機器制御プログラム210に含まれる(1)から(4)の命令コードのうち(1)から(3)の命令コードを抽出し(図3のS111)、図6の抽出コードリスト192を生成する(図3のS112)。
図3に戻り、S113から説明を続ける。
S113において、副制御プログラム生成部112は、抽出コードリスト192に示される抽出コードを含んだ副制御プログラム212を生成する。
S113の後、処理はS114に進む。
以下に、副制御プログラム生成処理(S113)の具体例について図7に基づいて説明する。
図7は、実施の形態1における副制御プログラム212の一例を示す図である。
図7に示す副制御プログラム212は、ラダープログラムであり、(1)から(3)の命令コードを含んでいる。
副制御プログラム生成部112は、図6の抽出コードリスト192に基づいて図7の副制御プログラム212を生成する。
つまり、副制御プログラム生成部112は、図6の抽出コードリスト192が示す(1)から(3)の抽出コードをそれぞれの抽出箇所識別子Lnに基づいて並べることによって、図7の副制御プログラム212を生成する。
また、副制御プログラム生成部112は、(1)から(3)の抽出コードに抽出箇所識別子Lnを付加してもよい。例えば、副制御プログラム生成部112は、抽出箇所識別子を示すコメント「#Ln」を付加する。
図3に戻り、S114から説明を続ける。
S114において、副制御パラメータリスト生成部113は、副制御プログラム212に含まれる副制御コード(命令コード)から副制御パラメータを抽出し、抽出した副制御パラメータを一覧にした副制御パラメータリスト193を生成する。
但し、副制御パラメータリスト生成部113は、副制御プログラム212の代わりに抽出コードリスト192を用いて、副制御パラメータリスト193を生成しても構わない。
S114の後、処理はS115に進む。
以下に、副制御パラメータリスト生成処理(S114)の具体例について図8に基づいて説明する。
図8は、実施の形態1における副制御パラメータリスト193の一例を示す図である。
図8に示す副制御パラメータリスト193は、No.1からNo.3の副制御パラメータを示している。
また、副制御パラメータは、「No.」「入力デバイス1」「入力デバイス2」「演算子」「出力デバイス」を含んでいる。
「No.」は、機器制御プログラム210から抽出された副制御コードの抽出箇所を識別する抽出箇所識別子を示す。
「入力デバイス1」は、命令コードを構成する構成要素のうち、値の入力元である第一の入力デバイスを識別する識別子を示す。
「入力デバイス2」は、命令コードを構成する構成要素のうち、値の入力元である第二の入力デバイスを識別する識別子を示す。
「演算子」は、命令コードを構成する構成要素のうち、演算の種類を識別する識別子を示す。
「出力デバイス」は、命令コードを構成する構成要素のうち、値の出力先である出力デバイスを識別する識別子を示す。
副制御パラメータリスト生成部113は、図7の副制御プログラム212に基づいて図8の副制御パラメータリスト193を生成する。
つまり、副制御パラメータリスト生成部113は、図7の副制御プログラム212に含まれる(1)から(3)の命令コード毎に、命令コードから副制御パラメータを抽出する。
そして、副制御パラメータリスト生成部113は、(1)から(3)の命令コード毎に命令コードから抽出した副制御パラメータを示す図8の副制御パラメータリスト193を生成する。
但し、副制御パラメータリスト生成部113は、図7の副制御プログラム212の代わりに図6の抽出コードリスト192を用いて、図8の副制御パラメータリスト193を生成しても構わない。
図8の副制御パラメータリスト193において、L1の副制御パラメータは、図7または図6の(1)から(3)の命令コードのうち、抽出箇所識別子L1に対応付けられた(1)の命令コードを構成する副制御パラメータである。
同様に、L2の副制御パラメータは図7または図6の(2)の命令コードを構成する副制御パラメータであり、L3の副制御パラメータは図7または図6の(3)の命令コードを構成する副制御パラメータである。
図3に戻り、S115から説明を続ける。
S115において、副制御パラメータリスト表示部114は、副制御パラメータリスト193が示す副制御パラメータを表示する。
例えば、副制御パラメータリスト表示部114は、図9に示すような副制御パラメータ編集画面310を表示する。
図9は、実施の形態1における副制御パラメータ編集画面310の一例を示す図である。
図9の副制御パラメータ編集画面310は、表形式で表した図8の副制御パラメータリスト193を含んでいる。また、副制御パラメータ編集画面310は「CPU実行」欄を加えている。
「CPU実行」欄は、CPUユニット201に実行させたい副制御コード、つまり、主制御プログラム211に移行したい副制御コード、を指定するためのチェックボックスを備えている。
なお、副制御パラメータリスト193の表示欄は編集可能なテキストボックスである。但し、テキストボックス以外の編集手段(プルダウンリスト、メニューなど)を用いても構わない。
また、副制御パラメータ編集画面310は、副制御パラメータリスト193に対する編集の終了を指示するための編集終了ボタン311を含んでいる。
以下、CPUユニット201に実行させたい命令コード、つまり、主制御プログラム211に移行したい命令コード、として指定された副制御コードを「移行コード」という。
S115の後、処理はS116に進む。
S116において、ユーザは、表示された副制御パラメータに対する編集指示(追加、変更または削除など)を、キーボードまたはマウスなどの入力機器を用いてプログラム編集装置100に指定する。
例えば、ユーザは、図9の副制御パラメータ編集画面310に表示されたL1の入力デバイス1を「X1」から「X2」に変更し、編集終了ボタン311を押下する。
例えば、図9の副制御パラメータ編集画面310に表示されたL1の副制御パラメータに関する副制御コードをCPUユニット201に実行させたい場合、ユーザは、L1の「CPU実行」欄のチェックボックスにチェックを入れ、編集終了ボタン311を押下する。
そして、編集指示入力部115は、ユーザから指定された編集指示を入力機器から入力する。
S116の後、処理はS117に進む。
S117において、副制御プログラム編集部116は、ユーザの編集指示に従って副制御プログラム212に含まれる副制御コードを編集する。
副制御プログラム編集部116は、ユーザの編集指示に従って副制御パラメータリスト193を編集し、編集後の副制御パラメータリスト193に基づいて編集後の副制御プログラム212を生成しても構わない。
例えば、図9の副制御パラメータ編集画面310でL1の入力デバイス1が「X1」から「X2」に変更された場合、副制御プログラム編集部116は、図7の副制御プログラム212に含まれる(1)から(3)の副制御コードのうち、抽出箇所識別子L1に対応付けられた(1)の副制御コードを選択する。そして、副制御プログラム編集部116は、選択した(1)の副制御コードに含まれる入力デバイスの識別子を「X1」から「X2」に変更する。
例えば、図9の副制御パラメータ編集画面310でL1の「CPU実行」欄のチェックボックスにチェックが入った場合、副制御プログラム編集部116は、図7の副制御プログラム212に含まれる(1)から(3)の副制御コードのうち、抽出箇所識別子L1に対応付けられた(1)の副制御コードを削除する。(1)の副制御コードは主制御プログラム211に移行される移行コードである。
S117の後、処理はS121に進む。
S121において、主制御プログラム生成部121は、抽出コードリスト192に示される抽出コードを機器制御プログラム210から除外することによって、主制御プログラム211を生成する。
S121の後、処理はS122に進む。
以下に、主制御プログラム生成処理(S121)の具体例について図8および図9に基づいて説明する。
図10は、実施の形態1における主制御プログラム211の一例を示す図である。
図10に示す主制御プログラム211は、ラダープログラムであり、D1からD3のダミーコードと、(4)の命令コードとを含んでいる。ダミーコードは、実行されない無効な命令コードである。つまり、主制御プログラム211をコンパイルしても、ダミーコードに相当するオブジェクトコード(実行コードまたはマシンコードともいう)は生成されない。
主制御プログラム生成部121は、図4の機器制御プログラム210と図6の抽出コードリスト192とに基づいて、図10の主制御プログラム211を生成する。
つまり、主制御プログラム生成部121は、図4の機器制御プログラム210に含まれる(1)から(4)の命令コードのうち図6の抽出コードリスト192に示される(1)から(3)の命令コードをそれぞれの抽出箇所識別子Lnに基づいて特定する。
そして、主制御プログラム生成部121は、特定した(1)から(3)の命令コードをダミーコードに置き換えることによって、図10の主制御プログラム211を生成する。
図10のD1からD3がダミーコードであり、それぞれのダミーコードには対応する抽出コードの抽出箇所識別子Lnを含んだ文字列「DMY_Ln」が設定されている。
図11は、実施の形態1における主制御プログラム211の一例を示す図である。
図11に示す主制御プログラム211は、記号「#」を付したコメント行と、(4)の命令コードとを含んでいる。
主制御プログラム生成部121は、図4の機器制御プログラム210と図6の抽出コードリスト192とに基づいて、図11の主制御プログラム211を生成してもよい。
つまり、主制御プログラム生成部121は、図4の機器制御プログラム210に含まれる(1)から(4)の命令コードのうち図6の抽出コードリスト192に示される(1)から(3)の命令コードをダミーコードに置き換える代わりにコメント行に置き換えてもよい。
また、主制御プログラム生成部121は、副制御プログラム212に移行された命令コードであることを示すコメント「副制御_Ln」をコメント行に付記してもよい。
図3に戻り、S122から説明を続ける。
S122において、主制御プログラム編集部122は、ユーザの編集指示で指定された移行コードを主制御プログラム211に追加する。
例えば、図9の副制御パラメータ編集画面310でL1の「CPU実行」欄のチェックボックスにチェックが入った場合、主制御プログラム編集部122は、図10の主制御プログラム211に含まれるD1からD3のダミーコードのうち、抽出箇所識別子L1に対応付けられたD1のダミーコードを選択する。そして、主制御プログラム編集部122は、選択したD1のダミーコードを通常の命令コードに変換(復元)することによって、主制御プログラム211に移行コードを追加する。主制御プログラム211に追加される移行コードは、S117で副制御プログラム212から削除された(1)の副制御コードである。
S122の後、プログラム編集処理は終了する。但し、ユーザの編集指示によって移行コードが指定されていない場合、S122は行われずに、プログラム編集処理は終了する。
図12は、実施の形態1におけるプログラム編集装置100のハードウェア資源の一例を示す図である。
図12において、プログラム編集装置100(コンピュータの一例)は、CPU901(Central Processing Unit)を備えている。CPU901は、バス902を介してROM903、RAM904、通信ボード905(通信装置)、ディスプレイ911(表示装置)、キーボード912、マウス913、ドライブ914、磁気ディスク装置920などのハードウェアデバイスと接続され、これらのハードウェアデバイスを制御する。ドライブ914は、FD(Flexible Disk)、CD(Compact Disc)、DVD(Digital Versatile Disc)などの記憶媒体を読み書きする装置である。
ROM903、RAM904、磁気ディスク装置920およびドライブ914は記憶装置の一例である。キーボード912、マウス913および通信ボード905は入力装置の一例である。ディスプレイ911および通信ボード905は出力装置の一例である。
通信ボード905は、有線または無線で、LAN(Local Area Network)、インターネット、電話回線などの通信網に接続している。
磁気ディスク装置920には、OS921(オペレーティングシステム)、プログラム群922、ファイル群923が記憶されている。
プログラム群922には、実施の形態において「〜部」として説明する機能を実行するプログラムが含まれる。プログラム(例えば、プログラムグラフ表示プログラム)は、CPU901により読み出され実行される。すなわち、プログラムは、「〜部」としてコンピュータを機能させるものであり、また「〜部」の手順や方法をコンピュータに実行させるものである。
ファイル群923には、実施の形態において説明する「〜部」で使用される各種データ(入力、出力、判定結果、計算結果、処理結果など)が含まれる。
実施の形態において構成図およびフローチャートに含まれている矢印は主としてデータや信号の入出力を示す。
フローチャートなどに基づいて説明する実施の形態の処理はCPU901、記憶装置、入力装置、出力装置などのハードウェアを用いて実行される。
実施の形態において「〜部」として説明するものは「〜回路」、「〜装置」、「〜機器」であってもよく、また「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ファームウェア、ソフトウェア、ハードウェアまたはこれらの組み合わせのいずれで実装されても構わない。
実施の形態1により、例えば、以下のような効果を奏する。
プログラム編集装置100は、CPUユニット上で実行する制御プログラムから、演算機能を持った高速応答入出力ユニットで実行するための入出力応答制御プログラム(副制御プログラム)を自動で抽出することができる。
ユーザは、副制御プログラム212をプログラミングレスで容易に編集することができる。
ユーザは、CPUユニットと入出力ユニットとの処理の分担を容易に把握することができる。
ユーザは、副制御プログラム212に含まれる副制御コードを主制御プログラム211に移行することができる。
実施の形態2.
副制御プログラム212(例えば、フィールド機器用のラダープログラム)を視覚的に表示する形態について説明する。
以下、実施の形態1と異なる事項について主に説明する。説明を省略する事項については実施の形態1と同様である。
なお、図1に示した入出力ユニット202および周辺機器209はフィールド機器ともいう。
図13は、実施の形態2におけるプログラム編集装置100の機能構成図である。
実施の形態2におけるプログラム編集装置100の機能構成について、図13に基づいて説明する。
プログラム編集装置100(プログラムグラフ表示装置の一例)は、実施の形態1(図2参照)で説明した構成に加えて、副制御パラメータグラフ表示部161(グラフデータ生成部、プログラムグラフ表示部の一例)を備える。
副制御パラメータグラフ表示部161は、副制御パラメータリスト193をグラフ形式で表示する。
ユーザがプログラム編集装置100に対して副制御パラメータリスト193のグラフ形式表示を指定した場合、副制御パラメータグラフ表示部161は、副制御パラメータリスト193に基づいて副制御パラメータグラフ194のデータを生成し、図14に示すようなグラフ形式表示画面410を表示する。
図14は、実施の形態2におけるグラフ形式表示画面410の一例を示す図である。
図14に示すように、グラフ形式表示画面410は、副制御パラメータグラフ194と表形式表示ボタン411とを含む。
副制御パラメータグラフ194のデータは、副制御パラメータリスト193をグラフ化したデータである。
表形式表示ボタン411は、副制御パラメータリスト193を表形式で示す表形式表示画面420への切り替えを指定するためのボタン(ユーザインタフェースの一例)である。
グラフ形式表示画面410の表形式表示ボタン411が押下された場合、副制御パラメータリスト表示部114は、副制御パラメータリスト193に基づいて、図15に示すような表形式表示画面420を表示する。表形式表示画面420の表示方法は、副制御パラメータ編集画面310(図9参照)の表示方法と同様である。
図15は、実施の形態2における表形式表示画面420の一例を示す図である。
図15に示すように、表形式表示画面420は、表形式の副制御パラメータリスト193とグラフ形式表示ボタン421とを含む。
グラフ形式表示ボタン421は、副制御パラメータリスト193をグラフ形式で示すグラフ形式表示画面410への切り替えを指定するためのボタンである。
なお、ユーザが副制御パラメータリスト193のグラフ形式表示を指定する前に表形式表示をプログラム編集装置100に対して指定した場合、副制御パラメータリスト表示部114は、副制御パラメータリスト193に基づいて、図15に示すような表形式表示画面420を表示する。
図14に戻り、グラフ形式表示画面410の説明を続ける。
図14に示した副制御パラメータグラフ194は、図15に示した副制御パラメータリスト193の内容をグラフ化したものである。
例えば、副制御パラメータグラフ194の上段部分はL1の命令コードを表し、副制御パラメータグラフ194の中段部分はL2の命令コードを表し、副制御パラメータグラフ194の下段部分はL3の命令コードを表している。
副制御パラメータグラフ194は、命令コード毎に、入力データの入力元のフィールド機器、フィールド機器の入力端子(入力デバイス)、出力データの出力先のフィールド機器、フィールド機器の出力端子(出力デバイス)および演算(演算素子または演算回路)の種類を示す。フィールド機器とは、入出力ユニット202または周辺機器209などである。
副制御パラメータグラフ194は、入力端子を表すアイコンと、出力端子を表すアイコンと、演算の種類を表すアイコンとを線で結ぶことによって、入力端子と出力端子と演算の種類とを対応付けている。
副制御パラメータグラフ194は、演算の種類毎に異なるアイコンを表記している。
例えば、L1の論理積と、L2の論理和と、L3の大小比較は、それぞれのアイコンの形状が異なっている。但し、各演算のアイコンは、形状以外の表記方法(例えば、色)が異なっていてもよい。
副制御パラメータグラフ194は、入力端子と出力端子とを丸いアイコンで表記している。
但し、入力端子と出力端子とを異なるアイコンで表記しても構わない(例えば、丸いアイコンと四角いアイコン)。
副制御パラメータグラフ194は、フィールド機器毎に入力端子および出力端子を線で囲っている。
例えば、1番のフィールド機器「機器1」の枠線は、命令コードL1の入力端子「X1」と命令コードL3の入力端子「X20」とを囲っている。
つまり、副制御パラメータグラフ194のデータは、アイコンの種類(形状、色など)、関係するアイコン同士を結ぶ接続線、アイコンの表示位置などを指定する情報を含んでいる。
図16は、実施の形態2における副制御パラメータグラフ表示部161の副制御パラメータグラフ生成処理を示すフローチャートである。
実施の形態2における副制御パラメータグラフ表示部161の処理方法について、図16に基づいて説明する。
S210において、副制御パラメータグラフ表示部161は、装置記憶部190から副制御パラメータリスト193を取得する。
S210の後、処理はS220に進む。
S220において、副制御パラメータグラフ表示部161は、副制御パラメータリスト193から未選択の命令コードを1つ選択する。以下、S220で選択した命令コードを「選択コード」という。
S220の後、処理はS221に進む。
S221において、副制御パラメータグラフ表示部161は、選択コードの副制御パラメータに基づいて、入力端子用のアイコン、出力端子用のアイコン、演算の種類を表すアイコン、アイコン同士を結ぶ接続線、アイコンの表示位置などのグラフ情報を生成する。
なお、グラフ情報の生成に必要なグラフ表記データ(例えば、アイコンデータ)は装置記憶部190に予め記憶しておく。例えば、アイコンデータは、アイコンとアイコンの種類(入力端子、出力端子、論理積、論理和など)と対応付けたデータである。
S221の後、処理はS222に進む。
S222において、副制御パラメータグラフ表示部161は、副制御パラメータリスト193に未選択の命令コードが残っているか否かを判定する。
未選択の命令コードが残っている場合(YES)、処理はS220に戻る。
未選択の命令コードが残っていない場合(NO)、処理はS230に進む。
S230において、副制御パラメータグラフ表示部161は、S221で生成した命令コード毎のグラフ情報を含んだ副制御パラメータグラフ194のデータを生成する。
S230の後、副制御パラメータグラフ生成処理は終了する。
実施の形態2により、副制御プログラム212を視覚的に表示することができる。また、ユーザはフィールド機器間の入出力および演算処理の関係を視覚的に把握することができる。
実施の形態1、2または以後の実施の形態は、以下のような構成であっても構わない。
(1)抽出対象コードリスト191および抽出コードリスト192は、C言語などの構造体の形式で命令コードを示してもよい。命令コードを示す構造体は、演算の種類(例えば、論理積、論理和)、入力(例えば、機器識別子、端子名)、出力(例えば、機器識別子、端子名)などを含むデータである。
(2)プログラム編集装置100は、副制御プログラム212(または副制御プログラム212に含まれる少なくとも一部の命令コード)をフィールド機器(入出力ユニット202、周辺機器209など)に送信することによって、フィールド機器のメモリに副制御プログラム212を書き込むプログラム書き込み部を備えてもよい。例えば、プログラム書き込み部は、副制御プログラム212のデータ形式をフィールド機器に書き込み可能なデータ形式に変換し、変換後の副制御プログラム212をフィールド機器に書き込む。
実施の形態3.
グラフ化して表示した副制御プログラム212を編集する形態について説明する。
以下、実施の形態2と異なる事項について主に説明する。説明を省略する事項については実施の形態2と同様である。
プログラム編集装置100の機能構成は、実施の形態2(図13参照)と同様である。
但し、副制御パラメータグラフ表示部161は、図17に示すような副制御パラメータ編集画面430を表示する。
図17は、実施の形態3における副制御パラメータ編集画面430の一例を示す図である。
副制御パラメータ編集画面430は、副制御パラメータグラフ194と、表形式表示ボタン431と、編集終了ボタン432と、部品一覧439とを備える。
部品一覧439は、入力端子、出力端子、論理積、論理和、大小比較など、副制御パラメータグラフ194に用いるアイコンを示す。
編集終了ボタン432は、副制御パラメータグラフ194の編集の終了を指定するためのボタンである。
ユーザは、入力機器を操作することによって副制御パラメータグラフ194または部品一覧439のアイコンを選択し、副制御パラメータグラフ194に対してアイコンの追加、移動または削除を指示する。例えば、ユーザは、マウスを用いてアイコンをドラッグアンドドロップする
また、ユーザは、入力機器を操作することによって、アイコン同士を結ぶ接続線を引く、入出力端子に対して端子名を指定する、などの編集を行う。
副制御パラメータグラフ194の編集が終了した場合、ユーザは編集終了ボタン432を押下する。
編集指示入力部115はユーザの編集指示を入力機器から入力し、副制御プログラム編集部116はユーザの編集指示に従って副制御パラメータグラフ194のアイコンを追加、変更または削除する。
編集終了ボタン432が押下された場合、副制御プログラム編集部116(第二のプログラム編集部の一例)は、編集後の副制御パラメータグラフ194のデータを装置記憶部190に上書きし、編集後の副制御パラメータグラフ194のデータに合わせて副制御プログラム212を更新する。
実施の形態3により、ユーザは副制御プログラム212を視覚的に編集することができる。つまり、副制御プログラム212の編集が容易になる。
実施の形態4.
フィールド機器およびネットワークの制約を満たさない命令コードを変換規則に従って変換する形態について説明する。
以下、実施の形態3と異なる事項について主に説明する。説明を省略する事項については実施の形態3と同様である。
図18は、実施の形態4におけるプログラム編集装置100の機能構成図である。
実施の形態4におけるプログラム編集装置100の機能構成について、図18に基づいて説明する。
プログラム編集装置100の装置記憶部190は、フィールド機器の種類毎に、また、ネットワークの種類毎に、コード制約データ195(制約データの一例)と変換規則データ196(代替コードデータの一例)とを記憶する。
また、副制御プログラム編集部116(第二のプログラム編集部の一例)は、ユーザの編集指示に従って副制御プログラム212、副制御パラメータリスト193または副制御パラメータグラフ194を編集する際に、コード制約データ195に設定されている制約を満たさない命令コードを、変換規則データ196に設定された変換規則に従って変換する。
図19は、実施の形態4におけるコード制約データ195の一例を示す図である。
実施の形態4におけるコード制約データ195の一例について、図19に基づいて説明する。
コード制約データ195は、フィールド機器毎に演算の種類または入出力などの制約を示すデータである。
コード制約データ195は、「機器」「演算種類」「使用可否」「入力数」「出力数」「段数」を対応付けている。
「機器」は、フィールド機器の識別子(名称、番号など)を示す。
「演算種類」は、演算の種類(論理積、論理和など)を示す。
「使用可否」は、「演算種類」に示される演算(演算素子または演算回路)が使用可能な演算であるか否かを示す。
「入力数」は、「演算種類」に示される演算に対する入力数の条件を示す。
「出力数」は、「演算種類」に示される演算に対する出力数の条件を示す。
「段数」は、「演算種類」に示される演算を使用可能な段数の条件を示す。段数とは、複数の演算が階層関係を持って接続する場合(例えば、1段目の演算の出力が2段目の演算に入力されるなど)の階層の階数に相当する。
例えば、機器F1は、論理和(OR)および論理積(AND)を使用できるが、排他的論理和(XOR)を使用できない(使用可否の欄を参照)。
また、論理和および論理積は2入力1出力でなければならない(入力数および出力数の欄を参照)。
さらに、論理和は1段目または2段目の演算でなければならず、論理積は1段目の演算でなければならない(段数の欄を参照)。
図20は、実施の形態4における変換規則データ196の一例を示す図である。
実施の形態4における変換規則データ196の一例について、図20に基づいて説明する。
変換規則データ196は、演算の種類毎に変換前の命令コードの内容と変換後の命令コードの内容とを示すデータである。
変換規則データ196は、「演算種類」「変換前」「変換後」を対応付けている。
「変換前」は、変換前の命令コードの内容を示す。
「変換後」は、変換後の命令コード(代替コード群の一例)の内容を示す。
例えば、項番1が示す変換規則によって、3入力1出力の論理和(OR)は2入力1出力の論理和と2入力1出力の論理和との2段の論理和に変換される。
なお、入力または出力の括弧内に記す「Xn」(nは0以上の整数)はフィールド機器の入力端子を識別し、「Yn」はフィールド機器の出力端子を識別し、「Zn」は演算(回路または素子)の入出力端子を識別し、「M0」はフィールド機器の内部メモリを識別する。また、「!」は否定を意味する。
図21は、実施の形態4における副制御プログラム編集部116のコード制約確認処理を示すフローチャートである。
副制御パラメータ編集画面430(図17参照)で副制御パラメータグラフ194が編集された場合、副制御プログラム編集部116は以下のようなコード制約確認処理を実行する。
S310において、副制御プログラム編集部116は、複数のコード制約データ195および変換規則データ196のうち、対象ネットワーク用のコード制約データ195および変換規則データ196を選択する。
S310の後、処理はS320に進む。
S320において、副制御プログラム編集部116は、副制御パラメータグラフ194から未選択の命令コードを1つ選択する。以下、S320で選択した命令コードを「選択コード」という。
S320の後、処理はS330に進む。
S330において、副制御プログラム編集部116は、コード制約データ195から選択コードに対応する制約情報を選択する。以下、S330で選択した制約情報を「選択制約」という。
S330の後、処理はS331に進む。
S331において、副制御プログラム編集部116は、選択コードと選択制約とを比較し、選択コードが選択制約を満たすか否かを判定する。
選択コードが選択制約を満たす場合(YES)、処理はS321に進む。
選択コードが選択制約を満たさない場合(NO)、処理はS332に進む。
S332において、副制御プログラム編集部116は、変換規則データ196から選択コードに対応する変換規則を選択する。以下、S332で選択した変換規則を「選択規則」という。
S332の後、処理はS333に進む。
S333において、副制御プログラム編集部116は、選択規則に従って選択コードを変換する。
S333の後、処理はS321に進む。
図22は、実施の形態4における命令コードの変換例を示す図である。
例えば、副制御プログラム編集部116は、図19のコード制約データ195および図20の変換規則データ196に基づいて、図22に示すように命令コードを変換する。
(1)副制御プログラム編集部116は、3入力1出力の論理和を2入力1出力の論理和と2入力1出力の論理和との2段の論理和に変換する。
(2)副制御プログラム編集部116は、3入力1出力の論理積を2入力1出力の論理積と2入力1出力の論理積との2段の論理積に変換する。
(3)副制御プログラム編集部116は、2入力1出力の排他的論理和を2入力1出力の2つの論理積と2入力1出力の論理和との2段の演算に変換する。
図21に戻り、S321から説明を続ける。
S321において、副制御プログラム編集部116は、副制御パラメータグラフ194に未選択の命令コードが残っているか否かを判定する。
未選択の命令コードが残っている場合(YES)、処理はS320に戻る。
未選択の命令コードが残っていない場合(NO)、処理はS340に進む。
S340において、副制御プログラム編集部116は、制約を満たさない命令コードを変換した旨のメッセージと共に、変換後の副制御パラメータグラフ194を副制御パラメータ編集画面430に表示する。
また、副制御プログラム編集部116は、変換後の副制御パラメータグラフ194を装置記憶部190に上書きする。
さらに、副制御プログラム編集部116は、変換後の副制御パラメータグラフ194に合わせて、副制御プログラム212および副制御パラメータリスト193を更新する。
S340の後、コード制約確認処理は終了する。
図23は、実施の形態4における副制御パラメータ編集画面430の一例を示す図である。
図23に示すように、副制御プログラム編集部116は、(1)副制御パラメータグラフ194の命令コードを変換し、(2)命令コードを変換後の副制御パラメータグラフ194を副制御パラメータ編集画面430に表示する。なお、(2)において、X1、X3またはX4から論理積への入力線のうち、論理積側に丸印が付いている入力線は、否定の入力(入力値の反転)を意味する。
実施の形態4により、フィールド機器およびネットワークの制約を満たさない命令コードを変換規則に従って変換することができる。
つまり、ユーザは、フィールド機器およびネットワークの制約を意識せずに副制御プログラム212を編集することができる。
実施の形態5.
ネットワークまたはフィールド機器が追加された際に制約情報および変換規則を追加する形態について説明する。
以下、実施の形態4と異なる事項について主に説明する。説明を省略する事項については実施の形態4と同様である。
図24は、実施の形態5におけるプログラム編集装置100の機能構成図である。
実施の形態5におけるプログラム編集装置100の機能構成について、図24に基づいて説明する。
プログラム編集装置100は、実施の形態4(図18参照)で説明した機能構成に加えて、プロファイル解析部162とプロファイルデータ197とを備える。
ユーザは、新たなネットワークまたは新たなフィールド機器のプロファイルデータ197をプログラム編集装置100に入力する。プロファイルデータ197は、制約情報および変換規則に関する情報を含んだデータである。
プロファイル解析部162は、入力されたプロファイルデータ197から制約情報および変換規則を抽出し、抽出した制約情報を含んだコード制約データ195を生成し、抽出した変換規則を含んだ変換規則データ196を生成する。
実施の形態5により、ネットワークまたはフィールド機器が追加された際に制約情報および変換規則を追加することができる。つまり、ユーザは、ネットワークまたはフィールド機器が追加された場合であっても、制約を意識せずに副制御プログラム212を生成することができる。
各実施の形態は、矛盾が生じない範囲で、全部または一部を組み合わせても構わない。
100 プログラム編集装置、111 命令コード抽出部、112 副制御プログラム生成部、113 副制御パラメータリスト生成部、114 副制御パラメータリスト表示部、115 編集指示入力部、116 副制御プログラム編集部、121 主制御プログラム生成部、122 主制御プログラム編集部、161 副制御パラメータグラフ表示部、162 プロファイル解析部、190 装置記憶部、191 抽出対象コードリスト、192 抽出コードリスト、193 副制御パラメータリスト、194 副制御パラメータグラフ、195 コード制約データ、196 変換規則データ、200 機器制御装置、201 CPUユニット、202 入出力ユニット、204 ネットワーク、209 周辺機器、210 機器制御プログラム、211 主制御プログラム、212 副制御プログラム、310 副制御パラメータ編集画面、311 編集終了ボタン、410 グラフ形式表示画面、411 表形式表示ボタン、420 表形式表示画面、421 グラフ形式表示ボタン、430 副制御パラメータ編集画面、431 表形式表示ボタン、432 編集終了ボタン、439 部品一覧、901 CPU、902 バス、903 ROM、904 RAM、905 通信ボード、911 ディスプレイ、912 キーボード、913 マウス、914 ドライブ、920 磁気ディスク装置、921 OS、922 プログラム群、923 ファイル群。

Claims (7)

  1. 第一の実行部と第二の実行部とによって実行する対象プログラムに含まれる複数の命令コードのうち、第二の実行部によって実行する命令コードを抽出対象コードとして記憶する抽出対象コード記憶部と、
    前記対象プログラムに含まれる前記複数の命令コードのうち、前記抽出対象コード記憶部に記憶された前記抽出対象コードと同じ命令コードを抽出コードとして抽出する命令コード抽出部と、
    前記第二の実行部によって実行する第二のプログラムとして、前記命令コード抽出部によって抽出された前記抽出コードを含んだプログラムを生成する第二のプログラム生成部と、
    前記第二のプログラムに含まれる一つ以上の命令コードの命令コード毎に、命令コードを構成する一つ以上の要素のそれぞれをパラメータとして抽出するパラメータ抽出部と、
    前記パラメータ抽出部によって抽出された一つ以上のパラメータを命令コード毎に関連付けた図を第二のプログラムグラフとして表すグラフデータを生成するグラフデータ生成部と
    を備えることを特徴とするプログラムグラフ表示装置。
  2. 前記グラフデータ生成部によって生成された前記グラフデータに基づいて前記第二のプログラムグラフを表示するプログラムグラフ表示部を備える
    ことを特徴とする請求項1記載のプログラムグラフ表示装置。
  3. 前記プログラムグラフ表示部によって表示された前記第二のプログラムグラフに対する編集指示に従って、前記第二のプログラムを編集する第二のプログラム編集部を備える
    ことを特徴とする請求項2記載のプログラムグラフ表示装置。
  4. 前記プログラムグラフ表示装置は、制約データ記憶部と、代替コードデータ記憶部とを備え、
    前記制約データ記憶部は、前記第二の実行部に関する命令コードの制約を示す制約データを記憶し、
    前記代替コードデータ記憶部は、命令コード毎に、代替となる複数の命令コードとして代替コード群を示す代替コードデータを記憶し、
    前記第二のプログラム編集部は、編集後の前記第二のプログラムに含まれる命令コードのうち、前記制約データが示す前記制約を満たさない命令コードを変換対象コードとして選択し、
    前記第二のプログラム編集部は、選択した前記変換対象コードと同じ命令コードに対応付けられた代替コードデータを選択し、
    前記第二のプログラム編集部は、選択した前記変換対象コードを、選択した前記代替コードデータが示す代替コード群に置き換える
    ことを特徴とする請求項3記載のプログラムグラフ表示装置。
  5. 前記制約に関する制約情報と前記代替コード群に関する代替コード情報とを含んだデータとして指定されたプロファイルデータに基づいて、前記制約データと前記代替コードデータとを生成するプロファイル解析部を備える
    ことを特徴とする請求項4記載のプログラムグラフ表示装置。
  6. 抽出対象コード記憶部と、命令コード抽出部と、第二のプログラム生成部と、パラメータ抽出部と、グラフデータ生成部とを備えるプログラムグラフ表示装置を用いるプログラムグラフ表示方法であって、
    前記抽出対象コード記憶部は、第一の実行部と第二の実行部とによって実行する対象プログラムに含まれる複数の命令コードのうち、第二の実行部によって実行する命令コードを抽出対象コードとして記憶する記憶部であり、
    前記命令コード抽出部が、前記対象プログラムに含まれる前記複数の命令コードのうち、前記抽出対象コード記憶部に記憶された前記抽出対象コードと同じ命令コードを抽出コードとして抽出し、
    前記第二のプログラム生成部が、前記第二の実行部によって実行する第二のプログラムとして、前記命令コード抽出部によって抽出された前記抽出コードを含んだプログラムを生成し、
    前記パラメータ抽出部が、前記第二のプログラムに含まれる一つ以上の命令コードの命令コード毎に、命令コードを構成する一つ以上の要素のそれぞれをパラメータとして抽出し、
    前記グラフデータ生成部が、前記パラメータ抽出部によって抽出された一つ以上のパラメータを命令コード毎に関連付けた図を第二のプログラムグラフとして表すグラフデータを生成する
    ことを特徴とするプログラムグラフ表示方法。
  7. 請求項1から請求項5いずれかに記載のプログラムグラフ表示装置としてコンピュータを機能させるためのプログラムグラフ表示プログラム。
JP2015510970A 2013-04-08 2013-04-08 プログラムグラフ表示装置、プログラムグラフ表示方法およびプログラムグラフ表示プログラム Expired - Fee Related JP5921765B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/060590 WO2014167623A1 (ja) 2013-04-08 2013-04-08 プログラムグラフ表示装置、プログラムグラフ表示方法およびプログラムグラフ表示プログラム

Publications (2)

Publication Number Publication Date
JP5921765B2 JP5921765B2 (ja) 2016-05-24
JPWO2014167623A1 true JPWO2014167623A1 (ja) 2017-02-16

Family

ID=51689060

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015510970A Expired - Fee Related JP5921765B2 (ja) 2013-04-08 2013-04-08 プログラムグラフ表示装置、プログラムグラフ表示方法およびプログラムグラフ表示プログラム

Country Status (7)

Country Link
US (1) US20160132305A1 (ja)
JP (1) JP5921765B2 (ja)
KR (1) KR101772785B1 (ja)
CN (1) CN105144004B (ja)
DE (1) DE112013006918T5 (ja)
TW (1) TWI497241B (ja)
WO (1) WO2014167623A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10623244B2 (en) * 2014-12-19 2020-04-14 Emerson Process Management Lllp Data transfer on an industrial process network
JP6400558B2 (ja) * 2015-11-17 2018-10-03 ファナック株式会社 シーケンス制御プログラミング装置、シーケンス制御プログラミング方法及び作業システム
JP2020149300A (ja) * 2019-03-13 2020-09-17 オムロン株式会社 グラフ表示装置、グラフ表示方法、及びグラフ表示プログラム
JP7183877B2 (ja) * 2019-03-13 2022-12-06 オムロン株式会社 グラフ表示装置、グラフ表示方法、及びグラフ表示プログラム
JP7172864B2 (ja) 2019-06-07 2022-11-16 オムロン株式会社 サポート装置およびサポートプログラム
CN117608559B (zh) * 2024-01-24 2024-04-19 卡奥斯创智物联科技有限公司 页面显示代码生成方法、装置、电子设备、存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05241619A (ja) * 1992-03-02 1993-09-21 Hitachi Ltd プログラマブルコントローラのプログラミング装置
JP2001325011A (ja) * 2000-05-12 2001-11-22 Omron Corp プログラマブルコントローラシステム
JP2003084813A (ja) * 2001-09-14 2003-03-19 Fuji Electric Co Ltd ラダー回路の編集装置、および、その編集方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0695713A (ja) * 1992-09-14 1994-04-08 Hitachi Ltd プログラマブルコントローラとそのプログラミング方法
US6268853B1 (en) * 1999-09-30 2001-07-31 Rockwell Technologies, L.L.C. Data structure for use in enterprise controls
JP2002041111A (ja) 2000-07-26 2002-02-08 Matsushita Electric Works Ltd プログラミング支援装置
US7272458B2 (en) * 2004-04-13 2007-09-18 Omron Corporation Control system setting device
JP3910196B2 (ja) * 2004-10-21 2007-04-25 ファナック株式会社 シーケンスプログラムの編集装置
JP4924976B2 (ja) * 2005-03-23 2012-04-25 新日鉄ソリューションズ株式会社 ソフトウェア開発支援システム
DE112006003770T5 (de) * 2006-03-29 2009-04-23 Mitsubishi Electric Corporation Programmierungsunterstützungsvorrichtung, Programmierungsunterstützungsverfahren, Programm zum Veranlassen eines Computers, das Verfahren zu Implementieren, und Aufzeichnungsmedium, das das Programm enthält
KR101280083B1 (ko) * 2009-03-25 2013-06-28 미쓰비시덴키 가부시키가이샤 파라미터 설정 장치
CN102640112B (zh) * 2009-12-28 2015-05-13 三菱电机株式会社 程序制作支援装置
JP5163766B2 (ja) * 2011-03-15 2013-03-13 オムロン株式会社 設計支援システム
JP5195955B2 (ja) * 2011-03-15 2013-05-15 オムロン株式会社 設計支援システム
DE112013006915T5 (de) * 2013-04-08 2015-12-24 Mitsubishi Electric Corp. Programmeditiergerät, Programmeditierverfahren und Programmeditierprogramm

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05241619A (ja) * 1992-03-02 1993-09-21 Hitachi Ltd プログラマブルコントローラのプログラミング装置
JP2001325011A (ja) * 2000-05-12 2001-11-22 Omron Corp プログラマブルコントローラシステム
JP2003084813A (ja) * 2001-09-14 2003-03-19 Fuji Electric Co Ltd ラダー回路の編集装置、および、その編集方法

Also Published As

Publication number Publication date
US20160132305A1 (en) 2016-05-12
TWI497241B (zh) 2015-08-21
TW201439700A (zh) 2014-10-16
KR101772785B1 (ko) 2017-08-29
JP5921765B2 (ja) 2016-05-24
CN105144004A (zh) 2015-12-09
DE112013006918T5 (de) 2015-12-24
CN105144004B (zh) 2017-11-10
WO2014167623A1 (ja) 2014-10-16
KR20150139598A (ko) 2015-12-11

Similar Documents

Publication Publication Date Title
JP5921765B2 (ja) プログラムグラフ表示装置、プログラムグラフ表示方法およびプログラムグラフ表示プログラム
CN115495069B (zh) 基于模型驱动的煤炭工业软件流程实现方法、装置及设备
JP5785130B2 (ja) プログラム生成装置
JP7113765B2 (ja) コード管理システムおよびコード管理方法
JP5755389B1 (ja) 作画ソフトウェア
US9684738B2 (en) Text-based command generation
JP5936769B2 (ja) プログラム編集装置、プログラム編集方法およびプログラム編集プログラム
JP2017102872A (ja) 開発装置、開発システム、およびプログラム
JP2020166414A (ja) 開発支援装置、開発支援装置の制御方法、情報処理プログラム、および記録媒体
US11768482B2 (en) Information processing apparatus, ladder-program generation apparatus, information processing method, ladder-program generation method, method of manufacturing product, and recording medium
EP3926465A1 (en) Method and system for creating an app by merging source code
JP5205988B2 (ja) Plcのグローバル変数定義方式
JP2007193425A (ja) 画面データ作成装置、画面データの編集方法及び画面データ編集プログラム
JP2021082031A (ja) プログラム作成支援装置
JP7380376B2 (ja) 情報処理装置およびラダープログラムを表示するためのプログラム
JP2014186617A (ja) 画面操作テスト項目実行装置
KR102588597B1 (ko) Uml 시퀀스 다이어그램의 대체 에디터로서 오퍼레이션 로직 디자이너를 이용하여 프로그램을 설계하는 방법 및 그를 이용한 장치
JP2007047971A (ja) 個別プログラム生成装置及び方法
JP2003223204A (ja) プログラマブルコントローラのプログラミング方法およびその装置並びに記憶媒体
JP2016014951A (ja) 情報処理装置及び情報処理方法及びプログラム
JP2000347840A (ja) ソースプログラム自動生成装置、ソースプログラム自動生成方法およびその方法を記録した記録媒体
JP2022142493A (ja) シミュレーション装置
JP5629355B1 (ja) ソースプログラム生成装置およびソースプログラム生成プログラム
JP2020064519A (ja) 情報処理装置、表示制御方法及びプログラム
JP2016071388A (ja) ジョブ管理システム

Legal Events

Date Code Title Description
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: 20160315

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160412

R150 Certificate of patent or registration of utility model

Ref document number: 5921765

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees