JP2017079008A - Programmable logic controller and control method - Google Patents

Programmable logic controller and control method Download PDF

Info

Publication number
JP2017079008A
JP2017079008A JP2015207474A JP2015207474A JP2017079008A JP 2017079008 A JP2017079008 A JP 2017079008A JP 2015207474 A JP2015207474 A JP 2015207474A JP 2015207474 A JP2015207474 A JP 2015207474A JP 2017079008 A JP2017079008 A JP 2017079008A
Authority
JP
Japan
Prior art keywords
unit
cpu
expansion
memory
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.)
Granted
Application number
JP2015207474A
Other languages
Japanese (ja)
Other versions
JP6626314B2 (en
Inventor
洋平 永井
Yohei Nagai
洋平 永井
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 JP2015207474A priority Critical patent/JP6626314B2/en
Publication of JP2017079008A publication Critical patent/JP2017079008A/en
Application granted granted Critical
Publication of JP6626314B2 publication Critical patent/JP6626314B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Abstract

PROBLEM TO BE SOLVED: To cause an extension unit to execute a motion flow using a device value that a basic unit holds by causing the extension unit to refer to the device value.SOLUTION: A basic unit 3 communicates with an extension unit 4 to cause the extension unit to start a user program. The extension unit starts the user program according to a start instruction from the basic unit. The basic unit and extension unit store a device value in a buffer memory of the extension unit by refreshing the device value held by the basic unit at every inter-unit synchronization period different from a scan period. The extension unit acquires the device value from the buffer memory of the extension unit according to instruction words described in the user program to execute the instruction words. The extension unit 4 can be made to execute the user program by using the device value by causing the extension unit to refer to the device value that the basic unit holds.SELECTED DRAWING: Figure 1

Description

本発明は、プログラマブル・ロジック・コントローラおよび制御方法に関する。   The present invention relates to a programmable logic controller and a control method.

プログラマブル・ロジック・コントローラ(以下、PLCと称す)は、FA(Factory Automation)制御システムにおいて広く使用されているシーケンス制御装置であり、ラダープログラムと呼ばれる専用プログラムにしたがって動作する。操作者(オペレータ)は、リミットスイッチ、センサ、温度計などの入力機器や、電磁開閉器、ソレノイド、モータ、アクチュエータ、シリンダ、リレー、位置決めシステムなどの出力機器をPLCに接続し、ラダープログラムによってこれらの被制御機器を制御する。   A programmable logic controller (hereinafter referred to as “PLC”) is a sequence controller widely used in an FA (Factory Automation) control system, and operates according to a dedicated program called a ladder program. The operator (operator) connects input devices such as limit switches, sensors, and thermometers, and output devices such as electromagnetic switches, solenoids, motors, actuators, cylinders, relays, and positioning systems to the PLC. Control the controlled device.

オペレータ(ユーザ)は、パーソナルコンピュータ(以下、PCと称す)などのプログラム作成支援装置上でラダープログラムを作成し、PCとPLCを接続し、ラダープログラムをPLCの記憶部に記憶させる。PLCの記憶部にはデバイス情報等の各種データも記憶される。デバイス情報とは、入力機器からの入力状態、出力機器への出力状態およびラダープログラム上で設定される内部リレー(補助リレー)、タイマー、カウンタ、データメモリ等の状態を示す情報である。デバイスとは、デバイス情報を格納するために設けられたメモリ上の領域を指す名称である。PLCにプログラム作成支援装置を接続することで、PLCが保持しているデバイス情報(デバイスの値)をプログラム作成支援装置に表示させ、視認することもできる。   An operator (user) creates a ladder program on a program creation support device such as a personal computer (hereinafter referred to as a PC), connects the PC and the PLC, and stores the ladder program in the storage unit of the PLC. Various data such as device information is also stored in the storage unit of the PLC. The device information is information indicating an input state from the input device, an output state to the output device, and states of an internal relay (auxiliary relay), a timer, a counter, a data memory, and the like set on the ladder program. A device is a name indicating an area on a memory provided for storing device information. By connecting the program creation support apparatus to the PLC, the device information (device value) held by the PLC can be displayed on the program creation support apparatus for visual recognition.

PLCは一般に基本ユニット(CPUユニット)と拡張ユニットにより構成される。CPUユニットと拡張ユニットは予め割り付けられたデバイスを通じてスキャン周期ごとに実行されるリフレッシュによってデバイス値を相互に交換する。このようなデバイスはデータメモリと呼ばれることもある。データメモリとは別に拡張ユニットにはバッファメモリが設けられる(特許文献1)。CPUユニットはラダープログラム中に記述された専用の命令語に基づくダイレクト通信によってバッファメモリにアクセスし、バッファ値を読み書きする。   The PLC is generally composed of a basic unit (CPU unit) and an extension unit. The CPU unit and the expansion unit exchange device values with each other by a refresh executed every scan cycle through a device assigned in advance. Such a device is sometimes referred to as a data memory. In addition to the data memory, the expansion unit is provided with a buffer memory (Patent Document 1). The CPU unit accesses the buffer memory by direct communication based on a dedicated instruction word described in the ladder program, and reads and writes the buffer value.

特開2010−102475号公報JP 2010-102475 A

ところで、基本ユニットは複数の拡張ユニットを同時に制御するため、制御に伴う負荷が大きい。たとえば、基本ユニットは、センサを接続された拡張ユニットからセンサの出力値を取得し、その出力値に応じた演算を実行して目標座標を決定し、モーションユニットである拡張ユニットに目標座標を設定する。このように基本ユニットには制御の負荷が集中する。一方で、モーションフローなどのユーザプログラムを実行可能なモーションユニットが存在するが、そのようなモーションユニットは他の拡張ユニットのセンサの出力値を取得することができないため、出力値から目標座標を演算する演算処理を分担することができなかった。そこで、本発明は、基本ユニットが保持しているデバイス値を拡張ユニットに参照させることで当該デバイス値を用いて拡張ユニットにユーザプログラムを実行させることを目的とする。   By the way, since the basic unit controls a plurality of expansion units simultaneously, the load accompanying the control is large. For example, the basic unit obtains the output value of the sensor from the expansion unit connected to the sensor, performs calculation according to the output value, determines the target coordinate, and sets the target coordinate to the expansion unit that is the motion unit To do. Thus, the control load is concentrated on the basic unit. On the other hand, there are motion units that can execute user programs such as motion flow, but such motion units cannot obtain sensor output values of other extension units, so the target coordinates are calculated from the output values. The calculation processing to be performed could not be shared. Accordingly, an object of the present invention is to cause an expansion unit to execute a user program using the device value by referring the device value held by the basic unit to the expansion unit.

本発明は、たとえば、
CPUユニットと前記CPUユニットと通信する拡張ユニットとを有するプログラマブル・ロジック・コントローラであって、
前記CPUユニットは、
スキャン周期にしたがって繰り返し第一ユーザプログラムを実行する第一プログラム実行部と、
前記第一ユーザプログラムにしたがって前記第一プログラム実行部により参照されるデバイス値を格納する第一デバイスメモリと、
前記拡張ユニットと通信する第一通信部と
を有し、
前記拡張ユニットは、
前記CPUユニットと通信する第二通信部と、
前記スキャン周期とは異なるユニット間同期周期ごとに前記第一通信部および前記第二通信部を介して更新され、前記第一デバイスメモリのデバイス値と同期したデバイス値を格納する第二デバイスメモリと、
前記第二デバイスメモリに格納されたデバイス値を参照して第二ユーザプログラムを実行する第二プログラム実行部と
を有することを特徴とするプログラマブル・ロジック・コントローラを提供する。
The present invention is, for example,
A programmable logic controller having a CPU unit and an expansion unit communicating with the CPU unit,
The CPU unit is
A first program execution unit that repeatedly executes a first user program according to a scan cycle;
A first device memory for storing a device value referred to by the first program execution unit according to the first user program;
A first communication unit that communicates with the expansion unit;
The expansion unit is
A second communication unit communicating with the CPU unit;
A second device memory that stores device values that are updated via the first communication unit and the second communication unit for each unit synchronization cycle different from the scan cycle, and that are synchronized with the device values of the first device memory; ,
A programmable logic controller comprising: a second program execution unit that executes a second user program with reference to a device value stored in the second device memory.

本発明によれば、基本、基本ユニットが保持しているデバイス値を拡張ユニットに参照させることで当該デバイス値を用いて拡張ユニットにユーザプログラムを実行させることが可能となる。   According to the present invention, it is possible to cause an expansion unit to execute a user program using the device value by referring the device value held by the basic and basic units to the expansion unit.

PLCシステムの一例を示す図Diagram showing an example of a PLC system ユーザプログラムの一例を示す図The figure which shows an example of the user program プログラム作成支援装置の一例を示す図The figure which shows an example of a program creation assistance apparatus PLCの一例を示す図The figure which shows an example of PLC スキャンタイムを説明するための図Diagram for explaining scan time アプリケーションの一例を示す図Diagram showing an example of an application 基本ユニットの機能を示す図Diagram showing basic unit functions プログラム実行機能を備えた拡張ユニットの機能を示す図Diagram showing the functions of an expansion unit with a program execution function プログラム実行機能を備えていない拡張ユニットの機能を示す図Diagram showing the functions of an expansion unit that does not have a program execution function 拡張ユニットにユーザプログラムを起動させるための処理を示すフローチャートFlow chart showing processing for starting the user program in the expansion unit 一括リフレッシュと同期リフレッシュとの関係を示す図Diagram showing the relationship between batch refresh and synchronous refresh 同期リフレッシュの一例を示すフローチャートFlow chart showing an example of synchronous refresh 拡張ユニットにおいてデバイス値を参照してユーザプログラムを実行する処理を示すフローチャートFlowchart showing processing for executing a user program with reference to a device value in an expansion unit 同期リフレッシュの対象となっている複数のデバイスにより構成されたデバイスセットの一例を示す図The figure which shows an example of the device set comprised by the several device used as the object of synchronous refresh ユーザインタフェースの一例を示す図The figure which shows an example of the user interface アプリケーションの一例を示すフローチャートFlow chart showing an example of an application 同期リフレッシュの一例を示す図Diagram showing an example of synchronous refresh

以下に本発明の一実施形態を示す。以下で説明される個別の実施形態は、本発明の上位概念、中位概念および下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。   An embodiment of the present invention is shown below. The individual embodiments described below will help to understand various concepts, such as the superordinate concept, intermediate concept and subordinate concept of the present invention. Further, the technical scope of the present invention is determined by the scope of the claims, and is not limited by the following individual embodiments.

はじめにプログラマブル・ロジック・コントローラ(PLC、単にプログラマブルコントローラと呼ばれてもよい)を当業者にとってよりよく理解できるようにするために、一般的なPLCの構成とその動作について説明する。   First, in order to allow a person skilled in the art to better understand a programmable logic controller (PLC, which may be simply referred to as a programmable controller), the configuration and operation of a general PLC will be described.

図1は、本発明の実施の形態によるプログラマブル・ロジック・コントローラシステムの一構成例を示す概念図である。図1に示すように、このシステムは、ラダープログラムなどのユーザプログラムの編集を行うためのプログラム作成支援装置1と、工場等に設置される各種制御装置を統括的に制御するためのPLC2とを備えている。ユーザプログラムは、ラダー言語やモーションフローなどのグラフィカルプログラミング言語を用いて作成されてもよいし、C言語などの高級プログラミング言語を用いて作成されてもよい。以下では、説明の便宜上、ユーザプログラムはラダープログラムとする。PLC2は、CPUが内蔵された基本ユニット3と1つないし複数の拡張ユニット4を備えている。基本ユニット3に対して1つないし複数の拡張ユニット4が着脱可能となっている。基本ユニット3はCPUユニットと呼ばれることもある。   FIG. 1 is a conceptual diagram showing a configuration example of a programmable logic controller system according to an embodiment of the present invention. As shown in FIG. 1, this system includes a program creation support device 1 for editing a user program such as a ladder program and a PLC 2 for comprehensively controlling various control devices installed in a factory or the like. I have. The user program may be created using a graphical programming language such as a ladder language or motion flow, or may be created using a high-level programming language such as C language. In the following, for convenience of explanation, the user program is a ladder program. The PLC 2 includes a basic unit 3 having a built-in CPU and one or more expansion units 4. One or a plurality of expansion units 4 can be attached to and detached from the basic unit 3. The basic unit 3 may be called a CPU unit.

基本ユニット3には、表示部5及び操作部6が備えられている。表示部5には、基本ユニット3に取り付けられている各拡張ユニット4の動作状況などを表示することができ、表示部5の表示内容は、操作部6を操作することにより切り替えることができる。表示部5には、通常、PLC2内のデバイスの現在値(デバイス値)やPLC2内で生じたエラー情報などが表示される。なお、デバイスとは、デバイス値を格納するために設けられたメモリ上の領域を指す名称であり、デバイスメモリと呼ばれてもよい。デバイス値とは、入力機器からの入力状態、出力機器への出力状態およびユーザプログラム上で設定される内部リレー(補助リレー)、タイマー、カウンタ、データメモリ等の状態を示す情報である。   The basic unit 3 includes a display unit 5 and an operation unit 6. The display unit 5 can display the operation status of each expansion unit 4 attached to the basic unit 3, and the display content of the display unit 5 can be switched by operating the operation unit 6. The display unit 5 normally displays a current value (device value) of a device in the PLC 2 and error information generated in the PLC 2. The device is a name indicating an area on a memory provided for storing a device value, and may be called a device memory. The device value is information indicating the input state from the input device, the output state to the output device, and the state of the internal relay (auxiliary relay), timer, counter, data memory, etc. set on the user program.

拡張ユニット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には、センサなどの入力装置や、アクチュエータなどの出力装置が含まれる。   The extension unit 4 is prepared for extending the function of the PLC 2 and is attached to the basic unit 3 from the side. The first extension unit 4 is directly attached to the basic unit 3 from the side. The second and subsequent expansion units 4 are attached in series from the side with respect to the expansion units 4 that are already attached. For example, the right side surface of the basic unit 3 and the left side surface of the expansion unit 4 are connection surfaces. Similarly, since the shape and the like of the right side surface of the first extension unit 4 are substantially the same as the right side surface of the basic unit 3, the left side of the second extension unit 4 is placed on the right side surface of the first extension unit 4. The faces are connected. Such a connection method may be called a daisy chain method or a daisy chain method. Each connection surface is provided with a connector, and a bus for performing communication and power supply is also connected through the connector. In this way, when the basic unit 3 and the plurality of expansion units 4 are attached in series, each expansion unit 4 is connected to the basic unit 3 via the wiring (eg, bus) provided in each expansion unit 4. To be communicable with each other. Each expansion unit 4 is connected to a controlled device 16 (FIG. 4) corresponding to the function of the expansion unit 4, whereby each controlled device 16 is connected to the basic unit 3 via the expansion unit 4. . The controlled device 16 includes an input device such as a sensor and an output device such as an actuator.

プログラム作成支援装置1は、たとえば、携帯可能ないわゆるノートタイプやタブレットタイプのパーソナルコンピュータであって、表示部7及び操作部8を備えている。PLC2を制御するためのユーザプログラムの一例であるラダープログラムは、プログラム作成支援装置1を用いて作成され、その作成されたラダープログラムは、プログラム作成支援装置1内でニモニックコードに変換される。そして、プログラム作成支援装置1を、USB(Universal Serial Bus)などの通信ケーブル9を介してPLC2の基本ユニット3に接続し、ニモニックコードに変換されたラダープログラムをプログラム作成支援装置1から基本ユニット3に送ると、そのラダープログラムが基本ユニット3内でマシンコードに変換され、基本ユニット3に備えられたメモリ内に記憶される。なお、ここではニモニックコードを基本ユニット3に送信するようにしているが、本発明はこれに限られず、例えばニモニックコードを更に中間コードに変換し、中間コードを基本ユニット3に送信するようにしてもよい。   The program creation support device 1 is, for example, a portable so-called notebook type or tablet type personal computer, and includes a display unit 7 and an operation unit 8. A ladder program which is an example of a user program for controlling the PLC 2 is created using the program creation support apparatus 1, and the created ladder program is converted into a mnemonic code in the program creation support apparatus 1. Then, the program creation support apparatus 1 is connected to the basic unit 3 of the PLC 2 via a communication cable 9 such as a USB (Universal Serial Bus), and the ladder program converted into the mnemonic code is transferred from the program creation support apparatus 1 to the basic unit 3. The ladder program is converted into a machine code in the basic unit 3 and stored in a memory provided in the basic unit 3. Although the mnemonic code is transmitted to the basic unit 3 here, the present invention is not limited to this. For example, the mnemonic code is further converted into an intermediate code, and the intermediate code is transmitted to the basic unit 3. Also good.

なお、図1では示していないが、プログラム作成支援装置1の操作部8には、プログラム作成支援装置1に接続されたマウスなどのポインティングデバイスが含まれていてもよい。また、プログラム作成支援装置1は、USB以外の他の通信ケーブル9を介して、PLC2の基本ユニット3に対して着脱可能に接続されるような構成であってもよい。   Although not shown in FIG. 1, the operation unit 8 of the program creation support apparatus 1 may include a pointing device such as a mouse connected to the program creation support apparatus 1. The program creation support device 1 may be configured to be detachably connected to the basic unit 3 of the PLC 2 via a communication cable 9 other than the USB.

図2は、ラダープログラムの作成時にプログラム作成支援装置1の表示部7に表示されるラダー図Ldの一例を示す図である。図2に示すように、PLC2を制御するためのラダープログラムは、プログラム作成支援装置1の表示部7にマトリックス状に表示される複数のセル18内に仮想デバイスのシンボル19を適宜配置して、視覚的なリレー回路を表すラダー図Ldを構築することにより作成される。   FIG. 2 is a diagram illustrating an example of a ladder diagram Ld displayed on the display unit 7 of the program creation support apparatus 1 when creating a ladder program. As shown in FIG. 2, the ladder program for controlling the PLC 2 appropriately arranges virtual device symbols 19 in a plurality of cells 18 displayed in a matrix on the display unit 7 of the program creation support apparatus 1. Created by constructing a ladder diagram Ld that represents a visual relay circuit.

ラダー図Ldには、たとえば、10列×N行(Nは任意の自然数)のセル18が配置されている。そして、各行のセル18内に、図2に示す左側から右側に向かって、時系列的に仮想デバイスのシンボル19を適宜配置することにより、視覚的なリレー回路を作成することができる。作成されるリレー回路は、1行で表される直列的なリレー回路であってもよいし、複数行に並列的に表されたリレー回路を互いに結合することにより作成された、並列的なリレー回路であってもよい。   In the ladder diagram Ld, for example, cells 18 of 10 columns × N rows (N is an arbitrary natural number) are arranged. A visual relay circuit can be created by appropriately arranging the virtual device symbols 19 in time series in the cells 18 of each row from the left side to the right side shown in FIG. The created relay circuit may be a serial relay circuit represented by one row, or a parallel relay created by coupling relay circuits represented in parallel in a plurality of rows to each other. It may be a circuit.

図2に示すリレー回路は、入力装置からの入力信号に基づいてオン/オフされる3つの仮想デバイス(以下、「入力デバイス」と呼ぶ。)のシンボル19a,19b,19cと、出力装置の動作を制御するためにオン/オフされる仮想デバイス(以下、「出力デバイス」と呼ぶ。)のシンボル19dが適宜結合されることにより構成されている。   The relay circuit shown in FIG. 2 includes three virtual devices (hereinafter referred to as “input devices”) 19a, 19b, and 19c that are turned on / off based on an input signal from the input device, and the operation of the output device. This is configured by appropriately combining symbols 19d of virtual devices (hereinafter referred to as “output devices”) that are turned on / off to control.

各入力デバイスのシンボル19a,19b,19cの上方に表示されている文字(「R0001」、「R0002」及び「R0003」)は、その入力デバイスのデバイス名(アドレス名)21を表している。各入力デバイスのシンボル19a,19b,19cの下方に表示されている文字(「フラグ1」、「フラグ2」及び「フラグ3」)は、その入力デバイスに対応付けられたデバイスコメント22を表している。出力デバイスのシンボル19dの上方に表示されている文字(「原点復帰」)は、その出力デバイスの機能を表す文字列からなるラベル23である。   The characters (“R0001”, “R0002”, and “R0003”) displayed above the symbols 19a, 19b, and 19c of each input device represent the device name (address name) 21 of the input device. The characters (“flag 1”, “flag 2”, and “flag 3”) displayed below the symbols 19a, 19b, and 19c of each input device represent a device comment 22 associated with the input device. Yes. A character (“origin return”) displayed above the symbol 19d of the output device is a label 23 composed of a character string representing the function of the output device.

図2に示す例では、デバイス名「R0001」及び「R0002」にそれぞれ対応する2つの入力デバイスのシンボル19a,19bが直列的に結合されることにより、AND回路が構成されている。また、これらの2つの入力デバイスのシンボル19a,19bからなるAND回路に対して、デバイス名「R0003」に対応する入力デバイスのシンボル19cが並列的に結合されることにより、OR回路が構成されている。すなわち、このリレー回路では、2つのシンボル19a,19bに対応する入力デバイスがいずれもオンした場合、又は、シンボル19cに対応する入力デバイスがオンした場合にのみ、シンボル19dに対応する出力デバイスがオンされるようになっている。   In the example shown in FIG. 2, two input device symbols 19a and 19b respectively corresponding to device names “R0001” and “R0002” are coupled in series to form an AND circuit. In addition, an OR circuit is configured by parallelly connecting the input device symbol 19c corresponding to the device name “R0003” to the AND circuit including the symbols 19a and 19b of these two input devices. Yes. That is, in this relay circuit, the output device corresponding to the symbol 19d is turned on only when both of the input devices corresponding to the two symbols 19a and 19b are turned on or when the input device corresponding to the symbol 19c is turned on. It has come to be.

図3は、図1のプログラム作成支援装置1の電気的構成について説明するためのブロック図である。図3に示すように、プログラム作成支援装置1には、CPU24、表示部7、操作部8、記憶装置25及び通信部26が備えられている。表示部7、操作部8、記憶装置25及び通信部26は、それぞれCPU24に対して電気的に接続されている。記憶装置25は、少なくともRAMを含む構成であり、プログラム記憶部27と、編集ソフト記憶部28とを備えている。   FIG. 3 is a block diagram for explaining the electrical configuration of the program creation support apparatus 1 of FIG. As shown in FIG. 3, the program creation support apparatus 1 includes a CPU 24, a display unit 7, an operation unit 8, a storage device 25, and a communication unit 26. The display unit 7, the operation unit 8, the storage device 25, and the communication unit 26 are electrically connected to the CPU 24, respectively. The storage device 25 includes at least a RAM, and includes a program storage unit 27 and an editing software storage unit 28.

ユーザは、編集ソフト記憶部28に記憶されている編集ソフトをCPU24に実行させて、操作部8を通じてラダープログラムを編集する。ここで、ラダープログラムの編集には、ラダープログラムの作成及び変更が含まれる。編集ソフトを用いて作成されたラダープログラムは、プログラム記憶部27に記憶される。また、ユーザは、必要に応じてプログラム記憶部27に記憶されているラダープログラムを読み出し、そのラダープログラムを、編集ソフトを用いて変更することができる。通信部26は、通信ケーブル9を介してプログラム作成支援装置1を基本ユニット3に通信可能に接続するためのものである。   The user causes the CPU 24 to execute editing software stored in the editing software storage unit 28 and edits the ladder program through the operation unit 8. Here, the ladder program editing includes creation and modification of the ladder program. The ladder program created using the editing software is stored in the program storage unit 27. Further, the user can read the ladder program stored in the program storage unit 27 as necessary, and can change the ladder program using editing software. The communication unit 26 is for connecting the program creation support apparatus 1 to the basic unit 3 through the communication cable 9 so as to be communicable.

図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の一部として実装されてもよい。   FIG. 4 is a block diagram for explaining the electrical configuration of the PLC 2. As shown in FIG. 4, the basic unit 3 includes a CPU 10, a display unit 5, an operation unit 6, a storage device 12, and a communication unit 14. The display unit 5, the operation unit 6, the storage device 12, and the communication unit 14 are each electrically connected to the CPU 10. The storage device 12 may include a RAM, a ROM, a memory card, and the like, and stores a ladder program and the like. In the storage device 12, the ladder program and user data input from the program creation support device 1 are overwritten and stored. The storage device 12 also stores a control program for the basic unit. As shown in FIG. 4, the basic unit 3 and the expansion unit 4 are connected via a unit external bus 90 which is a kind of expansion bus. The communication function related to the unit external bus 90 may be implemented as a part of the communication unit 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に接続された表示器(図示せず)等の外部機器とのデータ通信、システムのエラーチェック等の周辺サービスに関する処理全般を意味する。   FIG. 5 is a schematic diagram showing a scan time configuration in the basic unit 3 of the programmable controller according to the embodiment of the present invention. As shown in FIG. 5, one scan time T is composed of inter-unit communication 201 for executing input / output refresh, program execution 202, and END processing 204. In the inter-unit communication 201, the basic unit 3 transmits output data obtained by executing the ladder program from the storage device 12 in the basic unit 3 to an external device and the like, and also receives input data including received data as the basic unit. 3 is stored in the storage device 12. For example, the device value stored in the device of the basic unit 3 is reflected in the device of the expansion unit 4 by output refresh. Similarly, the device value stored in the device of the expansion unit 4 is reflected in the device of the basic unit 3 by the input refresh. Note that a mechanism for updating device values between units at a timing other than refresh may be employed. However, the device of the basic unit 3 is rewritten as needed by the basic unit 3, and similarly, the device of the expansion unit 4 is rewritten as needed by the expansion unit 4. That is, the device of the basic unit 3 can be accessed at any time by a device inside the basic unit 3, and similarly, the device of the expansion unit 4 can be accessed at any time by a device inside the expansion unit 4. The basic unit 3 and the expansion unit 4 synchronize by updating the device values at the refresh timing basically. In the program execution 202, the basic unit 3 executes (calculates) the program using the updated input data. The basic unit 3 computes data by executing a program. The END processing means general processing related to peripheral services such as data communication with an external device such as a display (not shown) connected to the program creation support apparatus 1 or the basic unit 3, and system error checking. .

このように、プログラム作成支援装置1はユーザの操作に応じたラダープログラムを作成し、作成したラダープログラムをPLC2に転送する。PLC2は、入出力リフレッシュ、ラダープログラムの実行およびEND処理を1サイクル(1スキャン)として、このサイクルを周期的、すなわちサイクリックに繰り返し実行する。これにより、各種入力機器(センサ等)からのタイミング信号に基づいて、各種出力機器(モータ等)を制御する。よって、PLC2は汎用のパーソナルコンピュータ(PC)とは全く異なる動きをする。   As described above, the program creation support apparatus 1 creates a ladder program according to the user's operation, and transfers the created ladder program to the PLC 2. The PLC 2 executes the input / output refresh, the execution of the ladder program, and the END process as one cycle (one scan), and periodically and cyclically executes this cycle. Thus, various output devices (motors, etc.) are controlled based on timing signals from various input devices (sensors, etc.). Therefore, the PLC 2 moves completely different from a general-purpose personal computer (PC).

<PLCにより制御される被制御装置の例(アプリケーション)>
図6はPLCにより制御される被制御装置16の一例を示している。基本ユニット3には拡張ユニット4の一種であるモーションユニット4aと入力ユニット4bとが接続されている。この例ではサーボモータ42a、42bによって駆動されるコンベア46によりワーク47が搬送される。センサ44がワーク47を検知すると、サーボプレス43が稼働してワーク47に対してプレス加工を実行する。なお、サーボモータ42a、42bはそれぞれモーションユニット4aによって制御されるサーボアンプ41a、41bによって電力を供給される。サーボアンプ41cはモーションユニット4aからの指示に従ってサーボプレス43を稼働させる。
<Example of controlled device controlled by PLC (application)>
FIG. 6 shows an example of the controlled device 16 controlled by the PLC. The basic unit 3 is connected to a motion unit 4a, which is a kind of the expansion unit 4, and an input unit 4b. In this example, the work 47 is conveyed by a conveyor 46 driven by servo motors 42a and 42b. When the sensor 44 detects the workpiece 47, the servo press 43 is activated and presses the workpiece 47. The servo motors 42a and 42b are supplied with electric power by servo amplifiers 41a and 41b controlled by the motion unit 4a, respectively. The servo amplifier 41c operates the servo press 43 in accordance with an instruction from the motion unit 4a.

ある実施形態では、入力ユニット4bがセンサ44の検知信号を取得し、基本ユニット3が入力ユニット4bからセンサ44の検知結果を取得し、検知結果に基づきモーションユニット4aにサーボプレス43の稼働を指示する。たとえば、基本ユニット3は、センサ44によりワーク47が検知されたタイミングから何秒後にサーボプレス43を作動させるかを演算して求める。更に基本ユニットはサーボプレス装置全体の管理処理(プレス後品質確認処理、表示器との通信処理、安全センサ動作時の停止処理等)も行なう。そのため、基本ユニット3は演算負荷が重かった。また、モーションユニット4aは入力ユニット4bに接続されているセンサ44の検知結果を取得する方法が無かったため、基本ユニット3の演算処理を分担することができなかった。   In an embodiment, the input unit 4b acquires the detection signal of the sensor 44, the basic unit 3 acquires the detection result of the sensor 44 from the input unit 4b, and instructs the motion unit 4a to operate the servo press 43 based on the detection result. To do. For example, the basic unit 3 calculates and determines how many seconds after the timing when the workpiece 47 is detected by the sensor 44, the servo press 43 is operated. Furthermore, the basic unit also performs management processing of the entire servo press device (post-press quality confirmation processing, communication processing with the display, stop processing when the safety sensor is operating, etc.). Therefore, the basic unit 3 has a heavy calculation load. Further, since the motion unit 4a has no method for acquiring the detection result of the sensor 44 connected to the input unit 4b, the calculation processing of the basic unit 3 cannot be shared.

本実施形態では、モーションユニット4aはユーザプログラムを実行するエンジンを備え、これにより演算処理の一部またはすべてを担当する。また、モーションユニット4aは基本ユニット3を介して入力ユニット4bのデバイス値(センサ44の検知結果)を取得することで演算処理を実行する。ここでは、拡張ユニット4の一例としてモーションユニット4aや入力ユニット4bを挙げているが、もちろん他の種類の拡張ユニットであってもよい。少なくとも一つの拡張ユニットはユーザプログラムを実行でき、かつ、基本ユニット3を介して他の拡張ユニットのデバイス値(バッファ値)を取得できれば十分である。   In the present embodiment, the motion unit 4a includes an engine that executes a user program, and is responsible for some or all of the arithmetic processing. Further, the motion unit 4a executes the arithmetic processing by acquiring the device value (detection result of the sensor 44) of the input unit 4b via the basic unit 3. Here, although the motion unit 4a and the input unit 4b are mentioned as an example of the extension unit 4, of course, other types of extension units may be used. It is sufficient that at least one expansion unit can execute a user program and can acquire device values (buffer values) of other expansion units via the basic unit 3.

図6ではセンサ44に入力ユニット4bが接続されているが、基本ユニット3に直接的に接続されていてもよい。この場合、基本ユニット3は自己に接続されているセンサ44の検知結果をデバイス値としてデバイスに格納し、このデバイスに格納されているデバイス値をモーションユニット4aに提供する。このように、基本ユニット3はセンサ44の検知結果をモーションユニット4aに参照させる程度の処理を実行すればよく、演算処理についてはモーションユニット4aに実行させる。よって、基本ユニット3の演算負荷が軽減される。   In FIG. 6, the input unit 4 b is connected to the sensor 44, but may be directly connected to the basic unit 3. In this case, the basic unit 3 stores the detection result of the sensor 44 connected thereto as a device value in the device, and provides the device value stored in the device to the motion unit 4a. In this way, the basic unit 3 only needs to execute processing to the extent that the detection result of the sensor 44 is referred to the motion unit 4a, and the arithmetic processing is executed by the motion unit 4a. Therefore, the calculation load of the basic unit 3 is reduced.

<基本ユニットの機能>
図7は基本ユニット3の機能を示す図である。CPU10は記憶装置12のROM(EEPROM,HDD,SSDなど)に記憶されている制御プログラム36を実行することで、ラダー実行部30、デバイス管理部31、CPUユニットタイマー32、同期部33および拡張バス制御部34として機能する。ラダー実行部30は、プログラム作成支援装置1により作成されて転送されてきたユーザプログラムであるラダープログラム35を実行するエンジンである。ラダー実行部30はCPU10とは異なるASICなどにより実現されてもよい。デバイス管理部31は、デバイス値を格納するデバイスの一種であるデータメモリ38やリレー39を管理する機能である。データメモリ38はワードデバイスと呼ばれることもある。リレー39はビットデバイスやリレーデバイスと呼ばれることもある。データメモリ38には、上述したスキャン周期ごとにリフレッシュ(一括リフレッシュ)されるデータメモリと、スキャン周期よりも短いユニット間同期周期ごとにリフレッシュ(ユニット間同期リフレッシュ)されるデータメモリとがある。また、データメモリ38には、拡張ユニット4から受信した数ビットのデータが格納される入力データメモリと、基本ユニット3から拡張ユニット4に送信される数ビットのデータが格納される出力データメモリが存在する。リレー39も同様に、スキャン周期ごとにリフレッシュされるリレーと、スキャン周期よりも短いユニット間同期周期ごとにリフレッシュ(ユニット間同期リフレッシュ)されるリレーとがある。また、リレー39には、拡張ユニット4から受信した1ビットのデータが格納される入力リレーと、基本ユニット3から拡張ユニット4に送信される1ビットのデータが格納される出力リレーが存在する。設定情報37はプログラム作成支援装置1によって作成された情報であり、デバイス記憶部40cにおける各データメモリ38のアドレスや、各リレー39のアドレスなどの管理情報を含んでいる。また、設定情報37はデバイス記憶部40cに含まれているデバイスが一括リフレッシュされるものか、それともユニット間同期リフレッシュされるものかを管理する情報も含んでいる。CPUユニットタイマー32は、基本ユニット3における各種の動作の制御タイミングを決定するために利用されるクロックやカウンタである。CPUユニットタイマー32は必ずしも時刻を計時する必要はなく、時刻に相当するカウント値をカウントしてもよい。このようなカウント値も時刻情報の一種である。同期部33は、CPUユニットタイマー32の時刻情報と拡張ユニット4が備える拡張ユニットタイマーの時刻情報とを同期させる機能である。同期部33は、通信部14を介したメッセージ通信によって同期信号を拡張ユニット4に送信することで、CPUユニットタイマー32の時刻情報と拡張ユニット4が備える拡張ユニットタイマーの時刻情報とを同期させる。CPUユニットタイマー32と拡張ユニットタイマーとが時刻同期しているため、デバイス記憶部40cに格納されるデータの時間的な正確性が確保される。
<Functions of basic unit>
FIG. 7 is a diagram showing functions of the basic unit 3. The CPU 10 executes a control program 36 stored in a ROM (EEPROM, HDD, SSD, etc.) of the storage device 12 to thereby execute a ladder execution unit 30, a device management unit 31, a CPU unit timer 32, a synchronization unit 33, and an expansion bus. It functions as the control unit 34. The ladder execution unit 30 is an engine that executes a ladder program 35 that is a user program created and transferred by the program creation support apparatus 1. The ladder execution unit 30 may be realized by an ASIC or the like different from the CPU 10. The device management unit 31 has a function of managing a data memory 38 and a relay 39 which are a kind of device for storing device values. The data memory 38 is sometimes called a word device. The relay 39 may be called a bit device or a relay device. The data memory 38 includes a data memory that is refreshed (batch refresh) every scan cycle described above and a data memory that is refreshed (inter-unit synchronization refresh) every unit synchronization cycle shorter than the scan cycle. The data memory 38 includes an input data memory for storing several bits of data received from the expansion unit 4 and an output data memory for storing several bits of data transmitted from the basic unit 3 to the expansion unit 4. Exists. Similarly, the relay 39 includes a relay that is refreshed every scan cycle and a relay that is refreshed every unit synchronization cycle shorter than the scan cycle (inter-unit synchronization refresh). The relay 39 includes an input relay that stores 1-bit data received from the extension unit 4 and an output relay that stores 1-bit data transmitted from the basic unit 3 to the extension unit 4. The setting information 37 is information created by the program creation support apparatus 1 and includes management information such as the address of each data memory 38 and the address of each relay 39 in the device storage unit 40c. The setting information 37 also includes information for managing whether the devices included in the device storage unit 40c are to be collectively refreshed or to be synchronously refreshed between units. The CPU unit timer 32 is a clock or a counter used for determining control timings of various operations in the basic unit 3. The CPU unit timer 32 does not necessarily count the time, and may count a count value corresponding to the time. Such a count value is also a kind of time information. The synchronization unit 33 is a function for synchronizing the time information of the CPU unit timer 32 and the time information of the expansion unit timer included in the expansion unit 4. The synchronization unit 33 synchronizes the time information of the CPU unit timer 32 and the time information of the expansion unit timer included in the expansion unit 4 by transmitting a synchronization signal to the expansion unit 4 by message communication via the communication unit 14. Since the CPU unit timer 32 and the expansion unit timer are time-synchronized, the temporal accuracy of the data stored in the device storage unit 40c is ensured.

記憶装置12はプログラム記憶部40a、パラメータ記憶部40bおよびデバイス記憶部40cを有している。プログラム記憶部40aは、基本ユニット3のファームウエアである制御プログラム36と、ユーザによりプログラミングされたラダープログラム35を記憶している。パラメータ記憶部40bは、プログラム作成支援装置1によって作成された設定情報37を記憶している。デバイス記憶部40cは、上述したデータメモリ38やリレー39を記憶している。データメモリ38やリレー39の幾つかは各拡張ユニット4に予め割り付けられている。   The storage device 12 includes a program storage unit 40a, a parameter storage unit 40b, and a device storage unit 40c. The program storage unit 40a stores a control program 36, which is firmware of the basic unit 3, and a ladder program 35 programmed by the user. The parameter storage unit 40b stores setting information 37 created by the program creation support device 1. The device storage unit 40c stores the data memory 38 and the relay 39 described above. Some of the data memory 38 and the relay 39 are allocated to each expansion unit 4 in advance.

通信部14は、プログラム作成支援装置1と通信する通信回路と、拡張ユニット4と通信する拡張バスユニットとを含んでいる。拡張バス制御部34は、通信部14の拡張バスユニットを制御して他の拡張ユニットと通信するバスマスタとして機能する。   The communication unit 14 includes a communication circuit that communicates with the program creation support device 1 and an expansion bus unit that communicates with the expansion unit 4. The expansion bus control unit 34 functions as a bus master that controls the expansion bus unit of the communication unit 14 and communicates with other expansion units.

<拡張ユニットの機能>
図8はユーザプログラムの実行機能を備えた拡張ユニット4の機能を示す図である。CPU110は記憶装置112のROM(EEPROM,HDD,SSDなど)に記憶されている制御プログラム55を実行することで、機能制御部50、デバイス管理部51、拡張ユニットタイマー52および同期部53として機能する。なお、プログラム実行部54は、プログラム作成支援装置1により作成されて転送されてきたモーションフローなどのユーザプログラム56を実行するエンジンである。モーションフローにより記述されたユーザプログラム56はフロープログラムと呼ばれてもよいが、ここでは単にモーションフローと呼ぶことにする。プログラム実行部54はCPU110とは異なるASICなどにより実現されてもよい。機能制御部50は、プログラム実行部54により実行されるユーザプログラム56にしたがって被制御装置16を制御する。たとえば、機能制御部50は、位置決め制御、同期制御、速度制御またはトルク制御など被制御装置16に関する制御を実行する。デバイス管理部51は、デバイス値を格納するデバイスの一種であるバッファメモリ58を管理する機能である。デバイス管理部51はリフレッシュによって、基本ユニット3のデバイスに対してバッファメモリ58のバッファ値を書き込んだり、基本ユニット3から受け取ったデバイス値をバッファメモリ58に書き込んだりする。なお、基本ユニット3のデバイスとバッファメモリ58との関係は設定情報57によって管理されている。プログラム実行部54は、基本ユニット3のデバイスの読み出し命令をデバイス管理部51に送り、デバイス管理部51は、設定情報57を参照することで当該デバイスに関連付けられているバッファメモリ58を特定し、バッファ値を読み出してプログラム実行部54に渡す。たとえば、基本ユニット3のデバイスは、入力ユニット4bに接続されたセンサ44の検知結果を格納したデバイスである。このようにして、モーションユニット4aなどの拡張ユニット4は、入力ユニット4bなどの他の拡張ユニット4に割り付けられたデバイスのデバイス値を取得する。つまり、プログラム実行部54は、ユーザプログラム56に記述されている他の拡張ユニット4に割り付けられたデバイスのデバイス値を取得して、被制御装置16を制御するための演算処理を実行する。これにより従来は基本ユニット3で実行されていた演算処理を拡張ユニット4で実行できるようになる。つまり、演算処理の分散ないしは分担が実現される。設定情報57はプログラム作成支援装置1によって作成されたものであり、基本ユニット3のデバイスとバッファメモリ58との関係に加え、同期リフレッシュの対象を示す情報も保持している。拡張ユニットタイマー52は、拡張ユニット4における各種の動作の制御タイミングを決定するために利用されるクロックやカウンタである。拡張ユニットタイマー52は必ずしも時刻を計時する必要はなく、時刻に相当するカウント値をカウントしてもよい。このようなカウント値も時刻情報の一種である。同期部53は、拡張ユニットタイマー52の時刻情報をCPUユニットタイマー32の時刻情報に同期させる機能である。同期部53は、通信部114を介したメッセージ通信によって同期信号を基本ユニット3から受信することで、CPUユニットタイマー32の時刻情報と拡張ユニットタイマー52の時刻情報とを同期させる。このように、CPUユニットタイマー32と拡張ユニットタイマー52とが時刻同期しているため、バッファメモリ58に格納されるデータの時間的な正確性が確保される。
<Function of expansion unit>
FIG. 8 is a diagram showing the functions of the expansion unit 4 having a user program execution function. The CPU 110 functions as a function control unit 50, a device management unit 51, an expansion unit timer 52, and a synchronization unit 53 by executing a control program 55 stored in a ROM (EEPROM, HDD, SSD, etc.) of the storage device 112. . The program execution unit 54 is an engine that executes a user program 56 such as a motion flow created and transferred by the program creation support apparatus 1. Although the user program 56 described by the motion flow may be called a flow program, it is simply called a motion flow here. The program execution unit 54 may be realized by an ASIC or the like different from the CPU 110. The function control unit 50 controls the controlled device 16 according to the user program 56 executed by the program execution unit 54. For example, the function control unit 50 executes control related to the controlled device 16 such as positioning control, synchronization control, speed control, or torque control. The device management unit 51 has a function of managing a buffer memory 58 that is a type of device that stores device values. The device management unit 51 writes the buffer value of the buffer memory 58 to the device of the basic unit 3 and writes the device value received from the basic unit 3 to the buffer memory 58 by refresh. The relationship between the device of the basic unit 3 and the buffer memory 58 is managed by setting information 57. The program execution unit 54 sends a read command for the device of the basic unit 3 to the device management unit 51. The device management unit 51 refers to the setting information 57 to identify the buffer memory 58 associated with the device, The buffer value is read and passed to the program execution unit 54. For example, the device of the basic unit 3 is a device that stores the detection result of the sensor 44 connected to the input unit 4b. In this way, the extension unit 4 such as the motion unit 4a acquires the device value of the device assigned to the other extension unit 4 such as the input unit 4b. That is, the program execution unit 54 acquires a device value of a device assigned to another extension unit 4 described in the user program 56 and executes arithmetic processing for controlling the controlled device 16. As a result, the arithmetic processing conventionally performed by the basic unit 3 can be performed by the expansion unit 4. That is, distribution or sharing of arithmetic processing is realized. The setting information 57 is created by the program creation support apparatus 1 and holds information indicating the object of synchronous refresh in addition to the relationship between the device of the basic unit 3 and the buffer memory 58. The extension unit timer 52 is a clock or a counter used for determining control timings of various operations in the extension unit 4. The expansion unit timer 52 does not necessarily count the time, and may count a count value corresponding to the time. Such a count value is also a kind of time information. The synchronization unit 53 is a function for synchronizing the time information of the extension unit timer 52 with the time information of the CPU unit timer 32. The synchronization unit 53 synchronizes the time information of the CPU unit timer 32 and the time information of the extension unit timer 52 by receiving a synchronization signal from the basic unit 3 by message communication via the communication unit 114. As described above, since the CPU unit timer 32 and the expansion unit timer 52 are synchronized in time, the temporal accuracy of the data stored in the buffer memory 58 is ensured.

記憶装置112はプログラム記憶部60a、パラメータ記憶部60bおよびデバイス記憶部60cを有している。プログラム記憶部60aは、拡張ユニット4のファームウエアである制御プログラム55と、ユーザによりプログラミングされたユーザプログラム56を記憶している。パラメータ記憶部60bは、プログラム作成支援装置1によって作成された設定情報57を記憶している。デバイス記憶部60cは、上述したバッファメモリ58などを記憶している。   The storage device 112 includes a program storage unit 60a, a parameter storage unit 60b, and a device storage unit 60c. The program storage unit 60a stores a control program 55 that is firmware of the expansion unit 4 and a user program 56 programmed by the user. The parameter storage unit 60b stores setting information 57 created by the program creation support device 1. The device storage unit 60c stores the buffer memory 58 and the like described above.

通信部114は、基本ユニット3と通信する拡張バスユニットとを含んでいる。CPU110は、通信部114内の拡張バスユニットを制御して基本ユニット3と通信させることで、通信部114をスレーブとして機能させる。また、CPU110はスレーブ制御部として機能している。   The communication unit 114 includes an expansion bus unit that communicates with the basic unit 3. The CPU 110 controls the expansion bus unit in the communication unit 114 to communicate with the basic unit 3 so that the communication unit 114 functions as a slave. The CPU 110 functions as a slave control unit.

図9はユーザプログラムの実行機能を備えていない拡張ユニット4の機能を示す図である。このような拡張ユニット4の一例は上述した入力ユニット4bである。図8と共通する事項については同一の参照符号を付与することで説明の簡明化を図る。拡張ユニット4が入力ユニット4bである場合、機能制御部50は、センサ44である被制御装置16が出力する検知信号を監視している。検知信号のレベルがワーク47を検知したことを示すハイ(オン)になると、センサ44に割り付けられているバッファメモリ58のバッファ値を0から1に書き換える。なお、ワーク47を検知していないときの検知信号のレベルはロー(オフ)である。バッファメモリ58のバッファ値はリフレッシュまたはダイレクト通信によって基本ユニット3に伝達される。設定情報57によって、このバッファ値が同期リフレッシュの対象として指定されている場合、デバイス管理部51は、同期リフレッシュによってバッファ値を基本ユニット3に伝達する。   FIG. 9 is a diagram showing functions of the expansion unit 4 that does not have a user program execution function. An example of such an expansion unit 4 is the input unit 4b described above. Items that are the same as those in FIG. 8 are given the same reference numerals to simplify the description. When the expansion unit 4 is the input unit 4b, the function control unit 50 monitors a detection signal output from the controlled device 16 that is the sensor 44. When the level of the detection signal becomes high (on) indicating that the workpiece 47 is detected, the buffer value of the buffer memory 58 assigned to the sensor 44 is rewritten from 0 to 1. Note that the level of the detection signal when the workpiece 47 is not detected is low (off). The buffer value of the buffer memory 58 is transmitted to the basic unit 3 by refresh or direct communication. When the buffer value is designated as the target of synchronous refresh by the setting information 57, the device management unit 51 transmits the buffer value to the basic unit 3 by synchronous refresh.

<拡張ユニットにおけるユーザプログラムの起動>
基本ユニット3はPLC2において各拡張ユニット4を統括的に制御するユニットである。そのため、拡張ユニット4におけるユーザプログラム56の実行開始(起動)についても基本ユニット3が拡張ユニット4に指示するものとする。
<Starting the user program in the expansion unit>
The basic unit 3 is a unit that comprehensively controls each expansion unit 4 in the PLC 2. Therefore, the basic unit 3 also instructs the expansion unit 4 to start (start) execution of the user program 56 in the expansion unit 4.

図10(A)は基本ユニット3から拡張ユニット4のユーザプログラム56を起動させる処理を示す図である。図10(B)は拡張ユニット4がユーザプログラム56を起動する処理を示す図である。S11において基本ユニット3のCPU10(ラダー実行部30)はラダープログラム35に記述されている命令語を順番に実行して行き、拡張ユニット4におけるユーザプログラム56の実行命令を実行する。ラダー実行部30は、ユーザプログラム56の実行要求を拡張バス制御部34にセットする。   FIG. 10A is a diagram showing processing for starting the user program 56 of the extension unit 4 from the basic unit 3. FIG. 10B is a diagram showing processing in which the expansion unit 4 starts the user program 56. In S <b> 11, the CPU 10 (ladder execution unit 30) of the basic unit 3 sequentially executes the instruction words described in the ladder program 35 and executes the execution instruction of the user program 56 in the expansion unit 4. The ladder execution unit 30 sets an execution request for the user program 56 in the expansion bus control unit 34.

S12で、CPU10(拡張バス制御部34)は通信部14を用いて拡張ユニット4とのメッセージ通信を実行する。このメッセージ通信によりユーザプログラム56の実行要求が拡張ユニット4に送信される。なお、メッセージ通信の内容はバイナリコマンドにより伝達されてもよい。   In S <b> 12, the CPU 10 (expansion bus control unit 34) executes message communication with the expansion unit 4 using the communication unit 14. An execution request for the user program 56 is transmitted to the expansion unit 4 by this message communication. Note that the content of the message communication may be transmitted by a binary command.

S13で拡張ユニット4のCPU110は通信部114を介してメッセージ通信によりユーザプログラム56の実行要求を受信する。たとえば、拡張ユニット4のCPU110はバイナリコマンドを解釈することで、ユーザプログラム56の実行を要求されていることを認識する。   In S <b> 13, the CPU 110 of the expansion unit 4 receives an execution request for the user program 56 by message communication via the communication unit 114. For example, the CPU 110 of the expansion unit 4 recognizes that the user program 56 is requested to execute by interpreting the binary command.

S14でCPU110はユーザプログラム56の実行要求にしたがってユーザプログラム56をプログラム実行部54に実行するよう指示する。これによりプログラム実行部54はユーザプログラム56の実行を開始する。   In S <b> 14, the CPU 110 instructs the program execution unit 54 to execute the user program 56 in accordance with the execution request for the user program 56. As a result, the program execution unit 54 starts executing the user program 56.

S15でCPU110(プログラム実行部54)は通信部114を介してメッセージ通信によりユーザプログラム56の開始完了通知を基本ユニット3に送信する。たとえば、プログラム実行部54は、バススレーブとして動作している通信部114にバイナリコマンドに対する応答として開始完了通知をセットする。   In S <b> 15, the CPU 110 (program execution unit 54) transmits a start completion notification of the user program 56 to the basic unit 3 by message communication via the communication unit 114. For example, the program execution unit 54 sets a start completion notification as a response to the binary command in the communication unit 114 operating as a bus slave.

S16でCPU10(拡張バス制御部34)は通信部14を用いて開始完了通知を受信する。S17で、ユーザプログラム56の開始の完了/未済を記憶するリレーデバイスに完了を示すデバイス値を書き込む。   In S <b> 16, the CPU 10 (expansion bus control unit 34) receives a start completion notification using the communication unit 14. In S17, the device value indicating completion is written in the relay device that stores completion / uncompleted start of the user program 56.

このように拡張ユニット4のユーザプログラム56は基本ユニット3のラダープログラム35によって起動される。なお、ラダー実行部30は、ユーザプログラム56の実行命令語を実行すると即座に次の命令語を実行する。つまり、ラダー実行部30は、拡張ユニット4から開始完了通知があるまで、ラダープログラム35に記述されている次の命令語の実行を延期するわけではない。よって、ラダー実行部30は、無駄な時間を過ごすことなく、ラダープログラム35を効率よく実行できる。   As described above, the user program 56 of the expansion unit 4 is activated by the ladder program 35 of the basic unit 3. The ladder execution unit 30 immediately executes the next instruction word when the execution instruction word of the user program 56 is executed. That is, the ladder execution unit 30 does not postpone the execution of the next instruction word described in the ladder program 35 until the start completion notification is received from the extension unit 4. Therefore, the ladder execution unit 30 can efficiently execute the ladder program 35 without spending wasted time.

<デバイスの同期リフレッシュ>
スキャンタイムTは一般に数ミリ秒であるが、モーションユニットなどの拡張ユニット4ではより短い周期で被制御装置16の位置を制御したいという要請がある。しかし、1つのスキャンタイムTで入出力デバイスのリフレッシュ(一括リフレッシュ)は1回だけ実行される。本実施例ではユニット間同期周期ごとにデバイスのリフレッシュを行う同期リフレッシュも採用される。
<Synchronous refresh of device>
The scan time T is generally several milliseconds, but the expansion unit 4 such as a motion unit is requested to control the position of the controlled device 16 with a shorter period. However, the input / output device refresh (batch refresh) is executed only once in one scan time T. In the present embodiment, synchronous refresh that refreshes the device at every inter-unit synchronization period is also employed.

図11は一括リフレッシュと同期リフレッシュとの関係を示す図である。図11が示すように、一括リフレッシュにより基本ユニット3と拡張ユニット4との間で入出力デバイスのデバイス値が更新される。たとえば、入力ユニット4bである拡張ユニット4のセンサの検知結果は1つのスキャンタイムで一回だけ更新され、モーションユニット4aである他の拡張ユニット4へのデバイス値も1つのスキャンタイムで一回だけ更新される場合、高速な同期制御を実現することができない。そこで、基本ユニット3の内部制御周期と拡張ユニット4の内部制御周期とを同期させ、この制御周期ごとにデバイスをリフレッシュする同期リフレッシュについても本実施例では採用されている。なお、ユーザプログラムのうち、この制御周期に同期して実行されるプログラムはユニット間同期プログラムと呼ばれる。図11において同期リフレッシュは、ラダープログラム35の実行期間だけでなく、一括リフレッシュの実行期間やエンド処理の実行期間においても実行されてもよい。なお、同期リフレッシュの周期は、スキャンの周期よりも長い周期で行われてもよい。たとえば、スキャン処理が2回行われた後に、一度同期リフレッシュが行なわれてもよい。   FIG. 11 is a diagram showing the relationship between batch refresh and synchronous refresh. As shown in FIG. 11, the device value of the input / output device is updated between the basic unit 3 and the expansion unit 4 by batch refresh. For example, the detection result of the sensor of the extension unit 4 that is the input unit 4b is updated only once in one scan time, and the device value to the other extension unit 4 that is the motion unit 4a is also only once in one scan time. When updated, high-speed synchronous control cannot be realized. Therefore, the present embodiment also employs synchronous refresh in which the internal control cycle of the basic unit 3 and the internal control cycle of the expansion unit 4 are synchronized and the device is refreshed every control cycle. Of the user programs, a program executed in synchronization with this control cycle is called an inter-unit synchronization program. In FIG. 11, the synchronous refresh may be executed not only in the execution period of the ladder program 35 but also in the execution period of the batch refresh and the execution period of the end process. Note that the synchronous refresh cycle may be performed at a cycle longer than the scan cycle. For example, after the scan process is performed twice, the synchronous refresh may be performed once.

図12(A)は基本ユニット3で実行される同期リフレッシュを示している。図12(B)は拡張ユニット4で実行される同期リフレッシュを示している。S21で基本ユニット3のCPU10(ラダー実行部30)はラダープログラム35にしたがって各種のデバイスのデバイス値を変更する。ラダー実行部30はラダープログラム35にしたがって取得したデバイス値をデバイス管理部31に渡すことで、デバイス値をデバイス記憶部40cのデバイスに書き込む。なお、これと並行してS22で拡張ユニット4のCPU110(デバイス管理部51)は拡張ユニット4の動作状態に応じてデバイス記憶部60c内のデバイスのデバイス値を変更する。   FIG. 12A shows the synchronous refresh executed by the basic unit 3. FIG. 12B shows synchronous refresh executed by the extension unit 4. In S21, the CPU 10 (ladder execution unit 30) of the basic unit 3 changes the device values of various devices according to the ladder program 35. The ladder execution unit 30 writes the device value to the device in the device storage unit 40c by passing the device value acquired according to the ladder program 35 to the device management unit 31. In parallel with this, in S22, the CPU 110 (device management unit 51) of the expansion unit 4 changes the device value of the device in the device storage unit 60c according to the operation state of the expansion unit 4.

S23でCPU10(デバイス管理部31)は同期リフレッシュのタイミングが到来したかどうかを判定する。デバイス管理部31はCPUユニットタイマー32が所定時間を計時する度に同期リフレッシュをトリガーする。同期リフレッシュのタイミングが到来すると、S24に進む。S24でCPU10(デバイス管理部31)は拡張バス制御部34に同期リフレッシュのための通信を実行させる。デバイス管理部31は、設定情報37にしたがって同期リフレッシュの対象となっているデバイス値を拡張ユニット4から受信する。S26で、CPU10(デバイス管理部31)は拡張バス制御部34および通信部14を介して受信したデバイス値をデバイス記憶部40cに書き込む(入力リフレッシュ)。また、S24でデバイス管理部31は、設定情報37にしたがって同期リフレッシュの対象となっているデバイス値をデバイス記憶部40cから読み出して拡張バス制御部34にセットして拡張ユニット4へ送信する(出力リフレッシュ)。   In S23, the CPU 10 (device management unit 31) determines whether or not the timing of synchronous refresh has come. The device manager 31 triggers a synchronous refresh every time the CPU unit timer 32 times a predetermined time. When the timing of synchronous refresh comes, the process proceeds to S24. In S24, the CPU 10 (device management unit 31) causes the expansion bus control unit 34 to execute communication for synchronous refresh. The device management unit 31 receives from the expansion unit 4 the device value that is subject to synchronous refresh according to the setting information 37. In S26, the CPU 10 (device management unit 31) writes the device value received via the expansion bus control unit 34 and the communication unit 14 into the device storage unit 40c (input refresh). In S24, the device management unit 31 reads the device value that is the subject of synchronous refresh from the device storage unit 40c according to the setting information 37, sets it in the expansion bus control unit 34, and transmits it to the expansion unit 4 (output). refresh).

