JP7107262B2 - 制御システムおよび制御装置 - Google Patents

制御システムおよび制御装置 Download PDF

Info

Publication number
JP7107262B2
JP7107262B2 JP2019047443A JP2019047443A JP7107262B2 JP 7107262 B2 JP7107262 B2 JP 7107262B2 JP 2019047443 A JP2019047443 A JP 2019047443A JP 2019047443 A JP2019047443 A JP 2019047443A JP 7107262 B2 JP7107262 B2 JP 7107262B2
Authority
JP
Japan
Prior art keywords
slave
slaves
identification information
setting
designated
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
JP2019047443A
Other languages
English (en)
Other versions
JP2020150453A (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.)
Omron Corp
Original Assignee
Omron 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 Omron Corp filed Critical Omron Corp
Priority to JP2019047443A priority Critical patent/JP7107262B2/ja
Priority to US17/434,834 priority patent/US20220147006A1/en
Priority to PCT/JP2020/005795 priority patent/WO2020184063A1/ja
Priority to CN202080017709.6A priority patent/CN113508562B/zh
Priority to EP20769034.8A priority patent/EP3940996A4/en
Publication of JP2020150453A publication Critical patent/JP2020150453A/ja
Application granted granted Critical
Publication of JP7107262B2 publication Critical patent/JP7107262B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0421Multiprocessor system
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0428Safety, monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5038Address allocation for local use, e.g. in LAN or USB networks, or in a controller area network [CAN]
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/11Plc I-O input output
    • G05B2219/1113Address setting
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/21Pc I-O input output
    • G05B2219/21005Several slave modules connected to same I-O of master, multiplexed by master
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/22Pc multi processor system
    • G05B2219/2231Master slave

Description

