JP2017188115A - プログラム作成支援装置、プログラム作成支援装置の制御方法、およびプログラム作成支援装置の制御プログラム - Google Patents

プログラム作成支援装置、プログラム作成支援装置の制御方法、およびプログラム作成支援装置の制御プログラム Download PDF

Info

Publication number
JP2017188115A
JP2017188115A JP2017072593A JP2017072593A JP2017188115A JP 2017188115 A JP2017188115 A JP 2017188115A JP 2017072593 A JP2017072593 A JP 2017072593A JP 2017072593 A JP2017072593 A JP 2017072593A JP 2017188115 A JP2017188115 A JP 2017188115A
Authority
JP
Japan
Prior art keywords
program
program element
ladder
elements
cause
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
JP2017072593A
Other languages
English (en)
Other versions
JP6852519B2 (ja
Inventor
健次郎 長尾
Kenjiro Nagao
健次郎 長尾
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 CN201780017244.2A priority Critical patent/CN108780306B/zh
Priority to PCT/JP2017/014120 priority patent/WO2017175767A1/ja
Priority to EP17779145.6A priority patent/EP3441833B1/en
Publication of JP2017188115A publication Critical patent/JP2017188115A/ja
Priority to US16/135,779 priority patent/US10838390B2/en
Application granted granted Critical
Publication of JP6852519B2 publication Critical patent/JP6852519B2/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/056Programming the PLC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3656Software debugging using additional hardware using a specific debug interface
    • 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/13Plc programming
    • G05B2219/13004Programming the plc
    • 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/13Plc programming
    • G05B2219/13052Display of ladder diagram
    • 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/13Plc programming
    • G05B2219/13142Debugging, tracing
    • 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/13Plc programming
    • G05B2219/13144GUI graphical user interface, icon, function bloc editor, OI operator interface
    • 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)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Programmable Controllers (AREA)

Abstract

【課題】ラダープログラムの可読性を向上させる。
【解決手段】PC(1)の制御部(10)は、ラダープログラム(51)のプログラム要素とその導通状態とを表示部(30)に表示させ、第1のプログラム要素を指定する指示を検出し、第1のプログラム要素が導通状態か非導通状態かを判定し、第1のプログラム要素が導通状態か非導通状態かに応じて原因要素を1つ以上特定し他のプログラム要素と識別可能な状態で表示部(30)に表示させる。
【選択図】図1

Description

