JP5460556B2 - プログラマブルコントローラおよびユニット追加方法 - Google Patents

プログラマブルコントローラおよびユニット追加方法 Download PDF

Info

Publication number
JP5460556B2
JP5460556B2 JP2010247794A JP2010247794A JP5460556B2 JP 5460556 B2 JP5460556 B2 JP 5460556B2 JP 2010247794 A JP2010247794 A JP 2010247794A JP 2010247794 A JP2010247794 A JP 2010247794A JP 5460556 B2 JP5460556 B2 JP 5460556B2
Authority
JP
Japan
Prior art keywords
unit
auxiliary
auxiliary unit
cpu
slot
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
JP2010247794A
Other languages
English (en)
Other versions
JP2012099023A (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
Priority to JP2010247794A priority Critical patent/JP5460556B2/ja
Publication of JP2012099023A publication Critical patent/JP2012099023A/ja
Application granted granted Critical
Publication of JP5460556B2 publication Critical patent/JP5460556B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Description

本発明は、プログラマブルコントローラ(以下、単にPLC)および動作中のPLCに補助ユニットを追加するユニット追加方法に関する。
従来、PLCを構成する各種ユニットを動作中に挿抜できるようにする技術がある。例えば、特許文献1に開示されている技術によれば、ユーザは、PLCを構成するCPUユニットおよび該PLCに新たに追加されたCPUユニットの夫々にプログラミングツールを用いて定義ファイルを送信する。そして、ユーザは、プログラミングツールにオンライン変更準備完了通知を受信すると、オンライン変更実施指示を夫々のCPUユニットに送信してCPUユニットの変更を行う。
また、特許文献2に開示されている技術によれば、CPUユニットは、未接続の補助ユニットに対してポーリングを行う。補助ユニットが新規接続されたとき、該補助ユニットからポーリングに対する応答があるので、接続機器としての設定を行う。
特開2009−69939号公報 特開2001−333083号公報
しかしながら、上記従来の技術によれば、ユニットを追加する際に、プログラミングツールの接続を必要とする。
本発明は、上記に鑑みてなされたものであって、簡単な操作で補助ユニットの増設を行うことができるプログラマブルコントローラおよびユニット追加方法を得ることを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、ユーザプログラムを実行するCPUユニットと、前記CPUユニットとの間でデータ転送を行うためのバッファメモリを備え、前記CPUユニットのスレーブとして動作する補助ユニットと、前記CPUユニットおよび前記補助ユニットが装着されるスロットを複数備え、前記CPUユニットと前記補助ユニットとの間のデータ転送を行うバスユニットと、を備え、前記CPUユニットは、前記ユーザプログラムの実行中に前記バスユニットの空きスロットに補助ユニットが新規装着されたとき、前記新規装着を検知して、前記新規装着された補助ユニットのバッファメモリに当該補助ユニットの検知順に対応したアドレスを割り付け、当該補助ユニットとの間の前記ユーザプログラムに基づくデータ転送を開始し、補助ユニットが装着されているスロット毎に、前記CPUユニットとの間の位置関係を示す物理スロット番号、補助ユニットの装着の検知順に付与される論理スロット番号および装着されている補助ユニットに割り付けられたアドレスを対応付けたバッファメモリ割り付け情報を更新管理する、ことを特徴とする。
本発明によれば、どのような入出力点数のバッファメモリを備える補助ユニットを追加する場合でも、装着を自動で検知してバッファメモリに自動でアドレスを割り付けることができるので、ユーザはプログラミングツールを必要とせず、簡単な操作で補助ユニットの増設を行うことができるようになる。
図1は、本発明にかかる実施の形態のPLCの模式的な外観図である。 図2は、本発明にかかる実施の形態のPLCの構成を説明するブロック図である。 図3は、比較例を適用した場合のアドレス割り付けを説明する図である。 図4は、本実施の形態のアドレス割り付けを説明する図である。 図5は、メモリ空間を説明する図である。 図6は、補助ユニットが新規に装着された場合を説明する図である。 図7は、メモリ空間を説明する図である。 図8は、バッファメモリ割り付けテーブルのデータ構造の一例を説明する図である。 図9は、システム用I/O領域のメモリ構造を説明する図である。 図10は、PLCの断面図である。 図11は、PLCの断面図である。 図12は、PLCの起動処理を説明するフローチャートである。 図13は、起動処理時におけるアドレス割り付け処理を説明するフローチャートである。 図14は、通常処理時において、補助ユニットの抜き取りを行った場合のPLCの動作を説明するフローチャートである。 図15は、通常処理時において、補助ユニットの増設を行なった場合のPLC1の動作を説明するフローチャートである。 図16は、通常処理時におけるアドレス割り付け処理を説明するフローチャートである。
以下に、本発明にかかるプログラマブルコントローラおよびユニット追加方法の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態.
図1は、本発明にかかる実施の形態のプログラマブルコントローラ(PLC)の模式的な外観図である。バスユニット2は、位置固定用コネクタ21とバスコネクタ22とを備えるスロットを複数備えており、PLC1は、バスユニット2が備えるこれらのスロットに各種ユニットが装着されて構成される。ここでは、バスユニット2には、PLC1を構成する夫々のユニットに電源を供給する電源ユニット3と、PLC1全体の制御を行うCPUユニット4と、補助ユニット5と、が装着されている。
補助ユニット5は、CPUユニット4に対してスレーブとして動作し、CPUユニット4に被制御装置を制御するための各種の機能を提供するものである。例えば、補助ユニット5には、アナログ入力ユニット、アナログ出力ユニット、温度調節ユニット、位置決めユニットなど、機能別に様々なものが用意されている。ユーザはPLC1の使用目的に応じて所望の機能を備える補助ユニット5を選択してPLC1に装着することができる。ここでは、5つの補助ユニット5a〜5eがPLC1に装着されている。
補助ユニット5は、夫々、CPUユニット4との間で通信(データ転送)を行うためのバッファメモリ(後述のバッファメモリ54)を備えている。CPUユニット4は、補助ユニット5が夫々備えるバッファメモリをCPUユニット4のメモリ空間に割り付け、バスコネクタ22を介して夫々のバッファメモリに指令を書き込んだりバッファメモリから応答を読み出したりすることによって、補助ユニット5との間の通信を行う。
なお、電源ユニット3は、図示するように、バスユニット2の最も端に用意された専用のスロットに装着され、CPUユニット4は、電源ユニット3に隣接するスロットに装着される。CPUユニット4は、各スロットに、電源ユニット3と反対側に隣接するスロットから順番に位置が遠くなるに従って昇順にスロット番号を付し、このスロット番号を用いて各スロットに装着された補助ユニット5が夫々備えるバッファメモリの割り付けアドレスを管理する。図1の例によれば、5個の補助ユニット5a〜5eが夫々装着されているスロット番号は、夫々、0、1、3、4、5となり、スロット2、6、7は空きスロットとなっている。
本発明の実施の形態においては、CPUユニット4は、CPUユニット4の起動時のみならず、ユーザプログラムを実行(RUN)中であっても、新規に補助ユニット5が装着(追加)されたとき、補助ユニット5の新規装着を検知して、装着された補助ユニット5のバッファメモリをメモリ空間に割り付けることができるようになっている。また、CPUユニット4は、RUN中であっても、補助ユニット5が抜き取られたとき、抜き取られた補助ユニット5を故障と判定してエラー処理を実行するのではなく、抜き取られた補助ユニット5の使用を停止し、ユーザプログラムの実行を継続することができる。また、CPUユニット4は、補助ユニット5の新規装着および引き抜きを自動で検知して、自動でメモリ空間への割り付けを行うことができるので、ユーザはプログラミングツールを用いることなく補助ユニット5の新規装着および引き抜きを行うことができる。
図2は、PLC1の構成を説明するブロック図である。なお、補助ユニット5a〜5eは、機種毎に夫々構成が異なるが、ここでは、補助ユニット5a〜5eに共通して備えられる構成について説明することとする。
図2に示すように、CPUユニット4は、MPU41、システムメモリ42、ユーザメモリ43、ワークメモリ44、デバイスメモリ45、外部インタフェース(I/F)46、バスI/F47を備えている。CPUユニット4が備える前記夫々の構成要素は、CPUユニット4の内部バスで互いに接続されている。
システムメモリ42は、CPUユニット4を動作させるためのシステムプログラム421を記憶している。ユーザメモリ43は、補助ユニット5を制御して被制御装置に対して所望の制御動作を行うためのユーザプログラム431を記憶している。ユーザプログラム431は、ユーザにより作成され、プログラミングツールを用いてユーザメモリ43にダウンロードされる。
MPU41は、ワークメモリ44をワークエリアとして使用してシステムプログラム421を実行する。MPU41は、システムプログラム421に基づく動作の一環として、バスユニット2に装着されている夫々の補助ユニット5が備えるバッファメモリに対するメモリ空間のアドレス割り付けを管理する。具体的には、MPU41は、夫々の補助ユニット5のバッファメモリをメモリ空間に割り付け、割り付け結果を記述したバッファメモリ割り付けテーブル441をワークメモリ44に生成する。そして、MPU41は、補助ユニット5の着脱に応じてバッファメモリ割り付けテーブル441を更新する。
ここで、本実施の形態と比較されるバッファメモリのアドレス割り付けの技術として、割り付けられた領域の順番がスロット番号の順番に一致するようにアドレス割り付けを行う技術がある。この技術を比較例ということとする。比較例によれば、図1に示すスロット2のようにスキップされて空きスロットとなっているスロットにも予め設定されている容量の領域を確保する。
図3は、比較例を適用した場合のアドレス割り付けを説明する図である。補助ユニット5a、5b、5c、5d、5eは、夫々、16点、32点、16点、32点、16点の入出力点数(サイズ)のバッファメモリを備えるものとし、バッファメモリに割り当てられる領域の先頭アドレスを16進法表記で“00”とする。なお、1点は1ワード分の容量に等しい。図示するように、比較例によれば、補助ユニット5aには“00−0F”の領域が割り当てられ、補助ユニット5bには“10−2F”の領域が割り当てられる。そして、空きスロットであるスロット2には、予め設定された容量として16点分の容量の領域“30−3F”が割り当てられ、以降、補助ユニット5c、5d、5eに夫々“40−4F”、“50−6F”、“70−7F”が割り当てられている。このように割り当てると、装着位置がスキップされて生じた空きスロット2に増設できる補助ユニット5は、バッファメモリの容量が16点以下のものに限られてしまうという問題が生じる。例えば、スロット2に32点のバッファメモリを備える補助ユニット5を増設すると、エラーとなる。
そこで、本実施の形態では、単にスロットの位置関係に基づいて決められるスロット番号(以降、物理スロット番号)のほかに、補助ユニット5が装着されているスロットに対して連続した論理的なスロット番号(論理スロット番号)を割り付ける。また、新規に補助ユニット5が装着されたとき、新規に補助ユニット5が装着されたスロットに、割り付け済みの最大の論理スロット番号の次の番号を割り付ける。そして、割り付けられる領域の順番がこの論理スロット番号の順番に一致するようにメモリ空間の先頭から連続した領域のアドレス割り付けを行う。
図4は、本実施の形態のアドレス割り付けを説明する図である。図示するように、補助ユニット5が装着されている物理スロット0、1、3、4、5に対して夫々論理スロット0、1、2、3、4を割り付けられており、“00−0F”、“10−2F”、“30−3F”、“40−5F”、“60−6F”のように論理スロット番号の順番で隙間なく割り当てられている。図5は、このように割り当てられた場合のメモリ空間を説明する図である。図示するように、装着されている補助ユニット5に対して先頭から順次連続した領域が割り付けられる。
図6は、空きスロットとなっていた物理スロット2に16点のバッファメモリを備える補助ユニット5f、物理スロット6に16点のバッファメモリを備える補助ユニット5gが新規に装着された場合を説明する図である。また、図7は、補助ユニット5fおよび補助ユニット5gが新規に装着された場合のメモリ空間を説明する図である。図示するように、補助ユニット5fが装着される物理スロット2に、割り付け済みの番号の最大値“4”の次の論理スロット番号“5”が割り付けられ、論理スロット4に割り付け済みの領域“60−6F”に連続した16点分の領域“70−7F”が割り付けられる。また、補助ユニット5gが装着される物理スロット6に論理スロット番号“6”が割り付けられ、論理スロット5に割り付けた“70−7F”に連続した16点分の領域“80−8F”が割り付けられる。
このように、装着される毎に昇順に空き番号を作ることなく論理スロット番号が割り振られ、論理スロット番号が連続する補助ユニット5に連続したメモリ空間が割り付けられるので、図5および図7に示すように、新規に割り付け可能なメモリ空間が常にメモリ空間の後ろに固まって存在することになる。これにより、物理スロット2のような装着位置がスキップされて生じた空きスロットにどのような容量のバッファメモリを持つ補助ユニット5を装着しても、エラーとなることなくメモリ空間を割り付けることができる。
なお、本実施の形態では、CPUユニット4は、CPUユニット4に近いスロットから順番に装着を検出するようにしている。したがって、初期状態における補助ユニット5a〜5eや、後から新規装着された補助ユニット5fと補助ユニット5gのように、複数の補助ユニット5が同時に装着された場合、CPUユニット4に近いスロットから順番に論理スロット番号が割り付けられる。
図8は、MPU41が更新管理するバッファメモリ割り付けテーブル441のデータ構造の一例を説明する図である。図示するように、補助ユニット5が装着されているスロット毎に、論理スロット番号および割り付けアドレスを対応付けるエントリが登録されている。バッファメモリ割り付けテーブル441には、新しい補助ユニット5が装着される毎に新しい論理スロット番号のエントリが追加される。
なお、補助ユニット5の交換時においては、補助ユニット5が抜き取られ、補助ユニット5が抜き取られた後のスロットに該補助ユニット5と同等の機能を備える補助ユニット5が装着される。バッファメモリ割り付けテーブル441の各エントリは、予約状態フラグを格納するフィールドを備えており、補助ユニット5の抜き取りが行われたとき、対応するエントリは消去される代わりに予約状態フラグがオンされる。そして、抜き取られたスロットに新しい補助ユニット5が装着されたとき、装着された補助ユニット5の入出力点数が抜き取られた補助ユニット5の入出力点数を超えないことが確認された後、予約状態フラグがオフされる。
図2に戻り、デバイスメモリ45は、MPU41がユーザプログラム431を実行することによって生成した補助ユニット5に対する指令としての出力データおよび補助ユニット5からの応答としての入力データが格納される。具体的には、MPU41は、デバイスメモリ45上の出力データを読み出して、読み出した出力データを対応する補助ユニット5のバッファメモリに指令として格納し、該バッファメモリに格納されている応答を読み出して、読み出した応答をデバイスメモリ45に入力データとして格納する。MPU41は、読み出した入力データを用いてユーザプログラム431を実行し、次のサイクルの出力データを算出する。なお、出力データを算出するための中間データもデバイスメモリ45に格納される。
外部I/F46は、プログラミングツールとの間で通信を行うための通信インタフェースである。ユーザは、外部I/F46にプログラミングツールを接続することによってユーザプログラム431のCPUユニット4へのダウンロードを行うことができる。
バスI/F47は、バスコネクタ22を介して補助ユニット5の夫々と通信を行うための通信インタフェースである。バスI/F47は、夫々の補助ユニット5の生存確認を行う生存確認回路471を備えている。生存確認回路471による生存確認方法は特に限定しないが、例えば、生存確認回路471は、確認対象の補助ユニット5が備えるタイマ(図示せず)を読み、該タイマが動作していれば生存しているとし、動作していなければ生存していないと判定する。なお、RUN中に生存が確認されなくなった場合、CPUユニット4は生存が確認されなくたった補助ユニット5を故障と判定する。
補助ユニット5は、MPU51、システムメモリ52、ワークメモリ53、バッファメモリ54、バスI/F55、I/Oポート56、およびユニット抜き取りスイッチ57を備えている。MPU51、システムメモリ52、ワークメモリ53、バッファメモリ54、I/Oポート56は、補助ユニット5の内部バスで互いに接続されている。
システムメモリ52は、補助ユニット5を動作させるためのシステムプログラム521を記憶している。MPU51は、ワークメモリ53をワークエリアとして使用して、システムプログラム521を実行することによって、補助ユニット制御部として機能する。
バスI/F55は、バスコネクタ22を介してCPUユニット4と通信を行うための通信インタフェースである。バスI/F55は、CPUユニット4の生存確認を行う生存確認回路551を備えている。生存確認回路551による生存確認方法は特に限定しないが、生存確認回路551は、例えば、CPUユニット4が備えるタイマ(図示せず)を読み、該タイマが動作していればCPUユニット4は生存しているとし、動作していなければ生存していないと判定する。
バッファメモリ54は、2ポートメモリであって、補助ユニット5の内部バスおよびバスI/F55の夫々に接続されている。バッファメモリ54は、上述のように、CPUユニット4によってCPUユニット4のメモリ空間に割り付けられ、CPUユニット4との間の通信に使用される。バッファメモリ54には、CPUユニット4がシステムプログラム421に基づいて補助ユニット5を認証/認証解除する通信を行うためのシステム用I/O領域541と、CPUユニット4がユーザプログラム431に基づいて指令の送信と応答の受信とを行うためのユーザ用I/O領域542と、が確保されている。
図9は、システム用I/O領域541のメモリ構造を説明する図である。図示するように、システム用I/O領域541には、補助ユニット5のMPU51が生成するユニット情報61およびシステム情報62が格納される。ユニット情報61は、自補助ユニット5のユニット種別、入出力点数、システム用I/O領域541の使用ワード数などを記述した情報である。また、システム情報62は、自補助ユニット5の固有コードや自補助ユニット5に実装されている機能を記述した情報である。
また、システム用I/O領域541には、補助ユニット5のMPU51が管理するビット情報として、ユニット認証要求フラグ63、システム情報セット完了フラグ64、ユニット準備完了フラグ65、およびユニット抜き取り要求フラグ66が格納されている。さらに、システム用I/O領域541には、CPUユニット4のMPU41が管理するビット情報として、ユニット認証完了フラグ67、システム情報チェック完了フラグ68、およびユニット抜き取り許可フラグ69が格納されている。
ユニット抜き取りスイッチ57は、位置固定用コネクタ21への自補助ユニット5の固定/固定解除に連動してオン/オフされる。
図10は、補助ユニット5が固定されているPLC1をxz面に沿って切断した断面図である。図示するように、位置固定用コネクタ21の断面は、z軸の負方向にL字型に折れ曲がった構造を備えている。一方、補助ユニット5は、位置固定用コネクタ21のL字構造に咬合してx軸方向の補助ユニット5の抜け落ちを防止する咬合部58が設けられたロックバー59を備えている。ロックバー59は、補助ユニット5本体に対してx軸方向に移動可能となっている。ユーザは、ロックバー59をx軸負方向にスライドさせることによって、咬合部58を位置固定用コネクタ21に咬合させ、補助ユニット5を固定状態にすることができる。また、ユーザは、ロックバー59をx軸正方向に移動させられることによって、咬合部58と位置固定用コネクタ21との咬合を解除し、補助ユニット5を固定解除状態にすることができる。固定解除状態となっているとき、ユーザは、補助ユニット5をx軸正方向に動かすと、補助ユニット5をバスユニット2から取り外すことができる。
さらに、補助ユニット5本体には、x軸正方向に押下される補助ユニット5が設けられている。そして、ロックバー59には、固定解除状態となったときにユニット抜き取りスイッチ57を押下することができるように、ユニット抜き取りスイッチ57の配設位置に対応した位置にスイッチ押下部60が設けられている。図11は、補助ユニット5が固定解除状態となっているときのPLC1の断面図である。図示するように、固定解除状態においては、ユニット抜き取りスイッチ57が押下された状態となっている。
このように、補助ユニット5を固定状態にしたとき、ユニット抜き取りスイッチ57はオフ状態となり、補助ユニット5を固定解除状態にしたとき、ユニット抜き取りスイッチ57はオン状態となる。
I/Oポート56は、ユニット抜き取りスイッチ57のオン/オフを検知して、検知した内容をMPU51に伝達する。MPU51は、ユニット抜き取りスイッチ57がオンとなったとき、ユニット抜き取り要求フラグ66を立てる。
次に、本発明の実施の形態のPLC1の動作を説明する。図12は、PLC1の起動処理を説明するフローチャートである。なお、以下、CPUユニット4が備えるMPU41による処理を説明するとき、CPUユニット4を動作主体をとして表現することがある。また、補助ユニット5が備えるMPU51による処理を説明するとき、MPUユニット5を動作主体として表現することがある。
まず、CPUユニット4は、PLC1のリセットを解除し、装着されている夫々の補助ユニット5のユニット認証要求フラグ63がオンされているか否かを夫々の補助ユニット5に対して確認するポーリングを実行する(ステップS1)。なお、物理スロット毎に補助ユニット5のバッファメモリ54の割り付け先が予め仮決めされており、CPUユニット4は、起動の後、バッファメモリ割り付けテーブル441に登録されるまでは仮決めされたアドレス割り付けに基づいて夫々のバッファメモリ54にアクセスするようにするとよい。
補助ユニット5は、リセット解除された後、動作を開始し(ステップS2)、ユニット情報61をシステムI/O領域541にセットする(ステップS3)。ユニット情報61をセット完了すると、補助ユニット5は、ユニット認証要求フラグ63をオンする(ステップS4)。
CPUユニット4は、ユニット認証要求フラグ63のオンを確認すると(ステップS5)、ユニット認証要求フラグ63のオンが確認された補助ユニット5に対するアドレス割り付け処理を実行する(ステップS6)。
図13は、起動処理時におけるアドレス割り付け処理を説明するフローチャートである。図示するように、まず、CPUユニット4は、バッファメモリ割り付けテーブル441を参照して、割り付け済みの最大論理スロット番号を求め、求めた最大論理スロット番号に1加算して、対象の補助ユニット5が装着されている物理スロット番号に対応する論理スロット番号を算出する(ステップS21)。そして、CPUユニット4は、割り付け済みのメモリ空間の最後尾アドレスと、ユニット情報61に記述されている入出力点数と、に基づいて、割り付け済みのメモリ空間に連続する割り付けアドレスを算出する(ステップS22)。そして、CPUユニット4は、バッファメモリ割り付けテーブル441に、対象の補助ユニットが装着された物理スロット番号と算出した論理スロット番号および割り付けアドレスとを対応付けたエントリを追加し(ステップS23)、対象の補助ユニット5に対するアドレス割り付け処理が終了する。なお、起動処理時のアドレス割り付け処理において生成した各エントリの予約状態フラグはすべてオフ状態としておく。
CPUユニット4は、補助ユニット5に対するアドレス割り付け処理を終了すると、該補助ユニット5のシステム用I/O領域541にユニット認証完了フラグ67を立てる(ステップS7)。
補助ユニット5は、ユニット認証完了フラグ67のオンを確認すると(ステップS8)、システム情報62をシステム用I/O領域541にセットし(ステップS9)、システム情報セット完了フラグ64をオンする(ステップS10)。
CPUユニット4は、システム情報セット完了フラグ64のオンを確認すると(ステップS11)、セットされているシステム情報62をチェックし(ステップS12)、システム情報チェック完了フラグ68をオンする(ステップS13)。
補助ユニット5がシステム情報チェック完了フラグ68のオンを確認すると(ステップS14)、補助ユニット5が備える生存確認回路551およびCPUユニット4が備える生存確認回路471は互いに生存確認処理を実行する(ステップS15、ステップS16)。相互に生存していることを確認すると、補助ユニット5は、ユニット準備完了フラグ65をオンし(ステップS17)、CPUユニット4はユニット準備完了フラグ65のオンを確認する(ステップS18)。
なお、CPUユニット4は、ステップS1においてリセット解除すると、物理スロット番号が小さいスロットから物理スロット毎に順次ユニット認証要求フラグ63をポーリングしていく。ユニット認証要求フラグ63がオンとなっている物理スロットがあった場合、該物理スロットに装着されている補助ユニット5との間でステップS6〜ステップS18までの処理が実行され、ステップS18までの処理が終了すると、CPUユニット4は次の物理スロットのユニット認証要求フラグ63を確認しにいく。全ての物理スロットに対する確認が完了すると、CPUユニット4および装着されている全ての補助ユニット5の起動処理が終了し、その状態でCPUユニット4にRUN指示が入力されると、PLC1はユーザプログラム431の実行を開始して通常処理に移行する。
図14は、通常処理時(RUN中)において、補助ユニット5の抜き取りを行った場合のPLC1の動作を説明するフローチャートである。CPUユニット4は、通常処理が開始されると、バッファメモリ割り付けテーブル441に登録済みの領域をサーチすることによってユニット抜き取り要求フラグ66のポーリングを行う(ステップS31)。
ユーザは、補助ユニット5のロックバー59をスライドさせて非固定状態とすると(ステップS32)、補助ユニット5は、ユニット抜き取り要求フラグ66をオンする(ステップS33)。
CPUユニット4は、ユニット抜き取り要求フラグ66のオンを確認すると(ステップS34)、生存確認回路471による生存確認処理およびユーザ用I/O領域542を介した入出力データのデータ転送の停止を行う(ステップS35)。そして、CPUユニット4は、抜き取り位置の物理スロット番号のエントリが含む予約状態フラグをオンし(ステップS36)、ユニット抜き取り許可フラグ69をオンする(ステップS37)。その後、ステップS31に移行する。
補助ユニット5は、ユニット抜き取り許可フラグ69のオンを確認すると(ステップS38)、内部データの保存など停止処理を行い(ステップS39)、ユーザに抜き取り可能状態であることを示すために自補助ユニット5が備えるLED(図示せず)を消灯し(ステップS40)、抜き取り待ち状態に移行する(ステップS41)。
ユーザは、LEDの消灯を確認して補助ユニット5を抜き取り(ステップS42)、ユニット抜き取り処理が終了する。
図15は、通常処理時において、補助ユニット5の増設を行なった場合のPLC1の動作を説明するフローチャートである。通常処理が開始されると、CPUユニット4は、バッファメモリ割り付けテーブル441に登録されていない領域および予約状態で登録されている領域をサーチすることによって、ユニット認証要求フラグ63のポーリングを行う(ステップS51)。
一方、新たな補助ユニット5がスロットに装着されると、装着された補助ユニット5(以降、増設ユニットという)は動作を開始し(ステップS52)、ユニット情報61をシステムI/O領域541にセットする(ステップS53)。ユニット情報61をセット完了すると、補助ユニット5は、ユニット認証要求フラグ63をオンする(ステップS54)。
CPUユニット4は、ポーリングを続行してゆくうちに、増設ユニットのユニット認証要求フラグ63のオンを確認する(ステップS55)。すると、CPUユニット4は、アドレス割り付け処理を実行する(ステップS56)。
図16は、通常処理時(RUN中)におけるアドレス割り付け処理を説明するフローチャートである。まず、CPUユニット4は、増設ユニット5が装着された物理スロット番号を検索キーとしてバッファメモリ割り付けテーブル441を検索し(ステップS71)、エントリが存在するか否かを判定する(ステップS72)。エントリが存在しなかった場合(ステップS72、No)、CPUユニット4は、ステップS21〜ステップS23と同等の処理をステップS73〜ステップS75で実行し、増設ユニット5に関するRUN中のアドレス割り付け処理を終了する。
前に補助ユニット5が装着されたことがあり、抜き取られた状態となっている物理スロットは、バッファメモリ割り付けテーブル441に予約状態フラグが立っている状態となっているが、エントリは削除されずに存在している。エントリが存在した場合(ステップS72、Yes)、CPUユニット4は、増設ユニット5の入出力点数がバッファメモリ割り付けテーブル441に登録されている領域のサイズよりも小さいか否かを判定し(ステップS76)、小さくなかった場合(ステップS76、No)、CPUユニット4は、エラー処理を実行する(ステップS77)。増設ユニット5の入出力点数がバッファメモリ割り付けテーブル441に登録されている領域のサイズよりも小さかった場合(ステップS76、Yes)、予約状態フラグをオフして登録されている領域を増設ユニット5の割り当て先とし(ステップS78)、増設ユニット5に関するRUN中のアドレス割り付け処理を終了する。
CPUユニット4は、アドレス割り付け処理を完了すると、ユニット認証完了フラグ67をオンする(ステップS57)。
増設ユニット5がユニット認証完了フラグ67のオンを確認すると(ステップS58)、増設ユニット5およびCPUユニット4は、夫々、ステップS59〜ステップS68において、既に説明したステップS9〜ステップS18と同等の処理を実行し、増設ユニット5は起動処理を終了する。増設ユニット5の起動処理が終了すると、ユーザプログラム431に基づいて増設ユニット5とCPUユニット4との間のデータ転送を行う通常処理に移行する。なお、ステップS68の後、CPUユニット4は、ステップS51へ移行してポーリングを実行する。
なお、通常処理時における各種フラグのポーリング(ステップS31、ステップS51)を行うタイミングについては特に言及しなかったが、これらのポーリングはどのようなタイミングで行うようにしてもよい。例えばユーザプログラム431を1回または複数スキャンする毎に実行するようにしてもよい。また、MPU41がアイドル状態となっているときに実行するようにしてもよい。また、一定の時間間隔毎に割り込みをかけて実行するようにしてもよい。
また、システム用I/O領域541を介して補助ユニットを認証/認証解除するための通信が実行されるとして説明したが、補助ユニット5を認証/認証解除するための通信をバスユニット2が備えるバスや別途設けた専用線を用いて実行するようにしてもよい。
また、ロックバー59を用いて補助ユニット5を位置固定用コネクタ21に固定するものとして説明したが、非固定状態となったときにユニット抜き取りスイッチ57がオンされるようになっていればロック機構はロックバー59の方式だけに限定されない。
なお、一般に、ワークメモリ44には、高速動作が可能な揮発性のメモリが用いられる。そして、ユーザは、PLC1を停止して再起動したときに同一のアドレス割り付けとなるように、所望のタイミングでバッファメモリ割り付けテーブル441を図示しない書き換え可能な不揮発性メモリに退避させるようにする。バッファメモリ割り付けテーブル441の退避を省略できるようにするために、ワークメモリ44に、バッテリバックアップされた揮発性メモリや、不揮発性のメモリを用いるようにしてもよい。
以上述べたように、本発明の実施の形態によれば、CPUユニット4は、ユーザプログラム431の実行中に補助ユニット5が新規装着されたとき、新規装着を検知して、新規装着された補助ユニット5のバッファメモリ54に当該補助ユニット5の検知順に対応したアドレスを割り付け、当該補助ユニット5との間のユーザプログラム431に基づくデータ転送を開始する、ように構成したので、プログラミングツールを用いることなく新規装着でき、かつどのような入出力点数のバッファメモリを備える補助ユニット5を追加する場合でも新規装着を自動で検知してバッファメモリ54に自動でアドレスを割り付けることができる。即ち、簡単な操作で補助ユニットの増設を行うことができるようになる。また、スキップされて空きスロットとなっている部分にどのような入出力点数を備える補助ユニット5でも装着することができるようになる。
また、補助ユニット5は、バスユニット2に装着されたとき、ユニット認証要求フラグ63を発行し、CPUユニット4は、ユーザプログラム431の実行中に空きスロット毎にポーリングを行ってユニット認証要求フラグ63を検知する、ように構成したので、CPUユニット4はユーザプログラム431の実行中に補助ユニット5の新規装着を検知することができる。
また、補助ユニット5は、ユニット認証要求フラグ63とともに自補助ユニット5のバッファメモリ54の入出力点数を記述したユニット情報61を発行する、ように構成したので、CPUユニット4は、どのような入出力点数を備える補助ユニット5が新規装着されても、当該補助ユニット5に割り付けるべきサイズを認識することができる。
また、補助ユニット5は、自補助ユニット5の引き抜きが行われたとき、該引き抜きを検知してユニット抜き取り要求フラグ66を発行し、CPUユニット4は、ユーザプログラム431を実行中に補助ユニット5が装着されているスロット毎にポーリングを行ってユニット抜き取り要求フラグ66を監視し、ユニット抜き取り要求フラグ66を検知したとき、ユニット抜き取り要求フラグ66を発行した補助ユニット5との間のデータ転送を終了する、ように構成したので、RUN中であってもエラー出力されることなく補助ユニット5を引き抜くことができるようになる。
また、バッファメモリ割り付けテーブル441は、補助ユニット5が装着されているスロット毎に予約状態フラグを格納する領域を備え、CPUユニット4は、ユニット抜き取り要求フラグ66を検知したとき、ユニット抜き取り要求フラグ66を発行した補助ユニット5が装着されていたスロットの予約状態フラグを立て、予約状態フラグが立てられているスロットに補助ユニット5の新規装着を検知したとき、当該予約状態フラグを下ろす、ように構成したので、ユーザは、補助ユニット5を交換する際に割り付けアドレスの変更を行う必要がないので、プログラミングツールを必要とすることなく簡単な操作で補助ユニット5の交換を行うことができるようになる。
また、CPUユニット4は、バスユニット2に装着されている補助ユニット5との間でデータ転送を行うとともに相互の生存確認を実行し、ユニット抜き取り要求フラグ66を検知したとき、ユニット抜き取り要求フラグ66を発行した補助ユニット5との間の生存確認を停止する、ように構成したので、抜き取られた補助ユニット5を故障したものとして誤検出されること防止することができる。
また、補助ユニット5は、スロットに固定されるためのロックバー59と、ロックバー59の解除を検知するユニット抜き取りスイッチ57と、を備え、ユニット抜き取りスイッチ57がロックバー59の解除を検知したとき、ユニット抜き取り要求フラグ66を発行する、ように構成したので、ユーザがロックバー59を非固定状態とするだけでユニット抜き取りの処理が開始されるので、簡単な操作で補助ユニット5の抜き取りを行うことができるようになる。
以上のように、本発明にかかるPLCおよびユニット追加方法は、PLCおよび動作中のPLCに補助ユニットを追加するユニット追加方法に適用して好適である。
1 PLC
2 バスユニット
3 電源ユニット
4 CPUユニット
5、5a〜5g 補助ユニット
21 位置固定用コネクタ
22 バスコネクタ
41 MPU
42 システムメモリ
43 ユーザメモリ
44 ワークメモリ
45 デバイスメモリ
46 外部I/F
47 バスI/F
51 MPU
52 システムメモリ
53 ワークメモリ
54 バッファメモリ
55 バスI/F
56 I/Oポート
57 ユニット抜き取りスイッチ
58 咬合部
59 ロックバー
60 スイッチ押下部
61 ユニット情報
62 システム情報
63 ユニット認証要求フラグ
64 システム情報セット完了フラグ
65 ユニット準備完了フラグ
66 ユニット抜き取り要求フラグ
67 ユニット認証完了フラグ
68 システム情報チェック完了フラグ
69 ユニット抜き取り許可フラグ
421 システムプログラム
431 ユーザプログラム
441 バッファメモリ割り付けテーブル
471 生存確認回路
521 システムプログラム
541 システム用I/O領域
542 ユーザ用I/O領域
551 生存確認回路

Claims (9)

  1. ユーザプログラムを実行するCPUユニットと、
    前記CPUユニットとの間でデータ転送を行うためのバッファメモリを備え、前記CPUユニットのスレーブとして動作する補助ユニットと、
    前記CPUユニットおよび前記補助ユニットが装着されるスロットを複数備え、前記CPUユニットと前記補助ユニットとの間のデータ転送を行うバスユニットと、
    を備え、
    前記CPUユニットは
    記ユーザプログラムの実行中に前記バスユニットの空きスロットに補助ユニットが新規装着されたとき、前記新規装着を検知して、前記新規装着された補助ユニットのバッファメモリに当該補助ユニットの検知順に対応したアドレスを割り付け、当該補助ユニットとの間の前記ユーザプログラムに基づくデータ転送を開始し、
    補助ユニットが装着されているスロット毎に、前記CPUユニットとの間の位置関係を示す物理スロット番号、補助ユニットの装着の検知順に付与される論理スロット番号および装着されている補助ユニットに割り付けられたアドレスを対応付けたバッファメモリ割り付け情報を更新管理する、
    ことを特徴とするプログラマブルコントローラ。
  2. 前記CPUユニットは、前記新規装着された補助ユニットのバッファメモリを、1つ前に割り付けた領域に連続した領域に割り付ける、
    ことを特徴とする請求項1に記載のプログラマブルコントローラ。
  3. 前記補助ユニットは、前記バスユニットに装着されたとき、ユニット認証要求を発行し、
    前記CPUユニットは、前記ユーザプログラムの実行中に空きスロット毎にポーリングを行って前記ユニット認証要求を検知する、
    ことを特徴とする請求項に記載のプログラマブルコントローラ。
  4. 前記補助ユニットは、前記ユニット認証要求とともに自補助ユニットのバッファメモリの入出力点数を記述したユニット情報を発行し、
    前記CPUユニットは、前記新規装着を検知した補助ユニットが発行した前記ユニット情報に記述されている入出力点数のサイズの領域を当該補助ユニットのバッファメモリに割り付ける、
    ことを特徴とする請求項に記載のプログラマブルコントローラ。
  5. 前記補助ユニットは、自補助ユニットの引き抜きが行われたとき、該引き抜きを検知してユニット抜き取り要求を発行し、
    前記CPUユニットは、前記ユーザプログラムを実行中に補助ユニットが装着されているスロット毎にポーリングを行って前記ユニット抜き取り要求を監視し、前記ユニット抜き取り要求を検知したとき、前記ユニット抜き取り要求を発行した補助ユニットとの間のデータ転送を終了する、
    ことを特徴とする請求項1から請求項の何れか1項に記載のプログラマブルコントローラ。
  6. 前記バッファメモリ割り付け情報は、補助ユニットが装着されているスロット毎に予約状態フラグを格納する領域を備え、
    前記CPUユニットは、前記ユニット抜き取り要求を検知したとき、前記ユニット抜き取り要求を発行した補助ユニットが装着されていたスロットの予約状態フラグを立て、予約状態フラグが立てられているスロットに補助ユニットの新規装着を検知したとき、当該予約状態フラグを下ろす、
    ことを特徴とする請求項に記載のプログラマブルコントローラ。
  7. 前記CPUユニットは、前記バスユニットに装着されている補助ユニットとの間でデータ転送を行うとともに相互の生存確認を実行し、前記ユニット抜き取り要求を検知したとき、前記ユニット抜き取り要求を発行した補助ユニットとの間の生存確認を停止する、
    ことを特徴とする請求項に記載のプログラマブルコントローラ。
  8. 前記補助ユニットは、スロットに固定されるためのロック機構と、前記ロック機構の解除を検知する抜き取り検知スイッチと、を備え、前記抜き取り検知スイッチが前記ロック機構の解除を検知したとき、前記ユニット抜き取り要求を発行する、
    ことを特徴とする請求項に記載のプログラマブルコントローラ。
  9. ユーザプログラムを実行するCPUユニットと、前記CPUユニットとの間でデータ転送を行うためのバッファメモリを備え、前記CPUユニットのスレーブとして動作する補助ユニットと、前記CPUユニットおよび前記補助ユニットが装着されるスロットを複数備え、前記CPUユニットと前記補助ユニットとの間のデータ転送を行うバスユニットと、を備えるプログラマブルコントローラに補助ユニットを追加するユニット追加方法であって、
    前記ユーザプログラムの実行中に前記バスユニットの空きスロットに補助ユニットが新規装着されたとき、前記CPUユニットが前記新規装着を検知するステップと、
    前記CPUユニットが、前記新規装着された補助ユニットのバッファメモリに当該補助ユニットの検知順に対応したアドレスを割り付けるステップと、
    前記CPUユニットが、前記新規装着された補助ユニットとの間の前記ユーザプログラムに基づくデータ転送を開始するステップと、
    前記CPUユニットが、補助ユニットが装着されているスロット毎に、前記CPUユニットとの間の位置関係を示す物理スロット番号、補助ユニットの装着の検知順に付与される論理スロット番号および装着されている補助ユニットに割り付けられたアドレスを対応付けたバッファメモリ割り付け情報を更新するステップと、
    を備えることを特徴とするユニット追加方法。
JP2010247794A 2010-11-04 2010-11-04 プログラマブルコントローラおよびユニット追加方法 Active JP5460556B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010247794A JP5460556B2 (ja) 2010-11-04 2010-11-04 プログラマブルコントローラおよびユニット追加方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010247794A JP5460556B2 (ja) 2010-11-04 2010-11-04 プログラマブルコントローラおよびユニット追加方法

Publications (2)

Publication Number Publication Date
JP2012099023A JP2012099023A (ja) 2012-05-24
JP5460556B2 true JP5460556B2 (ja) 2014-04-02

Family

ID=46390840

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010247794A Active JP5460556B2 (ja) 2010-11-04 2010-11-04 プログラマブルコントローラおよびユニット追加方法

Country Status (1)

Country Link
JP (1) JP5460556B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112012006752T5 (de) * 2012-07-30 2015-08-20 Mitsubishi Electric Corporation Erweiterungseinheit
JP5908175B2 (ja) * 2014-04-24 2016-04-26 三菱電機株式会社 制御システム、マスタ局、およびリモート局
KR102129465B1 (ko) * 2018-03-13 2020-07-02 엘에스일렉트릭(주) Plc시스템의 유닛 증설방법
KR102126914B1 (ko) * 2019-09-18 2020-06-25 (주)캐시스 듀얼 데이지 체인을 이용한 i/o 확장 시스템 및 그에 따른 i/o 확장 방법

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61173309A (ja) * 1985-01-28 1986-08-05 Hitachi Ltd デイジタル制御装置
JPH01177610A (ja) * 1988-01-08 1989-07-13 Fanuc Ltd Pcの入出力モジュール割付方法
JPH02116903A (ja) * 1988-10-27 1990-05-01 Toshiba Corp プログラマブルコントローラの入出力アドレス割付方式
JPH0341503A (ja) * 1989-07-10 1991-02-22 Mitsubishi Electric Corp アドレス自動読み出し機能付周辺装置
JPH03286206A (ja) * 1990-03-31 1991-12-17 Sanyo Electric Co Ltd プログラマブル・コントローラ
JP2001255910A (ja) * 2000-03-13 2001-09-21 Yaskawa Electric Corp プログラマブルコントローラの入出力割付方法
JP3526293B2 (ja) * 2001-11-30 2004-05-10 三菱電機株式会社 プログラマブルコントローラ
JP4362777B2 (ja) * 2004-11-22 2009-11-11 株式会社安川電機 プログラミング装置、シンボル自動登録方法、プログラムおよび記録媒体

Also Published As

Publication number Publication date
JP2012099023A (ja) 2012-05-24

Similar Documents

Publication Publication Date Title
CN102033790B (zh) 一种嵌入式系统bootrom的升级方法和装置
JP5460556B2 (ja) プログラマブルコントローラおよびユニット追加方法
TW201933094A (zh) 韌體更新方法及使用此方法的電子裝置
JP6139386B2 (ja) プログラマブルコントローラ
JP5144409B2 (ja) インバータ制御システム,インバータ装置の周辺機器
JP2010170197A (ja) ファームウェア管理プログラム、記憶装置およびファームウェア管理方法
CN102736932A (zh) 镜像文件、镜像文件的制作方法及多系统的启动引导方法
JP2006221274A (ja) 車両用電子制御装置および制御プログラムの書換え方法
CN109375953B (zh) 一种操作系统启动方法及装置
JP2010068684A (ja) インバータ装置
KR100849212B1 (ko) 메모리 카드 및 메모리 카드의 구동 프로그램 업데이트방법
JP6575157B2 (ja) ファームウェアのダウンロード方法及びファームウェア組込機器
JP2018028830A (ja) 電子制御装置およびその情報記憶方法
JP6935694B2 (ja) 電子制御装置
JP6403919B1 (ja) 作画ソフトウェア、記憶媒体および作画装置
JP6582438B2 (ja) 情報処理装置、システム設定方法、及び、コンピュータ・プログラム
CN112685053B (zh) 单片机程序远程升级控制方法
CN107894894A (zh) 用于更新设备软件的系统和方法
CN108282366B (zh) 机组数据同步方法、系统和计算机可读存储介质
US9405938B2 (en) Information processing apparatus, method for releasing restriction on use of storage device, and storage medium
JP5435648B2 (ja) ファイル共有装置、ファイル共有装置のファームウェアアップデート方法、コンピュータプログラム
US20190286447A1 (en) Information processing device
JP5508297B2 (ja) 設定情報参照起動型の制御装置および設定情報管理方法
EP1768411A1 (en) Television camera system and respective configuring method
JP7322764B2 (ja) 空気調和機

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121011

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131016

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131022

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131128

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140114

R150 Certificate of patent or registration of utility model

Ref document number: 5460556

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250