JPWO2020065863A1 - Programmable logic controllers, methods, and programs - Google Patents

Programmable logic controllers, methods, and programs Download PDF

Info

Publication number
JPWO2020065863A1
JPWO2020065863A1 JP2019537392A JP2019537392A JPWO2020065863A1 JP WO2020065863 A1 JPWO2020065863 A1 JP WO2020065863A1 JP 2019537392 A JP2019537392 A JP 2019537392A JP 2019537392 A JP2019537392 A JP 2019537392A JP WO2020065863 A1 JPWO2020065863 A1 JP WO2020065863A1
Authority
JP
Japan
Prior art keywords
unit
loop
program
history
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2019537392A
Other languages
Japanese (ja)
Inventor
祐輔 校條
祐輔 校條
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JPWO2020065863A1 publication Critical patent/JPWO2020065863A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)

Abstract

プログラマブルロジックコントローラのCPUユニット(100)において、実行部(103)は、設定された周期毎にプログラムを実行する。デバイスデータ記憶部(101)は、プログラムの入力値及び出力値を含むデバイス値を記憶する。履歴データ記憶部(102)は、デバイス値の更新履歴を記憶する。ループモニタ部(105)は、プログラム内にループ処理があるか否かを判別し、プログラム内にループ処理がある場合に、実行部(103)がループ処理内の命令を実行することにより更新したデバイス値の更新履歴を履歴データ記憶部(102)に格納する。In the CPU unit (100) of the programmable logic controller, the execution unit (103) executes a program at a set cycle. The device data storage unit (101) stores device values including input values and output values of the program. The history data storage unit (102) stores the update history of the device value. The loop monitor unit (105) determines whether or not there is loop processing in the program, and when there is loop processing in the program, the execution unit (103) updates by executing the instruction in the loop processing. The update history of the device value is stored in the history data storage unit (102).

Description

本発明は、プログラマブルロジックコントローラ、方法、及びプログラムに関する。 The present invention relates to programmable logic controllers, methods, and programs.

プログラマブルロジックコントローラは、制御対象の機器を制御するため、設定された周期であるスキャンタイム毎にプログラムの各命令を実行して、検出器から供給された入力信号が示す値を使用した演算を行い、演算結果を示す値に基づく出力信号を制御対象の機器に供給する。プログラマブルロジックコントローラにおいて、検出器から供給された入力信号を示す値と被制御機器に供給される出力信号を示す値とは、デバイスメモリと呼ばれるメモリ上の領域に格納される。 In order to control the device to be controlled, the programmable logic controller executes each instruction of the program at each scan time, which is a set cycle, and performs an operation using the value indicated by the input signal supplied from the detector. , The output signal based on the value indicating the calculation result is supplied to the device to be controlled. In the programmable logic controller, the value indicating the input signal supplied from the detector and the value indicating the output signal supplied to the controlled device are stored in an area on the memory called a device memory.

ユーザは、例えば、プログラマブルロジックコントローラのプログラムの動作が正常であるか否かを確認するために、プログラムの開発ツール、プログラマブル表示器等の外部機器を介してデバイスメモリのデータを監視する。特許文献1には、プログラマブル表示器が、スキャンタイム毎にデバイス値をデバイスメモリから読み出し、読み出したデバイス値をディスプレイに表示することが記載されている。 For example, the user monitors the data in the device memory via an external device such as a program development tool or a programmable display in order to confirm whether or not the operation of the program of the programmable logic controller is normal. Patent Document 1 describes that a programmable display reads a device value from a device memory at each scan time and displays the read device value on a display.

特開2003−84811号公報Japanese Unexamined Patent Publication No. 2003-88411

特許文献1に記載されているように、従来のプログラマブルロジックコントローラは、開発ツール、プログラマブル表示器等の外部機器から、デバイスメモリを読み出すことを指示するモニタ要求を受け付けると、I/O(Input/Output:入出力)リフレッシュのタイミングで、モニタ要求で指定されたデバイスメモリの値を外部機器に送信する。I/Oリフレッシュとは、プログラマブルロジックコントローラと検出器及び制御対象の機器との間でデバイスメモリのデータを一括交換することをいう。I/Oリフレッシュは、スキャンタイムの最後に、即ちプログラムの命令が一通り実行された後に実行される。 As described in Patent Document 1, when a conventional programmable logic controller receives a monitor request instructing to read a device memory from an external device such as a development tool or a programmable display, I / O (Input /) Output: Input / output) At the refresh timing, the device memory value specified in the monitor request is sent to the external device. I / O refresh refers to batch exchange of device memory data between a programmable logic controller, a detector, and a device to be controlled. The I / O refresh is executed at the end of the scan time, that is, after all the instructions of the program have been executed.

ここで、デバイスメモリが記憶するデータは、プログラムの実行中に書き換えられることがある。例えば、特定の条件下において特定の処理が繰り返される処理であるループ処理において同一のデバイスメモリの値が逐次更新されることがある。 Here, the data stored in the device memory may be rewritten during the execution of the program. For example, the same device memory value may be sequentially updated in a loop process, which is a process in which a specific process is repeated under a specific condition.

プログラムのデバッグの際には、ループ処理において更新されるデバイスメモリの値を確認することが必要になる場合がある。従来のプログラマブルロジックコントローラは、スキャンタイムの最後にモニタ要求に対する応答を返していたため、ユーザは、ループ処理において逐次更新されるデバイスメモリの値を確認することができなかった。このため、ループ処理において逐次更新されるデバイスメモリの値を確認するために、ユーザは、デバイスメモリの値をデバッグ用のログファイルに随時出力するためのデバッグ用のコードをプログラムに追加し、プログラムの実行後にデバッグ用のログファイルの内容を確認していた。従来は、ユーザは、プログラムのデバッグのため、このような作業を行うことが必要であった。その結果、プログラムのデバッグに係る工数が増加する傾向にあった。 When debugging a program, it may be necessary to check the value of device memory that is updated during loop processing. Since the conventional programmable logic controller returns a response to the monitor request at the end of the scan time, the user cannot confirm the value of the device memory that is sequentially updated in the loop processing. Therefore, in order to check the device memory value that is sequentially updated in the loop processing, the user adds debug code to the program to output the device memory value to the debug log file at any time. I was checking the contents of the log file for debugging after executing. In the past, users had to do this to debug their programs. As a result, the man-hours for debugging the program tended to increase.

本発明は、上記実情に鑑みてなされたものであり、ユーザが煩雑な作業を行うことなく、ループ処理において逐次書き換えられるデバイス値の更新履歴を取得することを可能とし、プログラムのデバッグに係る工数を削減することを目的とする。 The present invention has been made in view of the above circumstances, and enables the user to acquire the update history of device values that are sequentially rewritten in the loop processing without performing complicated work, and the man-hours related to program debugging. The purpose is to reduce.

上記目的を達成するため、本発明のプログラマブルロジックコントローラにおいて、実行手段は、設定された周期毎にプログラムを実行する。デバイス記憶手段は、プログラムの入力値及び出力値を含むデバイス値を記憶する。履歴記憶手段は、デバイス値の更新履歴を記憶する。履歴管理手段は、プログラム内にループ処理があるか否かを判別し、プログラム内にループ処理がある場合に、前記実行手段がループ処理内の命令を実行することにより更新したデバイス値の更新履歴を履歴記憶手段に格納する。 In order to achieve the above object, in the programmable logic controller of the present invention, the execution means executes a program at a set cycle. The device storage means stores device values including input values and output values of the program. The history storage means stores the update history of the device value. The history management means determines whether or not there is a loop process in the program, and if there is a loop process in the program, the update history of the device value updated by the execution means executing the instruction in the loop process. Is stored in the history storage means.

本発明のプログラマブルロジックコントローラの履歴管理手段は、プログラムにループ処理があるか否かを判別し、プログラム内にループ処理がある場合に、実行手段がループ処理内の命令を実行することにより更新したデバイス値の更新履歴を履歴記憶手段に格納する。このような構成を備えることで、ユーザは煩雑な作業を行うことなく、ループ処理において逐次書き換えられるデバイス値の更新履歴を取得することができ、プログラムのデバッグに係る工数を削減することができる。 The history management means of the programmable logic controller of the present invention determines whether or not the program has loop processing, and if there is loop processing in the program, the executing means updates by executing the instruction in the loop processing. The update history of the device value is stored in the history storage means. By providing such a configuration, the user can acquire the update history of the device value that is sequentially rewritten in the loop processing without performing complicated work, and the man-hours related to program debugging can be reduced.

実施の形態に係るプログラマブルロジックコントローラ及びエンジニアリングツールのハードウェア構成を示すブロック図A block diagram showing a hardware configuration of a programmable logic controller and an engineering tool according to an embodiment. 実施の形態に係るCPUユニット及びエンジニアリングツールの機能ブロック図Functional block diagram of CPU unit and engineering tool according to the embodiment 実施の形態に係るユーザプログラムの一例を示す図The figure which shows an example of the user program which concerns on embodiment 実施の形態に係るエンジニアリングツールのデバイスモニタの入力画面の一例を示す図The figure which shows an example of the input screen of the device monitor of the engineering tool which concerns on embodiment. 実施の形態に係るエンジニアリングツールのデバイスモニタの実行結果画面の一例を示す図The figure which shows an example of the execution result screen of the device monitor of the engineering tool which concerns on embodiment. 実施の形態に係るエンジニアリングツールのデバイスモニタの入力画面の他の例を示す図The figure which shows the other example of the input screen of the device monitor of the engineering tool which concerns on embodiment. 実施の形態に係るエンジニアリングツールのデバイスモニタの実行結果画面の他の例を示す図The figure which shows the other example of the execution result screen of the device monitor of the engineering tool which concerns on embodiment. 実施の形態に係るモニタ応答処理のフローチャートFlowchart of monitor response processing according to the embodiment 実施の形態に係るモニタ応答処理のフローチャートFlowchart of monitor response processing according to the embodiment 変形例に係るデータ件数の通知画面の一例を示す図The figure which shows an example of the notification screen of the number of data related to the modification

以下、本発明の実施の形態に係るプログラマブルロジックコントローラ1について、図面を参照しつつ詳細に説明する。 Hereinafter, the programmable logic controller 1 according to the embodiment of the present invention will be described in detail with reference to the drawings.

(実施の形態)
図1に示す、プログラマブルロジックコントローラ1は、生産システム、制御システム等において稼動するセンサ、スイッチ等を含む検出器901と、アクチュエータ、電磁弁、表示灯等を含む被制御機器902とを制御する。プログラマブルロジックコントローラ1は、プログラマブルロジックコントローラ1全体を制御するCPU(Central Processing Unit)ユニット100と、検出器901から供給された入力信号をCPUユニット100に入力する入力ユニット200と、CPUユニット100から供給された出力信号を被制御機器902に出力する出力ユニット300と、各ユニットを装着するためのベースユニット400とを含む。
(Embodiment)
The programmable logic controller 1 shown in FIG. 1 controls a detector 901 including sensors, switches and the like operating in a production system, a control system and the like, and a controlled device 902 including an actuator, a solenoid valve, an indicator light and the like. The programmable logic controller 1 is supplied from a CPU (Central Processing Unit) unit 100 that controls the entire programmable logic controller 1, an input unit 200 that inputs an input signal supplied from the detector 901 to the CPU unit 100, and a CPU unit 100. It includes an output unit 300 that outputs the output signal to the controlled device 902, and a base unit 400 for mounting each unit.

CPUユニット100は、入力ユニット200から供給された入力信号に従って、後述するユーザプログラム111の命令を実行し、出力信号を出力ユニット300に供給する。例えば、CPUユニット100は、検出器901のセンサがオンしていることを示す入力信号が入力されると、ユーザプログラム111の命令を実行し、被制御機器902のアクチュエータをオンすることを示す出力信号を出力する。CPUユニット100は、設定された周期でユーザプログラム111の命令を順次開始し、最後の命令であるEND命令を実行した後、ユーザプログラム111の実行を終了する。CPUユニット100は、次の周期に再びユーザプログラム111の実行を開始する。1つの周期において、ユーザプログラム111の最初の命令から最後の命令までを実行することをスキャンするという場合がある。この設定された周期をスキャンタイムという。 The CPU unit 100 executes an instruction of the user program 111 described later according to the input signal supplied from the input unit 200, and supplies the output signal to the output unit 300. For example, when the input signal indicating that the sensor of the detector 901 is turned on is input, the CPU unit 100 executes the instruction of the user program 111 and outputs indicating that the actuator of the controlled device 902 is turned on. Output a signal. The CPU unit 100 sequentially starts the instructions of the user program 111 at a set cycle, executes the END instruction which is the last instruction, and then ends the execution of the user program 111. The CPU unit 100 starts executing the user program 111 again in the next cycle. In one cycle, the execution of the user program 111 from the first instruction to the last instruction may be scanned. This set cycle is called the scan time.

