IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社AVADの特許一覧

特開2024-84875プログラム実行制御システムおよびプログラム実行制御装置
<>
  • 特開-プログラム実行制御システムおよびプログラム実行制御装置 図1
  • 特開-プログラム実行制御システムおよびプログラム実行制御装置 図2
  • 特開-プログラム実行制御システムおよびプログラム実行制御装置 図3
  • 特開-プログラム実行制御システムおよびプログラム実行制御装置 図4
  • 特開-プログラム実行制御システムおよびプログラム実行制御装置 図5
  • 特開-プログラム実行制御システムおよびプログラム実行制御装置 図6
  • 特開-プログラム実行制御システムおよびプログラム実行制御装置 図7
  • 特開-プログラム実行制御システムおよびプログラム実行制御装置 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024084875
(43)【公開日】2024-06-26
(54)【発明の名称】プログラム実行制御システムおよびプログラム実行制御装置
(51)【国際特許分類】
   G06F 8/60 20180101AFI20240619BHJP
【FI】
G06F8/60
【審査請求】未請求
【請求項の数】4
【出願形態】OL
(21)【出願番号】P 2022199027
(22)【出願日】2022-12-14
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLUETOOTH
(71)【出願人】
【識別番号】520509845
【氏名又は名称】株式会社AVAD
(74)【代理人】
【識別番号】100141106
【弁理士】
【氏名又は名称】池田 清志
(72)【発明者】
【氏名】谷山 詩温
(72)【発明者】
【氏名】長澤 悠介
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376AA32
5B376AA33
5B376AB19
(57)【要約】
【課題】他方の制御装置に接続された制御対象機器を制御する。
【解決手段】第1制御プログラムを実行する制御装置5と接続された第1端末1と、第2制御プログラムを実行する制御装置9と接続された第2端末2とがネットワークNTを介して接続された命令実行制御システムであって、第1端末1は、外部入力された命令が第1命令か否かを判定する命令判定手段12と、第1命令であると判定された場合に、制御装置5に第1命令を実行させるとともに、第1命令でないと判定された場合に、命令を第2端末2に送信する命令制御手段14とを備え、第2端末2は、外部入力された命令が第2命令か否かを判定する命令判定手段22と、第2命令であると判定された場合に、制御装置9に第2命令を実行させるとともに、第2命令でないと判定された場合に、命令を第1端末1に送信する命令制御手段24とを備える。
【選択図】 図1
【特許請求の範囲】
【請求項1】
第1制御プログラムを実行する第1制御装置と接続された第1端末と、第2制御プログラムを実行する第2制御装置と接続された第2端末とがネットワークを介して接続された命令実行制御システムであって、
前記第1端末は、
外部入力された命令が前記第1制御プログラムに対する第1命令か否かを判定する第1命令判定手段と、
前記第1命令であると判定された場合に、前記第1制御装置に前記第1命令を実行させるとともに、前記第1命令でないと判定された場合に、前記命令を前記第2端末に送信する第1命令制御手段と、を備え、
前記第2端末は、
外部入力された命令が前記第2制御プログラムに対する第2命令か否かを判定する第2命令判定手段と、
前記第2命令であると判定された場合に、前記第2制御装置に前記第2命令を実行させるとともに、前記第2命令でないと判定された場合に、前記命令を前記第1端末に送信する第2命令制御手段と、を備えた
ことを特徴とするプログラム実行制御システム。
【請求項2】
前記第1命令制御手段は、
前記第1命令であると判定された場合に、前記第1制御装置に前記第1命令を実行させるとともに前記第1命令を前記第2端末に送信し、前記第1命令でないと判定された場合に、前記命令を前記第2端末に送信し、
前記第2端末は、
前記第1制御装置と前記第1制御装置により制御される制御対象機器とをシミュレーションするシミュレーション手段をさらに備え、
第2命令制御手段は、
前記第1端末から送信された命令が前記第1命令である場合に、前記シミュレーション手段に前記第1命令を実行させ、前記第1端末から送信された命令が前記第2命令である場合に、前記第2制御装置に前記第2命令を実行させる
ことを特徴とする請求項1記載のプログラム実行制御システム。
【請求項3】
前記第2端末に送信される命令のうち前記シミュレーション手段に対する前記第1命令は、所定のルールによって纏められ命令群として送信される
ことを特徴とする請求項2記載のプログラム実行制御システム。
【請求項4】
ネットワークを介して第2端末と接続されるとともに、第1制御プログラムを実行する第1制御装置と接続されたプログラム実行制御装置であって、
外部入力された命令が前記第1制御プログラムに対する第1命令か否かを判定する第1命令判定手段と、
前記第1命令であると判定された場合に、前記第1制御装置に前記第1命令を実行させるとともに、前記第1命令でないと判定された場合に、前記命令を前記第2端末に送信する第1命令制御手段と、
を備えたことを特徴とするプログラム実行制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、作成されたプログラムを制御するプログラム実行制御システムおよびプログラム実行制御装置に関する。
【背景技術】
【0002】
コンピュータプログラミングの普及に伴い、例えば若年層が制御対象装置を制御するための制御プログラムを生成するプログラミングを学習する際、より効率的に学習できるツールが切望されている。
それを実現するためには、ネットワークを介した複数の端末間で、作成したプログラムを共有し、互いに実行状況を確認可能な環境が必要となる。
【0003】
特許文献1には、第1メインプログラムでスタンドアロンプログラムを実行し、第1端末で実行されている第1メインプログラムと第2端末で実行されている第2メインプログラムによって第1端末と第2端末との間のネットワーク接続を確立するステップと、ネットワーク接続によって第1端末から第2端末への画像情報の伝送及び第2端末から第1端末への第2操作命令の伝送を実現するステップとを含むスタンドアロンプログラムの実行方法に関する技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特表2022-517562号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に記載のスタンドアロンプログラムの実行方法では、第1端末から第2端末への画像情報を伝送したり、第2端末から第1端末への第2操作命令を伝送したりするが、第1端末や第2端末にそれぞれ制御装置や制御対象機器などの制御対象は接続されておらず、第1端末や第2端末のうち他方の端末に接続された制御対象を制御することが困難であった。
【0006】
本発明は、上記問題点に鑑みてなされたものであり、他方の端末に接続された制御対象を制御するプログラム実行制御システムおよびプログラム実行制御装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を解決するため、本発明に係るプログラム実行制御システムの第1の特徴は、
第1制御プログラムを実行する第1制御装置と接続された第1端末と、第2制御プログラムを実行する第2制御装置と接続された第2端末とがネットワークを介して接続された命令実行制御システムであって、
前記第1端末は、
外部入力された命令が前記第1制御プログラムに対する第1命令か否かを判定する第1命令判定手段と、
前記第1命令であると判定された場合に、前記第1制御装置に前記第1命令を実行させるとともに、前記第1命令でないと判定された場合に、前記命令を前記第2端末に送信する第1命令制御手段と、を備え、
前記第2端末は、
外部入力された命令が前記第2制御プログラムに対する第2命令か否かを判定する第2命令判定手段と、
前記第2命令であると判定された場合に、前記第2制御装置に前記第2命令を実行させるとともに、前記第2命令でないと判定された場合に、前記命令を前記第1端末に送信する第2命令制御手段と、を備えた
ことにある。
【発明の効果】
【0008】
本発明に係るプログラム実行制御システムおよびプログラム実行制御装置によれば、他方の制御装置に接続された制御対象機器を制御することができる。
【図面の簡単な説明】
【0009】
図1】本発明の実施例1に係るプログラム実行制御システム100の構成を説明した図
図2】本発明の実施例1に係るプログラム実行制御システムにおける情報の流れを模式的に示した説明図である。
図3】(a)は、本発明の実施例1に係るプログラム実行制御システムが備える表示部に表示された命令生成表示画面の一例を示した図であり、(b)は、本発明の実施例1に係るプログラム実行制御システムが備える表示部に表示された命令生成表示画面の一例を示した図である。
図4】本発明の実施例1に係るプログラム実行制御システムにおける処理内容を示したフローチャートである。
図5】本発明の実施例2に係るプログラム実行制御システムの構成を説明した図であり、
図6】本発明の実施例2に係るプログラム実行制御システムにおける情報の流れを模式的に示した説明図である。
図7】(a)は、本発明の実施例2に係るプログラム実行制御システムが備える表示部に表示された命令生成表示画面の一例を示した図であり、(b)は、本発明の実施例2に係るプログラム実行制御システムが備える表示部に表示されたシミュレーション実行画面の一例を示した図である。
図8】本発明の実施例2に係るプログラム実行制御システムにおける処理内容を示したフローチャートである。
【発明を実施するための形態】
【0010】
以下、本発明の実施の形態について、図面を参照して説明する。各図面を通じて同一若しくは同等の部位や構成要素には、同一若しくは同等の符号を付している。ただし、図面は模式的なものであり、現実のものとは異なることに留意すべきである。また、図面相互間においても互いの寸法の関係や比率が異なる部分が含まれている。
【0011】
また、以下に示す実施の形態は、この発明の技術的思想を具体化するための装置等を例示するものであって、この発明の技術的思想は、各構成部品の配置等を下記のものに特定するものでない。この発明の技術的思想は、特許請求の範囲において、種々の変更を加えることができる。
【0012】
以下、本発明を実施するための形態について図面を参照して説明する。
【0013】
<実施例1>
図1は、本発明の実施例1に係るプログラム実行制御システム100の構成を説明した図であり、図2は、本発明の実施例1に係るプログラム実行制御システム100における情報の流れを模式的に示した説明図である。
【0014】
図1に示すように、プログラム実行制御システム100は、第1端末1と、第2端末2と、表示部3と、入力部4と、制御装置5と、制御対象機器6と、表示部7と、入力部8と、制御装置9と、制御対象機器10とを備えており、第1端末1と、第2端末2とは、ネットワークNTを介して接続されている。
【0015】
プログラム実行制御システム100は、例えば、コンピュータプログラミング(以下、プログラミングという)の学習として使用可能なシステムである。第1端末1と第2端末2、表示部3と表示部7、入力部4と入力部8、制御装置5と制御装置9、制御対象機器6と制御対象機器10は、それぞれ同一の構成を有するため、第1端末1、表示部3、入力部4、制御装置5、および制御対象機器6について説明する。
【0016】
第1端末1は、タブレット型コンピュータ、高機能携帯電話(所謂、スマートフォン)、ノート型コンピュータ、デスクトップ型コンピュータ等のコンピュータを用いて構成される。ここでは、第1端末1として、デスクトップ型コンピュータを用いた例について説明する。詳細は後述する。
【0017】
表示部3は、有機EL(electroluminescence)ディスプレイや、液晶ディスプレイ等の画像出力装置を備え、第1端末1から供給された出力信号に基づいて、命令生成表示画面など各種画面を表示する。
【0018】
入力部4は、マウスやキーボード等の入力部を備えており、ユーザ操作により命令などの入力信号を生成して第1端末1へ供給する。
【0019】
制御装置5は、第1端末1にて制御される装置である。また、制御装置5は、その機能上、制御手段51と、記憶手段52とを備えている。制御装置5と第1端末1とは、有線又は無線の通信方法で通信することが可能である。有線通信としては、例えば、USB(Universal Serial Bus)等の様々な規格に準拠した通信方法を用いることが可能である。無線通信としては、IEEE(Institute of Electrical and Electronics Engineers)802.15.1(所謂、Bluetooth)やIEEE802.11(所謂、Wi-Fi)等の様々な規格に準拠した通信方法を用いることが可能である。
【0020】
記憶手段52は、例えば、不揮発性半導体などで構成されており、制御対象機器6を制御するための第1制御プログラムが記憶している。制御手段51は、例えば、CPU(Central Processing Unit)などの演算装置で構成されており、記憶手段52から第1制御プログラムを読み込み、読み込んだ第1制御プログラムを実行することにより、第1端末1から供給される第1命令に基づいて、制御対象機器6を制御することが可能となる。
【0021】
制御対象機器6は、第1制御プログラムを実行する制御装置5にて制御される装置である。制御対象機器6は、制御装置5にて認識可能な所定の規格に準拠していれば様々な装置を用いることが可能である。ここでは、LED(Light Emitting Diode)等の発光素子を8×8のマトリクス状に配置したLEDボードを用いる例について説明する。なお、制御対象機器6としては、LEDボードに限らず、8セグメントのLED、命令に基づく画像を表示する装置、命令に基づく音声を出力する装置、命令に基づく動作を行う玩具用又は産業用ロボット、命令に基づき値を取得するセンサー装置等の様々な装置を制御対象機器6として用いることが可能である。制御装置5と制御対象機器6とは、有線又は無線の通信方法で通信することが可能である。有線通信としては、例えば、汎用I/Oポート、USB(Universal Serial Bus)、IEEE(Institute of Electrical and Electronics Engineers)1394等の様々な規格に準拠した通信方法を用いることが可能である。無線通信としては、IEEE802.15.1(所謂、Bluetooth)やIEEE802.11(所謂、Wi-Fi)等の様々な規格に準拠した通信方法を用いることが可能である。
【0022】
第1端末1は、実行制御プログラムを実行することにより、その機能上、命令生成手段11と、命令判定手段12と、通信手段13と、命令制御手段14と、表示制御手段15とを有する。
【0023】
命令生成手段11は、入力部4によるユーザ入力に基づいて、制御対象機器6や制御対象機器10に対する命令を生成する。例えば、制御対象機器6が有するLEDボードを1000(ミリ秒)の間点灯させる命令を生成したり、制御対象機器10が有するLEDボードを500(ミリ秒)の間点灯させた後に500(ミリ秒)の間消灯させることで点滅させる命令を生成したりする。また、命令生成手段11は、第1制御プログラムに対応する第1命令と、第2制御プログラムに対応する第2命令との両方を生成することができる。例えば、ユーザが、入力部4から制御対象機器6を選択して命令を生成する操作を行った場合、命令生成手段11は、第1制御プログラムに対応する第1命令を生成し、入力部4から制御対象機器10を選択して命令を生成する操作を行った場合、命令生成手段11は、第2制御プログラムに対応する第2命令を生成する。
【0024】
命令判定手段12は、外部入力された命令、すなわち、第2端末2から送信された命令、や命令生成手段11により生成された命令が第1制御プログラムに対応する第1命令か否かを判定する。ここで、第1制御プログラムとは、制御対象機器6を制御するために制御手段51が実行するプログラムである。制御手段51により第1制御プログラムが実行された状態で、第1制御プログラムに対応する第1命令が第1端末1から供給されることにより、制御対象機器6を供給された命令に基づいて制御することができる。命令生成手段11により生成された命令が第1制御プログラムに対応する第1命令か否かは、例えば、第1制御プログラムに対応するキーワードを定めておき、そのキーワードが入力された場合に、第1制御プログラムに対応すると判定するようにしてもよい。また、予め命令生成手段11により生成された命令が第1制御プログラムに対応する第1命令のリストを第1端末1の内部メモリに保存しておき、命令判定手段12は、命令生成手段11により生成された命令がリストにある場合に、第1制御プログラムに対応すると判定するようにしてもよい。また、第1制御プログラムを実行する制御装置5にIPアドレスやMACアドレスを設定するようにしてもよいし、トークンや暗号化情報を設定するようにしてもよいし、任意のネットワーク内で識別可能な情報を設定するようにしてもよく、命令とともに送信されたこれらいずれかの情報に基づいて第1制御プログラムに対応するか否かを判定するようにしてもよい。
【0025】
制御手段51により第1制御プログラムが実行されることにより、制御手段51は供給された第1命令を実行することが可能となる。一方で、命令生成手段11により生成された命令が第1命令ではない場合、制御手段51に供給されたとしても、制御手段51は供給された命令を実行することはできない。
【0026】
通信手段13は、第2端末2と間で命令を送受信するインターフェイスである。命令を送信する際、通信手段13は、第2端末2を一意に識別可能な識別情報に基づいて、命令を第2端末2へ送信する。なお、ここでは、第1端末1と第2端末2とがネットワークNTを介して接続された例について説明するが、制御装置の接続台数は2台に限らない。3台以上の制御装置が接続されている場合、接続されたそれぞれの制御装置の識別情報に基づいて命令を送信することも可能であり、また、ネットワークNTに接続された制御装置の全てに命令を送信することも可能である。識別情報は、例えばIPアドレスやMACアドレスでもよいし、キーワードなど任意のネットワーク内で識別可能な情報であってもよく、制御装置を識別可能な情報であればどのようなものでもよい。
【0027】
命令制御手段14は、命令判定手段12により第1命令であると判定された場合に、制御装置5に第1命令を実行させる。また、命令制御手段14は、命令判定手段12により第1命令ではないと判定された場合に、その命令は、第2制御プログラムに対する第2命令であると判定し、宛先を第2端末2としてその命令を第2端末2に送信する。
【0028】
命令制御手段14は、第2端末2から受信した命令が第1命令であると判定された場合に、制御装置5に第1命令を実行させる。
【0029】
表示制御手段15は、表示部3に命令生成表示画面など各種画面を表示させる。具体的には、表示制御手段15は、命令生成手段11により生成された命令や第2端末2から送信された命令を命令生成表示画面に表示させたり、制御装置5から受信した制御対象機器6の状態情報を表示部3に表示させたりする。
【0030】
図3(a)は、本発明の実施例1に係るプログラム実行制御システム100が備える表示部3に表示された命令生成表示画面の一例を示した図であり、(b)は、本発明の実施例1に係るプログラム実行制御システム100が備える表示部7に表示された命令生成表示画面の一例を示した図である。ここでは、第1端末1において、第1命令と第2命令とが生成された例を挙げて説明する。
【0031】
図3(a)に示すように、命令生成表示画面には、命令P110として、「プログラム連携先にキーワード“a1”を送信」する命令文が表示されている。ここでは、このキーワード“a1”が第1端末1を示している。そのため、命令P110は、第1命令として、制御装置5において実行されることになる。
【0032】
命令P110の次に、命令P120が生成されている。命令P120は、「プログラム連携先にキーワード“b1”として命令を送信」する命令文である。ここでは、このキーワード“b1”が第2端末2を示している。
【0033】
命令P120には、送信するための命令P121~P123を含んでいる。命令P121は、「組込LED(PA1)を“ON”」とする命令であり、命令P122は、「一時停止(1000)ミリ秒」とする命令であり、命令P123は、「組込LED(PA1)を“OFF”」とする命令である。これら命令P121~P123が第2端末2に送信されることにより、第2端末2に接続された制御装置9が制御対象機器10を制御することで、LEDボードを1000(ミリ秒)の間、点灯させることができる。
【0034】
命令P130は、送信された命令P110の送信先の宛先が第1端末1であるので、命令P110を受信する命令として表示されている。命令生成表示画面には、命令P130として、「プログラム連携先にキーワード“a1”を受信」する命令文が表示されている。命令P130は、命令P131を含んでいる。命令P131は、「文字列“キーワードを受信”を表示」する命令であり、この命令が実行されることにより、第1端末1に接続された制御装置5が制御対象機器6を制御することで、LEDボード上に“キーワードを受信”が表示される。
【0035】
第2端末2では、図3(b)に示すように、命令生成表示画面に、命令P220として、「プログラム連携先よりキーワード“b1”を受信」する命令文が表示されている。
【0036】
命令P220は、命令P221~P223を含んでいる。命令P221は、「文字列“受信したプログラム命令を実行”を表示」する命令文である。命令P222は、受信した命令P121~P123を実行する命令文である。これにより、第2端末2に接続された制御装置9が制御対象機器10を制御することで、LEDボードを1000(ミリ秒)の間、点灯させることができる。命令P223は、「文字列“受信したプログラム命令を終了」を表示する命令文である。
【0037】
以上のように、本発明の実施例1に係るプログラム実行制御システム100によれば、第1端末1は、外部入力された命令が第1制御プログラムに対する第1命令か否かを判定する命令判定手段12と、第1命令であると判定された場合に、制御装置5に第1命令を実行させるとともに、第1命令でないと判定された場合に、命令を第2端末2に送信する命令制御手段14とを有する。
【0038】
これにより、ネットワークNTを介して第1端末1から第2端末2に接続された制御対象(制御装置9および制御対象機器10)をリアルタイムに制御することができる。また、逆に、ネットワークNTを介して第2端末2から第1端末1に接続された制御対象(制御装置5および制御対象機器6)をリアルタイムに制御することができる。そのため、例えば、第1端末1を操作しているユーザと、第2端末2を操作しているユーザとで同時進行でプログラムの作成を行っている場合、第1端末1側で作成された第2命令を制御対象(制御装置9および制御対象機器10)で実行させることができるので、第2端末2を操作しているユーザにとってプログラミングの理解が進み習得が早くなる。また、その逆に第2端末2側で作成された第1命令を制御対象(制御装置5および制御対象機器6)で実行させることができるので、第1端末1Aを操作しているユーザにとってプログラミングの理解が進み習得が早くなる。すなわち、プログラミングの互学互習を実現することができる。
【0039】
図4は、本発明の実施例1に係るプログラム実行制御システム100における処理内容を示したフローチャートである。
【0040】
図4に示すように、ステップS101において、第1端末1は、ユーザ操作に基づいてプロジェクトを作成または既に作成済みであるプロジェクトを選択する。
【0041】
ステップS103において、第1端末1は、第2端末2からの接続要求を受信する。このとき、第2端末2からは、第2端末2を一意に識別する識別情報と、任意で暗号鍵が送信される。
【0042】
ステップS105において、ユーザが入力部4から、制御するための命令群であるプログラムを作成したり、表示部3に表示されたプログラムを編集したりする。これにより、命令生成手段11が命令を生成しプロジェクトを更新する。
【0043】
ステップS107において、第1端末1は、プログラムを開始する。
【0044】
ステップS109において、第1端末1の命令判定手段12は、命令生成手段11により生成された命令が通信命令か否かを判定する。具体的には、命令判定手段12は、命令生成手段11により生成された命令が第1制御プログラムに対応する第1命令である場合には通信命令ではないと判定し、命令生成手段11により生成された命令が第1制御プログラムに対応する第1命令でない場合には通信命令であると判定する。
【0045】
通信命令であると判定された場合(ステップS109;YES)、ステップS111において、命令制御手段14は、通信手段13を介して、宛先をネットワークNTに接続された全ての端末、または指定された宛先の端末に命令を送信する。ここでは、命令を暗号鍵で暗号化した後、暗号化された命令を第2端末2に送信している。
【0046】
一方、通信命令でないと判定された場合(ステップS109;NO)、ステップS113において、命令制御手段14は、制御装置5に第1命令を実行させる。
【0047】
また、ステップS115において、第2端末2から命令を受信した場合(YES)、ステップS117において、命令制御手段14は、受信した通信命令(ここでは、第1命令)を制御装置5に実行させる。
【0048】
そして、ステップS107において開始したプログラムを構成する一連の命令の実行が終了するまで、ステップS109~S117を繰り返し実行する。
【0049】
ステップS219において、ステップS107において開始したプログラムを構成する一連の命令の実行が終了するとプログラムを終了する。
【0050】
また、第2端末2でも同様に、ステップS201において、第2端末2は、ユーザ操作に基づいてプロジェクトを作成または既に作成済みであるプロジェクトを選択する。
【0051】
ステップS203において、第2端末2は、第1端末1からの接続要求を送信する。このとき、第1端末1からは、第1端末1を一意に識別する識別情報と、任意で暗号鍵が送信される。
【0052】
ステップS205において、ユーザが入力部8から命令の集合であるプログラムを作成したり、表示部7に表示された命令の集合であるプログラムを編集したりする。これにより、命令生成手段21が命令を生成しプロジェクトを更新する。
【0053】
ステップS207において、第2端末2は、プログラムを開始する。
【0054】
ステップS209において、第1端末1から命令を受信した場合(YES)、ステップS211において、命令制御手段24は、受信した通信命令(ここでは、第2命令)を制御装置9に実行させる。
【0055】
また、ステップS213において、第2端末2の命令判定手段22は、命令生成手段21により生成された命令が通信命令か否かを判定する。具体的には、命令判定手段22は、命令生成手段21により生成された命令が第2制御プログラムに対応する第2命令である場合には通信命令ではないと判定し、命令生成手段21により生成された命令が第2制御プログラムに対応する第2命令でない場合には通信命令であると判定する。
【0056】
通信命令であると判定された場合(ステップS213;YES)、ステップS115において、命令制御手段24は、通信手段23を介して、宛先をネットワークNTに接続された全ての端末、または指定された宛先の端末に命令を送信する。ここでは、命令を暗号鍵で暗号化した後、暗号化された命令を第1端末1に送信している。
【0057】
一方、通信命令でないと判定された場合(ステップS213;NO)、ステップS217において、命令制御手段24は、制御装置9に第2命令を実行させる。
【0058】
そして、ステップS207において開始したプログラムを構成する一連の命令の実行が終了するまで、ステップS209~S217を繰り返し実行する。
【0059】
ステップS219において、ステップS207において開始したプログラムを構成する一連の命令の実行が終了するとプログラムを終了する。
【0060】
<実施例2>
本発明の実施例2では、本発明の実施例1に係るプログラム実行制御システム100に、シミュレーション手段をさらに備えた構成を例に挙げて説明する。
【0061】
図5は、本発明の実施例2に係るプログラム実行制御システム101の構成を説明した図であり、図6は、本発明の実施例2に係るプログラム実行制御システム101における情報の流れを模式的に示した説明図である。
【0062】
図5に示すように、プログラム実行制御システム101は、第1端末1Aと、第2端末2Aと、表示部3と、入力部4と、制御装置5と、制御対象機器6と、表示部7と、入力部8と、制御装置9と、制御対象機器10とを備えており、第1端末1Aと、第2端末2Aとは、ネットワークNTを介して接続されている。
【0063】
これらの構成のうち、表示部3と、入力部4と、制御装置5と、制御対象機器6と、表示部7と、入力部8と、制御装置9と、制御対象機器10とは、本発明の実施例1に係るプログラム実行制御システム100が備える各構成と同一構成を有するので、説明を省略する。
【0064】
第1端末1Aは、タブレット型コンピュータ、高機能携帯電話(所謂、スマートフォン)、ノート型コンピュータ、デスクトップ型コンピュータ等のコンピュータを用いて構成される。ここでは、第1端末1Aとして、デスクトップ型コンピュータを用いた例について説明する。詳細は後述する。
【0065】
第1端末1Aは、その機能上、命令生成手段11と、命令判定手段12と、通信手段13と、命令制御手段14Aと、表示制御手段15とを有している。これらの構成のうち、命令生成手段11と、命令判定手段12と、通信手段13と、表示制御手段15とについては、本発明の実施例1に係るプログラム実行制御システム100が備える各構成と同一構成を有するので、説明を省略する。
【0066】
命令制御手段14Aは、命令判定手段12により命令生成手段11が生成した命令が第1命令であると判定された場合に、制御装置5に第1命令を実行させるとともに、第1命令をネットワークNTを介して第2端末2Aに送信する。このとき、第2端末2Aに送信する第1命令は、次の命令が一次停止を含む命令であるか否かや、制御装置5の判断結果に依存して実行する命令かなどの所定のルールに基づいて纏められ命令群として送信される。
【0067】
また、命令制御手段14Aは、命令判定手段12により、命令生成手段11が生成した命令が第1命令でないと判定された場合に、この命令をネットワークNTを介して第2端末2Aに送信する。
【0068】
さらに、命令制御手段14Aは、第2端末2Aから受信した命令が第1命令であると判定された場合に、制御装置5に第1命令を実行させるとともに、第1命令をネットワークNTを介して第2端末2Aに送信する。
【0069】
第2端末2Aは、タブレット型コンピュータ、高機能携帯電話(所謂、スマートフォン)、ノート型コンピュータ、デスクトップ型コンピュータ等のコンピュータを用いて構成される。ここでは、第2端末2Aとして、デスクトップ型コンピュータを用いた例について説明する。詳細は後述する。
【0070】
第2端末2Aは、その機能上、命令生成手段21と、命令判定手段22と、通信手段23と、命令制御手段24Aと、表示制御手段25と、シミュレーション手段30とを有している。これらの構成のうち、命令生成手段21と、命令判定手段22と、通信手段23と、表示制御手段25とについては、本発明の実施例1に係るプログラム実行制御システム100が備える命令生成手段11と、命令判定手段12と、通信手段13と、表示制御手段15とそれぞれ同一構成を有するので、説明を省略する。
【0071】
命令制御手段24Aは、第1端末1Aから送信された命令が第1命令である場合に、シミュレーション手段30に第1命令を実行させる。
【0072】
また、命令制御手段24Aは、第1端末1Aから送信された命令が第1命令ではない場合、第2命令であると判定して、この命令を制御装置9に命令を実行させる。
【0073】
命令制御手段24Aは、命令生成手段21により生成された命令が第2命令であると判定された場合に、制御装置9に第2命令を実行させるとともに、第2命令でないと判定された場合に、第1命令であると判定して、この命令を第1端末1に送信する。
【0074】
シミュレーション手段30は、制御装置5と制御装置5により制御される制御対象機器6とをシミュレーションする。すなわち、第1命令を受信することにより、ソフトウェア上で制御装置5と制御対象機器6のように動作する。
【0075】
図7(a)は、本発明の実施例2に係るプログラム実行制御システム101が備える表示部3に表示された命令生成表示画面の一例を示した図であり、(b)は、本発明の実施例2に係るプログラム実行制御システム101が備える表示部7に表示されたシミュレーション実行画面の一例を示した図である。ここでは、第1端末1において、第1命令と第2命令が生成された例を挙げて説明する。
【0076】
第2端末2からキーワード“a1”として、命令が送信されると、図7(a)に示すように、命令生成表示画面には、命令P320として、「プログラム連携先にキーワード“a1”として命令を受信」する命令文が表示されてる。ここでは、このキーワード“a1”が第1端末1を示している。
【0077】
命令P320は、送信するための命令P321~P323を含んでいる。命令P321は、「文字列“受信したプログラム命令を実行”を表示」する命令であり、命令P322は、受信したプログラムを実行する命令であり、命令P323は、「文字列“受信したプログラム命令を終了”を表示」する命令である。
【0078】
第1端末1が命令P320を受信すると、第1端末1は受信した命令P320を制御装置5に実行させる。例えば、命令P322が、LEDボードを1000(ミリ秒)の間、点灯させる命令である場合、制御装置5は、この命令に従って制御対象機器6のLEDボードを1000(ミリ秒)の間、点灯させる。
【0079】
その後、第1端末1は、ネットワークNTを介して命令P320を第2端末2へ送信する。第2端末2では、シミュレーション手段30が、命令P320を実行する。これにより、図7(b)に示すように、制御対象機器6のLEDボードをシミュレーションしている画像101に1000(ミリ秒)の間、点灯させる。
【0080】
図8は、本発明の実施例2に係るプログラム実行制御システム101における処理内容を示したフローチャートである。
【0081】
図8に示すように、ステップS301において、第1端末1Aは、プログラムを開始すると、ステップS303において、命令制御手段14Aは、命令生成手段11により生成された命令群であるソースコード、または第2端末2Aから送信された命令群であるソースコードを読み込む。ここでは、第1命令の命令群であるソースコードを読み込んだ場合を例に挙げて説明する。
【0082】
ステップS305において、命令制御手段14Aは、次の命令を抽出する。これにより、プログラムに含まれる命令を1つずつ抽出することができる。
【0083】
ステップS307において、命令制御手段14Aは、次の命令が一次停止を含む命令であるか否かを判定する。ここで、一次停止を含む命令とは、処理を一次停止させる命令や、実行終了までに所定の時間を要する命令などのことをいう。
【0084】
次の命令が一次停止を含む命令である場合(ステップS307;YES)、ステップS309において、命令制御手段14Aは、次の命令のソースコードを内部メモリにスタックする。
【0085】
一方、次の命令が一次停止を含む命令ではない場合(ステップS307;NO)、ステップS311において、命令制御手段14Aは、例えば、IF文などの条件分岐処理や、for~while文等の繰り返し処理など制御装置5の判断結果に依存して実行する命令か否か判定する。
【0086】
制御装置5の判断結果に依存して実行する命令である場合(ステップS311;YES)、ステップS319において、命令制御手段14Aは、制御装置5に第1命令を実行させた後、内部メモリにスタックした第1命令のソースコードを送信して内部メモリの第1命令を消去する。
【0087】
一方、制御装置5の判断結果に依存しない命令である場合(ステップS311;NO)、ステップS313において、命令制御手段14Aは、次の第1命令のソースコードを内部メモリにスタックした後、ステップS315において、命令制御手段14Aは、制御装置5に第1命令を実行させる。
【0088】
ステップS317において、命令制御手段14Aは、次の命令があるか否かを判定する。
【0089】
次の命令がある場合(ステップS317;YES)、処理をステップS305に移行する。
【0090】
一方、次の命令がない場合(ステップS317;NO)、命令制御手段14Aは、内部メモリにスタックした第1命令のソースコードを送信した後、内部メモリの第1命令を消去する。
【0091】
ステップS331において、第1端末1Aは、ステップS301において開始したプログラムを終了し、プログラムの終了を第2端末2Aへ通知する。
【0092】
一方、第2端末2Aでは、ステップS401において、第1端末1Aのプログラムが開始されると、シミュレーション手段30にシミュレーション開始命令を送信する。これにより、シミュレーション手段30は、制御装置5と制御装置5により制御される制御対象機器6とのシミュレーションを開始する。
【0093】
ステップS405において、第2端末2の命令判定手段22は、命令生成手段21により生成された命令が通信命令であると判定された場合、命令制御手段24Aは、通信手段23を介して、宛先をネットワークNTに接続された全ての端末、または指定された宛先の端末に命令を送信する。ここでは、命令を暗号鍵で暗号化した後、暗号化された命令を第1端末1Aに送信している。
【0094】
また、ステップS407において、第1端末1Aから第1命令を受信すると、シミュレーション手段30が第1命令を実行する。
【0095】
ステップS409において、第1端末1Aから、プログラムの終了が通知されると、第2端末2Aは、プログラムを終了すると共に、ステップS411において、シミュレーション手段30によるシミュレーションを停止する。
【0096】
以上のように、本発明の実施例2に係るプログラム実行制御システム101によれば、第1端末1Aが、第1命令であると判定された場合に、制御装置5に第1命令を実行させるとともに第1命令を第2端末2Aに送信し、第1命令でないと判定された場合に、命令を第2端末2Aに送信する命令制御手段14Aを備え、第2端末2Aが、制御装置5と制御装置5により制御される制御対象機器6とをシミュレーションするシミュレーション手段30と、第1端末1Aから送信された命令が第1命令である場合に、シミュレーション手段30に第1命令を実行させ、第1端末1Aから送信された命令が第2命令である場合に、制御装置9に第2命令を実行させる命令制御手段24Aを備える。
【0097】
これにより、第2端末2Aは、制御装置5と制御対象機器6とをシミュレーションすることができるので、例えば、ユーザが入力部4から制御対象機器6のLEDボードを点滅させる命令を送信すると共に、表示部7に表示された制御対象機器6に対してもLEDボードを点滅させる命令を送信することができる。また、ユーザが入力部8から制御対象機器6のLEDボードを点滅させる命令を送信することで、第1端末1Aからシミュレーション手段30がシミュレーションしている制御対象機器6のLEDボードを点滅させる命令を受信する。これにより、制御対象機器6と、シミュレーション手段30がシミュレーションしている制御対象機器6の制御状態を同一にすることができる。
【0098】
そのため、例えば、第1端末1Aを操作しているユーザが、第2端末2Aを操作しているユーザにプログラミング指導を行っている場合、第1端末1A側で作成された命令とその命令が実行された場合の制御対象機器6の制御状態をリアルタイムで共有しながら、プログラミングできるので、第2端末2Aを操作しているユーザはプログラミングの理解が進み習得が早くなる。
【0099】
なお、本発明の実施例2に係るプログラム実行制御システム101では、入力部4が、ユーザ操作により命令などの入力信号を生成して第1端末1へ供給したが、これに限らず、制御装置5に直接入力可能な入力部を備える構成としてもよい。この入力部は、ユーザ操作により命令などの入力信号を生成して第1端末1へ供給する入力装置でもよいし、各種機器の位置や、点灯状態、対象物の温度や圧力などを検出するセンサであってもよい。これにより、さまざまな入力情報を加味して、制御装置5が制御対象機器6を制御することが可能となる。
【符号の説明】
【0100】
1,1A 第1端末
2,2A 第2端末
3,7 表示部
4,8 入力部
5,9 制御装置
6,10 制御対象機器
11 命令生成手段
12 命令判定手段
13 通信手段
14,14A 命令制御手段
15 表示制御手段
21 命令生成手段
22 命令判定手段
23 通信手段
24 命令制御手段
24A 命令制御手段
25 表示制御手段
30 シミュレーション手段
51 制御手段
52 記憶手段
100,101 プログラム実行制御システム

図1
図2
図3
図4
図5
図6
図7
図8