本発明は、ラダープログラムの作成を支援するプログラム作成支援装置等に関する。
プログラマブルロジックコントローラ(PLC)による入力または出力デバイスのシーケンス制御の方法は、一例として、ラダー言語で記述されるラダー図で規定されることがある。ラダー図は、間隔を空けて描かれた、動力を表現する2つの母線(左母線と右母線)を結ぶようにして、接点およびコイル等で表現される論理回路が梯子状に描かれた構成を有している。
従来、上記ラダー図は物理的なリレー回路を論理回路として示すために用いられてきた。一方、近年このラダー図にて規定するシーケンス制御をプログラムデータ(以下、ラダープログラムと称する)として保存および編集するプログラム作成支援装置が開発されている。プログラム作成支援装置は、ラダープログラムに対応するラダー図を表示装置等に表示させる。例えば、下記特許文献1には、ラダー図から、ユーザが指定した検索対象ブロック(接点やコイルを有する回路上のブロック)に含まれる「接点」を開閉するコイルを有する回路ブロックを検索する技術が開示されている。特許文献1に開示された技術では、該検索を繰り返すことで各ブロックの階層関係を特定および表示することで、ラダー図の可視性を向上させる。
使用される。
特開2016−004414号公報(2016年1月12日公開)
ところが、特許文献1に記載の技術では、あるプログラム要素の導通状態または非導通状態の大元の原因を知るためには、ユーザはラダー図上のプログラム要素を、上記あるプログラム要素から上位に1つずつ、目視で辿って行く必要があった。例えば、ラダープログラムのデバッグまたは不具合原因の追究等を行う場合、ユーザがラダー図を遡って読んでいく時間と手間がかかり、非効率的であった。
本発明は、前記の問題点に鑑みてなされたものであり、その目的は、ユーザにラダープログラムのデバッグや不具合原因の追究を効率的に行わせることが可能なプログラム作成支援装置等を実現することにある。
前記の課題を解決するために、本発明に係るプログラム作成支援装置は、ラダープログラムの作成を支援するプログラム作成支援装置であって、複数のプログラム要素を含むラダープログラムを記憶する記憶部と、前記記憶部から前記ラダープログラムを読み出して実行する処理部と、を備え、前記処理部は、前記ラダープログラムに対応するラダー図と、前記ラダープログラムを実行している際の各プログラム要素が導通状態か非導通状態かを前記ラダー図に対応付けて表示部に表示させ、前記表示部に表示された前記各プログラム要素から第1のプログラム要素を選択するユーザの指示を検出し、前記第1のプログラム要素が導通状態か非導通状態かを判定し、前記第1のプログラム要素が導通状態か非導通状態かに応じて、前記第1のプログラム要素の導通状態または非導通状態の原因となる原因要素を1つ以上特定し、前記ラダー図において、特定した前記原因要素を他のプログラム要素と識別可能な状態で前記表示部に表示させる構成である。
前記の課題を解決するために、本発明に係るプログラム作成支援装置の制御方法は、ラダープログラムの作成を支援するプログラム作成支援装置の制御方法であって、複数のプログラム要素を含むラダープログラムを記憶する記憶部から前記ラダープログラムを読み出して実行する処理ステップを含み、前記処理ステップにおいて、前記ラダープログラムに対応するラダー図と、前記ラダープログラムを実行している際の各プログラム要素が導通状態か非導通状態かを前記ラダー図に対応付けて表示部に表示させるラダー図表示ステップと、前記表示部に表示された前記各プログラム要素から第1のプログラム要素を選択するユーザの指示を検出する検出ステップと、前記第1のプログラム要素が導通状態か非導通状態かを判定する判定ステップと、前記第1のプログラム要素が導通状態か非導通状態かに応じて、前記第1のプログラム要素の導通状態または非導通状態の原因となる原因要素を1つ以上特定するプログラム要素特定ステップと、前記ラダー図において、前記プログラム要素特定ステップにて特定した前記原因要素を他のプログラム要素と識別可能な状態で前記表示部に表示させるプログラム要素表示ステップと、を実行する方法である。
前記の課題を解決するために、本発明に係る、プログラム作成支援装置の制御プログラムは、ラダープログラムの作成を支援するプログラム作成支援装置の制御プログラムであって、複数のプログラム要素を含むラダープログラムを記憶する記憶部から前記ラダープログラムを読み出して実行する処理ステップを含み、前記処理ステップにおいて、前記ラダープログラムに対応するラダー図と、前記ラダープログラムを実行している際の各プログラム要素が導通状態か非導通状態かを前記ラダー図に対応付けて表示部に表示させるラダー図表示ステップと、前記表示部に表示された前記各プログラム要素から第1のプログラム要素を選択するユーザの指示を検出する検出ステップと、前記第1のプログラム要素が導通状態か非導通状態かを判定する判定ステップと、前記第1のプログラム要素が導通状態か非導通状態かに応じて、前記第1のプログラム要素の導通状態または非導通状態の原因となる原因要素を1つ以上特定するプログラム要素特定ステップと、前記ラダー図において、前記プログラム要素特定ステップにて特定した前記原因要素を他のプログラム要素と識別可能な状態で前記表示部に表示させるプログラム要素表示ステップと、を実行するプログラムである。
前記の構成によると、プログラム作成支援装置は、ユーザが選択した第1のプログラム要素が導通状態である場合、該プログラム要素が導通状態である原因となる原因要素を1つ以上特定する。また、プログラム作成支援装置は、第1のプログラム要素が非導通状態である場合、該プログラム要素が非導通状態である原因となる原因要素を特定する。そして、プログラム作成支援装置は、特定した原因要素をユーザに提示する。
これにより、ユーザは、プログラム作成支援装置を介しあるプログラム要素を選択することで、該プログラム要素が導通状態である、また非導通状態である原因になっているプログラム要素を容易に特定することができる。したがって、ラダープログラムのデバッグや不具合原因の追究を効率的に行うことができる。
前記プログラム作成支援装置において、前記処理部は、前記第1のプログラム要素が非導通状態である場合に、導通状態とすることで前記第1のプログラム要素を導通状態にすることが可能なプログラム要素を次の探索対象のプログラム要素として特定し、当該探索対象のプログラム要素から更に次の探索対象のプログラム要素を特定することを繰り返し、次の探索対象のプログラム要素が特定できない場合に、直前に特定したプログラム要素を前記第1のプログラム要素が非導通状態である原因となる前記原因要素として特定し、前記ラダー図において前記原因要素を他のプログラム要素と識別可能な状態で前記表示部に表示させてもよい。
前記の構成によると、プログラム作成支援装置は、ユーザが選択した第1のプログラム要素から上位の非導通状態のプログラム要素を順に自動的に遡って探索していくことにより、第1のプログラム要素の非導通状態の大元の原因である原因要素を特定し、当該原因要素をユーザに示すことができる。したがって、プログラム作成装置はラダープログラムの特定のプログラム要素が非導通状態である原因を、自動的に特定してユーザに示すことができる。
前記プログラム作成支援装置において、前記処理部は、前記原因要素を複数特定した場合、特定した複数の前記原因要素を識別可能な状態で前記表示部に表示させてもよい。
前記の構成によると、プログラム作成支援装置は、複数の原因要素をユーザに示すことができる。これにより、例えばラダープログラムに対応するラダー図に分岐が存在する場合等に、第1のプログラム要素の非導通状態の原因と考えられる原因要素(原因要素の候補)を複数ユーザに示すことができ、ユーザの原因要素検索の利便性が向上する。
前記プログラム作成支援装置において、前記処理部は、前記第1のプログラム要素が導通状態である場合に、前記第1のプログラム要素を探索対象のプログラム要素として、前記探索対象のプログラム要素と同一回路内において、非導通状態とすることで前記探索対象のプログラム要素を非導通状態にすることが可能な第2のプログラム要素を特定する第1処理を行い、前記第1処理により前記第2のプログラム要素が特定できない場合、前記探索対象のプログラム要素に割り付けられた変数と同一の変数が割り付けられている第3のプログラム要素が前記探索対象のプログラム要素の上位に存在するか否かを判定し、前記第1処理により前記第2のプログラム要素を1つ特定した場合、該第2のプログラム要素に割り付けられた変数と同一の変数が割り付けられている第4のプログラム要素が、前記第2のプログラム要素の上位に存在するか否かを判定し、前記第3のプログラム要素が存在しない場合、前記探索対象のプログラム要素を、他のプログラム要素と識別可能な状態で表示させ、前記第4のプログラム要素が存在しない場合、前記第2のプログラム要素を、他のプログラム要素と識別可能な状態で表示させ、前記第3のプログラム要素または前記第4のプログラム要素が1つ存在する場合、前記第3のプログラム要素または前記第4のプログラム要素を次の探索対象のプログラム要素として前記第1処理を再び行い、前記第2のプログラム要素、前記第3のプログラム要素、または前記第4のプログラム要素のいずれかが複数特定された場合、前記複数のプログラム要素を、前記原因要素として他のプログラム要素と識別可能な状態で表示させてもよい。
前記の構成によると、プログラム作成支援装置は、導通状態のプログラム要素を遡って探索する。そして、プログラム作成支援装置は、1つ以上の原因要素が特定できた場合、該原因要素を他のプログラム要素と識別可能な状態で表示させる。ここで、「1つ以上の原因要素が特定できた場合」とは、例えば、ラダー図が並列または直列構造になっている箇所で原因要素の候補を複数特定した場合、または、遡り検索の結果第1のプログラム要素の最上位のプログラム要素を特定した場合(すなわち、該プログラム要素を導通状態とするためのプログラム要素が上位に無い場合)等がある。
これにより、ユーザはプログラム作成支援装置を介しプログラム要素を選択することで、選択したプログラム要素が導通状態である原因になっている原因要素を容易に特定することができる。したがって、ラダープログラムのデバッグや不具合原因の追究を効率的に行うことができる。
前記プログラム作成支援装置において、前記処理部は、前記表示部に識別可能に表示させた前記原因要素のうち、1つのプログラム要素を選択するユーザの指示を検出した場合、選択された前記原因要素を次の探索対象として、前記第1処理を再び行ってもよい。
前記の構成によると、プログラム作成支援装置は選択された原因要素について、さらに第1処理を試みる。これにより、ユーザは表示された原因要素を順に選択していくことで、当該原因要素の上流の原因要素を遡って知ることができる。
前記プログラム作成支援装置はプログラマブルロジックコントローラに接続する接続部をさらに備え、前記処理部は、前記処理部に代えて前記接続部を介して前記プログラマブルロジックコントローラに前記ラダープログラムを実行可能なように設定し、前記プログラマブルロジックコントローラが実行中のラダープログラムにおける前記各プログラム要素の導通状態を取得してもよい。
前記の構成によると、プログラム作成支援装置はプログラマブルロジックコントローラで実行中のラダープログラムにおける各プログラム要素が導通状態であるか非導通状態であるかを確認することができる。したがってユーザは、プログラマブルロジックコントローラでラダープログラムを実際に実行した場合の分岐箇所や不具合箇所(非導通状態になっているプログラム要素)をリアルタイムで発見し、当該箇所の原因を検索および特定することができる。
前記プログラム作成支援装置において、前記処理部は、前記各プログラム要素の導通状態を所定の時間間隔で取得し、取得した前記各プログラム要素の導通状態を前記表示部に表示させてもよい。
前記の構成によると、プログラム作成支援装置はプログラマブルロジックコントローラで実行中のラダープログラムをリアルタイムでモニタするとともに、該ラダープログラムの各プログラム要素が導通状態であるか非導通状態であるかを、所定の時間間隔で更新することができる。したがってユーザは、プログラマブルロジックコントローラで実行中のラダープログラムの問題箇所(非導通状態になっているプログラム要素)をリアルタイムで発見し、当該問題箇所の原因をリアルタイムで検索および特定することができる。
本発明によれば、ユーザにラダープログラムのデバッグや不具合原因の追究を効率的に行わせることが可能になる。
本発明の実施形態1に係るPCおよびPLCの要部構成を示すブロック図である。 図2の(a)は上記PCの表示部に表示される、上記ラダープログラムに対応するラダー図の具体例を示す図である。図2の(b)は、上記ラダー図における、原因接点検索の入力操作および結果に係る表示の具体例を示す図である。 上記ラダープログラムに含まれるプログラム要素のデータ構成を示す表である。 上記PCの全体の処理の流れの一例を示すフローチャートである。 上記PCにて行われる、原因接点検索処理の流れの一例を示すフローチャートである。 上記ラダープログラムの他の一例に対応する、ラダー図を示す図である。 本発明の実施形態2に係るPCおよびPLCの要部構成を示すブロック図である。 本発明の実施形態4に係るPCの全体の処理の流れの一例を示すフローチャートである。 図9の(a)は実施形態4に係るラダープログラムに対応するラダー図の具体例を示す図である。図9の(b)は、ラダープログラムの他の一例に対応するラダー図を示す。
本発明は、例えば工場等に設置される生産設備を集中管理するFA(factory automation)システムに関する。本発明は、各種生産設備に含まれる入力デバイスまたは出力デバイス(以降、両者を単に「デバイス」と称する)の接続関係と、FAシステムを稼働させた場合の各デバイスおよびデバイスに含まれる構成要素の導通状態と、をユーザに図示する管理システムに係るものである。入力デバイスとは、例えばセンサおよびリミットスイッチ等である。出力デバイスとは、例えばランプやアクチュエータ等である。
〔実施形態1〕
以下、本発明の第1実施形態について、図1〜5を用いて説明する。従来、プログラム作成支援装置において、例えばあるプログラム要素(コイル等)が非導通状態である原因となる接点を検索する場合、ユーザはラダー図上でそのプログラム要素の上位にあるプログラム要素を目視で辿っていく必要があり、原因の特定に手間がかかっていた。そして、ユーザはあるプログラム要素の非導通状態の原因を探るには、ブロックを順に目視で辿っていく必要があった。
以下で説明する本実施形態に係るPC1は、前記の問題点を解決するものであり、ラダープログラムの特定のプログラム要素が非導通状態である原因を、自動的に特定することが可能なものである。
≪要部構成≫
図1は、本実施形態に係る管理システム100に含まれる装置の要部構成を示すブロック図である。管理システム100は、デバイス3と、デバイス3を集中管理するプログラマブルロジックコントローラ(PLC)2と、デバイス3の接続関係と稼働状態をモニタするPC(プログラム作成支援装置)1とを含む。PLC2に接続されるデバイス3の台数は特に限定されない。PLC2とデバイス3とは、通信カプラやスレーブ装置を介して間接的に接続されてもよい。
(PLC2の要部構成)
PLC2はデバイス3のシーケンス制御を行う装置である。PLC2はプログラムモードと運転モードとのいずれかのモードで稼働する。プログラムモードは、PLC2がデバイス3を制御しないモードである。PLC2は、例えばPC1とデータを送受信する場合にプログラムモードで稼働する。一方、運転モードは、デバイス3を制御するモードである。PLC2は運転モードにおいて、デバイス3を制御するためのラダープログラムを実行する。ラダープログラムとはラダー言語で記述されたプログラムである。ラダープログラムはPC1で作成され、PLC2にダウンロードされる。
PLC2は、より詳しくは、通信ユニット70と、CPUユニット80と、記憶ユニット90とを含む。通信ユニット70は、PC1と通信するためのユニットである。記憶ユニット90は、PLC2の各種データを格納するものである。記憶ユニット90は例えばラダープログラム51を格納する。
CPUユニット80は、PLC2を統括的に制御する。CPUユニット80はPLC2のモードの切替えを行う。また、CPUユニット80はプログラムモードと運転モードとで異なる処理を行う。
例えば、プログラムモードでは、CPUユニット80はPC1からラダープログラム51をダウンロードする。CPUユニット80はダウンロードしたラダープログラム51を記憶ユニット90に格納する。
一方、運転モードでは、CPUユニット80は記憶ユニット90からラダープログラム51を読み出して実行することにより、デバイス3のシーケンス制御を行う。
(PC1の要部構成)
PC1は、デバイス3の制御方法を記述したラダープログラム51を、ユーザの入力操作に応じて作成するプログラム作成装置である。PC1は、ラダープログラム51の作成を支援するプログラム作成支援装置でもある。PC1は、作成した(または作成中の)ラダープログラム51をPC1内で仮想的に実行することで、ラダープログラム51を実行したときのプログラム要素が導通状態か非導通状態かを特定する。ここで、プログラム要素とは、接点、コイル等、ラダープログラムをラダー図で表した場合の各種部品に対応する。なお、所定の処理を一まとめとしたファンクションブロックのインスタンスも、ラダープログラム上の一プログラム要素としてもよい。
PC1はラダープログラム51に対応するラダー図を表示部(後述)に表示するとともに、該ラダー図に示される各プログラム要素の導通状態を表示部(後述)に表示する。これにより、PC1はラダープログラム51およびプログラム要素の導通状態を視認性良くユーザに提示することができる。したがって、PC1はユーザによるラダープログラム51の作成を支援することができる。
PC1は、制御部(処理部)10、入力部20、表示部30、通信部40、および記憶部50を備える。入力部20はユーザの入力操作を受付ける。例えば、入力部20はPC1に内蔵または接続されたマウスやキーボード等の入力デバイスである。入力部20は受け付けた入力操作を示す入力信号を、制御部10の入力制御部11(後述)に送信する。
表示部30は、PC1に内蔵または接続された表示装置である。表示部30は、制御部10の表示制御部15(後述)の制御に従って、ラダープログラム51に対応するラダー図を表示する。通信部40は、PC1がPLC2と通信するための通信デバイスである。
記憶部50は、PC1が動作するための各種データ(PC1自体の制御プログラム等)と、PC1において作成された(または作成中の)ラダープログラム51とを格納する。ラダープログラム51は、ユーザの所定の指示に応じて制御部10により読み出され、通信部40を介してPLC2に送信される。
制御部10は、PC1を統括的に制御するCPU(Central Processing Unit)である。制御部10は、記憶部50に格納されているPC1の制御プログラムをRAM(random access memory、図示せず)等に読み出して実行することにより、以下で説明する入力制御部11、プログラム作成部12、探索部14、および表示制御部15の機能ブロックを実現する。
入力制御部11は、入力部20から入力信号を受信し、当該信号からユーザがPC1に対し行った指示を検出する。入力制御部11は、ラダープログラム51の作成に係る指示を検出した場合は、当該指示内容を示す情報をプログラム作成部12に送信する。また、入力制御部11は、ラダープログラム51の表示(ラダー図の表示)に係る指示を検出した場合は、当該指示内容を示す情報を表示制御部15に送信する。また入力制御部11は、ラダー図に含まれるプログラム要素を選択する指示を検出した場合は、当該指示内容を示す情報を探索部14に送信する。
プログラム作成部12は、入力制御部11から受信した指示内容に従ってラダープログラム51を作成する。プログラム作成部12は作成したラダープログラム51を記憶部50に格納する。
探索部14は、入力制御部11からプログラム要素を選択する指示を受信すると、ユーザにより選択されたプログラム要素(以下、第1のプログラム要素と称する)が導通状態か非導通状態かを判定する。プログラム要素には、0と1、trueとfalse、またはONとOFFの2値いずれか示す変数が割り付けられている。「導通状態」とは、プログラム要素に割り付けられた変数の値が1、true、またはONの状態を意味する。一方、「非導通状態」とは、上記変数の値が0、false、またはOFFの状態を意味する。探索部14は、ラダープログラム51から各プログラム要素の変数の値を読み込んで確認することで、各プログラム要素が導通状態か非導通状態かを特定する。第1のプログラム要素が非導通状態であった場合、探索部14は、ラダープログラム51において第1のプログラム要素の上位に配置された非導通状態の接点を遡って探索する。該探索を繰り返すことで、探索部14は第1のプログラム要素が非導通状態となっている原因の接点(原因接点、原因要素の一種)を特定することができる。探索部14は原因接点を特定すると、当該原因接点を示す情報を表示制御部15に送信する。探索部14は、より詳しくは、接点特定部141と要素特定部142とを含む。
なお、本実施形態および以降の実施形態において「上位」とは、ラダープログラム51を実行した際に、先に処理が実行されることを示す。
接点特定部141は、第1のプログラム要素が非導通状態である場合に、第1のプログラム要素の上位の接点であって、その接点を導通状態とすることで、第1のプログラム要素が導通状態になるような接点を特定する。また、接点特定部141は、後述する要素特定部142が次の探索の開始点(探索対象)として特定したプログラム要素の上位の接点であって、その接点を導通状態とすることで、第1のプログラム要素が導通状態になるような接点を特定する。接点特定部141は特定した接点を要素特定部142に伝える。
接点特定部141の接点の特定方法は特に限定しない。例えば、接点特定部141はあるプログラム要素の上流で当該プログラム要素と接続線が繋がっている接点であって、かつ非導通状態である接点を特定する。また、接点特定部141はラダープログラム51を手続き型言語のプログラムデータとして見たときの各プログラム要素の従属関係から、上記あるプログラム要素の上位(接続線の上流)にある接点(に対応する変数)を特定し、それら特定した接点の中でさらに非導通状態の接点を特定してもよい。
要素特定部142は、接点特定部141が特定した接点の上流にある、当該接点を動作させる(導通状態にする)プログラム要素を次の探索対象のプログラム要素として特定する。換言すると、要素特定部142は、導通状態とすることで、接点特定部141が特定した接点を導通状態にすることが可能なプログラム要素(コイルなど)を次の探索対象のプログラム要素として特定する。要素特定部142は例えば、接点特定部141が特定した接点がリレー接点であれば、当該リレー接点に対応する(すなわち、当該リレー接点と同じ変数が割振られている)コイルを次の探索対象のプログラム要素として特定する。要素特定部142は特定したプログラム要素を接点特定部141に伝える。
探索部14はこのように、接点特定部141における接点の特定と、要素特定部142におけるプログラム要素の特定とを繰り返すことにより、ラダー図において第1のプログラム要素から上位の非導通状態の接点とプログラム要素とを辿っていく。そして、探索部14は接点特定部141または要素特定部142が非導通状態の接点またはプログラム要素を特定できなくなった場合に、直前に特定した接点を原因接点として特定する。換言すると、探索部14は、接点特定部141が最後に特定できた非導通状態の接点を、原因接点として特定する。
表示制御部15は、ラダープログラム51に対応するラダー図と、各プログラム要素の導通状態とを表示部30に表示させるものである。表示制御部15は入力制御部11からの指示内容に応じて、記憶部50からラダープログラム51を読み出し、当該ラダープログラム51に対応するラダー図を表示部30に表示させる。表示制御部15はこのとき、ラダープログラム51の論理形式を確認し、当該ラダープログラム51を実行した際の各プログラム要素が導通状態であるか非導通状態であるかを表示部30に識別可能に表示させる。導通状態の表示方法は特に限定しないが、例えば表示制御部15は、導通状態のプログラム要素、および導通状態のプログラム要素を結ぶ接続線に対し太線やマーキングなどの強調表示を行うことで、各プログラム要素および接続線が導通状態か非導通状態かをユーザに示す。
表示制御部15はさらに、探索部14において原因接点を特定した場合、当該原因接点をラダー図上の他の接点と識別可能な状態で表示部30に表示させる。原因接点の表示方法も特に限定しないが、例えば原因接点を枠囲みや網掛けで強調表示させたり、原因接点のみ他の接点と異なる色で表示させたりすればよい。以下、図2〜3を用いて表示制御部15の行う表示制御について具体的に説明する。
(表示部30の画面例)
図2の(a)は、ラダープログラム51に対応するラダー図の具体例を示す図である。表示部30には、PLC2にて実行中のラダープログラム51の一部または全部のラダー図が表示される。図2の(a)の例では、ラダープログラム51のうち1行目〜5行目の接続線までが表示されており、各行にはa接点(常開接点、以下、単に接点と称する)500、502、504、506、および508、ならびにコイル501、503、505、507、および509がプログラム要素として配置(記述)されている。なお、各接点およびコイルに付したアルファベットは、そのプログラム要素に割り付けられた変数の変数名を示す。変数の割り付けについては、後で詳述する。
また、表示部30には各プログラム要素の導通および非導通が識別可能に表示される。図2の(a)の例ではプログラム要素は全て非導通状態である。また、接続線については、左母線から、左母線の直近のプログラム要素までは常に導通状態となる。そして、該直近のプログラム要素が導通状態の場合は、該プログラム要素から次のプログラム要素までの接続線は導通状態となる。一方、直近のプログラム要素が非導通状態の場合は、該プログラム要素から次のプログラム要素までの接続線は非導通状態となる。図2の(a)の例では、導通状態のプログラム要素を塗りつぶして表示している。また図2の(a)の例では、導通状態のプログラム要素を結ぶ接続線を太線で表示している。以降のラダー図を示した図面についても同様に導通状態および非導通状態を示すこととする。
図3は、図2の(a)および(b)に示されたラダー図のラダープログラム51における、各プログラム要素のデータ構成を示す表である。なお、プログラム要素のデータ構成は図3に示す表に限定されない。図3に示すようなプログラム要素を特定する情報が、ラダープログラム51内に記述される。
図3に示す通り、プログラム要素は、プログラム要素の種類(接点、コイル等)と、配置位置と、変数等の属性を備えている。ここで、「変数」とは、所定の型(接点やコイルであればBoolean型など)を持つ変数名であって、該変数は予め所定のアドレスに割り付けられている。図3によると、例えば、ラダー図1行目2個目のプログラム要素であるコイル501と、ラダー図2行目1個目のプログラム要素である接点502とは、異なる要素の種類(コイルと接点)であって同じ変数名(A)が割り当てられている。これにより、コイル501がONすると接点502が導通状態になる(接点502の変数Aの値が1、true、またはONになる)。コイル501が動作した場合、接点502は導通状態となる。
図2の(b)は、図2の(a)に示したラダー図において、原因接点検索の入力操作を行った場合の、当該入力操作および結果に係る表示の具体例を示す図である。ユーザが図2の(b)に示すように、コイル509を選択する入力操作を行うと、入力部20は当該入力操作を受付け、入力制御部11に信号を送る。入力制御部11は当該信号から、選択されたプログラム要素(コイル509)を特定し探索部14に伝える。探索部14は接点特定部141および要素特定部142の処理を繰り返すことにより、選択されたプログラム要素から非導通状態のプログラム要素を辿っていく。図2の(b)の場合、探索部14はコイル509から順に、接点508、コイル507、接点506、コイル505、接点504、コイル503、接点502、コイル501、接点500の順でプログラム要素を辿る。そして、探索部14は要素特定部142が接点500から次の非導通状態のプログラム要素を特定できないため、接点特定部141が直前に特定した接点500を原因接点として特定し、表示制御部15に伝える。表示制御部15は原因接点である接点500を、図2の(b)に示すように、他の接点およびコイル等のプログラム要素と識別可能に表示する。なお、図2の(b)に示すように、表示制御部15はユーザが検索対象として指定したプログラム要素(コイル509)も、他のプログラム要素と識別可能に表示部30に表示させてもよい。
(処理の流れ)
最後に、PC1が行う処理の流れについて、図4〜5を用いて説明する。図4は、
PC1全体の処理の流れの一例を示すフローチャートである。
図4に示すように、PC1の制御部10の入力制御部11においてラダープログラム51を表示する旨の指示を検出すると(S1)、制御部10は記憶部50からラダープログラム51を読み出し(S2)、以下に続く処理を実行する(処理ステップ)。
表示制御部15は当該プログラムに対応するラダー図と、ラダープログラム51に含まれるプログラム要素の導通状態とを表示部30に表示させる(S3、ラダー図表示ステップ)。ここで、ユーザがラダー図上でプログラム要素を選択すると、入力制御部11は、ユーザのプログラム要素を選択する指示を検出し(S4、検出ステップ)、探索部14に該指示を伝える。なお、入力制御部11は、上記選択する指示を検出した後に、ユーザが選択したプログラム要素を探索対象として検索する旨の指示(検索指示)を検出した場合に(S5)、探索部14に該指示を伝えてもよい。探索部14は入力制御部11から該指示を受信すると、上記選択されたプログラム要素、すなわち第1のプログラム要素が導通状態か非導通状態かを判定する(S6、判定ステップ)。第1のプログラム要素が非導通状態のプログラム要素である場合(S6でNO)、接点特定部141および要素特定部142の処理を繰り返すことにより、原因接点検索処理を行う(S7、探索ステップ)。原因接点が特定されると、探索部14は原因接点を示す情報を表示制御部15に送信する。表示制御部15は原因接点を、他の接点(およびプログラム要素)と識別可能な状態で、表示部30に表示させる(S8、プログラム要素表示ステップ)。なお、ユーザが選択した第1のプログラム要素が導通状態のプログラム要素であった場合(S6でYES)、探索部14はS7〜S8に示す処理を行わなくてもよい。もしくは、探索部14は、第1のプログラム要素のみを他の接点と識別可能な状態で表示部30に表示させてもよい。
次に、図4のS7における原因接点検索処理の詳細について、図5を用いて説明する。図5は、原因接点検索処理の流れを示すフローチャートである。探索部14は入力制御部11からユーザが指定したプログラム要素(第1のプログラム要素)を示す情報を受信すると、まず第1のプログラム要素について、要素の種類が接点であるか、接点以外のプログラム要素であるかを特定する(S50)。
プログラム要素が接点である場合(S50でYES)、探索部14は接点特定部141において、第1のプログラム要素の上位の接点であって、その接点を導通状態とすることで、第1のプログラム要素が導通状態になるような接点を、次の探索の開始点として特定する(S52)。一方、第1のプログラム要素が接点以外である場合(S50でNO)、探索部14は要素特定部142において、接点の上位にある、当該接点を動作させる(導通状態にする)プログラム要素を次の探索の開始点として特定する(S54)。探索部14は、接点特定部141が接点を特定できなくなる、または要素特定部142が接点からプログラム要素を特定できなくなくなるまで(S52またはS54の特定処理が失敗するまで)、S50〜S54の処理を繰り返す(S56でNO)。接点特定部141または要素特定部142が特定に失敗すると(S56でYES)、探索部14は接点特定部141が直前に特定した接点を原因接点として特定する(S58、プログラム要素特定ステップ)。
このように、図4〜5に示す処理によると、PC1は、ユーザが選択した第1のプログラム要素から非導通状態の接点を自動的に遡って探索し、第1のプログラム要素の非導通状態の大元の原因である原因接点まで特定し、当該原因接点をユーザに示すことができる。したがって、ラダープログラム51の特定のプログラム要素が非導通状態である原因を、自動的に特定してユーザに示すことができるという効果を奏する。
なお、表示制御部15は、ユーザが指定したプログラム要素と原因接点とが表示部30の1画面上に収まるように、上記指定したプログラム要素と原因接点との間に存在するプログラムのラダー図を省略または圧縮(縮小)して表示してもよい。
例えば、表示制御部15はユーザが指定したプログラム要素が配置されている接続線およびその前後1行の接続線を表示するとともに、原因接点についても原因接点が配置されている接続線およびその前後1行の接続線を表示し、その間の接続線を、ユーザが指定したプログラム要素と原因接点とが1画面に収まるように省略してもよい。また例えば、表示制御部15は間の接続線とそこに配置されるプログラム要素を、ユーザが指定したプログラム要素と原因接点とが1画面に収まるように縮小表示してもよい。
これにより、ユーザは非導通の原因を知りたいプログラム要素と、非導通の原因である原因接点とを、表示部30の画面をスクロールまたは切替えること無しに確認することができるため、原因接点の検索における利便性が向上する。
本実施形態では、探索部14が原因接点を特定することとした。しかしながら、本発明に係るPC1の探索部14は、接点特定部141または要素特定部142が次の探索対象のプログラム要素を特定できなくなった場合に、直前に特定したプログラム要素を、接点に限らず、第1のプログラム要素の非導通状態の原因となる原因要素として特定してもよい。そして、表示制御部15は、当該原因要素を他のプログラム要素と識別可能な状態で表示部30に表示させてもよい。
もしくは、探索部14は、接点特定部141または要素特定部142が次の探索対象のプログラム要素を特定できなくなった場合に、予め規定しておいた所定の形式のプログラム要素(例えばコイル)のうち、接点特定部141または要素特定部142が直前に(最後に)特定したプログラム要素を、原因要素として特定してもよい。なお、接点はプログラム要素の一種であるため、原因要素の特定および表示に係る処理は、原因接点の特定および表示に係る処理と同様である。
〔実施形態2〕
本発明に係るPC1は、探索部14において原因接点を複数特定した場合、特定した複数の接点をそれぞれ識別可能な状態で、表示部30に表示させてもよい。以下、本発明の第2の実施形態について説明する。
図6は、実施形態1に示したラダープログラム51の他の一例に対応する、ラダー図を示している。なお、図6に示すラダー図の読み方は、図2に示すラダー図と同様である。図6に示すラダー図では、接点602aと602bとが並列構造になっている。また、図示の通り、接点602aには変数B1が、602bには変数B2が割り付けられている。したがって、コイル601aが非導通状態から導通状態になった場合、接点602aが導通状態となる。また、コイル601bが非導通状態から導通状態になった場合、接点602bが導通状態となる。
そして、コイル603は接点602aおよび602bの少なくとも一方が導通状態となった場合に導通状態となる。このように、ラダープログラム51が、対応するラダー図において分岐点が存在するようなプログラムである場合、探索部14は、原因接点検索処理の過程で、複数の原因接点(図6の場合は接点602aおよび602b)を特定することとなる。この場合、探索部14は、特定した複数の接点をそれぞれ識別可能な状態で、表示部30に表示させる。例えば、図6に示すように、それぞれの接点(接点602aおよび602b)を枠囲みで表示すればよい。
これにより、PC1はラダープログラム51に対応するラダー図に分岐が存在する場合等に、第1のプログラム要素の非導通状態の原因と考えられる原因接点(原因接点の候補)を複数ユーザに示すことができ、ユーザにとっての原因接点検索の利便性が向上する。
なお、探索部14は原因接点検索処理の途中で、接点特定部141が複数の接点を特定した場合(すなわち、原因接点検索処理の途中で検索パターンの分岐が生じた場合)、当該複数の接点を原因接点の代わりに表示制御部15に伝え、表示制御部15はこの複数の接点を表示部30に表示させてもよい。そして、入力部20を介し上記複数の接点いずれかをユーザに選択させることで、当該選択接点を第1のプログラム要素(原因接点検索処理の開始のプログラム要素)として、再び原因接点検索処理を開始してもよい。
なお、表示制御部15は、上述のように探索部14が原因接点を複数特定した場合、それぞれを図6のようにラダー図上で識別可能に表示するのではなく、原因接点を別途リスト等の形式で表示させてもよい。
〔実施形態3〕
本発明に係るPC1は、PLC2にラダープログラム51を実行可能なように設定し、PLC2が実行中のラダープログラム51におけるプログラム要素の導通状態を、通信部(接続部)40を介し取得してもよい。以下、本発明の第3の実施形態について説明する。
図7は、本実施形態に係るPC1およびPLC2の要部構成を示している。本実施形態に係るPC1は、制御部10においてモニタ値取得部13の機能ブロックを実現する点で、上記各実施形態に係るPC1と異なる。
モニタ値取得部13は、入力制御部11から受信した指示内容に従って、PLC2からモニタ値を取得する。モニタ値は、ラダープログラム51に含まれる各プログラム要素に割り付けられた変数の変数値を少なくとも含む。モニタ値取得部13は取得したモニタ値に含まれる上記変数値から、ラダープログラム51に含まれる各プログラム要素の導通状態を特定し、各プログラム要素の導通状態を示す情報を表示制御部15に送信する。なお、モニタ値取得部13はモニタ値とともに、PLC2において実行中のラダープログラム51を指定する情報を受信し、モニタ値と当該情報とを表示制御部15に送信してもよい。例えばPLC2にラダープログラム51を複数ダウンロードさせていた場合(すなわち、PLC2によるデバイス3の制御が複数パターン存在する場合)は、ラダープログラム51を指定する情報を受信することで、いずれのラダープログラム51をPC1にて表示すべきか特定することができる。
また、本実施形態に係るPLC2のCPUユニット80は運転モードにおいて、制御対象のデバイス3の各種部品の導通状態を示す情報をモニタ値として取得し、通信ユニット70を介しPC1に送信する。
そして、表示制御部15は入力制御部11の指示内容に従って、PLC2にて実行されているラダープログラム51と同じラダープログラム51を記憶部50から読み出し、当該プログラムに対応するラダー図と、モニタ値取得部13から取得した各物理部品の導通状態をプログラム要素の導通状態に反映させたうえで、各プログラム要素(実行中のプログラム要素)の導通状態を表示部30に表示させる。
当該構成によると、PC1はラダープログラム51をPLC2で実際に実行した場合のラダープログラム51の問題箇所(非導通状態になっているプログラム要素)を発見し、当該問題箇所の原因を検索および特定することができる。
なお、モニタ値取得部13は、PLC2にて実行中のラダープログラム51の各プログラム要素の導通状態を所定の時間間隔で取得し、表示制御部15はモニタ値取得部13から受信する情報に基づいて、実行中のラダープログラム51のプログラム要素の導通状態を、随時反映させてもよい。
これにより、PC1はPLC2で実行中のラダープログラム51の各物理部品の導通状態をプログラム要素の導通状態にリアルタイムで反映させることができる。したがってユーザは、PLC2で実行中のラダープログラム51の問題箇所(非導通状態になっているプログラム要素)をリアルタイムで発見し、当該問題箇所の原因接点をリアルタイムで検索および特定することができる。
〔実施形態4〕
本発明に係るPC1は、第1のプログラム要素の導通状態の原因となる原因要素を特定してもよい。より詳しくは、本発明に係るPC1は、第1のプログラム要素を探索対象のプログラム要素とし、探索対象のプログラム要素と同一回路内において、非導通状態とすることで前記探索対象のプログラム要素を非導通状態にすることが可能な第2のプログラム要素を特定する第1処理を行ってもよい。
そして、PC1は、第1処理により第2のプログラム要素が特定できない場合、探索対象のプログラム要素に割り付けられた変数と同一の変数が割り付けられている第3のプログラム要素が前記探索対象のプログラム要素の上位に存在するか否かを判定してもよい。
そして、第3のプログラム要素が存在しないと判定した場合は探索対象のプログラム要素を原因要素として他のプログラム要素と識別可能な状態で表示させ、第3のプログラム要素が1つ存在すると判定した場合は第3のプログラム要素を次の探索対象のプログラム要素として第1処理を再び行ってもよい。
また、PC1は、第1処理により第2のプログラム要素を1つ特定した場合、さらに、第2のプログラム要素に割り付けられた変数と同一の変数が割り付けられている第4のプログラム要素が第2のプログラム要素の上位に存在するか否かを判定してもよい。そして、第4のプログラム要素が存在しないと判定した場合は第2のプログラム要素を原因要素として他のプログラム要素と識別可能な状態で表示させ、第4のプログラム要素が1つ存在すると判定した場合は第4のプログラム要素を次の探索対象のプログラム要素として第1処理を再び行ってもよい。
また、PC1は、前記第2のプログラム要素、前記第3のプログラム要素、または前記第4のプログラム要素のいずれかが複数ある場合、前記複数のプログラム要素を原因要素として、他のプログラム要素と識別可能な状態で表示させてもよい。以下、図8〜9を用いて、本実施形態について説明する。
図8は、本実施形態に係るPC1の全体の処理の流れの一例を示すフローチャートである。なお、図8の各処理のうち、S100〜S112の処理以外の処理は、図4に記載の処理と同じ処理である。本実施形態に係る探索部14は、入力制御部11でS4またはS5において検出された指示を受信すると、ユーザにより選択されたプログラム要素、すなわち第1のプログラム要素が導通状態か非導通状態かを判定する(S6)。第1のプログラム要素が導通状態である場合(S6でYES)、探索部14はまず、第1のプログラム要素を探索対象のプログラム要素として、該プログラム要素と同一回路内において、非導通状態とすることで前記第1のプログラム要素を非導通状態にすることが可能な第2のプログラム要素を特定する(S100、第1処理)。ここで、回路とは、ラダー図上において右母線に接続されたあるコイルを出発して左母線までたどることができるパスの集合を示す。
S100において第2のプログラム要素を特定できなかった場合、(S100で「特定できない」)探索部14は、探索対象のプログラム要素に割り付けられた変数と同一の変数が割り付けられているプログラム要素(第3のプログラム要素)が探索対象のプログラム要素の上位に存在するか否か判定する(S102)。
第3のプログラム要素が1つ存在する場合(S102で「1つ存在」)、探索部14は、第3のプログラム要素を次の探索対象のプログラム要素として第1処理を再び行う(S100)。一方、第3のプログラム要素が複数存在する場合(S102で「複数存在」)、探索部14は、該複数の第3のプログラム要素を表示対象として(S104)、表示制御部15に伝える。表示制御部15は該複数のプログラム要素を、ラダー図上の他のプログラム要素と識別可能な状態で表示部30に表示させる(S106)。また、第3のプログラム要素が存在しない場合(S102で「存在しない」)、探索部14は、S100における探索対象のプログラム要素を表示対象とする(S108)。そして、表示制御部15はS106の処理を行う。
S100において第2のプログラム要素を1つ特定した場合(S100で「1つ特定」)、探索部14は、第2のプログラム要素に割り付けられた変数と同一の変数が割り付けられているプログラム要素(第4のプログラム要素)が第2のプログラム要素の上位に存在するか否かを判定する(S110)。
第4のプログラム要素が1つ存在する場合(S110で「1つ存在」)、探索部14は、第4のプログラム要素を次の探索対象のプログラム要素として第1処理を再び行う(S100)。一方、第4のプログラム要素が複数存在する場合(S110で「複数存在」)、探索部14は、該複数の第4のプログラム要素を表示対象の原因要素として(S104)、表示制御部15に伝える。表示制御部15は該複数のプログラム要素を、ラダー図上の他のプログラム要素と識別可能な状態で表示部30に表示させる(S106)。また、第4のプログラム要素が存在しない場合(S110で「存在しない」)、探索部14は、S100において特定した第2のプログラム要素を表示対象の原因要素とする(S112)。そして、表示制御部15はS106の処理を行う。
S100において第2のプログラム要素を複数特定した場合(S100で「複数特定」)、探索部14は、探索部14は、該複数の第2のプログラム要素を表示対象の原因要素として(S104)、表示制御部15に伝える。表示制御部15は該複数のプログラム要素を、ラダー図上の他のプログラム要素と識別可能な状態で表示部30に表示させる(S106)。
なお、各プログラム要素の表示方法は特に限定しないが、例えば表示対象のプログラム要素を枠囲みや網掛けで強調表示させたり、表示対象のプログラム要素のみ他のプログラム要素と異なる色で表示させたりすればよい。
上記の処理によれば、PC1は、導通状態のプログラム要素を遡って探索し、1つ以上の原因要素が特定できた場合、該原因要素を他のプログラム要素と識別可能な状態で表示させる。ここで、「1つ以上の原因要素が特定できた場合」とは、例えば、ラダー図が並列または直列構造になっている箇所で原因要素の候補を複数特定した場合、または、遡り検索の結果第1のプログラム要素の最上位のプログラム要素を特定した場合(すなわち、該プログラム要素を導通状態とするためのプログラム要素が上位に無い場合)等がある。
これにより、ユーザはPC1を介しプログラム要素を選択することで、選択したプログラム要素が導通状態である原因になっている原因要素を容易に特定することができる。したがって、ラダープログラム51のデバッグや不具合原因の追究を効率的に行うことができる。
また、表示制御部15は、複数のプログラム要素を上述のように他のプログラム要素と識別可能に表示させた場合、該複数のプログラム要素をユーザが入力部20を介して選択可能な状態で表示部30に表示させることが望ましい。そして上記複数のプログラム要素からいずれか1つのプログラム要素を選択するユーザの指示を検出した場合、選択されたプログラム要素を次の探索対象としてS100〜S112の処理を再度行ってもよい。これにより、ユーザはプログラム要素を順に選択していくことで、ラダー図のプログラム要素を上流に遡って知ることができる。例えば、ラダー図に分岐化箇所がある場合、ユーザは該分岐箇所で分岐先を選択してプログラム要素を遡って検索することができる。
なお、第1のプログラム要素が非導通状態である場合(S6でNO)、探索部14は実施形態1〜3にて説明したように原因接点の検索および表示を行ってもよい(S7〜S8)。
図9の(a)は、本実施形態に係るラダープログラム51に対応するラダー図の具体例を示す図である。図9の(a)および(b)では、全てのプログラム要素が導通状態である。この状態で、図9の(a)に示すように、ユーザによってコイル707を選択する入力操作が行われると、入力部20は当該入力操作を受付け、入力制御部11に信号を送る。入力制御部11は当該信号から、選択されたプログラム要素(コイル707)を特定し探索部14に伝える。
探索部14はコイル707が導通状態であるか、非導通状態であるか判定する。図9の(a)の場合は、コイル707は導通状態であるため、探索部14はコイル707と同一回路内において、第2のプログラム要素を特定する。図9の(a)の例では第2のプログラム要素として、接点706が1つ特定される。探索部14は次に、接点706に割り付けられた変数と同一の変数が割り付けられているプログラム要素(第4のプログラム要素)が接点706の上流に存在するか否かを判定する。図9の(a)の例では、接点706と同じ変数Dが割り当てられているコイル705が1つ特定される。探索部14は、コイル705について、接点706と同様の処理を繰り返す。
このように、導通状態のプログラム要素を遡っていくと、図9の(a)の例では、コイル703を探索対象のプログラム要素として処理を行った場合に、接点702aと接点702bの2つの第2のプログラム要素が特定される。このように複数のプログラム要素が特定されると、表示制御部15は該プログラム要素(接点702aと接点702b)を、図9の(a)に示すように、他のプログラム要素と識別可能に表示する。なお、図示の通り、表示制御部15は、第1のプログラム要素であるコイル707も他のプログラム要素と識別可能に表示部30に表示させてもよい。そして、識別可能に表示させたプログラム要素がユーザによって選択された場合、当該選択されたプログラム要素を次の探索対象として、遡り検索を再度行ってもよい。
図9の(b)は、本実施形態に係るラダープログラム51の他の一例に対応するラダー図を示している。図9の(b)の例においても、図9の(a)の例で説明したように、探索部14は第1のプログラム要素から、導通状態のプログラム要素を遡って検索する処理を行う。図9の(b)の例では、遡り検索の過程でコイル803を探索対象のプログラム要素として処理を行った場合に、接点802aと接点802bとが特定される。そして、表示制御部15は接点802aと接点802bとを、他のプログラム要素と識別可能に表示する。そして、識別可能に表示させたプログラム要素がユーザによって選択された場合、当該選択されたプログラム要素を次の探索対象として、遡り検索を再度行ってもよい。
なお、上述のように探索部14が表示対象のプログラム要素を特定した場合、表示制御部15はそれぞれのプログラム要素をラダー図上で識別可能に表示するのではなく、該プログラム要素を別途リスト等の形式で表示させてもよい。
〔変形例〕
上記各実施形態では、PC1はラダープログラム51の作成機能を備えたプログラム作成支援装置であるとして説明を行った。しかしながら、PC1は、ラダープログラム51の作成機能は備えず、予め記憶部50に格納しておいたラダープログラム51を読み出し、当該ラダープログラム51に対応するラダー図と、各プログラム要素の導通状態とを表示してもよい。そして、当該ラダー図においてプログラム要素から原因要素を特定し表示してもよい。
この場合、PC1においてプログラム作成部12は必須ではなく、PC1の制御部10は、通信部40を介し他のPC1等のプログラム作成装置またはPLC2からラダープログラム51を受信し、記憶部50に格納しておけばよい。そして、入力部20に対するユーザの入力操作に応じて、格納したラダープログラム51の読出しおよび表示を行えばよい。
〔ソフトウェアによる実現例〕
PC1の制御ブロック(制御部10)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェアによって実現してもよい。
後者の場合、PC1は、各機能を実現するソフトウェアであるプログラムの命令を実行するCPU、上記プログラムおよび各種データがコンピュータ(またはCPU)で読み取り可能に記録されたROM(Read Only Memory)または記憶装置(これらを「記録媒体」と称する)、上記プログラムを展開するRAM(Random Access Memory)などを備えている。そして、コンピュータ(またはCPU)が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
1 PC(プログラム作成支援装置)
10 制御部(処理部)
11 入力制御部
12 プログラム作成部
13 モニタ値取得部
14 探索部
141 接点特定部
142 要素特定部
15 表示制御部
20 入力部
30 表示部
40 通信部(接続部)
50 記憶部
51 ラダープログラム
2 PLC(プログラマブルロジックコントローラ)
70 通信ユニット
80 CPUユニット
90 記憶ユニット
3 デバイス

