JP2017102528A - プログラマブルコントローラ - Google Patents

プログラマブルコントローラ Download PDF

Info

Publication number
JP2017102528A
JP2017102528A JP2015232984A JP2015232984A JP2017102528A JP 2017102528 A JP2017102528 A JP 2017102528A JP 2015232984 A JP2015232984 A JP 2015232984A JP 2015232984 A JP2015232984 A JP 2015232984A JP 2017102528 A JP2017102528 A JP 2017102528A
Authority
JP
Japan
Prior art keywords
input
output
area
data
programmable controller
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
JP2015232984A
Other languages
English (en)
Inventor
瑛太郎 三田地
Eitaro Mitachi
瑛太郎 三田地
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.)
Hitachi Industrial Equipment Systems Co Ltd
Original Assignee
Hitachi Industrial Equipment Systems Co Ltd
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 Hitachi Industrial Equipment Systems Co Ltd filed Critical Hitachi Industrial Equipment Systems Co Ltd
Priority to JP2015232984A priority Critical patent/JP2017102528A/ja
Publication of JP2017102528A publication Critical patent/JP2017102528A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Abstract

【課題】プログラマブルコントローラにおいて、ソフトウェアによる入出力強制セット機能を実現する回路構成を簡易にする。
【解決手段】プログラマブルコントローラは、揮発記憶装置に、外部入力データエリアと、外部出力データエリアと、内部出力データエリアとを有し、揮発記憶装置に、内部出力データとアドレスの対応を示すテーブルを保持している。入出力強制セット機能の実現において、内部出力データエリアのデータとそのデータが格納されるアドレスの対応を示すテーブルに、入出力命令発行前に未使用であるエリアをポイントするアドレスを書き込み、プログラム上の対象となる入出力アドレスを前記書き込まれたアドレスに置き換える。そして、入出力命令発行することにより、未使用である書き込まれたアドレスを参照し、未使用のエリアに、入力データまたは出力データを書き込む。
【選択図】 図2

Description