また、CPUユニット100は、後述のエンジニアリングツール500からデバイス値のモニタ要求を受信すると、モニタ要求で指定されたデバイス値をエンジニアリングツール500に送信する。 Further, when the CPU unit 100 receives a monitor request for a device value from the engineering tool 500 described later, the CPU unit 100 transmits the device value specified in the monitor request to the engineering tool 500.

デバイス値は、デバイスメモリ113と呼ばれるCPUユニット100のメモリ110に確保された領域に格納されている値である。デバイス値は、入力ユニット200から供給された入力信号を示す値であって、ユーザプログラム111の演算の入力値と、出力ユニット300に供給される出力信号を示す値であって、ユーザプログラム111の演算の出力値とを含む。 The device value is a value stored in an area reserved in the memory 110 of the CPU unit 100 called the device memory 113. The device value is a value indicating an input signal supplied from the input unit 200, and is a value indicating an input value of an operation of the user program 111 and an output signal supplied to the output unit 300, and is a value indicating the output signal of the user program 111. Includes the output value of the operation.

モニタ要求とは、デバイスメモリ113のデバイス値の読み出しを要求するため、エンジニアリングツール500がCPUユニット100に送信するコマンドのことをいう。また、CPUユニット100がモニタ要求に応答してエンジニアリングツール500に送信するレスポンスをモニタ応答という。CPUユニット100は、モニタ応答に、指定されたデバイス値をセットして、エンジニアリングツール500に送信する。 The monitor request is a command transmitted by the engineering tool 500 to the CPU unit 100 in order to request reading of the device value of the device memory 113. Further, the response that the CPU unit 100 sends to the engineering tool 500 in response to the monitor request is called a monitor response. The CPU unit 100 sets the specified device value in the monitor response and transmits it to the engineering tool 500.

CPUユニット100は、モニタ応答として、1回のスキャンが終わった時点のデバイス値をエンジニアリングツール500に送信する機能を備える。なお、この機能は、CPUユニット100が従来備えている機能である。 The CPU unit 100 has a function of transmitting a device value at the time when one scan is completed to the engineering tool 500 as a monitor response. It should be noted that this function is a function conventionally provided in the CPU unit 100.

さらに、CPUユニット100は、モニタ応答として、ループ処理により逐次更新されたデバイス値の更新履歴をエンジニアリングツール500に送信する機能を備える。この機能は、実施の形態に係るCPUユニット100において特徴的な機能である。ループ処理とは、特定の条件下において特定の処理を繰り返す処理のことをいう。なお、ループ処理のことを単にループという場合もある。モニタ要求の詳細については後述する。 Further, the CPU unit 100 has a function of transmitting an update history of device values sequentially updated by loop processing to the engineering tool 500 as a monitor response. This function is a characteristic function in the CPU unit 100 according to the embodiment. The loop process is a process of repeating a specific process under specific conditions. Note that the loop processing may be simply referred to as a loop. The details of the monitor request will be described later.

入力ユニット200には、検出器901が接続されている。入力ユニット200は、検出器901から供給されたオン/オフを示す入力信号を決められた信号レベルに変換し、変換した入力信号をCPUユニット100に入力する。出力ユニット300には、被制御機器902が接続されている。出力ユニット300は、CPUユニット100から供給されたオン/オフを示す出力信号を決められた信号レベルに変換し、変換した出力信号を被制御機器902に出力する。 A detector 901 is connected to the input unit 200. The input unit 200 converts the on / off input signal supplied from the detector 901 into a predetermined signal level, and inputs the converted input signal to the CPU unit 100. A controlled device 902 is connected to the output unit 300. The output unit 300 converts the on / off output signal supplied from the CPU unit 100 into a predetermined signal level, and outputs the converted output signal to the controlled device 902.

ベースユニット400には、CPUユニット100と入力ユニット200と出力ユニット300とが装着される。CPUユニット100と入力ユニット200と出力ユニット300とは、ベースユニット400を介して不図示の電源ユニットに接続され、電源ユニットから供給される電力によって動作する。また、CPUユニット100と入力ユニット200と出力ユニット300とは、共有バス410を介して相互に接続され、共有バス410を介して通信を行う。 The CPU unit 100, the input unit 200, and the output unit 300 are mounted on the base unit 400. The CPU unit 100, the input unit 200, and the output unit 300 are connected to a power supply unit (not shown) via the base unit 400, and operate by the electric power supplied from the power supply unit. Further, the CPU unit 100, the input unit 200, and the output unit 300 are connected to each other via the shared bus 410, and communicate with each other via the shared bus 410.

また、プログラマブルロジックコントローラ1のCPUユニット100には、開発ツールであるエンジニアリングツール500を接続することが可能である。エンジニアリングツール500の構成については後述する。 Further, the engineering tool 500, which is a development tool, can be connected to the CPU unit 100 of the programmable logic controller 1. The configuration of the engineering tool 500 will be described later.

図1に示すCPUユニット100はハードウェア構成として、各種のプログラム及びデータを記憶するメモリ110と、入力ユニット200及び出力ユニット300と通信を行う入出力インタフェース120と、エンジニアリングツール500と通信を行うツール用インタフェース130と、CPUユニット100全体を制御する演算装置140とを有する。メモリ110と入出力インタフェース120とツール用インタフェース130とはバス190を介して演算装置140に接続されており、演算装置140と通信する。 The CPU unit 100 shown in FIG. 1 has a hardware configuration of a memory 110 for storing various programs and data, an input / output interface 120 for communicating with the input unit 200 and the output unit 300, and a tool for communicating with the engineering tool 500. The interface 130 and the arithmetic unit 140 that controls the entire CPU unit 100 are provided. The memory 110, the input / output interface 120, and the tool interface 130 are connected to the arithmetic unit 140 via the bus 190, and communicate with the arithmetic unit 140.

メモリ110は、揮発性メモリと不揮発性メモリとを含み、各種プログラムと、プログラムの実行時に使用されるデータとを記憶する。メモリ110には、スキャンタイム毎に実行されるユーザプログラム111と、エンジニアリングツール500から受信したモニタ要求に応答するためのモニタ応答プログラム112とが格納される。ユーザプログラム111は本発明のプログラムの一例である。 The memory 110 includes a volatile memory and a non-volatile memory, and stores various programs and data used when the programs are executed. The memory 110 stores a user program 111 executed for each scan time and a monitor response program 112 for responding to a monitor request received from the engineering tool 500. The user program 111 is an example of the program of the present invention.

メモリ110は、さらにデバイスメモリ113を含む。デバイスメモリ113は、ユーザプログラム111の入力値及び出力値を格納するメモリ上の領域である。ユーザプログラム111の入力値は検出器901からCPUユニット100に供給された入力信号を示す値であり、ユーザプログラム111の出力値は被制御機器902に供給される出力信号を示す値である。デバイスメモリ113に格納される入力値及び出力値をデバイス値ということがある。デバイスメモリを単にデバイスと呼ぶこともある。 The memory 110 further includes a device memory 113. The device memory 113 is an area on the memory for storing the input value and the output value of the user program 111. The input value of the user program 111 is a value indicating an input signal supplied from the detector 901 to the CPU unit 100, and the output value of the user program 111 is a value indicating an output signal supplied to the controlled device 902. The input value and the output value stored in the device memory 113 may be referred to as a device value. Device memory is sometimes referred to simply as a device.

デバイス値は、データの種類に応じた領域に格納される。例えば、入力信号の値が格納されている領域を「X」、出力信号の値が格納されている領域を「Y」、その他の値が格納されている領域を「D」と定義する。「X」、「Y」、「D」のそれぞれの領域には複数のデバイス値が格納されており、各デバイス値には、当該領域において何番目のデータであるかを示す番号が割り当てられている。例えば、「X」の領域の先頭の番号を「1」とした場合、「X100」に格納されたデータは、「X」の領域における100番目のデータである。 The device value is stored in the area according to the type of data. For example, the area where the value of the input signal is stored is defined as "X", the area where the value of the output signal is stored is defined as "Y", and the area where other values are stored is defined as "D". A plurality of device values are stored in each of the areas of "X", "Y", and "D", and each device value is assigned a number indicating the number of data in the area. There is. For example, when the first number of the "X" area is "1", the data stored in the "X100" is the 100th data in the "X" area.

ユーザプログラム111は、プログラマブルロジックコントローラ1に被制御機器902を制御させるため、ユーザが作成したプログラムである。ユーザプログラム111は、演算装置140により実行される。例えば、演算装置140は、ユーザプログラム111を実行して、検出器901から供給された入力信号が示す値を使用した演算を行い、演算結果を示す値に基づく出力信号を被制御機器902に供給する。 The user program 111 is a program created by the user in order to cause the programmable logic controller 1 to control the controlled device 902. The user program 111 is executed by the arithmetic unit 140. For example, the arithmetic unit 140 executes the user program 111, performs an calculation using the value indicated by the input signal supplied from the detector 901, and supplies an output signal based on the value indicating the arithmetic result to the controlled device 902. To do.

モニタ応答プログラム112は、CPUユニット100がエンジニアリングツール500からモニタ要求を受信した場合に、エンジニアリングツール500から指定されたデバイス値を含めたモニタ応答をエンジニアリングツール500に送信するためのプログラムである。 The monitor response program 112 is a program for transmitting a monitor response including a device value specified by the engineering tool 500 to the engineering tool 500 when the CPU unit 100 receives a monitor request from the engineering tool 500.

具体的には、モニタ応答プログラム112は、CPUユニット100が、エンジニアリングツール500から1回のスキャンが終わった時点のデバイス値が要求された場合には、指定されたデバイス値をエンジニアリングツール500に送信するためのプログラムである。さらに、モニタ応答プログラム112は、CPUユニット100が、エンジニアリングツール500からループ処理によって更新されたデバイス値の更新履歴が要求された場合には、ユーザプログラム111に含まれているループ処理を抽出し、ループ処理内で更新されたデバイス値の更新履歴をエンジニアリングツール500に送信するためのプログラムである。モニタ応答プログラム112は演算装置140により実行される。 Specifically, the monitor response program 112 transmits the specified device value to the engineering tool 500 when the CPU unit 100 requests the device value at the time when one scan is completed from the engineering tool 500. It is a program to do. Further, the monitor response program 112 extracts the loop processing included in the user program 111 when the CPU unit 100 requests the update history of the device value updated by the loop processing from the engineering tool 500. This is a program for transmitting the update history of the device value updated in the loop process to the engineering tool 500. The monitor response program 112 is executed by the arithmetic unit 140.

入出力インタフェース120は、CPUユニット100が入力ユニット200及び出力ユニット300と通信するための通信インタフェースである。入出力インタフェース120は、演算装置140から供給されたデータを電気信号に変換し、変換した信号を共有バス410を介して出力ユニット300に送信する。また、入出力インタフェース120は、入力ユニット200から受信した電気信号をデータに復元して演算装置140に出力する。 The input / output interface 120 is a communication interface for the CPU unit 100 to communicate with the input unit 200 and the output unit 300. The input / output interface 120 converts the data supplied from the arithmetic unit 140 into an electric signal, and transmits the converted signal to the output unit 300 via the shared bus 410. Further, the input / output interface 120 restores the electric signal received from the input unit 200 into data and outputs it to the arithmetic unit 140.

ツール用インタフェース130は、CPUユニット100が後述のエンジニアリングツール500と通信するための通信インタフェースである。ツール用インタフェース130は、演算装置140から供給されたデータを電気信号に変換し、変換した信号を通信ケーブル905を介してエンジニアリングツール500に送信する。また、ツール用インタフェース130は、エンジニアリングツール500から受信した電気信号をデータに復元して演算装置140に出力する。 The tool interface 130 is a communication interface for the CPU unit 100 to communicate with the engineering tool 500 described later. The tool interface 130 converts the data supplied from the arithmetic unit 140 into an electric signal, and transmits the converted signal to the engineering tool 500 via the communication cable 905. Further, the tool interface 130 restores the electric signal received from the engineering tool 500 into data and outputs it to the arithmetic unit 140.

演算装置140は、MPU(Micro Processing Unit)を有し、メモリ110に記憶される各種プログラムを実行して、CPUユニット100の各種機能を実現する。例えば、演算装置140は、スキャンタイム毎にユーザプログラム111を実行する。また、演算装置140は、モニタ応答プログラム112を実行して、エンジニアリングツール500にモニタ応答を送信する。 The arithmetic unit 140 has an MPU (Micro Processing Unit) and executes various programs stored in the memory 110 to realize various functions of the CPU unit 100. For example, the arithmetic unit 140 executes the user program 111 every scan time. Further, the arithmetic unit 140 executes the monitor response program 112 and transmits the monitor response to the engineering tool 500.

