JP2020523689A - Pcプログラムを用いてplcを制御する方法 - Google Patents

Pcプログラムを用いてplcを制御する方法 Download PDF

Info

Publication number
JP2020523689A
JP2020523689A JP2019568070A JP2019568070A JP2020523689A JP 2020523689 A JP2020523689 A JP 2020523689A JP 2019568070 A JP2019568070 A JP 2019568070A JP 2019568070 A JP2019568070 A JP 2019568070A JP 2020523689 A JP2020523689 A JP 2020523689A
Authority
JP
Japan
Prior art keywords
plc
program
data
source code
service
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.)
Pending
Application number
JP2019568070A
Other languages
English (en)
Other versions
JP2020523689A5 (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.)
Brooks Automation Germany GmbH
Original Assignee
Brooks Automation Germany GmbH
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 Brooks Automation Germany GmbH filed Critical Brooks Automation Germany GmbH
Publication of JP2020523689A publication Critical patent/JP2020523689A/ja
Publication of JP2020523689A5 publication Critical patent/JP2020523689A5/ja
Pending legal-status Critical Current

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
    • G05B19/056Programming the PLC
    • 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/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • 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/054Input/output
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/058Safety, monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/51Source to source

Abstract

本発明は、PCプログラム(220)を用いてPLCを制御する方法に関し、PLCプログラムのソースコードは、データセクション(100)を含み、データセクション(100)は、PLCプログラムの実行時にPLCによって公開されるサービスを示すデータを含み、データセクション(100)に含まれるデータおよびPCプログラムテンプレート(200)を用いて、PCプログラムのソースコード(210)を自動生成し、PCプログラムの自動生成されたソースコード(210)から生成されたPCプログラム(220)を用いて、PLCを制御する。【選択図】図3

Description

