JP2008077262A - プログラマブルコントローラのプログラム作成方式 - Google Patents

プログラマブルコントローラのプログラム作成方式 Download PDF

Info

Publication number
JP2008077262A
JP2008077262A JP2006253744A JP2006253744A JP2008077262A JP 2008077262 A JP2008077262 A JP 2008077262A JP 2006253744 A JP2006253744 A JP 2006253744A JP 2006253744 A JP2006253744 A JP 2006253744A JP 2008077262 A JP2008077262 A JP 2008077262A
Authority
JP
Japan
Prior art keywords
variable
program
partial range
function
check
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
JP2006253744A
Other languages
English (en)
Other versions
JP4692452B2 (ja
Inventor
Masato Fujii
正人 藤井
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.)
Meidensha Corp
Meidensha Electric Manufacturing Co Ltd
Original Assignee
Meidensha Corp
Meidensha Electric Manufacturing Co Ltd
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 Meidensha Corp, Meidensha Electric Manufacturing Co Ltd filed Critical Meidensha Corp
Priority to JP2006253744A priority Critical patent/JP4692452B2/ja
Publication of JP2008077262A publication Critical patent/JP2008077262A/ja
Application granted granted Critical
Publication of JP4692452B2 publication Critical patent/JP4692452B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Abstract

【課題】ソースプログラムで記述されるファンクションをコンパイラで目的プログラムに変換するプログラマブルコントローラのプログラム作成方式において、部分範囲データ形変数の使用に際して上下限逸脱発生をチェックおよび確認を容易にする。
【解決手段】コンパイラ2は、加算ファンクション1の入力変数Xが部分範囲データ形変数である場合、該変数に対して部分範囲チェックを行うEN付きLIMITファンクション命令3Aと、この部分範囲チェック内に該変数が収まっていない場合にその時点の演算プログラム位置を記憶するENフラグチェックファンクション命令3Bとを自動的に変換プログラム3に埋め込む。ENフラグチェックファンクション命令は、変数が部分範囲チェック内に収まっていない場合にアプリケーションプログラムで確認できる出力を得ることも含む。
【選択図】図1

Description