エンジニアリングツール500は、パーソナルコンピュータに専用のアプリケーションをインストールした開発ツールである。エンジニアリングツール500は、CPUユニット100のデバイス値をモニタする機能を有している。よって、ユーザは、エンジニアリングツール500を使用してCPUユニット100のデバイスメモリ113をモニタすることができる。エンジニアリングツール500は、さらに、プログラムの作成機能を有していてもよい。エンジニアリングツール500は、本発明の外部機器の一例である。 The engineering tool 500 is a development tool in which a dedicated application is installed on a personal computer. The engineering tool 500 has a function of monitoring the device value of the CPU unit 100. Therefore, the user can monitor the device memory 113 of the CPU unit 100 by using the engineering tool 500. The engineering tool 500 may further have a program creation function. The engineering tool 500 is an example of the external device of the present invention.

エンジニアリングツール500は、ハードウェア構成として、プログラム及びデータを記憶するメモリ510と、ユーザの入力操作を検出する入力装置520と、画像を出力する出力装置530と、CPUユニット100と通信する通信インタフェース540と、エンジニアリングツール500全体を制御する演算装置550とを有する。エンジニアリングツール500の各部はバス590により接続されている。 As a hardware configuration, the engineering tool 500 includes a memory 510 for storing programs and data, an input device 520 for detecting a user's input operation, an output device 530 for outputting an image, and a communication interface 540 for communicating with the CPU unit 100. And a computing device 550 that controls the entire engineering tool 500. Each part of the engineering tool 500 is connected by a bus 590.

メモリ510は、揮発性メモリと不揮発性メモリとを含み、各種プログラムと、プログラムの実行時に使用されるデータとを記憶する。実施の形態においては、メモリ510は、CPUユニット100のデバイス値をモニタするためのモニタ用プログラム511を記憶する。 The memory 510 includes a volatile memory and a non-volatile memory, and stores various programs and data used when the programs are executed. In the embodiment, the memory 510 stores a monitor program 511 for monitoring the device value of the CPU unit 100.

また、メモリ510は、デバイスの種類毎のデータ長が定義されたデバイス定義情報512を記憶する。デバイス定義情報512は、デバイスメモリのそれぞれの領域について、デバイスの種類と1つのデータのデータ長とが定義された情報である。例えば、「X」、「Y」のデバイスについて、デバイスの種類が「ビットデバイス」であり、デバイス値のデータ長が1ビットであると定義されている。「D」のデバイスについて、デバイスの種類が「ワードデバイス」であり、デバイス値のデータ長が2バイト(16ビット)であると定義されている。 Further, the memory 510 stores device definition information 512 in which the data length for each type of device is defined. The device definition information 512 is information in which the type of device and the data length of one data are defined for each area of the device memory. For example, for the devices of "X" and "Y", the device type is defined as "bit device" and the data length of the device value is defined as 1 bit. For the device of "D", the device type is defined as "word device" and the data length of the device value is defined as 2 bytes (16 bits).

入力装置520は、キーボード、マウス等の入力装置を含み、ユーザの入力操作を検出し、検出したユーザの入力操作を示す信号を演算装置550に供給する。出力装置530は、ディスプレイを含み、演算装置550から供給された信号に基づいた画像をディスプレイに表示する。通信インタフェース540は、通信ケーブル905を介してCPUユニット100のツール用インタフェース130と通信する。通信インタフェース540は、演算装置550から供給されたデータを電気信号に変換し、変換した信号を通信ケーブル905を介してCPUユニット100に送信する。また、通信インタフェース540は、CPUユニット100から受信した電気信号をデータに復元して演算装置550に出力する。 The input device 520 includes an input device such as a keyboard and a mouse, detects a user's input operation, and supplies a signal indicating the detected user's input operation to the arithmetic device 550. The output device 530 includes a display and displays an image based on the signal supplied from the arithmetic unit 550 on the display. The communication interface 540 communicates with the tool interface 130 of the CPU unit 100 via the communication cable 905. The communication interface 540 converts the data supplied from the arithmetic unit 550 into an electric signal, and transmits the converted signal to the CPU unit 100 via the communication cable 905. Further, the communication interface 540 restores the electric signal received from the CPU unit 100 into data and outputs it to the arithmetic unit 550.

演算装置550は、CPUを有し、メモリ110に記憶された各種プログラムを実行して、エンジニアリングツール500の各種機能を実現する。実施の形態においては、演算装置550は、モニタ用プログラム511を実行して、CPUユニット100にデバイスメモリ113のモニタ要求を送信し、CPUユニット100から受信したモニタ応答の内容を出力装置530のディスプレイに表示する。 The arithmetic unit 550 has a CPU and executes various programs stored in the memory 110 to realize various functions of the engineering tool 500. In the embodiment, the arithmetic unit 550 executes the monitor program 511, transmits the monitor request of the device memory 113 to the CPU unit 100, and displays the contents of the monitor response received from the CPU unit 100 on the display of the output device 530. Display on.

続いて図2を参照しながら、CPUユニット100の機能的な構成を説明する。CPUユニット100は、機能的には、デバイス値を記憶するデバイスデータ記憶部101と、ループ処理において更新されるデバイス値を記憶する履歴データ記憶部102と、ユーザプログラム111を実行する実行部103と、デバイス値のモニタに係る処理を行うコマンド処理部104と、指定されたデバイス値の値をループ処理において順次取得するループモニタ部105と、エンジニアリングツール500とコマンドの送受信を行うコマンド送受信部106とを備える。 Subsequently, the functional configuration of the CPU unit 100 will be described with reference to FIG. Functionally, the CPU unit 100 includes a device data storage unit 101 that stores device values, a history data storage unit 102 that stores device values that are updated in loop processing, and an execution unit 103 that executes a user program 111. , A command processing unit 104 that performs processing related to device value monitoring, a loop monitoring unit 105 that sequentially acquires the specified device value value in loop processing, and a command transmission / reception unit 106 that transmits / receives commands to / from the engineering tool 500. To be equipped.

図2に示すデバイスデータ記憶部101は、今回のスキャンタイムにおけるユーザプログラム111の入力値及び出力値、即ちデバイス値を記憶する。I/Oリフレッシュにより、デバイスデータ記憶部101には、入力ユニット200から供給されたユーザプログラム111の入力値が書き込まれる。さらに、ユーザプログラム111の実行により、デバイスデータ記憶部101には、ユーザプログラム111の実行により出力された出力値が書き込まれる。デバイスデータ記憶部101の機能は、図1に示すメモリ110のデバイスメモリ113により実現される。図2に示すデバイスデータ記憶部101は本発明のデバイス記憶手段の一例である。 The device data storage unit 101 shown in FIG. 2 stores the input value and the output value of the user program 111 at the current scan time, that is, the device value. By the I / O refresh, the input value of the user program 111 supplied from the input unit 200 is written in the device data storage unit 101. Further, by executing the user program 111, the output value output by executing the user program 111 is written in the device data storage unit 101. The function of the device data storage unit 101 is realized by the device memory 113 of the memory 110 shown in FIG. The device data storage unit 101 shown in FIG. 2 is an example of the device storage means of the present invention.

履歴データ記憶部102は、ループ処理において更新されるデバイス値の履歴を記憶する。履歴データ記憶部102には、後述するループモニタ部105によりデバイス値が書き込まれる。履歴データ記憶部102の機能は、図1に示すメモリ110により実現される。図2に示す履歴データ記憶部102は本発明の履歴記憶手段の一例である。 The history data storage unit 102 stores the history of device values updated in the loop process. A device value is written in the history data storage unit 102 by the loop monitor unit 105, which will be described later. The function of the history data storage unit 102 is realized by the memory 110 shown in FIG. The history data storage unit 102 shown in FIG. 2 is an example of the history storage means of the present invention.

実行部103は、スキャンタイム毎にユーザプログラム111を実行する。具体的には実行部103は、デバイスデータ記憶部101に格納されている入力信号を示す値に応じて、ユーザプログラム111の各命令を実行し、演算結果をデバイスデータ記憶部101に格納する。実行部103はユーザプログラム111の最後の命令であるEND命令を実行した後、END命令を実行したことをコマンド処理部104に通知する。実行部103の機能は、図1の演算装置140により実現される。図2に示す実行部103は本発明の実行手段の一例である。 The execution unit 103 executes the user program 111 every scan time. Specifically, the execution unit 103 executes each instruction of the user program 111 according to the value indicating the input signal stored in the device data storage unit 101, and stores the calculation result in the device data storage unit 101. After executing the END instruction which is the last instruction of the user program 111, the execution unit 103 notifies the command processing unit 104 that the END instruction has been executed. The function of the execution unit 103 is realized by the arithmetic unit 140 of FIG. The execution unit 103 shown in FIG. 2 is an example of the execution means of the present invention.

コマンド処理部104は、実行部103からユーザプログラム111の最後の命令であるEND命令を実行した旨の通知を受けると、エンジニアリングツール500からモニタ要求を受信している場合には、モニタ応答をエンジニアリングツール500に返すための処理を行う。コマンド処理部104の機能は、図1の演算装置140により実現される。図2に示すコマンド処理部104は本発明の要求処理手段の一例である。 When the command processing unit 104 receives a notification from the execution unit 103 that the END instruction, which is the last instruction of the user program 111, has been executed, the command processing unit 104 engineers the monitor response when receiving the monitor request from the engineering tool 500. Process for returning to the tool 500. The function of the command processing unit 104 is realized by the arithmetic unit 140 of FIG. The command processing unit 104 shown in FIG. 2 is an example of the request processing means of the present invention.

実施の形態においては、CPUユニット100がエンジニアリングツール500から受信するモニタ要求には、(1)スキャン後のデバイス値を要求するモニタ要求と、(2)ループ処理において更新されたデバイス値の更新履歴を要求するモニタ要求とが含まれる。 In the embodiment, the monitor request received by the CPU unit 100 from the engineering tool 500 includes (1) a monitor request requesting a device value after scanning, and (2) an update history of the device value updated in the loop processing. Includes monitor requests and requests.

(1)スキャン後のデバイス値を要求するモニタ要求
スキャン後のデバイス値を要求するモニタ要求は、実行部103がユーザプログラム111のEND命令を実行したときに、デバイスデータ記憶部101に格納されているデバイス値を要求するものである。以下、スキャン後のデバイス値を要求するモニタ要求をノーマルモニタ要求と称する。ノーマルモニタ要求には、デバイスの領域を特定する値と、当該領域において読み出す範囲を示す開始番号及び終了番号とが含まれている。
(1) Monitor Request for Requesting Device Value after Scanning A monitor request for requesting a device value after scanning is stored in the device data storage unit 101 when the execution unit 103 executes the END instruction of the user program 111. It requests the device value that is present. Hereinafter, a monitor request that requests the device value after scanning is referred to as a normal monitor request. The normal monitor request includes a value that specifies an area of the device, and a start number and an end number that indicate a range to be read in the area.

コマンド処理部104は、ユーザプログラム111の1スキャンの実行が終わった時点で、エンジニアリングツール500からノーマルモニタ要求を受信している場合、ノーマルモニタ要求に対するモニタ応答として、ノーマルモニタ要求で指定された順序でデバイス値をデバイスデータ記憶部101から読み出し、読み出したデバイス値をコマンド送受信部106に出力する。 When the command processing unit 104 has received the normal monitor request from the engineering tool 500 at the time when the execution of one scan of the user program 111 is completed, the command processing unit 104 has the order specified in the normal monitor request as the monitor response to the normal monitor request. Reads the device value from the device data storage unit 101, and outputs the read device value to the command transmission / reception unit 106.

例えば、ノーマルモニタ要求で、デバイス「X」の開始番号「100」から終了番号「150」までのデバイス値と、デバイス「D」の開始番号「50」から終了番号「100」までのデバイス値とが要求されたとする。この場合、コマンド処理部104は、「X100」から「X150」のデバイス値と「D50」から「D100」のデバイス値とをこの順序で並べた状態のデータをコマンド送受信部106に出力する。 For example, in a normal monitor request, a device value from the start number "100" to the end number "150" of the device "X" and a device value from the start number "50" to the end number "100" of the device "D". Is requested. In this case, the command processing unit 104 outputs data in a state in which the device values of "X100" to "X150" and the device values of "D50" to "D100" are arranged in this order to the command transmission / reception unit 106.