Claims (9)

  1. ラダープログラムの作成を支援するプログラム作成支援装置であって、
    複数のプログラム要素を含むラダープログラムを記憶する記憶部と、
    前記記憶部から前記ラダープログラムを読み出して実行する処理部と、を備え、
    前記処理部は、
    前記ラダープログラムに対応するラダー図と、前記ラダープログラムを実行している際の各プログラム要素が導通状態か非導通状態かを前記ラダー図に対応付けて表示部に表示させ、
    前記表示部に表示された前記各プログラム要素から第1のプログラム要素を選択するユーザの指示を検出し、
    前記第1のプログラム要素が導通状態か非導通状態かを判定し、
    前記第1のプログラム要素が導通状態か非導通状態かに応じて、前記第1のプログラム要素の導通状態または非導通状態の原因となる原因要素を1つ以上特定し、
    前記ラダー図において、特定した前記原因要素を他のプログラム要素と識別可能な状態で前記表示部に表示させることを特徴とする、プログラム作成支援装置。
  2. 前記処理部は、
    前記第1のプログラム要素が非導通状態である場合に、導通状態とすることで前記第1のプログラム要素を導通状態にすることが可能なプログラム要素を次の探索対象のプログラム要素として特定し、当該探索対象のプログラム要素から更に次の探索対象のプログラム要素を特定することを繰り返し、
    次の探索対象のプログラム要素が特定できない場合に、直前に特定したプログラム要素を前記第1のプログラム要素が非導通状態である原因となる前記原因要素として特定し、
    前記ラダー図において前記原因要素を他のプログラム要素と識別可能な状態で前記表示部に表示させることを特徴とする、請求項1に記載のプログラム作成支援装置。
  3. 前記処理部は、前記原因要素を複数特定した場合、特定した複数の前記原因要素を識別可能な状態で前記表示部に表示させることを特徴とする、請求項2に記載のプログラム作成支援装置。
  4. 前記処理部は、前記第1のプログラム要素が導通状態である場合に、前記第1のプログラム要素を探索対象のプログラム要素として、
    前記探索対象のプログラム要素と同一回路内において、非導通状態とすることで前記探索対象のプログラム要素を非導通状態にすることが可能な第2のプログラム要素を特定する第1処理を行い、
    前記第1処理により前記第2のプログラム要素が特定できない場合、前記探索対象のプログラム要素に割り付けられた変数と同一の変数が割り付けられている第3のプログラム要素が前記探索対象のプログラム要素の上位に存在するか否かを判定し、
    前記第1処理により前記第2のプログラム要素を1つ特定した場合、該第2のプログラム要素に割り付けられた変数と同一の変数が割り付けられている第4のプログラム要素が、前記第2のプログラム要素の上位に存在するか否かを判定し、
    前記第3のプログラム要素が存在しない場合、前記探索対象のプログラム要素を、他のプログラム要素と識別可能な状態で表示させ、前記第4のプログラム要素が存在しない場合、前記第2のプログラム要素を、他のプログラム要素と識別可能な状態で表示させ、
    前記第3のプログラム要素または前記第4のプログラム要素が1つ存在する場合、前記第3のプログラム要素または前記第4のプログラム要素を次の探索対象のプログラム要素として前記第1処理を再び行い、
    前記第2のプログラム要素、前記第3のプログラム要素、または前記第4のプログラム要素のいずれかが複数特定された場合、前記複数のプログラム要素を、前記原因要素として他のプログラム要素と識別可能な状態で表示させることを特徴とする、請求項1〜3のいずれか1項に記載のプログラム作成支援装置。
  5. 前記処理部は、
    前記表示部に識別可能に表示させた前記原因要素のうち、1つのプログラム要素を選択するユーザの指示を検出した場合、選択された前記原因要素を次の探索対象として、前記第1処理を再び行うことを特徴とする、請求項4に記載のプログラム作成支援装置。
  6. プログラマブルロジックコントローラに接続する接続部をさらに備え、
    前記処理部は、前記処理部に代えて前記接続部を介して前記プログラマブルロジックコントローラに前記ラダープログラムを実行可能なように設定し、前記プログラマブルロジックコントローラが実行中のラダープログラムにおける前記各プログラム要素の導通状態を取得することを特徴とする、請求項1〜5のいずれか1項に記載のプログラム作成支援装置。
  7. 前記処理部は、
    前記各プログラム要素の導通状態を所定の時間間隔で取得し、
    取得した前記各プログラム要素の導通状態を前記表示部に表示させることを特徴とする、請求項6に記載のプログラム作成支援装置。
  8. ラダープログラムの作成を支援するプログラム作成支援装置の制御方法であって、
    複数のプログラム要素を含むラダープログラムを記憶する記憶部から前記ラダープログラムを読み出して実行する処理ステップを含み、
    前記処理ステップにおいて、
    前記ラダープログラムに対応するラダー図と、前記ラダープログラムを実行している際の各プログラム要素が導通状態か非導通状態かを前記ラダー図に対応付けて表示部に表示させるラダー図表示ステップと、
    前記表示部に表示された前記各プログラム要素から第1のプログラム要素を選択するユーザの指示を検出する検出ステップと、
    前記第1のプログラム要素が導通状態か非導通状態かを判定する判定ステップと、
    前記第1のプログラム要素が導通状態か非導通状態かに応じて、前記第1のプログラム要素の導通状態または非導通状態の原因となる原因要素を1つ以上特定するプログラム要素特定ステップと、
    前記ラダー図において、前記プログラム要素特定ステップにて特定した前記原因要素を他のプログラム要素と識別可能な状態で前記表示部に表示させるプログラム要素表示ステップと、を実行することを特徴とする、プログラム作成支援装置の制御方法。
  9. ラダープログラムの作成を支援するプログラム作成支援装置の制御プログラムであって、
    複数のプログラム要素を含むラダープログラムを記憶する記憶部から前記ラダープログラムを読み出して実行する処理ステップを含み、
    前記処理ステップにおいて、
    前記ラダープログラムに対応するラダー図と、前記ラダープログラムを実行している際の各プログラム要素が導通状態か非導通状態かを前記ラダー図に対応付けて表示部に表示させるラダー図表示ステップと、
    前記表示部に表示された前記各プログラム要素から第1のプログラム要素を選択するユーザの指示を検出する検出ステップと、
    前記第1のプログラム要素が導通状態か非導通状態かを判定する判定ステップと、
    前記第1のプログラム要素が導通状態か非導通状態かに応じて、前記第1のプログラム要素の導通状態または非導通状態の原因となる原因要素を1つ以上特定するプログラム要素特定ステップと、
    前記ラダー図において、前記プログラム要素特定ステップにて特定した前記原因要素を他のプログラム要素と識別可能な状態で前記表示部に表示させるプログラム要素表示ステップと、を実行することを特徴とする、プログラム作成支援装置の制御プログラム。