S25で拡張ユニット4のCPU110(デバイス管理部51)は、通信部114を介して同期リフレッシュのための通信を実行する。デバイス管理部51は、設定情報57にしたがって同期リフレッシュの対象となっているデバイス値をデバイス記憶部60cから読み出して通信部114にセットして基本ユニット3へ送信する(入力リフレッシュ)。また、デバイス管理部51は、設定情報57にしたがって同期リフレッシュの対象となっているデバイス値を、通信部114を介して基本ユニット3から受信し、デバイス記憶部60cに書き込む(出力リフレッシュ)。なお、デバイス管理部51は、基本ユニット3のデバイス(CPUユニットデバイス)に記憶されているデバイス値をバッファメモリ58にいったん格納して保持する。   In S <b> 25, the CPU 110 (device management unit 51) of the extension unit 4 executes communication for synchronous refresh via the communication unit 114. The device management unit 51 reads the device value that is subject to synchronous refresh from the device storage unit 60c according to the setting information 57, sets it in the communication unit 114, and transmits it to the basic unit 3 (input refresh). In addition, the device management unit 51 receives the device value that is subject to synchronous refresh from the basic unit 3 via the communication unit 114 according to the setting information 57, and writes the device value to the device storage unit 60c (output refresh). The device management unit 51 temporarily stores and holds the device value stored in the device of the basic unit 3 (CPU unit device) in the buffer memory 58.