本発明は、JISB3503(IEC61131−3)に規定されているプログラム言語によるプログラマブルコントローラのプログラム作成方式に関わり、特に、変数の派生データ形の1つである、範囲データ形変数を使ったプログラム作成方式に関わるものである。
JISB3503(IEC61131−3)では変数の派生データ形として、以下の表に示す4種類が規定されている。以下にJISB3503での説明文を示す。なお、表中の「表12」とはJISB3503内の表番号である。
Figure 2008077262
現在、IEC61131−3準拠のPLC(プログラマブルコントローラ)が各社から発売されている。このPLCのプログラム作成には、その目的に応じて上記のデータ形で個々に宣言した変数をプログラム中に適宜組み込み、これら変数を使って演算を実行できるようにする。
これら変数を使用したプログラミングにおいて、宣言された変数の型チェック、サイズチェック、値チェックなどを自動的に行うことでプログラムの正当性を高めると共に、プログラミングの負担を軽減する装置も提案されている(例えば、特許文献1参照)。
特開平7−281880号公報
しかし、上記表に示す4種類の派生データ形すべてを扱えるPLCはない。特に、部分範囲データ形の場合は、プログラムのコンパイル時には、変数の部分範囲に対象変数が収まっているかが判断できない。このため、演算実行中に、演算対象データが定義された部分範囲に入っているかどうかを検証しながら演算しなくてはならず、正確なプログラミングを難しくしている。
例えば、部分範囲データ形は、図3の(a)に示すように、変数「VAL1」の定義として整数「INT」、範囲「−6〜+12」として宣言しておき、この変数「VAL1」を図3の(b)に示す加算命令「ADD」の演算結果として使用する場合、入力データ「IN1」の値が「−17」以下、または「3」以上であれば、変数「VAL1」は「−6〜+12」の範囲外となる。このチェックはコンパイラではできず、プログラム実行時のみ実行できる。
また、部分範囲データ形に対応したPLCが発売されていない理由として、IEC61131−3には演算対象データが部分範囲外であった時の対処方法が明確に規定されていないことも挙げられる。但し、ファンクション言語では「ENフラグ」が規定されていて、ENフラグ=1でファンクションが起動された場合に、ファンクション中で演算エラーがあれば、ENフラグ=0とするという記述がある。
例えば、図4において、ENの入力端子に接続される演算条件が真であれば、ファンクションは演算を行う。この場合、入力1と入力2に対する演算を行い、演算結果を出力する。演算途中でエラーがなければENO端子には真が出力されるが、エラーがあれば偽が出力される。
また、IEC61131−3の標準ファンクションとしてLIMITが規定されている。このファンクションは入力された変数の上下限チェックを行うもので、以下の形をしている。このLIMITファンクションは、図5の(a)に示すように、入力「IN」で与えられた数値がMN(下限値)とMX(上限値)により上下限制限されるものとなっている。例えば、MN=0でMX=1000の時に、IN=2000であれば、出力は1000になる。このファンクションを使えば、部分範囲データ形を使わなくても演算ができそうである。しかし、LIMITファンクションは入力が上限と下限を超えた場合でも、出力を上下限に制限してしまうため、入力の正当性確認には使用できない。つまり、エラー検出機能はない。例えば、図5の(b)に示すように、変数「VAL1」の出力をLIMITで制限すると、変数「VAL1」は(−6〜+12)の範囲に制限されるだけで、演算時チェックでエラー検出はできない。
本発明の目的は、部分範囲データ形変数の使用に際して上下限逸脱発生のチェックおよび確認を容易にしたプログラマブルコントローラのプログラム作成方式を提供することにある。
本発明は、前記の課題を解決するため、部分範囲データ形変数が使用されているときに、コンパイラがEN付きLIMITファンクションとENフラグチェックファンクションを自動的に埋め込み、部分範囲データ形変数が部分範囲を逸脱したことを検出および確認可能とするもので、以下の構成を特徴とする。
(1)ソースプログラムで記述されるファンクションをコンパイラで目的プログラムに変換するプログラマブルコントローラのプログラム作成方式において、
前記コンパイラは、前記ファンクションの入力変数が部分範囲データ形変数である場合、該変数に対して部分範囲チェックを行うEN付きLIMITファンクション命令と、この部分範囲チェック内に該変数が収まっていない場合にその時点の演算プログラム位置を記憶するENフラグチェックファンクション命令とを自動的に変換プログラムに埋め込む手段を備えたことを特徴とする。
(2)前記ENフラグチェックファンクション命令は、前記変数が部分範囲チェック内に収まっていない場合にアプリケーションプログラムで確認できる出力を得ることを特徴とする。
以上のとおり、本発明によれば、部分範囲データ形変数が使用されているときに、コンパイラがEN付きLIMITファンクションとENフラグチェックファンクションを自動的に埋め込み、部分範囲データ形変数が部分範囲を逸脱したことを検出および確認可能とするため、部分範囲データ形変数の使用に際して上下限逸脱発生をチェックおよび確認が容易になる。
(実施形態1)
図1は本実施形態を示すプログラム作成の模式図であり、加算ファンクションの変数Xに部分範囲データ形を指定する場合である。
アプリケーションプログラムのソースプログラムとしての加算ファンクション(ADD)1は、変数Xと変数Yを加算し、この演算結果Z(=X+Y)を得るという演算であり、IL(Instruction List)言語で記述すると右側に示す命令の組み合わせになる。
コンパイラ2は、加算ファンクション1のソースプログラムをプログラマブルコントローラの目的プログラムにコンパイルした変換プログラム3として得る。ここで、変数Xは部分範囲データ形であり、上限が1000で下限が0であるとする場合、コンパイラ2は、変数Xに対して、EN付きLIMITファンクション命令3Aと、ENフラグチェックファンクション命令3Bを自動的に変換プログラムに埋め込み、範囲逸脱エラー検出を可能にする。ただし、命令3Aと命令3Bは、ソースプログラムとしては見せないようにして、見た目は加算ファンクション1と同じ命令3Cのみのようにする。
図1の変換プログラム3では、変数Xに対して、EN付きLIMITファンクション命令3Aを使って、部分範囲チェックを行う。EN付きLIMITファンクションは入力データ(変数X)が部分範囲(0〜1000)に収まっていれば、ENO=1になり、収まっていなければENO=0になるようにする。ENフラグチェックファンクション命令3Bでは、ENO=0の場合にのみ動作して、その時点の演算プログラム位置を記憶する。その演算プログラム位置はPLCのシステムプログラム内メモリに記憶され、プログラミングツールなどの装置で、エラーの発生時にはエラー発生アドレスを元に検索したソースプログラム位置として表示できるようにする。
なお、変数Yも部分範囲データ形変数とする場合には、コンパイラ2は、変数YについてもEN付きLIMITファンクション命令3Aと、ENフラグチェックファンクション命令3Bを自動的に追加する。
したがって、本実施形態によれば、部分範囲データ形変数を使用するプログラミングに際して、アプリケーションプログラム上では、通常の変数と部分範囲データ形変数で、特に見た目が変わらないようにプログラミングすることができる。そして、部分範囲データ形変数の上下限逸脱をシステムプログラムに通知することができる。また、プログラミング装置などで、上下限逸脱のあった変数を使ったプログラムの場所を表示することができる。
(実施形態2)
図2は本実施形態を示すプログラム作成の模式図であり、加算ファンクションの変数Xに部分範囲データ形を指定する場合である。
同図が図1と異なる部分は、ENフラグチェックファンクション命令3BをENO=0の場合に出力=1となるようにする点にある。こうすることで、部分範囲データが上下限を逸脱したことを、アプリケーションプログラムでも確認できることになる。
図2において、変数Xが上下限を逸脱した場合には、変数ERRORが真となり、アプリケーションプログラムで、部分範囲データエラーがあったことを確認することができる。この場合は、ENフラグチェックファンクション命令3Bは、明示的として、アプリケーションプログラムから自由に使用できるものとする。
本実施形態によれば、部分範囲データ形変数の上下限逸脱がアプリケーションプログラムで確認することができる。
なお、変数Yも部分範囲データ形変数である場合には、コンパイラ2は、変数YについてもEN付きLIMITファンクション命令3Aと、ENフラグチェックファンクション命令3Bを自動的に追加する。
また、実施形態1,2では加算ファンクション命令についての部分範囲データ形変数である場合を示すが、他のファンクション命令についても同様に適用することができる。
本発明の実施形態1を示すプログラム作成の模式図。 本発明の実施形態2を示すプログラム作成の模式図。 部分範囲データ形の例。 ファンクションの例。 LIMITファンクションの例。
符号の説明
1 加算ファンクション
2 コンパイラ
3 変換プログラム
3A EN付きLIMITファンクション命令
3B ENフラグチェックファンクション命令
3C 加算命令

