JP7340494B2 - 制御コントローラのプログラム作成装置並びに方法 - Google Patents

制御コントローラのプログラム作成装置並びに方法 Download PDF

Info

Publication number
JP7340494B2
JP7340494B2 JP2020114796A JP2020114796A JP7340494B2 JP 7340494 B2 JP7340494 B2 JP 7340494B2 JP 2020114796 A JP2020114796 A JP 2020114796A JP 2020114796 A JP2020114796 A JP 2020114796A JP 7340494 B2 JP7340494 B2 JP 7340494B2
Authority
JP
Japan
Prior art keywords
function block
block information
information
function
fbd
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
JP2020114796A
Other languages
English (en)
Other versions
JP2022012742A (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2020114796A priority Critical patent/JP7340494B2/ja
Priority to PCT/JP2021/015169 priority patent/WO2022004095A1/ja
Publication of JP2022012742A publication Critical patent/JP2022012742A/ja
Application granted granted Critical
Publication of JP7340494B2 publication Critical patent/JP7340494B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)
  • Stored Programmes (AREA)

Description

本発明は、例えば、上下水道プラント等の監視制御を行うプラント監視制御システムに備わる制御コントローラにおいて実行されるプログラム作成装置並びに方法に関する。
プラント監視制御システムに用いられる計算機としては、PLC(プログラマブルロジックコントローラ)をはじめとした制御コントローラがある。
制御コントローラにおけるアプリケーションソフトウェアは、国際規格であるIEC61131-3に準拠したプログラミング言語が広く採用されており、その1つに、信号やデータの流れを描くグラフィック言語としてFBD(ファンクションブロックダイアグラム)がある。
FBDでは、四則演算や論理演算、比例積分微分演算PIDをはじめとするサブルーチンなどをファンクションブロックとして組み合わせ、必要に応じてファンクションブロック同士を結線し、信号やデータの流れを定義する。また、FBDの作成は、計装フロー図などの上流設計図書をもとに、実行順序を意識して作成していく。フィードバック制御を作成する場合、信号やデータの流れを可視化できるFBDが用いられる場合が多い。
本技術分野の背景技術としては、特許文献1が知られている。特許文献1では、実行順序を意識してFBDを作成する過程について、担当者の能力に左右されることから、均一な品質が保てないことを問題点として挙げ、上流設計図書に記載された計装フロー図と同様な図となるようにFBDにてファンクションブロックを配置、結線すれば、深さ優先探索を用いて実行順序の自動付番を可能とする手段を提案している。
特許第3177105号
図1は、従来のプログラム作成方法における3つの回路を定義したFBDシートを示す図である。図1に示すように、あるFBDシートにおいて、ファンクションブロックB(B1(B1:B1a~B1c)、B2、B3、B4、B5)を配置して、信号線6を接続して回路を定義したとする。これらファンクションブロックB(B1(B1:B1a~B1c)、B2、B3、B4、B5)の処理機能がFA(FA1、FA2、FA3)、FB、FC、FD、FEである。このうち、ファンクションブロックB1a~B1cは、同一機能FA(FA1、FA2、FA3)として例えば比例積分演算機能のファンクションブロックである。
図2は、図1の結線の場合における、各制御周期内での処理順序を表しており、当該制御周期の初期段階で設定されたデータを用いて、B1a→B2、B3→B1b→B4、B1c→B5の順序での処理機能が実行されることになる。
これに対し、各制御周期内での処理順序をファンクションブロックB1aのみ、1実行周期ずれたデータを用いた演算となるようにフィードバック記述としたい場合がある。この処理に関して、特許文献1に示す実行順序の自動付番手段では、みなし結線10のような破線に示す結合関係があることを前提に深さ優先探索処理が実行されるため、図3のデータフロー図に示すような実行順序となり、フィードバック記述にはならない。図3の実行順序ではB3→B1b→B1a→B2→B4→B1c→B5の順序での処理機能が実行される。
また、仮に自動付番後に実行順序を任意に変更できたとしても、担当者の手作業が介入するために、他のファンクションブロックB(B1(B1:B1a~B1c)、B2、B3、B4、B5)の実行順序の変更ミスなどを引き起こす恐れがあることから、ソフトウェアとして均一な品質を保つことは困難である。
加えて、特許文献1では、実行順序を自動決定する手段はプログラム作成装置ではなく制御装置にあるため、FBDの作成中に各ファンクションブロックの実行順序を視覚的に認識することができず、自動決定した実行順序が、担当者が想定していた実行順序と異なった場合に、修正箇所を見つけることが容易ではない。
本発明は、上記に鑑みてなされたものであって、同一のFBDシート内において同一機能のファンクションブロックを複数個配置した場合においても、任意のファンクションブロックにおいてフィードバック演算を実現できる実行順序の自動付番が可能であり、また、実行順序の自動付番をプログラム作成装置にて実施することで、視覚的に各ファンクションブロックの実行順序を認識可能とするプログラム作成装置を提供することを目的とする。
以上のことから本発明においては、「FBDシート上で複数のファンクションブロックの間を信号線により結線してプログラムを作成するプログラム作成装置であって、FBDシートにファンクションブロックが新たに定義された際に、少なくともファンクションブロックのFBDシート上の座標と、フィードバック記述有無を含む使用ファンクションブロック情報を形成するファンクションブロック情報抽出処理部と、ファンクションブロックに信号線が新たに接続された際に、使用ファンクションブロック情報に、入力端子接続有無フラグと、出力端子接続有無フラグを追加する信号線情報抽出処理部と、使用ファンクションブロック情報に含まれる座標を用いて、複数のファンクションブロックの実行順序を仮番号として定める仮番号付与処理部と、同一機能のファンクションブロックが複数ある場合に、信号線が接続された関係とみなし、使用ファンクションブロック情報内の入力端子接続有無フラグと出力端子接続有無フラグを接続ありと修正し、ファンクションブロックの結合関係をマトリクステーブルとして作成し、使用ファンクションブロック情報内のフィードバック記述有無をもとに、マトリクステーブルを修正する結合関係抽出処理部と、
修正されたマトリクステーブルを参照して深さ優先探索を行い、深さ優先探索の結果から実行順序を決定し、使用ファンクションブロック情報に前記実行順序を追加し、実行順序をFBDシート上に表示する実行順序決定処理部を含むことを特徴とするプログラム作成装置」としたものである。
本発明においては、「FBDシート上で複数のファンクションブロックの間を信号線により結線してプログラムを作成するプログラム作成方法であって、FBDシートにファンクションブロックが新たに定義された際に、少なくともファンクションブロックのFBDシート上の座標と、フィードバック記述有無を含む使用ファンクションブロック情報を形成するファンクションブロック情報抽出処理と、ファンクションブロックに信号線が新たに接続された際に、使用ファンクションブロック情報に、入力端子接続有無フラグと、出力端子接続有無フラグを追加する信号線情報抽出処理と、使用ファンクションブロック情報に含まれる座標を用いて、複数のファンクションブロックの実行順序を仮番号として定める仮番号付与処理部と、同一機能のファンクションブロックが複数ある場合に、信号線が接続された関係とみなし、使用ファンクションブロック情報内の入力端子接続有無フラグと出力端子接続有無フラグを接続ありと修正し、ファンクションブロックの結合関係をマトリクステーブルとして作成し、使用ファンクションブロック情報内のフィードバック記述有無をもとに、マトリクステーブルを修正する結合関係抽出処理と、修正されたマトリクステーブルを参照して深さ優先探索を行い、深さ優先探索の結果から実行順序を決定し、使用ファンクションブロック情報に前記実行順序を追加し、実行順序をFBDシート上に表示する実行順序決定処理を実行することを特徴とするプログラム作成方法」としたものである。
本発明によれば、担当者が個々のファンクションブロックに対して設定したフィードバック演算要否の属性情報を踏まえた結合関係を抽出することで、各ファンクションブロックに対してフィードバック演算を考慮したうえで、深さ優先探索による実行順序の自動付番が可能となる。
従来のプログラム作成方法における3つの回路を定義したFBDシートを示す図。 図1の結線の場合における、各制御周期内での処理順序を示す図。 図1の結線の場合における、従来のプログラム作成方法による実行順序の自動付番結果を示すデータフロー図。 本発明の実施例に係るプログラム作成装置と制御コントローラが接続された構成例を示す図。 使用ファンクションブロック情報格納部の構成例を示す図。 結合関係情報格納部の構成例を示す図。 ファンクションブロック情報抽出処理フローを示す図。 信号線情報抽出処理フローを示す図。 仮番号付与処理フローを示す図。 座標比較方法の考え方を示す図。 結合関係抽出処理フローを示す図。 結合関係抽出処理部のマトリクステーブルを示す図。 実行順序決定処理部における処理フローを示す図。 結合関係抽出処理後のマトリクステーブルを示す図。 深さ優先探索結果を示す図。 実行順序決定結果を示す図。 FBDシート上のファンクションブロックへの実行順序表示を示す図。
本発明の実施例について図面を参照して説明する。本発明の実施例に係るプログラム作成装置を図4~図12により説明する。
図4は本実施例のプログラム作成装置がプログラムのロード対象となる制御コントローラと接続された構成例を示す図である。プログラム作成装置50は、制御コントローラ51が外部機器52に対してシーケンス制御やフィードバック制御を実施するために必要な、アプリケーションソフトウェアを作成するラップトップPC(Personal Computer)やデスクトップPC、産業用PCなどの計算機装置である。
プログラム作成装置50は、演算装置62が記憶装置60を参照して演算を実行し、入出力装置61を介して制御コントローラ51を含む外部端末とデータの授受を行う。
記憶装置60には、ファンクションブロックライブラリ91に格納されたファンクションブロックを使用して回路を定義し、コンパイラによりオブジェクトコードへ変換された後に制御コントローラ51へローディングする複数のFBDシートを格納するFBDシート格納部90を備える。
このFBDシート格納部90に格納されたFBDシートに対する処理として、記憶装置60内にファンクションブロック情報抽出処理部80と、仮番号付与処理部81と、結合関係抽出処理部82と、実行順序決定処理部83を備える。
ファンクションブロック情報抽出処理部80は、FBDシート格納部90に格納されたFBDシートに定義したファンクションブロック単位に、使用ファンクションブロック情報格納部92へ抽出した情報を格納する。
信号線情報抽出処理部81は、FBDシート格納部90に格納されたFBDシートに定義したファンクションブロック単位に、信号線が接続された場合に使用ファンクションブロック情報格納部92へ接続情報を格納する。
仮番号付与処理部82は、信号線情報抽出処理部81の実行完了後に実行され、使用ファンクションブロック情報格納部92に格納された情報をもとに、仮番号を決定し、使用ファンクションブロック情報格納部92に対して決定した仮番号情報を格納する。
結合関係抽出処理部83は、仮番号付与処理部82の実行完了後に実行され、FBDシート格納部90に格納されたFBDシートと使用ファンクションブロック情報格納部92に格納された情報をもとに結合関係を抽出し、結合関係情報格納部93へ抽出した情報を格納する。
実行順序決定処理部84は、結合関係抽出処理部83の実行完了後に実行され、使用ファンクションブロック情報格納部92および結合関係情報格納部93に格納された情報をもとに各ファンクションブロックの実行順序を決定し、使用ファンクションブロック情報格納部92へ決定した実行順序情報を格納する。
図5は、図4で示した使用ファンクションブロック情報格納部92の構成例を示す。使用ファンクションブロック情報格納部92は、n個の使用ファンクションブロック情報100(100-1、100-2、100-3、・・・100n)を格納している。各使用ファンクションブロック情報100は、ファンクションブロックID110と、定義No.111と、x座標112と、y座標113と、入力端子接続有無フラグ114と、出力端子接続有無フラグ115と、実行順序設定フラグ116と、実行順序117と、フィードバック記述フラグ118を1つの使用ファンクションブロック情報として備えている。これにより、当該ファンクションブロックにおける処理機能、配置される座標、入出力端子および他との接続関係、実行順序などをファンクションブロックごとに定義することができる。なお実行順序117と、フィードバック記述フラグ118は、最後に設定され、フィードバック記述フラグ118ユーザ設定情報である。
図6は、図4で示した結合関係情報格納部93の構成例を示す。結合関係情報格納部93は、使用ファンクションブロック100-1から使用ファンクションブロック情報100-3のn個の結合関係をフラグで示すマトリクステーブル130を備える。これにより、使用ファンクションブロック100は、その入出力端子を介して他のどの使用ファンクションブロック100と結合関係にあるのかが一覧できる。
図7は、図4で示したファンクションブロック情報抽出処理部80における処理フローを示す。当該処理フローは、FBDシート格納部90に格納されたFBDシートの編集中は常に実行されるものである。この処理では、FBDシートの編集中に新たなファンクションブロックがある場合に、このファンクションブロックに新たな情報(ID、座標、フィードバック)を付与して、使用ファンクションブロック情報100を生成し、使用ファンクションブロック情報格納部92に格納する機能である。
図7の最初の処理ステップS200では、編集中のFBDシートにおいて、新たにファンクションブロックを定義したタイミングか否かを判定する処理を行う。新たにファンクションブロックを定義したタイミングの場合、処理ステップS201へ移行する。新たにファンクションブロックを定義したタイミングではない場合、自身の処理ステップS200へ戻る。
処理ステップS201では、使用ファンクションブロック情報格納部92に、新たな使用ファンクションブロック情報を追加し処理ステップS202へ移行する。例えば、当該FBDシートにおいて、2つ目に定義されたファンクションブロックの場合、使用ファンクションブロック情報100-2を作成する。
処理ステップS202では、処理ステップS201にて作成したファンクションブロック情報100-2に対し、ファンクションブロックライブラリ91より、当該ファンクションブロックのIDを抽出し、ファンクションブロックID(図5の110)へ格納し処理ステップS203へ移行する。
処理ステップS203では、処理ステップS201にて作成したファンクションブロック情報100-2に対し、定義された順番を昇順に格納し処理ステップS204へ移行する。例えば、使用ファンクションブロック情報100-1の場合は、1を格納し、使用ファンクションブロック情報100-nの場合は、nを格納する。
処理ステップS204では、FBDシートにおいて当該ファンクションブロックが定義された座標(x座標およびy座標)を抽出し、図5の使用ファンクションブロック情報内のx座標112とy座標113にそれぞれ格納し処理ステップS205へ移行する。なお、ファンクションブロックの大きさは、種類により変わることから、ファンクションブロックライブラリ91においてファンクションブロックごとに抽出される位置をあらかじめ定義しているものとする。
処理ステップS205では、使用ファンクションブロック格納部92の使用ファンクションブロック情報100-1から使用ファンクションブロック100-nにおいて、当該ファンクションブロックの情報が格納された使用ファンクションブロック情報に対し、フィードバック記述フラグ118を登録し、処理ステップS206へ移行する。フィードバック記述は、例えば担当者がFBDシート上にファンクションブロックを定義する際に、ファンクションブロックに対する付加情報として設定できるものであり、フィードバック記述有りの場合はON、無しの場合はOFFのようにフラグを登録する。
処理ステップS206では、FBDシート格納部90に格納されたFBDシートの編集が終了したか否かを判定する処理を行う。編集が終了した場合は、当該処理を終了する。編集が終了していない場合は、処理ステップS200へ移行する。
図8は、図4で示した信号線情報抽出処理部81における処理フローを示す。当該処理フローは、FBDシート格納部90に格納されたFBDシートの編集中は常に実行されるものである。図7の処理が完了した状態では、FBDシート上にファンクションブロックのみが記述され、他のファンクションブロックとの接続関係が定義されていないことから、信号線情報抽出処理部81における処理では接続関係を定義していく。
図8の処理ステップS220では、編集中のFBDシートにおいて、定義されたファンクションブロックに対して新たに信号線が接続されたタイミングが否かを判定する処理を行う。ファンクションブロックに新たに信号線が接続されたタイミングの場合、処理ステップS221へ移行する。新たに信号線が接続されたタイミングではない場合、処理ステップS225へ移行する。
処理ステップS221では、当該ファンクションブロックの入力端子に信号線が接続されたか否かを判定する処理を行う。当該ファンクションブロックの入力端子に信号線が接続された場合は処理ステップS222へ移行する。当該ファンクションブロックの入力端子に信号線が接続されていない場合は処理ステップS223へ移行する。
処理ステップS222では、使用ファンクションブロック格納部92の使用ファンクションブロック情報100-1から使用ファンクションブロック100-nにおいて、当該ファンクションブロックの情報が格納された使用ファンクションブロック情報に対し、図5の入力端子接続有無フラグ114をOFFからONへ変更し、処理ステップS223へ移行する。
処理ステップS223では、当該ファンクションブロックの出力端子に信号線が接続されたか否かを判定する処理を行う。当該ファンクションブロックの出力端子に信号線が接続された場合は処理ステップS224へ移行する。当該ファンクションブロックの出力端子に信号線が接続されていない場合は処理ステップS225へ移行する。
処理ステップS224では、使用ファンクションブロック格納部92の使用ファンクションブロック情報100-1から使用ファンクションブロック100-nにおいて、当該ファンクションブロックの情報が格納された使用ファンクションブロック情報に対し、図5の出力端子接続有無フラグ115をOFFからONへ変更し、処理ステップS225へ移行する。
処理ステップS225では、編集中のFBDシートにおいて、定義されたファンクションブロックに対して既に接続されていた信号線が削除されたタイミングか否かを判定する処理を行う。ファンクションブロックに対して既に接続されていた信号線が削除されたタイミングの場合、処理ステップS226へ移行する。ファンクションブロックに対して既に接続されていた信号線が削除されたタイミングではない場合、処理ステップS220へ移行する。
処理ステップS226では、当該ファンクションブロックの入力端子に接続された信号線が削除されたか否かの判定を行う。当該ファンクションブロックの入力端子に接続された信号線が削除された場合は処理ステップS227へ移行する。当該ファンクションブロックの入力端子に接続された信号線が削除されていない場合は処理ステップS228へ移行する。
処理ステップS227では、使用ファンクションブロック格納部92の使用ファンクションブロック情報100-1から使用ファンクションブロック100-nにおいて、当該ファンクションブロックの情報が格納された使用ファンクションブロック情報に対し、図5の入力端子接続有無フラグ114をONからOFFへ変更し、処理ステップS228へ移行する。
処理ステップS228では、当該ファンクションブロックの出力端子に接続された信号線が削除されたか否かの判定を行う。ファンクションブロックに対して既に接続されていた信号線が削除されたタイミングの場合、処理ステップS229へ移行する。ファンクションブロックに対して既に接続されていた信号線が削除されたタイミングではない場合、処理ステップS230へ移行する。
処理ステップS229では、使用ファンクションブロック格納部92の使用ファンクションブロック情報100-1から使用ファンクションブロック100-nにおいて、当該ファンクションブロックの情報が格納された使用ファンクションブロック情報に対し、図5の出力端子接続有無フラグ115をONからOFFへ変更し、処理ステップS230へ移行する。
処理ステップS230では、FBDシート格納部90に格納されたFBDシートの編集が終了したか否かを判定する処理を行う。編集が終了した場合は、当該処理を終了する。編集が終了していない場合は、処理ステップS220へ移行する。
図9は、図4で示した仮番号付与処理部82における処理フローを示している。図9の処理フローの最初の処理ステップS250では、使用ファンクションブロック情報格納部92に格納された使用ファンクションブロック情報100-1から昇順に、x座標112とy座標113を抽出する。
処理ステップS251では、処理ステップS250にて取得したx座標112とy座標113をもとに、他の使用ファンクションブロック情報に格納されたx座標112とy座標113と比較し、使用ファンクションブロック情報100-1~使用ファンクションブロック情報100-nに格納された情報をソートする。これは例えば、図1のファンクションブロックB2に着目した時、B2の座標と近くにある他のファンクションブロックB1a、B3、B1b、B4の座標との間の位置関係を判定することを意味する。
座標比較には、いくつかの手法があるが数式比較で実施する座標比較方法では、(y座標―nx)を計算し、この式により算出した結果をx座標112の降順優先として比較し、計算結果が同値の場合はx座標112の昇順優先とする。
図を用いた座標比較方法では、図10のように判断する。図10の座標平面上において、ファンクションブロックB2の中心座標点261を起点に、点線で示す斜線の比較線262を展開し、比較線262上に他のファンクションブロック260の座標点261が重なった場合は、x座標112を昇順優先とし仮番号を決定する。比較線262の傾きは、上記した計算式(y座標―nx)におけるパラメータnを調節することで可変となり、n=1では水平な比較線262となる。
決定した仮番号にもとづき、使用ファンクションブロック情報格納部92に格納された使用ファンクションブロック情報100-1から使用ファンクションブロック情報10―nを仮番号の昇順にソートする。ソートの完了後、当該処理を終了する。
図10の配置関係の場合、最初にn=1の水平の比較線262を展開してファンクションブロックB1aを検知し、x座標112を昇順優先とした仮番号により、ファンクションブロックB1aを1とし、自己であるB2を2とする。次に、比較線262の傾きを大きくしながら展開する結果としてファンクションブロックB3を検知し、x座標112を昇順優先とした仮番号により、ファンクションブロックB3を3とし、B3と同列のB1b、B4について順次x座標112を昇順優先とした仮番号により4、5とする。同様にして、B1cを6、B5を7とする。これにより、図2の順番関係が確認された。
図11は、図4で示した結合関係抽出処理部83における処理フローの一例を示す。図11の処理フローの最初の処理ステップS300では、みなし結線処理を行う。みなし結線処理では、まず仮番号付与処理部82により仮番号の昇順にソートされた使用ファンクションブロック情報格納部92の使用ファンクションブロック情報において、入力端子接続有無フラグ114がOFFである使用ファンクションブロック情報を確認する。
次に、入力端子接続有無フラグ114がOFFである使用ファンクションブロック情報がある場合に、同一機能の他使用ファンクションブロックの出力端子と信号線で接続されているものとみなし、当該使用ファンクションブロック情報の入力端子接続有無フラグ114をOFFからONに変更し、処理ステップS301へ移行する。
みなし結線処理について図1の例では、同一機能のファンクションブロックとしてファンクションブロックB1a、ファンクションブロックB1b、ファンクションブロックB1cが存在しており、入力端子に信号線の接続がないファンクションブロックB1aおよびファンクションブロックB1cの入力端子と、(入力端子に信号線の接続がある同一機能の)ファンクションブロックB1bの出力端子との間に、信号線(図3のみなし結線10)があると仮定する。具体的には、使用ファンクションブロック情報格納部92の使用ファンクションブロック情報100-1から使用ファンクションブロック情報100-nにおける、ファンクションブロックB1aおよびファンクションブロックB1cに該当する使用ファンクションブロック情報の入力端子接続有無フラグ114をOFFからONに変更するものである。
処理ステップS301では、使用ファンクションブロック情報格納部92の使用ファンクションブロック情報100-1から使用ファンクションブロック情報100-nにおける入力端子接続有無フラグ114を昇順にすべて探索し、入力端子接続有無フラグ114がONである使用ファンクションブロック情報について、FBDシートにて当該ファンクションブロックの入力端子と信号線で接続された出力端子を有するファンクションブロックを探索し、該当する使用ファンクションブロック情報のNo.(100-1~100-n)を抽出し、処理ステップS302へ移行する。
処理ステップS302では、処理ステップS301にて抽出した使用ファンクションブロック情報のNo.(100-1~100-n)をもとに、結合関係情報格納部93のマトリクステーブル130における該当箇所のフラグ処理を行い、処理ステップS303へ移行する。
当該処理は、例えば図1に示すようなファンクションブロックが定義されており、同一機能のファンクションブロックB1a、ファンクションブロックB1b、ファンクションブロックB1cが存在し、ファンクションブロックB1aのみフィードバック記述フラグがONになっていた場合において、当該処理によるマトリクステーブル130は図12の結合関係情報格納部93のマトリクステーブル130に示すような結果となる。このマトリクス130の表記によれば、1が異なるファンクションブロックの入出力端子間に接続ありを表しており、実際の接続関係(4組)以外にみなし結線(2組)を含む、合計6組の接続関係が記述されていることがわかる。
処理ステップS303では、まず使用ファンクションブロック情報格納部92の使用ファンクションブロック情報において、フィードバック記述フラグ118がONである使用ファンクションブロック情報があることを確認する。
フィードバック記述フラグ118がONである使用ファンクションブロック情報がある場合には、当該使用ファンクションブロックの結合関係を結合関係情報格納部93のマトリクステーブル130を参照し、フラグがONである使用ファンクションブロック情報を探索し、同一機能の他ファンクションブロックと接続されていた場合は、マトリクステーブル130の該当箇所のフラグをONからOFFに修正し、処理を終了する。
当該処理は、例えば図1に示すようなファンクションブロックが定義されており、同一機能のファンクションブロックB1a、ファンクションブロックB1b、ファンクションブロックB1cが存在し、ファンクションブロックB1aのみフィードバック記述フラグがONになっていた場合において、当該処理ステップS303の処理によるマトリクステーブル130は図14に示すような結果となり、図12のマトリクステーブル130に示す結果と比べると、(1)と記載された箇所が当該処理によりOFFとなっていることがわかる。
図13は、図4で示した実行順序決定処理部84における処理フローを示す。図13の最初の処理ステップS350では、使用ファンクションブロック情報格納部92の使用ファンクションブロック情報100-1から使用ファンクションブロック情報100-nの実行順序設定フラグ116を初期化(OFF)し、処理ステップS351へ移行する。
処理ステップS351では、結合関係情報格納部93のマトリクステーブル130において、行単位かつ降順に使用ファンクションブロック情報格納部92の実行順序設定フラグ116がOFFとなっている使用ファンクションブロックを探索し、処理ステップS352へ移行する。
処理ステップS352では、処理ステップS351の探索処理において、すべてフラグがOFF、つまり入力端子に信号線の接続がない使用ファンクションブロックか否かを判定する処理を行う。すべてフラグがOFFである使用ファンクションブロックの場合は処理ステップS353へ移行する。フラグが1か所でもONである使用ファンクションブロックの場合は処理ステップS351へ移行し、すべてフラグがOFFである使用ファンクションブロックの場合を抽出する。
処理ステップS353では、該当使用ファンクションブロックを開始点とし、深さ優先探索処理を行い、処理ステップS354へ移行する。当該処理におけるアルゴリズムは以下の3組とする。
アルゴリズム1:該当使用ファンクションブロックを開始点とし、結合関係情報格納部93のマトリクステーブル130において深さ優先探索処理を行い、列をキーとして使用ファンクションブロックのフラグを抽出し、すべてのフラグがOFFである使用ファンクションブロックまで探索後、探索した使用ファンクションブロックの順序を逆順に拾い上げていく。
アルゴリズム2:深さ優先探索中にすでに拾い上げられた使用ファンクションブロックが検出された場合は、その開始点となるファンクションブロックのみを拾い上げの対象とする。
アルゴリズム3:深さ優先探索中に信号線の分岐により、複数の使用ファンクションブロックが存在した場合は、使用ファンクションブロック情報No.をキーとして昇順に優先探索する。つまり、結合関係情報格納部93のマトリクステーブル130において、列をキーとして当該使用ファンクションブロックのフラグを抽出し、フラグがONとなっている使用ファンクションブロックNo.を昇順に優先して探索を進める。
処理ステップS355では、探索により拾い上げた使用ファンクションブロックについて、使用ファンクションブロック情報格納部92における使用ファンクションブロック情報100-1から使用ファンクションブロック情報100-nにおいて、当該使用ファンクションブロックの情報が格納された使用ファンクションブロック情報に対し、実行順序設定フラグ116をOFFからONへ変更し、処理ステップS355へ移行する。
処理ステップS355では、結合関係情報格納部93のマトリクステーブル130において、使用ファンクションブロックをすべて探索したか否か、つまり、使用ファンクションブロック情報格納部92において使用ファンクションブロック情報100-1から使用ファンクションブロック情報100-nのすべての実行順序設定フラグ116がすべてONとなったか否かを判定する処理を行う。すべて探索した場合、処理ステップS356へ移行する。すべて探索できていない場合、処理ステップS351へ移行する。
処理ステップS356では、処理ステップS355にて拾い上げられた順序を、使用ファンクションブロック情報格納部92の使用ファンクションブロック情報100-1から使用ファンクションブロック情報100-nの実行順序117に格納し、処理を終了する。
当該処理による深さ優先探索結果、および実行順序決定結果は、図15の深さ優先探索結果、図16の実行順序決定結果に示すようである。ただし当該処理は、例えば図1に示すようなファンクションブロックが定義されており、同一機能のファンクションブロックB1a、ファンクションブロックB1b、ファンクションブロックB1cが存在し、ファンクションブロックB1aのみフィードバック記述フラグがONになっていた場合を前提としている。
なお図15の深さ優先探索結果は、ブロック名ではなく、処理機能の一巡の順番で表記しており、かっこを付して示す記述は拾い上げ多機能であることを表している。またグループごとに記述している。図16の実行順序は、ファンクションブロック名とその処理機能で記述されている。
当該処理により、図2のデータフロー図に示すような担当者が想定する実行順序と同一の自動付番結果を得ることができる。また、プログラム作成装置50に当該処理を設けることで、図17のFBDシート上のファンクションブロックへの実行順序表示に示すように、各ファンクションブロックに対して、使用ファンクションブロック情報格納部92の使用ファンクションブロック情報100-1から使用ファンクションブロック情報100-nにおける実行順序117をもとに、実行順序200を表示することが可能となる。
B1a:処理機能FA1のファンクションブロック
B1b:処理機能FA2のファンクションブロック
B1c:処理機能FA3のファンクションブロック
B2:処理機能FBのファンクションブロック
B3:処理機能FCのファンクションブロック
B4:処理機能FDのファンクションブロック
B5:処理機能FEのファンクションブロック
6:信号線
10:みなし結線
50:プログラム作成装置
51:制御コントローラ
52:外部機器
60:記憶装置
61:出力装置
62:入力装置
63:演算装置
64:通信装置
80:ファンクションブロック情報抽出処理部
81:信号線情報抽出処理部
82:仮番号付与処理部
83:結語関係抽出処理部
84:実行順序決定処理部
90:FBDシート格納部
91:ファンクションブロックライブラリ
92:使用ファンクションブロック情報格納部
93:結合関係情報格納部
100:使用ファンクションブロック情報1
101:使用ファンクションブロック情報2
102:使用ファンクションブロック情報3
103:使用ファンクションブロック情報n
110:ファンクションブロックID
111:定義No.
112:x座標
113:y座標
114:入力端子接続有無フラグ
115:出力端子接続有無フラグ
116:実行順序設定フラグ
117:実行順序
118:フィードバック記述フラグ
150:マトリクステーブル
200:実行順序