<拡張ユニットのユーザプログラムによる基本ユニットのデバイスの読み出し>
図13は拡張ユニットのユーザプログラムによる基本ユニットのデバイスの読み出しを示すフローチャートである。
<Reading basic unit device by user program of expansion unit>
FIG. 13 is a flowchart showing reading of the device of the basic unit by the user program of the expansion unit.

S31でCPU110(プログラム実行部54)は、ユーザプログラム56に記述されている命令語にしたがってCPUユニットデバイスの読み出し要求をデバイス管理部51に渡す。S32でCPU110(デバイス管理部51)は、設定情報57にしたがって所望のCPUユニットデバイスに割り付けられているバッファメモリのアドレスを特定する。S33でCPU110(デバイス管理部51)は、特定したバッファメモリのアドレスからCPUユニットデバイスのデバイス値を読み出す。S34でCPU110(プログラム実行部54)は、読み出したデバイス値に対してユーザプログラム56にしたがった演算を実行する。   In S <b> 31, the CPU 110 (program execution unit 54) passes a CPU unit device read request to the device management unit 51 in accordance with the instruction word described in the user program 56. In S <b> 32, the CPU 110 (device management unit 51) specifies the address of the buffer memory assigned to the desired CPU unit device according to the setting information 57. In S33, the CPU 110 (device management unit 51) reads the device value of the CPU unit device from the specified buffer memory address. In S <b> 34, the CPU 110 (program execution unit 54) executes a calculation according to the user program 56 for the read device value.