(2)ループ処理において更新されたデバイス値の更新履歴を要求するモニタ要求
ループ処理において更新されたデバイス値の更新履歴を要求するモニタ要求は、実行部103がユーザプログラム111のループ処理内で繰り返し更新されたデバイスデータ記憶部101のデバイス値の更新履歴を要求するものである。以下、ループ処理において更新されたデバイス値の更新履歴を要求するモニタ要求をループモニタ要求と称する。ループモニタ要求には、デバイスの領域を特定する値と、当該領域において読み出す範囲を示す開始番号及び終了番号と、デバイス値のデータ長を示す値とが含まれている。
(2) Monitor request for requesting update history of device values updated in loop processing A monitor request for requesting update history of device values updated in loop processing is repeated by the execution unit 103 in the loop processing of the user program 111. It requests the update history of the device value of the updated device data storage unit 101. Hereinafter, a monitor request that requests the update history of the device value updated in the loop processing is referred to as a loop monitor request. The loop monitor request includes a value for specifying an area of the device, a start number and an end number indicating a range to be read in the area, and a value indicating the data length of the device value.

まず、図3のユーザプログラムの一例を参照して、ループ処理によりデバイス値を更新する例を示す。ループ処理では指定された回数だけ決められた処理を繰り返す。図3に示す例では、「FOR 60…NEXT」はループを60回繰り返す命令であることを示す。「FOR 60…NEXT」のループ内の「MOV X101 D1」は、「X101」の値を「D1」に格納する命令であることを示す。これらの命令により、実行部103は、X101の値をD1に格納する処理を60回繰り返す。 First, an example of updating the device value by loop processing is shown with reference to an example of the user program of FIG. In the loop process, the specified process is repeated a specified number of times. In the example shown in FIG. 3, "FOR 60 ... NEXT" indicates that the instruction repeats the loop 60 times. "MOV X101 D1" in the loop of "FOR 60 ... NEXT" indicates that it is an instruction to store the value of "X101" in "D1". By these instructions, the execution unit 103 repeats the process of storing the value of X101 in D1 60 times.

例えば、ループモニタ要求により、D1のデバイス値の履歴を読み出すことが要求されたとする。この場合、後述のループモニタ部105が、60回繰り返されるループにおいてD1に格納された値の履歴を履歴データ記憶部102に格納する。コマンド処理部104は、履歴データ記憶部102に格納されたデータをエンジニアリングツール500に返すため、当該データをコマンド送受信部106に出力する。 For example, suppose that a loop monitor request requests that the history of the device value of D1 be read. In this case, the loop monitor unit 105, which will be described later, stores the history of the values stored in D1 in the history data storage unit 102 in the loop repeated 60 times. In order to return the data stored in the history data storage unit 102 to the engineering tool 500, the command processing unit 104 outputs the data to the command transmission / reception unit 106.

図3に示す「FOR 40…NEXT」はループを40回繰り返すことを示す。「FOR 40…NEXT」のループ内の「MOV X102 D2」は、「X102」の値を「D2」に格納する命令であることを示す。これらの命令により、実行部103は、X102の値をD2に格納する処理を40回繰り返す。 “FOR 40 ... NEXT” shown in FIG. 3 indicates that the loop is repeated 40 times. "MOV X102 D2" in the loop of "FOR 40 ... NEXT" indicates that it is an instruction to store the value of "X102" in "D2". By these instructions, the execution unit 103 repeats the process of storing the value of X102 in D2 40 times.

例えば、モニタ要求により、D2のデバイス値の履歴を読み出すことが要求されたとする。この場合、ループモニタ部105が、40回繰り返されるループにおいてD2に格納された値の履歴を履歴データ記憶部102に格納する。コマンド処理部104は、履歴データ記憶部102に格納されたデータをエンジニアリングツール500に返すため、当該データをコマンド送受信部106に出力する。 For example, suppose that a monitor request requests that the history of the device value of D2 be read. In this case, the loop monitor unit 105 stores the history of the values stored in D2 in the history data storage unit 102 in the loop repeated 40 times. In order to return the data stored in the history data storage unit 102 to the engineering tool 500, the command processing unit 104 outputs the data to the command transmission / reception unit 106.

また、「FOR 40…NEXT」のループ内の「BREAK」は、ループを中断する命令であることを示す。ここで、実行部103は入力値「X150」によって接点がオンした場合に「BREAK」を実行する。「BREAK」が実行されることにより、「FOR 40…NEXT」のループが中断される。この結果、実行部103は、「FOR 40…NEXT」のループを抜けて、ループの次の命令を実行する。ループが中断された場合、ループモニタ部105は、ループが中断されるまでのD2のデバイス値の履歴を履歴データ記憶部102に格納する。コマンド処理部104は、履歴データ記憶部102に格納されたデータをエンジニアリングツール500に返す。なお、入力値「X150」によって接点がオンしない場合には、「BREAK」が実行されない。 Further, "BREAK" in the loop of "FOR 40 ... NEXT" indicates that the instruction is to interrupt the loop. Here, the execution unit 103 executes "BREAK" when the contact is turned on by the input value "X150". By executing "BREAK", the loop of "FOR 40 ... NEXT" is interrupted. As a result, the execution unit 103 exits the loop of "FOR 40 ... NEXT" and executes the next instruction of the loop. When the loop is interrupted, the loop monitor unit 105 stores the history of the device value of D2 until the loop is interrupted in the history data storage unit 102. The command processing unit 104 returns the data stored in the history data storage unit 102 to the engineering tool 500. If the contact is not turned on by the input value "X150", "BREAK" is not executed.

具体的には、図2に示すコマンド処理部104は、エンジニアリングツール500からループモニタ要求を受信した場合、次のスキャンタイムにおけるユーザプログラム111の実行が開始される前に、デバイス値の更新履歴が要求されている旨と、デバイスの領域を特定する値と、当該領域において読み出す範囲を示す開始番号及び終了番号と、デバイス値のデータ長を示す値とをループモニタ部105に出力する。従って、次のスキャンタイムで、後述のループモニタ部105は、指定されたデバイス値の更新履歴を履歴データ記憶部102に格納する。例えば、指定されたデバイス値が、5回繰り返されるループ内で更新された場合、ループモニタ部105は、更新後の5つの値を履歴データ記憶部102に格納する。 Specifically, when the command processing unit 104 shown in FIG. 2 receives the loop monitor request from the engineering tool 500, the update history of the device value is recorded before the execution of the user program 111 at the next scan time is started. The request, the value specifying the device area, the start number and end number indicating the range to be read in the area, and the value indicating the data length of the device value are output to the loop monitor unit 105. Therefore, at the next scan time, the loop monitor unit 105, which will be described later, stores the update history of the designated device value in the history data storage unit 102. For example, when the specified device value is updated in the loop repeated five times, the loop monitor unit 105 stores the updated five values in the history data storage unit 102.

スキャンが終了すると、コマンド処理部104は、履歴データ記憶部102に格納されている読み出したデバイス毎のデータ件数と、履歴データ記憶部102から読み出したデバイス値の更新履歴のデータとをコマンド送受信部106を介してエンジニアリングツール500に送信する。その後、コマンド処理部104は、履歴データ記憶部102に格納されたデバイス値の履歴を削除する。 When the scan is completed, the command processing unit 104 sends the number of data items for each read device stored in the history data storage unit 102 and the update history data of the device value read from the history data storage unit 102 to the command transmission / reception unit. It is transmitted to the engineering tool 500 via 106. After that, the command processing unit 104 deletes the history of device values stored in the history data storage unit 102.

ループモニタ部105は、コマンド処理部104からデバイス値の更新履歴が要求されている旨とループモニタ要求で指定されたデバイス値を特定する情報とが供給されると、まず、ユーザプログラム111の次の周期における実行が開始される前にデバイス値を格納するのに必要な領域を履歴データ記憶部102に確保する。具体的には、ループモニタ部105は、ユーザプログラム111の構文解析を行い、指定されたデバイス値が更新されるループを抽出し、指定されたデバイス値及びデータ長とから、ループを1回実行する場合に指定されたデバイス値を格納するのに必要なメモリの記憶容量を算出する。 When the command processing unit 104 supplies the fact that the update history of the device value is requested and the information for specifying the device value specified in the loop monitor request, the loop monitor unit 105 first receives the user program 111. The history data storage unit 102 secures an area necessary for storing the device value before the execution in the cycle of is started. Specifically, the loop monitor unit 105 analyzes the syntax of the user program 111, extracts a loop in which the specified device value is updated, and executes the loop once from the specified device value and data length. Calculates the memory storage capacity required to store the specified device value.

例えば、ループモニタ要求でデバイスメモリの「D1」、「D2」、「D3」のデバイス値の履歴が要求されているとする。これらのデバイス値のデータ長が2バイトであるとする。ユーザプログラム111内のあるループ内で、デバイス「D1」、「D2」の値がそれぞれ1回ずつ更新される場合は、そのループを1回実行する場合に必要なメモリの記憶容量は4バイトである。さらに、ユーザプログラム111内の他のループ内でデバイス「D2」、「D3」の値がそれぞれ1回更新されるとする。この場合、このループを1回実行する場合にデバイス値を記憶するのに必要なメモリの記憶容量は4バイトである。この場合、ループモニタ部105は、指定されたデバイスが更新されるループを特定する情報と、算出したループ毎のメモリの記憶容量とをメモリ110に記憶しておく必要がある。ループを特定する情報は、例えば、ユーザプログラム111内の各命令の実行順を示すステップ番号である。 For example, suppose that a loop monitor request requests a history of device values of "D1", "D2", and "D3" in the device memory. It is assumed that the data length of these device values is 2 bytes. If the values of the devices "D1" and "D2" are updated once in a loop in the user program 111, the memory storage capacity required to execute the loop once is 4 bytes. is there. Further, it is assumed that the values of the devices "D2" and "D3" are updated once in each of the other loops in the user program 111. In this case, the storage capacity of the memory required to store the device value when this loop is executed once is 4 bytes. In this case, the loop monitor unit 105 needs to store in the memory 110 the information for identifying the loop in which the specified device is updated and the calculated storage capacity of the memory for each loop. The information that identifies the loop is, for example, a step number indicating the execution order of each instruction in the user program 111.

さらに、ループモニタ部105は、実行部103がユーザプログラム111の各命令を実行している最中であって、ループ処理が開始されるタイミングで、ユーザプログラム111でループを繰り返すよう指定された回数であるループの繰り返し回数を判別する。ループ処理が開始されるタイミングとは、例えば、実行部103がループ処理を示すFOR命令を1回目に実行するタイミングである。ループモニタ部105は、判別したループの繰り返し回数と、予め算出しておいたループを1回実行する場合に必要なメモリの記憶容量とから、ループを実行する場合にデバイス値の履歴を記憶するのに必要なメモリの記憶容量を算出する。その後、ループモニタ部105は、算出したメモリの記憶容量から必要な領域を履歴データ記憶部102に確保する。 Further, the loop monitor unit 105 is in the process of executing each instruction of the user program 111, and the loop monitor unit 105 is specified to repeat the loop in the user program 111 at the timing when the loop processing is started. The number of times the loop is repeated is determined. The timing at which the loop processing is started is, for example, the timing at which the execution unit 103 executes the FOR instruction indicating the loop processing for the first time. The loop monitor unit 105 stores the history of device values when the loop is executed, based on the number of times the determined loop is repeated and the memory storage capacity required when the loop is executed once, which is calculated in advance. Calculate the storage capacity of the memory required for. After that, the loop monitor unit 105 secures a necessary area in the history data storage unit 102 from the calculated storage capacity of the memory.

このように、ループを開始するタイミングで繰り返し回数を判別するのは、ループの開始のタイミングにならないと、実際の繰り返し回数を判別することができないからである。これは、次のような理由による。ユーザプログラム111のループは、入力値によって実行されない場合もあるからである。ユーザプログラム111は、リレーシーケンスの回路を実現するものであり、各命令は、入力値によって、接点がオンしたときに実行される。一方、入力値に応じて接点がオフしたときには命令は実行されない。このため、ループ処理自体が実行されないこともあり得るし、ループ処理内の特定の命令が実行されないこともあり得る。また、繰り返し回数が固定値ではなく、ユーザプログラム111の命令の実行によって動的に決められる回数である場合もあるからである。 In this way, the number of repetitions is determined at the timing of starting the loop because the actual number of repetitions cannot be determined until the timing of starting the loop. This is due to the following reasons. This is because the loop of the user program 111 may not be executed depending on the input value. The user program 111 realizes a circuit of a relay sequence, and each instruction is executed when a contact is turned on according to an input value. On the other hand, the instruction is not executed when the contact is turned off according to the input value. Therefore, the loop processing itself may not be executed, or a specific instruction in the loop processing may not be executed. Further, the number of repetitions is not a fixed value, but may be a number dynamically determined by the execution of the instruction of the user program 111.

