JP2005293569A - Synchronous controller - Google Patents
Synchronous controller Download PDFInfo
- Publication number
- JP2005293569A JP2005293569A JP2005069653A JP2005069653A JP2005293569A JP 2005293569 A JP2005293569 A JP 2005293569A JP 2005069653 A JP2005069653 A JP 2005069653A JP 2005069653 A JP2005069653 A JP 2005069653A JP 2005293569 A JP2005293569 A JP 2005293569A
- Authority
- JP
- Japan
- Prior art keywords
- module
- synchronous
- data
- bus
- synchronization
- 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
Images
Landscapes
- Control By Computers (AREA)
- Programmable Controllers (AREA)
- Control Of Position Or Direction (AREA)
Abstract
Description
この発明は、同期コントローラに関するものである。 The present invention relates to a synchronous controller.
生産工場(製造現場)に設置されるファクトリーオートメーション(FA)の制御装置として、プログラマブルコントローラ(PLC)が用いられている。このPLCは、複数のユニットから構成される。すなわち、電源供給源の電源ユニット,PLC全体の制御を統率するCPUユニット,FAの生産装置や設備装置の適所に取り付けたスイッチやセンサの信号を入力する入力ユニット,アクチュエータなどに制御出力を出す出力ユニット,通信ネットワークに接続するための通信ユニットなどの各種のユニットを適宜組み合わせて構成される。そして、これら各ユニットは、側面に設けられたコネクタを介して電気・機械的に連結され、電源ユニットから各ユニットへ電力供給を受けるとともに、情報の送受も行えるようになっている。 A programmable controller (PLC) is used as a control device for factory automation (FA) installed in a production factory (manufacturing site). This PLC is composed of a plurality of units. That is, a power supply unit of a power supply source, a CPU unit that controls the entire PLC, an output unit that inputs a switch or sensor signal attached to an appropriate place in an FA production device or facility device, an output that outputs a control output Various units such as a unit and a communication unit for connecting to a communication network are appropriately combined. Each unit is electrically and mechanically connected via a connector provided on the side surface, so that power can be supplied from the power supply unit to each unit and information can be transmitted and received.
PLCのCPUユニットにおける制御は、入力ユニットで入力した信号をCPUユニットのI/Oメモリに取り込み(INリフレッシュ)、予め登録されたユーザプログラム記述言語(例えばラダー言語)で組まれたユーザプログラムに基づき論理演算をし(演算実行)、その演算実行結果をI/Oメモリに書き込んで出力ユニットに送り出し(OUTリフレッシュ)、その後、いわゆる周辺処理を行うと言うことをサイクリックに繰り返し処理するようになる。 The control in the CPU unit of the PLC is based on a user program written in a user program description language (for example, ladder language) registered in advance by fetching a signal input from the input unit into the I / O memory of the CPU unit (IN refresh). Perform logical operation (operation execution), write the operation execution result to the I / O memory, send it to the output unit (OUT refresh), and then perform cyclic processing repeatedly to perform so-called peripheral processing. .
ところで、PLCを構成するユニットの中には、インテリジェントな高機能な制御を行うための高機能ユニットもある。この高機能ユニットは、例えば、温度等のアナログ値を受け、PID制御を行う等の専用のプロセス制御(アナログ制御)のプログラムを実施する機能を持つプロセス制御ユニットや、モーション制御を行うモーションコントロールユニットなど、各種のものがある。このモーションコントロールユニットは複数のモータを駆動制御できるものであり、その用途は、複数のモータの駆動軸を3軸(いわゆるX軸、Y軸、Z軸)の方向(左右、前後、上下の3方向)とし、駆動系の対象物の位置決めを制御するような例がある。また、モーションコントロールユニットに同期コントローラと称されるものがあり、それは多軸の制御を行う際に各軸の動作を同期制御できる機能をもっている。 Incidentally, among the units constituting the PLC, there is also a high-function unit for performing intelligent high-function control. This high-function unit is, for example, a process control unit having a function for executing a program for exclusive process control (analog control) such as receiving an analog value such as temperature and performing PID control, or a motion control unit for performing motion control. There are various things. This motion control unit is capable of driving and controlling a plurality of motors, and is used for three driving axes of the plurality of motors (so-called X-axis, Y-axis and Z-axis) (left and right, front and rear, and top and bottom 3). Direction) and the positioning of the object of the drive system is controlled. Also, there is a motion control unit called a synchronous controller, which has a function capable of synchronously controlling the operation of each axis when performing multi-axis control.
この種の同期コントローラにおいて、特許文献1に開示された発明のようにコントローラ内に数軸(2軸または4軸程度まで)のコントロール機能を搭載したり、特許文献2に開示された発明のようにネットワーク方式にて多軸(6軸以上)のコントロール機能を搭載してモーション制御を行う構造が一般的である。また、上記コントローラ内蔵タイプやネットワークタイプにてその同期手段として共有メモリと割込み信号を使用した方式や通信コマンドによる方式等がある。
In this type of synchronous controller, as in the invention disclosed in
上述した従来の装置では、以下に示す問題があった。すなわち、 多軸コントロールを1つのメインCPUにて処理する場合には、その制御性能はそのメインCPUの処理能力に依存するところが大きく、性能を低下させることなく多軸制御を実現しようとすると、そのCPUに求められる性能もどんどん増大し結果としてコントローラとしてかなり高価なものとなってしまう。少軸制御しか必要としない顧客にとっては、そのようなコントローラはオーバースペックとなるうえ、コスト高となり、デメリットが生じる。 The conventional apparatus described above has the following problems. In other words, when multi-axis control is processed by one main CPU, the control performance largely depends on the processing capacity of the main CPU. If multi-axis control is to be realized without degrading the performance, The performance required for the CPU is also increasing, and as a result, the controller becomes quite expensive. For customers who need only a few axis control, such a controller is over-specification, costly, and disadvantageous.
構造的な面でも、1つのユニット筐体にコントロール機能を内蔵する方式は、多軸分のモーターコントロールI/Fを搭載しなければならず筐体が大きくなってしまい、大きな設置スペースが必要となり、デメリットが生じる。特に少軸制御しか必要としない顧客にとっては、筐体が大きくなることは、設置場所の制約となり、デメリットが生じることがある。 In terms of structure, a method that incorporates a control function in a single unit housing must be equipped with multi-axis motor control I / Fs, which requires a large installation space. , Disadvantages occur. Especially for customers who need only a few axis control, an increase in the size of the housing may be a limitation of the installation location and may be disadvantageous.
さらに、コントローラのメインCPUが通信ネットワーク方式でモーション制御する場合には、その通信における情報伝達が1(メインCPU):N(各モータ等)となり、ネットワーク環境によっては、各モータ間での情報伝達にタイムラグが生じることがあり、同期などモーション制御においては軸間動作のズレを生み出す要因となる。そして、軸数が多くなればなるほど通信サイクルも増大するため、このズレ幅も通信サイクルに比例して増大することになる。 Further, when the main CPU of the controller performs motion control by the communication network method, information transmission in the communication is 1 (main CPU): N (each motor, etc.), and information transmission between the motors depending on the network environment. There may be a time lag, and in motion control such as synchronization, it becomes a factor that causes a shift in the movement between axes. And as the number of axes increases, the communication cycle also increases, so this deviation width also increases in proportion to the communication cycle.
通信ネットワーク方式では各制御軸に指令値を事前に送信し、起動指令を一斉にかけるようにすれば同期動作としての性能は出せるものの、制御軸数が増えるにつれてメインCPUの処理負荷も増大し、通信サイクルも増大することになり、外部情報からのレスポンス動作に対して性能が低下するという問題を生じる。 In the communication network method, the command value is transmitted to each control axis in advance, and if the start command is applied all at once, the performance as a synchronous operation can be achieved, but the processing load of the main CPU increases as the number of control axes increases, The communication cycle also increases, causing a problem that the performance is lowered with respect to the response operation from the external information.
この発明は、必要な軸数に応じてパフォーマンスの高いコントローラを構築でき、モジュール間での同期を簡単に取ることができ、しかも、コントロールモジュールにおける制御対象に対する制御のための演算処理への影響を可及的に抑制すると共に、各モジュールの負荷の軽減を図ることのできる同期コントローラを提供することを目的とする。 According to the present invention, a controller with high performance can be constructed according to the required number of axes, the synchronization between modules can be easily taken, and the influence on the arithmetic processing for controlling the control target in the control module can be reduced. An object of the present invention is to provide a synchronous controller that can suppress the load as much as possible and reduce the load on each module.
この発明による同期コントローラは、サイクルマスタモジュールと、少なくとも1台以上のコントロールモジュールを備え、サイクルマスタモジュールとコントロールモジュールとは、同期バスと、同期バスが扱うデータの量に比較して大量のデータを扱うイベントバスからなる2重バス構造で接合され、コントロールモジュールは、制御対象機器の動作を制御するユーザプログラムをサイクリックに演算実行する機能を有し、サイクルマスタモジュールは、制御対象機器以外の外部装置との間のデータの送受、並びに前記コントロールモジュールに対してイベントバスおよび同期バスを用いてデータの送受を行なう機能を有し、コントロールモジュールは、サイクルマスタモジュールから同期バスを介して送られる同期データを受信することを契機に、1サイクル分の演算実行を行なうようにした。 The synchronous controller according to the present invention includes a cycle master module and at least one control module. The cycle master module and the control module store a large amount of data compared to the amount of data handled by the synchronous bus and the synchronous bus. The control module has a function to cyclically execute a user program for controlling the operation of the control target device, and the cycle master module is an external device other than the control target device. It has a function of sending / receiving data to / from the apparatus and sending / receiving data to / from the control module using an event bus and a synchronous bus. The control module is synchronized with the cycle master module via a synchronous bus. Receiving data As a result, one cycle of calculation execution is performed.
モーションコントローラなどの同期機能を有するコントローラにおいて、その構造をサイクルマスタモジュール、コントロールモジュールなどから構成されるモジュール構造とし、モジュール(サイクルマスタ、モーションコントロール)にはそれぞれユーザによるプログラミングとそのプログラム実行機能を搭載するようにした。これらモジュールが毎サイクル情報共有し、その情報共有エリアをユーザプログラムが利用できるようにすることで各モジュールが同期プログラム実行できる。常に共有される同期データは各モジュールのユーザプログラムから任意に参照でき、かつすべての共有同期データが参照できるようになると、複数の同期情報によりアプリケーションプログラムを作成することができる。 A controller with a synchronization function, such as a motion controller, has a modular structure consisting of a cycle master module, a control module, etc., and each module (cycle master, motion control) has user programming and program execution functions. I tried to do it. These modules share information every cycle, and by making the information sharing area available to the user program, each module can execute a synchronous program. The synchronization data that is always shared can be arbitrarily referenced from the user program of each module, and when all the shared synchronization data can be referenced, an application program can be created with a plurality of synchronization information.
そして、ユーザがアプリケーション(特に2軸から4軸程度の少軸規模の同期・トルク・テンション制御アプリケーション)に応じてコントロールモジュールを付加して同期コントローラを構築することができるため省スペース、コストパフォーマンス高く使用することができる。 And since the user can build a synchronous controller by adding a control module according to the application (especially a small-axis synchronous / torque / tension control application of 2 to 4 axes), it saves space and has high cost performance. Can be used.
各モジュール間は同期バスと大量のデータを扱うイベントバスの2重構造としているためそれぞれの目的に応じたパフォーマンスのバス構造を使用することができる。これにより、扱うデータは小容量だが超高速で定時性が必要となる同期と、高速性や定時性は必要ないが取り扱うデータは大容量となるイベントの特性の異なる処理を共通のバス構造とするのではなく分離することで、利用するバス構造が高いパフォーマンスでなくても十分な同期性能を実現できる。 Since each module has a double structure of a synchronous bus and an event bus that handles a large amount of data, a bus structure with a performance corresponding to each purpose can be used. As a result, a common bus structure is used for processing that requires a small amount of data, but is very fast and requires punctuality, and processing that does not require high speed and punctuality but handles large amounts of data with different event characteristics. Separation instead of, it is possible to achieve sufficient synchronization performance even if the bus structure used is not high performance.
また、多軸構成となってもコントロールモジュールの数を適宜に設定することにより、各モジュール当たりのCPUの処理負荷も増大することはないため、高速で安定した制御性能を発揮する。 Further, even if a multi-axis configuration is used, by appropriately setting the number of control modules, the processing load of the CPU per module does not increase, so that high-speed and stable control performance is exhibited.
さらにコントロールモジュールを複数設けた場合、各モジュールにユーザプログラムを作成することが可能であるため、アプリケーションからみた処理の負荷分散が可能となり、プログラム内容と配置を工夫することでより処理性能の高いコントローラを得ることができる。 In addition, when multiple control modules are provided, it is possible to create a user program for each module, so it is possible to distribute the processing load from the viewpoint of the application, and a controller with higher processing performance by devising the program contents and arrangement Can be obtained.
なお、所定数のコントロールモジュールは、通常は複数個で用いられるが、所定数には1個も含む。すなわち、たとえコントロールモジュールが1つであっても、イベントその他の容量の大きなデータの送受や、外部との通信などの処理をサイクルマスタモジュールに実行させることにより、コントロールモジュールは、制御対象機器に対する制御のための演算処理等に注力できるので好ましい。 The predetermined number of control modules is normally used in plural, but the predetermined number includes one. In other words, even if there is only one control module, the control module controls the control target device by causing the cycle master module to execute processing such as sending and receiving events and other large-capacity data and communication with the outside. This is preferable because it can focus on the arithmetic processing for the purpose.
各モジュールの同期の基準となるサイクルマスタモジュールからの同期データの送信タイミングは、各種の設定をすることができる。一例として、接続された全てのコントロールモジュールからの同期データを受信したことを条件に、自己の同期データを出力するようにすることができる。別の方法としては、一定間隔で同期データを出力するように設定できる。これらの設定条件を複数実装し、適宜に切り替えて実施することもできる。 Various settings can be made for the transmission timing of the synchronization data from the cycle master module, which is the reference for synchronization of each module. As an example, it is possible to output own synchronization data on condition that the synchronization data from all connected control modules has been received. As another method, synchronization data can be set to be output at regular intervals. It is also possible to implement a plurality of these setting conditions by switching them as appropriate.
また、前記コントロールモジュールが複数設けられ、他のコントロールモジュールから前記同期バスを介して送られてきた同期データを受信するとともに、同期データ記憶エリアに格納し、その格納した同期データを演算実行の際に利用可能にするとよい。本コントローラでは多軸同期可能なようにモジュール間で常に情報を共有するための専用同期バスとイベント的に必要時に情報交換するイベント専用バスを用意し、各モジュールが同期して動作するためのタイミングを生成するサイクルマスタ機能を有するモジュールを用意している。これにより、分散構造となった場合のモジュール間をまたがった多軸同期制御の実現できる。 In addition, a plurality of the control modules are provided to receive synchronization data sent from the other control modules via the synchronization bus, and store the synchronization data in the synchronization data storage area. It is good to make it available. This controller provides a dedicated synchronization bus for always sharing information between modules so that multi-axis synchronization is possible, and an event dedicated bus for exchanging information when necessary for events, and the timing for each module to operate in synchronization. The module which has the cycle master function which produces | generates is prepared. Thereby, multi-axis synchronous control across modules in the case of a distributed structure can be realized.
別の解決手段としては、制御対象機器を接続する所定数のコントロールモジュールと、その各コントロールモジュールとの間でデータ送受を行なうサイクルマスタモジュールとからなり、前記各コントローラモジュールと前記サイクルマスタモジュールが同期バスで接合された制御システムであって、前記サイクルマスタモジュールは、各コントロールモジュールとの間で同期バスを介して同期データを送受してデータ共有する同期バスリフレッシュ処理、その同期データに基づいてユーザプログラムを実行する状態別処理、をサイクリックに実行するものであり、前記各コントロールモジュールは、サイクルマスタモジュールおよび他のコントローラモジュールとの間で同期バスを介して同期データを送受してデータ共有する同期バスリフレッシュ処理、その同期データに基づいて接続制御対象機器の動作に対するユーザプログラムを実行する状態別処理、をサイクリックに実行するものであり、サイクルマスタモジュールの同期バスリフレッシュ処理によって各コントロールモジュールは同期され、サイクルマスタモジュールおよびコントロールモジュールの同期バスリフレッシュ処理によって、順次1つのモジュールが送信元となって他モジュールへ同期データを一斉同報することによりすべてのモジュールが共通データを共有するように構成しても良い。 As another solution, a predetermined number of control modules for connecting control target devices and a cycle master module for transmitting / receiving data to / from each control module, the controller module and the cycle master module are synchronized. A control system joined by a bus, wherein the cycle master module transmits and receives synchronous data to and from each control module via a synchronous bus and shares data, and a user based on the synchronous data A process according to a state for executing a program is cyclically executed, and each control module transmits and receives synchronous data to and from the cycle master module and other controller modules via a synchronous bus. Synchronous bass riff The process is cyclically executed according to the synchronization process and the state-specific process for executing the user program for the operation of the connection control target device based on the synchronization data, and the control modules are synchronized by the synchronization bus refresh process of the cycle master module. By the synchronous bus refresh processing of the cycle master module and the control module, all modules share the common data by sequentially broadcasting the synchronous data to other modules as a source. Also good.
また、コントロールモジュールは、増減可能に構成されるとよい。同期コントローラをモジュール分割された構造とし、その分割されたモジュールに1軸or2軸程度のコントロール機能とそのコントロール内容を実現するためのCPUとそのコントロールに必要なユーザプログラムを実行するプログラミング機能を搭載することにより、ユーザにおいて必要な軸数に応じてパフォーマンスの高いコントローラを構築できるようにする。また、制御軸数に応じてモジュールを付加する構造のため最適なコストと大きさでコントローラを使用することができる。そして、監視対象の変化に応じて適宜コントロールモジュールを増減することにより、最適な状態を維持できる。 The control module may be configured so that it can be increased or decreased. The synchronous controller has a module-divided structure, and the divided module is equipped with a control function of about 1 axis or 2 axes, a CPU for realizing the control contents, and a programming function for executing a user program necessary for the control. As a result, a high-performance controller can be constructed according to the number of axes required by the user. Further, the controller can be used at an optimal cost and size because of the structure in which modules are added according to the number of control axes. And an optimal state can be maintained by increasing / decreasing a control module suitably according to the change of monitoring object.
さらに、システム設定により各モジュールの同期バスを介して送受する同期データの情報種類を選択できる手段を備えるとよい。さらにまた、コントロールモジュールは、制御対象機器とデータを直接送受するためのインタフェース備えているようにするとよい。制御対象の外部機器からの情報入手手段等のインタフェースをコントロールモジュールに内蔵しているため、外部動作の変化に対して高速に反応することができ高いフィードバック制御性能を得ることができる。 Furthermore, it is preferable to provide means capable of selecting the type of information of synchronization data transmitted / received via the synchronization bus of each module according to the system setting. Furthermore, the control module may be provided with an interface for directly transmitting / receiving data to / from the control target device. Since the control module incorporates an interface for obtaining information from an external device to be controlled, the control module can respond to changes in external operation at high speed, and high feedback control performance can be obtained.
同期バスを介して行なわれるモジュール間の通信は、順次1つのモジュールが送信元となって他モジュールへ同期データを一斉同報することによりすべてのモジュールが共通データを共有する。そして、各モジュールが順番に送信元となって、全モジュールに送信元の順番がまわるようにしている。 In communication between modules performed via the synchronous bus, all modules share common data by simultaneously broadcasting synchronous data to other modules with one module as a transmission source. Each module becomes a transmission source in turn, and the order of the transmission source is rotated for all modules.
この発明では、必要な軸数に応じてパフォーマンスの高いコントローラを構築でき、モジュール間での同期を簡単に取ることができ、しかも、コントロールモジュールにおける制御対象に対する制御のための演算処理への影響を可及的に抑制すると共に、各モジュールの負荷の軽減を図ることができる。 In the present invention, a controller with high performance can be constructed according to the number of required axes, synchronization between modules can be easily achieved, and the influence on the arithmetic processing for controlling the control target in the control module can be reduced. While suppressing as much as possible, the load of each module can be reduced.
図1は、本発明の同期コントローラを含むFAシステム全体を示している。同期コントローラ10は、PLC等の上位コントローラ1と接続されるとともに、上位コントローラ1に表示器2が接続された構成を取っている。同期コントローラ10は、上位コントローラ1から命令を受けると、その命令を実行すべく所定の制御を行ない、その結果を上位コントローラ1に返すようになる。
FIG. 1 shows the entire FA system including the synchronous controller of the present invention. The
同期コントローラ10は、電源モジュール11とサイクルマスタモジュール12と、モーションコントロールモジュール13と、エンドモジュール14から構成される。1つのサイクルマスタモジュール12に対し複数のモーションコントロールモジュール13を装着可能としている。サイクルマスタモジュール12とモーションコントロールモジュール13は、共にユーザプログラムがインストールされ、それぞれがサイクリックに実行される。
The
本例では、サイクルマスタモジュール12のシリアルポートSP1にプログラミングツール3を接続し、サイクルマスタモジュール12のユーザプログラムは、そのプログラミングツール3から直接サイクルマスタモジュール12にアップロード・ダウンロードされ、モーションコントロールモジュール13のユーザプログラムは、プログラミングツール3からサイクルマスタモジュール12を経由してアップロード・ダウンロードがされる。また、サイクルマスタモジュール12の別のシリアルポートSP2には、上位コントローラ1のCPUユニット1aに接続される。
In this example, the
モーションコントロールモジュール13は、サイクルマスタモジュール12によって同期制御されるものであり、モーションコントロールモジュール13のユーザプログラムの実行処理によって、サーボドライバ5に対して制御信号を出力する。そして、サーボドライバ5が制御対象のサーボモータ4を制御することによって、実際にモーション制御を行うものである。サイクルマスタモジュール12は、上位コントローラ1から命令を受けて、サイクルマスタモジュール12自身のユーザプログラムを演算実行する機能や、その演算実行の処理結果に基づいて各モーションコントロールモジュールを同期動作させるためのタイミングを生成する機能や、処理を終えたときにその結果を上位コントローラ1に通信する機能、さらにプログラミングツール3と通信を行う機能、自身あるいはモーションコントロールモジュール13と外部の装置である上位コントローラ1または表示器2との間のデータの受け渡し(ゲートウェイ)をする機能などを備えている。なお、図ではモーションコントロールモジュール13とサーボドライバ5とを別体としているが、モーションコントロールモジュール13にサーボドライバ5を内蔵させた構成としてもよい。
The
つまり、従来と本実施例とを対比して説明すると、従来のPLCに高機能ユニットの一つとして連結されたモーションコントロールユニットの場合、モーション制御を行う機能と、PLCを構成するCPUユニットとの間の通信を行う機能が組み込まれていた。そしてモーションコントロールユニットにおいてユーザプログラム実行と周辺処理とをサイクリックに実行し、ユーザプログラムの実行時にモーション制御を行い、周辺処理実行時にCPUユニットとの間の通信等を行うようにしていた。本実施の形態の場合、従来のモーションコントロールユニットが持つモーション制御機能と周辺処理機能とを別々のユニットで分けて処理するようにし、サイクルマスタモジュール12がPLCのCPUユニットとの間の通信を行い、サイクルマスタモジュールにバスを経由してつながれたモーションコントロールモジュール13がモーション制御に関する処理を実行するようにした。これにより、高速かつ高精度な制御を行えるようになる。
In other words, the conventional and this embodiment will be described in comparison. In the case of a motion control unit connected to a conventional PLC as one of high-function units, the function of performing motion control and the CPU unit constituting the PLC The function which performs communication between was built in. The motion control unit cyclically executes user program execution and peripheral processing, performs motion control when executing the user program, and communicates with the CPU unit when executing the peripheral processing. In the case of the present embodiment, the motion control function and peripheral processing function of the conventional motion control unit are processed separately in separate units, and the
さらに、モーションコントロールモジュール13は複数連結可能、着脱可能となっているので、用途に合わせてモーションコントロールモジュール13の台数を増減することができ、アプリケーションにあわせたコントローラ構造が構築でき、必要十分で適切なスペース・コストとなり好ましい。コントローラとして、それぞれのモジュールが成すべき処理を分散させて各モジュールにユーザプログラムを持たせることが可能であるため、複数モジュール構成となっても処理能力を低下させることなく実行させることも可能である。
Furthermore, since a plurality of
さらに、モーションコントロールモジュール13を複数連結した場合、後述する同期バスの活用により別のモーションコントロールモジュール13が持つI/Oの情報を高速で入手するとともに自モジュールの処理に使用することも可能である。よって、例えば、パルス入出力機能を有するモーションコントロールモジュール13がアナログ入出力機能を有する他のモーションコントロールモジュールからアナログ入力情報を同期バスを介して入手し、如何にも自モジュールが内蔵するI/Oかのように使用して自モジュールのパルス出力制御などに使用することが可能である。これにより、より複雑な制御も高速かつ高精度に行うことができる。
Further, when a plurality of
次に、上述した処理機能を実現するための具体的なモジュールの構成を説明する。図2は、ハードウェア構成を示しており、図3はソフトウエアに着目したコントローラの内部イメージを示している。 Next, a specific module configuration for realizing the processing functions described above will be described. FIG. 2 shows a hardware configuration, and FIG. 3 shows an internal image of the controller focused on software.
この実施の形態では、サイクルマスタモジュール12,モーションコントロールモジュール13が、共にMPU12a,13aと、ROM12b,13bと、RAM12c,13cを有し、各モジュール12,13のシステムソフトはMPU12a,13aまたはROM12b,13bに格納される。また、このROM12b,13bは、たとえばフラッシュROMを用いることができ、ユーザにて作成されるユーザプログラムもこのROM12b,13bにバックアップ格納される。
In this embodiment, both the
図3参照に示すように、RAM12c,13c内の記憶領域は、ユーザプログラムエリア,変数エリア,ワークエリアが設定されており、ユーザプログラム実行時は電源ON時にROM12b,13bからRAM12c,13cに展開されてそれを実行する。
As shown in FIG. 3, a user program area, a variable area, and a work area are set as storage areas in the
また、変数エリア(変数メモリ)はユーザプログラムにて使用するためのエリアであり、各モジュール12,13が持つI/Oのデータや、モジュール間で交換する情報の格納エリアとして使用される。ワークエリアは各モジュール12,13のシステムソフトがシステム実行のために使用するエリアである。
The variable area (variable memory) is an area for use in the user program, and is used as a storage area for I / O data held by the
これらのMPU12a,13a,ROM12b,13b,RAM12c,13cの機能は、PLCを構成するCPUユニットや、モーションコントロールニットなどに実装されるものと基本的に同様である。
The functions of these MPUs 12a, 13a,
さらにモーションコントロールモジュール13は、サーボモータなどの制御対象を含むI/O機器(外部装置)を制御するためのパルス入出力やアナログ入出力回路13hを有し、それら各入出力回路13hは、特殊I/Oポート13iを介して外部のI/O機器と接続されるようになっている。ここに接続されるI/O機器としては、図1に示すサーボモータ4を制御するサーボドライバ5がある。そして、外部のI/O機器(入力機器)から取得した入力信号は、MPU13aに与えられ(パルス入力回路はASIC13gを介して)、MPU13aから外部のIO機器(出力機器)へ対して送るデータは、アナログ出力回路,パルス出力回路13hを介して行われる。
Furthermore, the
また、モーションコントロールモジュール13には、装置構成の共通化を図る上でパルスの入出力回路とアナログの入出回路13hの両方を設けたが、実際の運用に際しては、それら全てを用いてもよいし、パルスとアナログのうちの一方のみとしたり、入力回路のみあるいは出力回路のみを実際に稼働するようにしてもよい。このようにどの種類を有効にするかは、システム設定(図3参照)により設定されている。また、モーションコントロールモジュール13の外部I/Fとしてこれらパルス・アナログ入出力回路だけではなく通信I/Fを設けてもよい。
The
さらに、サイクルマスタモジュール12,モーションコントロールモジュール13は、外部I/FとしてI/Oポート12j,13jを有し、そのI/Oポート12j,13jに接続された機器とMPU12a,13aとの間でデータの送受が可能となる。つまり、モーションコントロールモジュール13では、直接モータ制御するための汎用的なI/O機能部(パルスまたはアナログなど)と、直接外部機器(ON/OFFセンサ、アナログセンサ、エンコーダなど)から情報を入手するI/O機能部を有する。
Furthermore, the
各モジュールは、上述した各外部I/F(I/Oポート12j,13j,特殊I/Oポート13iなど)から取得した入力データに基づき、ユーザプログラムを演算実行し、得られた演算結果を所定の外部I/Fを介して出力することにより制御することをサイクリックに繰り返す(1サイクル分の処理については図6、図7にて後述する)。このように、モータ制御には、汎用インタフェースを利用することができるため、市販のモータから適切なものを選択できる。また、通信ネットワークに比べ、モータ制御手段がパルスやアナログとなるため指令が連続的なものとなり滑らかな制御を実現することが可能となる。
Each module computes and executes a user program based on input data acquired from each external I / F (I /
また、各モジュールでのモーターコントロールにおいて、数軸(1or2単位)で専用のCPUを持たせ直接外部からの情報入力、モータへのパルスまたはアナログにて指令を出力できる構造となる。よって、使用されるモータについてはパルスまたはアナログI/F方式となり汎用品から広く選択できる他、直接外部機器からの情報を取り込めるため通信方式などのようにタイムラグもなくクイックな応答性能を実現することができる。 Further, in the motor control in each module, a dedicated CPU is provided on several axes (1 or 2 units) so that a command can be output directly by inputting information from the outside, a pulse to the motor, or analog. Therefore, the motor to be used can be selected widely from general-purpose products using pulse or analog I / F methods, and since it can directly capture information from external devices, it can realize quick response performance without time lag as in communication methods. Can do.
さらに、各モジュール間は、イベントバスと同期バスで繋がっており、エンドモジュール14には、それら各バスを終端するバス接続終端機能14aを有する。そして、モーションコントロールモジュール13には、イベントバスに接続される共有メモリ13fを有し、サイクルマスタモジュール12にはイベントバスに接続されるイベント送受用ASIC12dが備えられている。このイベント送受用ASIC12dはサイクルマスタモジュールがモーションコントロールモジュール13内の共有メモリ13fへアクセスする際にそのデータ送受を補間する機能を有し、サイクルマスタモジュールはこのイベント送受用ASIC12dを使用してゲートウェイとしての機能を成す。例えば上位コントローラ1やプログラミングツール3などからモーションコントロールモジュール13宛にイベント,プログラム等が送られてきた場合に、対応するモーションコントロールモジュール13(モジュール番号などにより特定)の共有メモリ13fに係るイベント等を格納する。また、モーションコントロールモジュール13は、共有メモリ13fに格納されたデータを読み出してイベントに対するレスポンスとして外部の上位コントローラ1などへ返送する処理などを実行する。
Further, the modules are connected by an event bus and a synchronous bus, and the
このイベントバスを介して伝送されるデータは、一般に容量が大きく伝送に時間がかかるため、従来のモーションコントロールユニットのようにサイクリックに行なわれる周辺サービスの時に行なうと、時間がかかり本来のモーション制御に支障を来すおそれがあるが、本実施の形態では、モーション制御を行なわないサイクルマスタモジュール12が係るデータ転送を実行するためモーション制御に支障を生じない。さらに、同期制御を行なうための同期バスと別にイベントバスを設けたため、共有メモリ13fへのアクセスと平行して同期バスを介して同期制御のためのデータの送受が行なえるので、同期制御への支障も生じない。
Since data transmitted via this event bus generally has a large capacity and takes a long time to transmit, it takes time to perform the original motion control when it is performed during a peripheral service performed cyclically like a conventional motion control unit. However, in this embodiment, since the
同期バスに接続される同期用ASIC12e,13eが各モジュール12,13内にそれぞれ実装され、同期用ASIC12e,13eにMPU12a,13aが接続される。この同期用ASIC12e,13eは、データリング方式により同期バスに接続された他の全てのモジュール内の同期用ASIC12e,13eに対して一斉同報でデータを送信でき、内部に送受信データを一次記憶するためのバッファエリアを持っている。つまり、同期用ASICから同期バスにデータを出力することにより、他のモジュールの同期用ASIC12e,13eは、送られてきたデータを内部のバッファエリアに取り込むことができる。より具体的には、順次1つのモジュールが送信元となって他モジュールへ同期データを一斉同報することによりすべてのモジュールが共通データを共有するものである。このように本発明の要部の1つとなる同期バスを介してデータを送受することにより同期をとる仕組みの詳細については、後述する。
このように、各モジュール間が同期バスとイベントバスの2つのバスでつながっており、それぞれのバスを介してモジュール間のデータを交換しながら、それぞれのモジュールが内蔵するユーザプログラムを実行する。つまり、各モジュールで毎サイクル共有したい情報(データ)は小容量だが高速でデータ交換可能な同期バスを使用し、毎サイクル共有する必要のない大容量のデータはイベントバスを使用する。 In this way, each module is connected by two buses, a synchronous bus and an event bus, and a user program built in each module is executed while exchanging data between the modules via each bus. That is, information (data) that is desired to be shared by each module in each cycle uses a synchronous bus that has a small capacity but can exchange data at high speed, and a large capacity data that does not need to be shared every cycle uses an event bus.
この情報の用途目的に合わせた2重のモジュール間バス構造により、時折発生するモジュール間の大容量のデータ交換(イベント)が発生しても毎サイクル共有しなければならない情報はこの影響を受けることなく共有化される。 Due to the dual inter-module bus structure tailored to the purpose of use of this information, the information that must be shared every cycle is affected by this even if a large amount of data exchange (event) between modules occurs occasionally. Without sharing.
これにより各モジュールは、自モジュールに内蔵されたI/Oからの情報のみならず、システムにて実施される同期バス,イベントバスによるデータ交換の情報も利用することができ、ユーザプログラムがそれらの情報を任意に使用して演算ができるようになっている。もちろん、このユーザプログラムの実行に伴い求められた演算結果は、自モジュールのI/Oから出力されたり、同期バス,イベントバスによるデータ交換の情報として出力されたりする。 As a result, each module can use not only the information from the I / O built in its own module but also the data exchange information by the synchronous bus and event bus implemented in the system. Arbitrary use of information is possible. Of course, the calculation result obtained in accordance with the execution of the user program is output from the I / O of the own module, or is output as data exchange information through the synchronous bus or event bus.
図4は、同期バスを利用した同期データの共有について説明する図である。ここでは、モーションコントロールモジュール13が3個連結されており、モジュール番号がそれぞれ#1,#2,#3が設定されている。また、サイクルマスタモジュール12のモジュール番号は#0とする。
FIG. 4 is a diagram for explaining synchronization data sharing using a synchronization bus. Here, three
同期用ASIC12e、13eを用いたデータリンク方式によって同期バスにて各モジュール間で共有されたデータは、自モジュール分も他モジュール分も含めてRAM12c,13cの変数メモリ内のモジュール間同期データ記憶エリア(図3参照)に転送され、格納される。このモジュール間同期データ記憶エリアは、図4に示すように各モジュール毎に割付けられており、毎サイクルにおいてすべてのモジュールの情報が共有され、各モジュールでは自モジュール内のモジュール間同期データ記憶エリアを参照することにより、すべてのモジュールの同期データを参照することができる。
The data shared between the modules via the synchronization bus by the data link method using the
つまり、サイクルマスタモジュール12では、自モジュールが管理するデータは、#0の記憶エリアに格納するとともに、所定のタイミングで#0に格納されたデータを他のモーションコントロールモジュール13に送る。これにより、他の全てのモーションコントロールモジュール13は、送られてきたデータを受信するとともに、自己の変数メモリ内のモジュール間同期データ記憶エリアの#0に割り当てられた記憶エリアに格納する。実際には、同期用ASIC内のバッファエリアに一次記憶したデータを、所定のタイミングでモジュール間同期データ記憶エリア13eへ移す同期バスリフレッシュにより実現する。また、各モーションコントロールモジュール13(たとえば「#1」)も、自身が管理するデータ#1を送信すると、他のモーションコントロールモジュール13(たとえば「#2」,「#3」)やサイクルマスタモジュール12がその#1のデータを受信するとともに該当するモジュール間同期データ記憶エリア中の#1に割り当てられた記憶エリアに格納する。
That is, in the
この同期データの共有は、各サイクルごとに行う。そして、各モジュールが送るデータは、他のモジュールでもユーザプログラムの実行の際に参照するデータとする。これにより、1サイクル実行する都度各モジュールのモジュール間同期データ記憶エリアに格納された同期データは、最新のものに更新されているため、その最新のデータに基づいて演算実行することにより、精密で、そのときの状態にあった制御が行える。 The synchronization data is shared every cycle. The data sent by each module is data to be referred to when executing the user program in other modules. As a result, each time one cycle is executed, the synchronization data stored in the inter-module synchronization data storage area of each module is updated to the latest one. The control suitable for the state at that time can be performed.
この同期バスを介して送受する同期データの種類は、図5に示すように、各モジュールが持つ情報を任意に選択して同期データとして各モジュール間で共有することができるようにしている。例えば、同期データとして共有できるのは自モジュール内のユーザプログラム実行にて生成される演算結果はもちろんであるが、それに限ることはなく自モジュールが持つI/Oの最新値を同期データとすることができる。さらに、自モジュールが持つI/O情報を同期データとする場合には、自モジュールに設定されるシステム設定にて登録することができ、登録された情報が同期データとしてシステムにて自動で転送され交換される。なお、この図5における同期データエリア(+0,+1,……+n)が、図4における1つの記憶エリア(たとえば「#1」についての記憶エリア)に対応し、各エリアにおいてnの値は任意にとれる。つまり、各記憶エリアのデータ容量は異なることを許容している。 As shown in FIG. 5, the types of synchronization data transmitted / received via the synchronization bus are such that information held by each module can be arbitrarily selected and shared between the modules as synchronization data. For example, the data that can be shared as synchronization data is of course the calculation result generated by executing the user program in the own module. Can do. Furthermore, when the I / O information of the own module is used as synchronization data, it can be registered by the system settings set in the own module, and the registered information is automatically transferred as synchronization data by the system. Exchanged. Note that the synchronous data area (+0, +1,... + N) in FIG. 5 corresponds to one storage area in FIG. 4 (for example, the storage area for “# 1”), and the value of n in each area is Can be taken arbitrarily. In other words, the data capacity of each storage area is allowed to be different.
そして、本実施の形態では、各モジュール間の同期データの共有は、同期データ送受信と同期バスリフレッシュの2つの処理からなる。同期データ送受信は、各モーションコントールモジュール13が自モジュールの同期データを順次に同期バスへ一斉同報で送信し、他のモジュール(各モーションコントールモジュール13およびサイクルマスタモジュール12)が送信されてきたデータを受信する一連のデータ送受信に対応する。また、同期データ送受信は、サイクルマスタモジュール12が自モジュールの同期データを同期バスへ一斉同報で送信し、各モーションコントールモジュール13が送信されてきたデータを受信するデータ送受信にも対応する。サイクルマスタモジュール12の同期データ送受信は、全てのモーションコントロールモジュール13の一連の同期データの送受信が完了した後、サイクルマスタモジュール12がそれを認識したことによって実行される。
In this embodiment, the sharing of the synchronization data between the modules consists of two processes, that is, synchronization data transmission / reception and synchronization bus refresh. In the synchronous data transmission / reception, each
同期バスリフレッシュは、各モジュールがそれぞれ同期用ASIC12eまたは13eのバッファエリアから、変数メモリ12cまたは13c内のモジュール間同期データ記憶エリア中の割り当てられた記憶エリアにすべての同期データを転送し格納することに対応する。この同期バスリフレッシュは、サイクルマスタモジュールの管理によって、全てのモーションコントロールモジュール13による一連の同期データの送受信とサイクルマスタモジュール12の同期データを送受信とが完了したことに基づいて行う。
In synchronous bus refresh, each module transfers and stores all synchronous data from the buffer area of the
この同期バスリフレッシュを実現するやりかたは複数ある。一例として、各モーションコントールモジュール13が、サイクルマスタモジュール12から一斉同報で送信されてきた同期データを受信したことに連動して、同期用ASIC13eのバッファエリアからモジュール間同期データ記憶エリアにすべての同期データを転送し格納するように動作するようにしてもよい。別の例としては、サイクルマスタモジュール12が同期データを同期バスへ一斉同報で送信した後、さらに同期バスを介して各モーションコントロールモジュール13に対して同期データリフレッシュ処理のトリガ信号を一斉同報で送信するようにしてもよい。この別例においては、各モーションコントロールモジュール13は、サイクルマスタモジュール12から一斉同報で送信されてきた同期データを受信したことに連動して同期バスリフレッシュ処理をするのではなく、サイクルマスタモジュール12からの同期バスリフレッシュ処理トリガ信号を契機にして同期バスリフレッシュ処理をすることとなる。
There are multiple ways to achieve this synchronous bus refresh. As an example, all the
各モーションコントロールモジュール13の処理の同期について説明する。 各モーションコントロールモジュール13は、他の各モーションコントロールモジュール13からの同期データを受信した後、最後にサイクルマスタモジュール12から同期データを受信するので、サイクルマスタモジュール12からの同期データ受信により、そのサイクルでの同期データの送受信は完了したと判断できる。よって各モーションコントロールモジュール13はサイクルマスタモジュールからの同期データ受信を契機として、同期バスリフレッシュを行い、自モジュールのユーザプログラムの演算処理を行う。つまり、各モーションコントロールモジュール13は、サイクルマスタモジュール12からの同期データを受信することを契機として図6に示す1サイクル分の処理、つまり状態別処理と周辺サービス処理を行う。こうすることで各モーションコントロールモジュール13同士が同期を取って演算処理を実行することができる。
The synchronization of the processing of each
なお、「同期データ受信を契機として」の意味には、前述の同期データリフレッシュ処理の別例のように、サイクルマスタモジュール12からの同期バスリフレッシュ処理トリガ信号を契機にする場合を含む。この場合、各モーションコントロールモジュール13は、サイクルマスタモジュール12からの同期バスリフレッシュ処理トリガ信号を契機に図6に示す1サイクル分の処理を行うようになる。
The meaning of “when triggered by reception of synchronous data” includes a case where triggered by a synchronous bus refresh process trigger signal from the
そして、サイクルマスタモジュール12における動作内容は図7に示すフローチャートのようになっている。初めに、電源ONに伴う初期化処理(S21)を実行後、まず共通処理を行なう(S22)。この共通処理で、サイクルマスタモジュール12は、同期データ受信管理、同期データ送信および同期バスリフレッシュを行う。サイクルマスタの同期データ送受信の処理は、全てのモーションコントロールモジュール13の一連の同期データの送受信が完了したかどうかを管理していて、その完了後に、自モジュールの同期データを同期バスへ一斉同報で送信する処理である。同期バスリフレッシュ処理は、すべてのモーションコントロールモジュールから受信した同期データをASIC12eのバッファエリアからモジュール間同期データ記憶エリアへ転送し格納する処理である。なお、前述の同期バスリフレッシュ処理の別例のように、サイクルマスタモジュール12から同期バスリフレッシュ処理トリガ信号を出力する場合は、そのトリガ信号出力処理を含む。
The operation contents in the
また、サイクルマスタモジュール12がこの共通処理を別途定時割り込み処理で実行することができるが詳細は後述する。
Further, the
同期バスリフレッシュを終了すると、次いで、状態別処理(S23)として、ユーザプログラムを演算処理し、サイクルタイムを算出後、自身のI/Oリフレッシュを行なう。このI/Oリフレッシュ処理は、演算処理の結果を次のサイクルの同期データとして、変数メモリ12cのモジュール間同期データの所定エリアに格納する処理を含む。
When the synchronous bus refresh is completed, as a state-specific process (S23), the user program is arithmetically processed, the cycle time is calculated, and then its own I / O refresh is performed. This I / O refresh process includes a process of storing the result of the arithmetic process in the predetermined area of the inter-module synchronization data of the
そして、周辺サービス処理を実行する(S24)。サイクルマスタモジュール12においては、イベントバスを介して行なうモーションコントロールモジュール13との間のイベント等の送受に加え、外部の装置(上位コントローラ1やプログラミングツール3)との間の通信を行なう。このように、サイクルマスタモジュール12は、イベントバスサービスにより高速交換を要求されないデータの交換や接続される周辺機器のサービス要求により必要によりイベントバスサービスにてモーションコントロールモジュール13へのイベントを発行する。このように、共通処理S22,状態別処理S23,周辺処理S24をサイクリックに繰り返し実行する。
Then, peripheral service processing is executed (S24). The
モーションコントロールモジュール13のMPU13aにおける動作内容は図6に示すフローチャートのようになっている。電源ONに伴う初期化処理(S11)を実行後、まず共通処理を行なう(S12)。共通処理では、自身の同期データを同期バスへ一斉同報で送信する処理と、待機処理と、同期バスリフレッシュとを行う。待機処理については、図8中の待機の箇所で後述する。そして、待機処理を経て、同期用ASIC13eがサイクルマスタモジュール12から同期データを受信し、これを契機に同期バスリフレッシュを実行する。この同期バスリフレッシュは、MPU13aが同期バスを介してサイクルマスタモジュール12から送信されてきた同期データをASIC13eが受信することを契機に、ASICが受信した他の各モーションコントロールモジュール13からの同期データおよびサイクルマスタモジュール12からの同期データをモジュール間同期データ記憶エリア13eに転送し格納する。すべてのモーションコントロールモジュール13が同じ処理をすることにより、サイクルマスタモジュール12からの同期データ受信を契機にタイミングを合わせることができ、同期を取って状態別処理(S23)に移行することになる。この契機については、前述の同期バスリフレッシュ処理の別例のように、サイクルマスタモジュール12から同期バスリフレッシュ処理トリガ信号を受信することを契機にすることもできる。
The operation content in the
同期バスリフレッシュを終了すると、次いで、状態別処理(S23)として、ユーザプログラムを演算処理し、サイクルタイムを算出後、自身のI/Oリフレッシュを行なう。このI/Oリフレッシュ処理は、演算処理の結果を次のサイクルの同期データとして、変数メモリ13cのモジュール間同期データの所定エリアに格納する処理を含む。
When the synchronous bus refresh is completed, as a state-specific process (S23), the user program is arithmetically processed, the cycle time is calculated, and then its own I / O refresh is performed. This I / O refresh process includes a process of storing the result of the arithmetic process as synchronization data of the next cycle in a predetermined area of inter-module synchronization data in the
周辺サービス処理は、モーションコントロールモジュールの場合には、イベントバスを介して行なわれるイベント等のデータの送受であるが、頻繁に行なわれることはないので、通常はすぐにS12に戻り、共通処理を行なう。 In the case of the motion control module, the peripheral service processing is transmission / reception of data such as events performed via the event bus. However, since it is not frequently performed, the processing returns to S12 immediately and common processing is performed. Do.
このように、各モジュールの演算処理の前に図6のように同期バスリフレッシュが行なわれるため、その前のサイクルで求められた最新のデータを各モジュールが共有することができる。そして、サイクルマスタモジュール12からの同期データ受信にタイミングを合わせて同期バスリフレッシュを実行し、演算処理を開始するので、モジュール間で同期がとれる。
Thus, since the synchronous bus refresh is performed as shown in FIG. 6 before the arithmetic processing of each module, each module can share the latest data obtained in the previous cycle. Then, synchronous bus refresh is executed in synchronization with reception of synchronous data from the
すなわち、上記のサイクルマスタモジュール12の1サイクル処理に同期して実施される方式では、図8に示すようなタイミングチャートとなる。図8において、CMはサイクルマスタモジュールを意味し、MM#1,MM#2はモーションコントロールモジュール13を意味する。またBCは同期データ送信、RFは同期バスリフレッシュを意味する。図6で示すモーションコントロールモジュールの共通処理は図8で示すMM#1とMM#2のBC(同期データ送信)、待機およびRF(同期バスリフレッシュ)に対応する。図7で示すサイクルマスタモジュールの共通処理は図8で示すCMのBC(同期データ送信)およびRF(同期バスリフレッシュ)に対応する。図7の同期データ受信管理は図8では省略している。また、図6、図7で示す状態別処理(S13、S23)および周辺サービス処理(S14、S24)を実行する一連の処理は図8で示す各モジュールのサイクル処理に対応する。図6、図7、図8には図示しないが、各モジュールがサイクル処理あるいは待機処理を実行中に他のモジュールから送信された同期データは各モジュールの同期用ASIC内のバッファエリアに自動的に取り込まれる。図8の例では、同期コントローラの電源をONすると、モーションコントロールモジュールMM2は電源ON初期処理後、同期データを送信する(MM#2のBC)。このモーションコントロールモジュールMM#2の同期データ送信は、図4の「#2」に対応する。つまりモーションコントロールモジュールMM#2の同期用ASIC内のバッファエリアから送信された同期データがサイクルマスタモジュールCMのASIC12e内のバッファエリアとモーションコントロールモジュールMM#1他のASIC13e内のバッファエリアに受信される。そして、モーションコントロールモジュールMM#2は、サイクルマスタモジュールCMの同期データ送信が完了するまで待機処理を行う。モーションコントロールモジュールMM1も電源ON初期処理後、同期データを送信する(MM#1のBC)。この同期データ送信は、図4の「#1」に対応する。その後モーションコントロールモジュールMM#1は、サイクルマスタモジュールCMの同期データ送信が完了するまで待機処理を行う。サイクルマスタモジュールCMはすべてのモーションコントロールモジュールが同期データを送受信したことを確認したのち、自身の同期データを送信する(CMのBC)。この同期データ送信は、図4の「#0」に対応する。これですべてのモジュール間で同期データ送受信を完了したこととなるので、これを契機にして、各モジュールは同期バスリフレッシュを行う。つまりASIC12e,13eのバッファエリアからモジュール間同期データエリアに同期データを転送し格納する。次にサイクルマスタモジュールCM自らが1スキャンの処理を開始するとともに、モーションコントロールモジュールMM#1,MM#2も同期して1スキャンの処理を開始する。以降同じ処理を繰り返し、t2、t3のように同じタイミングで各モジュールの状態別処理は同期して実行される。また、サイクルマスタモジュールが同期データを同期バスへ一斉同報で送信した後、さらに同期バスを介して各モーションコントロールモジュールに対して同期バスリフレッシュ処理のトリガ信号を一斉同報で送信する別例では、各モーションコントロールモジュール13は、サイクルマスタモジュール12から一斉同報で送信されてきた同期データを受信したことに連動して同期バスリフレッシュ処理をするのではなく、サイクルマスタモジュール12からの同期バスリフレッシュ処理トリガ信号を契機にして同期バスリフレッシュ処理をすることとなる。いずれにしても、サイクルマスタモジュールのサイクル処理と共通処理を合わせた1周期時間(Tcm)と、各モーションコントロールモジュールのサイクル処理と共通処理を合わせた1周期時間(Tmm)は等しくなる。
That is, in the method implemented in synchronization with the one-cycle process of the
また、処理負荷量によりサイクルマスタモジュールのサイクル処理時間が大きくなるような場合には、サイクルマスタモジュールの同期データ送信を共通処理から切り離し、任意に設定可能な定時時間割り込み処理にて実行させることもできる。これにより、モーションコントロールモジュール間ではサイクルマスタモジュールのサイクル処理時間に引きずられること無く高速に一定時間間隔で同期バスリフレッシュを実施し、情報の共有を行うとともに同期を取ることができる。すなわち図9の例のように、サイクルマスタモジュールの1サイクルのサイクル処理時間が長い場合、サイクルマスタモジュールの同期データ送信を契機にモーションコントロールモジュールが1サイクル処理を開始する方式では各モーションコントロールモジュールの待機時間が長くなり好ましくない。そこで、図7のサイクルマスタモジュールの処理フローの共通処理(S22)なかで、同期データ受信管理を省略し、同期データ送信と同期バスリフレッシュ処理をサイクル処理とは非同期で動作するタイマの定時時間割込みに基づいて実行させることにより、これを契機に各モーションコントロールモジュール13が次のサイクル処理を開始するようにする。これにより、モーションコントロールモジュール13の待機時間が不用意に長くなるのを抑止する。
Also, if the cycle processing time of the cycle master module increases due to the processing load, the cycle master module's synchronous data transmission can be separated from the common processing and executed by the arbitrarily set scheduled time interrupt processing. it can. As a result, the synchronization bus refresh can be performed at a constant time interval at high speed without being dragged by the cycle processing time of the cycle master module between the motion control modules, and information can be shared and synchronized. That is, as shown in the example of FIG. 9, when the cycle processing time of one cycle of the cycle master module is long, the motion control module starts one cycle processing when the cycle master module transmits synchronous data. It is not preferable because the waiting time becomes long. Therefore, in the common processing (S22) of the processing flow of the cycle master module in FIG. 7, the synchronous data reception management is omitted, and the synchronous data transmission and the synchronous bus refresh processing are performed at a fixed time interrupt of a timer that operates asynchronously with the cycle processing. As a result, each
この結果、たとえサイクルマスタモジュール12における周辺サービスに要する時間が長くなりサイクルタイムが長くなっても、モーションコントロールモジュール13におけるサイクルタイムを最小化し,一定サイクルの安定性を確保できる。つまり、サイクルマスタモジュールの1周期時間(Tcm)に比較して、各モーションコントロールモジュールの1周期時間
(Tmm)を短くすることができる。
As a result, even if the time required for the peripheral service in the
そして、上記の2つの方式のうち、いずれの方式を採るかは、サイクルマスタモジュール12のシステム設定によりその手段が決定される。また、各モジュールで同期データが不要な場合には同期バスリフレッシュを停止し、それぞれ非同期にてイベントバスのみでデータ交換し単独で処理を行う設定とすることも可能である。
Then, which of the two methods is used is determined by the system setting of the
1 上位コントローラ
2 表示器
3 プログラミングツール
4 サーボドライバ
5 サーボモータ
10 同期コントローラ
11 電源モジュール
12 サイクルマスタモジュール
13 モーションコントロールモジュール
14 エンドモジュール
1
Claims (14)
前記サイクルマスタモジュールと前記コントロールモジュールとは、同期バスと、同期バスが扱うデータの量に比較して大量のデータを扱うイベントバスからなる2重バス構造で接合され、
前記コントロールモジュールは、制御対象機器の動作を制御するユーザプログラムをサイクリックに演算実行する機能を有し、
前記サイクルマスタモジュールは、前記制御対象機器以外の外部装置との間のデータの送受、並びに前記コントロールモジュールに対して前記イベントバスおよび同期バスを用いてデータの送受を行なう機能を有し、
前記コントロールモジュールは、前記サイクルマスタモジュールから前記同期バスを介
して送られる同期データを受信することを契機に、1サイクル分の演算実行を行なうようにしたことを特徴とする同期コントローラ。 It has a cycle master module and at least one control module.
The cycle master module and the control module are joined in a double bus structure including a synchronous bus and an event bus that handles a large amount of data compared to the amount of data handled by the synchronous bus.
The control module has a function of cyclically executing and executing a user program for controlling the operation of the device to be controlled,
The cycle master module has a function of sending / receiving data to / from an external device other than the device to be controlled, and sending / receiving data to / from the control module using the event bus and the synchronization bus,
2. The synchronous controller according to claim 1, wherein the control module performs an operation for one cycle when receiving synchronous data sent from the cycle master module via the synchronous bus.
前記コントロールモジュールは、他のコントロールモジュールから前記同期バスを介して送られてきた同期データを受信するとともに、同期データ記憶エリアに格納し、その格納した同期データを演算実行の際に利用可能にしたことを特徴とする請求項1に記載の同期コントローラ。 A plurality of the control modules are provided,
The control module receives the synchronization data sent from the other control module via the synchronization bus, stores the synchronization data in the synchronization data storage area, and makes the stored synchronization data available for calculation execution. The synchronous controller according to claim 1.
前記サイクルマスタモジュールは、各コントロールモジュールとの間で同期バスを介して同期データを送受してデータ共有する同期バスリフレッシュ処理と、その同期データに基づいてユーザプログラムを実行する状態別処理と、をサイクリックに実行するものであり、
前記各コントロールモジュールは、サイクルマスタモジュールおよび他のコントローラモジュールとの間で同期バスを介して同期データを送受してデータ共有する同期バスリフレッシュ処理と、その同期データに基づいて接続制御対象機器の動作に対するユーザプログラムを実行する状態別処理と、をサイクリックに実行するものであり、
サイクルマスタモジュールの同期バスリフレッシュ処理によって各コントロールモジュールは同期され、
サイクルマスタモジュールおよびコントロールモジュールの同期バスリフレッシュ処理によって、順次1つのモジュールが送信元となって他モジュールへ同期データを一斉同報することによりすべてのモジュールが共通データを共有することを特徴とする制御システム。 A control composed of at least one control module for connecting a device to be controlled and a cycle master module for transmitting / receiving data to / from each control module, wherein each controller module and the cycle master module are joined by a synchronous bus. A system,
The cycle master module includes a synchronous bus refresh process for transmitting and receiving synchronous data to and from each control module via a synchronous bus and sharing the data, and a state-specific process for executing a user program based on the synchronous data. Is to run cyclically,
Each control module transmits and receives synchronous data via the synchronous bus between the cycle master module and another controller module, and performs data sharing, and operation of the connection control target device based on the synchronous data The process according to the state which executes the user program for the
Each control module is synchronized by the synchronous bus refresh process of the cycle master module,
Control characterized by the fact that all modules share common data by simultaneously broadcasting synchronous data to other modules by one module as a transmission source by synchronous bus refresh processing of the cycle master module and control module system.
前記コントロールモジュールは、他のコントロールモジュールから前記同期バスを介して送られてきた同期データを受信するとともに、同期データ記憶エリアに格納し、その格納した同期データを演算実行の際に利用可能にしたことを特徴とする請求項8に記載の制御システム。 A plurality of the control modules are provided,
The control module receives the synchronization data sent from the other control module via the synchronization bus, stores the synchronization data in the synchronization data storage area, and makes the stored synchronization data available for calculation execution. The control system according to claim 8.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005069653A JP3852469B2 (en) | 2004-03-11 | 2005-03-11 | Synchronous controller and controller system |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004069786 | 2004-03-11 | ||
JP2005069653A JP3852469B2 (en) | 2004-03-11 | 2005-03-11 | Synchronous controller and controller system |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2005293569A true JP2005293569A (en) | 2005-10-20 |
JP2005293569A5 JP2005293569A5 (en) | 2006-01-12 |
JP3852469B2 JP3852469B2 (en) | 2006-11-29 |
Family
ID=35326381
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005069653A Expired - Fee Related JP3852469B2 (en) | 2004-03-11 | 2005-03-11 | Synchronous controller and controller system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3852469B2 (en) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007310693A (en) * | 2006-05-19 | 2007-11-29 | Omron Corp | Safety controller |
DE112007001566T5 (en) | 2006-06-23 | 2009-05-07 | Mitsubishi Electric Corp. | control device |
DE112006004094T5 (en) | 2006-11-30 | 2009-08-27 | Mitsubishi Electric Corporation | Communication system and communication device |
EP2221686A2 (en) | 2009-02-02 | 2010-08-25 | Omron Co., Ltd. | Industrial controller for synchronization control |
JP2011123688A (en) * | 2009-12-11 | 2011-06-23 | Fuji Electric Systems Co Ltd | Synchronizing programmable controller and synchronizing programmable controller system |
JP2012003732A (en) * | 2010-06-21 | 2012-01-05 | Fuji Electric Co Ltd | Programmable controller system and application start method thereof |
JP2012027621A (en) * | 2010-07-21 | 2012-02-09 | Fuji Electric Co Ltd | Programmable controller system and program updating method thereof |
TWI452454B (en) * | 2010-12-16 | 2014-09-11 | Mitsubishi Electric Corp | Sequencer system and method for controlling the same |
JP2015162124A (en) * | 2014-02-27 | 2015-09-07 | 株式会社アイエイアイ | Control device, control system and control method |
US9342068B2 (en) | 2011-12-28 | 2016-05-17 | Kabushiki Kaisha Yaskawa Denki | Motion controller and motor control system |
JP2016192172A (en) * | 2015-03-31 | 2016-11-10 | オムロン株式会社 | Information processing device, information processing program, and information processing method |
JP2017079006A (en) * | 2015-10-21 | 2017-04-27 | 株式会社キーエンス | Programmable logic controller, extension unit, control method, program generation support device, and program generation support method and program |
JP2017535189A (en) * | 2014-10-15 | 2017-11-24 | フェニックス コンタクト ディベロップメント アンド マニュファクチャリング、インコーポレイテッド | Spur insulation in fieldbus networks |
KR20180086490A (en) | 2016-01-07 | 2018-07-31 | 미쓰비시덴키 가부시키가이샤 | Programmable controller and synchronization control program |
JP2019045900A (en) * | 2017-08-29 | 2019-03-22 | オムロン株式会社 | Setting device, FA system, control program, and control method of setting device |
JP2019053459A (en) * | 2017-09-14 | 2019-04-04 | オムロン株式会社 | Control apparatus and control method |
CN110521078A (en) * | 2017-02-08 | 2019-11-29 | 循环充电控股有限公司 | Battery system |
WO2021079599A1 (en) * | 2019-10-24 | 2021-04-29 | 株式会社日立製作所 | Control device and distributed control system |
-
2005
- 2005-03-11 JP JP2005069653A patent/JP3852469B2/en not_active Expired - Fee Related
Cited By (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007312573A (en) * | 2006-05-19 | 2007-11-29 | Omron Corp | Io unit in safety controller of building block type |
JP2007310693A (en) * | 2006-05-19 | 2007-11-29 | Omron Corp | Safety controller |
DE112007001566T5 (en) | 2006-06-23 | 2009-05-07 | Mitsubishi Electric Corp. | control device |
DE112007001566B4 (en) * | 2006-06-23 | 2014-11-20 | Mitsubishi Electric Corp. | control device |
US8126008B2 (en) | 2006-11-30 | 2012-02-28 | Mitsubishi Electric Corporation | Communication system and communication apparatus |
DE112006004094T5 (en) | 2006-11-30 | 2009-08-27 | Mitsubishi Electric Corporation | Communication system and communication device |
DE112006004094B4 (en) * | 2006-11-30 | 2012-04-26 | Mitsubishi Electric Corporation | Communication system and communication device |
EP2221686A2 (en) | 2009-02-02 | 2010-08-25 | Omron Co., Ltd. | Industrial controller for synchronization control |
JP2010198600A (en) * | 2009-02-02 | 2010-09-09 | Omron Corp | Industrial controller |
JP2011123688A (en) * | 2009-12-11 | 2011-06-23 | Fuji Electric Systems Co Ltd | Synchronizing programmable controller and synchronizing programmable controller system |
JP2012003732A (en) * | 2010-06-21 | 2012-01-05 | Fuji Electric Co Ltd | Programmable controller system and application start method thereof |
JP2012027621A (en) * | 2010-07-21 | 2012-02-09 | Fuji Electric Co Ltd | Programmable controller system and program updating method thereof |
TWI452454B (en) * | 2010-12-16 | 2014-09-11 | Mitsubishi Electric Corp | Sequencer system and method for controlling the same |
US9342068B2 (en) | 2011-12-28 | 2016-05-17 | Kabushiki Kaisha Yaskawa Denki | Motion controller and motor control system |
JP2015162124A (en) * | 2014-02-27 | 2015-09-07 | 株式会社アイエイアイ | Control device, control system and control method |
US10396854B2 (en) | 2014-10-15 | 2019-08-27 | Phoenix Contact Development and Manufacturing, Inc. | Spur isolation in a fieldbus network |
JP2017535189A (en) * | 2014-10-15 | 2017-11-24 | フェニックス コンタクト ディベロップメント アンド マニュファクチャリング、インコーポレイテッド | Spur insulation in fieldbus networks |
JP2016192172A (en) * | 2015-03-31 | 2016-11-10 | オムロン株式会社 | Information processing device, information processing program, and information processing method |
US10572420B2 (en) | 2015-03-31 | 2020-02-25 | Omron Corporation | Information processing apparatus, information processing program, and information processing method |
JP2017079006A (en) * | 2015-10-21 | 2017-04-27 | 株式会社キーエンス | Programmable logic controller, extension unit, control method, program generation support device, and program generation support method and program |
DE112016006175T5 (en) | 2016-01-07 | 2018-09-20 | Mitsubishi Electric Corporation | Programmable control and synchronization control program |
US10416644B2 (en) | 2016-01-07 | 2019-09-17 | Mitsubishi Electric Corporation | Programmable controller and synchronization control program |
KR20180086490A (en) | 2016-01-07 | 2018-07-31 | 미쓰비시덴키 가부시키가이샤 | Programmable controller and synchronization control program |
CN110521078A (en) * | 2017-02-08 | 2019-11-29 | 循环充电控股有限公司 | Battery system |
JP2020507303A (en) * | 2017-02-08 | 2020-03-05 | リレクトリファイ ホールディングス プロプライエタリー リミテッド | Battery system |
CN110521078B (en) * | 2017-02-08 | 2023-09-22 | 循环充电控股有限公司 | Battery system |
JP2019045900A (en) * | 2017-08-29 | 2019-03-22 | オムロン株式会社 | Setting device, FA system, control program, and control method of setting device |
JP2019053459A (en) * | 2017-09-14 | 2019-04-04 | オムロン株式会社 | Control apparatus and control method |
WO2021079599A1 (en) * | 2019-10-24 | 2021-04-29 | 株式会社日立製作所 | Control device and distributed control system |
JP2021068200A (en) * | 2019-10-24 | 2021-04-30 | 株式会社日立製作所 | Control device and distributed control system |
JP7423249B2 (en) | 2019-10-24 | 2024-01-29 | 株式会社日立製作所 | Control device and distributed control system |
US11977362B2 (en) | 2019-10-24 | 2024-05-07 | Hitachi, Ltd. | Control device and distributed control system |
Also Published As
Publication number | Publication date |
---|---|
JP3852469B2 (en) | 2006-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3852469B2 (en) | Synchronous controller and controller system | |
EP1574921B1 (en) | Synchronous controller | |
EP3462257B1 (en) | Control system and control device | |
US7428659B2 (en) | Programmable controller with CPU units and special-function modules and method of doubling up | |
JP6903275B2 (en) | Control device and control method | |
EP3483684B1 (en) | Control system | |
US10908577B2 (en) | Control device | |
WO2012090291A1 (en) | Motion controller | |
US20100199002A1 (en) | Industrial controller | |
US10579031B2 (en) | Controller | |
US10356006B2 (en) | Control system, development support apparatus, controller, and control method | |
JP2016194830A (en) | Control device | |
JPH04290102A (en) | Device for information transmission to servomechanism | |
US7770045B2 (en) | Method and apparatus for operating cooperating, differing devices | |
WO2019171845A1 (en) | Control device and control system | |
JP2006285885A (en) | Parallel processing method of distributed motion control system and motion controller | |
JP2023063209A (en) | Multi-axis servo control system | |
JP2007241744A (en) | Motion controller and its command method | |
JPH07200010A (en) | Programmable controller and communication method of exclusive control therefor | |
WO2019176755A1 (en) | Network system | |
JP7231073B2 (en) | Controllers and control systems | |
WO2022049885A1 (en) | Control device | |
JP2002347217A (en) | Printer driving system | |
JP2006323677A (en) | Dual-system control system | |
JP2020150393A (en) | Decentralized control system and work machine using the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051118 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20051118 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20060113 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060117 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060320 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060511 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060710 |
|
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: 20060815 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060828 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 3852469 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: 20090915 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100915 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100915 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110915 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110915 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120915 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130915 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |