JP4472557B2 - プログラム作成装置 - Google Patents
プログラム作成装置 Download PDFInfo
- Publication number
- JP4472557B2 JP4472557B2 JP2005056117A JP2005056117A JP4472557B2 JP 4472557 B2 JP4472557 B2 JP 4472557B2 JP 2005056117 A JP2005056117 A JP 2005056117A JP 2005056117 A JP2005056117 A JP 2005056117A JP 4472557 B2 JP4472557 B2 JP 4472557B2
- Authority
- JP
- Japan
- Prior art keywords
- action
- information
- job
- activation
- pattern
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000004913 activation Effects 0.000 claims description 93
- 238000004891 communication Methods 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 14
- 238000000034 method Methods 0.000 description 13
- 230000014509 gene expression Effects 0.000 description 8
- 230000001360 synchronised effect Effects 0.000 description 5
- 230000000737 periodic effect Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P80/00—Climate change mitigation technologies for sector-wide applications
- Y02P80/10—Efficient use of energy, e.g. using compressed air or pressurized fluid as energy carrier
- Y02P80/15—On-site combined power, heat or cool generation or distribution, e.g. combined heat and power [CHP] supply
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Programmable Controllers (AREA)
- Stored Programmes (AREA)
Description
また、トリガとアクションの対応付けが単純なため、アクションの実行タイミングや実行時間に関する定義が必要な処理、すなわち、順序処理(あるアクションの処理終了を待って次のアクションを実行する処理。)や並列処理のような、FAで多く使われる高度な処理プログラムを作成することが難しいという問題があった。
さらに、プログラム上でアクションの実行時間を考慮していないと、極度に処理時間の長いアクションが定義できてしまうため、機器の暴走、故障などにより処理が長くなってしまった場合に異常検出が行えないという問題があった。
実施の形態1.
図1は、この発明の実施の形態1によるプログラム作成装置10の構成を示すブロック図である。プログラム作成装置10は、PLCと外部システム20の間のデータ交換を行うプログラムを作成する。プログラム作成装置10は、外部システム20と通信部14を介して接続されている。外部システム20は、例えばデータベース管理システムやビジネスアプリケーションなどであり、通信部14はAPI(Application Program Interface)やソケットなどにより外部システム20と通信を行う。
エンジニアリングツール部11、ジョブ管理部12、PLCデータアクセス部13、および通信部14は、プログラムに従ってコンピュータのプロセッサが行う動作のモジュールを表しており、これらは実際には一体としてプログラム作成装置10のプロセッサを構成する。
エンジニアリングツール部11は、起動パターン定義部111、アクション定義部112、およびジョブ登録部113を備えている。また、ジョブ管理部12は、トリガ生成部121およびジョブ実行部122を備えている。
エンジニアリングデータベース15には、起動パターンテーブル151およびアクションテーブル152が含まれる。また、ランタイムデータベース16には、ジョブテーブル161およびトリガテーブル162が含まれている。
アクションテーブル152には、アクションの内容とアクション実行時に用いる引数の情報を有するアクション情報が格納される。
ジョブテーブル161には、ジョブ実行の起動条件、その起動条件が成立したら起動するすべてのアクション、およびそれらのアクションの起動パターンを有するジョブ情報が格納される。
トリガテーブル162には、起動条件とジョブ情報との関係を示すトリガ情報が格納される。
まず、起動パターン定義部111の動作について説明する。起動パターン定義部111は、起動パターン情報を生成し、起動パターンテーブル151に格納する。起動パターンテーブル151には起動パターン情報を複数格納することができる。
図2は、起動パターン情報の例を示す図である。実施の形態1では、起動パターン情報の記述方法としてW3C(World Wide Web Consortium)により勧告されているXML(eXtensible Markup Language)を使用する。すなわち、起動パターン情報のデータ構造は、開始タグ“<×××>”と終了タグ“</×××>”の入れ子構造によって記述する。
ここでは、起動パターン情報のデータ構造名を「Patterns」とする。起動パターン情報は識別子となる属性「id」と、実行される複数のイベント「Events」を有する。Eventsは識別子となる属性idを持つ。各々のイベントには、後述するジョブ情報において1つのアクションが当てはめられる。
図2の例では、起動パターンidは「Periodical」である。また、要素Intervalにより、3つのEvents(id=1,2,3)が1000msec毎に、合計10回実行されることを示している。このように、この起動パターンは、定期的にイベント列を発生させるパターンになっている。
まず、ステップST201で起動パターンidが指定される。
次に、ステップST202で、1つのEventsを生成し、起動パターン情報に追加する。ステップST203ですべてのEventsの生成が終了したと判断されるまでステップST202を繰り返す。次に、ステップST204で、生成した起動パターン情報を起動パターンテーブル151に登録する。
図4は、アクション情報の例を示す図である。アクション情報も起動パターン情報と同様に、XMLを用いて記述する。
ここでは、アクション情報のデータ構造名を「Actions」とする。アクション情報は識別子となる属性「id」、アクションの起動引数を示す要素「Arguments」、処理の内容を示す要素「Body」を有する。Argumentsは添え字を示す属性「index」と引数の名前を示す属性「name」を持つ。Bodyの内容はスクリプト言語などの既存のプログラム言語を使って記述される。
図4の例では、Actionsの内容をヨーロッパ電子計算機工業会(ECMA)で規格化されたスクリプト言語(ECMA−262、通称Java(登録商標)Script)を使って表記している。ここでは引数を2つ定義し、それぞれ引数名を「計上日」、「投入数」としている。
また、Bodyについては、05行目は「sys031」という名前のホストと接続してデータベース「TestTable」にアクセスすることを示し、06行目は、arguments[0]で引数の1番目の値を連想配列dbにキー「date」として格納することを示し、arguments[1]で引数2番目の値を連想配列dbにキー「value」として格納する。さらに、07行目でdate,valueの属性の値を設定し、08行目でデータベースdbに設定した値を挿入(insert)する。
このように、アクション情報は、処理系に応じたプログラム言語を使って記述することができる。
まず、ステップST501で、アクションのIDが指定される。
次に、ステップST502で引数の数が指定される。続くステップST503で引数の名称、ステップST504で引数のインデックスが指定され、ステップST505で生成した引数データをActionsに追加する。ステップST503〜ステップST505は、ステップST506ですべての引数の生成が終了したと判断されるまで繰り返される。
次に、ステップST507でActionsの内容が指定される。次に、ステップST508で、生成したアクション情報をアクションテーブル152に登録する。
図6は、ジョブ情報の例を示す図である。ジョブ情報もXMLを用いて記述する。
ここでは、ジョブ情報のデータ構造名を「Jobs」とする。ジョブ情報は識別子となる属性id、アクションの起動パターンid「pattern_id」、ジョブ実行の起動条件「Condition」、起動条件が成立した場合に、起動パターンに従って実行するアクション「Actions」を有する。Actionsは識別子となる属性「id」と対応するイベントの識別子「event_id」を持つ。
図6の例では、図2に示した起動パターン「Periodical」が指定されており、各々のActionsのevent_idに指定された値は、起動パターンPeriodical内のEventsのidに対応している。
図7は、ジョブの起動条件としてConditionに定義できる条件式の例を示す図である。01行目は変数AI001.PVが10より大きいことを示す。02行目はシステムがもつ積算時刻(msec)を100で割った余りが0、つまり100msec毎に真になることを示す。03行目は論理演算子「&&」を使って2つの式の論理積をとったことを示している。
まず、ステップST701でジョブのIDが指定される。
次に、ステップST702で起動パターンIDを指定する。ここで指定できる起動パターンのIDは、起動パターンテーブル151に登録されている起動パターンである。次に、ステップST703で、起動パターンテーブル151からステップST702で指定されたIDをもつ起動パターン情報を読み出し、その起動パターン情報に定義されているイベントの数を取得する。
次に、ステップST704でアクションIDを指定する。ここで指定できるアクションIDは、アクションテーブル152に登録されているアクションである。ステップST705において、ステップST704の処理回数を判定し、保持しているイベント数分だけ繰り返したらステップST706に進む。ステップST706で起動条件を指定し、ステップST707で生成したジョブ情報をジョブテーブル161に登録する。
図9は、トリガ情報の例を示す図である。トリガ情報もXMLを用いて記述する。
ここでは、トリガ情報のデータ構造名を「Triggers」とする。トリガ情報はデータを識別する属性「data_id」と、data_idで示されるデータを条件式として使用するジョブを記述した「Targets」を有する。Targetsは、ジョブテーブルに登録されたジョブの識別子job_idを持つ。図9の例では、job_id001,002が、AI001.PVを起動条件式として使用している。
まず、ステップST1001でジョブテーブル161から全てのジョブ情報を読み出す。次に、ステップST1002で読み込んだジョブ情報のうちの1つに記述された起動条件を抽出する。続くステップST1003では、抽出した起動条件に含まれるdata_idを抽出する。
ステップST1004では、取り出したdata_idを属性としてもつトリガ情報がトリガテーブル162内に登録されているか否か判定する。同じdata_idを持つトリガ情報が存在しなければ、ステップST1005で新規にトリガ情報を生成する。ステップST1006では、ステップST1004で検索して取得したトリガ情報、あるいはステップST1005で生成したトリガ情報に、ステップST1002で起動条件を抽出したジョブの識別子job_idを追記する。
ステップST1007では、ステップST1006で更新したトリガ情報をトリガテーブル162に登録する。ステップST1002〜ステップST1007は、ステップST1008で、読み込んだすべてのジョブに対する処理が終了したと判断されるまで繰り返される。
図11は、ジョブ実行部122の動作のフローチャートである。まず、ステップST1101で、トリガテーブル162内のトリガ情報を読み込む。次に、ステップST1102で、読み込んだトリガ情報のうち1つのトリガ情報からdata_idを抽出し、抽出したdata_idに該当するデータの最新値を取得する。このデータとしては、例えば、外部から入力された信号や、タイマのタイムアップやカウンタのカウントアップなど、内部で発生した信号といったものである。
ステップST1103では、ステップST1102でdata_idを抽出したトリガ情報に指定されているjob_idに対応するジョブ情報をすべて読み込む。次に、ステップST1104で、読み込んだジョブ情報のうちの1つについて、ステップST1102で取得したデータの最新値を用いて条件式を評価する。
さらに、ステップST1107で、ステップST1103で読み込んだすべてのジョブ情報に対して処理が終了したと判定されたら、ステップST1108へ進み、ステップST1101で読み込んだすべてのトリガ情報について処理が終了するまで、ステップST1102〜ステップST1107を繰り返す。
ステップST1201で、ジョブ情報内にあるpattern_idに対応する起動パターン情報を取得する。ステップST1202で、取得した起動パターン情報に記述された1つのイベント情報に対応するイベントIDを取得する。ステップST1203で、取得したイベントIDを参照しているアクションIDを取得する。ステップST1204で、取得したアクションIDに対応するアクション情報をアクションテーブル152から読み込み、ステップST1205で、読み込んだアクションを実行する。具体的には、通信部14を介して外部システム20とのデータ交換や、PLCデータアクセス部13を介してPLCのデータにアクセスを行う。ステップST1206において、ステップST1201で読み込んだ起動パターン情報中に処理すべきイベントがなくなるまでステップST1202〜ステップST1205を繰り返す。
実施の形態2では、起動パターン情報に、実行するアクションの起動方法や起動時刻についての情報を記述する。
図12および図15は、アクションの起動方法を指定した起動パターン情報の例である。ここでEventの属性syncは、アクションの起動方法を示しておりtrueの場合は同期起動、falseの場合は非同期起動であることを示す。
図12(パターン名BroadCast)は、3つのイベントを非同期で起動する起動パターンの例を示す図である。また、図13は、起動パターンとしてBroadCastを指定したジョブ情報の例を示す図である。
このように、非同期起動指定のパターンを使うことにより同じ起動条件で複数のアクションを同時に起動することが可能となり、並列処理のプログラムを容易に記述することができる。
図17は、図15に示す起動パターンを用いた場合のアクションの実行タイミングを示したもので、図に示すように、図14に示した非同期の場合と異なり、最初に実行したアクションの終了を待って、次のアクションが起動される。
このように、同期起動指定の起動パターンを使うことにより、順序処理のプログラムを容易に記述することができる。
図20は、図18に示す起動パターンを用いた場合のアクションの実行タイミングを示したもので、図に示すように、起動条件成立後100ミリ秒後にaction_01が、200ミリ秒後にaction_02が、300ミリ秒後にaction_03が起動される。
このように、起動時刻指定の起動パターンを用いることにより、各イベントの起動時刻を指定するプログラムを容易に記述することができる。
実施の形態3では、起動パターン情報に、アクション実行の制限時刻(タイムアウト)情報を記述する。
図21は、タイムアウトを指定した起動パターンの例を示す図である。ここではパターン名をSequeceWithTimeoutとし、3つのイベントが定義されている。タイムアウトの指定は、Eventsの属性「timeout」により指定する。ただしタイムアウトの指定ができるイベントは属性syncがtrueであるイベント、すなわち起動方法が同期方式であるものに限られる。図に示すように、id=1のイベントに150msecのタイムアウトを設定している。
図22は、図21に示す起動パターンを指定したジョブ情報の例を示す図である。action_01にタイムアウトつきのイベントid=1が対応し、action_02、action_03には非同期のイベントid=2、3がそれぞれ対応している。
Claims (3)
- PLCと外部システムとの間のデータ交換を通信部及びPLCデータアクセス部を用いたアクションによってデータ連携を行うプログラムを作成するプログラム作成装置であって、
実行するアクションが複数あった場合の起動の順序を示す起動パターンを定義する起動パターン定義部と、
前記アクションの実行内容をアクション情報として定義するアクション定義部と、
ジョブ実行の起動条件と、当該起動条件が成立した場合に実行するアクションのアクション情報と、当該アクションの起動パターンとを示すジョブ情報を生成するジョブ登録部と、
前記ジョブ情報を前記起動条件毎に分類したトリガ情報を生成するトリガ生成部と、
前記PLCデータアクセス部にアクセスした時点のPLCデータの値が、前記トリガ情報の起動条件を満たしていた場合は、当該起動条件に該当するジョブ情報に基づき、前記起動パターンに従って前記アクションを実行して、前記通信部を介して前記PLCデータを前記外部システムへ出力するジョブ実行部とを備えたプログラム作成装置。 - 起動パターン定義部は、起動パターンとして、アクションの実行タイミングを定義することを特徴とする請求項1記載のプログラム作成装置。
- 起動パターン定義部は、起動パターンとして、アクションの実行の制限時間を定義することを特徴とする請求項1記載のプログラム作成装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005056117A JP4472557B2 (ja) | 2005-03-01 | 2005-03-01 | プログラム作成装置 |
TW094122264A TWI273363B (en) | 2005-03-01 | 2005-07-01 | Program constructing device |
KR1020050081610A KR100654514B1 (ko) | 2005-03-01 | 2005-09-02 | 프로그램 작성 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005056117A JP4472557B2 (ja) | 2005-03-01 | 2005-03-01 | プログラム作成装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006243936A JP2006243936A (ja) | 2006-09-14 |
JP4472557B2 true JP4472557B2 (ja) | 2010-06-02 |
Family
ID=37050314
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005056117A Active JP4472557B2 (ja) | 2005-03-01 | 2005-03-01 | プログラム作成装置 |
Country Status (3)
Country | Link |
---|---|
JP (1) | JP4472557B2 (ja) |
KR (1) | KR100654514B1 (ja) |
TW (1) | TWI273363B (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5512051B1 (ja) | 2013-04-10 | 2014-06-04 | 三菱電機株式会社 | 数値制御装置、情報連携システムおよび情報連携プログラム |
DE112014002981B4 (de) | 2014-04-25 | 2020-03-12 | Mitsubishi Electric Corporation | Informationsverknüpfungs-System |
JP6207763B2 (ja) | 2014-11-19 | 2017-10-04 | 三菱電機株式会社 | 制御装置、制御方法、及びプログラム |
-
2005
- 2005-03-01 JP JP2005056117A patent/JP4472557B2/ja active Active
- 2005-07-01 TW TW094122264A patent/TWI273363B/zh not_active IP Right Cessation
- 2005-09-02 KR KR1020050081610A patent/KR100654514B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
TWI273363B (en) | 2007-02-11 |
KR20060096173A (ko) | 2006-09-08 |
TW200632606A (en) | 2006-09-16 |
KR100654514B1 (ko) | 2006-12-06 |
JP2006243936A (ja) | 2006-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11175643B2 (en) | Rich contextualization of automation data | |
US20100023140A1 (en) | Field device management apparatus and field device management system | |
EP1906275B1 (en) | Natively retaining project documentation in a controller | |
CN102073489A (zh) | 一种调试日志生成方法及装置 | |
JP4472557B2 (ja) | プログラム作成装置 | |
US10678864B2 (en) | Analysis model preparing system, programming apparatus, and analysis model preparing method | |
CN112231197A (zh) | 一种页面测试的方法、装置和存储介质 | |
JP2010015240A (ja) | 検証システム及び検証装置 | |
US9395872B2 (en) | Facilities controlling device, screen displaying method, and recording medium | |
EP3869328A1 (en) | System, device and method for debugging an industrial application | |
US10816600B1 (en) | Protocol analysis and visualization during simulation | |
CN115509510A (zh) | 基于lidl的可视化人机交互软件建模方法及装置 | |
JP5379911B2 (ja) | 動作検証装置、動作検証方法および動作検証プログラム | |
JP2007034825A (ja) | デバッグ装置 | |
WO2019216191A1 (ja) | 制御システム、サポート装置、サポートプログラム | |
CN111971629B (zh) | 控制***、支持装置及记录媒体 | |
JPWO2007086113A1 (ja) | プラント制御システム | |
JP2003303100A (ja) | 情報処理システムおよび情報処理システム構築方法並びにこれに用いるプログラム | |
WO2019240743A1 (en) | A method and system for semantic integration approach for field device life cycle management | |
JPH08115107A (ja) | 機器制御プログラム生成方式 | |
WO2017149737A1 (ja) | 高位合成装置、高位合成方法及び高位合成プログラム | |
CN102782657B (zh) | 动作检验装置及动作检验方法 | |
JP2005165825A (ja) | トレース情報記録装置 | |
WO2022085218A1 (ja) | 情報処理システムおよびデータベースの構築方法 | |
WO2021065033A1 (ja) | プログラム開発装置およびプログラム開発装置を実現するためのプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061226 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20071010 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20080723 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090526 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090528 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090724 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090908 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091021 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091222 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100127 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100223 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100303 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130312 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4472557 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130312 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140312 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |