JP7446537B1 - プログラマブルロジックコントローラ、制御方法及びプログラム - Google Patents

プログラマブルロジックコントローラ、制御方法及びプログラム Download PDF

Info

Publication number
JP7446537B1
JP7446537B1 JP2023550654A JP2023550654A JP7446537B1 JP 7446537 B1 JP7446537 B1 JP 7446537B1 JP 2023550654 A JP2023550654 A JP 2023550654A JP 2023550654 A JP2023550654 A JP 2023550654A JP 7446537 B1 JP7446537 B1 JP 7446537B1
Authority
JP
Japan
Prior art keywords
program
memory
execution
update
unit
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.)
Active
Application number
JP2023550654A
Other languages
English (en)
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 JP7446537B1 publication Critical patent/JP7446537B1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Abstract

プログラム書込制御部(154)は、第1プログラム格納メモリ(121)がプログラムの展開に用いられた場合、更新プログラムを第2プログラム格納メモリ(122)に格納させる。プログラム展開制御部(155)は、第1プログラム実行メモリ(131)にプログラムが展開されている場合、更新プログラムを第2プログラム実行メモリ(132)に展開する。更新プログラム切替制御部(158)は、プログラム実行部(157)が第1プログラム実行メモリ(131)に展開されたプログラムを実行している場合、プログラム実行部(157)に第2プログラム実行メモリ(132)に展開された更新プログラムを実行させる。

Description