<同期リフレッシュの設定の取得>
同期リフレッシュに関する設定を示す設定情報57をプログラム作成支援装置1から拡張ユニット4に書き込む方法はいくつかある。一つ目は、プログラム作成支援装置1から通信部114を介して拡張ユニット4に書き込む方法である。二つ目は、プログラム作成支援装置1から通信部14を介して基本ユニット3に設定情報57を書き込み、基本ユニット3から拡張ユニット4に設定情報57を書き込む方法である。たとえば、拡張ユニット4のCPU110は設定情報57の読み出し要求を通信部114にセットしてメッセージ通信を実行する。基本ユニット3の拡張バス制御部34は通信部14を介して読み出し要求を受信すると、パラメータ記憶部40bに一時的に格納しておいた設定情報57を読み出し、レスポンスデータに搭載し、拡張バス制御部34にセットする。拡張バス制御部34は通信部14を制御してレスポンスデータを拡張ユニット4に送信する。拡張ユニット4のCPU110は通信部114を介してレスポンスデータを受信すると、レスポンスデータから設定情報57を抽出してパラメータ記憶部60bに書き込む。拡張ユニット4用の設定情報57は、基本ユニット3用の設定情報37と一緒にプログラム作成支援装置1から基本ユニット3に転送されるため、両者は整合している。仮に、両者を個別に転送すると、両者が整合していない時間が発生するため、この時間には正しい同期リフレッシュを実現できないだろう。したがって、設定情報の個別転送よりも、基本ユニット3を介する一括転送が有利であろう。
<Obtain synchronous refresh settings>
There are several methods for writing setting information 57 indicating settings related to synchronous refresh from the program creation support apparatus 1 to the expansion unit 4. The first is a method of writing to the expansion unit 4 from the program creation support apparatus 1 via the communication unit 114. The second is a method of writing the setting information 57 from the program creation support apparatus 1 to the basic unit 3 via the communication unit 14 and writing the setting information 57 from the basic unit 3 to the expansion unit 4. For example, the CPU 110 of the expansion unit 4 sets a request for reading the setting information 57 to the communication unit 114 and executes message communication. When the expansion bus control unit 34 of the basic unit 3 receives the read request via the communication unit 14, the setting information 57 temporarily stored in the parameter storage unit 40b is read and loaded in the response data to control the expansion bus. Set in part 34. The expansion bus control unit 34 controls the communication unit 14 to transmit response data to the expansion unit 4. When the CPU 110 of the expansion unit 4 receives the response data via the communication unit 114, the setting information 57 is extracted from the response data and written to the parameter storage unit 60b. Since the setting information 57 for the extension unit 4 is transferred from the program creation support apparatus 1 to the basic unit 3 together with the setting information 37 for the basic unit 3, they are matched. If the two are transferred individually, a time when the two do not match will occur, and a correct synchronous refresh will not be realized at this time. Therefore, batch transfer via the basic unit 3 may be more advantageous than individual transfer of setting information.