Claims (5)

  1. FBDシート上で複数のファンクションブロックの間を信号線により結線してプログラムを作成するプログラム作成装置であって、
    FBDシートにファンクションブロックが新たに定義された際に、少なくともファンクションブロックのFBDシート上の座標と、フィードバック記述有無を含む使用ファンクションブロック情報を形成するファンクションブロック情報抽出処理部と、
    前記ファンクションブロックに信号線が新たに接続された際に、前記使用ファンクションブロック情報に、入力端子接続有無フラグと、出力端子接続有無フラグを追加する信号線情報抽出処理部と、
    同一機能の前記ファンクションブロックが複数ある場合に、入力端子に信号線の接続がない同一機能の前記ファンクションブロックの入力端子と、入力端子に信号線の接続がある同一機能の前記ファンクションブロックの出力端子との間は前記信号線が接続された関係とみなし、前記使用ファンクションブロック情報内の前記入力端子接続有無フラグと前記出力端子接続有無フラグを接続ありと修正し、前記ファンクションブロックの結合関係をマトリクステーブルとして作成し、前記使用ファンクションブロック情報内の前記フィードバック記述有無をもとに、前記マトリクステーブルを修正する結合関係抽出処理部と、
    修正された前記マトリクステーブルを参照して深さ優先探索を行い、前記深さ優先探索の結果から実行順序を決定し、前記使用ファンクションブロック情報に前記実行順序を追加し、前記実行順序を前記FBDシート上に表示する実行順序決定処理部を含むことを特徴とするプログラム作成装置。
  2. 請求項1に記載のプログラム作成装置であって、
    前記ファンクションブロックの機能毎に一意となるファンクションブロックIDと、前記使用ファンクションブロック情報における前記座標を抽出するための位置情報を含み、
    前記FBDシートに定義する前記ファンクションブロックについて、前記FBDシートに定義するために必要な情報を機能毎に登録したファンクションライブラリを備えることを特徴とするプログラム作成装置。
  3. 請求項1または請求項2に記載のプログラム作成装置であって、
    前記使用ファンクションブロック情報に含まれる前記座標を用いて、複数のファンクションブロックの実行順序を仮番号として定める仮番号付与処理部を備えるとともに、前記使用ファンクションブロック情報の前記座標は、2次元座標としてx座標とy座標を備え、
    前記仮番号付与処理部は、すべての前記使用ファンクションブロック情報の前記y座標から係数を乗じた前記x座標を除算した結果に対して降順にソートし、仮番号とする処理と、前記結果が同値となった前記使用ファンクションブロック情報が複数存在した場合は、前記x座標を昇順に優先してソートし、仮番号とすることを特徴とするプログラム作成装置。
  4. 請求項2に記載のプログラム作成装置であって、
    前記結合関係抽出処理部は、前記使用ファンクションブロック情報の前記フィードバック記述有無をもとに、前記マトリクステーブルを修正する処理において、前記ファンクションブロックの前記入力端子接続有無フラグがOFF、かつ、前記フィードバック記述有無が有りの場合には、前記入力端子接続有無フラグがON、かつ、前記ファンクションブロックIDが同一の他の前記ファンクションブロックと結合関係がないものとみなし、前記マトリクステーブルの該当箇所を変更することを特徴とするプログラム作成装置。
  5. 計算機を用いて、FBDシート上で複数のファンクションブロックの間を信号線により結線してプログラムを作成するプログラム作成方法であって、
    前記計算機の演算部は、FBDシートにファンクションブロックが新たに定義された際に、少なくともファンクションブロックのFBDシート上の座標と、フィードバック記述有無を含む使用ファンクションブロック情報を形成するファンクションブロック情報抽出処理と、
    前記ファンクションブロックに信号線が新たに接続された際に、前記使用ファンクションブロック情報に、入力端子接続有無フラグと、出力端子接続有無フラグを追加する信号線情報抽出処理と、
    同一機能の前記ファンクションブロックが複数ある場合に、入力端子に信号線の接続がない同一機能の前記ファンクションブロックの入力端子と、入力端子に信号線の接続がある同一機能の前記ファンクションブロックの出力端子との間は前記信号線が接続された関係とみなし、前記使用ファンクションブロック情報内の前記入力端子接続有無フラグと前記出力端子接続有無フラグを接続ありと修正し、前記ファンクションブロックの結合関係をマトリクステーブルとして作成し、前記使用ファンクションブロック情報内の前記フィードバック記述有無をもとに、前記マトリクステーブルを修正する結合関係抽出処理と、
    修正された前記マトリクステーブルを参照して深さ優先探索を行い、前記深さ優先探索の結果から実行順序を決定し、前記使用ファンクションブロック情報に前記実行順序を追加し、前記実行順序を前記FBDシート上に表示する実行順序決定処理を実行することを特徴とするプログラム作成方法。
