JPH113105A - プログラマブルコントローラのプログラミング装置 - Google Patents
プログラマブルコントローラのプログラミング装置Info
- Publication number
- JPH113105A JPH113105A JP15215197A JP15215197A JPH113105A JP H113105 A JPH113105 A JP H113105A JP 15215197 A JP15215197 A JP 15215197A JP 15215197 A JP15215197 A JP 15215197A JP H113105 A JPH113105 A JP H113105A
- Authority
- JP
- Japan
- Prior art keywords
- area
- address
- variable
- program
- programmable controller
- 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.)
- Pending
Links
Landscapes
- Programmable Controllers (AREA)
Abstract
(57)【要約】
【課題】 複雑な演算または条件処理を行なうユーザプ
ログラムを容易に記述でき、且つ、理解が容易でデータ
の安全性が保証されるプログラマブルコントローラのプ
ログラミング装置を提供する。 【解決手段】 プログラムのソースファイル15は、コ
ード変換部7aによりオブジェクトファイル16に変換
され、プログラム中で接頭語“Ud”が付された名称の
自動変数は、実アドレスが未確定のアドレス保留要素1
7として処理される。アドレス保留要素17は、アドレ
ス割付実行部7bによってプログラマブルコントローラ
側のメモリエリアの実アドレスが割付けられ、その割付
け結果は、アドレス解決情報テーブル18として生成さ
れる。アドレス解決情報テーブル18の情報は、実行コ
ード合成部7cによってオブジェクトファイル16のオ
ブジェクトコードと合成されて、実行コードファイル1
9とメモリ配置情報20とが生成される。
ログラムを容易に記述でき、且つ、理解が容易でデータ
の安全性が保証されるプログラマブルコントローラのプ
ログラミング装置を提供する。 【解決手段】 プログラムのソースファイル15は、コ
ード変換部7aによりオブジェクトファイル16に変換
され、プログラム中で接頭語“Ud”が付された名称の
自動変数は、実アドレスが未確定のアドレス保留要素1
7として処理される。アドレス保留要素17は、アドレ
ス割付実行部7bによってプログラマブルコントローラ
側のメモリエリアの実アドレスが割付けられ、その割付
け結果は、アドレス解決情報テーブル18として生成さ
れる。アドレス解決情報テーブル18の情報は、実行コ
ード合成部7cによってオブジェクトファイル16のオ
ブジェクトコードと合成されて、実行コードファイル1
9とメモリ配置情報20とが生成される。
Description
【0001】
【発明の属する技術分野】本発明は、ユーザプログラム
をプログラマブルコントローラが実行可能な形式に変換
するプログラム変換手段を備えたプログラマブルコント
ローラのプログラミング装置に関する。
をプログラマブルコントローラが実行可能な形式に変換
するプログラム変換手段を備えたプログラマブルコント
ローラのプログラミング装置に関する。
【0002】
【発明が解決しようとする課題】近年、プログラマブル
コントローラ(以下、PCと称す)の制御対象となる設
備は大規模になると共に複雑化しており、それに伴っ
て、PCのユーザプログラム(制御プログラム)及びそ
れに付随するデータも大容量化してきている。
コントローラ(以下、PCと称す)の制御対象となる設
備は大規模になると共に複雑化しており、それに伴っ
て、PCのユーザプログラム(制御プログラム)及びそ
れに付随するデータも大容量化してきている。
【0003】特にユーザプログラムの記述に用いられる
ラダー言語によって複雑な演算を行なう場合には、演算
を1ステップずつ分割して順に行なわねばならず、演算
の途中結果などのデータを一時的にメモリに格納させる
処理が頻繁に発生する。
ラダー言語によって複雑な演算を行なう場合には、演算
を1ステップずつ分割して順に行なわねばならず、演算
の途中結果などのデータを一時的にメモリに格納させる
処理が頻繁に発生する。
【0004】また、多数の入力リレーによる工程完了条
件を判定する場合も同様であり、前記工程完了条件を1
つのラングにおいて記述可能なステップ数の範囲に分割
してプログラムを記述し、各ラング毎に記述された入力
リレーによる前記条件の一部が成立した場合は、その情
報を一旦補助リレー等に格納させて、複数の補助リレー
の情報を元にして前記条件の全てが成立したか否かを判
定する必要がある。
件を判定する場合も同様であり、前記工程完了条件を1
つのラングにおいて記述可能なステップ数の範囲に分割
してプログラムを記述し、各ラング毎に記述された入力
リレーによる前記条件の一部が成立した場合は、その情
報を一旦補助リレー等に格納させて、複数の補助リレー
の情報を元にして前記条件の全てが成立したか否かを判
定する必要がある。
【0005】その際、一時的に演算データやリレー情報
をPCのメモリに格納させるアドレスは、ユーザ自身が
その都度メモリの使用可能な領域を検索した上で指定す
る必要があった。従って、ユーザプログラムの大規模化
に伴って、上記作業が非常に時間を要するようになり、
プログラムの作成効率を低下させているという問題があ
った。加えて、メモリの既に使用中の領域を誤って指定
する危険性があり、不具合の発生頻度が上昇していると
いう問題も生じていた。
をPCのメモリに格納させるアドレスは、ユーザ自身が
その都度メモリの使用可能な領域を検索した上で指定す
る必要があった。従って、ユーザプログラムの大規模化
に伴って、上記作業が非常に時間を要するようになり、
プログラムの作成効率を低下させているという問題があ
った。加えて、メモリの既に使用中の領域を誤って指定
する危険性があり、不具合の発生頻度が上昇していると
いう問題も生じていた。
【0006】本発明は上記事情に鑑みてなされたもので
あり、その目的は、複雑な演算または条件処理を行なう
ユーザプログラムを容易に記述でき、且つ、理解が容易
でデータの安全性が保証されるプログラマブルコントロ
ーラのプログラミング装置を提供することにある。
あり、その目的は、複雑な演算または条件処理を行なう
ユーザプログラムを容易に記述でき、且つ、理解が容易
でデータの安全性が保証されるプログラマブルコントロ
ーラのプログラミング装置を提供することにある。
【0007】
【課題を解決するための手段】請求項1記載のプログラ
マブルコントローラのプログラミング装置によれば、ユ
ーザは、プログラミングを行なう際に、変数に対するア
ドレスの割付処理を一切意識する必要がなく、特定の名
称を付与した変数をユーザプログラム中で使用すれば、
その変数を介して渡されるデータの格納領域は、プログ
ラム変換手段が有する割付手段によってプログラマブル
コントローラ側に設定される割付領域中に割付けられ
る。従って、ユーザプログラムの作成が容易になり、作
成を効率良く行なうことができる。また、ユーザが付与
した変数名を使用することによって作成後のユーザプロ
グラムの理解も容易となる。
マブルコントローラのプログラミング装置によれば、ユ
ーザは、プログラミングを行なう際に、変数に対するア
ドレスの割付処理を一切意識する必要がなく、特定の名
称を付与した変数をユーザプログラム中で使用すれば、
その変数を介して渡されるデータの格納領域は、プログ
ラム変換手段が有する割付手段によってプログラマブル
コントローラ側に設定される割付領域中に割付けられ
る。従って、ユーザプログラムの作成が容易になり、作
成を効率良く行なうことができる。また、ユーザが付与
した変数名を使用することによって作成後のユーザプロ
グラムの理解も容易となる。
【0008】請求項2記載のプログラマブルコントロー
ラのプログラミング装置によれば、割付領域は、変数を
介して渡されるデータのみが格納可能に設定されるの
で、ユーザプログラムにおいて、不用意に割付領域に対
応するアドレスを記述することに起因して割付領域に格
納されているデータを破壊してしまうことがなく、デー
タの保護を確実に行なうことができる。
ラのプログラミング装置によれば、割付領域は、変数を
介して渡されるデータのみが格納可能に設定されるの
で、ユーザプログラムにおいて、不用意に割付領域に対
応するアドレスを記述することに起因して割付領域に格
納されているデータを破壊してしまうことがなく、デー
タの保護を確実に行なうことができる。
【0009】請求項3記載のプログラマブルコントロー
ラのプログラミング装置によれば、ユーザが、作成する
プログラムの内容に応じて必要となる割付領域の容量を
指定すれば、その指定に応じて割付領域の容量が確保さ
れるので、ユーザプログラムの作成をより柔軟に行なう
ことができる。
ラのプログラミング装置によれば、ユーザが、作成する
プログラムの内容に応じて必要となる割付領域の容量を
指定すれば、その指定に応じて割付領域の容量が確保さ
れるので、ユーザプログラムの作成をより柔軟に行なう
ことができる。
【0010】請求項4記載のプログラマブルコントロー
ラのプログラミング装置によれば、ユーザは、ユーザプ
ログラムにおいて一々変数の属性(例えば、ワード属性
かリレー属性か)を指定せずとも、割付手段は、命令の
種類に応じて変数の属性を判断して割付けを行なうの
で、ユーザプログラムの作成をより容易且つ効率的に行
なうことができる。
ラのプログラミング装置によれば、ユーザは、ユーザプ
ログラムにおいて一々変数の属性(例えば、ワード属性
かリレー属性か)を指定せずとも、割付手段は、命令の
種類に応じて変数の属性を判断して割付けを行なうの
で、ユーザプログラムの作成をより容易且つ効率的に行
なうことができる。
【0011】請求項5記載のプログラマブルコントロー
ラのプログラミング装置によれば、割付手段は、割付領
域中に新たな変数の割付処理を行うための空き領域が存
在しない場合には、既に割付けられている変数の領域の
内、新たな変数が使用されているステップ以降のユーザ
プログラムでは使用されない変数の領域に、新たな変数
を介して渡されるデータの格納領域を割付けるので、割
付領域を効率的に利用して、変数を使用するために必要
な容量を低減することができる。
ラのプログラミング装置によれば、割付手段は、割付領
域中に新たな変数の割付処理を行うための空き領域が存
在しない場合には、既に割付けられている変数の領域の
内、新たな変数が使用されているステップ以降のユーザ
プログラムでは使用されない変数の領域に、新たな変数
を介して渡されるデータの格納領域を割付けるので、割
付領域を効率的に利用して、変数を使用するために必要
な容量を低減することができる。
【0012】
【発明の実施の形態】以下、本発明の一実施例について
図面を参照して説明する。図7及び図8は、プログラマ
ブルコントローラ及びそのプログラミング装置の構成を
示す機能ブロック図である。図8において、プログラミ
ング装置1は、例えばパーソナルコンピュータによって
構成されており、キーボード2,マイクロコンピュータ
を中心とする制御部3,ディスプレイ4などからなるも
のである。
図面を参照して説明する。図7及び図8は、プログラマ
ブルコントローラ及びそのプログラミング装置の構成を
示す機能ブロック図である。図8において、プログラミ
ング装置1は、例えばパーソナルコンピュータによって
構成されており、キーボード2,マイクロコンピュータ
を中心とする制御部3,ディスプレイ4などからなるも
のである。
【0013】制御部3には、プログラマブルコントロー
ラ(以下、PCと称す。図7参照)5に実行させるユー
ザプログラム(以下、単にプログラムと称す)を入力,
修正するためのソフトウエアであるエディタ6,後述す
るように割付領域の容量を設定する領域設定部(領域設
定手段)6a,入力されたプログラムの変換処理などを
行う変換処理部(プログラム変換手段)7が、ハードデ
ィスク8から読み出されて、図示しない主記憶エリアた
るRAM上に常駐しているものとする。
ラ(以下、PCと称す。図7参照)5に実行させるユー
ザプログラム(以下、単にプログラムと称す)を入力,
修正するためのソフトウエアであるエディタ6,後述す
るように割付領域の容量を設定する領域設定部(領域設
定手段)6a,入力されたプログラムの変換処理などを
行う変換処理部(プログラム変換手段)7が、ハードデ
ィスク8から読み出されて、図示しない主記憶エリアた
るRAM上に常駐しているものとする。
【0014】プログラミング装置1は、更に、PC5と
の間でデータ転送を行うための通信用インターフェイス
9などを有している。通信用インターフェイス9は、R
S−232C若しくはRS−485などのシリアル通信
方式によって、通信用ケーブル10を介してデータ転送
を行うようになっている。
の間でデータ転送を行うための通信用インターフェイス
9などを有している。通信用インターフェイス9は、R
S−232C若しくはRS−485などのシリアル通信
方式によって、通信用ケーブル10を介してデータ転送
を行うようになっている。
【0015】一方、図7に示すように、PC5側は、C
PU11,そのCPU11にシステムバスを介して接続
されているROM12及びRAM13,プログラミング
装置1側の通信用インターフェイス9と通信ケーブル1
0を介して接続され、CPU11とも通信用バスで接続
されている通信用インターフェイス14などから構成さ
れている。
PU11,そのCPU11にシステムバスを介して接続
されているROM12及びRAM13,プログラミング
装置1側の通信用インターフェイス9と通信ケーブル1
0を介して接続され、CPU11とも通信用バスで接続
されている通信用インターフェイス14などから構成さ
れている。
【0016】ROM12には、CPU11の基本的な制
御を行うプログラムであるファームウエアが記憶されて
おり、RAM13には、プログラミング装置1側から送
信されるユーザプログラム及びデータが記憶されるよう
になっている。また、CPU11には、I/Oバスを介
して図示しない他のI/O装置が接続されている。
御を行うプログラムであるファームウエアが記憶されて
おり、RAM13には、プログラミング装置1側から送
信されるユーザプログラム及びデータが記憶されるよう
になっている。また、CPU11には、I/Oバスを介
して図示しない他のI/O装置が接続されている。
【0017】次に、本実施例の作用について図1乃至図
6をも参照して説明する。作業者(ユーザ)は、プログ
ラミング装置1のエディタ6を起動すると、キーボード
2を操作して、ディスプレイ4の表示を見ながらラダー
言語によるユーザプログラム(以下、単にプログラムと
称す)を作成する。
6をも参照して説明する。作業者(ユーザ)は、プログ
ラミング装置1のエディタ6を起動すると、キーボード
2を操作して、ディスプレイ4の表示を見ながらラダー
言語によるユーザプログラム(以下、単にプログラムと
称す)を作成する。
【0018】作業者は、先ず、プログラムを記述する前
に、自動変数(変数)の割付領域のサイズ(容量)を指
定する。例えば、自動変数リレー割付領域(以下、リレ
ー割付領域と称す),自動変数ワード割付領域(以下、
ワード割付領域と称す)の容量を夫々256ワードずつ
確保するように指定する。尚、1ワードは2バイトを意
味する。
に、自動変数(変数)の割付領域のサイズ(容量)を指
定する。例えば、自動変数リレー割付領域(以下、リレ
ー割付領域と称す),自動変数ワード割付領域(以下、
ワード割付領域と称す)の容量を夫々256ワードずつ
確保するように指定する。尚、1ワードは2バイトを意
味する。
【0019】すると、領域設定部6aは、図2に一例を
示すPC5のユーザメモリマップに割付領域の確保を行
う。このメモリマップ上では、0000H番地から10
00H番地まではリレー領域、1000H番地から80
00H番地まではワード領域として大別されている。リ
レー領域はビット指定が可能な領域である。
示すPC5のユーザメモリマップに割付領域の確保を行
う。このメモリマップ上では、0000H番地から10
00H番地まではリレー領域、1000H番地から80
00H番地まではワード領域として大別されている。リ
レー領域はビット指定が可能な領域である。
【0020】そして、このメモリマップの0F00H番
地から0FFFH番地までの256ワードの領域をリレ
ー割付領域として、7F00H番地から7FFFH番地
までの256ワードの領域をワード割付領域として確保
する。また、1000H番地から2FFFH番地まで
は、データメモリ領域(D)としてシステム上予め設定
されている。
地から0FFFH番地までの256ワードの領域をリレ
ー割付領域として、7F00H番地から7FFFH番地
までの256ワードの領域をワード割付領域として確保
する。また、1000H番地から2FFFH番地まで
は、データメモリ領域(D)としてシステム上予め設定
されている。
【0021】尚、リレー及びワード割付領域は、何れも
自動変数を介してのみデータの格納が可能な領域として
設定されており、ユーザプログラム中では、これらの領
域に相当するアドレスを直接記述することはできないよ
うになっている。
自動変数を介してのみデータの格納が可能な領域として
設定されており、ユーザプログラム中では、これらの領
域に相当するアドレスを直接記述することはできないよ
うになっている。
【0022】次に、作業者は、図3に示すように、自動
変数を使用してプログラムを記述する。この図3に示す
プログラムの意味は、以下の通りである。 工程A完了条件 X0:0,X0:1,X0:2,X0:3,X0:4:ON or X0:0,X0:6,X0:7:ON X
0:5:OFF 工程B完了条件 X2:0,X2:1,X2:2,X2:3,X2:4:ON or X2:2,X2:3,X2:4:ON X
3:0,X3:1:OFF 工程A及び工程Bが共に完了すると、以下の演算を行
なう。 D10=(D0+D1)−(D2*D3) …
変数を使用してプログラムを記述する。この図3に示す
プログラムの意味は、以下の通りである。 工程A完了条件 X0:0,X0:1,X0:2,X0:3,X0:4:ON or X0:0,X0:6,X0:7:ON X
0:5:OFF 工程B完了条件 X2:0,X2:1,X2:2,X2:3,X2:4:ON or X2:2,X2:3,X2:4:ON X
3:0,X3:1:OFF 工程A及び工程Bが共に完了すると、以下の演算を行
なう。 D10=(D0+D1)−(D2*D3) …
【0023】この時、作業者は、自動変数を使用する場
合は、識別子“Ud”を接頭語とする適当な変数の名称
を付与してプログラム中で記述すれば良い。例えば、第
1ラングの“Ud工程A完了”は、の工程Aの完了条
件が成立した時にデータ“1”がセットされる自動変数
である。即ち、工程A及び工程Bが共に完了することに
より、“Ud工程A完了”及び“Ud工程B完了”に共
に“1”がセットされると、第3ラングの演算が実行さ
れる。
合は、識別子“Ud”を接頭語とする適当な変数の名称
を付与してプログラム中で記述すれば良い。例えば、第
1ラングの“Ud工程A完了”は、の工程Aの完了条
件が成立した時にデータ“1”がセットされる自動変数
である。即ち、工程A及び工程Bが共に完了することに
より、“Ud工程A完了”及び“Ud工程B完了”に共
に“1”がセットされると、第3ラングの演算が実行さ
れる。
【0024】また、X0:0,X0:1,X0:2, …は入力リレーの
アドレスを指定する記述子、D0〜D3,D10は、デ
ータメモリ領域のアドレスを指定するためにシステム上
予め用意されている記述子である。例えば、X0:0は、入
力リレー領域(X)の0番地の第0ビット(即ち、図3
に示すメモリマップにおける0000:0H番地の第0
ビット)を表し、“D0”は、データメモリ領域(D)
の0番地(同1000H番地)を表している。
アドレスを指定する記述子、D0〜D3,D10は、デ
ータメモリ領域のアドレスを指定するためにシステム上
予め用意されている記述子である。例えば、X0:0は、入
力リレー領域(X)の0番地の第0ビット(即ち、図3
に示すメモリマップにおける0000:0H番地の第0
ビット)を表し、“D0”は、データメモリ領域(D)
の0番地(同1000H番地)を表している。
【0025】また、“Ud演算結果1”及び“Ud演算
結果2”は、の演算の途中結果が格納される自動変数
である。ラダープログラムの制約によって、の演算を
1つの式で記述して一気に実行させることができないた
め、第3ラングでは、先ずの右辺第1項を演算してそ
の結果を“Ud演算結果1”に格納し、次のステップで
同第2項を演算してその結果を“Ud演算結果2”に格
納する。そして、更に次のステップにおいて、“Ud演
算結果1”の内容から“Ud演算結果2”の内容を減算
することによりの演算が完了し、その演算結果が“D
10”に格納されるようになっている。
結果2”は、の演算の途中結果が格納される自動変数
である。ラダープログラムの制約によって、の演算を
1つの式で記述して一気に実行させることができないた
め、第3ラングでは、先ずの右辺第1項を演算してそ
の結果を“Ud演算結果1”に格納し、次のステップで
同第2項を演算してその結果を“Ud演算結果2”に格
納する。そして、更に次のステップにおいて、“Ud演
算結果1”の内容から“Ud演算結果2”の内容を減算
することによりの演算が完了し、その演算結果が“D
10”に格納されるようになっている。
【0026】以上のようにプログラムが記述されると、
プログラミング装置1においては、制御部3の変換処理
部7によって、図1に示すような手順に従いプログラム
が処理される。即ち、プログラムのソースファイル15
は、コード変換部7aによってオブジェクト(機械語コ
ード)ファイル16に変換される。
プログラミング装置1においては、制御部3の変換処理
部7によって、図1に示すような手順に従いプログラム
が処理される。即ち、プログラムのソースファイル15
は、コード変換部7aによってオブジェクト(機械語コ
ード)ファイル16に変換される。
【0027】また、プログラム中で使用されているラベ
ル(自動変数を含む)に関する情報は、プログラムの入
力が確定した時点でラベル情報テーブル15aとして生
成されており、そのラベル情報テーブル15a中にある
自動変数については、コード変換部7aによって実アド
レスが未確定のアドレス保留要素17として処理され
る。
ル(自動変数を含む)に関する情報は、プログラムの入
力が確定した時点でラベル情報テーブル15aとして生
成されており、そのラベル情報テーブル15a中にある
自動変数については、コード変換部7aによって実アド
レスが未確定のアドレス保留要素17として処理され
る。
【0028】尚、X0:0,X0:1,X0:2, …や、D0〜D3な
どのシステム上予め用意されている記述子のアドレス
は、コード変換部7aによって、夫々対応するリレー領
域、データメモリ領域の番地に変換されるようになって
いる。
どのシステム上予め用意されている記述子のアドレス
は、コード変換部7aによって、夫々対応するリレー領
域、データメモリ領域の番地に変換されるようになって
いる。
【0029】次に、オブジェクトファイル16のアドレ
ス保留要素17部分は、アドレス割付実行部(割付手
段)7bにおいて、PC5側のメモリエリア(RAM1
3)の実アドレスが割付けられ、その割付結果は、アド
レス解決情報テーブル18として生成される。そして、
そのアドレス解決情報テーブル18の情報は、実行コー
ド合成部7cによってオブジェクトファイル16のオブ
ジェクトコードと合成されて、実行コードファイル19
と自動変数等に関するメモリ配置情報20とが生成され
る。
ス保留要素17部分は、アドレス割付実行部(割付手
段)7bにおいて、PC5側のメモリエリア(RAM1
3)の実アドレスが割付けられ、その割付結果は、アド
レス解決情報テーブル18として生成される。そして、
そのアドレス解決情報テーブル18の情報は、実行コー
ド合成部7cによってオブジェクトファイル16のオブ
ジェクトコードと合成されて、実行コードファイル19
と自動変数等に関するメモリ配置情報20とが生成され
る。
【0030】また、アドレス割付実行部7bは、変数の
接頭語が“Ud”である場合は、図5に示すフローチャ
ートに従ってアドレス保留要素17に対してアドレスの
割付け処理を行う。先ず、「メモリ属性はリレー?」の
判断ステップS1において、命令パラメータのメモリ属
性がリレーであるか否かを判断する。
接頭語が“Ud”である場合は、図5に示すフローチャ
ートに従ってアドレス保留要素17に対してアドレスの
割付け処理を行う。先ず、「メモリ属性はリレー?」の
判断ステップS1において、命令パラメータのメモリ属
性がリレーであるか否かを判断する。
【0031】例えば、命令が“SET”のようにリレー
を対象とするものであれば、そのオペランドに記述され
ている自動変数“Ud工程完了A”のメモリ属性はリレ
ーである。斯様な場合、アドレス割付実行部7bは「Y
ES」と判断して、「リレー割付領域の空き領域検索」
の処理ステップS2に移行する。また、命令が“+”,
“−”,“*”等の演算子であればメモリ属性はワード
であり、斯様な場合は「NO」と判断して「ワード割付
領域の空き領域検索」の処理ステップS7に移行する。
を対象とするものであれば、そのオペランドに記述され
ている自動変数“Ud工程完了A”のメモリ属性はリレ
ーである。斯様な場合、アドレス割付実行部7bは「Y
ES」と判断して、「リレー割付領域の空き領域検索」
の処理ステップS2に移行する。また、命令が“+”,
“−”,“*”等の演算子であればメモリ属性はワード
であり、斯様な場合は「NO」と判断して「ワード割付
領域の空き領域検索」の処理ステップS7に移行する。
【0032】処理ステップS2において、アドレス割付
実行部7bは、リレー割付領域を検索すると、次の「空
き領域有り?」の判断ステップS3に移行して、空き領
域が存在するか否かを判断する。空き領域が存在し「Y
ES」と判断すると、「メモリ割付」の処理ステップS
4に移行して、リレー割付領域に対するアドレスの割付
を実行する。
実行部7bは、リレー割付領域を検索すると、次の「空
き領域有り?」の判断ステップS3に移行して、空き領
域が存在するか否かを判断する。空き領域が存在し「Y
ES」と判断すると、「メモリ割付」の処理ステップS
4に移行して、リレー割付領域に対するアドレスの割付
を実行する。
【0033】例えば、自動変数“Ud工程A完了”,
“Ud工程B完了”のアドレスは、領域が全て未使用の
状態であれば、その先頭から0F00H番地の第0ビッ
ト(0F00H:0),第1ビット(0F00H:1)
に夫々割付けられる。アドレスを割付けると、処理を終
了する。
“Ud工程B完了”のアドレスは、領域が全て未使用の
状態であれば、その先頭から0F00H番地の第0ビッ
ト(0F00H:0),第1ビット(0F00H:1)
に夫々割付けられる。アドレスを割付けると、処理を終
了する。
【0034】また、判断ステップS3において、リレー
割付領域に空きがなく、アドレス割付実行部7bが「N
O」と判断すると、「非競合領域検索」の処理ステップ
S5に移行する。処理ステップS5において、アドレス
割付実行部7bは、リレー割付領域の既に割付けが行わ
れている領域の内、その時点で以降は不要となる自動変
数に対応する領域、即ち、非競合領域を検索する。そし
て、次の「非競合領域有り?」の判断ステップS6にお
いて、非競合領域の有無を判断する。
割付領域に空きがなく、アドレス割付実行部7bが「N
O」と判断すると、「非競合領域検索」の処理ステップ
S5に移行する。処理ステップS5において、アドレス
割付実行部7bは、リレー割付領域の既に割付けが行わ
れている領域の内、その時点で以降は不要となる自動変
数に対応する領域、即ち、非競合領域を検索する。そし
て、次の「非競合領域有り?」の判断ステップS6にお
いて、非競合領域の有無を判断する。
【0035】ここで、図3に示したプログラムの後が、
図6に示すように続くものとした場合を考える。そし
て、第4ラングにおいて、“Ud工程C完了”という新
たな自動変数をリレー割付領域に割付けようとした場合
に空き領域がなければ、アドレス割付実行部7bは、既
に使用されておりメモリ属性がリレーである自動変数の
スコープ(有効範囲)をチェックして非競合領域を検索
する。
図6に示すように続くものとした場合を考える。そし
て、第4ラングにおいて、“Ud工程C完了”という新
たな自動変数をリレー割付領域に割付けようとした場合
に空き領域がなければ、アドレス割付実行部7bは、既
に使用されておりメモリ属性がリレーである自動変数の
スコープ(有効範囲)をチェックして非競合領域を検索
する。
【0036】図6において、右端部に矢印で示している
のが各変数のスコープである。第4ラングの時点では、
第1ラングで使用されている自動変数“Ud工程A完
了”のスコープは次の第5ラングまでであり、アドレス
0F00H番地の第0ビットは競合領域であるが、第2
ラングで使用されている自動変数“Ud工程B完了”の
スコープは第3ラングまでであり、アドレス0F00H
番地の第1ビットは非競合領域となっている。
のが各変数のスコープである。第4ラングの時点では、
第1ラングで使用されている自動変数“Ud工程A完
了”のスコープは次の第5ラングまでであり、アドレス
0F00H番地の第0ビットは競合領域であるが、第2
ラングで使用されている自動変数“Ud工程B完了”の
スコープは第3ラングまでであり、アドレス0F00H
番地の第1ビットは非競合領域となっている。
【0037】この場合、アドレス割付実行部7bは、判
断ステップS6で「YES」と判断してステップS4に
移行して、“Ud工程C完了”のアドレスを0F00H
番地の第1ビットに割付ける。
断ステップS6で「YES」と判断してステップS4に
移行して、“Ud工程C完了”のアドレスを0F00H
番地の第1ビットに割付ける。
【0038】一方、判断ステップS6において、非競合
領域が存在せず「NO」と判断した場合は、「割付領域
不足をユーザに報知」の処理ステップS10に移行し
て、アドレス割付実行部7bは、ディスプレイ4にエラ
ーメッセージを出力させるなどして、割付領域が不足し
ていることをユーザに報知すると処理を終了する。
領域が存在せず「NO」と判断した場合は、「割付領域
不足をユーザに報知」の処理ステップS10に移行し
て、アドレス割付実行部7bは、ディスプレイ4にエラ
ーメッセージを出力させるなどして、割付領域が不足し
ていることをユーザに報知すると処理を終了する。
【0039】この場合、作業者は、領域設定部6aによ
って、リレー割付領域の容量をより多く確保するように
設定をやり直してから、再度プログラムの変換を実行さ
せるようにして対応する。
って、リレー割付領域の容量をより多く確保するように
設定をやり直してから、再度プログラムの変換を実行さ
せるようにして対応する。
【0040】また、メモリ属性がワードである自動変数
については、ステップS7〜S9において、ワード割付
領域に対して同様の割付け処理が行われる。例えば、第
3,ラング使用されている自動変数“Ud演算結果
1”,“Ud演算結果2”は、ワード割付領域である7
F00H番地,7F01H番地に夫々割付けられる。
については、ステップS7〜S9において、ワード割付
領域に対して同様の割付け処理が行われる。例えば、第
3,ラング使用されている自動変数“Ud演算結果
1”,“Ud演算結果2”は、ワード割付領域である7
F00H番地,7F01H番地に夫々割付けられる。
【0041】以上のようにアドレスの割付けが行われた
結果、各命令のオペランドの実アドレスは図4に示すよ
うに設定され、上述のようにアドレス解決情報テーブル
18として生成され、更に、オブジェクトファイル16
のオブジェクトコードと合成されることにより、実行コ
ードファイル19及び自動変数と実アドレスとの対応を
示すメモリ配置情報20とが生成される。
結果、各命令のオペランドの実アドレスは図4に示すよ
うに設定され、上述のようにアドレス解決情報テーブル
18として生成され、更に、オブジェクトファイル16
のオブジェクトコードと合成されることにより、実行コ
ードファイル19及び自動変数と実アドレスとの対応を
示すメモリ配置情報20とが生成される。
【0042】生成された実行コードファイル19とメモ
リ配置情報20とは、プログラミング装置1に例えば
“セーブ”コマンドが入力されるとハードディスク8に
書き込まれて記憶され、また、“送信”コマンドが入力
されると、通信用インターフェイス9を介してPC5側
のRAM13上に転送される。
リ配置情報20とは、プログラミング装置1に例えば
“セーブ”コマンドが入力されるとハードディスク8に
書き込まれて記憶され、また、“送信”コマンドが入力
されると、通信用インターフェイス9を介してPC5側
のRAM13上に転送される。
【0043】そして、PC5に対してプログラム実行用
のコマンドが与えられると、PC5は、RAM13上に
転送されているプログラムの実行コードファイル19の
内容を実行する。また、メモリ配置情報20は、PC5
側に送信された実行コードファイル19を、ソースファ
イル15のレベルに逆変換する場合に使用される。
のコマンドが与えられると、PC5は、RAM13上に
転送されているプログラムの実行コードファイル19の
内容を実行する。また、メモリ配置情報20は、PC5
側に送信された実行コードファイル19を、ソースファ
イル15のレベルに逆変換する場合に使用される。
【0044】以上のように本実施例によれば、変換処理
部7のアドレス割付実行部7bは、プログラム中におい
て作業者により特定の名称が付与された自動変数が使用
されていると、その自動変数を介して渡されるデータの
格納領域をPC5側のRAM13上に設定されるリレー
若しくはワード割付領域中に割付けるようにした。
部7のアドレス割付実行部7bは、プログラム中におい
て作業者により特定の名称が付与された自動変数が使用
されていると、その自動変数を介して渡されるデータの
格納領域をPC5側のRAM13上に設定されるリレー
若しくはワード割付領域中に割付けるようにした。
【0045】従って、作業者は、プログラミングを行な
う際に自動変数についてアドレスの割付処理を一切意識
する必要がなく、プログラムの作成が容易になり、プロ
グラムの作成を効率良く行なうことができる。また、作
業者が付与した変数名を使用することによって作成後の
プログラムの理解も容易となる。
う際に自動変数についてアドレスの割付処理を一切意識
する必要がなく、プログラムの作成が容易になり、プロ
グラムの作成を効率良く行なうことができる。また、作
業者が付与した変数名を使用することによって作成後の
プログラムの理解も容易となる。
【0046】また、本実施例によれば、自動変数のアド
レスは、PC5によって実行される以前に全て確定する
ので、例えば、PC5のCPU11が実行コードファイ
ル19の内容を実行する段階で、スタック領域を用いて
自動変数のアドレスを割付けるような方式とは異なり、
CPU11が、実行段階において一々スタックポインタ
を参照する必要がない。従って、プログラムの処理速度
を低下させることなく高速に実行させることができる。
レスは、PC5によって実行される以前に全て確定する
ので、例えば、PC5のCPU11が実行コードファイ
ル19の内容を実行する段階で、スタック領域を用いて
自動変数のアドレスを割付けるような方式とは異なり、
CPU11が、実行段階において一々スタックポインタ
を参照する必要がない。従って、プログラムの処理速度
を低下させることなく高速に実行させることができる。
【0047】更に、本実施例によれば、リレー及びワー
ド割付領域は、自動変数を介して渡されるデータのみが
格納可能に設定されているので、プログラムにおいて不
用意にリレー及びワード割付領域に対応するアドレスを
記述することに起因して格納されているデータを破壊し
てしまうことがなく、データの保護を確実に行なうこと
ができる。
ド割付領域は、自動変数を介して渡されるデータのみが
格納可能に設定されているので、プログラムにおいて不
用意にリレー及びワード割付領域に対応するアドレスを
記述することに起因して格納されているデータを破壊し
てしまうことがなく、データの保護を確実に行なうこと
ができる。
【0048】また、リレー及びワード割付領域は、作業
者が、作成するプログラムの内容に応じて必要となる容
量を指定すれば、指定された容量の領域が領域設定部6
aにより確保されるので、プログラムの作成をより柔軟
に行なうことができる。
者が、作成するプログラムの内容に応じて必要となる容
量を指定すれば、指定された容量の領域が領域設定部6
aにより確保されるので、プログラムの作成をより柔軟
に行なうことができる。
【0049】加えて、本実施例によれば、作業者は、プ
ログラムにおいて一々自動変数のメモリ属性(ワード
か、リレーか)を指定せずとも、アドレス割付実行部7
bが命令の種類に応じてオペランドの自動変数のメモリ
属性を判断してワード,リレー領域に夫々割付けを行な
うので、割付領域を効率的に利用して、自動変数を使用
するために必要な容量を低減することができる。
ログラムにおいて一々自動変数のメモリ属性(ワード
か、リレーか)を指定せずとも、アドレス割付実行部7
bが命令の種類に応じてオペランドの自動変数のメモリ
属性を判断してワード,リレー領域に夫々割付けを行な
うので、割付領域を効率的に利用して、自動変数を使用
するために必要な容量を低減することができる。
【0050】また、本実施例によれば、アドレス割付実
行部7bは、割付領域中に新たな自動変数の割付処理を
行うための空き領域が存在しない場合には、既に割付け
られている自動変数の内、その時点以降では不要となる
自動変数に対応する領域に、新たな自動変数を介して渡
されるデータの格納領域を割付けるので、自動変数を使
用するために必要な割付領域の容量を最小限にすること
ができる。
行部7bは、割付領域中に新たな自動変数の割付処理を
行うための空き領域が存在しない場合には、既に割付け
られている自動変数の内、その時点以降では不要となる
自動変数に対応する領域に、新たな自動変数を介して渡
されるデータの格納領域を割付けるので、自動変数を使
用するために必要な割付領域の容量を最小限にすること
ができる。
【0051】本発明は上記し且つ図面に記載した実施例
にのみ限定されるものではなく、次のような変形または
拡張が可能である。割付領域の容量の指定は、プログラ
ムの記述後に行っても良く、要は、変換処理部7により
プログラムの変換を行う以前に行えば良い。また、割付
領域の容量の指定は必ずしも行う必要はなく、指定がな
い場合はデフォルト値で設定するようにしても良い。割
付領域に空きがない場合に非競合領域に割付を行う機能
は必要に応じて設ければ良く、図5に示すフローチャー
トのステップS5,S6,S9を削除して、判断ステッ
プS3またはS8で「NO」と判断した場合は、ステッ
プS10に移行するようにしても良い。
にのみ限定されるものではなく、次のような変形または
拡張が可能である。割付領域の容量の指定は、プログラ
ムの記述後に行っても良く、要は、変換処理部7により
プログラムの変換を行う以前に行えば良い。また、割付
領域の容量の指定は必ずしも行う必要はなく、指定がな
い場合はデフォルト値で設定するようにしても良い。割
付領域に空きがない場合に非競合領域に割付を行う機能
は必要に応じて設ければ良く、図5に示すフローチャー
トのステップS5,S6,S9を削除して、判断ステッ
プS3またはS8で「NO」と判断した場合は、ステッ
プS10に移行するようにしても良い。
【0052】割付領域として確保した領域は、必ずしも
当該領域に相当するアドレスを直接記述できないように
設定する必要はなく、システムの仕様に応じて適宜変更
して良い。自動変数のメモリ属性がリレー/ワードの何
れかを判断する場合は、必ずしも命令の種類から判断す
る必要はなく、例えば、メモリ属性に応じて、“Ud
r”,“Udw”などのように、自動変数に異なる接頭
語を付与して区別させても良い。また、自動変数を識別
するための特定の名称は、接頭語“Ud”を付すものに
限らず、例えば特定の接尾語を付しても良く、要は識別
が可能であれば形式は問わない。或いは、システムの構
成上、メモリマップにおいてメモリ属性を区別する必要
がない場合は、自動変数を1つの割付領域に順次割付け
るようにしても良い。
当該領域に相当するアドレスを直接記述できないように
設定する必要はなく、システムの仕様に応じて適宜変更
して良い。自動変数のメモリ属性がリレー/ワードの何
れかを判断する場合は、必ずしも命令の種類から判断す
る必要はなく、例えば、メモリ属性に応じて、“Ud
r”,“Udw”などのように、自動変数に異なる接頭
語を付与して区別させても良い。また、自動変数を識別
するための特定の名称は、接頭語“Ud”を付すものに
限らず、例えば特定の接尾語を付しても良く、要は識別
が可能であれば形式は問わない。或いは、システムの構
成上、メモリマップにおいてメモリ属性を区別する必要
がない場合は、自動変数を1つの割付領域に順次割付け
るようにしても良い。
【図面の簡単な説明】
【図1】本発明の一実施例における変換処理部によるユ
ーザプログラムの変換処理を概念的に示す図
ーザプログラムの変換処理を概念的に示す図
【図2】プログラマブルコントローラのメモリマップの
一例を示す図
一例を示す図
【図3】ラダー言語によるユーザプログラムの記述例を
示す図
示す図
【図4】アドレスの割付処理が実行された結果の一例を
示す図
示す図
【図5】アドレス割付処理部の制御内容を示すフローチ
ャート
ャート
【図6】非競合領域に対してアドレス割付を行う処理を
説明するための図1相当図
説明するための図1相当図
【図7】全体の電気的構成を示す機能ブロック図
【図8】プログラミング装置の詳細な構成を示す機能ブ
ロック図
ロック図
1はプログラミング装置、5はプログラマブルコントロ
ーラ、6aは領域設定部(領域設定手段)、7は変換処
理部(プログラム変換手段)、7bはアドレス割付実行
部(割付手段)を示す。
ーラ、6aは領域設定部(領域設定手段)、7は変換処
理部(プログラム変換手段)、7bはアドレス割付実行
部(割付手段)を示す。
Claims (5)
- 【請求項1】 ユーザプログラムを、プログラマブルコ
ントローラが実行可能な形式に変換するプログラム変換
手段を備えたプログラマブルコントローラのプログラミ
ング装置において、 前記プログラム変換手段は、前記ユーザプログラム中に
おいて、ユーザにより特定の名称が付与された変数が使
用されていると、前記ユーザプログラムをプログラマブ
ルコントローラが実行可能な形式に変換する際に、前記
変数を介して渡されるデータの格納領域をプログラマブ
ルコントローラ側に設定される割付領域中に割付けるよ
うに処理する割付手段を備えていることを特徴とするプ
ログラマブルコントローラのプログラミング装置。 - 【請求項2】 前記割付領域は、前記変数を介して渡さ
れるデータのみが格納可能に設定されることを特徴とす
る請求項1記載のプログラマブルコントローラのプログ
ラミング装置。 - 【請求項3】 前記割付領域の容量がユーザによって指
定されている場合は、前記指定に応じて前記割付領域の
容量を確保する領域設定手段を備えたことを特徴とする
請求項1または2記載のプログラマブルコントローラの
プログラミング装置。 - 【請求項4】 前記割付手段は、前記変数をオペランド
とする命令の種類に応じて当該変数の属性を判断し、前
記属性に応じた割付領域に前記変数を介して渡されるデ
ータの格納領域を割付けるように処理することを特徴と
する請求項1乃至3の何れかに記載のプログラマブルコ
ントローラのプログラミング装置。 - 【請求項5】 前記割付手段は、新たな変数の割付け処
理を行う時点で前記割付領域中に空き領域が存在しない
場合には、前記割付領域中に既に割付けられている変数
の内、前記新たな変数が使用されているステップ以降の
ユーザプログラムでは使用されない変数の領域に、前記
新たな変数を介して渡されるデータの格納領域を割付け
ることを特徴とする請求項1乃至4の何れかに記載のプ
ログラマブルコントローラのプログラミング装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15215197A JPH113105A (ja) | 1997-06-10 | 1997-06-10 | プログラマブルコントローラのプログラミング装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15215197A JPH113105A (ja) | 1997-06-10 | 1997-06-10 | プログラマブルコントローラのプログラミング装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH113105A true JPH113105A (ja) | 1999-01-06 |
Family
ID=15534152
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP15215197A Pending JPH113105A (ja) | 1997-06-10 | 1997-06-10 | プログラマブルコントローラのプログラミング装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH113105A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005101147A1 (ja) * | 2004-04-15 | 2005-10-27 | Mitsubishi Denki Kabushiki Kaisha | プログラマブルロジックコントローラの周辺装置及びそのプログラム作成方法 |
EP1744230A2 (en) * | 2005-07-12 | 2007-01-17 | Jtekt Corporation | Safety programmable logic controller |
JP2007179114A (ja) * | 2005-12-26 | 2007-07-12 | Digital Electronics Corp | データ処理装置、その指示データ生成装置、プログラムおよび記録媒体 |
KR100817364B1 (ko) * | 2006-04-05 | 2008-03-26 | 미쓰비시덴키 가부시키가이샤 | 프로그래머블 로직 컨트롤러의 주변 장치 및 그 프로그램작성 방법 |
US7937172B2 (en) * | 2004-07-28 | 2011-05-03 | Mitsubishi Electric Corporation | Program creating device for programmable controller, program creating method for programmable controller, and recording medium having program recorded thereon |
-
1997
- 1997-06-10 JP JP15215197A patent/JPH113105A/ja active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005101147A1 (ja) * | 2004-04-15 | 2005-10-27 | Mitsubishi Denki Kabushiki Kaisha | プログラマブルロジックコントローラの周辺装置及びそのプログラム作成方法 |
CN100456182C (zh) * | 2004-04-15 | 2009-01-28 | 三菱电机株式会社 | 可编程逻辑控制器的外围装置及其程序生成方法 |
US7757025B2 (en) | 2004-04-15 | 2010-07-13 | Mitsubishi Denki Kabushiki Kaisha | Programmable logic controller peripheral device and program creation method thereof |
US7937172B2 (en) * | 2004-07-28 | 2011-05-03 | Mitsubishi Electric Corporation | Program creating device for programmable controller, program creating method for programmable controller, and recording medium having program recorded thereon |
EP1744230A2 (en) * | 2005-07-12 | 2007-01-17 | Jtekt Corporation | Safety programmable logic controller |
US7286885B2 (en) | 2005-07-12 | 2007-10-23 | Jtekt Corporation | Safety programmable logic controller |
EP1744230A3 (en) * | 2005-07-12 | 2009-01-07 | Jtekt Corporation | Safety programmable logic controller |
JP2007179114A (ja) * | 2005-12-26 | 2007-07-12 | Digital Electronics Corp | データ処理装置、その指示データ生成装置、プログラムおよび記録媒体 |
KR100817364B1 (ko) * | 2006-04-05 | 2008-03-26 | 미쓰비시덴키 가부시키가이샤 | 프로그래머블 로직 컨트롤러의 주변 장치 및 그 프로그램작성 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2007535241A (ja) | 条件付で実行可能モジュールを縮小するシステムおよび方法 | |
KR19990036893A (ko) | 다중 어드레싱 모드를 실행하는 프로세서 구조 및 그 설계방법 | |
JPH113105A (ja) | プログラマブルコントローラのプログラミング装置 | |
JP4319082B2 (ja) | プログラミングシステム | |
JPS6122817B2 (ja) | ||
US6009268A (en) | Device for programming a stored program controller | |
JP2847688B2 (ja) | プログラム変換装置およびプロセッサ | |
JPH087680B2 (ja) | 命令カウンタのロード装置 | |
CN108037949A (zh) | 安装包多渠道打包方法、装置、计算机设备及存储介质 | |
US7447553B1 (en) | Software object, system and method for an automation program with function rules which has multiple uses for various programming tools | |
EP1804166A2 (en) | Memory device and information processing apparatus | |
JP2006018759A (ja) | 制御装置及び方法 | |
CN110249590B (zh) | 控制系统及路径信息生成方法 | |
JP2006146670A (ja) | プログラミング装置、シンボル自動登録方法、プログラムおよび記録媒体 | |
JPH10333718A (ja) | プログラマブルコントローラのプログラミング装置及びプログラマブルコントローラ | |
JPS6180426A (ja) | システム編集処理方式 | |
EP0427558A2 (en) | Task switching system | |
JPH06175916A (ja) | アドレス生成処理方法 | |
JPH10326105A (ja) | プログラマブルコントローラのプログラミング装置及びプログラマブルコントローラ | |
JPH0754469B2 (ja) | 仮想計算機システムのための入出力命令実行装置 | |
JPH0133855B2 (ja) | ||
JP2969776B2 (ja) | データ識別方式 | |
JPH0391046A (ja) | データ処理装置 | |
JPH0934788A (ja) | アドレス変換装置及びアドレス変換方法 | |
JPH0415826A (ja) | ワンチップマイクロコンピュータ |