本発明は、プログラマブルコントローラに関する。
プログラマブルコントローラは、リレー回路の代替装置として開発された制御装置であり、工場などの自動機械の制御に使われるほか、エレベーター、自動ドア、ボイラーなどの機械の制御にも使用されている。
プログラマブルコントローラでは、実設備でのデバッグ時に外部接続機器の配線確認やユーザプログラム処理が正しく動作するかの検証が行われる。しかしながら、設備の立ち上げ最中だと、外部センサ等がまだ未配線の状態でユーザプログラムの動作検証をしなければならないケースが存在する。その際に、入出力強制セット機能と言われる機能を使用し、擬似的に入出力機器のオン/オフ制御を実施することができる。
特許文献1には、「通常動作用ラダープログラム111、およびシミュレーション用ラダープログラム112が、実行されており、通常動作用データレジスタ121と、シミュレーション用データレジスタ122と、を主メモリ100に有しており、入力部203を介して、通常動作用ラダープログラム111が選択されると、通常動作用ラダープログラム111は通常動作用データレジスタ121を使用して制御対象装置2の制御を行い、入力部203を介して、シミュレーション用ラダープログラム112が選択されると、シミュレーション用ラダープログラム112は、通常動作用データレジスタ121およびシミュレーション用データレジスタ122を使用してシミュレーションを行うことを特徴とする。(要約参照)」ことが開示されている。
特開2013−029940号公報
特許文献1(特開2013−029940号公報)には、同一の主メモリ内に、通常動作用データレジスタとシミュレーション用データレジスタを設ける構成が開示されている。また、シミュレーション用ラダープログラムは、通常動作用データレジスタにおいて、入力値を読み込むことはできるが、出力値を書き込むことはできないとされている。
シミュレーションにおいて、シミュレーションラダープログラムを別途設け、通常動作用データレジスタからデータを読み込み、一部はシミュレーション用データレジスタに書き込むことから、読み込みと書き込みエリアが異なるため、処理が複雑となるが、この点については考慮されていない。
そのため、簡便なシミュレーションを行うプログラマブルコントローラが望まれている。
一方、特許文献1とは異なる方法として従来技術に係る入出力強制セット機能を持つプログラマブルコントローラの構成の一例について図1を用いて説明する。図1は、従来技術に係る入出力強制セット機能を実現するプログラマブルコントローラの構成図である。
従来、入出力強制セット機能を実現するには、図1に示されるように、CPUモジュールのハード構成に入出力データを格納するメモリと入出力強制セット機能専用のメモリを搭載し、プログラミングツール側からの指定I/O入出力強制セット要求に対し、参照するメモリのエリアをハードウェア的に切り替えることで実現していた。
すなわち、プログラミングツールが発行するI/O命令が、「入出力強制セットなし」の場合は、入出力強制セット切替回路により、データメモリだけにアクセスするようにし、「入出力強制セットあり」の場合は、入出力強制セット機能専用メモリだけにアクセスする。ここで、入出力強制セット機能専用メモリは、シミュレーションのために確保されるメモリであり、データメモリのコピーとなっている。
しかしながら、この実現方法によると、入出力強制セット切替用のハードウェア回路や入出力強制セット処理専用メモリを設ける必要があり、回路構成が大きくなってしまうというデメリットがある。
すなわち、入出力強制セット切替用ハードウェアは、ゲートアレイLSI上のハードウェアロジックで実装され、入出力強制セット処理専用メモリは、データメモリとして、ハードウェア的に別のメモリとして実装されるものである。
そのため、それぞれのメモリに対してバスインターフェースが必要となることから、少なくともメモリ2つ分のバスが必要となる。したがって、バスに係る回路構成が大きくなるという問題点があった。また、場合によっては、メモリへアクセスする際のバスを変更するための切替回路も必要となる場合がある。これらによって、物理的な回路構成が大きくなるため、PLC自体の小型化が困難であった。
本発明は、上記課題を解決するためになされたもので、その目的は、ソフトウェアとハードウェアの構成が簡易な入出力強制セット機能を実現するプログラマブルコントローラを提供することにある。
上記課題を解決するために、本発明のプログラマブルコントローラの構成は、CPUと、揮発記憶部と、不揮発記憶部とを備え、不揮発記憶部に記憶されたプログラムをCPUが実行して、処理をおこなうプログラマブルコントローラであって、揮発記憶部に、外部入力装置の入力に用いる入力データを保持する外部入力データエリアと、外部出力装置の出力に用いる出力データを保持する外部出力データエリアと、内部出力データエリアとを有し、揮発記憶部に、内部出力データエリアに書き込むデータとそのデータが格納されるアドレスの対応を示すテーブルを保持し、CPUは、内部出力データエリアに書き込むデータとそのデータが格納されるアドレスの対応を示すテーブルに、入出力命令発行前に未使用であるエリアをポイントするアドレスを書き込み、CPUは、プログラム上の対象となる入出力アドレスを書き込まれたアドレスに置き換え、CPUは、書き込まれたアドレスを参照し、未使用のエリアに、入力データまたは出力データを書き込むようにしたものである。
本発明のプログラマブルコントローラの別の構成は、記憶部を有しており、I/Oモジュールが搭載されたプログラマブルコントローラであって、記憶部は、前記I/OモジュールのI/O情報を格納する第1の領域を確保し、さらに、第1の領域に対応する第2の領域を確保し、I/Oモジュールの動作をさせる際には、第1の領域を用いて演算することによって行い、I/Oモジュールの動作のシミュレーションをさせる際には、第2の領域を用いて演算することによってシミュレーションを行うようにしたものである。
本発明によれば、ソフトウェアとハードウェアの構成が簡易な入出力強制セット機能を有するプログラマブルコントローラを提供することができる。
従来技術に係る入出力強制セット機能を実現するプログラマブルコントローラの構成図である。 入出力強制セット処理の概要を説明する図である。 プログラマブルコントローラのハードウェア構成図である。 プログラマブルコントローラ構成図の入力装置、出力装置のブロック構成図である。 揮発記憶装置130のデータ割当ての詳細な内容を示す図である。 プログラマブルコントローラが使用している制御テーブルを示す図である。 一般的なプログラマブルコントローラの動作処理を示すフローチャートである。 本発明の一実施形態に係るプログラマブルコントローラの動作処理を示すフローチャートである。 プログラマブルコントローラの動作を時間的観点から説明する図である。 一般的なラダープログラムを示す図である。 入出力強制セット設定画面の表示例を示す図である。 入出力強制セット処理実行のためのプログラマブルコントローラのデータ構造を示す図である。 入出力強制セット処理を示すフローチャートである。 強制入出力処理実行時のラダープログラムの一例を示す図である。 入出力強制セット処理解除時のプログラマブルコントローラのデータ構造を示す図である。 入出力強制セット解除処理を示すフローチャートである。 入出力強制セット解除処理時のラダープログラムを示す図である。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。実施の形態を説明するための全図において、同一の機能を有する部材には同一の符号を付し、その繰り返しの説明は省略する。異なる図に記載される同一の符号であっても、他の図で説明した同一の符号は、原則として同一の構成であるため、説明を省略する場合がある。
以下、図2ないし図16を用いて本発明の一実施形態に係るプログラマブルコントローラについて説明する。
〔本実施形態の入出力強制セット処理の概要〕
先ず、図2を用いて本実施形態の入出力強制セット処理の概要について説明する。図2は、入出力強制セット処理の概要を説明する図である。
入出力強制セット処理とは、プログラマブルコントローラの入出力モジュール(外部入力装置、外部出力装置)には、実際に配線されていないが、ユーザプログラムの動作を検証する必要があるときは、擬似的に対象の入出力をオン/オフする処理である。
なお、本願明細書において、擬似的とは、実際のハードウェア構成とは無関係に、プログラマブルコントローラのプログラミングソフトウェアによって、その入出力に係る機器の状態を設定することを意味する。
次に、本実施形態でのプログラマブルコントローラにおける入出力強制セット機能の実現方法について説明する。
プログラマブルコントローラに接続されたPCなどの情報処理機器(図示せず)で稼働するプログラミングツール800により、プログラムの命令語がCPU110に与えられ、CPU110により実行される。
CPU110は、ゲートアレイLSI190のバスI/F(Interface)を介して、揮発記憶装置130に入出力データなどのワークデータを書き込む。ここで、入出力強制セット無(通常)の命令語810aは、I/Oセット命令であり、そのオペランドは、I/Oセット種別X、NO0であり、これに対応する入出力データが、揮発記憶装置130に、X0メモリとして書き込まれる。
また、入出力強制セット有の命令語810bは、I/Oセット命令であり、そのオペランドは、I/Oセット種別KX、NO1であり、この場合には、通常の入出力データのエリアに書き込まれるXデータとは異なり、別の仮想X1データとして書き込まれる。
ここで、I/Oセット種別Xは、通常のI/Oセット命令であり、I/Oセット種別KXは、入出力強制セット有の命令語であることを示している。なお、揮発記憶装置130上のエリアの構成については、後に、詳述する。
記憶部である揮発記憶装置130には、第1の領域として、通常のI/Oセット命令が格納されており、入出力強制セット命令が指定された内容については第2の領域として記憶されることとなる。この入出力強制セット命令であるか否かの判断は、命令が入出力強制セット命令である場合や、命令の作成後に別途、装置をシミュレートする旨の指定をすることで実施できる。後者の場合は、指定された装置が関係する命令を適宜、入出力強制セット命令に変更または置き換える。
この場合に、入出力強制セット処理を実行すると、演算に使用する領域は、第1の領域と第2の領域を使い分けることとなる。(1)第1の領域は、CPU110とプログラマブルコントローラに接続された他の装置の入出力状態を用いたI/O処理、(2)第2の領域は、変更または置き換えられた入出力セット命令を用いて、仮想的なI/O処理を行う。
このように、入出力強制セット命令として必要な領域を第2の領域として演算し、通常の命令については、第1の領域を用いて演算することが可能となる。入出力強制セット命令に関しては、第2の領域にアクセスすることで、第1の領域が有する実際のI/O情報を用いずに入出力強制セット処理を実行できる。このように、記憶部に入出力強制セット用の領域として第2の領域を設けることで、物理的に一つの記憶部を用いてそれぞれのモードを実行することができる。
さらに、記憶部の容量が大きい場合、つまり、入出力強制セットが不要である通常の命令と入出力強制セット命令を併せた全ての命令を第2の領域に記憶させることが可能な場合である。
この場合は、第1の領域は、全て入出力強制セットが不要の通常の命令で構成され、第2の領域は、通常の命令が指定された部分と、入出力強制セット命令が指定された部分とが混在することになる。
記憶部の容量が大きい場合には、第一のモードである通常モードとして、第1の領域を用いて演算を行い。第2の領域にはアクセスしない。また、第二のモードである入出力強制セットモードでは、第2の領域を用いて演算を行い、第1の領域にはアクセスしない。すなわち、記憶部の容量が大きい場合には、第1の領域に対応する領域が第2の領域に確保され、さらに入出力強制セット命令を有するので、モードごとにアクセスする領域を変更せずにそれぞれのモードを実行できる。
第2の領域を用いた演算をする際に、通常の命令部分は実際に接続された装置が用いられる。つまり、第2の領域に存在する第1の領域のうち通常の命令に対応する部分がコピーされる。入出力強制セット命令部分は、仮想的なデータを用いて演算を行うということである。つまり、第2の領域には、第1の領域がコピーされ、入出力強制セット命令部分に対応する箇所は置き換えられるということである。
このように、本実施形態によれば一つの記憶部を用いることにより入出力強制セットの切替え回路や切り替えるべきバスが不要となる。これにより装置全体の小型化が可能となる。また、入出力強制処理と通常処理の2つモードを一つの記憶部で実行可能である。
よって、ソフトウェアとハードウェアの構成が簡易な入出力強制セット機能ソフトウェアによる入出力強制セット機能を実現する回路構成が簡易なプログラマブルコントローラを提供することができる。
〔プログラマブルコントローラの構成〕
先ず、図3および図4を用いて本発明の一実施形態に係るプログラマブルコントローラの構成について説明する。図3は、プログラマブルコントローラのハードウェア構成図である。図4は、プログラマブルコントローラ構成図の入力装置、出力装置のブロック構成図である。
プログラマブルコントローラは、図3に示されるように、CPU110、不揮発記憶装置130、揮発記憶装置130、入力装置140、出力装置150、通信インターフェース160、ゲートアレイLSI190を有し、それらがバスにより接続されている。
CPU(Central Processing Unit)110は、不揮発記憶装置130に保持されているシステムプログラム、ユーザプログラムを実行し、プログラマブルコントローラの各部を制御する装置である。
不揮発記憶装置130は、プログラマブルコントローラの電源を切っても、記憶した内容が消去されない記憶装置であり、FLASHメモリなどの半導体記憶装置で構成される。不揮発記憶装置130には、システムプログラムやユーザプログラムが記憶される。
揮発記憶装置130は、プログラマブルコントローラの電源を切った場合に、記憶した内容が消去される記憶装置であり、SRAMなどの半導体記憶装置で構成される。揮発記憶装置130には、ワークデータやユーザプログラムが記憶される。
通信インターフェース160は、外部の機器と通信するインターフェースである。プログラマブルコントローラの代表的な通信の規格には、RS232C、USB(Universal Serial Bus)などインターフェース規格がある。これに限らず他の通信規格を用いてもよい。
ゲートアレイLSI190は、バスの調停をするバスI/Fの機能をハードウェアロジックで実現する半導体装置である。
入力装置140、外部入力装置170から電圧入力、電流入力、周波数の入力などをおこなう装置である。
出力装置150、外部出力装置180へ電圧出力、電流出力、周波数の出力などをおこなう装置である。
入力装置140と出力装置150の数または機能は、ユーザの実現したい構成によって任意に追加、削除することができる。入力装置140と出力装置150の実装する場所は、スロットと呼ばれ、CPU110はどこのスロットに何が実装されているのか判別することができる。入力装置140と出力装置150に関する電圧、電流、周波数などの入出力データは、スロットごとに異なる。
入力装置140は、図4に示されるように、インターフェース回路220、入力回路230、表示灯制御回路240、表示灯290を有する。
入力装置140には、外部入力装置170が接続され、外部入力装置170の入力状態はインターフェース回路220を介してCPU110へ伝達される。外部入力装置170は、このプログラマバルコントローラにより制御され、その状態(電圧、電力、周波数)が入力される装置である。
なお、入力装置140に、外部入力装置170、出力装置150に、外部出力装置180が各々接続されることは必須ではなく、必要に応じて適宜接続される。
また、外部入力装置170の入力状態がCPU110へ伝達されるのとほぼ同様のタイミングで表示灯制御回路240へ入力情報が伝達され、表示灯制御回路240が表示灯290を制御する。ユーザは、表示灯290により、入力装置140の動作状態を判断することができる。
出力装置150は、図4に示されるように、インターフェース回路260、入力回路270、表示灯制御回路280、表示灯295を有する。出力装置150には、外部出力装置が接続され、CPU110からインターフェース回路260を介して出力回路270に伝達され、出力回路270は外部出力装置180に出力情報を出力する。外部出力装置180は、このプログラマブルコントローラにより制御され、その状態(電圧、電力、周波数)が出力される装置である。ここで、外部入力装置170と、外部出力装置180は、同じ装置であってもよい。外部入力装置170と、外部出力装置180は、例えば、このプログラマブルコントローラで制御される工作機械、プラント装置などである。
また、CPU110から出力情報を出力回路270へ伝達する同じタイミングで表示灯制御回路280へ出力情報が伝達され、表示灯制御回路280が表示灯295を制御する。ユーザは、表示灯295により、出力装置250の動作状態を判断することができる。
〔プログラマブルコントローラのデータ構造〕
次に、図5を用いて揮発記憶装置130のデータ割当ての詳細な内容について説明する。図5は、揮発記憶装置130のデータ割当ての詳細な内容を示す図である。
揮発記憶装置130の使用エリアは、図5に示されるように、主に外部入力データエリア310、外部出力データエリア320、内部出力データエリア330に区分けされる。
外部入力データエリア310は、外部入力装置170のために確保されるエリアであり、外部出力データエリア320は、外部出力装置180のために確保されるエリアである。内部出力データエリア330は、CPU110がアクセスするユーザ用のメモリエリアである。
外部入力データエリア310は、全てのスロット分の外部入力データ格納エリア340を設けており、外部出力データエリア320は、全てのスロット分の外部出力データ格納エリア350を設けている。
内部出力データエリア330は、ユーザがプログラムで使用するための内部出力データをビット専用、ワード専用、ビットワード専用とそれぞれ設けている。内部出力データエリア330は、演算用、ワークデータ用にユーザが自由に使用できる記憶領域であるが、本実施形態では、通常時には、外部入力データエリア310、外部出力データエリア320に格納される入出力データを、入出力強制セット機能を使用する場合に、内部出力データエリア330に記憶して用いる。
ユーザは、外部入力データエリア310、外部出力データエリア320、内部出力データエリア330を使用してユーザプログラムを作成する。
次に、図6を用いてプログラマブルコントローラが使用している制御テーブルについて説明する。図6は、プログラマブルコントローラが使用している制御テーブルを示す図である。
外部入力装置一覧テーブル400は、各スロットに実装している入力装置を管理するデータテーブルである。テーブルのエントリには、入力装置140が実装された実装スロット位置、使用データサイズが管理されており、CPU110は、このテーブルに基づいてデータ更新をする入力装置140の実装スロット位置、使用データサイズを判断している。
外部出力装置一覧テーブル410は、各スロットに実装している出力装置150を管理するデータテーブルである。テーブルのエントリには、実装スロット位置、使用データサイズが管理されており、CPU110は、このテーブルに基づいてデータ更新をする出力装置150の実装スロット位置、使用データサイズを判断している。
内部出力一覧テーブル420は、ユーザがプログラム上で使用している内部出力を管理するデータテーブルである。例えば、NO.1のデータは、データメモリ上のアドレスR0から格納されていることを示している。
これらの制御テーブルは、揮発記憶装置130に格納、保持または保存される。
〔プログラマブルコントローラの動作〕
次に、図7Aないし図8を用いてプログラマブルコントローラの動作処理について説明する。図7Aは、一般的なプログラマブルコントローラの動作処理を示すフローチャートである。図7Bは、本発明の一実施形態に係るプログラマブルコントローラの動作処理を示すフローチャートである。図8は、プログラマブルコントローラの動作を時間的観点から説明する図である。
プログラマブルコントローラは、外部入力装置一覧テーブル400の内容に基づいて対象のスロットに入力データ取得処理を実施し、入力装置140の入力状態を取得する(S510)。
次に、入力データ取得処理S510で取得した入力状態を対象の外部入力データ格納エリアに格納する(S520)。
次に、ユーザが作成したプログラムを実行する(S530)。
そして、ユーザプログラムの結果に応じて外部出力データ格納エリア350と内部出力データ格納エリア360に格納されているデータを更新し、外部出力データ格納エリア350のデータを外部出力装置一覧テーブル410にて管理されている情報に基づいて各出力装置150へ反映させる(S540)。そして、最初の入力データ取得のステップS510に戻る。
プログラマブルコントローラの動作を時間的観点から説明すると、図8に示されるようになる。
CPU110は、ユーザプログラム(ラダープログラム)を実行(スキャン)する。そのときに、スキャンの最初に入力情報を読み込み、ユーザプログラムを最初の行から最後の行まで演算し、出力情報を書き込む。その後に、通信等の内部の出力処理をおこなう。この入力データの読み込みからシステム処理までが1サイクルであり、プログラマブルコントローラこれを繰り返すことにより、処理をおこなう。1サイクルの長さは、ユーザプログラムの長さによって異なるが、装置構成やプログラマブルコントローラの処理速度によって異なる。
次に、図7Bを用いて本発明の一実施形態に係るプログラマブルコントローラの動作処理について説明する。
入出力強制セット機能が実行されているか否かは、CPU110が実行するプログラムの命令語として、入出力強制セットで実行する命令語を用意してもよいし、制御モードのフラグを設けて、それを切り替えることにより、判定してもよいが、以下の説明では、図2(b)のように、命令語に、入出力強制セット実行のフラグが用意されているものとして説明する。
プログラマブルコントローラは、先ず、入力命令が入出力強制セット機能実行ありか否かを判定し(S1510)、入力命令が入出力強制セット機能実行ありのときには、S1520を実行し、入力命令が入出力強制セット機能実行なし(通常の実行)のときには、S1540を実行する。
入力命令が入出力強制セット機能実行ありのときには(S1510:Yes)、プログラミングツールにより入力データを取得し(S1520)、入力データを内部出力データエリア330に書き込む(S1530)。
一方、入力命令が入出力強制セット機能実行なしのときには(S1510:No)、プログラマブルコントローラは、外部入力装置一覧テーブル400の内容に基づいて対象のスロットに入力データ取得処理を実施し、入力装置140の入力状態を取得し(S1540)、取得した入力データを外部入力データエリア310に書き込む(S1550)。
次に、ユーザが作成したプログラムを実行する(S1560)。
次に、出力命令が入出力強制セット機能実行ありか否かを判定し(S1570)、出力命令が入出力強制セット機能実行ありのときには、S1580を実行し、出力命令が入出力強制セット機能実行なし(通常の実行)のときには、S1590を実行する。
出力命令が入出力強制セット機能実行ありのときには(S1570:Yes)、出力データを内部出力データエリア330に書き込む。一方、出力命令が入出力強制セット機能実行なしのときには(S1570:No)、プログラマブルコントローラは、取得した出力データを外部出力データエリア320に書き込み(S1590)、外部出力データ格納エリア350のデータを外部出力装置一覧テーブル410にて管理されている情報に基づいて各出力装置150へ反映させる(S1600)。そして、最初の判定ステップS1510に戻る。
本実施形態の処理では、入出力強制セット機能によりデータの入出力をシミュレートするときには、内部入力データエリア330をそのためのエリアとして使用する、すなわち、必要な半導体装置がハードウェアとして一つですむため、従来技術のように特別な入出力強制セット機能のための専用のメモリを用意しなくてよいという利点がある。
〔ラダープログラム〕
次に、図9を用いてプログラマブルコントローラの制御を記述するのに使用される一般的なラダープログラムについて説明する。図9は、一般的なラダープログラムを示す図である。
ラダープログラムは、プログラマブルコントローラの制御処理を記述するプログラムであり、図9に示されるラダープログラムでは、入力である接点X0が、ONすると、コイルY100がONされ、接点R0が、ONすると、出力であるコイルY101がONされるプログラム記述となっている。本実施形態では、アドレスXを外部入力データ、アドレスYを外部出力データ、アドレスRを内部出力データとする。
〔入出力強制セット機能のUI(ユーザインターフェース)について〕
次に、図10を用いて入出力強制セット設定画面について説明する。図10は、入出力強制セット設定画面の表示例を示す図である。
入出力強制セット設定画面は、プログラマブルコントローラに接続したPCのユーティリティプログラムによって、PCに接続されたディスプレイ上に表示される画面である。
入出力強制セット設定画面700には、入出力アドレス入力欄710、データ入力欄770、セットボタン740、リセットボタン750、閉じるボタン760が表示される。
入出力アドレス入力欄710には、強制セットしたい入出力のアドレスを入力する。データ入力欄770には、入出力アドレス710に強制セットしたいデータを書き込む。セットボタン740をマウスなどの入力デバイスでクリックすると、後述の図12に示す入出力強制セット処理を実行する。リセットボタン750をマウスなどの入力デバイスでクリックすると、後述の図14に示す強制セット解除処理を実行する。閉じるボタン760をマウスなどの入力デバイスでクリックすると、この入出力強制セット設定画面700を閉じる。
本実施形態では、入出力強制セット処理のためにユーザがユーティリティ画面により、直接、入出力アドレスとデータを指定して、その入出力アドレスを有する入力装置140および出力装置のデータを書き換える例を示したが、ユーザプログラムにより、入出力強制セット処理を行ってもよい。
〔入出力強制セット処理実行のためのプログラマブルコントローラのデータ構造〕
次に、図11を用いて入出力強制セット処理実行のためのプログラマブルコントローラのデータ構造について説明する。
図11は、入出力強制セット処理実行のためのプログラマブルコントローラのデータ構造を示す図である。
図6に示す内部出力一覧テーブル420と、図11に示す内部出力一覧テーブル1020の違いは、NO.7のデータの内部出力データエリア330上のエリアのアドレスとして、R999が追加されていることである。このNO.7は、入出力強制セット処理のために使用されるエリアである。
〔入出力強制セット処理〕
次に、図12を用いて入出力強制セット処理について説明する。図12は、入出力強制セット処理を示すフローチャートである。
先ず、内部出力データエリア330に入出力強制セットに用いる入出力データに対応する空きエリア(未使用エリア)があるか否かの判定を行う(S810)。必要な空きエリアがあるときには(S810:Yes)、S820に行き、十分な容量の空きエリアがないときには(S810:No)、S860の処理に進む。ここで、空きエリア(未使用エリア)があるか否かの判定時は、入出力強制セットに係る入出力命令の発行前に行う。
S810で内部出力データエリア330に必要な空き容量があると判定されたときには、内部出力データエリア330にそのためのエリアを確保し(S820)、図10で示した入出力アドレス入力欄710で指定された入出力アドレス(X0)を、内部出力一覧420に表示されていない未使用のアドレス(図11の内部出力一覧テーブル1020のNO.7のデータのアドレス:R999)に置き換える(S830)。ここで、内部出力アドレス:R999は、S820で確保したエリアをポイントするアドレスである。この新たに内部出力データエリア330に確保されたメモリは、通常時(入出力強制セット機能実行がないとき)には、外部入力データ310、または、外部出力データ320に書き込まれる入出力データを、入出力強制セット機能実行があるときに、書き込むためのエリアである。ここで、入出力強制セット処理を行わない通常処理を第一のモードと呼び、入出力強制セット処理を第二のモードと呼ぶ。
次に、上記の対象のアドレスを未使用の内部出力データに置き換える処理S830により、置き換えた内部出力のアドレスを内部出力一覧テーブル420に反映させる(図11の内部出力一覧テーブル1020のNO.7のデータの内部出力アドレス)(S840)。 そして、内部出力一覧テーブルのアドレス(NO.7のデータのアドレス:R999)の示すエリアに、指定された入出力データを書き込む(S850)。ここで、ユーザは、図10に示されるようにデータ入力欄770に、データの「1」を入力しているので、置き換えられたアドレスに対し、ユーザが入力したデータである「1」を書き込む。
S810で内部出力データエリア330に必要な空き容量がないと判定されたときには、エラー処理を行う(S860)。エラー処理は、例えば、図示しなかったがユーザプログラミングツール画面にメッセージを表示するなどである。
〔入出力強制セット処理実行時のラダープログラム〕
次に、図13を用いて強制入出力処理セット実行時のラダープログラムについて説明する。図13は、強制入出力処理実行時のラダープログラムの一例を示す図である。
接点910は、ユーザから見るとX0と表示されているが、実際には、図12のフローチャートで示す処理より実行された未使用の内部出力データのアドレス(R999)を割り当てている。
これにより、プログラム実行時に、X0が入力装置に物理的に配線されていなくても、擬似的にONされることになり、コイルY100もONにされ、ソフトウェアにより入出力機能がシミュレートできることになる。
〔入出力強制セット処理解除時のプログラマブルコントローラのデータ構造〕
次に、図14を用いて入出力強制セット処理解除時のプログラマブルコントローラのデータ構造について説明する。図14は、入出力強制セット処理解除時のプログラマブルコントローラのデータ構造を示す図である。
図11に示す内部出力一覧テーブル1020と、図14に示す内部出力一覧テーブル1320との違いは、NO.7のデータの内部出力アドレスR999が削除されていることである。すなわち、図6に示す内部出力一覧テーブル420に戻ったことである。これは、入出力強制セット処理を解除すると、入出力アドレスを内部出力アドレスに置き換えていたものを元のアドレスに戻すため、NO.7のデータの内部出力アドレスのエントリは使用されなくなるためである。
〔入出力強制セット解除処理〕
次に、図15を用いて入出力強制セット解除処理について説明する。図15は、入出力強制セット解除処理を示すフローチャートである。
先ず、図12の処理で強制セット状態になった入出力アドレスに対し、図12の処理以前に使用していたアドレスに置き換える処理を実行する(S1110)。
そして、使用している内部出力データ一覧表テーブル1020を更新する処理を実行し、CPU110が管理している内部出力一覧テーブル1020を、図12処理以前の状態(図6の内部出力一覧テーブル420)に戻る処理を実行する(S1112)。
〔入出力強制セット解除処理時のラダープログラム〕
次に、図16を用いて入出力強制セット解除処理時のラダープログラムについて説明する。図16は、入出力強制セット解除処理時のラダープログラムを示す図である。
接点1210は、元のX0(図9と同じ)に置き換えられる。これにより、入出力強制セットが解除される。これにより、ユーザは入出力強制セットが解除され、PLCのハードウェア構成による通常の動作モードに移行する。すなわち、入出力強制セットモードが終了することとなる。 以上述べてきたように、本実施形態によれば、専用の入出力強制セットの切替え回路が不要となる。また、入出力強制処理のための別メモリを用意しなくてもよくなる。また、別メモリへアクセスするためのバスが不要となるため、回路構成が簡易なため、ハードウェア構成が小型のプログラマブルコントローラを実現することができる。
110…CPU
120…不揮発記憶装置
130…揮発記憶装置
140…入力装置
150…出力装置
160…通信インターフェース
170…外部入力装置
180…外部出力装置
210…入力装置
220…インターフェース回路
230…入力回路
240…表示灯制御回路
250…出力回路
260…インターフェース回路
270…出力回路
280…表示灯制御回路
290…表示灯
295…表示灯
310…外部入力データエリア
320…外部出力データエリア
330…内部入力データエリア
340…外部入力データ格納エリア
350…外部出力データ格納エリア
360…内部出力データ格納エリア
400…外部入力装置一覧テーブル
410…外部出力装置一覧テーブル
420…内部出力一覧テーブル
600…ラダープログラム
610…接点
620…コイル
700…入出力強制セット設定画面
710…入出力アドレス入力欄
740…セットボタン
750…リセットボタン
760…閉じるボタン
770…データ入力欄
810…未使用エリアの判定処理
820…エリア確保処理
830…対象のアドレスを未使用の内部出力データに置き換える処理
840…使用している内部出力データ一覧テーブルを更新する処理
850…内部出力データ一覧テーブルのアドレスに入出力データを書き込む処理
860…エラー処理
900…ラダープログラム
910…接点
920…コイル
1000…外部入力装置一覧テーブル
1010…外部出力装置一覧テーブル
1020…内部出力一覧テーブル
1110…対象の箇所を元のアドレスに置き換える処理
1120…使用している内部出力データの一覧テーブル表を更新する処理
1200…ラダープログラム
1210…接点
1220…コイル
1300…外部入力装置一覧テーブル
1310…外部出力装置一覧テーブル
1320…内部出力一覧テーブル
1400…データメモリ
1410…入出力強制セット処理専用メモリ
1420…シミュレーションエリア
1510…入力命令の入出力強制セット機能ありなしの判定処理
1520…入力データ所得処理(入出力強制セット機能実行時)
1530…取得した入力データを内部出力データエリアへ書き込む処理(入出力強制セット機能実行時)
1540…入力データ所得処理(通常時)
1550…取得した入力データを対象の外部入力データエリアへ書き込む処理(通常時)
1560…ユーザプログラム実行処理
1570…出力命令の入出力強制セット機能ありなしの判定処理
1580…出力データを内部出力データエリアへ書き込む処理(入出力強制セット機能実行時)
1590…出力データを対象の外部出力データエリアへ書き込む処理(通常時)
1600…出力データ更新処理

