JP5667948B2 - プログラム検査装置 - Google Patents
プログラム検査装置 Download PDFInfo
- Publication number
- JP5667948B2 JP5667948B2 JP2011193756A JP2011193756A JP5667948B2 JP 5667948 B2 JP5667948 B2 JP 5667948B2 JP 2011193756 A JP2011193756 A JP 2011193756A JP 2011193756 A JP2011193756 A JP 2011193756A JP 5667948 B2 JP5667948 B2 JP 5667948B2
- Authority
- JP
- Japan
- Prior art keywords
- variable
- program
- input
- size
- output
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Stored Programmes (AREA)
- Programmable Controllers (AREA)
- Debugging And Monitoring (AREA)
Description
・誤って変数領域の範囲を超えるような初期化を実施している。
・無限ループに陥るようなプログラムを作っている。
・データ型の間違いで、データの精度が欠落するようなプログラムを作っている。
・成立することのない条件を定義している。
等があった。
図1は、本実施形態のプログラム検査装置が搭載されたプラント制御システムの一構成例を概略的に示す図である。
図14に示す回路は、入力変数V1と32768とを比較し、変数V1が32768以上か否か判断する比較器のファンクションブロックを含み、ファンクションブロックの出力が真である場合に変数V1をゼロとするプログラムである。図14に示す回路では、例えば、INT型の入力変数V1に対して、32768以上という絶対に成立しえない条件が設定されている。
Claims (9)
- IEC 61131-3に準拠した命令語を用いるプログラムのオブジェクトファイルを取得し、機械語に基づいてステップ順にスタック操作を模擬するシミュレーションを行い、前記シミュレーションの過程で得られる変数、あるいは定数を用いて、プログラムの動作不備を引き起こす可能性のある箇所および要因を検出する検出部と、
前記検出部で検出された箇所および要因を表示する表示処理部と、を備え、
前記検出部は、前記シミュレーションの過程で得られる変数、あるいは、定数を用いて、変数の領域外アクセスの箇所を検出する第1機能部と、
シミュレーションの課程で得られる変数あるいは定数を用いて、無限ループの可能性がある箇所を検出する第2機能部と、
シミュレーションの課程で得られる変数あるいは定数を用いて、データの精度が欠落する可能性がある箇所を検出する第3機能部と、
シミュレーションの課程で得られる変数あるいは定数を用いて、条件が成立しない可能性のある箇所を検出する第4機能部と、
の少なくとも1つを含むことを特徴とするプログラム検査装置。 - 前記表示処理部は、前記検出部で検出された箇所および要因の表示においてユーザが所定の前記箇所および要因を選択した場合に、前記箇所および要因に対応するプログラムソースの表示に切替えることを特徴とする請求項1記載のプログラム検査装置。
- 前記第1機能部は、第1入力から第1出力へ、第2入力のサイズ分を移動させる移動命令を実行するファンクションブロックについて、前記シミュレーションにより前記第1出力で指定した変数のサイズと、前記第2入力のサイズとを取得し、前記第1出力で指定した変数のサイズと、前記第2入力のサイズとを比較して、前記第1入力および前記第1出力で指定した変数のサイズよりも、前記第2入力のサイズが大きい場合、本来の変数領域を超えて、他の変数の領域を書き換える箇所として検出することを特徴とする請求項1又は請求項2記載のプログラム検査装置。
- 前記第1機能部は、第3入力で指定した値を第2出力の変数領域へ、第4入力のサイズ分書き換える初期化命令を実行するファンクションブロックについて、前記シミュレーションにより前記第4入力のサイズと前記第2出力で指定した変数のサイズとを取得し、前記第4入力のサイズと前記第2出力で指定した変数のサイズとを比較して、前記第2出力で指定した変数のサイズよりも前記第4入力のサイズが大きい場合、本来の変数領域を超えて他の変数の領域を書き換える可能性がある箇所として検出することを特徴とする請求項1乃至請求項3のいずれか1項記載のプログラム検査装置。
- 前記第1機能部は、前記シミュレーションにより、インデックスのサイズと、インデックスの値が入力される変数のデータ型とを比較して、前記インデックスのサイズが前記変数のデータ型よりも大きい場合に、本来の変数領域を超えて他の変数の領域を書き換える可能性がある箇所として検出することを特徴とする請求項1乃至請求項4のいずれか1項記載のプログラム検査装置。
- 前記プログラムは比較器のファンクションブロックを有するWhile文を含み、
前記第2機能部は、前記比較器のファンクションブロックに入力される変数のデータ型を取得して前記プログラムのループ処理における最大ループ数が分かるかどうか判断し、前記最大ループ数が分かる場合、シミュレーションを実行して前記ループ処理のループ数が前記最大ループ数を超えた場合に無限ループの可能性がある箇所として検出することを特徴とする請求項1乃至請求項5のいずれか1項記載のプログラム検査装置。 - 前記プログラムは比較器のファンクションブロックを有するWhile文を含み、
前記第2機能部は、前記比較器のファンクションブロックに入力される変数のデータ型を取得して前記プログラムのループ処理における最大ループ数が分かるかどうか判断し、前記最大ループ数が分からない場合に、前記ループ処理に用いられるインデックスがあるかどうか判断し、前記インデックスがある場合には前記インデックスが所定回数以上同じ値であるときに無限ループの可能性がある箇所として検出することを特徴とする請求項1乃至請求項6のいずれか1項記載のプログラム検査装置。 - 前記第3機能部は、前記プログラムにおいて、入力変数をデータ型の異なる出力変数へ変換する型変換命令を実行するファンクションブロックについて、前記シミュレーションにより前記入力変数が前記出力変数のデータ型の範囲内であるか否か判断し、前記入力変数の値が前記出力変数のデータ型の範囲であると確認できなかった場合、さらに、前記入力変数に前記出力変数のデータ型の範囲外の値があるか否か判断し、前記入力変数の値が、前記出力変数のデータ型の範囲外の値となることがあると確認できた場合、データの精度が欠落する可能性のある箇所として検出することを特徴とする請求項1乃至7のいずれか1項記載のプログラム検査装置。
- 前記プログラムは、第1変数と第2変数あるいは定数とが入力される比較器のファンクションブロックを有するif文を含み、
第4機能部は、前記第1変数のデータ型を取得し、前記第1変数と比較される第2変数あるいは定数とを比較し、前記第2変数あるいは定数が前記第1変数のデータ型の範囲に含まれない場合、条件が成立し得ない可能性のある箇所として検出することを特徴とする請求項1乃至請求項8のいずれか1項記載のプログラム検査装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011193756A JP5667948B2 (ja) | 2011-09-06 | 2011-09-06 | プログラム検査装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011193756A JP5667948B2 (ja) | 2011-09-06 | 2011-09-06 | プログラム検査装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013054650A JP2013054650A (ja) | 2013-03-21 |
JP5667948B2 true JP5667948B2 (ja) | 2015-02-12 |
Family
ID=48131559
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011193756A Expired - Fee Related JP5667948B2 (ja) | 2011-09-06 | 2011-09-06 | プログラム検査装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5667948B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020065863A1 (ja) * | 2018-09-27 | 2020-04-02 | 三菱電機株式会社 | プログラマブルロジックコントローラ、方法、及びプログラム |
JP7523116B2 (ja) | 2020-07-30 | 2024-07-26 | 株式会社オプトン | 制御プログラム生成装置 |
US10963228B1 (en) | 2020-12-22 | 2021-03-30 | Temper Systems, Inc. | Preventing garbage object accumulation on minimal runtimes |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61264436A (ja) * | 1985-05-18 | 1986-11-22 | Fujitsu Ltd | デ−タ処理方式 |
JPS6415837A (en) * | 1987-07-10 | 1989-01-19 | Hitachi Ltd | Fault detecting system |
JPH06274567A (ja) * | 1993-03-22 | 1994-09-30 | Mitsubishi Electric Corp | 論理シミュレーション装置 |
JPH08272623A (ja) * | 1995-04-03 | 1996-10-18 | Toshiba Corp | プログラム解析装置及びプログラム解析方法 |
JPH11212606A (ja) * | 1998-01-28 | 1999-08-06 | Sharp Corp | プログラム作成装置及びプログラムモニタ装置 |
US7036111B2 (en) * | 2001-06-01 | 2006-04-25 | Hewlett-Packard Development Company, L.P. | Code verification system and method |
JP4692452B2 (ja) * | 2006-09-20 | 2011-06-01 | 株式会社明電舎 | プログラマブルコントローラのプログラム作成方式 |
-
2011
- 2011-09-06 JP JP2011193756A patent/JP5667948B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2013054650A (ja) | 2013-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6096414B2 (ja) | バッチ構成を試験するための方法、装置、およびプログラム | |
CN103279418B (zh) | 一种组态控制信息的测试方法和装置 | |
CN1328658C (zh) | 用于安全控制的编译器的再验证方法 | |
US20050223295A1 (en) | Method for the creation of sequences for testing software | |
US12085911B2 (en) | Method, computer program and apparatus for analysing a programmable logic controller program | |
KR20100084036A (ko) | 소프트웨어의 에러 검출 장치 및 방법 | |
Rösch et al. | A light-weight fault injection approach to test automated production system PLC software in industrial practice | |
JP5667948B2 (ja) | プログラム検査装置 | |
Thomas et al. | An integrated approach to requirements development and hazard analysis | |
CN103092747A (zh) | 一种控制程序的验证和测试方法及系统 | |
JP6139670B2 (ja) | 制御システム検査装置 | |
US20230030253A1 (en) | Method for analyzing a programmable logic controller program | |
JP2002163020A (ja) | プログラマブルコントローラにおける異常検出方法およびその装置 | |
KR20190094779A (ko) | Plc 명령어 컴파일러 테스트케이스 자동 생성 장치 | |
JP2009086898A (ja) | プログラム可能な論理制御装置用マシーンコード・プログラムのコンパイル法 | |
US10417110B2 (en) | Method for verifying traceability of first instructions in a procedural programming language generated from second instructions in a modelling language | |
JP2024501588A (ja) | Plcプログラムの正しさをチェックするコンピュータ実施方法 | |
US20170322781A1 (en) | Integrated development environment for control language of legacy distributed control system | |
Burnard et al. | Verifying and validating automatically generated code | |
Ha et al. | Meta-validation of UML structural diagrams and behavioral diagrams with consistency rules | |
Yang et al. | An effective model-based development process using simulink/stateflow for automotive body control electronics | |
Beckert et al. | Formal verification of evolutionary changes | |
JP4692452B2 (ja) | プログラマブルコントローラのプログラム作成方式 | |
Wietecha et al. | Control Software Development Methodology for Programmable Sawmill Appliances | |
Beine et al. | A model-based reference workflow for the development of safety-related software |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20131205 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20131212 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20131219 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20131226 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20140109 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140225 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20141016 |
|
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: 20141118 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20141215 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5667948 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
LAPS | Cancellation because of no payment of annual fees |