ところで、設定情報57は、同期リフレッシュの対象となる複数のデバイスを指定する。しかし、図14が示すように、同期リフレッシュの対象となる複数のデバイスはデバイス記憶部40cにおいて散在していることもある。この場合に、複数のデバイスを一つずつ基本ユニット3と拡張ユニット4との間で転送すると、通信ヘッダなどのオーバヘッドが増加し、転送効率が低下する。そこで、デバイス管理部31は設定情報37によって指定されている同期リフレッシュの対象となる複数のデバイスをデバイス記憶部40cから読み出して一つのデータの塊(出力系のデバイスセット61)を作成し、出力系のデバイスセット61を拡張ユニット4に転送する。拡張ユニット4のデバイス管理部51は出力系のデバイスセット61を受信すると、設定情報57を参照し、出力系のデバイスセット61を個別のデバイスに分離して、対応するバッファメモリに書き込む。また、デバイス管理部51は設定情報37によって指定されている同期リフレッシュの対象となる複数のデバイスをデバイス記憶部60cのバッファメモリ58から読み出して一つのデータの塊(入力系のデバイスセット61)を作成し、入力系のデバイスセット61を基本ユニット3に転送する。基本ユニット3のデバイス管理部31は入力系のデバイスセット61を受信すると、設定情報37を参照し、入力系のデバイスセット61を個別のデバイスに分離して、デバイス記憶部40b内の対応するデバイスに書き込む。このようにして入力系の同期リフレッシュと出力系の同期リフレッシュが実現される。このようにデバイスを一括して転送するため通信部14と通信部114との間でのオーバヘッドが削減され、通信時間が短縮される。なお、同期リフレッシュの実行中は、デバイス管理部31、51がそれぞれ他の何らかのプロセスからのデバイスへのアクセス(読み/書き)を禁止する。ある演算処理が複数のデバイスを参照して実行されるときに、一つ目のデバイスはリフレッシュ済みで、他のデバイスはリフレッシュが未済であると、各デバイスの取得時刻が異なってしまう。この場合、当該演算処理は正しい演算を実行できなくなってしまう。したがって、同期リフレッシュの実行中の読み/書きを禁止することで、各デバイスの同時性を維持できるようになる。   By the way, the setting information 57 specifies a plurality of devices to be subjected to synchronous refresh. However, as shown in FIG. 14, a plurality of devices to be subjected to synchronous refresh may be scattered in the device storage unit 40c. In this case, if a plurality of devices are transferred one by one between the basic unit 3 and the extension unit 4, overhead such as a communication header increases and transfer efficiency decreases. Therefore, the device management unit 31 reads a plurality of devices to be subjected to synchronous refresh specified by the setting information 37 from the device storage unit 40c, creates a single data chunk (output device set 61), and outputs it. The system device set 61 is transferred to the expansion unit 4. When the device management unit 51 of the expansion unit 4 receives the output device set 61, the device management unit 51 refers to the setting information 57, separates the output device set 61 into individual devices, and writes them into the corresponding buffer memory. Further, the device management unit 51 reads a plurality of devices to be subjected to synchronous refresh specified by the setting information 37 from the buffer memory 58 of the device storage unit 60c, and collects one data block (input system device set 61). The input device set 61 is created and transferred to the basic unit 3. When the device management unit 31 of the basic unit 3 receives the input device set 61, the device management unit 31 refers to the setting information 37, separates the input device set 61 into individual devices, and corresponding devices in the device storage unit 40b. Write to. In this way, the input system synchronous refresh and the output system synchronous refresh are realized. As described above, since the devices are collectively transferred, the overhead between the communication unit 14 and the communication unit 114 is reduced, and the communication time is shortened. During the execution of synchronous refresh, the device managers 31 and 51 prohibit access (read / write) to the device from some other process. When a certain arithmetic process is executed with reference to a plurality of devices, if the first device has been refreshed and the other devices have not been refreshed, the acquisition times of the devices differ. In this case, the calculation process cannot execute a correct calculation. Therefore, by prohibiting reading / writing while synchronous refresh is being executed, the simultaneity of each device can be maintained.

図15はプログラム作成支援装置1のCPU24が表示部7に表示するユーザインタフェース70の一例である。ユーザインタフェース70は、拡張ユニット4において同期リフレッシュの対象となるデバイスを指定するためのユーザインタフェースである。デバイス番号入力部72は、同期リフレッシュの対象となるデバイスの識別情報が入力される領域である。サイズ入力部73は、デバイスのサイズ(例:1ビット、16ビット、32ビット、64ビットなど)が入力される領域である。デバイス名入力部74はデバイス名が入力される領域である。もちろん、デバイスの特徴を指定するための他の入力部が追加されてもよい。ユーザは操作部8を通じてポインタ71を操作し、入力を希望するいずれかの領域を指定する。次に、ユーザは操作部8を通じてデバイス番号などを入力する。OKボタンが操作されると、CPU24はユーザインタフェース70で特定されたデバイスやアドレスの情報を含む設定情報37、57を作成し、基本ユニット3に転送する。なお、設定情報37、57は完全に同一のデータであってもよい。   FIG. 15 shows an example of a user interface 70 displayed on the display unit 7 by the CPU 24 of the program creation support apparatus 1. The user interface 70 is a user interface for designating a device subject to synchronous refresh in the extension unit 4. The device number input unit 72 is an area in which identification information of a device to be subjected to synchronous refresh is input. The size input unit 73 is an area for inputting a device size (eg, 1 bit, 16 bits, 32 bits, 64 bits, etc.). The device name input unit 74 is an area where a device name is input. Of course, other input units for specifying the characteristics of the device may be added. The user operates the pointer 71 through the operation unit 8 and designates any area desired to be input. Next, the user inputs a device number and the like through the operation unit 8. When the OK button is operated, the CPU 24 creates setting information 37 and 57 including information on the device and address specified by the user interface 70 and transfers them to the basic unit 3. The setting information 37 and 57 may be completely the same data.

<アプリケーション>
図6に示したアプリケーションに本実施形態を適用したときの拡張ユニット4の動作について説明する。図16はモーションユニット4aのCPU110が実行する処理を示すフローチャートである。
<Application>
The operation of the expansion unit 4 when the present embodiment is applied to the application shown in FIG. 6 will be described. FIG. 16 is a flowchart showing processing executed by the CPU 110 of the motion unit 4a.

S41でCPU110(プログラム実行部54)はユーザプログラム56に記述されている命令語にしたがって機能制御部50およびサーボアンプ41a、41bを通じてサーボモータ42a、42bを一定速度で回転させる。これによりワーク47は一定速度で搬送されることになる。   In S41, the CPU 110 (program execution unit 54) rotates the servo motors 42a and 42b at a constant speed through the function control unit 50 and the servo amplifiers 41a and 41b in accordance with the instruction words described in the user program 56. Thereby, the workpiece 47 is conveyed at a constant speed.

