JP2003529147A - 工業用オートメーションシステムの図形プログラミング言語の記憶及び送信 - Google Patents

工業用オートメーションシステムの図形プログラミング言語の記憶及び送信

Info

Publication number
JP2003529147A
JP2003529147A JP2001571198A JP2001571198A JP2003529147A JP 2003529147 A JP2003529147 A JP 2003529147A JP 2001571198 A JP2001571198 A JP 2001571198A JP 2001571198 A JP2001571198 A JP 2001571198A JP 2003529147 A JP2003529147 A JP 2003529147A
Authority
JP
Japan
Prior art keywords
code
format
computer
language
industrial automation
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
JP2001571198A
Other languages
English (en)
Inventor
ミュンゼル,ゲオルグ
Original Assignee
シーメンス エナジー アンド オートメーション インコーポレイテッド
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 シーメンス エナジー アンド オートメーション インコーポレイテッド filed Critical シーメンス エナジー アンド オートメーション インコーポレイテッド
Publication of JP2003529147A publication Critical patent/JP2003529147A/ja
Pending legal-status Critical Current

Links

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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13019Translate program in order to be used on different plc

Abstract

(57)【要約】 図形プログラミング言語を使用して作成された工業用オートメーション制御コードを取り扱う際の問題、主として、標準の記憶フォーマットまたはユーザーが読み取れるフォーマットが存在しないという問題は、人間による読み取りが可能で、市販の視認技術(例えば、ブラウザ)によりサポートされ、構文分析が容易で迅速に行え、階層的情報構造をサポートするフォーマットの図形プログラミング言語を用いて作成された工業用オートメーションコードを記憶させる方法及びコンピュータプログラム製品を提供することにより解消される。本発明の方法及びコンピュータプログラム製品は、図形プログラミング言語で記述され、実行時コンピュータメモリーに標準化されていない内部バイナリ表示で記憶されるプログラムを、例えば拡張可能なマーク付け言語(XML)であるマーク付け言語フォーマットに変換し、この態様で記憶したプログラムを送受信しチェックして、記憶させたプログラムを変換して図形プログラミング言語の内部表示に戻すことより成る。

Description