本発明は、ネットワーク接続されたスレーブを含む制御システムおよびその制御システムに用いられる制御装置に関する。
FA(ファクトリオートメーション)分野においては、制御装置と、当該制御装置にネットワーク接続された1または複数のスレーブとからなる制御システムが普及している。スレーブとしては、入出力装置やロボット制御や視覚センサといった任意の処理機能を提供する装置などが想定される。通常、制御装置はマスタとして機能する。
制御装置は、各スレーブとの間でデータを遣り取りするため、各スレーブを特定する必要がある。スレーブを特定するための情報としては、スレーブID(識別情報)、ネットワークID(識別情報)、ネットワークアドレス、ノードアドレスと称される。
制御対象に応じて、スレーブの数および接続構成は適宜決定され、また、事後的に追加または変更されることもある。このような場合、各スレーブを特定するための情報についても、適宜更新する必要がある。
例えば、特開2015-176369号公報(特許文献1)は、サポート装置が提供するグループを設定するためのユーザインターフェイス画面において、各デバイスについて、グループ名、デバイス名、ネットワークアドレスおよびノードアドレスを任意に設定できる構成を開示する。
特開2015-176369号公報
例えば、多品種少量生産の製造ラインでは、段取り替えと呼ばれる装置の組み換えが頻繁に行われることがある。このような段取り替えが発生した場合には、スレーブの識別情報を再設定あるいは変更する必要がある。このような識別情報の再設定あるいは変更を行う場合に生じる不具合に対するトラブルシュートを容易化できる構成が要望されている。
本発明のある局面に従う制御システムは、マスタとして機能する制御装置と、制御装置とネットワーク接続された複数のスレーブとを含む。複数のスレーブの各々は識別情報を有している。制御装置は、第1の命令を実行することで、1つ以上の指定されたスレーブに対して、それぞれ指定された識別情報を設定する識別情報設定手段を含む。識別情報設定手段は、1つ以上の指定されたスレーブのうち、いずれのスレーブにおいて識別情報の設定が失敗したのかを示す第1のエラー情報を出力する。この局面によれば、1つ以上の指定されたスレーブに対してそれぞれのスレーブ識別情報を一斉に設定する際に、設定が失敗した場合に、設定が失敗したスレーブの位置を容易に特定できる。これにより、トラブルシュートを容易化できる。
識別情報設定手段は、1つ以上の指定されたスレーブに対応するメンバを有する配列を第1のエラー情報として出力するようにしてもよい。この構成によれば、1つの配列に各スレーブでのエラーの発生有無の情報が格納されるので、取り扱いを容易化できる。
第1の命令には、第1のエラー情報を出力する先のテーブル名が指定されてもよい。この構成によれば、任意のテーブルに第1のエラー情報を格納できる。
識別情報設定手段は、1つ以上の指定されたスレーブに対する識別情報の設定が失敗したか否かを示す第2のエラー情報をさらに出力するようにしてもよい。この構成によれば、いずれかのスレーブにおいて識別情報の設定が失敗したことを容易に把握できる。
識別情報設定手段は、1つ以上の指定されたスレーブに対する識別情報の設定が失敗した理由を示す第3のエラー情報をさらに出力するようにしてもよい。この構成によれば、識別情報の設定が失敗した原因の解析を容易化できる。
制御システムは、第1のエラー情報に基づいて、1つ以上の指定されたスレーブのうち識別情報の設定が失敗したスレーブの位置を視覚的に提示する表示装置をさらに含んでいてもよい。この構成によれば、オペレータなどが1つ以上の指定されたスレーブのうち識別情報の設定が失敗したスレーブの位置を一見して把握できるので、トラブルシュートの要する時間を短縮できる。
第1の命令は、制御装置で実行されるユーザプログラムの一部として実行されてもよい。この構成によれば、サポート装置などを用いることなく、スレーブに対して識別情報を設定できる。
制御装置は、複数のスレーブのうちいずれかのスレーブが基準として指定された第2の命令を実行することで、指定された他のスレーブに設定されている識別情報を読み出す識別情報読出手段をさらに含んでいてもよい。この構成によれば、識別情報が不明な任意のスレーブから識別情報を読み出すことができる。
制御装置は、複数のスレーブの接続構成を定義する構成情報を有していてもよい。制御装置は、第3の命令を実行することで、構成情報による定義に含まれる一部または全部のスレーブを無効化する無効化手段をさらに含んでいてもよい。この構成によれば、構成情報と実際の接続構成とが一致しない場合であっても、異常などを発生させることなく、処理を継続させることができる。
本発明の別の局面に従えば、マスタとして機能する制御装置が提供される。制御装置は、複数のスレーブとネットワーク接続するためのコントローラを備え、複数のスレーブの各々は識別情報を有している。制御装置は、第1の命令を実行することで、1つ以上の指定されたスレーブに対して、それぞれ指定された識別情報を設定する識別情報設定手段を含む。識別情報設定手段は、1つ以上の指定されたスレーブのうち、いずれのスレーブにおいて識別情報の設定が失敗したのかを示す第1のエラー情報を出力する。
本発明によれば、識別情報の再設定あるいは変更を行う場合に生じる不具合に対するトラブルシュートを容易化できる。
本実施の形態に係る制御システムの全体構成例を示す模式図である。 本実施の形態に係る背景技術を説明するための模式図である。 図2に示される制御装置が保持する構成情報の一例を示す図である。 図2に示される段取り替えに応じた構成情報の変化を説明するための図である。 本実施の形態に係る制御システムを構成する制御装置のハードウェア構成例を示す模式図である。 本実施の形態に係る制御システムを構成するスレーブのハードウェア構成例を示す模式図である。 本実施の形態に係る制御システムを構成するサポート装置のハードウェア構成例を示す模式図である。 段取り替えにおいて生じるスレーブIDの変化を説明するための図である。 ポジションアドレスを用いたスレーブIDの設定を説明するための図である。 本実施の形態に係るスレーブID設定命令の一例を説明するための図である。 本実施の形態に係る制御システムを構成するスレーブにおけるスレーブIDの設定処理を説明するための模式図である。 本実施の形態に係る制御装置のユーザプログラムで利用可能なスレーブID設定命令のファンクションブロックを説明するための図である。 本実施の形態に係る制御装置のユーザプログラムで利用可能なスレーブID読出命令のファンクションブロックを説明するための図である。 本実施の形態に係るスレーブID設定命令がユーザプログラムから実行された場合の処理手順を示すシーケンス図である。 図14に示す実構成管理コンポーネントが保持している実構成情報の一例を示す模式図である。 本実施の形態に係るスレーブID設定命令が出力する異常終了結果の一例を示す模式図である。 本実施の形態に係るスレーブID設定命令を用いた段取り替えの内容を説明するための図である。 図17に示す段取り替えに対応するユーザプログラムの要部を示す図である。 図17に示す段取り替え対応する接続状態の変化を説明するための図である。 図17に示す段取り替え対応する構成情報の変化を説明するための図である。 本実施の形態に従うスレーブID設定命令を用いたスレーブの再起動を促すためのユーザプログラムの一例を示す図である。 本実施の形態に従うスレーブID設定命令の実行が失敗したときの情報提示を実現するためのユーザプログラムの一例を示す図である。
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
<A.適用例>
まず、図1を参照して、本発明が適用される場面の一例について説明する。
図1は、本実施の形態に係る制御システム1の全体構成例を示す模式図である。図1を参照して、制御システム1は、主たるコンポーネントとして、マスタとして機能する制御装置100と、制御装置100とネットワーク接続された1または複数のスレーブ200-1,200-2,・・・(以下、「スレーブ200」とも総称する。)とを含む。
制御装置100と1または複数のスレーブ200とを接続するネットワークには、典型的には、EtherCAT(登録商標)、EtherNet/IP(登録商標)、DeviceNet(登録商標)、CompoNet(登録商標)などの産業用ネットワークを採用することが好ましい。以下の説明においては、典型例として、EtherCATを採用した場合について説明するが、他の規格あるいはプロトコルを採用してもよい。
制御システム1において、スレーブ200の各々は、マスタとして機能する制御装置100から特定可能な識別情報を有している。以下では、このような識別情報として「スレーブID」を用いる(詳細については後述する)場合について説明する。但し、「スレーブID」に限定されることなく、任意の識別情報を用いることができる。
本実施の形態に従う制御装置は、任意のスレーブ200に設定されているスレーブID(識別情報)を任意に再設定あるいは変更(以下、単に「設定」とも総称する。)できる。より具体的には、制御装置100は、所定の命令を実行することで、1つ以上の指定されたスレーブ200に対して、それぞれ指定されたスレーブID(識別情報)を設定する。このとき、制御装置100は、1つ以上の指定されたスレーブ200のうち、いずれのスレーブ200においてスレーブIDの設定が失敗したのかを示すエラー情報を出力する。このような識別情報設定処理を実装することで、識別情報の再設定あるいは変更を行う場合に生じる不具合に対するトラブルシュートを容易化できる。
以下、本明細書において用いられる用語について先に説明する。
本明細書において、「マスタ」は、注目しているネットワークにおけるデータ伝送を管理する主体または機能を総称する用語である。「マスタ」は、データ伝送を管理する装置(デバイス)自体を含み得る。
本明細書において、「スレーブ」は、マスタと対になる用語であり、注目しているネットワークにおいて、当該ネットワークのマスタの管理下でデータ伝送を行う主体または機能を総称する用語である。「スレーブ」は、データ伝送を行う装置(デバイス)自体を含み得る。
本明細書において、「マスタ」および「スレーブ」との用語は、注目しているネットワークにおけるデータ伝送に関する機能差を区別するための用語であり、データ伝送以外の機能や関係性については特に限定されるものではない。
本明細書において、「構成情報」は、制御装置あるいは別のデバイスが保持する構成などの定義を示す情報を意味する。
本明細書において、「ポジションアドレス」(Position Address)は、ネットワーク上のトポロジに応じて予め定められた規則に従って決定されるアドレスを意味する。例えば、マスタから近い順に、「0」,「0xffff」,「0xfffe」,・・と割り当てられてもよい。
本明細書において、「スレーブID」(Slave ID)は、マスタが構成情報と対比することでデバイス間の取り違えを防止するために、各スレーブに対して付与する識別情報を意味する。「スレーブID」は、マスタによって任意に設定され、これによって正しい位置にスレーブが接続されているか否かが判断される。「スレーブID」は、「ノードアドレス」とも称される。「ノードアドレス」は、スレーブに配置されているロータリースイッチなどによって設定されることもあるが、以下では、「スレーブID」はマスタ側から再設定あるいは変更可能であるとしてされるとして説明する。
本明細書において、「未知スレーブ」は、実際の構成がマスタの構成情報の対応する設定とは一致していないスレーブを意味する。すなわち、「未知スレーブ」は、構成情報によって定義される本来の位置とは異なった位置に配置されているスレーブを意味する。
<B.背景技術およびニーズ>
次に、本実施の形態に係る背景技術およびニーズについて概略する。
例えば、食品、化粧品、医薬品などの製造現場では、多品種少量生産となっていることが多い。生産する製品に応じて、製品の形状、製品に付与するラベルの種類、製品に付与するラベルの位置などが異なるため、製品毎に製造ラインの組み替え(いわゆる、「段取り替え」)が行われることも多い。このような製造現場においては、汎用的な製造モジュールを用意しておき、これらの製造モジュールのレイアウトや位置などを適宜変更することで、段取り替えを実現する。
図2は、本実施の形態に係る背景技術を説明するための模式図である。図2には、2つの制御装置100-1,100-2がそれぞれ製造ラインを制御する構成例を示す。図2(A)には、コンベア20に製造モジュール30が配置され、コンベア22に製造モジュール40が配置されている例を示す。図2(A)に示す構成例では、制御装置100-1が製造モジュール30を制御し、制御装置100-2が製造モジュール40を制御する。
一方、図2(B)には、製造モジュール30がコンベア20からコンベア22に移された構成例を示す。図2(B)に示す構成例では、制御装置100-2が製造モジュール30および製造モジュール40を制御する。
図2に示すような段取り替えが生じる場合には、制御装置100の制御対象および接続されるデバイスは変化し得る。以下、このような段取り替えへの対応について説明する。
図3は、図2に示される制御装置100が保持する構成情報の一例を示す図である。図4は、図2に示される段取り替えに応じた構成情報の変化を説明するための図である。
制御装置100-1および100-2の各々は、図3に示すような、複数のスレーブ200の接続構成を定義する構成情報(図5に示す構成情報134に対応)を有している。より具体的には、図3に示す構成情報は、制御装置100にジャンクションスレーブ200Jが接続されており、ジャンクションスレーブ200Jの一つのポートには、製造モジュール30を構成するスレーブが接続されており、別のポートには、製造モジュール40を構成するスレーブが接続されている。
図4(A)は、図2(A)に示される構成例に対応する制御装置100-1および100-2の設定例を示し、図4(B)は、図2(B)に示される構成例に対応する制御装置100-1および100-2の設定例を示す。
図4(A)および(B)に示すように、制御装置100-1および100-2の各々においては、実際には存在しない製造モジュールに対応するスレーブの設定が無効化される。より具体的には、図4(A)の場合には、制御装置100-1の製造モジュール40に関する設定が無効化されるとともに、制御装置100-2の製造モジュール30に関する設定が無効化される。また、図4(B)の場合には、制御装置100-1の製造モジュール30および40に関する設定が無効化される。
このように、制御装置100の構成情報には、接続され得る最大の構成に対応する情報を含めておき、実際に接続される構成に応じて、不要なスレーブについての設定を無効化することで、様々な段取り替えに対応できる。
本実施の形態に係る制御装置100は、上述したような構成情報の一部または全部の無効化に加えて、スレーブIDの再設定や変更が可能になっている。このようなスレーブIDの再設定や変更を実現することで、段取り替えに対する適応性をより高めることができる。
<C.ハードウェア構成例>
本実施の形態に係る制御システムを構成する主たる装置のハードウェア構成例について説明する。
(c1:制御装置100)
図5は、本実施の形態に係る制御システムを構成する制御装置100のハードウェア構成例を示す模式図である。図5を参照して、制御装置100は、プロセッサ102と、チップセット104と、メインメモリ106と、ストレージ108と、ネットワークコントローラ110と、USB(Universal Serial Bus)コントローラ112と、メモリカードインターフェイス114と、内部バスコントローラ118と、フィールドネットワークコントローラ120と、カウンタ126と、RTC(Real Time Clock)128とを含む。
プロセッサ102は、制御演算などを実行する演算処理部に相当し、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)などで構成される。具体的には、プロセッサ102は、ストレージ108に格納されたプログラム(一例として、システムプログラム130およびユーザプログラム132)を読み出して、メインメモリ106に展開して実行することで、制御対象に応じた制御、および、後述するような各種処理を実現する。
メインメモリ106は、例えば、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性メモリなどで構成される。ストレージ108は、例えば、SSD(Solid State Drive)やHDD(Hard Disk Drive)などの不揮発性メモリなどで構成される。
チップセット104は、プロセッサ102と各デバイスを制御することで、制御装置100全体としての処理を実現する。
ストレージ108には、基本的な機能を実現するためのシステムプログラム130に加えて、設備や機械などの制御対象に応じて作成されるユーザプログラム132が格納される。
ネットワークコントローラ110は、情報系ネットワークを介して、ゲートウェイやデータベースサーバといった任意の情報処理装置との間でデータを遣り取りする。USBコントローラ112は、USB接続を介して、サポート装置300との間でデータを遣り取りする。
メモリカードインターフェイス114は、メモリカード116を着脱可能に構成されており、メモリカード116に対してデータを書き込み、メモリカード116から各種データを読み出すことが可能になっている。
カウンタ126は、制御装置100で実行される各種プログラムの実行タイミングを管理するための時刻基準として用いられる。カウンタ126は、プロセッサ102を駆動するシステムバス上に配置された、高精度イベントタイマー(HPET:High Precision Event Timer)などを用いて実装してもよいし、あるいは、ASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)などの専用回路を用いて実装してもよい。
RTC128は、計時機能を有する一種のカウンタであり、現在時刻をプロセッサ102などへ提供する。
内部バスコントローラ118は、内部バス6を介して1または複数の機能ユニット150-1,150-2,・・・(以下、「機能ユニット150」とも総称する。)と制御装置100とを電気的に接続するための通信インターフェイスに相当する。内部バスコントローラ118は、内部バス6を介して定周期通信を行うためのマスタとして機能する。
機能ユニット150は、制御装置100に接続されて、制御対象との間で各種の信号を遣り取りする装置を総称する。機能ユニット150は、IOユニットと、通信ユニットと、PID制御やモーション制御といった特殊機能を実装したコントローラユニットとを含み得る。IOユニットは、例えば、制御対象からのデジタル入力信号を受取るDI(Digital Input)機能、制御対象に対してデジタル出力信号を送出するDO(Digital Output)機能、制御対象からのアナログ入力信号を受取るAI(Analog Input)機能、制御対象に対してアナログ出力信号を送出するAO(Analog Output)機能のうち1または複数の機能を有している。
フィールドネットワークコントローラ120は、ネットワーク4を介して1または複数のスレーブ200-1,200-2,・・・(スレーブ200)と制御装置100とを電気的に接続するための通信インターフェイスに相当する。このように、フィールドネットワークコントローラ120は、複数のスレーブ200と接続するためのコントローラであり、ネットワーク4を介して定周期通信を行うためのマスタとして機能する。
図5には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。あるいは、制御装置100の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
また、制御装置100に表示装置やサポート装置などの機能を統合した構成を採用してもよい。
(c2:スレーブ200)
図6は、本実施の形態に係る制御システムを構成するスレーブ200のハードウェア構成例を示す模式図である。図6を参照して、スレーブ200は、フィールドネットワークコントローラ202と、メインコントローラ210と、機能回路230とを含む。
フィールドネットワークコントローラ202は、ネットワーク4を介して制御装置100(マスタ)とスレーブ200とを電気的に接続するための通信インターフェイスに相当する。フィールドネットワークコントローラ202は、マスタの管理下でデータを遣り取りするための通信スレーブとして機能する。
メインコントローラ210は、スレーブ200の主たる制御を担当する回路であり、例えば、プロセッサ212と、メインメモリ214と、不揮発性メモリ220とを含む。
不揮発性メモリ220には、プロセッサ212により実行されるファームウェア226と、スレーブID224とが格納されている。
機能回路230は、スレーブ200の固有機能を提供する。例えば、スレーブ200がモータドライブ装置である場合には、機能回路230は、インバータ回路や制御回路などを含む。また、スレーブ200がリモートIO装置である場合には、接続される機能ユニットとの間で内部バスを介してデータを遣り取りするための通信インターフェイスなどを含む。
図6には、プロセッサ212を含むメインコントローラ210を示すが、メインコントローラ210が提供する機能の全部または一部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。
(c3:サポート装置300)
図7は、本実施の形態に係る制御システムを構成するサポート装置300のハードウェア構成例を示す模式図である。サポート装置300は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いてプログラムを実行することで実現される。
図7を参照して、サポート装置300は、プロセッサ302と、メインメモリ304と、ストレージ306と、入力部308と、表示部310と、光学ドライブ312と、USBコントローラ316とを含む。これらのコンポーネントは、プロセッサバス318を介して接続されている。
プロセッサ302は、CPUやGPUなどで構成され、ストレージ306に格納されたプログラム(一例として、OS320およびサポートプログラム326)を読み出して、メインメモリ304に展開して実行することで、後述するような各種処理を実現する。
メインメモリ304は、例えば、DRAMやSRAMなどの揮発性メモリなどで構成される。ストレージ306は、例えば、HDDやSSDなどの不揮発性メモリなどで構成される。
ストレージ306には、基本的な機能を実現するためのOS320に加えて、サポート装置300としての機能を提供するためのサポートプログラム326が格納される。さらに、ストレージ306には、構成情報134が格納される。これらの情報の取得および利用については、後述する。
入力部308は、キーボードやマウスなどで構成され、ユーザ操作を受け付ける。表示部310は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ302からの処理結果などを出力する。
USBコントローラ316は、USB接続を介して、制御装置100などとの間のデータの遣り取りを制御する。
サポート装置300は、光学ドライブ312を有しており、コンピュータ読み出し可能なプログラムを非一過的に格納する記録媒体314(例えば、DVD(Digital Versatile Disc)などの光学記録媒体)から、その中に格納されたプログラムが読み出されてストレージ306などにインストールされる。
サポート装置300で実行されるプログラムは、コンピュータ読み出し可能な記録媒体314を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係るサポート装置300が提供する機能は、OSが提供するモジュールの一部を利用する形で実現される場合もある。
図7には、プロセッサ302がプログラムを実行することで、サポート装置300として必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。
<D.スレーブIDについての課題および解決手段>
次に、スレーブIDについての課題および解決手段について説明する。
図8は、段取り替えにおいて生じるスレーブIDの変化を説明するための図である。図8(A)においては、マスタである制御装置100には、ジャンクションスレーブ200Jを介して、製造モジュール30(スレーブ200-1および200-2)、ならびに、製造モジュール40(スレーブ200-3および200-4)が接続されている例を示す。図8(A)に示す接続構成において、スレーブ200-1および200-2には、スレーブIDとして「1」および「2」がそれぞれ設定されている。また、スレーブ200-3および200-4には、スレーブIDとして「3」および「4」がそれぞれ設定されている。
段取り替えによって、図8(A)に示す接続構成から図8(B)に示す接続構成に変化したとする。このとき、製造モジュール30(スレーブ200-1および200-2)は、ジャンクションスレーブ200Jの当初接続されていたポートとは異なるポートに接続される。制御装置100から見ると、図8(A)に示す接続構成における設定構成とは異なった構成となっている。すなわち、スレーブIDとして「1」および「2」がそれぞれ設定されているスレーブ200-1および200-2は、マスタである制御装置100の構成情報134に規定されている位置とは異なった位置に接続されていることになる。
その結果、図8(B)に示す接続構成において、スレーブ200-1および200-2は「未知スレーブ」となる。
このような「未知スレーブ」になったスレーブに対しては、スレーブIDを再設定あるいは変更する必要がある。しかしながら、このようなスレーブIDの再設定あるいは変更には、以下のような課題が想定される。
(1)ユーザプログラム132からの参照不可
マスタである制御装置100で実行されるユーザプログラム132においては、構成情報134と実際の構成とが一致しているスレーブ200に設定されているスレーブIDを参照可能になっている。すなわち、ユーザプログラム132は、未知スレーブのスレーブIDを参照および指定できない。その結果、ユーザプログラム132では、対象となる未知スレーブを特定できないので、未知スレーブのスレーブIDを再設定あるいは変更することはできない。
(2)ポジションアドレスの不便性
上述したように、ユーザプログラム132においては未知スレーブのスレーブIDを参照および指定できないので、未知スレーブを特定するためには、接続されている位置(すなわち、ポジションアドレス)を用いる必要がある。
図9は、ポジションアドレスを用いたスレーブIDの設定を説明するための図である。図9(A)においては、マスタである制御装置100には、ジャンクションスレーブ200Jを介して、製造モジュール30(スレーブ200-1および200-2)、ならびに、製造モジュール40(スレーブ200-3および200-4)が接続されている例を示す。
段取り替えによって、図9(A)に示す接続構成から図9(B)に示す接続構成に変化したとする。このとき、製造モジュール30(スレーブ200-1および200-2)は、ジャンクションスレーブ200Jの当初接続されていたポートとは異なるポートに接続される。さらに、製造モジュール30(スレーブ200-1および200-2)が接続されていたジャンクションスレーブ200Jのポートには、さらに別の製造モジュール50(スレーブ200-5および200-6)が接続される。
図9に示すように、一例として、特定のポジションアドレスにあるスレーブ200に対して、任意のスレーブIDを設定するために、以下のような命令が用意されている。
SlaveIDAddress_set([設定対象のスレーブのポジションアドレス],[設定すべきスレーブID])
このようなスレーブIDを設定する命令を実行する場合には、各スレーブ200の接続位置を把握して、適切なポジションアドレスを指定する必要がある。しかしながら、このようなポジションアドレスを適切に把握するためには十分な知識が必要である。このような知識が不足していると、スレーブ200に対して意図しないスレーブIDを設定してしまう可能性もある。
上述したような課題に対して、本実施の形態においては、ユーザプログラム132に含まれる命令を用いて、任意のスレーブ200に対して、容易な方法で任意のスレーブIDを設定できる方法を提供する。
<E.ユーザプログラム132でスレーブIDの設定>
本実施の形態に係る制御装置100においては、ユーザプログラム132において実行可能な、スレーブIDを再設定あるいは変更するための命令(以下、「スレーブID設定命令」とも称す。)が提供される。このようなスレーブID設定命令を用いることで、各スレーブ200に対してスレーブIDを設定する際に、サポート装置300などを用いる必要はない。さらに、ユーザプログラム132の一部として実行されるので、例えば、ユーザが表示装置を操作することをトリガとして、段取り替えおよびスレーブIDの設定を並行して行うこともできる。
上述したように、ユーザプログラム132では、未知スレーブのスレーブIDを特定できないので、スレーブID設定命令においては、未知スレーブの近傍に存在し、スレーブIDを取得できているスレーブを基準として、未知スレーブを特定する。そして、その特定した未知スレーブに対して、任意のスレーブIDを設定する。
図10は、本実施の形態に係るスレーブID設定命令の一例を説明するための図である。図10には、ジャンクションスレーブ200JのportCに接続されている製造モジュール30(スレーブ200-1および200-2)に対してスレーブIDを設定する例を示す。
図10を参照して、スレーブID設定命令400は、有効なスレーブIDを有しているジャンクションスレーブ200Jとして、未知スレーブであるスレーブ200-1および200-2に対して、スレーブIDをそれぞれ設定する。具体的には、スレーブID設定命令400(EC_SetSlaveSlaveID)は、以下のような形式で規定される。
EC_SetSlaveSlaveID([基準となるスレーブのスレーブID],[ポート名],[設定されるスレーブID],[対象スレーブ数])
図10に示す例では、命令EC_SetSlaveSlaveIDに対して、引数として、(100,portC,[5,6],2)が指定されている。第1引数である「100」は、基準となるスレーブのスレーブIDを示すものであり、図10に示す例では、ジャンクションスレーブ200JのスレーブIDが格納される。第2引数である「portC」は、スレーブIDを設定する対象であるスレーブ200-1および200-2が接続されているジャンクションスレーブ200Jのポート名を指定するものである。第3引数である「[5,6]」は、対象のスレーブ200-1および200-2に対して設定するスレーブIDの値を示す。第4引数である「2」は、設定対象のスレーブ200-1および200-2の数を示す。
このように、本実施の形態に係る制御装置100は、複数のスレーブ200のうちいずれかのスレーブ200が基準として指定されたスレーブID設定命令400を実行することで、指定された他のスレーブ200に対して、指定されたスレーブID(識別情報)を設定する。このようないずれかのスレーブ200が基準としてスレーブID(識別情報)を設定できる処理が識別情報設定機能に相当する。
スレーブIDの設定対象のスレーブ200を特定するために、スレーブID設定命令400は、当該スレーブ200が接続されるポートの指定(EC_SetSlaveSlaveIDの[ポート名]の引数)を含んでいてもよい。あるいは、ポートの指定に代えて、基準となるスレーブ200に接続されているネットワークを特定できる情報であれば、どのような情報を用いてもよい。
本実施の形態に係る制御装置100においては、任意の未知スレーブに対してスレーブIDの設定を行う場合に、ユーザに対して、当該未知スレーブのポジションアドレスを意識させることがない。その結果、ユーザは、段取り替え等に伴ってスレーブIDの設定を行わなければならない場合に、ユーザプログラム132を容易に作成できる。
また、本実施の形態に係る制御装置100において、スレーブID設定命令400は、複数の設定対象のスレーブ200に対してそれぞれスレーブIDを指定可能である。すなわち、本実施の形態に係る制御装置100は、スレーブID設定命令400を実行することで、1つ以上の指定されたスレーブ200に対して、それぞれ指定されたスレーブID(識別情報)を設定することもできる。
このような構成を採用することで、複数のスレーブ200に対して一括してスレーブIDを設定できるので、スレーブIDの設定に要する時間を短縮できる。
なお、図10には、説明の便宜上、2つのスレーブ200に対してスレーブIDを設定するスレーブID設定命令400の例を示すが、これに限らず、1つのスレーブ200に対してスレーブIDを設定することもできるし、より多くのスレーブ200に対してスレーブIDを設定することもできる。
また、図10には、製造モジュール30(スレーブ200-1および200-2)と直接接続される、すなわち設定対象のスレーブ200と直接接続されたスレーブを基準となるスレーブに設定したが、これに限らない。例えば、有効なスレーブIDを有している任意のスレーブを基準として、当該基準とされたスレーブからの経路(パスやホップ数)により任意の未知スレーブを特定して、スレーブIDを設定することもできる。なお、基準となるスレーブは、設定対象のスレーブ200よりマスタ側に位置していることが好ましい。
さらに、スレーブID設定命令400は、任意の表現形式で規定できる。例えば、後述するようなファンクションブロック形式で規定してもよい(詳細については、後述する)。
<F.スレーブにおけるスレーブIDの設定処理>
次に、スレーブ200におけるスレーブIDの設定処理について説明する。
図11は、本実施の形態に係る制御システムを構成するスレーブ200におけるスレーブIDの設定処理を説明するための模式図である。図11を参照して、スレーブ200は、不揮発性メモリ220にスレーブID224を格納している。また、スレーブ200の動作中においては、メインメモリ214上にスレーブID格納レジスタ216が用意される。スレーブID格納レジスタ216にもスレーブIDが書き込まれている。
図11に示すように、スレーブ200は、スレーブID(識別情報)を保持するための不揮発性メモリ220と、設定されているスレーブID(識別情報)を保持する揮発性メモリであるメインメモリ214とを有している。
本実施の形態においては、スレーブID格納レジスタ216へのスレーブIDの書き込み方法として2種類が用意されている。
第1番目の方法は、マスタからスレーブ200の不揮発性メモリ220内の内容を書き換える方法である。不揮発性メモリ220は、外部からのアクセスを受け入れ可能な領域を有しており、その領域内にスレーブID224が格納されている。なお、不揮発性メモリ220は、EEPROMとして実装されてもよい。マスタからのアクセスによって、不揮発性メモリ220にスレーブIDが書き込まれる(シーケンスSQ1)。この書き込みは、SII(Slave Information Interface)を用いて実行されるので、「SII書き込み」とも称される。すなわち、制御装置100は、スレーブIDの設定処理において、SIIを用いて、指定されたスレーブ200の不揮発性メモリ220に指定されたスレーブIDを書き込む。
但し、不揮発性メモリ220に書き込まれたスレーブIDは、そのままではスレーブID格納レジスタ216に反映されない。スレーブ200が再起動するときに、不揮発性メモリ220に格納されたスレーブIDが読み出されて、スレーブID格納レジスタ216に反映される(シーケンスSQ2)。そのため、スレーブIDを設定対象のスレーブ200の不揮発性メモリ220に書き込んだ場合には、スレーブ200の再起動が必要となる。
第2番目の方法は、スレーブID更新オブジェクト218(Slave Identification Reload Object)を用いる方法である。スレーブID更新オブジェクト218は、EtherCATにおいてSDO(Service Data Object)として規定されるオブジェクトであり、外部からのアクセスに応じて処理が可能になっている。メインメモリ214上にインスタンス化されているオブジェクトであり、外部からの指令に従って、スレーブID格納レジスタ216に格納されているスレーブIDを更新できる。この書き込みは、CoE(CANopen over EtherCAT)プロトコルを用いて実行されるので、「CoE書き込み」とも称される。
すなわち、制御装置100は、スレーブIDの設定処理において、CoEプロトコルを用いて、指定されたスレーブ200のメインメモリ214(揮発性メモリ)に指定されたスレーブIDを書き込む。
第2番目の方法においては、スレーブID更新オブジェクト218に対して、マスタから設定すべきスレーブIDを書き込むと(シーケンスSQ2)、スレーブID更新オブジェクト218がスレーブID格納レジスタ216に格納されている値を更新する(シーケンスSQ3)。
このように、スレーブ200のメインメモリ214(揮発性メモリ)へ指定されたスレーブID(識別情報)が書き込まれた場合、書き込み先のスレーブ200にスレーブID更新オブジェクト218が実装されていれば、スレーブID更新オブジェクト218がメインメモリ214に格納されているスレーブIDの値を更新する。
スレーブID更新オブジェクト218を用いる方法によれば、スレーブIDを反映するために、スレーブ200の電源を一旦遮断して再起動する必要はない。但し、設定対象のスレーブ200がスレーブID更新オブジェクト218を実装している必要がある。逆に言えば、スレーブID更新オブジェクト218を実装していないスレーブ200に対しては、スレーブIDを反映するために、電源遮断および再起動が必要となる。
後述するように、本実施の形態に係るスレーブID設定命令400が実行されると、第1番目および第2番目の両方の方法でスレーブIDが設定される。すなわち、制御装置100は、スレーブIDの設定処理において、設定対象のスレーブ200の不揮発性メモリ220およびメインメモリ214(揮発性メモリ)の両方に、指定されたスレーブIDを書き込む。このとき、制御装置100は、指定されたスレーブIDの書き込みの成否に応じて、指定されたスレーブ200の再起動の要否を示す情報(後述の図12に示す「ShouldReboot415」など)を出力する。
但し、第1番目および第2番目のいずれか一方の方法のみを実行するようにしてもよい。あるいは、第2番目の方法を実行し、その実行が失敗した場合(典型的には、スレーブID更新オブジェクト218が実装されていない場合)に限って、第1番目の方法を実行するようにしてもよい。
<G.命令の記述例>
本実施の形態に係るスレーブID設定命令400および関連する命令については、任意の形式で規定できるが、例えば、ファンクションブロック形式で規定してもよい。
図12は、本実施の形態に係る制御装置100のユーザプログラム132で利用可能なスレーブID設定命令400のファンクションブロックを説明するための図である。図12を参照して、スレーブID設定命令400のファンクションブロックは、入力として、Execute401と、PreviousSlaveID402と、PreviousSlavePort403と、NewSlaveIDTable404と、NumOfSlaves405と、FailureTable406とを含む。
Execute401には、実行条件となるブール変数が指定される。PreviousSlaveID402には、基準となるスレーブのスレーブIDが指定される。PreviousSlavePort403には、基準となるスレーブのポート名が指定される。NewSlaveIDTable404には、設定される1または複数のスレーブIDが指定される。NumOfSlaves405には、設定対象のスレーブの数が指定される。FailureTable406には、設定に失敗したスレーブを格納するテーブル名が指定される。
また、スレーブID設定命令400のファンクションブロックは、出力として、Done411と、Busy412と、Error413と、ErrorID414と、ShouldReboot415と、FailureTable416とを含む。
Done411からは、スレーブID設定命令400の正常終了の有無を示すブール値が出力される。Busy412からは、スレーブID設定命令400の処理中の有無を示すブール値が出力される。Error413からは、スレーブID設定命令400の異常終了の有無を示すブール値が出力される。ErrorID414からは、スレーブID設定命令400が異常終了したときのエラー値が出力される。ShouldReboot415からは、設定対象のスレーブの再起動が必要であるか否かを示すブール値が出力される。FailureTable416からは、設定に失敗したスレーブが格納された配列が出力される。このように、スレーブID設定命令400には、いずれのスレーブにおいてスレーブIDの設定が失敗したのかを示すエラー情報を出力する先のテーブル名が指定される。
図12に示す、PreviousSlaveID402、PreviousSlavePort403、NewSlaveIDTable404、および、NumOfSlaves405は、図10を参照して説明したように、任意のスレーブを基準となるスレーブとして設定した上で、1または複数の未知スレーブに対してそれぞれスレーブIDを設定するためのパラメータに相当する。
図12に示すFailureTable406および416には、未知スレーブに対するスレーブIDの設定の成否を示す情報が格納される。
図12に示すShouldReboot415として出力される値は、上述の図11を参照して説明したように、スレーブID更新オブジェクト218が実装されていないスレーブに対してスレーブIDを設定した場合に、当該スレーブを再起動することが必要であることを示す情報に相当する。
上述の基準となるスレーブを利用した応用例として、未知スレーブのスレーブIDを設定するのではなく、未知スレーブのスレーブIDを取得する命令(以下、「スレーブID読出設令」とも称す。)が提供されてもよい。
図13は、本実施の形態に係る制御装置100のユーザプログラム132で利用可能なスレーブID読出命令420のファンクションブロックを説明するための図である。図13を参照して、スレーブID読出命令420のファンクションブロックは、入力として、Execute421と、PreviousSlaveID422と、PreviousSlavePort423と、NumOfSlaves424とを含む。
Execute421には、実行条件となるブール変数が指定される。PreviousSlaveID422には、基準となるスレーブのスレーブIDが指定される。PreviousSlavePort423には、基準となるスレーブのポート名が指定される。NumOfSlaves424には、読出対象のスレーブの数が指定される。
また、スレーブID読出命令420のファンクションブロックは、出力として、Done431と、Busy432と、Error433と、ErrorID434と、GetSlaveIDTable435と、IsSlaveIDTable436とを含む。
Done431からは、スレーブID読出命令420の正常終了の有無を示すブール値が出力される。Busy432からは、スレーブID読出命令420の処理中の有無を示すブール値が出力される。Error433からは、スレーブID読出命令420の異常終了の有無を示すブール値が出力される。ErrorID434からは、スレーブID読出命令420が異常終了したときのエラー値が出力される。GetSlaveIDTable435からは、読出対象のスレーブから読み出されたスレーブIDが格納された配列が出力される。IsSlaveIDTable436からは、スレーブIDの取得の成否を示すブール値が格納された配列が出力される。
このように、本実施の形態に係る制御装置100は、複数のスレーブ200のうちいずれかのスレーブ200が基準として指定されたスレーブID読出命令420を実行することで、指定された他のスレーブ200に設定されているスレーブID(識別情報)を読み出す。このようないずれかのスレーブ200が基準としてスレーブID(識別情報)を読み出すことができる処理が識別情報読出機能に相当する。
上述したようなスレーブID設定命令400およびスレーブID読出命令420は、制御装置100で実行されるユーザプログラム132の一部として実行されてもよい。すなわち、ユーザプログラム132は、スレーブID設定命令400またはスレーブID読出命令420の実行を指定するコードを含み得る。
<H.処理手順>
本実施の形態に係るスレーブID設定命令400がユーザプログラム132から実行された場合の処理手順について説明する。
図14は、本実施の形態に係るスレーブID設定命令400がユーザプログラム132から実行された場合の処理手順を示すシーケンス図である。図14に示す処理手順は、制御装置100のプロセッサ102が実行するユーザプログラム132と、制御装置100によるマスタとしての機能を提供するフィールドネットワークコントローラ120と、スレーブ200との間で実行される。
フィールドネットワークコントローラ120は、ユーザプログラム132からの指令を受け付ける命令インターフェイス122と、ネットワーク4に接続されているスレーブ200の実際の接続状態(以下「実構成情報」とも称す。)を管理する実構成管理コンポーネント124とを有している。スレーブID設定命令400の実行においてスレーブIDが設定される設定対象のスレーブ200は、複数のスレーブ200の接続状態(実構成情報)を参照することで、接続されている位置が特定される。
より具体的には、ユーザプログラム132が順次実行される過程で、スレーブID設定命令400が実行されると(シーケンスSQ100)、フィールドネットワークコントローラ120の命令インターフェイス122に命令実行指示が与えられる(シーケンスSQ102)。命令実行指示は、図12に示すスレーブID設定命令400に対して設定される入力情報を含む。
命令インターフェイス122は、実構成管理コンポーネント124が管理している実際の実構成情報を参照して、指定された基準となるスレーブのスレーブIDおよびポート名に基づいて、設定対象となる未知スレーブのスレーブIDを取得する(シーケンスSQ104)。
続いて、命令インターフェイス122は、シーケンスSQ104において取得したスレーブIDに基づいて設定対象のスレーブ200を特定した上で、当該特定したスレーブ200の不揮発性メモリ220に指定されたスレーブIDを書き込む(シーケンスSQ106)。さらに、命令インターフェイス122は、スレーブIDの不揮発性メモリ220への書き込みの実行結果(書込結果)を取得し(シーケンスSQ108)、その取得した書込結果を内部に格納する(シーケンスSQ110)。
続いて、命令インターフェイス122は、シーケンスSQ104において取得したスレーブIDに基づいて設定対象のスレーブ200を特定した上で、当該特定したスレーブ200のスレーブID更新オブジェクト218に指定されたスレーブIDを書き込む(シーケンスSQ112)。さらに、命令インターフェイス122は、スレーブIDのスレーブID更新オブジェクト218への書き込みの実行結果(書込結果)を取得し(シーケンスSQ114)、その取得した書込結果を内部に格納する(シーケンスSQ116)。
なお、複数のスレーブ200が設定対象として指定されている場合には、シーケンスSQ104からSQ116の処理は、対象のスレーブ200の数だけ繰り返される。
最終的に、命令インターフェイス122は、命令の実行結果をユーザプログラム132へ返す(シーケンスSQ118)。
ユーザプログラム132へ返される命令の実行結果は、設定対象のスレーブの再起動が必要であるか否かを示すブール値(ShouldReboot415)を含む。具体的には、不揮発性メモリ220への書き込み(シーケンスSQ106)の成否によらず、スレーブID更新オブジェクト218への書き込みが成功した場合には、設定対象のスレーブの再起動は不要であることを示す値が返される。一方、不揮発性メモリ220への書き込み(シーケンスSQ106)は成功したものの、スレーブID更新オブジェクト218への書き込み(シーケンスSQ112)が失敗した場合には、設定対象のスレーブの再起動が必要であることを示す値が返される。
このように、制御装置100は、スレーブIDの設定処理において、指定されたスレーブ200の不揮発性メモリ220への指定されたスレーブIDの書き込みが成功したものの、メインメモリ214(揮発性メモリ)への指定されたスレーブIDの書き込みが成功しなかったときに、指定されたスレーブの再起動が必要であることを出力する。
なお、不揮発性メモリ220への書き込み(シーケンスSQ106)およびスレーブID更新オブジェクト218への書き込み(シーケンスSQ112)の両方が失敗した場合には、スレーブID設定命令400は異常終了とされてもよい。
図15は、図14に示す実構成管理コンポーネント124が保持している実構成情報の一例を示す模式図である。図15には、一例として、図10に示す接続構成に対応する実構成情報を示す。
図15を参照して、実構成管理コンポーネント124は、マスタとして機能する制御装置100に最も近いジャンクションスレーブ200Jのデバイス情報と、ジャンクションスレーブ200Jの各ポートに接続されているスレーブ200-1および200-2のデバイス情報とを含む。これらの情報は、接続関係を反映した形で管理される。
実構成管理コンポーネント124は、実構成情報を参照することで、ジャンクションスレーブ200JのportCに接続されているスレーブ200-1および200-2を特定できる。
なお、図15に具現化された情報は説明の便宜上のものであり、どのような形で管理されていてもよい。
<I.異常発生時の解析支援機能>
本実施の形態に係る制御装置100のユーザプログラム132で利用可能なスレーブID設定命令400およびスレーブID読出命令420は、1または複数のスレーブに対して、スレーブIDの設定あるいは読み出しを行う。複数のスレーブに対して処理を実行した場合には、いずれかのスレーブで実行失敗(異常終了)が生じると、その異常が発生したスレーブおよびその原因を特定することは容易ではない。そこで、本実施の形態においては、以下のような異常発生時の解析支援機能を提供する。
図16は、本実施の形態に係るスレーブID設定命令400が出力する異常終了結果の一例を示す模式図である。図16には、一例として、ジャンクションスレーブ200Jに接続される4つのスレーブ200-1~200-4に対してそれぞれスレーブIDを設定する例を示す。
この場合には、スレーブID設定命令400から出力されるFailureTable416は、各スレーブ200に対する設定の成否を示す4つのブール値を含む。例えば、4つのスレーブ200-1~200-4に対するそれぞれのスレーブIDの設定が異常なく実行されると、配列[0,0,0,0]が出力される。
これに対して、ジャンクションスレーブ200Jから2番目のスレーブ200-2に対するスレーブIDの設定が失敗した場合には、2番目のスレーブ200-2に対応する位置の値が「1」に変更されたFailureTable416が出力される。すなわち、FailureTable416として、配列[0,0,0,0]が出力される。
このように、制御装置100は、スレーブIDの設定処理において、スレーブIDの設定に失敗したスレーブ200を特定する情報を出力する。より具体的には、制御装置100は、スレーブIDの設定処理において、1つ以上の指定されたスレーブ200のうち、いずれのスレーブにおいてスレーブIDの設定が失敗したのかを示すエラー情報(FailureTable416)を出力する。エラー情報として出力されるFailureTable416には、1つ以上の指定されたスレーブ200に対応するメンバを有する配列が格納される。
このように、制御装置100により実行されるスレーブID設定命令400は、基準となるスレーブからの相対位置に対応付けられた異常終了結果を出力するので、異常が発生したスレーブの位置を容易に特定できる。すなわち、スレーブIDの設定あるいは読み出しが失敗した場合の原因を特定するために、設定あるいは読み出しが失敗したスレーブ200の位置を示す情報が出力される。
また、1つ以上の指定されたスレーブ200に対するスレーブIDの設定が失敗したか否かを示すError413(図12)をさらに出力するようにしてもよい。例えば、Error413がスレーブIDの設定が失敗したことを示す値になっている場合に、FailureTable416を参照するような処理を実装してもよい。
さらに、設定または読み出しが失敗した理由を示すエラーコードを出力するようにしてもよい。典型的には、スレーブID設定命令400のファンクションブロックが、ErrorID414(図12参照)として出力することができる。すなわち、スレーブID設定命令400は、1つ以上の指定されたスレーブ200に対するスレーブIDの設定が失敗した理由を示すErrorID414(図12参照)をさらに出力するようにしてもよい。なお、複数のスレーブ200を設定対象とした場合には、スレーブ200毎にエラーコードを出力するようにしてもよいし、複数のエラーコードが発生した場合には、優先度の高い順にエラーコードを出力するようにしてもよい。
なお、スレーブID設定命令400のファンクションブロックは、Error413として、スレーブIDの設定の成否を示す情報を出力してもよい。
このように、本実施の形態に係るスレーブID設定命令およびスレーブID読出設令によれば、命令実行の成否(成功/失敗)の情報を取得できるとともに、失敗した理由を示すエラーコードを取得することもできる。さらに、本実施の形態に係るスレーブID設定命令およびスレーブID読出設令によれば、失敗したスレーブの位置についても特定ができる。これらの情報を用いることで、スレーブIDの設定あるいは読み出しが失敗した場合に、対象のスレーブおよびその原因などを容易に特定できる。
さらに、本実施の形態に係る制御装置100は、スレーブIDの設定あるいは読み出しにおいて対象のスレーブに送信された指令(パケット)の内容を格納しておき、いずれかの処理が失敗したときには、その格納された指令(パケット)の内容を出力するようにしてもよい。
さらに、本実施の形態に係る制御装置100は、スレーブIDの設定あるいは読み出し処理に係るログを蓄積しておき、いずれかの処理が失敗したときには、その格納されたログの内容を出力するようにしてもよい。
<J.ユーザプログラム例>
次に、本実施の形態に係るスレーブID設定命令400を用いたいくつかのユーザプログラム例について説明する。
(j1:段取り替え)
まず、スレーブID設定命令400を用いた段取り替え用のユーザプログラム132について説明する。
図17は、本実施の形態に係るスレーブID設定命令400を用いた段取り替えの内容を説明するための図である。図17(A)に示す接続構成から図17(B)に示す接続構成に変更する場合を想定する。より具体的には、ジャンクションスレーブ200JのポートX4に接続されている4つのスレーブ200-1,200-2,200-3,200-4を取り外して、ジャンクションスレーブ200JのポートX5に接続し直す場合を想定する。
図18は、図17に示す段取り替えに対応するユーザプログラム132の要部を示す図である。図18を参照して、ユーザプログラム132は、行番号0~6までの7行分のコードを含む。
ユーザプログラム132において、命令EC_ChangeEnableSettingは、スレーブの有効および無効を切り替えるための命令である。行番号0,1,2,3に記述されている、スレーブ有効/無効切替命令450,451,452,453は、対象のスレーブを有効化する命令であり、行番号6に記述されている、スレーブ有効/無効切替命令454,455,456,457は、対象のスレーブを無効化する命令である。制御装置100は、これらの対象のスレーブを無効化する命令を実行することで、構成情報134による定義に含まれる一部または全部のスレーブを無効化する。
命令ResetECErrorは、スレーブの異常を解除するための命令である。行番号5に記述されている、スレーブ異常解除命令460が命令ResetECErrorに相当する。
図19は、図17に示す段取り替え対応する接続状態の変化を説明するための図である。図20は、図17に示す段取り替え対応する構成情報134の変化を説明するための図である。
図17に示す段取り替えは、以下の手順1~7に従って実行される。なお、スレーブIDの値であることを意味する場合には、数字に「#」を付して記載している。
(手順1)
事前準備の局面において、図19(A)に示されるように、ジャンクションスレーブ200JのポートX4に4つのスレーブ200-1,200-2,200-3,200-4を接続する。そして、サポート装置300からスレーブ200-1,200-2,200-3,200-4に対して、スレーブIDとして「3」,「4」,「5」,「6」を設定する。
また、サポート装置300から図20(A)に示される構成情報134をマスタとして機能する制御装置100に転送する。このとき、スレーブ#3~#10は、すべて「無効」(Disable)に設定されている。
(手順2)
運転開始の局面において、制御装置100、ジャンクションスレーブ200J、およびスレーブ200-1,200-2,200-3,200-4の電源が投入される。併せて、ユーザプログラム132のスレーブ有効/無効切替命令(図18には図示されていない)が実行されることで、構成情報134のスレーブ#3~#6が有効化(Enabled)される(図20(B)参照)。これにより、図17(A)に示される接続構成での運転が開始される。
(手順3)
その後、段取り替えが開始されたとする。まず、スレーブ有効/無効切替命令450,451,452,453(図18参照)が実行されることで、構成情報134のスレーブ#3~#6が無効化(Diabled)される。すなわち、図20(A)に示される状態に戻る。
(手順4)
続いて、図19(B)に示されるように、スレーブ200-1,200-2,200-3,200-4の電源が遮断された上で、ジャンクションスレーブ200JのポートX4から切り離される。
(手順5)
続いて、図19(C)に示されるように、ジャンクションスレーブ200JのポートX5に4つのスレーブ200-1,200-2,200-3,200-4を接続する。そして、スレーブ200-1,200-2,200-3,200-4の電源が再投入される。
このとき、制御装置100が管理する構成情報134の内容と実際の構成とが一致しないので、「ネットワーク構成照合異常(スレーブ不一致)」が発生する。
(手順6)
図19(C)に示される接続状態で運転を開始するために、スレーブID設定命令400が実行される(図18に示されるユーザプログラム132の4行目)。スレーブID設定命令400においては、ジャンクションスレーブ200Jを基準として、ポートX4に接続されたスレーブ200-1,200-2,200-3,200-4を対象として特定した上で、スレーブIDとして「7」,「8」,「9」,「10」を設定する。
(手順7)
そして、「ネットワーク構成照合異常(スレーブ不一致)」を解除するために、スレーブ異常解除命令460が実行される(図18に示されるユーザプログラム132の5行目)。さらに、スレーブ有効/無効切替命令454,455,456,457が実行される(図18に示されるユーザプログラム132の6~9行目)ことで、構成情報134のスレーブ#7~#10が有効化(Enabled)される(図20(C)参照)。これにより、図17(B)に示される接続構成での運転が開始される。
以上のように、本実施の形態に係るスレーブID設定命令400および関連する命令が提供されることで、ユーザプログラム132を用いて段取り替えを実現できる。
(j2:再起動)
上述したように、スレーブID更新オブジェクト218が実装されていないスレーブ200に対してスレーブIDを設定した場合には、対象のスレーブ200を再起動(電源遮断および再投入)する必要がある。このようなスレーブ200の再起動をオペレータに促すようにユーザプログラム132を作成することもできる。
図21は、本実施の形態に従うスレーブID設定命令400を用いたスレーブ200の再起動を促すためのユーザプログラム132の一例を示す図である。図21に示されるユーザプログラム132においては、スレーブID設定命令400からのShouldReboot415の値が「ShouldReboot」という変数(ブール値)に出力されている。「ShouldReboot」は、変数「RebootRampOn」という変数(ブール値)の値を決定する。すなわち、変数「ShouldReboot」が「true」に設定されると、変数「RebootRampOn」も「true」になる。
変数「RebootRampOn」を設定対象のスレーブ200に設けられたインジケータ250を駆動するための指令として関連付けることで、設定対象のスレーブ200を再起動しなければならない場合に、オペレータにその旨を提示できる。
このように、各スレーブ200の再起動の要否をオペレータに提示できるので、安全に配慮した段取り替えを実現できる。さらに、複数のスレーブ200が存在する場合には、例えば、再起動(電源の再投入)の順番をオペレータに提示することもできる。
(j3:異常検知)
上述したように、本実施の形態に従うスレーブID設定命令400は、複数のスレーブ200に対してそれぞれスレーブIDを設定する場合において、いずれかのスレーブ200に対する実行が失敗すると、その失敗したスレーブ200の位置を特定できる情報を出力する。このような位置を特定できる情報をオペレータに提示するためのユーザプログラム132を作成することもできる。
図22は、本実施の形態に従うスレーブID設定命令400の実行が失敗したときの情報提示を実現するためのユーザプログラム132の一例を示す図である。図22に示すユーザプログラム132は、オペレータに対するユーザインターフェイス装置である表示装置500と関連付けられる。
より具体的には、スレーブID設定命令400からのFailureTable416の値(配列)が「failAdrs[4]」という4つのメンバからなる配列に出力されている。図22に示す例では、スレーブID設定命令400は、4つのスレーブ200に対してスレーブIDを設定することが規定されており、この4つのスレーブ200に対する設定の成否を示す値が変数「failAdrs[4]」に格納される。
各メンバの値「failAdrs(1)」,「failAdrs(2)」,「failAdrs(3)」,「failAdrs(4)」を表示装置500上の各スレーブ200を示す表示オブジェクトに関連付けることができる。表示態様と対応する変数値とを関連付けることで、スレーブIDの設定に失敗したスレーブ200に対応する表示オブジェクトの表示態様(例えば、色など)を他の表示オブジェクトとは異ならせることができる。
すなわち、表示装置500は、FailureTable416に格納される値(配列)に基づいて、1つ以上の指定されたスレーブ200のうちスレーブIDの設定が失敗したスレーブ200の位置を視覚的に提示する。これにより、オペレータは、いずれのスレーブに異常が発生したのかを一見して把握できる。
さらに別の情報と関連付けることで、何らかの異常が発生したスレーブの位置を特定するとともに、その異常が発生した原因を容易に決定できる。
<K.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
制御システム(1)であって、
マスタとして機能する制御装置(100)と、
前記制御装置とネットワーク接続された複数のスレーブ(200)とを備え、
前記複数のスレーブの各々は識別情報(224)を有しており、
前記制御装置は、第1の命令(400)を実行することで、1つ以上の指定されたスレーブに対して、それぞれ指定された識別情報を設定する識別情報設定手段(102,122)を備え、
前記識別情報設定手段は、前記1つ以上の指定されたスレーブのうち、いずれのスレーブにおいて識別情報の設定が失敗したのかを示す第1のエラー情報(416)を出力する、制御システム。
[構成2]
前記識別情報設定手段は、前記1つ以上の指定されたスレーブに対応するメンバを有する配列を前記第1のエラー情報として出力する、構成1に記載の制御システム。
[構成3]
前記第1の命令には、前記第1のエラー情報を出力する先のテーブル名(406)が指定される、構成1または2に記載の制御システム。
[構成4]
前記識別情報設定手段は、前記1つ以上の指定されたスレーブに対する識別情報の設定が失敗したか否かを示す第2のエラー情報(413)をさらに出力する、構成1~3のいずれか1項に記載の制御システム。
[構成5]
前記識別情報設定手段は、前記1つ以上の指定されたスレーブに対する識別情報の設定が失敗した理由を示す第3のエラー情報(414)をさらに出力する、構成1~4のいずれか1項に記載の制御システム。
[構成6]
前記第1のエラー情報に基づいて、前記1つ以上の指定されたスレーブのうち識別情報の設定が失敗したスレーブの位置を視覚的に提示する表示装置(500)をさらに備える、構成1~5のいずれか1項に記載の制御システム。
[構成7]
前記第1の命令は、前記制御装置で実行されるユーザプログラム(130)の一部として実行される、構成1~6のいずれか1項に記載の制御システム。
[構成8]
前記制御装置は、前記複数のスレーブのうちいずれかのスレーブが基準として指定された第2の命令(420)を実行することで、指定された他のスレーブに設定されている識別情報を読み出す識別情報読出手段(102,122)をさらに備える、構成1~7のいずれか1項に記載の制御システム。
[構成9]
前記制御装置は、前記複数のスレーブの接続構成を定義する構成情報(134)を有しており、
前記制御装置は、第3の命令(450,451,452,453,454,455,456,457)を実行することで、前記構成情報による定義に含まれる一部または全部のスレーブを無効化する無効化手段(102,122)をさらに備える、構成1~8のいずれか1項に記載の制御システム。
[構成10]
マスタとして機能する制御装置(100)であって、
複数のスレーブ(200)とネットワーク接続するためのコントローラ(120)を備え、前記複数のスレーブの各々は識別情報(224)を有しており、
第1の命令(400)を実行することで、1つ以上の指定されたスレーブに対して、それぞれ指定された識別情報を設定する識別情報設定手段(102,122)を備え、
前記識別情報設定手段は、前記1つ以上の指定されたスレーブのうち、いずれのスレーブにおいて識別情報の設定が失敗したのかを示す第1のエラー情報(416)を出力する、制御装置。
<L.利点>
本実施の形態に係る制御システムにおいては、ユーザプログラム上で実行されるスレーブID設定命令を用いて、任意の未知スレーブに対して任意のスレーブID(あるいは、ノードアドレス)を設定できる。そのため、段取り替えなどが発生して、同一のスレーブに対して異なるスレーブIDを設定しなければならないような状況においても、サポート装置などを用いることなく、ユーザプログラムだけで必要な設定を実現できる。
また、本実施の形態に係るスレーブID設定命令は、有効なスレーブIDを有している任意のスレーブを基準として、任意の未知スレーブを特定した上で、任意のスレーブIDを設定できる。任意のスレーブを基準として任意の未知スレーブを特定する方法を採用したことで、ポジションアドレスなどを意識しなくても、スレーブIDの再設定あるいは変更を容易に実現できる。
また、本実施の形態に係るスレーブID設定命令は、複数のスレーブに対して、それぞれスレーブIDを一括設定できるので、スレーブIDの再設定あるいは変更に要する時間を短縮できる。
また、本実施の形態に係るスレーブID設定命令は、設定したスレーブIDを即時に反映可能なスレーブと、スレーブIDの反映に再起動が必要なスレーブとを区別することができる。その上で、再起動が必要なスレーブについては、その情報がスレーブID設定命令から出力される。そのため、段取り替えなどを担当するオペレータに対する操作支援などを容易に行うことができる。
また、本実施の形態に従うスレーブID設定命令は、スレーブIDの設定に失敗したスレーブの位置を特定するための情報を出力する。そのため、トラブルシュートを容易化できる。さらに、本実施の形態に従うスレーブID設定命令は、スレーブIDの設定が失敗した理由を示すエラーコードを出力するので、設定に失敗したスレーブの位置と併せて、よりトラブルシュートを容易化できる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 制御システム、4 ネットワーク、6 内部バス、20,22 コンベア、30,40,50 製造モジュール、100 制御装置、102,212,302 プロセッサ、104 チップセット、106,214,304 メインメモリ、108,306 ストレージ、110 ネットワークコントローラ、112,316 USBコントローラ、114 メモリカードインターフェイス、116 メモリカード、118 内部バスコントローラ、120,202 フィールドネットワークコントローラ、122 命令インターフェイス、124 実構成管理コンポーネント、126 カウンタ、128 RTC、130 システムプログラム、132 ユーザプログラム、134 構成情報、150 機能ユニット、200 スレーブ、200J ジャンクションスレーブ、210 メインコントローラ、216 格納レジスタ、218 更新オブジェクト、220 不揮発性メモリ、224 スレーブID、226 ファームウェア、230 機能回路、250 インジケータ、300 サポート装置、308 入力部、310 表示部、312 光学ドライブ、314 記録媒体、318 プロセッサバス、320 OS、326 サポートプログラム、400 設定命令、420 読出命令、450,451,452,453,454,455,456,457 スレーブ有効/無効切替命令、460 スレーブ異常解除命令、500 表示装置。