S42でCPU110(プログラム実行部54)はユーザプログラム56に記述されている命令語にしたがって所定位置にワーク47が到着したかどうかを判定する。   In S <b> 42, the CPU 110 (program execution unit 54) determines whether or not the work 47 has arrived at a predetermined position according to the instruction word described in the user program 56.

図17が示すように、入力ユニット4bに接続されたセンサ44の検知結果(デバイス値)Xiはユニット間同期周期ごとに実行される同期リフレッシュによって入力ユニット4bから基本ユニット3に書き込まれる。同様に、基本ユニット3に書き込まれたセンサ44の検知結果は同期リフレッシュによってモーションユニット4aのバッファメモリ58に格納される。基本ユニット3は検知結果を格納している入力系のデバイスから出力系のデバイスにコピーし、出力系のデバイスに格納されているデバイス値をモーションユニット4aに転送してもよい。プログラム実行部54は、モーションフローに記述されている命令語にしたがって、センサ44の検知結果を格納しているデバイスの読み出し要求をデバイス管理部51に渡す。デバイス管理部51は読み出し要求の対象となっているデバイスに対応するバッファメモリ58のアドレスを設定情報57から取得し、取得したアドレスから検知結果を読み出し、プログラム実行部54に渡す。プログラム実行部54は、センサ44の検知結果がオンであれば所定位置にワーク47が到着したと判定し、一方で検知結果がオフであればワーク47がまだ到着していないと判定する。ワーク47が所定位置に到着する、CPU110はS43に進む。   As shown in FIG. 17, the detection result (device value) Xi of the sensor 44 connected to the input unit 4b is written from the input unit 4b to the basic unit 3 by synchronous refresh executed at every inter-unit synchronization period. Similarly, the detection result of the sensor 44 written in the basic unit 3 is stored in the buffer memory 58 of the motion unit 4a by synchronous refresh. The basic unit 3 may copy the detection result from the input device to the output device, and transfer the device value stored in the output device to the motion unit 4a. The program execution unit 54 passes a device read request storing the detection result of the sensor 44 to the device management unit 51 in accordance with the instruction word described in the motion flow. The device management unit 51 acquires the address of the buffer memory 58 corresponding to the device that is the target of the read request from the setting information 57, reads the detection result from the acquired address, and passes it to the program execution unit 54. The program execution unit 54 determines that the work 47 has arrived at a predetermined position if the detection result of the sensor 44 is on, and determines that the work 47 has not yet arrived if the detection result is off. When the work 47 arrives at the predetermined position, the CPU 110 proceeds to S43.

S43でCPU110(プログラム実行部54)はユーザプログラム56に記述されている命令語にしたがって機能制御部50およびサーボアンプ41a、41bを通じてサーボモータ42a、42bを減速制御して停止させる。   In S43, the CPU 110 (program execution unit 54) controls the servo motors 42a and 42b to be decelerated and stopped through the function control unit 50 and the servo amplifiers 41a and 41b in accordance with the instruction word described in the user program 56.

S44で(プログラム実行部54)はユーザプログラム56に記述されている命令語にしたがって機能制御部50およびサーボアンプ41cを通じてサーボプレス43を稼働させる。これによりワーク47がプレス加工される。   In S44 (program execution unit 54) operates the servo press 43 through the function control unit 50 and the servo amplifier 41c in accordance with the instruction word described in the user program 56. Thereby, the workpiece 47 is pressed.

このように本実施形態によればモーションユニット4aは基本ユニット3が保持しているデバイス値に基づいてモーションフローを実行できるようになる。たとえば、モーションユニット4aは基本ユニット3が入力ユニット4bから取得したセンサ44の検知結果に基づいてモーションフローを実行できるようになる。つまり、モーションユニット4aは基本ユニット3や他の拡張ユニット4の動作状態を取得してモーションフローを実行できるようになる。そのため、従来は基本ユニット3のラダープログラム35によって実行されていた演算処理の一部またはすべてを拡張ユニット4で実行されるモーションフローなどのユーザプログラム56によって実行することが可能となる。これにより、基本ユニット3の演算負荷を拡張ユニット4へ分散させることが可能となる。   As described above, according to the present embodiment, the motion unit 4a can execute the motion flow based on the device values held by the basic unit 3. For example, the motion unit 4a can execute a motion flow based on the detection result of the sensor 44 acquired by the basic unit 3 from the input unit 4b. That is, the motion unit 4a can acquire the operation state of the basic unit 3 and other extension units 4 and execute the motion flow. Therefore, part or all of the arithmetic processing that has been conventionally executed by the ladder program 35 of the basic unit 3 can be executed by the user program 56 such as a motion flow executed by the extension unit 4. As a result, the calculation load of the basic unit 3 can be distributed to the expansion unit 4.

ユーザは、センサ44の検知結果をダイレクト通信によって入力ユニット4bから取得し、さらにモーションユニット4aへダイレクト通信によって検知結果を書き込むようラダープログラム35を作成してもよい。しかし、これではユーザのプログラミングの負担が増加してしまう。本実施形態であれば、基本ユニット3のデバイスに書き込まれたセンサ44の検知結果が、リフレッシュによってモーションユニット4aのバッファメモリ58に書き込まれる。そのため、モーションフローを実行するプログラム実行部54がセンサ44の検知結果を参照できるようになっている。つまり、ユーザは同期リフレッシュの対象となるデバイスを予め設定すればよい。よって、ユーザのプログラミングの負担も軽減される。   The user may create the ladder program 35 such that the detection result of the sensor 44 is acquired from the input unit 4b by direct communication and the detection result is written to the motion unit 4a by direct communication. However, this increases the burden of user programming. In the present embodiment, the detection result of the sensor 44 written to the device of the basic unit 3 is written to the buffer memory 58 of the motion unit 4a by refresh. Therefore, the program execution unit 54 that executes the motion flow can refer to the detection result of the sensor 44. That is, the user may set in advance a device to be subjected to synchronous refresh. Therefore, the burden on the user's programming is reduced.

<まとめ>
図7を用いて説明したように、基本ユニット3はラダー実行部30、デバイス記憶部40cおよび通信部14などを有している。ラダー実行部30はスキャン周期にしたがって繰り返し第一ユーザプログラム(例:ラダープログラム35)を実行する第一プログラム実行部として機能する。デバイス記憶部40cはラダープログラム35にしたがってラダー実行部30により参照されるデバイス値を格納する第一デバイスメモリとして機能する。通信部14は拡張ユニット4と通信する第一通信部として機能する。図8を用いて説明したように拡張ユニット4は、基本ユニット3と通信する通信部114、デバイス記憶部60cおよびプログラム実行部54などを有する。通信部114は第二通信部の一例である。ユーザプログラム56は第二ユーザプログラムの一例である。デバイス記憶部60cのデバイス値はスキャン周期とは異なる短いユニット間同期周期ごとに通信部14および通信部114を介して更新され、デバイス記憶部40cのデバイス値と同期したデバイス値となる。デバイス記憶部60cはデバイス記憶部40cのデバイス値と同期したデバイス値を格納する第二デバイスメモリとして機能する。プログラム実行部54はデバイス記憶部60cに格納されたデバイス値を参照してユーザプログラム56を実行する第二プログラム実行部として機能する。このように本実施形態によれば、基本ユニット3が保持しているデバイス値を拡張ユニット4に参照させることで当該デバイス値を用いて拡張ユニット4にユーザプログラム56を実行させることが可能となる。
<Summary>
As described with reference to FIG. 7, the basic unit 3 includes the ladder execution unit 30, the device storage unit 40c, the communication unit 14, and the like. The ladder execution unit 30 functions as a first program execution unit that repeatedly executes a first user program (eg, a ladder program 35) according to a scan cycle. The device storage unit 40 c functions as a first device memory that stores a device value referred to by the ladder execution unit 30 according to the ladder program 35. The communication unit 14 functions as a first communication unit that communicates with the expansion unit 4. As described with reference to FIG. 8, the expansion unit 4 includes the communication unit 114, the device storage unit 60 c, the program execution unit 54, and the like that communicate with the basic unit 3. The communication unit 114 is an example of a second communication unit. The user program 56 is an example of a second user program. The device value in the device storage unit 60c is updated via the communication unit 14 and the communication unit 114 for each short inter-unit synchronization cycle different from the scan cycle, and becomes a device value synchronized with the device value in the device storage unit 40c. The device storage unit 60c functions as a second device memory that stores device values synchronized with the device values in the device storage unit 40c. The program execution unit 54 functions as a second program execution unit that executes the user program 56 with reference to the device values stored in the device storage unit 60c. As described above, according to the present embodiment, it is possible to cause the expansion unit 4 to execute the user program 56 using the device value by referring the device value held by the basic unit 3 to the expansion unit 4. .

基本ユニット3のデバイス記憶部40cは、他の拡張ユニット4から入力されたデバイス値を保持する入力デバイスと、基本ユニット3から拡張ユニット4へ出力されるデバイス値を保持する出力デバイスとを有していてもよい。拡張ユニット4のデバイス記憶部60cのバッファメモリ58は、拡張ユニット4から基本ユニット3へ入力されたデバイス値を保持する入力デバイスと基本ユニット3から拡張ユニット4へ出力されるデバイス値を保持する出力デバイスとして機能してもよい。この入力デバイスは、基本ユニット3のデバイス記憶部40cの入力デバイスに関連付けられている。また出力デバイスは、基本ユニット3の出力デバイスに関連付けられている。   The device storage unit 40c of the basic unit 3 includes an input device that holds a device value input from another extension unit 4, and an output device that holds a device value output from the basic unit 3 to the extension unit 4. It may be. The buffer memory 58 of the device storage unit 60c of the expansion unit 4 has an input device that holds a device value input from the expansion unit 4 to the basic unit 3, and an output that holds a device value output from the basic unit 3 to the expansion unit 4. It may function as a device. This input device is associated with the input device of the device storage unit 40c of the basic unit 3. The output device is associated with the output device of the basic unit 3.

図6を用いて説明したように、PLC2は、基本ユニット3と通信する他の拡張ユニット4である入力ユニットであって、デバイス値を格納する第三デバイスメモリ(例:バッファメモリ58)を有する入力ユニット4bをさらに有していてもよい。図17を用いて説明したように、入力ユニット4bのバッファメモリ58に格納されたデバイス値がユニット間同期リフレッシュによって基本ユニット3が有するデバイス記憶部40cに書き込まれる。同様に、基本ユニット3のデバイス記憶部40cに書き込まれた当該デバイス値がユニット間同期リフレッシュによって拡張ユニット4(モーションユニット4a)のデバイス記憶部60cに書き込まれる。モーションユニット4aのプログラム実行部54は、基本ユニット3を経由して入力ユニット4bから転送されてきたデバイス値を用いてユーザプログラム56を実行する。このように入力ユニット4bのデバイス値はユニット間同期リフレッシュによって基本ユニット3からモーションユニット4aに転送されてもよい。なお、デバイス記憶部60cのデバイスメモリはバッファメモリ58であってもよい。   As described with reference to FIG. 6, the PLC 2 is an input unit that is another extension unit 4 that communicates with the basic unit 3, and has a third device memory (for example, a buffer memory 58) that stores device values. An input unit 4b may be further included. As described with reference to FIG. 17, the device value stored in the buffer memory 58 of the input unit 4b is written into the device storage unit 40c of the basic unit 3 by inter-unit synchronous refresh. Similarly, the device value written to the device storage unit 40c of the basic unit 3 is written to the device storage unit 60c of the extension unit 4 (motion unit 4a) by inter-unit synchronous refresh. The program execution unit 54 of the motion unit 4a executes the user program 56 using the device value transferred from the input unit 4b via the basic unit 3. As described above, the device value of the input unit 4b may be transferred from the basic unit 3 to the motion unit 4a by inter-unit synchronous refresh. The device memory of the device storage unit 60c may be the buffer memory 58.

設定情報37、57は、デバイス記憶部40cにおいて入力ユニット4bのデバイス値を格納するデバイスの識別情報と、入力ユニット4bのデバイス値が格納される拡張ユニット4のバッファメモリ58の識別情報とを対応付けて管理する管理情報であってもよい。このような管理情報はデバイス管理部31、51がそれぞれパラメータ記憶部40b、60bに格納して保持していてもよい。プログラム実行部54やデバイス管理部51は、設定情報57を参照することで、入力ユニット4bのデバイス値が格納されたバッファメモリ58のアドレスを特定し、当該バッファメモリ58から入力ユニット4bのデバイス値を取得してもよい。つまり、ユーザプログラム56においては入力ユニット4bのデバイス値のデバイスの識別情報をそのまま記述することが可能となり、当該デバイス値を格納しているバッファメモリ58の識別情報を記述する必要はない。よって、ユーザのプログラミングの負担が軽減されよう。   The setting information 37 and 57 correspond to the identification information of the device that stores the device value of the input unit 4b in the device storage unit 40c and the identification information of the buffer memory 58 of the expansion unit 4 that stores the device value of the input unit 4b. It may be management information attached and managed. Such management information may be stored and held in the device storage units 31 and 51 in the parameter storage units 40b and 60b, respectively. The program execution unit 54 and the device management unit 51 refer to the setting information 57 to identify the address of the buffer memory 58 in which the device value of the input unit 4b is stored, and the device value of the input unit 4b from the buffer memory 58 May be obtained. That is, in the user program 56, the device identification information of the device value of the input unit 4b can be described as it is, and it is not necessary to describe the identification information of the buffer memory 58 storing the device value. Therefore, the user's programming burden will be reduced.

図7を用いて説明したようにデバイス記憶部40cは1ビットの情報を保持するリレーデバイス(例:リレー39)と、数ビットの情報を保持するデータメモリ38とを有していてもよい。また、図8を用いて説明したようにデバイス記憶部60cは1ビットの情報を保持するリレーデバイス(1ビット型のバッファメモリ58)と、数ビットの情報を保持するデータメモリ(16ビット、32ビットまたは64ビット型のバッファメモリ58)とを有していてもよい。   As described with reference to FIG. 7, the device storage unit 40c may include a relay device (for example, relay 39) that holds 1-bit information and a data memory 38 that holds several bits of information. As described with reference to FIG. 8, the device storage unit 60c includes a relay device (1-bit type buffer memory 58) that holds 1-bit information and a data memory (16 bits, 32 that holds several bits of information). Or a 64-bit type buffer memory 58).