【発明の詳細な説明】
【0001】
【発明の分野】
本発明は、一般的に、プログラム可能な論理コントローラのための図形プログ
ラミング言語に関し、さらに詳細には、図形プログラミング言語の標準化記憶方
法及びシステムに関する。
【0002】
【発明の背景】
図形プログラミング言語は、工業用オートメーションの分野で広く用いられて
いる。これらの言語は、工業用制御アプリケーションの制御ロジックを、通常は
プログラム可能な論理コントローラ(PLC)であるコントローラによって作動
されるように特定するための、オートメーションエンジニアにとって直感的な方
法を提供する。PLCは、専用のハードウェアより成るか、または、普通のパソ
コン上のソフトウェアにより実現可能であり、後者の場合はパソコン型PLCと
呼ぶこともある。この用語「PLC」は、ここでは両方のタイプの工業用コント
ローラを記述するために使用する。
【0003】 工業用オートメーション制御ソフトウェアのための既存の図形プログラミング
システムは、テキスト編集の文脈でよく知られた特徴を実現する図形エディター
を提供する。オートメーションエンジニアは、この種のシステムを利用して、エ
ディターと対話することにより、被制御工業用プロセスの制御の流れ構造を決定
し、その制御で観察すべき状態を設定するように、メニューからアイコンを選択
する。エディターで使用可能な記号は、使用中の特定の図形プログラミング言語
に対応しており、その言語の中には、はしご形論理言語、機能ブロック図言語、
シーケンス機能チャート及びフローチャート言語及び他の形式を取りこんだ言語
がある。これらのエディターによってエンジニアのために描かれる図形記号は、
例えば、ハードドライブに記憶されると、エディターが走るコンピュータシステ
ムにより、本明細書では「内部表示」と呼ぶ、私的なまたは内部のバイナリ形式
で表示される。この表示は、本質的に、揮発性メモリー(RAM)(以下、「メ
モリー」または「コンピュータメモリー」と呼ぶ)を用い、関連のコードを有す
る1組のソフトウェアオブジェクトである。この内部表示は、標準化されておら
ず、ソフトウェアの販売者に特有な、即ち私的なものである。
【0004】 工業用制御プログラムがデバッギングまたはPLC上で走らせるに十分に完全
なものであると考えられると、システムは、この内部表示をコンパイルして、P
LCにとってより使いやすい別のバイナリ形式にする。一部のシステムでは、こ
のコンパイル段階は直接的であるが、他のシステムでは、本発明とは無関係な理
由により、コンパイルを幾つかの段階で行う。
【0005】 今日使用されている図形プログラミング言語の中には、IEC 61131で
規定されるような国際標準の対象となるものもある。しかしながら、ユーザーが
タイプしたのと正確に同じものとして(即ち、シリアル形式で)コンピュータフ
ァイルに記憶できるテキストプログラミング言語とは対照的に、図形プログラミ
ング言語には、広く合意された記憶フォーマットが存在しない。さらに、工業用
制御アプリケーションの既存の図形言語プログラミングシステムに用いる表示は
、一般的に、人間により読み取りができないものである。また、それらは、イン
ターネットエクスプローラ5のようなブラウザによって解釈可能なフォーマット
で手に入らず、容易にまたは迅速に構文解析されるものでもない。
【0006】 これらの欠点に対処しようとする公知の方法として、1つのまたは別のバイナ
リフォーマットを使用するものがあるが、私的なもので、標準的なワードプロセ
ッサーでは読み取れないという問題がある。あるいは、財産的価値のあるテキス
トフォーマットは読み取り可能性が高いが、完全に定義されねばならない。即ち
、プログラミング言語(文法)の規則に従うことを示す必要がある。ファイルか
ら読み取った後のかかるプログラムを理解するには、完全な構文解析系を書く必
要がある。これらの欠点により、図形プログラミングシステムを用いて作成され
るプログラムの利用価値が制限され、制御プログラムの開発プロセスにより制約
が加わる。
【0007】
【発明の概要】
本発明は、工業用オートメーション図形プログラムを、直列変換され、テキス
トベース言語(即ち、マーク付け言語)に依拠し、項目を識別するためのタッグ
または類似の機能を含み、データを階層的に記述する能力を有する標準のフォー
マットで記憶するための方法及びコンピュータプログラム製品を提供することに
より、上述した既存の工業用オートメーション図形プログラミングシステムの欠
点を克服することに向けられている。詳述すると、本発明は、標準化され、人間
による読み取りが可能であり、既存のブラウザ技術(例えば、マイクロソフトの
インターネットエクスプローラ5(IE5))によりサポートされ、構文解析が
容易で迅速に行うことができ、階層的情報構造をサポートする機構を提供する。
【0008】 本発明はまた、全部または一部が作成された工業用オートメーション制御プロ
グラムを、ネットワークを介して、容易に表示し理解できる形式で送信するのを
可能にするための方法、システム及びコンピュータプログラム製品を提供する。
この標準化された読み取り可能な形式で記憶されるプログラムコードは、ネット
ワークを介して、複数のコンピュータシステムへ、またはそれらのシステムから
伝送することができる。さらに、図形プログラミング言語アプリケーションによ
り作成されるマーク付け言語ファイルのコンテンツモデルを記述するマーク付け
言語スキーマー(または、類似の定義)を、例えば、インターネットのサイト上
に提示することにより、複数の開発者が利用できるようにすることができる。こ
のアプローチは、他の利点の中でとりわけ、工業用オートメーションプログラム
コードまたはアプリケーションを分散して作成するのを可能にするように意図さ
れている。
【0009】 加えて、または、図形プログラミング言語により作成されるコードの第1の内
部表示を用いる第1のシステムにより発生されるコードは、マーク付け言語(例
えば、XML)フォーマットに変換し、そのコードの第2の内部表示を用いる第
2のシステムへ送信し、そこで、第2の内部表示に再び変換することができる。
本発明は、この実施例では、システム間の互換性を提供可能である。
【0010】 従って、本発明の実施例は、実行時コンピュータメモリーに内部表示の形でコ
ードを記憶させる図形プログラミング言語ツールを用いて作成される工業用オー
トメーションコンピュータプログラムコードを表示する方法を提供する。この方
法は、内部表示の形のコンピュータメモリー中の工業用オートメーションコード
を識別し、そのコードを内部表示からマーク付け言語フォーマットへ変換するス
テップより成る。
【0011】 本発明は、別の実施例において、工業用オートメーションシステムの制御プロ
グラムコードを図形プログラミング言語ツールを用いて作成し、そのコードを実
行時コンピュータメモリーに内部表示で記憶するためにコンピュータ装置と共に
使用するコンピュータプログラム製品を提供する。このコンピュータプログラム
製品は、コンピュータメモリーに内部表示で記憶された工業用オートメーション
制御プログラムコードを識別するためのコンピュータにより読み取り可能なプロ
グラムコードにより構成されるコンピュータにより使用可能なメディアより成る
。このコンピュータプログラム製品はさらに、識別した工業用オートメーション
制御プログラムコードを内部表示からマーク付け言語フォーマットに変換するた
めのコンピュータにより読み取り可能なプログラムコードより成る。
【0012】 本発明のさらに別の実施例は、マーク付け言語でフォーマットした工業用オー
トメーション制御コードの表示より成るデータを記憶させたコンピュータにより
読み取り可能な記憶メディアより成るコンピュータプログラム製品である。
【0013】 本発明のさらに別の実施例は、ユーザーによる工業用オートメーション制御プ
ログラムの作成を可能にするコンピュータプログラム製品に関し、この製品は、
コンピュータプログラムコードを記憶させたコンピュータにより読み取り可能な
記憶メディアより成る。そのコンピュータプログラムコードは、工業用オートメ
ーション図形プログラミング言語コードより成る。工業用オートメーション図形
プログラミング言語コードは、ユーザーが、図形要素を用いて、実行時内部表示
でメモリーに記憶される工業用オートメーション制御コードを作成できるように
するエディターと、内部表示でメモリーに記憶された工業用オートメーション制
御コードを内部表示からマーク付け言語フォーマットに変換するためのコンピュ
ータプログラムコードとより成る。
【0014】 本発明のさらに別の実施例は、複数のアプリケーション開発者が工業用オート
メーション制御プログラムデータに関するアプリケーションを作成できるように
するためその工業用オートメーション制御プログラムデータの論理構造を通信す
るための方法を提供する。この方法、工業用オートメーション制御プログラムシ
ステムにより作成されたマーク付け言語ファイルのコンテンツモデルを定義する
スキーマーを作成し、アプリケーション開発者によりネットワークを介してアク
セスできるようにそのスキーマーを提示するステップより成る。
【0015】 本発明のさらに別の実施例は、サーバーシステムからそのサーバーシステムが
結合されたネットワークを介して、ネットワークに結合されたクライアントシス
テムへ工業用オートメーション制御コードを提供する方法である。この方法は、
制御コードのマーク付けフォーマットのバージョンにアクセスし、アクセスした
マーク付けフォーマットの制御コードを、クライアントシステムに対応するネッ
トワークアドレスを用い、そのネットワークを介して送信することにより、送信
したマーク付けフォーマットの制御コードをクライアントシステムが受信できる
ようにするためのステップより成る。
【0016】 本発明のさらに別の実施例は、工業用オートメーション制御アプリケーション
をプログラミングする方法であって、ネットワークに結合されたコンピュータシ
ステムを用意し、第1のコンピュータシステムを、複数の工業用オートメーショ
ンプログラム開発者のシステムからネットワークを介してデータを受信するよう
に構成し、複数の工業用オートメーションプログラム開発者のシステムからマー
ク付け言語フォーマットでデータを受信するステップより成るプログラミング方
法に関する。
【0017】
【実施例の詳細な説明】
簡単に上述し、頭書の特許請求の範囲に記載した本発明の種々の実施例を、添
付図面及び本明細書の最後に記載したコードを参照して、以下に説明する。
【0018】 本発明は、工業用オートメーションのための図形プログラミング言語コードの
標準化されていない表示から、人間による読み取りが可能で、好ましくはブラウ
ザも読み取ることのできる表示を作成することに向けられている。本発明の現在
において好ましい実施例では、標準記憶フォーマットとしてXMLを用いる。「
拡張可能なマーク付け言語」を略記したXMLは、標準汎用マーク付け言語(S
GML)の1つであり、本質的に、テキストベースマーク付け言語を定義する一
組の規則より成る。例えば、本願の一部として全体を引用するXML IE5 Programm
er's Reference, by A. Homer, WROX Press Ltd., 1999 and Applied XML: A To
olkit for Programmers, by A. Ceponkus and F. Hoodbhoy, John Wiley & Sons
, Inc., 1999を参照されたい。本発明は、XMLの使用に限定されず、後記の定
義セットに対応する他のマーク付け言語で実施可能である。
【0019】 さらに、本発明は、Microsoft XML(Internet Explorer 5の一部として利用可
能)だけでなくVisual Studio 6.0を用いて実施することができる。
【0020】 工業用オートメーションの分野で使用する各図形言語では、一組のXMLタッ
グ、要素及び属性と共にXMLスキーマー(または、文書型定義「DTD」)が
定義される。フローチャートプログラムをXMLに変換するために以下に一例を
示す特定のコンピュータプログラムは、この図形プログラムを変形、変換または
直列変換するために使用される。
【0021】 本明細書でよく用いる多数の用語を、以下に定義する。
【0022】 用語「データ記憶装置」は、メモリー(例えば、RAM)、ハードディスク、
コンパクトディスク、フロッピー(登録商標)ディスクまたは他の記憶装置を含
む(これらに限定されない)コンピュータにより読み出し可能な任意のデータ記
憶メディアを意味する。
【0023】 用語「コンピュータプログラム製品」は、コンピュータプログラムコードを含
むデータの保持が可能であり、それからデータを読み出すことができる、コンピ
ュータシステムに永続的にまたは一時的に結合可能な任意の製品を含む。コンピ
ュータプログラム製品は、コンピュータシステムが記憶されたコンテンツに従っ
て動作できるようにコンピュータシステムのユーザーに販売されるメディアを含
む。この用語は、例えば、ネットワークを介してコンテンツをダウンロードした
コンピュータシステムに結合されたハードウェアを包含し、コンピュータシステ
ムはそのコンテンツに従って動作できる。
【0024】 用語「エディター命令」は、既知のエディター関連の任意のコマンドであって
、テキスト、コードなどの操作に関与し、例えば、切り取り、コピー、貼り付け
、移動、削除、保存、そのまま保存、取消し、再実行などを含む任意のコマンド
を包含する。
【0025】 用語「図形プログラミング言語」は、現在存在しているかまたはこれから開発
されるかには無関係に、はしご形論理、機能ブロック図、シーケンス機能チャー
ト、フローチャート及び他の図形言語を含む。
【0026】 用語「マーク付けフォーマット」は、マーク付け言語フォーマットで記憶され
ているか、または、(例えば、図形プログラミング言語の内部表示の形から)マ
ーク付け言語フォーマット(マーク付けは上記の意味に用いる)へ変換されてい
る状態のことを言う。
【0027】 用語「マーク付け言語」は、テキストベースマーク付け言語のことで、標準汎
用マーク付け言語SGMLの一部を含むが、それに限定されない。これは、個々
の文字列がXMLの用語「タッグ」に対応する要素の開始または終了部分を定義
し、要素の開始文字列またはタッグ内に名前または値の対が含まれ、要素の属性
名及びそれらの値、要素のコンテンツ及び要素の開始または終了部分を定義する
文字列である任意の終了タッグを含む、文字列より成る要素を使用する。
【0028】 用語「ネットワーク」は、本発明の好ましい実施例ではインターネットを意味
するが、有線または無線を問わず、任意タイプのデータ通信ネットワークを包含
する。
【0029】 図1は、本発明によるコンピュータプログラム製品の一実施例を示す概略図で
ある。該図のコンピュータプログラム製品は、工業用オートメーション制御プロ
グラミングシステム10、工業用コントローラシステム20及び制御プロセス3
0を含む工業用オートメーション制御システムの文脈で描かれている。工業用コ
ントローラシステム20は、プログラミングシステム10が走るコンピュータと
は別個のハードウェアとしてのPLCである。別の例では、工業用コントローラ
システム20及び工業用プログラミングシステム10を、例えば、パソコン式P
LCと呼ぶことの多い同じコンピュータ装置上で実現することができる。現在、
工業用オートメーションエンジニアが図形ツール(幾つかの例の1つでは、フロ
ーチャート要素である)によりプログラムすることができる典型的なプログラミ
ングシステムには、エディター12がある。オートメーションエンジニアが作動
させると、エディター12は、エンジニアが作成するプログラムを、使用する形
式が何であれ、グラフィック表示する。同時に、図2及び本明細書に詳しく記載
する内部表示を作成して、コンピュータメモリーに記憶させる。
【0030】 制御プログラミングシステム10(一例として、シーメンス・アクチェンゲゼ
ルシャフト及びシーメンス エナジー アンド オートメーション インコーポ
レイテッドにより開発され市販されているステップ7)も、エディター12によ
り作成される内部表示を、工業用コントローラシステム20のコントローラ22
により理解可能な形式に直接的または間接的に変換する1またはそれ以上のコン
パイラー14を含んでいる。コントローラ22は、コンパイルされた結果を使用
し、また、クロックデータ(図示せず)及び制御プロセス20から受ける入力に
基づき、プロセス30を作動させるための制御命令を発生する。加えて、コント
ローラ22により理解可能なコンパイルされたコードは、工業用コントローラ2
0またはその1部に結合されたデータ記憶装置26に記憶することができる。
【0031】 本発明の実施例によるプログラミングシステム10のもう1つのコンポーネン
トは、エディター12により発生される制御プログラムの内部表示をマーク付け
言語フォーマット(例えば、XML)に変換するコンバータ16である。コンバ
ータ16の動作は、図2を参照して、また添付のソースコードにおいて以下に詳
述する。コンバータ16により発生されるマーク付け言語フォーマットのコード
は、工業用コントローラ20上で走る識別及び位置指定プログラムコード24の
助けによりデータ記憶装置26に記憶させるか、あるいはネットワーク40へ、
またはそのネットワークを介して他のシステム(図示せず)へ送信することがで
きる。
【0032】 図2は、本発明による方法50の一実施例のステップを示す概略図である。フ
ローチャートプログラム52(例えば、図1のエディター12により作成された
プログラム)の1つのサンプルには、通常はバイナリフォーマットであり、プロ
グラムの実行時にメモリー(RAM)(図示せず)に保持される内部表示60が
与えられる。内部表示60は、一般的に、図形プログラミング言語システム10
の販売者に特有なもので、人間による読み取りが不可能であり、ワードプロセッ
サーやブラウザによっても読み取ることができない。
【0033】 この内部表示は、適当なマーク付け言語(上述の定義に示す)のフォーマット
へ変換(または、直列変換)される。図形プログラムは、変換されると、マーク
付けフォーマット形式64(XMLを用いる例を図2に示す)で利用可能であり
、例えば、図1及び6のデータ記憶装置26に記憶することができる。最初は5
2で示す図形プログラミング言語コードのマーク付けフォーマット形式64は、
モニターまたはディスプレイ28に直接送って、そこで、ワードプロセッサーま
たはブラウザのソフトウェアを含む公知の視認ソフトウェアでみることができる
。また、プリンター68へ送って、人間による読み取りが可能なハードコピーを
作成することもできる。あるいは、ネットワーク40を介して、関連のインター
フェイス72を有する別のコンピュータ70に送ることも可能である。コンピュ
ータ70は、例えば、制御プログラムの開発専用にすることができる。これらの
制御プログラムは、変換した後、工業用コントローラ20へ送信するか再送信す
ることができるが(必ずしもその順序である必要はない)、この工業用コントロ
ーラ20は、図形プログラミング言語システム10を用いてプログラムされた後
、供用される。
【0034】 参照番号64で示す既にマーク付けフォーマットになっている工業用オートメ
ーションプログラムコードを編集またはコンパイルする必要が生じた場合、マー
ク付けフォーマットのコード64は、マーク付け言語表示から内部表示60へ逆
変換(または逆直列変換)される(例えば、添付のソースコードを参照されたい
)。
【0035】 図2の方法の各ステップは、標準化表示形式の図形工業用制御プログラムを記
憶させるか、視認するか、若しくは記憶または視認のために他人に送信するのが
便利かまたは必要な時はいつも実施することができる。例えば、ドラッグアンド
ドロップ、コピー、切り取り、貼り付け、取消し、再実行などのような編集機能
を用いて項目を選択する時はいつも、変換を実行して、どこかへ転送のためにク
リップボード上に置くことのできるマーク付け言語(例えば、XML)列をメモ
リーに記憶させることが可能である。図形工業用オートメーションプログラムま
たはその一部を「保存」する必要がある場合、62でマーク付けフォーマット(
例えば、XML)に変換し、例えば図1の記憶装置26上のファイルに保存する
。保存されたマーク付けフォーマットのファイルに対して「ファイルを開く」命
令が発せられると、そのファイルは読み取られた後、66で内部表示に変換され
る。
【0036】 図3は、図形プログラミング言語形式の内部表示のオブジェクトモデルを示す
。図2と同様に、参照番号52のフローチャート形式を説明のために使用する。
図2の参照番号60で示す対応の内部表示を、マーク付けフォーマットに変換す
る。フローチャート型(FChType)のこのオブジェクトモデルは、それ以
外のオブジェクトモデルと同様に、マイクロソフト社から購入可能なCOM(「
共通オブジェクトモデル」)技術、または他の適当なツール(添付のソースコー
ドにおけるClass FChTypeを参照)を用いて実現することができる
。オブジェクトFChTypeは、両方ともオブジェクトFChTypeと1対
1の集合関係にあるフローチャート本体オブジェクトと、インターフェイスオブ
ジェクトとをその構造内に含む(図3の凡例を参照)。
【0037】 図4は、本発明の実施例のオブジェクトモデルを示すものであり、特に、図3
に示すオブジェクトモデルに対応するフローチャート本体FChBodyのオブ
ジェクトモデルに焦点を当てている。本体オブジェクトFChBodyは、フロ
ーチャート要素オブジェクトFChElementsだけでなくフローチャート
リンク要素FChLinksと1対1の集合関係にあり、後者はフローチャート
リンク要素FChLinkと一対多の集合関係にある。この要素FChElem
entsは、各々がFChLinkと関連がある1またはそれ以上のFChEl
ementインスタンスと1対多の集合関係にある。オブジェクトFChLin
kは、2つのFChElementオブジェクト、SourceElement
をTargetElementと連結する。
【0038】 各FChElementはFChInstanceオブジェクトと1対1の集
合関係にあり、このオブジェクトはFchAssignmentsオブジェクト
と1対1の集合関係にある。各FchAssignmentsオブジェクトは、
1またはそれ以上のFchAssignmentsオブジェクトと1対多の集合
関係にある。
【0039】 図5は、本発明の実施例のオブジェクトモデルを示すものであり、特に、図3
に示すオブジェクトモデルに対応するフローチャートインターフェイスのオブジ
ェクトモデルに焦点を当てている。FchInterfaceオブジェクトは、
FchInterfaceItemsオブジェクトと1対1の集合関係にあり、
FchInterfaceItemと1対多の集合関係にある。さらに、Fch
InterfaceItemsオブジェクトは、FchInterfaceIt
emオブジェクトと1対多の関係にある。
【0040】 図2を再び参照して、図3、4及び5を参照して上述した内部表示60は、参
照番号62で示すように、例えばXMLのような適当なマーク付け言語フォーマ
ットに変換される。詳細については、注釈付きソースコードを参照されたい。
【0041】 図6は、本発明によるコンピュータプログラム製品を供用するための、また本
発明の1またはそれ以上の方法の実施例を実行するためのシステムの実施例を示
す。PLC20(点線で示す)を含むか取り込むことのできる工業用オートメー
ションプログラミング及び制御システム18は、ディスプレイ28、少なくとも
1つのデータ記憶装置26及び被制御プロセス30に結合されている。さらに、
そのシステムはネットワーク40に結合され、このネットワークを介して、直接
または間接的に同一ネットワーク40に接続された他のコンピュータと通信する
ことができる。例えば、工業用オートメーションプログラミング及び制御システ
ム18は、ディスプレイ72及びデータ記憶装置74を有する遠隔のコンピュー
タ70、または1つを参照番号80で示し、ディスプレイ82及びデータ記憶装
置84を有する複数のかかるコンピュータとネットワーク40を介して通信する
ことができる。
【0042】 図2に図示し明細書に述べた変換アプローチを使用すると、マーク付けフォー
マットのコードを、それが作成されたサイトで容易に見ることができるだけでな
く、ネットワーク40を介して別のコンピュータ70へ容易に送信することが可
能であり、その別のコンピュータ70では、オペレーターがディスプレイ72に
より、例えばブラウザを用いてディスプレイ上のコードを容易にチェックできる
。オペレーターが工業用オートメーション制御エンジニアまたは工業用オートメ
ーション制御コードの開発者である場合、そのオペレーターは、コンピュータ7
0上にプログラムコードを発生させ、そのコードをマーク付けフォーマットに変
換して、工業用オートメーションプログラミング及び制御システム18またはコ
ントローラ20へ送信または再送信(必ずしもこの順序でなくてもよい)するこ
とができる。同じことをコンピュータ80により、またはオートメーションプロ
グラミング及び制御システム18とネットワーク40を介して通信関係にある任
意の数のコンピュータにより行うことができる。
【0043】 図6に示す種々のコンピュータ間の好ましくはネットワーク40による(必ず
しもインターネットでなくてもよい)通信は、ハイパーテキスト転送プロトコル
を用いるページのダウンロードにより、または電子メールメッセージの送信によ
り(これらに限定されない)任意適当な態様で行うことができる。
【0044】 本発明の実施例のこの構成が与えられると、コンピュータ70は、ネットワー
クを介してクライアントシステム18に結合された工業用オートメーション制御
コードサーバーシステムと考えることができる。コンピュータ70は、制御コー
ドのマーク付けフォーマットのバージョンにアクセスし、アクセスしたマーク付
けフォーマットの制御コードを、システム18に対応するネットワークアドレス
を用い、ネットワークを介して送信することにより、送信したマーク付けフォー
マットの制御コードをクライアントシステムに受信させる。さらに、システム1
8は、受信したマーク付けフォーマットの制御コードに応答して、そのマーク付
けフォーマットの制御コードが向けられたオートメーションに関連するデータを
、ネットワーク40を介してコンピュータ70へ送信する。さらに、コンピュー
タ70は、データをシステム18から受信すると、これに応答して、修正済み制
御コードを発生またはアクセスすることができるが、修正済み制御コードはマー
ク付けフォーマット形式である。加えて、マーク付けフォーマットの修正済み制
御コードは、システム18に対応するネットワークアドレスを用い、ネットワー
クを介して、送信することが可能であり、それにより、送信された修正済みマー
ク付けフォーマットの制御データがシステム18により受信される。
【0045】 図6は、複数のアプリケーション開発者による工業用オートメーション制御プ
ログラムデータに関するアプリケーションの作成を可能にするために、その制御
プログラムデータの論理構造を通信する方法に関する本発明の別の局面の実施例
を示す。この方法によると、工業用オートメーション制御プログラムシステム(
例えば、XML)により発生されるマーク付け言語ファイルのコンテンツモデル
を定義するスキーマー(または類似のデータ)(添付のスキーマー例のソースコ
ードを参照されたい)は、ネットワーク40(例えば、インターネット)を介し
てアクセスできるように提示される。例えば、コンピュータ70、80及び90
を利用するアプリケーション開発者は、図形プログラミング言語データにアクセ
スしてその論理構造を理解し、彼等自身のアプリケーションを書くことができる
。本発明による標準化フォーマットを用いて交信する開発者及びシステムは、そ
れらの変換プログラムが、使用する内部表示60の詳細事項を考慮のであれば、
オートメーションシステム制御コードの同一の内部表示60を使用する必要はな
い。
【0046】 図6はまた、工業用オートメーション制御コードサービスを提供する方法を実
施できるシステムを示す。コンピュータ70を、マーク付けフォーマットの工業
用オートメーション制御コード(例えば、図2の参照番号62で示す)の作成を
可能にするソフトウェアを走らせるサーバーと見做すことができると仮定すると
、コンピュータ70は、制御コードのマーク付けフォーマットのバージョンにア
クセスし、アクセスしたマーク付けフォーマットの制御コードを、例えばコンピ
ュータ18であるクライアントシステムに、コンピュータ18に対応するネット
ワークアドレスを用い、ネットワーク40を介して送信することにより、送信し
たマーク付けフォーマットの制御コードをクライアント18が受信できるように
することができる。
【0047】 恐らく、PLC20と共にプロセス30を制御するクライアントシステム18
は、マーク付けフォーマットの制御コード(例えば、参照番号60で示す)の受
信に応答して、マーク付けフォーマットの制御コードが向けられるオートメーシ
ョンに関するデータをサーバーシステム70に送信することができる。サーバー
システム70は、それが発生しつつある、または既に発生したコードを修正する
ことがあり、クライアントシステム18からのシステムデータの受信に応答して
修正されるオートメーションシステム制御コードをアクセスする場合、マーク付
けフォーマットの修正済み制御コードを、クライアントシステム18に対応する
ネットワークアドレスを用い、ネットワークを介して送信することにより、送信
した修正済みマーク付けフォーマットの制御コードをクライアントシステム18
が受信できるようにすることができる。
【0048】 本発明の別の実施例において、上記方法は、ネットワークに結合した第2のク
ライアントシステム90を含むことができる。サーバー70は、アクセスしたマ
ーク付けフォーマットの制御コード(図2の62)を、第2のクライアントシス
テム90に対応するネットワークアドレスを用い、ネットワーク40を介して送
信し、送信したマーク付けフォーマットの制御コードが第2のクライアントシス
テムにより受信できるようにすることができる。
【0049】 システムの互換性を増加できる可能性を示す本発明のさらに別の実施例による
と、第1のクライアントシステム18は、マーク付けフォーマットの制御コード
を第1の内部表示に再変換するように構成し、それと共に第2のクライアント9
0を、マーク付けフォーマットの制御コードが第2の内部表示に再変換するよう
に構成してもよい。
【0050】 最後に、図6は、複数の分散したアプリケーション開発者による工業用オート
メーション制御アプリケーションのプログラミング方法を示す。コンピュータシ
ステム18は、ネットワーク40に結合され、ネットワーク40を介して複数の
工業用オートメーションプログラム開発者のシステム70、80から、送信デー
タを受信するように構成されており、この送信データは、プログラム開発者のシ
ステム70、80からのマーク付け言語フォーマットのデータより成る。
【0051】 上記及び後記のXMLスキーマー及びソースコードリストにおいて説明した本
発明の実施例に加えて、当業者は、本明細書には明示的に述べられていないが、
本発明の原理を実現し、頭書の特許請求の範囲内に含まれる種々の他の構成及び
ステップを想到することができるであろう。
【0052】 XMLのフローチャートプログラムの例 <?xmlversion="1.0" ?> <ChartSourceExecutableTypeName="FUNCTION_BLOCK"> <Interface> <SectionName="VAR_INPUT"> <ItemName="Enabled" Mode="ReadOnly" Type="Bool"Init="TRUE"/> <ItemName="Frozen" Mode="ReadOnly" Type="Bool"Init="FALSE"/> </Section> <SectionName="VAR_OUTPUT"> <ItemName="Active" Mode="ReadOnly" Type="Bool"Init="FALSE"/> </Section> <SectionName="VAR"> <ItemName="Index" Mode="ReadOnly" Type="Int"Init="0"/> <ItemName="Internal" Mode="ReadOnly" Type="Struct"> <ItemName="Trace" Mode="ReadOnly" Type="Array [1..32] ofBool"/> <ItemName="CurrentStep" Mode="ReadOnly" Type="Int"Init="0"/> </Item> <ItemName="xxx" Mode="ReadOnly" FChType="Called"Type="FB16"/> </Section> </Interface> <Body> <Elements> <ElementNumber="0" Type="TBegin" Caption="Begin"/> <ElementNumber="1" Type="TEnd" Caption="End"/> <ElementNumber="2" Type="TSubChart" Caption="Test1"> <InstanceName=" Test1" InterfaceVersion="14"ChartType="Called"> <AssignmentName="BoolPara" Value=""/> <AssignmentName="IntPara" Value=""/> </Instance> </Element> </Elements> <Links> <LinkNumber="1" SourceElement="2" TargetElement="1"Index="0" Caption=""/
> <LinkNumber="2" SourceElement="0" TargetElement="2"Index="0" Caption=""/
> </Links> </Body> </ChartSource>
【0053】 XML列は、XMLスキーマーを用いて確認することができる。スキーマーは
、XMLファイルで許容される要素及び属性を記述するものである。
【0054】 フローチャートのスキーマーファイルの例 <Schemaxmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes"> <ElementTypename="Comment" content="textOnly"/> <AttributeType name="Name"dt:type="string"/> <AttributeTypename="Value" dt:type="string"/> <ElementTypename="Attribute" content="empty"> <attributetype="Name" required="yes"/> <attributetype="Value" required="yes"/> </ElementType> <ElementTypename="Attributes" content="eltOnly"> <elementtype="Attribute" maxOccurs="*"/> </ElementType> <AttributeType name="Mode"dt:type="enumeration" dt:values="Mixed ReadO
nly Edit"/> <AttributeType name="Type"dt:type="string"/> <AttributeType name="Init"dt:type="string"/> <ElementType name="Item"content="eltOnly"> <attributetype="Name" required="yes"/> <attributetype="Mode" required="yes"/> <attributetype="Type" required="yes"/> <attributetype="Init"/> <elementtype="Comment" minOccurs="0"/> <elementtype="Attributes" minOccurs="0"/> <elementtype="Item" minOccurs="0" maxOccurs="*"/> </ElementType> <ElementTypename="Section" content="eltOnly"> <AttributeTypename="Name" dt:type="enumeration" dt:values="VAR_INPUT
VAR_OUTPUT VAR_IN_OUT VAR VAR_TEMP"/> <attributetype="Name" required="yes"/> <elementtype="Item" minOccurs="0" maxOccurs="*"/> </ElementType> <ElementTypename="Interface" content="eltOnly"> <elementtype="Section" maxOccurs="*"/> </ElementType> <ElementTypename="Assignment" content="empty"> <attributetype="Name" required="yes"/> <attributetype="Value" required="yes"/> </ElementType> <AttributeTypename="ChartType" dt:type="string"/> <ElementTypename="Instance" content="eltOnly"> <attributetype="Name" required="yes"/> <attributetype="ChartType" required="yes"/> <elementtype="Assignment" maxOccurs="*"/> </ElementType> <ElementTypename="SourceCode" content="textOnly"/> <AttributeTypename="Number" dt:type="int"/> <AttributeTypename="Caption" dt:type="string" default=""/> <ElementTypename="Element" content="eltOnly"> <attributetype="Number" required="yes"/> <attributetype="Type" required="yes"/> <attributetype="Caption" required="no"/> <groupminOccurs="0" order="one"> <grouporder="seq"> <element type="Comment"/> <element type="SourceCode"/> </group> <elementtype="Instance" maxOccurs="*"/> </group> </ElementType> <ElementTypename="Elements" content="eltOnly"> <elementtype="Element" maxOccurs="*"/> </ElementType> <AttributeTypename="SourceElement" dt:type="int"/> <AttributeTypename="TargetElement" dt:type="int"/> <AttributeTypename="Index" dt:type="int"/> <ElementType name="Link"content="empty"> <attributetype="Number" required="yes"/> <attributetype="SourceElement" required="yes"/> <attribute type="TargetElement"required="yes"/> <attributetype="Index" required="yes"/> <attributetype="Caption"/> </ElementType> <ElementType name="Links"content="eltOnly"> <elementtype="Link" maxOccurs="*"/> </ElementType> <ElementType name="Body"content="eltOnly" order="seq"> <elementtype="Elements"/> <elementtype="Links"/> </ElementType> <AttributeTypename="ExecutableTypeName" dt:type="string"/> <ElementTypename="ChartSource" content="eltOnly"order="seq"> <attribute type="ExecutableTypeName"required="yes"/> <elementtype="Interface"/> <elementtype="Body"/> </ElementType> </Schema>
【0055】 スキーマーのこの例は、フローチャートアプリケーションの変換により発生さ
れるXMLファイルのコンテンツモデルを記述したものである。かかるスキーマ
ーは、例えば、ネットワークを介して提示することにより、他のユーザーがフロ
ーチャートデータの論理構造を理解し、適当と思うやり方でこのデータを操作す
るアプリケーションを書くことができる。それらの前のものと考えるかもしれな
い文書型定義(DTD)のように、スキーマーは、XMLデータの構造を記述す
る方法を提供する。スキーマーは、DTDとは異なり、XMLの構文を使用する
という点でDTDよりも好ましい。また、スキーマーはデータの型を取り込み、
それまでのものを受け継いでいるため、DTDよりもさらに正確な記述が可能で
ある。
【0056】 以下に示すのは、本発明の一実施例についての、flwschma.xmlに
より確認されるために文書が満足しなければならない、ルート要素<chart
Source>で始まる要件を記述したものである(全ての属性は、特に断らな
い限り列型である)。
【0057】 <chartSource>−スキーマーのルート要素<chartSour
ce>は、「ExecutableTypeName」属性、1つの<Inte
rface>要素及び1つの<Body>要素を必要とする。
【0058】 <Interface>−この要素は、少なくとも1つの<Section>
要素を必要とする。
【0059】 <Section>−この要素は、「Name」属性を必要とする。「Nam
e」は、以下の値の1つを持たなければならない:VAR_INPUT,VAR
_OUTPUT,VAR_IN_OUT,VAR,VAR_TEMP。任意の数
の<Item>要素がある。
【0060】 <Item>−この要素は、「Name」、「Mode」及び「Type」の
属性を必要とする。「Mode」は,以下の値の1つを持つ必要がある:Mix
ed,ReadOnly,Edit。以下のものはオプションである:「Ini
t」属性、1つの<Comment>属性、1つの<Attributes>要
素及び任意の数の<Item>要素。
【0061】 <Comment>−この要素はテキストだけを含む。
【0062】 <Attributes>−この要素は少なくとも1つの<Attribut
e>要素を必要とする。
【0063】 <Attribute>−この要素は「Name」及び「Attribute
」属性を必要とする。
【0064】 <Body>−この要素は1つの<Elements>要素と1つの<Lin
ks>要素を必要とする。
【0065】 <Elements>−この要素は少なくとも1つの<Element>要素
を必要とする。
【0066】 <Element>−この要素は「Number」及び「Type」属性を必
要とする。「Number」はint型である。以下はオプションである:「C
aption」属性及び、1)1つの<Comment>要素の次に1つの<S
ourceCode>要素または2)任意の数の<Instance>要素。
【0067】 <Comment>−この要素はテキストだけを含む。
【0068】 <SourceCode>−この要素はテキストだけを含む。
【0069】 <Instance>−この要素は「Name」及び「ChartType」
属性を必要とする。オプションは任意の数の<Assignment>要素であ
る。
【0070】 <Assignment>−この要素は「Name」及び「Value」属性
を必要とする。
【0071】 <Links>−この要素は少なくとも1つの<Link>要素を必要とする
【0072】 <Link>−この要素は、「Number」、「SourceElemen
t」,「TargetElement」及び「Index」属性を必要とする。
「Number」、「SourceElement」,「TargetElem
ent」及び「Index」は、int型であり、オプションは「Captio
n」属性である。
【0073】 ソースコード ClassFChType '**************************************************** '* Creates a FChType object from a XML string '* NewContents contains the XML string '**************************************************** On Error GoTo ErrorHandler Dim strContents As String Dim regserv As FChRegServer.FChRegistry Dim strTemplateFolder As String Dim xmlns As String Dim FileName As String Dim fso As Scripting.FileSystemObject strContents = NewContents If Mid$(strContents, 1, 1) = ChrW$(&HFEFF)Then strContents =Mid$(strContents, 2) End If Set fso = New Scripting.FileSystemObject Set regserv = New FChRegServer.FChRegistry strTemplateFolder =regserv.GetTemplateFolderPath Set regserv = Nothing FileName = strTemplateFolder &"fbschema.xml" If fso.FileExists(FileName) Then xmlns = "<ChartSourcexmlns='x-schema:" & FileName & "' " strContents =Replace$(strContents, "<ChartSource ", xmlns, 1, 1, vbTextCompare) End If XMLReadProperties strContents Exit Property ErrorHandler: ErrorMessage Err.Number,"FChType.Contents", UNEXPECTED End Property '************************************************************ Public Property Get Contents() As Variant '************************************************************ '* Gets the contents of a FChType object as XML string '* Return value is the XML stringrepresenting this object. '************************************************************ On Error GoToErrorHandler Dim strContents As String Dim b() As Byte If Initialized Then XMLWriteProperties strContents b =ChrW$(&HFEFF) & strContents Contents = b Else Contents = "" End If Exit Property ErrorHandler: Contents = Empty ErrorMessage Err.Number,"FChType.Contents", UNEXPECTED End Property '*************************************************************** Private Sub XMLReadProperties(ByVal xml As String) '*************************************************************** '* Reads the object properties from a XML string '* xml contains the XML string '*************************************************************** On Error GoTo ErrorHandler Dim objDOMDocument AsMSXML.DOMDocument Dim rootElement AsMSXML.IXMLDOMElement Dim childElement AsMSXML.IXMLDOMElement Dim childElements AsMSXML.IXMLDOMNodeList Dim strTagName As String Dim strAddInfo As String Dim ExecutableTypeName AsString Set objDOMDocument = NewMSXML.DOMDocument IfobjDOMDocument.loadXML(xml) Then SetrootElement = objDOMDocument.documentElement mExecutableType = XMLReadExecutableType(rootElement) SetchildElements = rootElement.childNodes ForEach childElement In childElements strTagName = childElement.TagName Select Case strTagName Case "Interface" If Not mInterfaceLoaded Then mInterface.XMLReadProperties childElement mInterfaceLoaded = True End If Case "Body" If Not mBodyLoaded Then mBody.XMLReadProperties childElement mBodyLoaded = True End If Case Else ErrorMessage ERRMOD_XML_TAG, "FChType.XMLReadProperties",
WARNING, strTagName End Select Next Else strAddInfo = objDOMDocument.parseError.Reason OnError GoTo 0 ErrorMessage ERRMOD_XML_PARSER, "FChType.XMLReadProperties",ALARM
, strAddInfo End If Exit Sub ErrorHandler: ErrorMessage Err.Number,"FChType.XMLReadProperties", UNEXPECTED End Sub '************************************************************** Private Function XMLReadExecutableType(xmlElement AsMSXML.IXMLDOMElement
) As FChExecutableType '************************************************************** '* Reads the ExecutableType property from a XML object '* xmlElement contains the XML element '* Return value is the ExecutableType '************************************************************** On Error GoTo ErrorHandler Dim strExecutabletype As String strExecutabletype = XMLGetAttribute(xmlElement,"ExecutableTypeName") If strExecutabletype ="FUNCTION_BLOCK" Then XMLReadExecutableType =FUNCTION_BLOCK Else ErrorMessageERRMOD_UNSUPPORTED_EXECUTABLETYPE, "FChType.XMLReadP
roperties",WARNING, _ strExecutabletype End If Exit Function ErrorHandler: XMLReadExecutableType = FUNCTION_BLOCK ErrorMessage ERRMOD_XML_TAG,"FChType.XMLReadExecutableType", WARNING
End Function '************************************************************** PrivateSub XMLWriteProperties(xml As String) '************************************************************** '* Writes the properties to an xml String '* The xml string is return in the variable xml '************************************************************** On Error GoTo ErrorHandler Dim objDOMDocument As MSXML.DOMDocument Dim rootElement As MSXML.IXMLDOMElement Dim childElement As MSXML.IXMLDOMElement Dim NewSize As Long NewSize = (CLng(mBody.Elements.Count \ 32) + 1)* 32 'change trace si
ze mInterface.ChangeTraceSize NewSize Set objDOMDocument = New MSXML.DOMDocument Set rootElement =objDOMDocument.CreateElement("ChartSource") Set objDOMDocument.documentElement = rootElement rootElement.SetAttribute"ExecutableTypeName", ExecutableTypeName mInterface.XMLWriteProperties rootElement mBody.XMLWriteProperties rootElement xml = "<?xmlversion=""1.0"" ?>" & vbCrLf & _ Replace(objDOMDocument.xml, "><", ">" &vbCrLf & "<") Exit Sub ErrorHandler: ErrorMessage Err.Number,"FChType.XMLWriteProperties", UNEXPECTED End Sub ClassFChInterface '******************************************************************* FriendSub XMLReadProperties(xmlElement As MSXML.IXMLDOMElement) '******************************************************************* '* Reads the properties of the FChInterface object from a XMLobject '******************************************************************* On Error GoTo ErrorHandler Dim childElement As MSXML.IXMLDOMElement Dim childElements As MSXML.IXMLDOMNodeList Dim strSectionName As String Dim lngResult As Long Dim IfSections AsS7_Component_Interface_Editor_Server.IIfxCollection CalledByInternal = True Set mIfServer = NewS7_Component_Interface_Editor_Server.Interface If Not mChartType Is Nothing Then lngResult =mIfServer.Create(S7_FB_IF) ElseIf Not mChartTask Is Nothing Then lngResult =mIfServer.Create(S7_OB_IF) End If Set mRootNode = mIfServer.RootNode If mRootNode.HasChildren Then Set IfSections =mRootNode.Children Set childElements =xmlElement.childNodes For Each childElement InchildElements If childElement.TagName = "Section" Then strSectionName= XMLGetAttribute(childElement, "Name") Select Case strSectionName Case "VAR_INPUT" XMLCreateSection childElement, IfSections.GetItem("IN
") Case "VAR_OUTPUT" XMLCreateSectionchildElement, IfSections.GetItem("OU
T") Case "VAR_IN_OUT" XMLCreateSection childElement, IfSections.GetItem("IN
_OUT") Case "VAR" XMLCreateSection childElement, IfSections.GetItem("ST
AT") Case "VAR_TEMP" XMLCreateSection childElement, IfSections.GetItem("TE
MP") Case Else End Select Else ErrorMessage ERRMOD_XML_TAG, "FChInterface.XMLReadPropert
ies",WARNING, _ childElement.TagName End If Next Debug.Print Else On Error GoTo 0 ErrorMessageERRMOD_INTERFACE_CREATION_FAILED, "FChInterface.XMLR
eadProperties",ALARM End If CalledByInternal = False mModified = False Exit Sub ErrorHandler: CalledByInternal = False ErrorMessage Err.Number,"FChInterface.XMLReadProperties", UNEXPECTED
End Sub '******************************************************************* PrivateSub XMLCreateSection(xmlElement As MSXML.IXMLDOMElement, _ IFItem As S7_Component_Interface_Editor_Serv
er.InterfaceItem) '******************************************************************* '* Reads the properties of an Interface section from a XMLobject '******************************************************************* On Error GoTo ErrorHandler Dim childElement As MSXML.IXMLDOMElement Dim childElements As MSXML.IXMLDOMNodeList Dim childItem AsS7_Component_Interface_Editor_Server.InterfaceItem Dim lngResult As Long Dim pvarCorrectnessBar As Variant Dim strAttrValue As String Dim xmlAttr As MSXML.IXMLDOMAttribute Dim lChartType As FChType If IFItem Is Nothing Then GoTo ErrorHandler Set childElements = xmlElement.childNodes For Each childElement In childElements If childElement.TagName= "Item" Then Set childItem = IFItem.NewChild(-1) childItem.ItemProtectionMode = MODE_EDIT strAttrValue = XMLGetAttribute(childElement, "Name") If Len(strAttrValue) > 0 Then lngResult = childItem.SetAttributeString(ATTRIBUTE_NAME,
strAttrValue, _ pvarCorrectnessBar) If lngResult <>0 Then GoTo ErrorHandler End If strAttrValue = XMLGetAttribute(childElement, "FChType") 'spec
ial handling of Subcharts If Len(strAttrValue) > 0 Then Set lChartType = mChartTypes.Item(strAttrValue) If Not lChartType Is Nothing Then strAttrValue = lChartType.ExecutableName Set lChartType = Nothing End If End If If Len(strAttrValue) = 0 Then strAttrValue= XMLGetAttribute(childElement, "Type") End If If Len(strAttrValue) > 0 Then lngResult = childItem.SetAttributeString(ATTRIBUTE_TYPE,
strAttrValue, _ pvarCorrectnessBar) If lngResult <> 0 Then GoTo ErrorHandler End If strAttrValue = XMLGetAttribute(childElement, "Init") If Len(strAttrValue) > 0 Then lngResult = childItem.SetAttributeString(ATTRIBUTE_INITIA
L,strAttrValue, _ pvarCorrectnessBar) If lngResult <> 0 Then GoTo ErrorHandler End If XMLCreateSection childElement, childItem 'must be called before"Mode" is set (if it is ReadOnly ...) strAttrValue = XMLGetAttribute(childElement, "Mode") If Len(strAttrValue) > 0 Then If IsNumeric(strAttrValue) Then childItem.ItemProtectionMode = CLng(strAttrValue) ElseIf ItemProtectionModes.Exists(strAttrValue) Then childItem.ItemProtectionMode= ItemProtectionModes(st
rAttrValue) End If End If ElseIfchildElement.TagName = "Attributes" Then For Each xmlAttr In childElement.Attributes lngResult = IFItem.SetUDA(xmlAttr.Name, xmlAttr.Value) If lngResult <> 0 Then GoTo ErrorHandler Next ElseIfchildElement.TagName = "Comment" Then strAttrValue = childElement.Text If Len(strAttrValue) > 0 Then lngResult = IFItem.SetAttributeString(ATTRIBUTE_COMMENT,
strAttrValue, _ pvarCorrectnessBar) If lngResult <> 0 Then GoTo ErrorHandler End If Else ErrorMessage ERRMOD_XML_TAG, "FChInterface.XMLReadProperties"
,WARNING, _ childElement.TagName End If Next Exit Sub ErrorHandler: ErrorMessage Err.Number,"FChInterface.XMLCreateSection", UNEXPECTED
End Sub '********************************************************************* FriendSub XMLWriteProperties(xmlElement As MSXML.IXMLDOMElement) '********************************************************************* '* Writes the properties of the FChInterface object to a XMLobject '********************************************************************* On Error GoTo ErrorHandler Dim childElement As MSXML.IXMLDOMElement Dim SectionElement As MSXML.IXMLDOMElement Set childElement =xmlElement.ownerDocument.CreateElement("Interface"
) xmlElement.appendChild childElement If Not mChartType Is Nothing Then ' thesesections do not exist in OB
s = Tasks IfmIfServer.InParameter.Count > 0 Then Set SectionElement =childElement.ownerDocument.CreateElement(
"Section") childElement.appendChildSectionElement SectionElement.SetAttribute "Name", "VAR_INPUT" XMLSectionAsText mIfServer.InParameter, SectionElement End If IfmIfServer.OutParameter.Count > 0 Then Set SectionElement =childElement.ownerDocument.CreateElement(
"Section") childElement.appendChild SectionElement SectionElement.SetAttribute "Name", "VAR_OUTPUT" XMLSectionAsText mIfServer.OutParameter, SectionElement End If IfmIfServer.InOutParameter.Count > 0 Then Set SectionElement =childElement.ownerDocument.CreateElement(
"Section") childElement.appendChild SectionElement SectionElement.SetAttribute "Name", "VAR_IN_OUT" XMLSectionAsTextmIfServer.InOutParameter, SectionElement End If IfmIfServer.StaticData.Count > 0 Then Set SectionElement =childElement.ownerDocument.CreateElement(
"Section") childElement.appendChild SectionElement SectionElement.SetAttribute "Name", "VAR" XMLSectionAsText mIfServer.StaticData, SectionElement End If End If If mIfServer.DynamicData.Count > 0 Then Set SectionElement =childElement.ownerDocument.CreateElement("Sec
tion") childElement.appendChildSectionElement SectionElement.SetAttribute "Name", "VAR_TEMP" XMLSectionAsTextmIfServer.DynamicData, SectionElement End If Exit Sub ErrorHandler: ErrorMessage Err.Number, "FChInterface.XMLWriteProperties",UNEXPECTE
D End Sub '********************************************************************* PrivateSub XMLSectionAsText(Section AsS7_Component_Interface_Editor_Serv
er.IIfxCollection, _ xmlElement As MSXML.IXMLDOMElement) '********************************************************************* '* Writes the properties of an Interface section to a XMLobject '********************************************************************* On Error GoTo ErrorHandler Dim ItemCount As Long Dim Index As Long Dim IFItem AsS7_Component_Interface_Editor_Server.InterfaceItem ItemCount = Section.Count - 1 For Index = 0 To ItemCount Set IFItem =Section.GetItem(Index) XMLItemAsText IFItem,xmlElement Next Exit Sub ErrorHandler: ErrorMessage Err.Number,"FChInterface.XMLSectionAsText", UNEXPECTED
End Sub '********************************************************************* PrivateSub XMLItemAsText(IFItem As S7_Component_Interface_Editor_Server.
InterfaceItem,_ xmlElement As MSXML.IXMLDOMElement) '********************************************************************* '* Writes the properties of an Interface item to a XML object '********************************************************************* On Error GoTo ErrorHandler Dim Status As Boolean Dim InitValue As Variant Dim InitString As String Dim Pos As Long Dim udaList AsS7_Component_Interface_Editor_Server.IIfxCollection Dim udaItem AsS7_Component_Interface_Editor_Server.IUDA Dim i As Long Dim udaCount As Long Dim strComment As String Dim childElement As MSXML.IXMLDOMElement Dim UDAElement As MSXML.IXMLDOMElement Dim strType As String Dim strFChType As String Dim TypeID As S7TypeConstants Dim TypeInfo As Variant Dim SubTypeID As S7TypeConstants Dim SubTypeInfo As Variant Dim Result As Long Set childElement = xmlElement.ownerDocument.CreateElement("Item") xmlElement.appendChild childElement childElement.SetAttribute "Name",IFItem.Name IfItemProtectionModes.Exists(IFItem.ItemProtectionMode) Then childElement.SetAttribute "Mode", ItemProtectionModes(IFItem.Item
ProtectionMode) Else childElement.SetAttribute "Mode", IFItem.ItemProtectionMode End If Set udaList = IFItem.udaList udaCount = udaList.Count If udaCount > 0 Then Set UDAElement =xmlElement.ownerDocument.CreateElement("Attribut
es") childElement.appendChildUDAElement For i = 0 To udaCount -1 Set udaItem = udaList.GetItem(i) UDAElement.SetAttribute udaItem.Key, udaItem.Value Next End If strType = IFItem.GetAttributeString(ATTRIBUTE_TYPE,Status) If Mid$(strType, 1, 3) = "FB " ThenstrType = Replace(strType, " ", "
") Result = IFItem.GetTypeInfo(TypeID, TypeInfo,SubTypeID, SubTypeInfo) If TypeID = TYPE_S7_TYPE_FB Then strFChType =SearchForSubChart(strType) If Len(strFChType) >0 Then childElement.SetAttribute "FChType", strFChType End If End If childElement.SetAttribute "Type",strType If InterfaceItemHasChildren(strType) Then XMLSectionAsTextIFItem.Children, childElement Else InitString =GetInitString(IFItem) If Len(InitString) >0 Then childElement.SetAttribute "Init", InitString End If End If XMLWriteTextNode childElement, "Comment",IFItem.Comment Exit Sub ErrorHandler: ErrorMessage Err.Number,"FChInterface.XMLItemAsText", UNEXPECTED End Sub ClassFChBody '********************************************************************* FriendSub XMLReadProperties(xmlElement As MSXML.IXMLDOMElement) '********************************************************************* '* Reads the properties of a FChBody object from a XML object '********************************************************************* On Error GoTo ErrorHandler Dim childElement As MSXML.IXMLDOMElement Dim childElements As MSXML.IXMLDOMNodeList Set mElements = New FChElements Dim objFChElement As FChElement Set mElements.Body = Me Set mLinks = New FChLinks Set mLinks.Body = Me Set childElements = xmlElement.childNodes For Each childElement In childElements Select CasechildElement.TagName Case"Elements" mElements.XMLReadProperties childElement Case "Links" mLinks.XMLReadProperties childElement Case Else ErrorMessage ERRMOD_XML_TAG, "FChBody.XMLReadProperties",WARN
ING, childElement.TagName End Select Next Exit Sub ErrorHandler: ErrorMessage Err.Number, "FChBody.XMLReadProperties",UNEXPECTED End Sub '********************************************************************* FriendSub XMLWriteProperties(xmlElement As MSXML.IXMLDOMElement) '********************************************************************* '* Writes the properties of FChBody object to a XML object '********************************************************************* On Error GoTo ErrorHandler Dim childElement As MSXML.IXMLDOMElement Set childElement = xmlElement.ownerDocument.CreateElement("Body") xmlElement.appendChild childElement mElements.XMLWriteProperties childElement mLinks.XMLWriteProperties childElement Exit Sub ErrorHandler: ErrorMessage Err.Number,"FChBody.XMLWriteProperties", UNEXPECTED End Sub '********************************************************************* ClassFChElements '********************************************************************* FriendSub XMLReadProperties(xmlElement As MSXML.IXMLDOMElement) '********************************************************************* '* Reads the properties of a FChElements object from a XMLobject '********************************************************************* On Error GoTo ErrorHandler Dim objFChElement As FChElement Dim childElement As MSXML.IXMLDOMElement Dim childElements As MSXML.IXMLDOMNodeList Set childElements = xmlElement.childNodes mIndex = 0 For Each childElement In childElements If childElement.TagName= "Element" Then Set objFChElement = New FChElement Set objFChElement.Body = mBody objFChElement.XMLReadProperties childElement If mIndex <= objFChElement.Number Then mIndex = objFChElement
.Number+ 1 mBody.RaiseCreatedEventobjFChElement mCol.Add objFChElement, Format$(objFChElement.Number) Else ErrorMessage ERRMOD_XML_TAG, "FChElements.XMLReadProperties",
WARNING, _ childElement.TagName End If Next Exit Sub ErrorHandler: ErrorMessage Err.Number,"FChElements.XMLReadProperties", UNEXPECTED
End Sub '********************************************************************* FriendSub XMLWriteProperties(xmlElement As MSXML.IXMLDOMElement) '********************************************************************* '* Writes the properties of FChElements object to a XML object '********************************************************************* On Error GoTo ErrorHandler Dim objFChElement As FChElement Dim childElement As MSXML.IXMLDOMElement Set childElement =xmlElement.ownerDocument.CreateElement("Elements") xmlElement.appendChild childElement For Each objFChElement In mCol objFChElement.XMLWritePropertieschildElement Next Exit Sub ErrorHandler: ErrorMessage Err.Number,"FChElements.XMLWriteProperties", UNEXPECTED
End Sub '********************************************************************* ClassFChLinks '********************************************************************* FriendSub XMLReadProperties(xmlElement As MSXML.IXMLDOMElement) '********************************************************************* '* Reads the properties of a FChLinks object from a XML object '********************************************************************* On Error GoTo ErrorHandler Dim objFChlink As FChLink Dim childElement As MSXML.IXMLDOMElement Dim childElements As MSXML.IXMLDOMNodeList Set childElements = xmlElement.childNodes For Each childElement In childElements If childElement.TagName= "Link" Then Set objFChlink = New FChLink Set objFChlink.Body = mBody objFChlink.XMLReadProperties childElement If mIndex <= objFChlink.Number Then mIndex = objFChlink.Numbe
r + 1 mBody.RaiseCreatedEvent objFChlink mCol.Add objFChlink, Format$(objFChlink.Number) objFChlink.UpdateLinksAdd Else ErrorMessage ERRMOD_XML_TAG, "FChLinks.XMLReadProperties",WAR
NING, childElement.TagName End If Next Exit Sub ErrorHandler: ErrorMessage Err.Number,"FChLinks.XMLReadProperties", UNEXPECTED End Sub '********************************************************************* FriendSub XMLWriteProperties(xmlElement As MSXML.IXMLDOMElement) '********************************************************************* '* Writes the properties of FChLinks object to a XML object '********************************************************************* On Error GoTo ErrorHandler Dim objFChlink As FChLink Dim childElement As MSXML.IXMLDOMElement Set childElement =xmlElement.ownerDocument.CreateElement("Links") xmlElement.appendChild childElement For Each objFChlink In mCol objFChlink.XMLWriteProperties childElement Next Exit Sub ErrorHandler: ErrorMessage Err.Number,"FChLinks.XMLWriteProperties", UNEXPECTED End Sub '********************************************************************* ClassFChElement '********************************************************************* FriendSub XMLReadProperties(xmlElement As MSXML.IXMLDOMElement) '********************************************************************* '* Reads the properties of a FChElement object from a XMLobject '********************************************************************* On Error GoTo ErrorHandler Dim tmpElementType As String Dim lngIndex As Long Dim childElement As MSXML.IXMLDOMElement Dim childElements As MSXML.IXMLDOMNodeList Dim strOutLinks As String Dim strCommentPosition As String Dim arrayCommentPosition() As String tmpElementType = XMLGetAttribute(xmlElement,"Type") If Not ElementTypeDic.Exists(tmpElementType)Then On Error GoTo 0 ErrorMessageERRMOD_UNKOWN_ELEMENT_TYPE, "FChElement.XMLReadPrope
rties", ALARM, _ tmpElementType Else ElementType =ElementTypeDic(tmpElementType) mNumber =XMLGetAttribute(xmlElement, "Number") mCaption =XMLGetAttribute(xmlElement, "Caption") mDefaultCaption =(mCaption = "%D%") If mElementType = TGotoThen mGotoTargetNumber = XMLGetAttribute(xmlElement,"GotoTargetNum
ber") End If If mElementType =TComment Then strCommentPosition = XMLGetAttribute(xmlElement,"CommentPosit
ion") If Len(strCommentPosition) > 0 Then arrayCommentPosition = Split(strCommentPosition, ",") If Not IsEmpty(arrayCommentPosition) Then If UBound(arrayCommentPosition) = 3 Then For lngIndex = 0 To 3 mCommentPosition(lngIndex) = CLng(arrayCommen
tPosition(lngIndex)) Next End If End If End If End If Set childElements =xmlElement.childNodes For Each childElement InchildElements Select Case childElement.TagName Case "SourceCode" If (mElementType = TAction) Or (mElementType = TDecision) Then mSourceCode = childElement.Text Else ErrorMessage ERRMOD_XML_TAG, "FChElement.XMLReadPrope
rties",WARNING, _ childElement.TagName End If Case "Comment" mComment = childElement.Text Case "Instance" If mElementType = TSubChart Then Set mInstance = New FChInstance Set mInstance.Body = mBody Set mInstance.Element = Me mInstance.XMLReadProperties childElement Else ErrorMessage ERRMOD_XML_TAG, "FChElement.XMLReadPrope
rties",WARNING, _ childElement.TagName End If Case Else ErrorMessage ERRMOD_XML_TAG, "FChElement.XMLReadPropertie
s",WARNING, _ childElement.TagName End Select Next End If Exit Sub ErrorHandler: ErrorMessage Err.Number,"FChElement.XMLReadProperties", UNEXPECTED End Sub '********************************************************************* FriendSub XMLWriteProperties(xmlElement As MSXML.IXMLDOMElement) '********************************************************************* '* Writes the properties of FChElement object to a XML object '********************************************************************* On Error GoTo ErrorHandler Dim childElement As MSXML.IXMLDOMElement Set childElement =xmlElement.ownerDocument.CreateElement("Element") xmlElement.appendChild childElement childElement.SetAttribute "Number",mNumber childElement.SetAttribute "Type",ElementTypeNames(mElementType) childElement.SetAttribute "Caption",mCaption If mElementType = TGoto Then childElement.SetAttribute "GotoTargetNumber",mGotoTargetNumber End If XMLWriteTextNode childElement,"Comment", mComment If (mElementType = TAction) Or (mElementType =TDecision) Then XMLWriteTextNodechildElement, "SourceCode", mSourceCode End If If mElementType = TComment Then childElement.SetAttribute "CommentPosition",Str$(mCommentPosition
(0)) & "," & _ Str$(mCommentPosition(1)) & "," & _ Str$(mCommentPosition(2)) & "," & _ Str$(mCommentPosition(3)) End If If Not mInstance Is Nothing Then mInstance.XMLWriteProperties childElement End If Exit Sub ErrorHandler: ErrorMessage Err.Number,"FChElement.XMLWriteProperties", UNEXPECTED
End Sub '********************************************************************* ClassFChLink '********************************************************************* FriendSub XMLReadProperties(xmlElement As MSXML.IXMLDOMElement) '********************************************************************* '* Reads the properties of a FChLink object from a XML object '********************************************************************* On Error GoTo ErrorHandler mNumber = XMLGetAttribute(xmlElement,"Number") mSourceNumber = XMLGetAttribute(xmlElement,"SourceElement") mTargetNumber = XMLGetAttribute(xmlElement,"TargetElement") mIndex = XMLGetAttribute(xmlElement,"Index") mCaption = XMLGetAttribute(xmlElement,"Caption") mDefaultCaption = (mCaption = "%D%") Exit Sub ErrorHandler: ErrorMessage Err.Number,"FChLink.XMLReadProperties", UNEXPECTED End Sub '********************************************************************* FriendSub XMLWriteProperties(xmlElement As MSXML.IXMLDOMElement) '********************************************************************* '* Writes the properties of FChLink object to a XML object '********************************************************************* On Error GoTo ErrorHandler Dim childElement As MSXML.IXMLDOMElement Dim objFChlink As FChLink Set childElement =xmlElement.ownerDocument.CreateElement("Link") xmlElement.appendChild childElement childElement.SetAttribute "Number",mNumber childElement.SetAttribute"SourceElement", mSourceNumber childElement.SetAttribute"TargetElement", mTargetNumber childElement.SetAttribute "Index",mIndex childElement.SetAttribute "Caption",mCaption Exit Sub ErrorHandler: ErrorMessage Err.Number, "FChLink.XMLWriteProperties",UNEXPECTED End Sub '********************************************************************* ClassFChInstance '********************************************************************* FriendSub XMLReadProperties(xmlElement As MSXML.IXMLDOMElement) '********************************************************************* '* Reads the properties of a FChInstance object from a XMLobject '********************************************************************* On Error GoTo ErrorHandler Dim childElement As MSXML.IXMLDOMElement Dim childElements As MSXML.IXMLDOMNodeList Dim mAssignment As FChAssignment Dim mSubChartType As FChType Dim strIfVersion As String mChartType = XMLGetAttribute(xmlElement,"ChartType") mName = XMLGetAttribute(xmlElement,"Name") strIfVersion = XMLGetAttribute(xmlElement,"InterfaceVersion") If IsNumeric(strIfVersion) And Len(strIfVersion)> 0 Then mInterfaceVersion =Format$(strIfVersion) Else mInterfaceVersion = 0 End If Set mSubChartType = ChartType Set childElements = xmlElement.childNodes For Each childElement In childElements Select CasechildElement.TagName Case"Assignment" Set mAssignment = New FChAssignment mAssignment.XMLReadProperties childElement If Not mSubChartType Is Nothing Then Set mAssignment.IfxServer = mSubChartType.Interface.IfSer
ver End If If AssignmentExists(mAssignment.Name) Then Set mAssignment = Nothing ErrorMessage ERRMOD_DUPLICATE_ASSIGNMENT,"FChInstance.XML
ReadProperties", _ WARNING, mAssignment.Name Else mCol.Add mAssignment, mAssignment.Name End If Set mAssignment = Nothing Case Else ErrorMessage ERRMOD_XML_TAG, "FChInstance.XMLReadProperties",
WARNING, _ childElement.TagName End Select Next Set mSubChartType = Nothing Exit Sub ErrorHandler: ErrorMessage Err.Number,"FChInstance.XMLReadProperties", UNEXPECTED
End Sub '********************************************************************* FriendSub XMLWriteProperties(xmlElement As MSXML.IXMLDOMElement) '********************************************************************* '* Writes the properties of FChInstance object to a XML object '********************************************************************* On Error GoTo ErrorHandler Dim childElement As MSXML.IXMLDOMElement Dim mAssignment As FChAssignment Set childElement =xmlElement.ownerDocument.CreateElement("Instance") xmlElement.appendChild childElement childElement.SetAttribute "Name",mName childElement.SetAttribute "InterfaceVersion",mInterfaceVersion childElement.SetAttribute "ChartType",mChartType For Each mAssignment In mCol mAssignment.XMLWriteProperties childElement Next Exit Sub ErrorHandler: ErrorMessage Err.Number, "FChInstance.XMLWriteProperties",UNEXPECTED
End Sub '********************************************************************* ClassFChAssignment '********************************************************************* FriendSub XMLReadProperties(xmlElement As MSXML.IXMLDOMElement) '********************************************************************* '* Reads the properties of a FChAssignment object from a XMLobject '********************************************************************* On ErrorGoTo ErrorHandler mName = XMLGetAttribute(xmlElement,"Name") mValue = XMLGetAttribute(xmlElement,"Value") Exit Sub ErrorHandler: ErrorMessage Err.Number,"FChAssignment.XMLReadProperties", UNEXPECTE
D End Sub '********************************************************************* FriendSub XMLWriteProperties(xmlElement As MSXML.IXMLDOMElement) '********************************************************************* '* Writes the properties of FChAssignment object to a XMLobject '********************************************************************* On Error GoTo ErrorHandler Dim childElement As MSXML.IXMLDOMElement Dim mAssignment As FChAssignment Set childElement = xmlElement.ownerDocument.CreateElement("Assignmen
t") xmlElement.appendChild childElement childElement.SetAttribute "Name",mName childElement.SetAttribute "Value",mValue Exit Sub ErrorHandler: ErrorMessage Err.Number,"FChAssignment.XMLWriteProperties", UNEXPECT
ED End Sub '********************************************************************* GlobalSubroutines and Functions '********************************************************************* PublicSub XMLWriteTextNode(xmlElement As MSXML.IXMLDOMElement, Name As S
tring, DataAs String) '********************************************************************* '* Writes a property as text node to a XML object '* Property name is Name, property Data is in Data '********************************************************************* On Error GoTo ErrorHandler Dim childElement As MSXML.IXMLDOMElement Dim TextElement As MSXML.IXMLDOMText If Len(Data) > 0 Then Set childElement =xmlElement.ownerDocument.CreateElement(Name) xmlElement.appendChildchildElement Set TextElement =xmlElement.ownerDocument.createTextNode(Data) childElement.appendChildTextElement End If Exit Sub ErrorHandler: ErrorMessage Err.Number, "global.XMLWriteTextNode",UNEXPECTED End Sub '********************************************************************* Public FunctionXMLCreateRootElement(ByVal TagName As String) As MSXML.IX
MLDOMElement '********************************************************************* '* Creates an XML root element with the specified TagName '********************************************************************* On Error GoTo ErrorHandler Dim objDOMDocument As MSXML.DOMDocument Dim rootElement As MSXML.IXMLDOMElement Set objDOMDocument = New MSXML.DOMDocument Set rootElement =objDOMDocument.CreateElement(TagName) Set objDOMDocument.documentElement = rootElement Set XMLCreateRootElement = rootElement Exit Function ErrorHandler: ErrorMessage Err.Number,"global.XMLCreateRootElement", UNEXPECTED End Function '********************************************************************* PublicFunction XMLCreateDocument(ByVal Contents As Variant) As MSXML.DOM
Document '********************************************************************* '* Creates an XML document with the specified xml Contents '********************************************************************* On Error GoTo ErrorHandler Dim xml As String Dim objDOMDocument As MSXML.DOMDocument Dim rootElement As MSXML.IXMLDOMElement Set objDOMDocument = New MSXML.DOMDocument xml = Contents If objDOMDocument.loadXML(xml) Then Set XMLCreateDocument =objDOMDocument Else Set XMLCreateDocument =Nothing On Error GoTo 0 ErrorMessageERRMOD_XML_PARSER, "global.XMLCreateDocument", ALARM End If Exit Function ErrorHandler: ErrorMessage Err.Number,"global.XMLCreateDocument", UNEXPECTED End Function '********************************************************************* PublicFunction XMLGetAttribute(xmlElement As MSXML.IXMLDOMElement, Name
As String) AsString '********************************************************************* '* Gets an Attribute from an XML element (needed because oferror handli
ng) '********************************************************************* On Error GoTo ErrorHandler XMLGetAttribute = xmlElement.GetAttribute(Name) Exit Function ErrorHandler: XMLGetAttribute = "" End Function '********************************************************************* PublicSub ErrorMessage(ByVal Number As Long, _ ByVal Source As String, _ ByVal Severity As ErrorSeverity, _ Optional ByVal AddInfo As String = "") '********************************************************************* '* Logs an Error message and raises an Error '********************************************************************* Dim strTmp As String Dim lngErrorNumber As Long Dim lngHelpContextID As Long Select Case Severity Case WARNING ' Logging only, no error raised strTmp = objResourceAccess.GetResString(Number, "Error") If Len(AddInfo) > 0 Then strTmp = strTmp & ": " &AddInfo lngErrorNumber = vbObjectError + ERRMOD_BASE_NUMBER + Number lngHelpContextID = HELP_ON_ERRMOD_BASE_NUMBER + Number PrintForDebug TraceFileName, strTmp & ": " & Source Case ALARM ' Error is logged and Erroris raised strTmp = objResourceAccess.GetResString(Number, "Error") If Len(AddInfo) > 0 Then strTmp = strTmp & ": " &AddInfo lngErrorNumber = vbObjectError +ERRMOD_BASE_NUMBER + Number lngHelpContextID = HELP_ON_ERRMOD_BASE_NUMBER + Number PrintForDebug TraceFileName, strTmp & ":" & Source Err.Raise lngErrorNumber, Source, strTmp, App.HelpFile, lngHe
lpContextID Case INTERNAL ' General"internal error" is raised, but detailed
logged strTmp = objResourceAccess.GetResString(Number, "Error") If Len(AddInfo) > 0 Then strTmp = strTmp & ": " &AddInfo lngErrorNumber= vbObjectError + ERRMOD_BASE_NUMBER + Number lngHelpContextID = HELP_ON_ERRMOD_BASE_NUMBER + Number PrintForDebug TraceFileName, strTmp & ":" & Source strTmp = objResourceAccess.GetResString(ERRMOD_INTERNAL,"Erro
r") lngErrorNumber = vbObjectError + ERRMOD_BASE_NUMBER + ERRMOD_
INTERNAL lngHelpContextID = HELP_ON_ERRMOD_BASE_NUMBER + ERRMOD_INTERN
AL Err.Raise lngErrorNumber, Source, strTmp, App.HelpFile, lngHe
lpContextID Case UNEXPECTED 'Unknown error caused by VB or a subcomponent. T
reated like warning PrintForDebug TraceFileName, Err.Description & ":" &Source Err.Raise Err.Number, Source, Err.Description, Err.HelpFile,E
rr.HelpContext Case CREATEFILE PrintForDebug TraceFileName, "START", True Case STEP7ERROR lngErrorNumber = vbObjectError + ERRMOD_BASE_NUMBER + Number lngHelpContextID = HELP_ON_ERRMOD_BASE_NUMBER + Number PrintForDebug TraceFileName, "STEP7 Error: " &Format$(lngErro
rNumber) & ":" & Source End Select End Sub
【図面の簡単な説明】
【図1】 図1は、工業用オートメーション制御プログラミングシステムを含む工業用オ
ートメーション制御システムの文脈で本発明のコンピュータプログラム製品の実
施例を示す概略図である。
【図2】 図2は、本発明による変換プロセスの実施例を示す概略図である。
【図3】 図3は、本発明の実施例に従ってマーク付けフォーマットに変換する必要のあ
るフローチャートの内部表示のオブジェクトモデルを示す。
【図4】 図4は、本発明の実施例に従ってマーク付けフォーマットに変換する必要のあ
るフローチャート本体(図3のフローチャートオブジェクトモデルに対応する)
の内部表示のオブジェクトモデルを示す。
【図5】 図5は、本発明の実施例に従ってマーク付けフォーマットに変換する必要のあ
るフローチャートインターフェイス(図3のフローチャートオブジェクトモデル
に対応する)の内部表示のオブジェクトモデルを示す。
【図6】 図6は、本発明に従ってコンピュータプログラム製品を供用させ、本発明に従
って1またはそれ以上の方法の実施例を実行する実施例を示す。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE,TR),OA(BF ,BJ,CF,CG,CI,CM,GA,GN,GW, ML,MR,NE,SN,TD,TG),AP(GH,G M,KE,LS,MW,MZ,SD,SL,SZ,TZ ,UG,ZW),EA(AM,AZ,BY,KG,KZ, MD,RU,TJ,TM),AE,AG,AL,AM, AT,AU,AZ,BA,BB,BG,BR,BY,B Z,CA,CH,CN,CR,CU,CZ,DE,DK ,DM,DZ,EE,ES,FI,GB,GD,GE, GH,GM,HR,HU,ID,IL,IN,IS,J P,KE,KG,KP,KR,KZ,LC,LK,LR ,LS,LT,LU,LV,MA,MD,MG,MK, MN,MW,MX,MZ,NO,NZ,PL,PT,R O,RU,SD,SE,SG,SI,SK,SL,TJ ,TM,TR,TT,TZ,UA,UG,UZ,VN, YU,ZA,ZW

Claims (52)

    【特許請求の範囲】
  1. 【請求項1】 工業用オートメーションコンピュータプログラムコードを実
    行時内部表示でコンピュータメモリーに記憶させる図形プログラミング言語ツー
    ルを用いて作成した工業用オートメーションコンピュータプログラムコードを表
    示する方法であって、 コンピュータプログラムメモリー中の内部表示の工業用オートメーションコー
    ドを識別し、 そのコードを内部表示からマーク付け言語フォーマットへ変換するステップよ
    り成る工業用オートメーションコンピュータプログラムコードの表示方法。
  2. 【請求項2】 変換済みのマーク付けフォーマットのコードをコンピュータ
    データ記憶装置に記憶させるステップをさらに含む請求項1の方法。
  3. 【請求項3】 マーク付けフォーマットのコードをネットワークを介して受
    信コンピュータ装置へ送信するステップをさらに含む請求項1の方法。
  4. 【請求項4】 マーク付けフォーマットのコードをコンピュータデータ記憶
    装置から読み出し、マーク付けフォーマットのコードをコンピュータメモリーの
    内部表示に変換する請求項2の方法。
  5. 【請求項5】 マーク付けフォーマットのコードをコンピュータデータ記憶
    装置から読み出し、読み出したコードをコンピュータディスプレイ上に対応の図
    形フォーマットで表示するステップをさらに含む請求項2の方法。
  6. 【請求項6】 マーク付けフォーマットのコードの表示はブラウザにより行
    われる請求項5の方法。
  7. 【請求項7】 マーク付け言語はXMLである請求項2の方法。
  8. 【請求項8】 図形プログラミングはフローチャート言語でより成る請求項
    1の方法。
  9. 【請求項9】 図形プログラミング言語ははしご形論理言語より成る請求項
    1の方法。
  10. 【請求項10】 図形プログラミング言語は機能ブロック図言語より成る請
    求項1の方法。
  11. 【請求項11】 図形プログラミング言語はシーケンス機能チャート言語よ
    り成る請求項1の方法。
  12. 【請求項12】 図形プログラミング言語はフローチャート言語より成る請
    求項7の方法。
  13. 【請求項13】 図形プログラミング言語ははしご形論理言語より成る請求
    項7の方法。
  14. 【請求項14】 図形プログラミング言語はシーケンス機能チャート言語よ
    り成る請求項7の方法。
  15. 【請求項15】 図形プログラミング言語はシーケンス機能ブロック図言語
    より成る請求項7の方法。
  16. 【請求項16】 図形プログラミング言語ツールはエディターより成り、変
    換はエディター命令を発することにより開始される請求項1の方法。
  17. 【請求項17】 マーク付けフォーマットのコードをコンピュータデータ記
    憶装置から読み出し、読み出したコードをコンピュータディスプレイ上で対応の
    図形フォーマットで表示するステップをさらに含む請求項7の方法。
  18. 【請求項18】 コンピュータディスプレイ装置上にコードを表示するステ
    ップは、コードをブラウザにより表示するステップより成る請求項7の方法。
  19. 【請求項19】 工業用オートメーションシステムの制御プログラムコード
    を図形プログラミング言語ツールを用いて作成し、そのコードを実行時コンピュ
    ータメモリーに内部表示で記憶するためにコンピュータ装置と共に使用するコン
    ピュータプログラム製品であって、 コンピュータプログラム製品はコンピュータにより使用可能なメディアより成
    り、コンピュータにより使用可能なメディアは、 コンピュータメモリーに内部表示で記憶された工業用オートメーション制御プ
    ログラムコードを識別するためのコンピュータにより読み取り可能なプログラム
    コードと、 識別した工業用オートメーション制御プログラムコードを内部表示からマーク
    付け言語フォーマットに変換するためのコンピュータにより読み取り可能なプロ
    グラムコードとより成るコンピュータプログラム製品。
  20. 【請求項20】 コンピュータにより使用可能なメディアはさらに、変換済
    みのマーク付けフォーマットのコードをコンピュータデータ記憶装置に記憶させ
    るためのコンピュータにより読み取り可能なプログラムコードをさらに含む請求
    項19のコンピュータプログラム製品。
  21. 【請求項21】 コンピュータにより使用可能なメディアはさらに、マーク
    付けフォーマットのコードをコンピュータデータ記憶装置から読み出し、マーク
    付けフォーマットのコードをコンピュータメモリー内の内部表示に変換するため
    のコンピュータにより読み取り可能なプログラムコードを含む請求項20のコン
    ピュータプログラム製品。
  22. 【請求項22】 コンピュータにより使用可能なメディアはさらに、マーク
    付けフォーマットのコードをネットワークを介して受信コンピュータ装置へ送信
    させるためのコンピュータにより読み取り可能なプログラムコードを含む請求項
    19のコンピュータプログラム製品。
  23. 【請求項23】 マーク付けフォーマットのコードをコンピュータデータ記
    憶装置から読み出し、読み出したコードをコンピュータディスプレイ上に対応の
    図形フォーマットで表示するためのコンピュータにより読み取り可能なプログラ
    ムコードをさらに含む請求項20のコンピュータプログラム製品。
  24. 【請求項24】 マーク付けフォーマットのコードの表示はブラウザにより
    行われる請求項23のコンピュータプログラム製品。
  25. 【請求項25】 マーク付け言語はXMLである請求項19のコンピュータ
    プログラム製品。
  26. 【請求項26】 図形プログラミングはフローチャート言語でより成る請求
    項19のコンピュータプログラム製品。
  27. 【請求項27】 図形プログラミング言語ははしご形論理言語より成る請求
    項19のコンピュータプログラム製品。
  28. 【請求項28】 図形プログラミング言語は機能ブロック図言語より成る請
    求項19のコンピュータプログラム製品。
  29. 【請求項29】 図形プログラミング言語はシーケンス機能チャート言語よ
    り成る請求項19のコンピュータプログラム製品。
  30. 【請求項30】 図形プログラミング言語はフローチャート言語より成る請
    求項25のコンピュータプログラム製品。
  31. 【請求項31】 図形プログラミング言語ははしご形論理言語より成る請求
    項25のコンピュータプログラム製品。
  32. 【請求項32】 図形プログラミング言語は機能ブロック図言語より成る請
    求項25のコンピュータプログラム製品。
  33. 【請求項33】 図形プログラミング言語はシーケンス機能チャート言語よ
    り成る請求項25のコンピュータプログラム製品。
  34. 【請求項34】 マーク付けフォーマットのコードを図形プログラミング言
    語の内部表示に変換するためのコンピュータにより読み取り可能なプログラムコ
    ードをさらに含む請求項19のコンピュータプログラム製品。
  35. 【請求項35】 コンピュータプログラム製品図形プログラミング言語ツー
    ルはエディターより成り、その変換は図形プログラミング言語エディターのエデ
    ィター命令を発することにより行われる請求項19のコンピュータプログラム製
    品。
  36. 【請求項36】 マーク付け言語でフォーマットした工業用オートメーショ
    ン制御コードの表示より成るデータを記憶させたコンピュータにより読み取り可
    能な記憶メディアより成るコンピュータプログラム製品。
  37. 【請求項37】 マーク付け言語はXMLである請求項36のコンピュータ
    プログラム製品。
  38. 【請求項38】 工業用オートメーション制御システムから遠隔の場所にあ
    るコンピュータ装置に結合された請求項36のコンピュータプログラム製品。
  39. 【請求項39】 コンピュータプログラムコードを記憶させたコンピュータ
    により読み取り可能な記憶メディアより成る、ユーザーによる工業用オートメー
    ション制御プログラムの作成を可能にするコンピュータプログラム製品であって
    、 そのコードは、 ユーザーが、図形要素を用いて、実行時内部表示でメモリーに記憶される工業
    用オートメーション制御コードを作成できるようにするエディターより成る工業
    用オートメーション図形プログラミング言語コードと、 内部表示でメモリーに記憶された工業用オートメーション制御コードを内部表
    示からマーク付け言語フォーマットに変換するためのコンピュータプログラムコ
    ードとより成るコンピュータプログラム製品。
  40. 【請求項40】 工業用オートメーション制御コードをマーク付け言語フォ
    ーマットから内部表示に変換するためのコンピュータプログラムコードをさらに
    含む請求項39のコンピュータプログラム製品。
  41. 【請求項41】 複数のアプリケーション開発者が工業用オートメーション
    制御プログラムデータに関するアプリケーションを作成できるようにするためそ
    の工業用オートメーション制御プログラムデータの論理構造を通信するための方
    法であって、 工業用オートメーション制御プログラムシステムにより作成されたマーク付け
    言語ファイルのコンテンツモデルを定義するスキーマーを作成し、 アプリケーション開発者によりネットワークを介してアクセスできるようにそ
    のスキーマーを提示するステップより成る工業用オートメーション制御プログラ
    ムデータの論理構造の通信方法。
  42. 【請求項42】 スキーマーはXMLスキーマーである請求項41の方法。
  43. 【請求項43】 工業用オートメーション制御プログラムデータはフローチ
    ャートプログラミング命令より成る請求項41の方法。
  44. 【請求項44】 サーバーシステムからそのサーバーシステムが結合された
    ネットワークを介して、ネットワークに結合されたクライアントシステムへ工業
    用オートメーション制御コードを提供する方法であって、 制御コードのマーク付けフォーマットのバージョンにアクセスし、 アクセスしたマーク付けフォーマットの制御コードを、クライアントシステム
    に対応するネットワークアドレスを用い、そのネットワークを介して送信するこ
    とにより、送信したマーク付けフォーマットの制御コードをクライアントシステ
    ムが受信できるようにするためのステップより成る工業用オートメーション制御
    コードの提供方法。
  45. 【請求項45】 クライアントの装置は、受信したマーク付けフォーマット
    の制御コードに応答して、マーク付けフォーマットの制御コードが向けられたオ
    ートメーションに関連するシステムデータをサーバーに送信しており、さらに、
    サーバーシステムは、クライアントシステムからのデータの受信に応答して修正
    された制御コードにアクセスし、修正された制御コードはマーク付けフォーマッ
    トであり、 マーク付けフォーマットの修正済み制御コードを、クライアントシステムに対
    応するネットワークアドレスを用い、ネットワークを介して送信することにより
    、送信した修正済みのマーク付けフォーマットの制御コードをクライアントシス
    テムが受信できるようにするステップをさらに含む請求項44の方法。
  46. 【請求項46】 アクセスしたマーク付けフォーマットの制御コードをネッ
    トワークを介して送信するステップは、電子メールメッセージを送信するステッ
    プより成る請求項45の方法。
  47. 【請求項47】 アクセスしたマーク付けフォーマットの制御コードをネッ
    トワークを介して送信するステップは、そのコードをネットワークを介してハイ
    パーテキスト転送プロトコルで送信するステップより成る請求項45の方法。
  48. 【請求項48】 制御コードのマーク付けフォーマットはXMLより成る請
    求項44の方法。
  49. 【請求項49】 第2のクライアントシステムがネットワークに結合され、
    その方法はさらに、 アクセスしたマーク付けフォーマットの制御コードを、第2のクライアントシ
    ステムに対応するネットワークアドレスを用い、ネットワークを介して送信する
    ことにより、送信されたマーク付けフォーマットの制御コードを第2のクライア
    ントシステムが受信できるようにするステップを含む請求項44の方法。
  50. 【請求項50】 第1のクライアントシステムはマーク付けフォーマットの
    制御コードを第1の内部表示に再変換するように構成され、第2のクライアント
    システムはネットワークに結合され、第2のクライアントシステムは、マーク付
    けフォーマットの制御コードを第2の内部表示に再変換するように構成されてい
    る請求項49の方法。
  51. 【請求項51】 工業用オートメーション制御アプリケーションをプログラ
    ミングする方法であって、 ネットワークに結合されたコンピュータシステムを用意し、 第1のコンピュータシステムを、複数の工業用オートメーションプログラム開
    発者のシステムからネットワークを介してデータを受信するように構成し、 複数の工業用オートメーションプログラム開発者のシステムからマーク付け言
    語フォーマットでデータを受信するステップより成るプログラミング方法。
  52. 【請求項52】 マーク付け言語はXMLである請求項51の方法。
JP2001571198A 2000-03-24 2001-03-23 工業用オートメーションシステムの図形プログラミング言語の記憶及び送信 Pending JP2003529147A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US19214700P 2000-03-24 2000-03-24
US60/192,147 2000-03-24
PCT/US2001/009429 WO2001073546A2 (en) 2000-03-24 2001-03-23 Industrial automation system graphical programming language storage and transmission

Publications (1)

Publication Number Publication Date
JP2003529147A true JP2003529147A (ja) 2003-09-30

Family

ID=22708449

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001571198A Pending JP2003529147A (ja) 2000-03-24 2001-03-23 工業用オートメーションシステムの図形プログラミング言語の記憶及び送信

Country Status (6)

Country Link
US (1) US20020004804A1 (ja)
JP (1) JP2003529147A (ja)
AU (1) AU2001247743A1 (ja)
DE (1) DE10195965T1 (ja)
GB (1) GB2376114A (ja)
WO (1) WO2001073546A2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008287710A (ja) * 2007-04-16 2008-11-27 Nst:Kk 開発制御装置
JP5404969B1 (ja) * 2012-12-26 2014-02-05 三菱電機株式会社 電子マニュアル閲覧装置およびシステム
JP2016095852A (ja) * 2014-11-12 2016-05-26 横河電機株式会社 プロセス制御システムおよび設定システム
JP2016095853A (ja) * 2014-11-12 2016-05-26 横河電機株式会社 プロセス制御システムおよび設定システム
JP2016197440A (ja) * 2009-02-19 2016-11-24 フィッシャー−ローズマウント システムズ,インコーポレイテッド スクリプトを形成する方法および装置

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020007483A1 (en) * 1997-01-29 2002-01-17 Lopez Luis R. Interactive flow visualization, graphical editing and analysis of textual languages
EP1215589A3 (de) * 2000-12-15 2006-05-31 Siemens Aktiengesellschaft Bereitstellung von Projektdaten in einem durch eine standardisierte Meta-Sprache definiertem Format
FR2821192B1 (fr) * 2001-02-19 2003-04-04 Schneider Automation Station de programmation elaborant un programme compacte et equipement d'automatisme utilisant un tel programme
FR2821191B1 (fr) * 2001-02-19 2003-04-04 Schneider Automation Station de programmation elaborant un programme en langage unique et equipement d'automatisme utilisant un tel programme
FR2823578B1 (fr) * 2001-04-17 2003-05-23 Schneider Automation Procede pour visualiser graphiquement une application d'automatisme et terminal informatique pouvant mettre en oeuvre le procede
FI113302B (fi) * 2001-05-25 2004-03-31 Metso Automation Oy Tilannekuvien käyttäminen teollisuusautomaatioprosessin ohjausjärjestelmässä
US7171418B2 (en) * 2001-05-31 2007-01-30 Caterpillar Inc Universal file format for products that allows both parametric and textual searching
US7395122B2 (en) * 2001-07-13 2008-07-01 Siemens Aktiengesellschaft Data capture for electronically delivered automation services
US7603289B2 (en) 2001-07-13 2009-10-13 Siemens Aktiengesellschaft System and method for electronic delivery of content for industrial automation systems
US6975913B2 (en) 2001-07-13 2005-12-13 Siemens Aktiengesellschaft Database system and method for industrial automation services
US8650321B2 (en) * 2001-07-24 2014-02-11 Digi International Inc. Network architecture
US6819960B1 (en) * 2001-08-13 2004-11-16 Rockwell Software Inc. Industrial controller automation interface
US8086664B2 (en) * 2001-09-24 2011-12-27 Siemens Industry, Inc. Method and apparatus for programming programmable controllers and generating configuration data from a centralized server
US20030061349A1 (en) * 2001-09-24 2003-03-27 George Lo Method and system for collaboratively developing programming code for programmable controllers
US20040110490A1 (en) * 2001-12-20 2004-06-10 Steele Jay D. Method and apparatus for providing content to media devices
US7509577B2 (en) 2002-03-08 2009-03-24 Toshiba Corp Oration Method and system for implementing a clipboard
JP2004038876A (ja) 2002-07-08 2004-02-05 Hitachi Ltd プログラム等のデータ形式変換方法及び装置、並びにそのデータ形式変換装置を用いたコントローラ管理システム
DE10253174A1 (de) * 2002-11-14 2004-06-03 Siemens Ag Vorrichtung zur Entwicklung und/oder Konfiguration eines Automatisierungssystems
US7350199B2 (en) * 2003-01-17 2008-03-25 Microsoft Corporation Converting XML code to binary format
US7801702B2 (en) * 2004-02-12 2010-09-21 Lockheed Martin Corporation Enhanced diagnostic fault detection and isolation
US20050240555A1 (en) * 2004-02-12 2005-10-27 Lockheed Martin Corporation Interactive electronic technical manual system integrated with the system under test
US7584420B2 (en) * 2004-02-12 2009-09-01 Lockheed Martin Corporation Graphical authoring and editing of mark-up language sequences
US20050223288A1 (en) * 2004-02-12 2005-10-06 Lockheed Martin Corporation Diagnostic fault detection and isolation
US20060120181A1 (en) * 2004-10-05 2006-06-08 Lockheed Martin Corp. Fault detection and isolation with analysis of built-in-test results
US20060085692A1 (en) * 2004-10-06 2006-04-20 Lockheed Martin Corp. Bus fault detection and isolation
US7376661B2 (en) * 2004-12-03 2008-05-20 Wings Software, Ltd XML-based symbolic language and interpreter
US20080052281A1 (en) * 2006-08-23 2008-02-28 Lockheed Martin Corporation Database insertion and retrieval system and method
US7643907B2 (en) 2005-02-10 2010-01-05 Abb Research Ltd. Method and apparatus for developing a metadata-infused software program for controlling a robot
EP1615125A1 (en) * 2005-04-14 2006-01-11 Agilent Technologies, Inc. Automatic source code generation
EP1734442A1 (en) * 2005-05-19 2006-12-20 Agilent Technologies, Inc. Modular code generation
US7844943B2 (en) 2005-06-20 2010-11-30 The Mathworks, Inc. System and method for providing indicators of textual items having intrinsic executable computational meaning within a graphical language environment
US7427025B2 (en) * 2005-07-08 2008-09-23 Lockheed Marlin Corp. Automated postal voting system and method
US20070083510A1 (en) * 2005-10-07 2007-04-12 Mcardle James M Capturing bibliographic attribution information during cut/copy/paste operations
US20070180365A1 (en) * 2006-01-27 2007-08-02 Ashok Mitter Khosla Automated process and system for converting a flowchart into a speech mark-up language
EP2018611A2 (en) * 2006-05-17 2009-01-28 The Mathworks, Inc. Action languages for unified modeling language model
US20070288885A1 (en) 2006-05-17 2007-12-13 The Mathworks, Inc. Action languages for unified modeling language model
US8418128B2 (en) * 2006-06-29 2013-04-09 Honeywell International Inc. Graphical language compiler system
US10181059B1 (en) 2007-06-19 2019-01-15 The Mathworks, Inc. Modeling a physical component interface in a unified modeling language model
JP4776602B2 (ja) * 2007-09-18 2011-09-21 株式会社日立製作所 コントローラ用のプログラミング装置、コントローラ及びコントローラ管理システム
US8832579B2 (en) * 2008-08-12 2014-09-09 Rockwell Automation Technologies, Inc. System for creation and management of industrial automation and information solutions and services
US8694959B2 (en) * 2008-09-30 2014-04-08 Ics Triplex Isagraf Inc. Multi language editor
US8903520B2 (en) * 2009-04-14 2014-12-02 General Electric Company Method for executing sequential function charts as function blocks in a control system
US8307347B2 (en) * 2009-05-18 2012-11-06 National Instruments Corporation Collecting and analyzing graphical data flow web application results from multiple users
US8689184B2 (en) * 2011-03-30 2014-04-01 The Procter & Gamble Company Apparatus, system, and method for managing industrial software configurations
EP3032363A1 (de) * 2014-12-12 2016-06-15 Siemens Aktiengesellschaft Verfahren zum Betreiben einer Automatisierungseinrichtung
KR102063966B1 (ko) * 2015-10-21 2020-01-09 엘에스산전 주식회사 Plc 명령어 컴파일 최적화 방법
DE102016122324A1 (de) * 2016-11-21 2018-05-24 Weidmüller Interface GmbH & Co. KG Steuerung für eine industrielle Automatisierungsanlage und Verfahren zum Programmieren und Betreiben einer derartigen Steuerung
WO2018147720A1 (en) * 2017-02-08 2018-08-16 BAHRUDDIN, Amir Irman A universal smart machine controller system
EP3376319B1 (en) * 2017-03-14 2021-01-06 CODESYS Holding GmbH Method and system for an automated configuration of an industrial controller
US11048483B2 (en) 2019-09-24 2021-06-29 Rockwell Automation Technologies, Inc. Industrial programming development with an extensible integrated development environment (IDE) platform
US10942710B1 (en) * 2019-09-24 2021-03-09 Rockwell Automation Technologies, Inc. Industrial automation domain-specific language programming paradigm
US11392112B2 (en) 2019-09-26 2022-07-19 Rockwell Automation Technologies, Inc. Virtual design environment
US11733687B2 (en) 2019-09-26 2023-08-22 Rockwell Automation Technologies, Inc. Collaboration tools
US11042362B2 (en) 2019-09-26 2021-06-22 Rockwell Automation Technologies, Inc. Industrial programming development with a trained analytic model
EP3835943A1 (en) * 2019-12-13 2021-06-16 Siemens Aktiengesellschaft Method and system for generating engineering diagrams in an engineering system
CN110989487B (zh) * 2019-12-23 2021-05-18 北京东土科技股份有限公司 工业服务器的plc初始化方法、装置及可读存储介质
US11308447B2 (en) 2020-04-02 2022-04-19 Rockwell Automation Technologies, Inc. Cloud-based collaborative industrial automation design environment
CN113608727B (zh) * 2021-08-04 2023-07-25 网易(杭州)网络有限公司 可视化编程的代码处理方法、装置、系统
CN114201229B (zh) * 2021-11-04 2024-04-05 智新控制系统有限公司 Lin配置代码自动生成方法、系统及计算机可读存储介质

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5392207A (en) * 1993-08-20 1995-02-21 Allen-Bradley Company, Inc. Programmable motion controller with graphical programming aid
GB2292620B (en) * 1994-08-16 1998-04-22 Motorola Israel Ltd Event driven programmer logic controller processor arrangement
US5970243A (en) * 1996-08-27 1999-10-19 Steeplechase Software, Inc. Online programming changes for industrial logic controllers
JPH10161707A (ja) * 1996-11-29 1998-06-19 Sukiyan Technol:Kk Faシステムの制御方法
US6018797A (en) * 1996-12-09 2000-01-25 Allen-Bradley Company, Llc Integrated relay ladder language, reduced instruction set computer
US5842020A (en) * 1997-01-31 1998-11-24 Sun Microsystems, Inc. System, method and article of manufacture for providing dynamic user editing of object oriented components used in an object oriented applet or application
US6141628A (en) * 1997-06-10 2000-10-31 Amot Controls Corporation Programmable logic controller software with embedded class logic and alarm/shutdown functionality
US6802053B1 (en) * 1997-08-18 2004-10-05 National Instruments Corporation Graphical programming system with distributed block diagram execution and front panel display
US6282454B1 (en) * 1997-09-10 2001-08-28 Schneider Automation Inc. Web interface to a programmable controller
US6167406A (en) * 1998-05-08 2000-12-26 Allen-Bradley Company, Llc System, method and article of manufacture for building an enterprise-wide data model
US6108662A (en) * 1998-05-08 2000-08-22 Allen-Bradley Company, Llc System method and article of manufacture for integrated enterprise-wide control
US6832120B1 (en) * 1998-05-15 2004-12-14 Tridium, Inc. System and methods for object-oriented control of diverse electromechanical systems using a computer network
US6323882B1 (en) * 1998-10-26 2001-11-27 Simulation Sciences, Inc. Method and systems for a graphical real time flow task scheduler
CA2255017A1 (en) * 1998-11-30 2000-05-30 Christina P. Lau Method and mechanism for a task oriented xml data model
US20040095237A1 (en) * 1999-01-09 2004-05-20 Chen Kimball C. Electronic message delivery system utilizable in the monitoring and control of remote equipment and method of same
SG92628A1 (en) * 1999-02-13 2002-11-19 Newstakes Inc A method and apparatus for converting video to multiple mark-up-language presentations
US6584507B1 (en) * 1999-03-02 2003-06-24 Cisco Technology, Inc. Linking external applications to a network management system
WO2000058857A2 (en) * 1999-03-30 2000-10-05 Siemens Energy & Automation, Inc. Programmable logic controller method, system and apparatus
US7089530B1 (en) * 1999-05-17 2006-08-08 Invensys Systems, Inc. Process control configuration system with connection validation and configuration
US6615166B1 (en) * 1999-05-27 2003-09-02 Accenture Llp Prioritizing components of a network framework required for implementation of technology
US6634008B1 (en) * 1999-06-20 2003-10-14 Fujitsu Limited Methodology server based integrated circuit design
US6675353B1 (en) * 1999-07-26 2004-01-06 Microsoft Corporation Methods and systems for generating XML documents
US6701486B1 (en) * 1999-07-29 2004-03-02 Grischa Corporation Method, apparatus, and computer program product for automatic page suppression in forms
US6463578B1 (en) * 1999-11-23 2002-10-08 International Business Machines Corporation Systems, methods and computer program products for debugging java server page files using compiled java class file modifications
US6594799B1 (en) * 2000-02-28 2003-07-15 Cadence Design Systems, Inc. Method and system for facilitating electronic circuit and chip design using remotely located resources
US6392557B1 (en) * 2000-09-20 2002-05-21 Kreuter Manufacturing Company, Inc. Programmable logic controller override output board
US6819960B1 (en) * 2001-08-13 2004-11-16 Rockwell Software Inc. Industrial controller automation interface

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008287710A (ja) * 2007-04-16 2008-11-27 Nst:Kk 開発制御装置
JP2016197440A (ja) * 2009-02-19 2016-11-24 フィッシャー−ローズマウント システムズ,インコーポレイテッド スクリプトを形成する方法および装置
JP5404969B1 (ja) * 2012-12-26 2014-02-05 三菱電機株式会社 電子マニュアル閲覧装置およびシステム
CN104871128A (zh) * 2012-12-26 2015-08-26 三菱电机株式会社 电子手册阅览装置及系统
KR101610605B1 (ko) 2012-12-26 2016-04-07 미쓰비시덴키 가부시키가이샤 전자 메뉴얼 열람 장치 및 시스템
US9483569B2 (en) 2012-12-26 2016-11-01 Mitsubishi Electric Corporation Electronic-manual browsing apparatus and system
US10037234B2 (en) 2012-12-26 2018-07-31 Mitsubishi Electric Corporation Electronic-manual browsing apparatus and system
JP2016095852A (ja) * 2014-11-12 2016-05-26 横河電機株式会社 プロセス制御システムおよび設定システム
JP2016095853A (ja) * 2014-11-12 2016-05-26 横河電機株式会社 プロセス制御システムおよび設定システム

Also Published As

Publication number Publication date
GB2376114A (en) 2002-12-04
WO2001073546A3 (en) 2002-06-27
US20020004804A1 (en) 2002-01-10
GB0220987D0 (en) 2002-10-23
WO2001073546A2 (en) 2001-10-04
AU2001247743A1 (en) 2001-10-08
DE10195965T1 (de) 2003-04-03

Similar Documents

Publication Publication Date Title
JP2003529147A (ja) 工業用オートメーションシステムの図形プログラミング言語の記憶及び送信
US7159185B1 (en) Function objects
US7234138B2 (en) Method and computer program for producing a regulator or controller
CN108351636B (zh) 工程设计工具、系统及模块
US6823495B1 (en) Mapping tool graphical user interface
US6349404B1 (en) Object-oriented repository, a system and method for reusing existing host-based application assets for the development of business-centric applications
US20030018661A1 (en) XML smart mapping system and method
US6889360B1 (en) Representing IMS transaction definitions as XML documents
US6950985B2 (en) Specifying DICOM semantic constraints in XML
US20070150241A1 (en) Report generator for a mathematical computing environment
US20040015834A1 (en) Method and apparatus for generating serialization code for representing a model in different type systems
MXPA01012818A (es) Metodo y aparato para crear servicios de red.
US20070168464A1 (en) System for Configuring a Data Exchange and Format Conversion System
GB2359645A (en) Using scripts to generate style and content for XML documents
JP2003288143A (ja) ユーザインタフェースを自動的に生成する方法
US20180052683A1 (en) System design supporting device, system design supporting method, and system design supporting program
CN109460231B (zh) 基于xml的上位机软件实现方法
CN106341257A (zh) 一种自定义日志解析规则并自动解析日志的方法和工具
US8117042B2 (en) Communication and interface support system
KR20040014671A (ko) 제조 실행 시스템에서 객체 데이터를 익스포트하거나임포트하는 시스템 및 방법
EP1883012A1 (en) Interface markup language and method for making application code
Leslie Using Javadoc and XML to produce API reference documentation
Holman What is XSLT
US7437662B1 (en) Representing deltas between XML versions using XSLT
KR20020017669A (ko) Xml 기반 어플리케이션 제공 시스템, 및 xml 기반어플리케이션이 기록된 컴퓨터 판독가능한 기록매체