ループモニタ部105は、ループが繰り返されるたび、ループモニタ要求で指定されたデバイス値の更新された値を履歴データ記憶部102に格納する。具体的には、ループモニタ部105は、実行部103により図3に示すNEXT命令が実行されるたびに、ループモニタ要求で指定されたデバイス値を履歴データ記憶部102に格納する。さらに、ループモニタ部105は、ループが繰り返された回数をカウントする。 The loop monitor unit 105 stores the updated value of the device value specified in the loop monitor request in the history data storage unit 102 each time the loop is repeated. Specifically, each time the execution unit 103 executes the NEXT instruction shown in FIG. 3, the loop monitor unit 105 stores the device value specified in the loop monitor request in the history data storage unit 102. Further, the loop monitor unit 105 counts the number of times the loop is repeated.

また、実行部103が指定されたデバイス値を更新するループ内で、入力値によりループ中断命令を実行し、ループを抜ける場合がある。ループ中断命令が実行されると、それ以降指定されたデバイス値の更新は繰り返されない。例えば、図3に示す例では、「FOR 40…NEXT」のループ内において、入力値「X150」がオンした場合に、「BREAK」が実行される。この場合、実行部103は、「FOR 40…NEXT」のループを抜けて、ループの次の処理を実行する。 Further, in the loop in which the execution unit 103 updates the specified device value, the loop break instruction may be executed according to the input value to exit the loop. Once the loop break instruction is executed, the specified device value will not be updated repeatedly. For example, in the example shown in FIG. 3, "BREAK" is executed when the input value "X150" is turned on in the loop of "FOR 40 ... NEXT". In this case, the execution unit 103 exits the loop of "FOR 40 ... NEXT" and executes the next processing of the loop.

図2に示すループモニタ部105は、実行部103がループ中断命令を実行した場合には、ループ開始前に判別した繰り返し回数を修正し、修正した繰り返し回数をデータ件数として履歴データ記憶部102に格納する。例えば、ループモニタ部105が、ループ開始前に繰り返し回数が30回であると判別した場合に、実行部103が、ループを15回繰り返した後に、ループ中断命令を実行したとする。この場合、ループモニタ部105は、繰り返し回数を30回から、15回に修正する。ループモニタ部105が繰り返し回数を修正するのは、次のような理由による。前述のように、コマンド処理部104は、履歴データ記憶部102に格納されたデバイス値とともに、データ件数をエンジニアリングツール500に送信するので、正確なデータ件数が履歴データ記憶部102に格納されている必要がある。ループが中断されなかった場合には、ループモニタ部105は、指定されたデバイス毎に、ループ開始前に判別した繰り返し回数をデータ件数として履歴データ記憶部102に格納する。ループモニタ部105の機能は、図1に示す演算装置140により実現される。ループモニタ部105は本発明の履歴管理手段の一例である。 When the execution unit 103 executes the loop interruption instruction, the loop monitor unit 105 shown in FIG. 2 corrects the number of repetitions determined before the start of the loop, and uses the corrected number of repetitions as the number of data in the history data storage unit 102. Store. For example, suppose that when the loop monitor unit 105 determines that the number of repetitions is 30 before the start of the loop, the execution unit 103 executes the loop interruption instruction after repeating the loop 15 times. In this case, the loop monitor unit 105 corrects the number of repetitions from 30 to 15. The loop monitor unit 105 corrects the number of repetitions for the following reasons. As described above, since the command processing unit 104 transmits the number of data items to the engineering tool 500 together with the device value stored in the history data storage unit 102, the accurate number of data items is stored in the history data storage unit 102. There is a need. When the loop is not interrupted, the loop monitor unit 105 stores the number of repetitions determined before the start of the loop as the number of data in the history data storage unit 102 for each designated device. The function of the loop monitor unit 105 is realized by the arithmetic unit 140 shown in FIG. The loop monitor unit 105 is an example of the history management means of the present invention.

また、ループモニタ部105に、コマンド処理部104からデバイス値の更新履歴が要求されている旨とループモニタ要求で指定されたデバイス値を特定する情報とが供給されたにもかかわらず、ユーザプログラム111内にループ処理が存在していない場合もある。この場合、ループが繰り返されないため、ループモニタ部105は、データ件数として0件を履歴データ記憶部102に格納する。あるいは、ユーザプログラム111内にループ処理が存在していても、入力値によって接点がオンしないことにより、実行部103がループ処理を実行しない場合もある。この場合も、ループモニタ部105は、データ件数として0件を履歴データ記憶部102に格納する。 Further, despite the fact that the command processing unit 104 has requested the update history of the device value and the information for specifying the device value specified in the loop monitor request has been supplied to the loop monitor unit 105, the user program There may be no loop processing in 111. In this case, since the loop is not repeated, the loop monitor unit 105 stores 0 data items in the history data storage unit 102. Alternatively, even if the loop processing exists in the user program 111, the execution unit 103 may not execute the loop processing because the contact is not turned on depending on the input value. In this case as well, the loop monitor unit 105 stores 0 data items in the history data storage unit 102.

図2に示すコマンド送受信部106は、エンジニアリングツール500からノーマルモニタ要求又はループモニタ要求を受け付け、受け付けたノーマルモニタ要求またはループモニタ要求をコマンド処理部104に出力する。また、コマンド送受信部106は、コマンド処理部104から供給されたデバイス値を含むデータにヘッダを付加したモニタ応答をエンジニアリングツール500に送信する。コマンド送受信部106の機能は、図1のツール用インタフェース130と演算装置140とにより実現される。 The command transmission / reception unit 106 shown in FIG. 2 receives a normal monitor request or a loop monitor request from the engineering tool 500, and outputs the received normal monitor request or loop monitor request to the command processing unit 104. Further, the command transmission / reception unit 106 transmits a monitor response in which a header is added to the data including the device value supplied from the command processing unit 104 to the engineering tool 500. The function of the command transmission / reception unit 106 is realized by the tool interface 130 and the arithmetic unit 140 of FIG.

続いて、図2を参照しながらエンジニアリングツール500の機能的な構成を説明する。エンジニアリングツール500は、機能的には、CPUユニット100とコマンドの送受信を行うコマンド送受信部501と、ユーザが指定したデバイス値のモニタ要求を生成するモニタ要求部502と、モニタ応答の内容を表示する表示部503とを備える。 Subsequently, the functional configuration of the engineering tool 500 will be described with reference to FIG. Functionally, the engineering tool 500 displays a command transmission / reception unit 501 that sends / receives commands to / from the CPU unit 100, a monitor request unit 502 that generates a monitor request for a device value specified by the user, and the contents of the monitor response. It is provided with a display unit 503.

コマンド送受信部501は、モニタ要求部502から供給されたモニタ要求の内容を示すデータにヘッダを付加したモニタ要求をCPUユニット100に送信する。 The command transmission / reception unit 501 transmits to the CPU unit 100 a monitor request in which a header is added to data indicating the contents of the monitor request supplied from the monitor request unit 502.

さらに、コマンド送受信部501は、CPUユニット100からモニタ応答を受け付け、受け付けたモニタ応答をモニタ要求部502に出力する。コマンド送受信部501の機能は、図1の通信インタフェース540と演算装置550とにより実現される。 Further, the command transmission / reception unit 501 receives the monitor response from the CPU unit 100 and outputs the received monitor response to the monitor request unit 502. The function of the command transmission / reception unit 501 is realized by the communication interface 540 and the arithmetic unit 550 of FIG.

モニタ要求部502は、ユーザの入力操作を受け付け、ユーザの入力操作が示すデバイス値のモニタ要求の内容を示すデータを生成し、生成したモニタ要求の内容を示すデータをコマンド送受信部501に出力する。モニタ要求部502が生成したループモニタ要求の内容を示すデータには、ユーザが指定したデバイスの領域を特定する値と、開始番号及び終了番号と、デバイス定義情報512において定義されたデバイス値のデータ長を示す値とが含まれている。 The monitor request unit 502 receives the user's input operation, generates data indicating the content of the monitor request of the device value indicated by the user's input operation, and outputs the data indicating the content of the generated monitor request to the command transmission / reception unit 501. .. The data indicating the content of the loop monitor request generated by the monitor request unit 502 includes data for specifying the device area specified by the user, a start number and an end number, and device value data defined in the device definition information 512. A value indicating the length is included.

また、モニタ要求部502は、コマンド送受信部501を介して、CPUユニット100からモニタ応答を受信すると、次のような処理を行う。モニタ要求部502は、モニタ応答に含まれているデータ件数と、デバイス定義情報512において定義されたデバイス値のデータ長とからモニタ応答のデータを格納するのに必要なメモリの記憶容量を算出する。モニタ要求部502は、算出したメモリの記憶容量からモニタ応答のデータを格納するのに必要な領域をメモリ510に確保する。その後、モニタ要求部502は、モニタ応答のデータを、確保したメモリ510の領域に格納し、表示部503にモニタ応答のデータをメモリ510に格納した旨を通知する。 Further, when the monitor request unit 502 receives the monitor response from the CPU unit 100 via the command transmission / reception unit 501, the monitor request unit 502 performs the following processing. The monitor request unit 502 calculates the storage capacity of the memory required to store the monitor response data from the number of data items included in the monitor response and the data length of the device value defined in the device definition information 512. .. The monitor request unit 502 secures in the memory 510 an area required for storing monitor response data from the calculated storage capacity of the memory. After that, the monitor request unit 502 stores the monitor response data in the reserved memory 510 area, and notifies the display unit 503 that the monitor response data is stored in the memory 510.

表示部503は、メモリ510に格納されたモニタ応答のデータを出力装置530のディスプレイに表示する。表示部503の機能は、図1の出力装置530と演算装置550とにより実現される。 The display unit 503 displays the monitor response data stored in the memory 510 on the display of the output device 530. The function of the display unit 503 is realized by the output device 530 and the arithmetic unit 550 of FIG.

続いて、ユーザがエンジニアリングツール500を使用してCPUユニット100のデバイス値をモニタする方法を説明する。ユーザは、図1に示すように、エンジニアリングツール500とCPUユニット100とを通信ケーブル905を介して相互に接続した状態で、キーボード、マウス等の入力装置520を操作して、モニタ用プログラム511を起動する。演算装置550は、ユーザの操作に応答してモニタ用プログラム511を実行し、以下の機能を実現する。 Subsequently, a method for the user to monitor the device value of the CPU unit 100 by using the engineering tool 500 will be described. As shown in FIG. 1, the user operates the input device 520 such as a keyboard and a mouse in a state where the engineering tool 500 and the CPU unit 100 are connected to each other via the communication cable 905 to execute the monitor program 511. to start. The arithmetic unit 550 executes the monitor program 511 in response to the user's operation, and realizes the following functions.

演算装置550は、図4Aに示すようなデバイスモニタの入力画面を出力装置530に表示する。入力画面において、ユーザは、モニタしたいデバイスの領域を選択し、選択された領域における範囲を示す開始番号及び終了番号を入力することができる。さらに、ユーザは、「ループ処理内におけるデバイス値の履歴を出力する。」のチェックボックスのチェックの有無により、スキャン後のデバイス値を要求するのか、ループ処理において更新されたデバイス値の更新履歴を要求するのかを指定することができる。ユーザが、図4Aに示す画面上において、キーボード、マウス等の入力装置520を操作して、モニタしたいデバイスを選択し、当該領域における範囲を示す開始番号及び終了番号を入力し、「送信」ボタンを押したとする。 The arithmetic unit 550 displays the input screen of the device monitor as shown in FIG. 4A on the output device 530. On the input screen, the user can select an area of the device to be monitored and enter a start number and an end number indicating the range in the selected area. Furthermore, the user requests the device value after scanning depending on whether or not the check box of "Output the history of the device value in the loop processing" is checked, or the update history of the device value updated in the loop processing is displayed. You can specify whether to request it. On the screen shown in FIG. 4A, the user operates an input device 520 such as a keyboard and a mouse to select a device to be monitored, inputs a start number and an end number indicating a range in the area, and clicks a "send" button. Suppose you press.

