JP7221465B1 - 制御システム、プログラマブルロジックコントローラ、可視化方法及びプログラム - Google Patents

制御システム、プログラマブルロジックコントローラ、可視化方法及びプログラム Download PDF

Info

Publication number
JP7221465B1
JP7221465B1 JP2022565638A JP2022565638A JP7221465B1 JP 7221465 B1 JP7221465 B1 JP 7221465B1 JP 2022565638 A JP2022565638 A JP 2022565638A JP 2022565638 A JP2022565638 A JP 2022565638A JP 7221465 B1 JP7221465 B1 JP 7221465B1
Authority
JP
Japan
Prior art keywords
monitor information
program
execution time
information
size
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
JP2022565638A
Other languages
English (en)
Other versions
JPWO2023243012A1 (ja
JPWO2023243012A5 (ja
Inventor
啓太 山崎
栄太郎 日置
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Application granted granted Critical
Publication of JP7221465B1 publication Critical patent/JP7221465B1/ja
Publication of JPWO2023243012A1 publication Critical patent/JPWO2023243012A1/ja
Publication of JPWO2023243012A5 publication Critical patent/JPWO2023243012A5/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

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)

Abstract

少なくとも1つのプログラムを実行するPLC(100)と、プログラムを作成するためのプログラミング支援装置(200)と、を含む制御システム(1)において、エンド処理実行時間計測部(102)は、一つのスキャンの中でプログラムが実行された後に実行されるエンド処理の実行時間を計測する。また、表示部(203)は、エンド処理の実行時間をプログラミング支援装置(200)の画面に表示する。

Description

本開示は、制御システム、プログラマブルロジックコントローラ、可視化方法及びプログラムに関する。
プログラマブルロジックコントローラ(Programmable Logic Controller:PLC)においてプログラムが実行された際のパフォーマンスの可視化を目的として、プログラムの実行時間を表示する技術が知られている。例えば、特許文献1には、PLCにおいて実行されるサブルーチンの実行時間を、プログラミングコンソールにモニタ出力する技術が開示されている。
特開平7-121212号公報
一般的に、PLCは、プログラムの実行が終了する度に、PLCの動作をチェックする処理、デバイスデータを収集するロギング処理等の処理が含まれるエンド処理を実行する。そして、PLCは、プログラム実行処理及びエンド処理を含む処理を一つのスキャンとして、スキャンを繰り返し実行する。上記の特許文献1のような技術では、エンド処理の実行時間は計測されておらず、エンド処理の実行時間が確認できないため、エンド処理にトラブルがあった場合に原因の調査が困難になるという問題がある。
本開示は、上記事情に鑑みてなされたものであり、プログラムの実行が終了する度に実行されるエンド処理の実行時間を確認することが可能な制御システム、プログラマブルロジックコントローラ、可視化方法及びプログラムを提供することを目的とする。
上記目的を達成するために、本開示に係る制御システムは、
少なくとも1つのプログラムを実行するプログラマブルロジックコントローラと、前記プログラムを作成するためのプログラミング支援装置と、を含む制御システムにおいて、
前記プログラムの実行が終了する度に実行されるエンド処理の実行時間を計測するエンド処理実行時間計測手段と、
前記エンド処理の実行時間を前記プログラミング支援装置の画面に表示する表示手段と、を備え
前記プログラマブルロジックコントローラは、
複数のプログラムを、複数のコアを含むマルチコアプロセッサにより実行し、
前記複数のコアのそれぞれにおいて実行されるプログラムの実行時間を計測するプログラム実行時間計測手段と、
前記複数のコアのそれぞれにおいて実行される前記エンド処理の実行の開始タイミングを一致させるために生じる待ち時間を算出する演算手段と、を備え、
前記エンド処理実行時間計測手段は、前記複数のコアのそれぞれにおいて実行される前記エンド処理の実行時間を計測し、
前記表示手段は、前記複数のコアのそれぞれについて、前記プログラムの実行時間と、前記待ち時間と、前記エンド処理の実行時間と、を前記画面に表示する
本開示によれば、プログラムの実行が終了する度に実行されるエンド処理の実行時間を確認することが可能な制御システム、プログラマブルロジックコントローラ、可視化方法及びプログラムを提供することができる。
実施形態に係る制御システムの機能構成を示す図 実施形態に係るPLCのハードウェア構成を示すブロック図 実施形態に係るプログラミング支援装置のハードウェア構成を示すブロック図 実施形態に係るモニタ情報が格納された記憶部の領域を説明するための図 実施形態に係る画面に表示されるモニタ情報の例を示す図 実施形態に係る画面に表示されるモニタ情報の例を示す図 実施形態に係る計測処理を示すフローチャート 実施形態に係るPLCとプログラミング支援装置との間で実行される処理を示すシーケンス図 変形例に係る画面に表示されるモニタ情報の例を示す図
(実施形態)
実施形態に係る制御システム1は、PLCに接続された、図示しないFA(Factory Automation)機器を制御するためのシステムである。制御システム1は、図1に示すように、PLC100と、プログラミング支援装置200と、を含む。PLC100は、図示しないネットワークケーブル又は無線によりプログラミング支援装置200と通信可能に接続される。
PLC100は、FA機器を制御するための装置であり、ユーザが作成したプログラムを実行する。本実施形態のPLC100は、複数のプロセッサコアを含むマルチコアプロセッサを有し、プログラムをマルチコアプロセッサにより実行する。以下、マルチコアプロセッサに含まれるプロセッサコアを、単に「コア」という。
プログラミング支援装置200は、PLC100で実行されるプログラムを作成するための装置である。プログラミング支援装置200には、プログラミングツールがインストールされている。プログラミングツールは、PLC100で実行するプログラムを作成するためのアプリケーションである。ユーザは、プログラミングツールを用いて、PLC100で実行されるプログラムを作成する。また、プログラミングツールは、プログラムが実行された際のPLC100のパフォーマンスを可視化する機能を有し、ユーザは、プログラミングツールを用いて、PLC100のパフォーマンスを確認する。PLC100のパフォーマンスを示す指標には、後述するスキャンタイムが含まれる。
PLC100は、ユーザが作成プログラムを実行した後に、エンド処理を実行する。エンド処理とは、プログラムの実行が終了する度に実行される処理であり、様々な処理が含まれる。エンド処理の内容は、プログラムの作成に伴い自動的に設定されるもの、プログラムを作成したユーザによりプログラミング支援装置200において設定されるもの等がある。エンド処理は、例えば、PLC100の動作をチェックする処理、PLCのデバイスデータを収集するロギング処理、外部機器からのデータの読み出し及び書き込み処理、ウォッチドックタイマのリセット処理等である。
複数のコアのそれぞれにおいてプログラムが実行される場合、それぞれのコアにおいて実行されるエンド処理の実行の開始タイミングを一致させる必要がある。したがって、プログラムの実行時間が一番長いコアとエンド処理の開始タイミングを合わせるため、その他のコアは、プログラムの実行時間が一番長いコアのプログラムの実行が終了するまで待機するための待機処理を実行する。なお、プログラムの実行時間が一番長いコアは、待機処理は行われない。
PLC100のプロセッサコアは、プログラムの処理と、待機処理と、エンド処理を一つのスキャンとして、スキャンを繰り返し実行する。一つのスキャンの実行に要する時間を「スキャンタイム」という。スキャンタイムは、プログラムの実行時間と、待機処理の実行時間と、エンド処理の実行時間との和により求められる。以下、この待機処理の実行時間を、「待ち時間」という。本実施形態の制御システム1は、スキャンタイム及びスキャンタイムの内訳を可視化することを可能にする。
図2に、PLC100のハードウェア構成を示す。
PLC100は、種々の処理を実行するマルチコアプロセッサ11と、マルチコアプロセッサ11の作業領域として用いられる主記憶部12と、マルチコアプロセッサ11の処理に用いられる種々のデータを記憶する補助記憶部13と、プログラミング支援装置200を含む外部の装置と通信するための第1通信部14と、FA機器と通信するための第2通信部15と、を有する。主記憶部12、補助記憶部13、第1通信部14、及び第2通信部15はいずれも、バス16を介してマルチコアプロセッサ11に接続される。
マルチコアプロセッサ11は、複数のコアを有するCPU(Central Processing Unit)である。マルチコアプロセッサ11は、補助記憶部13に記憶されるプログラムを実行することにより、PLC100の種々の機能を実現する。
主記憶部12は、RAM(Random Access Memory)を含む。主記憶部12には、補助記憶部13からプログラムがロードされる。そして、主記憶部12は、マルチコアプロセッサ11の作業領域として用いられる。
補助記憶部13は、EEPROM(Electrically Erasable Programmable Read-Only Memory)に代表される不揮発性メモリを含む。補助記憶部13は、プログラムの他に、マルチコアプロセッサ11の処理に用いられる種々のデータを記憶する。補助記憶部13は、マルチコアプロセッサ11の指示に従って、マルチコアプロセッサ11によって利用されるデータをマルチコアプロセッサ11に供給し、マルチコアプロセッサ11から供給されたデータを記憶する。
第1通信部14は、プログラミング支援装置200を含む外部の装置と通信するためのネットワークインタフェース回路を含む。第1通信部14は、外部の装置から信号を受信して、この信号により示されるデータをマルチコアプロセッサ11へ出力する。また、第1通信部14は、マルチコアプロセッサ11から出力されたデータを示す信号を外部の装置へ送信する。
第2通信部15は、PLC100が制御するFA機器と通信するためのネットワークインタフェース回路を含む。第2通信部15は、FA機器から信号を受信して、この信号により示されるデータをマルチコアプロセッサ11へ出力する。また、第2通信部15は、マルチコアプロセッサ11から出力されたデータを示す信号をFA機器へ送信する。
図3に、プログラミング支援装置200のハードウェア構成を示す。
プログラミング支援装置200は、種々の処理を実行するプロセッサ21と、プロセッサ21の作業領域として用いられる主記憶部22と、プロセッサ21の処理に用いられる種々のデータを記憶する補助記憶部23と、PLC100を含む外部の装置と通信するための通信部24と、入力された情報を取得する入力部25と、種々の情報を提示する出力部26と、を有する。主記憶部22、補助記憶部23、通信部24、入力部25及び出力部26はいずれも、バス27を介してプロセッサ21に接続される。
プロセッサ21は、CPUを含む。プロセッサ21は、補助記憶部23に記憶されるプログラムを実行することにより、プログラミング支援装置200の種々の機能を実現する。
主記憶部22は、RAMを含む。主記憶部22には、補助記憶部23からプログラムがロードされる。そして、主記憶部22は、プロセッサ21の作業領域として用いられる。
補助記憶部23は、EEPROMに代表される不揮発性メモリを含む。補助記憶部23は、プログラムの他に、プロセッサ21の処理に用いられる種々のデータを記憶する。補助記憶部23は、プロセッサ21の指示に従って、プロセッサ21によって利用されるデータをプロセッサ21に供給し、プロセッサ21から供給されたデータを記憶する。
通信部24は、PLC100を含む外部の装置と通信するためのネットワークインタフェース回路を含む。通信部24は、外部の装置から信号を受信して、この信号により示されるデータをプロセッサ21へ出力する。また、通信部24は、プロセッサ21から出力されたデータを示す信号を外部の装置へ送信する。
入力部25は、入力キー、ポインティングデバイス等の入力デバイスを含む。入力部25は、プログラミング支援装置200のユーザによって入力された情報を取得して、取得した情報をプロセッサ21に通知する。
出力部26は、LCD(Liquid Crystal Display)、スピーカ等の出力デバイスを含む。出力部26は、入力部25を構成するポインティングデバイスと一体的に形成されたタッチスクリーンを構成してもよい。出力部26は、プロセッサ21の指示に従って、種々の情報をユーザに提示する。
次に、PLC100及びプログラミング支援装置200の機能について説明する。以下では、マルチコアプロセッサ11は、“Core1”、“Core2”、“Core3”及び“Core4”の4つのコアを有し、ユーザにより作成されたプログラムを、“PRG1”、“PRG2”及び“PRG3”とし、“PRG1”及び“PRG2”は“Core1”により実行され、“PRG3”は“Core2”により実行されるものとする。また、“Core1”は、“PRG1”及び“PRG2”の実行の後に、“FUNC1”及び“FUNC2”のエンド処理を実行し、“Core2”は“PRG3”の実行の後に“FUNC3”のエンド処理を実行するものとする。
まず、図1のPLC100の機能について説明する。PLC100は、機能的には、プログラムの実行時間を計測するプログラム実行時間計測部101と、エンド処理の実行時間を計測するエンド処理実行時間計測部102と、待ち時間を算出する演算部103と、後述するモニタ情報が格納される記憶部104と、モニタ情報のサイズの情報を含むサイズ情報応答をプログラミング支援装置200に送信するサイズ情報応答部105と、モニタ情報を含むモニタ情報応答をプログラミング支援装置200に送信するモニタ情報応答部106と、を備える。
プログラム実行時間計測部101は、複数のコアのそれぞれにおいて実行されるプログラムの実行時間を計測する。プログラム実行時間計測部101は、マルチコアプロセッサ11により実現される。なお、プログラム実行時間計測部101は、プログラム実行時間計測手段の一例である。
例えば、プログラム実行時間計測部101は、“Core1”により実行される“PRG1”及び“PRG2”の実行時間を、それぞれ“3.000[ms]”及び“7.000[ms]”と計測し、“Core2”により実行される“PRG3”の実行時間を、“4.600[ms]”と計測する。
エンド処理実行時間計測部102は、複数のコアのそれぞれにおいて実行されるエンド処理の実行時間を計測する。エンド処理実行時間計測部102は、マルチコアプロセッサ11により実現される。なお、エンド処理実行時間計測部102は、エンド処理実行時間計測手段の一例である。
例えば、エンド処理実行時間計測部102は、“Core1”により実行される“FUNC1”及び“FUNC2”の実行時間を、それぞれ“5.000[ms]”及び“3.000[ms]”と計測し、“Core2”により実行される“FUNC3”の実行時間を、“8.000[ms]”と計測する。
演算部103は、複数のコアのそれぞれにおいて実行されるエンド処理の実行の開始タイミングを一致させるために生じる待ち時間を算出する。また、演算部103は、プログラムの実行時間の情報、エンド処理の実行時間の情報、及び、待ち時間の情報を、記憶部104に格納する。演算部103は、マルチコアプロセッサ11により実現される。なお、演算部103は、演算手段の一例である。
例えば、演算部103は、各コアのプログラムの実行時間を比較し、最も長いプログラムの実行時間が計測されたコアのプログラムの実行時間からその他のコアのプログラムの実行時間を減算することにより、待ち時間を算出する。この際、一つのコアにおいて複数のプログラムの実行時間が計測された場合には、それらのプログラムの実行時間の和を用いて、各コアのプログラム実行時間の比較を行う。“Core1”については、複数のプログラムの実行時間が計測されているので、演算部103は、プログラムの実行時間の和“10.000[ms](=3.000[ms]+7.000[ms])”を求め、“Core2”のプログラムの実行時間“4.600[ms]”と比較する。そして、演算部103は、“Core1”のプログラムの実行時間の和“10.000[ms]”から“4.600[ms]”を減算した“5.400[ms]”を“Core2”の待ち時間として算出する。
そして、演算部103は、“Core1”について、“PRG1”及び“PRG2”の実行時間“3.000[ms]”及び“7.000[ms]”、“FUNC1”及び“FUNC2”の実行時間“5.000[ms]”及び“3.000[ms]”、“Core2”について、“PRG3”の実行時間“4.600[ms]”、“FUNC3”の実行時間“8.000[ms]”、待ち時間“5.400[ms]”を、記憶部104に格納する。
また、演算部103は、各コアのプログラム実行時間、エンド処理実行時間及び待ち時間の統計情報を算出し、統計情報を記憶部104に格納する。統計情報とは、例えば、最大値、最小値、移動平均等である。また、演算部103は、各コアにおけるプログラムの累計実行回数を計測し、プログラムの累計実行回数の情報を記憶部104に格納する。
記憶部104には、プログラムの実行時間の情報と、エンド処理の実行時間の情報と、待ち時間の情報と、プログラムの累計実行回数の情報と、が含まれるモニタ情報が格納される。モニタ情報は、プログラミング支援装置200の画面に表示させる情報である。記憶部104は、補助記憶部13により実現される。なお、記憶部104は、記憶手段の一例である。
図4に、モニタ情報が格納された記憶部104の領域の模式図を示す。記憶部104は、モニタ情報の含まれる複数の項目の情報を格納するための領域を持っており、演算部103は、計測された実行時間、算出された待ち時間等の項目の情報と、それぞれの項目に対応する、領域に格納された情報とを比較して、モニタ情報の更新を行う。図4のモニタ情報には、複数のコアのそれぞれについて、プログラムの実行時間、プログラムの累計実行回数、待ち時間、及び、エンド処理の実行時間の情報が含まれる。また、プログラムの実行時間、プログラムの累計実行回数、及び、エンド処理の実行時間については、それぞれ、直近の値を示す現在値と、統計情報とが含まれる。
サイズ情報応答部105は、プログラミング支援装置200から送信されるサイズ情報要求に応じて、記憶部104に格納されたモニタ情報のサイズを求め、求めたサイズを示すサイズ情報が含まれるサイズ情報応答を、プログラミング支援装置200に送信する。サイズ情報応答部105は、マルチコアプロセッサ11及び第1通信部14により実現される。なお、サイズ情報応答部105は、サイズ情報応答手段の一例である。
サイズ情報要求とは、プログラミング支援装置200から送信される要求であって、モニタ情報のサイズ情報を取得するための要求である。モニタ情報のサイズ情報とは、図4に示す記憶部104の領域において、空き領域を除くモニタ情報のサイズを示す情報である。
例えば、サイズ情報応答部105は、サイズ情報要求を受信すると、図4に示す記憶部104の領域において、1行目~10行目、14行目~20行目、24行目~33行目のモニタ情報のサイズを算出し、算出したサイズを示すサイズ情報を含むサイズ情報応答を、プログラミング支援装置200に送信する。以下、求められたサイズを、“X[byte]”とする。
モニタ情報応答部106は、プログラミング支援装置200から送信されるモニタ情報要求に応じて、記憶部104に格納されたモニタ情報が含まれるモニタ情報応答を、プログラミング支援装置200に送信する。ここで、モニタ情報応答部106は、モニタ情報要求において指定されたサイズ分のモニタ情報を、モニタ情報応答に含めることにより、モニタ情報を分割してプログラミング支援装置200に送信する。モニタ情報応答部106は、マルチコアプロセッサ11及び第1通信部14により実現される。なお、モニタ情報応答部106は、モニタ情報応答手段の一例である。
モニタ情報要求とは、プログラミング支援装置200から送信される要求であって、モニタ情報を取得するための要求である。モニタ情報要求には、モニタ情報応答に含めるモニタ情報のサイズが指定されている。
例えば、モニタ情報応答部106は、“0.6X[byte]”のサイズが指定されたモニタ情報要求を受信すると、記憶部104に格納された“X[byte]”のモニタ情報のうち“0.6X[byte]”分のモニタ情報を特定する。例えば、モニタ情報応答部106は、サイズが“0.6X[byte]”分のモニタ情報を、図4に示す記憶部104の領域において1行目~10行目、14行目~20行目の情報と特定する。そして、モニタ情報応答部106は、特定した情報を含むモニタ情報応答を、プログラミング支援装置200に送信する。また、モニタ情報応答部106は、次に“0.4X[byte]”のサイズが指定されたモニタ情報要求を受信すると、記憶部104に格納されたモニタ情報のうち、プログラミング支援装置200に未送信の情報をモニタ情報応答に含めて送信する。すなわち、モニタ情報応答部106は、図4に示す記憶部104の領域において24行目~33行目の情報が含まれるモニタ情報応答をプログラミング支援装置200に送信する。
次に、図1のプログラミング支援装置200の機能について説明する。プログラミング支援装置200は、機能的には、モニタ情報のサイズ情報を取得するサイズ情報取得部201と、モニタ情報を取得するモニタ情報取得部202と、モニタ情報を画面に表示する表示部203と、を備える。
図5に、プログラミング支援装置200がモニタ情報を取得した後に、画面にモニタ情報を表示した様子を示す。ウィンドウ300は、プログラミング支援装置200にインストールされたプログラミングツールの機能により画面に表示される。
図5のウィンドウ300には、モニタ情報の表示を開始するためのボタン301と、モニタ情報の表示を終了するためのボタン302と、各コアにおけるスキャンタイムの内訳を示すための棒グラフ303と、各コアにおけるスキャンタイムの値を示したテーブル304と、テーブル309又はテーブル310において現在値を表示させるためのラジオボタン305と、テーブル309又はテーブル310において最大値を表示させるためのラジオボタン306と、プログラムの実行時間のテーブル309を表示させるためのボタン307と、エンド処理の実行時間のテーブル310を表示させるためのボタン308と、プログラムの実行時間のテーブル309と、が含まれる。図5のウィンドウ300において、ボタン308が選択されると、図6に示すように、プログラムの実行時間のテーブル309に代わり、エンド処理の実行時間のテーブル310が表示される。
棒グラフ303は、全体のスキャンタイムに対する、プログラム実行時間、待ち時間、エンド処理の実行時間の割合を示している。テーブル304は、各コアにおける、プログラム実行時間、待ち時間、エンド処理の実行時間及びスキャンタイムを示している。図5のプログラムの実行時間のテーブル309は、各コアで実行されたプログラム毎の実行時間及び累計実行回数を示している。また、図6のエンド処理の実行時間のテーブル310は、各コアで実行されたエンド処理毎の実行時間、及び、各コアにおけるエンド処理の合計実行時間を示している。
サイズ情報取得部201は、画面に表示するモニタ情報のサイズ情報を取得するためのサイズ情報要求を、PLC100に送信する。サイズ情報取得部201は、プロセッサ21、通信部24及び入力部25により実現される。なお、サイズ情報取得部201は、サイズ情報取得手段の一例である。
例えば、ユーザが、ボタン301を選択すると、サイズ情報取得部201は、ウィンドウ300に表示すべきモニタ情報のサイズ情報を取得するためのサイズ情報要求を、PLC100に送信する。そして、サイズ情報取得部201は、サイズ情報応答部105から送信されたサイズ情報を含むサイズ情報応答を受信する。
モニタ情報取得部202は、サイズ情報応答部105から送信されたサイズ情報応答に含まれるサイズ情報が示すサイズと、一つのモニタ情報応答に含めることができる情報のサイズと、を比較して、PLC100に送信するモニタ情報要求の送信回数を求める。そして、モニタ情報取得部202は、画面に表示するモニタ情報を取得するためのモニタ情報要求であって、モニタ情報応答に含めるモニタ情報のサイズを指定したモニタ情報要求を、送信回数だけ送信する。モニタ情報取得部202は、プロセッサ21及び通信部24により実現される。なお、モニタ情報取得部202は、モニタ情報取得手段の一例である。
一つのモニタ情報応答に含めることができる情報のサイズとは、例えば、プログラミング支援装置200とPLC100との通信において、一つのパケットに含めることができる情報のサイズである。以下、一つのモニタ情報応答に含めることができる情報のサイズを“0.6X[byte]”とする。モニタ情報取得部202は、サイズ情報応答に含まれるサイズ情報が示すサイズが“X[byte]”の場合、画面に表示するモニタ情報を取得するためには、2パケットが必要と判断し、モニタ情報要求の送信回数を2回と求める。モニタ情報取得部202は、2回のモニタ情報要求をPLC100に送信して、モニタ情報を取得する。
モニタ情報取得部202は、まず1回目の“0.6X[byte]”のサイズを指定したモニタ情報要求を、PLC100に送信する。モニタ情報取得部202は、“0.6X[byte]”分のモニタ情報が含まれたモニタ情報応答を、モニタ情報応答部106より受信する。1回目のモニタ情報要求に対するモニタ情報応答には、図4に示す記憶部104の領域において1行目~10行目、14行目~20行目の情報が含まれる。モニタ情報取得部202は、1回目のモニタ情報要求に対するモニタ情報応答を受信すると、“0.4X[byte]”のサイズを指定した2回目のモニタ情報要求を、PLC100に送信する。そして、モニタ情報取得部202は、残りのモニタ情報が含まれたモニタ情報応答を、モニタ情報応答部106より受信する。2回目のモニタ情報要求に対するモニタ情報応答には、図4に示す記憶部104の領域において24行目~33行目の情報が含まれる。このようにして、モニタ情報取得部202は、図4に示す記憶部104の領域の1行目~10行目、14行目~20行目、24行目~33行目のモニタ情報を取得する。
表示部203は、複数のコアのそれぞれについて、プログラムの実行時間と、待ち時間と、エンド処理の実行時間と、をプログラミング支援装置200の画面に表示する。表示部203は、プロセッサ21及び出力部26により実現される。なお、表示部203は、表示手段の一例である。
例えば、表示部203は、モニタ情報取得部202により取得されたモニタ情報に基づいて、図5のウィンドウ300に示すように、プログラムの実行時間、待ち時間、エンド処理の実行時間等を表示する。
次に、本実施形態に係るスキャンタイムの可視化方法について、図7及び図8を用いて説明する。
図7は、本実施形態に係るPLC100が実行する計測処理を示すフローチャートである。図7の計測処理は、例えば、ユーザからプログラムの実行の操作を受け付けると実行される処理である。
プログラム実行時間計測部101は、複数のコアのそれぞれにおいて実行されるプログラムの実行時間を計測する(ステップS101)。
例えば、プログラム実行時間計測部101は、“Core1”により実行される“PRG1”及び“PRG2”の実行時間と、“Core2”により実行される“PRG3”の実行時間を計測する。
プログラム実行時間計測部101は、各コアのプログラムの実行が終了したか否かを判断する(ステップS102)。プログラム実行時間計測部101が、各コアのプログラムの実行が終了したと判断すると(ステップS102;YES)、エンド処理実行時間計測部102は、複数のコアのそれぞれにおいて実行されるエンド処理の実行時間を計測する(ステップS103)。一方、プログラム実行時間計測部101は、各コアのプログラムの実行が終了していないと判断すると(ステップS102;NO)、そのまま待機する。
例えば、“Core1”により“PRG1”及び“PRG2”の実行が終了し、“Core2”により“PRG3”の実行が終了したとすると、エンド処理実行時間計測部102は、“Core1”により実行される“FUNC1”及び“FUNC2”の実行時間、“Core2”により実行される“FUNC3”の実行時間を計測する。一方、“Core1”又は“Core2”によるプログラムの実行が終了していない場合は、そのまま待機する。
エンド処理実行時間計測部102は、各コアのエンド処理の実行が終了したか否かを判断する(ステップS104)。エンド処理実行時間計測部102は、各コアのエンド処理の実行が終了したと判断すると(ステップS104;YES)、演算部103は、各コアについて待ち時間を算出する(ステップS105)。一方、エンド処理実行時間計測部102は、各コアのエンド処理の実行が終了していないと判断すると(ステップS104;NO)、そのまま待機する。
例えば、“Core1”により“FUNC1”及び“FUNC2”の実行が終了し、“Core2”により“FUNC3”の実行が終了したとすると、演算部103は、“Core2”の待ち時間を“5.400[ms]”と算出する。一方、“Core1”又は“Core2”によるエンド処理の実行が終了していない場合は、そのまま待機する。
演算部103は、プログラムの実行時間の情報、エンド処理の実行時間の情報、及び、待ち時間の情報を、記憶部104に格納する(ステップS106)。
例えば、演算部103は、 “Core1”について、“PRG1”及び“PRG2”の実行時間“3.000[ms]”及び“7.000[ms]”、“FUNC1”及び“FUNC2”の実行時間“5.000[ms]”及び“3.000[ms]”、“Core2”について、“PRG3”の実行時間“4.600[ms]”、“FUNC3”の実行時間“8.000[ms]”、待ち時間“5.400[ms]”を、記憶部104に格納する。
図8は、本実施形態に係るPLC100とプログラミング支援装置200との間で実行される処理を示すシーケンス図である。
プログラミング支援装置200のサイズ情報取得部201は、画面に表示するモニタ情報のサイズ情報を取得するためのサイズ情報要求を、PLC100に送信する(ステップS201)。
例えば、ユーザが、ボタン301を選択すると、サイズ情報取得部201は、ウィンドウ300に表示するモニタ情報のサイズ情報を取得するためのサイズ情報要求を、PLC100に送信する。
PLC100のサイズ情報応答部105は、サイズ情報取得部201からサイズ情報要求を受信すると、記憶部104に格納されたモニタ情報のサイズを算出する(ステップS202)。そして、サイズ情報応答部105は、算出されたサイズを示すサイズ情報が含まれるサイズ情報応答を、プログラミング支援装置200に送信する(ステップS203)。
例えば、サイズ情報応答部105は、サイズ情報要求を受信すると、図4に示す記憶部104の領域において、1行目~10行目、14行目~20行目、24行目~33行目のモニタ情報のサイズを“X[byte]”と算出する。そして、サイズ情報応答部105は、算出したサイズを示すサイズ情報を含むサイズ情報応答を、プログラミング支援装置200に送信する。
プログラミング支援装置200のモニタ情報取得部202は、サイズ情報応答部105からサイズ情報応答を受信すると、サイズ情報応答に含まれるサイズ情報が示すサイズと、一つのモニタ情報応答に含めることができる情報のサイズと、を比較して、PLC100に送信するモニタ情報要求の送信回数n(nは1以上の自然数)を求める(ステップS204)。そして、モニタ情報取得部202は、画面に表示するモニタ情報を取得するためのモニタ情報要求であって、モニタ情報応答に含めるモニタ情報のサイズを指定したモニタ情報要求を、PLC100に送信する(ステップS205)。
PLC100のモニタ情報応答部106は、モニタ情報取得部202からモニタ情報要求を受信すると、指定されたサイズ分のモニタ情報が含まれるモニタ情報応答を、プログラミング支援装置200に送信する(ステップS206)。ここで、ステップS205及びステップS206は、送信回数nだけ繰り返す。
例えば、一つのパケットに含めることができる情報のサイズを“0.6X[byte]”、サイズ情報応答に含まれるサイズ情報が示すサイズが“X[byte]”の場合、モニタ情報取得部202は、画面に表示するモニタ情報を取得するために、モニタ情報要求の送信回数を2回と求める。そして、モニタ情報取得部202は、“0.6X[byte]”のサイズを指定した1回目のモニタ情報要求をPLC100に送信する。モニタ情報応答部106は、1回目のモニタ情報要求を受信すると、1回目のモニタ情報要求において指定されたサイズ分のモニタ情報を含めた1回目のモニタ情報応答を、プログラミング支援装置200に送信する。モニタ情報取得部202は、1回目のモニタ情報応答を受信すると、次に、“0.4X[byte]”のサイズを指定した2回目のモニタ情報要求をPLC100に送信する。そして、モニタ情報応答部106は、2回目のモニタ情報要求を受信すると、2回目のモニタ情報要求において指定されたサイズ分のモニタ情報を含めた2回目のモニタ情報応答を、プログラミング支援装置200に送信する。そして、モニタ情報取得部202は、2回目のモニタ情報応答を受信する。
プログラミング支援装置200の表示部203は、モニタ情報取得部202がn回のモニタ情報応答を受信すると、受信したモニタ情報応答に含まれるモニタ情報を画面に表示する(ステップS207)。
例えば、表示部203は、モニタ情報取得部202により取得されたモニタ情報に基づいて、図5のウィンドウ300に示すように、プログラムの実行時間、待ち時間、エンド処理の実行時間等を表示する。
本実施形態によれば、プログラムの実行が終了する度に実行されるエンド処理の実行時間を可視化することができる。これにより、エンド処理にトラブルがあった場合に原因の調査を容易に行うことができる。
また、本実施形態によれば、コア毎のプログラムの実行時間、待ち時間、エンド処理の実行時間を計測し、それらの時間を可視化することができる。これにより、ユーザは、プログラム及びエンド処理の各コアへの割り当てを最適化し、容易に負荷分散することができる。また、ユーザは、スキャンタイムの短縮の検討、及び、ユーザが作成したプログラム実行時のトラブルの原因の調査を容易に行うことができる。
また、本実施形態によれば、プログラミング支援装置は、画面に表示するモニタ情報のサイズを指定し、指定されたサイズ分のモニタ情報が、PLCから送信される。これにより、プログラミング支援装置とPLCとの通信において、画面に表示するモニタ情報以外の不要な情報の送受信が行われないので、通信負荷を最小限に抑えることができる。
また、制御システムの稼働中にプログラムを書き込むことにより、PLCで実行するプログラムの数が変化すると、PLCから取得するモニタ情報のサイズが1パケットの最大サイズに収まらない事態が発生することがある。本実施形態によれば、プログラミング支援装置は、モニタ情報の取得前に、モニタ情報のサイズ情報を把握し、1パケットにモニタ情報が収まらない場合は、複数のパケットによりモニタ情報を取得する。これにより、実行するプログラム数が変化する場合に、モニタ情報の取得を柔軟に行うことができる。
(変形例)
以上、本開示の実施形態を説明したが、本開示を実施するにあたっては、種々の形態による変形及び応用が可能である。
上記実施形態において、プログラム実行時間計測部101は、プログラムに含まれる割込みプログラムの実行時間をさらに計測してもよい。そして、表示部203は、割込みプログラムの実行時間を画面に表示してもよい。この場合、記憶部104には、割込みプログラムの実行時間の情報、及び、割込みプログラム実行回数の情報がさらに記憶され、モニタ情報には、割込みプログラムの実行時間の情報、及び、割込みプログラム実行回数の情報が含まれる。
例えば、“Core2”により実行される“PRG3”には、“割込みプログラムA”が含まれ、“PRG3”において2回実行されるものとする。この場合、プログラム実行時間計測部101は、“割込みプログラムA”の実行時間を計測する。そして、表示部203は、図9のテーブル309に示すように、“割込みプログラムA”の実行時間“1.000[ms]”及び累計実行回数“2[回]”の情報を表示する。
このような構成により、ユーザが割込みプログラムを設計する際に、割込みプログラムがどの程度スキャンタイムに影響を与えるかを確認することができるため、割込みプログラムの設計を容易に行うことができる。また、割込みプログラムの設計が原因でスキャンタイムが増大した場合に、ユーザは、原因の特定を容易に行うことができる。
また、上記実施形態において、モニタ情報は、プログラミング支援装置200の画面に表示されるものとしたが、これに限らない。モニタ情報は、PLC100に接続された他の装置の画面に表示されてもよいし、PLC100の画面に表示してもよい。
また、上記実施形態に係るPLC100及びプログラミング支援装置200の動作を規定する動作プログラムを既存のパーソナルコンピュータ又は情報端末装置に適用することで、当該パーソナルコンピュータ又は情報端末装置を実施形態に係るPLC100及びプログラミング支援装置200として機能させることも可能である。
また、このようなプログラムの配布方法は任意であり、例えば、CD-ROM(Compact Disk Read-Only Memory)、DVD(Digital Versatile Disk)、メモリカード等のコンピュータ読み取り可能な記録媒体に格納して配布してもよいし、インターネットのような通信ネットワークを介して配布してもよい。
本開示は、本開示の広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本開示を説明するためのものであり、本開示の範囲を限定するものではない。つまり、本開示の範囲は、実施形態ではなく、請求の範囲によって示される。そして、請求の範囲内及びそれと同等の開示の意義の範囲内で施される様々な変形が、本開示の範囲内とみなされる。
本開示によれば、プログラムの実行が終了する度に実行されるエンド処理の実行時間を確認することが可能な制御システム、プログラマブルロジックコントローラ、可視化方法及びプログラムを提供することができる。
1 制御システム、11 マルチコアプロセッサ、12,22 主記憶部、13,23 補助記憶部、14 第1通信部、15 第2通信部、16,27 バス、21 プロセッサ、24 通信部、25 入力部、26 出力部、100 PLC、101 プログラム実行時間計測部、102 エンド処理実行時間計測部、103 演算部、104 記憶部、105 サイズ情報応答部、106 モニタ情報応答部、200 プログラミング支援装置、201 サイズ情報取得部、202 モニタ情報取得部、203 表示部、300 ウィンドウ、301,302,307,308 ボタン、303 棒グラフ、304,309,310 テーブル、305,306 ラジオボタン。

Claims (7)

  1. 少なくとも1つのプログラムを実行するプログラマブルロジックコントローラと、前記プログラムを作成するためのプログラミング支援装置と、を含む制御システムにおいて、
    前記プログラムの実行が終了する度に実行されるエンド処理の実行時間を計測するエンド処理実行時間計測手段と、
    前記エンド処理の実行時間を前記プログラミング支援装置の画面に表示する表示手段と、を備え
    前記プログラマブルロジックコントローラは、
    複数のプログラムを、複数のコアを含むマルチコアプロセッサにより実行し、
    前記複数のコアのそれぞれにおいて実行されるプログラムの実行時間を計測するプログラム実行時間計測手段と、
    前記複数のコアのそれぞれにおいて実行される前記エンド処理の実行の開始タイミングを一致させるために生じる待ち時間を算出する演算手段と、を備え、
    前記エンド処理実行時間計測手段は、前記複数のコアのそれぞれにおいて実行される前記エンド処理の実行時間を計測し、
    前記表示手段は、前記複数のコアのそれぞれについて、前記プログラムの実行時間と、前記待ち時間と、前記エンド処理の実行時間と、を前記画面に表示する、
    制御システム。
  2. 前記エンド処理の内容は、前記プログラムを作成したユーザにより、前記プログラミング支援装置において設定される、
    請求項1に記載の制御システム。
  3. 前記プログラム実行時間計測手段は、前記プログラムに含まれる割込みプログラムの実行時間をさらに計測し、
    前記表示手段は、前記割込みプログラムの実行時間を前記画面に表示する、
    請求項に記載の制御システム。
  4. 前記プログラマブルロジックコントローラは、
    前記プログラムの実行時間の情報と、前記エンド処理の実行時間の情報と、前記待ち時間の情報と、が含まれるモニタ情報を、記憶手段に格納し、
    前記プログラミング支援装置は、
    前記画面に表示するモニタ情報のサイズを示すサイズ情報を取得するためのサイズ情報要求を、前記プログラマブルロジックコントローラに送信するサイズ情報取得手段と、
    前記画面に表示するモニタ情報を取得するためのモニタ情報要求を、前記プログラマブルロジックコントローラに送信するモニタ情報取得手段と、を備え、
    前記プログラマブルロジックコントローラは、
    前記サイズ情報要求に応じて、前記記憶手段に格納されたモニタ情報のサイズを求め、求めたサイズを示すサイズ情報が含まれるサイズ情報応答を、前記プログラミング支援装置に送信するサイズ情報応答手段と、
    前記モニタ情報要求に応じて、前記記憶手段に格納されたモニタ情報が含まれるモニタ情報応答を、前記プログラミング支援装置に送信するモニタ情報応答手段と、を備え、
    前記モニタ情報取得手段は、前記サイズ情報応答手段から送信されたサイズ情報応答に含まれるサイズ情報が示すサイズと、一つのモニタ情報応答に含めることができる情報のサイズと、を比較して、前記プログラマブルロジックコントローラに送信するモニタ情報要求の送信回数を求め、前記モニタ情報応答に含めるモニタ情報のサイズを指定した前記モニタ情報要求を、前記送信回数だけ送信し、
    前記モニタ情報応答手段は、前記モニタ情報要求において指定されたサイズ分のモニタ情報を前記モニタ情報応答に含めることにより、前記モニタ情報を分割して前記プログラミング支援装置に送信し、
    前記表示手段は、前記モニタ情報応答に含まれるモニタ情報を前記画面に表示する、
    請求項1から3のいずれか1項に記載の制御システム。
  5. 複数のプログラムを、複数のコアを含むマルチコアプロセッサにより実行するプログラマブルロジックコントローラであって、
    前記複数のコアのそれぞれにおいて実行されるプログラムの実行時間を計測するプログラム実行時間計測手段と、
    前記複数のコアのそれぞれにおいて実行される、前記プログラムの実行が終了する度に実行されるエンド処理の実行時間を計測するエンド処理実行時間計測手段と、
    前記複数のコアのそれぞれにおいて実行される前記エンド処理の実行の開始タイミングを一致させるために生じる待ち時間を算出する演算手段と、
    前記プログラムの実行時間の情報と、前記エンド処理の実行時間の情報と、前記待ち時間の情報と、が含まれるモニタ情報を格納する記憶手段と、
    画面に表示するモニタ情報を取得するためのモニタ情報要求に応じて、前記記憶手段に格納されたモニタ情報が含まれるモニタ情報応答を送信するモニタ情報応答手段と、を備える、
    プログラマブルロジックコントローラ。
  6. 少なくとも1つのプログラムを実行するプログラマブルロジックコントローラと、前記プログラムを作成するためのプログラミング支援装置と、を含む制御システムにおいて実行される可視化方法であって、
    前記プログラマブルロジックコントローラは、
    複数のプログラムを、複数のコアを含むマルチコアプロセッサにより実行し、
    プログラム実行時間計測手段は、前記複数のコアのそれぞれにおいて実行されるプログラムの実行時間を計測し、
    演算手段は、前記複数のコアのそれぞれにおいて実行される、前記プログラムの実行が終了する度に実行されるエンド処理の実行の開始タイミングを一致させるために生じる待ち時間を算出し、
    エンド処理実行時間計測手段が、前記複数のコアのそれぞれにおいて実行される前記エンド処理の実行時間を計測し、
    表示手段が、前記複数のコアのそれぞれについて、前記プログラムの実行時間と、前記待ち時間と、前記エンド処理の実行時間と、を前記プログラミング支援装置の画面に表示する、
    可視化方法。
  7. 複数のプログラムを、複数のコアを含むマルチコアプロセッサにより実行するコンピュータを、
    前記複数のコアのそれぞれにおいて実行されるプログラムの実行時間を計測するプログラム実行時間計測手段、
    前記複数のコアのそれぞれにおいて実行される、前記プログラムの実行が終了する度に実行されるエンド処理の実行時間を計測するエンド処理実行時間計測手段、
    前記複数のコアのそれぞれにおいて実行される前記エンド処理の実行の開始タイミングを一致させるために生じる待ち時間を算出する演算手段、
    前記プログラムの実行時間の情報と、前記エンド処理の実行時間の情報と、前記待ち時間の情報と、が含まれるモニタ情報を格納する記憶手段、
    画面に表示するモニタ情報を取得するためのモニタ情報要求に応じて、前記記憶手段に格納されたモニタ情報が含まれるモニタ情報応答を送信するモニタ情報応答手段、
    として機能させるプログラム。
JP2022565638A 2022-06-15 2022-06-15 制御システム、プログラマブルロジックコントローラ、可視化方法及びプログラム Active JP7221465B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/024002 WO2023243012A1 (ja) 2022-06-15 2022-06-15 制御システム、プログラマブルロジックコントローラ、可視化方法及びプログラム

Publications (3)

Publication Number Publication Date
JP7221465B1 true JP7221465B1 (ja) 2023-02-13
JPWO2023243012A1 JPWO2023243012A1 (ja) 2023-12-21
JPWO2023243012A5 JPWO2023243012A5 (ja) 2024-05-28

Family

ID=85197950

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022565638A Active JP7221465B1 (ja) 2022-06-15 2022-06-15 制御システム、プログラマブルロジックコントローラ、可視化方法及びプログラム

Country Status (2)

Country Link
JP (1) JP7221465B1 (ja)
WO (1) WO2023243012A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08123514A (ja) * 1994-10-24 1996-05-17 Mitsubishi Electric Corp プログラマブルコントローラ
JP2016110458A (ja) * 2014-12-08 2016-06-20 株式会社キーエンス プログラマブル・ロジック・コントローラ、基本ユニット、制御方法およびプログラム
US20190033814A1 (en) * 2016-04-22 2019-01-31 Beckhoff Automation Gmbh Real-time environment and programmable logic controller

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08123514A (ja) * 1994-10-24 1996-05-17 Mitsubishi Electric Corp プログラマブルコントローラ
JP2016110458A (ja) * 2014-12-08 2016-06-20 株式会社キーエンス プログラマブル・ロジック・コントローラ、基本ユニット、制御方法およびプログラム
US20190033814A1 (en) * 2016-04-22 2019-01-31 Beckhoff Automation Gmbh Real-time environment and programmable logic controller

Also Published As

Publication number Publication date
JPWO2023243012A1 (ja) 2023-12-21
WO2023243012A1 (ja) 2023-12-21

Similar Documents

Publication Publication Date Title
US6606658B1 (en) Apparatus and method for server resource usage display by comparison of resource benchmarks to determine available performance
JP5980335B2 (ja) 仮想計算機システム、管理計算機及び仮想計算機管理方法
EP2787442B1 (en) Controller, information processing apparatus, and program
CN109388604B (zh) 一种基于PCIe的热插拔控制方法、装置及存储介质
CN109144697B (zh) 一种任务调度方法、装置、电子设备及存储介质
US11061560B2 (en) Non-volatile recording medium, information processing method, and electronic apparatus
US11487258B2 (en) Controller and control management system
JP2016110460A (ja) プログラマブルコントローラ、プログラマブルコントローラの制御方法およびプログラム
US8544009B2 (en) Method, apparatus, and product for scheduling of distributed processing based on average execution time and communication time
JP7221465B1 (ja) 制御システム、プログラマブルロジックコントローラ、可視化方法及びプログラム
JP2010146260A (ja) 再現処理方法、計算機システムおよびプログラム
US7739083B2 (en) Program and/or method for calculating tuning parameters for numerical computation library
US10819798B2 (en) On-site system
KR101394225B1 (ko) 다중 언어로 개발된 어플리케이션을 위한 프로파일링 수행 시스템 및 이를 이용한 프로파일링 방법
JP5045576B2 (ja) マルチプロセッサシステム及びプログラム実行方法
US20170206290A1 (en) Simulation system and simulation method
JP5678729B2 (ja) 情報処理装置、作業重視度算出方法、および作業重視度算出プログラム
WO2019176286A1 (ja) 制御装置、制御方法、および、制御プログラム
CN112860529A (zh) 通用分析装置与方法
WO2012111167A1 (ja) トレース情報取得方法、コンピュータシステム及びプログラム
JP6151946B2 (ja) 情報処理システム、情報処理装置およびそれらの制御方法
KR20120045322A (ko) 클라우드 컴퓨팅 기반의 스프레드 시트 처리 시스템 및 방법
JP6750299B2 (ja) 情報処理システム
CN112488476A (zh) 一种任务全生命周期管理方法、装置及电子设备
JP2019086947A (ja) 調査資料採取プログラム、調査資料採取装置及び調査資料採取方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221026

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221026

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20221026

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230201

R150 Certificate of patent or registration of utility model

Ref document number: 7221465

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150