図10を用いて説明したように、基本ユニット3は、通信部14および通信部114を介して拡張ユニット4に対してユーザプログラム56の実行を指示する。これによりユーザプログラム56が基本ユニット3から起動されるようになる。   As described with reference to FIG. 10, the basic unit 3 instructs the expansion unit 4 to execute the user program 56 via the communication unit 14 and the communication unit 114. As a result, the user program 56 is started from the basic unit 3.

基本ユニット3は、ユニット間同期周期を管理するCPUユニットタイマー32を有していてもよい。また、拡張ユニット4は、ユニット間同期周期を管理し、CPUユニットタイマー32と時刻同期した拡張ユニット4タイマーを有していてもよい。基本ユニット3は、CPUユニットタイマー32により管理されている時刻に同期してユニット間同期リフレッシュを実行する。拡張ユニット4は、拡張ユニット4タイマーにより管理されている時刻に同期してユニット間同期リフレッシュを実行する。これにより、基本ユニット3が保持しているデバイス値と拡張ユニット4が保持しているデバイス値の取得時刻に関する同時性が確保されるようになろう。   The basic unit 3 may have a CPU unit timer 32 that manages the inter-unit synchronization period. Further, the expansion unit 4 may have an expansion unit 4 timer that manages the inter-unit synchronization period and is time-synchronized with the CPU unit timer 32. The basic unit 3 executes inter-unit synchronous refresh in synchronization with the time managed by the CPU unit timer 32. The expansion unit 4 executes the inter-unit synchronous refresh in synchronization with the time managed by the expansion unit 4 timer. Thereby, the simultaneity regarding the acquisition time of the device value held by the basic unit 3 and the device value held by the extension unit 4 will be ensured.

図14や図15を用いて説明したように、ユニット間同期リフレッシュによりデバイス値を更新されるデバイスと、スキャン周期にしたがって実行される入出力リフレッシュよりデバイス値を更新されるデバイスとは予めリフレッシュ設定情報(設定情報37、57)によって区別されていてもよい。少なくとも、ユーザは、ユニット間同期リフレッシュによりデバイス値を更新されるデバイスを一括して指定することで、ラダープログラム35の記述を簡潔化することができる。上述したように、ラダープログラム35にダイレクト通信による命令語を記述することで、一括リフレッシュのタイミング以外の任意のタイミングで各デバイス値を更新することも可能である。しかし、各デバイス値ごとにこのような命令語を記述することは非常に面倒であった。たとえば、1つのスキャンタイムで100回のダイレクト通信による更新を実行しようとするとラダープログラム35内の100か所に更新のための命令語を記述する必要があり、非常にプログラミングの負担が重かった。本実施形態であれば、このような記述が不要となるため、ユーザのプログラミング負担が軽減する。   As described with reference to FIGS. 14 and 15, a device whose device value is updated by the inter-unit synchronous refresh and a device whose device value is updated by the input / output refresh executed according to the scan cycle are refresh set in advance. It may be distinguished by information (setting information 37, 57). At least, the user can simplify the description of the ladder program 35 by collectively specifying devices whose device values are updated by the inter-unit synchronous refresh. As described above, by writing a command word by direct communication in the ladder program 35, it is possible to update each device value at an arbitrary timing other than the batch refresh timing. However, it is very troublesome to describe such an instruction word for each device value. For example, when updating by direct communication 100 times in one scan time, it is necessary to write instruction words for updating in 100 places in the ladder program 35, and the burden of programming is very heavy. In the present embodiment, such a description is not necessary, and the programming burden on the user is reduced.

