JP6626313B2 - プログラマブル・ロジック・コントローラ、拡張ユニット、制御方法、プログラム作成支援装置、プログラム作成支援方法およびプログラム - Google Patents

プログラマブル・ロジック・コントローラ、拡張ユニット、制御方法、プログラム作成支援装置、プログラム作成支援方法およびプログラム Download PDF

Info

Publication number
JP6626313B2
JP6626313B2 JP2015207472A JP2015207472A JP6626313B2 JP 6626313 B2 JP6626313 B2 JP 6626313B2 JP 2015207472 A JP2015207472 A JP 2015207472A JP 2015207472 A JP2015207472 A JP 2015207472A JP 6626313 B2 JP6626313 B2 JP 6626313B2
Authority
JP
Japan
Prior art keywords
unit
extension
memory
buffer
value
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
Application number
JP2015207472A
Other languages
English (en)
Other versions
JP2017079006A (ja
Inventor
知伸 北川
知伸 北川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Keyence Corp
Original Assignee
Keyence Corp
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 Keyence Corp filed Critical Keyence Corp
Priority to JP2015207472A priority Critical patent/JP6626313B2/ja
Publication of JP2017079006A publication Critical patent/JP2017079006A/ja
Application granted granted Critical
Publication of JP6626313B2 publication Critical patent/JP6626313B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Description

本発明は、プログラマブル・ロジック・コントローラ、拡張ユニット、制御方法、プログラム作成支援装置、プログラム作成支援方法およびプログラムに関する。
プログラマブル・ロジック・コントローラ(以下、PLCと称す)は、FA(Factory Automation)制御システムにおいて広く使用されているシーケンス制御装置であり、ラダープログラムと呼ばれる専用プログラムにしたがって動作する。操作者(オペレータ)は、リミットスイッチ、センサ、温度計などの入力機器や、電磁開閉器、ソレノイド、モータ、アクチュエータ、シリンダ、リレー、位置決めシステムなどの出力機器をPLCに接続し、ラダープログラムによってこれらの被制御機器を制御する。
オペレータ(ユーザ)は、パーソナルコンピュータ(以下、PCと称す)などのプログラム作成支援装置上でラダープログラムを作成し、PCとPLCを接続し、ラダープログラムをPLCの記憶部に記憶させる。PLCの記憶部にはデバイス情報等の各種データも記憶される。デバイス情報とは、入力機器からの入力状態、出力機器への出力状態およびラダープログラム上で設定される内部リレー(補助リレー)、タイマー、カウンタ、データメモリ等の状態を示す情報である。デバイスとは、デバイス情報を格納するために設けられたメモリ上の領域を指す名称である。PLCにプログラム作成支援装置を接続することで、PLCが保持しているデバイス情報(デバイスの値)をプログラム作成支援装置に表示させ、視認することもできる。
ところで、製品の工場において、カム機構やリンク機構のような機構を使用してある動きに連動して別の動きを制御する制御が存在した(機械的な同期制御)。旧来、同期制御は実際にカム機構やリンク機構、ギア等を組みあわせて実現されていた。このような実現方法では、例えばベルトコンベヤーの速度に回転カッターを同期させる場合にその速度の比率を変更するために実際に機構部品(ギア等)を交換して実現していた。機構部品の交換作業は大変面倒である。そこで、PLCを用いて減速ギアを電気的に実現する手法が考え出された。たとえば、PLCは、モータの回転数を可変させることで、減速ギアのギア比を変更したことと同様の効果を実現することができる。このように、PLCによって機構部品の動作を模擬することが可能になるものの、PLCによって模擬される機構部品が何であるかをPLCのオペレータに理解しやすくすることも重要である。PLCは一般に基本ユニット(CPUユニット)と拡張ユニットにより構成される。特許文献1には、拡張ユニットに接続された外部機器の軸の動作を同期制御するために、プログラム作成支援装置において入力軸に対する出力軸の動作を演算するための各種のパラメータを設定する方法が提案されている。また、特許文献1には、入力軸に対する出力軸の動作を視覚的に理解しやすくするために、可変ギアの画像やカムの画像を表示して各パラメータの決定を補助することも提案されている。
特開2010−102475号公報
特許文献1によれば、主軸から出力軸までの間に関与する複数の仮想的な機構部品の画像を表示することで、各機構部品ごとのパラメータをオペレータに入力させやすくしている。たとえば、可変ギアの画像を表示することで、入力軸と出力軸とのギア比などのパラメータを入力しやすくしている。モーションユニットなどの拡張ユニットは、設定されたパラメータにしたがって機構部品の動作を模擬した演算を実行することで外部機器を制御する。これにより、従来はカムやリンクなどの機構部品の機械的な連携により実現されていた動作を電気的に実現することが可能となっている。
ところで、同期制御の入力軸としては、実在するカウンタや仮想軸が使用されることが一般的であった。良く知られているようにカウンタはセンサやエンコーダの出力するパルスなどの数をカウントする。同期制御では入力軸に対する出力軸の応答を精度よく求める必要があるため、基本ユニットや拡張ユニットが保持しているデバイスメモリのデバイス値は同期制御の入力軸としては使用が困難であった。これは、基本ユニットの時刻と拡張ユニットの時刻が同期していないため、デバイス値は時間的に信頼性が低いからである。そこで、本発明は、基本ユニットや拡張ユニットが保持しているデバイスを同期制御の入力軸として利用できるようにすることを目的とする。
本発明は、たとえば、
CPUユニットとつ以上の拡張ユニットとを有し、同期制御を実行するプログラマブル・ロジック・コントローラであって、
前記CPUユニットは、
時刻を管理するためのCPUユニットタイマーと、
前記CPUユニットタイマーにより計時されている時刻を基準として前記プログラマブル・ロジック・コントローラの動作状態を示すデバイス値が格納される領域を有するデバイスメモリと、
定められた周期にしたがってユーザプログラムを繰り返し実行し、前記デバイスメモリに対してデバイス値書き込みを実行しおよび、前記二つ以上の拡張ユニットが有しているバッファメモリに対してバッファ値書き込みを実行するプログラム実行部と、
を有し、
前記二つ以上の拡張ユニットは、第一拡張ユニットと第二拡張ユニットとを有し、それぞれの拡張ユニットは、
前記CPUユニットタイマーと時刻同期された拡張ユニットタイマーと、
前記拡張ユニットタイマーにより計時されている時刻を基準として前記プログラマブル・ロジック・コントローラの動作状態を示すバッファ値を格納するバッファメモリと、
前記バッファメモリに書き込まれたバッファ値を用いて演算を実行る演算部と
を有し、
前記プログラマブル・ロジック・コントローラは、
前記第一拡張ユニットにおける前記バッファメモリに格納された第一のバッファ値を、前記デバイスメモリにコピーする入力リフレッシュ動作と、
前記デバイスメモリにコピーされた前記第一のバッファ値と同じデータを、前記第二拡張ユニットにおける前記バッファメモリに格納する出力リフレッシュ動作と、
を有するユニット同期リフレッシュを実行し、
前記第二拡張ユニットの前記演算部は、
前記ユニット同期リフレッシュにより前記バッファメモリに書き込まれたバッファ値を同期制御の入力軸として演算を実行して前記同期制御の出力軸を決定することを特徴とするプログラマブル・ロジック・コントローラを提供する。
本発明によれば、基本ユニットや拡張ユニットが保持しているデバイスを同期制御の入力軸として利用できるようになる。
PLCシステムの一例を示す図 ユーザプログラムの一例を示す図 プログラム作成支援装置の一例を示す図 PLCの一例を示す図 スキャンタイムを説明するための図 プログラム作成支援装置の機能を示す図 ユーザインタフェースの一例を示す図 ユーザインタフェースの一例を示す図 基本ユニットの機能を示す図 拡張ユニットの機能を示す図 プログラム作成支援方法を示すフローチャート 拡張ユニットが実行する同期制御を示すフローチャート 一括リフレッシュと同期リフレッシュとの関係を示す図 同期リフレッシュの一例を示す図
以下に本発明の一実施形態を示す。以下で説明される個別の実施形態は、本発明の上位概念、中位概念および下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。
はじめにプログラマブル・ロジック・コントローラ(PLC、単にプログラマブルコントローラと呼ばれてもよい)を当業者にとってよりよく理解できるようにするために、一般的なPLCの構成とその動作について説明する。
図1は、本発明の実施の形態によるプログラマブル・ロジック・コントローラシステムの一構成例を示す概念図である。図1に示すように、このシステムは、ラダープログラムなどのユーザプログラムの編集を行うためのプログラム作成支援装置1と、工場等に設置される各種制御装置を統括的に制御するためのPLC2とを備えている。ユーザプログラムは、ラダー言語やモーションフローなどのグラフィカルプログラミング言語を用いて作成されてもよいし、C言語などの高級プログラミング言語を用いて作成されてもよい。以下では、説明の便宜上、ユーザプログラムはラダープログラムとする。PLC2は、CPUが内蔵された基本ユニット3と1つないし複数の拡張ユニット4を備えている。基本ユニット3に対して1つないし複数の拡張ユニット4が着脱可能となっている。基本ユニット3はCPUユニットと呼ばれることもある。
基本ユニット3には、表示部5及び操作部6が備えられている。表示部5には、基本ユニット3に取り付けられている各拡張ユニット4の動作状況などを表示することができ、表示部5の表示内容は、操作部6を操作することにより切り替えることができる。表示部5には、通常、PLC2内のデバイスの現在値(デバイス値)やPLC2内で生じたエラー情報などが表示される。なお、デバイスとは、デバイス値を格納するために設けられたメモリ上の領域を指す名称であり、デバイスメモリと呼ばれてもよい。デバイス値とは、入力機器からの入力状態、出力機器への出力状態およびユーザプログラム上で設定される内部リレー(補助リレー)、タイマー、カウンタ、データメモリ等の状態を示す情報である。
拡張ユニット4は、PLC2の機能を拡張するために用意されており、基本ユニット3に対して側方から取り付けられる。1つ目の拡張ユニット4は、基本ユニット3に対して側方から直接的に取り付けられる。2つ目以降の拡張ユニット4は、既に取り付けられている拡張ユニット4に対して、側方から直列的に取り付けられる。たとえば、基本ユニット3の右側面と拡張ユニット4の左側面とが連結面になっている。同様に、1つ目の拡張ユニット4の右側面の形状等は基本ユニット3の右側面とほぼ同じであるため、1つ目の拡張ユニット4の右側面に2つ目の拡張ユニット4の左側面が連結される。このような連結方式は、数珠つなぎ方式とかデイジーチェーン方式と呼ばれてもよい。各連結面にはコネクタが設けられており、通信や電力供給を行うためのバスもコネクタを介して連結される。このようにして、基本ユニット3と複数の拡張ユニット4が直列的に取り付けられると、各拡張ユニット4内に備えられた配線(例:バス)を介して、各拡張ユニット4が基本ユニット3に対して通信可能に接続される。各拡張ユニット4には、その拡張ユニット4の機能に対応する被制御装置16(図4)が接続され、これにより、各被制御装置16が拡張ユニット4を介して基本ユニット3に接続される。被制御装置16には、センサなどの入力装置や、アクチュエータなどの出力装置が含まれる。
プログラム作成支援装置1は、たとえば、携帯可能ないわゆるノートタイプやタブレットタイプのパーソナルコンピュータであって、表示部7及び操作部8を備えている。PLC2を制御するためのユーザプログラムの一例であるラダープログラムは、プログラム作成支援装置1を用いて作成され、その作成されたラダープログラムは、プログラム作成支援装置1内でニモニックコードに変換される。そして、プログラム作成支援装置1を、USB(Universal Serial Bus)などの通信ケーブル9を介してPLC2の基本ユニット3に接続し、ニモニックコードに変換されたラダープログラムをプログラム作成支援装置1から基本ユニット3に送ると、そのラダープログラムが基本ユニット3内でマシンコードに変換され、基本ユニット3に備えられたメモリ内に記憶される。なお、ここではニモニックコードを基本ユニット3に送信するようにしているが、本発明はこれに限られず、例えばニモニックコードを更に中間コードに変換し、中間コードを基本ユニット3に送信するようにしてもよい。
なお、図1では示していないが、プログラム作成支援装置1の操作部8には、プログラム作成支援装置1に接続されたマウスなどのポインティングデバイスが含まれていてもよい。また、プログラム作成支援装置1は、USB以外の他の通信ケーブル9を介して、PLC2の基本ユニット3に対して着脱可能に接続されるような構成であってもよい。
図2は、ラダープログラムの作成時にプログラム作成支援装置1の表示部7に表示されるラダー図Ldの一例を示す図である。図2に示すように、PLC2を制御するためのラダープログラムは、プログラム作成支援装置1の表示部7にマトリックス状に表示される複数のセル18内に仮想デバイスのシンボル19を適宜配置して、視覚的なリレー回路を表すラダー図Ldを構築することにより作成される。
ラダー図Ldには、たとえば、10列×N行(Nは任意の自然数)のセル18が配置されている。そして、各行のセル18内に、図2に示す左側から右側に向かって、時系列的に仮想デバイスのシンボル19を適宜配置することにより、視覚的なリレー回路を作成することができる。作成されるリレー回路は、1行で表される直列的なリレー回路であってもよいし、複数行に並列的に表されたリレー回路を互いに結合することにより作成された、並列的なリレー回路であってもよい。
図2に示すリレー回路は、入力装置からの入力信号に基づいてオン/オフされる3つの仮想デバイス(以下、「入力デバイス」と呼ぶ。)のシンボル19a、19b、19cと、出力装置の動作を制御するためにオン/オフされる仮想デバイス(以下、「出力デバイス」と呼ぶ。)のシンボル19dが適宜結合されることにより構成されている。
各入力デバイスのシンボル19a、19b、19cの上方に表示されている文字(「R0001」、「R0002」及び「R0003」)は、その入力デバイスのデバイス名(アドレス名)21を表している。各入力デバイスのシンボル19a、19b、19cの下方に表示されている文字(「フラグ1」、「フラグ2」及び「フラグ3」)は、その入力デバイスに対応付けられたデバイスコメント22を表している。出力デバイスのシンボル19dの上方に表示されている文字(「原点復帰」)は、その出力デバイスの機能を表す文字列からなるラベル23である。
図2に示す例では、デバイス名「R0001」及び「R0002」にそれぞれ対応する2つの入力デバイスのシンボル19a、19bが直列的に結合されることにより、AND回路が構成されている。また、これらの2つの入力デバイスのシンボル19a、19bからなるAND回路に対して、デバイス名「R0003」に対応する入力デバイスのシンボル19cが並列的に結合されることにより、OR回路が構成されている。すなわち、このリレー回路では、2つのシンボル19a、19bに対応する入力デバイスがいずれもオンした場合、又は、シンボル19cに対応する入力デバイスがオンした場合にのみ、シンボル19dに対応する出力デバイスがオンされるようになっている。
図3は、図1のプログラム作成支援装置1の電気的構成について説明するためのブロック図である。図3に示すように、プログラム作成支援装置1には、CPU24、表示部7、操作部8、記憶装置25及び通信部26が備えられている。表示部7、操作部8、記憶装置25及び通信部26は、それぞれCPU24に対して電気的に接続されている。記憶装置25は、少なくともRAMを含む構成であり、プログラム記憶部27と、編集ソフト記憶部28とを備えている。
ユーザは、編集ソフト記憶部28に記憶されている編集ソフトをCPU24に実行させて、操作部8を通じてラダープログラムを編集する。ここで、ラダープログラムの編集には、ラダープログラムの作成及び変更が含まれる。編集ソフトを用いて作成されたラダープログラムは、プログラム記憶部27に記憶される。また、ユーザは、必要に応じてプログラム記憶部27に記憶されているラダープログラムを読み出し、そのラダープログラムを、編集ソフトを用いて変更することができる。通信部26は、通信ケーブル9を介してプログラム作成支援装置1を基本ユニット3に通信可能に接続するためのものである。
図4は、PLC2の電気的構成について説明するためのブロック図である。図4に示すように、基本ユニット3には、CPU10、表示部5、操作部6、記憶装置12及び通信部14が備えられている。表示部5、操作部6、記憶装置12、及び通信部14は、それぞれCPU10に電気的に接続されている。記憶装置12は、RAMやROM、メモリカードなどを含んでもよく、ラダープログラムなどを記憶する。記憶装置12には、プログラム作成支援装置1から入力されたラダープログラムやユーザデータが上書きして記憶される。また、記憶装置12には基本ユニット用の制御プログラムも格納されている。図4が示すように基本ユニット3と拡張ユニット4とは拡張バスの一種であるユニット外部バス90を介して接続されている。なお、ユニット外部バス90に関する通信機能は通信部14の一部として実装されてもよい。
図5は、本発明の実施の形態に係るプログラマブルコントローラの基本ユニット3でのスキャンタイムの構成を示す模式図である。図5が示すように1つのスキャンタイムTは、入出力のリフレッシュを行うためのユニット間通信201、プログラム実行202、END処理204により構成されている。ユニット間通信201で、基本ユニット3は、ラダープログラムを実行して得られた出力データを基本ユニット3内の記憶装置12から外部機器などに送信するとともに、受信データを含めた入力データを基本ユニット3内の記憶装置12に取り込む。たとえば、基本ユニット3のデバイスに記憶されているデバイス値は出力リフレッシュによって拡張ユニット4のデバイスに反映される。同様に、拡張ユニット4のデバイスに記憶されているデバイス値は入力リフレッシュによって基本ユニット3のデバイスに反映される。なお、リフレッシュ以外のタイミングでデバイス値をユニット間で更新する仕組みが採用されてもよい。ただし、基本ユニット3のデバイスは基本ユニット3が随時書き換えており、同様に、拡張ユニット4のデバイスは拡張ユニット4が随時書き換えている。つまり、基本ユニット3のデバイスは基本ユニット3の内部の装置によって随時アクセス可能であり、同様に、拡張ユニット4のデバイスは拡張ユニット4の内部の装置によって随時アクセス可能になっている。基本ユニット3と拡張ユニット4との間では基本的にリフレッシュのタイミングにおいて相互にデバイス値を更新して同期する。プログラム実行202で、基本ユニット3は、更新された入力データを用いてプログラムを実行(演算)する。基本ユニット3はプログラムの実行によりデータを演算処理する。なお、END処理とは、プログラム作成支援装置1や基本ユニット3に接続された表示器(図示せず)等の外部機器とのデータ通信、システムのエラーチェック等の周辺サービスに関する処理全般を意味する。
このように、プログラム作成支援装置1はユーザの操作に応じたラダープログラムを作成し、作成したラダープログラムをPLC2に転送する。PLC2は、入出力リフレッシュ、ラダープログラムの実行およびEND処理を1サイクル(1スキャン)として、このサイクルを周期的、すなわちサイクリックに繰り返し実行する。これにより、各種入力機器(センサ等)からのタイミング信号に基づいて、各種出力機器(モータ等)を制御する。よって、PLC2は汎用のパーソナルコンピュータ(PC)とは全く異なる動きをする。
<プログラム作成支援装置の機能>
図6はユーザプログラムの編集とパラメータの設定とを支援するプログラム作成支援装置1の機能を示す図である。CPU24は記憶装置25のROM(EEPROM、HDD、SSDなど)に記憶されている編集ソフトウエア29を実行することで編集部30、描画部31、指定部32、作成部33および転送部34として機能する。編集部30はラダープログラム35やモーションフローなどのユーザプログラムを、操作部8から入力される指示にしたがって編集し、記憶装置25に記憶させる。描画部31は表示部7にラダープログラム35や設定情報36を編集するためのUI(ユーザインタフェース)を表示させる。描画部31は、設定情報36の作成を支援するために、主軸(入力軸)から出力軸までの間に連結される仮想的な機構部品の画像を表示する機能表現UIを表示部7に表示してもよい。なお、同期制御において主軸は同期主軸とよばれ、出力軸は同期従軸と呼ばれることもある。したがって、描画部31および表示部7は、同期制御の同期主軸から同期制御の同期従軸まで順番に接続され、それぞれの入力軸の位置を出力軸の位置へ変換する複数の仮想的な機構部品を表示する表示部として機能する。
図7は、編集ソフトウエア29のユーザインタフェースの一例を示す図である。ユーザインタフェースの描画処理は描画部31が担当する。編集ソフトウエア29のユーザインタフェースは、パラメータ入力UI37と機能表現UI38を有している。オペレータは操作部8を通じてポインタ300を操作し、パラメータ入力UI37に表示されているパラメータを設定する。このパラメータは拡張ユニット4が実行する同期制御に伴う演算処理で使用される。つまり、このパラメータは演算処理を定義するパラメータである。機能表現UI38に示された機能表現によれば、主軸1、主軸2、補助軸および出力軸の間に各種の機構部品が連結されている。これらの軸は外部機器である被制御装置16を同期制御するための軸に対応している。PLCの分野において同期制御とは入力軸の位置(座標)に連動して出力軸の位置を制御することをいう。
機能表現UI38に示されている機能表現についてさらに詳しく説明する。複数の仮想的な機構部品は、差動ギア、可変ギア、クラッチおよびカムなどを含む。差動ギアは、一般に、第一入力軸、第二入力軸および出力軸を有し、第一入力軸の位置と第二入力軸の位置との差分を当該出力軸の位置として出力する機構部品である。可変ギアは、一般に、入力軸と、当該入力軸の回転速度に相関した異なる回転速度で回転する出力軸とを有する機構部品である。クラッチは、一般に、入力軸と出力軸とを有し、当該入力軸の回転を当該出力軸へ伝達する伝達状態と、伝達しない非伝達とを切り替える機構部品である。カムは、一般に、入力軸と出力軸とを有し、当該入力軸の位相を前記出力軸の相対座標に変換する機構部品である。
図7によれば、差動ギアの一つである第一差動ギアの出力軸に可変ギアの入力軸が連結されている。可変ギアの出力軸にクラッチの一つである第一クラッチの入力軸が連結されている。第一クラッチの出力軸に差動ギアの一つである第二差動ギアの第一入力軸が連結されている。第二差動ギアの出力軸にクラッチの一つである第二クラッチの入力軸が連結されている。第二クラッチの出力軸に、カムの応答遅れを補正する進角補正部の入力軸が接続されている。進角補正部の出力軸にカムの入力軸が接続されている。カムの出力軸には周波数変動を低減する出力フィルタの入力軸に接続されている。第二差動ギアの第二入力軸に第三クラッチを介して補助軸が接続されている。なお、第三クラッチと補助軸との間には補助軸の位相を補正する補助軸位相補正部が連結されていてもよい。各機構部品の模擬動作(演算処理)を定義するためのパラメータは、パラメータ入力UI37において入力される。オペレータは、たとえば、可変ギアのギア比を設定したり、クラッチの動作条件などを設定したりする。
図8(A)ないし図8(C)はパラメータ入力UI37の一部である軸設定UI39を示している。上述したように同期制御では、入力軸から出力軸までの間に接続された複数の機構部品のそれぞれに相当する複数の演算処理が順次実行される。つまり、入力軸の座標が一連の演算処理の入力値に相当する。入力軸の座標としては、一般に、エンコーダが出力するパルスの数をカウントするカウンタのカウント値などが採用される。一方で、本実施形態では、入力軸として、基本ユニット3が備えるデータメモリ(DM)や拡張ユニット4が備えるバッファメモリ(UG)を採用可能とする。従来は、データメモリ(DM)やバッファメモリ(UG)などのデバイスに保持されるデバイス値は時間的な正確性が問題となり、入力軸に採用できなかった。本実施形態では、基本ユニット3のタイマーと拡張ユニット4のタイマーとを時刻同期させることで、デバイス値の時間的な正確性を確立し、入力軸として採用可能となっている。バッファメモリのデバイス値が、データメモリのどの時刻におけるデバイス値に対応しているかが一定ではないと、入力軸として用いる値が信頼できず、入力軸として用いることができない。本実施形態では、バッファメモリが同期しているデータメモリの時刻に定時性がある。
基本ユニット3から拡張ユニット4へのデータの流れを詳細に説明する。基本ユニット3のデータメモリのデータは、ユニット間同期の周期ごとに、拡張ユニット4のバッファメモリに書き込まれる。このとき、この値はバッファメモリのうち、基本ユニットから送られてくるデータを保持するワークメモリ(図示しない)に書き込まれる。データメモリは、基本ユニットから書き込まれる値を保持するメモリ領域である。図8(A)、図8(B)中の「参照メモリ バッファメモリ(UG)」というのは、バッファメモリのうち、ワークメモリ以外の領域のことである。図8(A)、図8(B)中の「参照メモリ バッファメモリ(UG)」というのは、図10で示すバッファメモリ58のうち、非同期領域のことである。ワークメモリは図10のバッファメモリ58の同期領域に設けられている。
図8(A)において軸設定UI39は機能表現UI38に示された主軸1を設定するためのユーザインタフェースであり、軸設定UI39と機能表現UI38とは表示部7において同時に表示されうる。参照デバイス指定UI301は、主軸1として参照されるデバイスの種類を指定するためのUIである。参照デバイス指定UI301は、たとえば、プルダウンメニューによって実現されてもよい。プルダウンメニューには、参照デバイスとして指定可能な複数の選択肢が含まれている。図8(A)では、操作部8を通してオペレータによって操作されるポインタ300により参照デバイスとしてバッファメモリ(UG)が指定されている。換言すると、指定部32は、参照デバイス指定UI301を通じてオペレータによる参照デバイスの指定を受け付ける。カウンタ動作設定UI302は、参照デバイスの値をカウントするカウンタの動作を設定するためのUIである。カウンタ動作設定UI302もプルダウンメニューにより構成されうる。プルダウンメニューには選択肢として「リニア」や「リング」などが含まれている。リニアとは、カウント値を線形に増加せるカウント手法である。リングとは、最小値から最大値まで繰り返しカウントするカウント手法である。リングでは、カウント値が最大値に達すると最小値にカウント値がリセットされカウントが継続される。図8(B)ではカウンタ動作としてリングが選択されているため、リングカウンタ最小値設定UI304とリングカウンタ最大値設定UI305が指定部32や描画部31によって有効化されている。図8(A)ではカウンタ動作としてリニアが選択されているため、リングカウンタ最小値設定UI304とリングカウンタ最大値設定UI305が指定部32や描画部31によって無効化されている。参照デバイス番号設定UI303は、参照デバイスとして指定されたデバイスの識別情報を指定するUIである。PLC2ではバッファメモリ(UG)やデータメモリ(DM)として複数のデバイスが用意されている。そのため、各デバイスを識別するためにアドレスなどを含む識別情報が必要となる。なお、主軸1とし利用可能なバッファメモリ(UG)が、設計上、予め固定されている場合、参照デバイス番号設定UI303はオペレータによって操作不可能とされる。これはオペレータにとって参照デバイス番号を選択する余地が無いためである。このようなケースでは、主軸1として参照可能な具体的なバッファメモリのアドレスは一つだけであるため、バッファメモリが指定されると、予め定められたアドレスが設定情報36に書き込まれることになる。
図8(C)では参照デバイスとしてデータメモリ(DM)が指定されている。そのため、参照デバイス番号設定UI303が有効化され、主軸1として参照されるデータメモリ(DM)のアドレスが「21000」に指定されている。オペレータはこのアドレスを所望のデータメモリ(DM)のアドレスに指定することができる。
図6に示した作成部33は、指定部32により指定された各種のパラメータを含む設定情報36を作成する。転送部34はラダープログラム35と、基本ユニット3用の設定情報36を基本ユニット3に転送する。また、転送部34は拡張ユニット4用の設定情報36を拡張ユニット4に転送する。
図8(A)ないし図8(C)では主軸1の軸設定UI39だけが示されているが、機能表現UI38に示されているすべての入力軸(主軸2や補助軸など)についても軸設定UI39が表示部7に表示され、オペレータは操作部8を通じて各軸の軸設定を実行する。ここでは、各軸について参照デバイスを指定する例を示したが、参照デバイスに代えて従来通りの仮想軸やカウンタが入力軸の選択肢として軸設定UI39に表示されてもよい。
このように、同期制御の入力軸の値の指定方法としてはデータメモリを指定する方法(図8(C))と、バッファメモリを指定する方法(図8(A)、図8(B))とがある。図8(A)、図8(B)に示すように、バッファメモリを入力軸として指定する場合、プログラマブル・ロジック・コントローラの動作状態を示すデバイス値は、ラダープログラムで処理され、ユニット間同期リフレッシュにより拡張ユニットのバッファメモリに書き込まれ、そのバッファメモリのバッファ値が入力軸の値となる。図8(C)に示すように、データメモリを入力軸として指定する場合、プログラマブル・ロジック・コントローラの動作状態を示すデバイス値は、ユニット間同期リフレッシュにより拡張ユニットのバッファメモリに書き込まれ、そのバッファメモリのバッファ値が入力軸の値となる。
<基本ユニットの機能>
図9は基本ユニット3の機能を示す図である。CPU10は記憶装置12のROM(EEPROM、HDD、SSDなど)に記憶されている制御プログラム45を実行することで、ラダー実行部40、デバイス管理部41、CPUユニットタイマー43および同期部44として機能する。ラダー実行部40は、プログラム作成支援装置1により作成されて転送されてきたラダープログラム35を実行するエンジンである。ラダー実行部40はCPU10とは異なるASICなどにより実現されてもよい。デバイス管理部41は、デバイス値を格納するデバイスの一種であるデータメモリ48を管理する機能である。データメモリ48としては、上述したスキャン周期ごとにリフレッシュされるデータメモリと、スキャン周期よりも短いユニット間同期周期ごとにリフレッシュ(ユニット間同期リフレッシュ)されるデータメモリとがある。データメモリ48の非同期領域に記憶されるデータが、スキャン周期ごとに他の拡張ユニットとリフレッシュされる。データメモリ48の同期領域に記憶されるデータは、ユニット間同期リフレッシュごとに他の拡張ユニットとリフレッシュされる。また、データメモリ48には、拡張ユニット4から受信したデータが格納される入力データメモリと、基本ユニット3から拡張ユニット4に送信されるデータが格納される出力データメモリが存在する。設定情報36は上述したようにプログラム作成支援装置1によって作成されたものである。CPUユニットタイマー43は、基本ユニット3における各種の動作の制御タイミングを決定するために利用されるクロックやカウンタである。CPUユニットタイマー43は必ずしも時刻を計時する必要はなく、時刻に相当するカウント値をカウントしてもよい。このようなカウント値も時刻情報の一種である。同期部44は、CPUユニットタイマー43の時刻情報と拡張ユニット4が備える拡張ユニットタイマーの時刻情報とを同期させる機能である。同期部44は、通信部14を介したメッセージ通信によって同期信号を拡張ユニット4に送信することで、CPUユニットタイマー43の時刻情報と拡張ユニット4が備える拡張ユニットタイマーの時刻情報とを同期させる。CPUユニットタイマー43と拡張ユニットタイマーとが時刻同期しているため、データメモリ48に格納されるデータの時間的な正確性が確保される。
<拡張ユニットの機能>
図10は拡張ユニット4の機能を示す図である。CPU110は記憶装置112のROM(EEPROM、HDD、SSDなど)に記憶されている制御プログラム55を実行することで、同期制御部50、デバイス管理部51、拡張ユニットタイマー53および同期部54として機能する。同期制御部50は、基本ユニット3のデータメモリ48に格納されたデバイス値またはバッファメモリ58に格納されたバッファ値に基づき被制御装置16を制御する。同期制御部50によって参照されるデバイスは設定情報36によって指定されている。デバイス管理部51は、デバイス値を格納するデバイスの一種であるバッファメモリ58を管理する機能である。デバイス管理部51は上述したように入力系のデバイスや出力系のデバイスをリフレッシュする。たとえば、デバイス管理部51は基本ユニット3に接続されたエンコーダが出力するパルスをカウントして、出力デバイスに格納してもよい。また、デバイス管理部51は、拡張ユニット4として高速カウンタユニットが基本ユニット3に接続されている場合、高速カウンタユニットのカウント値を、基本ユニット3のデバイスメモリに格納してもよい。デバイス管理部51は複数の拡張ユニット4のうちある拡張ユニットに接続されているエンコーダが出力するパルスのカウント値をリフレッシュによって取得し、その値から目標座標を求め、複数の拡張ユニット4から共通に参照可能な出力デバイスに目標座標を格納してもよい。これにより複数の拡張ユニット4に同一のデバイス値が伝達されるようになろう。設定情報36は上述したようにプログラム作成支援装置1によって作成されたものである。同期制御部50は、通信部114を介して基本ユニット3から同期制御の開始を指示されると、設定情報36によって指定されているデバイス(データメモリ48またはバッファメモリ58)からデバイス値を読み出し、同期制御のための入力軸の値として利用し、所定の演算処理を実行する。この演算処理は、図7に示した機能表現を構成している複数の機構部品の動作を模擬するための演算処理であり、制御プログラム55に定義されている。制御プログラム55には、各機構部品の動作に相当する演算処理を実行する演算モジュールが含まれている。演算モジュールはプログラム作成支援装置1から転送されて供給されもよい。拡張ユニットタイマー53は、拡張ユニット4における各種の動作の制御タイミングを決定するために利用されるクロックやカウンタである。拡張ユニットタイマー53は必ずしも時刻を計時する必要はなく、時刻に相当するカウント値をカウントしてもよい。このようなカウント値も時刻情報の一種である。同期部54は、拡張ユニットタイマー53の時刻情報をCPUユニットタイマー43の時刻情報に同期させる機能である。同期部54は、通信部114を介したメッセージ通信によって同期信号を基本ユニット3から受信することで、CPUユニットタイマー43の時刻情報と拡張ユニットタイマー53の時刻情報とを同期させるこのように、CPUユニットタイマー43と拡張ユニットタイマーとが時刻同期しているため、バッファメモリ58に格納されるデータの時間的な正確性が確保される。バッファメモリ58には、スキャン周期ごとにCPUユニット3とリフレッシュされる非同期領域と、ユニット間同期リフレッシュごとにCPUユニット3とリフレッシュされる同期領域とがある。
<プログラム作成支援装置が実行する処理>
図11はプログラム作成支援装置1のCPU24が実行する処理を示すフローチャートである。S11でCPU24(編集部30)は編集ソフトウエア29にしたがってラダープログラム35の編集を受け付ける。オペレータは操作部8を操作してラダープログラム35を作成する。なお、S11の実行位置は順不同であり、遅くとも転送が開始されるまでに実行されれば十分である。S12でCPU24(描画部31)は編集ソフトウエア29にしたがって機能表現UI38や軸設定UI39を表示部7に表示する。S13で指定部32は操作部8を介して入力される参照デバイスの指定やカウンタ動作の指定などを受け付ける。オペレータは軸設定UI39を見ながら操作部8を操作することで、参照デバイスを指定したり、カウンタ動作を指定したりする。なお、複数の拡張ユニット4に対して入力軸として同一のデバイスを参照するように各拡張ユニット4の参照デバイスが設定されてもよい。これにより複数の拡張ユニット4が同一のデバイス値を用いて出力軸の演算を実行することが可能となる。S14でCPU24(作成部33)は指定部32により受け付けられた参照デバイスの指定やカウンタ動作の指定含む設定情報36を作成する。S15でCPU24(転送部34)は通信部26を介して基本ユニット3に接続してラダープログラム35と基本ユニット3用の設定情報36を転送する。さらに、CPU24(転送部34)は、通信部26および基本ユニット3を介して拡張ユニット4に接続し、拡張ユニット4用の設定情報36を転送する。
<拡張ユニットが実行する処理>
図12は基本ユニット3のCPU10が実行する処理を示すフローチャートである。S21でCPU110はプログラム作成支援装置1から設定情報36を受信し、記憶装置112に記憶する。S22でCPU110(同期制御部50)は基本ユニット3から同期制御の開始を指示されるまで待機する。同期制御の開始の指示は、たとえば、基本ユニット3の通信部14と拡張ユニット4の通信部114との間で実行されるメッセージ通信によって受信される。基本ユニット3から同期制御の開始を指示されると、CPU110(同期制御部50)はS23に進む。S23でCPU110(同期部54)は時刻同期を実行する。これにより、CPUユニットタイマー43と拡張ユニットタイマーとが時刻同期する。なお、時刻同期の実行タイミングは、CPUユニットタイマー43と拡張ユニットタイマーとの時刻同期が維持される限り、任意のタイミングに設定可能である。通常は、基本ユニット3によって時刻同期が開始される。S24でCPU110(同期制御部50)は拡張ユニットタイマー53により計時されている時刻を基準としてPLC2の動作状態を示すバッファ値をバッファメモリ58に格納する。なお、このバッファ値は入力軸として参照されるバッファ値である。バッファ値の決定方法は制御プログラム55に規定されている。どのような決定方法が採用されるかは被制御装置16(アプリケーション)に依存する。なお、設定情報36によって別のデバイス(基本ユニット3に備えられるデータメモリ48)が参照デバイスとして指定されている場合、バッファ値の算出は必ずしも必要ではない。S25でCPU110(同期制御部50)は設定情報36によって指定されているデバイス値(データメモリ48のデータまたはバッファメモリ58のバッファ値)を取得して入力軸として使用し、同期制御の出力軸を演算する。入力軸から出力軸を演算するために使用される演算式は制御プログラム55により予め記述されている。どのような演算式になるかは機能表現UIにより示された機構部品の組み合わせや被制御装置16(アプリケーション)に依存する。S26でCPU110(同期制御部50)は演算により求めた出力軸の値を用いて被制御装置16を制御する。
このように本実施形態では、入力軸としてデバイス値を直接的に与えることが可能となる。また、入力軸としてデバイス値を与えることで演算された出力軸を用いて被制御装置16の同期制御が実現される。
<ユニット間同期>
スキャンタイムは一般に数ミリ秒であるが、位置決めユニットなどの拡張ユニット4ではより短い周期で被制御装置16の位置を制御したいという要請がある。しかし、1つのスキャンタイムで入出力デバイスのリフレッシュ(一括リフレッシュ)は1回だけである。本実施例ではユニット間同期周期ごとにデバイスのリフレッシュを行う同期リフレッシュも採用可能である。
図13は一括リフレッシュと同期リフレッシュとの関係を示す図である。図13が示すように、一括リフレッシュにより基本ユニット3と拡張ユニット4との間で入出力デバイスのデバイス値が更新される。たとえば、カウンタユニットである拡張ユニット4の現在座標は1つのスキャンタイムで一回だけ更新され、位置決めユニットである他の拡張ユニット4への目標座標も1つのスキャンタイムで一回だけ更新される場合、高速な同期制御を実現することができない。そこで、基本ユニット3の内部制御周期と拡張ユニット4の内部制御周期とを同期させ、この制御周期ごとにデバイスをリフレッシュする同期リフレッシュについても本実施例では採用されてもよい。なお、ユーザプログラムのうち、この制御周期に同期して実行されるプログラムはユニット間同期プログラムと呼ばれる。図13において同期リフレッシュは、ラダープログラムの実行期間だけでなく、一括リフレッシュの実行期間やエンド処理の実行期間においても実行されてもよい。
図14は同期リフレッシュの一例を示す図である。基本ユニット3のデバイス管理部41は、制御周期ごとに同期リフレッシュを実行する。図14によれば、制御周期内でまず同期リフレッシュの対象として予め指定されている第一拡張ユニットのデバイスに格納されている現在座標Xnを基本ユニット3のデバイスにコピーすることで入力リフレッシュが実行される。第一拡張ユニットはカウンタユニットや、エンコーダを接続されたモーションユニットなどである。次に、デバイス管理部41は、現在座標Xnから算出した目標座標Yn+1をデバイスに格納し、これを位置決めユニットである第二拡張ユニットのデバイスにコピーする(出力リフレッシュ)。位置決めユニットである第二拡張ユニットは、デバイスが保持しているデバイス値を今回の指令値(目標座標)として内部処理(パラレルリンクやボールねじなどの同期制御)を実行する。なお、デバイス管理部41は、算出した目標座標Yn+1を第一拡張ユニットのデバイスにもコピーしてもよい(出力リフレッシュ)。つまり、同一のデバイス値が複数の拡張ユニットに伝達され、共有される。位置決めユニットである第二拡張ユニットは、デバイスが保持しているデバイス値を今回の指令値(目標座標)として演算処理(パラレルリンクやボールねじなどの同期制御)を実行する。また、位置決めユニットである第一拡張ユニットも、同一のデバイス値を用いて演算処理(パラレルリンクやボールねじなどの同期制御)を実行してもよい。以下、同様に制御周期ごとに同期リフレッシュが実行される。
このようにユニット間同期を採用することで基本ユニット3と拡張ユニット4が時刻同期される。さらに同期リフレッシュを採用することでデバイス値の同時性が確保される。図14が示すように、同時性の一側面は、ある制御周期(たとえば、時刻を示すカウント値が10である制御周期)における目標座標は、その制御周期において取得された現在座標が用いられて演算されることである。ユニット間同期を採用しない場合、基本ユニット3と拡張ユニット4が時刻同期していないため、基本ユニット3が拡張ユニット4から入力したデバイス値と、基本ユニット3から拡張ユニット4に出力されたデバイス値とが必ずしも同一の制御周期のものではなかった。つまり、基本ユニット3が保持しているデバイス値の取得時期と、拡張ユニット4が保持しているデバイス値の取得時期とが不一致となることがあった。たとえば、実際は、基本ユニット3では1msごとに指令座標が10、20、30、40と変化しているにもかかわらず、拡張ユニット4には指令座標が10、10、30、40と伝達されてしまうことがあった。この場合、指令座標から求められる拡張ユニット4における被制御装置16の移動速度が本来は10kHz、10kHz、10kHz、10kHzと一定となるはずが、10kHz、0kHz、20kHz、10kHzと変動してしまい、正しい同期制御が実現されない。本実施形態では、基本ユニット3と拡張ユニット4が時刻同期されているため、同期制御の入力軸としてデバイス値を採用可能となる。
<まとめ>
図1などを用いて説明したように、PLC2は基本ユニット3と一つ以上の拡張ユニット4を有し、同期制御を実行する。図10などを用いて説明したように、基本ユニット3は、CPUユニットタイマー43、データメモリ48およびラダー実行部40などを有している。CPUユニットタイマー43は時刻を管理するためのタイマーやクロック、カウンタなどである。データメモリ48はCPUユニットタイマー43により計時されている時刻を基準としてPLC2の動作状態を示すデバイス値が格納されるデバイスメモリの一例である。ラダー実行部40は、スキャン周期にしたがってユーザプログラムを繰り返し実行し、当該ユーザプログラムに記述された命令語にしたがってデータメモリ48にデバイス値を書き込むか、または、拡張ユニット4が有しているバッファメモリ58にデバイス値(バッファ値)を書き込むプログラム実行部の一例である。
図11を用いて説明したように、拡張ユニット4は、CPUユニットタイマー43と時刻同期された拡張ユニットタイマー53、バッファメモリ58および同期制御部50などを有している。バッファメモリ58は、拡張ユニットタイマー53により計時されている時刻を基準としてPLC2の動作状態を示すバッファ値を格納する。同期制御部50は、基本ユニット3によりデータメモリ48に書き込まれたデバイス値またはバッファメモリ58に書き込まれたバッファ値を同期制御の入力軸として演算を実行して同期制御の出力軸を決定する演算部の一例である。とりわけ、本実施形態では、CPUユニットタイマー43と拡張ユニットタイマー53とが時刻同期しているため、基本ユニット3や拡張ユニット4が備えるデバイスを同期制御の入力軸として利用できるようになる。
図13や図14を用いて説明したようにデバイス値(例:データメモリ48に保持されているデータやバッファメモリ58に保持されているバッファ値)はスキャン周期よりも短いユニット間同期周期にしたがって更新されてもよい。これによりデバイス値の同時性を確保しやすくなろう。
PLC2は複数の拡張ユニット4を有していてもよい。図14などを用いて説明したように、ラダー実行部40は、第一拡張ユニット4が有するバッファメモリ58と第二拡張ユニット4が有するバッファメモリ58とにそれぞれ同一のバッファ値を書き込んでもよい。たとえば、基本ユニット3のラダー実行部40は、第一拡張ユニット4の第一のバッファメモリ58から第一のバッファ値を読み出し、当該第一のバッファ値を加工して第二のバッファ値を決定し、当該第二のバッファ値を第一拡張ユニット4と第二拡張ユニット4のそれぞれの第二のバッファメモリ58に書き込んでもよい。第一拡張ユニット4の同期制御部50および第二拡張ユニット4の同期制御部50はそれぞれ、第二のバッファメモリ58に書き込まれた第二のバッファ値を同期制御の入力軸として演算を実行して同期制御の出力軸を決定する。これにより、第一拡張ユニット4が有する同期制御部50と第二拡張ユニット4が有する同期制御部50はそれぞれ同一のバッファ値を用いて同期制御を実行できるようになる。
図14などを用いて説明したように、基本ユニット3のラダー実行部40は、第一拡張ユニット4のバッファメモリ58からバッファ値を読み出し、当該バッファ値を加工してデバイス値を決定し、当該デバイス値をデバイスメモリに書き込んでもよい。第一拡張ユニット4の同期制御部50および第二拡張ユニット4の同期制御部50は、デバイスメモリに書き込まれたデバイス値を同期制御の入力軸として演算を実行して同期制御の出力軸を決定してもよい。なお、デバイス値は一括リフレッシュされてもよいし、同期リフレッシュされてもよい。
PLC2は、ラダープログラム35を作成して当該基本ユニット3に転送するとともに拡張ユニット4に関する設定情報36を拡張ユニット4に転送するプログラム作成支援装置1をさらに有していてもよい。図6や図11を用いて説明したように、プログラム作成支援装置1は、指定部32と転送部34を有していてもよい。指定部32は、同期制御の入力軸として参照されるデバイスメモリ(データメモリ48またはバッファメモリ58)を指定する。転送部34は、入力軸として参照されるよう指定部32により指定されたデバイスメモリを示す設定情報36を拡張ユニット4に転送する。上述したように、同期制御部50は設定情報36によって指定されたデータメモリ48に格納されているデバイス値またはバッファメモリ58に格納されているバッファ値を同期制御のための入力軸として使用する。
図12を用いて説明したように、本実施形態によれば拡張ユニット4の制御方法も提供される。S23によれば、基本ユニット3が備えるCPUユニットタイマー43と拡張ユニット4が備える拡張ユニットタイマー53を時刻同期させる工程が提供される。S24によれば、拡張ユニットタイマー53により計時されている時刻を基準としてPLC2の動作状態を示すバッファ値を拡張ユニット4が備えるバッファメモリ58に格納する工程が提供される。S25によれば、CPUユニットタイマー43により計時されている時刻を基準として基本ユニット3によりデバイスメモリに書き込まれたPLC2の動作状態を示すデバイス値、または、基本ユニット3においてスキャン周期にしたがってユーザプログラムを繰り返し実行することでバッファメモリ58に書き込まれたバッファ値を同期制御の入力軸として演算を実行して同期制御の出力軸を決定する工程が提供される。また、制御プログラム55は、拡張ユニット4の制御方法の各工程を拡張ユニット4に実行させるプログラムの一例である。
図6を用いて説明したように、同期制御を実行するPLC2に接続され、当該PLC2において実行されるユーザプログラムの作成を支援するプログラム作成支援装置1が提供される。編集部30は、基本ユニット3によって実行されるユーザプログラムを編集する。図8を用いて説明したように、表示部7は、拡張ユニット4が同期制御の出力軸を演算するために参照する入力軸についての複数の選択肢を表示する。指定部32は、表示部7に表示された複数の選択肢から一つの選択肢を指定する。作成部33は、指定部32により指定された選択肢を示す設定情報36を作成する。転送部34は、作成部33により作成された設定情報を拡張ユニット4に転送する。とりわけ、複数の選択肢には、基本ユニット3が備えるCPUユニットタイマー43により計時されている時刻を基準として基本ユニット3により基本ユニット3が備えるデバイスメモリに書き込まれたデバイス値、または、基本ユニット3においてスキャン周期にしたがってユーザプログラムを繰り返し実行することで拡張ユニット4が備えるバッファメモリ58に書き込まれたバッファ値が含まれている。
図11を用いて説明したように、本実施形態によればプログラム作成支援方法が提供される。S11は基本ユニット3によって実行されるユーザプログラムの編集を受け付ける編集工程の一例である。S12は拡張ユニット4が同期制御の出力軸を演算するために参照する入力軸についての複数の選択肢を表示部7に表示する表示工程の一例である。S13は表示部7に表示された複数の選択肢から一つの選択肢の指定を受け付ける指定工程の一例である。S14は指定工程において指定された選択肢を示す設定情報を作成する作成工程の一例である。S15は作成工程において作成された設定情報を拡張ユニット4に転送する転送工程の一例である。なお、編集ソフトウエア29はプログラム作成支援方法の各工程をコンピュータ(プログラム作成支援装置1)に実行させるプログラムの一例である。
実施形態では、基本ユニット3のタイマーと拡張ユニット4のタイマーとを時刻同期させることで、デバイス値の時間的な正確性を確立し、入力軸として採用可能となっている。バッファメモリのデバイス値と、データメモリのデバイス値との対応関係が正確であればよい。たとえば、ユニット間同期毎に、デバイス値を更新するものに限られず、バッファメモリのデバイス値は、一つ前のユニット間同期信号で同期されようとした基本ユニット3のデバイス値であってもよい。
また、実施形態では、ユーザプログラムに記述された命令語にしたがって、データメモリ48にデバイス値を書き込むか、または、拡張ユニット4が有しているバッファメモリ58にデバイス値(バッファ値)を書き込むこととしているが、この書き込みはユーザプログラムに記述された命令語に従ってなされる場合に限られない。ユーザプログラムに記述された命令語に限られず、設定支援プログラム(プログラム作成支援装置)のユーザインタフェース上で、どの値をデータメモリのどのデバイスに書き込むかを指定することにより書き込みが行なわれてもよい。たとえば、拡張ユニット4として高速カウンタユニットがあり、高速カウンタユニットのカウント値を、他の拡張ユニット4であるモーションコントロールユニットの入力軸として用いるような場合、高速カウンタユニットのカウント値を基本ユニット3のデバイスメモリに記憶させるよう設定支援プログラムを用いて設定することとしてもよい。この場合、ユーザは、ユーザプログラムを作成しなくとも、画面上の設定のみで、拡張ユニット4の値をデバイスメモリに記憶させることができる。

Claims (10)

  1. CPUユニットとつ以上の拡張ユニットとを有し、同期制御を実行するプログラマブル・ロジック・コントローラであって、
    前記CPUユニットは、
    時刻を管理するためのCPUユニットタイマーと、
    前記CPUユニットタイマーにより計時されている時刻を基準として前記プログラマブル・ロジック・コントローラの動作状態を示すデバイス値が格納される領域を有するデバイスメモリと、
    定められた周期にしたがってユーザプログラムを繰り返し実行し、前記デバイスメモリに対してデバイス値書き込みを実行しおよび、前記二つ以上の拡張ユニットが有しているバッファメモリに対してバッファ値書き込みを実行するプログラム実行部と、
    を有し、
    前記二つ以上の拡張ユニットは、第一拡張ユニットと第二拡張ユニットとを有し、それぞれの拡張ユニットは、
    前記CPUユニットタイマーと時刻同期された拡張ユニットタイマーと、
    前記拡張ユニットタイマーにより計時されている時刻を基準として前記プログラマブル・ロジック・コントローラの動作状態を示すバッファ値を格納するバッファメモリと、
    前記バッファメモリに書き込まれたバッファ値を用いて演算を実行る演算部と
    を有し、
    前記プログラマブル・ロジック・コントローラは、
    前記第一拡張ユニットにおける前記バッファメモリに格納された第一のバッファ値を、前記デバイスメモリにコピーする入力リフレッシュ動作と、
    前記デバイスメモリにコピーされた前記第一のバッファ値と同じデータを、前記第二拡張ユニットにおける前記バッファメモリに格納する出力リフレッシュ動作と、
    を有するユニット同期リフレッシュを実行し、
    前記第二拡張ユニットの前記演算部は、
    前記ユニット同期リフレッシュにより前記バッファメモリに書き込まれたバッファ値を同期制御の入力軸として演算を実行して前記同期制御の出力軸を決定することを特徴とするプログラマブル・ロジック・コントローラ。
  2. 前記デバイス値および前記バッファ値は前記定められた周期よりも短いユニット間同期周期にしたがって更新されることを特徴とする請求項1に記載のプログラマブル・ロジック・コントローラ。
  3. 前記デバイスメモリは、同期領域と非同期領域とを有し、
    前記バッファメモリは、同期領域と非同期領域とを有し、
    前記デバイスメモリの非同期領域と前記バッファメモリとの非同期領域とは、定められた周期ごとにリフレッシュされ、
    前記デバイスメモリの同期領域と前記バッファメモリとの同期領域とは、前記ユニット間同期周期ごとにリフレッシュされ、
    前記二つ以上の拡張ユニットの演算部は、前記バッファメモリの同期領域に書き込まれたバッファ値を同期制御の入力軸として演算を実行して前記同期制御の出力軸を決定することを特徴とする請求項2に記載のプログラマブル・ロジック・コントローラ。
  4. 前記プログラム実行部は、前記第一拡張ユニットが有する前記バッファメモリと、前記第二拡張ユニットが有する前記バッファメモリとにそれぞれ同一のバッファ値を書き込み、
    前記第一拡張ユニットが有する前記演算部と前記第二拡張ユニットが有する前記演算部はそれぞれ同一のバッファ値を用いて同期制御を実行することを特徴とする請求項1ないしのいずれか一項に記載のプログラマブル・ロジック・コントローラ。
  5. 前記CPUユニットの前記プログラム実行部は、前記第一拡張ユニットの第一のバッファメモリから第一のバッファ値を読み出し、当該第一のバッファ値を加工して前記同一のバッファ値である第二のバッファ値を決定し、当該第二のバッファ値を前記第二拡張ユニットと前記二つ以上の拡張ユニットのうちの第三拡張ユニットのそれぞれの第二のバッファメモリに書き込み、
    前記第二拡張ユニットの前記演算部および前記第三拡張ユニットの演算部はそれぞれ、前記第二のバッファメモリに書き込まれた前記第二のバッファ値を前記同期制御の入力軸として演算を実行して前記同期制御の出力軸を決定することを特徴とする請求項4に記載のプログラマブル・ロジック・コントローラ。
  6. 前記CPUユニットの前記プログラム実行部は、前記第一拡張ユニットのバッファメモリからバッファ値を読み出し、当該バッファ値を加工してデバイス値を決定し、当該デバイス値を前記デバイスメモリに書き込み、
    前記第一拡張ユニットの前記演算部および前記第二拡張ユニットの前記演算部は、前記デバイスメモリに書き込まれた前記デバイス値を前記同期制御の入力軸として演算を実行して前記同期制御の出力軸を決定することを特徴とする請求項1ないし4のいずれか一項に記載のプログラマブル・ロジック・コントローラ。
  7. 前記ユーザプログラムを作成して当該CPUユニットに転送するとともに前記拡張ユニットに関する設定情報を前記拡張ユニットに転送するプログラム作成支援装置をさらに有し、
    前記プログラム作成支援装置は、
    前記同期制御の入力軸として参照されるデバイスメモリまたはバッファメモリを指定する指定部と、
    前記入力軸として参照されるよう前記指定部により指定されたデバイスメモリまたはバッファメモリを示す設定情報を前記二つ以上の拡張ユニットに転送する転送部と
    を有し、
    前記演算部は前記設定情報によって指定されたデバイスメモリに格納されているデバイス値またはバッファメモリに格納されているバッファ値を前記同期制御のための前記入力軸として使用することを特徴とする請求項1ないしのいずれか一項に記載のプログラマブル・ロジック・コントローラ。
  8. 同期制御を実行するプログラマブル・ロジック・コントローラのCPUユニットに接続される拡張ユニットであって、
    前記CPUユニットが備えるCPUユニットタイマーと時刻同期された拡張ユニットタイマーと、
    前記拡張ユニットタイマーにより計時されている時刻を基準として前記プログラマブル・ロジック・コントローラの動作状態を示すバッファ値を格納するバッファメモリと、
    前記CPUユニットタイマーにより計時されている時刻を基準として前記CPUユニットにおいて定められた周期にしたがってユーザプログラムを繰り返し実行することで前記バッファメモリに書き込まれたバッファ値を用いて演算を実行る演算部と
    を有し、
    前記プログラマブル・ロジック・コントローラは、
    他の拡張ユニットにおける前記バッファメモリに格納された第一のバッファ値を、前記CPUユニットのデバイスメモリにコピーする入力リフレッシュ動作と、
    前記デバイスメモリにコピーされた前記第一のバッファ値と同じデータを、前記拡張ユニットにおける前記バッファメモリに格納する出力リフレッシュ動作と、
    を有するユニット同期リフレッシュを実行し、
    前記拡張ユニットの前記演算部は、
    前記ユニット同期リフレッシュにより前記バッファメモリに書き込まれたバッファ値を同期制御の入力軸として演算を実行して前記同期制御の出力軸を決定することを特徴とする拡張ユニット。
  9. CPUユニットと第一拡張ユニットと第二拡張ユニットとを有する二つ以上の拡張ユニットとを有し、同期制御を実行するプログラマブル・ロジック・コントローラであって、
    前記CPUユニットは、
    時刻を管理するためのCPUユニットタイマーと、
    前記CPUユニットタイマーにより計時されている時刻を基準として前記プログラマブル・ロジック・コントローラの動作状態を示すデバイス値が格納される領域を有するデバイスメモリと、
    定められた周期にしたがってユーザプログラムを繰り返し実行し、前記デバイスメモリに対してデバイス値の書き込みを実行し、および、前記二つ以上の拡張ユニットが有しているバッファメモリに対してバッファ値の書き込みを実行するプログラム実行部と、
    を有する前記プログラマブル・ロジック・コントローラの前記CPUユニットに接続される拡張ユニットの制御方法であって、
    前記CPUユニットが備えるCPUユニットタイマーと前記二つ以上の拡張ユニットが備える拡張ユニットタイマーを時刻同期させる工程と、
    前記第一拡張ユニットにおける前記バッファメモリに格納された第一のバッファ値を、前記デバイスメモリにコピーする入力リフレッシュ動作と、
    前記デバイスメモリにコピーされた前記第一のバッファ値と同じデータを、前記第二拡張ユニットにおける前記バッファメモリに格納する出力リフレッシュ動作と、
    を有するユニット同期リフレッシュを実行する工程と、
    前記CPUユニットタイマーにより計時されている時刻を基準として前記CPUユニットにおいて定められた周期にしたがってユーザプログラムを繰り返し実行することで前記バッファメモリに書き込まれたバッファ値を同期制御の入力軸として演算を実行して前記同期制御の出力軸を決定する工程と
    を有することを特徴とする拡張ユニットの制御方法。
  10. 請求項に記載の前記拡張ユニットの制御方法の各工程を前記拡張ユニットに実行させるプログラム。
JP2015207472A 2015-10-21 2015-10-21 プログラマブル・ロジック・コントローラ、拡張ユニット、制御方法、プログラム作成支援装置、プログラム作成支援方法およびプログラム Active JP6626313B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015207472A JP6626313B2 (ja) 2015-10-21 2015-10-21 プログラマブル・ロジック・コントローラ、拡張ユニット、制御方法、プログラム作成支援装置、プログラム作成支援方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015207472A JP6626313B2 (ja) 2015-10-21 2015-10-21 プログラマブル・ロジック・コントローラ、拡張ユニット、制御方法、プログラム作成支援装置、プログラム作成支援方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2017079006A JP2017079006A (ja) 2017-04-27
JP6626313B2 true JP6626313B2 (ja) 2019-12-25

Family

ID=58666905

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015207472A Active JP6626313B2 (ja) 2015-10-21 2015-10-21 プログラマブル・ロジック・コントローラ、拡張ユニット、制御方法、プログラム作成支援装置、プログラム作成支援方法およびプログラム

Country Status (1)

Country Link
JP (1) JP6626313B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11698632B2 (en) 2020-03-26 2023-07-11 Kabushiki Kaisha Yaskawa Denki Production system, data transmission method, and information storage medium

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021536055A (ja) * 2018-08-23 2021-12-23 シーメンス アクチエンゲゼルシヤフトSiemens Aktiengesellschaft 人工知能計算装置、制御方法および制御装置、エンジニアステーションおよび産業オートメーションシステム
JP6840288B1 (ja) * 2019-03-25 2021-03-10 三菱電機株式会社 表示支援プログラム、同プログラムを記憶したコンピュータ可読記憶媒体、表示支援方法、及び表示支援システム
WO2023100223A1 (ja) * 2021-11-30 2023-06-08 株式会社Fuji 機器制御システムおよび部品装着機

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3852469B2 (ja) * 2004-03-11 2006-11-29 オムロン株式会社 同期コントローラおよびコントローラシステム
JP5226391B2 (ja) * 2008-06-06 2013-07-03 株式会社キーエンス 設定支援装置及びコンピュータプログラム
JP2010198600A (ja) * 2009-02-02 2010-09-09 Omron Corp 産業用コントローラ

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11698632B2 (en) 2020-03-26 2023-07-11 Kabushiki Kaisha Yaskawa Denki Production system, data transmission method, and information storage medium

Also Published As

Publication number Publication date
JP2017079006A (ja) 2017-04-27

Similar Documents

Publication Publication Date Title
JP6626315B2 (ja) プログラマブル・ロジック・コントローラのモニタ装置及びプログラマブル・ロジック・コントローラ・システム
US10761515B2 (en) Control system for controlling control object and control device for linking control applications in control system
US10496079B2 (en) Control device and control method
JP6626313B2 (ja) プログラマブル・ロジック・コントローラ、拡張ユニット、制御方法、プログラム作成支援装置、プログラム作成支援方法およびプログラム
US10761884B2 (en) Control device for operating multiple types of programs in different execution formats
CN109581976B (zh) 控制装置
US9753447B2 (en) Control unit, output control method and program
JP6535459B2 (ja) プログラマブル・ロジック・コントローラ、基本ユニット、制御方法およびプログラム
JP6433635B1 (ja) シミュレーション装置およびシミュレーション方法
EP3441831B1 (en) Information processing device, information processing method, and information processing program
US10814486B2 (en) Information processing device, information processing method, and non-transitory computer-readable recording medium
JP6695679B2 (ja) プログラマブル・ロジック・コントローラ、プログラム作成支援装置、プログラム作成支援方法およびプログラム
KR102198204B1 (ko) 시뮬레이션 장치
US20190094831A1 (en) Control apparatus, control method, and support apparatus
JP2021128709A (ja) 処理装置、及び処理方法
JP7247808B2 (ja) 制御システム、解析方法およびプログラム
JP6626314B2 (ja) プログラマブル・ロジック・コントローラ
JP6571377B2 (ja) 拡張ユニット、プログラマブル・ロジック・コントローラおよびその制御方法
CN114041092B (zh) 控制系统、分析方法以及记录介质
JP2022114752A (ja) 制御装置、プログラム実行方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180831

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190628

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190705

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190827

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: 20191111

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191129

R150 Certificate of patent or registration of utility model

Ref document number: 6626313

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250