Claims (6)

  1. CPUと、揮発記憶部と、不揮発記憶部とを備え、前記不揮発記憶部に記憶されたプログラムを前記CPUが実行して、処理をおこなうプログラマブルコントローラであって、
    前記揮発記憶部に、外部入力装置の入力に用いる入力データを保持する外部入力データエリアと、外部出力装置の出力に用いる出力データを保持する外部出力データエリアと、内部出力データエリアとを有し、
    前記揮発記憶部に、内部出力データエリアに書き込むデータとそのデータが格納されるアドレスの対応を示すテーブルを保持し、
    前記CPUは、前記内部出力データエリアに書き込むデータとそのデータが格納されるアドレスの対応を示すテーブルに、入出力命令発行前に未使用であるエリアをポイントするアドレスを書き込み、
    前記CPUは、前記プログラム上の対象となる入出力アドレスを前記書き込まれたアドレスに置き換え、
    前記CPUは、入出力命令を実行することにより、前記書き込まれたアドレスを参照し、前記未使用のエリアに、前記入力データまたは前記出力データを書き込むことを特徴とするプログラマブルコントローラ。
  2. 前記プログラマブルコントローラは、プログラム実行のための第一のモードと、第二のモードを有し、
    前記第一のモードでプログラムを実行するときには、前記外部入力装置の入力データを前記外部入力データエリアに、前記外部出力装置の出力データを前記外部出力データエリアに、それぞれ保持し、
    前記第二のモードでプログラムを実行するときには、前記外部入力装置の入力データ、前記外部出力装置の出力データを前記内部出力データエリアに保持することを特徴とする請求項1記載のプログラマブルコントローラ。
  3. 記憶部を有しており、I/Oモジュールが搭載されたプログラマブルコントローラであって、
    前記記憶部は、前記I/OモジュールのI/O情報を格納する第1の領域を確保し、
    さらに、第1の領域に対応する第2の領域を確保し、
    前記I/Oモジュールの動作をさせる際には、前記第1の領域を用いて演算することによって行い、
    前記I/Oモジュールの動作のシミュレーションをさせる際には、前記第2の領域を用いて演算することによってシミュレーションを行うこと
    を特徴とするプログラマブルコントローラ。
  4. 請求項3に記載のプログラマブルコントローラであって、
    前記記憶部は、一の半導体装置により構成されること
    を特徴とするプログラマブルコントローラ。
  5. 請求項3に記載のプログラマブルコントローラであって、
    前記第2の領域は、前記第1の領域のうち、ユーザに指定された領域に対応する領域であること
    を特徴とするプログラマブルコントローラ。
  6. 請求項4に記載のプログラマブルコントローラであって、
    前記記憶部に前記指定された領域以上の領域が確保可能か否かを判定し、確保可能であると判定された場合には、前記対応する領域に前記第2の領域を確保すること
    を特徴とするプログラマブルコントローラ。