JP2017072593A 2016-04-04 2017-03-31 プログラム作成支援装置、プログラム作成支援装置の制御方法、およびプログラム作成支援装置の制御プログラム Active JP6852519B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201780017244.2A CN108780306B (zh) 2016-04-04 2017-04-04 程序创建辅助装置、程序创建辅助装置的控制方法、以及计算机可读取的记录介质
PCT/JP2017/014120 WO2017175767A1 (ja) 2016-04-04 2017-04-04 プログラム作成支援装置、プログラム作成支援装置の制御方法、およびプログラム作成支援装置の制御プログラム
EP17779145.6A EP3441833B1 (en) 2016-04-04 2017-04-04 Programming support device, control method of programming support device, and control program of programming support device
US16/135,779 US10838390B2 (en) 2016-04-04 2018-09-19 Program creation support apparatus, control method for program creation support apparatus, and control program for program creation support apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016075286 2016-04-04
JP2016075286 2016-04-04

Publications (2)

Publication Number Publication Date
JP2017188115A true JP2017188115A (ja) 2017-10-12
JP6852519B2 JP6852519B2 (ja) 2021-03-31

Family

ID=60046536

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017072593A Active JP6852519B2 (ja) 2016-04-04 2017-03-31 プログラム作成支援装置、プログラム作成支援装置の制御方法、およびプログラム作成支援装置の制御プログラム

