(57)【要約】【課題】PLCが行う制御演算への負荷を低減しつつ高速に制御の状態を示すデータを提供するPLCを提供する。【解決手段】外部の機器とのデータ通信可能なPLCは、ユーザプログラムを実行することで制御対象を制御する。ユーザプログラム実行において参照または更新される制御の状態を示すデータを監視するプログラムを備える。監視プログラムは監視条件が満たされた場合に制御の状態を示すデータメッセージをPUSH型のプロトコルを用いて外部の機器へサーバに送信する。【選択図】図３
2015090548.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続され、外部機器と通信可能な制御装置であって、
マイクロプロセッサと、
制御対象機器を制御するためのユーザプログラムと、前記ユーザプログラムに対応する変数と、監視プログラムの格納に用いられる記憶部と、
ネットワークを介してデータの送受信を行う通信部と、
を備え、
前記監視プログラムは、
前記通信部を介して前記外部機器と通信接続を確立させるプログラムと、
前記記憶部にアクセスし、変数の値を読み出すプログラムと、
前記通信接続が確立された外部機器に対し、通信部を介してPUSH型のプロトコルを用いて送信させるプログラムと、を含み、
前記マイクロプロセッサは、
前記ユーザプログラムを繰り返し実行し、前記記憶部に格納された前記変数の値を更新し、
前記監視プログラムを実行し、前記通信接続が確立された外部機器に対し、前記読み出された変数の値についてのデータメッセージを前記PUSH型プロトコルにて送信することを特徴とする、制御装置。
【請求項２】
前記記憶部は、前記変数に対して前記外部機器へ送信する条件を記述した条件データが格納され、
前記監視プログラムは、前記読み出された変数の値について、前記条件データに合致する変数を特定するプログラムをさらに含み、
マイクロプロセッサは、前記監視プログラムを実行することで前記特定された変数についてのデータメッセージを送信することを特徴とする、請求項１に記載の制御装置。
【請求項３】
前記記憶部は、前記変数に対して前記外部機器へ送信する条件を記述した条件データが格納され、
前記監視プログラムは、
前記通信接続が確立された外部機器から受信したメッセージを解析するプログラムと、
前記受信したメッセージに前記条件データが含まれていた場合には、前記記憶部に条件データを記憶させるプログラムをとをさらに含み、
マイクロプロセッサは、前記監視プログラムを実行することで、前記記憶部に対して前記条件データを登録することを特徴とする、請求項１に記載の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、PLC（Programable Logic Controller）等の制御装置及びプログラムに関し
、特に、サーバやモバイル端末などの外部機器へ制御装置の情報を通知する制御装置、およびプログラムに関する。
【背景技術】
【０００２】
PLC等のコントローラは、工場等の自動機械の制御等に用いられ、入出力機能を有し、
例えば、センサ等から出力される値を逐次読込んで制御演算を行い、演算結果を出力することで制御対象を制御する。
【０００３】
PLCとサーバを備えたシステムにおいて、サーバからPLCに対してデータ送信要求を送信し、PLCはサーバからの要求に応答してPLCが保有する制御の状態を示すデータをサーバに対して送信する。パソコン等の他の機器からサーバに対してアクセスすることでPLCから
送信された制御の状態を示すデータにアクセスすることが知られている。（特許文献１）
【０００４】
またPLCにウェブサーバを搭載し、パソコン等の機器からネットワークを介してPLCが備えるウェブサーバにアクセスすることにより、PLCのデータにアクセスすることが知られ
ている。（特許文献２）
【０００５】
また一般的にユーザが作成する制御プログラム(以下ユーザプログラムという)において、PLCがサーバ等の機器にデータを送信する条件を記述し、PLCがユーザプログラムを実行することでPLCが保有する制御の状態を示すデータをネットワークを介してPLCに接続されているパソコンやサーバに送信することが知られている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−９９８０９号公報
【特許文献２】特開平１１−２４９７１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
装置の稼働状況のデータを参照したいユーザにとって、装置の稼働状態や異常状態に関するデータをリアルタイムで参照したいという要望がある。またPLCが保有する装置の稼
働状態に関するデータは、装置異常時の要因分析、装置の稼働状態の把握、装置の保守やメンテナンス等のシーンで用いられるが、データを用いるシーンにおいて参照したいデータが異なる場合がある。
【０００８】
特許文献１、特許文献２に記載されている従来技術においては、リアルタイムにPLCが
保有するデータをユーザに対して提供しようとするとサーバからPLCへのデータ要求の頻
度が増し、制御を行うPLCの負荷が高くなるという課題があった。
【０００９】
またユーザプログラムにおいてデータを送信する条件や頻度をプログラミングしたり、データを送信する条件や頻度をPLCに初期設定するよう構成した場合、データ通知の頻度
や条件および対象のデータの種別を変更しようとすると、ユーザプログラムの変更や設定ツールを接続してのPLCの設定の変更が必要となる。
【００１０】
本発明は、上述の課題を解決するためになされたものであり、その目的は、PLCが行う
制御演算への負荷を低減しつつ高速に制御の状態を示すデータを提供するPLCを提供する
ことである。
また本発明の別の目的は、PLCから送信する制御の状態を示すデータの種類や条件等を
容易に変更できるPLCを提供することである。
【課題を解決するための手段】
【００１１】
一実施形態に従う制御装置は、マイクロプロセッサと、制御対象機器を制御するためのユーザプログラムと、前記ユーザプログラムに対応する変数と、監視プログラムの格納に用いられる記憶部と、ネットワークを介してデータの送受信を行う通信部を備える。
【００１２】
監視プログラムは、通信部を介して前記外部機器と通信接続を確立させるプログラムと、記憶部にアクセスし、変数の値を読み出すプログラムと、通信接続が確立された外部機器に対し、通信部を介してPUSH型のプロトコルを用いて送信させるプログラムとを含み、マイクロプロセッサは、ユーザプログラムを繰り返し実行し、前記記憶部に格納された前記変数の値を更新するとともに、監視プログラムを実行し、前記通信接続が確立された外部機器に対し、読み出された変数の値についてのデータメッセージをPUSH型プロトコルにて送信する。
【００１３】
好ましくは、記憶部は、前記変数に対して前記外部機器へ送信する条件を記述した条件データが格納され、監視プログラムは、読み出された変数の値について、前記条件データに合致する変数を特定するプログラムをさらに含み、マイクロプロセッサは、前記監視プログラムを実行することで特定された変数についてのデータメッセージを送信する。
【００１４】
好ましくは、記憶部は、変数に対して外部機器へ送信する条件を記述した条件データが格納され、監視プログラムは、通信接続が確立された外部機器から受信したメッセージを解析するプログラムと、受信したメッセージに前記条件データが含まれていた場合には、記憶部に条件データを記憶させるプログラムをとをさらに含み、マイクロプロセッサは、監視プログラムを実行することで、記憶部に対して条件データを登録する。
【発明の効果】
【００１５】
一実施形態によると、制御装置をPUSH型のプロトコルを用いてデータの送信を行えるよう構成したため、通信のオーバーヘッドが少なくなり、制御演算への負荷を低減しつつ、高速にデータを送信することができる。
【図面の簡単な説明】
【００１６】
【図１】システムの全体構成を示す図である。
【図２】PLCのハードウェアブロックの構成を示す図である。
【図３】PLCの機能を示すブロック図である。
【図４】サーバの機能を示すブロック図である。
【図５】監視プログラムの実行タイミングを示す図である。
【図６】PLCが格納するデータ例を示す図である。
【図７】サーバが格納するデータ例を示す図である。
【図８】PLCの動作を示すフローチャートである。
【図９】サーバの動作を示すフローチャートである。
【図１０】本実施形態でデータメッセージの例を示す図である。
【図１１】モバイル端末上で表示されるデータの表示例を示す図である。
【発明を実施するための形態】
【００１７】
図１は本実施形態におけるシステム全体構成を示す図である。
図１を参照して、システムの全体構成を説明する。システムには、PLCとサーバとモバ
イル端末とが含まれる。
【００１８】
PLCは、サーバまたはモバイル端末とネットワークを介して接続され、データの送受信
が可能なように構成される。
PLCは、入出力機能を有し、センサやモータ等（図示しない）の制御対象機器からの出
力されたデータを逐次読み込み、制御演算を行い、演算結果を出力することで制御対象機器を制御する。
PLCは後述する監視プログラムを実行することにより、制御の状態を監視する。加えてPLCは後述する管理プログラムを実行することにより制御対象機器の状態やPLCが組み込ま
れた装置の状態を含む制御の状態を示すデータをサーバまたはモバイル端末にPUSH型のプロトコルを用いて送信する。
【００１９】
サーバはネットワークを介してPLCおよびモバイル端末と接続され、PLCおよびモバイル端末とデータの送受信が可能なように構成される。サーバはPLCまたはモバイル端末から
送信されるデータを格納する。またサーバはPLCまたはモバイル端末から受信したデータ
をPLCまたはモバイル端末に送信できるように構成され、モバイル端末とPLCとの間のデータを中継する機能も有する。
【００２０】
モバイル端末は、ネットワークを介してPLCまたはサーバと接続され、PLCまたはサーバとデータの送受信が可能なように構成される。モバイル端末は、モバイル端末上で動作するアプリケーションを含む。アプリケーションはPLCまたはサーバから送信される制御の
状態を示すデータを受信し、画面上に表示させる機能やユーザからの入力を受付、入力されたデータをPLCまたはサーバに送信する機能を含む。
【００２１】
PLC、サーバ、モバイル端末を接続するネットワークは、有線であっても無線であって
も良い。無線ネットワークを介してデータの送受信をする場合は、PLC,サーバ、モバイル端末に無線通信用のインターフェースを備える。
【００２２】
図２は、本実施形態のハードウェアブロック図を示す。
PLCは、CPUとROMとRAMと通信インターフェースとバス等を備える。
RAMは、揮発性のメモリであり、ユーザプログラムや複数の変数等が格納される。通信
インターフェースは、外部機器と通信をするためのインターフェースである。
【００２３】
図３は、本実施形態のPLCの機能を示すブロック図である。
PLCはユーザプログラムを周期的に実行する。PLCはPLCパラメータ管理部のデータを読
み書きして、ユーザプログラムに記述された命令を順次実行する。
ユーザプログラムは、ユーザによって作成されるプログラムであり、制御演算を実行する。
監視プログラムは、PLCの制御の状態を監視する機能、サーバまたはモバイル端末との
通信接続を確立する機能、PUSH型のプロトコルでデータメッセージを送信させる機能を備える。
【００２４】
スケジューリング管理部は、プログラムの実行タイミングを制御する。実行タイミングが制御されるプログラムには、ユーザプログラム、センサやモータ等の制御対象機器（図示せず）から出力されるデータの取り込みおよび、制御演算の結果を制御対象機器への出力を制御する、入出力プログラム、及び監視プログラムが含まれる。
【００２５】
パラメータ管理部は、ユーザプログラム実行時に参照または出力される複数の変数について変数名、データ型、値を含む変数リストを格納する。変数は、センサやモータ等の制御対象機器から入力される入力データ、ユーザプログラムに実行の制御演算の結果、制御
の状態を示すデータを含む。
【００２６】
システムパラメータ管理部は、ユーザプログラムに関係のないシステムパラメータ（例えばPLCの型番の情報、稼働運転時間情報）を格納する。
【００２７】
監視パラメータ管理部は、監視プログラムから参照可能に構成され、少なくとも監視パラメータIDと監視パラメータ名が格納され、パラメータ管理部に格納される複数の変数、およびシステムパラメータ管理部に格納されるシステムパラメータのうち、監視対象を示す情報を有する。
【００２８】
通知条件管理部は、監視プログラムから参照可能に構成され、少なくとも条件ID、変数名、条件式を格納し、変数の値につき通知する条件を示す情報する。
【００２９】
送信部及び受信部は、有線ネットワークまたは無線ネットワークを介してサーバまたはモバイル端末と接続されデータの送受信を行うインターフェースである。受信部は、サーバまたはモバイル端末から送信されたデータメッセージを解釈する機能を有する。送信部は、サーバまたはモバイル端末にデータメッセージを生成し送信する機能を有する。
【００３０】
図４は、本実施形態のサーバの機能を示すブロック図である。
制御部はデータの送受信およびデータの格納を制御する機能を有するソフトウエアである。パラメータDBは、制御部から参照可能に構成され、少なくともPLCが有するシステム
パラメータ、PLCにおいて制御の状態を示すデータである複数の変数名のデータがPLCを識別するデータと対応づけられて格納されている。
【００３１】
パラメータ表示部は、パラメータDBに格納されたシステムパラメータ、複数の変数名のデータを表示する機能を有する。
イベントDBは、PLCから通知されるイベントリストを格納する。イベントリストには、
イベントが発生したPLCを識別するデータ、発生したイベントの種類、イベントが発生し
た時刻等のデータが含まれる。
イベント表示部は、イベントDBに格納されるイベントリストを表示する機能を有する。
クライアント管理部は、サーバに接続されデータ通知を行う対象となるモバイル端末を識別する情報を有する。
【００３２】
送信部及び受信部は、有線ネットワークまたは無線ネットワークを介してサーバまたはモバイル端末と接続されデータの送受信を行うインターフェースである。受信部は、サーバまたはモバイル端末から送信されたデータメッセージを解釈する機能を有する。送信部は、サーバまたはモバイル端末に送信するプロトコルにあわせたデータメッセージを生成し、送信する機能を有する。
【００３３】
ｈｔｔｐサーバは、データ送信要求を受信した際にパラメータ管理部やイベント管理部に格納されたデータをｈｔｍｌプロトコルにて返信する機能を有する。
【００３４】
図５は監視プログラムの実行タイミングを説明する図である。スケジューリング管理部は、制御対象機器からの入力データの取り込みと制御演算の結果である出力データのデータ交換を行うIOプログラムと、ユーザプログラムの実行とを、繰り返し実行する。
スケジューリング管理部は、監視プログラムがIOプログラム及びユーザプログラムの実行時間の空き時間で実行されるよう制御する。
この例では、IOプログラムの実行およびユーザプログラムの実行を一定の周期で繰り返し実行する例を示している。監視プログラムの実行が周期内の空き時間内に終了しない場合は、プログラムの処理を中断し次の周期の空き時間において未処理部分の実行を再開す
るように監視プログラムの実行を制御しても良い。
【００３５】
図６は、PLCが格納するデータを示す図である。
図６（A）は監視パラメータ管理部に格納される監視パラメータリストの一例を示す。
監視パラメータリストには、監視パラメータID「Monitor Var1」等で示すように監視するパラメータを識別するデータと、監視パラメータ「PowTime」、「Producti1Num」、「Product2Num」等の変数名が対応づけられて格納される。
図６（B）は通知条件管理部に格納される通知条件リストの一例を示す。通知条件リス
トには通知条件ID「cond1」等で示すように通知する条件を識別するデータと通知条件と
して「monitor Var1」で示すの監視パラメータIDと「=」で示すような条件式および「500」で示すような条件の値が対応づけられて格納される。
図６（C）はパラメータ管理部に格納される変数リストの一例を示す。「PowTime」で示すような変数名と「UINT」で示すようなデータ型、「５０」で示すような変数の現在値が対応づけられて格納される。
【００３６】
図７は、サーバが格納するデータを示す図である。
図７（A）はパラメータDBに格納されるパラメータリストの一例を示す図である。パラ
メータリストは、「PLC_A」で示すように保有する対象であるPLCを識別するデータ、「PowTime」で示すような変数名を示すデータ、「UNIT」等で示すような変数のデータ型等を
示すデータがそれぞれ対応づけられて格納される。
図７（B）は、イベントDBに格納されているイベントリストの一例を示す図である。イ
ベントリストには、「PLC_A」で示すようにイベントが発生した対象機器を識別するデー
タ、「cond1発生」等の発生したイベントに関するデータ、「2013/9/25  17:55:06」等で示すようなイベントが発生した時刻を示すデータが格納される。
【００３７】
図８は監視プログラム実行時のPLCの動作フローチャートを説明する図である。
図８（A）は、PLC起動時にCPUが監視プログラムを実行する動作を示すフローチャート
である。
【００３８】
S1において、PLCが起動される。
S2において、監視プログラムは、サーバとの通信を確立する処理を実行し、サーバとデータの送受信を実行可能な状態にする。監視プログラムは、サーバに対して通信確立用のコマンドを送信部を介して送信し、受信部を介してサーバからのレスポンスを受信する。
通信のプロトコルは、WebSocketプロトコルを用いても良い。このプロトコルを用いて
通信を行うことにより、PLCからサーバまたはモバイル端末に、PLCの制御の状態を示すデータメッセージを送信することができる。またこのようなプロトコルを用いて通信を行うとモバイル端末が有するブラウザでPLCの制御の状態を示すデータをリアルタイムに確認
することができる。
【００３９】
S2において、サーバとの通信が確立され、データの送受信が実行可能な状態になると、S3において監視プログラムは、サーバに対してPUSH型のプロトコルを用いてデータ送信を行う。S3においてシステムパラメータ管理部を参照し、保持しているシステムパラメータ名一覧をデータメッセージとして送信部を介してサーバに送信する。
【００４０】
S4において、ユーザプログラムとユーザプログラムで利用される変数リストが図示しないパソコン等からPLCにダウンロードされ、パラメータ管理部に変数リストが格納される
。
S5において監視プログラムは、パラメータ管理部を参照し、変数リストを送信部を介してサーバに対してデータメッセージとして送信する。
【００４１】
図８（B）は、CPUが監視プログラムを実行することによりイベント通知処理を行う際のフローチャートである。PLCはおいて、IOプログラム、ユーザプログラムを実行すること
により、センサやモータ等の外部機器からのデータの入出力、制御演算を実行する。スケジューリング管理部は監視プログラムを起動する。
【００４２】
S11において、スケジューリング管理部によって監視プログラムが起動されると、S12において、パラメータ管理部から変数名および変数の現在値が格納された変数リストを読みだす。
【００４３】
S13において、監視プログラムは、監視パラメータ管理部に格納される監視パラメータ
リスト、および通知条件管理部に格納される通知条件リストを参照して、S12において読
みだされた変数リストから変数の現在値が通知条件に合致しているかを判断する。
【００４４】
S13において通知条件に合致していると判断された場合、S14において、監視プログラムは、データ送信部を介して、PUSH型のプロトコルを用いてデータメッセージを送信する。
【００４５】
図８（C）は、サーバからのデータメッセージを受信した場合に監視プログラムが実行
する、監視対象パラメータリスト、通知条件リストを登録する動作を説明する図である。
【００４６】
S21において、サーバからデータメッセージを受信するとデータメッセージを解析し、
監視プログラムは、監視パラメータリスト、通知条件リストの登録処理かを判断する。
【００４７】
S21において、監視パラメータリストの登録であると判断された場合、データメッセー
ジに含まれる、監視パラメータID、監視対象の変数名を監視パラメータ管理部に格納する。
【００４８】
S21において、通知条件リストの登録であると判断された場合、データメッセージに含
まれる、通知条件ID、監視パラメータID、条件式、条件の値を登録する。
【００４９】
図９はサーバの動作を記述したフローチャートである。
図９（A）はPLCからのデータメッセージを受信した時のサーバの動作を示すフローチャートである。
【００５０】
S31においてPLCからのデータメッセージを受信すると、制御部は、S32においてPLC起動時に送信されたデータメッセージであるか否かを判断する。
一例ではデータメッセージに含まれる、送信時のステータスを解釈し、PLC起動時に送
信されたデータが否かを判断する。
【００５１】
S32においてPLC起動時に送信されたデータメッセージであると判断されると、S33にお
いて、パラメータDBにシステムパラメータ名または変数リストを登録する処理を行う。
【００５２】
S32においてPLC起動時に送信されたデータメッセージでないと判断されると、PLCから
のイベント通知と判断し、S34 において、イベントDBに通知条件IDとイベント発生時刻を登録する。
【００５３】
S34において、イベントDBにイベント登録が行われるとclient管理部を参照し登録され
ているモバイル端末に対して通知条件IDと変数名、変数の現在値発生時刻を含むデータメッセージを送信する。
【００５４】
図９（B）は、モバイル端末からのサーバへのログイン処理が行われた場合のフローチ
ャートを示す。
【００５５】
S41において、モバイル端末からデータメッセージの送信がなされると、S42において、ユーザのログインか否か判断する。
【００５６】
S42でユーザのログインと判断された場合は、S43においてclient管理部にユーザ名を登録する。
【００５７】
S42でユーザのログイン処理と判断されない場合は、S44において通知条件の登録と判断し、受信したデータメッセージを解釈し、監視パラメータID、監視対象の変数名、通知条件ID、通知条件式をPLCにデータメッセージとして送信する。
【００５８】
図８（C）で説明したようにPLCの監視プログラムはサーバから通知条件パラメータのデータメッセージを受信すると、監視対象管理部に格納される監視パラメータリストおよび通知条件管理部に格納される通知条件リストの登録を行う。
【００５９】
図１０はPLCからサーバに対して送信するデータメッセージの例を示す。
データメッセージは、少なくともメッセージのタイプを示すデータ、送信元のデータ、通知する情報を示すデータ、テキストデータを含む。
サーバまたはPLCはデータメッセージを受信するとデータタイプを判定し、データを通
知する処理、イベントに格納する処理を行う。
【００６０】
図１１はモバイル端末で表示される例を示す。
図１１（A）はサーバから送信されたモバイル端末上で変数リスト及びシステムパラメ
ータをモバイル端末上で表示する表示例である。
表示例では必要となる処理を継続的に実行するための処理を実行する。
図１１（B）はモバイル端末上でイベント通知条件のパラメータを設定する表示例であ
る。
図１１（C）はサーバからの通知を受けた例を示す表示例である。
【図１】
2015090548.tif 000003
【図２】
2015090548.tif 000004
【図３】
2015090548.tif 000005
【図４】
2015090548.tif 000006
【図５】
2015090548.tif 000007
【図６】
2015090548.tif 000008
【図７】
2015090548.tif 000009
【図８】
2015090548.tif 000010
【図９】
2015090548.tif 000011
【図１０】
2015090548.tif 000012
【図１１】
2015090548.tif 000013