JPWO2020079720A1 - プログラマブルロジックコントローラ、外部機器、方法、及びプログラム - Google Patents

プログラマブルロジックコントローラ、外部機器、方法、及びプログラム Download PDF

Info

Publication number
JPWO2020079720A1
JPWO2020079720A1 JP2019519774A JP2019519774A JPWO2020079720A1 JP WO2020079720 A1 JPWO2020079720 A1 JP WO2020079720A1 JP 2019519774 A JP2019519774 A JP 2019519774A JP 2019519774 A JP2019519774 A JP 2019519774A JP WO2020079720 A1 JPWO2020079720 A1 JP WO2020079720A1
Authority
JP
Japan
Prior art keywords
storage means
value
unit
read
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019519774A
Other languages
English (en)
Other versions
JP6563155B1 (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
Application granted granted Critical
Publication of JP6563155B1 publication Critical patent/JP6563155B1/ja
Publication of JPWO2020079720A1 publication Critical patent/JPWO2020079720A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

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

Abstract

プログラマブルロジックコントローラは、設定された周期毎にプログラムを繰り返し実行する。第1デバイス記憶部(101)は、プログラムの入力値及び出力値であるデバイス値を記憶する。第2デバイス記憶部(102)は前回の周期において第1デバイス記憶部(101)が記憶していたデバイス値を記憶する。コマンド処理部(105)は、エンジニアリングツール(500)から受け付けたモニタ要求に指定されたデバイスについて予め設定された読み出し対象が第1デバイス記憶部(101)である場合、その周期におけるプログラムの実行が完了した後に第1デバイス記憶部(101)のデバイス値を読み出し、読み出し対象が第2デバイス記憶部(102)である場合、直ちに第2デバイス記憶部(102)のデバイス値を読み出す。コマンド送受信部(104)は、デバイス値をエンジニアリングツール(500)に送信する。

Description

本発明は、プログラマブルロジックコントローラ、外部機器、方法、及びプログラムに関する。
プログラマブルロジックコントローラのCPUユニットは、制御対象の機器を制御するため、スキャンタイム毎にプログラムの各命令を実行して、検出器から供給された入力信号を使用した演算を行い、演算結果である出力信号を制御対象の機器に供給する。プログラマブルロジックコントローラの入力ユニットは、入力ユニットに接続された検出器から供給された入力信号を、プログラマブルロジックコントローラのCPUユニットに入力する。プログラマブルロジックコントローラの出力ユニットは、CPUユニットが出力した出力信号を、出力ユニットに接続された制御対象の機器に供給する。プログラマブルロジックコントローラのCPUユニットにおいて、検出器から供給された入力信号と、演算結果である出力信号とは、CPUユニットが有するデバイスメモリと呼ばれるメモリ上の領域に格納される。
ユーザは、例えば、プログラマブルロジックコントローラのプログラムの動作が正常であるか否かを確認するために、プログラマブル表示器、プログラムの開発ツール等の外部機器を介してデバイスメモリのデータを監視する。特許文献1には、プログラマブル表示器が、スキャンタイム毎に、即ち、I/O(Input/Output:入出力)リフレッシュのタイミングで、デバイスメモリからデバイス値を読み出し、読み出したデバイス値をディスプレイに表示することが記載されている。
ここで、I/Oリフレッシュとは、各スキャンタイムの最後に、デバイスメモリのデータを、プログラマブルロジックコントローラと、入力ユニット及び出力ユニットとの間で一括交換することをいう。具体的には、CPUユニットと入力ユニットとの間でデバイスメモリのデータ交換が行われ、CPUユニットと出力ユニットとの間でデバイスメモリのデータ交換が行われる。デバイスメモリが記憶するデータには、プログラムの実行中に随時書き換えられるデータも含まれていることから、I/Oリフレッシュは、スキャンタイムの最後に、即ち命令が一通り実行された後に、実行される。
また、特許文献2には、I/Oリフレッシュを、スキャンタイムの最後だけではなく、プログラムの実行中に、プログラムの実行を中断して行うことが記載されている。
特開2003−84811号公報 特開2016−110458号公報
特許文献1に記載されているように、従来のプログラマブルロジックコントローラは、プログラマブル表示器、開発ツール等から、デバイスメモリの読み出し要求を受け付けると、I/Oリフレッシュのタイミングで、プログラマブル表示器、開発ツール等に、読み出し要求の応答として、読み出し要求で指定されたデバイスメモリの値を送信する。
スキャンタイムの長さは、プログラマブルロジックコントローラ毎に異なる。プログラマブル表示器、開発ツール等が、スキャンタイムが長く設定されたプログラマブルロジックコントローラに読み出し要求を送信した場合、そのプログラマブルロジックコントローラは、当該スキャンタイムの終わりまで応答を送信しない。プログラマブル表示器、開発ツール等は、応答を受信するまで長時間待機することになっていた。このため、ユーザは待機中のプログラマブル表示器、開発ツール等を操作することができず、プログラマブル表示器、開発ツール等の外部機器の操作性が著しく低下する結果となっていた。
特許文献2に記載されている構成においては、プログラムの実行を中断してI/Oリフレッシュを行うので、プログラムの実行を中断して行うI/Oリフレッシュのタイミングで、CPUユニットが、プログラマブル表示器、開発ツール等に、読み出し要求に対する応答を送信することも可能である。この場合、プログラマブル表示器、開発ツール等は、プログラムの命令が一通り実行されるまで待つ必要はない。しかし、この場合にデバイスメモリから読み出される値は、プログラムの命令が一通り実行された後の値ではない。即ち、プログラムの命令が一通り実行されることにより確定したデータではない。このため、特許文献2に記載された構成においても、確定したデバイス値を即時に返すことはできない。
本発明は、上記実情に鑑みてなされたものであり、デバイスメモリをモニタするための外部機器が、プログラマブルロジックコントローラのスキャンタイムに依存せずに確定したデバイス値の読み出しを行うことを可能とし、外部機器の操作性を向上させることを目的とする。
上記目的を達成するため、プログラマブルロジックコントローラは、設定された周期毎にプログラムを繰り返し実行する。デバイス記憶手段は、プログラムの入力値及び出力値であるデバイス値を記憶する。退避データ記憶手段は、前回の周期においてデバイス記憶手段が記憶していたデバイス値を記憶する。コマンド処理手段は、外部機器からデバイス値の読み出し要求を受け付けると、読み出し要求において指定されたデバイスについて予め設定された読み出し対象がデバイス記憶手段である場合、その周期におけるプログラムの実行が完了した後にデバイス記憶手段が記憶するデバイス値を読み出し、指定されたデバイスについて予め設定された読み出し対象が退避データ記憶手段である場合、直ちに退避データ記憶手段が記憶するデバイス値を読み出す。送信手段は、コマンド処理手段が読み出したデバイス値を外部機器に送信する。
本発明のプログラマブルロジックコントローラにおいて、退避データ記憶手段は、前回の周期においてデバイス記憶手段が記憶していたデバイス値を記憶する。プログラマブルロジックコントローラは、外部機器から受け付けた読み出し要求で指定されたデバイスについて予め設定された読み出し対象がデバイス記憶手段である場合、その周期におけるプログラムの実行が完了した後にデバイス記憶手段が記憶するデバイス値を読み出して、デバイス値を外部機器に送信する。プログラマブルロジックコントローラは、指定されたデバイスについて予め設定された読み出し対象が退避データ記憶手段である場合、直ちに退避データ記憶手段が記憶するデバイス値を読み出して、デバイス値を外部機器に送信する。このような構成を備えること、プログラマブルロジックコントローラのスキャンタイムに依存せずにデバイスメモリの読み出しを行うことを可能とし、外部機器の操作性を向上させることができる。
実施の形態に係るプログラマブルロジックコントローラとエンジニアリングツールのハードウェア構成を示すブロック図 実施の形態に係るプログラマブルロジックコントローラのCPUユニットとエンジニアリングツールの機能ブロック図 実施の形態に係る読み出し対象指定テーブルに登録されるデータの一例を示す図 実施の形態に係るエンジニアリングツールの読み出しの指定画面の一例を示す図 実施の形態に係るエンジニアリングツールのデバイスモニタの入力画面の一例を示す図 実施の形態に係るエンジニアリングツールのデバイスモニタの実行結果画面の一例を示す図 実施の形態に係るCPUユニットのモニタ応答処理のフローチャート 変形例1に係るエンジニアリングツールのデバイスモニタの入力画面の一例を示す図 変形例2に係るプログラマブルロジックコントローラのハードウェア構成を示すブロック図
以下、本発明の実施の形態に係るプログラマブルロジックコントローラ1について、図面を参照しつつ詳細に説明する。
(実施の形態)
図1に示す、プログラマブルロジックコントローラ1は、生産システム、制御システム等において稼動する検出器901と被制御機器902とを制御する。プログラマブルロジックコントローラ1は、プログラマブルロジックコントローラ1全体を制御するCPU(Central Processing Unit)ユニット100と、検出器901から受け付けた入力信号をCPUユニット100に供給する入力ユニット200と、CPUユニット100の演算結果を示す出力信号を被制御機器902に出力する出力ユニット300と、各ユニットを装着するためのベースユニット400を含む。
CPUユニット100は、入力ユニット200から供給された入力信号のオン/オフに従って、プログラムの命令を実行し、オン/オフで表される演算結果を出力信号として出力ユニット300に出力する。CPUユニット100は、設定された周期でプログラムの実行を開始し、プログラムの最後の命令であるEND命令を実行した後、プログラムの実行を終了する。CPUユニット100は、次の周期に再びプログラムの実行を開始する。この設定された周期をスキャンタイムという。
入力ユニット200には、センサ、スイッチ等を含む検出器901が接続されている。入力ユニット200は、検出器901から供給されたオン/オフを示す入力信号を、決められた信号レベルに変換し、変換した入力信号をCPUユニット100に供給する。出力ユニット300には、アクチュエータ、電磁弁、表示灯等を含む被制御機器902が接続されている。出力ユニット300は、CPUユニット100から供給されたオン/オフを示す出力信号を、決められた信号レベルに変換し、変換した出力信号を被制御機器902に供給する。
ベースユニット400には、CPUユニット100と入力ユニット200と出力ユニット300とが装着される。CPUユニット100と入力ユニット200と出力ユニット300とは、ベースユニット400を介して不図示の電源ユニットに接続され、電源ユニットから供給される電力によって動作する。また、CPUユニット100と入力ユニット200と出力ユニット300とは、共有バス410を介して相互に接続され、共有バス410を介して通信を行う。
また、プログラマブルロジックコントローラ1のCPUユニット100には、開発ツールであるエンジニアリングツール500を接続することが可能である。エンジニアリングツール500の構成については後述する。
以下の説明においては、実施の形態において特徴的な構成を備えるCPUユニット100を中心に説明する。
CPUユニット100はハードウェア構成として、各種プログラム、データを記憶するメモリ110と、入力ユニット200及び出力ユニット300と通信を行う入出力インタフェース120と、後述するエンジニアリングツール500と通信を行うツールインタフェース130と、CPUユニット100全体を制御する演算装置140と、を有する。メモリ110と、入出力インタフェース120と、ツールインタフェース130とはバス190を介して演算装置140に接続されており、演算装置140と通信する。
メモリ110は、揮発性メモリ111と不揮発性メモリ112とを含み、各種プログラム、データとを記憶する。揮発性メモリ111は、演算装置140のワークメモリとして用いられる。不揮発性メモリ112には、デバイスメモリに格納するデータの割り当てに関するデータを記憶するデバイス設定1121と、スキャンタイム毎に実行されるユーザプログラム1122と、後述するエンジニアリングツール500から受信したモニタ要求に応答するためのモニタ応答プログラム1123とが格納される。なお、揮発性メモリ111のアクセス速度は、不揮発性メモリ112のアクセス速度より高速である。ユーザプログラム1122は本発明のプログラムの一例である。
さらに、メモリ110は、デバイスメモリの機能を実現する。デバイスメモリとは、検出器901からCPUユニット100に供給された入力信号を示す値であって、ユーザプログラム1122の演算の入力値、ユーザプログラム1122の演算結果として出力された出力値を格納するメモリ領域である。演算装置140がユーザプログラム1122を実行して出力した出力値は、被制御機器902に供給される出力信号を示す値である。デバイスメモリに格納される入力信号を示す値及び出力信号を示す値をデバイス値という。なお、デバイスメモリを単にデバイスと呼ぶこともある。実施の形態においては、CPUユニット100は、今回のスキャンタイムにおけるデバイス値を記憶するマスタのデバイスメモリと、前回のスキャンタイムにおけるデバイス値を記憶する退避用のデバイスメモリとを有する。揮発性メモリ111は、マスタのデバイスメモリとして機能する。不揮発性メモリ112は退避用のデバイスメモリとして機能する。
デバイス値は、例えば、同一のセンサから収集された時系列のデータ、あるいは、複数のセンサから同じタイミングで収集されたデータを含む。
デバイス設定1121は、入力信号を記憶する領域、出力信号を記憶する領域等を定義するデータである。デバイス値は、入力信号及び出力信号のデータは、データの種類に応じた領域に格納される。デバイス設定1121においては、入力信号の値が格納されている領域を「X」、出力信号の値が格納されている領域を「Y」、その他の値が格納されている領域を「D」と定義している。さらに、デバイス設定1121は、「X」、「Y」、「D」それぞれの領域の大きさを特定するための先頭番号と末尾番号とを含む。ここで、番号はいわゆるメモリのアドレスに相当するものである。「X」、「Y」、「D」のそれぞれの領域には複数のデバイス値が格納されており、各デバイス値には、当該領域において何番目のデータであるかを示す番号が割り当てられている。例えば、「X」の領域の先頭番号が1である場合、「X100」に格納されたデータは、「X」の領域における100番目のデータである。先頭番号は、当該領域における最初のデバイス値に割り当てられた番号であり、末尾番号は当該領域における最後のデバイス値に割り当てられた番号である。
ユーザプログラム1122は、ユーザが作成したプログラムであって、演算装置140により実行される。演算装置140は、ユーザプログラム1122を実行して、検出器901から供給された入力信号を示す値を使用した演算を行う。
モニタ応答プログラム1123は、CPUユニット100が、エンジニアリングツール500から受信したモニタ要求に対する応答として、指定されたデバイス値を含むモニタ応答をエンジニアリングツール500に送信する機能を実現するためのプログラムである。モニタ応答プログラム1123は演算装置140により実行される。ここで、モニタ要求とは、デバイス値の読み出しを要求するため、エンジニアリングツール500がCPUユニット100に送信するコマンドのことをいう。また、モニタ応答とは、CPUユニット100がモニタ要求に応答してエンジニアリングツール500に送信するレスポンスのことをいう。
入出力インタフェース120は、CPUユニット100が入力ユニット200及び出力ユニット300と通信するための通信インタフェースである。入出力インタフェース120は、演算装置140から供給されたデータを電気信号に変換し、変換した信号を共有バス410を介して出力ユニット300に送信する。また、入出力インタフェース120は、入力ユニット200から受信した電気信号をデータに復元して演算装置140に出力する。
ツールインタフェース130は、CPUユニット100が後述のエンジニアリングツール500と通信するための通信インタフェースである。ツールインタフェース130は、演算装置140から供給されたデータを電気信号に変換し、変換した信号を通信ケーブル509を介してエンジニアリングツール500に送信する。また、ツールインタフェース130は、エンジニアリングツール500から受信した電気信号をデータに復元して演算装置140に出力する。
演算装置140は、MPU(Micro Processing Unit)150、160を有し、メモリ110に記憶される各種プログラムを実行して、CPUユニット100の各種機能を実現する。詳しくは後述するが、MPU150は、エンジニアリングツール500からモニタ要求を受け付け、エンジニアリングツール500にモニタ応答を送信する機能を担う。MPU160は、スキャンタイム毎にユーザプログラム1122を実行する機能を担う。
エンジニアリングツール500は、パーソナルコンピュータに専用のアプリケーションをインストールした装置であり、プログラムの作成機能を有した開発ツールである。実施の形態においては、エンジニアリングツール500は、CPUユニット100のデバイスメモリをモニタする機能を備える。よって、ユーザは、エンジニアリングツール500を使用してCPUユニット100のデバイスメモリをモニタできる。エンジニアリングツール500は、本発明の外部機器の一例である。
エンジニアリングツール500は、プログラム及びデータを記憶するメモリ510と、ユーザの入力操作を検出する入力装置520と、画像を出力する出力装置530と、CPUユニット100と通信を行う通信インタフェース540と、エンジニアリングツール500全体を制御する演算装置550とを含む。エンジニアリングツール500の各部はバス590により接続されている。
メモリ510は、揮発性メモリと、不揮発性メモリとを含み、各種プログラムと、プログラムの実行時に使用されるデータとを記憶する。実施の形態においては、メモリ510は、CPUユニット100のデバイス値の読み出し対象を設定するための設定用プログラム511と、CPUユニット100のデバイス値をモニタするためのモニタ用プログラム512とを記憶する。
入力装置520は、キーボード、マウス等の入力装置を含み、ユーザの入力操作を検出し、検出したユーザの入力操作を示す信号を演算装置550に供給する。出力装置530は、ディスプレイを含み、演算装置550から供給された信号に基づいた画像をディスプレイに表示する。通信インタフェース540は、通信ケーブル509を介してCPUユニット100と通信するための通信インタフェースである。通信インタフェース540は、演算装置550から供給されたデータを電気信号に変換し、変換した信号を通信ケーブル509を介してCPUユニット100に送信する。また、通信インタフェース540は、CPUユニット100から受信した電気信号をデータに復元して演算装置550に出力する。
演算装置550は、CPUを含み、メモリ110に記憶された各種プログラムを実行して、エンジニアリングツール500の各種機能を実現する。実施の形態においては、演算装置550は、モニタ用プログラム512を実行して、CPUユニット100にデバイスメモリのモニタ要求を送信し、CPUユニット100から受信したモニタ応答の内容を出力装置530のディスプレイに表示する。また、演算装置550は、設定用プログラム511を実行して、モニタ要求に応答してCPUユニット100がデバイス値を読み出す対象をCPUユニット100に設定する。
続いて図2を参照しながら、CPUユニット100の機能的な構成を説明する。CPUユニット100は、機能的には、デバイス値を記憶する第1デバイス記憶部101と、第1デバイス記憶部101の退避データを記憶する第2デバイス記憶部102と、デバイス値の読み出し対象を指定する読み出し対象指定テーブル103と、エンジニアリングツール500とコマンドの送受信を行うコマンド送受信部104と、読み出し対象指定テーブル103で指定された読み出し対象からデバイス値を読み出すコマンド処理部105と、第1デバイス記憶部101のデバイス値を第2デバイス記憶部102に退避する書き込み制御部106と、ユーザプログラム1122を実行する実行部107とを有する。第1デバイス記憶部101は本発明のデバイス記憶手段の一例である。第2デバイス記憶部102は本発明の退避データ記憶手段の一例である。読み出し対象指定テーブル103は、本発明の設定情報記憶手段の一例である。コマンド送受信部104は、本発明の送信手段の一例である。コマンド処理部105は、本発明のコマンド処理手段の一例である。書き込み制御部106は、本発明の書き込み制御手段の一例である。
第1デバイス記憶部101は、今回のスキャンタイムにおけるユーザプログラム1122の入力値及び出力値、即ちデバイス値を記憶する。第1デバイス記憶部101は、CPUユニット100のマスタのデバイスメモリである。I/Oリフレッシュにより、第1デバイス記憶部101には、ユーザプログラム1122の入力値が書き込まれる。さらに、ユーザプログラム1122の実行により、第1デバイス記憶部101には、ユーザプログラム1122の実行により出力された出力値が書き込まれる。第1デバイス記憶部101の機能は、図1に示すメモリ110の揮発性メモリ111により実現される。揮発性メモリ111のアクセス速度は、不揮発性メモリ112より高速だからである。
図2に示す第2デバイス記憶部102は、第1デバイス記憶部101から退避されたデータを記憶する。より具体的には、第2デバイス記憶部102は、前回のスキャンタイムにおいて第1デバイス記憶部101が記憶していたデバイス値、即ち、前回のスキャンタイムにおける入力値及び出力値を記憶する。第2デバイス記憶部102は退避用のデバイスメモリである。第2デバイス記憶部102には、書き込み制御部106によって、第1デバイス記憶部101のデバイス値が書き込まれる。第2デバイス記憶部102の機能は、図1に示すメモリ110の不揮発性メモリ112により実現される。
読み出し対象指定テーブル103には、モニタ要求により指定されたデバイス値を第1デバイス記憶部101又は第2デバイス記憶部102のいずれかから取得するかを指定するデータが格納されている。図3に示すように、読み出し対象指定テーブル103では、デバイスの領域名と開始番号と終了番号とにより特定される範囲のデバイス値について、読み出し対象が第1デバイス記憶部101であるか第2デバイス記憶部102であるかが指定されている。
図示する例では、開始番号と終了番号とは、そのデバイスにおける設定された範囲の始点と終点とを示す。読み出し対象は設定された範囲のデバイス値の読み出し対象を第1デバイス記憶部101とするか第2デバイス記憶部102とするかを示す。例えば、「X1」から「X250」のデバイス値は第2デバイス記憶部102から読み出すことが指定されている。ここでは、また、「Y200」から「Y400」のデバイス値は第1デバイス記憶部101から読み出すことが指定されている。読み出し対象指定テーブル103において、指定した範囲毎に読み出し対象を指定することが可能である。なお、実施の形態において、デフォルトの読み出し対象は第1デバイス記憶部101とする。このため、読み出し対象指定テーブル103に設定されていない範囲のデバイス値は第1デバイス記憶部101から読み出される。読み出し対象指定テーブル103の機能は、図1に示すメモリ110の不揮発性メモリ112により実現される。
図2に示すコマンド送受信部104は、エンジニアリングツール500からモニタ要求を受け付け、受け付けたモニタ要求をコマンド処理部105に出力する。また、コマンド送受信部104は、コマンド処理部105から供給されたモニタ応答をエンジニアリングツール500に送信する。コマンド送受信部104の機能は、図1のツールインタフェース130と、MPU150とにより実現される。
図2に示すコマンド処理部105は、モニタ要求において指定されたデバイスの値を、読み出し対象指定テーブル103において指定された読み出し対象から読み出し、読み出したデバイス値が含まれたモニタ応答をコマンド送受信部104に出力する。エンジニアリングツール500が送信したモニタ要求には、デバイスの領域を特定する値と、モニタ対象の範囲を示す開始番号及び終了番号とが含まれている。また、モニタ応答には、モニタ要求で指定された順序で読み出されたデバイス値が含まれている。例えば、モニタ要求で、デバイス「X」の開始番号「100」から終了番号「150」までのデバイス値と、デバイス「D」の開始番号「50」から終了番号「100」までのデバイス値とが要求されたとする。この場合、モニタ応答には、「X100」から「X250」のデバイス値と、「D50」から「D100」のデバイス値とが、この順序で並べられた状態で格納されている。
モニタ要求により、エンジニアリングツール500からCPUユニット100に対して、デバイス「X」の100番から150番のデバイス値の読み出しが要求されたとする。この場合、コマンド処理部105は、図3の読み出し対象指定テーブル103から「X100」から「X150」のデバイス値の読み出し対象が第2デバイス記憶部102であると判別する。また、モニタ要求で、デバイス「Y」の1001番から1200番のデバイス値の読み出しが要求されたとする。この場合、コマンド処理部105は、読み出し対象指定テーブル103から「Y1001」から「Y1200」のデバイス値の読み出し対象が第1デバイス記憶部101であると判別する。なお、コマンド処理部105は、読み出し対象指定テーブル103に読み出し対象が設定されていないデバイス値を読み出すことが要求された場合、当該デバイス値の読み出し対象がデフォルトの読み出し対象である第1デバイス記憶部101であると判別する。
コマンド処理部105は、読み出し対象指定テーブル103で、モニタ要求により指定されたデバイス値の読み出し対象として第1デバイス記憶部101が指定されている場合、次のようにデバイス値の読み出しを実行する。コマンド処理部105は、実行部107がユーザプログラム1122のEND命令を実行した後に、モニタ要求により指定されたデバイス値を第1デバイス記憶部101から読み出し、読み出したデバイス値をコマンド送受信部104に出力する。
コマンド処理部105は、読み出し対象指定テーブル103で、モニタ要求により指定されたデバイス値の読み出し対象として第2デバイス記憶部102が指定されている場合、次のようにデバイス値の読み出しを実行する。コマンド処理部105は、直ちにモニタ要求により指定されたデバイス値を第2デバイス記憶部102から読み出し、読み出したデバイス値をコマンド送受信部104に出力する。実施の形態において、第1デバイス記憶部101からデバイス値を読み出すのは、MPU160であり、第2デバイス記憶部102からデバイス値を読み出すのはMPU150である。コマンド処理部105の機能は、図1のMPU150及びMPU160により実現される。
さらに、コマンド処理部105は、エンジニアリングツール500から読み出し対象指定テーブル103の更新を指示するコマンドを受信すると、当該コマンドに含まれている、デバイスの領域を特定する値と、当該領域におけるモニタ対象の範囲を示す開始番号及び終了番号と、指定された読み出し対象を特定する値と、に基づいて、読み出し対象指定テーブル103にデータを登録する。例えば、エンジニアリングツール500から、「X」の100番から250番の読み出し対象をスレーブとすることを指示するコマンドを受信した場合、コマンド処理部105は、図3に示す対象指定テーブル103に、「デバイス:X、開始番号:1、終了番号250、読み出し対象:第2デバイス記憶部」というデータを登録する。
図2に示す書き込み制御部106は、実行部107からユーザプログラム1122のEND命令を実行した旨の通知を受けると、第1デバイス記憶部101のデバイス値を、第2デバイス記憶部102にコピーする。第1デバイス記憶部101のデバイス値は、次のスキャンタイムにおけるユーザプログラム1122の実行により上書きされるが、第2デバイス記憶部102には、前回のスキャンタイムにおけるデバイス値が保持されている。言い換えると、第2デバイス記憶部102には、第1デバイス記憶部101のデバイス値が退避されている。書き込み制御部106の機能は、図1のMPU160により実現される。
図2に示す実行部107は、スキャンタイム毎にユーザプログラム1122を実行する。具体的には実行部107は、第1デバイス記憶部101に格納されている入力信号に応じて、ユーザプログラム1122の各命令を実行し、演算結果を第1デバイス記憶部101に格納する。実行部107はユーザプログラム1122の最後の命令であるEND命令を実行した後、書き込み制御部106に1スキャンが終了したことを通知する。この通知に応答して、書き込み制御部106は、第1デバイス記憶部101のデバイス値を第2デバイス記憶部102にコピーする。その後、実行部107はI/Oリフレッシュを行い、第1デバイス記憶部101のデバイス値を、入力ユニット200及び出力ユニット300と一括交換する。実行部107の機能は、図1のMPU160により実現される。
図2に示すように、エンジニアリングツール500は、機能的には、デバイス値の読み出しに関する指示を受け付ける受付部501と、CPUユニット100からデバイス値を取得する取得処理部502と、CPUユニット100とコマンドを送受信するコマンド送受信部503とを有する。受付部501は、本発明の受付手段の一例である。取得処理部502は、本発明の取得処理手段の一例である。
受付部501は、ユーザから、デバイス値の読み出しに関する指示を受け付ける。具体的には、受付部501は、ユーザから、デバイス値の読み出し対象をマスタにするか退避にするかを指定する指示を受け付ける。例えば、受付部501は図4に示すような画面を出力装置530に表示し、ユーザから読み出し対象の指定についての指示を受け付ける。この場合、受付部501は、デバイスの領域及び当該領域における範囲と、読み出し対象とについての指定をユーザから受け付ける。ユーザが図4に示す画面上で入力した内容に応じて、後述の取得処理部502がコマンド送受信部503を介して対象指定テーブル103の更新を指示するコマンドをCPUユニット100に送信する。
さらに、受付部501は、ユーザから、指定されたデバイス値を読み出す指示を受け付ける。例えば、受付部501は図5Aに示すような画面を出力装置530に表示し、ユーザからデバイス値の読み出しについての指示を受け付ける。この場合、受付部501は、デバイスの領域及び当該領域における範囲の指定をユーザから受け付ける。ユーザが図5Aに示す画面上で入力した内容に応じて、後述の取得処理部502がコマンド送受信部503を介してモニタ要求をCPUユニット100に送信する。
図2に示す取得処理部502は、受付部501が受け付けたユーザの指示に応じたコマンドをCPUユニット100に送信する。具体的には、取得処理部502は、受付部501がユーザから受け付けた読み出し対象の指定の指示に応じて、対象指定テーブル103の更新を指示するコマンドをコマンド送受信部503を介してCPUユニット100に送信する。当該コマンドには、デバイスの領域を特定する値と、当該領域におけるモニタ対象の範囲を示す開始番号及び終了番号と、指定された読み出し対象を特定する値とが含まれている。
さらに、取得処理部502は、受付部501がユーザから受け付けたデバイスの読み出しの指示に応じて、指定されたデバイス値を読み出すことを要求するモニタ要求を生成し、モニタ要求をコマンド送受信部503に出力する。モニタ要求には、デバイスの領域を特定する値と、当該領域におけるモニタ対象の範囲を示す開始番号及び終了番号とが含まれている。
また、取得処理部502は、コマンド送受信部503がCPUユニット100から受信したモニタ応答に含まれるデバイス値を取得し、図1に示すメモリ510に格納する。前述のように、モニタ応答には、モニタ要求で指定された順序で読み出されたデバイス値が含まれている。さらに、取得処理部502は図5Bに示すようにモニタ応答に含まれるデバイス値を表示する画面を出力装置530に表示してもよい。上述した取得処理部502の機能は、図1の演算装置550がモニタ用プログラム512、設定用プログラム511を実行することにより実現される。
図2に示すコマンド送受信部503は、取得処理部502から出力された対象指定テーブル103の更新を指示するコマンドをCPUユニット100に送信する。さらに、コマンド送受信部503は、取得処理部502から出力されたモニタ要求をCPUユニット100に送信する。また、コマンド送受信部503は、CPUユニット100から受信したモニタ応答を取得処理部502に出力する。コマンド送受信部503の機能は、図1の通信インタフェース540と、演算装置550とにより実現される。
上述したように、読み出し対象指定テーブル103において、モニタ要求により指定されたデバイス値の読み出し対象が指定されている。このため、デバイスのモニタに先立って、読み出し対象指定テーブル103にデバイス値の読み出し対象を指定するデータが登録されている必要がある。
以下、ユーザがエンジニアリングツール500を使用してCPUユニット100の読み出し対象指定テーブル103に読み出し対象を指定するデータを登録する方法を説明する。ユーザは、図1に示すように、エンジニアリングツール500とCPUユニット100とを通信ケーブル509を介して相互に接続した状態で、キーボード、マウス等の入力装置520を操作して、設定用プログラム511を起動する。演算装置550は、ユーザの操作に応答して設定用プログラム511を実行し、以下の機能を実現する。
演算装置550は、CPUユニット100に対してデバイス設定1121のデータの提供を要求する。これに応答して、CPUユニット100がデバイス設定1121のデータをエンジニアリングツール500に送信したものとする。デバイス設定1121のデータとして、入力信号の値が格納されている領域を示すデバイス名「X」と、出力信号の値が格納されている領域を示すデバイス名「Y」と、その他の値が格納されている領域を示すデバイス名「D」と、それぞれの領域のサイズを示す先頭番号及び末尾番号と、が送信されたものとする。
演算装置550は、CPUユニット100から提供されたデバイス設定1121のデータに基づいて、図4に示すような読み出し対象の指定画面を出力装置530に表示する。ユーザは、図示する画面上において、キーボード、マウス等の入力装置520を操作して、デバイスとして、「X」、「Y」、「D」から任意のものを選択できる。また、ユーザは、それぞれのデバイスにおける範囲を指定するため開始番号と終了番号とを入力できる。ユーザは読み出し対象として「マスタ」又は「退避」を選択できる。ここで、「マスタ」は第1デバイス記憶部101を指し、「退避」は第2デバイス記憶部102を指す。
ユーザが入力を終え、「登録」ボタンを押したとする。従って、演算装置550は読み出し対象指定テーブル103の更新を指示するコマンドをCPUユニット100に送信する。当該コマンドには、ユーザが入力した更新内容を示すデータが含まれている。これに応答して、CPUユニット100は受信したデータで、読み出し対象指定テーブル103を更新する。なお、ユーザは、エンジニアリングツール500を使用して読み出し対象指定テーブル103のデータを必要に応じて更新できる。読み出し対象指定テーブル103のデータが更新されると、CPUユニット100は、更新後の読み出し対象指定テーブル103が指定する読み出し対象からデバイス値を読み出す。
続いて、ユーザがエンジニアリングツール500を使用してCPUユニット100のデバイス値をモニタする方法を説明する。ユーザは、図1に示すように、エンジニアリングツール500とCPUユニット100とを通信ケーブル509を介して相互に接続した状態で、キーボード、マウス等の入力装置520を操作して、モニタ用プログラム512を起動する。演算装置550は、ユーザの操作に応答してモニタ用プログラム512を実行し、以下の機能を実現する。
演算装置550は、図5Aに示すようなデバイスモニタの入力画面を出力装置530に表示する。ユーザが、図示する画面上において、キーボード、マウス等の入力装置520を操作して、モニタしたいデバイスと範囲を示す開始番号及び終了番号とを入力し、「送信」ボタンを押したとする。従って、演算装置550は、指定されたデバイスと開始番号及び終了番号とを含むモニタ要求をCPUユニット100に送信する。これに応答して、CPUユニット100は、モニタ要求により指定されたデバイス値を読み出し、読み出したデバイス値を含むモニタ応答をエンジニアリングツール500に送信する。
演算装置550は、CPUユニット100からモニタ応答を受信すると、図5Bに示すようなデバイスモニタの結果画面を出力装置530に表示する。図示する例では、演算装置550は、各デバイス値が何番目のデータであるかを示す番号を併せて表示する。例えば、CPUユニット100は、「X100」から「X150」のデバイス値を、指定された順序で読み出し、読み出したデバイス値をエンジニアリングツール500に送信する。演算装置550は、CPUユニット100から受信したデバイス値とともに、ユーザが入力した開始番号及び終了番号に基づいて、各デバイス値が「X」の領域における何番目のデータであるかを示すデバイスの番号を併せて表示している。
次に、CPUユニット100が、エンジニアリングツール500からモニタ要求を受け付けた場合に、モニタ応答をエンジニアリングツール500に返す処理(モニタ応答処理)を説明する。以下の処理はMPU150が、図1に示すモニタ応答プログラム1123を実行することで実現される。一方、MPU160は、ユーザプログラム1122をスキャンタイム毎に実行しているものとする。
図6に示すように、MPU150は、エンジニアリングツール500からモニタ要求を受信したか否かを判別する(ステップS11)。MPU150は、モニタ要求を受信したと判別すると(ステップS11;Yes)、モニタ要求により指定されたデバイス値の読み出し対象を、読み出し対象指定テーブル103に基づいて判別する(ステップS12)。一方、モニタ要求をエンジニアリングツール500から受信していない場合(ステップS11;No)、一定時間待機してから、再びステップS11の処理を実行する。
読み出し対象が第1デバイス記憶部101を含むと判別されると(ステップS13;Yes)、MPU160がユーザプログラム1122のEND命令を実行した後(ステップS14;Yes)、MPU150及びMPU160は協働して指定されたデバイス値を読み出す(ステップS15)。
具体的には、ステップS13で、MPU150は、読み出し対象指定テーブル103で読み出し対象として第1デバイス記憶部101が指定されているデバイス値については、MPU160にデバイス値の読み出しの要求を出す。MPU160は、END命令を実行した後、MPU160から読み出しの要求を受信したか否かを判別する。MPU160は、ステップS14でEND命令を実行した後、読み出しの要求をMPU150から受信したと判別すると、ステップS15で、指定されたデバイス値を第1デバイス記憶部101から読み出す。MPU160は第1デバイス記憶部101から読み出したデバイス値をMPU150に送信する。
また、MPU150は、読み出し対象指定テーブル103で読み出し対象として第2デバイス記憶部102が指定されているデバイス値については、第2デバイス記憶部102からデバイス値を読み出す。なお、読み出し対象が第1デバイス記憶部101だけである場合、MPU150は第2デバイス記憶部102からデバイス値を読み出す必要はない。
MPU150は、デバイス値をエンジニアリングツール500に送信する(ステップS16)。読み出し対象として第1デバイス記憶部101と第2デバイス記憶部102とを含む場合には、MPU150は、MPU160から受信した第1デバイス記憶部101のデバイス値と、MPU150が読み出した第2デバイス記憶部102のデバイス値とをエンジニアリングツール500に送信する。読み出し対象が第1デバイス記憶部101だけである場合、MPU150は、MPU160から受信した第1デバイス記憶部101のデバイス値をエンジニアリングツール500に送信する。
一方、ステップS13において、読み出し対象が第1デバイス記憶部101を含まないと判別すると、(ステップS13;No)、即ち、読み出し対象が第2デバイス記憶部102のみである場合、MPU150は、第2デバイス記憶部102から指定されたデバイス値を読み出し(ステップS17)、読み出したデバイス値をエンジニアリングツール500に送信する(ステップS18)。具体的には、MPU150は読み出したデバイス値を含む応答コマンドをエンジニアリングツール500に送信する。
以上説明したように、実施の形態においては、エンジニアリングツール500から要求されたデバイス値が、読み出し対象指定テーブル103で第2デバイス記憶部102から読み出すことが指定されている場合、CPUユニット100は、即時に第2デバイス記憶部102に格納されているデバイス値をエンジニアリングツール500に返す。よって、ユーザが読み出し対象として第2デバイス記憶部102を指定したデバイス値については、CPUユニット100のスキャンタイムに依存せず読み出すことが可能である。エンジニアリングツール500は、モニタ応答を受信するまで長時間待たされることがない。これにより、エンジニアリングツール500の操作性が向上する。
一方、読み出し対象指定テーブル103でエンジニアリングツール500から要求されたデバイス値を第1デバイス記憶部101から読み出すことが指定されている場合、CPUユニット100は、従来と同様に、スキャンタイム毎に第1デバイス記憶部101に格納されているデバイス値をエンジニアリングツール500に返す。
ユーザプログラムの実行中に値が変わらないデバイス値については、読み出し対象を第2デバイス記憶部102と指定することで、ユーザは、デバイス値をモニタするため長時間待つ必要がない。このような場合に、実施の形態に係る構成は特に効果的である。
あるいは、複数のCPUユニット100のデバイスをモニタする場合に、スキャンタイムが長いCPUユニット100については、読み出し対象を第2デバイス記憶部102とし、スキャンタイムが短いCPUユニット100については、読み出し対象を第1デバイス記憶部101とすることもできる。
なお、図6のステップS13において、読み出し対象が第1デバイス記憶部101と第2デバイス記憶部102とを含む場合には、スキャンタイム毎にデバイス値がエンジニアリングツール500に返されることになる。このため、第2デバイス記憶部102のデバイス値の応答も遅くなってしまう。例えば、以下のような方法でこのような状況が発生するのを防止できる。エンジニアリングツール500のメモリ510に、CPUユニット100の読み出し対象指定テーブル103に登録された内容と同じデータを記憶しておく。例えば、図5Aに示すデバイスモニタの入力画面で、ユーザが指定したデバイス値の読み出し対象が第1デバイス記憶部101と第2デバイス記憶部102とを含む場合には、演算装置550は、画面上に応答が遅くなることを警告するメッセージを表示するようにしてもよい。
(変形例1)
上記の実施の形態においては、CPUユニット100の読み出し対象指定テーブル103にデバイス値の読み出し対象を予め設定しておく例を説明したが、読み出し対象の指定方法はこれに限られない。
エンジニアリングツール500は、読み出し対象を指定する情報を含むモニタ要求をCPUユニット100に送信してもよい。受付部501は、読み出し対象のデバイスの領域と、当該領域における範囲と、読み出し対象とについての指定とをユーザから受け付ける。例えば、受付部501は、図7に示すようにデバイスモニタの入力画面で、読み出し対象を指定できるようにしてもよい。
この場合、図2に示す取得処理部502は、受付部501が受け付けたユーザの指示に応じたモニタ要求を生成し、生成したモニタ要求をコマンド送受信部503を介してCPUユニット100に送信する。モニタ要求には、デバイスの領域を特定する値と、当該領域におけるモニタ対象の範囲を示す開始番号及び終了番号と、指定された読み出し対象を特定する値とが含まれている。CPUユニット100は、モニタ要求により指定された読み出し対象から指定されたデバイス値を読み出し、読み出したデバイス値を含むモニタ応答をエンジニアリングツール500に送信する。上記のような構成の場合、読み出し対象指定テーブル103に読み出し対象を登録しておく必要がない。
変形例1に係る構成においても、実施の形態と同様に、ユーザが読み出し対象として第2デバイス記憶部102を指定したデバイス値については、CPUユニット100からエンジニアリングツール500に即時に返されるため、外部機器の操作性が向上する。
(変形例2)
実施の形態においては、CPUユニット100が2つのMPU150、160を有し、MPU150がモニタ応答に係る処理を実行し、MPU160がユーザプログラム1122を実行した。この場合、2つのMPUで分散して処理を行うので各MPUの処理負荷を抑えることができる。しかしながら、CPUユニット100は2つのMPUを有していなくてもよい。
図8に示すように、CPUユニット100は1つのみのMPU150を有していてもよい。CPUユニット100はMPUを1つだけ有するので、MPUを2つ有する場合に比べコストを低減できる。この場合、MPU150が、図2に示すコマンド処理部105、書き込み制御部106の双方の機能を実現する。
(変形例3)
実施の形態においては、図1に示すように第1デバイス記憶部101を揮発性メモリ111により実現し、第2デバイス記憶部102を不揮発性メモリ112により実現する例を説明した。この場合、例えば、停電により、CPUユニット100への電源供給が遮断された場合には以下のようなメリットがある。
停電によりCPUユニット100の電源供給が遮断されると、第1デバイス記憶部101に記憶されたデータは保持されないが、第2デバイス記憶部102に記憶されたデータは保持されている。この場合、図2に示す実行部107は、第2デバイス記憶部102に記憶されたデバイス値を使用して、ユーザプログラム1122を実行すればよい。第2デバイス記憶部102には、停電が起きる前に完了したスキャンタイムにおけるデバイス値が格納されているため、被制御機器902を途中工程から復帰できるというメリットがある。
あるいは、第2デバイス記憶部102のアクセス速度が遅い場合、書き込み制御部106が、第2デバイス記憶部102に記憶されたデバイス値を第1デバイス記憶部101にコピーしてもよい。同一のCPUユニット100内におけるメモリ間のデータのコピーであるため、データ転送に時間を要しない。その後、実行部107は、第1デバイス記憶部101に記憶されたデバイス値を使用して、ユーザプログラム1122を実行すればよい。この場合、第1デバイス記憶部101に、停電が起きる前に完了したスキャンタイムにおけるデバイス値がコピーされるため、被制御機器902を途中工程から復帰できるというメリットがある。
また、実施の形態において、コマンド処理部105は、読み出し対象指定テーブル103に読み出し対象が指定されていない場合は、デフォルトの読み出し対象からデバイス値を読み出した。このような構成を備えることで、次のような利点がある。例えば、第1デバイス記憶部101をデフォルトの読み出し対象とした場合、読み出し対象が第1デバイス記憶部101のデバイス値については読み出し対象指定テーブル103に登録する必要はない。ユーザは読み出し対象指定テーブル103に読み出し対象として第2デバイス記憶部102を指定するデバイスとその範囲だけを指定すればよい。
実施の形態においては、第1デバイス記憶部101のデバイス値がすべて第2デバイス記憶部102にコピーされる例を説明したが、これに限られない。第1デバイス記憶部101のデバイス値のうち指定された範囲のデバイス値のみを第2デバイス記憶部102にコピーするようにしてもよい。
実施の形態においては、第2デバイス記憶部102を、不揮発性メモリ112により実現する例を説明したが、第2デバイス記憶部102は揮発性のメモリにより実現されてもよい。この場合も、CPUユニット100は、第2デバイス記憶部102を読み出し対象とするよう指定されたデバイス値については、即時にエンジニアリングツール500に返す。よって、外部機器の操作性を向上することができる。また、第1デバイス記憶部101は、十分なアクセス速度が保証されるのならば、揮発性のメモリではなく、不揮発性のメモリにより実現されてもよい。この場合、CPUユニット100への電源供給が遮断されたとしても、第1デバイス記憶部101のデバイス値は保持される。
実施の形態においては、デバイスメモリをモニタするための外部機器として、エンジニアリングツール500を例に説明したが、外部機器は、プログラマブル表示器であってもよいし、あるいは、CPUユニット100と通信可能な他の情報処理装置であってもよい。
上記のプログラムを記録する記録媒体としては、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリ、半導体メモリ、磁気テープを含むコンピュータ読取可能な記録媒体を使用することができる。
本発明は、広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施形態ではなく、請求の範囲によって示される。そして、請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。
1 プログラマブルロジックコントローラ、100 CPUユニット、101 第1デバイス記憶部、102 第2デバイス記憶部、103 読み出し対象指定テーブル、104,503 コマンド送受信部、105 コマンド処理部、106 書き込み制御部、107 実行部、110,510 メモリ、111 揮発性メモリ、112 不揮発性メモリ、120 入出力インタフェース、130 ツールインタフェース、140,550 演算装置、150,160 MPU、190,590 バス、200 入力ユニット、300 出力ユニット、400 ベースユニット、410 共有バス、500 エンジニアリングツール、501 受付部、502 取得処理部、509 通信ケーブル、511 設定用プログラム、512 モニタ用プログラム、520 入力装置、530 出力装置、540 通信インタフェース、901 検出器、902 被制御機器、1121 デバイス設定、1122 ユーザプログラム、1123 モニタ応答プログラム

Claims (11)

  1. 設定された周期毎にプログラムを繰り返し実行するプログラマブルロジックコントローラであって、
    前記プログラムの入力値及び出力値であるデバイス値を記憶するデバイス記憶手段と、
    前回の周期において前記デバイス記憶手段が記憶していた前記デバイス値を記憶する退避データ記憶手段と、
    外部機器から前記デバイス値の読み出し要求を受け付けると、前記読み出し要求において指定されたデバイスについて予め設定された読み出し対象が前記デバイス記憶手段である場合、その周期における前記プログラムの実行が完了した後に前記デバイス記憶手段が記憶する前記デバイス値を読み出し、前記指定されたデバイスについて予め設定された前記読み出し対象が前記退避データ記憶手段である場合、直ちに前記退避データ記憶手段が記憶する前記デバイス値を読み出すコマンド処理手段と、
    前記コマンド処理手段が読み出した前記デバイス値を前記外部機器に送信する送信手段と、
    を備えるプログラマブルロジックコントローラ。
  2. 前記デバイス記憶手段が記憶する前記デバイス値を、前記退避データ記憶手段に書き込む書き込み制御手段、
    をさらに備える、
    請求項1に記載のプログラマブルロジックコントローラ。
  3. 前記書き込み制御手段は、前回の周期における前記プログラムの実行が完了したときに、前記デバイス記憶手段が記憶しており、確定した前記デバイス値を前記退避データ記憶手段に書き込む、
    請求項2に記載のプログラマブルロジックコントローラ。
  4. 前記プログラマブルロジックコントローラが前記プログラムの最後の命令を実行したときに、当該周期における前記プログラムの実行が完了し、
    前回の周期における前記プログラムの実行が完了したときに、前記デバイス記憶手段が記憶している前記確定した前記デバイス値は、前記プログラマブルロジックコントローラが前回の周期において前記プログラムの前記最後の命令を実行した後に、前記デバイス記憶手段が記憶している前記デバイス値である、
    請求項3に記載のプログラマブルロジックコントローラ。
  5. 前記読み出し要求は、前記デバイス記憶手段又は前記退避データ記憶手段のうち前記読み出し対象となる記憶手段を指定する情報を含み、
    前記コマンド処理手段は、前記読み出し要求で指定された記憶手段を前記読み出し対象として判別する、
    請求項1から4のいずれか1項に記載のプログラマブルロジックコントローラ。
  6. 前記デバイス値について予め設定された前記読み出し対象として前記デバイス記憶手段又は前記退避データ記憶手段を指定する設定情報記憶手段、
    をさらに備え、
    前記コマンド処理手段は、前記読み出し要求で指定された前記デバイス値について、前記設定情報記憶手段で指定された記憶手段を前記読み出し対象として判別する、
    請求項1から4のいずれか1項に記載のプログラマブルロジックコントローラ。
  7. 前記設定情報記憶手段は、指定された範囲毎に前記デバイス値の読み出し対象を指定する、
    請求項6に記載のプログラマブルロジックコントローラ。
  8. 前記退避データ記憶手段は、不揮発性のメモリを含む、
    請求項1から7のいずれか1項に記載のプログラマブルロジックコントローラ。
  9. 請求項1から5のいずれか1項に記載のプログラマブルロジックコントローラに接続され、前記デバイス値を読み出す前記外部機器であって、
    前記デバイス値の読み出しに関する指示を受け付ける受付手段と、
    前記受付手段が受け付けた指示に応じたコマンドを前記プログラマブルロジックコントローラに送信する取得処理手段と、
    を備え、
    前記取得処理手段は、
    前記受付手段が、指定された前記デバイス値について前記読み出し対象として前記デバイス記憶手段を指定する指示を受け付けた場合、前記指定されたデバイスについて前記読み出し対象として前記デバイス記憶手段を指定する指示を示すコマンドを前記プログラマブルロジックコントローラに送信し、
    前記受付手段が、前記指定された前記デバイス値について前記読み出し対象として前記退避データ記憶手段を指定する指示を受け付けた場合、前記読み出し対象として前記退避データ記憶手段を指定する指示を示すコマンドを前記プログラマブルロジックコントローラに送信し、
    前記読み出し要求に対する応答として、前記プログラマブルロジックコントローラから前記デバイス値を受信する、
    外部機器。
  10. 設定された周期毎にプログラムを繰り返し実行するプログラマブルロジックコントローラが実行する方法であって、
    外部機器から受け付けたデバイス値の読み出し要求において指定されたデバイスについて、今回の周期における前記デバイス値を読み出し対象とすることが設定されている場合、その周期における前記プログラムの実行が完了した後に前記デバイス値を前記外部機器に送信し、前記指定されたデバイスについて、前回の周期における前記デバイス値を読み出し対象とすることが設定されている場合、直ちに前回の周期における前記デバイス値を前記外部機器に送信するステップ、
    を含む方法。
  11. 設定された周期毎にプログラムを繰り返し実行するプログラマブルロジックコントローラに、
    デバイス記憶手段に、前記プログラムの入力値及び出力値であるデバイス値を記憶させ、
    退避データ記憶手段に、前回の周期において前記デバイス記憶手段が記憶していた前記デバイス値を記憶させ、
    外部機器から受け付けた前記デバイス値の読み出し要求において指定されたデバイスについて、前記デバイス記憶手段又は前記退避データ記憶手段のうち予め設定された読み出し対象から前記デバイス値を読み出させ、
    前記デバイス値を前記外部機器に送信させる、
    プログラム。
JP2019519774A 2018-10-15 2018-10-15 プログラマブルロジックコントローラ、外部機器、方法、及びプログラム Active JP6563155B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/038262 WO2020079720A1 (ja) 2018-10-15 2018-10-15 プログラマブルロジックコントローラ、外部機器、方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP6563155B1 JP6563155B1 (ja) 2019-08-21
JPWO2020079720A1 true JPWO2020079720A1 (ja) 2021-02-15

Family

ID=67692147

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019519774A Active JP6563155B1 (ja) 2018-10-15 2018-10-15 プログラマブルロジックコントローラ、外部機器、方法、及びプログラム

Country Status (6)

Country Link
US (1) US11467990B2 (ja)
JP (1) JP6563155B1 (ja)
CN (1) CN112840278B (ja)
DE (1) DE112018007978T5 (ja)
TW (1) TWI684079B (ja)
WO (1) WO2020079720A1 (ja)

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1991014987A1 (en) 1990-03-22 1991-10-03 Square D Company Apparatus for networking programmable logic controllers to host computers
JP3666349B2 (ja) * 2000-03-30 2005-06-29 豊田工機株式会社 プログラマブルコントローラ
JP4043742B2 (ja) 2001-09-10 2008-02-06 株式会社デジタル ラダーモニタ装置、並びに、そのプログラムおよび記録媒体
JP2004199670A (ja) 2002-12-04 2004-07-15 Omron Corp データ収集装置及びデータ収集システム
JP2004272629A (ja) * 2003-03-10 2004-09-30 Omron Corp プログラマブルコントローラ用機器並びにプログラマブルコントローラ用機器におけるプログラム更新方法並びにプログラム起動方法
JP4737441B2 (ja) * 2006-03-15 2011-08-03 オムロン株式会社 Plcシステム
JP5224923B2 (ja) 2008-06-13 2013-07-03 三菱電機株式会社 制御装置
KR101392085B1 (ko) 2010-01-20 2014-05-07 미쓰비시덴키 가부시키가이샤 프로그래머블 컨트롤러 시스템 및 개발 시스템
JP2012108901A (ja) 2010-10-29 2012-06-07 Sanin Seigyo Corp 混注作業支援装置
KR101534994B1 (ko) 2011-01-21 2015-07-07 미쓰비시덴키 가부시키가이샤 아날로그 입력 유닛 및 프로그래머블 콘트롤러
JP4894961B1 (ja) * 2011-03-15 2012-03-14 オムロン株式会社 Plcのcpuユニット、plc用システムプログラムおよびplc用システムプログラムを格納した記録媒体
US8504176B2 (en) * 2011-03-15 2013-08-06 Omron Corporation CPU unit of PLC, system program for PLC, and recording medium storing system program for PLC
TWI481979B (zh) 2011-11-08 2015-04-21 Inst Information Industry Programmable logic controller drive system, method and recording media
US10223327B2 (en) 2013-03-14 2019-03-05 Fisher-Rosemount Systems, Inc. Collecting and delivering data to a big data machine in a process control system
KR102097637B1 (ko) * 2013-10-21 2020-04-06 엘지전자 주식회사 이동 단말기의 제어 장치 및 그 방법
JP2015141648A (ja) * 2014-01-30 2015-08-03 三菱電機株式会社 プログラマブルコントローラ
CN105408824B (zh) 2014-03-17 2017-07-04 三菱电机株式会社 可编程逻辑控制器
WO2015145932A1 (ja) * 2014-03-28 2015-10-01 パナソニックIpマネジメント株式会社 不揮発性メモリ装置
JP6535459B2 (ja) 2014-12-08 2019-06-26 株式会社キーエンス プログラマブル・ロジック・コントローラ、基本ユニット、制御方法およびプログラム
JP6626315B2 (ja) * 2015-10-21 2019-12-25 株式会社キーエンス プログラマブル・ロジック・コントローラのモニタ装置及びプログラマブル・ロジック・コントローラ・システム
JP6870234B2 (ja) * 2016-08-02 2021-05-12 富士電機株式会社 制御装置、制御システム及び制御方法
US20180071515A1 (en) * 2016-09-10 2018-03-15 Boston Scientific Neuromodulation Corporation Pulse Definition Circuitry for Creating Stimulation Waveforms in an Implantable Pulse Generator
JP2018120327A (ja) 2017-01-24 2018-08-02 オムロン株式会社 制御装置、制御プログラムおよび制御システム
JP6601433B2 (ja) 2017-02-08 2019-11-06 横河電機株式会社 イベント解析装置、イベント解析システム、イベント解析方法、イベント解析プログラム及び記録媒体
US10353379B2 (en) 2017-02-28 2019-07-16 Sap Se Manufacturing process data collection and analytics
US10656615B2 (en) * 2018-01-18 2020-05-19 Mitsubishi Electric Corporation PLC, network unit, CPU, and data transfer method

Also Published As

Publication number Publication date
TWI684079B (zh) 2020-02-01
CN112840278A (zh) 2021-05-25
CN112840278B (zh) 2022-05-10
DE112018007978T5 (de) 2021-05-20
WO2020079720A1 (ja) 2020-04-23
US20210303487A1 (en) 2021-09-30
JP6563155B1 (ja) 2019-08-21
US11467990B2 (en) 2022-10-11
TW202016664A (zh) 2020-05-01

Similar Documents

Publication Publication Date Title
US8346378B2 (en) Programmable controller
TW201905713A (zh) 用於記憶體系統之控制器
JP4911786B2 (ja) 表示システム、表示制御装置及びコンピュータプログラム
JP2016143219A (ja) 制御装置、制御装置の制御方法及びプログラム
JP2016110458A (ja) プログラマブル・ロジック・コントローラ、基本ユニット、制御方法およびプログラム
JP2016110460A (ja) プログラマブルコントローラ、プログラマブルコントローラの制御方法およびプログラム
JP6563155B1 (ja) プログラマブルロジックコントローラ、外部機器、方法、及びプログラム
JP5844020B1 (ja) リモート制御装置および制御システム
US10802470B2 (en) Control system
JP2002318780A (ja) リアルタイム制御システム
US9910698B2 (en) Information processing apparatus, information processing method, and program
JP2015215684A (ja) 情報処理装置及び情報処理プログラム
JP4845175B2 (ja) 情報処理装置及びその制御方法、プログラム、記録媒体
JP2017059051A (ja) 情報処理装置及びその制御方法、並びにプログラム
JP2012116138A (ja) 制御装置、制御プログラム、画像形成装置
JP6701440B2 (ja) リモートコントローラ、遠隔制御方法、及び、プログラム
JP3977694B2 (ja) リセット装置
KR102280241B1 (ko) 메모리 액세스 제어 시스템, 메모리 액세스 제어 장치 및 이를 이용한 메모리 액세스 제어 방법
JPWO2020065863A1 (ja) プログラマブルロジックコントローラ、方法、及びプログラム
JP4689189B2 (ja) 情報処理装置
JP2015210590A (ja) Kvmスイッチ、kvmスイッチの制御方法及び情報処理装置
JPS60685B2 (ja) オンラインメンテナンス装置
JP2022152921A (ja) コントローラ及び制御方法
JP2002229807A (ja) 応答制御装置およびコンピュータ・プログラム
JP5511023B2 (ja) 映像表示システム及び方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190411

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20190411

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20190604

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190625

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190723

R150 Certificate of patent or registration of utility model

Ref document number: 6563155

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250