JP3251414B2 - プログラマブルコントローラおよびそのプログラム容量変更方法 - Google Patents

プログラマブルコントローラおよびそのプログラム容量変更方法

Info

Publication number
JP3251414B2
JP3251414B2 JP00120394A JP120394A JP3251414B2 JP 3251414 B2 JP3251414 B2 JP 3251414B2 JP 00120394 A JP00120394 A JP 00120394A JP 120394 A JP120394 A JP 120394A JP 3251414 B2 JP3251414 B2 JP 3251414B2
Authority
JP
Japan
Prior art keywords
program
capacity
file
data
determined
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 - Lifetime
Application number
JP00120394A
Other languages
English (en)
Other versions
JPH07210217A (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
Priority to JP00120394A priority Critical patent/JP3251414B2/ja
Priority to US08/365,191 priority patent/US5610809A/en
Priority to GB9500146A priority patent/GB2285527B/en
Priority to KR1019950000330A priority patent/KR0137311B1/ko
Priority to DE19500626A priority patent/DE19500626A1/de
Publication of JPH07210217A publication Critical patent/JPH07210217A/ja
Priority to HK98110348A priority patent/HK1009657A1/xx
Application granted granted Critical
Publication of JP3251414B2 publication Critical patent/JP3251414B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99956File allocation
    • Y10S707/99957Garbage collection

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、プログラマブルコン
トローラに関し、特に、プログラマブルコントローラに
おけるプログラムおよび各種データの管理および実行方
式に関するものである。
【0002】
【従来の技術】図29は、この種のプログラマブルコン
トローラにおける従来における構成を示し、図におい
て、1は周辺機器、2はCPUユニットである。該CP
Uユニット2において、3は周辺機器とのデータのやり
とりを行う周辺機器用インタフェース部、4は演算処理
部、4Aはシーケンスプログラムの一部を高速に実行す
るH/W演算回路、5はシステムのプログラムを格納す
るマイクロプログラムメモリ、6はシーケンスプログラ
ム、ファイルメモリ、コメント等のユーザデータを格納
するユーザメモリである。また、7はプログラム全体の
スキャンタイムを格納するスキャンタイムメモリ、8は
ポインタのアドレス情報を格納するポインタテーブル、
15はユーザメモリ割付情報メモリである。
【0003】また、16はCPUに接続されるユニット
群であり、16aは入力ユニット、16bは高速カウン
タ、16cは出力ユニット、16dはアナログユニッ
ト、16eはリンクユニットである。さらに、17はC
PUに接続されるユニット群16に接続される機器群で
あり、17aはリミットスイッチ、17bはセンサ、1
7cはバルブ調節計、17dはモータである。
【0004】つぎに、動作について説明する。図30
は、周辺機器でのユーザメモリ割付例であり、この例で
は、シーケンスプログラムが1000バイト、ファイル
データが2000バイト、コメントが3000バイトで
割り付けられている。この場合におけるユーザメモリ割
付情報メモリ15と、ユーザメモリ6の割付は図示のと
おり(プログラム領域6a、ファイルデータ領域6b、
コメント領域6c)となる。ここで、15−1はシーケ
ンスプログラムが格納されるエリアの先頭アドレス、1
5−2はコメントデータが格納されるエリアの先頭アド
レス、15−3はコメントデータが格納されるエリアの
先頭アドレスをそれぞれ示し、実際には周辺機器1より
シーケンスプログラムの読出しもしくは書込み要求が発
行されると、出力ユニット16cはそれぞれの先頭アド
レスからデータを書込むことになる。
【0005】図31は、図30に示したプログラム領域
6aの具体的な構成例を示したものであり、図におい
て、BK1からBK5までの機能毎のブロックが実行順
番に配置されている。ここで、BK1は起動条件のチェ
ックやイニシャルデータをセットするなど始動時のみ実
行すればよい(始動時処理)ブロックである。BK2は
リミットスイッチ17aやセンサ17b等からの信号を
取り込んだ入力ユニット16aや高速カウンタ16bの
処理を実行する(入力処理)ブロックである。BK3は
BK2からの指示を受けて演算を実行する(動作制御処
理)ブロックである。BK4はBK3からの動作指示を
受けて出力ユニット16cやアナログユニット16dを
介してバルブ調節計17cやモータ17dへの出力を実
行する(出力処理)ブロックであり、ブロック中のFE
DNは処理の完了を示す命令である。
【0006】上記BK1からBK4までの一連の処理は
スキャンと呼ばれ、図31の右側に示したように順次サ
イクリックに実行され、実際の制御が達成される。ま
た、BK5は、数値データの処理等、必要なときのみ呼
ばれて処理を行う(サブルーチン処理)ブロックであ
る。上記の構成は、シーケンスプログラムの一構成例で
あるが、シーケンスプログラムは、以上のような機能毎
のブロックに分割作成し、それらのブロックを複数の人
間により並行開発するのが一般的である。
【0007】つぎに、プログラムの読出しもしくは書込
み動作について説明する。図32は、プログラムを読み
出す場合の周辺機器での操作例であり、プログラムの全
範囲を読出すか、指定範囲を読出すかの設定を行い、指
定範囲のみの場合は、開始ステップと終了ステップを指
定する。図32では、図31に示したBK2を読み出す
場合の指定方法について示してある。書込み動作に関し
ても同様である。
【0008】つぎに、プログラムメモリの内容を追加す
る場合の動作について説明する。図33は、シーケンス
プログラム上での各ブロックの配置について示したもの
であり、図において、6a(1)は変更前のメモリ内
容、6a(2)は6a(1)に対してBK2のブロック
のプログラムを100から200へ変更した場合のメモ
リ内容、6a(3)は6a(2)に対してBK6の新規
ブロックを追加した場合のメモリ内容であり、1(2)
は6a(2)に対応した周辺機器からの操作、1(3)
は6a(3)に対応した周辺機器からの操作である。こ
こで、BK6は入出力チェック処理のブロックとし、B
K2とBK3の間に実行する必要があるものである。
【0009】つぎに、プログラム実行の動作について説
明する。プログラムの実行にあたっては、先ずシーケン
スプログラムメモリの先頭、すなわち、BK1の先頭を
実行開始するアドレスにセットしたのち、BK1→BK
2→BK3と順番に実行を行う。この際、簡単な命令に
関してはH/W演算回路4Aが処理を行い、その他の命
令はマイクロプログラムメモリ5に格納されるマイクロ
プログラムにより処理が行われる。FEND命令を検出
すると所定のEND処理を行って、再度BK1から同様
にサイクリックにプログラムが実行される。また、BK
5に関しては常時サイクリックには実行されず、CAL
L命令が実行されたときのみ実行される。また、一連の
スキャンに要した処理時間は、END処理にてスキャン
タイムメモリ7に格納される。
【0010】つぎに、ポインタの動作について説明す
る。図34は、BK1、BK2およびBK4におけるプ
ログラム例である。ここで、JMPは所定のポインタま
でジャンプする命令であり、CALL命令は所定のポイ
ンタにあるサブルーチンをコールする命令である。ただ
し、各ブロックのポインタNo.は、重複しないように
つける必要がある。また、MOV命令は、定数をファイ
ルメモリに転送する命令であり、LEDCは指定デバイ
スのコメントを表示部に表示する命令である。
【0011】図35は、ポインタテーブル8の構成につ
いて示したものであり、本テーブルはプログラム実行前
に予めセットされているものである。なお、ポインタが
存在しない場合には、実際に存在しない大きなプログラ
ムアドレス、たとえば、FFFFH等の値が格納されて
いるものとする。
【0012】図36は、JMP命令の処理について示す
フローチャートであり、まず、JMP命令を検出すると
ポインタNo.をシーケンスプログラムメモリ5より読
出し(f141)、図29に示したポインタテーブル8
の内容にしたがって、プログラムアドレスを算出する
(f142)。つぎに、その値が存在可能なアドレスで
あるか否かを判断し(f143)、“ポインタのアドレ
ス>最大アドレス”であると判断した場合には、ポイン
タなしとしてエラー処理を実行する(f145)。反対
に、“ポインタのアドレス≦最大アドレス”であると判
断した場合には、指定のアドレスのプログラムへジャン
プする処理を行って(f144)、命令が終了する。
【0013】図37は、MOV命令の処理について示す
フローチャートであり、まず、第1デバイスの定数を読
出した後(f281)、第2デバイスのファイルNo.
を読出し(f282)、ユーザメモリ割付情報メモリ1
5のファイルデータ先頭アドレス15−2(図30参
照)により示される値を加えたアドレスへ、データへの
書込みを行う(f283)。
【0014】図38は、コメントデータ内部の構成につ
いて示したものであり。図39は、コメント読出命令で
あるLEDC命令の処理について示したフローチャート
であり、まず、ユーザメモリ割付情報メモリ15のコメ
ント先頭アドレス15−3(図30参照)から格納され
ているコメントデータを読出した後(f291)、表示
部へその内容を表示する(f292)。
【0015】複数データ、特に、プログラムの管理方式
に関しては、特開平1−205203号公報に開示され
ている「プログラマブルコントローラのプログラム管理
方式」があるが、容量の変更が生じた場合には、結局全
てのプログラムを周辺機器側に読み込む必要がある。
【0016】さらに、処理時間に関しては、全体の処理
時間しか検出できないため、どの部分に多く処理時間が
かかっているかを把握することは困難であった。特に、
プログラマブルコントローラにおけるプログラムサイズ
は、システムの規模が大きくなるにつれて年々膨大化す
る傾向にあり、数年前までは高々数1000ステップ程
度で十分であったものが、最近では100000ステッ
プを超えるものまで要求されている。そのようなサイズ
のプログラムを個々にチェックして処理時間を解析する
ことは不可能に近い。しかしながら、プログラマブルコ
ントローラの性能は、制御システム全体のリアルタイム
性に大きく寄与するため、個々のブロックの処理時間を
詳細に検討して短縮することは非常に重要なことであ
る。
【0017】また、特開平2−259910号公報の
「NC加工プログラムのファイル管理方式」では、NC
(数値制御)の場合を例にファイル管理方式について開
示されているが、単にファイル管理部に絶対アドレスを
採用したのみであり、基本的には一般のパソコンを利用
したファイル方式と大差なく、FATにしたがって、順
次プログラムを実行する必要があり、高速応答性が要求
されるプログラマブルコントローラに対して適用するこ
とは困難である。
【0018】さらに、特開平3−222047号公報の
「領域管理方式」にあっては、未使用領域の情報につい
て開示されているが、連続した領域を確保するために
は、結局空きエリアを順番にサーチする必要がある。
【0019】その他、この発明に関連する参考技術文献
としては、特開平2−140825号公報に開示されて
いる「プログラムの再配置処理方法」、特開平2−93
742号公報に開示されている「データファイルの未使
用領域再配置方式」、特開平2−33653号公報に開
示されている「プログラマブル制御装置」がある。
【0020】
【発明が解決しようとする課題】従来におけるプログラ
マブルコントローラにあっては、以上のようなユーザメ
モリの管理方式であるため、以下の如き問題点があっ
た。
【0021】第1に、ユーザメモリ全体がユーザ割付情
報にて管理されているため、プログラムの容量を増やし
たり、ファイルデータの容量を増やしたりする場合は、
格納場所の絶対アドレスが変化するため、容易に変更す
ることができないという問題点があった。
【0022】第2に、シーケンスプログラムを各ブロッ
ク毎に分割して作成する場合、最終的にはひとつのプロ
グラムに合体してCPU本体に格納しなければならない
ので、プログラムのある1ブロックを追加変更する場合
でも、そのブロック以降に配置される全てのブロックを
再度CPUへ書込む必要がある。また、プログラマブル
コントローラに、一般のパソコンで使用されるファイル
管理を導入するとしても、つぎの問題が生じる。すなわ
ち、シーケンスプログラムは通常H/W演算回路で高速
に実行されており、シーケンスプログラムの途中で処理
を中断して他のプログラムへ移ることは困難である。し
たがって、プログラムファイルのデータは連続で配置さ
れていなければならない。さらに、始動時のみ実行すれ
ばよいブロックにおいても常にスキャン実行を行う必要
があり、処理時間に無駄を生じる場合があった。
【0023】第3に、各ブロック間で共通にポインタN
o.を使用するため、設計を開始する以前にあらかじめ
ブロック毎にポインタNo.の割り振りを行っておく必
要があり、逆に、一度作成済のプログラムを再利用する
場合は、再度ポインタNo.を変更する必要があった。
【0024】第4に、複数プログラムを分割作成する場
合に、全データメモリを複数プログラムで共通利用する
ため、あらかじめプログラム単位毎にデバイスを割り付
けておく必要があり、途中でデータを増やしたい場合は
データの再割付を行い、それに対応してプログラムを変
更する必要があった。
【0025】第5に、複数プログラムを分割作成する場
合に、全コメントデータを複数プログラムで共通利用す
るため、コメントを変更もしくは追加する度に、コメン
トデータを再結合する必要があった。
【0026】以上の問題は、特に、近年制御システムの
複雑化が進行するなか、機能毎にプログラムを分割し
て、複数人で設計を同時に進めることにより設計効率を
あげるとともに、プログラムの機能を明確にしていく上
で大きな障害となっていた。
【0027】この発明にかかるプログラマブルコントロ
ーラは、上記のような課題を解決するためになされたも
ので、プログラムやデータを複数のファイルとしてCP
U内のメモリに自由に読み書き可能とすることにより、
データの追加や変更を容易にすることを第1の目的とす
る。
【0028】また、プログラムの実行形態を自由に指定
可能とすることにより、スキャンタイムの軽減を図るこ
とを第2の目的とする。
【0029】また、プログラムの処理時間を各ブロック
毎で監視することにより、処理時間の検討を容易に可能
とすることを第3の目的とする。
【0030】また、各プログラム毎に同一のポインタN
o.を使用可能とし、かつ、プログラム中で使用するデ
ータをプログラム単位で切り替え可能とし、かつプログ
ラムのコメントデータをプログラム単位で切り替え可能
とすることにより複数人によるプログラミング性を向上
させることを第4の目的とする。
【0031】
【課題を解決するための手段】上記目的を達成するため
に、本発明にかかるプログラマブルコントローラは、自
動プログラミングを実行する際に、各工程や制御対象毎
に分割された複数のシーケンスプログラムおよび工程ス
ケジュールや加工データ等の複数データをファイルとし
て格納するユーザメモリと、各ファイルの格納場所や属
性および容量を格納するユーザメモリ管理テーブルと、
周辺機器からのファイルの新規書き込みを行う書込手段
と、前記ファイルの容量変更を行う容量変更手段と、を
具備し、前記容量変更手段は、所定のプログラムが存在
するか否かを判断し、所定のプログラムが存在し、か
つ、空きエリアが存在すると判断した場合には、つぎ
に、要求データ中の追加容量が空き容量以内か否かを判
断し、要求データ中の追加容量が空き容量以内ではな
い、あるいは、該当ファイルの直後に空きエリアが存在
しないと判断した場合には、指定プログラムと、それよ
り前方(先頭アドレスの小さい)プログラムを前詰め
し、指定プログラムより後方(先頭アドレスの大きい)
プログラムを後詰めすることによりプログラムの容量変
更を行うことを特徴とする。
【0032】つぎの発明にかかるプログラマブルコント
ローラのプログラム容量変更方法は、所定のプログラム
が存在するか否かを判断し、所定のプログラムが存在す
る場合には、つぎに、該当ファイルの直後に空きエリア
が存在するか否かを判断し、空きエリアが存在すると判
断した場合には、つぎに、要求データ中の追加容量が空
き容量以内か否かを判断し、要求データ中の追加容量が
空き容量以内ではない、あるいは、該当ファイルの直後
に空きエリアが存在しないと判断した場合には、指定プ
ログラムと、それより前方(先頭アドレスの小さい)プ
ログラムを前詰めし、指定プログラムより後方(先頭ア
ドレスの大きい)プログラムを後詰めすることによりプ
ログラムの容量変更を行うことを特徴とする。
【0033】つぎの発明にかかるプログラマブルコント
ローラは、自動プログラミングを実行する際に、各工程
や制御対象毎に分割された複数のシーケンスプログラム
および工程スケジュールや加工データ等の複数データを
ファイルとして格納するユーザメモリと、各ファイルの
格納場所や属性および容量を格納するユーザメモリ管理
テーブルと、周辺機器からのファイルの新規書き込みを
行う書込手段と、前記ファイルの容量変更を行う容量変
更手段と、プログラムの実行を管理するプログラム実行
管理テーブルと、前記ユーザメモリに格納された複数の
シーケンスプログラムに対して、必要なシーケンスプロ
グラムのみ選択的に実行する制御手段と、を具備し、前
記容量変更手段は、所定のプログラムが存在するか否か
を判断し、所定のプログラムが存在し、かつ、空きエリ
アが存在すると判断した場合には、つぎに、要求データ
中の追加容量が空き容量以内か否かを判断し、要求デー
タ中の追加容量が空き容量以内ではない、あるいは、該
当ファイルの直後に空きエリアが存在しないと判断した
場合には、指定プログラムと、それより前方(先頭アド
レスの小さい)プログラムを前詰めし、指定プログラム
より後方(先頭アドレスの大きい)プログラムを後詰め
することによりプログラムの容量変更を行うことを特徴
とする。
【0034】つぎの発明にかかるプログラマブルコント
ローラは、自動プログラミングを実行する際に、各工程
や制御対象毎に分割された複数のシーケンスプログラム
および工程スケジュールや加工データ等の複数データを
ファイルとして格納するユーザメモリと、各ファイルの
格納場所や属性および容量を格納するユーザメモリ管理
テーブルと、周辺機器からのファイルの新規書き込みを
行う書込手段と、前記ファイルの容量変更を行う容量変
更手段と、プログラムの実行を管理するプログラム実行
管理テーブルと、前記ファイル毎のスキャンタイムを記
憶するスキャンタイムメモリと、前記ファイル単位のシ
ーケンスプログラムの実行時間を監視する制御手段と、
を具備し、前記容量変更手段は、所定のプログラムが存
在するか否かを判断し、所定のプログラムが存在し、か
つ、空きエリアが存在すると判断した場合には、つぎ
に、要求データ中の追加容量が空き容量以内か否かを判
断し、要求データ中の追加容量が空き容量以内ではな
い、あるいは、該当ファイルの直後に空きエリアが存在
しないと判断した場合には、指定プログラムと、それよ
り前方(先頭アドレスの小さい)プログラムを前詰め
し、指定プログラムより後方(先頭アドレスの大きい)
プログラムを後詰めすることによりプログラムの容量変
更を行うことを特徴とする。
【0035】つぎの発明にかかるプログラマブルコント
ローラは、自動プログラミングを実行する際に、各工程
や制御対象毎に分割された複数のシーケンスプログラム
および工程スケジュールや加工データ等の複数データを
ファイルとして格納するユーザメモリと、各ファイルの
格納場所や属性および容量を格納するユーザメモリ管理
テーブルと、周辺機器からのファイルの新規書き込みを
行う書込手段と、前記ファイルの容量変更を行う容量変
更手段と、プログラムの実行を管理するプログラム実行
管理テーブルと、ポインタを管理するポインタ管理テー
ブルと、各シーケンスプログラム間において共通に使用
可能な共通ポインタあるいは各シーケンスプログラム内
でのみ有効なローカルポインタを選別して実行する制御
手段と、を具備することを特徴とする。
【0036】つぎの発明にかかるプログラマブルコント
ローラは、自動プログラミングを実行する際に、各工程
や制御対象毎に分割された複数のシーケンスプログラム
および工程スケジュールや加工データ等の複数データを
ファイルとして格納するユーザメモリと、各ファイルの
格納場所や属性および容量を格納するユーザメモリ管理
テーブルと、周辺機器からのファイルの新規書き込みを
行う書込手段と、前記ファイルの容量変更を行う容量変
更手段と、プログラムの実行を管理するプログラム実行
管理テーブルと、ファイルデータを管理するファイルデ
ータ管理テーブルと、前記シーケンスプログラムが切り
換わるのに同期してデータファイルを切り換える制御手
段と、を具備し、前記容量変更手段は、所定のプログラ
ムが存在するか否かを判断し、所定のプログラムが存在
し、かつ、空きエリアが存在すると判断した場合には、
つぎに、要求データ中の追加容量が空き容量以内か否か
を判断し、要求データ中の追加容量が空き容量以内では
ない、あるいは、該当ファイルの直後に空きエリアが存
在しないと判断した場合には、指定プログラムと、それ
より前方(先頭アドレスの小さい)プログラムを前詰め
し、指定プログラムより後方(先頭アドレスの大きい)
プログラムを後詰めすることによりプログラムの容量変
更を行うことを特徴とする。
【0037】つぎの発明にかかるプログラマブルコント
ローラは、自動プログラミングを実行する際に、各工程
や制御対象毎に分割された複数のシーケンスプログラム
および工程スケジュールや加工データ等の複数データを
ファイルとして格納するユーザメモリと、各ファイルの
格納場所や属性および容量を格納するユーザメモリ管理
テーブルと、周辺機器からのファイルの新規書き込みを
行う書込手段と、前記ファイルの容量変更を行う容量変
更手段と、プログラムの実行を管理するプログラム実行
管理テーブルと、コメントを管理するコメント管理テー
ブルと、前記シーケンスプログラムが切り換わるのに同
期してコメントファイルを切り換える制御手段と、を具
備し、前記容量変更手段は、所定のプログラムが存在す
るか否かを判断し、所定のプログラムが存在し、かつ、
空きエリアが存在すると判断した場合には、つぎに、要
求データ中の追加容量が空き容量以内か否かを判断し、
要求データ中の追加容量が空き容量以内ではない、ある
いは、該当ファイルの直後に空きエリアが存在しないと
判断した場合には、指定プログラムと、それより前方
(先頭アドレスの小さい)プログラムを前詰めし、指定
プログラムより後方(先頭アドレスの大きい)プログラ
ムを後詰めすることによりプログラムの容量変更を行う
ことを特徴とする。
【0038】
【作用】この発明にかかるプログラマブルコントローラ
およびプログラマブルコントローラのプログラム容量変
更方法は、機能毎のシーケンスプログラムの読み書きを
任意に実行可能とする手段が、変更もしくは追加が必要
となったブロックに対してのみCPU本体からの読み書
きを行う。
【0039】つぎの発明にかかるプログラマブルコント
ローラは、各シーケンスプログラムの実行方式を任意に
指定可能とする手段が、始動時のみに実行するプログラ
ムと毎回実行するプログラムを選別するとともに指定さ
れた順番にしたがって各ブロックを実行する。
【0040】つぎの発明にかかるプログラマブルコント
ローラは、実行時間を監視する手段が、各プログラム終
了毎に時間監視テーブルへ処理時間を書き込む。
【0041】つぎの発明にかかるプログラマブルコント
ローラは、各プログラム間で共通に使用可能な共通ポイ
ンタと、各プログラム内でのみ有効なローカルポインタ
を選別して実行する手段が、ポインタ管理テーブルにし
たがって、共通ポインタかローカルポインタかを判別す
るとともに実行を行う。
【0042】つぎの発明にかかるプログラマブルコント
ローラは、データのアドレスをファイルデータ管理メモ
リにしたがって、切り替える手段が、実行されるプログ
ラム名が変更される毎に、使用するデータの先頭アドレ
スを、プログラムと同一ファイルレジスタの先頭アドレ
スにセットする。
【0043】つぎの発明にかかるプログラマブルコント
ローラは、データのコメント管理メモリにしたがって切
り替える手段が、実行されるプログラム名が変更される
毎に、使用するデータの先頭アドレスを、プログラムと
同一ファイル名のファイルコメントの先頭アドレスにセ
ットする。
【0044】
【実施例】実施例1. 図1は、この発明にかかる実施例1のプログラマブルコ
ントローラの概略構成を示すブロック図であり、図にお
いて、2Aはプログラマブルコントローラであり、図中
1〜8までは、図29に示した1〜8と同一のものを示
している。9はユーザメモリ内における各種プログラム
やデータの存在場所などを管理するユーザメモリ管理テ
ーブル、10はプログラムの実行を管理するプログラム
実行管理テーブル、11は各プログラムファイル毎のス
キャンタイムを格納するファイル毎スキャンタイムメモ
リ、12はポインタテーブル8の内容を管理するポイン
タ管理テーブル、13はファイルデータを切り替えるた
めのファイルデータ管理メモリ、14はコメントを切り
替えるための情報を格納するコメント管理メモリであ
る。
【0045】図2は、ユーザメモリ6の構成例について
示したものであり、BK1からBK5までのファイルが
順に格納されている。図3は、ユーザメモリ管理テーブ
ル9の内部構成について示したものである。ユーザメモ
リ管理テーブル9において、9aはユーザメモリ6内に
登録されているデータの登録情報を格納する登録エリア
管理テーブルであり、9bはユーザメモリ6内の空きメ
モリを管理する空きエリア管理テーブルである。
【0046】図4は、登録エリア管理テーブル9aのデ
ータ構成である。9a−1は登録個数mであり、9a−
2は1番目に登録されたデータのプログラム名であり、
9a−3はそのデータの属性、たとえば、シーケンスプ
ログラムか、ファイルデータか等を識別する属性であ
り、9a−4は同データの開始するユーザメモリ5上で
の先頭アドレスであり、9a−5は同データの容量であ
る。同様に、m個分のデータが格納されている。
【0047】図5は、空きエリア管理テーブル9bのデ
ータ構成を示している。9b−1は空きエリアの個数p
であり、9b−2は1番目の空きエリアの開始するユー
ザメモリ5上での先頭アドレスであり、9b−3は同空
きエリアの容量である。同様に空きエリアp個分のデー
タが格納されている。
【0048】図6は、ファイル新規書込みを行う場合の
周辺機器での操作例について示した説明図であり、図の
1(4)では、100ステップ分のBK6のプログラム
を新規書込みする場合について示してある。
【0049】図7は、図6に示した操作時における周辺
機器からの要求データの構成について示したものであ
り、R1は新規登録の要求データであり、A1はその場
合の応答データである。また、R2はデータ書込みの要
求データであり、A2はその場合の応答データである。
【0050】図8は、図7に示した各要求データに対応
したCPU側の処理について示しており、図8(a)に
示すF1はR1の要求データに、図8(b)に示すF2
はR2の要求データにそれぞれ対応した処理である。
【0051】図9は、ファイルの容量を変更をする場合
における周辺機器側の操作と、そのときの要求データR
3について示したものであり、ここでは例として、BK
2(図2参照)のプログラムを100ステップ分の容量
を増やす場合について示している。図10に示すF3
は、R3に対応したCPU側の処理を示すフローチャー
トである。
【0052】図11は、図6および図9の操作を行った
場合のユーザメモリ6の内容について示してあり、図1
1(a)は、200の容量をもつBK6を追加する場
合、図11(b)は、BK2の容量を100から200
へ変更した場合をそれぞれ示し、6(1)は操作前の状
態、6(2)は図6の操作後、6(3)は図9の操作後
の状態である。
【0053】図12は、図11に対応したユーザメモリ
管理テーブル9の状態について示したものであり、図中
9a(1)から9a(3)の状態は、図11の6(1)
から6(3)の状態に対応する。ここで、図12(a)
は、登録エリア管理テーブルの状態、図12(b)は、
空きエリア管理テーブルの状態を示している。
【0054】つぎに、動作について説明する。ユーザメ
モリ6の中には、あらかじめ図2に示されるように、B
K1からBK5のプログラムがあらかじめ格納されてい
るものとする。このとき、登録エリア管理テーブルは9
a(1)となる。すなわち、合計で5個のファイルが格
納されており、たとえば、2番目に登録されているファ
イルは、プログラム名が“BK2”のシーケンスプログ
ラムであり、100バイト目から100バイト分が格納
されていることを示す。また、このとき、空き管理テー
ブルは9b(1)のようになる。すなわち、空きエリア
は一つあり、500バイト目から500バイト分の容量
があることを示す。
【0055】ここで、図6に示した新規書込み操作を行
った場合の動作について説明する。まず、周辺機器1か
らは、図7に示される新規登録R1の要求がCPUに発
行される。そのときのCPUの処理を図8(a)に示し
たフローチャートF1にしたがって説明する。まず、要
求データ中のプログラム名R12が、登録エリア管理テ
ーブル9a中に存在するか否かを判断し(f11)、既
に存在するならばエラーとする。反対に、存在しないと
判断した場合には、空きエリア管理テーブル9b内に要
求データ中の容量R14を確保できるか否かを判断し
(f12)、確保できると判断した場合には、登録エリ
ア管理テーブル9aに登録を行うとともに(f13)、
空きエリア管理テーブル9bを変更する(f14)。
【0056】その後、登録エリア管理テーブル9aにお
ける登録No.を、応答データA1中の登録No.A1
2へセットして処理は完了する(f15)。また、f1
2において、空きエリアが存在しないと判断した場合
は、一度全ファイルを前方に前詰めし(f16)、再度
f12と同様の判断を行い(f17)、それでも不足す
ると判断した場合にはエラーとし、反対に、格納可能で
あればf13へ処理を移す。これは、一度登録されたフ
ァイルが削除されると、空きエリアの個数が増加するた
め、連続で確保できる容量が減少するためである。
【0057】新規登録が完了すると、周辺機器1から、
データ書込み要求R2が実行される。この場合の処理に
ついて、図8(b)に示したフローチャートF2にした
がって説明する。まず、登録No.R22が、登録エリ
ア管理テーブル9aに存在するか(登録済か)否かを判
断し(f12)、存在しないと判断した場合には、エラ
ーとする。存在すると判断した場合には、オフセットア
ドレスR23および書込み容量R24が、9a−5で示
される容量範囲内か否か判断し(f22)、範囲内であ
ると判断した場合には、オフセットアドレスR23、書
込み容量R24にしたがって、書込みデータR25を順
次書込む(f23)。この場合、実際の書込み先頭アド
レスは、先頭アドレス9a−4の内容にオフセットアド
レスR23を足した値となる。
【0058】以上の操作により、ユーザメモリ6は、図
11における6(2)に変更され、ユーザメモリ管理テ
ーブルは、図12に示した9a(2)および9b(2)
に変更される。
【0059】つぎに、図9で示されるファイル容量の変
更を行った場合の動作について説明する。周辺機器1か
らは、R3で示される要求データがCPUに発行され
る。そのときのCPUの処理を、図10に示したのフロ
ーチャートF3にしたがって説明する。まず、プログラ
ム名R32が登録エリア管理テーブル9aに存在するか
否かを判断し(f31)、存在しないと判断した場合に
はエラーとする。反対に、存在すると判断した場合に
は、該当ファイルの直後に空きエリアが存在するか否か
を空きエリア管理テーブル9bにより判断し(f3
2)、存在すると判断した場合には、要求データ中の追
加容量R34が空き容量以内かを判断し(f33)、空
き容量以内であると判断した場合には、登録エリア管理
テーブル9aと空きエリア管理テーブル9bを変更して
(f34)、正常終了する(f39)。
【0060】また、上記f32およびf33において、
それぞれ該当しないと判断した場合には、指定プログラ
ムR32と、それより前方(先頭アドレスの小さい)プ
ログラムを前詰めし(f35)、指定プログラムR33
より後方(先頭アドレスの大きい)プログラムを後詰め
し(f36)、登録エリア管理テーブル9aと空きエリ
ア管理テーブル9bを変更した後(f37)、再度f3
2と同様の判断をを行い(f38)、範囲内であると判
断した場合には上記f34の処理に移り、範囲外である
と判断した場合には、エラーとする(f40)。
【0061】以上の操作により、ユーザメモリ6は、図
11に示した6(3)に変更され、ユーザメモリ管理テ
ーブルは、図12に示した9a(3)および9b(3)
にそれぞれ変更される。
【0062】実施例2. つぎに、実施例2について説明する。図13は、周辺機
器1におけるユーザメモリ内の複数のプログラムの実行
方法の指定例を示している。図中、1(1)は、図11
に示した6(1)の構成時における実行指定方法であ
り、1(2)は、“BK6”を追加した6(3)の構成
時における実行指定方法である。
【0063】図14は、プログラム実行管理テーブル1
0の内容であり、10aは初回実行管理テーブル、10
bは毎回実行管理テーブルである。それぞれのテーブル
内では、実行個数とプログラム名と先頭アドレスが格納
されている。初回実行管理テーブル10a中、10a−
1は初回実行するプログラムの登録個数であり、10a
−2は初回実行するプログラム名、10a−3は、プロ
グラムの先頭アドレスである。初回10bにおける10
b−1から10b−3も同様である。図15は、プログ
ラム実行の動作を示すフローチャートである。
【0064】つぎに動作について説明する。まず、CP
Uがプログラム実行を開始する前に、図13に示した周
辺機器1により設定されたデータにもとづき、図14に
示した初回実行個数10a−1、毎回実行個数10b−
1、初回実行プログラム名10a−2、毎回実行プログ
ラム名10b−2を書込んでおく。そのデータをもと
に、CPUは、登録エリア管理テーブル9aにしたが
い、それぞれのプログラムの先頭アドレスを、10a−
3もしくは10b−3にセットする。
【0065】以上の準備のもとで、プログラムの実行を
開始することになるが、プログラム実行の動作について
は、図15に示したフローチャートにしたがって説明す
る。まず、初回実行プログラムがあるか否かを判断し
(f71)、初回実行プログラムがないと判断した場合
には、毎回実行の処理に移る(f77)。反対に、初回
プログラムが存在すると判断した場合は、開始No.を
1番目とし(f72)、プログラム実行開始アドレスを
該当No.のアドレスにセットし(f73)、END命
令までプログラム実行を行う(f74)。つぎに、該当
No.をひとつずつ増加させながら(f75)、所定の
回数qまで処理を繰り返す(f76)。f76にてすべ
て実行が完了したと判断した時点で、同様にf77から
f81までの毎回実行処理を行う。ただし、f81では
毎回実行処理を完了したと判断した時点で、所定のEN
D処理を行い上記f77の処理へ移る。すなわち、毎回
実行のプログラムのみ毎回処理されることになる。
【0066】また、図13の1(2)のように、“BK
2”と“BK3”の実行の間に“BK6”の実行を追加
する場合には、毎回実行管理テーブル10bの内容をあ
らかじめ変更しておけばよいことはあきらかである。
【0067】実施例3. つぎに、実施例3について説明する。図16は、周辺機
器1にてファイル毎のスキャンタイムを表示した際の表
示例を示している。図17は、ファイル毎スキャンタイ
ムメモリ11の構成について示したものであり、11a
は、初回実行のプログラムに関するスキャンタイムを格
納した初回実行スキャンタイムテーブルであり、初回実
行管理テーブル10aの登録個数10a−1個分のスキ
ャンタイムが格納される。また、11bは、毎回実行の
プログラムに関するスキャンタイムを格納した毎回実行
スキャンタイムテーブルであり、毎回実行管理テーブル
10bの登録個数10b−1個分のスキャンタイムが格
納される。
【0068】図18は、プログラムファイル毎のスキャ
ンタイムを計測する動作を示すフローチャートであり、
このフローチャートにおける動作は、図15に示したf
71からf81までの動作にf73a、f74a、f7
4b、f78a、f79a、f79bの処理が追加され
ている。
【0069】つぎに、動作について説明する。基本的な
動作は、上記実施例2と同じであるが、初期実行の場合
は、開始アドレスをセットした後(f73)、タイマの
計測値を0にし(f73a)、プログラムを実行した後
(f74)、タイマ値をスキャンタイムとし(f74
a)、ファイル毎スキャンタイムメモリへスキャンタイ
ムを格納する(f74b)。毎回実行の場合も同様にf
78a、f79a、f79bまでの処理を追加すればよ
いことはあきらかである。周辺機器1では、定期的に、
ファイル毎スキャンタイムメモリの内容を読出し、表示
すればよい。
【0070】実施例4. つぎに、実施例4について説明する。図19は、周辺機
器での共通ポインタの設定例について示したものであ
る。図20は、共通ポインタとローカルポインタを使用
したときのプログラム例について示したものであり、各
命令の機能は、従来例と同じである。図21は、ポイン
タ管理テーブル12の構成について示したものである。
図22は、JMP命令の処理動作を示すフローチャート
である。
【0071】つぎに、動作について説明する。まず、図
19で示すように、共通ポインタの開始No.をあらか
じめ周辺機器にて設定しておく。共通ポインタNo.以
降は、各プログラム間で共通に使用するポインタを示
す。すなわち、図20でいえば、P0からP299まで
は各プログラム毎で使用可能であり、P300のポイン
タNo.は各プログラム共通で使用するため、全体でひ
とつのみ存在可能である。つぎに、CPUは、各プログ
ラムファイルの内容をチェックし、ポインタテーブル8
aとポインタ管理テーブル12を作成する。ポインタ管
理テーブル12には、各プログラム毎のポインタが開始
するポインタテーブルの先頭アドレスと、共通ポインタ
の開始するポインタテーブルの先頭アドレスを格納して
おく。
【0072】つぎに、実際にJMP命令を検出すると、
図22にしたがって処理を行う。まず、ポインタNo.
をプログラムより読み込み(f141)、自プログラム
のポインタNo.が存在するシーケンスプログラムアド
レスをポインタ管理テーブル12とポインタテーブル8
aより算出する(f142)。つぎに、ポインタの設定
があるか否かを判断し(f143)、あると判断した場
合には指定のアドレスへジャンプ操作を行って(f14
4)処理が完了する。すなわち、これはローカルポイン
タの処理となる。また、上記f143にてポインタが存
在しないと判断した場合は、共通ポインタがあるか否か
を判断し(f145)、あると判断した場合には、f1
44にて同様にジャンプ処理を行う。反対に、共通ポイ
ンタがないと判断した場合には、エラーとして処理され
る(f146)。
【0073】実施例5. つぎに、実施例5について説明する。図23は、ファイ
ルデータ管理メモリ13について示したものである。図
中、13−1は現在選択中のファイルデータの先頭アド
レスを示してあり、13a−1から13a−qまでは、
初期実行プログラムに対応したファイルデータの先頭ア
ドレスについて示してある。また、13b−1から13
b−rまでは毎回実行プログラムに対応したファイルデ
ータの先頭アドレスについて示してある。図24は、プ
ログラム実行の動作について示したものであり、図18
に示した処理にf73a−1とf78a−1の処理が追
加されてくる。図25は、ファイルデータに定数を転送
するMOV命令の処理について示すフローチャートであ
る。
【0074】つぎに、動作について説明する。まず、プ
ログラムを実行する前に、ファイルデータ管理メモリ1
3を作成する。手順として、プログラム実行管理テーブ
ル10に登録されているプログラム名と同一のファイル
データを、ユーザメモリ管理テーブル9より探し、存在
すれば順次ファイルデータ管理メモリ13へ登録すれば
よい。
【0075】つぎに、図24のフローチャートにしたが
って、プログラム実行時の動作について説明する。基本
的な動作方法は、上記実施例3の場合と同様であるが、
初期実行の場合は開始アドレスをセット後(f73)、
現ファイルデータアドレスを、初回No.iのファイル
データアドレスにセット後(f73a−1)、つぎの処
理に移行する。毎回実行の場合も同様に、f78a−1
の処理を追加すればよい。これにより、現ファイルデー
タアドレスには、必ずプログラムと同一名のファイルデ
ータが選択されることになる。
【0076】つぎに、MOV命令の処理について図25
をもとに説明する。まず、第1デバイスの定数を読出し
た後(f251)、第2デバイスのファイルNo.を読
出し(f252)、ユーザメモリ割付情報メモリ15の
ファイルデバイス先頭アドレス15−2で示される値を
加えたアドレスへ、データへの書込みを行う(f25
3)。
【0077】実施例6. つぎに、実施例6について説明する。図26は、コメン
ト管理メモリ14について示したものである。図中、1
4−1は現在選択中のコメントの先頭アドレスを示して
あり、14a−1から14a−qまでは、初期実行プロ
グラムに対応したファイルデータの先頭アドレスについ
て示してある。また、14b−1から14b−rまでは
毎回実行プログラムに対応したファイルデータの先頭ア
ドレスについて示してある。図27は、プログラム実行
の動作を示すフローチャートであり、図24に示した処
理に対して、f73a−2とf78a−2の処理が追加
されている。図28は、コメントを表示するLEDC命
令の処理を示すフローチャートである。
【0078】つぎに動作について説明する。まず、プロ
グラムを実行する前に、コメント管理メモリ14を作成
する。手順として、プログラム実行管理テーブル10に
登録されているプログラム名と同一のファイルデータ
を、ユーザメモリ管理テーブル9より探し、存在すれば
順次ファイルデータ管理メモリ14へ登録すればよい。
【0079】つぎに、図27にしたがって、プログラム
実行時の動作について説明する。基本的な動作方法は、
実施例5の場合と同様であるが、初期実行の場合は現フ
ァイルアドレスをセット後(f73a−1)、現コメン
トアドレスを、初回No.iのファイルデータアドレス
にセット後(f73a−2)、つぎの処理に移行する。
毎回実行の場合も同様に、f78a−2の処理を追加す
ればよい。これにより、現コメントデータアドレスに
は、必ずプログラムと同一名のコメントデータが選択さ
れることになる。
【0080】つぎに、LEDC命令の処理について図2
8にしたがって説明する。まず、現コメントアドレスか
ら該当デバイスのコメントデータを取り出した(f28
1)後、表示部へ表示すればよい(f282)。
【0081】
【発明の効果】以上説明した通り、この発明にかかるプ
ログラマブルコントローラおよびプログラマブルコント
ローラのプログラム容量変更方法にあっては、ユーザメ
モリをファイル毎に分割してCPUへ格納可能としたの
で、データに追加変更が生じた場合でも、他のファイル
を意識することなく操作が可能である。また、この発明
によるファイルの書込み手段により、ファイル単位での
データの連続性を保つことができるので、H/W処理を
行うシーケンスプログラム実行にも適用可能である。
【0082】つぎの発明にかかるプログラマブルコント
ローラにあっては、始動時のみ実行すればよいブロック
等を実行条件を自由に指定可能なため、処理時間に無駄
を生じることなく、最適な処理が可能となった。また、
新規にプログラムを追加する場合でも、容易に組み込む
ことが可能である。
【0083】つぎの発明にかかるプログラマブルコント
ローラにあっては、処理時間がブロック単位で検出でき
るため、どの部分に多く処理時間がかかっているか簡単
にわかり、処理時間の短縮の検討が容易になる。
【0084】つぎの発明にかかるプログラマブルコント
ローラにあっては、各ブロック間で自由に使用できるロ
ーカルポインタが設定可能なため、設計を開始する以前
にあらかじめブロック毎にポインタNo.のわりふりを
行っておく必要がないため、複数人で設計効率を向上さ
せることができる。
【0085】つぎの発明にかかるプログラマブルコント
ローラにあっては、プログラムの切り替えと同時に、フ
ァイルデータを自動的に切り替えるので、各プログラム
で自由にファイルデータを使用することができる。
【0086】つぎの発明にかかるプログラマブルコント
ローラにあっては、プログラムの切り替えと同時に、コ
メントデータを自動的に切り替えるので、各プログラム
で必要な分だけコメントデータを作成可能となる。
【図面の簡単な説明】
【図1】 この発明にかかるプログラマブルコントロー
ラの構成を示すブロック図である。
【図2】 ユーザメモリの構成を示す説明図である。
【図3】 ユーザメモリ管理テーブルの構成を示すブロ
ック図である。
【図4】 登録エリア管理テーブルの構成を示す説明図
である。
【図5】 空きエリア管理テーブルの構成を示す説明図
である。
【図6】 ファイル新規書込みの周辺機器操作例を示す
説明図である。
【図7】 ファイル新規書込みの周辺機器からの要求デ
ータを示す説明図である。
【図8】 ファイル新規書込み時のCPUの動作を示す
フローチャートである。
【図9】 ファイル新規書込みの周辺機器操作例を示す
説明図である。
【図10】 ファイル容量変更時のCPUの動作を示す
フローチャートである。
【図11】 ユーザメモリの状態遷移例を示す説明図で
ある。
【図12】 ユーザ管理テーブルの状態遷移例を示す説
明図である。
【図13】 プログラム実行の周辺機器操作例を示す説
明図である。
【図14】 プログラム実行管理テーブルの構成を示す
説明図である。
【図15】 プログラム実行の動作を示すフローチャー
トである。
【図16】 周辺機器でのプログラム実行時間表示例を
示す説明図である。
【図17】 ファイル毎スキャンタイムテーブルの構成
を示すフローチャートである。
【図18】 プログラム実行の動作を示すフローチャー
トである。
【図19】 周辺機器での共通ポインタの設定例を示す
説明図である。
【図20】 プログラム例を示す説明図である。
【図21】 ポインタ管理テーブルの構成を示す説明図
である。
【図22】 JMP命令の処理動作を示すフローチャー
トである。
【図23】 ファイルデータ管理メモリの構成を示す説
明図である。
【図24】 プログラム実行の動作を示すフローチャー
トである。
【図25】 MOV命令の動作を示すフローチャートで
ある。
【図26】 コメント管理メモリの構成を示す説明図で
ある。
【図27】 プログラム実行の動作を示すフローチャー
トである。
【図28】 LEDC命令の動作を示すフローチャート
である。
【図29】 従来におけるプログラマブルコントローラ
の構成を示すブロック図である。
【図30】 従来におけるユーザメモリ割り付け例を示
す説明図である。
【図31】 従来におけるプログラム例を示す説明図で
ある。
【図32】 従来におけるプログラム読出し例を示す説
明図である。
【図33】 従来におけるプログラム変更例を示す説明
図である。
【図34】 従来におけるプログラム例を示す説明図で
ある。
【図35】 従来におけるポインタテーブルを示す説明
図である。
【図36】 従来におけるJMP命令の動作を示すフロ
ーチャートである。
【図37】 従来におけるMOV命令の動作を示すフロ
ーチャートである。
【図38】 従来におけるコメントデータ内部の構成を
示す説明図である。
【図39】 従来におけるLEDC命令の動作を示すフ
ローチャートである。
【符号の説明】
1 周辺機器、2 CPUユニット、3 周辺機器用イ
ンタフェース部、4演算処理部、5 マイクロプログラ
ムメモリ、6 ユーザメモリ、7 スキャンタイムメモ
リ、8 ポインタテーブル、9 ユーザメモリ管理テー
ブル、10プログラム実行管理テーブル、11 ファイ
ル毎スキャンタイムメモリ、12ポインタ管理テーブ
ル、13 ファイルデータ管理メモリ、14 コメント
管理メモリ。
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G05B 19/048 G05B 19/05 G06F 9/06 G06F 12/00

Claims (7)

    (57)【特許請求の範囲】
  1. 【請求項1】 自動プログラミングを実行する際に、各
    工程や制御対象毎に分割された複数のシーケンスプログ
    ラムおよび工程スケジュールや加工データ等の複数デー
    タをファイルとして格納するユーザメモリと、 各ファイルの格納場所や属性および容量を格納するユー
    ザメモリ管理テーブルと、 周辺機器からのファイルの新規書き込みを行う書込手段
    と、 前記ファイルの容量変更を行う容量変更手段と、 を具備し、 前記容量変更手段は、所定のプログラムが存在するか否
    かを判断し、所定のプログラムが存在し、かつ、空きエ
    リアが存在すると判断した場合には、つぎに、要求デー
    タ中の追加容量が空き容量以内か否かを判断し、要求デ
    ータ中の追加容量が空き容量以内ではない、あるいは、
    該当ファイルの直後に空きエリアが存在しないと判断し
    た場合には、指定プログラムと、それより前方(先頭ア
    ドレスの小さい)プログラムを前詰めし、指定プログラ
    ムより後方(先頭アドレスの大きい)プログラムを後詰
    めすることによりプログラムの容量変更を行うことを特
    徴とするプログラマブルコントローラ。
  2. 【請求項2】 所定のプログラムが存在するか否かを判
    断し、所定のプログラムが存在する場合には、つぎに、
    該当ファイルの直後に空きエリアが存在するか否かを判
    断し、空きエリアが存在すると判断した場合には、つぎ
    に、要求データ中の追加容量が空き容量以内か否かを判
    断し、要求データ中の追加容量が空き容量以内ではな
    い、あるいは、該当ファイルの直後に空きエリアが存在
    しないと判断した場合には、指定プログラムと、それよ
    り前方(先頭アドレスの小さい)プログラムを前詰め
    し、指定プログラムより後方(先頭アドレスの大きい)
    プログラムを後詰めすることによりプログラムの容量変
    更を行うことを特徴とするプログラマブルコントローラ
    のプログラム容量変更方法。
  3. 【請求項3】 自動プログラミングを実行する際に、各
    工程や制御対象毎に分割された複数のシーケンスプログ
    ラムおよび工程スケジュールや加工データ等の複数デー
    タをファイルとして格納するユーザメモリと、 各ファイルの格納場所や属性および容量を格納するユー
    ザメモリ管理テーブルと、 周辺機器からのファイルの新規書き込みを行う書込手段
    と、 前記ファイルの容量変更を行う容量変更手段と、 プログラムの実行を管理するプログラム実行管理テーブ
    ルと、 前記ユーザメモリに格納された複数のシーケンスプログ
    ラムに対して、必要なシーケンスプログラムのみ選択的
    に実行する制御手段と、 を具備し、 前記容量変更手段は、所定のプログラムが存在するか否
    かを判断し、所定のプログラムが存在し、かつ、空きエ
    リアが存在すると判断した場合には、つぎに、要求デー
    タ中の追加容量が空き容量以内か否かを判断し、要求デ
    ータ中の追加容量が空き容量以内ではない、あるいは、
    該当ファイルの直後に空きエリアが存在しないと判断し
    た場合には、指定プログラムと、それより前方(先頭ア
    ドレスの小さい)プログラムを前詰めし、指定プログラ
    ムより後方(先頭アドレスの大きい)プログラムを後詰
    めすることによりプログラムの容量変更を行うことを特
    徴とするプログラマブルコントローラ。
  4. 【請求項4】 自動プログラミングを実行する際に、各
    工程や制御対象毎に分割された複数のシーケンスプログ
    ラムおよび工程スケジュールや加工データ等の複数デー
    タをファイルとして格納するユーザメモリと、 各ファイルの格納場所や属性および容量を格納するユー
    ザメモリ管理テーブルと、 周辺機器からのファイルの新規書き込みを行う書込手段
    と、 前記ファイルの容量変更を行う容量変更手段と、 プログラムの実行を管理するプログラム実行管理テーブ
    ルと、 前記ファイル毎のスキャンタイムを記憶するスキャンタ
    イムメモリと、 前記ファイル単位のシーケンスプログラムの実行時間を
    監視する制御手段と、 を具備し、 前記容量変更手段は、所定のプログラムが存在するか否
    かを判断し、所定のプログラムが存在し、かつ、空きエ
    リアが存在すると判断した場合には、つぎに、要求デー
    タ中の追加容量が空き容量以内か否かを判断し、要求デ
    ータ中の追加容量が空き容量以内ではない、あるいは、
    該当ファイルの直後に空きエリアが存在しないと判断し
    た場合には、指定プログラムと、それより前方(先頭ア
    ドレスの小さい)プログラムを前詰めし、指定プログラ
    ムより後方(先頭アドレスの大きい)プログラムを後詰
    めすることによりプログラムの容量変更を行うことを特
    徴とするプログラマブルコントローラ。
  5. 【請求項5】 自動プログラミングを実行する際に、各
    工程や制御対象毎に分割された複数のシーケンスプログ
    ラムおよび工程スケジュールや加工データ等の複数デー
    タをファイルとして格納するユーザメモリと、 各ファイルの格納場所や属性および容量を格納するユー
    ザメモリ管理テーブルと、 周辺機器からのファイルの新規書き込みを行う書込手段
    と、 前記ファイルの容量変更を行う容量変更手段と、 プログラムの実行を管理するプログラム実行管理テーブ
    ルと、 ポインタを管理するポインタ管理テーブルと、 各シーケンスプログラム間において共通に使用可能な共
    通ポインタあるいは各シーケンスプログラム内でのみ有
    効なローカルポインタを選別して実行する制御手段と、 を具備することを特徴とするプログラマブルコントロー
    ラ。
  6. 【請求項6】 自動プログラミングを実行する際に、各
    工程や制御対象毎に分割された複数のシーケンスプログ
    ラムおよび工程スケジュールや加工データ等の複数デー
    タをファイルとして格納するユーザメモリと、 各ファイルの格納場所や属性および容量を格納するユー
    ザメモリ管理テーブルと、 周辺機器からのファイルの新規書き込みを行う書込手段
    と、 前記ファイルの容量変更を行う容量変更手段と、 プログラムの実行を管理するプログラム実行管理テーブ
    ルと、 ファイルデータを管理するファイルデータ管理テーブル
    と、 前記シーケンスプログラムが切り換わるのに同期してデ
    ータファイルを切り換える制御手段と、 を具備し、 前記容量変更手段は、所定のプログラムが存在するか否
    かを判断し、所定のプログラムが存在し、かつ、空きエ
    リアが存在すると判断した場合には、つぎに、要求デー
    タ中の追加容量が空き容量以内か否かを判断し、要求デ
    ータ中の追加容量が空き容量以内ではない、あるいは、
    該当ファイルの直後に空きエリアが存在しないと判断し
    た場合には、指定プログラムと、それより前方(先頭ア
    ドレスの小さい)プログラムを前詰めし、指定プログラ
    ムより後方(先頭アドレスの大きい)プログラムを後詰
    めすることによりプログラムの容量変更を行うことを特
    徴とするプログラマブルコントローラ。
  7. 【請求項7】 自動プログラミングを実行する際に、各
    工程や制御対象毎に分割された複数のシーケンスプログ
    ラムおよび工程スケジュールや加工データ等の複数デー
    タをファイルとして格納するユーザメモリと、 各ファイルの格納場所や属性および容量を格納するユー
    ザメモリ管理テーブルと、 周辺機器からのファイルの新規書き込みを行う書込手段
    と、 前記ファイルの容量変更を行う容量変更手段と、 プログラムの実行を管理するプログラム実行管理テーブ
    ルと、 コメントを管理するコメント管理テーブルと、 前記シーケンスプログラムが切り換わるのに同期してコ
    メントファイルを切り換える制御手段と、 を具備し、 前記容量変更手段は、所定のプログラムが存在するか否
    かを判断し、所定のプログラムが存在し、かつ、空きエ
    リアが存在すると判断した場合には、つぎに、要求デー
    タ中の追加容量が空き容量以内か否かを判断し、要求デ
    ータ中の追加容量が空き容量以内ではない、あるいは、
    該当ファイルの直後に空きエリアが存在しないと判断し
    た場合には、指定プログラムと、それより前方(先頭ア
    ドレスの小さい)プログラムを前詰めし、指定プログラ
    ムより後方(先頭アドレスの大きい)プログラムを後詰
    めすることによりプログラムの容量変更を行うことを特
    徴とするプログラマブルコントローラ。
JP00120394A 1994-01-11 1994-01-11 プログラマブルコントローラおよびそのプログラム容量変更方法 Expired - Lifetime JP3251414B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP00120394A JP3251414B2 (ja) 1994-01-11 1994-01-11 プログラマブルコントローラおよびそのプログラム容量変更方法
US08/365,191 US5610809A (en) 1994-01-11 1994-12-28 Programmable controller and program capacity changing method thereof
GB9500146A GB2285527B (en) 1994-01-11 1995-01-05 Programmable controller and program capacity changing method thereof
KR1019950000330A KR0137311B1 (ko) 1994-01-11 1995-01-10 프로그래머블 콘트롤러 및 그 프로그램 용량 변경방법
DE19500626A DE19500626A1 (de) 1994-01-11 1995-01-11 Programmierbare Steuerung und Verfahren zum Ändern ihrer Programmaufnahmefähigkeit
HK98110348A HK1009657A1 (en) 1994-01-11 1998-09-01 Programmable controller and program capacity changing method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP00120394A JP3251414B2 (ja) 1994-01-11 1994-01-11 プログラマブルコントローラおよびそのプログラム容量変更方法

Publications (2)

Publication Number Publication Date
JPH07210217A JPH07210217A (ja) 1995-08-11
JP3251414B2 true JP3251414B2 (ja) 2002-01-28

Family

ID=11494910

Family Applications (1)

Application Number Title Priority Date Filing Date
JP00120394A Expired - Lifetime JP3251414B2 (ja) 1994-01-11 1994-01-11 プログラマブルコントローラおよびそのプログラム容量変更方法

Country Status (6)

Country Link
US (1) US5610809A (ja)
JP (1) JP3251414B2 (ja)
KR (1) KR0137311B1 (ja)
DE (1) DE19500626A1 (ja)
GB (1) GB2285527B (ja)
HK (1) HK1009657A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6749604B1 (en) * 1993-05-10 2004-06-15 Arthrocare Corporation Electrosurgical instrument with axially-spaced electrodes
US6263487B1 (en) 1996-01-17 2001-07-17 Siemens Ag Programmable controller
EP0885412B1 (en) * 1996-02-06 2002-05-02 Fisher-Rosemount Systems, Inc. Interface controls for a field device management system
WO2000043883A1 (fr) * 1999-01-25 2000-07-27 Mitsubishi Denki Kabushiki Kaisha Unite peripherique de controleur programmable
DE19946096A1 (de) * 1999-09-27 2001-04-12 Mannesmann Vdo Ag Steuergerät, insbesondere für ein Kraftfahrzeug
US7822495B2 (en) 2002-04-15 2010-10-26 Fisher-Rosemount Systems, Inc. Custom function blocks for use with process control systems
KR100817364B1 (ko) * 2006-04-05 2008-03-26 미쓰비시덴키 가부시키가이샤 프로그래머블 로직 컨트롤러의 주변 장치 및 그 프로그램작성 방법
KR20100038472A (ko) * 2007-08-27 2010-04-14 가부시키가이샤 어드밴티스트 시퀀스 제어 장치 및 시험 장치
JP5574688B2 (ja) * 2009-12-10 2014-08-20 東洋電機製造株式会社 プログラマブルコントローラのコメント情報ダウンロード装置
CN103838679B (zh) * 2012-11-22 2017-08-04 中兴通讯股份有限公司 一种缓存处理方法及装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4281392A (en) * 1979-05-01 1981-07-28 Allen-Bradley Company Memory circuit for programmable machines
US4484303A (en) * 1979-06-19 1984-11-20 Gould Inc. Programmable controller
JPS57764A (en) * 1980-04-22 1982-01-05 Westinghouse Electric Corp Peripheral memory
JPS58222310A (ja) * 1982-06-21 1983-12-24 Omron Tateisi Electronics Co 状態パタ−ン比較機能を備えたプログラマブル・コントロ−ラ
JPH01205203A (ja) * 1988-02-10 1989-08-17 Mitsubishi Electric Corp プログラマブルコントローラのプログラム管理方式
JPH0233653A (ja) * 1988-07-25 1990-02-02 Mitsubishi Electric Corp プログラマブル制御装置
JPH0293742A (ja) * 1988-09-30 1990-04-04 Toshiba Corp データファイルの未使用領域再配置方式
JPH02140825A (ja) * 1988-11-21 1990-05-30 Fujitsu Ltd プログラムの再配置処理方法
JPH02259910A (ja) * 1989-03-31 1990-10-22 Yaskawa Electric Mfg Co Ltd Nc加工プログラムのファイル管理方式
JPH03222047A (ja) * 1990-01-29 1991-10-01 Nec Software Ltd 領域管理方式
WO1991019244A1 (en) * 1990-06-04 1991-12-12 3Com Corporation Method for optimizing software for any one of a plurality of variant architectures
US5339411A (en) * 1990-12-21 1994-08-16 Pitney Bowes Inc. Method for managing allocation of memory space
GB2251324B (en) * 1990-12-31 1995-05-10 Intel Corp File structure for a non-volatile semiconductor memory
GB2251323B (en) * 1990-12-31 1994-10-12 Intel Corp Disk emulation for a non-volatile semiconductor memory

Also Published As

Publication number Publication date
GB9500146D0 (en) 1995-03-01
GB2285527B (en) 1998-04-01
JPH07210217A (ja) 1995-08-11
US5610809A (en) 1997-03-11
DE19500626A1 (de) 1995-07-20
GB2285527A (en) 1995-07-12
KR950024040A (ko) 1995-08-21
HK1009657A1 (en) 1999-06-04
KR0137311B1 (ko) 1998-06-01

Similar Documents

Publication Publication Date Title
JP2664137B2 (ja) Icカード
US4080651A (en) Memory control processor
NL192144C (nl) Informatieverwerkende inrichting.
JP3251414B2 (ja) プログラマブルコントローラおよびそのプログラム容量変更方法
US4080652A (en) Data processing system
US4126893A (en) Interrupt request controller for data processing system
JPH02227763A (ja) データ転送制御システム
JPH0561754A (ja) データ処理装置
JP2004199827A (ja) データ書き込み装置
JP2716254B2 (ja) リストベクトル処理装置
JP2798492B2 (ja) リストベクトル処理装置
JPH0962545A (ja) 情報処理装置
JPS59158450A (ja) プログラムテスト装置
JPH09190465A (ja) 分類格納された情報の参照方法
JPH01175048A (ja) コンピュータ
JP3543516B2 (ja) シーケンサのデータトレース方法
JP2539079B2 (ja) カラムデ―タ選択処理回路
KR100258933B1 (ko) 메모리 관리장치 및 방법
KR100545654B1 (ko) 시스템 시동 후 디스크에 존재하는 파일의 무결점을감지하는 방법
JPH0652020A (ja) ファイル編集装置
JPH01233526A (ja) データアクセス及びプログラム呼出方式
JPH0823820B2 (ja) アドレス・オーバラップ・チェック処理装置
JPH02266450A (ja) 主記憶装置の試験方式
JPH0668727B2 (ja) 情報処理装置
JPS63113747A (ja) 仮想記憶管理装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071116

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20081116

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20081116

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20091116

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20091116

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20101116

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20111116

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20121116

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20121116

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20131116

Year of fee payment: 12

EXPY Cancellation because of completion of term