JP2020114796A 2020-07-02 2020-07-02 制御コントローラのプログラム作成装置並びに方法 Active JP7340494B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020114796A JP7340494B2 (ja) 2020-07-02 2020-07-02 制御コントローラのプログラム作成装置並びに方法
PCT/JP2021/015169 WO2022004095A1 (ja) 2020-07-02 2021-04-12 プログラム作成装置並びに方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020114796A JP7340494B2 (ja) 2020-07-02 2020-07-02 制御コントローラのプログラム作成装置並びに方法

Publications (2)

Publication Number Publication Date
JP2022012742A JP2022012742A (ja) 2022-01-17
JP7340494B2 true JP7340494B2 (ja) 2023-09-07

Family

ID=79315727

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020114796A Active JP7340494B2 (ja) 2020-07-02 2020-07-02 制御コントローラのプログラム作成装置並びに方法

Country Status (2)

Country Link
JP (1) JP7340494B2 (ja)
WO (1) WO2022004095A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012159868A (ja) 2011-01-28 2012-08-23 Mitsubishi Electric Corp プログラマブルロジックコントローラのプログラミング装置
WO2014170992A1 (ja) 2013-04-18 2014-10-23 三菱電機株式会社 プログラミングツール

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3177105B2 (ja) * 1994-10-03 2001-06-18 株式会社東芝 プログラム作成方法及びプログラムを用いた制御装置
US7200448B2 (en) * 2001-11-27 2007-04-03 Rockwell Automation Technologies, Inc. System and method for function block execution order generation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012159868A (ja) 2011-01-28 2012-08-23 Mitsubishi Electric Corp プログラマブルロジックコントローラのプログラミング装置
WO2014170992A1 (ja) 2013-04-18 2014-10-23 三菱電機株式会社 プログラミングツール

