JP7055264B1 - プログラマブルコントローラ、プログラマブルコントローラシステム及びプログラム - Google Patents

プログラマブルコントローラ、プログラマブルコントローラシステム及びプログラム Download PDF

Info

Publication number
JP7055264B1
JP7055264B1 JP2022506922A JP2022506922A JP7055264B1 JP 7055264 B1 JP7055264 B1 JP 7055264B1 JP 2022506922 A JP2022506922 A JP 2022506922A JP 2022506922 A JP2022506922 A JP 2022506922A JP 7055264 B1 JP7055264 B1 JP 7055264B1
Authority
JP
Japan
Prior art keywords
character string
operation mode
output
string data
programmable controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2022506922A
Other languages
English (en)
Other versions
JPWO2023012959A1 (ja
JPWO2023012959A5 (ja
Inventor
康男 増井
伴彰 ▲高▼木
亮一 佐々木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Application granted granted Critical
Publication of JP7055264B1 publication Critical patent/JP7055264B1/ja
Publication of JPWO2023012959A1 publication Critical patent/JPWO2023012959A1/ja
Publication of JPWO2023012959A5 publication Critical patent/JPWO2023012959A5/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Programmable Controllers (AREA)

Abstract

プログラマブルコントローラ(10)の動作モードが稼働モードであるかデバッグモードであるかを示す動作モード設定(231)を含むパラメータを管理するパラメータ管理部(230)と、プログラマブルコントローラ(10)のプログラムに含まれるメッセージ出力命令に基づいて文字列データを出力する文字列データ出力部(225)と、を備える。メッセージ出力命令は、動作モードが稼働モードであるときに命令を実行するか、又は、動作モードがデバッグモードであるときに命令を実行するかを指定する第1引数を含む。文字列データ出力部(225)は、動作モード設定(231)と第1引数とを比較した結果に基づいて、予め設定した出力先に文字列データを出力し、又は、文字列データを出力しない。

Description

本開示は、プログラマブルコントローラ、プログラマブルコントローラシステム及びプログラムに関する。
プログラマブルコントローラ(Programmable Logic Controller:PLC)は、プログラムの各命令を実行することにより、制御対象であるデバイスの制御又は検出対象であるデバイスの検出信号の取得を含む各種処理を実行する。
プログラマブルコントローラの開発において、ユーザが作成したプログラムが想定した通りに機能しているかデバッグする必要がある。デバッグ方法として、プログラマブルコントローラのプログラムにネットワーク通信用の命令を組み込んでおき、ネットワーク接続された開発用の端末に対して任意のメッセージを出力させる方法が用いられている(例えば、特許文献1)。
特許文献1に記載のプログラマブルコントローラは、ネットワーク通信用のNET命令をネットワークインタフェース部に指示することにより、NET命令により指定された送信先へ、NET命令により指定されたメッセージを送信させる。これにより、ネットワークに接続されている任意の機器にメッセージを表示させることができるとともに、メッセージの送信条件又はメッセージの内容及び送信先を柔軟に変更することができると説明されている。
特開2004-302880号公報
特許文献1に記載のプログラマブルコントローラは、開発途中においてNET命令を用いてデバッグが可能であるが、デバッグの後、プログラマブルコントローラの稼働用のプログラムに変更するために、デバッグ用のNET命令の使用箇所を削除する手間が生じていた。また、トラブルが発生した際に、デバッグ目的で使用していたNET命令を再度記述する必要があった。
仮に、デバッグ目的のメッセージを削除しない場合は、稼働中も必要なメッセージとデバッグ用のメッセージが混在するため、メッセージの内容を識別することが困難であるという問題があった。また、稼働中に不要なデバッグ用のメッセージの通信が、ネットワーク通信帯域を圧迫する可能性があるという問題があった。
本開示は上記事情に鑑みてなされたものであり、デバッグ時及び稼働時において、適切なメッセージを出力することができるプログラマブルコントローラ、プログラマブルコントローラシステム及びプログラムを提供することを目的とする。
上記目的を達成するため、本開示のプログラマブルコントローラは、プログラマブルコントローラの動作モードが稼働モードであるかデバッグモードであるかを示す動作モード設定を含むパラメータを管理するパラメータ管理部と、プログラマブルコントローラのプログラムに含まれるメッセージ出力命令に基づいて文字列データを出力する文字列データ出力部と、を備える。メッセージ出力命令は、動作モードが稼働モードであるときに命令を実行するか、又は、動作モードがデバッグモードであるときに命令を実行するかを指定する第1引数を含む。文字列データ出力部は、動作モード設定と第1引数とを比較した結果に基づいて、予め設定した出力先に文字列データを出力し、又は、文字列データを出力しないことを特徴とする。
本開示によれば、パラメータの動作モード設定と、メッセージ出力命令に含まれる動作モードに係る第1引数と、に応じて処理内容を変更するため、デバッグ時及び稼働時において、適切なメッセージを出力することが可能となる。
実施の形態1に係るプログラマブルコントローラのハードウェア構成例を示すブロック図 実施の形態1に係るプログラマブルコントローラの機能構成例を示すブロック図 メッセージ出力命令実行処理を示すフローチャート ハードウェア処理・文字列生成処理を示すフローチャート PLCプログラムのメッセージ出力命令の例を示す図 稼働モードの場合のメッセージ表示例を示す図 デバッグモードの場合のメッセージ表示例を示す図 実施の形態2に係るプログラマブルコントローラのハードウェア構成例を示すブロック図 実施の形態2に係るプログラマブルコントローラシステムの構成例を示すブロック図 実施の形態2に係るプログラマブルコントローラの機能構成例を示すブロック図 メッセージ出力命令実行処理を示すフローチャート
(実施の形態1)
以下に、本開示を実施するための実施の形態1について図面を参照して詳細に説明する。なお、図中同一又は相当する部分には同じ符号を付す。
図1は、実施の形態1に係るプログラマブルコントローラ(Programmable Logic Controller:以下、PLCと呼ぶ)10のハードウェア構成例を示すブロック図である。PLC10は、プログラムの命令を実行して、制御対象である対象デバイス30に対して制御信号を供給して該対象デバイス30を制御し、また、検出対象である対象デバイス30の検出信号を取得する装置である。制御対象である対象デバイス30は、例えば、サーボ、アクチュエータ、電磁弁、又は、表示灯であり、検出対象である対象デバイス30は、例えば、センサ、スイッチである。
PLC10は図1に示すように、PLC10全体の制御を実行するMPU(Micro Processing unit)110と、MPUがプログラムを実行する際にデータを一時記憶する揮発性メモリ120と、各種のプログラム及びデータを記憶する不揮発性メモリ130と、を備える。PLC10は、更に、操作端末20を接続するための接続インタフェース140と、対象デバイス30を接続するための入出力インタフェース150と、を備える。
揮発性メモリ120と、不揮発性メモリ130と、接続インタフェース140と、入出力インタフェース150と、はバス160を介してMPU110に接続されており、MPU110と通信する。
揮発性メモリ120は、MPU110が実行する演算処理の際に、高速でデータの読み書きが可能なワークメモリであり、例えば、RAM(Random Access Memory)である。
不揮発性メモリ130は、PLC10の各種機能を実現するためのプログラムと、プログラムの実行時に使用されるパラメータを含むデータと、を記憶する。不揮発性メモリ130には、例えば、MPU110が実行するファームウェア及びユーザプログラムが格納されている。不揮発性メモリ130は、例えば、EEPROM(Electrically Erasable Programmable Read-Only Memory)、フラッシュメモリを含む不揮発性半導体メモリ、磁気ディスク、又は、光ディスクである。
ユーザプログラムは、例えば、ユーザがシーケンシャル・ファンクション・チャート(Sequential function chart:SFC)を使用して開発したプログラムである。本実施の形態では、ユーザプログラムは、対象デバイス30を制御し又は検出する機能及びメッセージ出力命令を実行する機能を含む各種機能を、MPU110に実現させるプログラムである。メッセージ出力命令は、C言語におけるprintf関数に類似しているため、本実施の形態において、メッセージ出力命令をprintf命令とも呼ぶ。
接続インタフェース140は、PLC10が操作端末20と通信するためのインタフェースであり、MPU110が出力したデータを操作端末20に送信し、また、操作端末20から受信したデータをMPU110に渡す。接続インタフェース140は、操作端末20が有するインタフェースに対応した任意のインタフェースであり、例えば、USBインタフェース又はRS232Cインタフェースである。
操作端末20は、ユーザプログラムの作成機能を備える専用のアプリケーションプログラムをインストールした端末であり、例えば、パーソナルコンピュータである。操作端末20は、不揮発性メモリ130に記憶されているパラメータの入力又は変更を含むPLC10の管理機能も有する。操作端末20は、更に、MPU110がメッセージ出力命令を実行することにより生成したメッセージを表示させる機能も有する。
入出力インタフェース150 は、PLC10が対象デバイス30と通信するためのインタフェースであり、MPU110が出力したデータを対象デバイス30に送信し、また、対象デバイス30から受信したデータをMPU110に渡す。入出力インタフェース150は、対象デバイス30又は対象デバイス30用の通信手段が有するインタフェースに対応した任意のインタフェースである。入出力インタフェース150は、例えば、CC-Link(登録商標)又はEtherCAT(登録商標)を含む産業用オープンネットワーク用のインタフェース、又は、バスインタフェースである。
MPU110 は、不揮発性メモリ130に記憶されている各種プログラムを実行することにより、PLC10の各種機能を実現する。例えば、MPU110は、不揮発性メモリ130に記憶されているユーザプログラムを実行することにより、検出対象である対象デバイス30から受信したデータを使用した演算を行い、演算結果を示す値に基づく制御信号を制御対象である対象デバイス30に供給する。
本実施の形態においては、PLC10は、ユーザプログラムを実行することにより、上述の対象デバイス30に係る機能に加えて、メッセージ出力命令実行機能を実現する。図2は、PLC10の機能構成例を示すブロック図である。PLC10は、図2に示すように、プログラム実行部210、メッセージ出力命令実行部220、パラメータ管理部230、ハードウェア処理部240、デバイスデータ管理部250、時刻管理部260、として機能する。
プログラム実行部210は、不揮発性メモリ130からユーザプログラムを読み込み、ユーザプログラムの最初の命令から最後の命令まで、命令を順次実行する。メッセージ出力命令実行部220は、ユーザプログラムに含まれるメッセージ出力命令を実行する。メッセージ出力命令は、例えば、printfで始まるコマンドにより記述される。
パラメータ管理部230は、不揮発性メモリ130にPLC10に係る各種パラメータを記憶し、メッセージ出力命令実行部220からの要求に応じて、パラメータをメッセージ出力命令実行部220に渡す。ハードウェア処理部240は、メッセージ出力命令実行部220から出力される通知データに基づき、予め定めたハードウェアを動作させる処理を実行する。ハードウェアは、例えば、LED(Light Emitting Diode)又はスピーカーであり、ハードウェア処理部240は、LEDを点灯させ、又は、スピーカーから音声を出力させる。
デバイスデータ管理部250は、PLC10内のデバイス、又は、入出力インタフェース150を介して接続された対象デバイス30に係るデバイスデータを各デバイスから取得して揮発性メモリ120に格納しておく。そして、デバイスデータ管理部250は、メッセージ出力命令実行部220からの要求に応じて、デバイスデータをメッセージ出力命令実行部220に渡す。時刻管理部260は、PLC10内の時刻を、メッセージ出力命令実行部220からの要求に応じて出力する。
メッセージ出力命令実行部220の構成について、詳細に説明する。メッセージ出力命令実行部220は、図2に示すように、パラメータ取得部221、動作モード判別部222、文字列解析部223、文字列データ生成部224、文字列データ出力部225を含む。
パラメータ取得部221は、パラメータ管理部230から、PLC10の動作モードが稼働モードかデバッグモードかを示すパラメータである動作モード設定231、及び、メッセージ出力命令に基づくメッセージの出力先を示すパラメータである出力先設定232を取得する。
パラメータ管理部230が管理するパラメータは、任意に設定または変更が可能である。例えば、動作モード設定231は、ユーザが操作端末20に操作入力することで、PLC10を通常稼働する際に稼働モードに切り替え、PLC10のデバッグを開始する際にデバッグモードに切り替えられる。あるいは、動作モード設定231は、入出力インタフェース150を介して接続されたスイッチを含む任意の対象デバイス30により切り替えることも可能である。
出力先設定232は、PLC10が有するインタフェースを用いて接続された任意のデバイスをメッセージの出力先として指定したものである。例えば、接続インタフェース140を介して接続された操作端末20又は他の外部機器が出力先として指定される。また、ネットワーク接続用の通信インタフェースを介してネットワーク接続され、又は、バスインタフェースを介してバス接続された外部端末が出力先として指定されてもよい。あるいは、カード接続用のカードインタフェースを介して接続されたカードが出力先として指定されてもよい。
動作モード判別部222は、パラメータ取得部221が取得した動作モード設定231と、メッセージ出力命令に含まれる動作モードを示す第1引数と、を比較し、その比較結果に基づいて、メッセージ出力命令の処理を続行するか否かを判別する。ここで、メッセージ出力命令に含まれる第1引数は、動作モードが稼働モードであるときに命令を実行するか、動作モードがデバッグモードであるときに命令を実行するか、を指定する引数である。
動作モード判別部222は、より詳細には、パラメータ取得部221が取得した動作モード設定231が稼働モードであり且つメッセージ出力命令の第1引数で指定された動作モードがデバッグモードで比較結果が不一致の場合は、メッセージ出力命令の処理を終了する。一方、パラメータ取得部221が取得した動作モード設定231が稼働モードであり且つメッセージ出力命令の第1引数で指定された動作モードが稼働モードで比較結果が一致の場合、又は、パラメータ取得部221が取得した動作モード設定231がデバッグモードの場合は、メッセージ出力命令の処理を続行する。
文字列解析部223は、メッセージ出力命令の第2引数である文字列の中に,特定の文字列があるか否かを解析し、特定の文字列がある場合に、ハードウェア処理部240に処理を実行することを通知する。特定の文字列がない場合には、通知を行わない。
文字列データ生成部224は、メッセージ出力命令に基づく文字列を生成する。文字列データ生成部224は、メッセージ出力命令の第2引数の文字列がデバイスデータの出力要求を含む場合に、デバイスデータ管理部250からデバイスデータを取得し、取得したデバイスデータを含む文字列を生成する。
文字列データ生成部224は、メッセージ出力命令の第2引数の文字列がデバイスデータの出力要求を含まない場合には、デバイスデータを含まない文字列を生成する。その後、文字列データ生成部224は、時刻管理部260から時刻データを取得し文字列に変換し、第2引数の文字列と、デバイスデータの文字列と、時刻データの文字列と、を結合して、出力する文字列データを生成する。
文字列データ出力部225は、パラメータ管理部230から取得した出力先設定232を判別し、文字列データ生成部224が生成した文字列データを、出力先設定232が示す出力先へ送信する。
以上の構成を有するPLC10の動作について、図3,4に示すフローチャートを用いて説明する。図3は、メッセージ出力命令実行処理を示すフローチャートであり、図4は、ハードウェア処理・文字列生成処理を示すフローチャートである。
PLC10のプログラム実行部210はユーザプログラムを実行し、命令を順次処理する。メッセージ出力命令実行部220は、メッセージ出力命令に対して図3のフローチャートに示す処理を実行する。まず、パラメータ取得部221がパラメータ管理部230より、動作モード設定231及び出力先設定232を含む各種パラメータを取得する(ステップS101)。
次に、動作モード判別部222は、パラメータ取得部221が取得したパラメータに含まれる動作モード設定231と、メッセージ出力命令に含まれる動作モードを示す第1引数と、を比較する。パラメータ取得部221が取得したパラメータの動作モード設定がデバッグモードの場合は(ステップS102:Yes)、ハードウェア処理(図中、H/W処理と記す)及び文字列生成処理を実行する(ステップS104)。
パラメータ取得部221が取得したパラメータの動作モード設定231が稼働モードの場合は(ステップS102:No)、メッセージ出力命令の第1引数に対応する動作モードが稼働モードであって、パラメータの動作モード設定231と一致するか否かを判定する(ステップS103)。
メッセージ出力命令の第1引数に対応する動作モードが稼働モードであって、パラメータの動作モード設定231と一致する場合には(ステップS103:Yes)、
ハードウェア処理及び文字列生成処理を実行する(ステップS104)。メッセージ出力命令の第1引数に対応する動作モードがデバッグモードであって、パラメータの動作モード設定231と一致しない場合には(ステップS103:No)、処理を終了する。
ステップS104のハードウェア処理・文字列生成処理について図4のフローチャートに沿って説明する。まず、文字列解析部223が、メッセージ出力命令の第2引数である文字列の中に、特定の文字列があるか否かを解析し(ステップS111)、特定の文字列がある場合に(ステップS112:Yes)、ハードウェア処理部240に処理を実行することを通知する。
ハードウェア処理部240は、メッセージ出力命令実行部220から出力される通知データに基づき、ハードウェアを動作させる処理を実行する(ステップS113)。例えば、ハードウェアは、LED又はスピーカーであり、ハードウェア処理部240は、LEDを点灯させ、又は、スピーカーから音声を出力させる。文字列解析部223が、メッセージ出力命令の第2引数である文字列の中に、特定の文字列がないと判定した場合には(ステップS112:No)、ハードウェア処理部240に通知を行わない。
その後、文字列データ生成部224が、メッセージ出力命令に基づく文字列データを生成する。具体的には、まず、文字列解析部223が、メッセージ出力命令の第2引数の文字列がデバイスデータの出力要求を含むか否かを解析する(ステップS114)。
メッセージ出力命令の第2引数の文字列がデバイスデータの出力要求を含む場合には(ステップS114:Yes)、文字列データ生成部224は、デバイスデータ管理部250からデバイスデータを取得し(ステップS115)、ステップS116の処理に進む。メッセージ出力命令の第2引数の文字列がデバイスデータの出力要求を含まない場合には(ステップS114:No)、ステップS116の処理に進む。
文字列データ生成部224は、時刻管理部260から時刻データを取得して(ステップS116)文字列に変換し、第2引数の文字列と、デバイスデータの文字列と、時刻データの文字列と、を結合して、出力する文字列データを生成する(ステップS117)。
このようにして、ハードウェア処理・文字列生成処理を実行した後(ステップS104)、文字列データ出力部225は、ステップS101で取得したパラメータの出力先設定232が示す出力先に対して、文字列データ生成部224が生成した文字列データを送信する(ステップS105)。
図5Aは、PLC10のプログラムのメッセージ出力命令を例示する図であり、図5Aのメッセージ出力命令に対して、図5Bが稼働モードの場合のメッセージ表示例であり、図5Cがデバッグモードの場合のメッセージ表示例である。
図5Aの例において、メッセージ出力命令は「printf <第1引数> <第2引数>」と定義している。第1引数は、動作モードが稼働モードであるときに命令を実行するか、動作モードがデバッグモードであるときに命令を実行するか、を指定する引数である。第2引数は、ハードウェア処理を実行させるための特定文字列、そのまま表示させる文字列、又は、デバイスデータの出力を要求するための文字列の少なくともいずれか1つの文字列を含む。
図5Aの3つのメッセージ出力命令に対し、パラメータの動作モード設定231が稼働モードの場合には、第1引数が、動作モードが稼働モードであるときに命令を実行することを示す「0」であるメッセージ出力命令のみが実行される。その結果、図5Bに示すように、操作端末20のコンソール画面には、第2のメッセージ出力命令に対し、時刻と文字列「稼働メッセージ」を含むメッセージが表示され、第3のメッセージ出力命令に対し、時刻と文字列「バッテリー:」とデバイスデータ「50%」を含むメッセージが表示される。
図5Aの3つのメッセージ出力命令に対し、パラメータの動作モード設定231がデバッグモードの場合には、第1引数によらず、全てのメッセージ出力命令が実行される。その結果、図5Cに示すように、操作端末20のコンソール画面には、第1のメッセージ出力命令に対し、時刻と文字列「デバッグメッセージ」を含むメッセージが表示され、第2のメッセージ出力命令に対し、時刻と文字列「稼働メッセージ」を含むメッセージが表示され、第3のメッセージ出力命令に対し、時刻と文字列「バッテリー:」とデバイスデータ「50%」を含むメッセージが表示される。
以上説明したように、本実施の形態に係るPLC10は、パラメータ管理部230がPLC10の動作モードが稼働モードであるかデバッグモードであるかを示す動作モード設定231を管理する。メッセージ出力命令は、動作モードが稼働モードであるときに命令を実行するか動作モードがデバッグモードであるときに命令を実行するかを指定する第1引数を含む。メッセージ出力命令実行部220の文字列データ出力部225は、パラメータの動作モード設定231がデバッグモードである場合に、予め定めた出力先に文字列データを出力する。一方、パラメータの動作モード設定231が稼働モードである場合には、第1引数が、稼働モードに対応する値であった場合に、文字列データを出力し、第1引数が、デバッグモードに対応する値であった場合に、文字列データを出力しないこととした。
これにより、デバッグモード時は、全てのメッセージを表示させ、稼働モード時は、稼働モード用に作成したメッセージのみを表示させることができる。つまり、稼働時において不要なデバッグモード用のメッセージの表示を省くことができる。また、最終的なプログラムを作成するために、デバッグ目的でのメッセージ出力命令の使用箇所を削除する手間を省くことができ、さらに、トラブル対応のために以前デバッグ目的で使用していたメッセージ出力命令を再度記述する手間を省くことができる。
なお、本実施の形態のメッセージ出力命令に対する処理を、PLC設計用コンピュータに備えられたエンジニアリングツールに適用してもよい。この場合には、エンジニアリングツールで実行するプログラムの容量を抑えることができる。
また、本実施の形態において、パラメータ管理部230がメッセージの出力先を示す出力先設定232を含むパラメータを管理し、文字列データ出力部225は、パラメータの出力先設定232が示す出力先に文字列データを出力することとした。
このように出力先設定232をパラメータに含めることにより、ユーザプログラムを変更することなく、メッセージ出力命令の出力先を変更することが可能になる。例えば、一時的な確認のためにリアルタイムにメッセージを確認したい場合は、出力先を接続インタフェース140に接続された操作端末20に設定し、コンソール画面でメッセージを確認することができる。また、プログラムを長時間実行中のメッセージを保存したい場合は、出力先をネットワーク接続用の通信インタフェースに接続されたネットワークドライブに設定し、ネットワークドライブ上の任意のファイルにメッセージを保存することも可能になる。
また、本実施の形態において、文字列解析部223は、メッセージ出力命令に特定の文字列が含まれている場合に、ハードウェア処理部240にハードウェア処理を実行させることとした。
これにより、例えば、メッセージ出力命令を用いて、ユーザが定義する任意のエラーを検出させてLEDで表すことが可能になるため、アナンシエータ(annunciator)を備える必要がなく、ユーザプログラムをアナンシエータに対応させる必要もない。また、メッセージ出力命令を用いてエラー発生箇所を特定することができる。
また、本実施の形態において、文字列データ生成部224は、メッセージ出力命令の第2引数の文字列がデバイスデータの出力要求を含む場合に、デバイスデータ管理部250からデバイスデータを取得して、デバイスデータを含む文字列データを生成することとした。
これにより、文字列、デバイスデータ及び命令実行時刻を関連付けて表示することが可能となり、また、表示器又はエンジニアリングツールを含む専用ツールを備える必要がない。
(実施の形態2)
以下に、本開示を実施するための実施の形態2について図面を参照して詳細に説明する。なお、図中同一又は相当する部分には同じ符号を付す。
本実施の形態2に係るPLCは、実施の形態1と同様に、対象デバイス30を制御し又は対象デバイス30から検出信号を取得するが、それに加えて、他のPLCと文字列データを送受信する機能を有する。本実施の形態に係る複数のPLCをPLC-A11、PLC-B12及びPLC-C13と表す。
PLC-A11、PLC-B12及びPLC-C13は、図6に示すように、PLC共通ブロック100をそれぞれ有する。PLC共通ブロック100は、実施の形態1に係るPLC10と同様のMPU110と、揮発性メモリ120と、不揮発性メモリ130と、を備える。PLC-A11は、更に、操作端末20を接続するための接続インタフェース140と、対象デバイス30を接続するための入出力インタフェース150と、PLC-B12と接続するためのバスインタフェース170と、PLC-C13と接続するための通信インタフェース180と、を備える。
なお、図6に示すPLC-A11、PLC-B12及びPLC-C13を互いに接続するインタフェース、並びに、PLC-A11、PLC-B12及びPLC-C13と、操作端末20又は対象デバイス30と、を接続する各種インタフェースは一例であり、これらのインタフェースの種類及び数は、任意に選択可能である。
図7は、PLC-A11、PLC-B12及びPLC-C13を含むプログラマブルコントローラシステムのネットワーク構成例を簡易的に示したものである。図7において、PLC-A11とPLC-B12とが産業用オープンネットワークで接続され、PLC-A11とPLC-C13とが汎用イーサーネットで接続され、PLC-A11と操作端末20とがRS-232Cのシリアル通信により接続されている。
本実施の形態では、図6に示すように、PLC-A11が、接続インタフェース140を介して操作端末20に接続され、入出力インタフェース150を介して対象デバイス30に接続され、バスインタフェース170を介してPLC-B12に接続され、通信インタフェース180を介してPLC-C13に接続されている場合について説明する。
PLC共通ブロック100のMPU110、揮発性メモリ120及び不揮発性メモリ130の構成は実施の形態1と同様であるため、説明を省略する。
本実施の形態において、PLC-A11、PLC-B12及びPLC-C13は、それぞれのユーザプログラムを実行することにより、対象デバイス30を制御し又は対象デバイス30の検出信号を取得する機能に加えて、メッセージ出力命令実行機能を実現する。図8は、PLC-A11の機能構成例を示すブロック図である。PLC-A11は、図8に示すように、プログラム実行部210、メッセージ出力命令実行部220、パラメータ管理部230、ハードウェア処理部240、デバイスデータ管理部250、時刻管理部260、を備える。
プログラム実行部210は、不揮発性メモリ130からユーザプログラムを読み込み、ユーザプログラムの最初の命令から最後の命令まで、命令を順次実行する。メッセージ出力命令実行部220は、ユーザプログラムに含まれるメッセージ出力命令を実行する。メッセージ出力命令は、例えば、printfで始まるコマンドにより記述される。
パラメータ管理部230は、PLC-A11に係る各種パラメータを記憶し、メッセージ出力命令実行部220からの要求に応じて、パラメータをメッセージ出力命令実行部220に渡す。パラメータ管理部230が記憶するパラメータは、実施の形態1と同様の動作モード設定231及び出力先設定232に加えて、データ集約設定233を含む。
ハードウェア処理部240、デバイスデータ管理部250、時刻管理部260の構成及び機能は実施の形態1と同様である。
メッセージ出力命令実行部220の構成について、詳細に説明する。メッセージ出力命令実行部220は、図2に示すように、パラメータ取得部221、動作モード判別部222、文字列解析部223、文字列データ生成部224、データ集約部226及び文字列データ出力部225を含む。
パラメータ取得部221は、パラメータ管理部230から、PLC-A11の動作モードが稼働モードかデバッグモードかを示すパラメータである動作モード設定231、メッセージ出力命令に基づくメッセージの出力先を示すパラメータである出力先設定232、及び、本PLC-A11がデータ集約機能を実行するか否かを示すデータ集約設定233を取得する。本実施の形態においても、パラメータ管理部230が管理するパラメータは、任意に設定または変更が可能である。
出力先設定232は、PLC-A11が有するインタフェースを用いて接続された任意のデバイスをメッセージの出力先として指定したものである。例えば、接続インタフェース140を介して接続された操作端末20又は他の外部機器が出力先として指定される。また、ネットワーク接続用の通信インタフェースを介してネットワーク接続され、又は、バスインタフェースを介してバス接続された他のPLC又は外部端末が出力先として指定されてもよい。あるいは、カード接続用のカードインタフェースを介して接続されたカードが出力先として指定されてもよい。
図6に示すように、PLC-A11のバスインタフェース170とPLC-B12のバスインタフェース171とが接続されており、PLC-B12のパラメータ管理部230が管理する出力先設定232がPLC-A11を示している場合には、PLC-B12が生成した文字列データをPLC-A11に送信することができる。
また、PLC-A11の通信インタフェース180とPLC-C13の通信インタフェース182とが接続されており、PLC-C13のパラメータ管理部230が管理する出力先設定232がPLC-A11を示している場合には、PLC-C13が生成した文字列データをPLC-A11に送信することができる。
動作モード判別部222、文字列解析部223、文字列データ生成部224の動作は実施の形態1と同様である。
データ集約部226は、パラメータ管理部230から取得したデータ集約設定233が、データ集約を実行する設定である場合に、文字列データ生成部224が生成した文字列データと、PLC-B12、PLC-C13から受信した文字列データと、を集約し、データソートする。文字列データ出力部225は、パラメータ管理部230から取得した出力先設定232が示す出力先へ、データ集約部226が集約した文字列データを送信する。
以上の構成を有するPLC-A11の動作について、図9に示すフローチャートを用いて説明する。図9は、本実施の形態に係るメッセージ出力命令実行処理を示すフローチャートである。
PLC-A11のプログラム実行部210はユーザプログラムを実行し、命令を順次処理する。メッセージ出力命令実行部220は、メッセージ出力命令に対して図9のフローチャートに示す処理を実行する。まず、パラメータ取得部221がパラメータ管理部230より、動作モード設定231、出力先設定232及びデータ集約設定233を含む各種パラメータを取得する(ステップS201)。
次に、動作モード判別部222は、パラメータ取得部221が取得したパラメータに含まれる動作モード設定231と、メッセージ出力命令の動作モードを示す第1引数と、を比較する。パラメータ取得部221が取得したパラメータの動作モード設定がデバッグモードの場合は(ステップS202:Yes)、ハードウェア処理及び文字列生成処理を実行する(ステップS204)。
パラメータ取得部221が取得したパラメータの動作モード設定231が稼働モードの場合は(ステップS202:No)、メッセージ出力命令の第1引数に対応する動作モードが稼働モードであって、パラメータの動作モード設定231と一致するか否かを判定する(ステップS203)。
メッセージ出力命令の第1引数に対応する動作モードが稼働モードであって、パラメータの動作モード設定231と一致する場合には(ステップS203:Yes)、
ハードウェア処理及び文字列生成処理を実行する(ステップS204)。メッセージ出力命令の第1引数に対応する動作モードがデバッグモードであって、パラメータの動作モード設定231と一致しない場合には(ステップS203:No)、処理を終了する。
ステップS204のハードウェア処理・文字列生成処理は実施の形態1と同じであり、図4のフローチャートに沿ってハードウェア処理部240に処理を実行させ、文字列データを生成する。
その後、データ集約部226は、ステップS201でパラメータ取得部221が取得したパラメータのデータ集約設定233がデータ集約を実行する設定になっている場合は(ステップS205:Yes)、一定時間待機した後に(ステップS206)、他のPLC-B12,PLC-C13からの文字列データを受信したか否かを判定する(ステップS207)。
他のPLC-B12,PLC-C13から文字列データを受信した場合は(ステップS207:Yes)、ステップS204で生成した文字列データと、他のPLC-B12,PLC-C13から受信した文字列データと、を集約しソートする(ステップS208)。データのソートは、任意の規則に従って実行されるが、例えば、時刻の降順又は予め定めたPLCの順番に従って実行される。ソートの規則はユーザにより設定可能であってもよい。
パラメータのデータ集約設定233がデータ集約を実行する設定になっていない場合は(ステップS205:No)、ステップS209に進む。パラメータのデータ集約設定233がデータ集約を実行する設定になっているが(ステップS205:Yes)、一定時間以内に他のPLC-B12,PLC-C13から文字列データを受信しなかった場合は(ステップS207:No)、ステップS209に進む。
文字列データ出力部225は、ステップS204で文字列データ生成部224が生成した文字列データ又はステップS208でデータ集約部226が集約した文字列データを、パラメータ管理部230から取得したパラメータの出力先設定232が示す出力先へ送信する(ステップS209)。
以上説明したように、本実施の形態に係るPLC-A11は、パラメータ管理部230が、動作モード設定231及び出力先設定232に加えて、PLC-A11がデータの集約を実行するか否かを示すデータ集約設定233を管理する。データ集約部226は、パラメータのデータ集約設定233がデータ集約を実行する設定になっている場合に、他のPLC-B12,PLC-C13から受信した文字列データを集約して予め定めた出力先に文字列データを出力することとした。
これにより、操作端末20を1台用意するだけで、複数のPLCが生成する文字列データであるメッセージを確認することが可能となる。特に、製造ラインが物理的な距離を有し、複数のPLCが離れている場合でも,各PLCのメッセージを同時に確認することが可能となる。このとき、操作端末20と接続するインタフェースを保有しないPLCのメッセージも取得することが可能である。また、複数のPLCが連動して製造ライン全体を制御するシステムにおいて、時系列でデータソートすることにより、問題発生時の現象を正しく時系列に出力することができ、問題原因特定に寄与することができる。
(変形例)
上記実施の形態は、種々の変更が可能である。
例えば、上記実施の形態1,2において、パラメータ管理部230又はデバイスデータ管理部250はPLC10,PLC-A11,PLC-B12及びPLC-C13の内部の揮発性メモリ120又は不揮発性メモリ130に格納されたパラメータ又はデバイスデータを管理するとしたが、外部接続された記憶装置に格納されたパラメータ又はデバイスデータを管理してもよい。
実施の形態1,2において、文字列解析部223がメッセージ出力命令に特定文字列が含まれている場合にハードウェア処理を実行させ、その後、文字列データ生成部224及び文字列データ出力部225が、文字列データの生成及び出力を行うとしたが、ハードウェア処理のみを目的としたメッセージ出力命令を実行する場合には、文字列データの生成及び出力の処理はスキップしてもよい。
実施の形態2において、パラメータ管理部230のデータ集約設定233に基づいて、データ集約を実行するか否かを切り替えるとしたが、データ集約設定233は必須のパラメータではない。全てのPLCにおいて、他のPLCから文字列データを受信した際にデータ集約を実行して、出力してもよい。
実施の形態2において、PLC-A11とPLC-B12とが接続され、PLC-A11とPLC-C13とが接続され、PLC-A11は、PLC-B12及びPLC-C13から直接文字列データを受信するとしたが、データ受信は他のPLCを経由して行われてもよい。例えば、PLC-B12がPLC-C13から文字列データを受信し、PLC-B12の文字列データとPLC-C13の文字列データとを集約したデータをPLC-A11が受信して集約してもよい。
また、上記実施の形態に示したPLC10,PLC-A11,PLC-B12及びPLC-C13のハードウェア構成及びプログラム処理内容は一例であり、任意に変更又は応用が可能である。プログラムで実現する各機能は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。さらに、PLC10,PLC-A11,PLC-B12及びPLC-C13が実現した処理をPLC設計用のエンジニアリングツールで実現してもよい。
上記実施の形態の動作を実行するためのプログラムを、コンピュータが読み取り可能なCD-ROM(Compact Disc Read-Only Memory)、DVD(Digital Versatile Disc)、MO(Magneto Optical Disc)、メモリカード等の記録媒体に格納して配布し、プログラムをコンピュータにインストールすることにより、各機能を実現することができるコンピュータを構成してもよい。そして、各機能をOS(Operating System)とアプリケーションとの分担、またはOSとアプリケーションとの協同により実現する場合には、OS以外の部分のみを記録媒体に格納してもよい。
本開示は、本開示の広義の精神と範囲を逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、上述した実施の形態は、本開示を説明するためのものであり、本開示の範囲を限定するものではない。すなわち、本開示の範囲は、実施の形態ではなく、請求の範囲によって示される。そして、請求の範囲内及びそれと同等の開示の意義の範囲内で施される様々な変形が、本開示の範囲内とみなされる。
10 プログラマブルコントローラ(PLC)、11 PLC-A、12 PLC-B、13 PLC-C、20 操作端末、30 対象デバイス、100 PLC共通ブロック、110 MPU、120 揮発性メモリ、130 不揮発性メモリ、140 接続インタフェース、150,151 入出力インタフェース、160 バス、170,171,172 バスインタフェース、180,182 通信インタフェース、210 プログラム実行部、220 メッセージ出力命令実行部、221 パラメータ取得部、222 動作モード判別部、223 文字列解析部、224 文字列データ生成部、 225 文字列データ出力部、226 データ集約部、230 パラメータ管理部、231 動作モード設定、232 出力先設定、233 データ集約設定、240 ハードウェア処理部、250 デバイスデータ管理部、260 時刻管理部。

Claims (11)

  1. プログラマブルコントローラの動作モードが稼働モードであるかデバッグモードであるかを示す動作モード設定を含むパラメータを管理するパラメータ管理部と、
    前記プログラマブルコントローラのプログラムに含まれるメッセージ出力命令に基づいて文字列データを出力する文字列データ出力部と、を備え、
    前記メッセージ出力命令は、前記動作モードが前記稼働モードであるときに命令を実行するか、又は、前記動作モードが前記デバッグモードであるときに命令を実行するかを指定する第1引数を含み、
    前記文字列データ出力部は、
    前記動作モード設定と前記第1引数とを比較した結果に基づいて、予め設定した出力先に前記文字列データを出力し、又は、文字列データを出力しない、
    プログラマブルコントローラ。
  2. 前記文字列データ出力部は、
    前記動作モード設定が前記デバッグモードを示す設定である場合に、前記出力先に前記文字列データを出力し、
    前記動作モード設定が前記稼働モードを示す設定であり、かつ、前記第1引数が、前記稼働モードに対応する値であった場合に、前記出力先に前記文字列データを出力し、
    前記動作モード設定が前記稼働モードを示す設定であり、かつ、前記第1引数が、前記デバッグモードに対応する値であった場合に、前記文字列データを出力しない、
    請求項1に記載のプログラマブルコントローラ。
  3. 前記パラメータ管理部が管理する前記パラメータは、前記文字列データの出力先を指定する出力先設定を更に含み、
    前記文字列データ出力部は、前記出力先設定が示す前記出力先に前記文字列データを出力する、
    請求項に記載のプログラマブルコントローラ。
  4. 前記出力先設定が示す前記出力先は、前記プログラマブルコントローラのインタフェースを介して接続された他のプログラマブルコントローラを含む、
    請求項に記載のプログラマブルコントローラ。
  5. 前記インタフェースを介して前記他のプログラマブルコントローラから文字列データを受信した場合に、受信した前記文字列データを集約するデータ集約部を更に備え、
    前記文字列データ出力部が出力する文字列データは、前記データ集約部が集約した文字列データを含む、
    請求項に記載のプログラマブルコントローラ。
  6. 前記パラメータ管理部が管理する前記パラメータは、前記他のプログラマブルコントローラからの文字列データの集約を実行するか否かを示すデータ集約設定を更に含み、
    前記データ集約部は、前記データ集約設定が前記集約を実行する設定である場合に、他のプログラマブルコントローラから受信した前記文字列データを集約する、
    請求項に記載のプログラマブルコントローラ。
  7. 前記パラメータ管理部が管理する前記パラメータは、前記プログラマブルコントローラに接続された操作端末又はデバイスへの操作入力により変更可能である、
    請求項1からのいずれか1項に記載のプログラマブルコントローラ。
  8. 前記メッセージ出力命令に含まれる文字列を解析して、予め定めた特定文字列が含まれているか否かを判定する文字列解析部と、
    前記文字列解析部が、前記特定文字列が含まれていると判定した場合に、予め定めたハードウェア処理を実行するハードウェア処理部と、を更に備える、
    請求項1からのいずれか1項に記載のプログラマブルコントローラ。
  9. 前記メッセージ出力命令に含まれる文字列に基づいて、前記プログラマブルコントローラの内部又は外部に存するデバイスに係るデバイスデータを取得して、前記デバイスデータを含む文字列データを生成する文字列データ生成部を、更に備え、
    前記文字列データ出力部は、前記文字列データ生成部が生成した文字列データを前記出力先に出力する、
    請求項1からのいずれか1項に記載のプログラマブルコントローラ。
  10. 複数のプログラマブルコントローラを含むプログラマブルコントローラシステムであって、
    各プログラマブルコントローラは、
    前記プログラマブルコントローラのプログラムに含まれるメッセージ出力命令に基づいて文字列データを出力する出力先を指定する出力先設定と、前記プログラマブルコントローラの動作モードが稼働モードであるかデバッグモードであるかを示す動作モード設定と、を含むパラメータを管理するパラメータ管理部と、
    前記出力先設定が示す前記出力先に対して、前記メッセージ出力命令に基づいて文字列データを出力する文字列データ出力部と、を備え、
    前記出力先設定が示す前記出力先は、該プログラマブルコントローラのインタフェースを介して接続された他のプログラマブルコントローラを含
    前記メッセージ出力命令は、前記動作モードが前記稼働モードであるときに命令を実行するか、又は、前記動作モードが前記デバッグモードであるときに命令を実行するかを指定する第1引数を含み、
    前記文字列データ出力部は、
    前記動作モード設定と前記第1引数とを比較した結果に基づいて、前記出力先に前記文字列データを出力し、又は、文字列データを出力しない、
    プログラマブルコントローラシステム。
  11. プログラマブルコントローラを、
    前記プログラマブルコントローラの動作モードが稼働モードであるかデバッグモードであるかを示す動作モード設定を含むパラメータを管理するパラメータ管理部、
    メッセージ出力命令に基づいて文字列データを出力する文字列データ出力部、として機能させるためのプログラムであって、
    前記メッセージ出力命令は、前記動作モードが前記稼働モードであるときに命令を実行するか、又は、前記動作モードが前記デバッグモードであるときに命令を実行するかを指定する第1引数を含み、
    前記文字列データ出力部は、
    前記動作モード設定と前記第1引数とを比較した結果に基づいて、予め設定した出力先に前記文字列データを出力し、又は、文字列データを出力しない、
    プログラム。
JP2022506922A 2021-08-05 2021-08-05 プログラマブルコントローラ、プログラマブルコントローラシステム及びプログラム Active JP7055264B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/029049 WO2023012959A1 (ja) 2021-08-05 2021-08-05 プログラマブルコントローラ、プログラマブルコントローラシステム及びプログラム

Publications (3)

Publication Number Publication Date
JP7055264B1 true JP7055264B1 (ja) 2022-04-15
JPWO2023012959A1 JPWO2023012959A1 (ja) 2023-02-09
JPWO2023012959A5 JPWO2023012959A5 (ja) 2023-07-11

Family

ID=81289235

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022506922A Active JP7055264B1 (ja) 2021-08-05 2021-08-05 プログラマブルコントローラ、プログラマブルコントローラシステム及びプログラム

Country Status (4)

Country Link
JP (1) JP7055264B1 (ja)
CN (1) CN117651938A (ja)
DE (1) DE112021008077T5 (ja)
WO (1) WO2023012959A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004302880A (ja) * 2003-03-31 2004-10-28 Digital Electronics Corp プログラマブル・ロジック・コントローラ、プログラムエディタ装置、それらのプログラムおよび記録媒体
JP2007128363A (ja) * 2005-11-04 2007-05-24 Omron Corp プログラマブル・コントローラ・システム
JP2015141439A (ja) * 2014-01-27 2015-08-03 三菱電機株式会社 ソフトウェア試験装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004302880A (ja) * 2003-03-31 2004-10-28 Digital Electronics Corp プログラマブル・ロジック・コントローラ、プログラムエディタ装置、それらのプログラムおよび記録媒体
JP2007128363A (ja) * 2005-11-04 2007-05-24 Omron Corp プログラマブル・コントローラ・システム
JP2015141439A (ja) * 2014-01-27 2015-08-03 三菱電機株式会社 ソフトウェア試験装置

Also Published As

Publication number Publication date
JPWO2023012959A1 (ja) 2023-02-09
DE112021008077T5 (de) 2024-05-23
CN117651938A (zh) 2024-03-05
WO2023012959A1 (ja) 2023-02-09

Similar Documents

Publication Publication Date Title
US10365624B2 (en) Slave device, method for controlling slave device, and non-transitory computer-readable recording medium
EP2889707B1 (en) Control device and communication control method
JP6874438B2 (ja) スレーブ装置、スレーブ装置の制御方法、情報処理プログラム、および記録媒体
WO2018154884A1 (ja) 制御システム、制御装置および制御プログラム
US11165745B2 (en) Control system, controller, and control method
JP7055264B1 (ja) プログラマブルコントローラ、プログラマブルコントローラシステム及びプログラム
CN109791398B (zh) 调试装置
US10656611B2 (en) Programmable controller
US20190306250A1 (en) Support apparatus, non-transitory computer-readable recording medium and setting method
JP6135247B2 (ja) 情報処理装置および情報処理プログラム
EP3751365B1 (en) Control device, monitoring method, and monitoring program
US20190303319A1 (en) Support apparatus, non-transitory computer-readable recording medium and setting method
US20190302722A1 (en) Device management apparatus, device management method, storage medium, and device management system
JP6870234B2 (ja) 制御装置、制御システム及び制御方法
US11985036B2 (en) Network management device, management method, and recording medium
JP6680313B2 (ja) 制御装置および通信制御方法
US11092945B2 (en) Control device, control method, and non-transitory storage medium storing control program
CN107561950B (zh) 楼宇中控制器的编程方法及提供控制器编程工具的服务器
JP6705464B2 (ja) 制御装置および通信制御方法
JPWO2019207679A1 (ja) モニタ支援装置、モニタ支援方法およびモニタ支援プログラム
WO2021065033A1 (ja) プログラム開発装置およびプログラム開発装置を実現するためのプログラム
JP6940755B2 (ja) データ送信プログラム、データ比較プログラム、情報処理装置、データ送信方法及びデータ比較方法
US20220027346A1 (en) Framework for managing tag bundles
WO2020166004A1 (ja) 制御システム、プログラマブルロジックコントローラ、方法、及びプログラム
CN116894545A (zh) 信息处理系统、信息处理方法以及记录介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220203

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220203

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20220203

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220308

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220405

R150 Certificate of patent or registration of utility model

Ref document number: 7055264

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150