JP2015232984A 2015-11-30 2015-11-30 プログラマブルコントローラ Pending JP2017102528A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015232984A JP2017102528A (ja) 2015-11-30 2015-11-30 プログラマブルコントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015232984A JP2017102528A (ja) 2015-11-30 2015-11-30 プログラマブルコントローラ

Publications (1)

Publication Number Publication Date
JP2017102528A true JP2017102528A (ja) 2017-06-08

Family

ID=59016892

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015232984A Pending JP2017102528A (ja) 2015-11-30 2015-11-30 プログラマブルコントローラ

Country Status (1)

Country Link
JP (1) JP2017102528A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019046052A (ja) * 2017-08-31 2019-03-22 富士電機株式会社 コントロールシステム、開発支援装置、及びコントロール方法
CN111552172A (zh) * 2020-04-27 2020-08-18 浙江中控技术股份有限公司 一种数据处理方法、装置、存储介质及电子设备

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019046052A (ja) * 2017-08-31 2019-03-22 富士電機株式会社 コントロールシステム、開発支援装置、及びコントロール方法
CN111552172A (zh) * 2020-04-27 2020-08-18 浙江中控技术股份有限公司 一种数据处理方法、装置、存储介质及电子设备
CN111552172B (zh) * 2020-04-27 2023-12-15 浙江中控技术股份有限公司 一种数据处理方法、装置、存储介质及电子设备

