(57)【要約】【課題】シーケンスプログラムを確実かつ容易にシミュレーション可能とすること。【解決手段】シミュレーション対象とするシーケンスプログラムを、各制御工程を実行する各種機器２でブロック化すると共に、各ブロックＢ１〜Ｂ７に実行順番Ｓ０〜Ｓ９を付して結線しかつ各ブロックＢ１〜Ｂ７を制御工程の制御内容に従い関数定義したブロック回路結線図で表すプログラムで構成し、このシーケンスプログラムを表示画面ＤＰ上に表示し、各ブロックＢ１〜Ｂ７の関数にシミュレーション用の変数を渡してシーケンスプログラムのシミュレーションを行う。【選択図】図４
2009080738.tif 000002
【特許請求の範囲】
【請求項１】
シーケンスプログラムをシミュレーションする方法であって、
上記シーケンスプログラムを、各制御工程を実行する機器を関数で定義したブロックで表すと共に、各ブロックに実行順番を付して結線したブロック回路結線図で表し、このブロック回路結線図をパーソナルコンピュータの表示画面上に表示し、各ブロックの関数にシミュレーション用の変数を渡して、シーケンスプログラムのシミュレーションを行う、ことを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シーケンスプログラムをパーソナルコンピュータ等のシーケンスプログラム編集ツールの表示画面やその他の表示画面上でシミュレーションする方法に関するものである。
【背景技術】
【０００２】
プログラマブルコントローラ（ＰＬＣ）は、工場等に設備される制御機械をシーケンスプログラムに従い制御することができる。
【０００３】
従来一般には、ＰＬＣと、このＰＬＣにより制御される１ないし複数の制御機械を含むＰＬＣシステムを構築し、その制御機械のシーケンス制御に必要なシーケンスプログラムをＰＬＣに実装して、実際にシーケンス制御を行うことで、当該シーケンスプログラムのテスト等を実施する。
【０００４】
このようなテストではＰＬＣシステムを実際に構築する必要があり、シーケンスプログラムを実装してテストした結果、所望のシーケンス制御を達成できない場合、シーケンスプログラムのデバッグ等が必要となるなど、再テスト等に時間と手間と費用がかかる。
【０００５】
そこで、シーケンスプログラムをＰＬＣシステムに実際に実装したり、ＰＬＣシステムを実際に構築したりすることなくシーケンス制御のシミュレーションができることが望ましい。
【０００６】
しかし、従来のシーケンスプログラムは、専門技術者により特有のラダー言語で作成されたラダープログラムであり、シーケンスプログラムのシミュレーションを行うことや、シミュレーション実行中に、リアルタイムにシーケンスプログラムの調整等を行うことは難しい。
【０００７】
なお、ラダープログラムをパーソナルコンピュータ画面上に表示し、ラダープログラムのシミュレーションを行うものは幾つか提案されている。
【特許文献１】特開２００５−２９２９１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、シーケンスプログラムのシミュレーションを実機無しでも実機に組み込んだと略等価に確実容易に実施でき、かつ、リアルタイムにシーケンスプログラムをシーケンス制御に合わせ込む等の調整もできるシミュレーション方法を提供するものである。
【課題を解決するための手段】
【０００９】
本発明によるシミュレーション方法は、シーケンスプログラムを、各制御工程を実行する機器を関数で定義したブロックで表すと共に各ブロックに実行順番を付して結線したブロック回路結線図で表し、このブロック回路結線図をパーソナルコンピュータの表示画面上に表示し、各ブロックの関数にシミュレーション用の変数を渡して、シーケンスプログラムのシミュレーションを行うことを特徴とするものである。
【００１０】
本発明のシミュレーション方法では、シミュレーションするべきシーケンスプログラムが実際の機器に対応したブロック回路結線図で表示するプログラムで構成したので、通常一般の技術者にとり実際の機械等を用いた制御工程およびその制御順序を容易に理解することができる。そして各ブロックにはブロック定義関数にシミュレーション用の変数を入力するだけで、簡単に実機に実際の動作制御に即したシーケンスプログラムを実装したと等価にかつリアルタイムにシミュレーションを実行することができ、極めて有用である。
【発明の効果】
【００１１】
本発明によれば、ラダー言語を熟知しなくても、かつ、シーケンスプログラムを実機無しでも、実機に組み込んだと等価な程度にシミュレーションでき、かつ、シーケンスプログラムの調整等をリアルタイムに行うことができるシミュレーションを提供することができる。
【発明を実施するための最良の形態】
【００１２】
以下、添付した図面を参照して、本発明の実施の形態に係るシミュレーション方法を説明する。
【００１３】
図１にＰＬＣとそれに接続される各種機器を示す。ＰＬＣ１には、後述する実施の形態によるシミュレーションが行われたシーケンスプログラムが実装される。ＰＬＣ１はそのシーケンスプログラムに従い各種機器２を制御する。この機器２は、スイッチ２ａ、センサ２ｂ、モータ２ｃ，２ｄ、ロボットハンド２ｅを含み、例えばＦＡ工場内に設置された図示略の制御機械や装置等をシーケンス制御することができるようになっている。
【００１４】
ＰＬＣ１は、ＣＰＵ１ａ、システムプログラムメモリ１ｂ、シーケンスプログラムメモリ１ｃ、機器２の動作を関数で定義する関数定義メモリ１ｄ、インターフェース部１ｅ、１ｆ、等を有する。システムプログラムメモリ１ｂはＰＬＣ１の基本動作のプログラムを格納する。シーケンスプログラムメモリ１ｃはブロック回路結線図方式のシーケンスプログラムを格納する。関数定義メモリ１ｄはブロック回路結線図を構成する各ブロックを後述する関数で定義するデータを格納する。インターフェース部１ｅは機器２との間のインターフェースであり、インターフェース部１ｆは後述するパーソナルコンピュータ３との間のインターフェースである。
【００１５】
図２にＰＬＣ１のシーケンスプログラムメモリ１ｃに格納するシーケンスプログラムの一部を示す。実際のシーケンスプログラムはより複雑であるが、説明の都合でシーケンスプログラムの一部を概略化して示している。このシーケンスプログラムは、後述する表示画面ＤＰ上に表示した場合では回路図的に複数のブロックを実行順番に従い結線したブロック回路結線図方式で表すことができるプログラムである。このシーケンスプログラムメモリ１ｃ内に実際にソフトウエア的に格納するプログラム形態を概念的に示す。このシーケンスプログラムは、各制御工程を実行する複数の機器のうち、代表的にスイッチ２ａ、センサ２ｂ、モータ２ｃ，２ｄ、ロボットハンド２ｄをブロック化している。Ｓ０〜Ｓ９は各ブロックＢ１〜Ｂ１０の実行順番を示す。
【００１６】
ブロックＢ１は、スイッチＳＷ１の種類等を関数で定義したブロックである。ブロックＢ２は、スイッチＳＷ１が操作されたか否かを判定するため、オンオフを関数で定義したブロックである。ブロックＢ３は、センサＡの種類等、センサＡの各種センサ特性を関数定義したブロックである。ブロックＢ４は、センサＡのオンオフを関数定義したブロックである。ブロックＢ５は、モータＡの種類、回転速度、トルク、等の各種電気的、機械的特性を関数定義したブロックである。ブロックＢ６は、ロボットハンドＡの種類、電気的、機械的特性を定義したブロックである。ブロックＢ７は、モータＢの種類、電気的、機械的特性を定義したブロックである。ブロックＢ８〜Ｂ１０は、出力端子を定義したブロックである。
【００１７】
これらシーケンスプログラムは、上記したように、ＰＬＣ１のシーケンスプログラムメモリ１ｃに格納されており、ＣＰＵ１ａがシーケンスプログラムメモリ１ｃに格納されているシーケンスプログラムに従い制御を実行する。ＣＰＵ１ａはそのシーケンスプログラムの実行に際しては、関数定義メモリ１ｄに格納されている定義を参照する。
【００１８】
次に、ＰＬＣ１に上記シーケンスプログラムを実装する前に当該シーケンスプログラムのシミュレーションを行う方法を説明する。このシミュレーションは実機としてのＰＬＣ１を用いて行うものではなく、パーソナルコンピュータ上で行う。
【００１９】
図３に、当該シミュレーションを実施するツールとしてのパーソナルコンピュータの内部の概略構成を示す。パーソナルコンピュータ３は、ＣＰＵ３ａ、システムプログラムメモリ３ｂ、シミュレーション実行プログラムメモリ３ｃ、表示部３ｄ、操作部３ｅ、インターフェース部３ｆ、および関数定義メモリ３ｇ、等を備える。
【００２０】
システムプログラムメモリ３ｂは汎用パーソナルコンピュータに通常一般のシステムプログラム（ＯＳ）を格納する。シミュレーション実行プログラムメモリ３ｃはシーケンスプログラムのシミュレーション実行プログラムを格納する。表示部３ｄはシーケンスプログラムを表示する表示画面を備える。操作部３ｅはキーボードやマウス等からなる。インターフェース部３ｆはシミュレーションしたシーケンスプログラムをＰＬＣ１にダウンロードするためのＰＬＣ１との間のインターフェースである。
【００２１】
ユーザはシーケンスプログラムを上記パーソナルコンピュータ３を用いて作成した後、当該シーケンスプログラムをシミュレーションする。このシーケンスプログラムのシミュレーションにおいては、図４で示すようにＰＬＣ１のシーケンスプログラムを表示部３ｄの表示画面ＤＰ上に表示する。表示画面ＤＰ上に表示されたシーケンスプログラムは、図２に対応する。ブロックＢ１〜Ｂ１０の定義の概略に関しては上記したので説明を略する。ここでは、ブロックＢ５，Ｂ６，Ｂ７の定義を詳細に説明する。
【００２２】
ブロックＢ５は、モータＡにおいての定義ブロックであり、制御関数ＭＯＴＯＲＡ＿ｆ１は左回転、ＭＯＴＯＲＡ＿ｆ２は右回転、ＭＯＴＯＲＡ＿ｆ３は停止、ＭＯＴＯＲＡ＿ｆ４は原点復帰として定義され、この制御関数に代入されるシミュレーション用の変数として速度データを与える変数ＳＰｈｉｇｈは高速回転、ＳＰｍiｄｄｌｅは中速回転、ＳＰｌｏｗは低速回転で定義される。このデータはさらにＳＰｉｎｉは初速度、ＳＰｅｎｄは終速度、ＴＱはトルク、ＰＳは回転位置として定義することができる。ブロックＢ５では、この制御工程で必要とする速度、制御位置、トルクもユーザ操作で定義設定することができる。例えば、ユーザがトルク上限２ｋｇとしているときに、データとして例えばＭＯＴＯＲＡ＿ｆ１（ＴＱ）＝３ｋｇとしてトルク３ｋｇを与えると、ブロックＢ５は実行されない。なお、制御関数は例えばＭＯＴＯＲＡ＿ｆ１（ＳＰ；ＳＰｉｎｉ；ＳＰｅｎｄ；ＴＱ；ＰＳ）＝とし、右辺に速度、初速度、終速度、トルク、回転位置の数値をそれぞれ記述すると、左辺括弧内に速度、初速度、終速度、トルク、回転位置それぞれにシミュレーション用の変数データが代入されるようにしてもよい。さらに、ブロック「モータＡ」にはモータの種類、製造メーカ−、モータの電気的諸特性データも定義することができるようにしてもよい。
【００２３】
ブロックＢ７は、モータＢにおいての定義ブロックであり、制御関数ＭＯＴＯＲＢ＿ｆ１は左回転、ＭＯＴＯＲＢ＿ｆ２は右回転、ＭＯＴＯＲＢ＿ｆ３は停止、ＭＯＴＯＲＢ＿ｆ４は原点復帰として定義され、この制御関数に代入される各シミュレーション用データもモータＡと同様である。
【００２４】
表示画面ＤＰにはブロックＢ５，Ｂ７はマウスの右クロックでシミュレーションウインドウを呼び出し可能とし、このシミュレーションウインドウ上で、シミュレーション用データを入力操作可能としてもよい。
【００２５】
ブロックＢ６の定義を説明する。
【００２６】
ブロックＢ６はロボットハンドＡの定義ブロックであり、このロボットハンドＡの制御関数は、例えばＲＯＢＯＴＨＡ＿ｆ０は、「つかまずに降ろす」、制御関数ＲＯＢＯＴＨＡ＿ｆ１は「つかんで降ろす」、制御関数ＲＯＢＯＴＨＡ＿ｆ２は「つかんで移動する」、制御関数ＲＯＢＯＴＨＡ＿ｆ３は「つかまず移動する」、制御関数ＲＯＢＯＴＨＡ＿ｆ４は「つかんで上昇する」、制御関数ＲＯＢＯＴＨＡ＿ｆ５は「つかまず上昇する」、制御関数ＲＯＢＯＴＨＡ＿ｆ６は「つかまず後退移動して原点復帰する」、等である。なお、制御関数には、始点座標位置、終点座標位置の変数データと、その動作速度の変数データとを与える。例えば制御関数ＲＯＢＯＴＨＡ＿ｆ０であれば、つかまずに降ろしを開始する始点座標位置（ｘ０，ｙ０，ｚ０）、つかまずに降ろす動作を終了する終点座標位置（ｘ１，ｙ１，ｚ１）である。
【００２７】
この制御関数の定義にはロボットハンドＡに装備したセンサやスイッチやモータ等の動作内容が含まれる。
【００２８】
また、ロボットハンドの上昇速度の変数は、例えばＳＰｕｐ、下降速度の変数はＳＰｄｏｗｎ、移動速度の変数はＳＰｍｏｖｅ、である。さらに上昇速度で高移動速度はＳＰｕｐ（ｈｉｇｈ）、中移動速度はＳＰｕｐ（ｍｉｄｄｌｅ）、低移動速度はＳＰｕｐ（ｌｏｗ）、下降速度で高移動速度はＳＰｄｏｗｎ（ｈｉｇｈ）、中移動速度はＳＰｄｏｗｎ（ｍｉｄｄｌｅ）、低移動速度はＳＰｄｏｗｎ（ｌｏｗ）、移動速度で高移動速度はＳＰｍｏｖｅ（ｈｉｇｈ）、中移動速度はＳＰｍｏｖｅ（ｍｉｄｄｌｅ）、低移動速度はＳＰｍｏｖｅ（ｌｏｗ）である。また、前進移動では例えばＳＰｍｏｖｅ＿ｆｏｒｗａｒｄ、後退ではＳＰｍｏｖｅ＿ｂａｃｋｗａｒｄと定義してもよい。
【００２９】
この変数は、制御関数ＲＯＢＯＴＨＡ＿ｆの（）内に記述される。また、上記記号では速度は高速（ｈｉｇｈ）、中速（ｍｉｄｄｌｅ）、低速（ｌｏｗ）の３種類だけであるが、細かく速度を制御する場合では、速度を具体数値で記述可能にしてもよい。
【００３０】
ブロックＢ６も、マウスの右クロックでシミュレーションウインドウを呼び出し可能とし、そのシミュレーションウインドウ上でシミュレーション用データを入力可能としてもよい。
【００３１】
以上説明したように本実施の形態では、パーソナルコンピュータ３の表示画面ＤＰ上に、図４で示すように、シーケンスプログラムを表示し、各ブロックＢ１〜Ｂ１０にシミュレーション用の変数を入力することで、各ブロックＢ１〜Ｂ１０をシミュレーションすることができる。
【００３２】
その結果、実施の形態では、実機を用いなくても、実機を用いたと等価に簡単確実にかつリアルタイムにシミュレーションを実行することができ、極めて有用なシミュレーション方法である。
【図面の簡単な説明】
【００３３】
【図１】図１は実機としてのＰＬＣシステムの構成を示す図である。
【図２】図２は実機に搭載したシーケンスプログラムの一部構成を示す図である。
【図３】図３は本発明のシミュレーション方法を実施するパーソナルコンピュータのブロック回路を示す図である。
【図４】図４はパーソナルコンピュータの表示画面上に表示したシーケンスプログラムの一部を示す図である。
【符号の説明】
【００３４】
１  ＰＬＣ
３  パーソナルコンピュータ
２  機器（スイッチ、センサ、ロボットハンド）
ＤＰ  表示画面
Ｂ１〜Ｂ７  ブロック
【図１】
2009080738.tif 000003
【図２】
2009080738.tif 000004
【図３】
2009080738.tif 000005
【図４】
2009080738.tif 000006