Claims (9)

  1. 制御システムであって、
    マスタとして機能する制御装置と、
    前記制御装置とネットワーク接続された複数のスレーブとを備え、
    前記複数のスレーブの各々は識別情報を有しており、
    前記制御装置は、基準となるスレーブを示す識別情報を含む第1の命令を実行することで、当該基準となるスレーブに基づいて指定された1つ以上のスレーブに対して、それぞれ指定された識別情報を設定する識別情報設定手段を備え、
    前記識別情報設定手段は、前記指定された1つ以上のスレーブのうち、いずれのスレーブにおいて識別情報の設定が失敗したのかを示す第1のエラー情報を出力し、
    前記識別情報設定手段は、前記指定された1つ以上のスレーブに対応するメンバを有する配列を前記第1のエラー情報として出力する、制御システム。
  2. 前記第1の命令には、前記第1のエラー情報を出力する先のテーブル名が指定される、請求項に記載の制御システム。
  3. 前記識別情報設定手段は、前記指定された1つ以上のスレーブに対する識別情報の設定が失敗したか否かを示す第2のエラー情報をさらに出力する、請求項1または2に記載の制御システム。
  4. 前記識別情報設定手段は、前記指定された1つ以上のスレーブに対する識別情報の設定が失敗した理由を示す第3のエラー情報をさらに出力する、請求項1~のいずれか1項に記載の制御システム。
  5. 前記第1のエラー情報に基づいて、前記指定された1つ以上のスレーブのうち識別情報の設定が失敗したスレーブの位置を視覚的に提示する表示装置をさらに備える、請求項1~のいずれか1項に記載の制御システム。
  6. 前記第1の命令は、前記制御装置で実行されるユーザプログラムの一部として実行される、請求項1~のいずれか1項に記載の制御システム。
  7. 前記制御装置は、前記複数のスレーブのうちいずれかのスレーブが基準として指定された第2の命令を実行することで、指定された他のスレーブに設定されている識別情報を読み出す識別情報読出手段をさらに備える、請求項1~のいずれか1項に記載の制御システム。
  8. 前記制御装置は、前記複数のスレーブの接続構成を定義する構成情報を有しており、
    前記制御装置は、第3の命令を実行することで、前記構成情報による定義に含まれる一部または全部のスレーブを無効化する無効化手段をさらに備える、請求項1~のいずれか1項に記載の制御システム。
  9. マスタとして機能する制御装置であって、
    複数のスレーブとネットワーク接続するためのコントローラを備え、前記複数のスレーブの各々は識別情報を有しており、
    基準となるスレーブを示す識別情報を含む第1の命令を実行することで、当該基準となるスレーブに基づいて指定された1つ以上のスレーブに対して、それぞれ指定された識別情報を設定する識別情報設定手段を備え、
    前記識別情報設定手段は、前記指定された1つ以上のスレーブのうち、いずれのスレーブにおいて識別情報の設定が失敗したのかを示す第1のエラー情報を出力し、
    前記識別情報設定手段は、前記指定された1つ以上のスレーブに対応するメンバを有する配列を前記第1のエラー情報として出力する、制御装置。
