JP2016224558A - プログラム作成支援装置、制御方法およびプログラム - Google Patents
プログラム作成支援装置、制御方法およびプログラム Download PDFInfo
- Publication number
- JP2016224558A JP2016224558A JP2015107841A JP2015107841A JP2016224558A JP 2016224558 A JP2016224558 A JP 2016224558A JP 2015107841 A JP2015107841 A JP 2015107841A JP 2015107841 A JP2015107841 A JP 2015107841A JP 2016224558 A JP2016224558 A JP 2016224558A
- Authority
- JP
- Japan
- Prior art keywords
- program
- unit
- simulation
- language
- execution
- 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.)
- Granted
Links
Landscapes
- Programmable Controllers (AREA)
Abstract
Description
プログラマブル・ロジック・コントローラで実行されるユーザプログラムを作成するプログラム作成支援装置であって、
グラフィカルプログラミング言語で記述されたユーザプログラムである第1プログラムの実行をシミュレーションする第1シミュレーション部と
高級プログラミング言語で記述されたユーザプログラムである第2プログラムを実行する第2シミュレーション部と、
前記第1プログラムにより設定されるデバイスの状態を記憶するデバイス記憶部と、
前記第1シミュレーション部と前記第2シミュレーション部を管理する管理部と
を有し、
前記管理部は、前記第1シミュレーション部と前記第2シミュレーション部との間で前記デバイスの状態を受け渡すことを特徴とする。
図6は基本ユニット3のCPU10が制御プログラムを実行することで実現する機能を中心に示している。CPU10において第1実行部30は、グラフィカルプログラミング言語で記述されるユーザプログラムである第1プログラムを実行する演算ユニットである。第1実行部30は、たとえば、ラダープログラムを実行する『ラダー実行エンジン』(ASIC等)である。第1プログラムの一例としてラダープログラムを採用するが、他のグラフィカルプログラミング言語で記述されるユーザプログラムであってもよい。第1実行部30は、ラダープログラム(中間コード)43を実行形式のコードに変換する機能を備えていてもよい。第1実行部30の外部にこのような変換器が設けられていてもよい。第2実行部31は、高級プログラミング言語で記述されるユーザプログラムである第2プログラムを実行する演算ユニットである。第2実行部31は、たとえば、C言語プログラムを実行する『C言語実行エンジン』(汎用CPU等)である。第2プログラムの一例としてC言語プログラム44を採用するが、他の高級プログラミング言語で記述されるユーザプログラムであってもよい。なお、CPU10は第1実行部30と第2実行部31に相当する演算部を異なる複数のCPUコアとして備えていてもよいし、一方はCPU10のCPUコアが担当し、他方はASICなどで実装されてもよい。特に、第1実行部30がラダープログラムを実行する際には高速処理が要求されるため、高速処理対応のASICで実装し、第2実行部31が通信処理などを実行する際には高速処理は要求されないため、高機能CPUなどで実装してもよい。この場合、第1実行部30と第2実行部31はユニット内部バス32によって接続され、通信する。
上述したようにPLC2の中には、ラダープログラムを実行する『ラダー実行エンジン』(ASIC等)と、C言語プログラムを実行する『C言語実行エンジン』(汎用CPU等)が設けられている。一方、プログラム作成支援装置1には、1個の『PC用実行エンジン』(汎用CPU等)が設けられうる。本明細書において“シミュレーション”とは、PLC2内の『ラダー実行エンジン』と『C言語実行エンジン』といった2つの実行エンジンの機能を、『PC用実行エンジン』という1つの実行エンジンでシミュレートすることと言ってもよい。
●(読み) value = DeviceApi_Read(3, 100);
この命令は、デバイス種別が“3”に分類されるデバイスのうちデバイス番号“100”番のデバイスの値を読み出してvalueに代入するための命令である。なお、デバイス種別やデバイス番号はデバイスを識別するためのシンボルであり、識別情報である。
●(書き) DeviceApi_Write(5, 200, 123);
この命令は、デバイス種別が“5”に分類されるデバイスのうち、“200”番のデバイスに“123”という値を書き込むための命令である。このようなAPIを利用することで、C言語プログラム44はラダープログラム43のデバイスを読み書きすることが可能となる。上述したようにデバイスの実体はRAMなどの記憶装置25に存在する。管理部57は上記のようなフォーマットで指定されたデバイスへの読み書き命令をC言語シミュレータ54から受信し、指定されたデバイスの論理アドレス(デバイス記憶部53におけるデバイスのアドレス)を、記憶装置25におけるデバイスの物理アドレスに変換してアクセスし、デバイスの実態に対して値を読み書きする。このようなアクセスは代理アクセスと呼ばれてもよい。管理部57は、C言語プログラム44からデバイス記憶部53に代理アクセスする代理アクセス部と、ラダープログラム43からデータ記憶部56に代理アクセスする代理アクセス部とをそれぞれ有していてもよい。これらの代理アクセス部はデータやデバイスの論理アドレスを物理アドレスに変換し、データやデバイスに直接アクセスして情報を読み書きする。
・ラダーシミュレータ51におけるシミュレーションの実行結果
・C言語シミュレータ54におけるC言語プログラム44の実行結果
・引数
・C言語プログラム44を起動するための起動指示
・C言語プログラム44の実行完了と通知するための完了通知
<管理部の動作>
図9は管理部の動作を示すフローチャートである。管理部57は操作部8を通じて統合シミュレーションの開始を指示されると以下のステップを実行する。なお、この指示は、図7を用いて説明したように、シミュレータメニュー74を通じて入力される。
図10はラダー実行部52の動作を示すフローチャートである。S11でラダー実行部52は管理部57によって起動されると、ラダープログラム43を実行する。ラダー実行部52は、ラダープログラム43から一命令ずつ読み出して実行する。
図11はC言語実行部55の動作を示すフローチャートである。S21でC言語実行部55は管理部57によって起動されると、C言語プログラム44を実行する。C言語実行部55は、C言語プログラム44から一命令ずつ読み出して実行する。
一般にPLC2のCPU10とプログラム作成支援装置1のCPU24とではオブジェクトコード(実行コード)のレベルで互換性が無い。そのため、ラダー実行部52やC言語実行部55はそれぞれPLC2のCPU10(第1実行部30や第2実行部31)をエミュレーションするエミュレータが必要となる。つまり、管理部57はC言語プログラム44を実行するためのスレッドやプロセスを生成し、エミュレータ上でC言語プログラム44を実行させる。しかし、エミュレータを介してプログラムを実行すると、プログラムの実行速度が低下する。とりわけ、PLC2ではラダープログラム43やC言語プログラム44が連携しながら高速に実行されるため、これらのシミュレーションも高速に実行される必要がある。そこで、ラダープログラム43やC言語プログラム44をプログラム作成支援装置1のCPU24のネイティブコードに変換し、シミュレーションを実行することで、シミュレーションの高速化を達成する。また、PLC2のCPU10をエミュレーションするエミュレータも省略可能となろう。
図7を用いて説明したように、ラダーシミュレータ51はグラフィカルプログラミング言語で記述されたユーザプログラムである第1プログラムの実行をシミュレーションする第1シミュレーション部の一例である。C言語シミュレータ54は高級プログラミング言語で記述されたユーザプログラムである第2プログラムを実行する第2シミュレーション部の一例である。デバイス記憶部53は第1プログラムにより設定されるデバイスの状態を記憶するデバイス記憶部の一例である。管理部57は第1シミュレーション部と第2シミュレーション部を管理する管理部の一例である。図7ないし図11を用いて説明したように、管理部57は、第1シミュレーション部と第2シミュレーション部との間でデバイスの状態を受け渡す。これにより、第1シミュレーション部と第2シミュレーション部とを動的に連携させることが可能となる。また、ラダープログラムのようなグラフィカルプログラミング言語により記述されるプログラムについてのシミュレータとC言語のような高級プログラミング言語により記述されるプログラムについてのシミュレータとを連携させることで、ユーザのプログラム開発負担を軽減する。従来は、各言語のプログラムについて個別にシミュレーションが実行されていたため、ユーザはスタブを作成したり、データを手入力したりするなど、ユーザのプログラム開発負担が多かった。また、ラダーシミュレータ51とC言語シミュレータ54はそれぞれ独立したアドレス空間内でプログラムを実行するため、相互に、アドレス空間を参照することができなかった。本実施例では、管理部57がラダーシミュレータ51とC言語シミュレータ54との間でデバイスの状態(デバイス値やC言語シンボルなど)を受け渡すため、ラダーシミュレータ51とC言語シミュレータ54が動的に連携することが可能となる。
Claims (14)
- プログラマブル・ロジック・コントローラで実行されるユーザプログラムを作成するプログラム作成支援装置であって、
グラフィカルプログラミング言語で記述されたユーザプログラムである第1プログラムの実行をシミュレーションする第1シミュレーション部と
高級プログラミング言語で記述されたユーザプログラムである第2プログラムを実行する第2シミュレーション部と、
前記第1プログラムにより設定されるデバイスの状態を記憶するデバイス記憶部と、
前記第1シミュレーション部と前記第2シミュレーション部を管理する管理部と
を有し、
前記管理部は、前記第1シミュレーション部と前記第2シミュレーション部との間で前記デバイスの状態を受け渡すことを特徴とするプログラム作成支援装置。 - 前記プログラマブル・ロジック・コントローラが備える前記第1プログラムの実行部をエミュレーションする第1エミュレータを有し、
前記第1シミュレーション部は、前記第1エミュレータを介して前記第1プログラムに記述された命令語を解釈してシミュレーションを行う一方で、
前記第2シミュレーション部は、前記第1エミュレータを介さずに前記第2プログラムに記述された命令語を解釈してシミュレーションを行うことを特徴とする請求項1に記載のプログラム作成支援装置。 - 前記第1シミュレーション部と前記第2シミュレーション部との間でデータ通信を実行するための共通バスをさらに有し、
前記管理部は、前記デバイスの状態を受け渡すためのコマンドを前記共通バスを介して前記第1シミュレーション部と前記第2シミュレーション部とに発行することを特徴とする請求項1または2に記載のプログラム作成支援装置。 - 前記第1シミュレーション部と前記第2シミュレーション部との間でデータを共有するための共有メモリをさらに有し、
前記管理部は、前記共有メモリを介して前記デバイスの状態を受け渡すことを特徴とする請求項1または2に記載のプログラム作成支援装置。 - 前記管理部は、前記第1シミュレーション部の実行結果を前記第2シミュレーション部に受け渡すことを特徴とする請求項1ないし4のいずれか1項に記載のプログラム作成支援装置。
- 前記管理部は、前記第2シミュレーション部の実行結果を前記第1シミュレーション部に受け渡すことを特徴とする請求項1ないし5のいずれか1項に記載のプログラム作成支援装置。
- 前記第2プログラムのソースコードを前記プログラマブル・ロジック・コントローラが備えるCPU用のネイティブコードに変換するコンバータをさらに有し、
前記第2シミュレーション部は、前記プログラマブル・ロジック・コントローラが備える前記CPUをエミュレーションする第2エミュレータを有し、前記第2エミュレータは、前記CPU用のネイティブコードを実行することを特徴とする請求項1ないし6のいずれか1項に記載のプログラム作成支援装置。 - 前記第2プログラムのソースコードを前記プログラム作成支援装置が備えるCPUで直接実行可能なネイティブコードに変換するコンバータをさらに有し、
前記第2シミュレーション部は、前記第2プログラムの前記ネイティブコードを実行することを特徴とする請求項1ないし6のいずれか1項に記載のプログラム作成支援装置。 - 前記第2シミュレーション部は、前記第1シミュレーション部が前記第1プログラムのエンド処理を実行している間に、前記第2プログラムを実行することを特徴とする請求項1ないし8のいずれか1項に記載のプログラム作成支援装置。
- 前記管理部は、前記第1シミュレーション部から前記第2シミュレーション部に引数をコピーすることを特徴とする請求項1ないし9のいずれか1項に記載のプログラム作成支援装置。
- 前記管理部は、前記第1シミュレーション部において実行されている前記第1プログラムにしたがって前記第2シミュレーション部において前記第2プログラムを起動することを特徴とする請求項1ないし10のいずれか1項に記載のプログラム作成支援装置。
- 前記管理部は、前記第2シミュレーション部において前記第2プログラムの実行が完了したことを示す完了通知を前記第1シミュレーション部に伝達することを特徴とする請求項1ないし11のいずれか1項に記載のプログラム作成支援装置。
- プログラマブル・ロジック・コントローラで実行されるユーザプログラムを作成するプログラム作成支援装置の制御方法であって、
グラフィカルプログラミング言語で記述されたユーザプログラムである第1プログラムの実行のシミュレーションと、高級プログラミング言語で記述されたユーザプログラムである第2プログラムの実行とを開始するステップと、
前記第1プログラムにより設定されるデバイスの状態を、前記第1プログラムの実行のシミュレーションと前記第2プログラムの実行との間で受け渡すことで、前記第1プログラムの実行のシミュレーションと前記第2プログラムの実行とを連携させるステップと
を有することを特徴とするプログラム作成支援装置の制御方法。 - プログラマブル・ロジック・コントローラで実行されるユーザプログラムを作成するプログラム作成支援装置において実行されるプログラムであって、
前記プログラム作成支援装置に、
グラフィカルプログラミング言語で記述されたユーザプログラムである第1プログラムの実行のシミュレーションと、高級プログラミング言語で記述されたユーザプログラムである第2プログラムの実行とを開始するステップと、
前記第1プログラムにより設定されるデバイスの状態を、前記第1プログラムの実行のシミュレーションと前記第2プログラムの実行との間で受け渡すことで、前記第1プログラムの実行のシミュレーションと前記第2プログラムの実行とを連携させるステップと
を実行させることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015107841A JP6550269B2 (ja) | 2015-05-27 | 2015-05-27 | プログラム作成支援装置、制御方法およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015107841A JP6550269B2 (ja) | 2015-05-27 | 2015-05-27 | プログラム作成支援装置、制御方法およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016224558A true JP2016224558A (ja) | 2016-12-28 |
JP6550269B2 JP6550269B2 (ja) | 2019-07-24 |
Family
ID=57746590
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015107841A Active JP6550269B2 (ja) | 2015-05-27 | 2015-05-27 | プログラム作成支援装置、制御方法およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6550269B2 (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018220923A1 (ja) * | 2017-05-30 | 2018-12-06 | オムロン株式会社 | プログラム開発支援装置、プログラム開発支援システム、プログラム開発支援方法、および、プログラム開発支援プログラム |
JP2019032789A (ja) * | 2017-08-10 | 2019-02-28 | オムロン株式会社 | 情報処理装置、情報処理方法、および情報処理プログラム |
JP2019032788A (ja) * | 2017-08-10 | 2019-02-28 | オムロン株式会社 | 情報処理装置、情報処理方法、および情報処理プログラム |
JP2019036014A (ja) * | 2017-08-10 | 2019-03-07 | オムロン株式会社 | 情報処理装置、情報処理方法およびプログラム |
JP2021015088A (ja) * | 2019-07-16 | 2021-02-12 | マツダ株式会社 | エンジンの試験方法及び試験装置 |
CN113962063A (zh) * | 2021-09-26 | 2022-01-21 | 长沙理工大学 | 一种Web3D虚拟单片机仿真实验方法及系统 |
WO2022049885A1 (ja) * | 2020-09-01 | 2022-03-10 | 株式会社日立産機システム | 制御装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001282327A (ja) * | 2000-03-31 | 2001-10-12 | Omron Corp | シミュレーションシステム及びシミュレータ並びに管理サーバ及び記録媒体 |
JP2002189507A (ja) * | 2000-12-19 | 2002-07-05 | Omron Corp | コントローラ |
JP2003162304A (ja) * | 2001-11-27 | 2003-06-06 | Mazda Motor Corp | 設備制御のシミュレーション方法及びその装置 |
-
2015
- 2015-05-27 JP JP2015107841A patent/JP6550269B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001282327A (ja) * | 2000-03-31 | 2001-10-12 | Omron Corp | シミュレーションシステム及びシミュレータ並びに管理サーバ及び記録媒体 |
JP2002189507A (ja) * | 2000-12-19 | 2002-07-05 | Omron Corp | コントローラ |
JP2003162304A (ja) * | 2001-11-27 | 2003-06-06 | Mazda Motor Corp | 設備制御のシミュレーション方法及びその装置 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018220923A1 (ja) * | 2017-05-30 | 2018-12-06 | オムロン株式会社 | プログラム開発支援装置、プログラム開発支援システム、プログラム開発支援方法、および、プログラム開発支援プログラム |
CN110506242A (zh) * | 2017-05-30 | 2019-11-26 | 欧姆龙株式会社 | 程序开发支持装置、程序开发支持系统、程序开发支持方法以及程序开发支持程序 |
US11287789B2 (en) | 2017-05-30 | 2022-03-29 | Omron Corporation | Program development support device, program development support system, program development support method, and non-transitory computer-readable recording medium |
JP2019032789A (ja) * | 2017-08-10 | 2019-02-28 | オムロン株式会社 | 情報処理装置、情報処理方法、および情報処理プログラム |
JP2019032788A (ja) * | 2017-08-10 | 2019-02-28 | オムロン株式会社 | 情報処理装置、情報処理方法、および情報処理プログラム |
JP2019036014A (ja) * | 2017-08-10 | 2019-03-07 | オムロン株式会社 | 情報処理装置、情報処理方法およびプログラム |
JP7052250B2 (ja) | 2017-08-10 | 2022-04-12 | オムロン株式会社 | 情報処理装置、情報処理方法、および情報処理プログラム |
JP2021015088A (ja) * | 2019-07-16 | 2021-02-12 | マツダ株式会社 | エンジンの試験方法及び試験装置 |
JP7293929B2 (ja) | 2019-07-16 | 2023-06-20 | マツダ株式会社 | エンジンの試験方法及び試験装置 |
WO2022049885A1 (ja) * | 2020-09-01 | 2022-03-10 | 株式会社日立産機システム | 制御装置 |
CN113962063A (zh) * | 2021-09-26 | 2022-01-21 | 长沙理工大学 | 一种Web3D虚拟单片机仿真实验方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
JP6550269B2 (ja) | 2019-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6550269B2 (ja) | プログラム作成支援装置、制御方法およびプログラム | |
JP5942446B2 (ja) | サポート装置およびサポートプログラム | |
US8793678B2 (en) | Hardware virtualization system | |
JP6289751B2 (ja) | プログラム生成装置、プログラム生成方法及びプログラム生成プログラム | |
Marron et al. | Embedding Scenario-based Modeling in Statecharts. | |
WO2019230321A1 (ja) | サポート装置およびサポートプログラム | |
JP6954256B2 (ja) | エンジニアリング装置、エンジニアリング装置の制御方法及びプログラム | |
JP5808922B2 (ja) | 空調機制御インターフェース装置、空気調和機および空調機制御システム | |
WO2020246097A1 (ja) | サポート装置およびサポートプログラム | |
JP2013242629A (ja) | 制御装置、制御方法および命令セット | |
JP2013084112A (ja) | プログラマブルコントローラシステム、そのプログラミング装置、プログラマブルコントローラ、プログラム、デバッグ方法 | |
JP2016224559A (ja) | プログラム作成支援装置、制御方法およびプログラム | |
JP2014199485A (ja) | 情報処理装置および情報処理プログラム | |
JP6484015B2 (ja) | プログラマブル・ロジック・コントローラおよびその制御方法 | |
JP2009252113A (ja) | 情報処理装置、その制御方法及びコンピュータプログラム | |
US11640153B2 (en) | Control system, support device, and recording medium | |
JP4786164B2 (ja) | プラント監視制御システム | |
JP5079166B1 (ja) | シンボルテーブル生成方法、周辺機器との通信方法およびプログラマブルロジックコントローラ | |
JPH04149658A (ja) | 情報処理装置 | |
JP7234810B2 (ja) | サポート装置およびサポートプログラム | |
KR890008714A (ko) | 시각언어를 사용하는 설계시스템 | |
JP2017079005A (ja) | プログラマブル・ロジック・コントローラ、制御方法、cpuユニットおよび拡張ユニット | |
Rzońca et al. | Interfacing inputs and outputs with IEC 61131-3 control software | |
JP2017091469A (ja) | プログラム連携システム、その制御方法、及びプログラム | |
JP2016153997A (ja) | ソフトウェア開発システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180228 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20181212 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20181217 |
|
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: 20190624 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190701 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6550269 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |