JP2021060967A - Programmable logic controller - Google Patents

Programmable logic controller Download PDF

Info

Publication number
JP2021060967A
JP2021060967A JP2020111878A JP2020111878A JP2021060967A JP 2021060967 A JP2021060967 A JP 2021060967A JP 2020111878 A JP2020111878 A JP 2020111878A JP 2020111878 A JP2020111878 A JP 2020111878A JP 2021060967 A JP2021060967 A JP 2021060967A
Authority
JP
Japan
Prior art keywords
data
unit
time
buffer
cpu
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
JP2020111878A
Other languages
Japanese (ja)
Other versions
JP7461811B2 (en
Inventor
中村 達也
Tatsuya Nakamura
達也 中村
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 US17/012,112 priority Critical patent/US11644808B2/en
Priority to CN202011051992.2A priority patent/CN112612239A/en
Publication of JP2021060967A publication Critical patent/JP2021060967A/en
Application granted granted Critical
Publication of JP7461811B2 publication Critical patent/JP7461811B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Abstract

To efficiently collect and transfer data to be monitored in a PLC.SOLUTION: A PLC has a first execution engine, holding means and second execution engine. Further, the PLC collects data stored in the holding means for an object to be collected according to a predetermined collection setting, stores the collected time-series data in a first buffer, and transfers the time-series data stored in the first buffer to the second execution engine via a bus. The second execution engine processes the transferred time-series data, generates display data for display on the dashboard, and provides an external computer with the display data.SELECTED DRAWING: Figure 4

Description

本発明はプログラマブルロジックコントローラに関する。 The present invention relates to a programmable logic controller.

プログラマブル・ロジック・コントローラ(PLC)はファクトリーオートメーションにおいて製造機器や搬送装置、検査装置などの産業機械を制御するコントローラである(特許文献1、2)。PLCはプログラマーによって作成されるラダープログラムなどのユーザプログラムを実行することで様々な拡張ユニットや被制御機器を制御する。 A programmable logic controller (PLC) is a controller that controls industrial machines such as manufacturing equipment, transfer equipment, and inspection equipment in factory automation (Patent Documents 1 and 2). The PLC controls various expansion units and controlled devices by executing a user program such as a ladder program created by a programmer.

特許第5661222号公報Japanese Patent No. 5661222 特開2018−097662号公報JP-A-2018-097662

ところで、PLCの動作やPLCによって制御される産業機械の動作を監視するために、PLCが保持しているデータを収集して活用することが望まれている。PLCは、基本ユニット(CPUユニット)とそれに接続される拡張ユニットとを有している。基本ユニットは、ラダープログラムなどのユーザプログラムを実行することで拡張ユニットを制御する。拡張ユニットは基本ユニットからの命令にしたがって産業機械を制御し、制御結果を基本ユニットに返す。ここで、基本ユニットの負荷を削減するために、発明者らは、拡張ユニットの一つとしてデータ活用ユニットを基本ユニットに接続することを思いついた。しかし、拡張ユニットの制御周期と基本ユニットの制御周期(ユーザプログラムのスキャン周期)は異なっているため、様々な問題が生じる。たとえば、拡張ユニットが自己の制御周期にしたがって基本ユニットのデバイスメモリからデバイス値を収集すると、基本ユニットのスキャン周期ごとにリフレッシュされるデータを取りこぼしてしまうだろう。つまり、複数のスキャン周期ごとに一つのデバイス値しか収集できなくなってしまう。一方で、基本ユニットがスキャン周期の終わりのエンド処理期間においてデバイス値を収集して転送すると、デバイス値の収集と転送が完了しないかぎり、基本ユニットは、次のスキャン周期に移行できない。つまり、スキャン周期が間延びしてしまい、産業機械の作業効率が低下する。 By the way, in order to monitor the operation of the PLC and the operation of the industrial machine controlled by the PLC, it is desired to collect and utilize the data held by the PLC. The PLC has a basic unit (CPU unit) and an expansion unit connected to the basic unit (CPU unit). The basic unit controls the expansion unit by executing a user program such as a ladder program. The expansion unit controls the industrial machine according to the command from the basic unit and returns the control result to the basic unit. Here, in order to reduce the load on the basic unit, the inventors came up with the idea of connecting the data utilization unit to the basic unit as one of the expansion units. However, since the control cycle of the expansion unit and the control cycle of the basic unit (scan cycle of the user program) are different, various problems occur. For example, if an expansion unit collects device values from the base unit's device memory according to its own control cycle, it will miss data that is refreshed during each base unit scan cycle. That is, only one device value can be collected for each of a plurality of scan cycles. On the other hand, if the base unit collects and transfers device values during the end processing period at the end of the scan cycle, the base unit cannot move to the next scan cycle unless the device value collection and transfer is complete. That is, the scanning cycle is extended, and the work efficiency of the industrial machine is lowered.

そこで、本発明は、PLCにおいて効率よく監視対象のデータを収集および転送することを目的とする。 Therefore, an object of the present invention is to efficiently collect and transfer data to be monitored in a PLC.

本発明は、たとえば、
第一ユーザプログラムを繰り返し実行する第一実行エンジンと、
前記第一ユーザプログラムにしたがって前記第一実行エンジンによりアクセスされるデータを記憶するデバイスまたは変数である複数の保持手段と、
前記第一ユーザプログラムのスキャン周期とは非同期で第二ユーザプログラムを実行する第二実行エンジンと、
前記第一実行エンジンと前記第二実行エンジンとを接続するバスと、を有するプログラマブルロジックコントローラであって、
前記第一ユーザプログラムのスキャン周期ごとに所定の収集設定にしたがって前記複数の保持手段のうち収集対象の保持手段に記憶されているデータを収集する収集手段と、
前記収集手段により前記スキャン周期ごとに収集された時系列のデータを蓄積する第一バッファと、
前記第一バッファに記憶された前記時系列のデータを、前記バスを介して前記第二実行エンジンに転送する転送手段と、
を有し、
前記第二実行エンジンは、
前記転送手段により転送されてきた前記時系列のデータを所定の処理設定にしたがってデータ処理する処理手段と、
前記データ処理の処理結果をダッシュボードに表示するための表示データを生成する生成手段と、
前記表示データを外部のコンピュータに提供する提供手段と
を有することを特徴とするプログラマブルロジックコントローラを提供する。
The present invention is, for example,
The first execution engine that repeatedly executes the first user program,
A plurality of holding means that are devices or variables that store data accessed by the first execution engine according to the first user program.
A second execution engine that executes the second user program asynchronously with the scan cycle of the first user program,
A programmable logic controller having a bus connecting the first execution engine and the second execution engine.
A collection means for collecting data stored in the holding means to be collected among the plurality of holding means according to a predetermined collection setting for each scan cycle of the first user program.
A first buffer that stores time-series data collected for each scan cycle by the collection means,
A transfer means for transferring the time-series data stored in the first buffer to the second execution engine via the bus, and
Have,
The second execution engine
A processing means for processing the time-series data transferred by the transfer means according to a predetermined processing setting, and
A generation means for generating display data for displaying the processing result of the data processing on the dashboard, and
Provided is a programmable logic controller having a providing means for providing the display data to an external computer.

本発明によればPLCにおいて効率よく監視対象のデータを収集および転送することが可能となる。 According to the present invention, it is possible to efficiently collect and transfer data to be monitored in a PLC.

PLCシステムを示す図Diagram showing PLC system PCを説明する図Diagram explaining a PC PCを説明する図Diagram explaining a PC PLCを説明する図Diagram illustrating PLC 基本ユニットを説明する図Diagram explaining the basic unit データ活用ユニットを説明する図Diagram explaining the data utilization unit 拡張ユニットを説明する図Diagram illustrating an expansion unit データレコードのフォーマットを説明する図Diagram illustrating the format of a data record 転送タイミングを説明する図The figure explaining the transfer timing データレコードのフォーマットを説明する図Diagram illustrating the format of a data record 情報圧縮を説明する図Diagram illustrating information compression ダッシュボードの例を示す図Diagram showing an example dashboard 収集および転送方法を示すフローチャートFlowchart showing collection and transfer methods 収集および転送方法を示すフローチャートFlowchart showing collection and transfer methods 収集および転送方法を示すフローチャートFlowchart showing collection and transfer methods サブバッファの活用事例を説明する図Diagram explaining the use case of subbuffer 状態監視用のダッシュボード表示画面を説明する図Diagram explaining the dashboard display screen for status monitoring 設定用のダッシュボード表示画面を説明する図Diagram explaining the dashboard display screen for setting リアルタイム監視方法を示すフローチャートFlowchart showing real-time monitoring method データ活用ユニットにおける再設定方法を示すフローチャートFlowchart showing how to reset in the data utilization unit 監視対象の動的変更処理を示すフローチャートFlowchart showing dynamic change processing of monitoring target 監視対象の動的変更時の収集データを示す図Diagram showing the collected data when the monitoring target is dynamically changed

以下、添付図面を参照して実施形態が詳しく説明される。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態で説明されている特徴の組み合わせの全てが発明に必須のものとは限らない。実施形態で説明されている複数の特徴のうち二つ以上の特徴が任意に組み合わされてもよい。また、同一または同様の構成には同一の参照番号が付され、重複した説明は省略される。同一または類似の要素を示す参照符号の末尾には小文字のアルファベットが付与されることがある。複数の要素に共通する事項が説明される場合、小文字のアルファベットが省略される。 Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. The following embodiments do not limit the invention according to the claims, and not all combinations of features described in the embodiments are essential to the invention. Two or more of the plurality of features described in the embodiments may be arbitrarily combined. In addition, the same or similar configurations are given the same reference number, and duplicate explanations are omitted. A lowercase alphabet may be added to the end of the reference code indicating the same or similar elements. Lowercase alphabets are omitted when explaining things that are common to multiple elements.

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

図1は、本発明の実施の形態によるプログラマブル・ロジック・コントローラシステムの一構成例を示す概念図である。図1が示すように、このシステムは、ラダープログラムなどのユーザプログラムの編集を行うためのPC2aと、工場等に設置される各種制御装置を統括的に制御するためのPLC(プログラマブルロジックコントローラ)1とを備えている。PCはパーソナルコンピュータの略称である。ユーザプログラムは、ラダー言語やSFC(シーケンシャルファンクションチャート)などのフローチャート形式のモーションプログラムなどのグラフィカルプログラミング言語を用いて作成されてもよいし、C言語などの高級プログラミング言語を用いて作成されてもよい。以下では、説明の便宜上、ユーザプログラムはラダープログラムとする。PLC1は、CPUが内蔵された基本ユニット3と、1つないし複数の拡張ユニット4を備えている。基本ユニット3に対して1つないし複数の拡張ユニット4が着脱可能となっている。 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 is a PLC (programmable logic controller) 1 for comprehensively controlling a PC2a for editing a user program such as a ladder program and various control devices installed in a factory or the like. And have. PC is an abbreviation for personal computer. The user program may be created using a graphical programming language such as a ladder language or a flowchart-type motion program such as SFC (sequential function chart), or may be created using a high-level programming language such as C language. .. In the following, for convenience of explanation, the user program will be a ladder program. The PLC 1 includes a basic unit 3 having a built-in CPU and one or a plurality of expansion units 4. One or more expansion units 4 can be attached to and detached from the basic unit 3.

基本ユニット3は、表示部5および操作部6を備えている。表示部5は、基本ユニット3に取り付けられている各拡張ユニット4の動作状況などを表示することができる。操作部6の操作内容に応じて表示部5は表示内容を切り替える。表示部5は、通常、PLC1内のデバイスの現在値(デバイス値)やPLC1内で生じたエラー情報などを表示する。デバイスとは、デバイス値(デバイスデータ)を格納するために設けられたメモリ上の領域を指す名称であり、デバイスメモリと呼ばれてもよい。デバイス値とは、入力機器からの入力状態、出力機器への出力状態およびユーザプログラム上で設定される内部リレー(補助リレー)、タイマー、カウンタ、データメモリ等の状態を示す情報である。デバイス値の型にはビット型とワード型がある。ビットデバイスは1ビットのデバイス値を記憶する。ワードデバイスは1ワードのデバイス値を記憶する。以下で詳細に説明されるデータ活用プログラムの収集対象としては、デバイスだけでなく、変数が指定されてもよい。ただし、デバイスも変数も情報を保持する保持手段である。したがって、以下の説明においてデバイスは変数も指すものである。なお、デバイスを保持するメモリはデバイスメモリと呼ばれてもよい。また、収集されたデータを保持するメモリはデータメモリと呼ばれてもよい。 The basic unit 3 includes a display unit 5 and an operation unit 6. The display unit 5 can display the operating status of each expansion unit 4 attached to the basic unit 3. The display unit 5 switches the display content according to the operation content of the operation unit 6. The display unit 5 usually displays the current value (device value) of the device in the PLC1, the error information generated in the PLC1, and the like. The device is a name indicating an area on a memory provided for storing a device value (device data), 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. There are two types of device values: bit type and word type. The bit device stores a 1-bit device value. The word device stores the device value of one word. Not only the device but also the variable may be specified as the collection target of the data utilization program described in detail below. However, both devices and variables are holding means for holding information. Therefore, in the following description, device also refers to a variable. The memory that holds the device may be called a device memory. Further, the memory that holds the collected data may be called a data memory.

拡張ユニット4は、PLC1の機能を拡張するために用意されている。各拡張ユニット4には、その拡張ユニット4の機能に対応するフィールドデバイス(被制御装置)10が接続されることがあり、これにより、各フィールドデバイス10が拡張ユニット4を介して基本ユニット3に接続される。フィールドデバイス10は、センサやカメラなどの入力機器であってもよいし、アクチュエータなどの出力機器であってもよい。また、一つの拡張ユニット4に対して複数のフィールドデバイスが接続されてもよい。 The expansion unit 4 is prepared to expand the function of the PLC1. A field device (controlled device) 10 corresponding to the function of the expansion unit 4 may be connected to each expansion unit 4, whereby each field device 10 is connected to the basic unit 3 via the expansion unit 4. Be connected. The field device 10 may be an input device such as a sensor or a camera, or an output device such as an actuator. Further, a plurality of field devices may be connected to one expansion unit 4.

たとえば、拡張ユニット4bはモータ(フィールドデバイス10)を駆動してワークの位置決めする位置決めユニットであってもよいし、カウンタユニットであってもよい。カウンタユニットは手動パルサなどのエンコーダ(フィールドデバイス10)からの信号をカウントする。 For example, the expansion unit 4b may be a positioning unit that drives a motor (field device 10) to position the work, or may be a counter unit. The counter unit counts signals from an encoder (field device 10) such as a manual pulsar.

拡張ユニット4aは、基本ユニット3や拡張ユニット4bから収集対象データを収集し、フローなどのユーザプログラム(データ活用プログラム)を実行することで収集対象データにデータ処理を施して表示対象データを作成し、ダッシュボードを表示部7またはPC2に表示するための表示データ(ソースデータ)を作成するデータ収集ユニットである。以下で説明されるフロー(フロープログラム)はデータ活用プログラムの一例に過ぎない。基本ユニット3はCPUユニットと呼ばれることもある。なお、PLC1とPC2とを含むシステムはプログラマブルロジックコントローラシステムと呼ばれてもよい。 The expansion unit 4a collects data to be collected from the basic unit 3 and the expansion unit 4b, and executes a user program (data utilization program) such as a flow to process the collected data to create display target data. , A data collection unit that creates display data (source data) for displaying a dashboard on the display unit 7 or PC 2. The flow (flow program) described below is just an example of a data utilization program. The basic unit 3 is sometimes called a CPU unit. The system including PLC1 and PC2 may be called a programmable logic controller system.

PC2aは主にプログラマーによって操作されるコンピュータである。一方、PC2bは主に現場担当者によって操作されるコンピュータである。PC2aはプログラム作成支援装置(設定装置)と呼ばれてもよい。PC2は、たとえば、携帯可能なノートタイプやタブレットタイプのパーソナルコンピュータまたはスマートフォンであって、表示部7および操作部8を備えている外部コンピュータである。外部コンピュータとは、PLC1の外部にあるコンピュータである。PLC1を制御するためのユーザプログラムの一例であるラダープログラムは、PC2aを用いて作成される。その作成されたラダープログラムは、PC2a内でニモニックコードに変換される。PC2は、USB(Universal Serial Bus)ケーブルなどの通信ケーブル9を介してPLC1の基本ユニット3に接続される。たとえば、PC2aは、ニモニックコードに変換されたラダープログラムを基本ユニット3に送る。基本ユニット3はラダープログラムをマシンコードに変換し、基本ユニット3に備えられたメモリ内に記憶する。なお、ここではニモニックコードが基本ユニット3に送信されているが、本発明はこれに限られない。たとえば、PC2aは、ニモニックコードを中間コードに変換し、中間コードを基本ユニット3に送信してもよい。 PC2a is a computer mainly operated by a programmer. On the other hand, PC2b is a computer mainly operated by a person in charge at the site. PC2a may be called a program creation support device (setting device). The PC 2 is, for example, a portable notebook-type or tablet-type personal computer or smartphone, and is an external computer including a display unit 7 and an operation unit 8. The external computer is a computer outside the PLC1. A ladder program, which is an example of a user program for controlling PLC1, is created using PC2a. The created ladder program is converted into a mnemonic code in PC2a. The PC 2 is connected to the basic unit 3 of the PLC 1 via a communication cable 9 such as a USB (Universal Serial Bus) cable. For example, PC2a sends a ladder program converted into a mnemonic code to the basic unit 3. The basic unit 3 converts the ladder program into machine code and stores it in the 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 PC 2a may convert the mnemonic code into an intermediate code and transmit the intermediate code to the basic unit 3.

なお、図1は示していないが、PC2の操作部8には、PC2に接続されたマウスなどのポインティングデバイスが含まれていてもよい。また、PC2は、USBケーブル以外の他の通信ケーブル9を介して、PLC1の基本ユニット3に対して着脱可能に接続されるような構成であってもよい。また、PC2は、通信ケーブル9を介さず、PLC1の基本ユニット3に対して無線通信によって接続されてもよい。 Although not shown in FIG. 1, the operation unit 8 of the PC 2 may include a pointing device such as a mouse connected to the PC 2. Further, the PC 2 may be configured to be detachably connected to the basic unit 3 of the PLC 1 via a communication cable 9 other than the USB cable. Further, the PC 2 may be connected to the basic unit 3 of the PLC 1 by wireless communication without going through the communication cable 9.

<プログラム作成支援装置>
図2はPC2aの電気的構成について説明するためのブロック図である。図2が示すように、PC2aは、CPU11a、表示部7a、操作部8a、記憶装置12aおよび通信部13aを備えている。表示部7a、操作部8a、記憶装置12aおよび通信部13aは、それぞれCPU11aに対して電気的に接続されている。記憶装置12aはRAMやROM、HDD、SSDを含み、さらに着脱可能なメモリカードを含んでもよい。CPUは中央演算処理装置の略称である。ROMはリードオンリーメモリの略称である。RAMはランダムアクセスメモリの略称である。HDDはハードディスクドライブの略称である。SSDはソリッドステートドライブの略称である。
<Program creation support device>
FIG. 2 is a block diagram for explaining the electrical configuration of the PC 2a. As shown in FIG. 2, the PC 2a includes a CPU 11a, a display unit 7a, an operation unit 8a, a storage device 12a, and a communication unit 13a. The display unit 7a, the operation unit 8a, the storage device 12a, and the communication unit 13a are each electrically connected to the CPU 11a. The storage device 12a includes a RAM, a ROM, an HDD, and an SSD, and may further include a removable memory card. CPU is an abbreviation for central processing unit. ROM is an abbreviation for read-only memory. RAM is an abbreviation for random access memory. HDD is an abbreviation for hard disk drive. SSD is an abbreviation for solid state drive.

PC2aのユーザは記憶装置12aに記憶されているプロジェクト編集プログラム14aをCPU11aに実行させて、操作部8aを通じてプロジェクトデータ15を編集する。CPU11aがプロジェクト編集プログラム14aを実行することで、プロジェクト作成部16とプロジェクト転送部17が実現される。プロジェクト作成部16はユーザ入力にしたがってプロジェクトデータ15を作成する。プロジェクト転送部17はプロジェクトデータ15をPLC1に転送する。プロジェクトデータ15は、一つ以上のユーザープログラム(例:ラダープログラム)と、基本ユニット3や拡張ユニット4の構成情報などを含む。構成情報は、基本ユニット3に対する複数の拡張ユニット4の接続位置や、基本ユニット3に備えられた機能(例:通信機能や位置決め機能)を示す情報、拡張ユニット4の機能(例:撮影機能)などを示す情報である。ここで、プロジェクトデータ15の編集には、プロジェクトデータ15の作成および変更(再編集)が含まれる。ユーザは、必要に応じて記憶装置12aに記憶されているプロジェクトデータ15を読み出し、そのプロジェクトデータ15を、プロジェクト編集プログラム14aを用いて変更することができる。通信部13aは、通信ケーブル9aを介して基本ユニット3と通信する。プロジェクト転送部17は通信部13aを介してプロジェクトデータを基本ユニット3に転送する。通信部13aは、通信ケーブル9bを介して拡張ユニット4aと通信する。 The user of the PC 2a causes the CPU 11a to execute the project editing program 14a stored in the storage device 12a, and edits the project data 15 through the operation unit 8a. When the CPU 11a executes the project editing program 14a, the project creation unit 16 and the project transfer unit 17 are realized. The project creation unit 16 creates the project data 15 according to the user input. The project transfer unit 17 transfers the project data 15 to the PLC1. The project data 15 includes one or more user programs (eg, a ladder program) and configuration information of the basic unit 3 and the expansion unit 4. The configuration information includes information indicating the connection positions of a plurality of expansion units 4 with respect to the basic unit 3, functions provided in the basic unit 3 (example: communication function and positioning function), and functions of the expansion unit 4 (example: shooting function). It is information indicating such as. Here, the editing of the project data 15 includes the creation and modification (re-editing) of the project data 15. The user can read the project data 15 stored in the storage device 12a as needed, and change the project data 15 by using the project editing program 14a. The communication unit 13a communicates with the basic unit 3 via the communication cable 9a. The project transfer unit 17 transfers the project data to the basic unit 3 via the communication unit 13a. The communication unit 13a communicates with the expansion unit 4a via the communication cable 9b.

<ダッシュボードの表示に使用されるPC>
図3はPC2bの電気的構成について説明するためのブロック図である。図3が示すように、PC2bは、CPU11b、表示部7b、操作部8b、記憶装置12bおよび通信部13bを備えている。表示部7b、操作部8b、記憶装置12bおよび通信部13bは、それぞれCPU11bに対して電気的に接続されている。記憶装置12bはRAMやROM、HDD、SSDを含み、さらに着脱可能なメモリカードを含んでもよい。
<PC used to display the dashboard>
FIG. 3 is a block diagram for explaining the electrical configuration of the PC 2b. As shown in FIG. 3, the PC 2b includes a CPU 11b, a display unit 7b, an operation unit 8b, a storage device 12b, and a communication unit 13b. The display unit 7b, the operation unit 8b, the storage device 12b, and the communication unit 13b are each electrically connected to the CPU 11b. The storage device 12b includes a RAM, a ROM, an HDD, and an SSD, and may further include a removable memory card.

CPU11bはWebブラウザプログラム14dを実行することでWebブラウザ18を実現する。Webブラウザ18は、通信部13bを介して、拡張ユニット4aによって提供されるデータ活用アプリケーションの設定ページにアクセスしたり、ダッシュボードのページにアクセスしたりする。 The CPU 11b realizes the Web browser 18 by executing the Web browser program 14d. The Web browser 18 accesses the setting page of the data utilization application provided by the expansion unit 4a or the dashboard page via the communication unit 13b.

<PLC>
図4はPLC1の電気的構成について説明するためのブロック図である。図4が示すように、基本ユニット3は、CPU31、表示部5、操作部6、記憶装置32および通信部33を備えている。表示部5、操作部6、記憶装置32、および通信部33は、それぞれCPU31に電気的に接続されている。記憶装置32は、RAMやROM、メモリカードなどを含んでもよい。記憶装置32はデバイス部34やプロジェクト記憶部35などの複数の記憶領域を有している。デバイス部34はビットデバイスやワードデバイスなどを有し、各デバイスはデバイス値を記憶する。プロジェクト記憶部35は、PC2aから入力されたプロジェクトデータを記憶する。記憶装置32は基本ユニット3用の制御プログラムも記憶する。図4が示すように基本ユニット3と拡張ユニット4とは通信バスの一種である拡張バス90を介して接続されている。なお、図4では拡張バス90に関する通信回路がCPU31に実装されているが、通信部33の一部として実装されてもよい。通信部33はネットワーク通信回路を有してもよい。CPU31は通信部33を介してプロジェクトデータをPC2aから受信する。
<PLC>
FIG. 4 is a block diagram for explaining the electrical configuration of PLC1. As shown in FIG. 4, the basic unit 3 includes a CPU 31, a display unit 5, an operation unit 6, a storage device 32, and a communication unit 33. The display unit 5, the operation unit 6, the storage device 32, and the communication unit 33 are each electrically connected to the CPU 31. The storage device 32 may include a RAM, a ROM, a memory card, and the like. The storage device 32 has a plurality of storage areas such as a device unit 34 and a project storage unit 35. The device unit 34 has a bit device, a word device, and the like, and each device stores a device value. The project storage unit 35 stores the project data input from the PC 2a. The storage device 32 also stores the control program for the basic unit 3. As shown in FIG. 4, the basic unit 3 and the expansion unit 4 are connected via an expansion bus 90, which is a type of communication bus. Although the communication circuit related to the expansion bus 90 is mounted on the CPU 31 in FIG. 4, it may be mounted as a part of the communication unit 33. The communication unit 33 may have a network communication circuit. The CPU 31 receives the project data from the PC 2a via the communication unit 33.

ここで、拡張バス90について、補足説明する。この拡張バス90は、入出力リフレッシュに使用される通信バスである。入出力リフレッシュとは、基本ユニット3と拡張ユニット4との間でデバイス値を更新する処理である。入出力リフレッシュは、ラダープログラムが一回実行されるごとに(つまり、一スキャンごとに)、実行される。なお、一つのスキャン周期は、入出力リフレッシュの実行期間と、ユーザプログラムの実行期間と、エンド処理の実行期間とを含む。 Here, the expansion bus 90 will be supplementarily described. The expansion bus 90 is a communication bus used for input / output refresh. The input / output refresh is a process of updating the device value between the basic unit 3 and the expansion unit 4. I / O refresh is performed each time the ladder program is executed (that is, every scan). Note that one scan cycle includes an I / O refresh execution period, a user program execution period, and an end processing execution period.

拡張ユニット4はCPU41とメモリ42を備えている。拡張ユニット4bのCPU41bは、デバイスに格納された基本ユニット3からの指示(デバイス値)にしたがってフィールドデバイス10を制御する。また、CPU41bは、フィールドデバイス10の制御結果をバッファメモリとよばれるデバイスに格納する。デバイスに格納された制御結果は入出力リフレッシュによって基本ユニット3に転送される。また、デバイスに格納されている制御結果は、基本ユニット3からの読み出し命令にしたがって、入出力リフレッシュとは異なるタイミングであっても、基本ユニット3に転送される。メモリ42はRAMやROMなどを含む。とりわけ、RAMにはバッファメモリとして使用される記憶領域が確保されている。メモリ42は、フィールドデバイス10によって取得されたデータ(例:静止画データや動画データ)を一時的に保持するバッファを有してもよい。 The expansion unit 4 includes a CPU 41 and a memory 42. The CPU 41b of the expansion unit 4b controls the field device 10 according to an instruction (device value) from the basic unit 3 stored in the device. Further, the CPU 41b stores the control result of the field device 10 in a device called a buffer memory. The control result stored in the device is transferred to the basic unit 3 by input / output refresh. Further, the control result stored in the device is transferred to the basic unit 3 according to the read instruction from the basic unit 3 even at a timing different from the input / output refresh. The memory 42 includes a RAM, a ROM, and the like. In particular, the RAM has a storage area used as a buffer memory. The memory 42 may have a buffer that temporarily holds data (eg, still image data or moving image data) acquired by the field device 10.

データ活用ユニットとして機能する拡張ユニット4aのCPU41aは、通信部43とケーブル9bを介してPC2bと通信する。データ活用ユニットは、データ活用アプリケーションを実行する拡張ユニットである。データ活用アプリケーションは、制御データを収集したりデータ処理したりするフローと、フローの実行結果を表示するダッシュボードとを含む。なお、制御データを収集する機能は、データ活用アプリケーション以外のユーザプログラムによって実現されてもよい。フローはデータを収集する演算ブロック、データ処理を実行する演算ブロック、および、表示データを作成する演算ブロックなどを有してもよい。ダッシュボードは、グラフ表示部品や数値表示部品などを有する。これらの表示部品は、HTMLデータ、CSSデータおよびJavaScript(登録商標)コードなどにより実現されてもよい。なお、HTMLデータ、CSSデータおよびJavaScript(登録商標)コードの集合体はWebアプリケーションと呼ばれてもよい。本実施形態で、フローはフローテンプレートにより実現される。フローテンプレートは予めアプリケーションごとに用意されており、ユーザにより指定されたパラメータが設定される一つ以上の演算ブロックを有している。ダッシュボードもテンプレートにより実現される。ダッシュボードテンプレートは、ユーザにより指定されたパラメータが設定される一つ以上の表示部品を有している。パラメータは、たとえば、ダッシュボードの名称、デバイス名、数値、ユニット変数名など多種多様な情報である。ユニット変数とは、拡張ユニット4aがフローの実行結果を保持するための変数である。 The CPU 41a of the expansion unit 4a that functions as a data utilization unit communicates with the PC 2b via the communication unit 43 and the cable 9b. A data utilization unit is an expansion unit that executes a data utilization application. The data utilization application includes a flow for collecting and processing control data and a dashboard for displaying the execution result of the flow. The function of collecting control data may be realized by a user program other than the data utilization application. The flow may have an arithmetic block for collecting data, an arithmetic block for executing data processing, an arithmetic block for creating display data, and the like. The dashboard has graph display parts, numerical display parts, and the like. These display components may be realized by HTML data, CSS data, Javascript® code, and the like. The collection of HTML data, CSS data, and Javascript (registered trademark) code may be referred to as a Web application. In this embodiment, the flow is realized by the flow template. The flow template is prepared in advance for each application, and has one or more calculation blocks in which parameters specified by the user are set. The dashboard is also realized by the template. The dashboard template has one or more display components to which parameters specified by the user are set. Parameters are a wide variety of information, such as dashboard names, device names, numbers, and unit variable names. The unit variable is a variable for the expansion unit 4a to hold the execution result of the flow.

●基本ユニットのCPUにより実現される機能
図5はデータ活用に関してCPU31により実現される機能を示している。実行エンジン51は、スキャン周期ごとにユーザプログラムを繰り返し実行する。実行エンジン51は、CPU31の外部に設けられたASICまたはFPGAなどにより実現されてもよい。ASICは特定用途集積回路の略称である。FPGAはフィールドプログラマブルゲートアレイの略称である。これらの専用回路は、CPUとプログラムとの組み合わせよりも、特定のデータ処理を高速に実行できることが多い。収集部52aは、スキャン周期のうちエンド処理の期間においてデバイス部34から収集対象のデバイス値を収集してデータレコードを作成して第一バッファ37aに格納する。なお、エンド処理の期間でデータを収集することは必須ではなく、実行エンジン51で実行されるユーザプログラムにデータを収集するための記述(トリガ命令などのプログラムコード)が含まれていてもよい。ただし、エンド処理によってデータを収集するケースでは、ユーザプログラムの変更が不要であるといったメリットがある。また、収集周期は、収集設定36aにより指定された周期であってもよい。第一バッファ37aを設けることで、実行エンジン51は、収集や転送処理によるスキャンタイムの伸びなどの影響を受けにくくなる。収集対象のデバイス値は、収集設定36aにより指定されている。収集設定36aは、PC2aまたは拡張ユニット4aによって基本ユニット3に格納されうる。転送部53aは、第一バッファ37aに格納された一つ以上のデータレコードを、拡張バス90を介して、拡張ユニット4aに転送する。なお、転送部53aは、拡張バス90における通信トラフィックが空いているときに、転送処理を実行する。したがって、実行エンジン51aが入出力リフレッシュを実行している期間や、ユーザプログラムに記述された読み出し命令にしたがって拡張ユニット4のバッファメモリからデータを読み出している期間を避けて、転送処理が実行される。なお、拡張バス90の通信トラフィックは監視部54aによって監視されている。なお、データレコードの転送時間を短縮するために、圧縮エンジン55aが複数のデータレコードを圧縮してもよい。なお、圧縮エンジン55aはCPU31により実現される必要は無く、ASICまたはFPGAなどにより実現されてもよい。このように、第一バッファ37aを採用することで、転送処理とユーザプログラムを非同期で実行することが可能となる。
● Functions realized by the CPU of the basic unit FIG. 5 shows the functions realized by the CPU 31 regarding data utilization. The execution engine 51 repeatedly executes the user program every scan cycle. The execution engine 51 may be realized by an ASIC or FPGA provided outside the CPU 31. ASIC is an abbreviation for a special purpose integrated circuit. FPGA is an abbreviation for field programmable gate array. These dedicated circuits can often execute specific data processing at a higher speed than a combination of a CPU and a program. The collection unit 52a collects the device values to be collected from the device unit 34 during the end processing period in the scan cycle, creates a data record, and stores the data record in the first buffer 37a. It is not essential to collect data during the end processing period, and the user program executed by the execution engine 51 may include a description (program code such as a trigger instruction) for collecting data. However, in the case of collecting data by end processing, there is an advantage that the user program does not need to be changed. Further, the collection cycle may be the cycle specified by the collection setting 36a. By providing the first buffer 37a, the execution engine 51 is less likely to be affected by an increase in scan time due to collection and transfer processing. The device value to be collected is specified by the collection setting 36a. The collection setting 36a may be stored in the base unit 3 by the PC 2a or the expansion unit 4a. The transfer unit 53a transfers one or more data records stored in the first buffer 37a to the expansion unit 4a via the expansion bus 90. The transfer unit 53a executes the transfer process when the communication traffic on the expansion bus 90 is free. Therefore, the transfer process is executed while avoiding the period during which the execution engine 51a is executing the input / output refresh and the period during which the data is read from the buffer memory of the expansion unit 4 according to the read instruction described in the user program. .. The communication traffic of the expansion bus 90 is monitored by the monitoring unit 54a. The compression engine 55a may compress a plurality of data records in order to shorten the transfer time of the data records. The compression engine 55a does not have to be realized by the CPU 31, and may be realized by an ASIC, FPGA, or the like. By adopting the first buffer 37a in this way, it is possible to execute the transfer process and the user program asynchronously.

●データ活用ユニットの機能
図6は拡張ユニット4aのCPU41aによって実現される機能を説明する図である。
● Functions of Data Utilization Unit FIG. 6 is a diagram illustrating functions realized by the CPU 41a of the expansion unit 4a.

収集部52cは、収集設定39にしたがってデータを収集する機能である。収集部52cは、CPU41aがユーザプログラムなどの制御プログラムを実行することで実現されうる。収集部52cは、収集設定39により指定されたデバイス値を基本ユニット3が収集して拡張ユニット4aの第二バッファ37bに転送するよう基本ユニット3を設定する。なお、収集部52cは、収集設定39に含まれている基本ユニット3の収集設定36aを基本ユニット3の記憶装置32に書き込んでもよい。収集部52cとデータ処理部73とは基本的に非同期で動作できることが望ましい。これを実現するためにバッファが設けられてもよい。 The collection unit 52c is a function of collecting data according to the collection setting 39. The collection unit 52c can be realized by the CPU 41a executing a control program such as a user program. The collection unit 52c sets the basic unit 3 so that the basic unit 3 collects the device value specified by the collection setting 39 and transfers it to the second buffer 37b of the expansion unit 4a. The collection unit 52c may write the collection setting 36a of the basic unit 3 included in the collection setting 39 to the storage device 32 of the basic unit 3. It is desirable that the collection unit 52c and the data processing unit 73 can basically operate asynchronously. A buffer may be provided to achieve this.

収集部52cは、収集設定39により指定されたデバイス値を拡張ユニット4bが収集して拡張ユニット4aの第三バッファ37cに転送するよう拡張ユニット4bを設定してもよい。第二バッファ37bおよび第三バッファ37cを設けることで、データ処理部73の処理負荷が変動しても、データを取りこぼさず収集できるようになる。収集部52cは、収集設定39に含まれている拡張ユニット4bの収集設定36b(図7)を拡張ユニット4bのメモリ42bに書き込んでもよい。なお、これらの設定機能は設定部71によって実現されてもよい。設定部71は、PC2aまたはPC2bから収集設定39、処理設定61、表示設定62を受信してメモリ42aに書き込む。処理設定61は、データ処理部73により収集データに対して実行されるデータ処理を定義する情報とフロー(プログラム)を含む。表示設定62は、Webサーバ70を通じてWebブラウザ18にデータ処理結果を提供するダッシュボードのテンプレート(HTMLデータ、CSS、JavaScript(登録商標)のコードなど)を含む。生成部74は、ダッシュボードの表示部品を定義する表示設定62にしたがって、ダッシュボードのテンプレートにデータ処理結果を代入することで、ダッシュボードの表示データを作成する。表示データは、たとえば、HTMLデータや画像データ、CSS(カスケーディングスタイルシート)、JavaScript(登録商標)のコードなどであってもよい。表示部品としては、たとえば、円グラフ部品、棒グラフ部品、折れ線グラフ部品、数値表示部品などが含まれる。Webサーバ70は、Webブラウザ18によりダッシュボードのWebページにアクセスがあると、ダッシュボードの表示データをWebブラウザ18に送信する。Webブラウザ18が表示データを受信してダッシュボードを表示する。 The collection unit 52c may set the expansion unit 4b so that the expansion unit 4b collects the device value specified by the collection setting 39 and transfers it to the third buffer 37c of the expansion unit 4a. By providing the second buffer 37b and the third buffer 37c, even if the processing load of the data processing unit 73 fluctuates, data can be collected without being missed. The collection unit 52c may write the collection setting 36b (FIG. 7) of the expansion unit 4b included in the collection setting 39 to the memory 42b of the expansion unit 4b. Note that these setting functions may be realized by the setting unit 71. The setting unit 71 receives the collection setting 39, the processing setting 61, and the display setting 62 from the PC 2a or the PC 2b and writes them to the memory 42a. The processing setting 61 includes information and a flow (program) that defines the data processing executed for the collected data by the data processing unit 73. The display setting 62 includes a template of a dashboard (HTML data, CSS, Javascript (registered trademark) code, etc.) that provides the data processing result to the Web browser 18 through the Web server 70. The generation unit 74 creates the display data of the dashboard by substituting the data processing result into the template of the dashboard according to the display setting 62 that defines the display components of the dashboard. The display data may be, for example, HTML data, image data, CSS (cascading style sheet), Javascript (registered trademark) code, or the like. Display parts include, for example, pie chart parts, bar graph parts, line graph parts, numerical display parts, and the like. When the Web server 70 accesses the Web page of the dashboard by the Web browser 18, the Web server 70 transmits the display data of the dashboard to the Web browser 18. The Web browser 18 receives the display data and displays the dashboard.

なお、複数のデータ活用アプリケーションが提供されることがある。この場合、データ活用アプリケーションごとに必要とするデータと読み出しタイミングが異なることがある。この場合、データ活用アプリケーションごとにサブバッファがメモリ42aに確保されてもよい。収集部52cは、第二バッファ37bに格納されたデータレコードを読み出し、第一データ活用アプリケーション用のデータを第一サブバッファ38aに格納する。収集部52cは、第二バッファ37bに格納されたデータレコードを読み出し、第二データ活用アプリケーション用のデータを第二サブバッファ38bに格納する。なお、収集部52cは、第三バッファ37cに格納されたデータレコードを読み出し、第一データ活用アプリケーション用のデータを第一サブバッファ38aに格納してもよい。収集部52cは、第三バッファ37cに格納されたデータレコードを読み出し、第二データ活用アプリケーション用のデータを第二サブバッファ38bに格納してもよい。データ処理部73は、第一データ活用アプリケーションにしたがってデータを第一サブバッファ38aから読み出してデータ処理を実行し、処理結果を生成する。データ処理部73は、第二データ活用アプリケーションにしたがってデータを第二サブバッファ38bから読み出してデータ処理を実行し、処理結果を生成する。解凍エンジン75は、基本ユニット3の圧縮エンジン55aおよび拡張ユニット4bの圧縮エンジン55bと対を成す機能である。解凍エンジン75は、基本ユニット3により圧縮されて転送されてきたデータを解凍して第二バッファ37bに格納する。解凍エンジン75は、拡張ユニット4bにより圧縮されて転送されてきたデータを解凍して第三バッファ37cに格納する。これにより拡張バス90の通信トラフィックの混雑が緩和されるようになろう。解凍エンジン75はASICまたはFPGAなどにより実現されてもよい。このように基本ユニット3および拡張ユニット4a、4bとの間のデータの伝送は拡張バス90を介して実行される。 In addition, multiple data utilization applications may be provided. In this case, the data required and the read timing may differ for each data utilization application. In this case, a subbuffer may be allocated in the memory 42a for each data utilization application. The collection unit 52c reads the data record stored in the second buffer 37b and stores the data for the first data utilization application in the first subbuffer 38a. The collection unit 52c reads the data record stored in the second buffer 37b and stores the data for the second data utilization application in the second subbuffer 38b. The collection unit 52c may read the data record stored in the third buffer 37c and store the data for the first data utilization application in the first subbuffer 38a. The collection unit 52c may read the data record stored in the third buffer 37c and store the data for the second data utilization application in the second subbuffer 38b. The data processing unit 73 reads data from the first subbuffer 38a according to the first data utilization application, executes data processing, and generates a processing result. The data processing unit 73 reads data from the second subbuffer 38b according to the second data utilization application, executes data processing, and generates a processing result. The decompression engine 75 is a function of pairing with the compression engine 55a of the basic unit 3 and the compression engine 55b of the expansion unit 4b. The decompression engine 75 decompresses the data compressed and transferred by the basic unit 3 and stores it in the second buffer 37b. The decompression engine 75 decompresses the data compressed and transferred by the expansion unit 4b and stores it in the third buffer 37c. This will alleviate the congestion of communication traffic on the expansion bus 90. The defrosting engine 75 may be realized by ASIC, FPGA, or the like. In this way, the transmission of data between the basic unit 3 and the expansion units 4a and 4b is executed via the expansion bus 90.

データ活用アプリケーションごとに必要となるデータが複数である場合がある。その場合、各スキャンで収集されたデータの塊をバッファに維持したままサブバッファに必要な複数のデータを格納することもある。さらに、サブバッファにデータを分配する場合にも、各レコードにタイムスタンプ等が付与されもよい。図16が示すように、第二バッファ37b(第三バッファ37cであってもよい)は、収集されたデータの塊を保持している。一つのレコードはスキャン番号と、タイマーの値(タイムスタンプ)と、収集されたデータを含む。この例で、収集されたデータは、リレーRL1〜RL3、デバイスDev1、Dev2を含む。第一データ活用アプリケーション1601は、収集されたデータのうち、リレーRL1〜RL3を必要とする。したがって、スキャン番号、タイマーの値、リレーRL1〜RL3が第二バッファ37bから読み出されて、第一サブバッファ38aに格納される。第一データ活用アプリケーション1601は、第一サブバッファ38aからスキャン番号、タイマーの値、リレーRL1〜RL3を読み出して表示画面(ソースデータ)を作成する。第二データ活用アプリケーション1602は、収集されたデータのうち、リレーRL3、デバイスDev1、Dev2を必要とする。したがって、スキャン番号、タイマーの値、リレーRL3、デバイスDev1、Dev2が第二バッファ37bから読み出されて、第二サブバッファ38bに格納される。第二データ活用アプリケーション1602は、第二サブバッファ38bからスキャン番号、タイマーの値、リレーRL3、デバイスDev1、Dev2を読み出して表示画面(ソースデータ)を作成する。このようにサブバッファを活用することで、元のデータを変更することなくバッファ内に維持することが可能となる。バッファ内に保持された元のデータは他の目的で利用可能となる。 Data utilization There may be multiple data required for each application. In that case, a plurality of necessary data may be stored in the subbuffer while maintaining the chunk of data collected in each scan in the buffer. Further, when data is distributed to the subbuffer, a time stamp or the like may be added to each record. As shown in FIG. 16, the second buffer 37b (which may be the third buffer 37c) holds a chunk of collected data. One record contains the scan number, the timer value (timestamp), and the collected data. In this example, the collected data includes relays RL1 to RL3, devices Dev1, Dev2. The first data utilization application 1601 requires relays RL1 to RL3 among the collected data. Therefore, the scan number, the timer value, and the relays RL1 to RL3 are read from the second buffer 37b and stored in the first subbuffer 38a. The first data utilization application 1601 reads out the scan number, the timer value, and the relays RL1 to RL3 from the first subbuffer 38a to create a display screen (source data). The second data utilization application 1602 requires relays RL3, devices Dev1 and Dev2 among the collected data. Therefore, the scan number, the timer value, the relay RL3, the devices Dev1 and Dev2 are read from the second buffer 37b and stored in the second subbuffer 38b. The second data utilization application 1602 reads out the scan number, the timer value, the relay RL3, the devices Dev1 and the Dev2 from the second subbuffer 38b, and creates a display screen (source data). By utilizing the subbuffer in this way, it is possible to maintain the original data in the buffer without changing it. The original data held in the buffer can be used for other purposes.

●データ活用に関連する拡張ユニット4bの機能
図7は拡張ユニット4bのCPU41bによって実現される機能を説明する図である。
● Functions of Expansion Unit 4b Related to Data Utilization FIG. 7 is a diagram illustrating functions realized by CPU 41b of expansion unit 4b.

実行エンジン51bは拡張ユニット4bの基本機能(モーションユニットであればモーションフローの実行など)を実行する。収集部52bは、収集設定36により指定されたデータを、収集設定36により指定されたタイミングでデバイス部34bから収集して第四バッファ37dに格納する。転送部53bは、収集設定36により指定されたタイミング、または、拡張ユニット4aにより転送要求が受信されたタイミングで、第四バッファ37dに格納されているデータレコードを読み出して、拡張バス90を介して、拡張ユニット4aの第三バッファ37cに転送する。なお、監視部54により監視される拡張バス90の通信トラフィックが少ないタイミングに、転送部53bがデータレコードの転送を実行してもよい。圧縮エンジン55bは、収集設定36にしたがってデータレコードを圧縮する。つまり、転送部53bは、圧縮エンジン55bにより情報圧縮されたデータレコードを拡張ユニット4aに転送してもよい。圧縮エンジン55bは、CPU41bにより実現されてもよいが、高速処理の観点やCPU41bの処理負荷の軽減の観点から、ASICまたはFPGAにより実現されてもよい。 The execution engine 51b executes the basic functions of the expansion unit 4b (in the case of a motion unit, execution of a motion flow, etc.). The collection unit 52b collects the data specified by the collection setting 36 from the device unit 34b at the timing specified by the collection setting 36 and stores it in the fourth buffer 37d. The transfer unit 53b reads the data record stored in the fourth buffer 37d at the timing specified by the collection setting 36 or the timing when the transfer request is received by the expansion unit 4a, and reads the data record stored in the fourth buffer 37d via the expansion bus 90. , Transfer to the third buffer 37c of the expansion unit 4a. The transfer unit 53b may transfer the data record at a timing when the communication traffic of the expansion bus 90 monitored by the monitoring unit 54 is small. The compression engine 55b compresses the data record according to the collection setting 36. That is, the transfer unit 53b may transfer the data record information-compressed by the compression engine 55b to the expansion unit 4a. The compression engine 55b may be realized by the CPU 41b, but may be realized by an ASIC or an FPGA from the viewpoint of high-speed processing and reduction of the processing load of the CPU 41b.

●データレコードの例
図8は収集部52aによって第一バッファ37aに書き込まれるデータレコード91を示している。複数のデータレコード91は時系列データの一例である。この例で、収集部52aは一スキャン周期ごとに、Dev0、Dev1、Dev10というデバイス名のデバイス値をデバイス部34aから収集し、収集カウントおよびタイマーから取得された時刻情報を付加して一つのデータレコードを作成し、第一バッファ37aに格納する。なお、収集対象は、拡張ユニット4bに割り当てられたバッファメモリまたはデバイスに格納されたデータであってもよい。この例で第一バッファ37aはFIFO(先入先出)タイプのバッファである。収集カウントは、一つのデータレコードを収集するたびに1ずつカウントアップされるカウンタのカウント値である。収集カウントはシーケンシャルに付与される番号であるため、データレコードの抜けや圧縮を検出することに役立つ。
● Example of data record FIG. 8 shows a data record 91 written to the first buffer 37a by the collecting unit 52a. The plurality of data records 91 are examples of time series data. In this example, the collection unit 52a collects the device values of the device names Dev0, Dev1, and Dev10 from the device unit 34a for each scan cycle, and adds the collection count and the time information acquired from the timer to one data. A record is created and stored in the first buffer 37a. The collection target may be data stored in the buffer memory or device allocated to the expansion unit 4b. In this example, the first buffer 37a is a FIFO (first in, first out) type buffer. The collection count is a count value of a counter that is counted up by 1 each time one data record is collected. Since the collection count is a sequential number, it is useful for detecting missing or compressed data records.

タイムスタンプなどの時刻情報は、たとえば、基本ユニット3で取得されたデータと、拡張ユニット4bで取得されたデータとを対比可能にダッシュボードに表示する際に役立つ。一般に、基本ユニット3における収集タイミングと各様ユニット4bにおける収集タイミングとは一致しない。そのため、基本ユニット3の動作と拡張ユニット4bの動作とを比較するためには、基本ユニット3のデータと、拡張ユニット4bのデータとを紐付るための情報が必要となる。一般に、基本ユニット3は拡張ユニット4a、4bはユニット間同期などによって時刻情報を同期できる。したがって、基本ユニット3と拡張ユニット4bはそれぞれデータレコードを収集したときの時刻情報をデータレコードに付与することで、データ処理部73は、異なるユニットで取得された複数のデータレコードを時間軸上で整列させることができる。 Time information such as a time stamp is useful, for example, when displaying the data acquired by the basic unit 3 and the data acquired by the expansion unit 4b on the dashboard so as to be contrastable. Generally, the collection timing in the basic unit 3 and the collection timing in each unit 4b do not match. Therefore, in order to compare the operation of the basic unit 3 with the operation of the expansion unit 4b, information for associating the data of the basic unit 3 with the data of the expansion unit 4b is required. In general, the basic unit 3 can synchronize the time information with the expansion units 4a and 4b by synchronization between units or the like. Therefore, the basic unit 3 and the expansion unit 4b each add the time information when the data records are collected to the data records, so that the data processing unit 73 transfers a plurality of data records acquired by different units on the time axis. Can be aligned.

●転送のタイミング
図9はデータレコードの転送タイミングを説明する図である。図9が示すようにPLC1は、入出力のリフレッシュ、ユーザプログラムの実行およびエンド処理を繰り返し実行する。スキャン周期の伸びを低減するために、転送処理は、入出力のリフレッシュの期間を避けて実行される。同様に、スキャン周期の伸びを低減するために、転送処理は、UREADおよびUWRITの実行期間を避けて実行される。UREADは拡張ユニット4に割り当てられているバッファメモリからデータを読み出す命令であり、ユーザプログラム中に記述される。そのため、基本ユニット3は、ユーザプログラムの実行期間中に、UREADにしたがって拡張ユニット4にアクセスしてバッファメモリからデータを取得する。UWRITは、拡張ユニット4に割り当てられているバッファメモリにデータを書き込む命令であり、ユーザプログラム中に記述される。基本ユニット3は、ユーザプログラムの実行期間中に、UWRITにしたがって拡張ユニット4にアクセスしてバッファメモリにデータを書き込む。
● Transfer Timing FIG. 9 is a diagram for explaining the transfer timing of the data record. As shown in FIG. 9, the PLC1 repeatedly executes input / output refresh, user program execution, and end processing. In order to reduce the extension of the scan cycle, the transfer process is executed avoiding the input / output refresh period. Similarly, in order to reduce the elongation of the scan cycle, the transfer process is executed avoiding the execution period of UREAD and UWRIT. UREAD is an instruction to read data from the buffer memory allocated to the expansion unit 4, and is described in the user program. Therefore, the basic unit 3 accesses the expansion unit 4 according to UREAD and acquires data from the buffer memory during the execution period of the user program. UWRIT is an instruction to write data to the buffer memory allocated to the expansion unit 4, and is described in the user program. The basic unit 3 accesses the expansion unit 4 according to UWRIT and writes data to the buffer memory during the execution period of the user program.

図9が示すように、入出力のリフレッシュ、UREADおよびUWRITを除いた残りの転送可能期間において、転送処理は、拡張バス90で実行される。たとえば、収集設定36aによって5個のデータレコードずつ転送処理を実行することが設定されていたと仮定する。この場合、転送部53aは、第一バッファ37aに5個のデータレコードの蓄積が完了した後であって、最初の転送可能期間または拡張ユニット4aによって転送要求を受信したタイミングで、転送処理を実行する。 As shown in FIG. 9, the transfer process is performed on the expansion bus 90 during the remaining transferable period excluding I / O refresh, UREAD and UWRIT. For example, it is assumed that the collection setting 36a is set to execute the transfer process for each of five data records. In this case, the transfer unit 53a executes the transfer process after the accumulation of the five data records in the first buffer 37a is completed and at the timing when the transfer request is received by the first transferable period or the expansion unit 4a. To do.

●収集設定の変更
データの収集は、たとえば、工場の稼働期間において常時実行されてもよい。この場合、午前中に使用されていた収集設定と午後に使用される収集設定とが異なることがある。この場合、複数のデータレコードのうちどのデータレコードが第一の収集設定に基づき取得され、どのデータレコードが第二の収集設定に基づき取得されたかを簡単に識別できれば便利であろう。
● Change of collection settings Data collection may be performed at any time during the factory operation period, for example. In this case, the collection settings used in the morning may differ from the collection settings used in the afternoon. In this case, it would be convenient to be able to easily identify which of the plurality of data records was acquired based on the first collection setting and which data record was acquired based on the second collection setting.

図10は収集設定の途中変更に対応可能なデータレコード91のフォーマットを示している。この例では、複数の収集設定を区別するための識別情報がデータレコード91に追加されている。識別情報"1"は第一の収集設定に対応している。第一の収集設定において収集対象のデバイスはDev1とDev10である。識別情報"2"は第二の収集設定に対応している。第二の収集設定において収集対象のデバイスはDev1、Dev10、Dev11である。このようなフォーマットを採用することで、データ処理部73は、収集設定ごとにデータ処理対象を分けて、データ処理を実行することが可能となる。たとえば、識別情報"1"は、第一のデータ処理設定に対応し、識別情報"2"は、第二のデータ処理設定に対応していてもよい。データ処理部73は、識別情報に対応したデータ処理設定を処理設定61から取得し、取得したデータ処理設定にしたがってデータレコードにデータ処理を施してもよい。 FIG. 10 shows the format of the data record 91 that can be changed in the middle of the collection setting. In this example, identification information for distinguishing a plurality of collection settings is added to the data record 91. The identification information "1" corresponds to the first collection setting. In the first collection setting, the devices to be collected are Dev1 and Dev10. The identification information "2" corresponds to the second collection setting. In the second collection setting, the devices to be collected are Dev1, Dev10, and Dev11. By adopting such a format, the data processing unit 73 can divide the data processing target for each collection setting and execute the data processing. For example, the identification information "1" may correspond to the first data processing setting, and the identification information "2" may correspond to the second data processing setting. The data processing unit 73 may acquire the data processing setting corresponding to the identification information from the processing setting 61 and perform data processing on the data record according to the acquired data processing setting.

●情報圧縮
図11はデータレコードの情報圧縮を説明する図である。データレコード群92aは情報圧縮前のデータレコードを示している。ここでは収集対象として四つのリレーデバイスRL1,RL2,RL3,RL4が指定されている。また、収集カウントとしてスキャン番号が採用されている。カウンタは、タイマーなどにより取得される時刻情報(例:あるリレーがONになってからOFFになるまでの時間間隔を示す数値)であってもよい。データレコード群92aにおいてスキャン番号"1"のデータレコードと、スキャン番号"2"のデータレコードとの間ではリレーデバイスの変化点が存在しない。つまり、スキャン番号"2"のデータレコードは圧縮(廃棄または削除)可能である。しかし、スキャン番号"3"のデータレコードのリレーデバイスRL1とスキャン番号"1"のデータレコードのリレーデバイスRL1とが異なっている。このように、スキャン番号"3"は変化点を有しているため、スキャン番号"3"のデータレコードは圧縮されない。スキャン番号"3"のデータレコードと、スキャン番号"4"のデータレコードとの間ではリレーデバイスの変化点が存在しないため、スキャン番号"4"のデータレコードは圧縮可能である。同様に、スキャン番号"5"のデータレコードと、スキャン番号"6"のデータレコードとの間ではリレーデバイスの変化点が存在しないため、スキャン番号"6"のデータレコードは圧縮可能である。このような変化点に着目した情報圧縮を実行することで、圧縮されたデータレコード群92bが実現される。圧縮されたデータレコード群92bを構成する各データレコードは変化点を有している。
● Information compression FIG. 11 is a diagram illustrating information compression of a data record. The data record group 92a indicates a data record before information compression. Here, four relay devices RL1, RL2, RL3, and RL4 are designated as collection targets. In addition, a scan number is used as the collection count. The counter may be time information acquired by a timer or the like (example: a numerical value indicating a time interval from when a certain relay is turned on to when it is turned off). In the data record group 92a, there is no change point of the relay device between the data record of scan number "1" and the data record of scan number "2". That is, the data record with scan number "2" can be compressed (discarded or deleted). However, the relay device RL1 for the data record with scan number "3" and the relay device RL1 for the data record with scan number "1" are different. As described above, since the scan number "3" has a change point, the data record of the scan number "3" is not compressed. Since there is no change point of the relay device between the data record of scan number "3" and the data record of scan number "4", the data record of scan number "4" can be compressed. Similarly, since there is no change point of the relay device between the data record of scan number "5" and the data record of scan number "6", the data record of scan number "6" can be compressed. By executing information compression focusing on such a change point, the compressed data record group 92b is realized. Each data record constituting the compressed data record group 92b has a change point.

図16が示すように、スキャン番号、タイマーの値、リレーRL1〜RL3は、第二バッファ37b(第三バッファ37cであってもよい)から読み出されて、情報圧縮され、第一サブバッファ38aに格納されてもよい。リレーデバイスの変化点が存在しない期間では、スキャン番号(例:2)、タイマーの値(例:450)、リレーRL1〜RL3(例:ON、OFF、OFF)が第一サブバッファ38aに格納されなくてもよい。リレーデバイスの変化点が存在するときに、スキャン番号(例:3)、タイマーの値(例:560)、リレーRL1〜RL3(例:OFF、OFF、OFF)が第二バッファ37b(第三バッファ37cであってもよい)から読み出されて、第一サブバッファ38aに格納されてもよい。第一データ活用アプリケーション1601は、第一サブバッファ38aからスキャン番号、タイマーの値、リレーRL1〜RL3を読み出して表示画面(ソースデータ)を作成する。 As shown in FIG. 16, the scan number, timer value, and relays RL1 to RL3 are read from the second buffer 37b (which may be the third buffer 37c), information-compressed, and the first subbuffer 38a. It may be stored in. During the period when there is no change point of the relay device, the scan number (example: 2), the timer value (example: 450), and the relays RL1 to RL3 (example: ON, OFF, OFF) are stored in the first subbuffer 38a. It does not have to be. When there is a change point of the relay device, the scan number (example: 3), the timer value (example: 560), and the relays RL1 to RL3 (example: OFF, OFF, OFF) are the second buffer 37b (third buffer). It may be read from (37c) and stored in the first subbuffer 38a. The first data utilization application 1601 reads out the scan number, the timer value, and the relays RL1 to RL3 from the first subbuffer 38a to create a display screen (source data).

●ダッシュボードの一例
図12はWebブラウザ18のUI130を示している。UI130には、URL入力部131と、ダッシュボードの表示領域105とが含まれている。URL入力部131には、ダッシュボードに割り当てられたURLが入力されている。表示領域105には、データ処理部73によって収集対象データから求められたデータ処理結果が示されている。この例では、リレーデバイスRL1、RL2の波形が含まれている。データレコードはスキャン周期ごとに収集されるため、たとえば、一日にわたりデータ収集を継続すると、多数のデータレコードが収集される。データ処理部73は、リレーデバイスRL1の立ち上がりを基準としてリレーデバイスRL1について取得された複数の波形を重ねて表示している。この例では、リレーデバイスRL1の立下りのタイミングにずれが生じている。たとえば、データ処理部73は、複数の波形の平均値を演算し、平均値に相当する波形を太い線で表示してもよい。立下りのずれについて合格範囲dX1が存在してもよい。データ処理部73は、各立下りのタイミングが合格範囲dX1に含まれていれば、合格と判定してもよい。データ処理部73は、リレーデバイスRL2についても同様の処理を実行してもよい。ただし、リレーデバイスRL2について立ち上がりのずれが合格範囲dX2に含まれていないため、データ処理部73は、不合格と判定してもよい。
● Example of dashboard FIG. 12 shows UI 130 of the Web browser 18. The UI 130 includes a URL input unit 131 and a dashboard display area 105. The URL assigned to the dashboard is input to the URL input unit 131. The display area 105 shows the data processing result obtained from the data to be collected by the data processing unit 73. In this example, the waveforms of the relay devices RL1 and RL2 are included. Since data records are collected every scan cycle, for example, if data collection is continued for one day, a large number of data records will be collected. The data processing unit 73 superimposes and displays a plurality of waveforms acquired for the relay device RL1 with reference to the rising edge of the relay device RL1. In this example, the timing of the fall of the relay device RL1 is deviated. For example, the data processing unit 73 may calculate the average value of a plurality of waveforms and display the waveform corresponding to the average value with a thick line. There may be a pass range dX1 for the fall deviation. The data processing unit 73 may determine that the data has passed if the timing of each falling edge is included in the pass range dX1. The data processing unit 73 may execute the same processing for the relay device RL2. However, since the rise deviation of the relay device RL2 is not included in the pass range dX2, the data processing unit 73 may determine that the relay device RL2 has failed.

このように不合格が発生すると、CPU41aは、所定のメールアドレスに対してエラー報告メールを送信してもよい。エラー報告メールには、ダッシュボードのURLを含むリンクが含まれていてもよい。エラー報告メールの受信者はこのリンクをクリックすることで、Webブラウザ18を起動してダッシュボードを表示して波形を確認することで、エラーの原因を解消してもよい。 When the failure occurs in this way, the CPU 41a may send an error report mail to a predetermined mail address. The error report email may include a link containing the dashboard URL. The recipient of the error report mail may click this link to start the Web browser 18, display the dashboard, and check the waveform to eliminate the cause of the error.

なお、拡張ユニット4bとしてモーションユニットがある。モーションユニットは、基本ユニット3によって指令値にしたがって、産業機械を動作させ、産業機械の動作結果を保持している。指令値は、たとえば、アーム型ロボットのアームの座標であってもよい。動作結果(現在値)は、センサなどによって取得された実際のアームの座標であってもよい。拡張ユニット4aは、指令値とそれに対応する現在値とを時系列データとして拡張ユニット4bから取得し、指令値と現在値とのずれをダッシュボードに表示してもよい。データ処理部73は、指令値と現在値との差分を求め、時間の経過とともに差分がどのように変化しているかを示すグラフをダッシュボードに表示してもよい。このような波形をユーザが確認することで、発生したエラーの原因が消耗品の寿命に起因したものなのか、外部から加えられた突発的なイベントにあるのかを判断しやすくなろう。たとえば、消耗品の寿命の末期が近づくと徐々に波形の応答が遅れることがある。一方で、突発的なイベントが原因でエラーが発生した場合、イベントの発生時刻でのみ波形の変化が発生する。よって、ユーザは波形を観察することでエラー原因を発見し、その対策を施すことが可能となろう。 There is a motion unit as the expansion unit 4b. The motion unit operates the industrial machine according to the command value by the basic unit 3 and holds the operation result of the industrial machine. The command value may be, for example, the coordinates of the arm of the arm-type robot. The operation result (current value) may be the coordinates of the actual arm acquired by a sensor or the like. The expansion unit 4a may acquire the command value and the corresponding current value as time series data from the expansion unit 4b, and display the deviation between the command value and the current value on the dashboard. The data processing unit 73 may obtain the difference between the command value and the current value, and display a graph showing how the difference changes with the passage of time on the dashboard. By checking such a waveform, it will be easier for the user to determine whether the cause of the error that occurred is due to the life of the consumables or a sudden event added from the outside. For example, the waveform response may gradually delay as the end of the consumable life approaches. On the other hand, when an error occurs due to a sudden event, the waveform changes only at the time when the event occurs. Therefore, the user will be able to discover the cause of the error by observing the waveform and take countermeasures.

<フローチャート>
●拡張ユニット4a
図13は拡張ユニット4aのCPU41aにより実行される収集処理を示すフローチャートである。CPU41aは、特定のリレーデバイスがONになると、以下の処理を実行する。
<Flowchart>
Expansion unit 4a
FIG. 13 is a flowchart showing a collection process executed by the CPU 41a of the expansion unit 4a. When the specific relay device is turned on, the CPU 41a executes the following processing.

S1でCPU41a(設定部71)は基本ユニット3と拡張ユニット4bを設定する。たとえば、CPU41aは基本ユニット3のための収集設定36aを基本ユニット3に転送する。基本ユニット3は、収集設定36aを記憶装置32に格納する。CPU41aは基本ユニット3のための収集設定36bを拡張ユニット4bに転送する。拡張ユニット4bは、収集設定36bをメモリ42bに格納する。 In S1, the CPU 41a (setting unit 71) sets the basic unit 3 and the expansion unit 4b. For example, the CPU 41a transfers the collection setting 36a for the basic unit 3 to the basic unit 3. The basic unit 3 stores the collection setting 36a in the storage device 32. The CPU 41a transfers the collection setting 36b for the basic unit 3 to the expansion unit 4b. The expansion unit 4b stores the collection setting 36b in the memory 42b.

S2でCPU41a(データ処理部73または収集部52c)は第二バッファ37bまたは第三バッファ37c(第一サブバッファ38aまたは第二サブバッファ38b)に所定量の収集データが格納されているかどうかを判定する。所定量は処理設定61により定義されている。ここでは、処理設定61により指定されたバッファが確認されれば十分であり、常に、第二バッファ37bと第三バッファ37cとの両方が確認対象となるわけではない。CPU41は、バッファに所定量のデータが格納されるまで待機する。バッファに所定量のデータが格納されると、CPU41aはS3に進む。 In S2, the CPU 41a (data processing unit 73 or collection unit 52c) determines whether or not a predetermined amount of collected data is stored in the second buffer 37b or the third buffer 37c (first subbuffer 38a or second subbuffer 38b). To do. The predetermined amount is defined by the processing setting 61. Here, it is sufficient that the buffer specified by the processing setting 61 is confirmed, and both the second buffer 37b and the third buffer 37c are not always the confirmation targets. The CPU 41 waits until a predetermined amount of data is stored in the buffer. When a predetermined amount of data is stored in the buffer, the CPU 41a proceeds to S3.

S3でCPU41a(データ処理部73)はバッファから読み出した所定量のデータに対してデータ処理を実行して、データ処理結果を求める。データ処理の内容は処理設定61により定義されている。データ処理結果はメモリ42aに保持される。 In S3, the CPU 41a (data processing unit 73) executes data processing on a predetermined amount of data read from the buffer and obtains a data processing result. The content of data processing is defined by the processing setting 61. The data processing result is held in the memory 42a.

S4でCPU41a(生成部74)はPC2bのWebブラウザ18からダッシュボードの表示要求(Webアクセス)があったかどうかを判定する。表示要求が無ければ、CPU41aはS2に進み、データの収集とデータ処理とを継続する。表示要求があれば、CPU41aはS5に進む。 In S4, the CPU 41a (generation unit 74) determines whether or not there is a dashboard display request (Web access) from the Web browser 18 of the PC 2b. If there is no display request, the CPU 41a proceeds to S2 and continues data collection and data processing. If there is a display request, the CPU 41a proceeds to S5.

S5でCPU41a(生成部74)は表示要求に対応するダッシュボードの表示データを作成する。たとえば、CPU41aは、メモリ42aに格納されているデータ処理結果をダッシュボードのテンプレートに代入して表示データを作成する。 In S5, the CPU 41a (generation unit 74) creates the display data of the dashboard corresponding to the display request. For example, the CPU 41a creates display data by substituting the data processing result stored in the memory 42a into the dashboard template.

S6でCPU41a(Webサーバ70)は表示データをPC2bのWebブラウザ18に送信する。これにより、PC2bのWebブラウザ18はダッシュボードを表示できるようになる。 In S6, the CPU 41a (Web server 70) transmits the display data to the Web browser 18 of the PC 2b. As a result, the Web browser 18 of the PC 2b can display the dashboard.

●基本ユニット3
図14は基本ユニット3のCPU31により実行される収集処理を示すフローチャートである。CPU31は、特定のリレーデバイスがONになると、以下の処理を実行する。
Basic unit 3
FIG. 14 is a flowchart showing a collection process executed by the CPU 31 of the basic unit 3. When the specific relay device is turned on, the CPU 31 executes the following processing.

S11でCPU31(収集部52a)は収集設定36aにより指定された収集タイミング(例:1スキャン周期ごと、トリガ信号が入力されるごと、所定周期ごと)が到来したかどうかを判定する。収集タイミングが到来すると、CPU31はS12に進む。 In S11, the CPU 31 (collection unit 52a) determines whether or not the collection timing (example: every scan cycle, every time a trigger signal is input, every predetermined cycle) specified by the collection setting 36a has arrived. When the collection timing arrives, the CPU 31 proceeds to S12.

S12でCPU31(収集部52a)は、収集設定36aにより指定された収集対象データをデバイス部34aから収集して第一バッファ37aに格納する。 In S12, the CPU 31 (collection unit 52a) collects the data to be collected specified by the collection setting 36a from the device unit 34a and stores it in the first buffer 37a.

S13でCPU31(転送部53a)は、収集設定36aにより指定された転送条件が満たされたかどうかを判定する。転送条件は、たとえば、第一バッファ37aに蓄積されているデータレコードの数であってもよい。転送条件が満たされていなければ、CPU31は、S11に戻り、データの収集を継続する。転送条件が満たされていれば、CPU31はS14に進む。 In S13, the CPU 31 (transfer unit 53a) determines whether or not the transfer condition specified by the collection setting 36a is satisfied. The transfer condition may be, for example, the number of data records stored in the first buffer 37a. If the transfer condition is not satisfied, the CPU 31 returns to S11 and continues collecting data. If the transfer condition is satisfied, the CPU 31 proceeds to S14.

S14でCPU31(監視部54a)は、拡張バス90の通信トラフィックが少ないかどうかを判定する。通信トラフィックが多ければ、CPU31はS11に戻り、データの収集を継続する。通信トラフィックが少なければ、CPU31はS15に進む。 In S14, the CPU 31 (monitoring unit 54a) determines whether or not the communication traffic of the expansion bus 90 is small. If there is a lot of communication traffic, the CPU 31 returns to S11 and continues collecting data. If the communication traffic is low, the CPU 31 proceeds to S15.

S15でCPU31(転送部53a)は第一バッファ37aから所定量のデータレコードを読み出して第二バッファ37bに転送する。所定量も収集設定36aにより定義されている。 In S15, the CPU 31 (transfer unit 53a) reads a predetermined amount of data records from the first buffer 37a and transfers them to the second buffer 37b. The predetermined amount is also defined by the collection setting 36a.

●拡張ユニット4b
図15は拡張ユニット4bのCPU41bにより実行される収集処理を示すフローチャートである。CPU41bは、特定のリレーデバイスがONになると、以下の処理を実行する。
Expansion unit 4b
FIG. 15 is a flowchart showing a collection process executed by the CPU 41b of the expansion unit 4b. When the specific relay device is turned on, the CPU 41b executes the following processing.

S21でCPU41b(収集部52b)は収集設定36bにより指定された収集タイミング(例:トリガ信号が入力されるごと、所定周期ごと)が到来したかどうかを判定する。収集タイミングが到来すると、CPU41bはS22に進む。 In S21, the CPU 41b (collection unit 52b) determines whether or not the collection timing (eg, every time a trigger signal is input, every predetermined cycle) specified by the collection setting 36b has arrived. When the collection timing arrives, the CPU 41b proceeds to S22.

S22でCPU41b(収集部52b)は、収集設定36aにより指定された収集対象データをデバイス部34aから収集して第四バッファ37dに格納する。 In S22, the CPU 41b (collection unit 52b) collects the data to be collected specified by the collection setting 36a from the device unit 34a and stores it in the fourth buffer 37d.

S23でCPU41b(転送部53b)は、収集設定36bにより指定された転送条件が満たされたかどうかを判定する。転送条件は、たとえば、第四バッファ37dに蓄積されているデータレコードの数であってもよい。転送条件が満たされていなければ、CPU41bは、S21に戻り、データの収集を継続する。転送条件が満たされていれば、CPU41bはS24に進む。 In S23, the CPU 41b (transfer unit 53b) determines whether or not the transfer condition specified by the collection setting 36b is satisfied. The transfer condition may be, for example, the number of data records stored in the fourth buffer 37d. If the transfer condition is not satisfied, the CPU 41b returns to S21 and continues collecting data. If the transfer condition is satisfied, the CPU 41b proceeds to S24.

S24でCPU41b(監視部54b)は、拡張バス90の通信トラフィックが少ないかどうかを判定する。通信トラフィックが多ければ、CPU41bはS21に戻り、データの収集を継続する。通信トラフィックが少なければ、CPU41bはS25に進む。 In S24, the CPU 41b (monitoring unit 54b) determines whether or not the communication traffic of the expansion bus 90 is small. If there is a lot of communication traffic, the CPU 41b returns to S21 and continues collecting data. If the communication traffic is low, the CPU 41b proceeds to S25.

S25でCPU41b(転送部53b)は第四バッファ37dから所定量のデータレコードを読み出して第三バッファ37cに転送する。所定量も収集設定36bにより定義されている。 In S25, the CPU 41b (transfer unit 53b) reads a predetermined amount of data records from the fourth buffer 37d and transfers them to the third buffer 37c. The predetermined amount is also defined by the collection setting 36b.

図17はリアルタイム監視アプリケーション用のダッシュボード171の一例を示している。図17において動作状態表示172は、リアルタイム監視の動作状態を示すものである。表示切替タブ173は、アプリケーションに対して複数のダッシュボードが設定されている場合に、アプリケーションに対応する他のダッシュボードに切り替えるためのタブボタン表示である。図17ではモニタボタンが押された状態が示されている。この状態では、トレンドタブが押されると、ダッシュボードは、トレンド表示のダッシュボードに切り替わる。履歴タブが押されると、ダッシュボードは、履歴表示のダッシュボードに切り替わる。各表示欄174a〜174gには、監視項目ごとに、項目名、余裕度、測定値、注意値、警報値、判定結果および測定値に関連するグラフが表示される。項目名、注意値、警報値は、プロジェクトデータ15のアプリケーション設定データ(表示設定62)に基づき表示される。測定値は、アプリケーション設定データの開始条件および終了条件に基づいて決定される開始タイミングから終了タイミングまでの時間幅を示している。余裕度は、監視項目の測定値がどの程度余裕があるかを示す。たとえば、余裕度は、警報値や注意値に対し測定値がどの程度余裕があるかを示してもよい。判定結果は、測定値と有効な警報値または注意値とに基づき求められた判定結果である。判定結果は、正常、注意、警報等の監視対象の状態区分を示してもよい。最新の測定値に基づく判定結果が正常であったとしても、過去において、判定結果が、一旦、注意や警告の状態になっている場合がある。この場合、過去から現在までの所定の判定期間において、警戒度のより高い状態が維持されてもよい。判定表示欄174fのクリアボタンが押されると、表示されている判定結果が最新の判定結果に更新されてもよい。測定値に関連するグラフは、測定値を視覚化したものである。たとえば、開始タイミングから終了タイミングまでの時間幅を示す棒グラフが表示されてもよい。注意値、および警報値に対応する線が、注意値、および警報値に対応する位置に表示されてもよい。たとえば、グラフ表示欄174gの閾値線表示チェックボックスがチェックされると、有効な注意値および警報値に対応する閾値線が表示される。グラフ表示欄174gの設定ボタンが押されると、アプリケーションに対応する他のダッシュボードうち設定ダッシュボードが表示される。 FIG. 17 shows an example of a dashboard 171 for a real-time monitoring application. In FIG. 17, the operation state display 172 shows the operation state of real-time monitoring. The display switching tab 173 is a tab button display for switching to another dashboard corresponding to the application when a plurality of dashboards are set for the application. FIG. 17 shows a state in which the monitor button is pressed. In this state, when the trend tab is pressed, the dashboard switches to the trend display dashboard. When the history tab is pressed, the dashboard switches to the history view dashboard. In each display column 174a to 174g, a graph related to the item name, the margin, the measured value, the caution value, the alarm value, the determination result, and the measured value is displayed for each monitoring item. The item name, caution value, and alarm value are displayed based on the application setting data (display setting 62) of the project data 15. The measured value indicates the time width from the start timing to the end timing determined based on the start condition and the end condition of the application setting data. The margin indicates how much the measured value of the monitoring item has a margin. For example, the margin may indicate how much the measured value has a margin with respect to the alarm value or the caution value. The judgment result is a judgment result obtained based on the measured value and a valid alarm value or caution value. The determination result may indicate the status classification of the monitoring target such as normal, caution, and alarm. Even if the judgment result based on the latest measured value is normal, the judgment result may be once in the state of caution or warning in the past. In this case, a higher alert state may be maintained during a predetermined determination period from the past to the present. When the clear button in the determination display field 174f is pressed, the displayed determination result may be updated to the latest determination result. The graph associated with the measured value is a visualization of the measured value. For example, a bar graph showing the time width from the start timing to the end timing may be displayed. A line corresponding to the caution value and the alarm value may be displayed at a position corresponding to the caution value and the alarm value. For example, when the threshold line display check box of the graph display field 174 g is checked, threshold lines corresponding to valid caution values and alarm values are displayed. When the setting button of the graph display field 174g is pressed, the setting dashboard among other dashboards corresponding to the application is displayed.

図18はリアルタイム監視アプリケーション用の設定ダッシュボード181の一例を示している。図17におけるグラフ表示欄174gの設定ボタンが押されると、設定ダッシュボード181が表示される。図18において動作状態表示182は、リアルタイム監視の動作状態を示すものである。監視状態切換スイッチ183は、リアルタイム監視を監視状態と非監視状態とを切り換えるためのスイッチである。閾値一括設定ボタン184は、監視項目ごとに設けられた複数の閾値を一括で設定するための設定画面に移行するためのボタンである。各入力欄185a〜185fには、監視項目ごとに、監視チェックボックス、項目名、開始条件、終了条件、注意値、警報値が表示される。図2におけるプロジェクトデータ15のアプリケーション設定データを設定するための設定ウィザードと対応する入力欄が設けられてもよい。追加ボタン186aが押されると、新規の監視項目を入力するための入力行が追加される。削除ボタン186bが押されると、上下ボタン186cで選択された入力行が削除される。設定反映ボタン187が押されると、更新された設定内容をアプリケーション設定データ(表示設定62)に反映される。続いて、更新されたアプリケーション設定データ(表示設定62)に基づくリアルタイム監視アプリケーション用のダッシュボード171が表示される。キャンセルボタン188が押されると、更新された設定内容がアプリケーション設定データ(表示設定62)に反映されることなく、アプリケーション設定データ(表示設定62)に基づくリアルタイム監視アプリケーション用のダッシュボード171が表示される。 FIG. 18 shows an example of a configuration dashboard 181 for a real-time monitoring application. When the setting button of the graph display field 174g in FIG. 17 is pressed, the setting dashboard 181 is displayed. In FIG. 18, the operation state display 182 shows the operation state of real-time monitoring. The monitoring state changeover switch 183 is a switch for switching between a monitoring state and a non-monitoring state for real-time monitoring. The threshold value batch setting button 184 is a button for shifting to a setting screen for collectively setting a plurality of threshold values provided for each monitoring item. In each of the input fields 185a to 185f, a monitoring check box, an item name, a start condition, an end condition, a caution value, and an alarm value are displayed for each monitoring item. A setting wizard for setting the application setting data of the project data 15 in FIG. 2 and a corresponding input field may be provided. When the add button 186a is pressed, an input line for inputting a new monitoring item is added. When the delete button 186b is pressed, the input line selected by the up / down buttons 186c is deleted. When the setting reflection button 187 is pressed, the updated setting contents are reflected in the application setting data (display setting 62). Subsequently, the dashboard 171 for the real-time monitoring application based on the updated application setting data (display setting 62) is displayed. When the cancel button 188 is pressed, the dashboard 171 for the real-time monitoring application based on the application setting data (display setting 62) is displayed without reflecting the updated setting contents in the application setting data (display setting 62). To.

図19は拡張ユニット4aのCPU41aにより実行されるリアルタイム監視処理のデータ活用プログラムの実行とダッシュボードの提供とを示すフローチャートである。 FIG. 19 is a flowchart showing execution of a data utilization program for real-time monitoring processing executed by CPU 41a of the expansion unit 4a and provision of a dashboard.

S41でCPU41a(収集部52c)はアプリケーション設定データ(収集設定39)に従い開始信号および終了信号に対応するデバイスまたは変数を監視する。アプリケーション設定データ(収集設定39)は、開始信号として利用されるデバイスまたは変数の名称と、デバイスまたは変数に格納される所定値とを保持している。当該デバイスまたは変数の値が所定値に変化したタイミングが開始タイミングであるいは、図18で示されたように、デバイスまたは変数の変化が立ち上がりエッジまたは立下りエッジであることが開始条件として設定されてもよい。終了信号についても同様である。CPU41a(収集部52c)はアプリケーション設定データ(収集設定39)に基づくデータ活用プログラムを実行することによってアプリケーション設定データ(収集設定39)により指定される収集対象のデバイス値を収集し、第二バッファ37cに収集されたデータとして格納する。ここで、収集されたデータは、異なる時刻に収集された時系列データであってもよい。データ活用プログラムとは別に、収集設定39に従い収集動作を実行する収集プログラムを備えていてもよく、この場合、アプリケーション設定データ(処理設定61)に従い収集設定39が設定され、設定された収集設定39により指定される収集対象のデバイス値が収集され、収集されたデータが第二バッファ37cに格納されてもよい。 In S41, the CPU 41a (collection unit 52c) monitors the device or variable corresponding to the start signal and the end signal according to the application setting data (collection setting 39). The application setting data (collection setting 39) holds the name of the device or variable used as the start signal and the predetermined value stored in the device or variable. The start timing is when the value of the device or variable changes to a predetermined value, or as shown in FIG. 18, the start condition is that the change of the device or variable is the rising edge or the falling edge. May be good. The same applies to the end signal. The CPU 41a (collection unit 52c) collects the device value to be collected specified by the application setting data (collection setting 39) by executing the data utilization program based on the application setting data (collection setting 39), and the second buffer 37c. Store as collected data in. Here, the collected data may be time series data collected at different times. In addition to the data utilization program, a collection program that executes a collection operation according to the collection setting 39 may be provided. In this case, the collection setting 39 is set according to the application setting data (processing setting 61), and the set collection setting 39 is set. The device value to be collected specified by is collected, and the collected data may be stored in the second buffer 37c.

S42でCPU41a(データ処理部73)は活用プログラムテンプレート(処理設定61)により指定されたデータ活用プログラムを実行する。CPU41a(データ処理部73)はデータ活用プログラムを実行することで、収集されたデータ(デバイス値)に基づいて開始信号の条件を満たすタイミングから終了信号の条件を満たすタイミングまでの時間情報を決定する。CPU41a(データ処理部73)は、図18における開始条件185cに従い、監視対象として設定されたデバイスや変数が立ち上がりエッジ等の条件を満たすかを監視する。ここでは、条件を満たすタイミング、つまり開始信号の条件を満たすタイミングが監視される。CPU41a(データ処理部73)は、同様に、図18における終了条件185dに従い、監視対象として設定されたデバイスや変数が立ち上がりエッジ等の条件を満たすかを監視する。ここでは、条件を満たすタイミング、つまり終了信号の条件を満たすタイミングが監視される。CPU41a(データ処理部73)により決定される時間情報は、開始信号の条件を満たすタイミングから終了信号の条件を満たすタイミングまでの時間幅であってもよい。 In S42, the CPU 41a (data processing unit 73) executes the data utilization program specified by the utilization program template (processing setting 61). By executing the data utilization program, the CPU 41a (data processing unit 73) determines the time information from the timing when the start signal condition is satisfied to the timing when the end signal condition is satisfied based on the collected data (device value). .. The CPU 41a (data processing unit 73) monitors whether the device or variable set as the monitoring target satisfies the conditions such as the rising edge according to the start condition 185c in FIG. Here, the timing that satisfies the condition, that is, the timing that satisfies the condition of the start signal is monitored. Similarly, the CPU 41a (data processing unit 73) monitors whether the device or variable set as the monitoring target satisfies the conditions such as the rising edge in accordance with the end condition 185d in FIG. Here, the timing that satisfies the condition, that is, the timing that satisfies the condition of the end signal is monitored. The time information determined by the CPU 41a (data processing unit 73) may be the time width from the timing satisfying the condition of the start signal to the timing satisfying the condition of the end signal.

S43でCPU41a(データ処理部73)はS42で決定された時刻情報とアプリケーション設定データ(処理設定61)に従い設定された判定閾値に基づいて状態を判定する。CPU41a(データ処理部73)はデータ活用プログラムを実行することで、この判定を実行する。判定閾値として注意値や警報値の上限値および下限値が設定されている場合がある。この場合、CPU41a(データ処理部73)は、測定値である決定された時間情報が上限値を上回るか否かを判定する。また、CPU41a(データ処理部73)は、決定された時間情報が下限値を下回るか否かを判定する。アプリケーション設定データ(処理設定61)は、各上限値や各下限値を判定閾値として使用するか否かを示すフラグを含んでいてもよい。この場合、CPU41a(データ処理部73)は、アプリケーション設定データ(処理設定61)に含まれるフラグがチェックされている各上限値や各下限値と、測定値である決定された時間情報を比較することで、監視対象の状態を判定する。このフラグの値はチェックボックスなどのUIを通じてユーザにより設定されうる。監視対象の状態としては、正常、注意、警報が含まれてもよい。正常状態に対する測定値の乖離度に基づき注意状態と警報状態とが区別される。正常状態の測定値(正常値)と警報状態の測定値(警報値)との差は、正常状態の測定値と注意状態の測定値(注意値)との差よりも大きい。よって、警報値には、注意値よりも正常値から乖離した値が設定される。注意値と警報値とがそれぞれ上限値として設定される場合がある。この場合、CPU41a(データ処理部73)は、決定された時間情報が注意値以下であるときに、監視対象の状態を「正常」と判定する。CPU41a(データ処理部73)は、決定された時間情報が注意値を超え、かつ、警報値以下であるときに監視対象の状態を「注意」と判定する。CPU41a(データ処理部73)は、決定された時間情報が警報値を超えるときに、監視対象の状態を「警報」と判定する。これにより、解析されたデータが作成され、メモリに保存される。 In S43, the CPU 41a (data processing unit 73) determines the state based on the time information determined in S42 and the determination threshold set according to the application setting data (processing setting 61). The CPU 41a (data processing unit 73) executes this determination by executing the data utilization program. The upper and lower limits of the caution value and the alarm value may be set as the judgment threshold. In this case, the CPU 41a (data processing unit 73) determines whether or not the determined time information, which is the measured value, exceeds the upper limit value. Further, the CPU 41a (data processing unit 73) determines whether or not the determined time information is below the lower limit value. The application setting data (processing setting 61) may include a flag indicating whether or not each upper limit value or each lower limit value is used as a determination threshold value. In this case, the CPU 41a (data processing unit 73) compares each upper limit value and each lower limit value in which the flag included in the application setting data (processing setting 61) is checked with the determined time information which is a measured value. By doing so, the state of the monitoring target is determined. The value of this flag can be set by the user through a UI such as a checkbox. The status to be monitored may include normal, caution, and alarm. Attention state and alarm state are distinguished based on the degree of deviation of the measured value from the normal state. The difference between the measured value in the normal state (normal value) and the measured value in the alarm state (alarm value) is larger than the difference between the measured value in the normal state and the measured value in the caution state (caution value). Therefore, the alarm value is set to a value that deviates from the normal value rather than the caution value. A caution value and an alarm value may be set as upper limit values. In this case, the CPU 41a (data processing unit 73) determines that the state of the monitoring target is "normal" when the determined time information is equal to or less than the caution value. The CPU 41a (data processing unit 73) determines the state of the monitoring target as "caution" when the determined time information exceeds the caution value and is equal to or less than the alarm value. When the determined time information exceeds the alarm value, the CPU 41a (data processing unit 73) determines the state of the monitoring target as "alarm". As a result, the analyzed data is created and saved in the memory.

注意値と警報値とがそれぞれ下限値として設定される場合がある。この場合、CPU41a(データ処理部73)は、決定された時間情報が注意値以上であるときに、監視対象の状態を「正常」と判定する。CPU41a(データ処理部73)は、決定された時間情報が注意値未満となり、かつ、警報値以上であるときに監視対象の状態を「注意」と判定する。CPU41a(データ処理部73)は、決定された時間情報が警報値未満であるときに、監視対象の状態を「警報」と判定する。これにより、解析されたデータが作成され、メモリに保存される。 A caution value and an alarm value may be set as lower limit values, respectively. In this case, the CPU 41a (data processing unit 73) determines that the state of the monitoring target is "normal" when the determined time information is equal to or greater than the caution value. The CPU 41a (data processing unit 73) determines the state of the monitoring target as "caution" when the determined time information is less than the caution value and equal to or more than the alarm value. When the determined time information is less than the alarm value, the CPU 41a (data processing unit 73) determines the state of the monitoring target as "alarm". As a result, the analyzed data is created and saved in the memory.

注意値と警報値とがそれぞれ上限値および下限値により設定される場合がある。この場合、CPU41a(データ処理部73)は、決定された時間情報が下限注意値以上でありかつ、決定された時間情報が上限注意値以下であるときに、監視対象の状態を「正常」と判定する。CPU41a(データ処理部73)は、決定された時間情報が上限警報値未満となり、かつ、上限注意値以上であるときに監視対象の状態を「注意」と判定する。
同様に、CPU41a(データ処理部73)は、決定された時間情報が下限注意値未満となり、かつ、下限警報値以上であるときに監視対象の状態を「注意」と判定する。
CPU41a(データ処理部73)は、決定された時間情報が下限警報値未満であるか、または、決定された時間情報が上限警報値を超えているときに、監視対象の状態を「警報」と判定する。これにより、解析されたデータが作成され、メモリに保存される。
The caution value and the alarm value may be set by the upper limit value and the lower limit value, respectively. In this case, the CPU 41a (data processing unit 73) sets the state of the monitoring target as "normal" when the determined time information is equal to or greater than the lower limit caution value and the determined time information is equal to or less than the upper limit caution value. judge. The CPU 41a (data processing unit 73) determines the state of the monitoring target as "caution" when the determined time information is less than the upper limit alarm value and equal to or more than the upper limit caution value.
Similarly, the CPU 41a (data processing unit 73) determines the state of the monitoring target as "caution" when the determined time information is less than the lower limit caution value and equal to or more than the lower limit alarm value.
The CPU 41a (data processing unit 73) sets the status of the monitoring target as "alarm" when the determined time information is less than the lower limit alarm value or the determined time information exceeds the upper limit alarm value. judge. As a result, the analyzed data is created and saved in the memory.

CPU41a(データ処理部73)は、警報値や注意値に対し測定値がどの程度余裕があるかを示す余裕度を算出してもよい。余裕度は、たとえば、十分余裕のある状態であるときに100とし、注意状態であるときに50、警報状態であるときに0となるように、定義されてもよい。このように、注意値と測定値との距離(差分)に応じて段階的に値が変わるように余裕度が定義されてもよい。余裕度は、解析されたデータとして、メモリ42aに保存される。CPU41a(データ処理部73)は、測定値が警報値を超えた場合に、測定値が警報値を超えたことを示す信号を生成してもよい。たとえば、CPU41a(データ処理部73)は、測定値が警報値を超えた場合に、測定値が警報値を超えたことを示すデバイスまたは変数の値を変化させる。測定値が警報値を超えたことを示すデバイスまたは変数がトリガとして割り当てられてもよい。たとえば、これはロギングの保存トリガに割り当てられてもよい。これにより、警報が発生したタイミングを基準としてPLC1の運転記録等が保存される。 The CPU 41a (data processing unit 73) may calculate a margin degree indicating how much the measured value has a margin with respect to the alarm value and the caution value. The margin may be defined, for example, to be 100 when there is sufficient margin, 50 when in the caution state, and 0 when in the alarm state. In this way, the margin may be defined so that the value changes stepwise according to the distance (difference) between the caution value and the measured value. The margin is stored in the memory 42a as the analyzed data. When the measured value exceeds the alarm value, the CPU 41a (data processing unit 73) may generate a signal indicating that the measured value exceeds the alarm value. For example, when the measured value exceeds the alarm value, the CPU 41a (data processing unit 73) changes the value of the device or variable indicating that the measured value exceeds the alarm value. A device or variable indicating that the measured value has exceeded the alarm value may be assigned as a trigger. For example, it may be assigned to a logging save trigger. As a result, the operation record of the PLC1 and the like are saved with reference to the timing when the alarm is generated.

S44でCPU41a(生成部74)はS42で決定された時刻情報、判定閾値、S43で判定された監視対象の状態を含むダッシュボード171のソースデータを生成する。CPU41a(生成部74)はダッシュボードテンプレート(表示設定62)に基づいて決定した時間情報、判定閾値、判定した監視対象の状態をダッシュボードテンプレート(表示設定62)に割り当てられた変数に反映する。たとえば、CPU41a(生成部74)は、図17におけるグラフ表示欄174gに、開始信号の条件を満たすタイミングから終了信号の条件を満たすタイミングまでの時間幅を示す測定値が棒グラフの形式で表示されるように表示データを作成する。このときと開始信号の条件を満たすタイミングから終了信号の条件を満たすタイミングまでの時間が帯状に表示されてもよい。これにより、時間幅だけでなく、サイクル動作の制御において各監視対象がサイクル内のどのタイミングで動作しているかを示すダッシュボードが表示される。たとえば、グラフ表示欄174gの右端から左端が監視対象の一サイクルに相当してもよい。帯(棒グラフの棒)の開始位置は、一サイクルにおける開始信号の条件が満たされたタイミングに相当する。帯の終了位置は、一サイクルにおける終了信号の条件が満たされたタイミングに相当する。よって、帯の長さは時間幅を示す。 In S44, the CPU 41a (generation unit 74) generates source data of the dashboard 171 including the time information determined in S42, the determination threshold value, and the state of the monitoring target determined in S43. The CPU 41a (generation unit 74) reflects the time information determined based on the dashboard template (display setting 62), the determination threshold value, and the determined status of the monitoring target in the variables assigned to the dashboard template (display setting 62). For example, the CPU 41a (generation unit 74) displays in the graph display field 174g in FIG. 17 a measured value indicating the time width from the timing satisfying the condition of the start signal to the timing satisfying the condition of the end signal in the form of a bar graph. Create display data as shown. The time from this time and the timing when the condition of the start signal to the timing when the condition of the end signal is satisfied may be displayed in a band shape. As a result, not only the time width but also the dashboard showing at what timing in the cycle each monitored object is operating in the control of the cycle operation is displayed. For example, the right end to the left end of the graph display field 174 g may correspond to one cycle of the monitoring target. The start position of the band (bar in the bar graph) corresponds to the timing when the condition of the start signal in one cycle is satisfied. The end position of the band corresponds to the timing when the condition of the end signal in one cycle is satisfied. Therefore, the length of the band indicates the time width.

余裕度が測定値とともに表示されるようにしてもよい。CPU41a(生成部74)はダッシュボード171を表示するための表示データ(例:HTMLデータなど)をダッシュボードテンプレート(表示設定62)に割り当てられた変数に基づいて作成する。CPU41a(生成部74)はダッシュボード171のベースとなる画面データと測定値や状態情報などの更新されるデータとを別に管理するようにしてもよい。この場合、CPU41a(生成部74)は、参照先のデバイスや変数が割り当てられた画面データと、参照先のデバイスや変数の値である表示対象データとを個別に管理する。CPU41a(生成部74)は、表示対象データを定期的に更新することで表示データを作成してもよい。生成部74は、収集されたデータおよび/または解析されたデータなどの表示対象データを用いて表示データを作成する。 The margin may be displayed along with the measured value. The CPU 41a (generation unit 74) creates display data (eg, HTML data) for displaying the dashboard 171 based on the variables assigned to the dashboard template (display setting 62). The CPU 41a (generation unit 74) may separately manage the screen data that is the base of the dashboard 171 and the updated data such as the measured value and the state information. In this case, the CPU 41a (generation unit 74) individually manages the screen data to which the referenced device or variable is assigned and the display target data which is the value of the referenced device or variable. The CPU 41a (generation unit 74) may create display data by periodically updating the display target data. The generation unit 74 creates display data using display target data such as collected data and / or analyzed data.

S45でCPU41a(Webサーバ70)は表示データをPC2bに提供する。CPU41aは表示データをPLC1の表示器に表示してもよい。PLC1の表示器はPLC1に内蔵されていてもよいし、PLC1に対して有線たまは無線により接続されていてもよい。CPU41a(生成部74)が参照先のデバイスや変数が割り当てられた画面データと、参照先のデバイスや変数の値である表示対象データとを別々に管理する場合がある。この場合、CPU41a(Webサーバ70)は、ダッシュボード171の更新要求や更新スケジュールに応じて、表示データのうち画面データと、表示対象データとを選択的に提供する。ダッシュボード171の表示要求に応じてCPU41a(Webサーバ70)は画面データおよび表示対象データを含む表示データを提供する。ダッシュボード171の表示更新要求に応じてCPU41a(Webサーバ70)は更新された表示対象データを表示データとして選択的に提供する。 In S45, the CPU 41a (Web server 70) provides the display data to the PC 2b. The CPU 41a may display the display data on the display device of the PLC1. The display device of the PLC1 may be built in the PLC1 or may be connected to the PLC1 by wire or wirelessly. The CPU 41a (generation unit 74) may separately manage the screen data to which the referenced device or variable is assigned and the display target data which is the value of the referenced device or variable. In this case, the CPU 41a (Web server 70) selectively provides the screen data and the display target data among the display data according to the update request and the update schedule of the dashboard 171. In response to the display request of the dashboard 171, the CPU 41a (Web server 70) provides display data including screen data and display target data. The CPU 41a (Web server 70) selectively provides the updated display target data as display data in response to the display update request of the dashboard 171.

図20はPC2aのCPU11が実行するリアルタイム監視のダッシュボードを介した設定処理を示すフローチャートを示している。 FIG. 20 shows a flowchart showing a setting process via the dashboard of real-time monitoring executed by the CPU 11 of the PC 2a.

S51でCPU41a(生成部74)は設定用のダッシュボード181を表示する。たとえば、生成部74は、図18に示された設定用のダッシュボード181を表示するための表示データを作成し、CPU41a(Webサーバ70)は設定用のダッシュボード181を表示するための表示データをPC2bに提供する。 In S51, the CPU 41a (generation unit 74) displays the dashboard 181 for setting. For example, the generation unit 74 creates display data for displaying the dashboard 181 for setting shown in FIG. 18, and the CPU 41a (Web server 70) creates display data for displaying the dashboard 181 for setting. Is provided to PC2b.

S52でCPU41a(設定部71)は監視対象の追加・削除・変更および/または判定閾値の設定のユーザ入力を受け付ける。CPU41a(設定部71)は追加ボタン186aが押されたことを検出すると、新規の監視対象を設定するための入力行を追加する。CPU41a(生成部74)は新規の監視対象を設定するための入力行が追加された設定用のダッシュボード181を表示するために表示データを作成する。CPU41a(Webサーバ70)は更新された設定用のダッシュボード181を表示するための表示データをPC2bに提供する。CPU41a(設定部71)は削除ボタン186bが押されたことを検知すると、選択された入力行を削除する。CPU41a(生成部74)は、選択された入力行が削除された設定用のダッシュボード181を表示するために表示データを作成する。CPU41a(Webサーバ70)は更新された設定用のダッシュボード181を表示するための表示データをPC2bに提供する。この際、上下ボタン186cによる入力行への選択操作が表示されてもよい。CPU41a(設定部80)は各入力欄185a〜185dへの変更入力を受け付けると、CPU41a(生成部74)は各入力欄185a〜185dへの変更入力が反映された設定用のダッシュボード181を表示するために表示データを作成し、CPU41a(Webサーバ70)は更新された設定用のダッシュボード181を表示するための表示データをPC2bに提供する。CPU41a(設定部71)は判定閾値の各入力欄185e〜185fへの変更入力を受け付けると、CPU41a(生成部74)は判定閾値の各入力欄185e〜185fへの変更入力が反映された設定用のダッシュボード181を表示するために表示データを作成する。CPU41a(Webサーバ70)は更新された設定用のダッシュボード181を表示するための表示データをPC2bに提供する。 In S52, the CPU 41a (setting unit 71) accepts user input for adding / deleting / changing the monitoring target and / or setting the determination threshold value. When the CPU 41a (setting unit 71) detects that the add button 186a has been pressed, it adds an input line for setting a new monitoring target. The CPU 41a (generation unit 74) creates display data to display the dashboard 181 for setting to which an input line for setting a new monitoring target is added. The CPU 41a (Web server 70) provides the PC 2b with display data for displaying the updated dashboard 181 for setting. When the CPU 41a (setting unit 71) detects that the delete button 186b has been pressed, the CPU 41a (setting unit 71) deletes the selected input line. The CPU 41a (generation unit 74) creates display data to display the dashboard 181 for setting in which the selected input line has been deleted. The CPU 41a (Web server 70) provides the PC 2b with display data for displaying the updated dashboard 181 for setting. At this time, the selection operation to the input line by the up / down buttons 186c may be displayed. When the CPU 41a (setting unit 80) accepts the change input to each input field 185a to 185d, the CPU 41a (generation unit 74) displays the dashboard 181 for setting reflecting the change input to each input field 185a to 185d. The display data is created to be displayed, and the CPU 41a (Web server 70) provides the PC 2b with the display data for displaying the updated dashboard 181 for the setting. When the CPU 41a (setting unit 71) receives the change input to each input field 185e to 185f of the judgment threshold value, the CPU 41a (generation unit 74) is for setting reflecting the change input to each input field 185e to 185f of the judgment threshold value. Create display data to display the dashboard 181 of. The CPU 41a (Web server 70) provides the PC 2b with display data for displaying the updated dashboard 181 for setting.

S53でCPU41a(設定部71)はユーザ入力に従い、対応するアプリケーション設定データ(処理設定61)を更新する。CPU41a(設定部71)は設定反映ボタン187が押されたことを検出すると、更新された設定内容をアプリケーション設定データ(処理設定61)に反映する。一方、CPU41a(設定部71)はキャンセルボタン188が押されたことを検出すると、更新された設定内容をアプリケーション設定データ(処理設定61)に反映せず、更新された設定内容を破棄する。CPU41a(生成部74)は、更新された設定内容を反映することなく、アプリケーション設定データ(処理設定61)に基づくリアルタイム監視アプリケーション用のダッシュボード171を表示するために表示データを作成する。CPU41a(Webサーバ70)はリアルタイム監視アプリケーション用のダッシュボード171を表示するための表示データをPC2bに提供する。 In S53, the CPU 41a (setting unit 71) updates the corresponding application setting data (processing setting 61) according to the user input. When the CPU 41a (setting unit 71) detects that the setting reflection button 187 has been pressed, the CPU 41a (setting unit 71) reflects the updated setting contents in the application setting data (processing setting 61). On the other hand, when the CPU 41a (setting unit 71) detects that the cancel button 188 has been pressed, the updated setting contents are not reflected in the application setting data (processing setting 61), and the updated setting contents are discarded. The CPU 41a (generation unit 74) creates display data for displaying the dashboard 171 for the real-time monitoring application based on the application setting data (processing setting 61) without reflecting the updated setting contents. The CPU 41a (Web server 70) provides the PC 2b with display data for displaying the dashboard 171 for the real-time monitoring application.

S54でCPU41a(データ処理部73)はS53で更新されたアプリケーション設定データ(処理設定61)に従い、監視対象に関する決定した時間情報と設定された判定閾値とに基づいて監視対象の状態を判定する。CPU41a(データ処理部73)は更新されたアプリケーション設定データ(処理設定61)に従いS42と同様に決定された時間情報と、更新されたアプリケーション設定データ(処理設定61)に従い設定された判定閾値と、に基づいて監視対象の状態をS43と同様に判定する。 In S54, the CPU 41a (data processing unit 73) determines the state of the monitoring target based on the time information determined for the monitoring target and the set determination threshold value according to the application setting data (processing setting 61) updated in S53. The CPU 41a (data processing unit 73) has time information determined in the same manner as S42 according to the updated application setting data (processing setting 61), a determination threshold value set according to the updated application setting data (processing setting 61), and the determination threshold value. The state of the monitoring target is determined in the same manner as in S43 based on.

S55でCPU41a(生成部74)は更新されたアプリケーション設定データ(処理設定61)に従い決定された時刻情報と、更新されたアプリケーション設定データ(処理設定61)に従い設定された判定閾値と、S54で判定された監視対象の状態とを、図18に示された状態監視用のダッシュボードに表示するための表示データを作成する。CPU41a(Webサーバ70)は状態監視用のダッシュボード171を表示するための表示データをPC2bに提供する。 In S55, the CPU 41a (generation unit 74) determines the time information determined according to the updated application setting data (processing setting 61), the determination threshold value set according to the updated application setting data (processing setting 61), and the determination in S54. Display data for displaying the monitored status of the monitoring target on the status monitoring dashboard shown in FIG. 18 is created. The CPU 41a (Web server 70) provides the PC 2b with display data for displaying the dashboard 171 for status monitoring.

図21は拡張ユニット4aのCPU41aにより実行される監視対象の動的変更処理を示すフローチャートである。図21においてS61でCPU41a(設定部71)は監視対象の追加・削除・変更を含む設定変更のユーザ入力を受け付ける。CPU41a(設定部71)は追加ボタン186aが押されたことを検出すると、新規の監視対象を設定するための入力行を追加する。CPU41a(生成部74)は新規の監視対象を設定するための入力行が追加された設定用のダッシュボード181を表示するために表示データを作成する。CPU41a(Webサーバ70)は更新された設定用のダッシュボード181を表示するための表示データをPC2bに提供する。CPU41a(設定部71)は削除ボタン186bが押されたことを検知すると選択された入力行を削除する。CPU41a(生成部74)は選択された入力行が削除された設定用のダッシュボード181を表示するために表示データを作成する。CPU41a(Webサーバ70)は更新された設定用のダッシュボード181を表示するための表示データをPC2bに提供する。 FIG. 21 is a flowchart showing a dynamic change process of the monitoring target executed by the CPU 41a of the expansion unit 4a. In FIG. 21, in S61, the CPU 41a (setting unit 71) accepts user input for setting changes including addition / deletion / change of monitoring targets. When the CPU 41a (setting unit 71) detects that the add button 186a has been pressed, it adds an input line for setting a new monitoring target. The CPU 41a (generation unit 74) creates display data to display the dashboard 181 for setting to which an input line for setting a new monitoring target is added. The CPU 41a (Web server 70) provides the PC 2b with display data for displaying the updated dashboard 181 for setting. When the CPU 41a (setting unit 71) detects that the delete button 186b has been pressed, the CPU 41a (setting unit 71) deletes the selected input line. The CPU 41a (generation unit 74) creates display data to display the dashboard 181 for setting in which the selected input line has been deleted. The CPU 41a (Web server 70) provides the PC 2b with display data for displaying the updated dashboard 181 for setting.

S62でCPU41a(設定部71)は受け付けた設定変更に基づいて、CPU41a(収集部52c)に対して収集対象の変更を要求する。S63でCPU41a(収集部52c)は、S62の要求に基づき収集対象を更新するタイミングを決定する。CPU31a(収集部52a)がCPU41a(収集部52c)を介したS62の要求に基づき収集対象を更新するタイミングを決定してもよい。収集対象を更新するタイミンは、たとえば、収集対象の変更要求を受け付けた直後のスキャン開始時、または、収集対象の変更要求を受け付けた直後のサイクル制御開始時であってもよい。また、「受け付けた直後」は、収集対象の変更要求が受け付けられてから実際に収集対象の変更が実行されるまでの所定の期間が考慮されて、決定されてもよい。 In S62, the CPU 41a (setting unit 71) requests the CPU 41a (collecting unit 52c) to change the collection target based on the set change received. In S63, the CPU 41a (collection unit 52c) determines the timing for updating the collection target based on the request in S62. The timing at which the CPU 31a (collection unit 52a) updates the collection target may be determined based on the request of S62 via the CPU 41a (collection unit 52c). The timing for updating the collection target may be, for example, at the start of scanning immediately after receiving the change request of the collection target, or at the start of cycle control immediately after receiving the change request of the collection target. Further, "immediately after acceptance" may be determined in consideration of a predetermined period from the receipt of the collection target change request to the actual execution of the collection target change.

S64でCPU41a(収集部52c)はS63で決定された収集対象の更新タイミングに基づき収集対象の更新を実行する。CPU41a(収集部52c)は更新された収集対象からの収集データを、識別情報と紐づけて収集する。識別情報は、収集データが更新されたことを識別するための情報であり、更新識別情報と呼ばれてもよい。CPU41a(収集部52c)はさらに監視対象である収集データに関する、収集データが収集された際の時間情報を、収集データおよび識別情報と紐づけて収集する。この時間情報は収集時間情報と呼ばれてもよい。CPU31a(収集部52a)が、更新された収集対象からの収集データを、更新識別情報と紐づけて収集してもよい。CPU31a(収集部52a)はさらに監視対象である収集データに関する収集時間情報を、収集データおよび識別情報と紐づけて収集してもよい。なお、収集対象の更新は、収集動作を止めることなく、収集動作と並行して実行されてもよい。 In S64, the CPU 41a (collection unit 52c) updates the collection target based on the update timing of the collection target determined in S63. The CPU 41a (collection unit 52c) collects the updated data collected from the collection target in association with the identification information. The identification information is information for identifying that the collected data has been updated, and may be referred to as update identification information. The CPU 41a (collection unit 52c) further collects the time information when the collected data is collected with respect to the collected data to be monitored, in association with the collected data and the identification information. This time information may be referred to as collection time information. The CPU 31a (collection unit 52a) may collect the collected data from the updated collection target in association with the update identification information. The CPU 31a (collection unit 52a) may further collect the collection time information regarding the collected data to be monitored in association with the collected data and the identification information. The update of the collection target may be executed in parallel with the collection operation without stopping the collection operation.

S65でCPU41a(データ処理部73)は識別情報に基づいて収集データが更新されたかどうかを判別する。CPU41a(データ処理部73)は収集データの更新についての判別結果が未更新であった場合、S66に進む。S66でCPU41a(データ処理部73)は監視対象に関する収集時間情報と設定変更前の判定閾値とに基づいて監視対象の状態を判定する。CPU41a(データ処理部73)は図19のS42と同様に監視対象である収集データに基づいて開始信号の条件を満たすタイミングから終了信号の条件を満たすタイミングまでの時間情報を決定し、S43と同様に決定した時間情報と設定変更前の判定閾値とに基づいて監視対象の状態を判定する。S67でCPU41a(生成部74)は決定された時間情報である測定値と、判定閾値と、判定された監視対象の状態とを図18に示す状態監視用のダッシュボードに表示するための表示データを作成する。CPU41a(Webサーバ70)は状態監視用のダッシュボード171を表示するための表示データをPC2bに提供する。CPU41a(生成部74)はダッシュボード171のベースとなる画面データと測定値や状態情報などの更新されるデータとを個別に管理してもよい。この場合、CPU41a(生成部74)は、S67でCPU41a(生成部74)は決定された時間情報である測定値と、判定閾値と、判定した監視対象の状態を含む表示データを生成する。更新要求に応じてCPU41a(Webサーバ70)は測定値と、判定閾値と、判定した監視対象の状態を含む状態監視用のダッシュボード171を表示するための表示データをPC2bに提供する。CPU41a(Webサーバ70)は表示データとして更新のあった表示対象データを選択的にPC2bに提供する。S65に再び戻り、CPU41a(データ処理部73)は識別情報に基づいて収集データの更新を判別する。 In S65, the CPU 41a (data processing unit 73) determines whether or not the collected data has been updated based on the identification information. If the determination result regarding the update of the collected data is not updated, the CPU 41a (data processing unit 73) proceeds to S66. In S66, the CPU 41a (data processing unit 73) determines the state of the monitoring target based on the collection time information regarding the monitoring target and the determination threshold value before the setting change. Similar to S42 in FIG. 19, the CPU 41a (data processing unit 73) determines the time information from the timing when the start signal condition is satisfied to the timing when the end signal condition is satisfied based on the collected data to be monitored, and is the same as S43. The state of the monitoring target is determined based on the time information determined in 1 and the determination threshold value before the setting change. In S67, the CPU 41a (generation unit 74) displays the measured value, which is the determined time information, the determination threshold value, and the determined status of the monitoring target on the dashboard for status monitoring shown in FIG. To create. The CPU 41a (Web server 70) provides the PC 2b with display data for displaying the dashboard 171 for status monitoring. The CPU 41a (generation unit 74) may individually manage the screen data that is the base of the dashboard 171 and the updated data such as the measured value and the state information. In this case, the CPU 41a (generation unit 74) generates display data including the measured value which is the time information determined in S67, the determination threshold value, and the determined state of the monitoring target. In response to the update request, the CPU 41a (Web server 70) provides the PC 2b with display data for displaying the dashboard 171 for status monitoring including the measured value, the determination threshold value, and the determined status of the monitoring target. The CPU 41a (Web server 70) selectively provides the updated display target data as display data to the PC 2b. Returning to S65 again, the CPU 41a (data processing unit 73) determines the update of the collected data based on the identification information.

CPU41a(データ処理部73)は収集データの更新についての判別結果が更新であった場合、S68に進む。S68でCPU41a(データ処理部73)は監視対象に関する収集時間情報と設定変更後の判定閾値とに基づいて監視対象の状態を決定する。CPU41a(データ処理部73)は図19のS42と同様に監視対象である収集データに基づいて開始信号の条件を満たすタイミングから終了信号の条件を満たすタイミングまでの時間情報を決定し、S43と同様に決定された時間情報である測定値と設定変更後の判定閾値に基づいて監視対象の状態を判定する。S69でCPU41a(生成部74)は決定された時間情報である測定値と、判定閾値と、判定された監視対象の状態とを図18に示す状態監視用のダッシュボードに表示するための表示データを作成する。CPU41a(Webサーバ70)は状態監視用のダッシュボード171を表示するための表示データをPC2bに提供する。CPU41a(生成部74)は画面データと表示対象データとを個別に管理してもよい。この場合、CPU41a(生成部74)は、S67でCPU41a(生成部74)は決定された時間情報である測定値と、判定閾値と、判定された監視対象の状態を含む表示データを生成する。更新要求に応じてCPU41a(Webサーバ70)は測定値と、判定閾値と、判定した監視対象の状態を含む状態監視用のダッシュボード171を表示するための表示データをPC2bに提供する。CPU41a(Webサーバ70)は表示データとして更新のあった表示対象データを選択的にPC2bに提供する。 When the determination result regarding the update of the collected data is the update, the CPU 41a (data processing unit 73) proceeds to S68. In S68, the CPU 41a (data processing unit 73) determines the state of the monitoring target based on the collection time information regarding the monitoring target and the determination threshold value after the setting change. Similar to S42 in FIG. 19, the CPU 41a (data processing unit 73) determines the time information from the timing when the start signal condition is satisfied to the timing when the end signal condition is satisfied based on the collected data to be monitored, and is the same as S43. The state of the monitoring target is determined based on the measured value which is the time information determined in 1 and the determination threshold value after the setting change. In S69, the CPU 41a (generation unit 74) displays the measured value, which is the determined time information, the determination threshold value, and the determined status of the monitoring target on the dashboard for status monitoring shown in FIG. To create. The CPU 41a (Web server 70) provides the PC 2b with display data for displaying the dashboard 171 for status monitoring. The CPU 41a (generation unit 74) may manage the screen data and the display target data individually. In this case, the CPU 41a (generation unit 74) generates display data including the measured value which is the time information determined in S67, the determination threshold value, and the determined state of the monitoring target. In response to the update request, the CPU 41a (Web server 70) provides the PC 2b with display data for displaying the dashboard 171 for status monitoring including the measured value, the determination threshold value, and the determined status of the monitoring target. The CPU 41a (Web server 70) selectively provides the updated display target data as display data to the PC 2b.

図22は第二バッファ37b(第三バッファ37cであってもよい)における監視対象の動的変更時の収集データおよびデバイス部34aにおけるデバイス値を示す図である。CPU41a(設定部71)は受け付けられた設定変更に基づいて、収集部52cに対して収集対象の変更を要求する。収集部52cは、この要求に基づき収集対象を更新するタイミングを決定する。収集部52cは、図22においてスキャン番号100からスキャン番号101までの期間において収集対象を更新する。アプリケーション設定データ(処理設定61)には監視対象が指定されている。設定変更前の監視対象はMR001とMR002である。設定変更後の監視対象はMR001と、MR003と、MR004である。アプリケーション設定データ(処理設定61)に基づいてアプリケーション設定データ(収集設定39)の収集対象が定義される。設定変更前において、収集対象1はMR001であり、収集対象2はMR002であり、収集対象3は未設定である。設定変更後において、収集対象1はMR001のままであり、収集対象2はMR002からMR003に変更され、収集対象3には新たにMR004が追加されている。CPU41a(収集部52c)は、データレコード91毎に、第二バッファ37bに、スキャン番号、タイマー値、識別フラグ、および、各収集対象に対応する収集データを紐づけて記録する。CPU41a(収集部52c)は、決定された更新タイミングに基づいて収集データを収集するとともに更新タイミングに応じた識別情報を識別フラグとして付与する。収集フラグは、たとえば、更新毎にカウントされるリングカウンタのカウント値が適用されてもよい。 FIG. 22 is a diagram showing the collected data at the time of dynamic change of the monitoring target in the second buffer 37b (which may be the third buffer 37c) and the device value in the device unit 34a. The CPU 41a (setting unit 71) requests the collecting unit 52c to change the collection target based on the received setting change. The collection unit 52c determines the timing for updating the collection target based on this request. The collection unit 52c updates the collection target during the period from scan number 100 to scan number 101 in FIG. 22. A monitoring target is specified in the application setting data (processing setting 61). The monitoring targets before the setting change are MR001 and MR002. The monitoring targets after the setting change are MR001, MR003, and MR004. The collection target of the application setting data (collection setting 39) is defined based on the application setting data (processing setting 61). Before the setting change, the collection target 1 is MR001, the collection target 2 is MR002, and the collection target 3 is not set. After the setting is changed, the collection target 1 remains MR001, the collection target 2 is changed from MR002 to MR003, and MR004 is newly added to the collection target 3. The CPU 41a (collection unit 52c) records the scan number, the timer value, the identification flag, and the collection data corresponding to each collection target in the second buffer 37b in association with each data record 91. The CPU 41a (collection unit 52c) collects the collected data based on the determined update timing, and adds the identification information according to the update timing as the identification flag. For the collection flag, for example, the count value of the ring counter that is counted for each update may be applied.

CPU41a(データ処理部73)は識別フラグに基づいて第二バッファ37bに記録された収集データが、更新前のアプリケーション設定データ(処理設定61)に基づいて収集されたものなのか、更新後のアプリケーション設定データ(処理設定61)に基づいて収集されたものなのかを判別する。監視対象である収集データには、収集対象が更新されたときに識別フラグがセットされる。したがって、データ処理部73は、識別フラグに基づいて更新前の収集データと更新後の収集データとを区別することができる。データ処理部73は、識別フラグに基づいて監視対象である収集データに対して適用されるアプリケーション設定データ(処理設定61)を動的に変更する。これにより、PLC1は収集動作を止めることなく、収集対象の更新を動的に実行することができる。 The CPU 41a (data processing unit 73) determines whether the collected data recorded in the second buffer 37b based on the identification flag is collected based on the application setting data (processing setting 61) before the update, or the application after the update. It is determined whether the data is collected based on the setting data (processing setting 61). The identification flag is set for the collected data to be monitored when the collection target is updated. Therefore, the data processing unit 73 can distinguish between the collected data before the update and the collected data after the update based on the identification flag. The data processing unit 73 dynamically changes the application setting data (processing setting 61) applied to the collected data to be monitored based on the identification flag. As a result, the PLC1 can dynamically update the collection target without stopping the collection operation.

<まとめ>
[観点1]
図5が示すように、CPU31や実行エンジン51aは第一ユーザプログラムを繰り返し実行する第一実行エンジンの一例である。デバイス部34aは第一ユーザプログラムにしたがって第一実行エンジンによりアクセスされるデータを記憶するまたは変数である複数の保持手段の一例である。CPU41aは、第一ユーザプログラムのスキャン周期とは非同期で第二ユーザプログラムを実行する第二実行エンジンの一例である。拡張バス90は、第一実行エンジンと第二実行エンジンとを接続するバスの一例である。
<Summary>
[Viewpoint 1]
As shown in FIG. 5, the CPU 31 and the execution engine 51a are examples of the first execution engine that repeatedly executes the first user program. The device unit 34a is an example of a plurality of holding means for storing or variable data accessed by the first execution engine according to the first user program. The CPU 41a is an example of a second execution engine that executes the second user program asynchronously with the scan cycle of the first user program. The expansion bus 90 is an example of a bus connecting the first execution engine and the second execution engine.

収集部52aは、第一ユーザプログラムのスキャン周期ごとに所定の収集設定にしたがって複数の保持手段のうち収集対象の保持手段に記憶されているデータを収集する収集手段として機能する。第一バッファ37aは収集手段によりスキャン周期ごとに収集された時系列のデータを蓄積する第一バッファの一例である。転送部53aは第一バッファに記憶された時系列のデータを、拡張バスを介して第二実行エンジンに転送する転送手段の一例である。 The collection unit 52a functions as a collection means for collecting data stored in the collection target holding means among the plurality of holding means according to a predetermined collection setting for each scan cycle of the first user program. The first buffer 37a is an example of a first buffer that stores time-series data collected for each scan cycle by the collecting means. The transfer unit 53a is an example of a transfer means for transferring the time-series data stored in the first buffer to the second execution engine via the expansion bus.

データ処理部73は、転送手段により転送されてきた時系列のデータを所定の処理設定にしたがってデータ処理する処理手段の一例である。生成部74は、データ処理の処理結果をダッシュボードに表示するための表示データを生成する生成手段の一例である。Webサーバ70は表示データを外部のコンピュータ(例:PC2b)に提供する提供手段として機能する。このように、第一バッファ37aを設けることにより、PLC1において効率よく監視対象のデータを収集および転送することが可能となる。 The data processing unit 73 is an example of processing means for processing time-series data transferred by the transfer means according to a predetermined processing setting. The generation unit 74 is an example of a generation means for generating display data for displaying the processing result of data processing on the dashboard. The Web server 70 functions as a providing means for providing display data to an external computer (eg, PC2b). By providing the first buffer 37a in this way, it becomes possible to efficiently collect and transfer the data to be monitored in the PLC1.

[観点2]
監視部54aは、拡張バス90のトラフィックを監視する監視手段の一例である。転送部53aは、拡張バス90のトラフィックが相対的に少ないタイミングにおいてデータを第二実行エンジンへ転送し、拡張バス90のトラフィックが相対的に多いタイミングにおいて時系列のデータを第二実行エンジンへ転送することを抑制してもよい。これにより、拡張バス90を通じた入出力リフレッシュ、UREAD命令またはUWRIT命令の実行が邪魔されないようになり、スキャン周期の伸びが抑制されよう。
[Viewpoint 2]
The monitoring unit 54a is an example of a monitoring means for monitoring the traffic of the expansion bus 90. The transfer unit 53a transfers the data to the second execution engine at the timing when the traffic of the expansion bus 90 is relatively low, and transfers the time series data to the second execution engine at the timing when the traffic of the expansion bus 90 is relatively heavy. You may suppress doing. This will not interfere with the execution of I / O refresh, UREAD or UWRIT instructions through the expansion bus 90, and will suppress the extension of the scan cycle.

なお、監視部54aは、拡張バス90において転送されようとしている情報の優先度を監視する監視手段として機能してもよい。この場合、転送部53aは、時系列のデータの優先度よりも高い優先度の情報がないタイミングにおいて時系列のデータを第二実行エンジンへ転送する。転送部53aは、時系列のデータの優先度よりも高い優先度の情報があるタイミングにおいて時系列のデータを第二実行エンジンへ転送することを抑制する。なお、リフレッシュにより転送される情報や命令語によるバス通信要求は、高優先度を割り当てられている。それに対して、時系列データには低優先度が割り当てられている。 The monitoring unit 54a may function as a monitoring means for monitoring the priority of the information to be transferred on the expansion bus 90. In this case, the transfer unit 53a transfers the time-series data to the second execution engine at a timing when there is no information having a priority higher than the priority of the time-series data. The transfer unit 53a suppresses the transfer of the time-series data to the second execution engine at a timing when there is information having a priority higher than the priority of the time-series data. It should be noted that the information transferred by refreshing and the bus communication request by the command word are assigned high priority. On the other hand, time series data is assigned a low priority.

[観点3]
転送部53aは、第一実行エンジンが拡張バス90を利用して入出力リフレッシュを実行している期間を回避して時系列のデータの転送を実行してもよい。これにより、拡張バス90を通じた入出力リフレッシュが邪魔されないようになり、スキャン周期の伸びが抑制されよう。
[Viewpoint 3]
The transfer unit 53a may execute the time-series data transfer while avoiding the period during which the first execution engine uses the expansion bus 90 to execute the input / output refresh. As a result, the input / output refresh through the expansion bus 90 will not be disturbed, and the extension of the scan cycle will be suppressed.

[観点4]
圧縮エンジン55aは、第一バッファ37aに記憶された時系列のデータをデータ圧縮する圧縮手段の一例である。この圧縮処理は、第一実行エンジンが第一ユーザプログラムを実行するのと並行して、実行されてもよい。転送部53aは、圧縮手段により圧縮された時系列のデータを第二実行エンジンへ転送してもよい。これにより、効率よくデータ転送が実行されるようになろう。とりわけ、拡張バス90において、入出力リフレッシュやUREAD命令などの他の転送処理と、データ活用のための転送処理とが衝突する確率が低下しよう。
[Viewpoint 4]
The compression engine 55a is an example of a compression means for compressing time-series data stored in the first buffer 37a. This compression process may be executed in parallel with the first execution engine executing the first user program. The transfer unit 53a may transfer the time-series data compressed by the compression means to the second execution engine. As a result, data transfer will be performed efficiently. In particular, in the expansion bus 90, the probability of collision between other transfer processing such as input / output refresh and UREAD instruction and transfer processing for data utilization will decrease.

[観点5]
第一バッファ37aに記憶された時系列のデータは、それぞれ異なるスキャン周期ごとに取得された複数のデータレコードを有していてもよい。図11が示すように、圧縮エンジン55aは、複数のデータレコードのうち相前後する二つのデータレコードが一致する場合、当該二つのデータレコードのうちの一方を破棄することで、複数のデータレコードのうちデータの変化点となるデータレコードを残してもよい。時間的に連続した3以上のデータレコードが相互に共通している場合、3以上のデータレコードのうちの一つのデータレコードだけが転送対象として維持される。
[Viewpoint 5]
The time-series data stored in the first buffer 37a may have a plurality of data records acquired for each different scan cycle. As shown in FIG. 11, the compression engine 55a discards one of the two data records when the two data records that are in phase with each other of the plurality of data records match. Of these, a data record that is a change point of data may be left. When three or more data records that are consecutive in time are common to each other, only one data record of the three or more data records is maintained as a transfer target.

[観点6]
第二バッファ37bは、転送手段により転送されてきた時系列のデータを記憶する第二バッファの一例である。第二実行エンジンであるCPU41aは、第二バッファ37bに記憶されている時系列のデータを参照するように構成されている。このように第二バッファ37bを用意することで、第二バッファ37bへのデータの格納と、データ処理部73におけるデータ処理とを非同期に実行することが可能となる。
[Viewpoint 6]
The second buffer 37b is an example of a second buffer that stores time-series data transferred by the transfer means. The CPU 41a, which is the second execution engine, is configured to refer to the time-series data stored in the second buffer 37b. By preparing the second buffer 37b in this way, it is possible to asynchronously execute the storage of the data in the second buffer 37b and the data processing in the data processing unit 73.

[観点7]
転送部53a、53bは、拡張ユニット4bの保持手段(例:デバイス部34b)からデータを取得して第二実行エンジンへ転送するように構成されていてもよい。第三バッファ37cは、拡張ユニット4bの保持手段から取得されたデータを蓄積する第三バッファの一例である。第二実行エンジンは、第三バッファ37cからデータを読み出してデータ処理を実行するように構成されていてもよい。これにより、第三バッファ37cへのデータの格納と、データ処理部73におけるデータ処理とを非同期に実行することが可能となる。なお、転送部53bは転送部53aを経由してデータを第三バッファ37cへ書き込んでもよい。転送部53aがマスターとして機能し、転送部53bがスレーブとして機能する場合、このような転送処理が実現されてもよい。
[Viewpoint 7]
The transfer units 53a and 53b may be configured to acquire data from the holding means (eg, device unit 34b) of the expansion unit 4b and transfer the data to the second execution engine. The third buffer 37c is an example of a third buffer that stores data acquired from the holding means of the expansion unit 4b. The second execution engine may be configured to read data from the third buffer 37c and execute data processing. As a result, the storage of data in the third buffer 37c and the data processing in the data processing unit 73 can be executed asynchronously. The transfer unit 53b may write data to the third buffer 37c via the transfer unit 53a. When the transfer unit 53a functions as a master and the transfer unit 53b functions as a slave, such a transfer process may be realized.

[観点8]
拡張ユニット4bの第四バッファ37dは、拡張ユニット4bの保持手段から、スキャン周期と異なる所定の制御周期にしたがって取得されたデータを記憶する第四バッファとして機能する。転送部53a、53bは、第四バッファ37dから拡張ユニット4bの保持手段のデータを取得するように構成されていてもよい。これにより、拡張ユニット4bにおいても実行エンジン51bの動作とデータの転送処理とを非同期に実行することが可能となる。
[Viewpoint 8]
The fourth buffer 37d of the expansion unit 4b functions as a fourth buffer for storing data acquired from the holding means of the expansion unit 4b according to a predetermined control cycle different from the scan cycle. The transfer units 53a and 53b may be configured to acquire the data of the holding means of the expansion unit 4b from the fourth buffer 37d. As a result, even in the expansion unit 4b, the operation of the execution engine 51b and the data transfer process can be executed asynchronously.

[観点9]
図11に関して説明されたように、時系列のデータには、それぞれ異なるタイミングで取得された第一データレコードと第二データレコードとが含まれていてもよい。第二実行エンジン(例:CPU41a)は、第一データレコードに含まれている注目ビットが変化したタイミングと、第二データレコードに含まれている注目ビットが変化したタイミングとの間の時間間隔を演算してもよい。
[Viewpoint 9]
As described with respect to FIG. 11, the time-series data may include a first data record and a second data record acquired at different timings. The second execution engine (eg, CPU 41a) sets the time interval between the timing when the attention bit contained in the first data record changes and the timing when the attention bit contained in the second data record changes. You may calculate.

[観点10]
図12が示すように、時系列のデータには、それぞれ異なるタイミングで取得された第一波形データと第二波形データとが含まれていてもよい。図12が示すように、第二実行エンジン(例:CPU41a)は、第一波形データの位相と第二波形データとの位相を基準位相に整合させてもよい。生成部74は、基準位相に整合された第一波形データと第二波形データとをダッシュボードに表示する表示データを生成してもよい。これによるユーザは視覚的に波形や応答特性の違いを観察できるようになろう。
[Viewpoint 10]
As shown in FIG. 12, the time series data may include the first waveform data and the second waveform data acquired at different timings. As shown in FIG. 12, the second execution engine (eg, CPU 41a) may match the phase of the first waveform data and the phase of the second waveform data with the reference phase. The generation unit 74 may generate display data for displaying the first waveform data and the second waveform data matched to the reference phase on the dashboard. This will allow the user to visually observe differences in waveforms and response characteristics.

[観点11]
データ処理部73は、第一のデータ活用アプリケーションと第二のデータ活用アプリケーションとを実行するように構成されていてもよい。収集部52cは、第二バッファ37bに格納された時系列のデータのうち第一のデータ活用アプリケーションのためのデータを第一サブバッファ38aに分配し、第二バッファ37bに格納された時系列のデータのうち第二のデータ活用アプリケーションのためのデータを第二サブバッファ38bに分配する分配手段として機能してもよい。第一のデータ活用アプリケーションのためのデータの読み出しタイミングと、第二のデータ活用アプリケーションのためのデータの読み出しタイミングとが異なることがある。このような場合には、アプリケーションごとにサブバッファを用意することで、複数のアプリケーションが自己に適したタイミングでデータを取得できるようになり、各アプリケーションの動作効率が向上しよう。
[Viewpoint 11]
The data processing unit 73 may be configured to execute the first data utilization application and the second data utilization application. The collection unit 52c distributes the data for the first data utilization application among the time-series data stored in the second buffer 37b to the first sub-buffer 38a, and the time-series data stored in the second buffer 37b. Of the data, the data for the second data utilization application may function as a distribution means for distributing the data to the second subbuffer 38b. The data read timing for the first data utilization application may differ from the data read timing for the second data utilization application. In such a case, by preparing a subbuffer for each application, multiple applications will be able to acquire data at the timing that suits them, and the operating efficiency of each application will be improved.

[観点12、13]
転送部53aは、時系列のデータを小分けして転送するように構成されていてもよい。時系列のデータは一般に大容量のデータとなりやすい。大容量の時系列データを転送している間に、他の高優先度の情報の転送要求が発生すると、他の高優先度の情報の転送要求がまたされてしまう。そこで、時系列データを小分けすることで、他の高優先度の情報の転送要求が、小分けされた時系列データの転送の合間に、実行可能となる。よって、他の高優先度の情報の転送要求の待ち時間が削減されよう。
[Viewpoints 12 and 13]
The transfer unit 53a may be configured to divide and transfer time-series data. Time-series data generally tends to be a large amount of data. If a transfer request for other high-priority information occurs while a large amount of time-series data is being transferred, another high-priority information transfer request is made again. Therefore, by subdividing the time-series data, other high-priority information transfer requests can be executed between the transfers of the subdivided time-series data. Therefore, the waiting time for the transfer request of other high-priority information will be reduced.

転送部53aは、第一実行エンジンが第一ユーザプログラムを実行しているのと並行して時系列のデータを転送するように構成されていてもよい。これにより、さらに効率よく、時系列のデータが転送されるようになろう。 The transfer unit 53a may be configured to transfer time-series data in parallel with the execution of the first user program by the first execution engine. This will allow time-series data to be transferred more efficiently.

発明は上記の実施形態に制限されるものではなく、発明の要旨の範囲内で、種々の変形・変更が可能である。 The invention is not limited to the above-described embodiment, and various modifications and changes can be made within the scope of the gist of the invention.

Claims (14)

第一ユーザプログラムを繰り返し実行する第一実行エンジンと、
前記第一ユーザプログラムにしたがって前記第一実行エンジンによりアクセスされるデータを記憶するデバイスまたは変数である複数の保持手段と、
前記第一ユーザプログラムのスキャン周期とは非同期で第二ユーザプログラムを実行する第二実行エンジンと、
前記第一実行エンジンと前記第二実行エンジンとを接続するバスと、を有するプログラマブルロジックコントローラであって、
前記第一ユーザプログラムのスキャン周期ごとに所定の収集設定にしたがって前記複数の保持手段のうち収集対象の保持手段に記憶されているデータを収集する収集手段と、
前記収集手段により前記スキャン周期ごとに収集された時系列のデータを蓄積する第一バッファと、
前記第一バッファに記憶された前記時系列のデータを、前記バスを介して前記第二実行エンジンに転送する転送手段と、
を有し、
前記第二実行エンジンは、
前記転送手段により転送されてきた前記時系列のデータを所定の処理設定にしたがってデータ処理する処理手段と、
前記データ処理の処理結果をダッシュボードに表示するための表示データを生成する生成手段と、
前記表示データを外部のコンピュータに提供する提供手段と
を有することを特徴とするプログラマブルロジックコントローラ。
The first execution engine that repeatedly executes the first user program,
A plurality of holding means that are devices or variables that store data accessed by the first execution engine according to the first user program.
A second execution engine that executes the second user program asynchronously with the scan cycle of the first user program,
A programmable logic controller having a bus connecting the first execution engine and the second execution engine.
A collection means for collecting data stored in the holding means to be collected among the plurality of holding means according to a predetermined collection setting for each scan cycle of the first user program.
A first buffer that stores time-series data collected for each scan cycle by the collection means,
A transfer means for transferring the time-series data stored in the first buffer to the second execution engine via the bus, and
Have,
The second execution engine
A processing means for processing the time-series data transferred by the transfer means according to a predetermined processing setting, and
A generation means for generating display data for displaying the processing result of the data processing on the dashboard, and
A programmable logic controller comprising a providing means for providing the display data to an external computer.
前記バスにおいて転送されようとしている情報の優先度を監視する監視手段をさらに有し、
前記転送手段は、前記時系列のデータの優先度よりも高い優先度の情報がないタイミングにおいて前記時系列のデータを前記第二実行エンジンへ転送し、前記時系列のデータの優先度よりも高い優先度の情報があるタイミングにおいて前記時系列のデータを前記第二実行エンジンへ転送することを抑制することを特徴とする請求項1に記載のプログラマブルロジックコントローラ。
Further having a monitoring means for monitoring the priority of the information to be transferred on the bus,
The transfer means transfers the time-series data to the second execution engine at a timing when there is no information having a priority higher than the priority of the time-series data, and is higher than the priority of the time-series data. The programmable logic controller according to claim 1, wherein the transfer of the time-series data to the second execution engine is suppressed at a certain timing of priority information.
前記転送手段は、前記第一実行エンジンが前記バスを利用して入出力リフレッシュを実行している期間を回避して前記時系列のデータの転送を実行することを特徴とする請求項2に記載のプログラマブルロジックコントローラ。 2. The transfer means according to claim 2, wherein the transfer means executes the transfer of the time-series data while avoiding the period during which the first execution engine uses the bus to execute the input / output refresh. Programmable logic controller. 前記第一実行エンジンが前記第一ユーザプログラムを実行するのと並行して前記第一バッファに記憶された前記時系列のデータをデータ圧縮する圧縮手段をさらに有し、
前記転送手段は、前記圧縮手段により圧縮された時系列のデータを前記第二実行エンジンへ転送することを特徴とする請求項1ないし3のいずれか一項に記載のプログラマブルロジックコントローラ。
Further having a compression means for compressing the time series data stored in the first buffer in parallel with the first execution engine executing the first user program.
The programmable logic controller according to any one of claims 1 to 3, wherein the transfer means transfers time-series data compressed by the compression means to the second execution engine.
前記第一バッファに記憶された前記時系列のデータは、スキャン周期ごとに取得された複数のデータレコードを有し、
前記圧縮手段は、前記複数のデータレコードのうち相前後する二つのデータレコードが一致する場合、当該二つのデータレコードのうちの一方を破棄することで、前記複数のデータレコードのうちデータの変化点となるデータレコードを残すことを特徴とする請求項4に記載のプログラマブルロジックコントローラ。
The time-series data stored in the first buffer has a plurality of data records acquired for each scan cycle.
When two data records that are in phase with each other in the plurality of data records match, the compression means discards one of the two data records to change the data change point in the plurality of data records. The programmable logic controller according to claim 4, wherein a data record is left.
前記転送手段により転送されてきた前記時系列のデータを記憶する第二バッファをさらに有し、
前記第二実行エンジンは、前記第二バッファに記憶されている前記時系列のデータを参照するように構成されていることを特徴とする請求項1ないし5のいずれか一項に記載のプログラマブルロジックコントローラ。
It further has a second buffer for storing the time series data transferred by the transfer means.
The programmable logic according to any one of claims 1 to 5, wherein the second execution engine is configured to refer to the time-series data stored in the second buffer. controller.
前記転送手段は、拡張ユニットの保持手段からデータを取得して前記第二実行エンジンへ転送するように構成されており、
前記プログラマブルロジックコントローラは、さらに、
前記拡張ユニットの保持手段から取得されたデータを蓄積する第三バッファを有しており、
前記第二実行エンジンは、前記第三バッファから前記データを読み出してデータ処理を実行するように構成されていることを特徴とする請求項1ないし6のいずれか一項に記載のプログラマブルロジックコントローラ。
The transfer means is configured to acquire data from the holding means of the expansion unit and transfer it to the second execution engine.
The programmable logic controller further
It has a third buffer that stores the data acquired from the holding means of the expansion unit.
The programmable logic controller according to any one of claims 1 to 6, wherein the second execution engine is configured to read the data from the third buffer and execute data processing.
前記拡張ユニットは、
前記拡張ユニットの保持手段から、前記スキャン周期と異なる所定の制御周期にしたがって取得されたデータを記憶する第四バッファを有しており、
前記転送手段は、前記第四バッファから前記拡張ユニットの保持手段のデータを取得するように構成されていることを特徴とする請求項7に記載のプログラマブルロジックコントローラ。
The expansion unit
It has a fourth buffer that stores data acquired from the holding means of the expansion unit according to a predetermined control cycle different from the scan cycle.
The programmable logic controller according to claim 7, wherein the transfer means is configured to acquire data of the holding means of the expansion unit from the fourth buffer.
前記時系列のデータには、それぞれ異なるタイミングで取得された第一データレコードと第二データレコードとが含まれており、
前記第二実行エンジンは、前記第一データレコードに含まれている注目ビットが変化したタイミングと、前記第二データレコードに含まれている前記注目ビットが変化したタイミングとの間の時間間隔を演算することをと特徴とする請求項1ないし8のいずれか一項に記載のプログラマブルロジックコントローラ。
The time-series data includes a first data record and a second data record acquired at different timings.
The second execution engine calculates a time interval between the timing at which the attention bit contained in the first data record changes and the timing at which the attention bit contained in the second data record changes. The programmable logic controller according to any one of claims 1 to 8, wherein the programmable logic controller.
前記時系列のデータには、それぞれ異なるタイミングで取得された第一波形データと第二波形データとが含まれており、
前記第二実行エンジンは、前記第一波形データの位相と前記第二波形データとの位相を基準位相に整合させ、
前記生成手段は、前記基準位相に整合された前記第一波形データと前記第二波形データとを前記ダッシュボードに表示する表示データを生成することをと特徴とする請求項1ないし8のいずれか一項に記載のプログラマブルロジックコントローラ。
The time-series data includes the first waveform data and the second waveform data acquired at different timings.
The second execution engine matches the phase of the first waveform data and the phase of the second waveform data with the reference phase.
One of claims 1 to 8, wherein the generation means generates display data for displaying the first waveform data and the second waveform data matched to the reference phase on the dashboard. The programmable logic controller described in item 1.
前記処理手段は、第一のデータ活用アプリケーションと第二のデータ活用アプリケーションとを実行するように構成されており、
前記プログラマブルロジックコントローラは、
第一サブバッファと、
第二サブバッファと、
前記第二バッファに格納された時系列のデータのうち前記第一のデータ活用アプリケーションのためのデータを前記第一サブバッファに分配し、前記第二バッファに格納された時系列のデータのうち前記第二のデータ活用アプリケーションのためのデータを前記第二サブバッファに分配する分配手段と
をさらに有することを特徴とする請求項6に記載のプログラマブルロジックコントローラ。
The processing means is configured to execute the first data utilization application and the second data utilization application.
The programmable logic controller is
With the first subbuffer,
With the second subbuffer,
Of the time-series data stored in the second buffer, the data for the first data utilization application is distributed to the first sub-buffer, and among the time-series data stored in the second buffer, the data is described. The programmable logic controller according to claim 6, further comprising a distribution means for distributing data for the second data utilization application to the second subbuffer.
前記転送手段は、前記時系列のデータを小分けして転送するように構成されていることを特徴とする請求項1ないし11のいずれか一項に記載のプログラマブルロジックコントローラ。 The programmable logic controller according to any one of claims 1 to 11, wherein the transfer means is configured to transfer the time-series data in small portions. 前記転送手段は、前記第一実行エンジンが前記第一ユーザプログラムを実行しているのと並行して前記時系列のデータを転送するように構成されていることを特徴とする請求項1ないし12のいずれか一項に記載のプログラマブルロジックコントローラ。 Claims 1 to 12 are characterized in that the transfer means is configured to transfer the time-series data in parallel with the execution of the first user program by the first execution engine. The programmable logic controller according to any one of the above. 基本ユニットと、当該基本ユニットに接続された拡張ユニットとを有するプログラマブルロジックコントローラであって、
前記基本ユニットは、
ユーザプログラムを繰り返し実行する実行エンジンと、
前記ユーザプログラムにしたがって前記実行エンジンによりアクセスされるデータを記憶するデバイスまたは変数である複数の保持手段と、
前記ユーザプログラムのスキャン周期ごとに所定の収集設定にしたがって前記複数の保持手段のうち収集対象の保持手段に記憶されているデータを収集する収集手段と、
前記収集手段により前記スキャン周期ごとに収集された時系列のデータを蓄積する第一バッファと、
前記第一バッファに記憶された前記時系列のデータを、バスを介して接続された拡張ユニットであってデータ活用ユニットに転送する転送手段と、
を有し、
前記データ活用ユニットは、
前記転送手段により転送されてきた前記時系列のデータを所定の処理設定にしたがってデータ処理する処理手段と、
前記データ処理の処理結果をダッシュボードに表示するための表示データを生成する生成手段と、
前記表示データを外部のコンピュータに提供する提供手段と、
を有することを特徴とするプログラマブルロジックコントローラ。
A programmable logic controller having a basic unit and an expansion unit connected to the basic unit.
The basic unit is
An execution engine that repeatedly executes the user program,
A plurality of holding means that are devices or variables that store data accessed by the execution engine according to the user program.
A collection means for collecting data stored in the holding means to be collected among the plurality of holding means according to a predetermined collection setting for each scan cycle of the user program.
A first buffer that stores time-series data collected for each scan cycle by the collection means,
A transfer means for transferring the time-series data stored in the first buffer to the data utilization unit, which is an expansion unit connected via a bus.
Have,
The data utilization unit is
A processing means for processing the time-series data transferred by the transfer means according to a predetermined processing setting, and
A generation means for generating display data for displaying the processing result of the data processing on the dashboard, and
A means of providing the display data to an external computer and
A programmable logic controller characterized by having.
JP2020111878A 2019-10-03 2020-06-29 Programmable Logic Controller Active JP7461811B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US17/012,112 US11644808B2 (en) 2019-10-03 2020-09-04 Programable logic controller
CN202011051992.2A CN112612239A (en) 2019-10-03 2020-09-29 Programmable logic controller

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019183256 2019-10-03
JP2019183256 2019-10-03

Publications (2)

Publication Number Publication Date
JP2021060967A true JP2021060967A (en) 2021-04-15
JP7461811B2 JP7461811B2 (en) 2024-04-04

Family

ID=75380259

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020111878A Active JP7461811B2 (en) 2019-10-03 2020-06-29 Programmable Logic Controller

Country Status (1)

Country Link
JP (1) JP7461811B2 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002189508A (en) 2000-12-20 2002-07-05 Digital Electronics Corp Controller and recording medium with its program recorded
JP2015219616A (en) 2014-05-15 2015-12-07 富士電機株式会社 Monitoring control system
KR101870492B1 (en) 2015-06-22 2018-06-22 엘에스산전 주식회사 Programmable Logic Controller System

Also Published As

Publication number Publication date
JP7461811B2 (en) 2024-04-04

Similar Documents

Publication Publication Date Title
US11644808B2 (en) Programable logic controller
EP3379358B1 (en) Control system, control device, control program, and control method
US11301294B2 (en) Control device, control method, and control program
JP7450471B2 (en) Programmable logic controller and PLC system
JP6388050B1 (en) Control device
JP6724847B2 (en) Control device, control program, control system, and control method
JP6400248B1 (en) Data processing apparatus, data processing method, setting management apparatus, and data processing system
CN112612238A (en) Setting device and PLC system
CN113204203A (en) Programmable logic controller and analyzer
JP6744557B2 (en) Operation data collection system, operation data collection method, and program
JP7461811B2 (en) Programmable Logic Controller
WO2019059001A1 (en) Information device, terminal device, and program
JP7102801B2 (en) Control system, control device and display device
JP7412119B2 (en) Data utilization system
JP7380390B2 (en) Control device, program and control method
CN112654939B (en) Control system and control device
JP7276265B2 (en) Production system, host control device, control device, communication method, and program
JP6984499B2 (en) FA (Factory Automation) system, controller, and control method
JP5931276B2 (en) Programmable display, its program
JP6996887B2 (en) Programmable logic controller system and data acquisition device
JP7406333B2 (en) Data utilization equipment
CN108702308B (en) System and method for intelligent event paging
JP7450470B2 (en) Setting device and PLC system
CN110908856A (en) Resource monitoring system, resource monitoring method, and program
JP6933256B2 (en) Data playback equipment for industrial plants

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20210113

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230303

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240207

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240325

R150 Certificate of patent or registration of utility model

Ref document number: 7461811

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150