演算装置550は、ユーザの操作に応答して、選択されたデバイスの領域を特定する値と、当該領域において読み出す範囲を示す開始番号及び終了番号とを含むモニタ要求をCPUユニット100に送信する。図示する例では、チェックボックスがオフであるため、演算装置550は、「X100」から「X150」のデバイス値と、「D50」から「D100」のデバイス値を要求する旨のノーマルモニタ要求をCPUユニット100に送信する。これに応答して、CPUユニット100は、ノーマルモニタ要求で指定されたデバイス値を読み出し、読み出したデバイス値を含むモニタ応答をエンジニアリングツール500に送信する。ここでは、CPUユニット100は、図2に示すデバイスデータ記憶部101から「X100」から「X150」のデバイス値と、「D50」から「D100」のデバイス値を、指定された順序で読み出し、読み出したデバイス値をエンジニアリングツール500に送信する。 In response to the user's operation, the arithmetic unit 550 transmits to the CPU unit 100 a monitor request including a value specifying an area of the selected device and a start number and an end number indicating a range to be read in the area. In the illustrated example, since the check box is unchecked, the arithmetic unit 550 makes a normal monitor request to request the device values of "X100" to "X150" and the device values of "D50" to "D100" to the CPU. Send to unit 100. In response to this, the CPU unit 100 reads the device value specified in the normal monitor request, and sends a monitor response including the read device value to the engineering tool 500. Here, the CPU unit 100 reads and reads the device values of "X100" to "X150" and the device values of "D50" to "D100" from the device data storage unit 101 shown in FIG. 2 in a designated order. The device value is sent to the engineering tool 500.

演算装置550は、CPUユニット100からモニタ応答を受信すると、図4Bに示すようなデバイスモニタの結果画面を出力装置530に表示する。図示する例では、演算装置550は、CPUユニット100から受信したデバイス値とともに、ユーザが入力した開始番号及び終了番号に基づいて、各デバイス値が「X」の領域における何番目のデータであるかを示すデバイスの番号を併せて表示する。また、ユーザが「保存」ボタンを押した場合には、演算装置550は、CPUユニット100から受信したモニタ応答に含まれるデバイス値をメモリ510に保存する。 When the arithmetic unit 550 receives the monitor response from the CPU unit 100, the arithmetic unit 550 displays the result screen of the device monitor as shown in FIG. 4B on the output device 530. In the illustrated example, the arithmetic unit 550 is the number data in the area where each device value is "X" based on the device value received from the CPU unit 100 and the start number and end number input by the user. The device number indicating is also displayed. Further, when the user presses the "save" button, the arithmetic unit 550 saves the device value included in the monitor response received from the CPU unit 100 in the memory 510.

また、ユーザが、図5Aに示すように、入力画面において、モニタしたいデバイスの領域を選択し、選択された領域における範囲を示す開始番号及び終了番号を入力して、「ループ処理内におけるデバイス値の履歴を出力する。」のチェックボックスをオンにして「送信」ボタンを押したとする。この場合、演算装置550は、「Y100」及び「Y201」のデバイス値を要求する旨のループモニタ要求をCPUユニット100に送信する。これに応答して、CPUユニット100は、ループモニタ要求で指定されたデバイス値の履歴を履歴データ記憶部102に格納する。CPUユニット100は、履歴データ記憶部102から読み出したデバイス値を含むモニタ応答をエンジニアリングツール500に送信する。ここでは、CPUユニット100は、図2に示す履歴データ記憶部102から「Y100」及び「Y201」の更新履歴のデータを更新された順序で読み出し、読み出したデバイス値をセットしたモニタ応答をエンジニアリングツール500に送信する。 Further, as shown in FIG. 5A, the user selects the area of the device to be monitored on the input screen, inputs the start number and the end number indicating the range in the selected area, and "device value in the loop processing". It is assumed that the check box of "Output the history of" is selected and the "Send" button is pressed. In this case, the arithmetic unit 550 transmits a loop monitor request to request the device values of "Y100" and "Y201" to the CPU unit 100. In response to this, the CPU unit 100 stores the history of the device value specified in the loop monitor request in the history data storage unit 102. The CPU unit 100 transmits a monitor response including a device value read from the history data storage unit 102 to the engineering tool 500. Here, the CPU unit 100 reads the update history data of "Y100" and "Y201" from the history data storage unit 102 shown in FIG. 2 in the updated order, and sets the read device value as an engineering tool. Send to 500.

演算装置550は、CPUユニット100からモニタ応答を受信すると、図5Bに示すようなデバイスモニタの結果画面を出力装置530に表示する。図示する例では、演算装置550は、各デバイス値が何回目のループで更新されたデータであるかを示す番号を併せて表示する。また、ユーザが「保存」ボタンを押した場合には、演算装置550は、CPUユニット100から受信したモニタ応答に含まれるデバイス値をメモリ510に保存する。 When the arithmetic unit 550 receives the monitor response from the CPU unit 100, the arithmetic unit 550 displays the result screen of the device monitor as shown in FIG. 5B on the output device 530. In the illustrated example, the arithmetic unit 550 also displays a number indicating the number of times the device value is updated in the loop. Further, when the user presses the "save" button, the arithmetic unit 550 saves the device value included in the monitor response received from the CPU unit 100 in the memory 510.

次に、CPUユニット100が、エンジニアリングツール500からモニタ要求を受け付けた場合に、モニタ応答をエンジニアリングツール500に返すモニタ応答処理を説明する。以下の処理は、図1に示す演算装置140がモニタ応答プログラム112を実行することで実現される。 Next, when the CPU unit 100 receives the monitor request from the engineering tool 500, the monitor response process for returning the monitor response to the engineering tool 500 will be described. The following processing is realized by the arithmetic unit 140 shown in FIG. 1 executing the monitor response program 112.

演算装置140は、ユーザプログラム111をスキャンタイム毎に実行しており、ユーザプログラム111のEND命令を実行した後に、モニタ要求を受信したか否かを判別する。演算装置140は、エンジニアリングツール500からモニタ要求を受信したと判別した場合に、以下のモニタ応答処理を開始する。演算装置140は、ユーザプログラム111の実行と並行してモニタ応答処理を行うものとする。 The arithmetic unit 140 executes the user program 111 every scan time, and determines whether or not a monitor request has been received after executing the END instruction of the user program 111. When the arithmetic unit 140 determines that the monitor request has been received from the engineering tool 500, the arithmetic unit 140 starts the following monitor response processing. The arithmetic unit 140 shall perform monitor response processing in parallel with the execution of the user program 111.

図6Aに示すように、演算装置140は、エンジニアリングツール500からループモニタ要求を受信したか否かを判別する(ステップS11)。演算装置140は、ループモニタ要求を受信したと判別すると(ステップS11;Yes)、ループを1回実行する場合のメモリの記憶容量を算出する(ステップS12)。具体的には、演算装置140は、ユーザプログラム111の構文解析を行い、モニタ要求で指定されたデバイス値が更新されるループを抽出し、モニタ要求で指定されたデバイス値のデータ長からループを1回実行する場合にデバイス値の更新履歴のデータを格納するのに必要なメモリの記憶容量を判別する。演算装置140は、抽出したループを特定するための情報と、そのループを実行した場合に必要なメモリの記憶容量をメモリ110に格納する。 As shown in FIG. 6A, the arithmetic unit 140 determines whether or not a loop monitor request has been received from the engineering tool 500 (step S11). When the arithmetic unit 140 determines that the loop monitor request has been received (step S11; Yes), the arithmetic unit 140 calculates the storage capacity of the memory when the loop is executed once (step S12). Specifically, the arithmetic unit 140 performs parsing of the user program 111, extracts a loop in which the device value specified in the monitor request is updated, and loops from the data length of the device value specified in the monitor request. Determine the storage capacity of the memory required to store the update history data of the device value when it is executed once. The arithmetic unit 140 stores in the memory 110 the information for identifying the extracted loop and the storage capacity of the memory required when the loop is executed.

演算装置140は、次の周期として設定されたタイミングで、ユーザプログラム111の実行を開始する。演算装置140は、ユーザプログラム111の各命令を順次実行し、ループモニタ要求で指定されたデバイス値が更新されるループを開始すると判別すると(ステップS13;Yes)、ステップS14の処理を実行する。ステップS14で、演算装置140は、指定されたループの繰り返し回数を判別し、ループの繰り返し回数と、ステップS12で算出したループ1回あたりに必要なメモリの記憶容量とから、そのループを全て実行した場合に必要なメモリの記憶容量を算出し、更新履歴のデータを格納するために、算出した記憶容量の領域をメモリ110に確保する(ステップS14)。さらに、演算装置140は、デバイスが更新されるループを特定するための情報とループの繰り返し回数とをメモリ110に格納する。 The arithmetic unit 140 starts the execution of the user program 111 at the timing set as the next cycle. When the arithmetic unit 140 sequentially executes each instruction of the user program 111 and determines that the loop in which the device value specified in the loop monitor request is updated is started (step S13; Yes), the arithmetic unit 140 executes the process of step S14. In step S14, the arithmetic unit 140 determines the number of times the specified loop is repeated, and executes all the loops from the number of times the loop is repeated and the memory storage capacity required for each loop calculated in step S12. In order to calculate the storage capacity of the memory required in this case and store the update history data, an area of the calculated storage capacity is secured in the memory 110 (step S14). Further, the arithmetic unit 140 stores in the memory 110 information for identifying the loop in which the device is updated and the number of times the loop is repeated.

演算装置140は、ループ内の命令を実行する(ステップS15)。演算装置140は、ステップS15で中断命令を実行したか否かを判別する(ステップS16)。演算装置140は、中断命令を実行していないと判別すると(ステップS16;No)、ループモニタ要求で指定されたデバイス値をメモリ110に格納する(ステップS17)。例えば、演算装置140は、当該ループを1回実行した時点で、指定されたデバイス値をメモリ110の更新履歴のデータを格納するために確保された領域に格納する。さらに、演算装置140は、ループを実行した回数をカウントし、カウントした値をメモリ110に格納する。演算装置140は、ループをステップS14で判別した繰り返し回数だけ繰り返していないと判別すると(ステップS18;No)、再びステップS15の処理を実行する。 The arithmetic unit 140 executes the instruction in the loop (step S15). The arithmetic unit 140 determines whether or not the interruption instruction has been executed in step S15 (step S16). When the arithmetic unit 140 determines that the interruption instruction has not been executed (step S16; No), the arithmetic unit 140 stores the device value specified in the loop monitor request in the memory 110 (step S17). For example, the arithmetic unit 140 stores the designated device value in the area reserved for storing the update history data of the memory 110 when the loop is executed once. Further, the arithmetic unit 140 counts the number of times the loop is executed, and stores the counted value in the memory 110. When the arithmetic unit 140 determines that the loop has not been repeated the number of repetitions determined in step S14 (step S18; No), the arithmetic unit 140 executes the process of step S15 again.

演算装置140は、ステップS16において、中断命令を実行したと判別すると(ステップS16;Yes)、ループの繰り返し回数を修正する(ステップS19)。例えば、演算装置140は、今回のループで、指定されたデバイス値を更新する前に中断命令を実行した場合には、ステップS14で算出し、メモリ110に格納したデバイス毎のループの繰り返し回数を、実際にループを繰り返した回数をカウントした値で修正する。演算装置140は、今回のループで、指定されたデバイス値を更新した後に中断命令を実行した場合には、ステップS14で算出したデバイス毎のループの繰り返し回数を、実際にループを繰り返した回数をカウントした値に1を加算した値で修正する。 When the arithmetic unit 140 determines in step S16 that the interruption instruction has been executed (step S16; Yes), the arithmetic unit 140 corrects the number of times the loop is repeated (step S19). For example, if the arithmetic unit 140 executes the interrupt instruction before updating the specified device value in the current loop, the arithmetic unit 140 calculates in step S14 and calculates the number of times the loop is repeated for each device stored in the memory 110. , Correct by counting the number of times the loop is actually repeated. When the arithmetic unit 140 executes the suspend instruction after updating the specified device value in this loop, the number of loop repetitions for each device calculated in step S14 is calculated as the number of times the loop is actually repeated. Correct by adding 1 to the counted value.

また、演算装置140は、ステップS17を実行した後、命令を指定された回数実行したと判別し(ステップS18;Yes)、END命令を実行すると(ステップS20;Yes)、メモリ110に格納されているデバイス値の更新履歴のデータとデータ件数とをエンジニアリングツール500に送信する(ステップS21)。その後、演算装置140は、メモリ110に格納されているデバイス値の更新履歴のデータを削除し、確保した領域を解放し、モニタ応答処理を終了する。 Further, after executing step S17, the arithmetic unit 140 determines that the instruction has been executed a specified number of times (step S18; Yes), and when the END instruction is executed (step S20; Yes), it is stored in the memory 110. The data of the update history of the existing device value and the number of data items are transmitted to the engineering tool 500 (step S21). After that, the arithmetic unit 140 deletes the data of the update history of the device value stored in the memory 110, releases the reserved area, and ends the monitor response process.