Claims (2)

  1. ソースプログラムで記述されるファンクションをコンパイラで目的プログラムに変換するプログラマブルコントローラのプログラム作成方式において、
    前記コンパイラは、前記ファンクションの入力変数が部分範囲データ形変数である場合、該変数に対して部分範囲チェックを行うEN付きLIMITファンクション命令と、この部分範囲チェック内に該変数が収まっていない場合にその時点の演算プログラム位置を記憶するENフラグチェックファンクション命令とを自動的に変換プログラムに埋め込む手段を備えたことを特徴とするプログラマブルコントローラのプログラム作成方式。
  2. 前記ENフラグチェックファンクション命令は、前記変数が部分範囲チェック内に収まっていない場合にアプリケーションプログラムで確認できる出力を得ることを特徴とする請求項1に記載のプログラマブルコントローラのプログラム作成方式。
JP2006253744A 2006-09-20 2006-09-20 プログラマブルコントローラのプログラム作成方式 Expired - Fee Related JP4692452B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006253744A JP4692452B2 (ja) 2006-09-20 2006-09-20 プログラマブルコントローラのプログラム作成方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006253744A JP4692452B2 (ja) 2006-09-20 2006-09-20 プログラマブルコントローラのプログラム作成方式

Publications (2)

Publication Number Publication Date
JP2008077262A true JP2008077262A (ja) 2008-04-03
JP4692452B2 JP4692452B2 (ja) 2011-06-01