本開示は、プログラマブルロジックコントローラ、制御方法及びプログラムに関する。
従来、プログラムの開発において、作成したプログラムの間違い、不具合を検出して修正する所謂デバッグの作業が行われている。プログラマブルロジックコントローラ(PLC:Programmable Logic Controller、以下「PLC」と記載することがある)のプログラムの開発では、プログラマは、作成したプログラムで実際にPLCを稼働させながら動作を確認し、動作に問題があればプログラムを修正し、修正したプログラムをPLCに書き込む。そして、プログラマは、PLCの動作が正常になるまで動作の確認、プログラムの修正及び書き込みを繰り返している。よって、PLCのプログラムの開発では、修正したプログラムを書き込む度にPLCを停止させるとデバッグの作業時間が増大するため、PLCの稼働を可能な限り継続しつつ修正したプログラムを書き込む技術の提供が求められている。
特許文献1には、稼動中に保持されているプログラムの書き換えを可能にするPLC用機器が開示されている。特許文献1では、PLC用機器は、プログラムを保持する不揮発性のフラッシュメモリで構成された第1メモリ、第1メモリをバックアップするための不揮発性のフラッシュメモリで構成された第2メモリ、プログラムを実行する際に使用する揮発性のRAM(Random Access Memory)で構成された第3メモリを備える。また、特許文献1では、PLC用機器は、稼働中に書き換えるプログラムを第2メモリに書き込み、書き込みが成功した場合、書き込んだプログラムを第1メモリにコピーした後、当該プログラムを更に第3メモリに展開して起動している。
特開2004-272629号公報
特許文献1に記載されたPLC用機器では、第3メモリに展開された書き換え前の実行中のプログラムを書き換え後のプログラムに上書きしてから起動している。このため、特許文献1に記載されたPLC用機器では、書き換え後のプログラムの展開を開始すると書き換え前のプログラムの実行が停止するので、書き換え後のプログラムの展開を開始してから起動を開始するまでの間、プログラムの実行が停止する問題がある。
本開示は、上記実情に鑑みてなされたものであり、プログラムを書き換えるときにプログラムの実行を停止する時間を短縮することを目的とする。
上記目的を達成するため、本開示に係るプログラマブルロジックコントローラは、プログラムを格納可能なプログラム格納メモリと、プログラムを実行するときに用いられるプログラム実行メモリと、プログラム格納メモリに格納されたプログラムをプログラム実行メモリに展開する制御を行うプログラム展開制御部と、プログラム実行メモリに展開されたプログラムを実行するプログラム実行部と、プログラムの実行中に更新されたプログラムである更新プログラムをプログラム格納メモリに格納させる書き込み制御を行うプログラム書込制御部とを備える。また、プログラム格納メモリは、第1プログラム格納メモリと、第1プログラム格納メモリとは異なる第2プログラム格納メモリとを含み、プログラム実行メモリは、第1プログラム実行メモリと、第1プログラム実行メモリとは異なる第2プログラム実行メモリとを含む。また、プログラム書込制御部は、実行中のプログラムの展開に用いられたプログラム格納メモリを第1プログラム格納メモリとした場合、更新プログラムを第2プログラム格納メモリに格納させ、プログラム展開制御部は、実行中のプログラムが展開されているプログラム実行メモリを第1プログラム実行メモリとした場合、第2プログラム格納メモリが更新プログラムの格納に成功したとき、更新プログラムを第2プログラム格納メモリから第2プログラム実行メモリに展開する。そして、プログラマブルロジックコントローラは、プログラム実行部が第1プログラム実行メモリに展開されたプログラムを実行している場合、プログラム実行部に第2プログラム実行メモリに展開された更新プログラムを実行させる切り替え制御を行う更新プログラム切替制御部を更に備え、更新プログラム切替制御部は、切り替え制御において、プログラム実行部が用いるプログラム実行メモリを第1プログラム実行メモリから第2プログラム実行メモリに変更させる制御を行い、プログラム実行部は、切り替え制御に基づくプログラム実行メモリの変更によって結果的に第1プログラム実行メモリに展開された実行中のプログラムの実行を終了するとともに第2プログラム実行メモリに展開された更新プログラムの実行を開始する
本開示によれば、プログラマブルロジックコントローラは、プログラムの実行に用いていない第2プログラム実行メモリに更新プログラムを展開している。よって、本開示に係るプログラマブルロジックコントローラは、更新プログラムの展開を開始しても書き換え前のプログラムの実行が停止しないようにすることができる。また、本開示によれば、プログラマブルロジックコントローラは、更新プログラムの展開が終了した後、プログラムの実行に用いるプログラム実行メモリを第1プログラム実行メモリから第2プログラム実行メモリに切り替える。よって、本開示に係るプログラマブルロジックコントローラは、プログラム実行メモリを第1プログラム実行メモリから第2プログラム実行メモリに切り替えないプログラマブルロジックコントローラよりも速やかに書き換え前のプログラムの実行から書き換え後の更新プログラムの実行に切り替えることができる。これらの結果、本開示に係るプログラマブルロジックコントローラは、プログラムを書き換えるときにプログラムの実行を停止する時間を短縮できる。
実施の形態1に係るプログラム開発支援システムの構成を示すブロック図 プログラム開発支援システムの機能構成を示すブロック図 PLC及びエンジニアリングツールのハードウェア構成を示すブロック図 プログラムを受信してから管理テーブルを記憶するまでの処理の一例を示す図 更新プログラムを受信してから格納するまでの処理の一例を示す図 更新プログラムを展開してから管理テーブルを記憶するまでの処理の一例を示す図 更新プログラム切替制御処理の流れを示すフローチャート プログラム実行メモリを同期させてから第2更新プログラムを展開するまでの処理の一例を示す図 プログラム実行メモリを同期させずに第2更新プログラムを展開してから未更新のプログラムを展開するまでの処理の一例を示す図
以下、本開示を実施するための形態に係るプログラマブルロジックコントローラ、制御方法及びプログラムについて図面を参照して詳細に説明する。なお、図中同一又は相当する部分には同じ符号を付す。また、「プログラマブルロジックコントローラ」については、以降「PLC」と記載する。
(プログラム開発支援システム1について)
本開示の実施の形態に係るプログラム開発支援システム1は、デバッグの作業を行うことでプログラムの開発を支援するシステムである。図1に示すように、プログラム開発支援システム1は、プログラムを実行するPLC100、プログラムを生成、更新するエンジニアリングツール200を備える。PLC100及びエンジニアリングツール200は、情報を送受信可能なネットワークによって接続されている。
プログラム開発支援システム1では、エンジニアリングツール200は、プログラマであるユーザによって生成されたプログラムをPLC100に送信し、PLC100は、受信したプログラムを格納、展開、実行する。また、ユーザは、プログラムを実行しているPLC100の動作を確認し、動作に問題があればプログラムを修正、更新し、エンジニアリングツール200は、更新したプログラムである更新プログラムをPLC100に送信し、PLC100は、受信した更新プログラムを格納、展開、実行する。そして、プログラム開発支援システム1では、PLC100の動作が正常になるまでユーザによる動作の確認、プログラムの修正、更新、エンジニアリングツール200による更新プログラムの送信、PLC100による受信、格納、展開、実行を繰り返す。このようにすることで、プログラム開発支援システム1は、プログラムのデバッグの作業を支援することができ、プログラムの開発を支援できる。
(PLC100について)
図2に示すように、PLC100は、プログラムを受信するプログラム受信部110を含む。また、PLC100は、プログラムを格納可能なプログラム格納メモリ120、プログラムを実行するときに用いられるプログラム実行メモリ130、プログラムの実行を管理する情報である管理情報を記憶する管理情報記憶部140を含む。プログラム格納メモリ120は、第1プログラム格納メモリ121、第2プログラム格納メモリ122を含む。また、プログラム実行メモリ130は、第1プログラム実行メモリ131、第2プログラム実行メモリ132を含む。また、管理情報記憶部140は、第1管理情報記憶部141、第2管理情報記憶部142を含む。
また、PLC100は、プログラム格納メモリ120を管理するプログラム格納管理部151、プログラム実行メモリ130を管理するプログラム実行管理部152、管理情報記憶部140を管理する管理情報記憶管理部153を含む。また、PLC100は、プログラムの書き込み制御を行うプログラム書込制御部154、プログラムを展開する制御を行うプログラム展開制御部155、管理情報を生成する管理情報生成部156を含む。また、PLC100は、プログラムを実行するプログラム実行部157、更新されたプログラムである更新プログラムへの切り替え制御を行う更新プログラム切替制御部158を含む。
(エンジニアリングツール200について)
図2に示すように、エンジニアリングツール200は、プログラムを生成するプログラム生成部210、プログラムを記憶するプログラム記憶部220、プログラムを送信するプログラム送信部230を含む。プログラム生成部210は、プログラムのコンパイルを行うコンパイル実行部211を含む。
(PLC100のハードウェア構成について)
図3に示すように、PLC100は、制御プログラム59に従って処理を実行する制御部51を備える。制御部51は、CPU(Central Processing Unit)を備える。制御部51は、制御プログラム59に従って、図2に示す、プログラム格納管理部151、プログラム実行管理部152、管理情報記憶管理部153、プログラム書込制御部154、プログラム展開制御部155、管理情報生成部156、プログラム実行部157、更新プログラム切替制御部158として機能する。
図3に戻り、PLC100は、制御プログラム59をロードし、制御部51の作業領域として用いられる主記憶部52を備える。主記憶部52は、RAMといった揮発性メモリを備える。主記憶部52は、図2に示す、プログラム実行メモリ130、第1プログラム実行メモリ131、第2プログラム実行メモリ132、管理情報記憶部140、第1管理情報記憶部141、第2管理情報記憶部142として機能する。
図3に戻り、PLC100は、制御プログラム59を予め記憶する外部記憶部53を備える。外部記憶部53は、制御部51の指示に従って、このプログラムが記憶する情報を制御部51に供給し、制御部51から供給されたデータを記憶する。外部記憶部53は、フラッシュメモリ、HDD(Hard Disk Drive)、SSD(Solid State Drive)といった不揮発性メモリを備える。外部記憶部53は、図2に示す、プログラム格納メモリ120、第1プログラム格納メモリ121、第2プログラム格納メモリ122として機能する。
図3に戻り、PLC100は、ユーザに操作される操作部54を備える。操作部54を介して、入力された情報が制御部51に供給される。操作部54は、キーボード、マウス、タッチパネル等の情報入力部品を備える。
また、PLC100は、操作部54を介して入力された情報及び制御部51が出力した情報を表示する表示部55を備える。表示部55は、LCD(Liquid Crystal Display)、有機EL(Electro-Luminescence)ディスプレイ等の表示装置を備える。
また、PLC100は、情報を送受信する送受信部56を備える。送受信部56は、ネットワークに接続する通信網終端装置、無線通信装置等の情報通信部品を備える。送受信部56は、図2に示すプログラム受信部110として機能する。
図3に戻り、PLC100では、主記憶部52、外部記憶部53、操作部54、表示部55及び送受信部56はいずれも内部バス50を介して制御部51に接続されている。
PLC100は、制御部51が主記憶部52、外部記憶部53、操作部54、表示部55及び送受信部56を資源として用いることによって、図2に示す上記の各部110、120~122、130~132、140~142、151~158の機能を実現する。例えば、PLC100は、プログラム受信部110が行うプログラム受信ステップ、プログラム格納管理部151が行うプログラム格納判定ステップの一例としてのプログラム格納管理ステップを実行する。
また、例えば、PLC100は、プログラム実行管理部152が行うプログラム実行判定ステップの一例としてのプログラム実行管理ステップ、管理情報記憶管理部153が行う管理情報記憶判定ステップの一例としての管理情報記憶管理ステップを実行する。また、例えば、PLC100は、プログラム書込制御部154が行うプログラム書込制御ステップ、プログラム展開制御部155が行うプログラム展開制御ステップ、管理情報生成部156が行う管理情報生成ステップを実行する。また、例えば、PLC100は、プログラム実行部157が行うプログラム実行ステップ、更新プログラム切替制御部158が行う更新プログラム切替制御ステップを実行する。
(エンジニアリングツール200のハードウェア構成について)
また、図3に示すように、エンジニアリングツール200もPLC100と同様に、制御部51、主記憶部52、外部記憶部53、操作部54、表示部55、送受信部56を備える。制御部51は、制御プログラム59に従って、図2に示す、プログラム生成部210、コンパイル実行部211として機能し、外部記憶部53は、プログラム記憶部220として機能し、送受信部56は、プログラム送信部230として機能する。図3に戻り、エンジニアリングツール200は、制御部51が主記憶部52、外部記憶部53、操作部54、表示部55及び送受信部56を資源として用いることによって、図2に示す上記の各部210、211、220、230の機能を実現する。例えば、エンジニアリングツール200は、プログラム生成部210が行うプログラム生成ステップ、コンパイル実行部211が行うコンパイル実行ステップ、プログラム送信部230が行うプログラム送信ステップを実行する。
(エンジニアリングツール200の機能構成の詳細について)
図2に戻り、プログラム生成部210は、ユーザが操作部54を用いてプログラムを記述する操作を行った場合、プログラムを記述する。ここで、プログラムの記述の形式には、文字データの形式だけでなく図形データの形式も含まれる。例えば、プログラムの記述の形式は、ST言語であればソースコードであり、ラダー言語であればラダー・ダイアグラムである。また、プログラム生成部210は、ユーザが操作部54を用いてプログラムをコンパイルする操作を行った場合、コンパイル実行部211にプログラムのコンパイルを行わせる。また、プログラム生成部210は、生成したプログラムのソースファイルと、コンパイルを行った後のプログラムの実行ファイルとをプログラム記憶部220に記憶させる。
プログラム送信部230は、プログラム記憶部220が記憶しているプログラムの実行ファイルをPLC100に送信する。なお、エンジニアリングツール200から受信したプログラムの実行ファイルをPLC100が実行しているとき、ユーザは、PLC100の動作に問題があると判断して当該プログラムを修正、更新する場合がある。この場合、プログラム生成部210は、更新したプログラムである更新プログラムのソースファイルと実行ファイルとを生成し、プログラム記憶部220に記憶させる。そして、プログラム送信部230は、プログラム記憶部220が記憶している更新プログラムの実行ファイルをPLC100に送信する。
(PLC100の機能構成の詳細について)
プログラム受信部110は、エンジニアリングツール200からプログラムの実行ファイルを受信する。また、プログラム受信部110は、プログラムの実行中にユーザがプログラムを修正、更新した場合、エンジニアリングツール200から更新プログラムの実行ファイルを受信する。以下、プログラムの実行ファイルを単に「プログラム」と記載し、更新プログラムの実行ファイルを単に「更新プログラム」と記載する。
本実施の形態では、第1プログラム実行メモリ131は、第1の揮発性メモリによって構成されており、第2プログラム実行メモリ132は、第1の揮発性メモリとは別体の第2の揮発性メモリによって構成されている。また、第1プログラム格納メモリ121は、第1の不揮発性メモリによって構成されており、第2プログラム格納メモリ122は、第1の不揮発性メモリとは別体の第2の不揮発性メモリによって構成されている。また、第1管理情報記憶部141は、第1の揮発性メモリにおけるプログラムが展開されない特定領域によって構成されており、第2管理情報記憶部142は、第2の揮発性メモリにおける特定領域によって構成されている。
プログラム書込制御部154は、プログラム受信部110が受信したプログラムの実行ファイルをプログラム格納メモリ120に格納させる書き込み制御を行う。プログラム書込制御部154は、プログラムを実行していない場合、第1プログラム格納メモリ121と第2プログラム格納メモリ122とが記憶しているプログラムの情報を同期させた後、受信したプログラムを第1プログラム格納メモリ121に格納させる。
例えば、図4に示すように、エンジニアリングツール200から受信したプログラムが第1プログラムPRG1、第2プログラムPRG2、第3プログラムPRG3であった場合について考える。なお、図4に示すように、第1プログラム格納メモリ121及び第2プログラム格納メモリ122は、記憶しているプログラムの情報がない状態で同期しているとする。この場合、プログラム書込制御部154は、受信した各プログラムPRG1~PRG3を第1プログラム格納メモリ121の空き領域に格納させる。
図2に戻り、プログラム展開制御部155は、プログラム格納メモリ120がプログラムの格納に成功した場合、プログラム格納メモリ120に格納されたプログラムをプログラム実行メモリ130に展開する制御を行う。プログラム展開制御部155は、プログラムを実行していない場合、第1プログラム格納メモリ121に格納されているプログラムを第1プログラム実行メモリ131に展開する。
例えば、図4に示すように、第1プログラム格納メモリ121が各プログラムPRG1~PRG3の格納に成功した後、まず、プログラム展開制御部155は、第1プログラム格納メモリ121に格納されている第1プログラムPRG1を第1プログラム実行メモリ131の第1アドレス0000Hから第2アドレス0100Hまでに展開する。また、プログラム展開制御部155は、第1プログラム格納メモリ121に格納されている第2プログラムPRG2を第1プログラム実行メモリ131の第2アドレス0100Hから第3アドレス0200Hまでに展開する。そして、プログラム展開制御部155は、第1プログラム格納メモリ121に格納されている第3プログラムPRG3を第1プログラム実行メモリ131の第3アドレス0200Hから第4アドレス0300Hまでに展開する。すなわち、プログラム展開制御部155は、各プログラムPRG1~PRG3を第1プログラム実行メモリ131の第1アドレス0000Hから第4アドレス0300Hまでに連続させた状態で展開する。
図2に戻り、管理情報生成部156は、プログラムを実行する前に管理情報の一例としての管理テーブルを生成し、生成した管理テーブルを管理情報記憶部140に記憶させる。ここで、管理テーブルとは、プログラム実行メモリ130に展開されたプログラムの配置アドレスを示すテーブルである。管理情報生成部156は、プログラムを実行していない場合、第1プログラム実行メモリ131に展開されたプログラムの配置アドレスを示す管理テーブルを生成し、生成した管理テーブルを第1管理情報記憶部141に記憶させる。
例えば、図4に示すように、第1プログラム実行メモリ131に各プログラムPRG1~PRG3が展開された後、管理情報生成部156は、管理テーブルとして、第1プログラムPRG1の先頭の配置アドレスが第1アドレス0000H、第2プログラムPRG2の先頭の配置アドレスが第2アドレス0100H、第3プログラムPRG3の先頭の配置アドレスが第3アドレス0200Hである旨を示すテーブルを生成し、生成した管理テーブルを第1管理情報記憶部141に記憶させる。
図2に戻り、プログラム実行部157は、管理情報記憶部140が記憶している管理テーブルを用いてプログラム実行メモリ130に展開されたプログラムを実行する。プログラム実行部157は、プログラムを実行していない場合、第1管理情報記憶部141が記憶している管理テーブルを用いて第1プログラム実行メモリ131に展開されたプログラムを実行する。
例えば、図4に示すように、プログラム実行部157は、第1管理情報記憶部141が記憶している管理テーブルから各プログラムPRG1~PRG3の先頭の配置アドレスが各アドレス0000H、0100H、0200Hである旨を特定し、第1プログラム実行メモリ131における格納先が特定された各プログラムPRG1~PRG3を実行する。
図2に戻り、プログラム格納判定部の一例としてのプログラム格納管理部151は、プログラムの実行中にプログラム受信部110が更新プログラムを受信した場合、実行中のプログラムの展開に用いられたプログラム格納メモリ120が第1プログラム格納メモリ121であるか、又は、第2プログラム格納メモリ122であるかを判定する。例えば、プログラム格納管理部151は、図示しないプログラム格納メモリ用フラグが示す値が「1」である場合、実行中のプログラムの展開に用いられたプログラム格納メモリ120が第1プログラム格納メモリ121であると判定する。一方、プログラム格納管理部151は、プログラム格納メモリ用フラグが示す値が「2」である場合、実行中のプログラムの展開に用いられたプログラム格納メモリ120が第2プログラム格納メモリ122であると判定する。
なお、更新プログラムが受信された場合、プログラム書込制御部154は、プログラム格納管理部151の判定結果が第1プログラム格納メモリ121であれば、第2プログラム格納メモリ122が記憶している情報を第1プログラム格納メモリ121が記憶している情報と同期させる。その後、プログラム書込制御部154は、受信した更新プログラムを第2プログラム格納メモリ122に格納させる。一方、プログラム書込制御部154は、プログラム格納管理部151の判定結果が第2プログラム格納メモリ122であれば、第1プログラム格納メモリ121が記憶している情報を第2プログラム格納メモリ122が記憶している情報と同期させる。その後、プログラム書込制御部154は、受信した更新プログラムを第1プログラム格納メモリ121に格納させる。
例えば、図5に示すように、各プログラムPRG1~PRG3を実行中の状態から、エンジニアリングツール200から受信したプログラムが第1プログラムPRG1を更新した第1更新プログラムPRG11、第3プログラムPRG3を更新した第3更新プログラムPRG13であった場合について考える。この場合、プログラム格納管理部151は、実行中のプログラムを格納しているプログラム格納メモリ120が第1プログラム格納メモリ121であると判定する。次に、プログラム書込制御部154は、第1プログラム格納メモリ121が格納している各プログラムPRG1~PRG3を第2プログラム格納メモリ122にも格納させることで、各プログラムPRG1~PRG3の情報を同期させる。そして、プログラム書込制御部154は、受信した各更新プログラムPRG11、PRG13を第2プログラム格納メモリ122の空き領域に格納させる。
図2に戻り、プログラム実行判定部の一例としてのプログラム実行管理部152は、プログラムの実行中にプログラム書込制御部154が更新プログラムの書き込みに成功した場合、実行中のプログラムが展開されているプログラム実行メモリ130が第1プログラム実行メモリ131であるか、又は、第2プログラム実行メモリ132であるかを判定する。例えば、プログラム実行管理部152は、図示しないプログラム実行メモリ用フラグが示す値が「1」である場合、実行中のプログラムが展開されているプログラム実行メモリ130が第1プログラム実行メモリ131であると判定する。一方、プログラム実行管理部152は、プログラム実行メモリ用フラグが示す値が「2」である場合、実行中のプログラムが展開されているプログラム実行メモリ130が第2プログラム実行メモリ132であると判定する。
なお、プログラム展開制御部155は、更新プログラムの格納に成功した場合、プログラム実行管理部152の判定結果が第1プログラム実行メモリ131であれば第2プログラム格納メモリ122に格納されている更新プログラムを第2プログラム実行メモリ132に展開する。そして、プログラム展開制御部155は、第1プログラム実行メモリ131に展開されている更新されなかった実行中のプログラムを第2プログラム実行メモリ132に展開する。一方、この場合、プログラム展開制御部155は、プログラム実行管理部152の判定結果が第2プログラム実行メモリ132であれば第1プログラム格納メモリ121に格納されている更新プログラムを第1プログラム実行メモリ131に展開する。そして、プログラム展開制御部155は、第2プログラム実行メモリ132に展開されている更新されなかった実行中のプログラムを第1プログラム実行メモリ131に展開する。
例えば、図6に示すように、第2プログラム格納メモリ122が各更新プログラムPRG11、PRG13の格納に成功した後、プログラム展開制御部155は、第2プログラム格納メモリ122に格納されている第1更新プログラムPRG11を第2プログラム実行メモリ132の第1メモリ領域の一例としての第1アドレス0000Hから第2アドレス0110Hまでに展開する。また、プログラム展開制御部155は、第2プログラム格納メモリ122に格納されている第3更新プログラムPRG13を第2プログラム実行メモリ132の第1メモリ領域の一例としての第2アドレス0110Hから第3アドレス0220Hまでに展開する。そして、プログラム展開制御部155は、第1プログラム実行メモリ131に格納されている第2プログラムPRG2を第2プログラム実行メモリ132の第2メモリ領域の一例としての第3アドレス0220Hから第4アドレス0320Hまでに展開する。すなわち、プログラム展開制御部155は、各プログラムPRG11、PRG13、PRG2を第2プログラム実行メモリ132の第1アドレス0000Hから第4アドレス0320Hまでに連続させた状態で展開する。
図2に戻り、管理情報記憶判定部の一例としての管理情報記憶管理部153は、プログラムの実行中にプログラム展開制御部155が更新プログラムを展開する制御を行った場合、実行中のプログラムにおいて用いられている管理テーブルを記憶している管理情報記憶部140が第1管理情報記憶部141であるか、又は、第2管理情報記憶部142であるかを判定する。例えば、管理情報記憶管理部153は、図示しない管理情報記憶用フラグが示す値が「1」である場合、実行中のプログラムにおいて用いられている管理テーブルを記憶している管理情報記憶部140が第1管理情報記憶部141であると判定する。一方、プログラム格納管理部151は、管理情報記憶用フラグが示す値が「2」である場合、実行中のプログラムにおいて用いられている管理テーブルを記憶している管理情報記憶部140が第2管理情報記憶部142であると判定する。
この場合、管理情報生成部156は、管理情報記憶管理部153の判定結果が第1管理情報記憶部141であれば第2プログラム実行メモリ132に展開された更新プログラムの配置アドレスを示す管理テーブルを生成し、生成した管理テーブルを第2管理情報記憶部142に記憶させる。一方、この場合、管理情報生成部156は、管理情報記憶管理部153の判定結果が第2管理情報記憶部142であれば第1プログラム実行メモリ131に展開された更新プログラムの配置アドレスを示す管理テーブルを生成し、生成した管理テーブルを第1管理情報記憶部141に記憶させる。
具体的には、図6に示すように、管理情報生成部156は、管理テーブルとして、第1更新プログラムPRG11の先頭の配置アドレスが第1アドレス0000H、第2プログラムPRG2の先頭の配置アドレスが第2アドレス0220H、第3更新プログラムPRG13の先頭の配置アドレスが第3アドレス0110Hである旨を示すテーブルを生成し、生成した管理テーブルを第2管理情報記憶部142に記憶させる。
図2に戻り、更新プログラム切替制御部158は、プログラム実行部157が第1管理情報記憶部141に記憶されている管理テーブルを用いて第1プログラム実行メモリ131に展開されたプログラムを実行している場合、プログラム実行部157に第2管理情報記憶部142が記憶している管理テーブルを用いて第2プログラム実行メモリ132に展開された更新プログラムを実行させる。また、更新プログラム切替制御部158は、プログラム実行部157が第2管理情報記憶部142に記憶されている管理テーブルを用いて第2プログラム実行メモリ132に展開されたプログラムを実行している場合、プログラム実行部157に第1管理情報記憶部141が記憶している管理テーブルを用いて第1プログラム実行メモリ131に展開された更新プログラムを実行させる。
例えば、図6に示すように、プログラム実行部157が参照するプログラム実行メモリ130及び管理情報記憶部140を切り替えさせる。具体的には、更新プログラム切替制御部158は、プログラム実行部157が用いる揮発性メモリを第1の揮発性メモリから第2の揮発性メモリに変更させる。この結果、プログラム実行部157は、第2管理情報記憶部142が記憶している管理テーブルから各プログラムPRG11、PRG2、PRG13の先頭の配置アドレスが各アドレス0000H、0220H、0110Hである旨を特定し、プログラムPRG1~PRG3の実行を停止して第2プログラム実行メモリ132における格納先が特定された各プログラムPRG11、PRG2、PRG13を実行することになる。なお、更新プログラム切替制御部158は、各プログラムPRG11、PRG2、PRG13を実行した後、プログラム格納メモリ用フラグ、プログラム実行メモリ用フラグ、管理情報記憶用フラグが示す値を「1」から「2」に更新する。
(更新プログラム切替制御処理のフローチャートについて)
次に、フローチャートを用いてプログラム開発支援システム1がプログラムの開発を支援する制御について説明する。ここで、エンジニアリングツール200が生成、又は、更新したプログラムをPLC100に送信する処理については、プログラム生成部210がユーザの操作に基づいてプログラムを生成、又は、更新してプログラム記憶部220に記憶させた後、プログラム送信部230が生成、又は、更新したプログラムをPLC100に送信するだけである。
また、PLC100がプログラムを実行する処理については、プログラム受信部110がエンジニアリングツール200からプログラムの実行ファイルを受信し、プログラム書込制御部154がプログラムを第1プログラム格納メモリ121に格納し、プログラム展開制御部155がプログラムを第1プログラム実行メモリ131に展開し、管理情報生成部156が管理テーブルを生成して第1管理情報記憶部141に記憶させた後、プログラム実行部157が管理テーブルを用いてプログラムを実行するだけである。
よって、冗長な説明を低減するため、上述した処理については図示及び詳細な説明を省略し、以下、PLC100が実行中のプログラムを更新プログラムに切り替える制御についてのみ説明する。PLC100は、プログラム実行部157がプログラムの実行を開始すると、図7に示す更新プログラム切替制御処理の実行を開始する。
先ず、プログラム受信部110は、更新プログラムを受信する(ステップS101)。例えば、各プログラムPRG1~PRG3の実行中において、ユーザがPLC100の動作に問題があると判断して各プログラムPRG1、PRG3を修正、更新すると、プログラム受信部110は、エンジニアリングツール200から第1更新プログラムPRG11及び第3更新プログラムPRG13を受信する。
次に、プログラム格納管理部151は、実行中のプログラムの展開に用いられたプログラム格納メモリ120が第1プログラム格納メモリ121であるか、又は、第2プログラム格納メモリ122であるかを判定する(ステップS102)。例えば、プログラム格納管理部151は、プログラム格納メモリ用フラグが示す値が「1」であれば第1プログラム格納メモリ121が実行中の各プログラムPRG1~PRG3の展開に用いられたと判定する。
次に、プログラム書込制御部154は、プログラム格納管理部151の判定結果に基づいてプログラム格納メモリ120の記憶内容を同期させる(ステップS103)。例えば、プログラム書込制御部154は、第1プログラム格納メモリ121が格納している各プログラムPRG1~PRG3を第2プログラム格納メモリ122にも格納させる。
次に、プログラム書込制御部154は、プログラム格納管理部151の判定結果に基づいてプログラム格納メモリ120に更新プログラムを格納させる(ステップS104)。例えば、プログラム書込制御部154は、各更新プログラムPRG11、PRG13を第2プログラム格納メモリ122に格納させる。
次に、プログラム実行管理部152は、実行中のプログラムが展開されているプログラム実行メモリ130が第1プログラム実行メモリ131であるか、又は、第2プログラム実行メモリ132であるかを判定する(ステップS105)。例えば、プログラム実行管理部152は、プログラム実行メモリ用フラグが示す値が「1」であれば第1プログラム実行メモリ131に実行中の各プログラムPRG1~PRG3が展開されていると判定する。
次に、プログラム展開制御部155は、プログラム実行管理部152の判定結果に基づいてプログラム格納メモリ120に格納された更新プログラムをプログラム実行メモリ130に展開する(ステップS106)。例えば、プログラム展開制御部155は、各更新プログラムPRG11、PRG13を第2プログラム格納メモリ122から第2プログラム実行メモリ132の第1アドレス0000Hから第3アドレス0220Hまでに連続させた状態で展開する。
次に、プログラム展開制御部155は、プログラム実行管理部152の判定結果に基づいて展開されている未更新のプログラムをプログラム実行メモリ130に展開する(ステップS107)。例えば、プログラム展開制御部155は、第2プログラムPRG2を第1プログラム実行メモリ131から第2プログラム実行メモリ132の第3アドレス0220Hから第4アドレス0320Hまでに各更新プログラムPRG11、PRG13と連続させた状態で展開する。
次に、管理情報記憶管理部153は、実行中のプログラムにおいて用いられている管理テーブルを記憶している管理情報記憶部140が第1管理情報記憶部141であるか、又は、第2管理情報記憶部142であるかを判定する(ステップS108)。例えば、管理情報記憶管理部153は、管理情報記憶用フラグが示す値が「1」であれば第1管理情報記憶部141が実行中のプログラムにおいて用いられている管理テーブルを記憶していると判定する。
次に、管理情報生成部156は、管理情報記憶管理部153の判定結果に基づいてプログラム実行メモリ130に展開された更新プログラムの配置アドレスを示す管理テーブルを生成して管理情報記憶部140に記憶させる(ステップS109)。例えば、管理情報生成部156は、管理テーブルとして、第1更新プログラムPRG11の先頭の配置アドレスが第1アドレス0000H、第2プログラムPRG2の先頭の配置アドレスが第2アドレス0220H、第3更新プログラムPRG13の先頭の配置アドレスが第3アドレス0110Hである旨を示すテーブルを生成して第2管理情報記憶部142に記憶させる。
次に、更新プログラム切替制御部158は、プログラム実行部157が用いるプログラム実行メモリ130及び管理情報記憶部140を切り替えさせる(ステップS110)。例えば、更新プログラム切替制御部158は、プログラム実行部157が用いる揮発性メモリを第1の揮発性メモリから第2の揮発性メモリに変更させる。
また、プログラム実行部157は、更新プログラム及び更新されなかった未更新のプログラムを実行する(ステップS111)。例えば、プログラム実行部157は、第2管理情報記憶部142が記憶している管理テーブルから各プログラムPRG11、PRG2、PRG13の先頭の配置アドレスが各アドレス0000H、0220H、0110Hである旨を特定し、プログラムPRG1~PRG3の実行を停止して第2プログラム実行メモリ132における格納先が特定された各プログラムPRG11、PRG2、PRG13を実行する。
そして、更新プログラム切替制御部158は、プログラム格納メモリ用フラグ、プログラム実行メモリ用フラグ、管理情報記憶用フラグが示す値を更新し(ステップS112)、ステップS101に戻る。例えば、更新プログラム切替制御部158は、プログラム格納メモリ用フラグ、プログラム実行メモリ用フラグ、管理情報記憶用フラグが示す値を「1」から「2」に更新する。
以上説明したように、本実施の形態に係るプログラム開発支援システム1によれば、PLC100では、プログラム展開制御部155は、プログラム格納メモリ120に格納されたプログラムをプログラム実行メモリ130に展開する制御を行う。また、プログラム実行部157は、プログラム実行メモリ130に展開されたプログラムを実行する。また、プログラム書込制御部154は、プログラムの実行中に更新プログラムをプログラム格納メモリ120に格納させる書き込み制御を行う。
ここで、プログラム格納メモリ120は、不揮発性メモリで構成されており、第1の不揮発性メモリで構成された第1プログラム格納メモリ121と第2の不揮発性メモリで構成された第2プログラム格納メモリ122とを含んでいる。一方、プログラム実行メモリ130は、揮発性メモリで構成されており、第1の揮発性メモリで構成された第1プログラム実行メモリ131と第2の揮発性メモリで構成された第2プログラム実行メモリ132とを含んでいる。
また、プログラム書込制御部154は、実行中のプログラムの展開に用いられたプログラム格納メモリ120を第1プログラム格納メモリ121とした場合、更新プログラムを第2プログラム格納メモリ122に格納させる。また、プログラム展開制御部155は、実行中のプログラムが展開されているプログラム実行メモリ130を第1プログラム実行メモリ131とした場合、第2プログラム格納メモリ122が更新プログラムの格納に成功したとき、更新プログラムを第2プログラム格納メモリ122から第2プログラム実行メモリ132に展開する。
このようにすることで、本実施の形態に係るPLC100は、不揮発性メモリで構成されたプログラム格納メモリ120に受信した更新プログラムを格納するので、仮に停電が発生しても受信した更新プログラムをプログラム格納メモリ120に保持できる。この結果、本実施の形態に係るPLC100では、揮発性メモリで構成されたプログラム実行メモリ130における停電発生時に情報を保持可能とする対策が不要となる。
また、本実施の形態に係るプログラム開発支援システム1によれば、更新プログラム切替制御部158は、プログラム実行部157が第1プログラム実行メモリ131に展開されたプログラムを実行している場合、プログラム実行部157に第2プログラム実行メモリ132に展開された更新プログラムを実行させる切り替え制御を行う。
ここで、上述したように、特許文献1に記載されたPLC用機器では、第3メモリに展開された実行中のプログラムを更新プログラムに更新してから当該更新プログラムを実行しており、更新プログラムへの更新を開始すると実行中のプログラムの実行が停止する。このため、特許文献1に記載されたPLC用機器では、更新プログラムへの更新を開始してから当該更新プログラムの実行を開始するまでの間、プログラムの実行が停止する問題がある。
特に、特許文献1に記載されたPLC用機器では、不揮発性のフラッシュメモリで構成された第1メモリから揮発性のRAMで構成された第3メモリに更新プログラムを展開するため、プログラムの実行が停止する期間が長くなる問題がある。よって、特許文献1に記載されたPLC用機器は、プログラムの実行が停止する期間が長くなることで、FA機器の制御タイミングのズレが発生し易くなり、FA機器の警告音が発生したり、場合によってはFA機器が故障したりする問題がある。
これに対して、本実施の形態に係るPLC100は、プログラムの実行に用いていない第2プログラム実行メモリ132に更新プログラムを展開する。このようにすることで、本実施の形態に係るPLC100は、更新プログラムの展開を開始しても書き換え前のプログラムの実行が停止しないようにすることができる。また、本実施の形態に係るPLC100は、更新プログラムの展開及び管理テーブルの生成、記憶が終了した後、プログラムの実行に用いるプログラム実行メモリ130を第1プログラム実行メモリ131から第2プログラム実行メモリ132に切り替えるため、切り替え制御の処理時間が極めて短くなっている。このようにすることで、本実施の形態に係るPLC100は、プログラム実行メモリを第1プログラム実行メモリから第2プログラム実行メモリに切り替えないPLCよりも速やかに書き換え前のプログラムの実行から書き換え後の更新プログラムの実行に切り替えることができる。
これらの結果、本実施の形態に係るPLC100は、プログラムを書き換えるときにプログラムの実行を停止する時間を短縮できる。このため、本実施の形態に係るPLC100は、更新プログラムで制御するFA機器の制御タイミングのズレが発生し難くなり、FA機器からの警告音の発生、FA機器の故障といった事象を低減できる。
また、特許文献1に記載されたPLC用機器では、受信した更新プログラムを不揮発性のフラッシュメモリで構成された第2メモリに格納する。その後、第2メモリに格納された更新プログラムを不揮発性のフラッシュメモリで構成された第1メモリにコピーした後、第1メモリにコピ-した更新プログラムを第3メモリに展開している。このため、特許文献1に記載されたPLC用機器では、更新プログラムを受信してから第3メモリに展開するまでの期間が長くなる問題がある。
これに対して、本実施の形態に係るPLC100は、プログラムの実行に用いていない第2プログラム格納メモリ122に受信した更新プログラムを格納した後、第2プログラム実行メモリ132に更新プログラムを展開している。このようにすることで、本実施の形態に係るPLC100は、プログラム格納メモリに受信した更新プログラムを格納してからプログラム実行メモリに更新プログラムを展開するまでの間に不揮発性メモリに更新プログラムをコピーする必要があるPLCよりも更新プログラムを受信してからプログラム実行メモリに当該更新プログラムを展開するまでの期間を短縮できる。
なお、近年ではPLCのプログラミングの手法として、構造化プログラミングが主流となりつつある。構造化プログラミングでは、プログラムにおいて従来のデバイスではなくグローバル変数、ローカル変数といった変数が使用されている。特にグローバル変数は、複数のプログラムにおいて使用される共通の変数であるため、プログラマは、グローバル変数を変更する修正、更新を行った場合、当該グローバル変数を使用している全てのプログラムを修正、更新する必要がある。このため、近年のPLCのプログラミングにおいて、一度に修正、更新するプログラムの数は、増大する傾向にある。
この結果、特許文献1に記載されたPLC用機器では、一度に修正、更新するプログラムの数が増大するに連れてプログラムの実行が停止する期間、更新プログラムを受信してからプログラム実行メモリに当該更新プログラムを展開するまでの期間が長くなってゆく問題がある。
これに対して、本実施の形態に係るPLC100は、特許文献1に記載されたPLC用機器よりも更新するプログラムの数が増大したときのこれらの期間を短縮できる。
また、本実施の形態に係るプログラム開発支援システム1によれば、管理情報生成部156は、プログラムの実行を管理する情報である管理テーブルを生成し、管理情報記憶部140に記憶させる。また、プログラム実行部157は、管理情報記憶部140が記憶している管理テーブルを用いてプログラム実行メモリ130に展開されたプログラムを実行する。また、管理情報生成部156は、更新プログラムの実行を管理する管理テーブルを生成するとともに、実行中のプログラムにおいて用いられている管理テーブルを記憶している管理情報記憶部140を第1管理情報記憶部141とした場合、生成した管理テーブルを第2管理情報記憶部142に記憶させる。そして、更新プログラム切替制御部158は、プログラム実行部157が第1管理情報記憶部141に記憶されている管理テーブルを用いて第1プログラム実行メモリ131に展開されたプログラムを実行している場合、プログラム実行部157に第2管理情報記憶部142が記憶している管理テーブルを用いて第2プログラム実行メモリ132に展開された更新プログラムを実行させる切り替え制御を行う。
このようにすることで、本実施の形態に係るPLC100は、プログラムの実行に用いていない第2管理情報記憶部142に新たに生成した管理テーブルを記憶するため、管理テーブルの生成を開始しても書き換え前のプログラムの実行が停止しないようにすることができる。また、本実施の形態に係るPLC100は、管理テーブルの生成、記憶が終了した後、プログラムの実行に用いる管理情報記憶部140を第1管理情報記憶部141から第2管理情報記憶部142に切り替えるため、切り替え制御の処理時間が極めて短くなっている。このようにすることで、本実施の形態に係るPLC100は、管理情報記憶部を第1管理情報記憶部から第2管理情報記憶部に切り替えないPLCよりも管理テーブルの生成、記憶に要する時間を短縮でき、書き換え前のプログラムの実行から書き換え後の更新プログラムの実行に切り替える時間を更に短縮できる。
また、本実施の形態に係るプログラム開発支援システム1によれば、プログラムは、第1プログラムPRG1と第3プログラムPRG3とを含み、更新プログラムは、第1プログラムPRG1が更新された第1更新プログラムPRG11と、第3プログラムPRG3が更新された第3更新プログラムPRG13とを含む。また、プログラム書込制御部154は、第1プログラム格納メモリ121が実行中の各プログラムPRG1~PRG3の展開に用いられた場合、第1更新プログラムPRG11及び第3更新プログラムPRG13を第2プログラム格納メモリ122に格納させる。
また、プログラム展開制御部155は、第1プログラム実行メモリ131に実行中の各プログラムPRG1~PRG3が展開されている場合、第2プログラム格納メモリ122が第1更新プログラムPRG11及び第3更新プログラムPRG13の格納に成功したとき、第1更新プログラムPRG11及び第3更新プログラムPRG13を第2プログラム格納メモリ122から第2プログラム実行メモリ132に展開する。また、管理情報生成部156は、第1更新プログラムPRG11及び第3更新プログラムPRG13の実行を管理する管理テーブルを生成するとともに、実行中の各プログラムPRG1~PRG3において用いられている管理テーブルを第1管理情報記憶部141が記憶している場合、生成した管理テーブルを第2管理情報記憶部142に記憶させる。
そして、更新プログラム切替制御部158は、プログラム実行部157が第1管理情報記憶部141に記憶されている管理テーブルを用いて第1プログラム実行メモリ131に展開された第1プログラムPRG1及び第3プログラムPRG3を実行している場合、プログラム実行部157に第2管理情報記憶部142が記憶している管理テーブルを用いて第2プログラム実行メモリ132に展開された第1更新プログラムPRG11及び第3更新プログラムPRG13を実行させる。
このようにすることで、本実施の形態に係るPLC100は、複数の更新プログラムを受信した場合でも、1回の切り替え制御で書き換え前のプログラムの実行から書き換え後の更新プログラムの実行に切り替えることができる。この結果、本実施の形態に係るPLC100は、複数の更新プログラムを受信した場合に1回の切り替え制御で書き換え前のプログラムの実行から書き換え後の更新プログラムの実行に切り替えることができないPLCよりもプログラムを書き換えるときにプログラムの実行を停止する時間を短縮でき、更新するプログラムの数が増大したときのプログラムの実行を停止する時間を更に短縮できる。
また、本実施の形態に係るプログラム開発支援システム1によれば、プログラムは、第2プログラムPRG2を更に含む。また、プログラム書込制御部154は、第1プログラム格納メモリ121が実行中の各プログラムPRG1~PRG3の展開に用いられた場合、各更新プログラムPRG11、PRG13を第2プログラム格納メモリ122に格納させる。
また、プログラム展開制御部155は、第1プログラム実行メモリ131に実行中の各プログラムPRG1~PRG3が展開されている場合、第2プログラム格納メモリ122が各更新プログラムPRG11、PRG13の格納に成功したとき、各更新プログラムPRG11、PRG13を第2プログラム格納メモリ122から第2プログラム実行メモリ132に展開するとともに、第2プログラムPRG2を第1プログラム実行メモリ131から第2プログラム実行メモリ132に展開する。
また、管理情報生成部156は、各更新プログラムPRG11、PRG13及び第2プログラムPRG2の実行を管理する管理テーブルを生成するとともに、実行中の各プログラムPRG1~PRG3において用いられている管理テーブルを第1管理情報記憶部141が記憶している場合、生成した管理テーブルを第2管理情報記憶部142に記憶させる。そして、更新プログラム切替制御部158は、プログラム実行部157が第1管理情報記憶部141に記憶されている管理テーブルを用いて第1プログラム実行メモリ131に展開された各プログラムPRG1~PRG3を実行している場合、プログラム実行部157に第2管理情報記憶部142が記憶している管理テーブルを用いて第2プログラム実行メモリ132に展開された各更新プログラムPRG11、PRG13及び第2プログラムPRG2を実行させる、
このようにすることで、本実施の形態に係るPLC100は、実行中のプログラムについて全ての更新プログラムを受信していない場合、更新されない第2プログラムPRG2の実行に用いている第1プログラム実行メモリ131から当該第2プログラムPRG2の実行に用いていない第2プログラム実行メモリ132に展開できる。この結果、本実施の形態に係るPLC100は、不揮発性メモリによって構成された第1プログラム格納メモリ又は第2プログラム格納メモリから第2プログラム実行メモリに更新されないプログラムが展開されるPLCよりも当該プログラムを展開する時間を短縮できる。
特に、本実施の形態に係るプログラム開発支援システム1によれば、プログラム展開制御部155は、各更新プログラムPRG11、PRG13を第2プログラム実行メモリ132の第1メモリ領域である第1アドレス0000Hから第3アドレス0220Hまでに連続させた状態で展開する。そして、プログラム展開制御部155は、第2プログラムPRG2を第2プログラム実行メモリ132の第1メモリ領域の後に連続する第2メモリ領域である第3アドレス0220Hから0320Hまでに展開する。
このようにすることで、本実施の形態に係るPLC100は、各更新プログラムPRG11、PRG13と更新されていない第2プログラムPRG2とを第1メモリ領域から第2メモリ領域まで連続させた状態で展開できる。この結果、本実施の形態に係るPLC100は、更新プログラムの受信を繰り返してもプログラム実行メモリ130の断片化の発生を防止できる。
ここで、プログラムを書き込む前にプログラム格納メモリ120を同期するだけでなく、プログラムを展開する制御を行う前にプログラム実行メモリ130を同期するPLCについて考える。なお、このPLCは、各プログラムPRG1~PRG3の実行中に第2プログラムPRG2を更新した第2更新プログラムPRG12を受信し、第2更新プログラムPRG12は、第2プログラムPRG2よりもファイルサイズが増加しているとする。この場合、図8に示すように、このPLCでは、第2更新プログラムPRG12を第2プログラム実行メモリ132に展開したとき、第2プログラム実行メモリ132の第2プログラムPRG2を記憶していたメモリ領域が空き領域となる。このため、このPLCは、第2更新プログラムPRG12を第3プログラムPRG3に連続させた状態で展開しても、第2プログラムPRG2を記憶していた空き領域によってメモリの断片化が発生する問題がある。
これに対して、本実施の形態に係るPLC100は、プログラムを展開する制御を行う前にプログラム実行メモリ130を同期しない。このため、図9に示すように、本実施の形態に係るPLC100は、第2更新プログラムPRG12を展開した後に未更新の各プログラムPRG1、PRG3を第2更新プログラムPRG12に連続させた状態で展開することで、メモリの断片化が発生しない。この結果、本実施の形態に係るPLC100は、プログラムを展開する制御を行う前にプログラム実行メモリ130を同期するPLCよりもメモリの断片化によって使用可能なメモリ領域が不足することを低減できる。
また、本実施の形態に係るプログラム開発支援システム1によれば、プログラム格納管理部151は、実行中のプログラムの展開に用いられたプログラム格納メモリ120が第1プログラム格納メモリ121であるか、又は、第2プログラム格納メモリ122であるかを判定する。また、プログラム実行管理部152は、実行中のプログラムが展開されているプログラム実行メモリ130が第1プログラム実行メモリ131であるか、又は、第2プログラム実行メモリ132であるかを判定する。そして、管理情報記憶管理部153は、実行中のプログラムにおいて用いられている管理テーブルを記憶している管理情報記憶部140が第1管理情報記憶部141であるか、又は、第2管理情報記憶部142であるかを判定する。
このようにすることで、本実施の形態に係るPLC100は、プログラムの実行中において、当該プログラムの実行に用いられている有効なプログラム格納メモリ120、プログラム実行メモリ130及び管理情報記憶部140と、プログラムの実行に用いられていない無効なプログラム格納メモリ120、プログラム実行メモリ130及び管理情報記憶部140とを識別して管理できる。
(変更例)
なお、上記実施の形態では、プログラム書込制御部154は、プログラム受信部110が更新プログラムを受信した後、第1プログラム格納メモリ121と第2プログラム格納メモリ122とが記憶しているプログラムの情報を同期させているが、プログラムの情報を同期させるタイミングについてはこれに限定されない。例えば、プログラム書込制御部154は、プログラム実行部157がプログラム、更新プログラムを実行した後、第1プログラム格納メモリ121と第2プログラム格納メモリ122とが記憶しているプログラムの情報を同期させてもよい。
なお、上記実施の形態のように、プログラム展開制御部155は、プログラム書込制御部154が全ての更新プログラムの格納に成功することを条件として更新プログラムを展開することが好ましいが、これに限定されない。例えば、プログラム展開制御部155は、プログラム書込制御部154が受信した更新プログラムのうちの少なくとも一の更新プログラムの格納に成功すれば格納に成功した更新プログラムを展開してもよい。
なお、上記実施の形態のように、プログラム展開制御部155は、更新されない第2プログラムPRG2を揮発性メモリである第1プログラム実行メモリ131から第2プログラム実行メモリ132に展開することが好ましいが、これに限定されない。例えば、プログラム展開制御部155は、更新されない第2プログラムPRG2を不揮発性メモリである第1プログラム格納メモリ121又は第2プログラム格納メモリ122から第2プログラム実行メモリ132に展開してもよい。
なお、上記実施の形態では、更新プログラム切替制御部158は、プログラム格納メモリ用フラグ、プログラム実行メモリ用フラグ、管理情報記憶用フラグが示す値を「1」と「2」との間で更新しているが、フラグの数についてはこれに限定されない。例えば、更新プログラム切替制御部158は、プログラム実行メモリ130と管理情報記憶部140とが同一の揮発性メモリによって構成されることから、プログラム実行メモリ用フラグ及び管理情報記憶用フラグを統合した揮発性メモリ用フラグが示す値を「1」と「2」との間で更新してもよい。この場合、プログラム実行管理部152及び管理情報記憶管理部153は、更新プログラム切替制御部158が更新する揮発性メモリ用フラグが示す値に基づいて、プログラム実行メモリ130及び管理情報記憶部140を管理する必要がある。また、例えば、更新プログラム切替制御部158は、プログラム格納メモリ用フラグ、プログラム実行メモリ用フラグ及び管理情報記憶用フラグを全て統合した切替用フラグが示す値を「1」と「2」との間で更新してもよい。この場合、プログラム格納管理部151、プログラム実行管理部152及び管理情報記憶管理部153は、更新プログラム切替制御部158が更新する切替用フラグが示す値に基づいて、プログラム格納メモリ120、プログラム実行メモリ130、管理情報記憶部140を管理する必要がある。
なお、上記実施の形態では、更新プログラム切替制御部158は、プログラム格納メモリ用フラグ、プログラム実行メモリ用フラグ、管理情報記憶用フラグを更新したが、これらのフラグを更新するのは更新プログラム切替制御部158に限定されない。例えば、プログラム書込制御部154又はプログラム格納管理部151は、プログラム書込制御部154がプログラム格納メモリ120への書き込み制御を行った後、プログラム格納メモリ用フラグを更新してもよい。また、例えば、プログラム展開制御部155又はプログラム実行管理部152は、プログラム展開制御部155がプログラム実行メモリ130に更新プログラムを展開する制御を行った後、プログラム実行メモリ用フラグを更新してもよい。また、例えば、管理情報生成部156又は管理情報記憶管理部153は、管理情報生成部156が管理テーブルを生成して管理情報記憶部140に記憶させた後、管理情報記憶用フラグを更新してもよい。
なお、上記実施の形態では、プログラム受信部110は、更新プログラムとして第1プログラムPRG1が更新された第1更新プログラムPRG11と第3プログラムPRG3が更新された第3更新プログラムPRG13とを受信したが、更新プログラムはこれに限定されない。例えば、プログラム受信部110は、更新プログラムとして第2プログラムPRG2が更新された第2更新プログラムPRG12を受信してもよい。なお、プログラム受信部110が更新プログラムとして第1更新プログラムPRG11と第2更新プログラムPRG12とを受信した場合、PLC100の制御については、上記の「第3更新プログラムPRG13」を「第2更新プログラムPRG12」に読み替えればよい。よって、冗長な説明を低減するため、プログラム受信部110が更新プログラムとして第1更新プログラムPRG11と第2更新プログラムPRG12とを受信した場合について図示及び詳細な説明を省略する。
なお、上記実施の形態では、プログラム格納メモリ120は、第1プログラム格納メモリ121と第2プログラム格納メモリ122との2つのメモリとしたが、これに限定されず、3以上のメモリとしてもよい。この場合、プログラム格納管理部151はプログラム格納メモリ120として3以上のメモリを管理する必要があり、プログラム書込制御部154は、プログラム格納メモリ120として3以上のメモリへの書き込み制御を可能とし、更新プログラム切替制御部158は、プログラム格納メモリ120として3以上のメモリの切り替えを制御する必要がある。
また、上記実施の形態では、プログラム実行メモリ130は、第1プログラム実行メモリ131と第2プログラム実行メモリ132との2つのメモリとしたが、これに限定されず、3以上のメモリとしてもよい。この場合、プログラム実行管理部152は、プログラム実行メモリ130として3以上のメモリを管理する必要があり、プログラム展開制御部155は、プログラム実行メモリ130として3以上のメモリに展開する制御を可能とする必要があり、更新プログラム切替制御部158は、プログラム実行メモリ130として3以上のメモリの切り替えを制御する必要がある。
また、上記実施の形態では、管理情報記憶部140は、第1管理情報記憶部141と第2管理情報記憶部142との2つの記憶部としたが、これに限定されず、3以上の記憶部としてもよい。この場合、管理情報記憶管理部153は、管理情報記憶部140として3以上のメモリを管理する必要があり、管理情報生成部156は、管理情報記憶部140として3以上のメモリに生成した管理テーブルを記憶させることが可能とする必要があり、更新プログラム切替制御部158は、管理情報記憶部140として3以上の記憶部の切り替えを制御する必要がある。
なお、上記実施の形態では、第1管理情報記憶部141は、第1プログラム実行メモリ131を構成する第1の揮発性メモリにおける特定領域によって構成されており、第2管理情報記憶部142は、第2プログラム実行メモリ132を構成する第2の揮発性メモリにおける特定領域によって構成されているが、各管理情報記憶部141、142の構成についてはこれに限定されない。例えば、第1管理情報記憶部141及び第2管理情報記憶部142は、第3の揮発性メモリにおける第1特定領域及び第2特定領域によって構成されてもよい。
なお、制御部51、主記憶部52、外部記憶部53、操作部54、送受信部56、内部バス50等を備えるPLC100が処理を行う中心となる部分は、例えば、前記の動作を実行するためのプログラムを、PLC100が読み取り可能な記録媒体、例えば、フラッシュメモリに格納して配布し、当該プログラムをインストールすることにより、上記の処理を実行するPLC100を構成してもよい。また、LAN(Local Area Network)、インターネット等の通信ネットワーク上のサーバ装置が有する記憶装置に当該プログラムを格納しておき、PLC100がダウンロードすることでコンピュータを構成してもよい。
また、PLC100の機能は、OS(オペレーティングシステム)とアプリケーションプログラムの分担、又はOSとアプリケーションプログラムとの協働により実現する場合には、アプリケーションプログラム部分のみを記録媒体又は記憶装置に格納してもよい。
また、搬送波にプログラムを重畳し、通信ネットワークを介して提供することも可能である。例えば、通信ネットワーク上の掲示板(BBS、Bulletin Board System)にプログラムを掲示し、ネットワークを介してプログラムを提供してもよい。そして、プログラムを起動し、OSの制御下で、他のアプリケーションプログラムと同様に実行することにより、前記の処理を実行してもよい。
本開示は、本開示の広義の精神と範囲を逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、上述した実施の形態は、本開示を説明するためのものであり、本開示の範囲を限定するものではない。つまり、本開示の範囲は、実施の形態ではなく、請求の範囲によって示される。そして、請求の範囲内及びそれと同等の開示の意義の範囲内で施される様々な変形が、本開示の範囲内とみなされる。
1…プログラム開発支援システム、50…内部バス、51…制御部、52…主記憶部、53…外部記憶部、54…操作部、55…表示部、56…送受信部、59…制御プログラム、100…PLC、110…プログラム受信部、120…プログラム格納メモリ、121…第1プログラム格納メモリ、122…第2プログラム格納メモリ、130…プログラム実行メモリ、131…第1プログラム実行メモリ、132…第2プログラム実行メモリ、140…管理情報記憶部、141…第1管理情報記憶部、142…第2管理情報記憶部、151…プログラム格納管理部、152…プログラム実行管理部、153…管理情報記憶管理部、154…プログラム書込制御部、155…プログラム展開制御部、156…管理情報生成部、157…プログラム実行部、158…更新プログラム切替制御部、200…エンジニアリングツール、210…プログラム生成部、211…コンパイル実行部、220…プログラム記憶部、230…プログラム送信部。

