(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、一般にCPUユニットには複数のI/Oユニットが接続され、CPUユニットは各I/Oユニットに順番にアクセスする。このため一つのI/Oユニットから見ると、自身がCPUユニットに送信した信号がCPUユニットで処理されてその結果を受信するのはCPUユニットが複数のI/Oユニットにアクセスした後となるので、I/OユニットがCPUユニットに信号を送信してからその結果を受信するまでに時間がかかるという問題がある。
【0005】
それ以外にも、CPUユニットで実行される処理が複雑になると全体の処理が遅くなるので、I/Oユニットから受信した信号の処理も遅くなることにより、I/OユニットがCPUユニットに信号を送信してからその結果を受信するまでに時間がかかる場合もある
【0006】
このような問題を解決するために、データ処理手順を書き換え可能なプログラマブルデバイスをI/Oユニットに設け、CPUユニットとは独立してプログラマブルデバイスに信号を処理させるようにすることも考えられる。しかしながら、プログラマブルデバイスに信号を処理させる場合、CPUユニットと通信する処理までプログラマブルデバイスに実行させると、当該処理に不具合があるデータ処理手順に書き換えられてしまった場合に、CPUユニットと通信できなくなってしまう。
【0007】
本明細書では、制御ユニットの全体処理時間に依存せず、多様な信号処理を高速に処理することができ、かつ、制御ユニットと通信できなくなってしまうことを抑制しつつ、データ処理手順を書き換えることができる技術を開示する。
【課題を解決するための手段】
【0008】
本明細書によって開示される入出力ユニットは、制御ユニットと通信可能に接続される通信部と、外部の機器と通信可能に接続される入出力インタフェース部と、前記通信部と前記入出力インタフェース部とに通信可能に接続されている処理部と、を備え、前記通信部は、第1のデータ処理手順を書き換え不能に記憶し、前記第1のデータ処理手順に基づいて制御ユニットと通信し、前記処理部は、第2のデータ処理手順を書き換え可能に記憶し、前記第2のデータ処理手順に基づいて、少なくとも前記入出力インタフェース部を介して外部の機器から入力されたデータのみを処理し、前記入出力インタフェース部を介して外部の機器に処理結果を出力可能である。
【0009】
上記入出力ユニットによると、制御ユニットの全体処理時間に依存せず、多様な信号処理を高速に処理することができる。また、上記入出力ユニットによると、通信部と処理部とを別構成とし、通信部が実行する第1のデータ処理手順については書き換え不能とし、処理部が実行する第2のデータ処理手順については書き換え可能としたので、第1のデータ処理手順が書き換えられてしまわないようにすることができる。これにより、制御ユニットと通信できなくなってしまうことを抑制しつつ、処理部が実行する第2のデータ処理手順を書き換えることができる。
【0010】
また、前記処理部は、前記第2のデータ処理手順に基づいて、前記通信部を介して前記処理結果を制御ユニットに送信してもよい。
【0011】
上記入出力ユニットによると、入出力ユニットの処理結果を制御ユニットに送信するので、入出力ユニットの処理結果を制御ユニットで管理することができる。
【0012】
また、前記処理部は、前記第2のデータ処理手順に基づいて、前記通信部を介して制御ユニットから受信したデータと前記入出力インタフェース部を介して外部の機器から入力されたデータとを処理し、前記入出力インタフェース部を介して外部の機器に処理結果を出力してもよい。
【0013】
上記入出力ユニットによると、制御ユニットから受信したデータについても処理できるので、制御ユニットから受信したデータを処理できない場合に比べ、より多様な処理を実行することができる。
【0014】
また、前記処理部はFPGAであってもよい。
【0015】
上記入出力ユニットによると、CPUを用いる場合に比べて処理をより高速に実行することができる。
【0016】
また、上記入出力ユニットは、筐体と、前記筐体に設けられている表示部と、前記筐体内に設けられ、前記第2のデータ処理手順を書き換えるための外部のコネクタが接続される通信端子部と、を備え、前記筐体の前記表示部が設けられている面に、前記外部のコネクタを前記通信端子部に接続するための開口が形成されていてもよい。
【0017】
一般に表示部は視認性を確保するために外部から見易い面に設けられる。このため表示部が設けられている面に開口を形成すると、ユーザは通信端子部にアクセスし易くなる。これにより、表示部が設けられている面とは異なる面に開口を形成する場合に比べ、第2のデータ処理手順を書き換える作業を行い易くなる。
【0018】
また、前記表示部は、光源部と、前記筐体内に設けられ前記光源部が接続される表示端子部とを有し、前記光源部は前記筐体の外から前記開口を介して前記表示端子部に接続されてもよい。
【0019】
上記入出力ユニットによると、外部のコネクタを通信端子部に接続するための開口と、光源部を表示端子部に接続するための開口とを共通化することができる。これにより、外部のコネクタを通信端子部に接続するための開口と光源部を表示端子部に接続するための開口とを別々に設ける場合に比べ、入出力ユニットを小型化することができる。
【0020】
また、前記通信端子部と前記表示端子部とは共通の端子部として構成されており、前記端子部を前記通信端子部として機能させるか又は前記表示端子部として機能させるかを切り替える切り替えスイッチを備えてもよい。
【0021】
上記入出力ユニットによると、通信端子部と表示端子部とを別々の端子部とする場合に比べて開口を小さくすることができるので、通信端子部と表示端子部とを別々の端子部とする場合に比べ、入出力ユニットを小型化することができる。
【0022】
なお、本明細書によって開示される技術は、プログラマブルロジックコントローラ、入出力方法等の種々の態様で実現することができる。
【発明の効果】
【0023】
上記の入出力ユニットによると、制御ユニットの全体処理時間に依存せず、多様な信号処理を高速に処理することができ、かつ、制御ユニットと通信できなくなってしまうことを抑制しつつ、データ処理手順を書き換えることができる。
【発明を実施するための形態】
【0025】
<実施形態1>
実施形態1を
図1ないし
図6によって説明する。
(1)プログラマブルロジックコントローラの構成
図1に示すように、実施形態1に係るプログラマブルロジックコントローラ1は電源ユニット10、CPUユニット11、及び、1以上のI/Oユニット12A〜12Nが連結されてなるいわゆるスタッキング型のプログラマブルロジックコントローラである。以降の説明ではI/Oユニット12A〜12Nを互いに区別しない場合は単にI/Oユニット12というものとする。
【0026】
電源ユニット10は連結されている他のユニットに電力を供給するユニットである。CPUユニット11はCPU等が内蔵されたユニットである。CPUユニット11は制御ユニットの一例である。
【0027】
I/Oユニット12はセンサやアクチュエータなどの外部の機器と通信するためのユニットである。I/Oユニット12はCPUユニット11に対して受け身の状態であり、CPUユニット11がI/Oユニット12にアクセスしたときにCPUユニット11との間でデータを送受信する。I/Oユニット12は入出力ユニットの一例である。
【0028】
電源ユニット10にはCPUユニット11と連結するための例えば雄型の電源コネクタが設けられている。CPUユニット11には電源ユニット10に連結するための雌型の電源コネクタと、I/Oユニット12に連結するための例えば雄型のバス連結コネクタとの二種類のコネクタが設けられている。
【0029】
I/Oユニット12にはCPUユニット11の雄型のバス連結コネクタ又は他のI/Oユニット12の雄型のバス連結コネクタに連結するための雌型のバス連結コネクタ17と、他のI/Oユニット12の雌型のバス連結コネクタに連結するための雄型のバス連結コネクタ18(
図2参照)との二つのコネクタが設けられている。CPUユニット11と1以上のI/Oユニット12とを連結させるとCPUユニット11とそれら1以上のI/Oユニット12とが制御バス19(
図2参照)によって連結され、これによりCPUユニット11と各I/Oユニット12とが通信可能になる。
【0030】
(2)I/Oユニットの電気的構成
図2に示すように、I/Oユニット12は雌型のバス連結コネクタ17、雄型のバス連結コネクタ18、バスコントロールユニット20、処理部21、入出力インタフェース部22、表示部23などを備えている。バスコントロールユニット20は通信部の一例である。また、
図2では示していないが、I/Oユニット12はバスコントロールユニット20などの構成部品が実装されている主基板25(
図4参照)も備えている。
【0031】
バスコントロールユニット20は通信回路20A、入力バッファ20B、及び、出力バッファ20Cを備えている。通信回路20AにはCPUユニット11と通信するためのデータ処理手順が予め書き換え不能に記憶されている。通信回路20Aに書き換え不能に記憶されているデータ処理手順は第1のデータ処理手順の一例である。
【0032】
通信回路20Aは制御バス19を介してCPUユニット11と通信可能に接続され、予め書き換え不能に記憶しているデータ処理手順に基づいてCPUユニット11と通信する。具体的には例えば、通信回路20Aは処理部21によって入力バッファ20Bに記憶されたデータをデコードしてCPUユニット11に送信する。また、通信回路20AはCPUユニット11からデータを受信し、受信したデータをエンコードして出力バッファ20Cに記憶させる。出力バッファ20Cに記憶されたデータは処理部21によって読み出される。
【0033】
上述したバスコントロールユニット20はFPGA(Field Programmable Gate Array)によって構成されてもよいし、ASICによって構成されてもよい。FPGAは製造後に構成を設定できる集積回路である。ただし、バスコントロールユニット20をFPGAによって構成する場合であってもデータ処理手順を書き換えられるようにするための構成は設けないものとする。このためバスコントロールユニット20をFPGAによって構成した場合もデータ処理手順は書き換え不能である。
【0034】
処理部21はCPU、EEPROM、及び、ROMを備えて構成されている。CPUはEEPROMに書き換え可能に記憶されているデータ処理プログラムを実行する。EEPROMに書き換え可能に記憶されているデータ処理プログラムは第2のデータ処理手順の一例である。データ処理プログラムについての説明は後述する。EEPROMはデータを書き換え可能な不揮発性のメモリである。RAMはCPUが処理を実行するための主記憶装置として用いられる。
【0035】
入出力インタフェース部22は、入出力信号の伝達に用いる入出力コネクタや、RS−232C、Ethernet(登録商標)などの通信規格に応じた形状の入出力コネクタ22A、インタフェース回路22Bなどを備えて構成されている。入出力コネクタ22Aは通信ケーブルなどを介して外部の機器と接続され、外部の機器との間でデータの入出力を行う。
【0036】
表示部23はLEDを点灯させることによってユーザに各種の情報を報知する。詳しくは後述するが、表示部23は複数のLEDが実装されているLED基板23A(
図4参照)と、LED基板23Aが接続される表示端子部23B(
図4参照)とを有している。表示端子部23Bは前述した主基板25に設けられている。LED基板23Aは光源部の一例である。
【0037】
(3)プログラマブルロジックコントローラの処理
次に、
図3を参照して、プログラマブルロジックコントローラ1によって実行される処理の一例について説明する。ここで、
図1とは異なり、
図3ではCPUユニット11に従来のI/Oユニット30が3台(30A〜30C)、及び、本実施形態に係るI/Oユニット12が1台連結されている場合を示している。従来のI/Oユニット30とは、処理部21を備えず、入出力インタフェース部22と表示部23とがそれぞれバスコントロールユニット20に直接接続されているものである。以降の説明ではI/Oユニット30A〜30Cを互いに区別しない場合は単にI/Oユニット30といい、I/Oユニット30とI/Oユニット12とを互いに区別しない場合は単にI/Oユニットという。
【0038】
図3では外部の機器からI/Oユニット30Aに入力されるデータをX1a及びX1bとして示している。他のI/Oユニット12についても同様であり、I/Oユニット30Bの場合は入力されるデータをX2a及びX2bとして示しており、I/Oユニット12の場合は入力されるデータをX3a及びX3bとして示している。また、I/Oユニット30Cの場合は入力されるデータをX4a及びX4bとして示している。なお、入力されるデータの数や外部の機器に出力するデータの数はこれに限られるものではない。
【0039】
図3に示すプログラマブルロジックコントローラ1では、従来のI/Oユニット30は、外部の機器から入力されたデータをCPUユニット11に送信し、CPUユニット11がそのデータを用いて行った演算結果を外部の機器に出力する。
図3ではI/Oユニット30が外部の機器に出力する演算結果をY1、Y2、Y4として示している。これに対し、本実施形態に係るI/Oユニット12は、自身で演算を行って演算結果Y3を外部の機器に出力し、CPUユニット11には外部の機器から入力されたデータではなく自身が行った演算結果Y3を送信する。以下、具体的に説明する。
【0040】
(3−1)CPUユニットによって実行される処理
先ず、CPUユニット11の処理について説明する。CPUユニット11は演算処理(S101)、I/Oアクセス(S102)、及び、その他の処理(S103)をこの順で繰り返し実行する。ここでは一度の繰り返しのことを1サイクルというものとする。
【0041】
S101では、CPUユニット11は演算処理を実行する。演算処理はI/Oユニット30から受信したデータを用いて所定の演算を行う処理である。具体的には例えば、I/Oユニット30Aを例に説明すると、CPUユニット11は自身が記憶しているデータ処理プログラムを実行することにより、I/Oユニット30Aから受信したデータX1a及びX1bを用いて平均値を算出し、その平均値を演算結果Y1としてRAMに記憶する。I/Oユニット30B及び30Cについても同様である。演算結果は処理結果の一例である。
【0042】
なお、演算の内容はユーザがプログラミングによって任意に決定することができるものであり、平均値を算出する処理に限定されるものではない。例えばX1aとX1bとを加算する処理であってもよい。また、X1aが出力された回数をカウンタに加算し、カウンタの値が500回に達したか否かを判断するという処理でもよい。そして、カウンタの値が500回に達した場合は次に実行するI/Oアクセス(S102)において何らかのデータを処理結果として外部の機器に出力してもよい。これにより外部の機器はI/Oユニット30にデータを出力した回数を自身でカウントしていなくてもその回数が500回に達したタイミングを知ることができる。
【0043】
ここで、CPUユニット11は、I/Oユニット12については演算を行わない。これは、前述したようにI/Oユニット12は自身で演算を行うからである。I/Oユニット12によって実行される処理についての説明は後述する。
【0044】
S102では、CPUユニット11はI/Oアクセスを実行する。I/Oアクセスは各I/Oユニットに順にアクセスして各I/Oユニットと通信する処理である。具体的には例えば、I/Oユニット30Aを例に説明すると、CPUユニット11は制御バス19を介してI/Oユニット30Aにアクセスし、I/Oユニット30AからデータX1a及びX1bを受信する。そして、CPUユニット11は演算処理(S101)で演算を行った演算結果Y1をI/Oユニット30Aに送信する。
【0045】
ただし、CPUユニット11は、I/Oユニット12についてはデータX3a及びX3bの受信は行わない。その理由は、前述したようにI/Oユニット12は自身で演算を行うのでCPUユニット11はデータX3a及びX3bを受信する必要がないからである。その替りとして、CPUユニット11はI/Oユニット12で行われた演算結果Y3を受信する。これは、I/Oユニット12で行われた演算結果Y3をCPUユニット11で管理するためである。なお、この管理が不要である場合は演算結果Y3の受信は不要である。
【0046】
ここで、S102でCPUユニット11がI/Oユニット30から受信したデータは次回S101を実行したときに演算に用いられ、その演算結果は次回S102を実行したときにI/Oユニット30に送信される。つまり、CPUユニット11がI/Oユニット30からデータを受信するサイクルと、CPUユニット11がそのデータを用いた演算の結果をI/Oユニット30に送信するサイクルとは1サイクルずれることになる。このため、I/Oユニット30の場合は外部の機器からデータが入力されてから演算結果を外部の機器に出力するまでに遅延が生じる。
【0047】
また、CPUユニット11はI/Oユニットに順にアクセスするので、I/Oユニット30は外部の機器からデータが入力されてもCPUユニット11との通信の順番が回ってくるまでCPUユニット11へのデータの送信を待たなければならない。また、CPUユニット11から演算結果を受信する場合もI/Oユニット30はCPUユニット11との通信の順番が回ってくるまで待たなければならない。このため、I/Oユニット30の場合はCPUユニット11がI/Oユニットに順にアクセスすることによる遅延も生じる。連結されるI/Oユニットの数が多くなるとこの遅延はより大きくなることになる。
【0048】
また、CPUユニット11とI/Oユニットとは制御バス19を介して通信するが、制御バス19を介した通信ではノイズ対策や各I/Oユニットにアクセスするタイミングにマージンなどを取っており、CPUユニット11内の内部バスと比較すると通信速度が遅くなる傾向がある。このため、I/Oユニット30の場合はそのような理由による遅延も生じる。
【0049】
このため、I/Oユニット30の場合は外部の機器からデータが入力されてから外部の機器に演算結果を出力するまでに時間がかかる。これに対し、I/Oユニット12は自身で演算を行ってその演算結果Y3を外部の機器に出力するので、I/Oユニット30に比べ、外部の機器からデータが入力されてから外部の機器に演算結果を送信するまでの時間を短縮できる。
【0050】
S103では、CPUユニット11はその他の処理を実行する。その他の処理はデータ処理プログラムに応じて決まる処理であり、ユーザの必要に応じた処理をCPUに実行させることができる。
【0051】
(3−2)I/Oユニットによって実行される処理
次に、I/Oユニット12によって実行される処理について説明する。本処理は外部の機器からI/Oユニット12にデータX3a及びX3bが入力されると開始される。つまり、本処理はCPUユニット11によって実行される処理とは独立して開始される。
【0052】
S201では、I/Oユニット12の処理部21は、EEPROMに記憶されているデータ処理プログラムを実行することにより、外部の機器から入力されたデータX3a及びX3bを用いて、演算処理(S101)で実行される演算に相当する演算を実行する。
【0053】
ここで、I/Oユニット12が実行するデータ処理プログラムは、CPUユニット11が実行するデータ処理プログラムを流用して開発することができる。具体的には、I/Oユニット12が行う演算処理はCPUユニット11が行う演算処理に相当するものであるので、CPUユニット11が実行するデータ処理プログラムから不要な処理を削除することにより、I/Oユニット12が実行するデータ処理プログラムを開発することができる。これにより、I/Oユニット12が実行するデータ処理プログラの開発工数を抑制することができる。また、不要な処理を削除するのでI/Oユニット12が実行するデータ処理プログラムはCPUユニット11が実行するデータ処理プログラムよりデータサイズを小さくすることができる。
【0054】
S202では、処理部21は入出力インタフェース部22を介してS201での演算結果Y3を外部の機器に出力する。
S203では、I/Oユニット12のバスコントロールユニット20はCPUユニット11がI/Oアクセス(S102)を実行してI/Oユニット12にアクセスするまで待機し、CPUユニット11がI/Oユニット12にアクセスしたときに、演算結果Y3をCPUユニット11に送信する。
【0055】
なお、外部の機器から入力されたデータX3a及びX3bについてもCPUユニット11で管理する必要がある場合は、I/Oユニット12は演算結果Y3に加えてデータX3a及びX3bもCPUユニット11に送信してもよい。あるいは逆に、データX3a及びX3bについてはCPUユニット11で管理する必要がある一方、演算結果Y3についてはCPUユニット11で管理する必要がない場合は、I/Oユニット12は外部の機器から入力されたデータX3a及びX3bだけをCPUユニット11に送信してもよい。
【0056】
(4)実施形態の効果
以上説明した実施形態1に係るI/Oユニット12によると、CPUユニット11とは独立して処理を実行するので、CPUユニット11の全体処理時間に依存せず、多様な信号処理を高速に処理することができる。また、I/Oユニット12によると、バスコントロールユニット20と処理部21とを別構成とし、バスコントロールユニット20が実行するデータ処理手順(第1のデータ処理手順)については書き換え不能とし、処理部21が実行するデータ処理プログラム(第2のデータ処理手順)については書き換え可能としたので、ユーザが第1のデータ処理手順を書き換えてしまわないようにすることができる。これにより、CPUユニット11と通信できなくなってしまうことを抑制しつつ、処理部21が実行するデータ処理プログラムをユーザが書き換えることができる。
【0057】
更に、I/Oユニット12によると、外部の機器から入力されたデータを処理した処理結果をCPUユニット11に送信するので、I/Oユニット12の処理結果をCPUユニット11で管理することができる。
【0058】
<実施形態2>
次に、実施形態2を
図4ないし
図6によって説明する。
前述したように、処理部21に記憶されているデータ処理プログラムは書き換えることができる。データ処理プログラムの書き換えは、一端にメンテナンス用のコネクタが設けられている通信ケーブルの他端を外部のコンピュータに接続し、そのメンテナンス用のコネクタをI/Oユニット12の主基板25に設けられているポートに接続することによって行われる。メンテナンス用のコネクタは外部のコネクタの一例である。
【0059】
詳しくは後述するが、メンテナンス用のコネクタには複数の接続端子が設けられている。また、主基板25に設けられているポートには複数のメンテナンス用の接続端子が設けられている。メンテナンス用のコネクタを主基板25のポートに嵌合させると対応する接続端子同士が接触して外部のコンピュータと主基板25とが電気的に接続される。主基板25のポートのメンテナンス用の接続端子は処理部21と電気的に接続されており、これによりユーザは外部のコンピュータからデータ処理プログラムを書き換えることができる。
【0060】
ところで、
図1に示すように既に左右にCPUユニット11や別のI/Oユニット12などが連結されている状態のI/Oユニット12のデータ処理プログラムを書き換える場合、一端連結を外して上述したメンテナンス用のコネクタを主基板25のポートに接続するという方法も考えられる。しかしながら、そのようにすると連結を外さなければならないのでユーザの負担が大きくなる。そのため、連結を外さずにメンテナンス用のコネクタを主基板25に接続できることが望ましい。
【0061】
連結を外さずにメンテナンス用のコネクタを主基板25のポートに接続する方法としては、I/Oユニット12の筐体を構成している面のうち別のユニットと対向しない面に開口を設け、その開口から接続するという方法が考えられる。しかしながら、別のユニットと対向しない面であるからといって必ずしもユーザがアクセスし易いとは限らない。なぜなら、I/Oユニット12の背面に開口を形成したとすると、背面が工場などの施設の壁に密着するようにI/Oユニット12が配置された場合には、ユーザは主基板25のポートにアクセスできないからである。
【0062】
そこで、実施形態2では、表示部23が設けられている面(
図1参照)に開口を設ける。これは、一般に表示部23は視認性を確保するために外部から見易い面に設けられるので、表示部23が設けられている面に開口を形成すると、ユーザが主基板25のポートにアクセスし易くなるからである。
【0063】
しかしながら、スタッキング型のプログラマブルロジックコントローラでは拡張性を重視して各ユニットが小型化されている。また、一般にスタッキング型のプログラマブルロジックコントローラでは表示部23が設けられている面に入出力インタフェース部22の入出力コネクタ22Aが設けられることが多い。このため表示部23が設けられている面には開口を形成するための領域を確保することが困難である場合が多い。
【0064】
そこで、実施形態2では、
図4に示すように、表示部23が設けられる面24AにLED基板23Aを取り付けるための開口24Bを形成し、LED基板23Aを筐体24の外から取り付ける構造とする。そして、その開口24Bをメンテナンス用の開口としても利用する。以下、具体的に説明する。
【0065】
図4ではI/Oユニット12の筐体24が前方部分24Cと図示しない後方部分とに分離可能である場合を示している。前方部分24CにはLED基板23Aのコネクタ23Cを挿入するための開口24Bが形成されている。そして、LED基板23Aのコネクタ23Cが筐体24の前方から開口24Bに挿入されて主基板25のポート26に嵌合される。これにより主基板25とLED基板23Aとが電気的に接続される。そして、LEDを保護するための透明な保護カバー23DがLED基板23Aの前方から筐体24に取り付けられる。
【0066】
ここで、主基板25のポート26はLED基板23Aのコネクタ23Cが接続されるポートであるとともに、前述したメンテナンス用のコネクタが接続されるポートでもある。ただし、LED基板23Aのコネクタ23Cを接続した場合とメンテナンス用のコネクタを接続した場合とでは接触する接続端子が異なる。
【0067】
図5を参照して、LED基板23Aのコネクタ23Cの接続端子、及び、主基板25のポート26の接続端子について説明する。ここで、LEDを点灯させる方式としては、複数のLEDに個別に電流を供給してそれら複数のLEDを同時に点灯可能な直接点灯式、及び、複数のLEDを時分割で点灯させることにより、残像によってそれら複数のLEDが同時に点灯しているように見せかける走査式が知られている。
図5では直接点灯式によって10個のLEDを点灯させる場合を示している。
【0068】
10個のLEDを直接点灯式によって点灯させる場合は、LEDを駆動する駆動線が10本とアース線とが必要となる。なお、アース線の数は1本に限られず適宜に決定することができる。
図5ではアース線が2本である場合を示している。
【0069】
上述した構成の場合、主基板25のポート26には接続端子が12個あればよいことになる。しかしながら、本実施形態では
図5に示すように主基板25のポート26に18個の接続端子が設けられている。つまり、主基板25のポート26には、LED基板23Aのコネクタ23Cを嵌合させた状態では利用されない接続端子26Aが6個設けられている。これら6個の接続端子26Aが前述したメンテナンス用の接続端子である。
【0070】
主基板25のポート26の接続端子のうちLED基板23Aのコネクタ23Cが嵌合された状態で利用される接続端子23Bは表示端子部の一例である。また、主基板25のポート26の6個のメンテナンス用の接続端子26Aは通信端子部の一例である。
【0071】
次に、
図6を参照して、メンテナンス用のコネクタの接続端子について説明する。メンテナンス用のコネクタ40の形状はLED基板23Aのコネクタ23Cと同形状であるが、設けられている接続端子は
図6に示すように6個だけである。メンテナンス用のコネクタ40を主基板25のポート26に嵌合させると、メンテナンス用のコネクタ40の6個の接続端子と主基板25のポート26の6個のメンテナンス用の接続端子26Aとが接触する。これによりデータ処理プログラムを書き換えることができる。
【0072】
以上説明した実施形態2に係るI/Oユニット12によると、筐体24の表示部23が設けられている面に、メンテナンス用のコネクタ40を主基板25のポート26に嵌合するための開口24Bが形成されているので、表示部23が設けられている面とは異なる面に開口24Bを形成する場合に比べ、ユーザがデータ処理プログラムを書き換える作業を行い易くなる。
【0073】
更に、I/Oユニット12によると、メンテナンス用のコネクタ40を主基板25に接続するための開口とLED基板23Aを主基板25に接続するための開口とを共通化することができる。これにより、メンテナンス用のコネクタを主基板25に接続するための開口とLED基板23Aを主基板25に接続するための開口とを別々に設ける場合に比べ、I/Oユニット12を小型化することができる。
【0074】
更に、I/Oユニット12によると、LED基板23Aを筐体24の外から取り付ける構造としたので、I/Oユニット12が連結されていてもLED基板23Aを外すことによって開口24Bを露出させることができる。これにより、I/Oユニット12の連結を外さずにデータ処理プログラムを書き換えることができる。
【0075】
更に、I/Oユニット12によると、LED基板23Aのコネクタ23Cとメンテナンス用のコネクタ40とが同形状であるので、LED基板23Aのコネクタ23Cを流用してメンテナンス用のコネクタ40を製造することができる。これによりメンテナンス用のコネクタ40の製造コストを抑制できる。
【0076】
<実施形態3>
次に、実施形態3を
図7によって説明する。
上記実施形態ではLED基板23Aのコネクタ23Cの接続端子とメンテナンス用のコネクタ40の接続端子とが主基板25のポート26の互いに異なる接続端子に接続される場合を例に説明した。これに対し、通信端子部と表示端子部とを共通の端子部として構成し、LED基板23Aのコネクタ23Cの接続端子とメンテナンス用のコネクタ40の接続端子とが主基板25のポート26の同じ接続端子に接続されてもよい。
【0077】
具体的には例えば、
図7に示すようにI/Oユニット12に切り替えスイッチ50を設けてもよい。そして、例えば切り替えスイッチ50がオンのときは主基板25のポート26の接続端子(共通の端子部)と処理部21に設けられているLED制御用の端子群とが電気的に接続され、切り替えスイッチ50がオフのときは主基板25のポート26の接続端子(共通の端子部)と処理部21に設けられているデータ処理プログラムを書き換えるための信号が送受信される端子群とが接続されるようにしてもよい。
【0078】
以上説明した実施形態3に係るI/Oユニット12によると、実施形態2に示すように通信端子部26Aと表示端子部23Bとを別々の端子部とする場合に比べて主基板25のポート26の接続端子の数を減らすことができるので、LED基板23Aのコネクタ23Cやメンテナンス用のコネクタ40を小さくすることができる。これにより開口24Bをより小さくすることができるので、通信端子部26Aと表示端子部23Bとを別々の端子部とする場合に比べ、I/Oユニット12を小型化することができる。
【0079】
<他の実施形態>
上記記述及び図面によって説明した実施形態に限定されるものではなく、例えば次のような実施形態も技術的範囲に含まれる。
【0080】
(1)上記実施形態2ではLEDを点灯させる方式として直接点灯式を例に説明した。これに対し、前述したようにLEDを点灯させる方式は走査式であってもよい。
図8では8個のLEDを4個ずつ二つの組に分け、組毎に4個のLEDを1/4デューティで点灯させることによって時分割で点灯させる場合を示している。
図8に示す例では各LEDを駆動する駆動線が8本、アース線が4本である。なお、LEDの数やアース線の数は適宜に決定することができる。
【0081】
実施形態2の場合と同様に主基板25のポート26の接続端子の数を18とした場合、
図8に示す例でも6個の接続端子が余るので、それら6個の接続端子をメンテナンス用の接続端子として用いることができる。
【0082】
(2)上記実施形態では処理部21がCPU、EEPROM、及び、RAMによって構成されている場合を例に説明した。これに対し、処理部21はFPGAであってもよい。FPGAを用いると、CPUを用いる場合に比べて処理をより高速に実行することができる。また、処理部21はCPLD(Complex Programmable Logic Device)であってもよい。
【0083】
(3)上記実施形態では、I/Oユニット12の処理部21は、S201において、外部の機器から入力されたデータX3a及びX3bを用いて演算を実行する場合を例に説明した。これに対し、処理部21はバスコントロールユニット20を介してCPUユニット11から受信したデータと入出力インタフェース部22を介して外部の機器から入力されたデータとを処理し、入出力インタフェース部22を介して外部の機器に処理結果を出力してもよい。
【0084】
具体的には例えば、CPUユニット11はI/Oユニット30から受信したデータをI/Oユニット12に送信し、I/Oユニット12はCPUユニット11がI/Oユニット30から受信したデータと入出力インタフェース部22を介して外部の機器から入力されたデータとを処理してもよい。このようにすると、I/Oユニット12は、CPUユニット11がI/Oユニット30から受信したデータを、外部の機器からI/Oユニット12に入力されたデータの処理に反映することができる。これにより、I/Oユニット12はI/Oユニット30に接続されている外部の装置とI/Oユニット12に接続されている外部の装置とを連携させて制御することができる。
【0085】
このように、バスコントロールユニット20を介してCPUユニット11から受信したデータと入出力インタフェース部22を介して外部の機器から入力されたデータとを処理するようにすると、CPUユニット11から受信したデータを処理できない場合に比べ、より多様な処理を実行することができる。
【0086】
(4)上記実施形態ではCPUユニット11は演算処理(S101)においていずれのI/Oユニット30についても同じ演算を実行する場合を例に説明した。これに対し、CPUユニット11が行う演算はI/Oユニット30ごとに異なるものであってもよい。
【0087】
また、上記実施形態ではI/Oユニット12はS201において演算処理(S101)で実行される演算に相当する演算を実行する場合を例に説明した。これに対し、I/Oユニット12は演算処理(S101)で実行される演算とは異なる演算を行ってもよい。
【0088】
(5)上記実施形態ではI/Oユニット12に記憶されているデータ処理プログラムを書き換えるためにメンテナンス用のコネクタ40を主基板25のポート26に接続する場合を例に説明した。これに対し、メンテナンス用のコネクタ40はI/Oユニット12から各種の情報を得るためなどの目的でポート26に接続されてもよい。
【0089】
(6)上記実施形態ではスタッキング型のプログラマブルロジックコントローラ1を例に説明した。これに対し、プログラマブルロジックコントローラはバックプレーン型であってもよい。バックプレーン型はバックプレーンと呼ばれる長板状の部材に制御バスを設け、CPUユニット11やI/Oユニット12をそれぞれバックプレーンに接続することによって連結するものである。
【0090】
(7)上記実施形態2に記載した技術は、例えばCPUユニット11が書き換え可能なデータ処理手順に基づいてデータを処理する処理部や表示部を備えている場合には、CPUユニット11に適用することもできる。また、CPUユニット11から各種の情報を得るためなどの目的でメンテナンス用のコネクタをCPUユニット11に接続する場合には、CPUユニット11に記憶されているデータ処理手順は書き換え可能でなくてもよい。すなわち、実施形態2に記載した技術は次のような発明として把握することもできる。
【0091】
[請求項A]
プログラマブルロジックコントローラを構成するユニットであって、
筐体と、
前記筐体に設けられている表示部と、
前記筐体内に設けられ、外部のコネクタが接続される通信端子部と、
を備え、
前記筐体の前記表示部が設けられている面に、前記外部のコネクタを前記通信端子部に接続するための開口が形成されている、ユニット。
【0092】
一般に表示部は視認性を確保するために外部から見易い面に設けられる。このため表示部が設けられている面に開口を形成すると、ユーザは通信端子部にアクセスし易くなる。このため上記ユニットによると、表示部が設けられている面とは異なる面に開口を形成する場合に比べ、外部のコネクタを接続する作業を行い易くなる。なお、ここでいうユニットにはCPUユニット11もI/Oユニット12も含まれる。
【0093】
[請求項B]
請求項Aに記載のユニットであって、
書き換え可能に記憶しているデータ処理手順に基づいてデータを処理する処理部を備え、
前記通信端子部は、前記データ処理手順を書き換えるための外部のコネクタが接続される、ユニット。
【0094】
上記ユニットによると、処理部に記憶されているデータ処理手順を書き換えるための外部のコネクタを接続するための作業を行い易くなる。実施形態1に記載の第2のデータ処理手順はデータ処理手順の一例である。
【0095】
[請求項C]
請求項A又は請求項Bに記載のユニットであって、
前記表示部は、光源部と、前記筐体内に設けられ前記光源部が接続される表示端子部とを有し、前記光源部は前記筐体の外から前記開口を介して前記表示端子部に接続される、ユニット。
【0096】
上記ユニットによると、外部のコネクタを通信端子部に接続するための開口と、光源部を表示端子部に接続するための開口とを共通化することができる。これにより、外部のコネクタを通信端子部に接続するための開口と光源部を表示端子部に接続するための開口とを別々に設ける場合に比べ、ユニットを小型化することができる。
【0097】
[請求項D]
請求項Cに記載のユニットであって、
前記通信端子部と前記表示端子部とは共通の端子部として構成されており、
前記端子部を前記通信端子部として機能させるか又は前記表示端子部として機能させるかを切り替える切り替えスイッチを備える、入出力ユニット。
【0098】
上記ユニットによると、通信端子部と表示端子部とを別々の端子部とする場合に比べて開口を小さくすることができるので、通信端子部と表示端子部とを別々の端子部とする場合に比べ、ユニットを小型化することができる。