(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025022588
(43)【公開日】2025-02-14
(54)【発明の名称】情報作成装置、動作プログラム作成装置、それらのプログラムおよび記録媒体
(51)【国際特許分類】
G05B 19/05 20060101AFI20250206BHJP
【FI】
G05B19/05 S
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023127300
(22)【出願日】2023-08-03
(71)【出願人】
【識別番号】000232243
【氏名又は名称】日本電気硝子株式会社
(74)【代理人】
【識別番号】100127498
【弁理士】
【氏名又は名称】長谷川 和哉
(74)【代理人】
【識別番号】100146329
【弁理士】
【氏名又は名称】鶴田 健太郎
(72)【発明者】
【氏名】折田 憲明
【テーマコード(参考)】
5H220
【Fターム(参考)】
5H220AA04
5H220BB09
5H220CC09
5H220JJ12
5H220JJ26
(57)【要約】
【課題】3次元CAD装置のシミュレーション機能と動作プログラムのシミュレータとを連携するための情報の作成に要する作業負担を軽減する。
【解決手段】PC(4)は、PLCシミュレータ(3)によるシミュレーション動作に応じて、3次元CAD装置(1)がPLCに接続された機器の動作のシミュレーションを行うための機器に関する機器情報を作成する。PC(4)は、3次元CAD装置(1)において機器を特定する第1特定情報を取得する取得部(411)と、第1特定情報に含まれる機器の属性に基づいて、第1特定情報を属性に応じて設けられた区分に仕分ける仕分け部(412)と、ラダープログラムにおいて機器を特定し、ユーザにより入力される第2特定情報を、仕分けられた第1特定情報に割り当てる割当部(413)とを備える。第1特定情報は機器に固有の機器名称を含み、第2特定情報はラダープログラムにおいて機器を識別するデバイスを含む。
【選択図】
図1
【特許請求の範囲】
【請求項1】
制御装置を所定の手順で動作させるための動作プログラムをシミュレーション動作させるシミュレータによる当該シミュレーション動作に応じて、3次元CAD装置が前記制御装置に接続される機器の動作のシミュレーションを行うための前記機器に関する機器情報を作成する情報作成装置であって、
前記3次元CAD装置において前記機器を特定する第1特定情報を取得する取得部と、
取得された前記第1特定情報に含まれる前記機器の属性に基づいて、取得された前記第1特定情報を前記属性に応じて設けられた区分に仕分ける仕分け部と、
前記動作プログラムにおいて前記機器を特定し、ユーザにより入力される第2特定情報を、仕分けられた前記第1特定情報に割り当てる割当部と、を備え、
前記第1特定情報は、前記機器に固有の機器名称を含み、
前記第2特定情報は、前記動作プログラムにおいて前記機器の動作を識別する識別情報を含む、情報作成装置。
【請求項2】
請求項1に記載の情報作成装置としてコンピュータを機能させるための情報作成プログラムであって、前記情報作成装置の各部としてコンピュータを機能させるための情報作成プログラム。
【請求項3】
請求項2に記載の情報作成プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項4】
制御装置を所定の手順で動作させるための動作プログラムをシミュレーション動作させるシミュレータによる当該シミュレーション動作に応じて、3次元CAD装置が前記制御装置に接続される機器の動作のシミュレーションを行うために、前記3次元CAD装置において前記機器を特定する第1特定情報と、当該第1特定情報と異なり、前記動作プログラムにおいて前記機器の動作を特定する第2特定情報とを対応付けるための対応情報を作成する情報作成装置であって、
前記第1特定情報と前記第2特定情報との対応付けを管理する管理装置から前記第2特定情報と対応付けられていない前記第1特定情報を取得する取得部と、
取得された前記第1特定情報ごとに予め割り当てられた前記第2特定情報を、前記第2特定情報に関連し、かつ前記第1特定情報に含まれる、前記機器に固有の固有情報と対応付けた対応関係を作成し、当該対応関係を管理装置に通知する通知部と、を備える、情報作成装置。
【請求項5】
請求項4に記載の情報作成装置としてコンピュータを機能させるための情報作成プログラムであって、前記情報作成装置の各部としてコンピュータを機能させるための情報作成プログラム。
【請求項6】
請求項5に記載の情報作成プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項7】
制御装置を所定の手順で動作させる動作プログラムを作成する動作プログラム作成装置であって、
前記制御装置に接続される、3次元CAD装置がシミュレーションの対象とする機器に固有の機器名称および前記機器の動作を表す動作名称を含む複合名称を前記機器の動作順に記述したシーケンス情報、および前記複合名称と前記機器名称に対応する命令とを対応付けた命令対照情報を参照して、前記動作プログラムを構成する、前記機器名称に対応する命令を前記動作順に配置する配置部と、
前記機器名称と前記機器の動作を識別する識別情報との対応関係を規定する機器情報を参照して、配置された前記命令に前記識別情報を割り付ける割付部と、を備える、動作プログラム作成装置。
【請求項8】
前記複合名称は、前記制御装置に接続される全ての前記機器についての前記機器名称を含み、
前記配置部は、前記複合名称に含まれる前記機器名称を、前記機器情報に含まれる前記機器名称と比較し、前記機器情報に含まれる前記機器名称と一致しない前記機器名称を含む前記複合名称についての前記命令を配置しない、請求項7に記載の動作プログラム作成装置。
【請求項9】
請求項7または8に記載の動作プログラム作成装置としてコンピュータを機能させるための動作プログラム作成プログラムであって、前記動作プログラム作成装置の各部としてコンピュータを機能させるための動作プログラム作成プログラム。
【請求項10】
請求項9に記載の動作プログラム作成プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ラダープログラム等のシミュレータと3次元CAD装置のシミュレーション機能との連携を図るための情報を作成する情報作成装置等に関する。
【背景技術】
【0002】
製造装置等の複雑な装置の各部品の干渉、当該装置によるワークの搬送などを検証するためには、例えば、3次元CAD装置を用いて装置をシミュレーションすることが行われる。例えば、特許文献1には、3次元CADのシミュレーションのためのシミュレーションプログラムにより、CADデータに基づく各部品を、ラダー言語などのプログラム言語により記述された動作プログラムに基づいて動作させることが記載されている。ただし、上述のような従来技術では、シミュレーションプログラムを必要とする。
【0003】
これに対し、複数の制御機器の間、複数のアプリケーションプログラムの間などで通信を仲介する汎用のOPCサーバを用いて、3次元CAD装置のシミュレーション機能と、動作プログラムのシミュレータとを連携することが行われている。例えば、特許文献2には、CADシステムのシミュレータが、OPCサーバを介してPLCから受信したデータに基づいて、PLCにより制御される製造装置の動作をシミュレーションすることが記載されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2012-226603号公報
【特許文献2】特許第7189383号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
3次元CAD装置のシミュレーション機能と、動作プログラムのシミュレータとを連携するには、OPCサーバが3次元CAD装置と動作プログラムのシミュレータとの通信を中継できなければならない。このため、OPCサーバにおいて、3次元CAD装置によりシミュレーションされる装置を構成する各機器と、動作プログラムのデバイス(I/O番号)とを対応付ける必要がある。
【0006】
OPCサーバは、各機器についての情報を、3次元CAD装置から読み込むことができる。これに対し、機器と対応するデバイスは、人の手書きにより入力されていた。このため、多数のデバイスを入力する必要がある場合、その入力作業に多大な手間を要する。それゆえ、動作プログラムのシミュレータと連携した3次元CAD装置のシミュレーション機能を利用することは困難であった。
【0007】
本発明の一態様は、3次元CAD装置のシミュレーション機能と、動作プログラムのシミュレータとを連携するための情報の作成に要する作業負担を軽減することを目的とする。
【課題を解決するための手段】
【0008】
上記の課題を解決するために、本発明の一態様に係る情報作成装置は、制御装置を所定の手順で動作させるための動作プログラムをシミュレーション動作させるシミュレータによる当該シミュレーション動作に応じて、3次元CAD装置が前記制御装置に接続される機器の動作のシミュレーションを行うための前記機器に関する機器情報を作成する情報作成装置であって、前記3次元CAD装置において前記機器を特定する第1特定情報を取得する取得部と、取得された前記第1特定情報に含まれる前記機器の属性に基づいて、取得された前記第1特定情報を前記属性に応じて設けられた区分に仕分ける仕分け部と、前記動作プログラムにおいて前記機器を特定し、ユーザにより入力される第2特定情報を、仕分けられた前記第1特定情報に割り当てる割当部と、を備え、前記第1特定情報は、前記機器に固有の機器名称を含み、前記第2特定情報は、前記動作プログラムにおいて前記機器の動作を識別する識別情報を含む。
【0009】
上記の課題を解決するために、本発明の一態様に係る情報作成装置は、制御装置を所定の手順で動作させるための動作プログラムをシミュレーション動作させるシミュレータによる当該シミュレーション動作に応じて、3次元CAD装置が前記制御装置に接続される機器の動作のシミュレーションを行うために、前記3次元CAD装置において前記機器を特定する第1特定情報と、当該第1特定情報と異なり、前記動作プログラムにおいて前記機器の動作を特定する第2特定情報とを対応付けるための対応情報を作成する情報作成装置であって、前記第1特定情報と前記第2特定情報との対応付けを管理する管理装置から前記第2特定情報と対応付けられていない前記第1特定情報を取得する取得部と、取得された前記第1特定情報ごとに予め割り当てられた前記第2特定情報を、前記第2特定情報に関連し、かつ前記第1特定情報に含まれる、前記機器に固有の固有情報と対応付けた対応関係を作成し、当該対応関係を管理装置に通知する通知部と、を備える。
【0010】
上記の課題を解決するために、本発明の一態様に係る動作プログラム作成装置は、制御装置を所定の手順で動作させる動作プログラムを作成する動作プログラム作成装置であって、前記制御装置に接続される、3次元CAD装置がシミュレーションの対象とする機器に固有の機器名称および前記機器の動作を表す動作名称を含む複合名称を前記機器の動作順に記述したシーケンス情報、および前記複合名称と前記機器名称に対応する命令とを対応付けた命令対照情報を参照して、前記動作プログラムを構成する、前記機器名称に対応する命令を前記動作順に配置する配置部と、前記機器名称と前記機器の動作を識別する識別情報との対応関係を規定する機器情報を参照して、配置された前記命令に前記識別情報を割り付ける割付部と、を備える。
【発明の効果】
【0011】
本発明の一態様によれば、3次元CAD装置のシミュレーション機能と、動作プログラムのシミュレータとを連携するための情報の作成に要する作業負担を軽減することができる。
【図面の簡単な説明】
【0012】
【
図1】本発明の一実施形態に係るシミュレーションシステムの構成を示すブロック図である。
【
図2】上記シミュレーションシステムにおけるOPCサーバに設けられる未完成状態の上記対応テーブルの構成を示す図である。
【
図3】完成状態の上記対応テーブルの構成を示す図である。
【
図4】上記シミュレーションシステムにおけるPCに設けられる仕分け部により仕分けられる仕分け情報を示す図である。
【
図5】上記仕分け情報にユーザの入力によりデバイスが割り当てられた機器情報を示す図である。
【
図6】上記PCによる上記機器情報および上記OPCサーバによる上記対応テーブルの作成の手順を示すフローチャートである。
【
図7】上記PCによる上記機器情報、上記OPCサーバによる上記対応テーブルの作成、および上記シミュレーションシステムによるシミュレーションの概念を示す図である。
【
図8】上記シミュレーションシステムにおける他のPCによるラダープログラムの作成の手順を示すフローチャートである。
【
図9】上記3次元CAD装置のシミュレータにより実行されるチャックのシミュレーション動作を示す図である。
【
図10】上記シミュレーションシステムによる上記シミュレーションの手順を示すフローチャートである。
【
図11】上記シミュレーションにおいて上記PLCシミュレータにより実行されるラダープログラムのシミュレーションの動作の一例を示す図である。
【発明を実施するための形態】
【0013】
〔実施形態〕
以下、本発明の一実施形態について、詳細に説明する。
【0014】
〈シミュレーションシステム100の概要〉
図1は、本実施形態に係るシミュレーションシステム100の構成を示すブロック図である。
【0015】
図1に示すようにシミュレーションシステム100は、3次元CAD装置1と、OPCサーバ2(管理装置)と、PLCシミュレータ3と、PC4(情報作成装置)と、PC5(動作プログラム作成装置)とを備えている。PC4,PC5は、パーソナルコンピュータであり、図示はしないが、CPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)、補助記憶装置(HHD,SSDなど)、表示装置、入力装置、通信装置などを有している。なお、本実施形態では、PC4,PC5を機能に応じて個別に設けているが、PC4,PC5の機能を1つのPCに集約してもよい。
【0016】
なお、以降の説明では、便宜上、「3次元CAD装置1」を単に「CAD装置1」と称する。
【0017】
シミュレーションシステム100において、PLCシミュレータ3は、制御装置を所定の手順で動作させるための動作プログラムをシミュレーション動作させる。また、シミュレーションシステム100において、PLCシミュレータ3のシミュレーション動作に応じて、CAD装置1に設けられたCADシミュレータ12が制御装置に接続される機器の動作のシミュレーションを行う。また、シミュレーションシステム100において、PC4は、CADシミュレータ12がシミュレーションを行うための機器情報を作成する。また、シミュレーションシステム100において、OPCサーバ2は、PLCシミュレータ3とCADシミュレータ12とが連携するための対応テーブルTを管理している。機器情報については、後に詳しく説明する。
【0018】
制御装置としては、例えば、PLC(programmable Logic Controller)が用いられる。PLCは、製造装置の主要部分を構成する機器を監視および制御する。PLCは、ラダープログラムのようなシーケンスプログラム(動作プログラム)に規定された制御手順にしたがって、予め定められたスキャンタイム毎に、機器の状態を読み出すこと、および機器に制御指示を与えることを行う。
【0019】
なお、以降の説明では、動作プログラムとしてラダープログラムを使用する例について記載する。
【0020】
機器は、PLCに接続されて動作する。機器としては、動作機器、入力機器、出力機器などが設けられる。動作機器は、シリンダなどの、信号のON/OFFで動作するような機器である。また、動作機器は、専用のコントローラによって複雑な動作をすることが可能な機器であり、サーボモータのようにサーボアンプ(コントローラ)の制御にしたがって動作する機器である。サーボモータは、ロボットアーム、X-Yテーブル、搬送装置などの多軸制御が必要な装置に複数用いられる。
【0021】
入力機器は、押しボタンスイッチ、センサなどのPLCに対する入力信号を出力する機器である。出力機器は、ランプ、電磁弁、汎用モータなどのPLCからの出力信号が与えられる機器である。
【0022】
〈CAD装置1の構成〉
CAD装置1は、上述した機器を含む製造装置のような装置を3次元で設計するコンピュータ装置である。CAD装置1は、CAD機能を実現するためのアプリケーションプログラムが汎用コンピュータに実装されることによりCAD機能を発揮する。CAD機能は、後述するCADシミュレータ12が有するシミュレーション機能も含む。CAD装置1は、記憶装置11と、CADシミュレータ12と、入力装置13と、表示装置14とを有している。
【0023】
記憶装置11は、3次元データと、付加情報とを記憶する。3次元データおよび付加情報は、CAD装置1が備える図示しない設計部により作成された設計データに含まれる。設計データは、CAD装置1の設計部により作成されるが、他のCAD装置により作成されたものであってもよい。
【0024】
CAD装置1では、装置を構成する各機器の可動部および固定部が要素として扱われる。3次元データは、各要素の形状を3次元で表すデータである。付加情報は、各要素についての各種の情報である。付加情報としては、要素番号、要素名称、要素タイプ、要素信号名などが設定されている。要素番号は、要素を特定する固有の識別番号である。要素名称は、要素に付与された固有の名称である。要素タイプについては、例えば複数のタイプを有する要素についてのタイプを設定できる。例えば、要素がシリンダである場合、エアーシリンダ、ソレノイドシリンダなどの複数のタイプ(エアー、ソレノイドなど)から該当するタイプを設定できる。要素信号名は、要素を動作させるための信号の名称であり、動作を表す名称として設定できる。
【0025】
CADシミュレータ12は、要素の可動部を動作させるシミュレーションを行う。CADシミュレータ12は、入力装置13を介したユーザによる入力操作に応じてシミュレーションの対象となる対象装置が選択されることでシミュレーション準備状態に移行する。CADシミュレータ12は、準備状態において、当該対象装置の要素を動作させるための情報として上記の要素番号をOPCサーバ2から取得すると、3次元データに基づいて当該要素番号を有する要素を動作させる状態を表示装置14に表示させる。
【0026】
〈PLCシミュレータ3の構成〉
PLCシミュレータ3は、ラダープログラムの動作の確認を、上述した機器が接続されたPLCにおいて行うのではなく、ラダープログラムを仮想的に動作させるシミュレーション機能により行う。例えば、スイッチのONにより出力し、スイッチのOFFにより出力を停止する機器の動作がラダープログラムにおいて記述されている場合、PLCシミュレータ3は、上記の動作をラダープログラム上で模擬的に実行する。
【0027】
PLCシミュレータ3は、上記のシミュレーション機能を実現するためのアプリケーションプログラムが汎用コンピュータに実装されることにより、シミュレーション機能を発揮する。PLCシミュレータ3は、記憶装置31と、通信部32と、実行部33とを有している。
【0028】
記憶装置31は、シミュレーションの対象となるラダープログラムを記憶する。このラダープログラムは、シミュレーションのためのプログラムであって、PLCに実際に組み込まれるラダープログラムとは異なる。例えば、非常停止ボタンの操作によって機器の動作を停止するといった装置の付加的な機能は、後述するCADシミュレータ12によるシミュレーションの対象となっていないことがある。このため、上記の非常停止ボタンのような付加的な機器は、PLCに接続されても、シミュレーション対象のラダープログラムには含まれない。
【0029】
通信部32は、OPCサーバ2およびPC5との通信を行う。
【0030】
実行部33は、ラダープログラムのシミュレーション機能を実行する。実行部33は、ラダープログラムにおいて表現された各要素の動作状態を変化させる。実行部33は、例えば、モータのような要素については、ラダープログラムにおいてON(始動)またはOFF(停止)させる。また、実行部33は、シリンダのような前進および後退する動作を行う要素については、ラダープログラムにおいてON(前進)およびOFF(後退)させる。
【0031】
実行部33は、ラダープログラムにおける要素のONおよびOFFに対応するデバイスを出力する。実行部33は、出力するデバイスをOPCサーバ2宛てに通信部32に送信させる。
【0032】
ここで、デバイスは、デバイス記号と、デバイス番号との組み合わせで構成される。デバイス名は、例えば、入力リレーをX、出力リレーをY、内部リレーをM、タイマをT、データレジスタをDなどと表現する。デバイスとしては、ビットデータ(0,1)を扱うビットデバイス(X,Y,Mなど)と、数値を扱うワードデバイス(Dなど)がある。デバイス記号は、PLCを製造するメーカに応じて異なることがある。デバイスは、機器の動作のそれぞれについて割り付けられている。例えば、上述したシリンダの前進およびシリンダの後退については、それぞれ異なるデバイスが割り付けられる。
【0033】
〈OPCサーバ2の構成〉
図2は、未完成状態の対応テーブルTの構成を示す図である。
図3は、OPCサーバ2に設けられる完成状態の対応テーブルTの構成を示す図である。
【0034】
OPCサーバ2は、アプリケーションプログラム間の通信をプラットフォームに依存せずに中継する機能を有している。OPCサーバ2は、その機能により、PLCシミュレータ3とCADシミュレータ12とのそれぞれのシミュレーション機能を連携する。OPCサーバ2は、連携機能を実現するためのアプリケーションプログラムが汎用コンピュータに実装されることにより連携機能を発揮する。OPCサーバ2は、記憶装置21と、通信部22と、制御部23とを有している。
【0035】
記憶装置31は、対応テーブルTを記憶している。
図3に示すように、対応テーブルTは、上述した、要素番号、要素名称、要素タイプおよび要素信号名と、対応デバイスとをそれぞれ表形式で対応付けている。対応デバイスは、上述したデバイスに相当する。
【0036】
通信部22は、CAD装置1およびPC4との通信を行う。
【0037】
制御部23は、OPCサーバ2を制御するために、取込部231と、読出・書込部232と、仲介部233とを有している。
【0038】
取込部231は、テーブルTを構成する上述した、要素番号、要素名称、要素タイプおよび要素信号名をCAD装置1から取得して取り込む。取込部231は、取得した、要素番号、要素名称、要素タイプおよび要素信号名のそれぞれをテーブルTにおける所定位置に配置するように書き込む。
図2に示すように、対応テーブルTにおいて、要素番号、要素名称、要素タイプおよび要素信号名が書き込まれた状態では、CAD装置1から取得できない対応デバイスについては、書き込まれずに空欄となる。
【0039】
読出・書込部232は、後述するPC4の要求に応じて、対応テーブルTから、要素名称、要素タイプおよび要素信号名を読み出す。また、読出・書込部232は、PC4から通知されるデバイスを対応デバイスとして対応テーブルTに書き込む。具体的には、読出・書込部232は、PC4から通知されるデバイスと機器名称との対応関係に基づいて、機器名称と一致する要素名称に対応するデバイスを対応テーブルTに書き込む。
【0040】
仲介部233は、PLCシミュレータ3とCADシミュレータ12との間の通信を仲介する。具体的には、仲介部233は、対応テーブルTを参照して、PLCシミュレータ3から送信されるデバイスと一致する対応デバイスに対応する要素番号を取得し、当該要素番号をCAD装置1宛てに通信部22に送信させる。
【0041】
〈PC4の構成〉
図4は、PC4に設けられる仕分け部412により仕分けられる仕分け情報IGを示す図である。
図5は、仕分け情報IGにユーザの入力によりデバイスが割り当てられた機器情報IEを示す図である。
【0042】
PC4は、上述した機器情報と、対応情報とを作成する。機器情報は、機器に関する情報であり、第1特定情報と第2特定情報との対応付けを含んでいる。第1特定情報は、機器を特定する情報として機器に固有の機器名称(固有情報)を含んでいる。第2特定情報は、第1特定情報に関連する情報であって、ラダープログラムにおいて機器の動作を識別(特定)するための情報としてデバイス(識別情報)を含んでいる。機器情報は、後述するPC5によるラダープログラムの作成に利用される。また、機器情報は、OPCサーバ2の対応テーブルTにおいて、要素名称に対応したデバイスを書き込むための対応情報として利用される。
【0043】
PC4は、情報作成部41と、記憶装置42と、入力装置43と、表示装置14と、通信部45とを有している。
【0044】
情報作成部41は、機器情報を作成にするために、取得部411と、仕分け部412と、割当部413とを有している。情報作成部41は、OPCサーバ2の対応テーブルTを完成させるために、通知部414を有している。情報作成部41は、PC5に機器情報を提供するためにエクスポート部415を有している。
【0045】
取得部411は、OPCサーバ2の、対応デバイスが書き込まれていない状態の対応テーブルT(
図2)から、上記の第1特定情報を取得する。取得部411は、第1特定情報として、少なくとも、機器名称に相当する要素名称と、要素タイプと、要素信号名とを取得する。
【0046】
仕分け部412は、取得された第1特定情報に含まれる機器の属性に基づいて、取得された第1特定情報を属性に応じて設けられた区分に仕分ける。具体的には、仕分け部4は、例えば、要素タイプを属性として、要素タイプに基づいて第1特定情報を仕分ける。
【0047】
仕分け部4は、例えば、
図4に示すように、要素タイプのソレノイドおよびサーボモータに基づいて、第1特定情報をソレノイドおよびサーボモータのそれぞれのグループに仕分けることにより仕分け情報IGを作成する。仕分け部4は、仕分け情報IGにおいて、要素名称を機器名称として扱うとともに、要素信号名を機器の動作を表す動作名称として扱う。
【0048】
割当部413は、入力装置43を介してユーザにより入力される第2特定情報としてのデバイスを、仕分け情報IGにおける第1特定情報である機器名称および動作名称に割り当てる。割当部413は、ユーザによるデバイスの入力のためのGUI(Graphical User Interface)の画面(図示せず)を表示装置44に表示させ、当該画面を介して入力されたデバイスを機器名称および動作名称に割り当てる。割当部413は、このように割り当てを行うことにより、例えば、
図5に示すような機器情報IEを作成する。
【0049】
通知部414は、割当部413により作成された機器情報に基づいて、第1特定情報ごとに予め割り当てられたデバイスを、第1特定情報に含まれる機器名称に対応付けた対応関係を作成する。対応付け部414は、作成した対応関係をOPCサーバ2宛てに通信部45に送信させることにより、対応関係をOPCサーバ2に通知する。
【0050】
記憶装置42は、割当部413により作成された機器情報を記憶する。通信部45は、OPCサーバ2およびPC5との通信を行う。
【0051】
エクスポート部415は、記憶装置42に記憶されている機器情報をPC5にエクスポートする。エクスポート部415は、機器情報をCSV(Comma Separated Values)形式に変換してエクスポートする。
【0052】
〈PC5の構成〉
PC5は、動作プログラムを作成する動作プログラム作成装置として構成される。PC5は、動作プログラムとしてラダープログラムを作成するために、ラダープログラム作成部51と、記憶装置52と、入力装置53と、表示装置54と、通信部55とを備えている。
【0053】
入力装置53は、ラダープログラムの作成指示、作成したラダープログラムのPLCシミュレータ3への書き込みの指示などのユーザによる操作を受け付ける。表示装置54は、上記の操作を受け付けるための画面を表示する。
【0054】
記憶装置52は、後述するインポート部511により取得される機器情報を記憶する。記憶装置52は、ラダープログラム作成部51により作成されるラダープログラムを記憶する。記憶装置52は、通信部55を介して外部から取得された命令対照情報およびシーケンス情報を記憶する。
【0055】
命令対照情報は、シーケンス名称と、ニーモニック形式で表された命令との対応を予め規定した情報である。シーケンス名称は、機器名称と機器の動作を表す上述した動作名称とが結合された復号名称である。複合名称としては、例えば「シリンダ前進」のような名称が挙げられる。シーケンス情報は、シーケンス名称をPLCの制御による機器の動作順に記述した情報である。
【0056】
ラダープログラム作成部51は、ラダープログラムを作成するために、インポート部311と、配置部512と、割付部513とを有している。
【0057】
インポート部511は、PC4からエクスポートされたCSV形式の機器情報をインポートする。
【0058】
配置部512は、命令対照情報に含まれている命令を、命令対照情報およびシーケンス情報に含まれているシーケンス名称によりシーケンス情報と関連付けて、シーケンス情報で規定されているシーケンス名称を有する機器の動作順に解析する。配置部512は、解析に基づいて、当該命令を、ラダープログラム(ラダー図)を構成するラダー記号に変換して、ラダー図にステップ番号順に配置する。
【0059】
配置部512は、シーケンス名称に含まれる機器名称を、機器情報に含まれる機器名称と比較する。配置部512は、比較の結果、機器情報に含まれる機器名称と一致しない機器名称を含むシーケンス名称(複合名称)についての命令を配置しない。シーケンス名称は、PLCに接続される全ての機器についての機器名称を含んでいる。
【0060】
割付部513は、機器情報を参照して、ラダー図に配置された命令にデバイスを割り付ける。具体的には、割付部513は、機器情報に含まれる機器名称とシーケンス情報に含まれる複合名称とを対応付け、その対応付けにより特定した命令に機器情報のデバイスを割り付ける。割付部513は、デバイスを割り付けたラダープログラムを記憶装置52に記憶させる。
【0061】
なお、ラダープログラム作成部51は、PLCシミュレータ3の機能として実行部33を含むように構成されていてもよい。この場合、PLCシミュレータ3の記憶装置31がPC5の記憶装置52に統合される。これにより、PC5がPLCシミュレータ3の機能を兼ね備えることができる。
【0062】
〈PC4による機器情報の作成〉
図6は、PC4による機器情報およびOPCサーバ2による対応テーブルTの作成の手順を示すフローチャートである。
図7は、PC4による機器情報の作成、OPCサーバ2による対応テーブルTの作成、およびシミュレーションシステム100によるシミュレーションの概念を示す図である。
【0063】
図6に示すように、まず、取得部411は、
図2に示すような対応デバイスが書き込まれていない状態の対応テーブルTから、要素名称、要素タイプおよび要素信号名を取得する(ステップS1)。取得部411は、OPCサーバ2に、要素名称、要素タイプおよび要素信号名の読み出しを要求する。OPCサーバ2の読出・書込部232は、当該要求に対して、対応テーブルTから要素名称、要素タイプおよび要素信号名を読み出して、これらの要素名称、要素タイプおよび要素信号名を通信部22にPC4宛てに送信させる。
【0064】
次いで、仕分け部412は、取得された要素名称および要素信号名を要素タイプに基づいて仕分ける(ステップS2)。
図7に示すように、仕分け部412は、要素名称を機器名称として仕分け、要素信号名を動作名称として仕分ける。
【0065】
図2に示すように、OPCサーバ2の取込部231が、CAD装置1から要素番号、要素名称、要素タイプおよび要素信号名を取り込んで、対応テーブルTに書き込んだ状態では、要素タイプが仕分けられておらず、まとまっていない。これに対し、仕分け部412は、例えば、
図4に示すように、要素タイプであるソレノイドおよびサーボモータごとに、機器名称および動作名称をグループとしてまとめて仕分ける。
【0066】
続いて、割当部413は、各要素名称にユーザにより入力されたデバイスを割り当てて機器情報を作成する(ステップS3)。そして、通知部414は、割当部413により作成された機器情報に基づいて、デバイスを機器名称に対応付けた対応関係を作成して、当該対応関係をOPCサーバ2に通知する(ステップS4)。
【0067】
さらに、OPCサーバ2が対応関係を受信すると、制御部23の読出・書込部232は、対応テーブルTにおける要素名称にデバイスを対応付けて対応テーブルTを完成させる(ステップS5)。具体的には、読出・書込部232は、対応関係の機器名称と一致する、対応テーブルTにおける要素名称についての対応デバイスとして、対応関係のデバイスを書き込んで、
図3に示すように対応テーブルTを完成させる。
【0068】
〈PC5によるラダープログラムの作成〉
図8は、PC5によるラダープログラムの作成の手順を示すフローチャートである。
【0069】
図8に示すように、まず、配置部512は、記憶装置52に記憶されているシーケンス情報から、シーケンス名称を機器の動作順に読み出していく(ステップS11)。次いで、配置部512は、記憶装置52に記憶されている命令対照情報を参照して、シーケンス名称に対応する命令を特定し、当該命令を機器の動作順に配置する(ステップS12)。
【0070】
配置部512は、命令の配置において、シーケンス名称に含まれる機器名称を機器情報に含まれる機器名称と比較する。命令対照情報に含まれるシーケンス名称は、PLCで動作するラダープログラムのために作成されていれば、CADシミュレータ12によるシミュレーションの対象となる機器の機器名称を含んでいない可能性がある。そこで、配置部512は、比較の結果、機器情報に含まれる機器名称と一致しない機器名称が存在する場合、その一致しない機器名称を含むシーケンス名称についての命令を配置しない。これにより、CADシミュレータ12によるシミュレーションの対象とならない機器についての命令を、ラダープログラムから排除することができる。
【0071】
続いて、割付部513は、記憶装置52に記憶されている機器情報を参照し、読み出したシーケンス名称に含まれる機器名称に対応するデバイスを特定する(ステップS13)。そして、割付部513は、特定したデバイスを配置された命令に割り付ける(ステップS14)。さらに、割付部513は、全てのシーケンス名称について命令にデバイスを割り付けたか否かを判定する(ステップS15)。
【0072】
割付部513は、ステップS15において、全てのシーケンス名称についての命令にデバイスを対応付けたと判定すると(YES)、ラダープログラムの作成処理を終えて、作成したラダープログラムを記憶装置52に保存する。割付部513は、ステップS15において、全てのシーケンス名称について命令にデバイスを対応付けていないと判定すると(NO)、処理をステップS11に戻す。
【0073】
このようにして、シミュレーションのためのラダープログラムが作成される。ラダープログラム作成部51は、作成したラダープログラムを記憶装置52に記憶させる。
【0074】
また、ラダープログラム作成部51は、ラダープログラムを記憶装置52から読み出してPLCシミュレータ3宛てに通信部22に送信させる。PLCシミュレータ3は、受信したラダープログラムを記憶装置31に書き込む。
【0075】
〈シミュレーションシステム100によるシミュレーション〉
図9は、CADシミュレータ12により実行されるチャック10のシミュレーション動作を示す図である。
図10は、シミュレーションシステム100によるシミュレーションの手順を示すフローチャートである。
図11は、シミュレーションにおいてPLCシミュレータ3により実行されるラダープログラムのシミュレーションの動作の一例を示す図である。
【0076】
ここでは、
図9に示すチャックの動作のシミュレーションを行う例について説明する。
図9に示すように、チャック10は、駆動部111と、開閉部112と、一対のフィンガ113,114とを備えている。駆動部111は、ソレノイドシリンダであり、ソレノイドによりピストンを駆動する。開閉部112は、ピストンの直進運動を、フィンガを開閉させる運動に変換する。フィンガ113,114は、開閉部112の駆動力によって開閉動作する。
【0077】
図10に示すように、まず、PLCシミュレータ3の実行部33は、ラダープログラムを起動して実行する(ステップS21)。実行部33は、ラダープログラムの実行に伴いデバイスを出力する(ステップS22)。実行部33は、例えば、
図11に示すように、スイッチがONするとシリンダが前進するという動作を記述したラダープログラムを実行する場合、シリンダの前進を表すデバイスとしてY10を出力する。
【0078】
図7に示すように、OPCサーバ2において、制御部23の仲介部233は、対応テーブルTを参照して、Y10のデバイスに対応する要素番号を出力する(ステップS23)。出力された要素番号は、通信部22によりCAD装置1に送信される。
【0079】
CAD装置1において、上記の要素番号が受信されると、CADシミュレータ12は、受信された要素番号の要素であるシリンダA1を動作させて(ステップS24)、処理を終える。CADシミュレータ12は、シリンダA1の動作に関してシリンダA1を前進させるコマンドを発行し、シリンダA1を動作させる動画像を、当該コマンドに基づいて3次元データを用いて生成し、表示装置14に表示させる。具体的には、チャック10は、
図9の左側に示すように、フィンガ113,114が開いた状態から、駆動部111のシリンダ(シリンダA1)が前進することにより、
図9の右側に示すように、フィンガ113,114が閉じてワーク20を把持する。
【0080】
なお、上記の例では、1つの動作についてシミュレーションが行われる。これに対し、一連の複数の動作を連続してシミュレーションすることも可能である。また、一連の複数の動作をシミュレーションする場合、各動作を間欠的にシミュレーションすることも可能である。
【0081】
〈効果〉
本実施形態のシミュレーションシステム100において、PC4は、取得部411と、仕分け部412と、割当部413とを備えている。取得部411は、CAD装置1において機器を特定する第1特定情報を取得する。仕分け部412は、取得された第1特定情報に含まれる機器の属性に基づいて、取得された第1特定情報を属性に応じて設けられた区分に仕分ける。割当部413は、動作プログラムとしてラダープログラムにおいて機器を特定し、ユーザにより入力される第2特定情報を、仕分けられた第1特定情報に割り当てる。第1特定情報は、機器に固有の機器名称を含んでいる。制御装置がPLCである場合、第2特定情報は、ラダープログラムにおいて機器の動作を識別する識別情報としてデバイスを含んでいる。
【0082】
上記構成によれば、第1特定情報(機器名称)が機器の属性に基づいて区分に仕分けられる。これにより、割当部413が第2特定情報(識別情報)を第1特定情報に割り当てるためのユーザによる第2特定情報の入力作業において属性に基づいて機器を特定しやすくなる。これにより、第2特定情報の入力作業を効率的に行なうことができる。また、第1特定情報をとして機器名称を用い、第2特定情報として識別情報を用いることで、動作プログラムを作成するための機器情報を作成することができる。したがって、3次元CAD装置のシミュレーション機能と、動作プログラムのシミュレータとを連携するための情報の作成に要する作業負担を軽減する。
【0083】
本実施形態のシミュレーションシステム100において、PC4は、取得部411と、通知部414とを備えている。取得部411は、第1特定情報と前記第2特定情報との対応付けを対応テーブルTとして管理する管理装置(OPCサーバ2)から第2特定情報と対応付けられていない第1特定情報を取得する。通知部414は、取得された第1特定情報ごとに予め割り当てられた第2特定情報を、第2特定情報に関連し、かつ第1特定情報に含まれる、機器に固有の固有情報(例えば機器名称)と対応付けた対応関係を作成し、当該対応関係を管理装置に通知する。
【0084】
対応テーブルTにおいては、上述したように、第1特定情報が要素タイプごとに仕分けられていない。このため、ユーザが、対応テーブルTにおいて要素タイプごとに第1特定情報に第2特定情報を対応付けることができず、作業に手間がかかる。
【0085】
これに対し、上記構成では、情報作成装置において、取得部411が第1特定情報を取得することにより、管理装置において第1特定情報に第2特定情報を対応付ける作業を省くことができる。また、管理装置において第1特定情報に第2特定情報を対応付ける作業に比べて、作業が容易な形式で第1特定情報と第2特定情報とを対応付けることができる。例えば、上述したような、第1特定情報が要素タイプごとに仕分けられた状態では、対応付けの作業を要素タイプごとに行うことができる。
【0086】
これにより、対応付けの作業効率を大幅に向上させることができる。そして、管理装置は、情報作成装置から通知された対応関係の機器情報に基づいて第2特定情報を第1特定情報に対応付けることができる。
【0087】
本実施形態のシミュレーションシステム100において、PC5は、配置部512と、割付部513とを備えている。配置部512は、機器情報、シーケンス情報、および命令対照情報を参照して、ラダープログラムを構成する、機器名称に対応する命令を動作順に配置する。機器情報は、制御装置に接続される、3次元CAD装置がシミュレーションの対象とする機器に固有の機器名称と識別情報との対応関係を規定する。シーケンス情報は、機器名称および機器の動作を表す動作名称を含む複合名称を機器の動作順に記述している。命令対照情報は、複合名称と機器名称に対応する命令とを対応付けている。割付部513は、機器情報を参照して、配置された命令に識別情報を割り付ける。
【0088】
通常、実際にPLCに実装されるラダープログラムは、CAD装置1がシミュレーションの対象とする装置の構成と異なっている。このため、PLCにおいて動作するラダープログラムは、PLCシミュレータ3において動作するラダープログラムと異なっている。例えば、PLCに接続される非常停止ボタンなどは、CADシミュレータ12によるシミュレーションの対象でないことがある。このため、従来、PLCで動作するラダープログラムを、CADシミュレータ12によるシミュレーションに対応するように改変する必要がある。しかしながら、このような改変は、非常に手間がかかるだけでなく、誤りを生じやすい。
【0089】
これに対し、上記構成によれば、機器情報に基づいて、CAD装置1がシミュレーションの対象とする機器に対応した動作プログラムを自動的に生成することができる。
【0090】
PC5は、配置部512は、複合名称に含まれる機器名称を、機器情報に含まれる機器名称と比較し、機器情報に含まれる機器名称と一致しない機器名称を含む複合名称についての命令を配置しない。ここでの複合名称は、PLCに接続される全ての機器についての機器名称を含む。
【0091】
上記構成によれば、機器情報に含まれる機器名称と一致する機器名称を含む複合名称に基づいてラダープログラムを作成することができる。これにより、CADシミュレータ12がシミュレーションの対象とする機器に対応したラダープログラムを作成することが可能になる。
【0092】
〔ソフトウェアによる実現例〕
CAD装置1、OPCサーバ2、PLCシミュレータ3およびPC4,PC5(以下、「装置」と呼ぶ)の機能は、当該装置としてコンピュータを機能させるためのプログラム(情報作成プログラム、動作プログラム作成プログラムなど)によって実現できる。当該プログラムは、当該装置の各制御ブロック(特にCADシミュレータ12、制御部23、実行部33、情報作成部41およびラダープログラム作成部51)としてコンピュータを機能させるためのプログラムである。
【0093】
この場合、上記装置は、上記プログラムを実行するためのハードウェアとして、少なくとも1つの制御ユニット(例えばプロセッサ)と少なくとも1つの記憶装置(記憶装置11,21,31,42,52)を有するコンピュータを備えている。この制御ユニットと記憶装置とを用いて上記プログラムを実行することにより、上記実施形態で説明した各機能が実現される。
【0094】
上記プログラムは、一時的ではなく、コンピュータ読み取り可能な、1または複数の記録媒体に記録されていてもよい。この記録媒体は、上記装置が備えていてもよいし、備えていなくてもよい。後者の場合、上記プログラムは、有線または無線の任意の伝送媒体を介して上記装置に供給されてもよい。
【0095】
また、上記各制御ブロックの機能の一部または全部は、論理回路により実現することも可能である。例えば、上記各制御ブロックとして機能する論理回路が形成された集積回路も本発明の範疇に含まれる。この他にも、例えば量子コンピュータにより上記各制御ブロックの機能を実現することも可能である。
【0096】
また、上記実施形態で説明した各処理は、AI(Artificial Intelligence:人工知能)に実行させてもよい。この場合、AIは上記制御ユニットで動作するものであってもよいし、他の装置(例えばエッジコンピュータまたはクラウドサーバ等)で動作するものであってもよい。
【0097】
〔付記事項〕
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。また、実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【符号の説明】
【0098】
1 3次元CAD装置
2 OPCサーバ(管理装置)
3 PLCシミュレータ(シミュレータ)
4 PC(情報作成装置)
5 PC(動作プログラム作成装置)
12 CADシミュレータ
411 取得部
412 仕分け部
413 割当部
414 通知部
512 配置部
513 割付部
T 対応テーブル(対応情報)