Claims (8)

  1. プログラムを格納可能なプログラム格納メモリと、
    前記プログラムを実行するときに用いられるプログラム実行メモリと、
    前記プログラム格納メモリに格納された前記プログラムを前記プログラム実行メモリに展開する制御を行うプログラム展開制御部と、
    前記プログラム実行メモリに展開された前記プログラムを実行するプログラム実行部と、
    前記プログラムの実行中に更新された前記プログラムである更新プログラムを前記プログラム格納メモリに格納させる書き込み制御を行うプログラム書込制御部と、
    を備え、
    前記プログラム格納メモリは、第1プログラム格納メモリと、前記第1プログラム格納メモリとは異なる第2プログラム格納メモリとを含み、
    前記プログラム実行メモリは、第1プログラム実行メモリと、前記第1プログラム実行メモリとは異なる第2プログラム実行メモリとを含み、
    前記プログラム書込制御部は、実行中の前記プログラムの展開に用いられた前記プログラム格納メモリを前記第1プログラム格納メモリとした場合、前記更新プログラムを前記第2プログラム格納メモリに格納させ、
    前記プログラム展開制御部は、実行中の前記プログラムが展開されている前記プログラム実行メモリを前記第1プログラム実行メモリとした場合、前記第2プログラム格納メモリが前記更新プログラムの格納に成功したとき、前記更新プログラムを前記第2プログラム格納メモリから前記第2プログラム実行メモリに展開し、
    前記プログラム実行部が前記第1プログラム実行メモリに展開された前記プログラムを実行している場合、前記プログラム実行部に前記第2プログラム実行メモリに展開された前記更新プログラムを実行させる切り替え制御を行う更新プログラム切替制御部を更に備え、
    前記更新プログラム切替制御部は、前記切り替え制御において、前記プログラム実行部が用いる前記プログラム実行メモリを前記第1プログラム実行メモリから前記第2プログラム実行メモリに変更させる制御を行い、
    前記プログラム実行部は、前記切り替え制御に基づく前記プログラム実行メモリの変更によって結果的に前記第1プログラム実行メモリに展開された実行中の前記プログラムの実行を終了するとともに前記第2プログラム実行メモリに展開された前記更新プログラムの実行を開始する
    プログラマブルロジックコントローラ。
  2. 前記プログラムの実行を管理する情報である管理情報を生成する管理情報生成部と、
    前記管理情報を記憶する管理情報記憶部と、
    を更に備え、
    前記プログラム実行部は、前記管理情報記憶部が記憶している前記管理情報を用いて前記プログラム実行メモリに展開された前記プログラムを実行し、
    前記管理情報記憶部は、第1管理情報記憶部と、前記第1管理情報記憶部とは異なる第2管理情報記憶部とを含み、
    前記管理情報生成部は、前記更新プログラムの実行を管理する前記管理情報を生成するとともに、実行中の前記プログラムにおいて用いられている前記管理情報を記憶している前記管理情報記憶部を前記第1管理情報記憶部とした場合、生成した前記更新プログラムの実行を管理する前記管理情報を前記第2管理情報記憶部に記憶させ、
    前記更新プログラム切替制御部は、前記プログラム実行部が前記第1管理情報記憶部に記憶されている前記管理情報を用いて前記第1プログラム実行メモリに展開された前記プログラムを実行している場合、前記プログラム実行部に前記第2管理情報記憶部が記憶している前記管理情報を用いて前記第2プログラム実行メモリに展開された前記更新プログラムを実行させる前記切り替え制御を行う、
    請求項1に記載のプログラマブルロジックコントローラ。
  3. 実行中の前記プログラムの展開に用いられた前記プログラム格納メモリが前記第1プログラム格納メモリであるか、又は、前記第2プログラム格納メモリであるかを判定するプログラム格納判定部と、
    実行中の前記プログラムが展開されている前記プログラム実行メモリが前記第1プログラム実行メモリであるか、又は、前記第2プログラム実行メモリであるかを判定するプログラム実行判定部とを更に備える、
    請求項1に記載のプログラマブルロジックコントローラ。
  4. 前記プログラムは、第1プログラムと、前記第1プログラムとは異なる第2プログラムとを含み、
    前記更新プログラムは、更新された前記第1プログラムである第1更新プログラムと、更新された前記第2プログラムである第2更新プログラムとを含み、
    前記プログラム書込制御部は、実行中の前記第1プログラム及び前記第2プログラムの展開に用いられた前記プログラム格納メモリを前記第1プログラム格納メモリとした場合、前記第1更新プログラム及び前記第2更新プログラムを前記第2プログラム格納メモリに格納させ、
    前記プログラム展開制御部は、実行中の前記第1プログラム及び前記第2プログラムが展開されている前記プログラム実行メモリを前記第1プログラム実行メモリとした場合、前記第2プログラム格納メモリが前記第1更新プログラム及び前記第2更新プログラムの格納に成功したとき、前記第1更新プログラム及び前記第2更新プログラムを前記第2プログラム格納メモリから前記第2プログラム実行メモリに展開し、
    前記更新プログラム切替制御部は、前記プログラム実行部が前記第1プログラム実行メモリに展開された前記第1プログラム及び前記第2プログラムを実行している場合、前記プログラム実行部に前記第2プログラム実行メモリに展開された前記第1更新プログラム及び前記第2更新プログラムを実行させる、
    請求項1に記載のプログラマブルロジックコントローラ。
  5. 前記プログラムは、第1プログラムと、前記第1プログラムとは異なる第2プログラムとを含み、
    前記更新プログラムは、更新された前記第1プログラムである第1更新プログラムであり、
    前記プログラム書込制御部は、実行中の前記第1プログラム及び前記第2プログラムの展開に用いられた前記プログラム格納メモリを前記第1プログラム格納メモリとした場合、前記第1更新プログラムを前記第2プログラム格納メモリに格納させ、
    前記プログラム展開制御部は、実行中の前記第1プログラム及び前記第2プログラムが展開されている前記プログラム実行メモリを前記第1プログラム実行メモリとした場合、前記第2プログラム格納メモリが前記第1更新プログラムの格納に成功したとき、前記第1更新プログラムを前記第2プログラム格納メモリから前記第2プログラム実行メモリに展開するとともに、前記第2プログラムを前記第1プログラム実行メモリから前記第2プログラム実行メモリに展開し、
    前記更新プログラム切替制御部は、前記プログラム実行部が前記第1プログラム実行メモリに展開された前記第1プログラム及び前記第2プログラムを実行している場合、前記プログラム実行部に前記第2プログラム実行メモリに展開された前記第1更新プログラム及び前記第2プログラムを実行させる、
    請求項1に記載のプログラマブルロジックコントローラ。
  6. 前記プログラム展開制御部は、前記第1更新プログラムを前記第2プログラム実行メモリの第1メモリ領域に展開した後、前記第2プログラムを前記第2プログラム実行メモリの前記第1メモリ領域の後に連続する第2メモリ領域に展開する、
    請求項5に記載のプログラマブルロジックコントローラ。
  7. プログラマブルロジックコントローラの制御方法であって、
    前記プログラマブルロジックコントローラが、プログラムを格納可能なプログラム格納メモリに格納された前記プログラムを、当該プログラムを実行するときに用いられるプログラム実行メモリに展開する制御を行うプログラム展開制御ステップと、
    前記プログラマブルロジックコントローラが、前記プログラム実行メモリに展開された前記プログラムを実行するプログラム実行ステップと、
    前記プログラマブルロジックコントローラが、前記プログラムの実行中に更新された前記プログラムである更新プログラムを前記プログラム格納メモリに格納させる書き込み制御を行うプログラム書込制御ステップと、
    を含み、
    前記プログラム格納メモリは、第1プログラム格納メモリと、前記第1プログラム格納メモリとは異なる第2プログラム格納メモリとを含み、
    前記プログラム実行メモリは、第1プログラム実行メモリと、前記第1プログラム実行メモリとは異なる第2プログラム実行メモリとを含み、
    前記プログラム書込制御ステップにおいて、実行中の前記プログラムの展開に用いられた前記プログラム格納メモリを前記第1プログラム格納メモリとした場合、前記更新プログラムを前記第2プログラム格納メモリに格納させ、
    前記プログラム展開制御ステップにおいて、実行中の前記プログラムが展開されている前記プログラム実行メモリを前記第1プログラム実行メモリとした場合、前記更新プログラムを前記第2プログラム格納メモリから前記第2プログラム実行メモリに展開し、
    前記プログラマブルロジックコントローラが、前記第1プログラム実行メモリに展開された前記プログラムを実行している場合、前記第2プログラム実行メモリに展開された前記更新プログラムを実行する切り替え制御を行う更新プログラム切替制御ステップを更に含み、
    前記更新プログラム切替制御ステップで行われる前記切り替え制御において、前記プログラマブルロジックコントローラが、前記プログラム実行ステップにおいて用いられる前記プログラム実行メモリを前記第1プログラム実行メモリから前記第2プログラム実行メモリに変更させる制御を行い、
    前記プログラム実行ステップにおいて、前記プログラマブルロジックコントローラが、前記切り替え制御に基づく前記プログラム実行メモリの変更によって結果的に前記第1プログラム実行メモリに展開された実行中の前記プログラムの実行を終了するとともに前記第2プログラム実行メモリに展開された前記更新プログラムの実行を開始する
    制御方法。
  8. プログラマブルロジックコントローラを、
    プログラムを格納可能なプログラム格納メモリに格納された前記プログラムを、当該プログラムを実行するときに用いられるプログラム実行メモリに展開する制御を行うプログラム展開制御部、
    前記プログラム実行メモリに展開された前記プログラムを実行するプログラム実行部、
    前記プログラムの実行中に更新された前記プログラムである更新プログラムを前記プログラム格納メモリに格納させる書き込み制御を行うプログラム書込制御部、
    として機能させ、
    前記プログラム格納メモリは、第1プログラム格納メモリと、前記第1プログラム格納メモリとは異なる第2プログラム格納メモリとを含み、
    前記プログラム実行メモリは、第1プログラム実行メモリと、前記第1プログラム実行メモリとは異なる第2プログラム実行メモリとを含み、
    前記プログラム書込制御部は、実行中の前記プログラムの展開に用いられた前記プログラム格納メモリを前記第1プログラム格納メモリとした場合、前記更新プログラムを前記第2プログラム格納メモリに格納させ、
    前記プログラム展開制御部は、実行中の前記プログラムが展開されている前記プログラム実行メモリを前記第1プログラム実行メモリとした場合、前記第2プログラム格納メモリが前記更新プログラムの格納に成功したとき、前記更新プログラムを前記第2プログラム格納メモリから前記第2プログラム実行メモリに展開し、
    前記プログラム実行部が前記第1プログラム実行メモリに展開された前記プログラムを実行している場合、前記プログラム実行部に前記第2プログラム実行メモリに展開された前記更新プログラムを実行させる切り替え制御を行う更新プログラム切替制御部として更に機能させ、
    前記更新プログラム切替制御部は、前記切り替え制御において、前記プログラム実行部が用いる前記プログラム実行メモリを前記第1プログラム実行メモリから前記第2プログラム実行メモリに変更させる制御を行い、
    前記プログラム実行部は、前記切り替え制御に基づく前記プログラム実行メモリの変更によって結果的に前記第1プログラム実行メモリに展開された実行中の前記プログラムの実行を終了するとともに前記第2プログラム実行メモリに展開された前記更新プログラムの実行を開始する
    プログラム。
