以下に、本発明の実施の形態に係る機能ユニット及び制御装置を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態1.
図1は、実施の形態1に係る制御装置を備える制御システムの構成を示す図である。制御システム1は、FA(Factory Automation)分野の設備を構成するものであり、図1に示すように、設備に設置される複数の機器2,3と、複数の機器2,3に接続した制御装置5と、制御装置5に接続したコンピュータ6と、を備える。実施の形態1において、制御システム1は、機器2,3を二つ備えるが、二つに限定されない。実施の形態1において、機器2は、設備に設置される流量、圧力、濃度、又は温度を検出するセンサであり、機器3は、設備に設置されるスイッチ、調整弁、電磁弁、モータ、又はポンプである動作を実施する駆動機器である。
コンピュータ6は、制御装置5で実行される制御プログラムを作成して、制御装置5に送信する。制御装置5は、制御プログラムを実施することにより、機器2,3を制御する。実施の形態1において、制御装置5は、プログラマブルコントローラ(programmable controllers(PLC))である。プログラマブルコントローラは、JIS(日本工業規格) B 3502:2011により規定されたものである。
実施の形態1に係るコンピュータ6は、コンピュータプログラムを実施するものであって、図1に示すように、CPU(Central Processing Unit)61と、RAM(Random Access Memory)62と、ROM(Read Only Memory)63と、記憶装置64と、入力装置65と、表示装置66と、通信インタフェース67と、を含む。CPU61、RAM62、ROM63、記憶装置64、入力装置65、表示装置66及び通信インタフェース67は、バスBを介して相互に接続されている。
CPU61は、RAM62を作業領域として使用しながら、ROM63及び記憶装置64に記憶されているプログラムを実施する。ROM63に記憶されているプログラムは、BIOS(Basic Input/Output System)又はUEFI(Unified Extensible Firmware Interface)であるが、ROM63に記憶されているプログラムは、BIOS又はUEFIに限定されない。実施の形態1において、記憶装置64に記憶されているプログラムは、オペレーティングシステムプログラム及びエンジニアリングツールプログラムであるが、記憶装置64に記憶されているプログラムは、オペレーティングシステムプログラム及びエンジニアリングツールプログラムに限定されない。実施の形態1において、記憶装置64は、SSD又はHDDであるが、記憶装置64は、SSD又はHDDに限定されない。
入力装置65は、ユーザからの操作入力を受け付ける。実施の形態1において、入力装置65は、キーボード又はマウスであるが、キーボード又はマウスに限定されない。表示装置66は、文字及び画像を表示する。実施の形態1において、表示装置66は、液晶表示装置であるが、液晶表示装置に限定されない。通信インタフェース67は、制御装置5と通信を行う。
図2は、実施の形態1に係る制御装置のハードウェア構成を示す図である。制御装置5は、図2に示すように、制御プログラムを処理、実施する処理ユニットであるCPUユニット10と、センサである機器2に接続しかつ機器2の検出結果を加工する機能処理を実施する入力系ユニット20と、を備える。また、制御装置5は、駆動機器である機器3に接続しかつ機器3に制御信号を送信する出力系ユニット30と、CPUユニット10、入力系ユニット20、及び出力系ユニット30を相互に接続するバックプレーン40と、を備える。
バックプレーン40は、平板状である。バックプレーン40の表面部には、CPUユニット10、入力系ユニット20及び出力系ユニット30を装着する図示しないスロットが複数設けられている。バックプレーン40は、各スロットにCPUユニット10、入力系ユニット20、及び出力系ユニット30のいずれかを装着する。バックプレーン40におけるCPUユニット10、入力系ユニット20及び出力系ユニット30の装着位置は、適宜選択することができる。CPUユニット10、入力系ユニット20及び出力系ユニット30のいずれも装着されないスロットが、バックプレーン40に存在しても、制御装置5は動作可能である。
バックプレーン40は、回路基板41と、回路基板41に実装された制御回路42とを備える。制御回路42は、CPUユニット10、入力系ユニット20及び出力系ユニット30の同期制御を可能とする図5に示す一定の同期周期Tでトリガ信号TSを伝達する回路により構成された同期クロック生成部42aと、CPUユニット10、入力系ユニット20及び出力系ユニット30間でデータ送受信を行うための回路により構成された通信中継制御部42bとを備える。
同期クロック生成部42aは、電気信号線SによりCPUユニット10、入力系ユニット20及び出力系ユニット30に接続する。同期クロック生成部42aは、同期制御を可能とするためのトリガ信号TSを一定の同期周期Tで生成し、生成したトリガ信号TSを同期周期TでCPUユニット10、入力系ユニット20及び出力系ユニット30に同時に送信する。
通信中継制御部42bは、電気信号線Sと別に設けられるバス通信線L1,L2,L3によりCPUユニット10、入力系ユニット20及び出力系ユニット30に接続する。通信中継制御部42bは、CPUユニット10、入力系ユニット20及び出力系ユニット30間のデータ送受信を中継する。
実施の形態1において、入力系ユニット20は、機能ユニットであり、出力系ユニット30は、他のユニットである。次に、CPUユニット10、入力系ユニット20及び出力系ユニット30は、構成が同等であるので、図2を参照して、CPUユニット10、入力系ユニット20及び出力系ユニット30の共通する構成を説明する。CPUユニット10、入力系ユニット20及び出力系ユニット30は、図2に示すように、回路基板50と、回路基板50に実装された通信用プロセッサ51と、回路基板50に実装された機能処理部である機能処理ユニット52とを備える。
CPUユニット10、入力系ユニット20及び出力系ユニット30の通信用プロセッサ51は、バス通信線L1,L2,L3及び通信中継制御部42bを介して、互いに接続される。通信用プロセッサ51は、CPUユニット10、入力系ユニット20及び出力系ユニット30間でデータ送受信を行う。また、通信用プロセッサ51は、電気信号線Sを介して同期クロック生成部42aに接続している。
実施の形態1において、通信用プロセッサ51は、特許第5301041号公報に記載されている技術と同様に、カウンタ(Counter)により構成されたカウンタ制御部51aを備える。カウンタ制御部51aは、電気信号線Sを介してトリガ信号TSを受信すると、カウンタの値をゼロにリセットする回路を内蔵する。実施の形態1において、カウンタ制御部51aは、トリガ信号TSが立ち上がりのタイミングで、カウンタの値をゼロにリセットするが、トリガ信号TSの立下りのタイミングで、カウンタの値をゼロにリセットしても良い。
通信用プロセッサ51は、カウンタ制御部51aがカウントするカウンタの値が任意の値になると、割込み信号を生成し、生成した割込み信号を機能処理ユニット52に送信する。任意の値は、CPUユニット10の機能処理ユニット52により設定される。割込み信号は、機能処理ユニット52にコンピュータプログラムを実施させるための信号である。CPUユニット10、入力系ユニット20及び出力系ユニット30の通信用プロセッサ51が割込み信号を生成する任意の値は、同じである。実施の形態1において、任意の値は、「ゼロ」であるが、「ゼロ」に限定されない。実施の形態1において、通信用プロセッサ51は、特許第5301041号公報に記載されている技術と同様に、カウンタ制御部51aがカウントするカウンタの値は任意の値になると割込み信号を生成するが、この技術に限定されない。
CPUユニット10、入力系ユニット20及び出力系ユニット30の通信用プロセッサ51の割込み信号を生成するカウンタの任意の値を同じにし、同期クロック生成部42aが同時にトリガ信号TSをCPUユニット10、入力系ユニット20及び出力系ユニット30の通信用プロセッサ51に送信することで、CPUユニット10、入力系ユニット20及び出力系ユニット30の機能処理ユニット52は、同期してコンピュータプログラムを実施する。入力系ユニット20は、通信用プロセッサ51により機能処理ユニット52が同期されることにより、入力系ユニット20の外部から一定の同期周期Tで入力するトリガ信号TSに基づいて、出力系ユニット30と同期する。また、出力系ユニット30は、通信用プロセッサ51により機能処理ユニット52が同期されることにより、出力系ユニット30の外部から一定の同期周期Tで入力するトリガ信号TSに基づいて、入力系ユニット20と同期する。実施の形態1において、通信用プロセッサ51は、ASIC(Application Specific Integrated Circuit)又はFPGA(Field-Programmable Gate Array)により構成されるが、ASIC又はFPGAに限定されない。
機能処理ユニット52は、コンピュータプログラムを記憶するMPU(Micro-processing unit)52aと、ハードウェア処理を実施する内部制御用プロセッサ52bとを備える。MPU52aは、内部制御用プロセッサ52bと連携して、割込み信号を受信すると、記憶したコンピュータプログラムを実施する。入力系ユニット20の内部制御用プロセッサ52bは、機器2から入力した検出結果を加工する機能処理を実施し、機能処理により生成された処理結果をCPUユニット10、入力系ユニット20及び出力系ユニット30間で送受信するデータとする。出力系ユニット30の内部制御用プロセッサ52bは、CPUユニット10を介してコンピュータ6から入力した情報である処理対象を加工する機能処理を実施し、機能処理により生成した処理結果を機器3に制御信号として送信する。実施の形態1において、内部制御用プロセッサ52bは、ASIC又はFPGAにより構成されるが、ASIC又はFPGAに限定されない。
入力系ユニット20及び出力系ユニット30の機能処理ユニット52は、コンピュータプログラムを記憶するMPU52aと、ハードウェア処理を実施する内部制御用プロセッサ52bとを備えることで、内部制御用プロセッサ52bの機能処理をトリガ信号TSの同期周期Tよりも短い図5に示す制御周期T1で実施し、内部制御用プロセッサ52bの処理結果を生成することができる。実施の形態1において、入力系ユニット20及び出力系ユニット30の機能処理ユニット52は、通信用プロセッサ51により機能処理ユニット52が同期されることにより、外部から一定の同期周期Tで入力するトリガ信号TSに基づいて、トリガ信号TSの同期周期T内に、内部制御用プロセッサ52bの機能処理を繰り返し複数回実施して、処理結果を複数生成する。
実施の形態1において、入力系ユニット20及び出力系ユニット30の機能処理ユニット52は、カウンタ制御部51aがカウントするカウンタの値が「ゼロ」になると通信用プロセッサ51が送信した割込み信号を受信し、内部制御用プロセッサ52bが機能処理を実施する。このために、実施の形態1において、入力系ユニット20及び出力系ユニット30の機能処理ユニット52は、トリガ信号TSを起点に、機能処理を繰り返し実施する。また、実施の形態1において、制御周期をT1とし、入力系ユニット20及び出力系ユニット30の機能処理ユニット52が一同期周期T内で機能処理を実施する実施回数をNとすると、入力系ユニット20及び出力系ユニット30の機能処理ユニット52は、以下の式1を満たす。
T>T1×N・・・式1
以下、CPUユニット10、入力系ユニット20及び出力系ユニット30の各構成要素のうちCPUユニット10の構成要素であると特定できる構成要素の符号の末尾に(C)と示し、入力系ユニット20の構成要素であると特定できる構成要素の符号の末尾に(I)と示し、出力系ユニット30の構成要素であると特定できる構成要素の符号の末尾に(O)と示す。図3は、実施の形態1に係る制御装置の入力系ユニットのハードウェア構成を示す図である。
次に、図3を参照して、入力系ユニット20の図2において省略された構成を説明する。入力系ユニット20の通信用プロセッサ51(I)は、カウンタ制御部51a(I)に加え、割込み信号制御部51b(I)と、バス通信処理部51c(I)とを備える。割込み信号制御部51b(I)は、カウンタ制御部51a(I)と、機能処理ユニット52(I)に接続している。割込み信号制御部51b(I)は、カウンタ制御部51a(I)がカウントするカウンタの値を受信する。割込み信号制御部51b(I)は、カウンタ制御部51a(I)がカウントするカウンタの値がCPUユニット10の機能処理ユニット52により設定された任意の値になると割込み信号を生成して、機能処理ユニット52(I)に送信する。バス通信処理部51c(I)は、機能処理ユニット52(I)に接続している。バス通信処理部51c(I)は、CPUユニット10、入力系ユニット20及び出力系ユニット30間で必要なデータを送受信する。
入力系ユニット20は、回路基板50(I)と、通信用プロセッサ51(I)と、機能処理ユニット52(I)とに加え、図3に示すように、同期クロック生成部42aに接続した同期クロックインタフェース53(I)と、通信中継制御部42bに接続したバスインタフェース54(I)と、を備える。また、入力系ユニット20は、機能処理ユニット52(I)に接続した入力回路部55(I)と、機器2に接続した外部入出力インタフェース56(I)と、共用メモリ57(I)と、を備える。
同期クロックインタフェース53(I)は、電気信号線Sと、カウンタ制御部51a(I)とに接続している。同期クロックインタフェース53(I)は、同期クロック生成部42aが生成したトリガ信号TSを通信用プロセッサ51(I)のカウンタ制御部51a(I)に受信させる。バスインタフェース54(I)は、バス通信線L2と、バス通信処理部51c(I)とに接続している。
入力回路部55(I)は、機能処理ユニット52(I)の内部制御用プロセッサ52b(I)と接続している。入力回路部55(I)は、A/D(Analog/Digital)コンバータ又はデジタルI/O(Input/Output)により構成される。外部入出力インタフェース56(I)は、機器2と、入力回路部55(I)とに接続している。センサである機器2の検出結果は、外部入出力インタフェース56(I)を通して入力回路部55(I)に受信される。機器2の検出結果は、内部制御用プロセッサ52b(I)に受信されて、内部制御用プロセッサ52b(I)により機能処理が実施される。
共用メモリ57(I)は、データを記憶する記憶装置であり、入力系ユニット20の機能処理ユニット52(I)のMPU52a(I)、CPUユニット10のMPU52a(C)及び出力系ユニット30のMPU52a(O)がアクセス可能である。図4は、実施の形態1に係る制御装置の入力系ユニットの共用メモリの記憶領域を示す図である。共用メモリ57(I)は、機能処理ユニット52(I)と、通信用プロセッサ51(I)のバス通信処理部51c(I)とに接続している。実施の形態1において、共用メモリ57(I)は、RAMにより構成されているが、RAMに限定されない。
共用メモリ57(I)は、図4に示すように、トリガ制御回数Nを記憶する設定機能部であるトリガ制御回数記憶領域57a(I)と、機能処理ユニット52(I)の内部制御用プロセッサ52b(I)の処理結果を記憶する処理結果記憶領域57b(I)とを備える。トリガ制御回数Nは、同期周期T内の機能処理ユニット52(I)の機能処理を繰り返し実施する実施回数である。実施の形態1において、トリガ制御回数記憶領域57a(I)は、MPU52a(I)内に記憶されたコンピュータプログラムからトリガ制御回数Nが書き込まれる。トリガ制御回数記憶領域57a(I)は、MPU52a(I)内に記憶されたコンピュータプログラムから書き込まれたトリガ制御回数Nが、機能処理ユニット52(I)のMPU52a(I)により参照される。トリガ制御回数記憶領域57a(I)は、トリガ制御回数Nを記憶することで、機能処理ユニット52(I)が一同期周期T内で機能処理を実施する実施回数であるトリガ制御回数Nを設定する。実施の形態1において、トリガ制御回数Nは、MPU52a(I)内に記憶されたコンピュータプログラムから書き込まれたが、トリガ制御回数記憶領域57a(I)を公開しておき、CPUユニット10を介してコンピュータ6から書き込まれても良い。
実施の形態1において、処理結果記憶領域57b(I)は、機能処理ユニット52(I)のMPU52a(I)により内部制御用プロセッサ52b(I)の処理結果が書き込まれるが、内部制御用プロセッサ52b(I)により直接処理結果が書き込まれても良い。処理結果記憶領域57b(I)は、内部制御用プロセッサ52b(I)が処理した順にトリガ制御回数N分の処理結果が書き込まれる。実施の形態1において、処理結果記憶領域57b(I)は、次のトリガ信号TSを受信したタイミングで記憶したトリガ制御回数N分の処理結果がCPUユニット10のMPU52a(C)により取得されるが、入力系ユニット20は、次のトリガ信号TSを受信したタイミングで共用メモリ57(I)に記憶したトリガ制御回数N分の処理結果をCPUユニット10のMPU52a(C)に送信しても良い。なお、処理結果記憶領域57b(I)のアドレスは、予めCPUユニット10内に設定されている。CPUユニット10は、予め設定されたアドレス領域から値を読み出すことでトリガ制御回数N分の処理結果を読み出している。
共用メモリ57(I)は、トリガ制御回数N分の処理結果がMPU52a(I)により書き込まれ、次のトリガ信号TSを受信したタイミングで記憶したトリガ制御回数N分の処理結果がCPUユニット10のMPU52a(C)により取得されることで、トリガ信号TSに基づいて、機能処理ユニット52(I)の複数の処理結果を纏めて入力系ユニット20の外部に出力させる出力制御部として機能する。実施の形態1において、複数の処理結果を纏めるとは、トリガ信号TSが入力して次のトリガ信号TSが入力するまでの同期周期T内に、複数の処理結果を外部であるCPUユニット10が取得可能な状態にすること、又は、複数の処理結果を外部であるCPUユニット10に送信することをいう。実施の形態1において、共用メモリ57(I)の処理結果記憶領域57b(I)は、記憶した処理結果がCPUユニット10のMPU52a(C)により取得されると、CPUユニット10のMPU52a(C)によりクリアされて情報を記憶していない空きの状態となる。
また、実施の形態1に係る制御装置5において、CPUユニット10は、図3に示す入力系ユニット20とは、入力回路部55(I)及び外部入出力インタフェース56(I)を除いた以外は同一の構成である。実施の形態1に係る制御装置5において、出力系ユニット30は、図3に示す入力系ユニット20とは、入力回路部55(I)の代わりにD/A(Digital/Analog)コンバータ又はデジタルI/Oにより構成される出力回路部を備える以外は同一の構成である。
次に、実施の形態1に係る入力系ユニット20及び制御装置5の動作の一例を図面に基づいて説明する。図5は、実施の形態1に係る制御装置の動作の一例を示すタイムチャートである。図6は、実施の形態1に係る制御装置の入力系ユニットの機能処理ユニットの処理の一例を示すフローチャートである。
実施の形態1に係る制御装置5には、図5に示すように、一定の同期周期Tでバックプレーン40の同期クロック生成部42aからトリガ信号TSが入力する。トリガ信号TSが入力すると、入力系ユニット20の機能処理ユニット52(I)は、トリガ信号TSの立ち上がりのタイミングで割込み信号を受信する。内部制御用プロセッサ52b(I)は、制御周期T1内で機器2の検出結果に機能処理を実施し、MPU52a(I)が、処理結果を共用メモリ57(I)の処理結果記憶領域57b(I)に書き込む(ステップST1)。機能処理ユニット52(I)のMPU52a(I)は、共用メモリ57(I)のトリガ制御回数記憶領域57a(I)に記憶されたトリガ制御回数Nを参照し、トリガ制御回数N分の機能処理が終了したか否かを判定する(ステップST2)。
MPU52a(I)が、トリガ制御回数N分の機能処理が終了していないと判定する(ステップST2:No)と、ステップST1に戻る。MPU52a(I)が、トリガ制御回数N分の機能処理が終了したと判定する(ステップST2:Yes)と、一同期周期T分の機能処理を終了する。機能処理ユニット52(I)は、トリガ制御回数N分の機能処理が終了していないと判定する(ステップST2:No)と、ステップST1を繰り返すことで、図5に示すように、トリガ制御回数N分の機能処理を実施し、トリガ制御回数N分の処理結果を共用メモリ57(I)の処理結果記憶領域57b(I)に書き込む。
制御装置5に次のトリガ信号TSが入力すると、図5に示すように、CPUユニット10は、共用メモリ57(I)の処理結果記憶領域57b(I)に記憶された処理結果を取得する。実施の形態1において、CPUユニット10は、取得した複数の処理結果に日時を示す情報を対応付けてコンピュータ6の記憶装置64に蓄積するが、CPUユニット10の取得した処理結果の処理はこれに限定されない。実施の形態1において、CPUユニット10は、CPUユニット10により取得されることにより、入力系ユニット20の共用メモリ57(I)が纏めて出力させた複数の処理結果を処理する処理ユニットである。また、制御装置5に次のトリガ信号TSが入力すると、図5に示すように、入力系ユニット20は、前回のトリガ信号TSが入力した際と同様に、機能処理を実施する。
図7は、実施の形態1に係る制御装置の入力系ユニットのトリガ制御回数の設定画面を示す図である。実施の形態1に係る制御装置5の入力系ユニット20のトリガ制御回数を設定する際には、ユーザは、コンピュータ6の入力装置65を操作し、図7に示すトリガ制御回数設定画面100を表示装置66に表示する。トリガ制御回数設定画面100は、図7に示すように、トリガ制御回数Nを設定する対象のユニット名である「入力系ユニット」を示す対象ユニット表示領域101と、「トリガ制御回数」を設定するトリガ制御回数設定領域102とを少なくとも備える。ユーザは入力装置65を操作して、トリガ制御回数設定領域102にトリガ制御回数Nを入力する入力動作を行い、入力したトリガ制御回数Nを決定する決定動作を行うと、決定されたトリガ制御回数Nは、コンピュータ6の通信インタフェース67を通してCPUユニット10に送信され、CPUユニット10の通信用プロセッサ51、バス通信線L1、バックプレーン40の通信中継制御部42b、バス通信線L2、入力系ユニット20の通信用プロセッサ51(I)に順に送信され、入力系ユニット20の共用メモリ57(I)のトリガ制御回数記憶領域57a(I)に書き込まれる。
実施の形態1に係る入力系ユニット20及び制御装置5によれば、トリガ信号TSに基づいて、機能処理ユニット52(I)がトリガ信号TSの同期周期Tよりも短い制御周期T1で機能処理を実施する。また、入力系ユニット20及び制御装置5によれば、共用メモリ57(I)に機能処理ユニット52(I)の処理結果が書き込まれて、処理結果を纏めて出力可能な状態にする。このため、入力系ユニット20及び制御装置5は、一つの同期周期T内で機能処理ユニット52(I)が複数回機能処理を実施することができるとともに、共用メモリ57(I)に処理結果が書き込まれるので、一つの同期周期T内で生成された処理結果を外部で利用可能な状態とすることができる。その結果、入力系ユニット20及び制御装置5は、入力系ユニット20が有する高速機能処理性能を活かすことを可能とすることができる。また、実施の形態1に係る入力系ユニット20及び制御装置5によれば、センサである機器2の検出結果を、同期周期Tよりも短い周期で取得することができる。
また、実施の形態1に係る入力系ユニット20及び制御装置5によれば、機能処理ユニット52(I)がトリガ信号TSを起点に機能処理を繰り返し実施するので、一つの同期周期T内で極力多くの機能処理を実施することができる。さらに、実施の形態1に係る入力系ユニット20及び制御装置5によれば、機能処理ユニット52(I)がトリガ信号TSを起点に機能処理を繰り返し実施するので、システム内に入力系ユニット20が複数配置された場合に、内部制御用プロセッサ52b(I)によって発生する制御周期T1のばらつきを抑制することもできる。よって、システム内に複数配置された場合に、入力系ユニット20は、PLCシステムで決められた同期周期Tをさらに極小化した周期で同期し、永久的に制御を行うことが可能となる。
また、実施の形態1に係る入力系ユニット20及び制御装置5によれば、共用メモリ57(I)のトリガ制御回数記憶領域57a(I)にトリガ制御回数Nを設定することができるので、同期周期T内の機能処理を実施する回数を変更することができる。実施の形態1に係る入力系ユニット20及び制御装置5は、トリガ制御回数NがMPU52a(I)内に記憶されたコンピュータプログラムから書き込まれる。よって、実施の形態1に係る入力系ユニット20及び制御装置5は、将来同期周期Tが短縮されても、内部制御用プロセッサ52b(I)を改変することなく柔軟に対応できる。また、入力系ユニット20及び制御装置5は、CPUユニット10を介してコンピュータ6からトリガ制御回数Nが書き込まれる場合には、同期周期Tよりも極小化された機能処理の制御周期をユーザが自由に設定することが可能となる。ただし、機能処理の制御周期の最短周期は、制御周期T1となる。
実施の形態1に係る入力系ユニット20及び制御装置5によれば、式1を満たすので、機能処理ユニット52(I)が実施する機能処理が複数の同期周期Tに亘って実施されることを抑制することができる。
実施の形態2.
次に、本発明の実施の形態2に係る制御装置5を図面に基づいて説明する。図8は、実施の形態2に係る制御装置の出力系ユニットのハードウェア構成を示す図である。図9は、実施の形態2に係る制御装置の出力系ユニットの共用メモリの記憶領域を示す図である。図8及び図9において、実施の形態1と同一部分には、同一符号を付して説明を省略する。
実施の形態2に係る制御装置5において、出力系ユニット30は、機能ユニットであり、入力系ユニット20は、他のユニットである。出力系ユニット30は、実施の形態1の入力系ユニット20の入力回路部55(I)の代わりに出力回路部55−2(O)を備え、外部入出力インタフェース56(O)が機器3に接続している。出力回路部55−2(O)は、D/Aコンバータ又はデジタルI/Oにより構成される。
出力系ユニット30の共用メモリ57(O)は、図9に示すように、トリガ制御回数Nを記憶する設定機能部であるトリガ制御回数記憶領域57a(O)と、機能処理ユニット52(O)の内部制御用プロセッサ52b(O)の機能処理の処理対象を記憶する処理対象記憶領域57c(O)とを備える。トリガ制御回数記憶領域57a(O)は、実施の形態1に係る入力系ユニット20の共用メモリ57(I)のトリガ制御回数記憶領域57a(I)と同一の構成である。
処理対象記憶領域57c(O)は、CPUユニット10を介してコンピュータ6により機能処理ユニット52(O)の機能処理により加工される処理対象が書き込まれる。処理対象は、処理対象記憶領域57c(O)に機能処理される順に書き込まれる。処理対象記憶領域57c(O)には、トリガ制御回数N分の処理対象が、内部制御用プロセッサ52b(O)の処理順に書き込まれる。処理対象記憶領域57c(O)は、記憶したトリガ制御回数N分の処理対象が機能処理ユニット52(O)のMPU52a(O)により取得される。なお、処理対象記憶領域57c(O)のアドレスは、予めCPUユニット10内に設定されている。CPUユニット10は、予め設定されたアドレス領域に値を書き込むことでトリガ制御回数N分の処理対象を書き込む。共用メモリ57(O)は、トリガ制御回数N分の処理対象がCPUユニット10を介してコンピュータ6から書き込まれることで、トリガ信号TSに基づいて、機能処理ユニット52(O)の複数の処理対象が出力系ユニット30の外部から纏めて入力される入力制御部として機能する。このため、実施の形態2において、CPUユニット10は、トリガ信号TSに基づいて、共用メモリ57に処理対象を纏めて入力する処理ユニットである。なお、実施の形態2において、複数の処理対象が纏めて入力されるとは、トリガ信号TSが入力して次のトリガ信号TSが入力するまでの同期周期T内に、外部であるCPUユニット10が複数の処理対象を纏めて書き込むことをいう。
出力系ユニット30の機能処理ユニット52(O)の内部制御用プロセッサ52b(O)は、共用メモリ57(O)の処理対象記憶領域57c(O)に記憶された処理対象を加工する機能処理を実施する。出力系ユニット30の機能処理ユニット52(O)は、機能処理により生成される処理結果を出力回路部55−2(O)により受信された後、外部入出力インタフェース56(O)を通して機器3に制御信号として送信する。
機能処理ユニット52(O)は、コンピュータプログラムを記憶するMPU52a(O)と、ハードウェア処理を実施する内部制御用プロセッサ52b(O)とを備えることで、処理対象の機能処理をトリガ信号TSの同期周期Tよりも短い制御周期T1で実施し、機器3の制御信号を生成することができる。機能処理ユニット52(O)は、トリガ信号TSの一同期周期Tの間に、内部制御用プロセッサ52b(O)が処理対象の機能処理を繰り返し複数回実施して、制御信号を複数回生成し、機器3に送信する。
次に、実施の形態2に係る出力系ユニット30及び制御装置5の動作の一例を図面に基づいて説明する。図10は、実施の形態2に係る制御装置の動作の一例を示すタイムチャートである。図11は、実施の形態2に係る制御装置の出力系ユニットの機能処理ユニットの処理の一例を示すフローチャートである。
実施の形態2に係る制御装置5には、図10に示すように、一定の同期周期Tでバックプレーン40の同期クロック生成部42aからトリガ信号TSが入力する。トリガ信号TSが入力すると、CPUユニット10は、コンピュータ6から入力された処理対象を出力系ユニット30の共用メモリ57(O)の処理対象記憶領域57c(O)に書き込む。
制御装置5に、次のトリガ信号TSが入力すると、出力系ユニット30の機能処理ユニット52(O)は、トリガ信号TSの立ち上がりのタイミングで通信用プロセッサ51(O)から割込み信号を受信する。機能処理ユニット52(O)のMPU52a(O)は、共用メモリ57(O)の処理対象記憶領域57c(O)から複数の処理対象を取得する(ステップST1−2)。実施の形態2において、共用メモリ57(O)の処理対象記憶領域57c(O)は、記憶した処理結果が機能処理ユニット52(O)のMPU52a(O)により取得されると、機能処理ユニット52(O)のMPU52a(O)によりクリアされて情報を記憶していない空きの状態となる。
出力系ユニット30の機能処理ユニット52(O)の内部制御用プロセッサ52b(O)が処理対象の機能処理を実施し、図10に示すように、制御信号を機器3に出力する(ステップST2−2)。機能処理ユニット52(O)のMPU52a(O)は、共用メモリ57(O)のトリガ制御回数記憶領域57a(O)に記憶されたトリガ制御回数Nを参照し、トリガ制御回数N分の機能処理が終了したか否かを判定する(ステップST3−2)。
MPU52a(O)が、トリガ制御回数N分の機能処理が終了していないと判定する(ステップST3−2:No)と、ステップST2−2に戻る。MPU52a(O)が、トリガ制御回数N分の機能処理が終了したと判定する(ステップST3−2:Yes)と、一同期周期T分の機能処理を終了する。機能処理ユニット52(O)は、トリガ制御回数N分の機能処理が終了していないと判定する(ステップST3−2:No)と、ステップST2−2を繰り返すことで、図10に示すように、トリガ制御回数N分の機能処理を実施し、制御信号を機器3に出力する。
また、出力系ユニット30の機能処理ユニット52(O)のMPU52a(O)が、ステップST1−2において、共用メモリ57(O)の処理対象記憶領域57c(O)から複数の処理対象を取得した後、CPUユニット10は、コンピュータ6から入力された処理対象を出力系ユニット30の共用メモリ57(O)の機能処理ユニット52(O)のMPU52a(O)によりクリアされて情報を記憶していない空きの状態の処理対象記憶領域57c(O)に書き込む。
また、実施の形態2に係る制御装置5の出力系ユニット30のトリガ制御回数Nは、実施の形態1と同様に設定される。
実施の形態2に係る出力系ユニット30及び制御装置5によれば、トリガ信号TSに基づいて、機能処理ユニット52(O)がトリガ信号TSの同期周期Tよりも短い制御周期T1で機能処理を実施する。また、出力系ユニット30及び制御装置5によれば、共用メモリ57(O)に機能処理ユニット52(O)の処理対象が外部から書き込まれて処理対象が纏めて入力する。このため、出力系ユニット30及び制御装置5は、一つの同期周期T内で機能処理ユニット52(O)が複数回機能処理を実施することができる。その結果、出力系ユニット30及び制御装置5は、出力系ユニット30が有する高速機能処理性能を活かすことを可能とすることができる。また、実施の形態2に係る出力系ユニット30及び制御装置5によれば、同期周期Tよりも短い周期で駆動機器である機器3に制御信号を送信することができる。
また、実施の形態2に係る出力系ユニット30及び制御装置5によれば、機能処理ユニット52(O)がトリガ信号TSを起点に機能処理を繰り返し実施するので、システム内に出力系ユニット30が複数配置された場合に、内部制御用プロセッサ52b(O)によって発生する制御周期T1のばらつきを抑制することもできる。よって、システム内に複数配置された場合に、出力系ユニット30は、PLCシステムで決められた同期周期Tをさらに極小化した周期で同期し、永久的に制御を行うことが可能となる。
実施の形態2に係る出力系ユニット30及び制御装置5は、トリガ制御回数NがMPU52a(O)内に記憶されたコンピュータプログラムから書き込まれるので、実施の形態1と同様に、将来同期周期Tが短縮されても、内部制御プロセッサ52b(O)を改変することなく柔軟に対応できる。また、出力系ユニット30及び制御装置5は、CPUユニット10を介してコンピュータ6からトリガ制御回数Nが書き込まれる場合には、同期周期Tよりも極小化された機能処理の制御周期をユーザが自由に設定することが可能となる。ただし、機能処理の制御周期の最短周期は、制御周期T1となる。
実施の形態3.
次に、本発明の実施の形態3に係る機能ユニット70を図面に基づいて説明する。図12は、実施の形態3に係る機能ユニットのハードウェア構成を示す図である。図13は、実施の形態3に係る機能ユニットの動作の一例を示すタイムチャートである。図12及び図13において、実施の形態1及び実施の形態2と同一部分には、同一符号を付して説明を省略する。
実施の形態3において、機能ユニット70は、実施の形態1及び実施の形態2に記載された入力系ユニット20又は出力系ユニット30である。機能ユニット70は、図12に示すように、トリガ信号TSを受信すると、トリガ信号TSの立ち上がりのタイミングで入力系ユニット20又は出力系ユニット30と同様の機能処理を実施する機能処理部である機能処理ユニット52を備える。機能ユニット70は、入力系ユニット20又は出力系ユニット30と同様のトリガ制御回数記憶領域57aを有する共用メモリ57を備える。機能ユニット70の通信用プロセッサ51は、コンピュータ6に接続している。
実施の形態3において、機能ユニット70は、ユーザがコンピュータ6を操作することにより入力したトリガ信号TSを受信すると、図13に示すように、トリガ制御回数記憶領域57aに書き込まれたトリガ制御回数N分、機能処理を実施する。即ち、機能ユニット70の機能処理ユニット52は、トリガ信号TSを起点に、機能処理をトリガ制御回数N分繰り返し実施する。実施の形態3において、機能ユニット70にコンピュータ6からトリガ信号TSを入力したが、これに限定されず、トリガ信号TSを機能ユニット70の外部から任意のタイミング、即ち、トリガ信号TSを非周期的に入力すれば良い。また、実施の形態3において、機能ユニット70は、トリガ信号TSの立ち上がりのタイミングで機能処理をトリガ制御回数N分繰り返し、その後、任意の処理を実施するが、任意の処理を実施しなくても良い。
実施の形態3に係る機能ユニット70によれば、実施の形態1及び実施の形態2と同様に、トリガ信号TSを起点に、機能処理ユニット52が機能処理を繰り返し実施するので、機能ユニット70が有する高速機能処理性能を活かすことを可能とすることができる。
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。