たとえば、ユーザプログラム56はモーションフローによるフロープログラムであってもよい。もちろん、基本ユニット3で実行されるユーザプログラムはラダー言語以外の言語(例:C言語)で記述されてもよいし、拡張ユニット4で実行されるユーザプログラム56もモーションフロー以外の言語(例:C言語)で記述されてもよい。   For example, the user program 56 may be a flow program based on motion flow. Of course, the user program executed in the basic unit 3 may be described in a language other than the ladder language (for example, C language), and the user program 56 executed in the extension unit 4 is also in a language other than the motion flow (for example: (C language).

本実施形態は様々なアプリケーションに対して適用可能である。たとえば、図6、図16および図17を用いて説明したように、ワーク47にプレス加工を行うようなアプリケーションにも本実施形態は適用可能である。   This embodiment is applicable to various applications. For example, as described with reference to FIGS. 6, 16, and 17, the present embodiment can be applied to an application in which the workpiece 47 is pressed.

図6や図17などを用いて説明したようなアプリケーションにも本実施形態は適用可能である。モーションユニット4aのデバイス記憶部60cは、スキャン周期よりも短いユニット間同期周期ごとに通信部14および通信部114を介して更新され、基本ユニット3のデバイス記憶部40cのデバイス値と同期したデバイス値を格納する。モーションユニット4aのプログラム実行部54はデバイス記憶部60cに格納されたデバイス値を参照してモーションフローを実行する。入力ユニット4bは、ワーク47の有無を検知するセンサ44を被制御装置16として接続されている。入力ユニット4bのバッファメモリ58は、センサ44のオン/オフを示すデバイス値を格納するリレーデバイスを有する第三デバイスメモリの一例である。入力ユニット4bの通信部114は、少なくともユニット間同期周期ごとに基本ユニット3と通信し、リレーデバイスに格納されているデバイス値を基本ユニット3に送信する第三通信部の一例である。基本ユニット3は、入力ユニット4bから書き込まれたデバイス値のうち、モーションユニット4aで必要とされるデバイス値を、デバイス記憶部40cのうち所定のデバイスに格納し、モーションユニット4aのデバイス記憶部60cのデバイスとユニット間同期リフレッシュさせる。モーションユニット4aは、デバイス記憶部60cのバッファメモリ58から入力ユニット4bのデバイス値を読み出し、当該デバイス値がワーク47を検出したことを示すまで、ワーク47を搬送する搬送機構を稼働させる。搬送機構はコンベア46やサーボモータ42a、42bなどである。モーションユニット4aは、当該デバイス値がワーク47を検出したことを示すと搬送機構を減速制御することでワーク47をプレス位置に停止させる。このようなアプリケーションにも本実施形態を適用することで、基本ユニット3が保持している入力ユニット4bのデバイス値をモーションユニット4aに参照させることが可能となる。つまり、モーションユニット4aは当該デバイス値を用いてモーションフローのユーザプログラム56を実行できるようになる。   The present embodiment can also be applied to applications such as those described with reference to FIGS. The device storage unit 60c of the motion unit 4a is updated via the communication unit 14 and the communication unit 114 at every unit synchronization cycle shorter than the scan cycle, and is synchronized with the device value of the device storage unit 40c of the basic unit 3. Is stored. The program execution unit 54 of the motion unit 4a executes the motion flow with reference to the device values stored in the device storage unit 60c. The input unit 4 b is connected with a sensor 44 that detects the presence or absence of the workpiece 47 as the controlled device 16. The buffer memory 58 of the input unit 4 b is an example of a third device memory having a relay device that stores a device value indicating ON / OFF of the sensor 44. The communication unit 114 of the input unit 4b is an example of a third communication unit that communicates with the basic unit 3 at least every inter-unit synchronization period and transmits the device value stored in the relay device to the basic unit 3. The basic unit 3 stores the device value required by the motion unit 4a among the device values written from the input unit 4b in a predetermined device of the device storage unit 40c, and the device storage unit 60c of the motion unit 4a. Synchronous refresh between devices and units. The motion unit 4a reads the device value of the input unit 4b from the buffer memory 58 of the device storage unit 60c, and operates the transport mechanism that transports the work 47 until the device value indicates that the work 47 has been detected. The transport mechanism is a conveyor 46, servo motors 42a and 42b, and the like. When the device value indicates that the workpiece 47 has been detected, the motion unit 4a controls the conveyance mechanism to decelerate and stops the workpiece 47 at the press position. By applying this embodiment to such an application, the motion unit 4a can be referred to the device value of the input unit 4b held by the basic unit 3. That is, the motion unit 4a can execute the user program 56 of the motion flow using the device value.

また、図13などを用いて説明したように、本実施形態によれば、プログラマブル・ロジック・コントローラの制御方法も提供される。図10を用いて説明したように、基本ユニット3は、拡張ユニット4と通信して当該拡張ユニット4にユーザプログラム56を起動させる。拡張ユニット4は基本ユニット3からの起動指示に従ってユーザプログラム56を起動する。図12などを用いて説明したように、基本ユニット3と拡張ユニット4は、基本ユニット3に保持されているデバイス値をスキャン周期ごと、または、スキャン周期よりも短いユニット間同期周期ごとにリフレッシュすることで当該デバイス値を拡張ユニット4のバッファメモリ58に格納する。図13などを用いて説明したように、拡張ユニット4は、ユーザプログラム56に記述されている命令語にしたがってデバイス値を拡張ユニット4のバッファメモリ58から取得して当該命令語を実行する。このように本実施形態によれば、基本ユニット3が保持しているデバイス値を拡張ユニット4に参照させることで当該デバイス値を用いて拡張ユニット4にユーザプログラム56を実行させることが可能となる。   Further, as described with reference to FIG. 13 and the like, according to the present embodiment, a control method of the programmable logic controller is also provided. As described with reference to FIG. 10, the basic unit 3 communicates with the expansion unit 4 to cause the expansion unit 4 to activate the user program 56. The expansion unit 4 activates the user program 56 in accordance with the activation instruction from the basic unit 3. As described with reference to FIG. 12 and the like, the basic unit 3 and the extension unit 4 refresh the device values held in the basic unit 3 every scan period or every inter-unit synchronization period shorter than the scan period. Thus, the device value is stored in the buffer memory 58 of the expansion unit 4. As described with reference to FIG. 13 and the like, the extension unit 4 acquires a device value from the buffer memory 58 of the extension unit 4 according to the instruction word described in the user program 56 and executes the instruction word. As described above, according to the present embodiment, it is possible to cause the expansion unit 4 to execute the user program 56 using the device value by referring the device value held by the basic unit 3 to the expansion unit 4. .

Claims (14)

CPUユニットと前記CPUユニットと通信する拡張ユニットとを有するプログラマブル・ロジック・コントローラであって、
前記CPUユニットは、
スキャン周期にしたがって繰り返し第一ユーザプログラムを実行する第一プログラム実行部と、
前記第一ユーザプログラムにしたがって前記第一プログラム実行部により参照されるデバイス値を格納する第一デバイスメモリと、
前記拡張ユニットと通信する第一通信部と
を有し、
前記拡張ユニットは、
前記CPUユニットと通信する第二通信部と、
前記スキャン周期とは異なるユニット間同期周期ごとに前記第一通信部および前記第二通信部を介して更新され、前記第一デバイスメモリのデバイス値と同期したデバイス値を格納する第二デバイスメモリと、
前記第二デバイスメモリに格納されたデバイス値を参照して第二ユーザプログラムを実行する第二プログラム実行部と
を有することを特徴とするプログラマブル・ロジック・コントローラ。
A programmable logic controller having a CPU unit and an expansion unit communicating with the CPU unit,
The CPU unit is
A first program execution unit that repeatedly executes a first user program according to a scan cycle;
A first device memory for storing a device value referred to by the first program execution unit according to the first user program;
A first communication unit that communicates with the expansion unit;
The expansion unit is
A second communication unit communicating with the CPU unit;
A second device memory that stores device values that are updated via the first communication unit and the second communication unit for each unit synchronization cycle different from the scan cycle, and that are synchronized with the device values of the first device memory; ,
A programmable logic controller, comprising: a second program execution unit that executes a second user program with reference to a device value stored in the second device memory.
前記第一デバイスメモリは、
他の拡張ユニットから入力されたデバイス値を保持する入力デバイスと、
前記CPUユニットから前記拡張ユニットへ出力されるデバイス値を保持する出力デバイスと
を有し、
前記第二デバイスメモリは、
前記第一デバイスメモリの入力デバイスに関連付けられており、前記拡張ユニットから前記CPUユニットへ入力されたデバイス値を保持する入力デバイスと、
前記CPUユニットの出力デバイスに関連付けられており、前記CPUユニットから前記拡張ユニットへ出力されるデバイス値を保持する出力デバイスと
を有することを特徴とする請求項1に記載のプログラマブル・ロジック・コントローラ。
The first device memory is
An input device that holds device values entered from other expansion units;
An output device that holds a device value output from the CPU unit to the extension unit;
The second device memory is
An input device that is associated with the input device of the first device memory and holds a device value input from the expansion unit to the CPU unit;
The programmable logic controller according to claim 1, further comprising: an output device that is associated with an output device of the CPU unit and holds a device value output from the CPU unit to the extension unit.
前記CPUユニットと通信する前記他の拡張ユニットである入力ユニットであって、デバイス値を格納する第三デバイスメモリを有する入力ユニットをさらに有し、
前記入力ユニットの前記第三デバイスメモリに格納されたデバイス値がユニット間同期リフレッシュによって前記CPUユニットが有する前記第一デバイスメモリに書き込まれ、前記第一デバイスメモリに書き込まれた当該デバイス値がユニット間同期リフレッシュによって前記拡張ユニットの前記第二デバイスメモリに書き込まれ、前記第二プログラム実行部は、前記CPUユニットを経由して前記入力ユニットから転送されてきたデバイス値を用いて前記第二ユーザプログラムを実行することを特徴とする請求項2に記載のプログラマブル・ロジック・コントローラ。
An input unit that is the other extension unit that communicates with the CPU unit, further comprising an input unit having a third device memory for storing a device value;
The device value stored in the third device memory of the input unit is written to the first device memory of the CPU unit by inter-unit synchronous refresh, and the device value written to the first device memory is The second user program is written to the second device memory of the expansion unit by synchronous refresh, and the second program execution unit uses the device value transferred from the input unit via the CPU unit. The programmable logic controller of claim 2, wherein the programmable logic controller is executed.
前記第二デバイスメモリはバッファメモリであることを特徴とする請求項3に記載のプログラマブル・ロジック・コントローラ。   4. The programmable logic controller according to claim 3, wherein the second device memory is a buffer memory. 前記第一デバイスメモリにおいて前記入力ユニットのデバイス値を格納するデバイスの識別情報と、前記入力ユニットのデバイス値が格納される前記拡張ユニットの前記バッファメモリの識別情報とを対応付けて管理する管理情報を保持する管理部をさらに有し、
前記第二プログラム実行部は、前記管理情報を参照することで、前記入力ユニットのデバイス値が格納された前記バッファメモリを特定し、当該バッファメモリから前記入力ユニットのデバイス値を取得することを特徴とする請求項4に記載のプログラマブル・ロジック・コントローラ。
Management information for managing the identification information of the device that stores the device value of the input unit in the first device memory and the identification information of the buffer memory of the expansion unit that stores the device value of the input unit in association with each other A management unit that holds
The second program execution unit identifies the buffer memory storing the device value of the input unit by referring to the management information, and acquires the device value of the input unit from the buffer memory. The programmable logic controller according to claim 4.
前記第一デバイスメモリは1ビットの情報を保持するリレーデバイスと、数ビットの情報を保持するデータメモリとを有しており、
前記第二デバイスメモリは1ビットの情報を保持するリレーデバイスと、数ビットの情報を保持するデータメモリとを有していることを特徴とする請求項1ないし5のいずれか一項に記載のプログラマブル・ロジック・コントローラ。
The first device memory has a relay device that holds 1-bit information and a data memory that holds several bits of information;
6. The device according to claim 1, wherein the second device memory includes a relay device that holds 1-bit information and a data memory that holds several bits of information. Programmable logic controller.
前記CPUユニットは、前記第一通信部および前記第二通信部を介して前記拡張ユニットに対して前記第二ユーザプログラムの実行を指示することを特徴とする請求項1ないし6のいずれか一項に記載のプログラマブル・ロジック・コントローラ。   The said CPU unit instruct | indicates execution of said 2nd user program with respect to the said expansion unit via said 1st communication part and said 2nd communication part, The any one of Claim 1 thru | or 6 characterized by the above-mentioned. Programmable logic controller described in 1. 前記CPUユニットは、前記ユニット間同期周期を管理するCPUユニットタイマーを有し、
前記拡張ユニットは、前記ユニット間同期周期を管理し、前記CPUユニットタイマーと時刻同期した拡張ユニットタイマーを有し、
前記CPUユニットは、前記CPUユニットタイマーにより管理されている時刻に同期してユニット間同期リフレッシュを実行し、
前記拡張ユニットは、前記拡張ユニットタイマーにより管理されている時刻に同期してユニット間同期リフレッシュを実行することを特徴とする請求項1ないし7のいずれか一項に記載のプログラマブル・ロジック・コントローラ。
The CPU unit has a CPU unit timer for managing the inter-unit synchronization cycle,
The expansion unit has an expansion unit timer that manages the inter-unit synchronization period and is time-synchronized with the CPU unit timer.
The CPU unit performs inter-unit synchronous refresh in synchronization with the time managed by the CPU unit timer,
The programmable logic controller according to any one of claims 1 to 7, wherein the expansion unit performs inter-unit synchronous refresh in synchronization with a time managed by the expansion unit timer.
前記ユニット間同期リフレッシュによりデバイス値を更新されるデバイスと、前記スキャン周期にしたがって実行される入出力リフレッシュよりデバイス値を更新されるデバイスとは予めリフレッシュ設定情報によって区別されていることを特徴とする請求項8に記載のプログラマブル・ロジック・コントローラ。   The device whose device value is updated by the inter-unit synchronous refresh and the device whose device value is updated by the input / output refresh executed according to the scan cycle are distinguished in advance by refresh setting information. The programmable logic controller according to claim 8. 前記第一ユーザプログラムはラダープログラムであり、前記第二ユーザプログラムはモーションフローであることを特徴とする請求項1ないし9のいずれか一項に記載のプログラマブル・ロジック・コントローラ。   The programmable logic controller according to claim 1, wherein the first user program is a ladder program, and the second user program is a motion flow. 前記第二デバイスメモリは、前記スキャン周期ごとの一括リフレッシュおよび前記スキャン周期とは異なるユニット間同期周期ごとに前記第一通信部および前記第二通信部を介して更新され、前記第一デバイスメモリのデバイス値と同期したデバイス値を格納する請求項1ないし10のいずれか一項に記載のプログラマブル・ロジック・コントローラ。   The second device memory is updated via the first communication unit and the second communication unit for each unit synchronization cycle different from the batch refresh and the scan cycle for each scan cycle, The programmable logic controller according to claim 1, wherein a device value synchronized with the device value is stored. 前記ユニット間同期周期は、前記スキャン周期よりも短いことを特徴とする請求項1ないし11のいずれか一項に記載のプログラマブル・ロジック・コントローラ。   The programmable logic controller according to claim 1, wherein the inter-unit synchronization period is shorter than the scan period. CPUユニットと前記CPUユニットと通信する複数の拡張ユニットとを有するプログラマブル・ロジック・コントローラであって、
前記CPUユニットは、
スキャン周期にしたがって繰り返し第一ユーザプログラムを実行する第一プログラム実行部と、
前記第一ユーザプログラムにしたがって前記第一プログラム実行部により参照されるデバイス値を格納する第一デバイスメモリと、
前記複数の拡張ユニットと通信する第一通信部と
を有し、
前記複数の拡張ユニットのうちモーションユニットは、
前記CPUユニットと通信する第二通信部と、
前記スキャン周期とは異なるユニット間同期周期ごとに前記第一通信部および前記第二通信部を介して更新され、前記第一デバイスメモリのデバイス値と同期したデバイス値を格納する第二デバイスメモリと、
前記第二デバイスメモリに格納されたデバイス値を参照してモーションフローを実行する第二プログラム実行部と
を有し、
前記複数の拡張ユニットのうち入力ユニットは、
ワークの有無を検知するセンサと、
前記センサのオン/オフを示すデバイス値を格納するリレーデバイスを有する第三デバイスメモリと、
少なくとも前記ユニット間同期周期ごとに前記CPUユニットと通信し、前記リレーデバイスに格納されているデバイス値を前記CPUユニットに送信する第三通信部と、
を有し、
前記CPUユニットは、前記入力ユニットから書き込まれたデバイス値のうち、前記モーションユニットで必要とされるデバイス値を、前記第一デバイスメモリのうち所定のデバイスに格納し、前記モーションユニットの前記第二デバイスメモリのデバイスとユニット間同期リフレッシュさせ、
前記モーションユニットは、前記第二デバイスメモリから前記入力ユニットのデバイス値を読み出し、当該デバイス値がワークを検出したことを示すまで、前記ワークを搬送する搬送機構を稼働させ、当該デバイス値がワークを検出したことを示すと前記搬送機構を減速制御することを特徴とするプログラマブル・ロジック・コントローラ。
A programmable logic controller having a CPU unit and a plurality of expansion units communicating with the CPU unit,
The CPU unit is
A first program execution unit that repeatedly executes a first user program according to a scan cycle;
A first device memory for storing a device value referred to by the first program execution unit according to the first user program;
A first communication unit that communicates with the plurality of expansion units;
Among the plurality of expansion units, the motion unit is
A second communication unit communicating with the CPU unit;
A second device memory that stores device values that are updated via the first communication unit and the second communication unit for each unit synchronization cycle different from the scan cycle, and that are synchronized with the device values of the first device memory; ,
A second program execution unit that executes a motion flow with reference to a device value stored in the second device memory,
The input unit of the plurality of expansion units is
A sensor for detecting the presence or absence of a workpiece;
A third device memory having a relay device for storing a device value indicating ON / OFF of the sensor;
A third communication unit that communicates with the CPU unit at least every synchronization cycle between the units, and transmits a device value stored in the relay device to the CPU unit;
Have
The CPU unit stores a device value required by the motion unit among device values written from the input unit in a predetermined device of the first device memory, and stores the second value of the motion unit. Synchronous refresh between device and device in device memory,
The motion unit reads the device value of the input unit from the second device memory, operates a transport mechanism that transports the workpiece until the device value indicates that the workpiece is detected, and the device value A programmable logic controller characterized by decelerating control of the transport mechanism when it is detected.
CPUユニットと前記CPUユニットと通信する拡張ユニットとを有するプログラマブル・ロジック・コントローラの制御方法であって、
前記CPUユニットが、前記拡張ユニットと通信して当該拡張ユニットにユーザプログラムを起動させる工程と、
前記拡張ユニットが前記ユーザプログラムを起動する工程と、
前記CPUユニットと前記拡張ユニットとが、前記CPUユニットに保持されているデバイス値をスキャン周期とは異なるユニット間同期周期ごとにリフレッシュすることで当該デバイス値を前記拡張ユニットのバッファメモリに格納する工程と、
前記拡張ユニットが、前記ユーザプログラムに記述されている命令語にしたがって前記デバイス値を前記拡張ユニットのバッファメモリから取得して当該命令語を実行する工程と、
を有することを特徴とするプログラマブル・ロジック・コントローラの制御方法。
A control method of a programmable logic controller having a CPU unit and an expansion unit communicating with the CPU unit,
The CPU unit communicating with the extension unit to cause the extension unit to start a user program;
The extension unit starting the user program;
The CPU unit and the extension unit store the device value in the buffer memory of the extension unit by refreshing the device value held in the CPU unit at every unit synchronization period different from the scan period. When,
The extension unit acquires the device value from the buffer memory of the extension unit according to the instruction word described in the user program, and executes the instruction word;
A method for controlling a programmable logic controller, comprising:
JP2015207474A 2015-10-21 2015-10-21 Programmable logic controller Active JP6626314B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015207474A JP6626314B2 (en) 2015-10-21 2015-10-21 Programmable logic controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015207474A JP6626314B2 (en) 2015-10-21 2015-10-21 Programmable logic controller

Publications (2)

Publication Number Publication Date
JP2017079008A true JP2017079008A (en) 2017-04-27
JP6626314B2 JP6626314B2 (en) 2019-12-25

Family

ID=58665423

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015207474A Active JP6626314B2 (en) 2015-10-21 2015-10-21 Programmable logic controller

Country Status (1)

Country Link
JP (1) JP6626314B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020235172A1 (en) * 2019-05-23 2020-11-26 オムロン株式会社 Control device, data disabling program and control system

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001075932A (en) * 1999-09-08 2001-03-23 Canon Inc Line controller, line control method and line system
JP2001242909A (en) * 2000-02-28 2001-09-07 Keyence Corp Data preparation device, data preparation method and recording medium and display recording data preparation program
JP2002006907A (en) * 2000-06-26 2002-01-11 Omron Corp I/o unit and programmable controller system
JP2004199670A (en) * 2002-12-04 2004-07-15 Omron Corp Data collection device and data collection system
JP2010102475A (en) * 2008-10-23 2010-05-06 Mitsubishi Electric Corp Special unit simulator manufacturing device and programmable controller simulator
JP2010198600A (en) * 2009-02-02 2010-09-09 Omron Corp Industrial controller
JP2011216085A (en) * 2010-03-15 2011-10-27 Omron Corp Programmable controller
WO2014064830A1 (en) * 2012-10-26 2014-05-01 株式会社安川電機 Development support device and development support program

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001075932A (en) * 1999-09-08 2001-03-23 Canon Inc Line controller, line control method and line system
JP2001242909A (en) * 2000-02-28 2001-09-07 Keyence Corp Data preparation device, data preparation method and recording medium and display recording data preparation program
JP2002006907A (en) * 2000-06-26 2002-01-11 Omron Corp I/o unit and programmable controller system
JP2004199670A (en) * 2002-12-04 2004-07-15 Omron Corp Data collection device and data collection system
JP2010102475A (en) * 2008-10-23 2010-05-06 Mitsubishi Electric Corp Special unit simulator manufacturing device and programmable controller simulator
JP2010198600A (en) * 2009-02-02 2010-09-09 Omron Corp Industrial controller
JP2011216085A (en) * 2010-03-15 2011-10-27 Omron Corp Programmable controller
WO2014064830A1 (en) * 2012-10-26 2014-05-01 株式会社安川電機 Development support device and development support program

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020235172A1 (en) * 2019-05-23 2020-11-26 オムロン株式会社 Control device, data disabling program and control system
JP2020191004A (en) * 2019-05-23 2020-11-26 オムロン株式会社 Control device, data disabling program, and control system
JP7400215B2 (en) 2019-05-23 2023-12-19 オムロン株式会社 Control Units, Data Disabling Programs, and Control Systems

Also Published As

Publication number Publication date
JP6626314B2 (en) 2019-12-25

Similar Documents

Publication Publication Date Title
JP6465620B2 (en) Control system and control method
US10761884B2 (en) Control device for operating multiple types of programs in different execution formats
US10496079B2 (en) Control device and control method
US10908577B2 (en) Control device
JP2017079009A (en) Monitor device of programmable logic controller
US9753447B2 (en) Control unit, output control method and program
US10180674B2 (en) Controller and control system
EP2682830A1 (en) Control device and system program, and recording medium
JP2016110458A (en) Programmable logic controller, basic unit, control method and program
US10678231B2 (en) Production controller equipped with function of identifying cause upon operation stop of production facility including manufacturing facilities
CN111095138B (en) Control device, control method for control device, information processing program, and recording medium
JP6626313B2 (en) Programmable logic controller, expansion unit, control method, program creation support device, program creation support method, and program
JP2012133610A (en) Dual process controller and control data coincidence method
JP6626314B2 (en) Programmable logic controller
US10509393B2 (en) Control device and control method
JP2010079355A (en) Cooperative control system between a plurality of plcs
US11092945B2 (en) Control device, control method, and non-transitory storage medium storing control program
JP6484015B2 (en) Programmable logic controller and control method thereof
KR101957400B1 (en) Programmable logic control system
JP6571377B2 (en) Expansion unit, programmable logic controller and control method thereof
JP2017079005A (en) Programmable logic controller, control method, cpu unit and extension unit
US20230367629A1 (en) Method for Transferring a Software Application from a First to a Second Data Processing Device
KR102358254B1 (en) Input control method of PLC OP panel
JP2024073818A (en) Control system and information processing method
JP2023034569A (en) Controller and file structure of program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190701

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190628

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

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250