JP2023550654A 2023-03-14 2023-03-14 プログラマブルロジックコントローラ、制御方法及びプログラム Active JP7446537B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2023009904 2023-03-14

Publications (1)

Publication Number Publication Date
JP7446537B1 true JP7446537B1 (ja) 2024-03-08

Family

ID=90105481

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023550654A Active JP7446537B1 (ja) 2023-03-14 2023-03-14 プログラマブルロジックコントローラ、制御方法及びプログラム

Country Status (1)

Country Link
JP (1) JP7446537B1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016099899A (ja) 2014-11-25 2016-05-30 富士電機株式会社 コントロールシステム、その支援装置、プログラマブルコントロール装置
JP2019036043A (ja) 2017-08-10 2019-03-07 オムロン株式会社 制御装置
JP2020052668A (ja) 2018-09-26 2020-04-02 横河電機株式会社 プロセス制御システム、プロセス制御装置、及びプログラム更新方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016099899A (ja) 2014-11-25 2016-05-30 富士電機株式会社 コントロールシステム、その支援装置、プログラマブルコントロール装置
JP2019036043A (ja) 2017-08-10 2019-03-07 オムロン株式会社 制御装置
JP2020052668A (ja) 2018-09-26 2020-04-02 横河電機株式会社 プロセス制御システム、プロセス制御装置、及びプログラム更新方法