一方、ステップS11で、演算装置140は、エンジニアリングツール500からループモニタ要求を受信していないと判別すると(ステップS11;No)、即ち、ノーマルモニタ要求を受信した場合、図6Bに示すように、ユーザプログラム111の命令を順次実行し(ステップS22)、END命令を実行してから(ステップS23;Yes)、メモリ110に格納されているスキャン後のデバイス値をエンジニアリングツール500に送信する(ステップS24)。 On the other hand, in step S11, when the arithmetic unit 140 determines that the loop monitor request has not been received from the engineering tool 500 (step S11; No), that is, when the normal monitor request is received, as shown in FIG. 6B, The instructions of the user program 111 are sequentially executed (step S22), the END instruction is executed (step S23; Yes), and then the scanned device value stored in the memory 110 is transmitted to the engineering tool 500 (step S24). ).

以上説明したように、実施の形態に係るプログラマブルロジックコントローラ1においては、プログラムの繰り返し処理において書き換えられるデバイス値をモニタすることができる。よって、ユーザは、プログラムをデバッグする際に、従来のように、プログラムにデバッグ用のコードを追加したり、プログラムの実行を随時中断したりする必要がない。これにより、プログラムの開発工数を減らすことが可能である。 As described above, in the programmable logic controller 1 according to the embodiment, it is possible to monitor the device value that is rewritten in the iterative processing of the program. Therefore, when debugging a program, the user does not need to add debugging code to the program or interrupt the execution of the program at any time as in the conventional case. This makes it possible to reduce the man-hours for developing the program.

(変形例)
実施の形態においては、CPUユニット100は、モニタ応答として、データ件数とデータとをエンジニアリングツール500に送信したが、これに限られない。例えば、CPUユニット100は、モニタ応答の送信前に、データ件数をエンジニアリングツール500に通知するようにしてもよい。この場合、エンジニアリングツール500の演算装置550は、通知されたデータ件数から、ループ処理による更新履歴のデータを格納するのに必要なメモリ容量を算出し、メモリ510に更新履歴のデータを格納することが可能であるか否か判別することができる。または、CPUユニット100は、モニタ応答の送信前に、データ件数から算出した更新履歴のデータを格納するのに必要なメモリ容量をエンジニアリングツール500に通知するようにしてもよい。
(Modification example)
In the embodiment, the CPU unit 100 transmits the number of data items and the data to the engineering tool 500 as a monitor response, but the present invention is not limited to this. For example, the CPU unit 100 may notify the engineering tool 500 of the number of data items before transmitting the monitor response. In this case, the arithmetic unit 550 of the engineering tool 500 calculates the memory capacity required for storing the update history data by the loop processing from the notified number of data, and stores the update history data in the memory 510. Can be determined whether or not is possible. Alternatively, the CPU unit 100 may notify the engineering tool 500 of the memory capacity required for storing the update history data calculated from the number of data items before transmitting the monitor response.

演算装置550は、更新履歴のデータをメモリ510に格納することができると判別した場合、モニタ応答の受信が可能である旨の通知をCPUユニット100に送信してもよい。一方、演算装置550は、更新履歴のデータをメモリ510に格納することができないと判別した場合、モニタ応答の受信をキャンセルする旨の通知をCPUユニット100に送信してもよい。このような構成の場合、CPUユニット100から、エンジニアリングツール500に対して、エンジニアリングツール500のメモリ510に格納することができないほどの大容量のデータが送信されることを防止することができる。 When the arithmetic unit 550 determines that the update history data can be stored in the memory 510, the arithmetic unit 550 may send a notification to the CPU unit 100 that the monitor response can be received. On the other hand, when the arithmetic unit 550 determines that the update history data cannot be stored in the memory 510, the arithmetic unit 550 may send a notification to the CPU unit 100 to cancel the reception of the monitor response. In such a configuration, it is possible to prevent the CPU unit 100 from transmitting a large amount of data that cannot be stored in the memory 510 of the engineering tool 500 to the engineering tool 500.

また、あるいは、エンジニアリングツール500の演算装置550は、モニタ要求を送信するときに、モニタ応答のデータの件数について事前の通知が必要か否かを示す情報をセットして、モニタ要求をCPUユニット100に送信するようにしてもよい。この場合、CPUユニット100は、データ件数の事前の通知が必要である場合のみ、モニタ応答の送信前に、データ件数をエンジニアリングツール500に通知するようにしてもよい。 Alternatively, the arithmetic unit 550 of the engineering tool 500 sets information indicating whether or not prior notification is required regarding the number of monitor response data when transmitting the monitor request, and sends the monitor request to the CPU unit 100. It may be sent to. In this case, the CPU unit 100 may notify the engineering tool 500 of the number of data items before transmitting the monitor response only when it is necessary to notify the number of data items in advance.

あるいは、演算装置550は、CPUユニット100から通知されたデータ件数又はメモリ容量から、更新履歴のデータの全部を受信できないと判別した場合には、一部のデータを受信することができることをCPUユニット100に通知するようにしてもよい。例えば、演算装置550は、更新履歴のデータの前半の半分だけ受信する、あるいは、更新履歴のデータの後半の半分だけ受信するようにしてもよい。この場合、演算装置550は、ユーザに指定された範囲のデータを受信するようにしてもよい。 Alternatively, if the arithmetic unit 550 determines that all the update history data cannot be received from the number of data items or the memory capacity notified from the CPU unit 100, the CPU unit can receive a part of the data. You may notify 100. For example, the arithmetic unit 550 may receive only the first half of the update history data, or may receive only the second half of the update history data. In this case, the arithmetic unit 550 may receive data in a range specified by the user.

例えば、演算装置550は、算出したメモリの記憶容量を確保することが不可能であると判別した場合、図7に示すように、指定したデバイス値の履歴を全件取得することが不可能であることを示すメッセージを出力装置530のディスプレイに表示する。図示する例では、演算装置550は、CPUユニット100から通知された件数が5000件であることとともに、受信の方法の選択肢を表示している。ここでは、選択肢として、データの前半の半分だけを受信すること、データの後半の半分だけを受信すること、ループモニタ要求をキャンセルすることが挙げられている。ここで、ユーザが、入力装置520を操作していずれかの選択肢を選択し、「送信」を押したとする。 For example, when the arithmetic unit 550 determines that it is impossible to secure the calculated storage capacity of the memory, it is impossible to acquire all the history of the specified device values as shown in FIG. A message indicating the presence is displayed on the display of the output device 530. In the illustrated example, the arithmetic unit 550 displays the number of cases notified from the CPU unit 100 of 5,000 and the options of the receiving method. Here, the options are to receive only the first half of the data, to receive only the second half of the data, and to cancel the loop monitor request. Here, it is assumed that the user operates the input device 520 to select one of the options and presses "send".

演算装置550は、ユーザが選択した選択肢を示す指示を、CPUユニット100に送信する。ユーザが、「前半の2500件を受信する」を選択した場合、演算装置550は、CPUユニット100に前半の2500件を受信する旨の通知を送信する。さらに、演算装置550は、2500件のデータを受信するのに必要なメモリの記憶容量を算出し、メモリ510に算出したメモリの記憶容量の領域を確保する。この場合、CPUユニット100は、エンジニアリングツール500からの通知に応じたデータをエンジニアリングツール500に送信する。あるいは、ユーザが、「後半の2500件を受信する」を選択した場合、演算装置550は、CPUユニット100に後半の2500件を受信する旨の通知を送信する。さらに、演算装置550は、2500件のデータを受信するのに必要なメモリの記憶容量を算出し、メモリ510に算出したメモリの記憶容量の領域を確保する。この場合、CPUユニット100は、エンジニアリングツール500からの通知に応じたデータをエンジニアリングツール500に送信する。または、ユーザが「モニタ要求をキャンセルする」を選択した場合、演算装置550は、CPUユニット100にモニタ要求をキャンセルする旨の通知を送信する。この場合、CPUユニット100はエンジニアリングツールにデータを送信しない。 The arithmetic unit 550 transmits an instruction indicating the option selected by the user to the CPU unit 100. When the user selects "receive 2500 cases in the first half", the arithmetic unit 550 sends a notification to the CPU unit 100 that the 2500 cases in the first half are received. Further, the arithmetic unit 550 calculates the storage capacity of the memory required for receiving 2500 data, and secures the area of the calculated storage capacity of the memory in the memory 510. In this case, the CPU unit 100 transmits the data corresponding to the notification from the engineering tool 500 to the engineering tool 500. Alternatively, when the user selects "receive 2500 cases in the latter half", the arithmetic unit 550 sends a notification to the CPU unit 100 that the 2500 cases in the latter half are received. Further, the arithmetic unit 550 calculates the storage capacity of the memory required for receiving 2500 data, and secures the area of the calculated storage capacity of the memory in the memory 510. In this case, the CPU unit 100 transmits the data corresponding to the notification from the engineering tool 500 to the engineering tool 500. Alternatively, when the user selects "Cancel the monitor request", the arithmetic unit 550 sends a notification to the CPU unit 100 to cancel the monitor request. In this case, the CPU unit 100 does not send data to the engineering tool.

実施の形態においては、デバイス値をモニタするための外部機器として、エンジニアリングツール500を例に説明したが、外部機器は、プログラマブル表示器であってもよいし、あるいは、CPUユニット100と通信可能な他の情報処理装置であってもよい。 In the embodiment, the engineering tool 500 has been described as an example as an external device for monitoring the device value, but the external device may be a programmable display or can communicate with the CPU unit 100. It may be another information processing device.

実施の形態においては、図3に示すように繰り返し処理を示す命令として「FOR…NEXT」の例を説明したが、繰り返し処理の命令はこれに限られない。繰り返し処理の他の命令としては、例えば、「DO…WHILE」がある。この場合、ループモニタ部105は、実行部103がDO命令を1回目に実行したときに、ループ処理が開始されたと判別する。ループモニタ部105は、実行部103がWHILE命令を1回目に実行したタイミングで、ループの繰り返し回数を判別し、必要なメモリの記憶容量を算出し、デバイス値を格納するのに必要な領域を履歴データ記憶部102に確保する。さらに、ループモニタ部105は、デバイス値を履歴データ記憶部102に格納すればよい。 In the embodiment, as shown in FIG. 3, an example of "FOR ... NEXT" has been described as an instruction indicating the iterative processing, but the instruction for the iterative processing is not limited to this. As another instruction of the iterative process, for example, there is "DO ... WHILE". In this case, the loop monitor unit 105 determines that the loop processing has started when the execution unit 103 executes the DO instruction for the first time. The loop monitor unit 105 determines the number of times the loop is repeated at the timing when the execution unit 103 executes the WHILE instruction for the first time, calculates the required memory storage capacity, and determines the area required for storing the device value. It is secured in the history data storage unit 102. Further, the loop monitor unit 105 may store the device value in the history data storage unit 102.

実施の形態においては、ユーザは、エンジニアリングツール500を使用して、デバイス値を指定して、更新履歴のモニタ要求をCPUユニット100に出したが、これに限られない。ユーザは、ループと、デバイス値とを指定してモニタ要求をCPUユニット100に出してもよい。この場合、同じデバイス値が複数のループで更新される場合であっても、指定されたループ内における更新履歴だけをモニタすることができる。 In the embodiment, the user uses the engineering tool 500 to specify the device value and issues an update history monitor request to the CPU unit 100, but the present invention is not limited to this. The user may issue a monitor request to the CPU unit 100 by designating a loop and a device value. In this case, even if the same device value is updated in a plurality of loops, only the update history in the specified loop can be monitored.

上記のプログラムを記録する記録媒体としては、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリ、半導体メモリ、磁気テープを含むコンピュータ読取可能な記録媒体を使用することができる。 As the recording medium for recording the above program, a computer-readable recording medium including a magnetic disk, an optical disk, a magneto-optical disk, a flash memory, a semiconductor memory, and a magnetic tape can be used.

本発明は、広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施形態ではなく、請求の範囲によって示される。そして、請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。 The present invention allows for various embodiments and modifications without departing from the broad spirit and scope. Moreover, the above-described embodiment is for explaining the present invention, and does not limit the scope of the present invention. That is, the scope of the present invention is indicated not by the embodiment but by the claims. Then, various modifications made within the scope of the claims and the equivalent meaning of the invention are considered to be within the scope of the present invention.