Country Status (4)

Country Link
US (1) US10838390B2 (ja)
EP (1) EP3441833B1 (ja)
JP (1) JP6852519B2 (ja)
CN (1) CN108780306B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020024594A (ja) * 2018-08-08 2020-02-13 オムロン株式会社 サポート装置およびサポートプログラム
US20210286344A1 (en) * 2018-07-26 2021-09-16 Nec Corporation Plant monitoring apparatus, plant monitoring method, and computer readable recording medium

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6836549B2 (ja) * 2018-05-31 2021-03-03 ファナック株式会社 ラダー表示装置
JP6757386B2 (ja) * 2018-10-23 2020-09-16 株式会社キーエンス プログラマブルロジックコントローラおよびプログラム作成支援装置
JP6795568B2 (ja) * 2018-11-07 2020-12-02 ファナック株式会社 トレース装置及びプログラマブルコントローラ
WO2020157790A1 (ja) * 2019-01-28 2020-08-06 三菱電機株式会社 装置状態再現装置、装置状態再現方法および装置状態再現プログラム
JP7172864B2 (ja) * 2019-06-07 2022-11-16 オムロン株式会社 サポート装置およびサポートプログラム
WO2021005784A1 (ja) * 2019-07-11 2021-01-14 三菱電機株式会社 通信システム、通信装置及びプログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04286001A (ja) * 1991-03-15 1992-10-12 Hitachi Ltd プログラマブルコントローラのプログラミング方法及びその装置
JP2009122936A (ja) * 2007-11-14 2009-06-04 Fanuc Ltd 異常調査用表示機能を備えたシーケンスプログラムモニタ装置およびプログラマブルコントローラ
WO2014097379A1 (ja) * 2012-12-17 2014-06-26 三菱電機株式会社 プログラム解析支援装置及び制御装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3963174B2 (ja) 2003-03-14 2007-08-22 オムロン株式会社 表示・編集装置及び表示方法並びにプログラム
US9311460B2 (en) * 2011-03-15 2016-04-12 Omron Corporation Programmable controller system, tool device, tool program, storage medium, and programmable controller
KR101317581B1 (ko) * 2012-03-02 2013-10-11 엘에스산전 주식회사 피엘시 래더 프로그램의 에러 추적 방법
JP5992777B2 (ja) * 2012-09-04 2016-09-14 株式会社キーエンス プログラマブルコントローラ、プログラム作成支援装置及びプログラム
JP5932578B2 (ja) 2012-09-06 2016-06-08 三菱電機株式会社 振動抑制方法、振動抑制装置および振動抑制機能を備えた産業用機械装置
WO2014080490A1 (ja) * 2012-11-22 2014-05-30 三菱電機株式会社 プログラム作成支援装置、方法および記録媒体
WO2014091623A1 (ja) * 2012-12-14 2014-06-19 発紘電機株式会社 プログラマブルコントローラシステム、そのプログラマブル表示器、支援装置、プログラム
JP5987853B2 (ja) * 2014-02-19 2016-09-07 株式会社安川電機 ラダープログラム作成装置、コンピュータプログラム及びコンピュータ可読情報記録媒体
JP5762601B1 (ja) * 2014-06-17 2015-08-12 三菱電機株式会社 プログラム編集装置、方法、およびプログラム
CN104656543A (zh) * 2015-03-17 2015-05-27 浪潮集团有限公司 一种plc梯形图矩阵编辑显示方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04286001A (ja) * 1991-03-15 1992-10-12 Hitachi Ltd プログラマブルコントローラのプログラミング方法及びその装置
JP2009122936A (ja) * 2007-11-14 2009-06-04 Fanuc Ltd 異常調査用表示機能を備えたシーケンスプログラムモニタ装置およびプログラマブルコントローラ
WO2014097379A1 (ja) * 2012-12-17 2014-06-26 三菱電機株式会社 プログラム解析支援装置及び制御装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210286344A1 (en) * 2018-07-26 2021-09-16 Nec Corporation Plant monitoring apparatus, plant monitoring method, and computer readable recording medium
US11579596B2 (en) * 2018-07-26 2023-02-14 Nec Corporation Plant monitoring apparatus, plant monitoring method, and computer readable recording medium
JP2020024594A (ja) * 2018-08-08 2020-02-13 オムロン株式会社 サポート装置およびサポートプログラム
WO2020031903A1 (ja) * 2018-08-08 2020-02-13 オムロン株式会社 サポート装置およびサポートプログラム
JP7070223B2 (ja) 2018-08-08 2022-05-18 オムロン株式会社 サポート装置およびサポートプログラム