JP2019047443A 2019-03-14 2019-03-14 制御システムおよび制御装置 Active JP7107262B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2019047443A JP7107262B2 (ja) 2019-03-14 2019-03-14 制御システムおよび制御装置
US17/434,834 US20220147006A1 (en) 2019-03-14 2020-02-14 Control system and control apparatus
PCT/JP2020/005795 WO2020184063A1 (ja) 2019-03-14 2020-02-14 制御システムおよび制御装置
CN202080017709.6A CN113508562B (zh) 2019-03-14 2020-02-14 控制系统以及控制装置
EP20769034.8A EP3940996A4 (en) 2019-03-14 2020-02-14 CONTROL SYSTEM AND CONTROL DEVICE

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019047443A JP7107262B2 (ja) 2019-03-14 2019-03-14 制御システムおよび制御装置

Publications (2)

Publication Number Publication Date
JP2020150453A JP2020150453A (ja) 2020-09-17
JP7107262B2 true JP7107262B2 (ja) 2022-07-27

Family

ID=72427269

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019047443A Active JP7107262B2 (ja) 2019-03-14 2019-03-14 制御システムおよび制御装置

Country Status (5)

Country Link
US (1) US20220147006A1 (ja)
EP (1) EP3940996A4 (ja)
JP (1) JP7107262B2 (ja)
CN (1) CN113508562B (ja)
WO (1) WO2020184063A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7172853B2 (ja) * 2019-05-22 2022-11-16 オムロン株式会社 制御装置、ネットワークシステム、ネットワークシステムの制御方法及び制御プログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009239429A (ja) 2008-03-26 2009-10-15 Mitsubishi Electric Corp 通信システムのノード識別子設定方法
JP2014230097A (ja) 2013-05-22 2014-12-08 株式会社 日立産業制御ソリューションズ マスタスレーブシステムおよびそのノード制御方法
JP2015104266A (ja) 2013-11-26 2015-06-04 株式会社ノーリツ 発電システム
JP2018093382A (ja) 2016-12-05 2018-06-14 オムロン株式会社 通信システム、通信装置および通信プログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2357939A1 (en) * 2001-09-27 2003-03-27 Alcatel Canada Inc. Master-slave communications system and method for a network element
GB2401207B (en) * 2003-04-30 2006-11-22 Agilent Technologies Inc Master slave arrangement
US7346051B2 (en) * 2004-06-25 2008-03-18 Matsushita Electric Industrial Co., Ltd. Slave device, master device and stacked device
TWI426757B (zh) * 2010-02-05 2014-02-11 Hon Hai Prec Ind Co Ltd 主從設備通訊電路及其id地址分配方法
JP2012099997A (ja) * 2010-11-01 2012-05-24 Kawamura Electric Inc 通信システム
US9647877B2 (en) * 2011-03-15 2017-05-09 Omron Corporation Network system, master device, and method for controlling network system
JP5229343B2 (ja) * 2011-03-15 2013-07-03 オムロン株式会社 接続異常検出方法、ネットワークシステムおよびマスター装置
JP5120473B2 (ja) * 2011-03-15 2013-01-16 オムロン株式会社 ネットワークシステムの設計支援装置
JP6299064B2 (ja) * 2013-01-25 2018-03-28 オムロン株式会社 制御装置、制御方法、およびプログラム
JP6442843B2 (ja) 2014-03-14 2018-12-26 オムロン株式会社 制御装置
CN106873553B (zh) * 2017-02-09 2020-01-21 北京东土科技股份有限公司 基于工业互联网操作系统的现场设备控制管理方法及装置
JP6661573B2 (ja) * 2017-05-22 2020-03-11 矢崎総業株式会社 制御装置および制御システム
JP2019047441A (ja) * 2017-09-06 2019-03-22 キヤノン株式会社 画像処理装置、読取装置、画像処理方法、およびプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009239429A (ja) 2008-03-26 2009-10-15 Mitsubishi Electric Corp 通信システムのノード識別子設定方法
JP2014230097A (ja) 2013-05-22 2014-12-08 株式会社 日立産業制御ソリューションズ マスタスレーブシステムおよびそのノード制御方法
JP2015104266A (ja) 2013-11-26 2015-06-04 株式会社ノーリツ 発電システム
JP2018093382A (ja) 2016-12-05 2018-06-14 オムロン株式会社 通信システム、通信装置および通信プログラム