Similar Documents

Publication Publication Date Title
JP2008192266A (ja) メモリコントローラ
KR20130044657A (ko) 파일 시스템 및 그 제어 방법
JP2006092169A (ja) メモリコントローラ,メモリ装置及びメモリコントローラの制御方法
US8914602B2 (en) Display controller having an embedded non-volatile memory divided into a program code block and a data block and method for updating parameters of the same
CN112905365A (zh) 一种数据处理方法、装置、设备及介质
JP2017102528A (ja) プログラマブルコントローラ
US8464016B2 (en) Method and device for switching over in a memory for a control device
JP6874706B2 (ja) アプリケーションプログラムを生成する方法、装置、プログラム
US20030018873A1 (en) Method and system for concurrent updating of a microcontroller's program memory
CN115657537A (zh) 车辆及电子控制单元的标定数据管理方法、装置及介质
US10877743B2 (en) Control apparatus for updating stored program and method for updating program stored in control apparatus
CN104881338A (zh) 半导体设备
JP2010039737A (ja) プログラマブルコントローラ高速化方式およびこの方式によるプログラマブルコントローラ
KR102434126B1 (ko) Plc 프로그램 처리 장치
JP6426666B2 (ja) プログラマブルコントローラ
JP6877265B2 (ja) 半導体装置、及びフラッシュメモリ制御方法
JP5492573B2 (ja) トレース機能を備える接続機器シミュレータ装置、方法、及びプログラム
JP2016099899A (ja) コントロールシステム、その支援装置、プログラマブルコントロール装置
JP6020071B2 (ja) プログラマブルコントローラシステム、その支援装置、プログラマブルコントローラ
JP6874814B2 (ja) 産業機器の制御装置、産業機器の制御装置の設定システム、産業機器の制御装置の設定方法、及びプログラム
JP3335728B2 (ja) プログラマブルコントローラ
JPH11259308A (ja) プログラマブルコントローラ
JP2000029508A (ja) プログラマブルコントローラ
KR100294655B1 (ko) 멀티타스크기능을수행하는마이컴프로그래머블콘트롤러의제어방법
JP2013186855A (ja) Plcシステム、そのプログラマブル表示器、作画エディタ装置