Also Published As

Publication number Publication date
US10838390B2 (en) 2020-11-17
JP6852519B2 (ja) 2021-03-31
EP3441833B1 (en) 2020-08-19
CN108780306A (zh) 2018-11-09
EP3441833A4 (en) 2019-07-17
EP3441833A1 (en) 2019-02-13
US20190018387A1 (en) 2019-01-17
CN108780306B (zh) 2021-05-07

Similar Documents

Publication Publication Date Title
JP6852519B2 (ja) プログラム作成支援装置、プログラム作成支援装置の制御方法、およびプログラム作成支援装置の制御プログラム
US20150220076A1 (en) System construction support tool and system
US20180011466A1 (en) Programmable logic controller, method for controlling programmable logic controller, and control program
JP2019016327A (ja) プログラマブル・ロジック・コントローラ、データ収集装置およびプログラム作成支援装置
CN104503896A (zh) 用于批设备调试和解调试的系统和方法
CN110806996A (zh) 对opc数据进行采集的系统和方法
EP3258328A1 (en) Plc control data generation device, plc control data generation method, and plc control data generation program
CN112732502A (zh) I2c信号的检测方法、检测装置、检测设备及存储介质
CN114237466A (zh) 一种巡检点配置方法及装置
CN109839910A (zh) 控制装置、控制方法以及计算机可读存储介质
CN109901830B (zh) 一种用于scada系统开发的信号配置方法与系统
US7764619B2 (en) Signal routing error reporting
CN109840201B (zh) Ui测试方法、装置、电子设备及计算机可读存储介质
WO2017175767A1 (ja) プログラム作成支援装置、プログラム作成支援装置の制御方法、およびプログラム作成支援装置の制御プログラム
US9395872B2 (en) Facilities controlling device, screen displaying method, and recording medium
JP2018136745A (ja) 制御システム、制御装置および制御プログラム
JP5996150B2 (ja) プログラマブル表示器及び作画ソフトウェア
JP2008181572A (ja) Plcシステム
CN104461603B (zh) 一种信息处理方法及电子设备
JP4379687B2 (ja) シミュレーション支援ツールおよびラダープログラムの検証システムならびにプログラム製品
CN109241594A (zh) T型拓扑结构线长检查方法、装置、设备及可读存储介质
US6815943B2 (en) Electric component test system and electric component test method
WO2024135231A1 (ja) プログラム作成支援装置、プログラム作成支援装置の制御方法、およびプログラム作成支援装置の制御プログラム
CN102607870A (zh) 面向半导体制造设备的逻辑耦合测试方法
CN101416189B (zh) 考虑拓扑结构和可视化预定值规划技术装置的方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200109

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201006

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201109

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210222

R150 Certificate of patent or registration of utility model

Ref document number: 6852519

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150