本発明は、PCプログラムを用いてPLCを制御する方法、ならびに本方法を実行するためのコンピュータおよびコンピュータプログラムに関するものである。
PLC(プログラマブルロジックコントローラ)は、プロセスプラントまたは機械類を制御するための装置であり、デジタル的にプログラムされる。PLCは、通常、入力と、出力と、ファームウェア(オペレーティングシステム)と、アプリケーションプログラムをダウンロードするためのインタフェースと、を有する。アプリケーションプログラムは、入力に応じて、いかに出力が設定されるのかを定義する。ファームウェアによって、アプリケーションプログラムの入力および出力が利用可能となる。
リアルタイムシステムとしてのPLCは、デジタルセンサまたはアナログセンサと接続しており、プロセスプラントまたは機械類の空気圧シリンダもしくは油圧シリンダまたは電気モータのようなアクチュエータを制御する。特に半導体製造装置アプリケーションである多くの機械制御アプリケーションとして、典型的には、PLCおよび工場内ネットワーク(例えば、ファブまたはファウンドリとしても知られる半導体製造工場のホストシステム)に接続されたパーソナルコンピュータ(PC)アプリケーションがあり、それは、これらのセンサ値をPLCから読み取って、これらの取得したリアルタイムデータについて高度な管理を実行し(例えば、これらのデータを状態変数としてファブホストに送信し)、個々のアクションを実行するためのコマンドをPLCに送信する。
従来のPCアプリケーションにおける問題は、例えば、新たなセンサの追加または新たなアクチュエータの追加など、PLCアプリケーション側に進展があるたびに、PCアプリケーション側でも、これらの新たに追加された要素にアクセスするための基本機能を実装するために、例えば以下のような、かなりの量の修正作業があることである。
・PCがアクセスできる新たに追加されたセンサ/アクチュエータに関するPLCインタフェースのドキュメンテーションを作成/修正する。
・新たに追加された要素のための、PLCアプリケーションとPCアプリケーションとの間の追加の通信リンクを追加する。
・新たに追加された要素を表現するPCプログラムにおいて内部変数/手続きを作成する。
・新たに追加されたセンサを表示するため、および新たに追加されたアクチュエータを制御するためにPLCにコマンドを送信する可能性を提供するために、PCプログラムのグラフィカルユーザインタフェースを作成/修正する。
例えばOPCサーバを用いて、読み取りおよび/または書き込みのために、PLCの内部変数をPCに公開することができる。ただし、その場合にも、新たに提供される変数を用いるために、PCプログラムを手動で適応させなければならない。
よって、PCプログラムをPLCアプリケーション側の進展に適応させることに関わる必要な作業を軽減することが望ましい。
本発明によれば、独立請求項の特徴により、PCプログラムを用いてPLCを制御するための方法、コンピュータプログラム、およびコンピュータについて提案する。効果的なさらなる改良は、従属請求項の主題および以下の説明の主題をなしている。
本発明により、PLCプログラムのソースコードのデータセクションおよびPCプログラムテンプレートから読み出されたデータに基づいて、PLCと通信および/またはPLCを制御するために、好ましくはグラフィカルユーザインタフェース(GUI)を有する、PCプログラムを自動的に生成するための方法およびその実装を導入する。すなわち、そのデータセクションは、PCプログラムとPLCプログラムの両方に共通のソースコード部分となる。従って、PCプログラムをPLCアプリケーション側の進展に手動で適応させることによって導入されるエラーを防ぐことができる。PLCプログラム内では、データセクションは、PLCプログラムの実行時にPLCによって公開されるサービスをそれぞれ指定または宣言するデータを含み、それを対応するサービス公開手続きによって用いることができる。PCプログラム内では、これらのデータを、実際に公開されているサービスを把握するために用いることができるとともに、対応するサービス接続手続きによって用いることができ、さらに、好ましくは、それぞれの公開サービスのための視覚要素(入力または出力)を作成するために、GUI作成手続きによって用いることができる。
本発明は、PLCプログラム側で進展または変更があって、これらの変更をPCでも実装する必要がある場合に、PCプログラム側での開発時間を節約することを目的とする。PLCプログラム側、すなわちPLCプログラムのソースコードを適応させる必要は依然としてあるものの、PCプログラムが何らかのさらなる開発を必要とすることはない。PLCプログラムのソースコードが定義または変更された場合に、新たなPCプログラムソースコードを作成するために、変更されたデータセクションをPCプログラムテンプレートに結合する必要があるのみである。これにより、PC側での開発時間が大幅に節約されるとともに、ヒューマンエラーが回避され、さらに、自動的な機能整合性チェックが行われる。
本発明は、効果的には、「監視制御とデータ取得」(SCADA:Supervisory Control And Data Acquisition)の枠内で用いることができる。SCADAは、高度なプロセス監視管理のために、PC、ネットワーク化されたデータ通信、およびグラフィカルユーザインタフェースを用いる制御システムアーキテクチャであるが、プロセスプラントまたは機械類にインタフェースするために、PLCおよび離散PIDコントローラのような他の周辺装置を使用する。監視、およびコントローラ設定点変更のようなプロセスコマンドの発行を可能とするオペレータインタフェースは、SCADA監視コンピュータシステムを介して処理される。一方、リアルタイム制御ロジックまたはコントローラ計算は、フィールドセンサおよびアクチュエータに接続するネットワーク化されたモジュールによって実行される。
好ましい実施形態によれば、PLCプログラムのソースコードは、高水準プログラミング言語であり、特にC系言語またはIEC 61131−3で定義される言語である。IEC 61131−3は、プログラマブルロジックコントローラ用のオープン国際標準規格IEC 61131の(10部のうちの)第3部である。IEC 61131の第3部は、PLC内の制御プログラムの基本的なソフトウェアアーキテクチャおよびプログラミング言語を扱う。それは、2種類の図式プログラミング言語規格および2種類のテキストプログラミング言語規格、すなわち、ラダーダイアグラム(LD)図式言語;ファンクションブロックダイアグラム(FBD)図式言語;ストラクチャードテキスト(ST)テキスト言語;インストラクションリスト(IL)テキスト言語、を定義している。
PLCプログラムの作成は、PC上でPLCプログラミングツールキットを用いて行うと非常に簡便である。PLCプログラミングツールキットは、PCプログラムのプログラミング用のプログラミングツールキットとは異なる可能性があるが、本発明の利点は、PLCプログラミングとPCプログラミングとの間の言語の壁をいずれも乗り越えるために共通のファイルを共有することである。PLCプログラムでは、このファイルは、ソースコードの一部であり、PCプログラムでは、このファイルは、プログラムを自動的に生成するための入力である。本発明により、PCプログラムとPLCプログラムの両方に関連したソースコードを一度のみ提供することによって、コード生成が改善および簡略化される。本発明により、この場合は本発明の意味においてデータセクションである少なくとも1つのモジュールが一度のみ提供されて、それが二度、すなわち両方のプログラムを作成するときに使用されるような、PCプログラムとPLCプログラムの両方のソースコードのモジュール化について提案する。
効果的には、そのデータセクションを、別個のファイルの形で提供することができる。これにより、そのデータセクションを、非常に簡単に、PLCプログラムソースコードおよびPCプログラムソースコードに関連付けて利用する。そのデータセクションは、好ましくは、PLCプログラムのソースコードのヘッダであり、より好ましくは、別個のヘッダファイルの形で提供される。
好ましくは、PCプログラムテンプレートは、テキストテンプレートである。従って、同じくテキストである、ソースコードからのデータセクションに関連付けて、PCプログラムのソースコードを非常に簡単に自動生成することができる。特に、Microsoft社が提供するいわゆる「テキストテンプレート変換ツールキット」(T4)のような、いずれかの周知のコード生成ツールを効果的に使用することができる。開発者は、様々なパラメータを用いてテキストファイルの作成を自動化するためのアプリケーションフレームワークまたはツールフレームワークの一部として、T4を使用することができる。これらのテキストファイルは、最終的に、コード(例えば、(Visual)C#のようなC系、もしくはVisual BasicのようなBASIC系)、XML、HTML、またはXAMLのような、任意のテキスト形式で提供することができる。
PCプログラムがPLCと十分に通信可能とするためには、PCプログラムを用いてPLCを制御することは、好ましくは、PLCへの値の書き込みおよび/またはPLCからの値の読み取りを含む。典型的なPLCでは、ランタイム中に、最終的にPLCの動作を定義する特定の値を有する多くの異なる変数が、メモリに保存される。従って、そのような値を読み取ること、および書き込むことは、PLCを制御するための基本的な方法である。さらに効果的には、PCプログラムを用いてPLCを制御することは、PLCから情報を受信すること、および/またはPLCにコマンドを送信すること、を含む。
PCプログラムによりPLCを制御することを可能とするためには、PLCによって公開されるサービスは、好ましくは、PLCにデータを書き込むための少なくとも1つのサービス、および/またはPLCからデータを読み取るための少なくとも1つのサービス、を含む。これらのサービスにより、効果的に、PCプログラムが、PLCに値を書き込むこと、および/またはPLCから値を読み取ること、ひいてはPLCを制御することが可能となる。
本発明の好ましい実施形態によれば、それらのサービスは、例えば、(特にOPC UAによる)OPC、PVI、ProfiNetなどのサーバである、PLC上で動作するサーバを用いて、PLCによって公開される。これらは、特に、サーバから値(特に測定値)を読み取るため、および/またはサーバすなわちPLCに値(特に設定値)を書き込むための、様々なサービスをクライアントに公開するための、十分に試行されたソリューションである。さらに、公開されたサービスに接続するために、例えば、B&RからのいわゆるPVI(Process Visualization Interface)など、サードパーティのプロシージャおよびクライアントを効果的に使用することができる。PVIは、PC上で動作可能であって、データを受信するためにPLCに接続するソフトウェアである。PCプログラムは、PLCに接続するために、PVIを補助ツールとして用いることができる。
プログラムコードを含む、本発明によるコンピュータプログラムは、このコンピュータプログラムがコンピュータ上で実行されることで、本発明による方法のうちの1つのすべてのステップをコンピュータに実行させる。そのコンピュータプログラムを提供するための適切な非一時的マシン可読媒体は、特に、フロッピーディスク、ハードディスク、フラッシュメモリ、EEPROM、CD−ROM、およびDVDなどである。コンピュータネットワーク(インタネット、イントラネットなど)上のプログラムをダウンロードすることが効果的である。
本発明のさらなる効果および実施形態は、説明および添付の図面から明らかになるであろう。
前述の特徴および以下でさらに記載する特徴は、個々に示す組み合わせだけではなく、さらなる組み合わせまたは単独でも、本発明の範囲から逸脱することなく、用いることができることに留意すべきである。
図1は、プロセスチェンバと、いくつかのセンサ、およびPLCによって制御されるアクチュエータと、を備える例示的な機械を示している。 図2は、本発明の好ましい実施形態によるデータセクションを概略的に示している。 図3は、本発明の好ましい実施形態による、ヘッダファイルおよびPCプログラムテンプレートを用いてPCプログラムを作成するプロセスを概略的に示している。 図4は、本発明の好ましい実施形態による、ヘッダファイルおよびPLCメインプログラムファイルを用いてPLCプログラムを作成するプロセスを概略的に示している。
図1は、製造プロセスで使用する基板キャリア(例えば、半導体ウェハキャリア、フラットパネルディスプレイキャリア、レチクルキャリア、および電子装置製造用の他のキャリア)のための自動洗浄・検査システムの一部であり得る機械10を概略的に示している。機械10は、ドア12と、この場合はドアを開閉するための空気圧シリンダとして構成されたアクチュエータ13と、を有するプロセスチェンバ11を備える。ドア12が開いているのか閉じているのかを判断するために、アクチュエータの位置を検出するための2つのセンサ14が設けられている。
プロセスチェンバ11内には、チェンバを所望の温度まで加熱するためのヒータ15と、電気モータ17によって所望の速度で回転させる回転板と、が設けられている。
センサ14およびアクチュエータ13、15、17は、プロセスを制御するためのPLC30に接続されている。そしてPLC30は、PLCを制御するためのPC20に接続されており、例えば、PCは、PLCにコマンドを送信するとともに、PLCからデータを取得する。
図2は、様々なサービスを示すための内部ブロックを有する、PLCプログラムのデータセクション100を概略的に示している。好ましくは、このデータセクションは、PLCプログラムのヘッダである。従って、そのデータを、信頼性の高い直接的な方法で読み出すことが可能である。
前述のように、PLCによって公開されるサービスは、PLCにデータを書き込むための少なくとも1つのサービス、および/またはPLCからデータを読み取るための少なくとも1つのサービス、を含むことができる。従って、実際には、このデータセクションは、PLCにデータを書き込むためのサービス(「CONTROL」)としての1つのセクションまたはブロック110と、PLCからデータを読み取るためのサービス(「INFO」)としての1つのブロック120と、を含む。
同様に、ブロック110は、コマンドとパラメータにそれぞれ関連した2つのサブブロック111、112に分割することができる。例えば、サブブロック111では、装置のアクション(例えば、ドアの開閉、プロセスの開始/停止)を開始させるための、PLCへの可能なコマンドすなわちPCからの到来データを示すことができ、サブブロック112では、機械に関連したパラメータを設定するための、可能な書き込み可能パラメータすなわちPCからの到来データを示すことができる。
基本的に、2つのタイプのパラメータがあり、装置関連パラメータの場合、特定の装置構成部品がそのコマンドに関連しており(例えば、「Rotate Table」コマンドの場合の所望速度)、プロセス関連パラメータの場合、何らかのプロセスの制約がそのコマンドに関連している(例えば、「Run Process」コマンドの場合の所望温度)。
ブロック120は、プロセス結果と装置状態にそれぞれ関連した2つのサブブロック121、122に分割することができる。例えば、サブブロック121では、プロセスの結果(例えば、「Run Process」コマンドの場合の測定された平均/最低/最高温度、および「Desired Temperature」パラメータによる結果の評価)を報告するための、可能な読み取り可能プロセス結果すなわちPCに送信される発信データを示すことができ、サブブロック122では、装置状態(例えば、ドアの開閉状態)および(何らかの障害が生じている場合の)装置障害状態を報告するための、可能な読み取り可能装置状態データすなわちPCに送信される発信データを示すことができる。
図1に示す例では、
・PCは、チェンバのOPENまたはCLOSE(2つのコマンド)をPLCに要求できる。
・PCは、ドアがOPENまたはCLOSED(2つの装置状態)のどちらかである状態を通知される。
・PCは、所望の温度および電気モータ速度(2つのコマンドパラメータ)でプロセスを開始させること(1つのコマンド)をPLCに要求できる。
・プロセスが終了すると、PCは、プロセス中の最低/最高/平均温度(1つのプロセス結果)を通知される。
本例に関連した好ましいヘッダを、付録に示している。このヘッダファイルは、所望の装置機能に応じて、手動で設計されている。これは、PCプログラムに対して、インタフェースを提供するとともに、制御対象のPLC装置のすべての能力を完全に規定している。
一方で、このヘッダファイルは、図3に示すようにPCプログラムを作成するために、使用される。他方で、このヘッダファイルは、図4に示すようにPLCプログラムを作成するためにも、使用される。
次に図3を参照して、PCプログラムソースコード210を生成するために、PCプログラムテンプレート200と共にヘッダファイル100を使用する。PLC30を制御するためにPC20上で実行可能なPCプログラム220を作成するために、PCプログラムソースコード210をコンパイルすることができる。好ましくは、PCプログラム220は、PC20上で実行されると、グラフィカルユーザインタフェースを表示するように構成される。
次に図4を参照して、PLCプログラムソースコード310を生成するために、対応するPLCプログラムソースコード300と共にヘッダファイル100を同じく使用する。PLCプログラム320を作成するために、PLCプログラムソースコード310をコンパイルすることができ、PLCプログラム320は、PLC30に転送されて、実行されることで、プロセスを制御すると同時に、ヘッダファイル100で宣言されているサービスを、PCプログラムにより接続されるように公開する。
PCプログラムを用いて、ユーザは、
・チェンバのOPENまたはCLOSEをPLCに要求できる。
・ドアがOPENまたはCLOSEDのどちらかである状態を通知される。
・所望の温度および電気モータ速度でプロセスを開始させることをPLCに要求できる。
・プロセスが終了した後に、プロセス中の最低/最高/平均温度を通知される。
なお、上記説明は、開示の実施形態の態様の例示的なものにすぎないことは理解されるべきである。当業者であれば、開示の実施形態の態様から逸脱することなく、種々の代替案および変形例を考案することができる。よって、開示の実施形態の態様は、添付の請求項の範囲内にあるすべてのかかる代替案、変更、および変形を包含するものである。さらに、様々に異なる特徴が、互いに異なる従属請求項または独立請求項に記載されているということだけで、それらの特徴の組み合わせを効果的に用いることができないことを示すものではなく、かかる組み合わせは、本発明の態様の範囲から逸脱していない。
例示的なヘッダファイル:
typedef struct
{
CONTROL_INTERFACE tControl; // control of slave (PLC) from master (PC)
INFO_INTERFACE tInfo; // info back from slave (PLC) to master (PC)
} PLC_INTERFACE;

typedef struct
{
EQUIPMENT_STATUS tStatus;
PROCESS_RESULT tResult;
} INFO_INTERFACE;

typedef struct
{
BOOL bProcessChamberClosed; // cylinder position sensor (Digital Input)
BOOL bProcessChamberOpen; // cylinder position sensor (Digital Input)
INT16 iMotorPosition; // motor position (Analog Input)
} EQUIPMENT_STATUS;

typedef struct
{
REAL rMinTemperatureDuringProcess; // min temperature during process
REAL rMaxTemperatureDuringProcess; // max temp during process
REAL rAverageTemperatureDuringProcess; // average temp during process
} PROCESS_RESULT;

typedef struct
{
COMMAND tCommand;
PARAMETERS tParameters;
} CONTROL_INTERFACE;

typedef struct
{
BOOL bOpenProcessChamber; // command to open the process chamber
BOOL bCloseProcessChamber; // command to close the process chamber
BOOL bRunProcess; // command to start a process
} COMMAND;

typedef struct
{
REAL rTargetProcessTemperature; // target temperature during process
REAL rTargetMotorSpeed; // target motor speed during process
} PARAMETERS
PCプログラムテンプレート200によって生成されたPCプログラムソースコード210の例示的な部分:
public class PLC_INTERFACE : PlcMember
{
public override void SetValue(string memberName, dynamic value)
{
switch(memberName)
{
case "tControl":
tControl = InternalSetValue(memberName, value, tControl);
break;
case "tInfo":
tInfo = InternalSetValue(memberName, value, tInfo);
break;
}
}
public override dynamic GetValue(string memberName)
{
switch(memberName)
{
case "tControl":
return tControl;
case "tInfo":
return tInfo;
}
return null;
}
public override T GetValue<T>(string memberName)
{
switch(memberName)
{
case "tControl":
return (T)(object)tControl;
case "tInfo":
return (T)(object)tInfo;
}
return default(T);
}
public CONTROL_INTERFACE tControl = new CONTROL_INTERFACE(); // control of slave (PLC) from master (PC)
public INFO_INTERFACE tInfo = new INFO_INTERFACE(); // info back from slave (PLC) to master (PC)
}

public class INFO_INTERFACE : PlcMember
{
public override void SetValue(string memberName, dynamic value)
{
switch(memberName)
{
case "tStatus":
tStatus = InternalSetValue(memberName, value, tStatus);
break;
case "tResult":
tResult = InternalSetValue(memberName, value, tResult);
break;
}
}
public override dynamic GetValue(string memberName)
{
switch(memberName)
{
case "tStatus":
return tStatus;
case "tResult":
return tResult;
}
return null;
}
public override T GetValue<T>(string memberName)
{
switch(memberName)
{
case "tStatus":
return (T)(object)tStatus;
case "tResult":
return (T)(object)tResult;
}
return default(T);
}
public EQUIPMENT_STATUS tStatus = new EQUIPMENT_STATUS();
public PROCESS_RESULT tResult = new PROCESS_RESULT();
}

EQUIPMENT_STATUSおよびPROCESS_RESULTは、同様のスタイルを有するが、ここでは示していない。

public class CONTROL_INTERFACE : PlcMember
{
public override void SetValue(string memberName, dynamic value)
{
switch(memberName)
{
case "tCommand":
tCommand = InternalSetValue(memberName, value, tCommand);
break;
case "tParameters":
tParameters = InternalSetValue(memberName, value, tParameters);
break;
}
}
public override dynamic GetValue(string memberName)
{
switch(memberName)
{
case "tCommand":
return tCommand;
case "tParameters":
return tParameters;
}
return null;
}
public override T GetValue<T>(string memberName)
{
switch(memberName)
{
case "tCommand":
return (T)(object)tCommand;
case "tParameters":
return (T)(object)tParameters;
}
return default(T);
}
public COMMAND tCommand = new COMMAND();
public PARAMETERS tParameters = new PARAMETERS();
}

COMMANDおよびPARAMETERSは、同様のスタイルを有するが、ここでは示していない。
本発明は、PCプログラムを用いてPLCを制御する方法、ならびに本方法を実行するためのコンピュータおよびコンピュータプログラムに関するものである。
PLC(プログラマブルロジックコントローラ)は、プロセスプラントまたは機械類を制御するための装置であり、デジタル的にプログラムされる。PLCは、通常、入力と、出力と、ファームウェア(オペレーティングシステム)と、アプリケーションプログラムをダウンロードするためのインタフェースと、を有する。アプリケーションプログラムは、入力に応じて、いかに出力が設定されるのかを定義する。ファームウェアによって、アプリケーションプログラムの入力および出力が利用可能となる。
リアルタイムシステムとしてのPLCは、デジタルセンサまたはアナログセンサと接続しており、プロセスプラントまたは機械類の空気圧シリンダもしくは油圧シリンダまたは電気モータのようなアクチュエータを制御する。特に半導体製造装置アプリケーションである多くの機械制御アプリケーションとして、典型的には、PLCおよび工場内ネットワーク(例えば、ファブまたはファウンドリとしても知られる半導体製造工場のホストシステム)に接続されたパーソナルコンピュータ(PC)アプリケーションがあり、それは、これらのセンサ値をPLCから読み取って、これらの取得したリアルタイムデータについて高度な管理を実行し(例えば、これらのデータを状態変数としてファブホストに送信し)、個々のアクションを実行するためのコマンドをPLCに送信する。
特許文献1は、PLCとして実施することが可能な制御環境であって、生産プロセスなどの装置の動作を制御する制御環境について開示している。産業オートメーションデータを表示するためのレンダリング環境が提供される。この制御環境は、装置の動作を制御するマシン実行可能制御コードを含むことができる。レンダリング環境の端末は、コンピュータ実行可能コード命令を実行するためのプロセッサ(群)を含む。
特許文献2は、プログラマブルロジックコントローラのプログラミングおよび構成設定のための方法について開示しており、この方法は、IEC61131言語のモジュールを含む構成ツールをプログラミングツール内に配置することと、少なくとも1つの追加モジュールを構成ツールに組み込むことと、Cコードエディタを用いて高水準言語でプログラマブルロジックコントローラのプログラミングおよび構成設定を行うことと、を含み、その少なくとも1つの追加モジュールは、IEC61131コードと高水準言語コードとの間のインタフェースの定義、および高水準言語コードの構成、を提供するように構成される。
従来のPCアプリケーションにおける問題は、例えば、新たなセンサの追加または新たなアクチュエータの追加など、PLCアプリケーション側に進展があるたびに、PCアプリケーション側でも、これらの新たに追加された要素にアクセスするための基本機能を実装するために、例えば以下のような、かなりの量の修正作業があることである。
・PCがアクセスできる新たに追加されたセンサ/アクチュエータに関するPLCインタフェースのドキュメンテーションを作成/修正する。
・新たに追加された要素のための、PLCアプリケーションとPCアプリケーションとの間の追加の通信リンクを追加する。
・新たに追加された要素を表現するPCプログラムにおいて内部変数/手続きを作成する。
・新たに追加されたセンサを表示するため、および新たに追加されたアクチュエータを制御するためにPLCにコマンドを送信する可能性を提供するために、PCプログラムのグラフィカルユーザインタフェースを作成/修正する。
例えばOPCサーバを用いて、読み取りおよび/または書き込みのために、PLCの内部変数をPCに公開することができる。ただし、その場合にも、新たに提供される変数を用いるために、PCプログラムを手動で適応させなければならない。
米国特許出願公開第2014/0343696号明細書 米国特許出願公開第2014/0123104号明細書
よって、PCプログラムをPLCアプリケーション側の進展に適応させることに関わる必要な作業を軽減することが望ましい。
本発明によれば、独立請求項の特徴により、PCプログラムを用いてPLCを制御するための方法、コンピュータプログラム、およびコンピュータについて提案する。効果的なさらなる改良は、従属請求項の主題および以下の説明の主題をなしている。
本発明により、PLCプログラムのソースコードのデータセクションおよびPCプログラムテンプレートから読み出されたデータに基づいて、PLCと通信および/またはPLCを制御するために、好ましくはグラフィカルユーザインタフェース(GUI)を有する、PCプログラムを自動的に生成するための方法およびその実装を導入する。すなわち、そのデータセクションは、PCプログラムとPLCプログラムの両方に共通のソースコード部分となる。従って、PCプログラムをPLCアプリケーション側の進展に手動で適応させることによって導入されるエラーを防ぐことができる。PLCプログラム内では、データセクションは、PLCプログラムの実行時にPLCによって公開されるサービスをそれぞれ指定または宣言するデータを含み、それを対応するサービス公開手続きによって用いることができる。PCプログラム内では、これらのデータを、実際に公開されているサービスを把握するために用いることができるとともに、対応するサービス接続手続きによって用いることができ、さらに、好ましくは、それぞれの公開サービスのための視覚要素(入力または出力)を作成するために、GUI作成手続きによって用いることができる。
本発明は、PLCプログラム側で進展または変更があって、これらの変更をPCでも実装する必要がある場合に、PCプログラム側での開発時間を節約することを目的とする。PLCプログラム側、すなわちPLCプログラムのソースコードを適応させる必要は依然としてあるものの、PCプログラムが何らかのさらなる開発を必要とすることはない。PLCプログラムのソースコードが定義または変更された場合に、新たなPCプログラムソースコードを作成するために、変更されたデータセクションをPCプログラムテンプレートに結合する必要があるのみである。これにより、PC側での開発時間が大幅に節約されるとともに、ヒューマンエラーが回避され、さらに、自動的な機能整合性チェックが行われる。
本発明は、効果的には、「監視制御とデータ取得」(SCADA:Supervisory Control And Data Acquisition)の枠内で用いることができる。SCADAは、高度なプロセス監視管理のために、PC、ネットワーク化されたデータ通信、およびグラフィカルユーザインタフェースを用いる制御システムアーキテクチャであるが、プロセスプラントまたは機械類にインタフェースするために、PLCおよび離散PIDコントローラのような他の周辺装置を使用する。監視、およびコントローラ設定点変更のようなプロセスコマンドの発行を可能とするオペレータインタフェースは、SCADA監視コンピュータシステムを介して処理される。一方、リアルタイム制御ロジックまたはコントローラ計算は、フィールドセンサおよびアクチュエータに接続するネットワーク化されたモジュールによって実行される。
好ましい実施形態によれば、PLCプログラムのソースコードは、高水準プログラミング言語であり、特にC系言語またはIEC 61131−3で定義される言語である。IEC 61131−3は、プログラマブルロジックコントローラ用のオープン国際標準規格IEC 61131の(10部のうちの)第3部である。IEC 61131の第3部は、PLC内の制御プログラムの基本的なソフトウェアアーキテクチャおよびプログラミング言語を扱う。それは、2種類の図式プログラミング言語規格および2種類のテキストプログラミング言語規格、すなわち、ラダーダイアグラム(LD)図式言語;ファンクションブロックダイアグラム(FBD)図式言語;ストラクチャードテキスト(ST)テキスト言語;インストラクションリスト(IL)テキスト言語、を定義している。
PLCプログラムの作成は、PC上でPLCプログラミングツールキットを用いて行うと非常に簡便である。PLCプログラミングツールキットは、PCプログラムのプログラミング用のプログラミングツールキットとは異なる可能性があるが、本発明の利点は、PLCプログラミングとPCプログラミングとの間の言語の壁をいずれも乗り越えるために共通のファイルを共有することである。PLCプログラムでは、このファイルは、ソースコードの一部であり、PCプログラムでは、このファイルは、プログラムを自動的に生成するための入力である。本発明により、PCプログラムとPLCプログラムの両方に関連したソースコードを一度のみ提供することによって、コード生成が改善および簡略化される。本発明により、この場合は本発明の意味においてデータセクションである少なくとも1つのモジュールが一度のみ提供されて、それが二度、すなわち両方のプログラムを作成するときに使用されるような、PCプログラムとPLCプログラムの両方のソースコードのモジュール化について提案する。
効果的には、そのデータセクションを、別個のファイルの形で提供することができる。これにより、そのデータセクションを、非常に簡単に、PLCプログラムソースコードおよびPCプログラムソースコードに関連付けて利用する。そのデータセクションは、好ましくは、PLCプログラムのソースコードのヘッダであり、より好ましくは、別個のヘッダファイルの形で提供される。
好ましくは、PCプログラムテンプレートは、テキストテンプレートである。従って、同じくテキストである、ソースコードからのデータセクションに関連付けて、PCプログラムのソースコードを非常に簡単に自動生成することができる。特に、Microsoft社が提供するいわゆる「テキストテンプレート変換ツールキット」(T4)のような、いずれかの周知のコード生成ツールを効果的に使用することができる。開発者は、様々なパラメータを用いてテキストファイルの作成を自動化するためのアプリケーションフレームワークまたはツールフレームワークの一部として、T4を使用することができる。これらのテキストファイルは、最終的に、コード(例えば、(Visual)C#のようなC系、もしくはVisual BasicのようなBASIC系)、XML、HTML、またはXAMLのような、任意のテキスト形式で提供することができる。
PCプログラムがPLCと十分に通信可能とするためには、PCプログラムを用いてPLCを制御することは、好ましくは、PLCへの値の書き込みおよび/またはPLCからの値の読み取りを含む。典型的なPLCでは、ランタイム中に、最終的にPLCの動作を定義する特定の値を有する多くの異なる変数が、メモリに保存される。従って、そのような値を読み取ること、および書き込むことは、PLCを制御するための基本的な方法である。さらに効果的には、PCプログラムを用いてPLCを制御することは、PLCから情報を受信すること、および/またはPLCにコマンドを送信すること、を含む。
PCプログラムによりPLCを制御することを可能とするためには、PLCによって公開されるサービスは、好ましくは、PLCにデータを書き込むための少なくとも1つのサービス、および/またはPLCからデータを読み取るための少なくとも1つのサービス、を含む。これらのサービスにより、効果的に、PCプログラムが、PLCに値を書き込むこと、および/またはPLCから値を読み取ること、ひいてはPLCを制御することが可能となる。
本発明の好ましい実施形態によれば、それらのサービスは、例えば、(特にOPC UAによる)OPC、PVI、ProfiNetなどのサーバである、PLC上で動作するサーバを用いて、PLCによって公開される。これらは、特に、サーバから値(特に測定値)を読み取るため、および/またはサーバすなわちPLCに値(特に設定値)を書き込むための、様々なサービスをクライアントに公開するための、十分に試行されたソリューションである。さらに、公開されたサービスに接続するために、例えば、B&RからのいわゆるPVI(Process Visualization Interface)など、サードパーティのプロシージャおよびクライアントを効果的に使用することができる。PVIは、PC上で動作可能であって、データを受信するためにPLCに接続するソフトウェアである。PCプログラムは、PLCに接続するために、PVIを補助ツールとして用いることができる。
プログラムコードを含む、本発明によるコンピュータプログラムは、このコンピュータプログラムがコンピュータ上で実行されることで、本発明による方法のうちの1つのすべてのステップをコンピュータに実行させる。そのコンピュータプログラムを提供するための適切な非一時的マシン可読媒体は、特に、フロッピーディスク、ハードディスク、フラッシュメモリ、EEPROM、CD−ROM、およびDVDなどである。コンピュータネットワーク(インタネット、イントラネットなど)上のプログラムをダウンロードすることが効果的である。
本発明のさらなる効果および実施形態は、説明および添付の図面から明らかになるであろう。
前述の特徴および以下でさらに記載する特徴は、個々に示す組み合わせだけではなく、さらなる組み合わせまたは単独でも、本発明の範囲から逸脱することなく、用いることができることに留意すべきである。
図1は、プロセスチェンバと、いくつかのセンサ、およびPLCによって制御されるアクチュエータと、を備える例示的な機械を示している。 図2は、本発明の好ましい実施形態によるデータセクションを概略的に示している。 図3は、本発明の好ましい実施形態による、ヘッダファイルおよびPCプログラムテンプレートを用いてPCプログラムを作成するプロセスを概略的に示している。 図4は、本発明の好ましい実施形態による、ヘッダファイルおよびPLCメインプログラムファイルを用いてPLCプログラムを作成するプロセスを概略的に示している。
図1は、製造プロセスで使用する基板キャリア(例えば、半導体ウェハキャリア、フラットパネルディスプレイキャリア、レチクルキャリア、および電子装置製造用の他のキャリア)のための自動洗浄・検査システムの一部であり得る機械10を概略的に示している。機械10は、ドア12と、この場合はドアを開閉するための空気圧シリンダとして構成されたアクチュエータ13と、を有するプロセスチェンバ11を備える。ドア12が開いているのか閉じているのかを判断するために、アクチュエータの位置を検出するための2つのセンサ14が設けられている。
プロセスチェンバ11内には、チェンバを所望の温度まで加熱するためのヒータ15と、電気モータ17によって所望の速度で回転させる回転板と、が設けられている。
センサ14およびアクチュエータ13、15、17は、プロセスを制御するためのPLC30に接続されている。そしてPLC30は、PLCを制御するためのPC20に接続されており、例えば、PCは、PLCにコマンドを送信するとともに、PLCからデータを取得する。
図2は、様々なサービスを示すための内部ブロックを有する、PLCプログラムのデータセクション100を概略的に示している。好ましくは、このデータセクションは、PLCプログラムのヘッダである。従って、そのデータを、信頼性の高い直接的な方法で読み出すことが可能である。
前述のように、PLCによって公開されるサービスは、PLCにデータを書き込むための少なくとも1つのサービス、および/またはPLCからデータを読み取るための少なくとも1つのサービス、を含むことができる。従って、実際には、このデータセクションは、PLCにデータを書き込むためのサービス(「CONTROL」)としての1つのセクションまたはブロック110と、PLCからデータを読み取るためのサービス(「INFO」)としての1つのブロック120と、を含む。
同様に、ブロック110は、コマンドとパラメータにそれぞれ関連した2つのサブブロック111、112に分割することができる。例えば、サブブロック111では、装置のアクション(例えば、ドアの開閉、プロセスの開始/停止)を開始させるための、PLCへの可能なコマンドすなわちPCからの到来データを示すことができ、サブブロック112では、機械に関連したパラメータを設定するための、可能な書き込み可能パラメータすなわちPCからの到来データを示すことができる。
基本的に、2つのタイプのパラメータがあり、装置関連パラメータの場合、特定の装置構成部品がそのコマンドに関連しており(例えば、「Rotate Table」コマンドの場合の所望速度)、プロセス関連パラメータの場合、何らかのプロセスの制約がそのコマンドに関連している(例えば、「Run Process」コマンドの場合の所望温度)。
ブロック120は、プロセス結果と装置状態にそれぞれ関連した2つのサブブロック121、122に分割することができる。例えば、サブブロック121では、プロセスの結果(例えば、「Run Process」コマンドの場合の測定された平均/最低/最高温度、および「Desired Temperature」パラメータによる結果の評価)を報告するための、可能な読み取り可能プロセス結果すなわちPCに送信される発信データを示すことができ、サブブロック122では、装置状態(例えば、ドアの開閉状態)および(何らかの障害が生じている場合の)装置障害状態を報告するための、可能な読み取り可能装置状態データすなわちPCに送信される発信データを示すことができる。
図1に示す例では、
・PCは、チェンバのOPENまたはCLOSE(2つのコマンド)をPLCに要求できる。
・PCは、ドアがOPENまたはCLOSED(2つの装置状態)のどちらかである状態を通知される。
・PCは、所望の温度および電気モータ速度(2つのコマンドパラメータ)でプロセスを開始させること(1つのコマンド)をPLCに要求できる。
・プロセスが終了すると、PCは、プロセス中の最低/最高/平均温度(1つのプロセス結果)を通知される。
本例に関連した好ましいヘッダを、付録に示している。このヘッダファイルは、所望の装置機能に応じて、手動で設計されている。これは、PCプログラムに対して、インタフェースを提供するとともに、制御対象のPLC装置のすべての能力を完全に規定している。
一方で、このヘッダファイルは、図3に示すようにPCプログラムを作成するために、使用される。他方で、このヘッダファイルは、図4に示すようにPLCプログラムを作成するためにも、使用される。
次に図3を参照して、PCプログラムソースコード210を生成するために、PCプログラムテンプレート200と共にヘッダファイル100を使用する。PLC30を制御するためにPC20上で実行可能なPCプログラム220を作成するために、PCプログラムソースコード210をコンパイルすることができる。好ましくは、PCプログラム220は、PC20上で実行されると、グラフィカルユーザインタフェースを表示するように構成される。
次に図4を参照して、PLCプログラムソースコード310を生成するために、対応するPLCプログラムソースコード300と共にヘッダファイル100を同じく使用する。PLCプログラム320を作成するために、PLCプログラムソースコード310をコンパイルすることができ、PLCプログラム320は、PLC30に転送されて、実行されることで、プロセスを制御すると同時に、ヘッダファイル100で宣言されているサービスを、PCプログラムにより接続されるように公開する。
PCプログラムを用いて、ユーザは、
・チェンバのOPENまたはCLOSEをPLCに要求できる。
・ドアがOPENまたはCLOSEDのどちらかである状態を通知される。
・所望の温度および電気モータ速度でプロセスを開始させることをPLCに要求できる。
・プロセスが終了した後に、プロセス中の最低/最高/平均温度を通知される。
なお、上記説明は、開示の実施形態の態様の例示的なものにすぎないことは理解されるべきである。当業者であれば、開示の実施形態の態様から逸脱することなく、種々の代替案および変形例を考案することができる。よって、開示の実施形態の態様は、添付の請求項の範囲内にあるすべてのかかる代替案、変更、および変形を包含するものである。さらに、様々に異なる特徴が、互いに異なる従属請求項または独立請求項に記載されているということだけで、それらの特徴の組み合わせを効果的に用いることができないことを示すものではなく、かかる組み合わせは、本発明の態様の範囲から逸脱していない。
例示的なヘッダファイル:
typedef struct
{
CONTROL_INTERFACE tControl; // control of slave (PLC) from master (PC)
INFO_INTERFACE tInfo; // info back from slave (PLC) to master (PC)
} PLC_INTERFACE;

typedef struct
{
EQUIPMENT_STATUS tStatus;
PROCESS_RESULT tResult;
} INFO_INTERFACE;

typedef struct
{
BOOL bProcessChamberClosed; // cylinder position sensor (Digital Input)
BOOL bProcessChamberOpen; // cylinder position sensor (Digital Input)
INT16 iMotorPosition; // motor position (Analog Input)
} EQUIPMENT_STATUS;

typedef struct
{
REAL rMinTemperatureDuringProcess; // min temperature during process
REAL rMaxTemperatureDuringProcess; // max temp during process
REAL rAverageTemperatureDuringProcess; // average temp during process
} PROCESS_RESULT;

typedef struct
{
COMMAND tCommand;
PARAMETERS tParameters;
} CONTROL_INTERFACE;

typedef struct
{
BOOL bOpenProcessChamber; // command to open the process chamber
BOOL bCloseProcessChamber; // command to close the process chamber
BOOL bRunProcess; // command to start a process
} COMMAND;

typedef struct
{
REAL rTargetProcessTemperature; // target temperature during process
REAL rTargetMotorSpeed; // target motor speed during process
} PARAMETERS
PCプログラムテンプレート200によって生成されたPCプログラムソースコード210の例示的な部分:
public class PLC_INTERFACE : PlcMember
{
public override void SetValue(string memberName, dynamic value)
{
switch(memberName)
{
case "tControl":
tControl = InternalSetValue(memberName, value, tControl);
break;
case "tInfo":
tInfo = InternalSetValue(memberName, value, tInfo);
break;
}
}
public override dynamic GetValue(string memberName)
{
switch(memberName)
{
case "tControl":
return tControl;
case "tInfo":
return tInfo;
}
return null;
}
public override T GetValue<T>(string memberName)
{
switch(memberName)
{
case "tControl":
return (T)(object)tControl;
case "tInfo":
return (T)(object)tInfo;
}
return default(T);
}
public CONTROL_INTERFACE tControl = new CONTROL_INTERFACE(); // control of slave (PLC) from master (PC)
public INFO_INTERFACE tInfo = new INFO_INTERFACE(); // info back from slave (PLC) to master (PC)
}

public class INFO_INTERFACE : PlcMember
{
public override void SetValue(string memberName, dynamic value)
{
switch(memberName)
{
case "tStatus":
tStatus = InternalSetValue(memberName, value, tStatus);
break;
case "tResult":
tResult = InternalSetValue(memberName, value, tResult);
break;
}
}
public override dynamic GetValue(string memberName)
{
switch(memberName)
{
case "tStatus":
return tStatus;
case "tResult":
return tResult;
}
return null;
}
public override T GetValue<T>(string memberName)
{
switch(memberName)
{
case "tStatus":
return (T)(object)tStatus;
case "tResult":
return (T)(object)tResult;
}
return default(T);
}
public EQUIPMENT_STATUS tStatus = new EQUIPMENT_STATUS();
public PROCESS_RESULT tResult = new PROCESS_RESULT();
}

EQUIPMENT_STATUSおよびPROCESS_RESULTは、同様のスタイルを有するが、ここでは示していない。

public class CONTROL_INTERFACE : PlcMember
{
public override void SetValue(string memberName, dynamic value)
{
switch(memberName)
{
case "tCommand":
tCommand = InternalSetValue(memberName, value, tCommand);
break;
case "tParameters":
tParameters = InternalSetValue(memberName, value, tParameters);
break;
}
}
public override dynamic GetValue(string memberName)
{
switch(memberName)
{
case "tCommand":
return tCommand;
case "tParameters":
return tParameters;
}
return null;
}
public override T GetValue<T>(string memberName)
{
switch(memberName)
{
case "tCommand":
return (T)(object)tCommand;
case "tParameters":
return (T)(object)tParameters;
}
return default(T);
}
public COMMAND tCommand = new COMMAND();
public PARAMETERS tParameters = new PARAMETERS();
}

COMMANDおよびPARAMETERSは、同様のスタイルを有するが、ここでは示していない。

Claims (14)

  1. PCプログラム(220)を用いてPLC(30)を制御する方法であって、
    PLCプログラムのソースコード(310)は、データセクション(100)を含み、前記データセクション(100)は、前記PLCプログラムの実行時に前記PLC(30)によって公開されるサービスを示すデータを含み、
    前記データセクション(100)に含まれる前記データおよびPCプログラムテンプレート(200)を用いて、前記PCプログラムのソースコード(210)を自動生成し、
    前記PCプログラムの前記自動生成されたソースコード(210)から生成された前記PCプログラム(220)を用いて、前記PLC(30)を制御する、方法。
  2. 前記PCプログラムテンプレート(200)は、テキストテンプレートである、請求項1に記載の方法。
  3. 前記データセクション(100)は、前記PLCプログラムの前記ソースコード(310)のヘッダである、請求項1または2に記載の方法。
  4. 前記PLCプログラムの前記ソースコード(310)は、高水準プログラミング言語である、請求項1〜3のいずれか一項に記載の方法。
  5. 前記PCプログラム(220)は、PC(20)上で実行されると、グラフィカルユーザインタフェースを表示するように構成される、請求項1〜4のいずれか一項に記載の方法。
  6. 前記PCプログラム(220)を用いて前記PLC(30)を制御することは、前記PLCに値を書き込むこと、および/または前記PLCから値を読み取ることを含む、請求項1〜5のいずれか一項に記載の方法。
  7. 前記PCプログラム(220)を用いて前記PLC(30)を制御することは、前記PLCから情報を受信すること、および/または前記PLCにコマンドを送信することを含む、請求項1〜6のいずれか一項に記載の方法。
  8. 前記PLC(30)によって公開される前記サービスは、前記PLCにデータを書き込むための少なくとも1つのサービス、および/または前記PLCからデータを読み取るための少なくとも1つのサービスを含む、請求項1〜7のいずれか一項に記載の方法。
  9. 前記サービスは、前記PLC(30)上で動作するサーバを用いて、前記PLC(30)によって公開される、請求項1〜8のいずれか一項に記載の方法。
  10. 前記PLC(30)は、前記PLCプログラムを実行している、請求項1〜9のいずれか一項に記載の方法。
  11. PLC(30)を制御するためのPCプログラム(220)を自動的に作成する方法であって、
    PLCプログラムのソースコード(310)のデータセクション(100)に含まれるデータおよびPCプログラムテンプレート(200)を用いて、前記PCプログラムのソースコード(210)を自動生成し、
    前記データセクションは、前記PLCプログラムの実行時に前記PLC(30)によって公開されるサービスを示すデータを含む、方法。
  12. 請求項1〜11のいずれか一項に記載の方法を実行するように、特にプログラム的に、適応させたコンピュータ。
  13. プログラムコードを有するコンピュータプログラムであって、コンピュータ上で実行されることで、請求項1〜11のいずれか一項に記載の方法を前記コンピュータに実行させるための、コンピュータプログラム。
  14. 請求項13に記載のコンピュータプログラムを格納している、マシン可読記憶媒体。
JP2019568070A 2017-06-07 2018-06-06 Pcプログラムを用いてplcを制御する方法 Pending JP2020523689A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP17174804.9A EP3413147B1 (en) 2017-06-07 2017-06-07 Method for controlling a plc using a pc program
EP17174804.9 2017-06-07
PCT/EP2018/064936 WO2018224568A1 (en) 2017-06-07 2018-06-06 Method for controlling a plc using a pc program

Publications (2)

Publication Number Publication Date
JP2020523689A true JP2020523689A (ja) 2020-08-06
JP2020523689A5 JP2020523689A5 (ja) 2021-07-26

Family

ID=59030826

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019568070A Pending JP2020523689A (ja) 2017-06-07 2018-06-06 Pcプログラムを用いてplcを制御する方法

Country Status (7)

Country Link
US (3) US11137735B2 (ja)
EP (1) EP3413147B1 (ja)
JP (1) JP2020523689A (ja)
KR (1) KR102560634B1 (ja)
CN (1) CN110914768B (ja)
TW (1) TWI794241B (ja)
WO (1) WO2018224568A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111475159B (zh) * 2020-03-20 2023-03-14 吉利汽车研究院(宁波)有限公司 一种自动生成程序的方法、装置及存储介质
CN113219896A (zh) * 2020-06-06 2021-08-06 杭州智尔科技有限公司 基于计算机编程语言的可编程逻辑控制器及实现方法
CN111857028B (zh) * 2020-06-24 2022-05-27 广州明珞汽车装备有限公司 一种plc程序生成方法、系统、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004164605A (ja) * 2003-09-16 2004-06-10 Omron Corp センサ
JP2008077659A (ja) * 2007-09-18 2008-04-03 Hitachi Ltd コントローラ、コントローラ管理システム及びコントローラ管理方法
JP2009009505A (ja) * 2007-06-29 2009-01-15 Jtekt Corp Plc
EP2490086A1 (de) * 2011-02-16 2012-08-22 Siemens Aktiengesellschaft Verfahren zum Betrieb eines Automatisierungssystems und nach dem Verfahren arbeitendes Computerprogramm
US20140123104A1 (en) * 2011-07-06 2014-05-01 Abb Ag Method and device for the programming and configuration of a programmable logic controller
US20140343696A1 (en) * 2011-06-28 2014-11-20 Rockwell Automation Technologies, Inc. Binding graphic elements to controller data

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7894460B2 (en) * 2007-07-26 2011-02-22 Air Liquide Large Industries U.S. Lp Programmable logic controller protocol converter
CN100514234C (zh) * 2007-12-28 2009-07-15 哈尔滨工业大学 基于pc机的开放式数控系统
CN101576820A (zh) * 2009-06-11 2009-11-11 大连理工计算机控制工程有限公司 一种iec61131-3标准功能块软件实现方法
CN102681893B (zh) * 2011-03-09 2016-06-29 腾讯科技(深圳)有限公司 可执行程序的跨平台实现方法及移动终端
US9630228B2 (en) * 2012-01-19 2017-04-25 Primetals Technologies USA LLC Dual cascade control system for a long rolling mill
US20140096860A1 (en) 2012-10-09 2014-04-10 Tai-Her Yang Pipe Member Equipped With Heat Insulation Core Pipeline, Auxiliary Heat Conduction Structure And U-Shaped Annularly-Distributed Pipeline
TWI489232B (zh) * 2012-11-14 2015-06-21 Inst Information Industry 遠端監控系統及方法及其記錄媒體
JP6119452B2 (ja) * 2013-06-21 2017-04-26 富士電機株式会社 プログラマブルコントローラシステム、その支援装置、プログラマブルコントローラ、プログラム
US10162328B2 (en) * 2014-03-14 2018-12-25 Omron Corporation Controller and control system
JP6340886B2 (ja) * 2014-04-10 2018-06-13 株式会社ジェイテクト プログラマブルロジックコントローラ用プログラムの作成支援装置及びプログラマブルロジックコントローラ用プログラムの作成支援方法
CN105740120B (zh) * 2014-12-11 2018-08-17 中国科学院软件研究所 基于共享内存的软件运行过程实时监测与控制方法及系统
WO2016098168A1 (ja) * 2014-12-15 2016-06-23 三菱電機株式会社 情報システム構築支援ツールおよび情報システム構築支援プログラム
CN105137800A (zh) * 2015-09-11 2015-12-09 浙江中烟工业有限责任公司 一种基于sopc技术的plc协同控制装置
US10795976B2 (en) * 2016-01-11 2020-10-06 Siemens Aktiengesellschaft Program randomization for cyber-attack resilient control in programmable logic controllers
CN105739481B (zh) * 2016-01-29 2019-03-19 软控股份有限公司 工控软件的测试方法、装置及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004164605A (ja) * 2003-09-16 2004-06-10 Omron Corp センサ
JP2009009505A (ja) * 2007-06-29 2009-01-15 Jtekt Corp Plc
JP2008077659A (ja) * 2007-09-18 2008-04-03 Hitachi Ltd コントローラ、コントローラ管理システム及びコントローラ管理方法
EP2490086A1 (de) * 2011-02-16 2012-08-22 Siemens Aktiengesellschaft Verfahren zum Betrieb eines Automatisierungssystems und nach dem Verfahren arbeitendes Computerprogramm
US20140343696A1 (en) * 2011-06-28 2014-11-20 Rockwell Automation Technologies, Inc. Binding graphic elements to controller data
US20140123104A1 (en) * 2011-07-06 2014-05-01 Abb Ag Method and device for the programming and configuration of a programmable logic controller

Also Published As

Publication number Publication date
EP3413147B1 (en) 2022-03-23
US20200174438A1 (en) 2020-06-04
US20220107617A1 (en) 2022-04-07
CN110914768B (zh) 2023-06-30
US20230384753A1 (en) 2023-11-30
CN110914768A (zh) 2020-03-24
KR20200015712A (ko) 2020-02-12
EP3413147A1 (en) 2018-12-12
US11137735B2 (en) 2021-10-05
TW201921199A (zh) 2019-06-01
KR102560634B1 (ko) 2023-07-28
WO2018224568A1 (en) 2018-12-13
US11726445B2 (en) 2023-08-15
TWI794241B (zh) 2023-03-01

Similar Documents

Publication Publication Date Title
US11726445B2 (en) Method for controlling a PLC using a PC program
EP2790101B1 (en) System and method for automated virtual commissioning of an industrial automation system
US20160033952A1 (en) System and method for testing a distributed control system of an industrial plant
JP6548807B2 (ja) Opc uaベースのマシンツーマシンネットワークにおけるプラントのプロセス制御のための方法およびシステム
JP6088001B2 (ja) プロセス管理環境内でモジュール実行シーケンスを管理する方法及び装置
US20080228290A1 (en) Method, control device and control system for the control of an automation system
US8984131B2 (en) Real-time run-time system with an administrative module to configure functional modules of the system
US8352536B2 (en) Interface between a production management system and an automation system
JP6624008B2 (ja) エンジニアリングツール連携装置、エンジニアリングツール連携方法、エンジニアリングツール連携プログラム及び記録媒体
JP2009187573A (ja) プロセスプラントに組み込まれたプロセス制御システムにユーザ定義・カスタム・ファンクション・ブロックを統合する方法
US11687062B2 (en) Configuration of a modular plant
US20170176982A1 (en) Field device and method for starting up an industrial automation network
US10805116B2 (en) Gateway and method for connecting a data source system to an IT system
JP5307820B2 (ja) 補修および診断論理スキャンの装置ならびに方法
JP4934041B2 (ja) 自動化装置の作動方法および自動化装置の作動方法を実施するための装置およびプログラミングシステムおよびプログラム
JP2010519615A (ja) 自動化システムの構造コンポーネントの交換のための方法
US11651006B2 (en) Method of visualizing screen content on a data visualization system, and data visualization system for visualizing screen content
WO2018169778A1 (en) Method and system for device-based engineering for programmable logic controllers (plcs)
US20220011735A1 (en) Support apparatus, non-transitory computer readable medium, and control apparatus
Pezzetti et al. Real‐Time Implementation
US20160313718A1 (en) Method and controller for flexible process control
JP2009187255A (ja) 多品種製造機械システム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20200306

A529 Written submission of copy of amendment under article 34 pct

Free format text: JAPANESE INTERMEDIATE CODE: A529

Effective date: 20191218

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20200306

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210602

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210602

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220729

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220816

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20221116

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20230116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230314

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20230725