JP2009080738A - シーケンスプログラムのシミュレーション方法 - Google Patents
シーケンスプログラムのシミュレーション方法 Download PDFInfo
- Publication number
- JP2009080738A JP2009080738A JP2007250844A JP2007250844A JP2009080738A JP 2009080738 A JP2009080738 A JP 2009080738A JP 2007250844 A JP2007250844 A JP 2007250844A JP 2007250844 A JP2007250844 A JP 2007250844A JP 2009080738 A JP2009080738 A JP 2009080738A
- Authority
- JP
- Japan
- Prior art keywords
- sequence program
- block
- simulation
- program
- speed
- 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
Links
Images
Landscapes
- Programmable Controllers (AREA)
Abstract
【課題】シーケンスプログラムを確実かつ容易にシミュレーション可能とすること。
【解決手段】シミュレーション対象とするシーケンスプログラムを、各制御工程を実行する各種機器2でブロック化すると共に、各ブロックB1〜B7に実行順番S0〜S9を付して結線しかつ各ブロックB1〜B7を制御工程の制御内容に従い関数定義したブロック回路結線図で表すプログラムで構成し、このシーケンスプログラムを表示画面DP上に表示し、各ブロックB1〜B7の関数にシミュレーション用の変数を渡してシーケンスプログラムのシミュレーションを行う。
【選択図】図4
【解決手段】シミュレーション対象とするシーケンスプログラムを、各制御工程を実行する各種機器2でブロック化すると共に、各ブロックB1〜B7に実行順番S0〜S9を付して結線しかつ各ブロックB1〜B7を制御工程の制御内容に従い関数定義したブロック回路結線図で表すプログラムで構成し、このシーケンスプログラムを表示画面DP上に表示し、各ブロックB1〜B7の関数にシミュレーション用の変数を渡してシーケンスプログラムのシミュレーションを行う。
【選択図】図4
Description
本発明は、シーケンスプログラムをパーソナルコンピュータ等のシーケンスプログラム編集ツールの表示画面やその他の表示画面上でシミュレーションする方法に関するものである。
プログラマブルコントローラ(PLC)は、工場等に設備される制御機械をシーケンスプログラムに従い制御することができる。
従来一般には、PLCと、このPLCにより制御される1ないし複数の制御機械を含むPLCシステムを構築し、その制御機械のシーケンス制御に必要なシーケンスプログラムをPLCに実装して、実際にシーケンス制御を行うことで、当該シーケンスプログラムのテスト等を実施する。
このようなテストではPLCシステムを実際に構築する必要があり、シーケンスプログラムを実装してテストした結果、所望のシーケンス制御を達成できない場合、シーケンスプログラムのデバッグ等が必要となるなど、再テスト等に時間と手間と費用がかかる。
そこで、シーケンスプログラムをPLCシステムに実際に実装したり、PLCシステムを実際に構築したりすることなくシーケンス制御のシミュレーションができることが望ましい。
しかし、従来のシーケンスプログラムは、専門技術者により特有のラダー言語で作成されたラダープログラムであり、シーケンスプログラムのシミュレーションを行うことや、シミュレーション実行中に、リアルタイムにシーケンスプログラムの調整等を行うことは難しい。
なお、ラダープログラムをパーソナルコンピュータ画面上に表示し、ラダープログラムのシミュレーションを行うものは幾つか提案されている。
特開2005−292912号公報
本発明は、シーケンスプログラムのシミュレーションを実機無しでも実機に組み込んだと略等価に確実容易に実施でき、かつ、リアルタイムにシーケンスプログラムをシーケンス制御に合わせ込む等の調整もできるシミュレーション方法を提供するものである。
本発明によるシミュレーション方法は、シーケンスプログラムを、各制御工程を実行する機器を関数で定義したブロックで表すと共に各ブロックに実行順番を付して結線したブロック回路結線図で表し、このブロック回路結線図をパーソナルコンピュータの表示画面上に表示し、各ブロックの関数にシミュレーション用の変数を渡して、シーケンスプログラムのシミュレーションを行うことを特徴とするものである。
本発明のシミュレーション方法では、シミュレーションするべきシーケンスプログラムが実際の機器に対応したブロック回路結線図で表示するプログラムで構成したので、通常一般の技術者にとり実際の機械等を用いた制御工程およびその制御順序を容易に理解することができる。そして各ブロックにはブロック定義関数にシミュレーション用の変数を入力するだけで、簡単に実機に実際の動作制御に即したシーケンスプログラムを実装したと等価にかつリアルタイムにシミュレーションを実行することができ、極めて有用である。
本発明によれば、ラダー言語を熟知しなくても、かつ、シーケンスプログラムを実機無しでも、実機に組み込んだと等価な程度にシミュレーションでき、かつ、シーケンスプログラムの調整等をリアルタイムに行うことができるシミュレーションを提供することができる。
以下、添付した図面を参照して、本発明の実施の形態に係るシミュレーション方法を説明する。
図1にPLCとそれに接続される各種機器を示す。PLC1には、後述する実施の形態によるシミュレーションが行われたシーケンスプログラムが実装される。PLC1はそのシーケンスプログラムに従い各種機器2を制御する。この機器2は、スイッチ2a、センサ2b、モータ2c,2d、ロボットハンド2eを含み、例えばFA工場内に設置された図示略の制御機械や装置等をシーケンス制御することができるようになっている。
PLC1は、CPU1a、システムプログラムメモリ1b、シーケンスプログラムメモリ1c、機器2の動作を関数で定義する関数定義メモリ1d、インターフェース部1e、1f、等を有する。システムプログラムメモリ1bはPLC1の基本動作のプログラムを格納する。シーケンスプログラムメモリ1cはブロック回路結線図方式のシーケンスプログラムを格納する。関数定義メモリ1dはブロック回路結線図を構成する各ブロックを後述する関数で定義するデータを格納する。インターフェース部1eは機器2との間のインターフェースであり、インターフェース部1fは後述するパーソナルコンピュータ3との間のインターフェースである。
図2にPLC1のシーケンスプログラムメモリ1cに格納するシーケンスプログラムの一部を示す。実際のシーケンスプログラムはより複雑であるが、説明の都合でシーケンスプログラムの一部を概略化して示している。このシーケンスプログラムは、後述する表示画面DP上に表示した場合では回路図的に複数のブロックを実行順番に従い結線したブロック回路結線図方式で表すことができるプログラムである。このシーケンスプログラムメモリ1c内に実際にソフトウエア的に格納するプログラム形態を概念的に示す。このシーケンスプログラムは、各制御工程を実行する複数の機器のうち、代表的にスイッチ2a、センサ2b、モータ2c,2d、ロボットハンド2dをブロック化している。S0〜S9は各ブロックB1〜B10の実行順番を示す。
ブロックB1は、スイッチSW1の種類等を関数で定義したブロックである。ブロックB2は、スイッチSW1が操作されたか否かを判定するため、オンオフを関数で定義したブロックである。ブロックB3は、センサAの種類等、センサAの各種センサ特性を関数定義したブロックである。ブロックB4は、センサAのオンオフを関数定義したブロックである。ブロックB5は、モータAの種類、回転速度、トルク、等の各種電気的、機械的特性を関数定義したブロックである。ブロックB6は、ロボットハンドAの種類、電気的、機械的特性を定義したブロックである。ブロックB7は、モータBの種類、電気的、機械的特性を定義したブロックである。ブロックB8〜B10は、出力端子を定義したブロックである。
これらシーケンスプログラムは、上記したように、PLC1のシーケンスプログラムメモリ1cに格納されており、CPU1aがシーケンスプログラムメモリ1cに格納されているシーケンスプログラムに従い制御を実行する。CPU1aはそのシーケンスプログラムの実行に際しては、関数定義メモリ1dに格納されている定義を参照する。
次に、PLC1に上記シーケンスプログラムを実装する前に当該シーケンスプログラムのシミュレーションを行う方法を説明する。このシミュレーションは実機としてのPLC1を用いて行うものではなく、パーソナルコンピュータ上で行う。
図3に、当該シミュレーションを実施するツールとしてのパーソナルコンピュータの内部の概略構成を示す。パーソナルコンピュータ3は、CPU3a、システムプログラムメモリ3b、シミュレーション実行プログラムメモリ3c、表示部3d、操作部3e、インターフェース部3f、および関数定義メモリ3g、等を備える。
システムプログラムメモリ3bは汎用パーソナルコンピュータに通常一般のシステムプログラム(OS)を格納する。シミュレーション実行プログラムメモリ3cはシーケンスプログラムのシミュレーション実行プログラムを格納する。表示部3dはシーケンスプログラムを表示する表示画面を備える。操作部3eはキーボードやマウス等からなる。インターフェース部3fはシミュレーションしたシーケンスプログラムをPLC1にダウンロードするためのPLC1との間のインターフェースである。
ユーザはシーケンスプログラムを上記パーソナルコンピュータ3を用いて作成した後、当該シーケンスプログラムをシミュレーションする。このシーケンスプログラムのシミュレーションにおいては、図4で示すようにPLC1のシーケンスプログラムを表示部3dの表示画面DP上に表示する。表示画面DP上に表示されたシーケンスプログラムは、図2に対応する。ブロックB1〜B10の定義の概略に関しては上記したので説明を略する。ここでは、ブロックB5,B6,B7の定義を詳細に説明する。
ブロックB5は、モータAにおいての定義ブロックであり、制御関数MOTORA_f1は左回転、MOTORA_f2は右回転、MOTORA_f3は停止、MOTORA_f4は原点復帰として定義され、この制御関数に代入されるシミュレーション用の変数として速度データを与える変数SPhighは高速回転、SPmiddleは中速回転、SPlowは低速回転で定義される。このデータはさらにSPiniは初速度、SPendは終速度、TQはトルク、PSは回転位置として定義することができる。ブロックB5では、この制御工程で必要とする速度、制御位置、トルクもユーザ操作で定義設定することができる。例えば、ユーザがトルク上限2kgとしているときに、データとして例えばMOTORA_f1(TQ)=3kgとしてトルク3kgを与えると、ブロックB5は実行されない。なお、制御関数は例えばMOTORA_f1(SP;SPini;SPend;TQ;PS)=とし、右辺に速度、初速度、終速度、トルク、回転位置の数値をそれぞれ記述すると、左辺括弧内に速度、初速度、終速度、トルク、回転位置それぞれにシミュレーション用の変数データが代入されるようにしてもよい。さらに、ブロック「モータA」にはモータの種類、製造メーカ−、モータの電気的諸特性データも定義することができるようにしてもよい。
ブロックB7は、モータBにおいての定義ブロックであり、制御関数MOTORB_f1は左回転、MOTORB_f2は右回転、MOTORB_f3は停止、MOTORB_f4は原点復帰として定義され、この制御関数に代入される各シミュレーション用データもモータAと同様である。
表示画面DPにはブロックB5,B7はマウスの右クロックでシミュレーションウインドウを呼び出し可能とし、このシミュレーションウインドウ上で、シミュレーション用データを入力操作可能としてもよい。
ブロックB6の定義を説明する。
ブロックB6はロボットハンドAの定義ブロックであり、このロボットハンドAの制御関数は、例えばROBOTHA_f0は、「つかまずに降ろす」、制御関数ROBOTHA_f1は「つかんで降ろす」、制御関数ROBOTHA_f2は「つかんで移動する」、制御関数ROBOTHA_f3は「つかまず移動する」、制御関数ROBOTHA_f4は「つかんで上昇する」、制御関数ROBOTHA_f5は「つかまず上昇する」、制御関数ROBOTHA_f6は「つかまず後退移動して原点復帰する」、等である。なお、制御関数には、始点座標位置、終点座標位置の変数データと、その動作速度の変数データとを与える。例えば制御関数ROBOTHA_f0であれば、つかまずに降ろしを開始する始点座標位置(x0,y0,z0)、つかまずに降ろす動作を終了する終点座標位置(x1,y1,z1)である。
この制御関数の定義にはロボットハンドAに装備したセンサやスイッチやモータ等の動作内容が含まれる。
また、ロボットハンドの上昇速度の変数は、例えばSPup、下降速度の変数はSPdown、移動速度の変数はSPmove、である。さらに上昇速度で高移動速度はSPup(high)、中移動速度はSPup(middle)、低移動速度はSPup(low)、下降速度で高移動速度はSPdown(high)、中移動速度はSPdown(middle)、低移動速度はSPdown(low)、移動速度で高移動速度はSPmove(high)、中移動速度はSPmove(middle)、低移動速度はSPmove(low)である。また、前進移動では例えばSPmove_forward、後退ではSPmove_backwardと定義してもよい。
この変数は、制御関数ROBOTHA_fの()内に記述される。また、上記記号では速度は高速(high)、中速(middle)、低速(low)の3種類だけであるが、細かく速度を制御する場合では、速度を具体数値で記述可能にしてもよい。
ブロックB6も、マウスの右クロックでシミュレーションウインドウを呼び出し可能とし、そのシミュレーションウインドウ上でシミュレーション用データを入力可能としてもよい。
以上説明したように本実施の形態では、パーソナルコンピュータ3の表示画面DP上に、図4で示すように、シーケンスプログラムを表示し、各ブロックB1〜B10にシミュレーション用の変数を入力することで、各ブロックB1〜B10をシミュレーションすることができる。
その結果、実施の形態では、実機を用いなくても、実機を用いたと等価に簡単確実にかつリアルタイムにシミュレーションを実行することができ、極めて有用なシミュレーション方法である。
1 PLC
3 パーソナルコンピュータ
2 機器(スイッチ、センサ、ロボットハンド)
DP 表示画面
B1〜B7 ブロック
3 パーソナルコンピュータ
2 機器(スイッチ、センサ、ロボットハンド)
DP 表示画面
B1〜B7 ブロック
Claims (1)
- シーケンスプログラムをシミュレーションする方法であって、
上記シーケンスプログラムを、各制御工程を実行する機器を関数で定義したブロックで表すと共に、各ブロックに実行順番を付して結線したブロック回路結線図で表し、このブロック回路結線図をパーソナルコンピュータの表示画面上に表示し、各ブロックの関数にシミュレーション用の変数を渡して、シーケンスプログラムのシミュレーションを行う、ことを特徴とする方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007250844A JP2009080738A (ja) | 2007-09-27 | 2007-09-27 | シーケンスプログラムのシミュレーション方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007250844A JP2009080738A (ja) | 2007-09-27 | 2007-09-27 | シーケンスプログラムのシミュレーション方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009080738A true JP2009080738A (ja) | 2009-04-16 |
Family
ID=40655426
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007250844A Pending JP2009080738A (ja) | 2007-09-27 | 2007-09-27 | シーケンスプログラムのシミュレーション方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009080738A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113597584A (zh) * | 2019-03-25 | 2021-11-02 | 三菱电机株式会社 | 显示辅助程序、存储有该程序的计算机可读存储介质、显示辅助方法及显示辅助系统 |
WO2024135231A1 (ja) * | 2022-12-22 | 2024-06-27 | オムロン株式会社 | プログラム作成支援装置、プログラム作成支援装置の制御方法、およびプログラム作成支援装置の制御プログラム |
-
2007
- 2007-09-27 JP JP2007250844A patent/JP2009080738A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113597584A (zh) * | 2019-03-25 | 2021-11-02 | 三菱电机株式会社 | 显示辅助程序、存储有该程序的计算机可读存储介质、显示辅助方法及显示辅助系统 |
CN113597584B (zh) * | 2019-03-25 | 2022-10-28 | 三菱电机株式会社 | 显示辅助程序、存储有该程序的计算机可读存储介质、显示辅助方法及显示辅助系统 |
WO2024135231A1 (ja) * | 2022-12-22 | 2024-06-27 | オムロン株式会社 | プログラム作成支援装置、プログラム作成支援装置の制御方法、およびプログラム作成支援装置の制御プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7174225B2 (en) | Method and system for simulating processing of a workpiece with a machine tool | |
US10761513B2 (en) | Information processing device, information processing method, and non-transitory computer-readable recording medium | |
US10814486B2 (en) | Information processing device, information processing method, and non-transitory computer-readable recording medium | |
WO2013136918A9 (ja) | 情報処理装置、シミュレーション方法、およびプログラム | |
CN111819507B (zh) | 信息处理系统、信息处理方法及计算机可读取记录媒体 | |
CN104321706B (zh) | 模拟装置以及模拟方法 | |
JP5891891B2 (ja) | 情報処理装置、情報処理方法、およびプログラム | |
JP5785501B2 (ja) | ラダープログラム作成装置 | |
JP6129444B1 (ja) | エンジニアリングツール | |
JP2009080738A (ja) | シーケンスプログラムのシミュレーション方法 | |
JP5272447B2 (ja) | 数値制御機械の動作シミュレータ | |
JP2022066906A5 (ja) | ||
JP6529386B2 (ja) | 設備動作解析装置 | |
JP5296419B2 (ja) | ラダープログラムの変更方法等 | |
JP2009048396A (ja) | モータモーション用シミュレータ | |
JP2009080737A (ja) | シーケンスプログラム表示方法 | |
JP2010081668A (ja) | モータ制御装置 | |
JP2009244952A (ja) | モーションコントローラ、シミュレーション方法及びシミュレーションプログラム | |
JP3325397B2 (ja) | プログラマブルコントローラで実行されるプログラムのシミュレーションシステム | |
JP2023151876A (ja) | 制御装置、制御方法、開発支援装置、及びプログラム | |
JP2008287710A (ja) | 開発制御装置 | |
JP2009080739A (ja) | シーケンスプログラムのシミュレーション高速化方法 | |
JP2005301334A (ja) | モーションコントローラ | |
JP2008059488A (ja) | シーケンス処理のモニタ装置 | |
JP2018055210A (ja) | 表示画面作成装置、表示画面作成方法、および、表示画面作成プログラム |