Also Published As

Publication number Publication date
JP2022012742A (ja) 2022-01-17
WO2022004095A1 (ja) 2022-01-06

Similar Documents

Publication Publication Date Title
JP5829780B1 (ja) プログラミング装置
US5581474A (en) Identifying overconstraints using port abstraction graphs
JPH03257671A (ja) 設計取り込みシステム
US20240168863A1 (en) Programming devices and programs for creating and editing programs used for image processing
CN112558954A (zh) 结合rpa和ai的信息抽取方法、装置、介质及电子设备
EP3979148A1 (en) Method and system for displaying machine learning automatic modeling procedure
JP7340494B2 (ja) 制御コントローラのプログラム作成装置並びに方法
CN101650754A (zh) 可动态预览的图形尺寸标注系统及方法
JP6791254B2 (ja) プログラム開発支援装置、プログラム開発支援方法、および、プログラム開発支援プログラム
US10295981B2 (en) Engineering tool
US6973642B2 (en) Multi-dimensional programming device and multi-dimensional programming method
JP5429214B2 (ja) プログラム作成支援装置、プログラム作成支援方法およびコンピュータプログラム
EP2709021A2 (en) Graph display control device, graph display control method and storage medium storing graph display control program
CN113711142B (zh) 调试辅助装置、调试辅助方法、记录介质
CN115087954A (zh) 画面数据编辑程序、画面数据编辑装置及画面数据编辑方法
JP2875135B2 (ja) プログラマブルコントローラ用プログラム装置
CN110750818B (zh) 一种用于排水井设计的高度标注方法、系统和存储介质
JP2002312153A (ja) 画面データ単位系切替え方法及び画面データ単位系切替え用プログラム
JPH03263179A (ja) 回路図エディタ
CN117994592A (zh) 大样图识别方法、装置、设备、存储介质及程序产品
JPH04106667A (ja) 対話型部品配置cadシステム
JP2512215B2 (ja) プログラム作成装置
JP2014186623A (ja) エンジニアリング装置、ロードデータ作成方法、およびプログラム
CN116051671A (zh) 一种自由变换折线的svg绘制方法和控制系统
JPS61147371A (ja) 会話形図形処理システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220810

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230425

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230605

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230828

R150 Certificate of patent or registration of utility model

Ref document number: 7340494

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150