1 プログラマブルロジックコントローラ、100 CPUユニット、101 デバイスデータ記憶部、102 履歴データ記憶部、103 実行部、104 コマンド処理部、105 ループモニタ部、106,501 コマンド送受信部、110,510 メモリ、111 ユーザプログラム、112 モニタ応答プログラム、113 デバイスメモリ、120 入出力インタフェース、130 ツール用インタフェース、140,550 演算装置、190,590 バス、200 入力ユニット、300 出力ユニット、400 ベースユニット、410 共有バス、500 エンジニアリングツール、502 モニタ要求部、503 表示部、511 モニタ用プログラム、512 デバイス定義情報、520 入力装置、530 出力装置、540 通信インタフェース、901 検出器、902 被制御機器、905 通信ケーブル 1 Programmable logic controller, 100 CPU unit, 101 device data storage unit, 102 history data storage unit, 103 execution unit, 104 command processing unit, 105 loop monitor unit, 106,501 command transmission / reception unit, 110,510 memory, 111 user program , 112 monitor response program, 113 device memory, 120 input / output interface, 130 tool interface, 140,550 arithmetic unit, 190,590 bus, 200 input unit, 300 output unit, 400 base unit, 410 shared bus, 500 engineering tool , 502 monitor request unit, 503 display unit, 511 monitor program, 512 device definition information, 520 input device, 530 output device, 540 communication interface, 901 detector, 902 controlled device, 905 communication cable.

上記目的を達成するため、本発明のプログラマブルロジックコントローラにおいて、実行手段は、設定された周期毎にプログラムを実行する。デバイス記憶手段は、プログラムの入力値及び出力値を含むデバイス値を記憶する。履歴記憶手段は、デバイス値の更新履歴を記憶する。履歴管理手段は、プログラム内にループ処理があるか否かを判別し、プログラム内にループ処理がある場合に、実行手段がループ処理内の命令を実行することにより更新したデバイス値の更新履歴として、ループ処理の繰り返し回数分の更新されたデバイス値を履歴記憶手段に格納する。 In order to achieve the above object, in the programmable logic controller of the present invention, the execution means executes a program at a set cycle. The device storage means stores device values including input values and output values of the program. The history storage means stores the update history of the device value. History management means determines whether or not there is a loop in a program, if there is a loop in the program, the update history of the updated device value by executing means executes an instruction in the loop As a result, the updated device values corresponding to the number of times the loop processing is repeated are stored in the history storage means.

本発明のプログラマブルロジックコントローラの履歴管理手段は、プログラムにループ処理があるか否かを判別し、プログラム内にループ処理がある場合に、実行手段がループ処理内の命令を実行することにより更新したデバイス値の更新履歴として、ループ処理の繰り返し回数分の更新されたデバイス値を履歴記憶手段に格納する。このような構成を備えることで、ユーザは煩雑な作業を行うことなく、ループ処理において逐次書き換えられるデバイス値の更新履歴を取得することができ、プログラムのデバッグに係る工数を削減することができる。 The history management means of the programmable logic controller of the present invention determines whether or not the program has loop processing, and if there is loop processing in the program, the executing means updates by executing the instruction in the loop processing. As the update history of the device value, the updated device value corresponding to the number of times the loop processing is repeated is stored in the history storage means. By providing such a configuration, the user can acquire the update history of the device value that is sequentially rewritten in the loop processing without performing complicated work, and the man-hours related to program debugging can be reduced.

上記目的を達成するため、本発明のプログラマブルロジックコントローラにおいて、実行手段は、設定された周期毎にプログラムを実行する。デバイス記憶手段は、プログラムの入力値及び出力値を含むデバイス値を記憶する。履歴記憶手段は、デバイス値の更新履歴を記憶する。履歴管理手段は、プログラムのループ処理内で更新されたデバイス値の更新履歴が要求されると、プログラム内にループ処理があるか否かを判別し、プログラム内にループ処理がある場合に、実行手段がループ処理内の命令を実行することにより更新したデバイス値の更新履歴として、ループ処理の繰り返し回数分の更新されたデバイス値を履歴記憶手段に格納する。 In order to achieve the above object, in the programmable logic controller of the present invention, the execution means executes a program at a set cycle. The device storage means stores device values including input values and output values of the program. The history storage means stores the update history of the device value. When the update history of the device value updated in the loop processing of the program is requested , the history management means determines whether or not there is loop processing in the program, and executes it when there is loop processing in the program. As the update history of the device value updated by the means executing the instruction in the loop processing, the updated device value corresponding to the number of times the loop processing is repeated is stored in the history storage means.

本発明のプログラマブルロジックコントローラの履歴管理手段は、プログラムのループ処理内で更新されたデバイス値の更新履歴が要求されると、プログラムにループ処理があるか否かを判別し、プログラム内にループ処理がある場合に、実行手段がループ処理内の命令を実行することにより更新したデバイス値の更新履歴として、ループ処理の繰り返し回数分の更新されたデバイス値を履歴記憶手段に格納する。このような構成を備えることで、ユーザは煩雑な作業を行うことなく、ループ処理において逐次書き換えられるデバイス値の更新履歴を取得することができ、プログラムのデバッグに係る工数を削減することができる。 The history management means of the programmable logic controller of the present invention determines whether or not there is loop processing in the program when the update history of the device value updated in the loop processing of the program is requested , and loops in the program. When there is a process, the updated device value corresponding to the number of times the loop process is repeated is stored in the history storage means as the update history of the device value updated by the executing means executing the instruction in the loop process. By providing such a configuration, the user can acquire the update history of the device value that is sequentially rewritten in the loop processing without performing complicated work, and the man-hours related to program debugging can be reduced.

Claims (9)

設定された周期毎にプログラムを実行する実行手段と、
前記プログラムの入力値及び出力値を含むデバイス値を記憶するデバイス記憶手段と、
前記デバイス値の更新履歴を記憶する履歴記憶手段と、
前記プログラム内にループ処理があるか否かを判別し、前記プログラム内に前記ループ処理がある場合に、前記実行手段が前記ループ処理内の命令を実行することにより更新した前記デバイス値の前記更新履歴を前記履歴記憶手段に格納する履歴管理手段と、
を備えるプログラマブルロジックコントローラ。
Execution means to execute the program at each set cycle,
A device storage means for storing device values including input values and output values of the program, and
A history storage means for storing the update history of the device value and
It is determined whether or not there is a loop process in the program, and when the loop process is in the program, the update of the device value updated by the executing means executing an instruction in the loop process. A history management means for storing the history in the history storage means and
Programmable logic controller with.
前記履歴管理手段は、前記デバイス値の前記更新履歴として、前記ループ処理の繰り返し回数分の更新された前記デバイス値を前記履歴記憶手段に格納する、
請求項1に記載のプログラマブルロジックコントローラ。
The history management means stores, as the update history of the device value, the updated device value corresponding to the number of times the loop process is repeated in the history storage means.
The programmable logic controller according to claim 1.
前記履歴管理手段は、前記ループ処理の前記繰り返し回数に応じて、前記デバイス値の前記更新履歴を記憶するのに必要な記憶容量を算出し、算出した前記記憶容量を前記履歴記憶手段に確保する、
請求項2に記載のプログラマブルロジックコントローラ。
The history management means calculates a storage capacity required to store the update history of the device value according to the number of repetitions of the loop process, and secures the calculated storage capacity in the history storage means. ,
The programmable logic controller according to claim 2.
前記履歴管理手段は、外部機器から指定された前記デバイス値の前記更新履歴を前記履歴記憶手段に格納する、
請求項1から3のいずれか1項に記載のプログラマブルロジックコントローラ。
The history management means stores the update history of the device value designated by the external device in the history storage means.
The programmable logic controller according to any one of claims 1 to 3.
前記履歴管理手段は、前記外部機器から前記デバイス値の前記更新履歴を要求されると、次に開始される周期で、前記実行手段が前記プログラムの前記ループ処理内の命令を繰り返し実行することにより更新された前記デバイス値の履歴を、前記デバイス値の前記更新履歴として、前記履歴記憶手段に格納する、
請求項4に記載のプログラマブルロジックコントローラ。
When the external device requests the update history of the device value, the history management means repeatedly executes an instruction in the loop process of the program in the cycle to be started next. The updated history of the device value is stored in the history storage means as the update history of the device value.
The programmable logic controller according to claim 4.
前記履歴記憶手段に格納された前記デバイス値の前記更新履歴を前記外部機器に送信する要求処理手段をさらに備える、
請求項4又は5に記載のプログラマブルロジックコントローラ。
A request processing means for transmitting the update history of the device value stored in the history storage means to the external device is further provided.
The programmable logic controller according to claim 4 or 5.
前記要求処理手段は、前記ループ処理が繰り返される回数に応じて、前記デバイス値の前記更新履歴を記憶するのに必要な記憶容量を算出し、算出した前記記憶容量を前記外部機器に送信する、
請求項6に記載のプログラマブルロジックコントローラ。
The request processing means calculates a storage capacity required to store the update history of the device value according to the number of times the loop processing is repeated, and transmits the calculated storage capacity to the external device.
The programmable logic controller according to claim 6.
設定された周期毎にプログラムを実行するプログラマブルロジックコントローラが、
前記プログラム内にループ処理があるか否かを判別するステップと、
前記プログラム内に前記ループ処理がある場合に、前記プログラムの入力値及び出力値であって、前記ループ処理内の命令の実行により更新されたデバイス値の更新履歴を記憶手段に格納するステップと、
を実行する方法。
A programmable logic controller that executes a program at set intervals
A step of determining whether or not there is a loop process in the program, and
When there is the loop process in the program, a step of storing the update history of the device value which is the input value and the output value of the program and is updated by the execution of the instruction in the loop process in the storage means.
How to do.
設定された周期毎にプログラムを実行するプログラマブルロジックコントローラに、
前記プログラム内にループ処理があるか否かを判別させ、
前記プログラム内に前記ループ処理がある場合に、前記プログラムの入力値及び出力値であって、前記ループ処理内の命令の実行により更新されたデバイス値の更新履歴を記憶手段に記憶させる、
プログラム。
To the programmable logic controller that executes the program at the set cycle
Determine if there is loop processing in the program
When the loop processing is performed in the program, the storage means stores the update history of the input value and the output value of the program and the device values updated by the execution of the instruction in the loop processing.
program.
JP2019537392A 2018-09-27 2018-09-27 Programmable logic controllers, methods, and programs Pending JPWO2020065863A1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/036078 WO2020065863A1 (en) 2018-09-27 2018-09-27 Programmable logic controller, method, and program

Publications (1)

Publication Number Publication Date
JPWO2020065863A1 true JPWO2020065863A1 (en) 2021-01-07

Family

ID=69951242

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019537392A Pending JPWO2020065863A1 (en) 2018-09-27 2018-09-27 Programmable logic controllers, methods, and programs

Country Status (2)

Country Link
JP (1) JPWO2020065863A1 (en)
WO (1) WO2020065863A1 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4569011B2 (en) * 2001-02-21 2010-10-27 三菱電機株式会社 Programmable controller and peripheral device thereof
JP2003067008A (en) * 2001-08-28 2003-03-07 Matsushita Electric Works Ltd Programmable controller
JP5667948B2 (en) * 2011-09-06 2015-02-12 株式会社東芝 Program inspection device

Also Published As

Publication number Publication date
WO2020065863A1 (en) 2020-04-02

Similar Documents

Publication Publication Date Title
US9984244B2 (en) Controller, information processing apparatus, and recording medium
JP6171386B2 (en) Controller, information processing apparatus and program
US7385927B2 (en) Methods and structure for improved testing of embedded systems
US20140067886A1 (en) Information processing apparatus, method of outputting log, and recording medium
US9824229B2 (en) Controller with enhanced reliability
JP5359601B2 (en) Dump output control device, dump output control program, and dump output control method
US20100312541A1 (en) Program test device and program
JPWO2020065863A1 (en) Programmable logic controllers, methods, and programs
JP5133649B2 (en) Electronic device and memory management program
JP2014235575A (en) Information processing device, information processing method, and program
US10228882B2 (en) Semiconductor device and memory access control method
JP7023807B2 (en) Management system, information processing device, setting management method, and program
CN110554966B (en) Driving debugging method, behavior analysis method and driving debugging system
JP6563155B1 (en) Programmable logic controller, external device, method, and program
JP6405972B2 (en) Operation verification apparatus, operation verification method, and operation verification program
US20220164219A1 (en) Processing system, processing method, higher-level system, lower-level system, higher-level program, and lower-level program
US20230034567A1 (en) Generating and debugging bytecode for a rule
WO2023097883A1 (en) Data transmission method and vehicle-mounted dynamic data management system
KR20180061590A (en) Software build system and software build method using the system
KR100619679B1 (en) Real time monitoring apparatus and method for processor
JP3977694B2 (en) Reset device
JP2019145049A (en) Dynamic link management device, method for managing dynamic link, and program
CN115903558A (en) Integrated circuit, control method and electronic device
JP2009075724A (en) Management apparatus, management system, management program, and management method
KR101323833B1 (en) Apparatus and Method For Scheduling

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190710

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190710

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20190710

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20190806

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191008

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191209

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20200114