JP2018136745A - 制御システム、制御装置および制御プログラム - Google Patents

制御システム、制御装置および制御プログラム Download PDF

Info

Publication number
JP2018136745A
JP2018136745A JP2017030834A JP2017030834A JP2018136745A JP 2018136745 A JP2018136745 A JP 2018136745A JP 2017030834 A JP2017030834 A JP 2017030834A JP 2017030834 A JP2017030834 A JP 2017030834A JP 2018136745 A JP2018136745 A JP 2018136745A
Authority
JP
Japan
Prior art keywords
variable
data
user program
specified
unit
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.)
Granted
Application number
JP2017030834A
Other languages
English (en)
Other versions
JP6816554B2 (ja
Inventor
一誠 三宅
Kazunari Miyake
一誠 三宅
重行 江口
Shigeyuki Eguchi
重行 江口
貴雅 植田
Takamasa Ueda
貴雅 植田
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
Omron Tateisi Electronics Co
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, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority to JP2017030834A priority Critical patent/JP6816554B2/ja
Priority to EP17897599.1A priority patent/EP3588215B1/en
Priority to US16/477,532 priority patent/US11169500B2/en
Priority to PCT/JP2017/041653 priority patent/WO2018154884A1/ja
Priority to CN201780082657.9A priority patent/CN110168456B/zh
Publication of JP2018136745A publication Critical patent/JP2018136745A/ja
Application granted granted Critical
Publication of JP6816554B2 publication Critical patent/JP6816554B2/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/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/058Safety, monitoring
    • 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/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • 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/15Plc structure of the system
    • G05B2219/15037Fail safe communication
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Programmable Controllers (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】多段階または高度にネットワーク化された制御システムであっても、効率的なプログラミングを実現できる構成が要望されている。【解決手段】制御システムは、ユーザプログラムを実行する処理ユニットと、1または複数の機能ユニットと、処理ユニットと1または複数の機能ユニットとの間でデータを中継する1または複数の通信ユニットと、ユーザプログラムにおいて、機能ユニットが保持するいずれかのデータに関連付けられた当該データの有効性を示す変数が指定されると、指定されたデータを保持する機能ユニットから処理ユニットまでの伝送経路に存在する通信ユニットの各々の状態を集合させた結果を当該変数が示す値として反映する反映手段とを含む。【選択図】図6

Description

本発明は、ネットワーク化された制御システム、そのような制御システムに含まれる制御装置、およびそのような制御装置に向けられた制御プログラムに関する。
近年の情報通信技術(ICT:Information and Communication Technology)の進歩に伴って、製造現場で用いられる各種装置のネットワーク化および多機能化が進んでいる。一例として、PLC(プログラマブルコントローラ)などの制御装置、センサやリレーなどのI/O(Input/Output)デバイス、および、インバータやモータドライバなどのアクチュエータなどをネットワークで接続して一体化するようなシステムが実用化されている。
一方で、制御装置で実行されるユーザプログラムにおいては、センサなどの健全性を確認しつつ、処理を実行しなければならないといった要求もある。ネットワーク化された制御システムにおいては、ネットワークに接続されている各機器の状態を収集および監視する必要がある。例えば、特開2007−108923号公報(特許文献1)は、1つのマスタユニットとフィールドバスに接続されるスライス通信ユニットとからなる構成を開示しており、各スライス通信ユニットの状態を状態フラグにより監視可能になっている。
特開2007−108923号公報
制御システムのネットワーク化が高度化するにつれて、監視対象のユニットなどが増加し、監視対象のすべての健全性を考慮する必要があり、ユーザプログラムの作成効率が低下するといった課題がある。
多段階または高度にネットワーク化された制御システムであっても、効率的なプログラミングを実現できる構成が要望されている。
本発明のある実施の形態に係る制御システムは、ユーザプログラムを実行する処理ユニットと、1または複数の機能ユニットと、処理ユニットと1または複数の機能ユニットとの間でデータを中継する1または複数の通信ユニットと、ユーザプログラムにおいて、機能ユニットが保持するいずれかのデータに関連付けられた当該データの有効性を示す変数が指定されると、指定されたデータを保持する機能ユニットから処理ユニットまでの伝送経路に存在する通信ユニットの各々の状態を集合させた結果を当該変数が示す値として反映する反映手段とを含む。
好ましくは、反映手段は、変数が指定されたユーザプログラムのソースコードを解析して、当該変数が示す値の決定に関連する1または複数の通信ユニットを特定する手段と、特定した1または複数の通信ユニットの状態を示す値の集合から変数が示す値を決定するための命令をソースコードに追加した上で、ユーザプログラムのオブジェクトコードを生成する手段とを含む。
好ましくは、制御システムは、処理ユニットに接続されるサポート装置をさらに含み、反映手段は、サポート装置に実装される。
好ましくは、反映手段は、変数が指定されたユーザプログラムのソースコードを解析して、当該変数が示す値の決定に関連する1または複数の通信ユニットを特定する手段と、処理ユニットにおいて、特定された情報に基づいて、変数が示す値を更新および保持する機能を追加する手段とを含む。
好ましくは、制御システムは、処理ユニットに接続されるサポート装置をさらに含み、サポート装置は、ユーザプログラムのソースコードの解析を実施するとともに、当該解析によって特定された情報を処理ユニットへ送信する。
好ましくは、反映手段は、処理ユニットにおいて、対象のデータおよび当該対象のデータに関連付けられる変数名に応答して、対象のデータを保持する機能ユニットを特定するとともに、当該特定した機能ユニットから処理ユニットまでの伝送経路を特定する手段と、特定した伝送経路に存在する通信ユニットの各々の状態を集合させた結果を指定された変数が示す値として所定周期毎に更新するための命令を追加する手段とを含む。
好ましくは、変数が示す値は、処理ユニットに接続される外部装置からアクセス可能に構成される。
好ましくは、通信ユニットの間は、所定のプロトコルに従うネットワークが構成されている。
本発明のある実施の形態に係る制御装置は、ユーザプログラムを実行する処理ユニットと、1または複数の機能ユニットと通信するための通信インターフェイスとを含む。処理ユニットと1または複数の機能ユニットとの間には、データを中継する1または複数の通信ユニットが配置されている。制御装置は、ユーザプログラムにおいて、機能ユニットが保持するいずれかのデータに関連付けられた当該データの有効性を示す変数が指定されると、指定されたデータを保持する機能ユニットから処理ユニットまでの伝送経路に存在する通信ユニットの各々の状態を集合させた結果を当該変数が示す値として反映する反映手段を含む。
本発明のある実施の形態によれば、コンピュータで実行される制御プログラムが提供さえる。コンピュータは、ユーザプログラムを実行する処理ユニットと、1または複数の機能ユニットと通信するための通信インターフェイスとを含む。処理ユニットと1または複数の機能ユニットとの間には、データを中継する1または複数の通信ユニットが配置されている。制御プログラムはコンピュータに、ユーザプログラムにおいて、機能ユニットが保持するいずれかのデータに関連付けられた当該データの有効性を示す変数が指定されると、指定されたデータを保持する機能ユニットから処理ユニットまでの伝送経路、および、特定された伝送経路に存在する通信ユニットを特定するステップと、特定された各通信ユニットの状態を集合させた結果を当該変数が示す値として反映するステップとを実行させる。
本発明の実施の形態によれば、多段階または高度にネットワーク化された制御システムであっても、効率的なプログラミングを実現できる。
本実施の形態に係る制御システムの構成例を示す模式図である。 本実施の形態に係る制御システムのPLCを構成するCPUユニットの装置構成の一例を示す模式図である。 本実施の形態に係る制御システムのリモートI/O装置を構成するカプラユニット160の装置構成の一例を示す模式図である。 本実施の形態に係る制御システムのサポート装置の装置構成の一例を示す模式図である。 本実施の形態に係る制御システムのリモートI/O装置を介して入力データを収集する状態の一例を示す図である。 図5に示す入力データを利用するユーザプログラムの一例を示す図である。 本実施の形態に係る制御システムのサポート装置におけるユーザプログラムの作成に係る機能を説明するための模式図である。 本実施の形態に係る制御システムにおける有効確認データを提供するための第1の実装方法を説明するための模式図である。 本実施の形態に係る制御システムにおける有効確認データを提供するための第1の実装方法に係る処理手順を示すフローチャートである。 本実施の形態に係る制御システムのサポート装置における第2の実装方法に関する処理を説明するための模式図である。 本実施の形態に係る制御システムにおける第2の実装方法に関する処理を説明するための模式図である。 本実施の形態に係る制御システムにおける有効確認データを提供するための第2の実装方法に係る処理手順を示すフローチャートである。 本実施の形態に係る制御システムにおける有効確認データを提供するための第3の実装方法を説明するための模式図である。 本実施の形態に係る制御システムにおける有効確認データを提供するための第3の実装方法に係る処理手順を示すフローチャートである。
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
<A.制御システムの構成例>
まず、本実施の形態に係る制御システムの構成例について説明する。図1は、本実施の形態に係る制御システム1の構成例を示す模式図である。図1を参照して、制御システム1は、複数のネットワークを有しており、いずれかのネットワークに接続された複数の装置を含む。
一例として、制御システム1は、制御装置の典型例であるPLC(プログラマブルコントローラ)2と、PLC2とフィールドネットワークを介して接続されるリモートI/O装置3A,3B,3C,3D(以下、「リモートI/O装置3」とも総称する。)とを含む。PLC2は、さらに上位ネットワーク4に接続されていてもよい。上位ネットワーク4には、他のPLCが接続されていてもよいし、ゲートウェイサーバやデータベースサーバといった任意の情報処理装置が接続されていてもよい。
より具体的には、リモートI/O装置3A,3B,3Cは、フィールドネットワーク5を介してPLC2と接続されている。リモートI/O装置3Aは別のフィールドネットワーク6を提供しており、フィールドネットワーク6を介して、リモートI/O装置3AとリモートI/O装置3Dとが接続されている。フィールドネットワーク6は、リモートI/O装置3Aに装着された通信ユニット152によって管理される。PLC2は、フィールドネットワーク5およびフィールドネットワーク6を介してリモートI/O装置3Dへアクセス可能になっている。
フィールドネットワーク5,6としては、典型的には、ネットワーク内のノード間の通信時間が保証されるプロトコルが採用される。つまり、通信ユニットの間は、所定のプロトコルに従うネットワークが構成される。このようなノード間の通信時間が保証されるプロトコルとしては、例えば、EtherCAT(登録商標)、EtherNet/IP(登録商標)、DeviceNet(登録商標)、CompoNet(登録商標)などを採用できる。なお、フィールドネットワーク5とフィールドネットワーク6として、同一のプロトコルを採用する必要はなく、それぞれの装置やユニットに適したプロトコルを採用すればよい。
典型的には、PLC2は、CPUユニット100と、CPUユニット100に装着される1または複数の機能ユニット150とから構成される。また、リモートI/O装置3は、通信機能を有するカプラユニット160と、カプラユニット160に装着される1または複数の機能ユニット150とから構成される。
機能ユニット150は、制御対象の設備や機械などとの間で各種情報を遣り取りするための装置である。機能ユニット150は、例えば、デジタル信号を受け取るDI(Digital Input)機能、デジタル信号を出力するDO(Digital Output)機能、アナログ信号を受け取るAI(Analog Input)機能、アナログ信号を出力するAO(Analog Output)機能のうち1または複数の機能を有している。あるいは、機能ユニット150としては、PID(Proportional Integral Derivative)制御やモーション制御といった特殊機能を実装したものを含む。
<B.各装置の装置構成>
次に、制御システム1を構成する各装置の装置構成について説明する。
(b1:PLC2)
図1に示すPLC2は、制御装置の一例であり、システムプログラムおよびユーザプログラムを実行することで、設備や機械といった制御対象を制御する。PLC2は、典型的には、システムプログラムおよびユーザプログラムを実行する処理ユニットに相当するCPUユニット100と、CPUユニット100に装着される1または複数の機能ユニット150とから構成される。
図2は、本実施の形態に係る制御システム1のPLC2を構成するCPUユニット100の装置構成の一例を示す模式図である。図2を参照して、CPUユニット100は、プロセッサ102と、チップセット104と、主メモリ106と、不揮発性メモリ108と、クロック110と、通信インターフェイス112と、メモリカードインターフェイス116と、ネットワークコントローラ120,130と、内部バスコントローラ140とを含む。
プロセッサ102は、不揮発性メモリ108に格納されているシステムプログラム108aおよびユーザプログラム108bを読み出して、主メモリ106に展開しつつ、クロック110から供給されるクロックに応じて、システムプログラム108aおよびユーザプログラム108bに含まれる命令を順次実行する。主メモリ106は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などで構成され、ユーザプログラムや一時データなどを保持する記憶装置である。不揮発性メモリ108は、フラッシュメモリなどで構成され、システムプログラム108a、ユーザプログラム108b、各種設定情報を格納する。チップセット104は、プロセッサ102と周辺装置とのデータの遣り取りを支援する。
通信インターフェイス112は、サポート装置200などの外部装置と通信するための回路であり、コネクタ114を介して外部装置と接続される。
メモリカードインターフェイス116には、メモリカード118が装着可能になっており、メモリカード118からのデータ読出しおよびメモリカード118へのデータ書込みを行う。
ネットワークコントローラ120,130は、フィールドネットワーク5を介したデータの遣り取りを制御する。ネットワークコントローラ120,130は、コネクタ128,138を介してフィールドネットワーク5とそれぞれ接続される。具体的には、ネットワークコントローラ120は、バッファメモリ122と、転送制御回路124と、ダイレクトメモリアクセス(Dynamic Memory Access:DMA)を実現するDMA制御回路126とを含む。同様に、ネットワークコントローラ130は、バッファメモリ132と、転送制御回路134と、DMA制御回路136とを含む。バッファメモリ122,132は、フィールドネットワーク5を転送されるパケットなどを順次格納する。転送制御回路124,134は、フィールドネットワーク5上へのパケットの送出、および、フィールドネットワーク5からのパケットの受信などを制御する。DMA制御回路126,136は、バッファメモリ122,132へのアクセスを制御する。
内部バスコントローラ140は、コネクタ148を介して内部バスと接続されており、CPUユニット100に装着される機能ユニット150との間の内部バスを介したデータの遣り取りを仲介する。具体的には、内部バスコントローラ140は、バッファメモリ142と、転送制御回路144と、DMA制御回路146とを含む。これらの各部位の機能は、ネットワークコントローラ120,130の対応する部位と同様であるので、詳細な説明は繰返さない。
ネットワークコントローラ120,130および内部バスコントローラ140は、機能ユニット150と通信するために通信インターフェイスに相当する。
(b2:リモートI/O装置3)
図1に示すリモートI/O装置3は、PLC2から離れた位置に配置可能な一種の中継装置であり、制御対象の設備や機械などの状態を示す情報などを収集し、入力データとして、PLC2へ転送するとともに、PLC2での演算により決定された制御出力を制御対象の設備や機械へ指令として出力する。具体的には、リモートI/O装置3は、CPUユニット100と1または複数の機能ユニット150との間でデータを転送する通信ユニットの一例であるカプラユニット160と、カプラユニット160に装着される1または複数の機能ユニット150とを含む。
図3は、本実施の形態に係る制御システム1のリモートI/O装置3を構成するカプラユニット160の装置構成の一例を示す模式図である。図3を参照して、カプラユニット160は、コントローラ161と、通信インターフェイス162と、メモリカードインターフェイス166と、ネットワークコントローラ170,180と、内部バスコントローラ190とを含む。
コントローラ161は、リモートI/O装置3における処理を担当する回路であり、典型的には、ASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)などのハードワイヤードな処理回路を用いて実現される。但し、その全部または一部の機能をソフトウェア実装(プロセッサがプログラムを実行することで実現)してもよい。
通信インターフェイス162は、図2に示す通信インターフェイス112と同様に、サポート装置200などの外部装置と通信するための回路であり、コネクタ164を介して外部装置と接続される。
ネットワークコントローラ170,180は、フィールドネットワーク5を介したデータの遣り取りを制御する。より具体的には、ネットワークコントローラ170は、バッファメモリ172と、転送制御回路174と、DMA制御回路176とを含む。同様に、ネットワークコントローラ180は、バッファメモリ182と、転送制御回路184と、DMA制御回路186とを含む。ネットワークコントローラ170,180の機能は、図2に示すネットワークコントローラ120,130と同様であるので、詳細な説明は繰返さない。
内部バスコントローラ190は、コネクタ198を介して内部バスと接続されており、カプラユニット160に装着される機能ユニット150との間の内部バスを介したデータの遣り取りを仲介する。具体的には、内部バスコントローラ190は、バッファメモリ192と、転送制御回路194と、DMA制御回路196とを含む。これらの各部位の機能は、図2に示す内部バスコントローラ140の対応する部位と同様であるので、詳細な説明は繰返さない。
(b3:サポート装置200)
図1に示すように、PLC2またはリモートI/O装置3には、サポート装置200が接続可能になっている。サポート装置200は、制御システム1を構成するPLC2およびリモートI/O装置3が保持しているデータや状態値を確認する機能や、PLC2で実行されるプログラムを開発する機能およびデバックする機能などを提供する。サポート装置200は、典型的には、汎用的なアーキクテチャを有するパーソナルコンピュータ上で、サポートプログラムが実行されることで実現される。
図4は、本実施の形態に係る制御システム1のサポート装置200の装置構成の一例を示す模式図である。図4を参照して、サポート装置200は、プロセッサ202と、チップセット204と、主メモリ206と、不揮発性メモリ208と、表示インターフェイス210と、入力部212と、通信インターフェイス214とを含む。
プロセッサ202は、不揮発性メモリ208に格納されているOS(Operating System)208aおよびサポートプログラム208bを読み出して、主メモリ206に展開しつつ、OS208aおよびサポートプログラム208bに含まれる命令を順次実行する。主メモリ206は、DRAMやSRAMなどで構成され、ユーザプログラムや一時データなどを保持する記憶装置である。不揮発性メモリ208は、フラッシュメモリなどで構成され、OS208a、サポートプログラム208b、各種設定情報を格納する。チップセット204は、プロセッサ202と周辺装置とのデータの遣り取りを支援する。
表示インターフェイス210は、プロセッサ202などによる演算結果をディスプレイへ出力する。入力部212は、キーボードやメモリなどからなり、ユーザの操作を受付ける。通信インターフェイス214は、PLC2(CPUユニット100)と通信するための回路である。
<C.概要>
次に、本実施の形態に係る制御システム1において提供される機能の概要を説明する。
図5は、本実施の形態に係る制御システム1のリモートI/O装置3を介して入力データを収集する状態の一例を示す図である。図6は、図5に示す入力データを利用するユーザプログラムの一例を示す図である。
図5に示すように、一例として、制御システム1に含まれるリモートI/O装置3Dに装着された1つの機能ユニット150を介して、フィールドから入力データ(図中においては、「INデータ」とも記す。)を収集する場合を考える。なお、CPUユニット100においては、機能ユニット150が保持する任意のデータを利用可能であり、以下では、典型例として入力データを例に説明するが、これに限られるものではない。
図5に示す例では、機能ユニット150で収集された入力データは、リモートI/O装置3Dの内部バス(伝送経路301)、フィールドネットワーク6および通信ユニット152(伝送経路302)、リモートI/O装置3Aの内部バス(伝送経路303)、フィールドネットワーク5(伝送経路304)とった経路を順に転送されることになる。これらユニットおよびバスが、CPUユニット100と1または複数の機能ユニット150との間でデータを転送する通信ユニットの少なくとも一部として機能する。
一般的には、CPUユニット100において入力データとして収集される値が、現実に機能ユニット150に入力される入力信号の値を反映したものであることをユーザプログラム上で確かにしておく必要がある。これは、例えば、入力データが「False」を示す場合、対応する機能ユニット150に入力される入力信号が現実に「False」であることを反映したものであるのか、入力データが伝送経路を順次転送される過程において何らかの異常があって伝送ができないため、入力信号は「True」であるにもかかわらず、CPUユニット100において入力データが誤って「False」となっているのかを判断することができないためである。
そこで、一般的には、入力データを用いて何らかの処理(アクション)を実行する命令を記述する際には、入力データの収集経路(伝送経路)が健全であることを示す条件を付加することが一般的である。このような条件となる情報を、以下では「有効確認データ」とも称す。また、本実施の形態においては、基本的には変数プログラミングにてユーザプログラムが作成されるので、「有効確認データ」の値を参照するための変数を「有効確認変数」とも称す。
図6(A)に示すユーザプログラム400においては、何らかのアクションの実行/停止を入力データに値に関連付けた例を示す。すなわち、入力データの値を示す入力値フラグ405を条件として、アクションに対応するファンクションブロック406が活性化されるようになっている。
さらに、入力値フラグ405の前段には、状態フラグ401〜404(変数名ST1〜ST4)が直列に配置されている。状態フラグ401〜404は、図5に示す伝送経路301〜304の有効確認変数にそれぞれ相当する。すなわち、状態フラグ401は、リモートI/O装置3Dの有効性(または、健全性あるいはステータス)を示し、状態フラグ402は、フィールドネットワーク6の有効性を示し、状態フラグ403は、リモートI/O装置3Aの有効性を示し、状態フラグ404は、フィールドネットワーク5の有効性を示す。
一方、図6(B)に示すユーザプログラム410においては、入力データをCPUユニット100に装着された機能ユニットから取り込む場合の例を示す。この例においても、入力データの値を示す入力値フラグ405を条件として、アクションに対応するファンクションブロック406が活性化されるようになっている。そして、入力データを示す入力値フラグ405の前段には、状態フラグ411が条件として配置されている。状態フラグ411は、CPUユニット100の内部バスの有効性(または、健全性あるいはステータス)を示す。
図6(A)と図6(B)とを比較すると分かるように、対象の入力データがCPUユニット100に伝送するまでの経路を構成するネットワーク階層数が多くなるほど、有効確認データとして、より多くのフラグを設定する必要が生じる。
制御システムのネットワーク化が高度化するにつれて、各フラグによって何が定義されているかを確かめる必要があり、かつ、ネットワーク構成が変更された場合には、それに応じて、有効確認データとして用いるべきフラグを変更し、ユーザプログラム410を更新しなければならなくなる。
このような課題に対して、本実施の形態に係る制御システム1においては、対象となる入力変数の有効性を評価するために必要な条件をまとめた特殊な有効確認データを利用できる環境が提供される。
図6(C)は、本実施の形態に係る制御システム1において提供される有効確認データを用いた一例としてのユーザプログラム420を示す。より具体的には、ユーザプログラム420においては、入力データの値を示す入力値フラグ405を条件として、アクションに対応するファンクションブロック406が活性化されるようになっている。そして、入力データを示す入力値フラグ405の前段には、対応する有効確認データを示す特殊フラグ421が条件として配置されている。この例においては、特殊フラグ421は、入力データを取り込んだ機能ユニットからCPUユニット100までの経路に存在するデバイスの状態を示すデバイス変数の集合(論理積)となっている。
本実施の形態においては、ユーザプログラムにおいて、機能ユニット150が保持するいずれかのデータに関連付けられた当該データの有効性を示す変数(有効確認変数)が指定されると、指定されたデータを保持する機能ユニット150からCPUユニット100までの伝送経路に存在する通信ユニットの各々の状態(各状態フラグの値)を集合させた結果を当該変数が示す値(有効確認データ)として反映する機能が実装される。
このような特殊な有効確認データを利用できることで、ユーザプログラムの開発者は、CPUユニット100と内部バスを介して接続された機能ユニットに入力される入力データと、1または複数のネットワークを介して接続された機能ユニットに入力される入力データとの間で、ハードウェア構成およびネットワーク構成の相違を吸収可能な、抽象化された有効確認変数を用いることができるので、プログラミングの作成効率を高めることができるとともに、ネットワーク構成の変更などにもフレキシブルに対応できる。
以下、本実施の形態に係る有効確認データを提供するためのいくつかの実装方法について説明する。
<D.第1の実装方法>
第1の実装方法として、サポート装置200に搭載される機能のみを用いて有効確認データを提供する方法について説明する。第1の実装方法においては、ユーザプログラム中の有効確認変数が対応の有効確認データとして反映する機能をサポート装置200で実現する。
図7は、本実施の形態に係る制御システム1のサポート装置200におけるユーザプログラムの作成に係る機能を説明するための模式図である。図7を参照して、ユーザは、サポート装置200が提供するエディタを用いてユーザプログラムのソースコード10を作成する。サポート装置200は、ユーザ操作を受けて、ユーザプログラムのソースコード10をパーサ(構文解析)およびコンパイルしてオブジェクトコード12を生成する。このユーザプログラムのオブジェクトコード12は、PLC2のCPUユニット100へ転送される。転送された1または複数のオブジェクトコード12がユーザプログラム108b(図2)としてCPUユニット100に格納され、実行される。
ユーザプログラムのソースコード10がパースおよびコンパイルされるときに、本実施の形態に係る有効確認データを用いた記述があれば、その有効確認データが意図する内容を既存の命令の組み合わせに分解することで、有効確認データを用いたユーザプログラムの処理を実現するようにしてもよい。ユーザプログラムのソースコード10に含まれる有効確認データまたは有効確認変数をサポート装置200がパースして、適切なオブジェクトコード12を作成するという方法を採用することで、ユーザは、コンパイル時などに特に意識することなく、有効確認データを利用することができる。
図8は、本実施の形態に係る制御システム1における有効確認データを提供するための第1の実装方法を説明するための模式図である。例えば、図8(A)に示すようなユーザプログラム430Aが作成されたとする。ユーザプログラム430Aにおいては、入力データの値を示す入力値フラグ405を条件として、アクションに対応するファンクションブロック406が活性化されるようになっている。入力値フラグ405についての有効確認データを定義するために、ファンクションブロック432が用いられている。ファンクションブロック432は、本実施の形態に係る有効確認データを構築するための命令を意味する。
より具体的には、ファンクションブロック432は、入力(EXE)が活性化されると、入力データ(IN)として定義される変数(図8に示す例では、変数D1)の伝送経路などが参照されて、必要なフラグの集合に対する論理演算(典型的には、論理積)の結果を示す値を出力する(OUT)ことを定義する。
より具体的には、図8(A)に例示されるようなユーザプログラム430Aのソースコードがパースされる際には、その中に含まれるファンクションブロック432は、予め定義されている変数テーブル20およびネットワークコンフィギュレーション22などが参照されて、指定された変数の伝送経路に応じたデバイス変数の集合が特定される。
変数テーブル20は、ユーザプログラムで利用可能な変数と現実の機能ユニットのポート番号とを関連付けるものであり、ある機能ユニットのあるポートにて収集される値に対して、任意の変数名の割り当てを定義する。ネットワークコンフィギュレーション22は、制御システム1におけるCPUユニット100と各機能ユニット150との間の接続関係(ネットワークトポロジー)などを定義する。
典型的には、変数テーブル20およびネットワークコンフィギュレーション22が参照されることで、ファンクションブロック432の出力値を決定するために必要なフラグを特定することができる。サポート装置200は、有効確認変数が指定されたユーザプログラムのソースコード10を解析して、当該有効確認変数が示す値(有効確認データ)の決定に関連する1または複数の通信ユニットを特定する。
このようなファンクションブロック432の出力値を決定するために必要なフラグが特定されると、図8(B)に示すようなユーザプログラム430Bが生成される。つまり、サポート装置200は、特定した1または複数の通信ユニットの状態(ステータス)を示す値の集合から有効確認変数が示す値を決定するための命令をソースコードに追加した上で(ユーザプログラム430B)、ユーザプログラムのオブジェクトコードを生成する。
より具体的には、ユーザプログラム430Bにおいては、ユーザプログラム430Aのファンクションブロック432に対応する特殊コイル434が導入されており、この特殊コイル434には、状態フラグ401〜404の集合(論理積)の結果が格納される。そして、図8(A)に例示されるようなユーザプログラム430Aは、特殊コイル434に格納された値を示す特殊フラグ436に置換される。最終的に、図8(B)に示すようなユーザプログラム430Bがコンパイルされることで、本実施の形態に係る有効確認データの機能が実現される。
なお、ユーザプログラム430Bは、内部的に生成すればよく、ユーザが見えるような形態で表示などを行う必要はない。
第1の実装方法によれば、ファンクションブロック432を含むユーザプログラムがパースされる際に、変数テーブル20およびネットワークコンフィギュレーション22の内容が参照されて、ファンクションブロック432に対応する特殊フラグ436が意味する内容が動的に決定される。このような有効確認データの内容を動的に決定する処理を採用することで、ユーザは、各変数がいずれの機能ユニットに関連付けられているのか、および、当該変数が関連付けられている機能ユニットがいずれのネットワーク上に存在するのか、といったことを気にすることなく、実行条件とすべき有効確認変数を利用できる。
サポート装置200には、CPUユニット100でのユーザプログラムの実行状態をロギングする機能が実装されている場合もある。このようなロギング機能においては、図8(A)に示すユーザプログラム430Aを表示しつつ、図8(B)に示す特殊フラグ436が示す値をファンクションブロック432の値として表示するようにしてもよい。このようなロギング機能を利用することで、ユーザは、特殊フラグ436が意味する内容の詳細を意識することなく、入力値フラグ405が有効に入力されているか否かを確認できる。
図6(B)に示すように、入力データがCPUユニット100に装着された機能ユニットから取り込まれる場合であっても、上述したようなファンクションブロック432は機能する。CPUユニット100に装着された機能ユニットから入力データが取り込まれる場合には、例えば、変数テーブル20にて、取り込み先の機能ユニットが指定されているので、特殊コイル434には、CPUユニット100の内部バスの健全性(ステータス)を示す状態フラグが関連付けられる。
次に、第1の実装方法に係る処理手順について説明する。図9は、本実施の形態に係る制御システム1における有効確認データを提供するための第1の実装方法に係る処理手順を示すフローチャートである。図9に示す各ステップは、典型的には、サポート装置200のプロセッサ202が制御プログラムの一例であるサポートプログラム208b(図4参照)を実行することで実施される。
図9を参照して、サポート装置200は、ユーザ操作に応じて、ユーザプログラムを作成する(ステップS100)。このステップS100は、サポート装置200が提供するエディタ機能によって実現される。続いて、サポート装置200は、コンパイルが指示されたか否かを判断する(ステップS102)。コンパイルが指示されていなければ(ステップS102においてNO)、ステップS100以下の処理が繰返される。
コンパイルが指示されると(ステップS102においてYES)、サポート装置200は、ユーザプログラムのソースコードを解析して、有効確認変数の使用を示すファンクションブロックが存在するか否かを判断する(ステップS104)。有効確認変数の使用を示すファンクションブロックが存在しなければ(ステップS104においてNO)、ステップS106〜S110の処理はスキップされる。
有効確認変数の使用を示すファンクションブロックが存在していれば(ステップS104においてYES)、サポート装置200は、変数テーブルおよびネットワークコンフィギュレーションなどを参照して、ユーザプログラム中のファンクションブロックが示すデバイス変数の集合を特定する(ステップS106)。つまり、サポート装置200は、ユーザプログラムにおいて、機能ユニット150が保持するいずれかのデータに関連付けられた当該データの有効性を示す変数(有効確認変数)が指定されると、指定されたデータを保持する機能ユニット150からCPUユニット100までの伝送経路、および、特定された伝送経路に存在する通信ユニットを特定する。
そして、サポート装置200は、ユーザプログラムを当該特定したデバイス変数の集合からなる有効確認データを示す有効確認変数を含むユーザプログラムに変換する(ステップS108)。これによって、サポート装置200は、特定された各通信ユニットの状態を集合させた結果を有効確認変数が示す値(有効確認データ)として反映する。
サポート装置200は、ステップS108において変換されたユーザプログラム、または、ステップS100において作成されたユーザプログラムをコンパイルして、ユーザプログラムのオブジェクトコードを生成する(ステップS110)。そして、サポート装置200は、生成したユーザプログラムのオブジェクトコードをCPUユニット100へ転送する(ステップS112)。そして、ユーザプログラムの作成およびコンパイルの処理は終了する。
上述の説明においては、有効確認変数を示すファンクションブロックを用いることで、対象となる有効確認データを動的に決定できる実装例を例示したがこれに限らず、CPUユニット100で扱うことのできる入力値フラグ(入力値変数)のすべてについて有効確認変数を予め用意しておいてもよい。例えば、入力値変数「d0001」に対して、有効確認変数「sst0001」といったように、変数毎に割当てた識別番号と変数の種類を示す文字列との組み合わせを変数名として利用することで、このような一対一の対応付けが可能になる。あるいは、各変数をオブジェクトとしてみなし、そのプロパティまたはメソッドなどを用いて、各有効確認変数を指定または利用するようにしてもよい。
いずれの方法であっても、プログラミング上の表現方法の違いであり、上述と同様の方法で実装できる。
上述したように、第1の実装方法においては、有効確認変数として定義されるファンクションブロックの内容が解析されて、必要な状態フラグの組み合わせとして有効確認データが解釈される。そして、有効確認データの値は、CPUユニット100に格納されている状態フラグなどの値を参照して各制御周期において決定されることになる。このような方法を採用することで、有効確認データを保持するための領域をCPUユニット100上に用意する必要はないので、CPUユニット100のメモリリソースが不足するような事態を回避しつつ、多段階または高度にネットワーク化された制御システムであっても、効率的なプログラミングを実現できる。
<E.第2の実装方法>
第2の実装方法として、PLC2のCPUユニット100とサポート装置200に搭載された機能とが連携して、有効確認データを提供する方法について説明する。
図10は、本実施の形態に係る制御システム1のサポート装置200における第2の実装方法に関する処理を説明するための模式図である。図10を参照して、ユーザは、サポート装置200が提供するエディタを用いてユーザプログラム440を作成したとする。ここで、入力値フラグ405(変数D1)に対して有効確認変数SST1(特殊フラグ442)が割当てられているとする。
図10に例示されるようなユーザプログラム440のソースコードがパースされる際には、その中に定義されている有効確認変数SST1は、予め定義されている変数テーブル20およびネットワークコンフィギュレーション22などが参照されて、対応する入力値フラグ405(変数D1)の伝送経路に応じたデバイス変数の集合として解析される。
変数テーブル20は、ユーザプログラムで利用可能な変数と現実の機能ユニットのポート番号とを関連付けるものであり、ある機能ユニットのあるポートにて収集される値に対して、任意の変数名の割り当てを定義する。ネットワークコンフィギュレーション22は、制御システム1におけるCPUユニット100と各機能ユニット150との間の接続関係(ネットワークトポロジー)などを定義する。
典型的には、変数テーブル20およびネットワークコンフィギュレーション22が参照されることで、有効確認変数(特殊フラグ442)の出力値を決定するために必要なステータス情報を特定することができる。有効確認変数の出力値を決定するために必要なフラグが特定されると、対象の特殊フラグ442を実現するための有効確認データ設定444が生成される。有効確認データ設定444は、CPUユニット100において指定された有効確認データを提供するための設定情報である。
図11は、本実施の形態に係る制御システム1における第2の実装方法に関する処理を説明するための模式図である。図10に示すような処理に従って生成された有効確認データ設定444は、図11(A)に示すように、有効確認変数がSST1であるとの定義444aと、有効確認変数を構成するステータス情報の定義444bとを含む。定義444bにおいては、例えば、論理積をとる対象となる状態フラグを示す変数名が記述される。このように、サポート装置200は、有効確認変数が指定されたユーザプログラムのソースコードを解析して、当該有効確認変数が示す値(有効確認データ)の決定に関連する1または複数の通信ユニットを特定する。
CPUユニット100においては、入出力データおよびステータスデータが主メモリ106上に配置されており、それぞれの値は制御周期毎に入出力リフレッシュ(更新)される。
有効確認データ設定444は、サポート装置200からCPUユニット100へ転送される。このように、CPUユニット100に接続されるサポート装置200は、ユーザプログラムのソースコードの解析を実施するとともに、当該解析によって特定された情報(有効確認データ設定444)をCPUユニット100へ送信する。
CPUユニット100は、サポート装置200から受信した有効確認データ設定444を解釈し、主メモリ106上の所定領域に有効確認データを格納するための領域を確保する。この確保された領域上に、有効確認データ設定444にて指定された変数名の有効確認データが格納されるようになる。
さらに、図4(B)に示すように、CPUユニット100においては、有効確認データ設定444に含まれる状態フラグの定義444bに従って、有効確認データを更新するためのデータ更新ロジック446が形成される。データ更新ロジック446は、典型的には、システムプログラム108a上で実行され、状態フラグの定義444bに従って対象となる状態値(変数ST1〜ST4として参照される値)を参照し、参照した状態値についての論理演算(この例では、論理積)の結果を指定された領域に書込む。この有効確認データの書込み(更新)についても、入出力リフレッシュと実質的に同じ制御周期で繰返されることが好ましい。
このように、CPUユニット100は、特定された情報を含む有効確認データ設定444に基づいて、有効確認変数が示す有効確認データを更新および保持する機能を追加する。
ユーザプログラム上で指定された有効確認データ(この例では、変数SST1)がCPUユニット100上に用意されているので、サポート装置200に実装されるロギング機能448は、この指定された有効確認変数を参照して、各タイミングにおける状態値をユーザに提示する。
第2の実装方法によれば、サポート装置200とPLC2のCPUユニット100とが連携して有効確認データを提供することになる。すなわち、CPUユニット100は、サポート装置200から、(1)有効確認変数の変数名、および、(2)有効確認変数を示す状態値および論理演算の定義、を含む有効確認データ設定444を収集する。そして、CPUユニット100は、収集した有効確認データ設定444に従って、有効確認データの保持および更新を行う。
第2の実装方法によれば、CPUユニット100が有効確認データを保持および更新することになるので、ユーザプログラム440を作成したサポート装置200に限らず、任意の外部装置から有効確認データを参照でき、より汎用性を高めることができる。また、CPUユニット100において有効確認データが更新されるので、入出力データと同様の制御周期で有効確認データを更新でき、当該有効確認データを別のシーケンスプログラムにも利用できる。
次に、第2の実装方法に係る処理手順について説明する。図12は、本実施の形態に係る制御システム1における有効確認データを提供するための第2の実装方法に係る処理手順を示すフローチャートである。図12に示す処理手順は、サポート装置200とPLC2のCPUユニット100とが連携することによって実現され、サポート装置200の各ステップは、サポート装置200のプロセッサ202がサポートプログラム208b(図4参照)を実行することで実施され、CPUユニット100の各ステップは、プロセッサ102がシステムプログラム108a(図2参照)を実行することで実施される。
図12を参照して、サポート装置200は、ユーザ操作に応じて、ユーザプログラムを作成する(ステップS200)。このステップS200は、サポート装置200が提供するエディタ機能によって実現される。続いて、サポート装置200は、CPUユニット100への反映が指示されたか否かを判断する(ステップS202)。CPUユニット100への反映が指示されていなければ(ステップS202においてNO)、ステップS200以下の処理が繰返される。
CPUユニット100への反映が指示されると(ステップS202においてYES)、サポート装置200は、ユーザプログラムのソースコードを解析して、有効確認変数が指定されているか否かを判断する(ステップS204)。有効確認変数が指定されていなければ(ステップS204においてNO)、ステップS206〜S210の処理はスキップされる。
有効確認変数が指定されていれば(ステップS204においてYES)、サポート装置200は、変数テーブルおよびネットワークコンフィギュレーションなどを参照して、ユーザプログラム中の有効確認変数が示すデバイス変数の集合を特定し(ステップS206)、有効確認変数を示す有効確認データ設定444を生成し(ステップS208)、CPUユニット100へ転送する(ステップS210)。
CPUユニット100は、サポート装置200からの有効確認データ設定444に応じて、指定された有効確認データを保持するための領域を主メモリ106上に確保する(ステップS250)とともに、有効確認データを更新するためのデータ更新ロジックを形成する(ステップS252)。そして、CPUユニット100は、指定された状態値を参照し、参照した状態値についての論理演算の結果を有効確認データとして確保した領域に書込む(ステップS254)。CPUユニット100は、次の制御周期が到来したか否かを判断し(ステップS256)、次の制御周期が到来すれば(ステップS256においてYES)、ステップS254の処理を繰返す。
サポート装置200または他の外部装置は、任意のタイミングでCPUユニット100へアクセスして、有効確認変数を指定することで、対応の有効確認データの値を取得できる。
なお、上述の説明においては、ユーザプログラムにおいて有効確認変数を用いる例を示したが、これに代えて、上述した第1の実装方法において例示したがファンクションブロックを用いるようにしてもよい。ファンクションブロックを用いる場合には、CPUユニット100が指定されたファンクションブロックに対応する変数名を自動的に割当てるようにしてもよい。あるいは、各変数をオブジェクトとしてみなし、そのプロパティまたはメソッドなどを用いて、各有効確認変数を指定または利用するようにしてもよい。
いずれの方法であっても、プログラミング上の表現方法の違いであり、上述と同様の方法で実装できる。
上述したように、第2の実装方法においては、サポート装置200にて作成されたユーザプログラムの情報から生成される有効確認データ設定444に基づいて、CPUユニット100内部に有効確認データが保持されるので、任意の外部装置から当該有効確認データにアクセスできる。そのため、有効確認データの利用性を高めることができる。また、CPUユニット100内部に保持される有効確認データは、通常の入出力データおよび状態値と同様の制御周期で更新されるので、複数の異常処理ロジックの間で共通して利用することもできる。
<F.第3の実装方法>
第3の実装方法として、実質的にPLC2のCPUユニット100に搭載される機能のみを用いて有効確認データを提供する方法について説明する。
図13は、本実施の形態に係る制御システム1における有効確認データを提供するための第3の実装方法を説明するための模式図である。図13を参照して、第3の実装方法においては、サポート装置200は、有効確認データへの参照に用いられる有効確認変数(この例では、変数SST1)、および、当該有効確認データを決定するために用いられる入力データの特定(この例では、有効確認変数IN1)をCPUユニット100へ送信する。
CPUユニット100は、サポート装置200から指定された対象の入力データに対応するデバイス変数を特定するとともに、特定したデバイス変数のアドレスから、対象の機能ユニットを特定する(図13の(1))。続いて、CPUユニット100は、特定した機能ユニットがいずれのネットワークに属しているのかを判断し、対象の機能ユニットに関連するネットワークを特定する(図13の(2))。そして、特定したネットワークを管理する機能ユニットのネットワークアドレスおよび状態値アドレスなどに基づいて、有効確認データを算出するために必要な状態値などを特定し、データ更新ロジックを構築する(図13の(3))。例えば、状態フラグ401〜404(変数名ST1〜ST4)にそれぞれ対応するアドレスの集合に対する論理和の結果が有効確認データとして格納されることが定義される。
このような手順に従って、サポート装置200から指定された有効確認データを示す変数名がCPUユニット100内において定義されるとともに、CPUユニット100内では、当該定義された有効確認データを更新するためのロジックが自動的に構築される。上述のようなネットワークアドレスの探索には、CPUユニット100に格納されている変数テーブルおよびネットワークコンフィギュレーションなどが参照される。
サポート装置200からCPUユニット100へ送信される、有効確認データとして用いる変数名、および、当該有効確認データの対象となる入力データについては、図8(A)に示すようなユーザプログラム中のファンクションブロックを用いて定義されてもよい。
次に、第3の実装方法に係る処理手順について説明する。図14は、本実施の形態に係る制御システム1における有効確認データを提供するための第3の実装方法に係る処理手順を示すフローチャートである。図14に示す各ステップは、典型的には、CPUユニット100のプロセッサ102がシステムプログラム108a(図2参照)を実行することで実施される。
図14を参照して、PLC2のCPUユニット100は、サポート装置200から、有効確認データとして用いる変数名、および、当該有効確認データの対象となる入力データの特定を受信したか否かを判断する(ステップS300)。これらの情報を受信していなければ(ステップS300においてNO)、以下の処理はスキップされる。
これらの情報を受信すれば(ステップS300においてYES)、CPUユニット100は、指定された対象の入力データに対応するデバイス変数を特定し(ステップS302)、特定したデバイス変数のアドレスから、対象の機能ユニットを特定する(ステップS304)。続いて、CPUユニット100は、特定した機能ユニットがいずれのネットワークに属しているのかを判断し(ステップS306)、対象の機能ユニットに関連するネットワークを特定する(ステップS308)。
このように、CPUユニット100は、当該有効確認データの対象となるデータおよび当該対象のデータに関連付けられる有効確認データとして用いる変数名に応答して、当該対象のデータを保持する機能ユニットを特定するとともに、当該特定した機能ユニットからCPUユニット100までの伝送経路を特定する。
CPUユニット100は、特定したネットワークを管理する機能ユニットのネットワークアドレスおよび状態値アドレスなどに基づいて、有効確認データを算出するために必要な状態値などを特定し(ステップS310)、データ更新ロジックを構築する(ステップS312)。そして、CPUユニット100は、構築したデータ更新ロジックに従って、有効確認データの更新処理を繰返す(ステップS314)。
このように、CPUユニット100は、特定した伝送経路に存在する通信ユニットの各々の状態を集合させた結果を、指定された有効確認変数が示す値として所定周期毎に更新するための命令を追加する。
上述したように、第3の実装方法においては、サポート装置200にて、特定の入力データを指定するとともに、当該入力データに関連付けられる有効確認データを示す有効確認変数を指定すると、CPUユニット100にて指定された有効確認データを算出するためのロジックが自動的に構築される。そのため、ユーザは、指定した入力データがいずれのハードウェアを用いて収集されているのかといったことを考慮することなく、ユーザプログラムを作成できる。このような構成を採用することで、ユーザプログラムの作成効率を高めることができる。また、第3の実装方法においては、CPUユニット100内部に有効確認データが保持されるので、CPUユニット100に接続される任意の外部装置から当該有効確認データにアクセス可能になっている。
<G.その他の実装例>
上述の第1〜第3の実装例においては、処理が実行されたタイミングにおける制御システム1のハードウェア構成およびネットワーク構成に応じて、有効確認データを算出するためのロジックまたはアルゴリズムを決定する方法について例示したが、そのロジックまたはアルゴリズムを決定した後、何らかのユニットの追加・変更・廃止といった、ハードウェア構成あるいはネットワーク構成の変更が生じた場合には、その変更が生じたことを検知して、ロジックまたはアルゴリズムを再構築するようにしてもよい。このような自動再構築の方法を採用することで、制御システム1の構成変更に対して、必要なアルゴリズムまたはロジックを動的に最適化できる。
<H.利点>
本実施の形態に係る生産システムおよび当該制御システムを構成する制御装置によれば、何らかの入力データを利用したユーザプログラムを開発するにあたって、ユーザ(典型的には、ユーザプログラムの開発者)は、当該入力データがどのようなハードウェアおよびネットワークを介して収集されるのかを意識する必要がない。ユーザは、ユーザプログラムにおいて使用する入力データに対応する有効確認データを指定すれば、当該指定した入力データの伝送経路などに応じた1または複数のステータス情報を反映した有効確認データを利用することができる。
また、有効確認データの値は、制御システムのハードウェア構成およびネットワーク構成などに応じて構築されたロジックまたはアルゴリズムに基づいて更新されるので、事後的に構成の変更が生じたとしても、ユーザプログラムを変更することなく、対応が可能になる。
このように、本実施の形態によれば、多段階または高度にネットワーク化された制御システムであっても、効率的なプログラミングを実現できる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 制御システム、2 PLC、3,3A,3B,3C,3D リモートI/O装置、4 上位ネットワーク、5,6 フィールドネットワーク、10 ソースコード、12 オブジェクトコード、20 変数テーブル、22 ネットワークコンフィギュレーション、100 CPUユニット、102,202 プロセッサ、104,204 チップセット、106,206 主メモリ、108,208 不揮発性メモリ、108a システムプログラム、108b,400,410,420,430A,430B,440 ユーザプログラム、110 クロック、112,162,214 通信インターフェイス、114,128,138,148,164,198 コネクタ、116,166 メモリカードインターフェイス、118 メモリカード、120,130,170,180 ネットワークコントローラ、122,132,142,172,182,192 バッファメモリ、124,134,144,174,184,194 転送制御回路、126,136,146,176,186,196 DMA制御回路、140,190 内部バスコントローラ、150 機能ユニット、152 通信ユニット、160 カプラユニット、161 コントローラ、200 サポート装置、208a OS、208b サポートプログラム、210 表示インターフェイス、212 入力部、301,302,303,304 伝送経路、401,402,403,404,411 状態フラグ、405 入力値フラグ、406,432 ファンクションブロック、421,436,442 特殊フラグ、434 特殊コイル、444 有効確認データ設定、444a,444b 定義、446 データ更新ロジック、448 ロギング機能。

Claims (10)

  1. ユーザプログラムを実行する処理ユニットと、
    1または複数の機能ユニットと、
    前記処理ユニットと1または複数の機能ユニットとの間でデータを中継する1または複数の通信ユニットと、
    前記ユーザプログラムにおいて、前記機能ユニットが保持するいずれかのデータに関連付けられた当該データの有効性を示す変数が指定されると、指定されたデータを保持する機能ユニットから前記処理ユニットまでの伝送経路に存在する通信ユニットの各々の状態を集合させた結果を当該変数が示す値として反映する反映手段とを備える、制御システム。
  2. 前記反映手段は、
    前記変数が指定されたユーザプログラムのソースコードを解析して、当該変数が示す値の決定に関連する1または複数の通信ユニットを特定する手段と、
    前記特定した1または複数の通信ユニットの状態を示す値の集合から前記変数が示す値を決定するための命令を前記ソースコードに追加した上で、前記ユーザプログラムのオブジェクトコードを生成する手段とを含む、請求項1に記載の制御システム。
  3. 前記処理ユニットに接続されるサポート装置をさらに備え、
    前記反映手段は、前記サポート装置に実装される、請求項2に記載の制御システム。
  4. 前記反映手段は、
    前記変数が指定されたユーザプログラムのソースコードを解析して、当該変数が示す値の決定に関連する1または複数の通信ユニットを特定する手段と、
    前記処理ユニットにおいて、前記特定された情報に基づいて、前記変数が示す値を更新および保持する機能を追加する手段とを含む、請求項1に記載の制御システム。
  5. 前記処理ユニットに接続されるサポート装置をさらに備え、前記サポート装置は、前記ユーザプログラムのソースコードの解析を実施するとともに、当該解析によって特定された情報を処理ユニットへ送信する、請求項4に記載の制御システム。
  6. 前記反映手段は、
    前記処理ユニットにおいて、対象のデータおよび当該対象のデータに関連付けられる変数名に応答して、前記対象のデータを保持する機能ユニットを特定するとともに、当該特定した機能ユニットから前記処理ユニットまでの伝送経路を特定する手段と、
    前記特定した伝送経路に存在する通信ユニットの各々の状態を集合させた結果を指定された変数が示す値として所定周期毎に更新するための命令を追加する手段とを含む、請求項1に記載の制御システム。
  7. 前記変数が示す値は、処理ユニットに接続される外部装置からアクセス可能に構成される、請求項6に記載の制御システム。
  8. 前記通信ユニットの間は、所定のプロトコルに従うネットワークが構成されている、請求項1〜7のいずれか1項に記載の制御システム。
  9. 制御装置であって、
    ユーザプログラムを実行する処理ユニットと、
    1または複数の機能ユニットと通信するための通信インターフェイスとを備え、前記処理ユニットと1または複数の機能ユニットとの間には、データを中継する1または複数の通信ユニットが配置されており、前記制御装置は
    前記ユーザプログラムにおいて、前記機能ユニットが保持するいずれかのデータに関連付けられた当該データの有効性を示す変数が指定されると、指定されたデータを保持する機能ユニットから前記処理ユニットまでの伝送経路に存在する通信ユニットの各々の状態を集合させた結果を当該変数が示す値として反映する反映手段を備える、制御装置。
  10. コンピュータで実行される制御プログラムであって、前記コンピュータは、ユーザプログラムを実行する処理ユニットと、1または複数の機能ユニットと通信するための通信インターフェイスとを備え、前記処理ユニットと1または複数の機能ユニットとの間には、データを中継する1または複数の通信ユニットが配置されており、
    前記制御プログラムは前記コンピュータに
    前記ユーザプログラムにおいて、前記機能ユニットが保持するいずれかのデータに関連付けられた当該データの有効性を示す変数が指定されると、指定されたデータを保持する機能ユニットから前記処理ユニットまでの伝送経路、および、前記特定された伝送経路に存在する通信ユニットを特定するステップと、
    前記特定された各通信ユニットの状態を集合させた結果を当該変数が示す値として反映するステップとを実行させる、制御プログラム。
JP2017030834A 2017-02-22 2017-02-22 制御システム、制御装置および制御プログラム Active JP6816554B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2017030834A JP6816554B2 (ja) 2017-02-22 2017-02-22 制御システム、制御装置および制御プログラム
EP17897599.1A EP3588215B1 (en) 2017-02-22 2017-11-20 Control system
US16/477,532 US11169500B2 (en) 2017-02-22 2017-11-20 Control system, control device and control program for verifying soundness of data on a transmission path
PCT/JP2017/041653 WO2018154884A1 (ja) 2017-02-22 2017-11-20 制御システム、制御装置および制御プログラム
CN201780082657.9A CN110168456B (zh) 2017-02-22 2017-11-20 控制系统、控制装置以及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017030834A JP6816554B2 (ja) 2017-02-22 2017-02-22 制御システム、制御装置および制御プログラム

Publications (2)

Publication Number Publication Date
JP2018136745A true JP2018136745A (ja) 2018-08-30
JP6816554B2 JP6816554B2 (ja) 2021-01-20

Family

ID=63254340

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017030834A Active JP6816554B2 (ja) 2017-02-22 2017-02-22 制御システム、制御装置および制御プログラム

Country Status (5)

Country Link
US (1) US11169500B2 (ja)
EP (1) EP3588215B1 (ja)
JP (1) JP6816554B2 (ja)
CN (1) CN110168456B (ja)
WO (1) WO2018154884A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11188048B2 (en) 2018-10-23 2021-11-30 Keyence Corporation Programmable logic controller and main unit

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6974772B2 (ja) * 2020-03-31 2021-12-01 ダイキン工業株式会社 仕様記述プログラム及び仕様記述方法
JP6806946B2 (ja) * 2020-08-07 2021-01-06 株式会社キーエンス 外部設定機器およびプログラム
JP2024011462A (ja) * 2022-07-14 2024-01-25 オムロン株式会社 制御システム、制御装置および通信方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07177178A (ja) * 1993-12-20 1995-07-14 Fujitsu Ltd パケット交換網における呼切断のないpad中継回線バックアップ方法
JPH086614A (ja) * 1994-06-22 1996-01-12 Omron Corp プログラマブルコントローラ
JP2002278606A (ja) * 2001-03-15 2002-09-27 Omron Corp プログラミングツール及び制御装置
DE102010020504A1 (de) * 2010-05-14 2011-11-17 Guido Artschwager Vorrichtung und Verfahren, das es ermöglicht, Daten zwischen einem SAP-System (SAP) und einer speicherprogrammierbaren Steuerung (SPS) sicher zu übertragen
JP2015001758A (ja) * 2013-06-13 2015-01-05 オムロン株式会社 情報処理装置、情報処理装置の制御方法および制御プログラム

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2091444B (en) 1981-01-09 1985-03-06 Programasyst Ltd Control of real time processes
US5742624A (en) * 1992-08-24 1998-04-21 Omron Corporation Fault detecting apparatus and method
JP2835907B2 (ja) 1993-10-19 1998-12-14 矢崎総業株式会社 シーケンサネットワークの通信異常解析装置
JPH08211908A (ja) 1995-02-03 1996-08-20 Fanuc Ltd Pcの試験プログラム実行方式
WO2001027701A1 (fr) * 1999-10-15 2001-04-19 Omron Corporation Systeme de reseau, procede de commande, dispositif de commande et multiprocesseur
US20030016677A1 (en) * 2001-07-17 2003-01-23 Karl Mauritz Fabric bus architeture
US7822495B2 (en) * 2002-04-15 2010-10-26 Fisher-Rosemount Systems, Inc. Custom function blocks for use with process control systems
JP4143366B2 (ja) 2002-08-29 2008-09-03 東芝三菱電機産業システム株式会社 プラント制御システム
US7475393B2 (en) * 2003-08-29 2009-01-06 Motorola, Inc. Method and apparatus for parallel computations with incomplete input operands
JP3651612B1 (ja) 2003-12-15 2005-05-25 横河電機株式会社 通信制御システム
JP4311234B2 (ja) * 2004-03-08 2009-08-12 沖電気工業株式会社 通信タイミング制御装置、通信タイミング制御方法、ノード及び通信システム
DE102004022767A1 (de) * 2004-05-05 2005-07-21 Daimlerchrysler Ag Verfahren zum Ansteuern einer elektrischen Maschine und Ansteuersystem hierzu
JP4458281B2 (ja) 2005-10-12 2010-04-28 オムロン株式会社 プログラマブル・コントローラ・システム
JP5252014B2 (ja) * 2011-03-15 2013-07-31 オムロン株式会社 制御装置、制御システム、ツール装置および収集指示プログラム
WO2013161484A1 (ja) * 2012-04-27 2013-10-31 ソニー株式会社 情報処理装置、情報処理方法、およびプログラム
JP6201298B2 (ja) 2012-11-14 2017-09-27 オムロン株式会社 コントローラおよびプログラム
JP6135247B2 (ja) * 2013-03-29 2017-05-31 オムロン株式会社 情報処理装置および情報処理プログラム
JP2015176370A (ja) 2014-03-14 2015-10-05 オムロン株式会社 制御システム、方法、プログラムおよび情報処理装置
JP6560489B2 (ja) 2014-11-25 2019-08-14 株式会社日立製作所 制御コントローラおよびその制御方法
US10955810B2 (en) * 2015-11-13 2021-03-23 International Business Machines Corporation Monitoring communications flow in an industrial system to detect and mitigate hazardous conditions

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07177178A (ja) * 1993-12-20 1995-07-14 Fujitsu Ltd パケット交換網における呼切断のないpad中継回線バックアップ方法
JPH086614A (ja) * 1994-06-22 1996-01-12 Omron Corp プログラマブルコントローラ
JP2002278606A (ja) * 2001-03-15 2002-09-27 Omron Corp プログラミングツール及び制御装置
DE102010020504A1 (de) * 2010-05-14 2011-11-17 Guido Artschwager Vorrichtung und Verfahren, das es ermöglicht, Daten zwischen einem SAP-System (SAP) und einer speicherprogrammierbaren Steuerung (SPS) sicher zu übertragen
JP2015001758A (ja) * 2013-06-13 2015-01-05 オムロン株式会社 情報処理装置、情報処理装置の制御方法および制御プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11188048B2 (en) 2018-10-23 2021-11-30 Keyence Corporation Programmable logic controller and main unit

Also Published As

Publication number Publication date
US11169500B2 (en) 2021-11-09
EP3588215A1 (en) 2020-01-01
EP3588215A4 (en) 2020-12-09
CN110168456A (zh) 2019-08-23
WO2018154884A1 (ja) 2018-08-30
US20190361418A1 (en) 2019-11-28
EP3588215B1 (en) 2022-03-16
JP6816554B2 (ja) 2021-01-20
CN110168456B (zh) 2021-12-10

Similar Documents

Publication Publication Date Title
WO2018154884A1 (ja) 制御システム、制御装置および制御プログラム
US7275236B1 (en) Method for programming a multiple device control system using object sharing
US8521332B2 (en) Actuator for HVAC systems and method for operating the actuator
US6725288B2 (en) System for transmitting data between a device data area and a variable data area of a memory according to a memory map based on an identifying data of a device detected
US20020124011A1 (en) Methods, systems, and computer program products for communicating with a controller using a database interface
EP3489776B1 (en) Control device, control method, and program
US11165745B2 (en) Control system, controller, and control method
US20190306250A1 (en) Support apparatus, non-transitory computer-readable recording medium and setting method
Hadlich et al. Common communication model for distributed automation systems
JP6135247B2 (ja) 情報処理装置および情報処理プログラム
CN107408184A (zh) 补丁监测和分析
EP3564766A1 (en) Support apparatus, support program and setting method
JP6954191B2 (ja) 制御システム、開発支援装置、および開発支援プログラム
JP2009042995A (ja) 分散情報流通制御方法及び分散システムとそのサーバ並びにプログラム
EP3506034B1 (en) Control system
CN103518164A (zh) 用于运行自动化系统的方法
TWI830278B (zh) SCADA Web HMI系統
KR102243708B1 (ko) Hmi 시스템의 편집 툴 갱신 방법
US20060026554A1 (en) Ensuring consistency in an automation system
JP2023122186A (ja) 制御システム、支援装置および支援プログラム
Vivo et al. IoT@ Work

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200630

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200804

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201207

R150 Certificate of patent or registration of utility model

Ref document number: 6816554

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150