Also Published As

Publication number Publication date
JP2020150453A (ja) 2020-09-17
EP3940996A4 (en) 2022-12-07
EP3940996A1 (en) 2022-01-19
US20220147006A1 (en) 2022-05-12
CN113508562A (zh) 2021-10-15
WO2020184063A1 (ja) 2020-09-17
CN113508562B (zh) 2023-08-25

Similar Documents

Publication Publication Date Title
US7275236B1 (en) Method for programming a multiple device control system using object sharing
US20210352158A1 (en) Redundancy In A Network Centric Process Control System
JP4788912B2 (ja) Plc
CN110580235B (zh) 一种sas扩展器通信方法及装置
JP2002268707A (ja) コントローラ及びツール並びにそれらにより構成されるシステム
US10908583B2 (en) Safety control system and safety control unit
US20220179386A1 (en) Control device
JP7107262B2 (ja) 制御システムおよび制御装置
WO2020184062A1 (ja) 制御システムおよび制御装置
US11165745B2 (en) Control system, controller, and control method
US10715396B2 (en) Support apparatus, non-transitory computer readable recording medium and setting method
JP7070479B2 (ja) 制御システムおよび制御装置
JP7379948B2 (ja) サポート装置、サポートプログラムおよび設定方法
JP6856048B2 (ja) 制御システムおよび制御方法
JP7281275B2 (ja) モジュール及びこれを備える情報処理装置、並びにモジュールのプログラムデータを更新するプログラムデータ更新方法
TW201926035A (zh) 韌體更新方法及可更新韌體的基板管理控制器
WO2023248548A1 (ja) 制御システム、中継装置および通信方法
JP6915583B2 (ja) セーフティ制御システムおよびセーフティ制御システムにおける制御方法
JP2006338116A (ja) ストレージシステム、コンピュータ、ストレージ装置、アクセスコントロール設定方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211026

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220510

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220601

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: 20220614

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220627

R150 Certificate of patent or registration of utility model

Ref document number: 7107262

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150