Family

ID=39349270

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006253744A Expired - Fee Related JP4692452B2 (ja) 2006-09-20 2006-09-20 プログラマブルコントローラのプログラム作成方式

Country Status (1)

Country Link
JP (1) JP4692452B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013054650A (ja) * 2011-09-06 2013-03-21 Toshiba Corp プログラム検査装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0997105A (ja) * 1995-10-02 1997-04-08 Fanuc Ltd 数値制御装置
JP2000099116A (ja) * 1998-09-17 2000-04-07 Meidensha Corp ラダー言語構造
JP2000163107A (ja) * 1998-11-30 2000-06-16 Mitsubishi Electric Corp プログラマブルコントローラのプログラム編集装置
JP2002351506A (ja) * 2001-05-22 2002-12-06 Yaskawa Electric Corp プログラマブルコントローラのプログラミング装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0997105A (ja) * 1995-10-02 1997-04-08 Fanuc Ltd 数値制御装置
JP2000099116A (ja) * 1998-09-17 2000-04-07 Meidensha Corp ラダー言語構造
JP2000163107A (ja) * 1998-11-30 2000-06-16 Mitsubishi Electric Corp プログラマブルコントローラのプログラム編集装置
JP2002351506A (ja) * 2001-05-22 2002-12-06 Yaskawa Electric Corp プログラマブルコントローラのプログラミング装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013054650A (ja) * 2011-09-06 2013-03-21 Toshiba Corp プログラム検査装置

Also Published As

Publication number Publication date
JP4692452B2 (ja) 2011-06-01

Similar Documents

Publication Publication Date Title
US8572583B2 (en) Method and system for testing software for industrial machine
US8381173B2 (en) Platform-independent method and system for deploying control logic programming
US20190012168A1 (en) Program generating apparatus
KR20060120539A (ko) 그래피컬 프로그래밍 장치 및 프로그래머블 표시기
JP6891838B2 (ja) 開発支援装置、開発支援方法、および開発支援プログラム
JP2008165399A (ja) シミュレーションデータ作成支援装置
WO2014136185A1 (ja) プログラム開発支援装置およびその方法
JP5295061B2 (ja) プログラマブルコントローラ
JP4692452B2 (ja) プログラマブルコントローラのプログラム作成方式
JP4488227B2 (ja) 可変性を有する制御部品のデバッグ方法、及びデバッグ支援装置
US20120272222A1 (en) Software Tool for Automation
US8930000B2 (en) Plant monitor and control device and a maintenance support method thereof
JP2008165324A (ja) プログラム作成支援装置
JP2007334469A (ja) プログラマブルコントローラ及びこれを用いた機器制御方法
JP6483507B2 (ja) 制御プログラム作成装置、及び制御プログラムのデバッグ方法
JP4488226B2 (ja) ラダープログラムの高機能部品化を実現するマクロプログラム
AU2006336766B2 (en) Plant control system
Botterweck et al. Interactive configuration of embedded systems product lines
JP5667948B2 (ja) プログラム検査装置
JP2016048554A (ja) 制御機器プログラムコードを作成するコンピュータ実施方法および関連するメッセージ管理環境
EP3089037B1 (en) Method for checking equivalence of code
JP2016115312A (ja) 加工時に使用した変数値を埋め込んだ変数確認用ncプログラムの作成機能を備えた数値制御装置
JP2007265098A (ja) マクロ定義情報取得装置
JP2007133622A (ja) エンジニアリングツール及びプログラム変換方法
KR20170043198A (ko) 어플리케이션 소스 코드의 오류 검출 장치 및 그 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090709

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110113

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110207

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140304

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4692452

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees