JP7014199B2 - 制御システム、情報処理装置、および情報処理プログラム - Google Patents

制御システム、情報処理装置、および情報処理プログラム Download PDF

Info

Publication number
JP7014199B2
JP7014199B2 JP2019042490A JP2019042490A JP7014199B2 JP 7014199 B2 JP7014199 B2 JP 7014199B2 JP 2019042490 A JP2019042490 A JP 2019042490A JP 2019042490 A JP2019042490 A JP 2019042490A JP 7014199 B2 JP7014199 B2 JP 7014199B2
Authority
JP
Japan
Prior art keywords
information processing
data type
control
column
program
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
JP2019042490A
Other languages
English (en)
Other versions
JP2020144753A (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
Priority to JP2019042490A priority Critical patent/JP7014199B2/ja
Application filed by Omron Corp filed Critical Omron Corp
Priority to PCT/JP2020/005789 priority patent/WO2020184061A1/ja
Priority to US17/434,836 priority patent/US20220147010A1/en
Priority to CN202310457195.1A priority patent/CN116450589A/zh
Priority to EP23170673.0A priority patent/EP4224333A1/en
Priority to EP20769408.4A priority patent/EP3937024A4/en
Priority to CN202080017521.1A priority patent/CN113518981A/zh
Publication of JP2020144753A publication Critical patent/JP2020144753A/ja
Application granted granted Critical
Publication of JP7014199B2 publication Critical patent/JP7014199B2/ja
Priority to US17/837,268 priority patent/US20220299968A1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Automation & Control Theory (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • User Interface Of Digital Computer (AREA)

Description

本開示は、データベース上のテーブルにアクセスするための技術に関する。
様々な生産現場において、生産工程を自動化するFA(Factory Automation)システムが普及している。FAシステムは、種々の産業用の駆動機器によって構成される。産業用の駆動機器は、例えば、ワークを移動するための移動テーブルや、ワークを搬送するためのコンベアや、予め定められた目的の場所までワーク移動するためのアームロボットなどを含む。これらの駆動機器は、PLC(Programmable Logic Controller)やロボットコントローラなどの産業用の制御装置によって制御される。
近年、外部装置のデータベースにアクセスすることができる制御装置や情報処理装置が普及している。特開2016-194808号公報(特許文献1)は、「SQLの記述なしにデータベースを操作する技術において、簡易な仕組みで、複数のレコードをまとめて操作する」ことができる制御装置を開示している。
特開2016-194808号公報
ところで、制御装置および情報処理装置のいずれかが、制御プログラムにおいて利用可能な構造体に登録されたデータを、データベースのテーブルにアクセスする場合、テーブルにおけるカラムと構造体におけるメンバとを対応付けておく必要がある。このような対応付けを、ユーザが御装置および情報処理装置のいずれかを用いて個別に実行すると、当該対応付けを完了させるまでに多くの時間を要することがある。したがって、テーブルにおけるカラムと構造体におけるメンバとの対応付けを容易に行える技術が必要とされている。
本開示は、係る実情に鑑み考え出されたものであり、テーブルにおけるカラムと構造体におけるメンバとの対応付けを容易に行える技術が開示される。
本開示の一例では、制御対象を制御する制御システムは、1または複数のテーブルを保持しているデータベースと、制御プログラムを実行する、上記データベースにアクセス可能な制御装置と、上記1または複数のテーブルのうち選択されたテーブルを構成するカラムの数および各カラムのデータ型を取得する取得手段と、上記取得したカラムの数に対応する数のメンバを含む、上記制御プログラムにおいて利用可能な構造体を定義する設定手段と、上記取得した各カラムのデータ型に対応付けて、上記構造体の各メンバのデータ型を決定する決定手段とを備える。
この開示によれば、制御システムは、カラムとメンバとの対応付けが予め行われているため、データが登録された構造体のレコードのテーブルへの追加を含む処理を容易に行える。
本開示の一例では、記決定手段は、上記制御プログラムで利用可能なデータ型の中から上記構造体の各メンバのデータ型を決定する。
この開示によれば、制御システムは、テーブルにおけるカラムのデータ型に適した構造体におけるメンバのデータ型を容易に対応付けられる。
本開示の一例では、上記決定手段は、データ型の1または複数の候補に対する、ユーザによる選択に従って、上記構造体の各メンバのデータ型を決定する。
この開示によれば、制御システムは、カラムのデータ型に対応付けることが可能なメンバのデータ型をユーザに対して提供できる。
本開示の一例では、上記決定手段は、上記選択されたテーブルのテーブル名を、上記構造体の全体を参照するための変数の属性情報として対応付ける。
この開示によれば、制御システムは、ユーザプログラムにおける構造体がいずれのテーブルに対応付けられたものかを示す情報をユーザに対して提供できる。
本開示の一例では、上記決定手段は、上記構造体の各メンバのメンバ名を、上記各カラムのカラム名に対応付ける。
この開示によれば、制御システムは、カラムに対応付けられたメンバを識別可能な情報をユーザに提供できる。
本開示の一例では、上記制御プログラムは上記データベースへのアクセスを制御する命令を実行するためのファンクションブロックを含み、上記ファンクションブロックには、上記テーブルのテーブル名と、上記構造体の全体を参照するための変数とがそれぞれ引数として設定される。
この開示によれば、制御システムは、構造体の定義と当該構造体のデータ型の決定とを含む処理を制御装置に自動で実行させることができる。
本開示の一例では、制御システムは、上記各メンバに設定された値からなるレコードを、対応するテーブルに追加する処理を実行させるためのプログラムテンプレートを生成する生成部をさらに備える。
この開示によれば、制御システムは、プログラムテンプレートを用いることで、データベース410にアクセス可能なユーザプログラム70を容易に生成できる。
本開示の一例では、上記制御装置で実行される制御プログラムの開発を支援する情報処理装置をさらに備え、上記情報処理装置は、上記取得手段、上記設定手段および上記決定手段を含む。
この開示によれば、制御システムは、カラムとメンバとの対応付けが予め行われているため、データが登録された構造体のレコードのテーブルへの追加を含む処理を容易に行える。
本開示の一例では、制御装置で実行される制御プログラムの開発を支援する情報処理装置は、上記制御装置がアクセス可能なデータベースが保持している1または複数のテーブルのうち選択されたテーブルを構成するカラムの数よび各カラムのデータ型を取得する取得手段と、上記取得したカラムの数に対応する数のメンバを含む、上記制御プログラムにおいて利用可能な構造体を定義する設定手段と、上記取得した各カラムのデータ型に対応付けて、上記構造体の各メンバのデータ型を決定する決定手段とを備える。
この開示によれば、情報処理装置は、カラムとメンバとの対応付けが予め行われているため、データが登録された構造体のレコードのテーブルへの追加を含む処理を容易に行える。
本開示の一例では、制御装置で実行される制御プログラムの開発を支援する情報処理装置の情報処理プログラムは、上記情報処理プログラムは上記情報処理装置に、上記制御装置がアクセス可能なデータベースが保持している1または複数のテーブルのうち選択されたテーブルを構成するカラムの数よび各カラムのデータ型を取得するステップと、上記取得したカラムの数に対応する数のメンバを含む、上記制御プログラムにおいて利用可能な構造体を定義するステップと、上記取得した各カラムのデータ型に対応付けて、上記構造体の各メンバのデータ型を決定するステップとを実行させる。
この開示によれば、情報処理プログラムは、カラムとメンバとの対応付けが予め行われているため、データが登録された構造体のレコードのテーブルへの追加を含む処理を容易に行える。
本開示によれば、テーブルにおけるカラムと構造体におけるメンバとの対応付けを容易に行えるようになる。
制御システムの構成例について説明する図である。 情報処理装置のハードウェア構成を示す図である。 データベースの種別の選択を受け付けるための画面例を表わす図である。 データベースのテーブルの選択を受け付けるための画面例を表わす図である。 構造体のデータ型の選択を受け付けるための画面例を表わす図である。 ユーザの確認用に構造体のデータ型を表示する画面例を表わす図である。 構造体を含む生成アイテムを選択するための画面例を表わす図である。 ユーザの確認用に生成された構造体および変数を表示する画面例を表わす図である。 ユーザプログラムに含まれるファンクションブロックの一例を示す図である。 ファンクションブロックを含むユーザプログラムの一例について説明する図である。 テーブルにレコードを追加する一例を示した図である。 制御装置のハードウェア構成の一例を示す模式図である。 外部装置のハードウェア構成を示すブロック図である。 制御システムの処理手順について説明するフローチャートである。 情報処理装置が運用前の処理を行う場合の処理手順について説明するフローチャートである。 情報処理装置が運用前の処理を行う場合の処理手順について説明するフローチャートである。 第2の実施の形態における制御システムの構成例について説明する図である。 第3の実施の形態における制御システムの構成例について説明する図である。 ユーザプログラムに含まれるファンクションブロックの一例を示す図である。 ファンクションブロックを含むユーザプログラムの一例について説明する図である。
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
<適用例>
図1を参照して、本発明の適用例について説明する。図1は、制御システム1の構成例について説明する図である。制御システム1は、例えば、生産工程を自動化するためのFAシステムである。制御システム1は、情報処理装置100と、制御装置200と、外部装置300とを含む。情報処理装置100と、制御装置200と、外部装置300とは、第1ネットワークに接続されている。第1ネットワークには、EtherNET(登録商標)等の情報系ネットワークに適したネットワークが用いられる。
制御装置200は、外部装置300における後述するデータベース410にアクセス可能である。なお、以下ではデータベースをDBとも称する。また、制御装置200は、フィールドに設けられた駆動装置(図示せず)と第2ネットワークで接続される。制御装置200は、駆動装置と定周期通信を行う。第2ネットワークには、EtherCAT(登録商標)、EtherNet/IP(登録商標)、CompoNet(登録商標)などが採用される。
外部装置300は、データベース機能を有するDBMS(Database Management System)である。外部装置300は、例えば、ノート型またはデスクトップ型のPCまたはサーバである。より具体的には、外部装置300は、データベース410を有する。データベース410は、1または複数のテーブル420を保持する。テーブル420は、列を示す1または複数のカラムと、行を示す1または複数のレコードとを含む。各カラムには格納されるデータの種類に応じたデータ型が設定される。
情報処理装置100は、例えば、ノート型またはデスクトップ型のPC(Personal Computer)、タブレット端末、スマートフォン、または、制御装置200用の制御プログラムを開発することが可能な装置である。制御プログラムは、ユーザプログラム(例えば、後述するユーザプログラム70)として制御装置200にインストールできる。以下では、制御プログラムをユーザプログラム(UPG)とも称する。情報処理装置100は、外部装置300におけるデータベース410にアクセス可能である。情報処理装置100は、記憶装置108、取得モジュール110、設定モジュール120、決定モジュール130および生成モジュール140を含む。記憶装置108は、開発支援プログラム30およびデータ型対応表40を含む。
開発支援プログラム30は、制御装置200用の制御プログラムの開発を支援するためのプログラムである。情報処理装置100は、記憶装置108に格納された開発支援プログラム30が読み出されて実行されると、取得モジュール110、設定モジュール120、決定モジュール130および生成モジュール140の機能を実行可能となる。
データ型対応表40は、データベース410のテーブル420におけるカラムのデータ型と、ユーザプログラム70における構造体におけるメンバのデータ型との対応関係を表わすリストである。構造体は、データの集まりを一定の形式で格納したものである。したがって、構造体は一つの単位として扱うことのできるデータ群ともいえる。構造体は互いに関連付けられたメンバを特定可能に含み得る。
取得モジュール110は、データベース410に保持された1または複数のテーブル420のうち、情報処理装置100が受け付けたユーザ操作により選択されたテーブル420の情報を取得する。テーブル420の情報は、当該テーブル420を構成するカラムの数および各カラムのデータ型を含む。取得モジュール110は、例えば、第1テーブルのカラムの数として「4」を取得する。カラムの数「4」は、第1テーブルにおける第1カラム451と、第2カラム452と、第3カラム453と、第4カラム454とを合計した数である。なお、以下では、1または複数のカラムを総称してカラム450とも称する。
取得モジュール110は、カラム450(例えば、第1カラム451~第4カラム454)のデータ型を取得する。より具体的には、取得モジュール110は、第1カラム451のデータ型として設定されている「decimal(1)」を取得する。取得モジュール110は、第2カラム452のデータ型として設定されている「decimal(5)」を取得する。取得モジュール110は、第3カラム453のデータ型として設定されている「nchar(19)」を取得する。取得モジュール110は、第4カラム454のデータ型として設定されている「TimeSTAMP」を取得する。「decimal」は、固定小数点数を扱うデータ型である。「nchar」は、固定長の文字列のテータ型である。「TimeSTAMP」は、年、月、日、時、分および秒の六つの属性を持つ時刻印のデータ型である。
設定モジュール120は、取得モジュール110が取得したカラム450の数に対応する構造体を定義する。構造体は、ユーザプログラム70において利用可能であり、カラム数に対応する数のメンバを含む。より具体的には、設定モジュール120は、カラムの数「4」に対応した数「4」のメンバを含む構造体を定義する。設定モジュール120は、例えば、第1メンバ151、第2メンバ152、第3メンバ153および第4メンバ154を含む第1構造体を定義する。以下では、1または複数のメンバを総称してメンバ150とも称する。
決定モジュール130は、取得モジュール110が取得した各カラム450のデータ型に対応付けて、構造体の各メンバ150のデータ型を決定する。より具体的には、決定モジュール130は、データ型対応表40に基づき、各カラム450のデータ型に対応付けて各メンバ150のデータ型を決定する。決定モジュール130は、第1カラム451のデータ型の「decimal(1)」に対応する第1メンバ151のデータ型として、「bool」を決定する。決定モジュール130は、第2カラム452のデータ型の「decimal(5)」に対応付する第2メンバ152のデータ型として、「Int」を決定する。決定モジュール130は、第3カラム453のデータ型の「nchar(19)」に対応する第3メンバ153のデータ型として、「String(20)」を決定する。決定モジュール130は、第4カラム454のデータ型の「TimeSTAMP」に対応付する第4メンバ154のデータ型として、「DATE_AND_TIME」を決定する。これにより、制御システム1は、テーブル420におけるカラム450と構造体におけるメンバ150との対応付けを容易に行える。
生成モジュール140は、ユーザプログラム70を生成し、生成されたユーザプログラム70を制御装置200に送信する。制御装置200が構造体を構成する各メンバ150にデータを登録する。ユーザプログラム70は、一例として、当該データが登録された構造体のレコードをデータベース410のテーブル420に追加する処理を実行するためのプログラムである。制御システム1は、カラム450とメンバ150との対応付けが予め行われているため、データが登録された構造体のレコードのテーブル420への追加を含む処理を容易に行える。
<第1の実施の形態>
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
[A.情報処理装置100のハードウェア構成]
図2は、情報処理装置100のハードウェア構成を示す図である。図2を参照して、情報処理装置100は、制御部102と、主メモリ104と、記憶装置108と、通信インターフェイス112と、表示インターフェイス114と、I/Oインターフェイス116とを含む。
制御部102は、記憶装置108に格納された開発支援プログラム30を読み出して、当該開発支援プログラム30を主メモリ104に展開する。制御部102は、取得モジュール110、設定モジュール120、決定モジュール130および生成モジュール140として機能する。なお、以下では制御部102が開発支援プログラム30実行することで必要な処理が実現される構成例について説明するが、これらの提供される処理の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGA等)を用いて実装してもよい。
記憶装置108は、開発支援プログラム30、データ型対応表40、テンプレート60、ユーザプログラム70を含む。テンプレート60は、生成モジュール140がユーザプログラム70を生成する場合に、ひな形として用いられる。生成モジュール140がテンプレート60を用いてユーザプログラムを生成する具体例については後述する。
通信インターフェイス112は、他の通信機器との間で、例えば、第1ネットワークを介してデータを遣り取りする。他の通信機器は、例えば、制御装置200、外部装置300などを含む。情報処理装置100は、通信インターフェイス112を介して、他の通信機器から、開発支援プログラム30などの各種プログラムをダウンロード可能なように構成されてもよい。
表示インターフェイス114は、表示部122と電気的に接続され、制御部102などからの指令に従って、表示部122に対して、画像を表示するための画像信号を送出する。表示部122は、LCD(Liquid Crystal Display)や有機EL(Electro Luminescence)ディスプレイなどからなり、ユーザに対して各種情報を提示する。表示部122には、情報処理装置100によって提供される各種画面(例えば、後述するデータベース選択画面510(図3参照))が表示され得る。図2の例では、情報処理装置100と表示部122とが別体として示されているが、情報処理装置100と表示部122とは、一体的に構成されてもよい。
I/Oインターフェイス116は、操作部124と電気的に接続され、操作部124からのユーザ操作を示す信号を取り込む。操作部124は、典型的には、キーボード、マウス、タッチパネル、タッチパッドなどからなり、ユーザからの操作を受け付ける。
[B.カラム450とメンバ150とを対応付けるための設定の画面例]
次に、図3~図8を用いてデータベース410におけるカラム450と、ユーザプログラム70におけるメンバ150とを対応付けるための設定の画面例について説明する。当該設定は、情報処理装置100が操作部124を用いたユーザ操作を受け付けることで実行される。
[b1.データベース選択画面510]
図3は、データベース410の種別の選択を受け付けるための画面例を表わす図である。図3を参照して、表示部122は、データベース種別、IPアドレス、インスタンス名、サービス名、ユーザ名およびパスワード等の項目と、次画面ボタン540および前画面ボタン542とを含むデータベース選択画面510を表示する。
情報処理装置100は、例えば、操作部124を用いたユーザによるデータベース410の選択を受け付ける。データベース410の種別は、例えば、「Oracle Database」、「MySQL」および「SQLite」等である。データベースの種別はこれらに限定されることはなく、他の種類のデータベースであってもよい。
情報処理装置100は、データベース種別を含むその他の情報の入力を受け付ける。その後、情報処理装置100は、操作部124を用いたユーザ操作により、次画面ボタン540が選択されると、図4に示すテーブル選択画面511を表示部122に表示する。なお、情報処理装置100は、操作部124を用いたユーザ操作により、前画面ボタン542が選択されると、データベース選択画面510が表示される直前に表示部122に表示されていた画面を表示する。
[b2.テーブル選択画面511]
図4は、データベース410のテーブル420の選択を受け付けるための画面例を表わす図である。図4を参照して、表示部122は、DBコネクションサービス設定、DBコネクション設定およびDBテーブル等の項目と、次画面ボタン540および前画面ボタン542とを含むテーブル選択画面511を表示する。情報処理装置100は、例えば、操作部124を用いたユーザによるテーブル420の選択を受け付ける。その後、情報処理装置100は、操作部124を用いたユーザ操作により、次画面ボタン540が選択されると、図5に示すデータ型選択画面512を表示部122に表示する。なお、情報処理装置100は、操作部124を用いたユーザ操作により、前画面ボタン542が選択されると、テーブル選択画面511が表示される直前に表示部122に表示されていた画面を表示する。
[b3.データ型選択画面512]
図5は、構造体のデータ型の選択を受け付けるための画面例を表わす図である。図5を参照して、表示部122は、第1テーブルのカラム名、DBデータ型およびUPGデータ型の項目と、次画面ボタン540および前画面ボタン542とを含むデータ型選択画面512を表示部122に表示する。第1テーブルは、前述のテーブル選択画面511で選択されたテーブルである。カラム名は、各カラム450の属性情報であり、テーブル420に含まれる情報である。カラム名は、例えば、「DATA1」~「DATA4」のように各カラム450を識別可能な情報である。DBデータ型は各カラム450に設定されたデータ型である。UPGデータ型は、各カラム450のデータ型に対応付けられる各メンバ150のデータ型である。当該対応付けは、データ型対応表40に基づいて行われる。
情報処理装置100は、例えば、操作部124を用いたユーザによるUPGデータ型の選択を受け付ける。より具体的には、情報処理装置100の決定モジュール130は、選択欄558に表示されたデータ型の1または複数の候補に対する、操作部124を用いたユーザによる選択に従って、構造体の各メンバ150のデータ型を決定する。これにより、制御システム1は、カラム450のデータ型に対応付けることが可能なメンバ150のデータ型をユーザに対して提供できる。
なお、データ型選択画面512に含まれるDBデータ型の情報は、取得モジュール110が、データベース410のテーブル420から取得したカラム450の数および各カラム450のデータ型に基づく情報である。また、データ型選択画面512に含まれるカラム名の情報は、取得モジュール110が、データベース410のテーブル420から取得した属性情報である。さらに、データ型選択画面512に含まれるUPGデータ型の情報は、設定モジュール120と決定モジュール130とにより定められた情報である。設定モジュール120は、取得モジュール110により取得されたカラム450の数に対応する数のメンバ150を含む構造体を定義する。決定モジュール130は、取得モジュール110により取得された各カラム450のデータ型に対応付けて、構造体の各メンバ150のデータ型を決定する。対応付けは、データ型対応表40に基づいて行われる。このように、決定モジュール130は、ユーザプログラム70で利用可能なデータ型の中から構造体の各メンバ150のデータ型を決定する。これにより、制御システム1は、テーブル420におけるカラム450のデータ型に適した構造体におけるメンバ150のデータ型を容易に対応付けられる。
情報処理装置100は、操作部124を用いたユーザ操作により、次画面ボタン540が選択されると、図6に示すデータ型確認画面513を表示部122に表示する。なお、情報処理装置100は、操作部124を用いたユーザ操作により、前画面ボタン542が選択されると、データ型選択画面512が表示される直前に表示部122に表示されていた画面を表示する。
[b4.データ型確認画面513]
図6は、ユーザの確認用に構造体のデータ型を表示する画面例を表わす図である。図6を参照して、表示部122は、第1テーブルのメンバ名、UPGデータ型の項目と、次画面ボタン540および前画面ボタン542とを含むデータ型確認画面513を表示部122に表示する。表示部122は、データ型選択画面512においてユーザが操作部124を用いて選択した各メンバ150のUPGデータ型を表示する。また、表示部122は、各メンバ150のメンバ名として、データ型選択画面512に表示されたカラム名と同じ情報(例えば、「DATA1」~「DATA4」)を表示する。より具体的には、決定モジュール130は、各カラム450の属性情報であるカラム名を、メンバ150の属性情報であるメンバ名として登録する。このように決定モジュール130は、構造体の各メンバ150のメンバ名を、各カラム450のカラム名に対応付ける。これにより、制御システム1は、カラム450に対応付けられたメンバ150を識別可能な情報をユーザに提供できる。
情報処理装置100は、操作部124を用いたユーザ操作により、次画面ボタン540が選択されると、図7に示す生成アイテム選択画面514を表示部122に表示する。なお、情報処理装置100は、操作部124を用いたユーザ操作により、前画面ボタン542が選択されると、データ型確認画面513が表示される直前に表示部122に表示されていた画面を表示する。
[b5.生成アイテム選択画面514]
図7は、構造体を含む生成アイテムを選択するための画面例を表わす図である。図7を参照して、表示部122は、構造体572、変数574、UPG576、Insert578およびSelect580の項目と、次画面ボタン540および前画面ボタン542とを含む生成アイテム選択画面514を表示部122に表示する。情報処理装置100の生成モジュール140は、操作部124を用いたユーザ操作により選択された項目に対応するデータを生成する。図7に示すように、構造体572、変数574、UPG576、Insert578の項目が選択されたものとして説明を行う。以下では、Insert578の項目が選択されたものとして説明を行うが、Select580の項目が選択された場合は、当該項目に対応するデータが生成される。また、Insert578とSelect580との両方の項目が選択された場合は、これらの項目に対応するデータが生成される。
情報処理装置100は、操作部124を用いたユーザ操作により、次画面ボタン540が選択されると、図8に示す生成情報確認画面515を表示部122に表示する。なお、情報処理装置100は、操作部124を用いたユーザ操作により、前画面ボタン542が選択されると、生成アイテム選択画面514が表示される直前に表示部122に表示されていた画面を表示する。
[b6.生成情報確認画面515]
図8は、ユーザの確認用に生成された構造体および変数を表示する画面例を表わす図である。表示部122は、例えば、第1テーブルにおける構造体のメンバ名およびUPGデータ型と、変数の変数名および属性情報とを表示する。より具体的には、表示部122は、構造体のメンバ名として、図6において説明したカラム名に対応付けられたメンバ名(「DATA1~DATA4」)を表示する。また、表示部122は、図5において説明したDBデータ型に対応付けられるUPGデータ型として、各メンバ150のデータ型を表示する。表示部122は、各メンバ150のデータ型として、例えば、第1メンバ151に「bool」、第2メンバ152に「Int」、第3メンバ153に「String(20)」および第4メンバ154に「DATE_AND_TIME」を表示する。
さらに、表示部122は、変数として変数名「InsertVal1」および属性情報「Table1」を表示する。変数名は、構造体全体を表わす変数名である。当該変数名は任意の値が設定される。属性情報は、構造体全体に対応するテーブル420を表わす。図8に示す各メンバ150を含む構造体は、第1テーブルの各カラム450に対応するものである。したがって、属性情報には「Table1」の情報が登録される。属性情報は、情報処理装置100の決定モジュール130により決定される。より具体的には、決定モジュール130は、図4において説明した操作部124を用いたユーザ操作により選択されたテーブル420のテーブル名を構造体の全体を参照するための変数の属性情報として対応付ける。これにより、制御システム1は、ユーザプログラム70における構造体がいずれのテーブル420に対応付けられたものかを示す情報をユーザに対して提供できる。そして、生成モジュール140は、当該変数名と当該属性情報とを含むデータを生成する。
情報処理装置100は、操作部124を用いたユーザ操作により、完了ボタン544が選択されると、図8に示す生成情報確認画面515の表示を終了させる。なお、情報処理装置100は、操作部124を用いたユーザ操作により、前画面ボタン542が選択されると、生成情報確認画面515が表示される直前に表示部122に表示されていた画面を表示する。
[C.ユーザプログラム70の構成と処理内容]
次に、図9~図11を参照してユーザプログラム70の構成と処理内容について説明する。ユーザプログラム70は、上述の図3~図6における第1テーブルにおけるカラム450の数とデータ型とに対応する構造体におけるメンバ150の設定に基づくものである。生成モジュール140は、図7におけるUPG576およびInsert578が選択されることで、当該ユーザプログラム70を生成する。
図9は、ユーザプログラム70に含まれるファンクションブロックFB1の一例を示す図である。以下、ファンクションブロックFB1をブロックFB1とも称する。
ブロックFB1の機能を有するプログラムは、ファンクションブロック以外で規定されてもよい。例えば、ブロックFB1は、ラダーダイアグラムで規定されるもの、命令リスト、構造化テキスト、および、シーケンシャルファンクションチャートのいずれか、あるいは、これらの組み合わせで規定されるものも含み得る。また、ブロックFB1は、JavaScript(登録商標)やC言語のような汎用的なプログラミング言語で規定されるものも含み得る。
ブロックFB1は、データベース410へのアクセスを制御する命令を実行するためのプログラムである。より具体的には、ブロックFB1は、データ型が定義され、当該データ型の条件を満たすデータが設定された構造体のレコードを、データベース410のテーブル420を追加する機能を有するプログラムである。
ブロックFB1は、レコードの追加に関する設定を受け付ける入力部255A~入力部255Cと、レコードの追加に関する情報を出力するための出力部256A~出力部256Dとを含む。
「Excute」として示される入力部255Aは、レコードの追加の処理を実行するか否かを指定するための設定を受け付ける。一例として、入力部255Aは、「BOOL」型の入力を受け付けるように規定されている。入力部255Aに「FALSE」が入力されている限り、レコードの追加の処理は、実行されない。一方で、入力部255Aに「TRUE」が入力された場合には、レコードの追加の処理が実行される。
「DBConnection」として示される入力部255Bは、データベース410に接続するためのファンクションブロックを実行して得られる接続結果を受け付ける。当該接続結果には、データベース410のアクセスするための情報(例えば、データベース名など)が含まれている。
「MappingVariableList」として示される入力部255Cは、構造体の変数の入力を受け付ける。入力部255Cは、予め定義された構造体を受け付けるように規定されている。
レコードの追加の処理が正常に完了した場合には、正常終了を示す信号が、「Done」として示される出力部256Aから出力される。レコードの追加の処理中には、生成処理中を示す信号が、「Busy」として示される出力部256Bから出力される。レコードの追加の処理が正常に生成されなかった場合には、異常終了を示す信号が、「Error」として示される出力部256Cから出力される。この場合には、さらに、エラーの内容を識別するためのエラーIDが、「ErrorID」として示される出力部256Dから出力される。
図10は、ファンクションブロックFB1を含むユーザプログラム70の一例について説明する図である。情報処理装置100は、記憶装置108に格納されたテンプレート60を用いて図10に示すユーザプログラム70の一部を生成する。テンプレート60は、例えば、入力要素IN0~IN4と、ブロックFB1と、出力要素OUT1とを含む。例えば、テンプレート60に含まれる入力要素IN0~IN4の変数と、出力要素OUT1の変数とはブランクとなっており、テンプレート60が選択された後に変数が割り付けられる。変数が割り付けられたテンプレート60を以下ではプログラムテンプレートと称する。プログラムテンプレートは、後述する第1プログラムテンプレート61および第2プログラムテンプレート62を含む。また、ブロックFB1は、図9で説明した、ファンクションブロックに相当する。
第1プログラムテンプレート61は、入力要素IN0~IN4を含む。入力要素IN0~IN4には変数が割り付けられており、これらの値は、割り付けられている変数に応じて変化する。より具体的には、入力要素IN0には、変数「SettingTrigger」が割り付けられている。変数「SettingTrigger」は、BOOL型であり、初期値は、「False」(=OFF)である。変数「SettingTrigger」の値は、例えば、制御装置200が起動されたことに基づいて、「True」(ON)に変化する。その他の場合、変数「SettingTrigger」の値は、「False」(OFF)となる。
入力要素IN1~IN4には、変数「val1」~変数「val4」が割り付けられている。これらの変数は、例えば、制御装置200がフィールド値に基づいて演算を実行することで得られるプロセス値を含む。フィールド値は、制御装置200がフィールドに設けられた駆動装置から第2ネットワーク介して取得した値である。入力要素IN1~IN4により、変数「val1」~変数「val4」の各変数の値は、「InsertVal[0]」~「InsertVal[3]」に設定される。「InsertVal[0]」~「InsertVal[3]」は、構造体全体を表わす変数「InsertVal」に基づく値であり、第1メンバ151~第4メンバ154に設定される値である。
入力要素IN1~IN4により構造体の各メンバ150にプロセス値が設定されると、ブロックFB1により、構造体の各メンバ150により構成されるレコードがテーブル420に追加される。
出力要素OUT1には、変数「Done」が割り付けられている。また、出力要素OUT1は、ブロックFB1の出力「Done」に関連付けられている。その結果、出力要素OUT1の値は、ブロックFB1の出力「Done」の値に応じて変化する。
図11は、テーブル420にレコードを追加する一例を示した図である。テーブル420における各カラム450(第1カラム451~第4カラム454)は、属性情報である「DATA1」~「DATA4」を有する。また、レコード461は、各カラム450のデータ型に応じたプロセス値が設定されている。そして、生成モジュール140が生成した第1プログラムテンプレート61により、構造体におけるレコード462がテーブル420に追加される。構造体のレコード462にはテーブル420の各カラムのデータ型に対応付けられたデータ型が各メンバ150(第1メンバ151~第4メンバ154)に設定されている。そして、レコード462は、各メンバ150のデータ型に応じたプロセス値が設定されている。テンプレート60に対して変数が割り付けられた第1プログラムテンプレート61が実行されることで、テーブル420にレコード462が追加される。
このように、生成モジュール140は、構造体における各メンバ150に設定された値(プロセス値)からなるレコードを、対応するテーブル420に追加する処理を実行させるための第1プログラムテンプレート61をテンプレート60に基づいて生成する。当該第1プログラムテンプレート61は、テンプレート60に基づいて生成されたプログラムであり、テンプレート60においてブランクとなっている変数が割り付けられたものである。制御システム1は、プログラムテンプレートを用いることで、データベース410にアクセス可能なユーザプログラム70を容易に生成できる。
[D.ハードウェア構成]
[d1.制御装置200のハードウェア構成]
次に、図12を参照して、制御装置200のハードウェア構成について説明する。図12は、制御装置200のハードウェア構成の一例を示す模式図である。
制御装置200は、通信インターフェイス201と、CPUやMPUなどのプロセッサ202と、チップセット204と、主メモリ206と、不揮発性の記憶装置208と、内部バスコントローラ222と、フィールドバスコントローラ224と、メモリカードインターフェイス239とを含む。
プロセッサ202は、記憶装置208に格納されたユーザプログラム70およびシステムプログラム80を含む制御プログラムを読み出して主メモリ206に展開して実行する。プロセッサ202は、制御プログラムを実行することで、サーボドライバ280Aおよび280Bなどに対する任意の制御を実現する。制御プログラムは、制御装置200を制御するための各種プログラムを含む。制御プログラムに含まれるシステムプログラム80は、データの入出力処理や実行タイミング制御などの、制御装置200の基本的な機能を提供するための命令コードを含む。ユーザプログラム70は、上述の情報処理装置100からダウンロードされたものである。ユーザプログラム70は、制御対象に応じて任意に設計され、シーケンス制御を実行する。
チップセット204は、各コンポーネントを制御することで、制御装置200全体としての処理を実現する。
記憶装置208は、制御プログラムの他にも種々のデータを格納する。一例として、記憶装置208は、上述のデータ型対応表40等を格納する。
内部バスコントローラ222は、制御装置200と内部バスを通じて連結される各種デバイスとデータを遣り取りするインターフェイスである。このようなデバイスの一例として、I/Oユニット226が接続されている。フィールドバスコントローラ224は、制御装置200とフィールドバスを通じて連結される各種の駆動機器とデータを遣り取りするインターフェイスである。このようなデバイスの一例として、上述のサーボドライバ280Aおよび280Bが接続されている。他にも、視覚センサ(図示せず)などの駆動機器が接続されてもよい。
内部バスコントローラ222およびフィールドバスコントローラ224は、接続されているデバイスに対して任意の指令を与えることができるとともに、デバイスが管理している任意のデータを取得することができる。また、内部バスコントローラ222および/またはフィールドバスコントローラ224は、サーボドライバ280Aおよび280Bとの間でデータを遣り取りするためのインターフェイスとしても機能する。
通信インターフェイス201は、各種の有線/無線ネットワークを通じたデータの遣り取りを制御する。制御装置200は、通信インターフェイス201を介して、情報処理装置100や外部装置300と通信を行う。また、制御装置200は、通信インターフェイス201を介して、外部装置300上のデータベース410にアクセスすることができる。
メモリカードインターフェイス239は、外部記憶媒体の一例であるメモリカード240(例えば、SDカード)を着脱可能に構成されており、メモリカード240に対してデータを書き込み、メモリカード240からデータを読出すことが可能になっている。
[d2.外部装置300のハードウェア構成]
次に、図13を参照して、外部装置300のハードウェア構成について説明する。図13は、外部装置300のハードウェア構成を示すブロック図である。
外部装置300は、汎用的なアーキテクチャを有するハードウェア構成を有している。すなわち、外部装置300は、一種のパーソナルコンピュータとして実装される。但し、外部装置300を汎用的なハードウェアではなく、専用ハードウェアを用いて実装してもよい。
より具体的には、外部装置300は、CPUやMPUなどのプロセッサ302と、主メモリ304と、不揮発性の記憶装置308と、通信インターフェイス312と、I/Oインターフェイス314と、表示インターフェイス316とを含む。これらのコンポーネントは、内部バス325を介して、互いにデータ通信可能に接続されている。
プロセッサ302は、記憶装置308に格納された制御プログラム(図示しない)を読み出して、主メモリ304に展開して実行することで、外部装置300を制御する。すなわち、プロセッサ302は、主メモリ304および記憶装置308と連係することで、制御演算を実行する制御部を実現する。
通信インターフェイス312、I/Oインターフェイス314、および、表示インターフェイス316は、外部装置300と他の通信機器とのデータの遣り取りを仲介する。
より具体的には、通信インターフェイス312は、図1における第1ネットワークなどを介した、制御装置200との通信を仲介する。通信インターフェイス312には、例えば、EtherNETに従う通信が可能なコンポーネントが採用され得る。
I/Oインターフェイス314は、操作部324に接続され、操作部324からのユーザ操作を示す信号を取り込む。操作部324は、典型的には、キーボード、マウス、タッチパネル、タッチパッドなどからなり、ユーザからの操作を受け付ける。表示インターフェイス316は、表示部322と接続され、プロセッサ302などからの指令に従って、表示部322に対して、画像を表示するための画像信号を送出する。表示部322は、LCDや有機ELディスプレイなどからなり、ユーザに対して各種情報を提示する。図14の例では、外部装置300および表示部322が別体として示されているが、外部装置300および表示部322は、一体的に構成されてもよい。
[E.制御処理手順]
[e1.制御システム1における処理手順]
図14は、制御システム1の処理手順について説明するフローチャートである。図14を参照して、情報処理装置100と制御装置200と外部装置300との間のデータの流れについて説明する。ステップS10において、情報処理装置100は、起動命令を受け付けたとする。このことに基づいて、情報処理装置100は起動後に開発支援プログラム30が実行されることで、データベース選択画面510を表示部122に表示する。
ステップS15において、情報処理装置100は、データベース選択画面510におけるデータベース410の選択操作を受け付けたとする。このことに基づいて、情報処理装置100は、選択されたデータベース410に格納されるテーブル420の取得命令を制御装置200を介して外部装置300に送信する。外部装置300は、テーブル420の情報を制御装置200を介して情報処理装置100に出力する。情報処理装置100は、外部装置300から送信されたテーブル420の情報に基づき、テーブル選択画面511を表示部122に表示する。
ステップS20において、情報処理装置100は、テーブル選択画面511におけるテーブル420の選択操作を受け付けたとする。このことに基づいて、情報処理装置100は、選択されたテーブル420に含まれるカラム450の情報の取得命令を制御装置200を介して外部装置300に出力する。外部装置300は、カラム450の情報を制御装置200を介して情報処理装置100に出力する。情報処理装置100は、外部装置300から送信されたカラム450の情報に基づき、データ型選択画面512を表示部122に表示する。
ステップS25において、情報処理装置100は、データ型選択画面512におけるUPGデータ型の選択操作を受け付けたとする。このことに基づいて、情報処理装置100は、データ型確認画面513を表示部122に表示する。
ステップS30において、情報処理装置100は、データ型確認画面513におけるUPGデータ型確認操作を受け付けたとする。このことに基づいて、情報処理装置100は、生成アイテム選択画面514を表示部122に表示する。
ステップS35において、情報処理装置100は、生成アイテム選択画面514における生成アイテムの選択操作を受け付けたとする。このことに基づいて、情報処理装置100は、生成情報確認画面515を表示部122に表示する。
ステップS40において、情報処理装置100は、生成情報確認画面515における生成情報の確認完了操作を受け付けたとする。このことに基づいて、情報処理装置100はテンプレート60に基づいて第1プログラムテンプレート61を含むユーザプログラム70を生成して、生成されたユーザプログラム70を情報処理装置に送信する。
これまで説明したステップS10、ステップS15、ステップS20、ステップS25、ステップS30、ステップS35およびステップS40は、制御装置200が運用される前の処理である。次に制御装置200の運用後の処理について説明する。
ステップS45において、制御装置200は、ユーザプログラム70の処理を開始する。制御装置200は、ユーザプログラム70に含まれる第1プログラムテンプレート61を実行して、外部装置300のデータベース410におけるテーブル420にレコードを追加する。当該レコードは制御装置200の構造体の各メンバ150により構成されるレコードである。外部装置300は、例えば、レコードの追加処理が成功したことを示す応答を制御装置200に送信する。
[e2.情報処理装置100における処理手順]
上述の図14を用いて説明した処理手順における制御装置200の運用前の処理は、例えば、情報処理装置100により実行される処理である。図15および図16は、情報処理装置100が運用前の処理を行う場合の処理手順について説明するフローチャートである。図15を参照して、ステップS105において、情報処理装置100は、操作部124を用いたユーザ操作により、起動命令を受け付けて起動する。
ステップS110において、情報処理装置100は、起動後に開発支援プログラム30が実行されることで、データベース選択画面510を表示部122に表示する。
ステップS115において、情報処理装置100は、データベース選択画面510におけるデータベース410の選択操作を受け付けたか否かを判定する。情報処理装置100は、データベース410の選択操作を受け付けたと判定すると(ステップS115においてYES)、制御をステップS120に切り替える。そうでない場合には(ステップS115においてNO)、情報処理装置100は、制御をステップS125に切り替える。
ステップS120において、情報処理装置100は、外部装置300から送信されたテーブル420の情報に基づき、テーブル選択画面511を表示部122に表示する。
ステップS125において、情報処理装置100は、タイマー(図示せず)を用いて、データベース410の選択操作を受け付けたか否かを判定した時点から経過した時間を計測する。所定期間(例えば、1分間)を経過してタイムアウトした場合には(ステップS125においてYES)、情報処理装置100は、本フローチャートの処理を終了する。そうでない場合には(ステップS125においてNO)、情報処理装置100は、ステップS115の制御を繰り返し実行する。
ステップS130において、情報処理装置100は、データベース選択画面510におけるテーブル420の選択操作を受け付けたか否かを判定する。情報処理装置100は、テーブル420の選択操作を受け付けたと判定すると(ステップS130においてYES)、制御をステップS135に切り替える。そうでない場合には(ステップS130においてNO)、情報処理装置100は、制御をステップS140に切り替える。
ステップS135において、情報処理装置100は、外部装置300から送信されたカラム450の情報に基づき、データ型選択画面512を表示部122に表示する。
ステップS140において、情報処理装置100は、タイマー(図示せず)を用いて、テーブル420の選択操作を受け付けたか否かを判定した時点から経過した時間を計測する。所定期間(例えば、1分間)を経過してタイムアウトした場合には(ステップS140においてYES)、情報処理装置100は、本フローチャートの処理を終了する。そうでない場合には(ステップS140においてNO)、情報処理装置100は、ステップS130の制御を繰り返し実行する。
ステップS145において、情報処理装置100は、データ型選択画面512におけるUPGデータ型の選択操作を受け付けたか否かを判定する。情報処理装置100は、データ型の選択操作を受け付けたと判定すると(ステップS145においてYES)、制御をステップS150に切り替える。そうでない場合には(ステップS145においてNO)、情報処理装置100は、制御をステップS155に切り替える。
ステップS150において、情報処理装置100は、データ型確認画面513を表示部122に表示する。
ステップS155において、情報処理装置100は、タイマー(図示せず)を用いて、データ型の選択操作を受け付けたか否かを判定した時点から経過した時間を計測する。所定期間(例えば、1分間)を経過してタイムアウトした場合には(ステップS155においてYES)、情報処理装置100は、本フローチャートの処理を終了する。そうでない場合には(ステップS155においてNO)、情報処理装置100は、ステップS145の制御を繰り返し実行する。
次に、図16を参照して、ステップS160において、情報処理装置100は、データ型確認画面513におけるUPGデータ型の確認操作を受け付けたか否かを判定する。情報処理装置100は、UPGデータ型の確認操作を受け付けたと判定すると(ステップS160においてYES)、制御をステップS165に切り替える。そうでない場合には(ステップS160においてNO)、情報処理装置100は、制御をステップS170に切り替える。
ステップS165において、情報処理装置100は、生成アイテム選択画面514を表示部122に表示する。
ステップS170において、情報処理装置100は、タイマー(図示せず)を用いて、UPGデータ型の確認操作を受け付けたか否かを判定した時点から経過した時間を計測する。所定期間(例えば、1分間)を経過してタイムアウトした場合には(ステップS170においてYES)、情報処理装置100は、本フローチャートの処理を終了する。そうでない場合には(ステップS170においてNO)、情報処理装置100は、ステップS160の制御を繰り返し実行する。
ステップS175において、情報処理装置100は、生成アイテム選択画面514における生成アイテムの選択操作を受け付けたか否かを判定する。情報処理装置100は、生成アイテムの選択操作を受け付けたと判定すると(ステップS175においてYES)、制御をステップS180に切り替える。そうでない場合には(ステップS175においてNO)、情報処理装置100は、制御をステップS185に切り替える。
ステップS180において、情報処理装置100は、生成情報確認画面515を表示部122に表示する。
ステップS185において、情報処理装置100は、タイマー(図示せず)を用いて、生成アイテムの選択操作を受け付けたか否かを判定した時点から経過した時間を計測する。所定期間(例えば、1分間)を経過してタイムアウトした場合には(ステップS185においてYES)、情報処理装置100は、本フローチャートの処理を終了する。そうでない場合には(ステップS185においてNO)、情報処理装置100は、ステップS175の制御を繰り返し実行する。
ステップS190において、情報処理装置100は、生成情報確認画面515における生成情報の確認完了操作を受け付けたか否かを判定する。情報処理装置100は、生成情報の確認完了操作を受け付けたと判定すると(ステップS190においてYES)、制御をステップS195に切り替える。そうでない場合には(ステップS190においてNO)、情報処理装置100は、制御をステップS200に切り替える。
ステップS195において、情報処理装置100は、例えば、第1プログラムテンプレート61を含むユーザプログラム70を生成する。
ステップS200において、情報処理装置100は、タイマー(図示せず)を用いて、生成情報の確認完了操作を受け付けたか否かを判定した時点から経過した時間を計測する。所定期間(例えば、1分間)を経過してタイムアウトした場合には(ステップS200においてYES)、情報処理装置100は、本フローチャートの処理を終了する。そうでない場合には(ステップS200においてNO)、情報処理装置100は、ステップS190の制御を繰り返し実行する。
ステップS205において、情報処理装置100は、生成したユーザプログラム70を制御装置200に送信する。
<第2の実施の形態>
以下、本開示に係る第2の実施の形態について説明する。第2の実施の形態に係る制御システム1aに含まれる構成は、上述の第1の実施の形態に係る制御システム1に含まれる構成と一部のハードウェア構成が異なり、その他は同様のハードウェア構成を用いて実現される。また、第2の実施の形態に係る制御システム1aに含まれる構成により実現される処理は、第1の実施の形態に係る情報処理装置100に含まれる構成により実現される処理と一部が異なる以外は同様の処理を実行する。以下では、図17を参照して、制御システム1に含まれる構成のハードウェア構成および処理について、同じ内容についての説明は繰り返さずに、異なる構成および処理の内容について説明する。
図17は、第2の実施の形態における制御システム1aの構成例について説明する図である。上述の第1の実施の形態では、制御システム1に含まれる1つの情報処理装置100がテーブル420の情報(カラムの数およびデータ型)を取得する。そして、情報処理装置100は、構造体のメンバ150の数とデータ型とを決定した後、生成したユーザプログラム70を制御装置200に出力することについて説明した。すなわち、1つの情報処理装置100が、取得モジュール110、設定モジュール120、決定モジュール130および生成モジュール140の機能を有する。そして、1つの情報処理装置100が当該機能を用いた処理を実行することについて説明した。これに対して、図17に示す第2の実施の形態では、制御システム1aに含まれる複数の情報処理装置100が、上記の機能を用いた処理を実行する。
制御システム1aは、第1情報処理装置100aと、第2情報処理装置100bとを含む。第1情報処理装置100aは、取得モジュール110、設定モジュール120、決定モジュール130の機能を有する。第2情報処理装置100bは、生成モジュール140を有する。第1情報処理装置100aの取得モジュール110は、テーブル420の情報を取得する。第1情報処理装置100aの設定モジュール120および決定モジュール130は、構造体のメンバ150の数とデータ型とを決定した後、当該メンバ150の数とデータ型とを含む情報をエクスポートする。第1情報処理装置100aは、例えば、上記情報を予め定めたデータ形式のファイルで出力する。予め定められたデータ形式は、例えば、CSV(Comma Separated Values)形式等である。
第2情報処理装置100bの生成モジュール140は、ユーザプログラム70を生成する。生成されたユーザプログラム70は、制御装置200にインポートされる。
このように、制御システム1aは、全てのモジュールのうち一部のモジュールの機能を有する情報処理装置100と、他のモジュールの機能を有する別の情報処理装置100とにより構成される。これにより、制御システム1aは、複数の情報処理装置100を用いてモジュールの機能の追加等を容易に行える。
<第3の実施の形態>
以下、本開示に係る第3の実施の形態について説明する。第3の実施の形態に係る制御システム1bに含まれる構成は、上述の第1の実施の形態に係る制御システム1に含まれる構成と一部のハードウェア構成が異なり、その他は同様のハードウェア構成を用いて実現される。また、第3の実施の形態に係る制御システム1bに含まれる構成により実現される処理は、第1の実施の形態に係る情報処理装置100に含まれる構成により実現される処理と一部が異なる以外は同様の処理を実行する。以下では、図18を参照して、制御システム1に含まれる構成のハードウェア構成および処理について、同じ内容についての説明は繰り返さずに、異なる構成および処理の内容について説明する。
図18は、第3の実施の形態における制御システム1bの構成例について説明する図である。上述の第1の実施の形態では、制御システム1に含まれる情報処理装置100がテーブル420の情報(カラムの数およびデータ型)を取得する。そして、情報処理装置100は、構造体のメンバの数とデータ型とを決定した後、生成したユーザプログラム70を制御装置200に出力することについて説明した。すなわち、情報処理装置100が、取得モジュール110、設定モジュール120、決定モジュール130および生成モジュール140の機能を有する。そして、情報処理装置100が当該機能を用いた処理を実行することについて説明した。これに対して、第3の実施の形態では、制御システム1bに含まれる制御装置200が、取得モジュール110、設定モジュール120、決定モジュール130および生成モジュール140の機能を有する。制御装置200は、これらのモジュール機能を用いた処理を実行する。
制御装置200の取得モジュール110は、テーブル420の情報(カラムの数およびデータ型)を取得する。そして、設定モジュール120が構造体のメンバ150を定義した後、決定モジュール130は、構造体のデータ型を決定する。生成モジュール140は、生成したユーザプログラム70等を制御装置200内で実行する。
なお、第1の実施の形態では、情報処理装置100は、開発支援プログラム30が実行されることで、操作部124を用いたユーザ操作により、各モジュールの機能が実行されることについて説明した。これに対して、制御装置200の記憶装置208には、開発支援プログラム30が格納されていない。制御装置200は、各モジュールの機能をユーザの操作を受け付けることなく自動で実行する。このように、制御装置200が自動で各モジュールの機能を実行するためのユーザプログラム70について、図19および図20を用いて以下説明する。
図19は、ユーザプログラム70に含まれるファンクションブロックFB2の一例を示す図である。以下、ファンクションブロックFB2をブロックFB2とも称する。
ブロックFB2の機能を有するプログラムは、ファンクションブロック以外で規定されてもよい。例えば、ブロックFB2は、ラダーダイアグラムで規定されるもの、命令リスト、構造化テキスト、および、シーケンシャルファンクションチャートのいずれか、あるいは、これらの組み合わせで規定されるものも含み得る。また、ブロックFB2は、JavaScriptやC言語のような汎用的なプログラミング言語で規定されるものも含み得る。
ブロックFB2は、データベース410へのアクセスを制御する命令を実行するためのプログラムである。より具体的には、ブロックFB2は、テーブル420からテーブル情報を取得して、構造体のメンバ150を定義した後、構造体のデータ型を決定する機能を有するプログラムである。
ブロックFB2は、レコードの追加に関する設定を受け付ける入力部257A~入力部257Dと、レコードの追加に関する情報を出力するための出力部258A~出力部258Dとを含む。
「Excute」として示される入力部257Aは、レコードの追加の処理を実行するか否かを指定するための設定を受け付ける。
「DBConnection」として示される入力部257Bは、データベース410に接続するためのファンクションブロックを実行して得られる接続結果を受け付ける。当該接続結果には、データベース410のアクセスするための情報(例えば、データベース名など)が含まれている。
「TableName」として示される入力部257Cは、テーブル名の設定を受け付ける。入力部257Cは、例えば、「DWORD」型の変数を受け付けるように規定されている。
「MappingVariableList」として示される入力部257Dは、構造体の変数の入力を受け付ける。入力部257Dは、予め定義された構造体を受け付けるように規定されている。
ブロックFB2の入力部257Cにはテーブル420のテーブル名(例えば、「Table1」)と、入力部257Dには構造体の全体を参照するための変数(例えば、InsertVal1)とがそれぞれ引数として設定される。これにより、制御システム1bは、構造体の定義と当該構造体のデータ型の決定とを含む処理を制御装置200に自動で実行させることができる。
レコードの追加の処理が正常に完了した場合には、正常終了を示す信号が、「Done」として示される出力部258Aから出力される。レコードの追加の処理中には、生成処理中を示す信号が、「Busy」として示される出力部258Bから出力される。レコードの追加の処理が正常に生成されなかった場合には、異常終了を示す信号が、「Error」として示される出力部258Cから出力される。この場合には、さらに、エラーの内容を識別するためのエラーIDが、「ErrorID」として示される出力部258Dから出力される。
図20は、ファンクションブロックFB2を含むユーザプログラム70の一例について説明する図である。制御装置200は、記憶装置108に格納されたテンプレート60を用いて図10に示すユーザプログラム70の一部を生成する。テンプレート60は、例えば、入力要素IN0~IN4と、ブロックFB1およびブロックFB2と、出力要素OUT1とを含む。例えば、テンプレート60に含まれる入力要素IN0~IN4の変数と、出力要素OUT1の変数とはブランクとなっており、テンプレート60が選択された後に変数が割り付けられる。また、ブロックFB1は、図9で説明した、ファンクションブロックに相当する。
入力要素IN0~IN4、ブロックFB1および出力要素OUT1の機能は、上述の図10で説明した機能と同じである。第2プログラムテンプレート62に含まれる入力要素IN0~IN4には変数が割り付けられており、これらの値は、割り付けられている変数に応じて変化する。上述のようにブロックFB2には、テーブル420のテーブル名と構造体の全体を参照するための変数とがそれぞれ引数として設定される。制御装置200は、ブロックFB2の機能により、構造体の定義と当該構造体のデータ型の決定とを含む処理を自動で実行する。
<変形例>
第1の実施の形態~第3の実施の形態において、図3~図8を用いて各画面に表示される項目について説明した。これに対して、各画面に表示される項目は一例であり、他の項目を表示して当該項目に対する選択を受け付けるようにしてもよい。
第1の実施の形態~第3の実施の形態において、ファンクショブロックに設けられる各入力部と各出力部とについて説明した。これに対して、説明した入力部および出力部は一例であり、説明した以外の入力部および出力部がファンクションブロック設けられてもよい。
第2の実施の形態において、第1情報処理装置100aは、取得モジュール110、設定モジュール120、決定モジュール130の機能を有する。また、第2情報処理装置100bは、生成モジュール140を有することについて説明した。これに対して、それぞれの情報処理装置100が有するモジュールの機能は一例であり、各情報処理装置100はどのモジュールの機能を有していてもよい。また、情報処理装置100は、上記とは異なるモジュールの機能を有していてもよい。
<付記>
以上のように、本実施の形態は以下のような開示を含む。
[構成1]
制御対象を制御するための制御システム(1)であって、
1または複数のテーブル(420)を保持しているデータベース(410)と、
制御プログラム(70)を実行する、前記データベース(410)にアクセス可能な制御装置(200)と、
前記1または複数のテーブル(420)のうち選択されたテーブル(420)を構成するカラム(450)の数および各カラム(450)のデータ型を取得する取得手段(110)と、
前記取得したカラム(450)の数に対応する数のメンバ(150)を含む、前記制御プログラム(70)において利用可能な構造体を定義する設定手段(120)と、
前記取得した各カラム(450)のデータ型に対応付けて、前記構造体の各メンバ(150)のデータ型を決定する決定手段(130)とを備える、制御システム。
[構成2]
前記決定手段(130)は、前記制御プログラム(70)で利用可能なデータ型の中から前記構造体の各メンバ(150)のデータ型を決定する、構成1に記載の制御システム。
[構成3]
前記決定手段(130)は、データ型の1または複数の候補に対する、ユーザによる選択に従って、前記構造体の各メンバ(150)のデータ型を決定する、構成1または2に記載の制御システム。
[構成4]
前記決定手段(130)は、前記選択されたテーブル(420)のテーブル名を、前記構造体の全体を参照するための変数の属性情報として対応付ける、構成1~3のいずれか1項に記載の制御システム。
[構成5]
前記決定手段(130)は、前記構造体の各メンバ(150)のメンバ名を、前記各カラム(450)のカラム名に対応付ける、構成1~4のいずれか1項に記載の制御システム。
[構成6]
前記制御プログラム(70)は前記データベース(410)へのアクセスを制御する命令を実行するためのファンクションブロックを含み、
前記ファンクションブロックには、前記テーブル(420)のテーブル名と、前記構造体の全体を参照するための変数とがそれぞれ引数として設定される、構成1~5のいずれか1項に記載の制御システム。
[構成7]
前記各メンバ(150)に設定された値からなるレコードを、対応するテーブル(420)に追加する処理を実行させるためのプログラムテンプレート(61、62)を生成する生成部(140)をさらに備える、構成1~6のいずれか1項に記載の制御システム。
[構成8]
前記制御装置(200)で実行される制御プログラム(70)の開発を支援する情報処理装置(100)をさらに備え、
前記情報処理装置(100)は、
前記取得手段(110)、前記設定手段(120)および前記決定手段(130)を含む、構成1~7のいずれか1項に記載の制御システム。
[構成9]
制御装置(200)で実行される制御プログラム(70)の開発を支援する情報処理装置(100)であって、
前記制御装置(200)がアクセス可能なデータベース(70)が保持している1または複数のテーブル(70)のうち選択されたテーブル(70)を構成するカラム(450)の数よび各カラム(450)のデータ型を取得する取得手段(110)と、
前記取得したカラム(450)の数に対応する数のメンバ(150)を含む、前記制御プログラム(70)において利用可能な構造体を定義する設定手段(120)と、
前記取得した各カラム(450)のデータ型に対応付けて、前記構造体の各メンバ(150)のデータ型を決定する決定手段(130)とを備える、情報処理装置。
[構成10]
制御装置(200)で実行される制御プログラム(70)の開発を支援する情報処理装置(100)の情報処理プログラムであって、
前記情報処理プログラムは前記情報処理装置(100)に、
前記制御装置(200)がアクセス可能なデータベース(70)が保持している1または複数のテーブル(420)のうち選択されたテーブル(420)を構成するカラム(450)の数よび各カラム(450)のデータ型を取得するステップ(S20)と、
前記取得したカラム(450)の数に対応する数のメンバ(150)を含む、前記制御プログラム(70)において利用可能な構造体を定義するステップ(S25)と、
前記取得した各カラム(450)のデータ型に対応付けて、前記構造体の各メンバ(150)のデータ型を決定するステップ(S30)とを実行させる、情報処理プログラム。
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
1,1a,1b 制御システム、30 開発支援プログラム、40 データ型対応表、60 テンプレート、61 第1プログラムテンプレート、62 第2プログラムテンプレート、70 ユーザプログラム、80 システムプログラム、100 情報処理装置、100a 第1情報処理装置、100b 第2情報処理装置、102 制御部、104,206,304 主メモリ、108,208,308 記憶装置、110 取得モジュール、112,201,312 通信インターフェイス、114,316 表示インターフェイス、116,314 I/Oインターフェイス、120 設定モジュール、122,322 表示部、124,324 操作部、130 決定モジュール、140 生成モジュール、150 メンバ、151 第1メンバ、152 第2メンバ、153 第3メンバ、154 第4メンバ、200 制御装置、202,302 プロセッサ、204 チップセット、222 内部バスコントローラ、224 フィールドバスコントローラ、226 I/Oユニット、239 メモリカードインターフェイス、240 メモリカード、255A,255B,255C,257A,257B,257C,257D 入力部、256A,256B,256C,256D,258A,258B,258C,258D 出力部、280A,280B サーボドライバ、300 外部装置、325 内部バス、410 データベース、420 テーブル、450 カラム、451 第1カラム、452 第2カラム、453 第3カラム、454 第4カラム、461,462 レコード、510 データベース選択画面、511 テーブル選択画面、512 データ型選択画面、513 データ型確認画面、514 生成アイテム選択画面、515 生成情報確認画面、540 次画面ボタン、542 前画面ボタン、544 完了ボタン、558 選択欄、572 構造体、574 変数、FB1,FB2 ファンクションブロック(ブロック)。

Claims (10)

  1. 制御対象を制御するための制御システムであって、
    1または複数のテーブルを保持しているデータベースと、
    制御プログラムを実行する、前記データベースにアクセス可能な制御装置と、
    前記1または複数のテーブルのうち選択されたテーブルを構成するカラムの数および各カラムのデータ型を取得する取得手段と、
    前記取得したカラムの数に対応する数のメンバを含む、前記制御プログラムにおいて利用可能な構造体を定義する設定手段と、
    前記取得した各カラムのデータ型に対応付けて、前記構造体の各メンバのデータ型を決定する決定手段とを備える、制御システム。
  2. 前記決定手段は、前記制御プログラムで利用可能なデータ型の中から前記構造体の各メンバのデータ型を決定する、請求項1に記載の制御システム。
  3. 前記決定手段は、データ型の1または複数の候補に対する、ユーザによる選択に従って、前記構造体の各メンバのデータ型を決定する、請求項1または2に記載の制御システム。
  4. 前記決定手段は、前記選択されたテーブルのテーブル名を、前記構造体の全体を参照するための変数の属性情報として対応付ける、請求項1~3のいずれか1項に記載の制御システム。
  5. 前記決定手段は、前記構造体の各メンバのメンバ名を、前記各カラムのカラム名に対応付ける、請求項1~4のいずれか1項に記載の制御システム。
  6. 前記制御プログラムは、前記データベースへのアクセスを制御する命令を実行するためのファンクションブロックを含み、
    前記ファンクションブロックには、前記テーブルのテーブル名と、前記構造体の全体を参照するための変数とがそれぞれ引数として設定される、請求項1~5のいずれか1項に記載の制御システム。
  7. 前記各メンバに設定された値からなるレコードを、対応するテーブルに追加する処理を実行させるためのプログラムテンプレートを生成する生成部をさらに備える、請求項1~6のいずれか1項に記載の制御システム。
  8. 前記制御装置で実行される制御プログラムの開発を支援する情報処理装置をさらに備え、
    前記情報処理装置は、
    前記取得手段、前記設定手段および前記決定手段を含む、請求項1~7のいずれか1項に記載の制御システム。
  9. 制御装置で実行される制御プログラムの開発を支援する情報処理装置であって、
    前記制御装置がアクセス可能なデータベースが保持している1または複数のテーブルのうち選択されたテーブルを構成するカラムの数よび各カラムのデータ型を取得する取得手段と、
    前記取得したカラムの数に対応する数のメンバを含む、前記制御プログラムにおいて利用可能な構造体を定義する設定手段と、
    前記取得した各カラムのデータ型に対応付けて、前記構造体の各メンバのデータ型を決定する決定手段とを備える、情報処理装置。
  10. 制御装置で実行される制御プログラムの開発を支援する情報処理装置の情報処理プログラムであって、
    前記情報処理プログラムは前記情報処理装置に、
    前記制御装置がアクセス可能なデータベースが保持している1または複数のテーブルのうち選択されたテーブルを構成するカラムの数よび各カラムのデータ型を取得するステップと、
    前記取得したカラムの数に対応する数のメンバを含む、前記制御プログラムにおいて利用可能な構造体を定義するステップと、
    前記取得した各カラムのデータ型に対応付けて、前記構造体の各メンバのデータ型を決定するステップとを実行させる、情報処理プログラム。
JP2019042490A 2019-03-08 2019-03-08 制御システム、情報処理装置、および情報処理プログラム Active JP7014199B2 (ja)

Priority Applications (8)

Application Number Priority Date Filing Date Title
JP2019042490A JP7014199B2 (ja) 2019-03-08 2019-03-08 制御システム、情報処理装置、および情報処理プログラム
US17/434,836 US20220147010A1 (en) 2019-03-08 2020-02-14 Control system, information processing apparatus, and information processing program
CN202310457195.1A CN116450589A (zh) 2019-03-08 2020-02-14 控制系统、信息处理装置以及记录介质
EP23170673.0A EP4224333A1 (en) 2019-03-08 2020-02-14 Control system, information processing apparatus, and information processing program
PCT/JP2020/005789 WO2020184061A1 (ja) 2019-03-08 2020-02-14 制御システム、情報処理装置、および情報処理プログラム
EP20769408.4A EP3937024A4 (en) 2019-03-08 2020-02-14 CONTROL SYSTEM, INFORMATION PROCESSING DEVICE AND INFORMATION PROCESSING PROGRAM
CN202080017521.1A CN113518981A (zh) 2019-03-08 2020-02-14 控制系统、信息处理装置以及信息处理程序
US17/837,268 US20220299968A1 (en) 2019-03-08 2022-06-10 Control system, information processing apparatus, and information processing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019042490A JP7014199B2 (ja) 2019-03-08 2019-03-08 制御システム、情報処理装置、および情報処理プログラム

Publications (2)

Publication Number Publication Date
JP2020144753A JP2020144753A (ja) 2020-09-10
JP7014199B2 true JP7014199B2 (ja) 2022-02-01

Family

ID=72354306

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019042490A Active JP7014199B2 (ja) 2019-03-08 2019-03-08 制御システム、情報処理装置、および情報処理プログラム

Country Status (5)

Country Link
US (2) US20220147010A1 (ja)
EP (2) EP4224333A1 (ja)
JP (1) JP7014199B2 (ja)
CN (2) CN113518981A (ja)
WO (1) WO2020184061A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000315167A (ja) 1999-04-30 2000-11-14 Toshiba Corp データ管理装置、計算機システムおよびプログラムを記憶した記憶媒体
JP2006031214A (ja) 2004-07-14 2006-02-02 Mitsubishi Electric Corp データ処理装置及びデータ処理方法及びプログラム
WO2013191275A1 (ja) 2012-06-22 2013-12-27 オムロン株式会社 制御装置
US20150026635A1 (en) 2013-07-17 2015-01-22 Abb Technology Ag Method for generating control-code by a control-code-diagram

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH103303A (ja) * 1996-06-14 1998-01-06 Mitsubishi Electric Corp インターフェース装置
US7188100B2 (en) * 2000-02-25 2007-03-06 Joseph De Bellis Search-on-the-fly report generator
US7136873B2 (en) * 2002-07-20 2006-11-14 Microsoft Corporation Dynamic filtering in a database system
US20040210631A1 (en) * 2003-04-17 2004-10-21 Asher Michael L. Method and apparatus for accessing legacy data in a standardized environment
JP2016194808A (ja) 2015-03-31 2016-11-17 オムロン株式会社 プログラマブルロジックコントローラ、データ収集装置、データベースアクセス方法およびデータベースアクセスプログラム
JP2017016503A (ja) * 2015-07-03 2017-01-19 富士通株式会社 コンパイラ、コンパイル装置及びコンパイル方法
US10445350B2 (en) * 2015-11-15 2019-10-15 Microsoft Technology Licensing, Llc Optimizing content for consistent presentation through collaboration database service
US10545984B2 (en) * 2017-05-23 2020-01-28 Sap Se Abstract default column type in tables
JP7073813B2 (ja) * 2018-03-16 2022-05-24 富士通株式会社 制御プログラム、制御方法および情報処理装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000315167A (ja) 1999-04-30 2000-11-14 Toshiba Corp データ管理装置、計算機システムおよびプログラムを記憶した記憶媒体
JP2006031214A (ja) 2004-07-14 2006-02-02 Mitsubishi Electric Corp データ処理装置及びデータ処理方法及びプログラム
WO2013191275A1 (ja) 2012-06-22 2013-12-27 オムロン株式会社 制御装置
US20150026635A1 (en) 2013-07-17 2015-01-22 Abb Technology Ag Method for generating control-code by a control-code-diagram

Also Published As

Publication number Publication date
EP3937024A4 (en) 2022-11-09
US20220299968A1 (en) 2022-09-22
JP2020144753A (ja) 2020-09-10
EP4224333A1 (en) 2023-08-09
US20220147010A1 (en) 2022-05-12
WO2020184061A1 (ja) 2020-09-17
CN113518981A (zh) 2021-10-19
CN116450589A (zh) 2023-07-18
EP3937024A1 (en) 2022-01-12

Similar Documents

Publication Publication Date Title
JP2017191386A (ja) 機器保全装置、機器保全方法、機器保全プログラム及び記録媒体
JP6065008B2 (ja) 制御装置
US8583412B2 (en) Systems and methods for providing a simulation environment having a simulation user interface
JP6737298B2 (ja) コントローラ、制御方法、および制御プログラム
US20170262816A1 (en) Device maintaner, a device maintenance system, a device maintenance method, a device maintenance program and a recording medium
JP5619328B1 (ja) シーケンスプログラム作成支援装置
CN111095194B (zh) 控制系统、控制器以及控制方法
JP7063009B2 (ja) 表示装置、画面生成方法、および画面生成プログラム
JP7014199B2 (ja) 制御システム、情報処理装置、および情報処理プログラム
JP6954191B2 (ja) 制御システム、開発支援装置、および開発支援プログラム
JP6856153B2 (ja) 機器保全装置、機器保全方法、機器保全プログラム及び記録媒体
JP5492573B2 (ja) トレース機能を備える接続機器シミュレータ装置、方法、及びプログラム
JP7044086B2 (ja) 制御システム、制御方法、および制御プログラム
JP6801771B2 (ja) 機器保全装置、機器保全方法、機器保全プログラム及び記録媒体
US20230247115A1 (en) Protocol driver creating device
JP2007172128A (ja) I/oシミュレータ装置
JP2019160348A (ja) 機器保全装置、機器保全方法、機器保全プログラム及び記録媒体
JP2001022410A (ja) プログラマブルコントローラのためのプログラム作成方法、およびプログラム作成装置、ならびにプログラム作成プログラムを記録した記録媒体
JPS63273914A (ja) プラント監視画面自動生成システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201215

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220103