Similar Documents

Publication Publication Date Title
CN101539866B (zh) 信息处理设备和信息处理设备的启动方法
CN106095620B (zh) 一种嵌入式Linux存储分区的开发方法
US8453138B2 (en) Method and apparatus for generating an update package
EP1934727B1 (en) Method and system for in-place updating content stored in a storage device
KR100415371B1 (ko) 컴퓨터
CN102165418A (zh) 涡轮引导***和方法
EP2329368B1 (en) Updating content without using a mini operating system
JP2007052519A (ja) 情報処理装置および方法、並びにプログラム
CN109840105A (zh) 一种不停服的热更新方法
CN113641378A (zh) 光模块程序升级方法、装置、设备及可读存储介质
JP7446537B1 (ja) プログラマブルロジックコントローラ、制御方法及びプログラム
CN111158734A (zh) 一种cpld-fpga的无缝升级方法、***及设备
JP5084853B2 (ja) ファームウエア更新装置、通信装置、電子機器、ファームウエア更新システム、ファームウエア更新方法及びプログラム
US20040015943A1 (en) Embedded computer system equipped with an upgradeable software library
KR102434126B1 (ko) Plc 프로그램 처리 장치
JP5158883B2 (ja) ファームウェア更新方法及びファームウェア更新装置
JP5521437B2 (ja) 携帯端末装置、ソフトウェア更新方法及びプログラム
JP2008217202A (ja) ディスクアレイ装置及びファームウェア更新方法
JP6149624B2 (ja) ファームウェア実行装置、ファームウェア実行方法、コンピュータ・プログラム、および、コンピュータ装置
JP2007122399A (ja) 制御装置、そのプログラムおよび記録媒体
WO2022269793A1 (ja) 制御装置、及び、アドレス管理方法
JP5484641B1 (ja) プログラマブル表示器
US20080320447A1 (en) Method of accessing web parameters
JP2002063046A (ja) 制御装置、および、そのプログラムが記録された記録媒体
JPH11161484A (ja) 情報処理装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230822

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230822

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20230822

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230926

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231117

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240227

R150 Certificate of patent or registration of utility model

Ref document number: 7446537

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150