JP7379932B2 - 制御装置、ユーザプログラムの実行制御方法、およびシステムプログラム - Google Patents
制御装置、ユーザプログラムの実行制御方法、およびシステムプログラム Download PDFInfo
- Publication number
- JP7379932B2 JP7379932B2 JP2019152913A JP2019152913A JP7379932B2 JP 7379932 B2 JP7379932 B2 JP 7379932B2 JP 2019152913 A JP2019152913 A JP 2019152913A JP 2019152913 A JP2019152913 A JP 2019152913A JP 7379932 B2 JP7379932 B2 JP 7379932B2
- Authority
- JP
- Japan
- Prior art keywords
- volatile memory
- data
- instruction
- error
- read
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Program-control systems
- G05B19/02—Program-control systems electric
- G05B19/04—Program control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/048—Monitoring; Safety
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operations
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Automation & Control Theory (AREA)
- Stored Programmes (AREA)
- Programmable Controllers (AREA)
- Detection And Correction Of Errors (AREA)
- Retry When Errors Occur (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
図1を参照して、本発明が適用される場面の一例について説明する。図1は、本開示の適用例を模式的に説明するための図である。図1を参照して、本開示に係る制御装置100Xは、例えば、PLC(プログラマブルコントローラ)と称される産業用のコントローラに相当し、図示しない各種の製造設備や機械を制御する。制御装置100Xによる制御においては、センサなどを用いて必要な情報を取得し、制御装置100Xで実行されるプログラムに従って、それらの取得された情報を用いて予め定められた制御演算を実行することで、制御出力を算出する。
<A.制御装置100の構成>
図2は、制御装置100の構成を模式的に示した図である。図2においては、制御装置100の中心的な処理を行う構成の一部を示している。
図2を参照して、プロセッサ102およびメインメモリ106の機能構成について説明する。プロセッサ102は、命令実行部202と、アクセス制御部204と、レジスタ206と、アクセスインターフェイス220とを含む。
図3は、プロセッサ102が実行する処理の一例を説明するためのフローチャートである。以下では、ステップは、単に「S」と記載する。図3に示すフローチャートは、プロセッサ102がシステムプログラム112を実行することで実現される。図3に示すフローチャートは、制御装置100に電源が供給されると実行される。
(変形例1)
上記実施の形態においては、データの復元に用いるバックアップデータ160を保持するメモリは、不揮発性メモリであるフラッシュメモリ108とした。すなわち、上記実施の形態においては、フラッシュメモリ108のような不揮発性メモリに格納された電断保持用のデータを、バックアップ用のデータとして用いた。そのため、新たにバックアップ用のデータを用意する必要がなく、メモリを削減することができる。
上記実施の形態においては、命令の実行に伴ってユーザプログラム114のデータが更新されることについて言及しなかった。なお、ユーザプログラム114によっては、命令の実行に伴って、ユーザプログラム114のデータが動的に変化することもある。このような場合には、バックアップデータ160についても、実行用のデータと同様に更新されるように構成することが好ましい。
上記実施の形態においては、パリティチェックをした結果、エラーとなった場合は、単にデータを復元するに留めたが、プロセッサ102は、エラーの情報をログとして残しても良い。
上記実施の形態において、誤りの発生有無を決定する方法は、パリティチェックによる方法とした。これは、市場に流通している誤り検出機能付きの揮発性メモリは、誤りの発生有無の決定をパリティチェックにより実現していることが多いため、誤りの発生有無を決定する方法の一例としてパリティチェックによる方法を挙げた。なお、誤りの発生有無を決定する方法は、これに限られない。なお、コストの面を考慮すると、市場に一般的に流通しているパリティチェック機能付きの揮発性メモリを制御装置100に設けることが好ましい。
以上のように、上記の実施の形態および変形例は以下のような開示を含む。
制御対象を制御するための制御装置(100,100X)であって、
ユーザプログラムに含まれる命令を順次実行する命令実行部(202,202X)と、
前記ユーザプログラムを格納する揮発性メモリ(106,106X)と、
前記揮発性メモリに格納された前記ユーザプログラムと同一内容のバックアップ用のユーザプログラムを格納するバックアップメモリ(108,110X,106)と、
所定の実行順序に従って、前記ユーザプログラムに含まれる命令を前記揮発性メモリから読み出して前記命令実行部へ提供するアクセス制御部(204,204X)とを備え、
前記揮発性メモリは、誤り検出用の情報(144,144X)を付加してデータ(142)を格納するとともに、読み出し要求に応じて、指定された領域のデータ、および、当該指定された領域に対応する誤り検出用の情報に基づいて決定される当該指定された領域における誤りの発生有無、を応答するように構成されており(606,608,610)、
前記アクセス制御部は、前記揮発性メモリから命令を読み出した場合に、当該読み出した命令を格納していた領域に誤りが発生していることが前記揮発性メモリから応答されると、誤りが発生している領域のデータを前記バックアップメモリから前記揮発性メモリにロードしなおし、前記揮発性メモリから当該命令を再度読み出すように構成されている(S104,S106,S108,S108’)、制御装置。
前記揮発性メモリは、パリティチェックにより誤りの発生有無を応答するように構成されている(610)、構成1に記載の制御装置。
前記アクセス制御部は、前記命令実行部に命令を提供することを目的とした読み出しとは別に、前記揮発性メモリに格納されたデータを予め定められた順番に予め定められたタイミングで読み出し、当該読み出したデータを格納していた領域に誤りが発生していることが前記揮発性メモリから応答されると、前記バックアップメモリに格納されている当該命令を含むデータを前記バックアップメモリから前記揮発性メモリにロードしなおす(S116,S118,S120,S120’,S124)、構成1または構成2に記載の制御装置。
前記バックアップメモリは、前記バックアップ用のユーザプログラムを不揮発的に格納するメモリ(108)であって、
前記揮発性メモリに格納される前記ユーザプログラムは、前記バックアップメモリからロードされる(S102)、構成1~構成3のうちいずれか1に記載の制御装置。
前記バックアップメモリは、前記バックアップ用のユーザプログラムを揮発的に格納するメモリであって(106)、
前記アクセス制御部は、前記命令の実行に伴って前記揮発性メモリに格納されたデータの書き換えが必要な場合、前記揮発性メモリに格納されたデータおよび前記バックアップメモリに格納されたデータを書き換える(S113-1,S113-2)、構成1~構成3のうちいずれか1に記載の制御装置。
制御対象を制御するための制御装置におけるユーザプログラムの実行制御方法であって、
前記制御装置(100,100X)は、
前記ユーザプログラムを格納する揮発性メモリ(106,106X)と、
前記揮発性メモリに格納された前記ユーザプログラムと同一内容のバックアップ用のユーザプログラムを格納するバックアップメモリ(108,110X,106)とを備え、
前記揮発性メモリは、誤り検出用の情報(144,144X)を付加してデータ(142)を格納するとともに、読み出し要求に応じて、指定された領域のデータ、および、当該指定された領域に対応する誤り検出用の情報に基づいて決定される当該指定された領域における誤りの発生有無、を応答するように構成されており(606,608,610)、
所定の実行順序に従って、前記ユーザプログラムに含まれる命令を前記揮発性メモリから読み出すステップ(S104)と、
前記揮発性メモリから命令を読み出した場合に、当該読み出した命令を格納していた領域に誤りが発生していることが前記揮発性メモリから応答されると、誤りが発生している領域のデータを前記バックアップメモリから前記揮発性メモリにロードしなおし、前記揮発性メモリから当該命令を再度読み出すステップ(S104,S106,S108,S108’)と、
前記揮発性メモリから読み出した命令を実行するステップ(S112)とを備える、ユーザプログラムの実行制御方法。
制御対象を制御するための制御装置を実現するためのシステムプログラムであって、
前記制御装置(100,100X)は、
ユーザプログラムを格納する揮発性メモリ(106,106X)と、
前記揮発性メモリに格納された前記ユーザプログラムと同一内容のバックアップ用のユーザプログラムを格納するバックアップメモリ(108,110X,106)とを備え、
前記揮発性メモリは、誤り検出用の情報(144,144X)を付加してデータ(142)を格納するとともに、読み出し要求に応じて、指定された領域のデータ、および、当該指定された領域に対応する誤り検出用の情報に基づいて決定される当該指定された領域における誤りの発生有無、を応答するように構成されており(606,608,610)、
前記システムプログラムは前記制御装置のプロセッサ(102)に、
所定の実行順序に従って、前記ユーザプログラムに含まれる命令を前記揮発性メモリから読み出すステップ(S104)と、
前記揮発性メモリから命令を読み出した場合に、当該読み出した命令を格納していた領域に誤りが発生していることが前記揮発性メモリから応答されると、誤りが発生している領域のデータを前記バックアップメモリから前記揮発性メモリにロードしなおし、前記揮発性メモリから当該命令を再度読み出すステップ(S104,S106,S108,S108’)と、
前記揮発性メモリから読み出した命令を実行するステップ(S112)とを実行させる、システムプログラム。
Claims (6)
- 制御対象を制御するための制御装置であって、
ユーザプログラムに含まれる命令を順次実行する命令実行部と、
前記ユーザプログラムを格納する揮発性メモリと、
前記揮発性メモリに格納された前記ユーザプログラムと同一内容のバックアップ用のユーザプログラムを格納するバックアップメモリと、
所定の実行順序に従って、前記ユーザプログラムに含まれる命令を前記揮発性メモリから読み出して前記命令実行部へ提供するアクセス制御部とを備え、
前記揮発性メモリは、誤り検出用の情報を付加してデータを格納するとともに、読み出し要求に応じて、指定された領域のデータ、および、当該指定された領域に対応する誤り検出用の情報に基づいて決定される当該指定された領域における誤りの発生有無、を応答するように構成されており、
前記アクセス制御部は、
前記揮発性メモリから命令を読み出した場合に、当該読み出した命令を格納していた領域に誤りが発生していることが前記揮発性メモリから応答されると、誤りが発生している領域のデータを前記バックアップメモリから前記揮発性メモリにロードしなおし、前記揮発性メモリから当該命令を再度読み出し、当該読み出した命令を格納していた領域に誤りが発生していないことが前記揮発性メモリから応答されると、当該命令を前記命令実行部に提供して当該命令を実行させるとともに、当該命令の実行結果に応じて次に実行する命令を特定するように構成されており、
前記命令実行部に命令を提供することを目的とした読み出しとは別に、当該命令が実行されてから前記次に実行する命令が特定されるまでの間において所定条件が成立する度に、前記揮発性メモリに格納されたデータのうち指定された領域のデータを読み出し、当該読み出したデータを格納していた領域に誤りが発生していることが前記揮発性メモリから応答されると、前記バックアップメモリに格納されている当該命令を含むデータを前記バックアップメモリから前記揮発性メモリにロードしなおし、当該読み出したデータを格納していた領域に誤りが発生していないことが前記揮発性メモリから応答されると、前記揮発性メモリに格納されたデータが予め定められた順番で読み出されるように当該所定条件が次に成立したときに読み出す領域を指定する、一連の処理を行うように構成されている、制御装置。 - 前記揮発性メモリは、パリティチェックにより誤りの発生有無を応答するように構成されている、請求項1に記載の制御装置。
- 前記バックアップメモリは、前記バックアップ用のユーザプログラムを不揮発的に格納するメモリであって、
前記揮発性メモリに格納される前記ユーザプログラムは、前記バックアップメモリからロードされる、請求項1または請求項2に記載の制御装置。 - 前記バックアップメモリは、前記バックアップ用のユーザプログラムを揮発的に格納するメモリであって、
前記アクセス制御部は、前記命令の実行に伴って前記揮発性メモリに格納されたデータの書き換えが必要な場合、前記揮発性メモリに格納されたデータおよび前記バックアップメモリに格納されたデータを書き換える、請求項1または請求項2に記載の制御装置。 - 制御対象を制御するための制御装置におけるユーザプログラムの実行制御方法であって、
前記制御装置は、
前記ユーザプログラムを格納する揮発性メモリと、
前記揮発性メモリに格納された前記ユーザプログラムと同一内容のバックアップ用のユーザプログラムを格納するバックアップメモリとを備え、
前記揮発性メモリは、誤り検出用の情報を付加してデータを格納するとともに、読み出し要求に応じて、指定された領域のデータ、および、当該指定された領域に対応する誤り検出用の情報に基づいて決定される当該指定された領域における誤りの発生有無、を応答するように構成されており、
ユーザプログラムの実行制御方法は、
所定の実行順序に従って、前記ユーザプログラムに含まれる命令を前記揮発性メモリから読み出すステップと、
前記揮発性メモリから命令を読み出した場合に、当該読み出した命令を格納していた領域に誤りが発生していることが前記揮発性メモリから応答されると、誤りが発生している領域のデータを前記バックアップメモリから前記揮発性メモリにロードしなおし、前記揮発性メモリから当該命令を再度読み出すステップと、
当該読み出した命令を格納していた領域に誤りが発生していないことが前記揮発性メモリから応答されると、前記揮発性メモリから読み出した命令を実行するステップと、
当該命令の実行結果に応じて次に実行する命令を特定するステップと、
命令の実行を目的とした読み出しとは別に、当該命令が実行されてから前記次に実行する命令が特定されるまでの間において所定条件が成立する度に実行する、前記揮発性メモリに格納されたデータのうち指定された領域のデータを読み出し、当該読み出したデータを格納していた領域に誤りが発生していることが前記揮発性メモリから応答されると、前記バックアップメモリに格納されている当該命令を含むデータを前記バックアップメモリから前記揮発性メモリにロードしなおし、当該読み出したデータを格納していた領域に誤りが発生していないことが前記揮発性メモリから応答されると、前記揮発性メモリに格納されたデータが予め定められた順番で読み出されるように当該所定条件が次に成立したときに読み出す領域を指定するという一連のステップとを含む、を備える、ユーザプログラムの実行制御方法。 - 制御対象を制御するための制御装置を実現するためのシステムプログラムであって、
前記制御装置は、
ユーザプログラムを格納する揮発性メモリと、
前記揮発性メモリに格納された前記ユーザプログラムと同一内容のバックアップ用のユーザプログラムを格納するバックアップメモリとを備え、
前記揮発性メモリは、誤り検出用の情報を付加してデータを格納するとともに、読み出し要求に応じて、指定された領域のデータ、および、当該指定された領域に対応する誤り検出用の情報に基づいて決定される当該指定された領域における誤りの発生有無、を応答するように構成されており、
前記システムプログラムは前記制御装置のプロセッサに、
所定の実行順序に従って、前記ユーザプログラムに含まれる命令を前記揮発性メモリから読み出すステップと、
前記揮発性メモリから命令を読み出した場合に、当該読み出した命令を格納していた領域に誤りが発生していることが前記揮発性メモリから応答されると、誤りが発生している領域のデータを前記バックアップメモリから前記揮発性メモリにロードしなおし、前記揮発性メモリから当該命令を再度読み出すステップと、
当該読み出した命令を格納していた領域に誤りが発生していないことが前記揮発性メモリから応答されると、前記揮発性メモリから読み出した命令を実行するステップと、
当該命令の実行結果に応じて次に実行する命令を特定するステップと、を実行させ、
前記システムプログラムは前記プロセッサに、
命令の実行を目的とした読み出しとは別に、当該命令が実行されてから前記次に実行する命令が特定されるまでの間において所定条件が成立する度に、前記揮発性メモリに格納されたデータのうち指定された領域のデータを読み出し、当該読み出したデータを格納していた領域に誤りが発生していることが前記揮発性メモリから応答されると、前記バックアップメモリに格納されている当該命令を含むデータを前記バックアップメモリから前記揮発性メモリにロードしなおし、当該読み出したデータを格納していた領域に誤りが発生していないことが前記揮発性メモリから応答されると、前記揮発性メモリに格納されたデータが予め定められた順番で読み出されるように当該所定条件が次に成立したときに読み出す領域を指定するという一連のステップを実行させる、システムプログラム。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2019152913A JP7379932B2 (ja) | 2019-08-23 | 2019-08-23 | 制御装置、ユーザプログラムの実行制御方法、およびシステムプログラム |
| PCT/JP2020/007778 WO2021038923A1 (ja) | 2019-08-23 | 2020-02-26 | 制御装置、ユーザプログラムの実行制御方法、およびシステムプログラム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2019152913A JP7379932B2 (ja) | 2019-08-23 | 2019-08-23 | 制御装置、ユーザプログラムの実行制御方法、およびシステムプログラム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2021033623A JP2021033623A (ja) | 2021-03-01 |
| JP7379932B2 true JP7379932B2 (ja) | 2023-11-15 |
Family
ID=74675878
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2019152913A Active JP7379932B2 (ja) | 2019-08-23 | 2019-08-23 | 制御装置、ユーザプログラムの実行制御方法、およびシステムプログラム |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JP7379932B2 (ja) |
| WO (1) | WO2021038923A1 (ja) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115714908B (zh) * | 2021-08-20 | 2024-08-13 | 荣耀终端有限公司 | 工作模式的切换控制方法、电子设备及可读存储介质 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003131955A (ja) | 2001-10-19 | 2003-05-09 | Kyocera Corp | データバックアップ回路 |
| WO2012172645A1 (ja) | 2011-06-14 | 2012-12-20 | 富士通株式会社 | メモリ制御装置および制御方法 |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS63142449A (ja) * | 1986-12-04 | 1988-06-14 | Fujitsu Ltd | 制御メモリに対するパトロ−ルチエツク方式 |
| JPH02178862A (ja) * | 1988-12-29 | 1990-07-11 | Nec Corp | 情報処理装置 |
-
2019
- 2019-08-23 JP JP2019152913A patent/JP7379932B2/ja active Active
-
2020
- 2020-02-26 WO PCT/JP2020/007778 patent/WO2021038923A1/ja not_active Ceased
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003131955A (ja) | 2001-10-19 | 2003-05-09 | Kyocera Corp | データバックアップ回路 |
| WO2012172645A1 (ja) | 2011-06-14 | 2012-12-20 | 富士通株式会社 | メモリ制御装置および制御方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2021038923A1 (ja) | 2021-03-04 |
| JP2021033623A (ja) | 2021-03-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7376887B2 (en) | Method for fast ECC memory testing by software including ECC check byte | |
| JP5780174B2 (ja) | 不良ビットエラーを処理するシステムおよび方法 | |
| JP4868216B2 (ja) | ファームウェア更新回路およびファームウェア更新方法 | |
| EP2770507B1 (en) | Memory circuits, method for accessing a memory and method for repairing a memory | |
| US7299400B2 (en) | Error correction circuit | |
| JP6290303B2 (ja) | 誤り訂正能力をテストするための回路および方法 | |
| KR20130031888A (ko) | 데이터 메모리의 모니터링 방법 | |
| JP2016167669A (ja) | プログラマブル論理回路装置及びそのエラー検出方法 | |
| US10379946B2 (en) | Controller | |
| JP7379932B2 (ja) | 制御装置、ユーザプログラムの実行制御方法、およびシステムプログラム | |
| CN113961227B (zh) | 一种通用软件在线维护控制装置 | |
| CN118672822A (zh) | Fpga抗软错误的方法及装置 | |
| US20050207232A1 (en) | Access method for a NAND flash memory chip, and corresponding NAND flash memory chip | |
| JP2010181990A (ja) | データプロセッサ | |
| JP4135413B2 (ja) | メモリチェックシステムおよびメモリチェック方法、信号処理装置および信号処理装置のメモリチェック方法、ならびに、メモリチェックプログラム | |
| JP5964265B2 (ja) | 半導体集積回路装置 | |
| CN104200835B (zh) | 在数据存储器中识别供电中断和重建数据存储器的方法 | |
| US12524304B2 (en) | Electronic device, electronic system, method for operating an electronic device, and method for operating an electronic system | |
| JP4543505B2 (ja) | マイクロコンピュータの制御方法及び異常監視装置 | |
| JP7142731B2 (ja) | プログラマブルデバイス | |
| US20080270830A1 (en) | Data Processing System and Method for Operating a Data Processing System | |
| JP5935319B2 (ja) | 回路エミュレーション装置、回路エミュレーション方法及び回路エミュレーションプログラム | |
| JP2002150795A (ja) | 半導体集積回路 | |
| JPH08166891A (ja) | フォールトトレラントコンピュータシステム | |
| JPS635784B2 (ja) |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220607 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230322 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230420 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230725 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230822 |
|
| 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: 20231003 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20231016 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7379932 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |