以下、本発明を実施するための形態について図面を用いて詳細に説明する。プログラム要素であるノードを複数組み合わせて所定の処理を行うプログラム処理装置において、所定の処理が、複数のノードの組み合わせと各ノードの処理とにより実現される場合に、従来は、複数のノードの組み合わせと各ノードの処理とをソフトウェアにて実装していた。本発明は、ソフトウェアにて実装していた両者を分離し、複数のノードの組み合わせをハードウェアにて実装し、各ノードの処理をソフトウェアにて実装することを特徴とする。実施例1では、プログラム処理装置が、複数のノードが組み合わされたハードウェアからノード接続状況を取得し、DB(データベース)に格納された各ノードの処理に関する情報を用いて、所定の処理を行う。また、実施例2では、プログラム処理装置が、複数のノードが組み合わされたハードウェアから各ノードの識別信号を入力し、インターネット等の通信ネットワークを介して接続されたクラウドサーバが、各ノードの識別信号からノード接続状況を生成し、DBに格納された各ノードの処理に関する情報を読み出し所定の処理を行うための命令を生成し、プログラム処理装置が、クラウドサーバからの命令に従って所定の処理を行う。ここで、ノードは、所定数の入力ポート及び所定数の出力ポートを備えており、ノード接続状況は、複数のノードの組み合わせについての、第1のノードの出力ポートと第2のノードの入力ポートとの間の接続関係を示す。
まず、実施例1について説明する。図1は、実施例1のプログラム処理装置を含む全体システムの構成を示す概略図である。このプログラム処理システムは、所定の処理を行うプログラム処理装置1−1と、放送コンテンツを送信する放送局2と、様々なコンテンツを送信するサーバ(図示せず)と、外部入出力機器4とを備えて構成される。プログラム処理装置1−1とサーバ(図示せず)とは、インターネット等の通信ネットワーク3を介して接続される。外部入出力機器4は、スピーカー、モニタ、電球、モータ等の出力機器、各種センサ等の入力機器である。
プログラム処理装置1−1は、ユーザ(プログラマ)によって、所定の処理を行うように構成されるデバイスに相当し、複数のノード10、マルチプレクサ20、マイコンボード(制御部)30−1、PC(パーソナルコンピュータ)40及び放送受信モジュール50等を備えている。
複数のノード10は、所定の処理を行うデバイスを構成するための、ユーザにより組み合わされるプログラミング領域に相当するハードウェアである。各ノード10は、所定数の入力ポート及び所定数の出力ポートを備えている。ユーザは、プログラミング領域において、ノード10に備えた出力ポートと他のノード10に備えた入力ポートとの間をケーブルにて接続し、各ノード10の識別情報の設定、及び当該ノード10における出力ポートの識別情報の設定を行うことにより、外部入出力機器4の動作を決定するためのプログラミング作業を行う。各ノード10は、当該ノード10の識別情報を示す識別信号、及び接続元の他のノード10の出力ポートから入力した識別信号、すなわち当該ノード10の入力ポートの識別信号を(接続元の他のノード10における出力ポートの識別情報を示す識別信号を、当該ノード10の入力ポートの識別信号として)マルチプレクサ20に出力する。ノード10の詳細については後述する。
マルチプレクサ20は、各ノード10及びマイコンボード30−1にケーブルにて接続されており、マイコンボード30−1から切替信号を入力し、切替信号に対応するノード10からの識別信号(ノード10の識別信号及びノード10の入力ポートの識別信号)をマイコンボード30−1に出力する。
マイコンボード30−1は、切替信号をマルチプレクサ20に出力し、切替信号に対応するノード10からの識別信号をマルチプレクサ20から入力し、識別信号に基づいてノード接続状況を取得する。そして、マイコンボード30−1は、ノード接続状況に応じた所定の処理を行い、外部入出力機器4に対し制御信号等を入出力する。また、マイコンボード30−1は、必要に応じて、通信ネットワーク3に接続されたサーバからコンテンツを受信したり、PC40からコンテンツを入力したり、放送局2から放送受信モジュール50を介して放送コンテンツを入力したりして、前述のように、ノード接続状況に応じた所定の処理を行う。
〔ノード〕
次に、図1に示したノード10について説明する。前述のとおり、ノード10は、所定の処理が複数のノード10の組み合わせと各ノード10の処理とにより行われる場合の、複数のノード10の組み合わせを構成する1要素である。図2は、ノード10の構成を示す機能ブロック図である。ノード10は、識別信号取得部11−1〜11−5及び識別信号設定・出力部12−1〜12−5,13を備えている。尚、ノード10は、識別信号取得部11−1〜11−5に対応する5個の入力ポート、及び識別信号設定・出力部12−1〜12−5に対応する5個の出力ポートを備えており、識別信号は、当該ノード10を識別するための信号、及び当該出力ポートを識別するための信号である。後述する図3及び図4についても同様である。
識別信号取得部11−1〜11−5は、接続元の他のノード10における識別信号設定・出力部12−1〜12−5とケーブルにて接続されているか否かを判定し、接続されていると判定した場合、当該他のノード10(当該他のノード10に備えた識別信号設定・出力部12−1〜12−5)から識別信号をそれぞれ入力し、入力した識別信号(当該他のノード10における出力ポートの識別信号)を、当該ノード10の入力ポートの識別信号としてマルチプレクサ20に出力する。一方、識別信号取得部11−1〜11−5は、他のノード10とケーブルにて接続されていないと判定した場合、非接続を示す識別信号を、当該ノード10の入力ポートの識別信号としてマルチプレクサ20に出力する。
識別信号設定・出力部12−1〜12−5は、ユーザにより予め設定された当該ノード10における各出力ポートの識別情報を示す識別信号を、ケーブルにて接続された接続先の他のノード10における入力ポートにそれぞれ出力する。識別信号は、ノード10の出力ポート(識別信号設定・出力部12の位置)を識別するための信号、または何らかの値を示す信号である。
識別信号設定・出力部13は、ユーザにより予め設定された当該ノード10の識別情報を示す識別信号をマルチプレクサ20にそれぞれ出力する。この識別信号は、当該ノード10を識別するための信号である。
ここで、識別信号設定・出力部12−1〜12−5及び識別信号設定・出力部13にてユーザにより設定される識別情報は、全てのノード10内において固有の異なる情報である。したがって、識別信号も、全てのノード10内において固有の異なる信号となる。これにより、識別信号設定・出力部12−1〜12−5にて設定される識別信号に基づいて、全てのノード10の中からノード10の出力ポートを特定することができ、識別信号設定・出力部13にて設定される識別信号に基づいて、全てのノード10の中からノード10を特定することができる。
このように、ノード10は、当該ノード10の識別信号及び当該ノード10の各入力ポートの識別信号(接続元の他のノード10における各出力ポートの識別信号)をマルチプレクサ20に出力し、これらの識別信号は、マイコンボード30−1に入力される。これにより、マイコンボード30−1は、識別信号に基づいて、複数のノード10における出力ポートと入力ポートとの間に接続関係を示すノード接続状況を取得することができる。
(ノードの実装例)
次に、図2に示したノード10の実装例について説明する。図3は、ノード10の実装例を示す回路図である。このノード10は、接続先の他のノード10にケーブルを介して接続する5個のコネクタ110〜114と、接続元の他のノード10にケーブルを介して接続する5個のコネクタ115〜119と、マルチプレクサ20にケーブルを介して接続するコネクタ120と、識別信号取得部11−1〜11−5と、識別信号設定・出力部12−1〜12−5,13とを備えている。
コネクタ120のピン番号1には、マイコンボード30−1からマルチプレクサ20を介して電源Vddが供給され、この電源Vddは、コネクタ110〜114のピン番号1から接続先の他のノード10におけるコネクタ115〜119のピン番号1へそれぞれ供給される。コネクタ120のピン番号2は、グランドGNDに接続されている。コネクタ110〜119のピン番号3には、識別信号がそれぞれ入出力される。コネクタ115〜119のピン番号3に入力された識別信号は、コネクタ120のピン番号4〜8からマルチプレクサ20へそれぞれ出力される。
識別信号設定・出力部12−1は、1個の抵抗R1及び1個のコンデンサを備えている。この抵抗R1は、抵抗値を可変させることが可能な半固定抵抗であり、ユーザにより、抵抗値に応じた識別情報が例えばPC40にモニタされ、識別信号設定・出力部12−2〜12−5の抵抗値に応じた識別情報とは異なるように設定される。これにより、当該ノード10における各出力ポートの識別信号が設定される。そして、識別信号設定・出力部12−1は、ユーザにより設定された抵抗値に応じた電位(アナログ値)を識別信号として、コネクタ110のピン番号3を介して出力する。識別信号設定・出力部12−2〜12−5も同様に、ユーザにより設定された抵抗値に応じた電位を識別信号として、コネクタ111〜114のピン番号3を介してそれぞれ出力する。
識別信号設定・出力部13は、抵抗R2及びコンデンサ等を備えている。抵抗R2は、抵抗R1と同様の半固定抵抗であり、ユーザにより、抵抗値に応じた識別情報が例えばPC40にてモニタされ、他のノード10の識別信号設定・出力部13の抵抗値に応じた識別情報とは異なるように設定される。これにより、当該ノード10の識別信号が設定される。そして、識別信号設定・出力部13は、ユーザにより設定された抵抗値に応じた電位を識別信号として、コネクタ120のピン番号3を介してマルチプレクサ20に出力する。
識別信号取得部11−1は、2個の抵抗及び1個のトランジスタを備えている。ここで、当該ノード10のコネクタ115と接続元の他のノード10のコネクタ110とがケーブルにて接続されている場合、識別信号取得部11−1は、接続元の他のノード10におけるコネクタ110のピン番号3から当該ノード10におけるコネクタ115のピン番号3を介して、接続元の他のノード10に備えた識別信号設定・出力部12−1の抵抗値に応じた電位を識別信号として入力し、入力した識別信号を、コネクタ120のピン番号4を介してマルチプレクサ20に出力する。一方、当該ノード10のコネクタ115と接続元の他のノード10のコネクタ110とがケーブルにて接続されていない場合、当該ノード10におけるコネクタ115のピン番号3には所定電位の識別信号が入力されない。この場合、抵抗R3は、一方が当該ピン番号3に接続されているからオープンとなり、他方がトランジスタのドレイン端子に接続されている。また、コネクタ115のピン番号1がオープンであるため、トランジスタのゲートがその左下に位置する抵抗を介してプルダウンされ、トランジスタはON状態(ショート)になる。このため、コネクタ115のピン番号3のラインは、グランドGNDの電位となる。したがって、識別信号取得部11−1は、グランドGNDの信号を非接続の識別信号として、コネクタ120のピン番号4を介してマルチプレクサ20に出力する。
同様に、識別信号取得部11−2〜11−5も、当該ノード10のコネクタ116〜119と接続元の他のノード10のコネクタ111〜114とがケーブルにて接続されている場合、接続元の他のノード10に備えた識別信号設定・出力部12−2〜12−5の抵抗値に応じた電位を識別信号としてそれぞれ入力し、入力した識別信号を、コネクタ120のピン番号5〜8を介してマルチプレクサ20に出力する。一方、当該ノード10のコネクタ116〜119と接続元の他のノード10のコネクタ111〜114とがケーブルにて接続されていない場合、グランドGNDの信号を非接続の識別信号として、コネクタ120のピン番号5〜8を介してマルチプレクサ20に出力する。
このように、図3に示したノード10の実装例によれば、その構成が簡略化されていることがわかる。これにより、ユーザは、ノード10の回路の外観を見ただけで、その構成を容易に理解することができるから、新たな構成のノード10を開発することが可能となる。また、ノード10の素子は、抵抗、トランジスタ、コンデンサ等であるから、ノード10を安価に構成することができる。また、ノード10の各出力ポートの位置を示す識別信号及び当該ノード10の識別信号は、識別信号設定・出力部12−1〜12−5,13に備えた半固定抵抗を用いて設定するようにしたから、ノード10の構成を一層簡略化することができる。
(ノードの他の実装例)
次に、図2に示したノード10の他の実装例について説明する。図4は、ノード10の他の実装例を示す回路図である。図3に示した実装例と図4に示す他の実装例とを比較すると、図3に示した識別信号取得部11−1〜11−5はトランジスタを備えているのに対し、図4に示す識別信号取得部11−1〜11−5はトランジスタを備えておらず、トランジスタの箇所を短絡している点で相違する。
このノード10は、接続先の他のノード10にケーブルを介して接続する5個のコネクタ110〜114と、接続元の他のノード10にケーブルを介して接続する5個のコネクタ115〜119と、マルチプレクサ20にケーブルを介して接続するコネクタ120と、識別信号取得部11−1〜11−5と、識別信号設定・出力部12−1〜12−5,13とを備えている。識別信号設定・出力部12−1〜12−5,13は、図3に示した実装例と同様であるから、ここでは説明を省略する。
図3に示した実装例と同様に、コネクタ120のピン番号1には電源Vddが供給され、この電源Vddは、コネクタ110〜114のピン番号1から接続先の他のノード10におけるコネクタ115〜119のピン番号1へそれぞれ供給される。コネクタ120のピン番号2は、グランドGNDに接続されている。コネクタ110〜119のピン番号3には、識別信号がそれぞれ入出力される。コネクタ115〜119のピン番号3から入力された識別信号は、コネクタ120のピン番号4〜8からマルチプレクサ20へそれぞれ出力される。
識別信号取得部11−1は、抵抗R4等を備えている。ここで、当該ノード10のコネクタ115と接続元の他のノード10のコネクタ110とがケーブルにて接続されている場合、識別信号取得部11−1は、接続元の他のノード10におけるコネクタ110のピン番号3から当該ノード10におけるコネクタ115のピン番号3を介して、接続元の他のノード10に備えた識別信号設定・出力部12−1の抵抗値に応じた電位を識別信号として入力し、入力した識別信号を、コネクタ120のピン番号4を介してマルチプレクサ20に出力する。一方、当該ノード10のコネクタ115と接続元の他のノード10のコネクタ110とがケーブルにて接続されていない場合、当該ノード10におけるコネクタ115のピン番号3には所定電位の識別信号が入力されない。この場合、抵抗R4は、一方が当該ピン番号3に接続されてオープンになり、他方がグランドGNDに接続されているから、プルダウン抵抗として機能し、これによって、当該ノード10におけるコネクタ115のピン番号3のラインは、グランドGNDと同じ電位となる。したがって、識別信号取得部11−1は、グランドGNDと同じ電位の信号を非接続の識別信号として、コネクタ120のピン番号4からマルチプレクサ20に出力する。識別信号取得部11−2〜11−5も識別信号取得部11−1と同様である。
このように、図4に示したノード10の他の実装例によれば、図3の実施例よりも一層その構成が簡略化されていることがわかる。これにより、ユーザは、その構成を容易に理解することができるから、新たな構成のノード10を開発することが可能となる。また、ノード10の素子は、抵抗、コンデンサ等であるから、ノード10を一層安価に構成することができ、識別信号は半固定抵抗を用いて設定するようにしたから、ノード10の構成を一層簡略化することができる。
〔マルチプレクサ〕
次に、図1に示したマルチプレクサ20について説明する。前述のとおり、マルチプレクサ20は、マイコンボード30−1から切替信号を入力し、全てのノード10から入力した識別信号(ノード10の識別信号及びノード10の入力ポートの識別信号)のうち、切替信号に対応するノード10からの識別信号をマイコンボード30−1に出力する。図5は、マルチプレクサ20の構成を示す機能ブロック図である。マルチプレクサ20は、入力切替部21を備えている。
入力切替部21は、全てのノード10からの識別信号を入力すると共に、マイコンボード30−1から切替信号を入力する。そして、入力切替部21は、全てのノード10からの識別信号のうち、切替信号に対応するノード10からの識別信号を選択して切り替え、そのノード10からの識別信号をマイコンボード30−1に出力する。つまり、入力切替部21は、マイコンボード30−1から入力する切替信号に応じてノード10単位に識別信号を切り替え、入力する切替信号の順番に、各ノード10からの識別信号をマイコンボード30−1にそれぞれ出力する。
このように、全てのノード10からの識別信号がマイコンボード30−1に出力される。これにより、マイコンボード30−1は、識別信号に基づいてノード接続状況を把握することができる。
(マルチプレクサの実装例)
次に、図5に示したマルチプレクサ20の実装例について説明する。図6は、マルチプレクサ20の実装例を示す回路図である。このマルチプレクサ20の実装例は、8台のノード10(1)〜10(8)からの識別信号を入力し、マイコンボード30−1からの切替信号に応じて、1台のノード10からの識別信号を出力する回路図を示している。1台のノード10からの識別信号の数は6である。マルチプレクサ20は、ケーブルを介してノード10(1)〜10(8)に接続する8個のコネクタ211〜218と、そのうちの1台のノード10からの識別信号をマイコンボード30−1に出力するために、ケーブルを介してマイコンボード30−1に接続する1個のコネクタ219と、1台のノード10を選択してそのノード10からの識別信号に切り替える切替信号をマイコンボード30−1から入力するために、ケーブルを介してマイコンボード30−1に接続する1個のコネクタ220と、1段目の切替器230〜237と、2段目の切替器240〜243と、3段目の切替器250,251等を備えている。
コネクタ219のピン番号1には、マイコンボード30−1から電源Vddが供給され、この電源Vddは、コネクタ211〜218のピン番号1から、各ノード10(1)〜10(8)におけるコネクタ120のピン番号1へそれぞれ供給される。コネクタ219のピン番号2は、グランドGNDに接続されており、このグランドGNDは、コネクタ211〜218のピン番号2から、各ノード10(1)〜10(8)におけるコネクタ120のピン番号2へそれぞれ接続されている。コネクタ211〜218のピン番号3には、各ノード10(1)〜10(8)の識別信号がそれぞれ入力され、コネクタ211〜218のピン番号4〜8には、各ノード10(1)〜10(8)の入力ポートの識別信号がそれぞれ入力される。ここで、ノード10に備えた識別信号設定・出力部12−1の位置をポート1の識別信号とし、識別信号設定・出力部12−2〜12−5の位置をポート2〜5の識別信号とする。
1段目の切替器230は、ノード10(1)からの3本の識別信号(ノード10(1)の識別信号、及びノード10(1)の入力ポート1,2の識別信号)及びノード10(2)からの3本の識別信号(ノード10(2)の識別信号、及びノード10(2)の入力ポート1,2の識別信号)を、コネクタ211,212を介して入力すると共に、マイコンボード30−1からの切替信号を、コネクタ220を介して入力し、切替信号に応じて、ノード10(1)からの3本の識別信号またはノード10(2)からの3本の識別信号を、2段目の切替器240に出力する。
1段目の切替器231は、ノード10(1)からの3本の識別信号(ノード10(1)の入力ポート3〜5の識別信号)及びノード10(2)からの3本の識別信号(ノード10(2)の入力ポート3〜5の識別信号)を、コネクタ211,212を介して入力すると共に、マイコンボード30−1からの切替信号を、コネクタ220を介して入力し、切替信号に応じて、ノード10(1)からの3本の識別信号またはノード10(2)からの3本の識別信号を、2段目の切替器241に出力する。
この場合、切替器230,231には同じ切替信号が入力されるから、切替器230,231は、切替信号に応じて、ノード10(1)からの6本の識別信号またはノード10(2)からの6本の識別信号を、切替器240,241に出力する。
同様に、1段目の切替器232,233は、ノード10(3)からの6本の識別信号及びノード10(4)からの6本の識別信号をそれぞれ3本ずつ、コネクタ213,214を介して入力すると共に、マイコンボード30−1からの切替信号を、コネクタ220を介して入力し、切替信号に応じて、ノード10(3)からの6本の識別信号またはノード10(4)からの6本の識別信号を、2段目の切替器240,241に出力する。切替器234〜237についても、対応するノード10(5)〜10(8)からの識別信号を入力し、切替信号に応じて、いずれかのノード10(5)〜10(8)の識別信号を切替器242,243に出力する。2段目の切替器240〜243及び3段目の切替器250,251も、1段目の切替器230〜237と同様に動作する。
つまり、マルチプレクサ20に備えた切替器230〜237,240〜243,250,251は、切替信号に応じて、ノード10(1)〜10(8)のうちのいずれかのノード10から入力した6本の識別信号に切り替え、コネクタ219からマイコンボード30−1に出力する。これにより、全てのノード10からの識別信号がマイコンボード30−1に入力される。
このように、図6に示したマルチプレクサ20の実装例によれば、その構成が簡略化されていることがわかる。これにより、ユーザは、マルチプレクサ20の回路の外観を見ただけで、その構成を容易に理解することができる。また、マルチプレクサ20を構成する素子は、切替器230等であるから、マルチプレクサ20を安価に構成することができる。
尚、図6に示したマルチプレクサ20の実装例は、切替器230等を3段で構成し、8台のノード10(1)〜10(8)からの識別信号をそれぞれ入力し、そのうちの1台のノード10からの識別信号を出力する回路であり、8台のノード10(1)〜10(8)と接続することができる。これに対し、段数を変更して3段を超える多段構成とすることにより、8台のノード10(1)〜10(8)を超える数のノード10と接続することができる。例えば、図6に示した回路を、コネクタ211〜218に対応してそれぞれ設け、合計9台のマルチプレクサ20にて構成することにより、8×8=64台のノード10と接続することができる。このように、ノード10の同時接続数を増加させるために同じマルチプレクサ20の基板をそのまま利用することで、ノード10の同時接続数の拡張性を安価に実現することができる。
〔マイコンボード〕
次に、図1に示したマイコンボード30−1について説明する。前述のとおり、マイコンボード30−1は、切替信号をマルチプレクサ20に出力し、切替信号に対応するノード10からの識別信号をマルチプレクサ20から入力し、識別信号に基づいてノード接続状況を取得し、ノード接続状況に応じた所定の処理を行う。図7は、マイコンボード30−1の構成を示す機能ブロック図である。マイコンボード30−1は、識別信号取得部31、切替信号出力部32、ノード接続状況取得処理部33、DB34、解釈・実行処理部35、外部入出力機器制御部36及び通信I/F(インターフェース)部37−1を備えている。マイコンボード30−1は、インターネット等の通信ネットワーク3に接続され、計算機資源または通信端末としてのPC40に接続され、また、放送受信モジュール50及び外部入出力機器4に接続される。尚、マイコンボード30−1は、放送受信モジュール50を備えるようにしてもよい。
識別信号取得部31は、マルチプレクサ20から、ノード10からの識別信号を取得(入力)し、取得した識別信号をノード接続状況取得処理部33に出力する。識別信号取得部31が取得する識別信号は、図1に示した複数のノード10のうち1台のノード10毎の信号である。
切替信号出力部32は、ノード接続状況取得処理部33から、識別信号取得部31が識別信号を取得するための制御信号を入力し、制御信号に対応する切替信号をマルチプレクサ20に出力する。
ノード接続状況取得処理部33は、全てのノード10からの識別信号を取得するために、ノード10毎の制御信号を生成し、当該制御信号を切替信号出力部32に出力し、この制御信号に対応するノード10からの識別信号を識別信号取得部31から入力する。これにより、ノード接続状況取得処理部33は、全てのノード10からの識別信号を取得することができる。
例えば、ノード10(1)〜10(8)が接続されている場合、ノード接続状況取得処理部33は、まず、ノード10(1)からの識別信号を取得するための制御信号を生成し、当該制御信号を切替信号出力部32に出力する。切替信号出力部32は、ノード10(1)からの識別信号を取得するための制御信号を入力すると、当該制御信号に対応する切替信号を生成し、当該切替信号をマルチプレクサ20に出力する。識別信号取得部31は、切替信号出力部32により出力された切替信号に対応するノード10(1)からの識別信号を取得し、取得した識別信号をノード接続状況取得処理部33に出力する。これにより、ノード接続状況取得処理部33は、ノード10(1)からの識別信号を取得することができる。そして、ノード接続状況取得処理部33は、ノード10(2)から識別信号を取得するための制御信号を生成し、当該制御信号を切替信号出力部32に出力する。このような処理をノード10(8)まで繰り返し行い、ノード10毎に切替信号の出力処理及び識別信号の入力処理を行うことにより、ノード接続状況取得処理部33は、全てのノード10(1)〜10(8)からの識別信号を取得することができる。
ノード接続状況取得処理部33は、識別信号取得部31から、全てのノード10からの識別信号を入力すると、後述するDB34から、ノード10の番号、ノード10の識別情報及び出力ポートの識別情報等を読み出す。そして、ノード接続状況取得処理部33は、入力した全てのノード10からの識別信号が示す識別情報、並びにDB34から読み出したノード10の番号、ノード10の識別情報及び出力ポートの識別情報等に基づいて、ノード接続状況を取得し、当該ノード接続状況を解釈・実行処理部35に出力する。
ここで、ノード接続状況取得処理部33は、ノード接続状況を取得する際に、識別信号が非接続の識別信号であるか否かを判定し、非接続の識別信号であると判定した場合、当該識別信号に対応する入力ポートにはケーブルが接続されていないと判断する。例えば、図3及び図4に示した実装例の場合、ノード接続状況取得処理部33は、入力した識別信号の電位が所定のしきい値以上であるか否かを判定し、しきい値よりも低いと判定した場合、非接続の識別信号であると判定する。この場合、ユーザにより設定された識別情報が示す識別信号は、しきい値以上の電位を有するものとする。
また、ノード接続状況取得処理部33は、ノード接続状況を取得する際に、DB34から読み出した入力ポート種別が所定種別の場合、そのノード10の入力ポートについては、他のノード10の出力ポートが接続されているとは判定しないで、入力した識別信号が示す識別情報の値がその入力ポートに入力されるものと判定する。これにより、解釈・実行処理部35は、当該ノード10の処理を実行する際に、入力した識別信号が示す識別情報の値を、その入力ポートの入力値としてそのまま用いる。この場合、ノード接続状況取得処理部33は、ノード接続状況に加え、ノード10への入力値の情報を解釈・実行処理部35に出力する。これにより、ユーザがプログラミング作業の際に、ノード10とセンサ等とを接続して、センサ等からの信号をノード10へ直接入力することができ、拡張性に優れたプログラム処理装置1−1を実現することができる。所定種別とは、例えば、所定データの信号を直接入力することを示す「値入力」である。詳細については、後述する図12のプログラミング例及び図13のDB34の構成例において説明する。
DB34は、各ノード10及びノード10内の各入力ポート及び各出力ポートに関する情報、外部入出力機器4の制御方法等が規定されたデータベースである。具体的には、DB34には、ノード10毎に、ノード10の番号及び識別情報、入力ポート種別、出力ポート種別、出力ポートの識別情報、プログラム等の情報が格納されている。これらの情報は、複数のノード10の組み合わせに応じて、ユーザにより予め設定される。
図8は、DB34の構成例を示す図である。このDB34は、ノード10毎に、ノード10の番号、名称、プログラムの処理内容(プログラムデータ)、(自)識別情報、入力ポート種別、出力ポート種別及び出力ポートの識別情報から構成される。番号は、ノード10に付されたシリアル番号であり、ノード番号を示す。名称は、ノード10に付された名称である。プログラムの処理内容は、ここでは処理を説明するための情報として示してあるが、実際は、ノード10が実行する処理をソフトウェアプログラムとしてコーディングしたプログラムデータとして格納されている。(自)識別情報は、当該ノード10を識別するための値を示し、図2〜図4の識別信号設定・出力部13に備えた抵抗R2により設定される情報である。入力ポート種別は、図2〜図4の識別信号取得部11−1〜11−5に対応する入力ポートの種別情報を示す。出力ポート種別は、図2〜図4の識別信号設定・出力部12−1〜12−5に対応する出力ポートの種別情報を示す。出力ポートの識別情報は、当該ノード10に備えた出力ポートを識別するための値であり、図2〜図4では、識別信号設定・出力部12−1〜12−5に備えた抵抗R1により設定される情報を示す。DB34は、図8に示した構成のうち、少なくとも番号、プログラムの処理内容を示すプログラムデータ、(自)識別情報、入力ポート種別、出力ポート種別及び識別情報を備えていればよい。
解釈・実行処理部35は、ノード接続状況取得処理部33からノード接続状況を入力すると共に、DB34から各ノード10についての番号、識別情報等を示す機能・制御情報を読み出し、ノード接続状況及び機能・制御情報に基づいて処理内容を解釈し、一連の処理(所定の処理)を行う。この場合、解釈・実行処理部35は、一連の処理の中で、必要に応じて、通信I/F部37−1を介して通信ネットワーク3、PC40等からコンテンツを入力し、放送受信モジュール50を介して放送コンテンツを入力し、外部入出力機器制御部36を介して外部入出力機器4との間で、制御指示等を入出力する。つまり、解釈・実行処理部35は、ノード接続状況取得処理部33から入力したノード接続状況及びDB34から読み出した機能・制御情報に基づいて処理内容を解釈し、通信ネットワーク3、PC40等から入力したコンテンツ、放送局から送信された放送コンテンツ、外部入出力機器4から入力した情報及びノード接続状況に応じたノード10の処理を、DB34から読み出した機能・制御情報に含まれるプログラムに基づいてそれぞれ行い、通信ネットワーク3、PC40等へ情報を出力したり、外部入出力機器4へ情報を出力したりすることにより、所定の処理を行う。
外部入出力機器制御部36は、解釈・実行処理部35との間で制御指示等の入出力を行い、外部入出力機器4との間で制御信号等の情報を入出力する。通信I/F部37−1は、解釈・実行処理部35からの指示に従い通信ネットワーク3、PC40等からコンテンツを取得して解釈・実行処理部35に出力し、解釈・実行処理部35から情報を入力し、通信ネットワーク3に接続されたサーバ、PC40等へ当該情報を出力する。
このように、マイコンボード30−1によれば、各ノード10からの識別信号を入力してノード接続状況を生成し、ノード接続状況に応じた各ノード10の処理をそれぞれ実行することにより、ユーザが所望する所定の処理を行うことができる。
(マイコンボードの処理)
次に、図7に示したマイコンボード30−1の処理について説明する。図9は、マイコンボード30−1の処理の概略を示すフローチャートである。まず、マイコンボード30−1のノード接続状況取得処理部33は、制御信号を切替信号出力部32に出力し、当該制御信号に対応するノード10からの識別信号を識別信号取得部31から入力することにより、全てのノード10からの識別信号を取得する(ステップS901)。全てのノード10からの識別信号とは、ノード10の識別信号、及び当該ノード10における入力ポートの識別信号を示す。尚、当該ノード10における入力ポートの識別信号は、当該ノード10の接続元における出力ポートの識別信号を示す。
マイコンボード30−1のノード接続状況取得処理部33は、取得した全てのノード10からの識別信号が示す識別情報、及びDB34に格納された番号及び識別情報(ノード10の識別情報及び当該ノード10の出力ポートの識別情報)に基づいて、ノード接続状況を取得する(ステップS902)。このノード接続状況取得処理の詳細については後述する。
マイコンボード30−1の解釈・実行処理部35は、ノード接続状況に応じた各ノード10の処理を、DB34に格納されたプログラムに基づいて実行し、所定の処理を行う(ステップS903)。
(ノード接続状況取得処理)
次に、図9に示したノード接続状況取得処理(ステップS902)の詳細について説明する。図10は、ノード接続状況取得処理の詳細を示すフローチャートであり、図11は、図10の具体例を説明するための図である。例えば、図11(a)に示すように、2台のノード10(1)の出力ポート1とノード10(2)の入力ポート1とが接続されており、ノード10(1),10(2)の識別信号の値(識別情報)がそれぞれ100,200であり、ノード10(1)の出力ポート1の値(識別情報)が111であるものとする。ここで、各ノード10(1),10(2)は四角形で示しており、各ノード10(1),10(2)内の小さな正方形のうち、左辺に接しているものは入力ポート、右辺に接しているものは出力ポートを示し、下辺に接しているものはマルチプレクサ20を介してマイコンボード30−1へ接続されているポートを示す。
図11(b)に示すように、DB34には、ノード10(1),10(2)のノード番号として1,2、識別情報として100,200が格納され、ノード10(1)の出力ポート1の識別情報として111が格納されており、図11(a)に示した接続例に対応している。
この場合、図11(c)に示すように、マイコンボード30−1のノード接続状況取得処理部33は、図9に示したステップS901において、ノード10(1)からの識別信号として、ノード10(1)の識別信号の値100、及び当該ノード10(1)の入力ポート1等の識別信号が非接続を示す値を取得し、ノード10(2)からの識別信号として、ノード10(2)の識別信号の値200、当該ノード10(2)の入力ポート1の識別信号の値111、及び入力ポート2等の識別信号が非接続を示す値を取得する。
図10を参照して、マイコンボード30−1のノード接続状況取得処理部33は、全てのノード10からの識別信号を取得すると、図9に示したステップS902のノード接続状況取得処理として、まず、DB34から全てのノード10及び出力ポートの識別情報を読み出す(ステップS1001)。図11の例では、ノード接続状況取得処理部33は、図11(b)に示したDB34から、番号1,2、ノード10の識別情報100,200、及び番号1のノード10における出力ポート1の識別情報111を読み出す。
ノード接続状況取得処理部33は、取得した所定ノード10の識別信号について、DB34から読み出した全てのノード10の識別情報を検索する(ステップS1002)。そして、ノード接続状況取得処理部33は、取得したノード10の識別信号が示す識別情報と、DB34から読み出した各ノード10の識別情報とを比較し、両識別情報が一致したノード10の番号を、所定ノード10のノード番号として特定する(ステップS1003)。図11の例では、ノード接続状況取得処理部33は、最初に、取得したノード10(1)の識別信号が示す識別情報である値100と、DB34から読み出した各ノード10の識別情報100,200とを比較し、一致した識別情報100に対応する番号1を、ノード10(1)のノード番号として特定する。また、ノード接続状況取得処理部33は、後述するステップS1006の分岐処理から戻って、ステップS1002及びステップS1003において、取得したノード10(2)の識別信号が示す識別情報である値200と、DB34から読み出した各ノード10の識別情報100,200とを比較し、一致した識別情報200に対応する番号2を、ノード10(2)のノード番号として特定する。
ノード接続状況取得処理部33は、取得した所定ノード10の各入力ポートの識別信号について、DB34から読み出した全ての出力ポートの識別情報を検索する(ステップS1004)。そして、ノード接続状況取得処理部33は、取得したノード10の各入力ポートの識別信号が示す識別情報と、DB34から読み出した各出力ポートの識別情報とを比較し、両識別情報が一致したノード10の番号を、所定ノード10の当該入力ポートに対する接続元のノード番号として特定すると共に、両識別情報が一致した出力ポート(出力ポートの番号)を、所定ノード10の当該入力ポートに対する接続元の出力ポートとして特定する(ステップS1005)。これにより、所定ノード10の入力ポートに対する接続元のノード番号及び出力ポートが特定される。図11の例では、ノード接続状況取得処理部33は、最初に、取得したノード10(1)の全ての入力ポートの識別信号が非接続を示しているから、当該入力ポートには接続されていないとして、ステップS1004及びステップS1005の処理を行わない。また、ノード接続状況取得処理部33は、後述するステップS1006の分岐処理から戻って、ステップS1004及びステップS1005において、取得したノード10(2)の入力ポート1の識別信号が示す識別情報である値111と、DB34から読み出した出力ポートの識別情報111(図11の例では、識別情報111のみ)とを比較し、一致した識別情報111に対応する番号1を、ノード10(2)の入力ポート1に対する接続元のノード番号として特定すると共に、一致した識別情報111に対応する出力ポート1を、ノード10(2)の入力ポート1に対する接続元の出力ポートとして特定する。これにより、ノード10(2)の入力ポート1に対する接続元が、ノード番号1のノード10(1)における出力ポート1であると特定される。また、ノード接続状況取得処理部33は、取得したノード10(2)の入力ポート1以外の入力ポートの識別信号が非接続を示しているから、当該入力ポートには接続されていないとして、ステップS1004及びステップS1005の処理を行わない。
ノード接続状況取得処理部33は、全てのノード10についてステップS1001からステップS1005までの処理が完了したか否かを判定し(ステップS1006)、全てのノード10について処理が完了していないと判定した場合(ステップS1006:N)、ステップS1002へ移行し、全てのノード10について処理が完了していると判定した場合(ステップS1006:Y)、ステップS1007へ移行する。図11の例では、ノード接続状況取得処理部33は、ノード10(1)を所定ノード10としてステップS1002からステップS1005までの処理を行い、次に、ノード10(2)を所定ノード10としてステップS1002からステップS1005までの処理を行い、全てのノード10についての処理が完了したとして、ステップS1007へ移行する。
ノード接続状況取得処理部33は、ステップS1006から移行して、ステップS1003にて特定した所定ノード10のノード番号、及びステップS1005にして特定した、所定ノード10の各入力ポートに対する接続元のノード番号及び出力ポートに基づいて、ノード接続状況を取得する(ステップS1007)。図11の例では、ノード10(1),10(2)のノード番号がそれぞれ1,2であり、ノード10(2)の入力ポート1に対する接続元がノード番号1のノード10(1)における出力ポート1であると特定されているから、図11(d)に示すように、ノード番号1のノード10(1)の出力ポート1と、ノード番号2のノード10(2)の入力ポート1とが接続されたノード接続状況となる。
尚、ノード接続状況取得処理部33は、ステップS1002において、取得したノード10の識別信号が示す識別情報と、DB34から読み出した各ノード10の識別情報を比較する際に、取得したノード10の識別信号を、取得したノード10の識別情報に変換する処理を行うことで、識別信号が示す識別情報を決定する。例えば、図3または図4に示したノード10の実装例の場合、ユーザは、ノード10の識別信号設定・出力部12−1〜12−4,13に備えた半固定抵抗を用いて識別情報を設定する。ここで、ユーザにより設定された識別情報に対する許容範囲が予め決められる。ノード接続状況取得処理部33は、取得したノード10の識別信号から識別情報を直接求め、求めた識別情報が許容範囲に含まれる場合、当該許容範囲に対応した識別情報(ユーザにより設定された識別情報)を、識別信号が示す識別情報に決定する。図11の例では、ユーザにより設定された識別情報111の許容範囲が106〜116であると予め決められている場合、ノード接続状況取得処理部33は、取得したノード10(2)の入力ポート1の識別信号について、その識別信号から識別情報を直接求め(求めた識別情報が107であったとする。)、その識別情報107がユーザにより設定された識別情報111の許容範囲106〜116の中にあると判定し、その識別信号が示す識別情報を111に決定する。
また、図3または図4に示したノード10の実装例の場合、ノード接続状況取得処理部33は、識別信号が示す識別情報を決定する際に、補正用パラメータを用いて、取得した識別信号から直接求めた識別情報を補正し、識別信号が示す識別情報を決定するようにしてもよい。具体的には、ユーザが、図3または図4に示したノード10をリファレンスノードとして、入出力ポート同士を結線し、PC40等を用いて、識別信号の設定値(ユーザにより設定された識別情報)と測定値(測定された識別信号から直接求めた識別情報)との間の誤差を求める。ノード接続状況取得処理部33は、前記誤差を補正用パラメータとして、取得した識別信号から直接求めた識別情報を補正し、識別信号が示す識別情報を決定する。例えば、リファレンスノードの識別信号の設定値(ユーザにより設定される識別情報)は、高精度に補正できるようにほぼ等間隔に設定し(例えば、電位が0〜1000で測定できる場合は、200,400,600,800,1000等に設定し、)、実際の測定値(例えば、203,401,600,799,997等)との間の差分(誤差)を補正用パラメータとして取得しておく。そして、ノード接続状況取得処理部33は、他のノード10から取得した識別信号の識別情報である測定値を、その測定値に近い補正用パラメータを利用して補正し、識別信号が示す識別情報を決定する。これにより、補正用の参照電位を与えるノード10にて電源電圧の変動を観測し、その変動値を用いた換算処理により識別情報を決定するよりも、前述のリファレンスノードによる補正用パラメータを用いて識別情報を決定する方が、電気回路的に高精度な補正を実現することができる。
〔プログラミング例〕
次に、ノード間接続によるプログラミング例について説明する。図12は、複数のノード10(1)〜10(11)にて構成されるノード間接続によるプログラミング例を示す図である。このプログラミング例は、プログラム要素である11台のノード10(1)〜10(11)にて構成された速報提示デバイスにより、所定の処理として速報提示処理を行うものである。
各ノード10(1)〜10(11)は正方形または長方形で示しており、各ノード10(1)〜10(11)内の小さな正方形のうち、左辺に接しているものは入力ポート、右辺に接しているものは出力ポートを示す。また、各ノード10(1)〜10(11)は、5入力5出力のポート、すなわち5個の入力ポート1〜5及び5個の出力ポート1〜5を備えているものとする。また、各ノード10(1)〜10(11)には、そのノード10(1)〜10(11)に与えられた機能として、便宜的に、下線付き文字列または回路図が記されている。
マイコンボード30−1には、放送受信モジュール50、並びに電球及びスピーカーの外部入出力機器4が接続されており、マイコンボード30−1は、通信ネットワーク3に接続されたサーバからコンテンツを入力し、または放送受信モジュール50を介してNHK速報の放送コンテンツを入力し、図12に示すプログラミング例による所定の処理を行い、電球を点灯させるための信号を電球の外部入出力機器4に出力し、所定のメロディの信号をスピーカーの外部入出力機器4に出力する。
尚、各ノード10(1)〜10(11)間の接続は、図12では便宜的に有向線で結んで示しているが、実際の接続には向きがないものとする。ただし、構造的制約により、必ず入力ポートと出力ポートとを接続する必要がある。例えば、ノード10(6)とノード10(7)〜10(10)との間は、ノード10(6)の出力ポート1〜4とノード10(7)〜10(10)の入力ポート1とがそれぞれ接続されている。これらの信号の向きは、ノード10(6)の出力ポート1〜4からノード10(7)〜10(10)の入力ポート1への向きではなく、その逆であり、ノード10(7)〜10(10)の入力ポート1からノード10(6)の出力ポート1〜4への向きである。
このような信号の向きを含むノード接続状況は、図7に示したノード接続状況取得処理部33により生成されるのではなく、解釈・実行処理部35により生成される。ノード接続状況取得処理部33は、全てのノード10(1)〜10(11)からの識別信号、及びDB34に格納されたノード10の番号、識別情報及び出力ポートの識別情報に基づいて、ノード10(1)〜10(11)における出力ポートと入力ポートとの間の接続関係を示す情報としてのノード接続状況を取得する。そして、解釈・実行処理部35は、ノード接続状況取得処理部33により取得されたノード接続状況、並びにDB34に格納された入力ポート種別及び出力ポート種別に基づいて、信号の向きを含むノード接続状況を生成する。ここで、出力ポート種別が出力の種別を示しており、入力ポート種別が入力の種別を示している場合は、ノード接続状況取得処理部33により取得されたノード接続状況が、そのまま解釈・実行処理部35により生成される信号の向きを含むノード接続状況になる。一方、出力ポート種別が入力の種別を示しており、入力ポート種別が出力の種別を示している場合は、解釈・実行処理部35により生成される、信号の向きを含むノード接続状況が、ノード接続状況取得処理部33により取得されたノード接続状況とは異なるものとなる。
図12に示すプログラミング例による所定の処理は速報提示である。具体的には、DB34により設定された所定場所(通信ネットワーク3に接続されたサーバ、または放送受信モジュール50を介した放送局2)にあるNHK速報を監視し、当該速報があればその速報をジャンル分けする。そして、ジャンル分けした結果、地震関係であれば、「数値」ノードであるノード10(4)にて設定された値の時間(秒)の間だけ、電球の外部入出力機器4を点滅させ、5秒間のメロディAをスピーカーの外部入出力機器4から流す。また、気象関係であれば、メロディB、交通関係であればメロディC、その他であればメロディDをスピーカーの外部入出力機器4から流す。
このようなプログラミング例による速報提示処理は、解釈・実行処理部35において、DB34から読み出されたノード10(1)〜10(11)のプログラムを含む機能・制御情報及びノード接続状況に基づいて解釈され、実行される。
(DBの構成例)
図13は、図12に示したプログラミング例に対応するDB34の構成例を示す図である。図13に示すように、DB34には、ノード10(1)〜10(11)のそれぞれについて、ノード番号として1〜11、名称として「NHK速報」等、分類として「ソース」「処理」「ソース」「処理」「提示」〜「提示」、プログラムの処理内容を示すプログラムデータ、ノード10の識別情報((自)識別情報)として100,200,−,300〜1000が格納され、入力ポート1〜5の入力ポート種別、出力ポート1〜5の出力ポート種別及び識別情報が格納されている。このDB34は、図8に示したDB34と同一の構成をしており、図12に示したプログラミング例に対応している。尚、図13に示すプログラムの処理内容は、後述する図14のプログラムの処理内容に対応しており、ここでは、プログラムを実行する際の処理内容の概要を示す役割が記載されている。DB34は、図13に示した構成のうち、少なくとも番号、プログラムの処理内容を実行するプログラムデータ、(自)識別情報、入力ポート種別、出力ポート種別及び識別情報を備えていればよい。
分類は、ノード10を機能面でグループ化したものであり、「ソース」はデータ若しくは値そのものまたは情報源を管理する機能、「処理」はデータ等を処理する機能、「提示」は外部入出力機器4を制御する機能をそれぞれ示す。ここでの「処理」は、ノード10におけるプログラムによる処理とは異なり、狭義の処理を意味するものとする。
プログラムの処理内容を示すプログラムデータは、ノード10(1)〜10(11)の機能のそれぞれをソフトウェアプログラムとしてコーディングしたデータ、例えばスクリプト言語により作成されたデータを示す。各ノード10(1)〜10(11)のプログラムの役割は、図13に示したとおりである。
図14は、図12のプログラミング例における各ノード10(1)〜10(11)のプログラムの処理内容(機能)を示す図である。ノード番号1のノード10(1)における「NHK速報」のプログラムの処理内容は、通信ネットワーク3に接続されたサーバ、または放送局2(例えば、コンテンツの所在を示すURL等)から速報を入力し、所定のフォーマット(例えばXML)にて出力する機能を実現する。また、ノード番号2のノード10(2)における「ジャンル分け」のプログラムの処理内容は、入力データを解析し、ジャンルによってポートを振り分けて出力する機能を実現する。同様に、ノード番号3〜11のノード10(3)〜10(11)におけるプログラムの処理内容は、図13に示すとおりの機能を実現する。
尚、図13に示したノード番号3のノード10(3)における「数値」のプログラムでは、識別情報を「値」として認識する。これにより、識別情報をアナログ数値データとして出力する機能を実現する場合には、ハードウェアとしては、他と同じノード10を使用することができ、新たな構成のノード10を用意する必要がない。また、ノード番号5,6,11のノード10(5),10(6),10(11)におけるプログラムについて、トリガー入力は、データを入力したときの立ち上がりをトリガーとして認識することを示す。これらプログラムは、解釈・実行処理部35によって読み出され、例えばインタプリタにより解釈され実行される。
図13に戻って、ノード10の識別情報((自)識別情報)において、ノード10(3)の識別情報は「−」である。これは、ノード10(3)の「数値」ノードが、図14に示したとおり、識別情報をアナログ数値データとして出力する機能を実現するものであり、解釈・実行処理部35にてノード接続状況を確認する必要がないからである。これにより、ノード10が識別情報をアナログ数値データとして出力する機能を実現する場合には、解釈・実行処理部35において処理負荷を低減することができる。
入力ポート種別及び出力ポート種別において、「データ入力」は、当該入力ポートまたは出力ポートがデータを入力することを示し、「データ出力」は、当該入力ポートまたは出力ポートがデータを出力することを示す。また、「トリガー入力」は、当該入力ポートまたは出力ポートがデータを入力する際に、その立ち上がりをトリガーとして入力し、データを瞬間的な信号として扱うことを示す。また、「値入力」は、当該入力ポートまたは出力ポートが例えば物理信号としてのアナログ値またはデジタル値を入力することを示し、「値出力」は、当該入力ポートまたは出力ポートが例えば物理信号としてのアナログ値またはデジタル値を出力することを示す。
(マイコンボードの処理)
マイコンボード30−1のノード接続状況取得処理部33は、全てのノード10(1)〜10(11)からの識別信号を入力し、DB34から、ノード10(1)〜10(11)の番号及び識別情報、並びに出力ポートの識別情報を読み出す。そして、ノード接続状況取得処理部33は、入力した全てのノード10(1)〜10(11)の識別信号、及び各ノード10(1)〜10(11)の入力ポート1〜5の識別信号、並びにDB34から読み出したノード10(1)〜10(11)の番号、ノード10(1)〜10(11)の識別情報及び出力ポートの識別情報に基づいて、ノード接続状況を取得する。ノード接続状況取得処理部33により取得されたノード接続状況は、ノード10(1)〜10(11)における出力ポートと入力ポートとの間の接続関係を示す情報であり、例えば、ノード10(6)の出力ポート1〜4とノード10(7)〜10(10)の入力ポート1とが接続されている情報が含まれる。このノード接続状況には、信号の向きが含まれていない。
解釈・実行処理部35は、まず、ノード接続状況取得処理部33により取得されたノード接続状況、並びにDB34から読み出した入力ポート種別及び出力ポート種別に基づいて、信号の向きを含むノード接続状況を生成する。具体的には、ノード接続状況が示す第1のノード10の出力ポートにおける出力ポート種別が「データ出力」等の「出力」を意味する種別であり、ノード接続状況が示す、第1のノード10の当該出力ポートに接続される第2のノード10の入力ポートにおける入力ポート種別が「データ入力」等の「入力」を意味する種別である場合、信号は、第1のノード10の当該出力ポートから第2のノード10の当該入力ポートへの向きであると判定される。図12の例では、例えば、ノード10(1)の出力ポート1とノード10(2)の入力ポート1との間の接続において、図13のDB34から、番号1のノード10(1)の出力ポート1における出力ポート種別は「データ出力」であり、番号2のノード10(2)の入力ポート1における入力ポート種別は「データ入力」である。したがって、前述の第1のノード10の出力ポート及び第2のノード10の入力ポートに対応するから、信号は、ノード10(1)の出力ポート1からノード10(2)の入力ポート1への向きであると判定される。
一方、ノード接続状況が示す第3のノード10の出力ポートに対応する出力ポート種別が「データ入力」等の「入力」を意味する種別であり、ノード接続状況が示す、第3のノード10の当該出力ポートに接続される第4のノード10の入力ポートに対応する入力ポート種別が「データ出力」等の「出力」を意味する種別である場合、信号は、第4のノード10の当該入力ポートから第3のノード10の当該出力ポートへの向きであると判定される。図12の例では、例えば、ノード10(6)の出力ポート1とノード10(7)の入力ポート1との間の接続において、図13のDB34から、番号6のノード10(6)の出力ポート1における出力ポート種別は「データ入力」であり、番号7のノード10(7)の入力ポート1における入力ポート種別は「データ出力」である。したがって、前述の第3のノード10の出力ポート及び第4のノード10の入力ポートに対応するから、信号は、ノード10(7)の入力ポート1からノード10(6)の出力ポート1への向きであると判定される。このように、ノード接続状況取得処理部33は、図12に示した矢印の信号の向きを含むノード接続状況を生成する。
そして、解釈・実行処理部35は、信号の向きを含むノード接続状況、及びDB34から読み出した機能・制御情報(各ノード10(1)から10(11)の番号、分類、プログラム、(自)識別情報、入力ポート種別、出力ポート種別及び出力ポートの識別情報)に基づいて処理内容を解釈し、通信ネットワーク3に接続されたサーバからコンテンツを入力し、または放送局2から放送受信モジュール50を介して放送コンテンツを入力し、ノード接続状況に応じたノード10(1)〜10(11)の処理を、DB34から読み出した機能・制御情報に含まれるプログラムに基づいてそれぞれ行い、電球を点灯させるための信号を電球の外部入出力機器4へ出力したり、所定のメロディの信号をスピーカーの外部入出力機器4へ出力したりする。これにより、解釈・実行処理部35は、図12に示したプログラミング例による所定の処理として速報提示処理を行う。
ここで、図12に示した「スイッチ」のノード10(6)は、信号の向きを考慮すると、8入力1出力、すなわち8個の入力ポート及び1個の出力ポートを備える必要がある。しかし、ノード接続状況取得処理部33が、ノード10(1)〜10(11)における出力ポートと入力ポートとの間の接続関係を示すノード接続状況を取得し、解釈・実行処理部35が、信号の向きを含むノード接続状況を生成することにより、ノード10(6)は、5入力5出力、すなわち5個の入力ポート及び5個の出力ポートを備えればよい。これにより、全てのノード10(1)〜10(11)は、信号の向きを考慮した入力ポート及び出力ポートを備える必要がなく、統一した共通の5個の入力ポート及び5個の出力ポートを備えれば済むから、全てのノード10(1)〜10(11)を統一化することができる。
以上のように、実施例1のプログラム処理装置1−1によれば、プログラム要素である複数のノード10を複数組み合わせて所定の処理を行う際に、まず、ユーザが、ノード10同士をケーブルにて接続し、各ノード10の識別情報及び当該ノード10の出力ポートの識別情報を設定することにより、プログラミング作業を行う。そして、マイコンボード30−1のノード接続状況取得処理部33は、マルチプレクサ20を切り替えるための制御信号を出力しながら、ノード10からの識別信号(ノード10の識別情報を示す識別信号及びノード10の出力ポートの識別情報を示す識別信号)を入力することで、全てのノード10からの識別信号を取得し、取得した全てのノード10からの識別信号が示す識別情報、及びDB34に格納された番号及び識別情報(ノード10の識別情報及び当該ノード10の出力ポートの識別情報)に基づいて、全てのノード10における出力ポートと入力ポートとの間の接続関係を示すノード接続状況を取得するようにした。そして、解釈・実行処理部35は、ノード接続状況取得処理部33により取得されたノード接続状況、並びにDB34に格納された入力ポート種別及び出力ポート種別に基づいて、信号の向きを含むノード接続状況を生成し、DB34から各ノード10についてのプログラム等の機能・制御情報を読み出し、ノード接続状況及び機能・制御情報に基づいて処理内容を解釈し、通信ネットワーク3、PC40等から入力したコンテンツ、放送局2から送信された放送コンテンツ、外部入出力機器4から入力した情報及びノード接続状況に応じたノード10の処理を、DB34から読み出した機能・制御情報に含まれるプログラムに基づいてそれぞれ実行し、通信ネットワーク3、PC40等へ情報を出力したり、外部入出力機器4へ情報を出力したりすることにより、所定の処理を行うようにした。
このように、所定の処理が、複数のノード10の組み合わせと各ノード10の処理とにより実現される場合に、従来は、両者をソフトウェアにて実装していたが、実施例1のプログラム処理装置1−1では、両者を分離し、複数のノードの組み合わせをハードウェアにて実装し、各ノード10の処理をソフトウェアにて実装するようにした。そして、複数のノード10が組み合わされたハードウェアからノード接続状況が取得され、DB34に格納された各ノード10の処理に関する情報を用いて、所定の処理が行われる。これにより、特殊なプログラミング能力等のスキルを必要とすることなく、使用し易い環境の下で開発可能なビジュアルプログラミングによるプログラム処理装置1−1を実現することができる。
また、プログラミング要素であるノード10の構成は、図3及び図4に示したように一目瞭然であり、ノード10を安価に実装することができるから、新たな構成のノード10を簡単に開発することができる。これにより、オープン性に優れたプログラム処理装置1−1を実現できる。
また、所定の処理を実現する基本的なプログラミングは、ケーブルを用いた物理的なノード10間の接続、及び識別信号を生成するための半固定抵抗の設定により行われる。つまり、ケーブルの接続操作、及びボタン操作またはつまみによる調整操作で済むから、インタラクション性及び直感性に優れたプログラム処理装置1−1を実現できる。
また、各ノード10の処理内容のプログラムはDB34に格納されているから、その更新及び追加は、インターネット上のソフトウェアライブラリ等からDB34にダウンロードすれば済む。これにより、拡張性に優れたプログラム処理装置1−1を実現できる。
次に、実施例2について説明する。図15は、実施例2のプログラム処理装置を含む全体システムの構成を示す概略図である。このプログラム処理システムは、所定の処理を行うプログラム処理装置1−2と、放送コンテンツを送信する放送局2と、各ノードに関する情報等が格納されたクラウドサーバ5と、様々なコンテンツを送信するサーバ(図示せず)と、外部入出力機器4とを備えて構成される。プログラム処理装置1−2とクラウドサーバ5及びサーバ(図示せず)とは、インターネット等の通信ネットワーク3を介して接続される。
プログラム処理装置1−2は、実施例1のプログラム処理装置1−1と同様に、ユーザによって、所定の処理を行うように構成されるデバイスに相当し、複数のノード10、マルチプレクサ20、マイコンボード(制御部)30−2、PC40及び放送受信モジュール50等を備えている。
図1に示した実施例1のプログラム処理装置1−1と図2に示す実施例2のプログラム処理装置1−2とを比較すると、両プログラム処理装置1−1,1−2は、複数のノード10、マルチプレクサ20、PC40及び放送受信モジュール50等を備えている点で同一であるが、プログラム処理装置1−2は、プログラム処理装置1−1のマイコンボード30−1とは異なるマイコンボード30−2を備えている点で相違する。プログラム処理装置1−2のマイコンボード30−2及びクラウドサーバ5による処理は、プログラム処理装置1−1のマイコンボード30−1による処理と同等である。複数のノード10、マルチプレクサ20、PC40及び放送受信モジュール50等については実施例1にて説明済みであるから、ここでは説明を省略する。
マイコンボード30−2は、切替信号をマルチプレクサ20に出力し、切替信号に対応するノード10からの識別信号をマルチプレクサ20から入力し、入力した識別信号を、通信ネットワーク3を介してクラウドサーバ5へ送信する。そして、マイコンボード30−2は、クラウドサーバ5からコンテンツ要求・実行命令を受信し、所定の処理を行い、外部入出力機器4に対し制御信号等を入出力する。また、マイコンボード30−2は、必要に応じて、通信ネットワーク3に接続されたサーバからコンテンツを受信したり、PC40からコンテンツを入力したり、放送局2から放送受信モジュール50を介して放送コンテンツを入力したりする。そして、マイコンボード30−2は、入力したコンテンツ等をクラウドサーバ5へ送信する。
〔マイコンボード〕
次に、図15に示したマイコンボード30−2について説明する。図16は、マイコンボード30−2の構成を示す機能ブロック図である。マイコンボード30−2は、識別信号取得部31、切替信号出力部32、識別信号取得制御部38、実行処理部39、外部入出力機器制御部36及び通信I/F部37−2を備えている。マイコンボード30−2は、インターネット等の通信ネットワーク3に接続され、計算機資源または通信端末としてのPC40に接続され、また、放送受信モジュール50及び外部入出力機器4に接続される。また、マイコンボード30−2は、通信I/F部37−2及び通信ネットワーク3を介してクラウドサーバ5に接続される。尚、マイコンボード30−2は、放送受信モジュール50を備えるようにしてもよい。
図7に示した実施例1のマイコンボード30−1と図16に示す実施例2のマイコンボード30−2とを比較すると、両マイコンボード30−1,30−2は、識別信号取得部31、切替信号出力部32及び外部入出力機器制御部36を備えている点で同一であるが、マイコンボード30−2は、マイコンボード30−1のDB34を備えておらず、マイコンボード30−1のノード接続状況取得処理部33及び解釈・実行処理部35の代わりに識別信号取得制御部38及び実行処理部39を備え、マイコンボード30−1の通信I/F部37−1の代わりに通信I/F部37−2を備えている点で相違する。識別信号取得部31、切替信号出力部32及び外部入出力機器制御部36については実施例1にて説明済みであるから、ここでは説明を省略する。
識別信号取得制御部38は、全てのノード10からの識別信号を取得するために、ノード10毎の制御信号を生成し、当該制御信号を切替信号出力部32に出力し、制御信号に対応する所定ノード10からの識別信号を識別信号取得部31から入力する。これにより、識別信号取得制御部38は、全てのノード10からの識別信号を取得することができる。また、識別信号取得制御部38は、取得した全てのノード10からの識別信号を通信I/F部37−2に出力する。
通信I/F部37−2は、識別信号取得制御部38から、全てのノード10からの識別信号を入力し、通信ネットワーク3を介してクラウドサーバ5へ送信し、クラウドサーバ5からコンテンツ要求・実行命令を入力し、実行処理部39に出力する。また、通信I/F部37−2は、実行処理部39からの指示に従い、通信ネットワーク3に接続されたサーバ、PC40等からコンテンツを取得し、放送受信モジュール50から放送コンテンツを取得し、実行処理部39に出力する。また、通信I/F部37−2は、実行処理部39から情報を入力し、通信ネットワーク3に接続されたサーバ、PC40等へ当該情報を出力する。
実行処理部39は、クラウドサーバ5から通信ネットワーク3及び通信I/F部37−2を介してコンテンツ要求・実行命令を順次入力し、コンテンツ要求・実行命令に従って一連の処理(所定の処理)を行う。例えば、実行処理部39は、一連の処理の中で、コンテンツ要求の命令に従って、通信I/F部37−2を介して通信ネットワーク3に接続されたサーバ、PC40等からコンテンツを入力し、放送受信モジュール50を介して放送コンテンツを入力し、入力したコンテンツ等を通信I/F部37−2及び通信ネットワーク3を介してクラウドサーバ5へ送信する。また、実行処理部39は、一連の処理の中で実行命令に従って、外部入出力機器制御部36を介して外部入出力機器4との間で、制御信号等の情報を入出力する。つまり、実行処理部39は、クラウドサーバ5からのコンテンツ要求・実行命令を、通信I/F部37−2を介して入力し、コンテンツ要求・実行命令に応従った処理を順次実行し、コンテンツ要求の命令に対応するコンテンツ等及び実行命令に対応する実行完了等の情報を、通信I/F部37−2を介してクラウドサーバ5へ送信することにより、所定の処理を行う。
〔クラウドサーバ〕
次に、図15に示したクラウドサーバ5について説明する。図17は、クラウドサーバ5の構成を示す機能ブロック図である。クラウドサーバ5は、通信I/F部51、ノード接続状況取得処理部52、DB設定部53、DB54及び解釈(・実行)処理部55を備えている。クラウドサーバ5は、インターネット等の通信ネットワーク3を介してプログラム処理装置1−2に接続される。DB54のデータ構成は、図8及び図13に示したDB34と同じである。
通信I/F部51は、解釈処理部55からコンテンツ要求・実行命令を入力し、DB設定部53からDB設定情報を入力し、通信ネットワーク3を介してプログラム処理装置1−2へ送信する。また、通信I/F部51は、プログラム処理装置1−2から通信ネットワーク3を介してDB設定情報、識別信号、コンテンツ等を受信し、DB設定部53、ノード接続状況取得処理部52及び解釈処理部55にそれぞれ出力する。
DB設定部53は、通信I/F部51からDB設定情報を入力し、入力したDB設定情報をDB54に格納する。また、DB設定部53は、DB54からDB設定情報を読み出し、読み出したDB設定情報を通信I/F部51に出力する。
例えば、プログラム処理装置1−2のPC40は、ユーザの操作により入力したDB設定情報を、通信ネットワーク3を介してクラウドサーバ5へ送信し、クラウドサーバ5のDB設定部53は、通信I/F部51を介してDB設定情報を入力し、DB54に格納する。また、PC40は、ユーザの操作に従って、DB読み出し要求をクラウドサーバ5へ送信し、クラウドサーバ5のDB設定部53は、通信I/F部51を介してDB読み出し要求を入力し、DB読み出し要求が示す情報をDB54から読み出し、読み出した情報(DB設定情報)を、通信I/F部51を介してPC40へ送信する。これにより、プログラム処理装置1−2のPC40を操作するユーザは、クラウドサーバ5のDB54にDB設定情報を書き込むことができ、クラウドサーバ5のDB54に格納されたDB設定情報を読み出すことができる。この場合、ユーザは、PC40の代わりに、通信ネットワーク3に接続されたクライアントのコンピュータを用いるようにしてもよい。
このように、ユーザが、DB54に格納されたプログラムデータを更新するための操作を行うことにより、クラウドサーバ5は、そのプログラムデータをプログラム処理装置1−2へダウンロードすることなく、クラウドサーバ5のDB54は、最新のプログラムデータを常に保持することができる。また、プログラム処理装置1−2は、同じノード接続状況の下で異なる処理を行うことができ、マイコンボード30−2のコストを削減することができる。
ノード接続状況取得処理部52は、通信I/F部51から全てのノード10からの識別信号を入力すると、DB54からノード10の番号、ノード10の識別情報及び出力ポートの識別情報を読み出す。そして、ノード接続状況取得処理部52は、入力した全てのノード10からの識別信号が示す識別情報、並びにDB54から読み出したノード10の番号、ノード10の識別情報及び出力ポートの識別情報に基づいて、全てのノード10における出力ポートと入力ポートとの間の接続関係を示すノード接続状況を取得し、ノード接続状況を解釈処理部55に出力する。このノード接続状況の取得処理は、実施例1のノード接続状況取得処理部33による処理と同様である。
解釈処理部55は、ノード接続状況取得処理部52からノード接続状況を入力すると共に、DB54から各ノード10についての識別情報等を含む機能・制御情報を読み出し、入力したノード接続状況、並びに読み出した機能・制御情報に含まれる入力ポート種別及び出力ポート種別に基づいて、信号の向きを含むノード接続状況を生成する。この信号の向きを含むノード接続状況の生成処理は、実施例1の解釈・実行処理部35による処理と同様である。そして、解釈処理部55は、信号の向きを含むノード接続状況及び機能・制御情報に基づいて処理内容を解釈し、プログラム処理装置1−2におけるマイコンボード30−2の実行処理部39に一連の処理(所定の処理)を行わせるためのコンテンツ要求・実行命令を生成する。そして、解釈処理部55は、コンテンツ要求・実行命令を通信I/F部51に順次出力し、当該コンテンツ要求・実行命令に対応するコンテンツ等の返答を通信I/F部51から順次入力する。これにより、プログラム処理装置1−2におけるマイコンボード30−2の実行処理部39は、コンテンツ要求・実行命令に従った処理を順次行い、コンテンツ要求・実行命令に対応する返答をクラウドサーバ5へ送信しながら、一連の処理を行う。
以上のように、実施例2のプログラム処理装置1−2によれば、プログラム要素である複数のノード10を複数組み合わせて所定の処理を行う際に、まず、ユーザが、ノード10同士をケーブルにて接続し、各ノード10の識別情報及び当該ノード10における出力ポートの識別情報を設定することにより、プログラミング作業を行う。そして、マイコンボード30−2の識別信号取得制御部38は、マルチプレクサ20を切り替えるための制御信号を出力しながら、ノード10からの識別信号(ノード10の識別情報を示す識別信号及びノード10の出力ポートの識別情報を示す識別信号)を入力することで、全てのノード10からの識別信号を取得してクラウドサーバ5へ送信するようにした。そして、マイコンボード30−2の実行処理部39は、クラウドサーバ5からのコンテンツ要求・実行命令に応じた処理を順次行い、コンテンツ要求・実行命令に対応する返答をクラウドサーバ5へ送信することにより、所定の処理を行うようにした。また、クラウドサーバ5のノード接続状況取得処理部52は、プログラム処理装置1−2のマイコンボード30−2から、全てのノード10からの識別信号を受信し、識別信号が示す識別情報、及びDB54に格納された番号及び識別情報(ノード10の識別情報及び当該ノード10の出力ポートの識別情報)に基づいて、全てのノード10における出力ポートと入力ポートとの間の接続関係を示すノード接続状況を取得するようにした。そして、解釈処理部55は、ノード接続状況取得処理部52により取得されたノード接続状況、並びにDB54に格納された入力ポート種別及び出力ポート種別に基づいて、信号の向きを含むノード接続状況を生成し、DB54から各ノード10についてのプログラム等の機能・制御情報を読み出し、ノード接続状況及び機能・制御情報に基づいて処理内容を解釈し、プログラム処理装置1−2におけるマイコンボード30−2の実行処理部39に一連の処理(所定の処理)を行わせるためのコンテンツ要求・実行命令を生成し、コンテンツ要求・実行命令をプログラム処理装置1−2のマイコンボード30−2へ順次送信するようにした。
このように、所定の処理が、複数のノード10の組み合わせと各ノード10の処理とにより実現される場合に、従来は、両者をソフトウェアのみにて実装していたが、実施例2のプログラム処理装置1−2では、両者を分離し、複数のノード10の組み合わせをプログラム処理装置1−2のハードウェアにて実装し、各ノード10の処理をクラウドサーバ5のソフトウェアにて実装するようにした。そして、通信ネットワーク3を介してプログラム処理装置1−2とクラウドサーバ5との間で情報を送受信しながら、プログラム処理装置1−2において所定の処理が行われる。これにより、特殊なプログラミング能力等のスキルを必要とすることなく、誰もが使用し易い環境の下で開発可能なビジュアルプログラミングによるプログラム処理装置1−2及びシステムを実現することができる。また、実施例1と同様に、オープン性、インタラクション性、直感性及び拡張性に優れたプログラム処理装置1−2を実現できる。
さらに、ユーザの操作により、クラウドサーバ5のDB54に格納されたプログラムデータを更新することで、DB54は、プログラム処理装置1−2において所定の処理を行う際の最新のプログラムデータを常に保持することができる。この場合、プログラム処理装置1−2のマイコンボード30−2は、DB54を備える必要がないから、マイコンボード30−2のコストを削減することができる。
以上、実施例1,2を挙げて本発明を説明したが、本発明は前記実施例1,2に限定されるものではなく、その技術思想を逸脱しない範囲で種々変形可能である。実施例1,2では、ノード10として、5個の入力ポート及び5個の出力ポートを備えた共通のデバイスを用いるようにしたが、ポート数はそれぞれ5個に限定されるものではない。
また、実施例1,2では、ノード10とマイコンボード30−1,30−2との間は、図3〜図6に示したように、識別信号を電位の信号としてノード10単位に切り替えることにより、パラレルで直接接続するようにしたが、所定の通信規格に従ったシリアル通信にて各ノード10と接続するようにしてもよい。
また、図12に示したプログラミング例のノード接続状況を生成する際に、実施例1では、まず、プログラム処理装置1−1におけるマイコンボード30−1のノード接続状況取得処理部33が、全てのノード10における出力ポートと入力ポートとの間の接続関係を示すノード接続状況を取得し、次に、解釈・実行処理部35が、信号の向きを含むノード接続状況を生成するようにした。これは、ノード10の出力ポートと他のノード10の入力ポートとの間の接続において、信号の向きが出力ポートから入力ポートへの場合だけでなく、入力ポートから出力ポートへの場合にも適用可能なノード接続状況を生成するためである。これに対し、ノード10間の信号の向きが、全て出力ポートから入力ポートへの場合には、解釈・実行処理部35は、ノード接続状況取得処理部33により取得されたノード接続状況を、信号の向きを含むノード接続状況としてそのまま用いるようにしてもよい。これにより、解釈・実行処理部35は、信号の向きを含むノード接続状況を生成するために、DB34からノード10の入力ポート種別及び出力ポート種別を読み出す必要がなく、信号の向きを含むノード接続状況を生成する必要もないから、処理負荷を低減することができる。実施例2において、クラウドサーバ5の解釈処理部55の処理についても同様である。
また、実施例1において、ノード接続状況を取得する際に、プログラム処理装置1−1におけるマイコンボード30−1のノード接続状況取得処理部33は、ノード10からの識別信号が示す識別情報、並びにDB34から読み出したノード10の番号、ノード10の識別情報及び出力ポートの識別情報に基づいて、ノード接続状況を取得するようにした。これに対し、ユーザが、ノード10の識別情報及び当該ノード10の出力ポートの識別情報として、予め取り決めた、当該ノード10を識別可能な情報、及び当該ノード10の出力ポートを識別可能な情報をそれぞれ設定し、ノード接続状況取得処理部33は、取得したノード10からの識別信号が示す識別情報に基づいて、DB34から識別情報を読み出すことなく、ノード接続状況を取得するようにしてもよい。例えば、ユーザは、固定の識別情報として、ノード10(1)(番号1)の識別情報を100、ノード10(1)の出力ポート1〜4の識別情報を110〜140、ノード10(2)(番号2)の識別情報を200、ノード10(2)の出力ポート1〜4の識別情報を210〜240にそれぞれ設定する。これにより、ノード接続状況取得処理部33は、例えば、取得したノード10の入力ポート1の識別信号が示す識別情報が210の場合、210がノード10(2)の出力ポート1の識別情報であるものと固定的に設定されているから、当該ノード10の当該入力ポート1とノード10(2)(番号2)の出力ポート1とが接続されていると直接判定することができる。したがって、ノード接続状況取得処理部33は、DB34から識別情報を読み出す必要がなく、DB34にも識別情報を格納する必要がないから、処理負荷を低減することができる。実施例2において、クラウドサーバ5のノード接続状況取得処理部52の処理についても同様である。