(57)【特許請求の範囲】
【請求項１】
プログラム記憶式制御装置に対する命令（Ｂ１ないしＢ５）から成るユーザープログラムを生成かつ記憶するための方法であって、
−プログラム記憶式制御装置が、ユーザープログラムの処理の際に技術的プロセス（１７）からの入力信号（Ｅ１ないしＥ４）から技術的プロセス（１７）に対する出力信号（Ａ１ないしＡ４）を求め、
−ユーザープログラムの命令（Ｂ１ないしＢ５）は、それぞれ１つの機能コードおよび機能コードに対応付けられている複数の機能パラメータから成り、
−機能パラメータは、入力信号（Ｅ１ないしＥ４）もしくは命令（Ｂ５）を参照するものである
方法において、
ａ）ユーザープログラムの生成の際に出力信号毎に、それぞれの出力信号（Ａ１ないしＡ４）に対応付けられている命令（Ｂ１ないしＢ４）がユーザにより入力され、その際に命令を構成する機能コードと機能パラメータは、下記a-1)〜a-5）の手順により入力され、
a-1）処理されるべき機能コードが入力され、一時記憶され、
a-2）機能パラメータの数が取得され、
a-3）機能パラメータが入力され、
a-4）もし入力された機能パラメータが入力信号（Ｅ１ないしＥ４）であれば、入力信号（Ｅ１ないしＥ４）への参照が一時記憶され、
a-5）もし入力された機能パラメータが新規の機能コードであれば、新しい命令（Ｂ５）が生成され、この新しい命令（Ｂ５）への参照が一時記憶され、この新しい命令（Ｂ５）に分岐され、この機能コードが一時記憶され、前記a-1)〜a-5)が新しい命令（Ｂ５）に対して繰り返され、
ｂ）一時記憶された機能コードおよび一時記憶された機能パラメータは、それぞれの出力信号（Ａ１ないしＡ４）に対応付けられてたすべての命令（Ｂ１ないしＢ５）が完全に入力された後に初めて不揮発性メモリ（１４）のなかに格納され、または有効として特徴付けられる
ことを特徴とする方法。
【請求項２】
プログラム記憶式制御装置の作動方法であって、
−技術的プロセス（１７）からの入力信号（Ｅ１ないしＥ４）から技術的プロセス（１７）に対する出力信号（Ａ１ないしＡ４）を求めるため、プログラム記憶式制御装置がサイクリックに、命令（Ｂ１ないしＢ５）から成るユーザープログラムを処理し、
−ユーザープログラムの命令（Ｂ１ないしＢ５）は、それぞれ１つの機能コードおよび機能コードに対応付けられている複数の機能パラメータから成り、
−機能パラメータが入力信号（Ｅ１ないしＥ４）もしくは命令（Ｂ５）を参照するものである
作動方法において、
ａ）サイクリックに命令（Ｂ１ないしＢ５）から成るユーザープログラムを順次処理する際に、命令（Ｂ１ないしＢ５）毎に下記a-1)〜a-4)の手順で処理され、
a-1）命令（Ｂ１ないしＢ５）に対応付けられている機能コードおよびこの機能コードに対応付けられている機能パラメータが読込まれ、
a-2）機能パラメータ毎に、これが命令（Ｂ５）を参照するかどうかが検査され、
a-3）もし機能パラメータが入力信号（Ｅ１ないしＥ４）を参照するならば、入力信号（Ｅ１ないしＥ４）が一時記憶され、
a-4）もし機能パラメータが命令（Ｂ５）を参照するならば、この命令（Ｂ５）に分岐し、前記a-1)〜a-4)が繰り返され、
ｂ）すべての機能パラメータが処理されたとき、命令（Ｂ１ないしＢ５）に対応付けられている出力信号（Ａ１ないしＡ４）が求められること
を特徴とするプログラム記憶式制御装置の作動方法。
【請求項３】
請求項１による方法を実施するためのプログラミングユニットにおいて、
−処理されるべき命令の機能コードを入力しかつ一時記憶するための手段（２、４、５、６、７、９、１０）と、
−処理されるべき命令の機能パラメータの数を取得するための手段（２、４）と、
−機能パラメータを入力しかつ一時記憶するための手段（２、４、５、６、７、９、１０）と、
−機能パラメータが新規の機能コードであるかどうかを検査するための手段（２、４）と、
−もし機能パラメータが新規の機能コードであれば、新しい命令を作成し、この新しい命令に分岐するための手段（２、４）と、
−もし出力信号（Ａ１ないしＡ４）のすべての処理されるべき命令のすべての機能パラメータがまだ入力されていないならば、一時記憶された機能コードおよび一時記憶された機能パラメータの不揮発性メモリ（１４）のなかへの記憶を阻止するため、またはプログラムが有効であることを示すマークの設定を阻止するための手段（２、４）と
を有することを特徴とするプログラミングユニット。
【請求項４】
請求項２による方法を実施するためのプログラム記憶式制御装置において、
−命令に対応付けられている機能コードおよび機能パラメータを読むための手段（１３）と、
−機能パラメータが入力信号を参照するか命令を参照するかを検査するための手段（１３）と、
−もし機能パラメータが入力信号を参照するならば、入力信号を一時記憶するための手段（１８）と、
−もし機能パラメータが命令を参照するならば、この命令に分岐するための手段（１３）と、
−呼出した命令に戻るための手段（１３）と、
−命令に対応付けられているすべての機能パラメータが処理されたときに、命令に対応付けられている出力信号を求めるための手段（１３）と
を有することを特徴とするプログラム記憶式制御装置。
【請求項５】
請求項３によるプログラミングユニットと組み合わされていることを特徴とする請求項４記載のプログラム記憶式制御装置。
【発明の詳細な説明】
本発明は、プログラム記憶式制御装置に対する命令から成るユーザープログラムを生成かつ記憶するための方法であって、ユーザープログラムの処理（実行）の際に技術的プロセスからの入力信号から技術的プロセスに対する出力信号を求めるように構成されているプログラム生成・記憶方法と、それに対応するプログラム記憶式制御装置の作動方法とに関する。
このような方法は一般に知られている。
本発明の課題は、新しい方法を利用可能にすることである。
この課題は、プログラムの生成および記憶方法に対して、請求項１に記載された方法により解決される。
またこの課題は、作動方法に対して、請求項２に記載された方法により解決される。
本発明の利点および詳細は実施例の以下の説明から明らかになる。その際に、
図１はプログラミング装置およびプログラム記憶式制御装置の構成を、
図２はプログラミング装置のユーザーインタフェースを、また
図３はプログラミング例を示す。
図１によれば、プログラミング装置１はプロセッサ２を有し、これはバスシステム３を介して固定値メモリ４および書込み-読出しメモリ５ならびにインタフェース６、７および８と接続されている。固定値メモリ４のなかにプロセッサ２のオペレ−ティングシステムが記憶されており、書込み-読出しメモリ５はプログラミング装置１の作業メモリとしての役割をする。インタフェース６を介して入力ユニット９、たとえばキーボード、によりデータがプログラミング装置１のなかに入力可能である。同じくインタフェース７によりデータが表示ユニット１０の上に表示可能である。通信インタフェース８によりプログラミング装置は、破線で記入されている通信接続線１１を介して、プログラム記憶式制御装置１２と通信し得る。
プログラム記憶式制御装置１２は同じく、ユーザープログラムを処理するプロセッサ１３を有する。ユーザープログラムは多数の実行すべき命令から成っており、電気的消去および書込み可能な固定値メモリ１４のなかに格納されている。処理されるべきユーザープログラムに従って、プロセッサ１３は、コントローラ１５およびプロセスインタフェース１６を介して詳細には図示されていない技術的プロセスまたは技術的設備１７にアクセスする。プロセッサは、そこから入力信号を読込み、それらを書込み-読出しメモリ１８のなかに格納し、そしてユーザープログラムにより出力信号を確定する。出力信号は書込み-読出しメモリ１８のなかに格納され、次いでコントローラ１５およびプロセスインタフェース１６を介して技術的設備１７に出力される。さらにプログラム記憶式制御装置１２は、プログラミング装置１に対するインタフェース１９を有する。プロセッサ１３、メモリ１４、１８、コントローラ１５ならびに通信インタフェース１９は、やはりバス２０を介して互いに接続されている。
プログラミング装置１およびプログラム記憶式制御装置１２は、原理的には互いに分離した装置であり得る。しかし、好ましくは、プログラミング装置１は、図１中に破線により、また図２中にも示されているように、プログラム記憶式制御装置１２のなかに統合されている。しかし両方の場合に、プログラミング装置１は、インタフェース８および１９ならびに通信接続線１１を介して、固定値メモリ１４にアクセスすることが可能である。その際に、新しいユーザープログラムが固定値メモリ１４のなかに書込まれること、および存在しているユーザープログラムが読出され、消去され、または変更されることが可能である。
図２によれば、プログラム記憶式制御装置１２は、ねじ端子２１ないし２４、キーボード領域２５ならびにＬＣＤディスプレイ２６を有する。ねじ端子２１を介して、プログラム記憶式制御装置１２は２４ボルト電源と接続可能である。ねじ端子２２の各２つを介して、１つのディジタル出力信号が技術的プロセス１７に出力可能である。ねじ端子２３の各１つを介して、入力信号が技術的プロセス１７から読込み可能である。ねじ端子２４を介して、ねじ端子２２および２３に接続されているアクチュエータおよびセンサが電流を供給され得る。すなわち、ねじ端子２２ないし２４は、プロセスインタフェース１６の構成部分である。
ＬＣＤディスプレイ２６は、プログラミング装置１の表示ユニット１０に相当する。ディスプレイ２６を介して、さらにプログラム記憶式制御装置１２の報知も作動中に表示可能である。すなわち、ディスプレイ２６は監視ユニットとしての役割もする。キーボード領域２５は、命令を直接にプログラミング装置１およびプログラム記憶式制御装置１２に入力することを可能にする。
ユーザープログラムは、一般に通常のように、個々の命令から成っており、その際に各命令はそれぞれ１つの機能コードと、機能コードに対応付けられている機能パラメータとから成っている。作動中にプログラム記憶式制御装置はサイクリックに下記の手順で繰り返し動作することにより、設備を制御する：
−入力信号を技術的プロセス１７から読込む。
−ユーザープログラムにより技術的プロセスに対する出力信号を求める。
−出力信号を技術的プロセス１７に出力する。
この進行の仕方は一般に知られている。
《ユーザープログラムの生成についての説明》
ユーザープログラムの生成は次のようにして行なわれる。
ユーザープログラムの生成の際には、プログラミングユニット１により順次処理されるべき命令が入力ユニット９から入力される。そのために、まず第１の出力信号に対応付けられている命令により開始して、どの機能が処理されるべきかが入力される。すなわちシステムは、相応のプロンプトメッセージを表示ユニット１０上に表示し、それに応じてユーザーが入力ユニット９を介して機能コードを入力し終わるまで待つ。
機能コードが入力されると直ちに、プログラミングユニット１によって書込み-読出しメモリ５のなかに一時記憶される。その後にプログラミングユニット１は、いくつの機能パラメータがこの命令に対応付けられているかを確かめる。この際に、プログラミング装置１の内部の内部対応付けとユーザーに見える機能パラメータの数との間の区別がされなければならない。内部では機能パラメータの数はすべての機能コードに対して同じであり、いまの例では４に等しい。それとは異なり、外部的には常に必要とされる数の機能パラメータのみが入力される。このことは一例により一層詳細に説明される：
もし機能コードとしてオア演算のためのコードが入力されるならば、実際に４つのパラメータの入力が求められる。これらの４つのパラメータは、後でプログラムの処理の際にも考慮される。それと異なり、もしたとえば論理的否定が機能コードとして選ばれるならば、ユーザーからただ１つのパラメータ、すなわち否定されるべき入力信号、が入力される。他の３つのパラメータはプログラミング装置１により自動的に満たされ、プログラムの処理の際には考慮されない。
機能コードの照会および書込み-読出しメモリ５の中への一時記憶の後に、プログラミングユニット１により、入力ユニット９および表示ユニット１０との共同作用により、機能パラメータも順次入力かつ一時記憶される。機能パラメータとしては、入力信号もしくは機能コードが入力され得る。その際に機能パラメータの各入力の際に直ちに、これが機能コードであるかどうかが検査される。
もし機能パラメータが機能コードではなく入力信号であれば、これは一時記憶され、またすぐ次の機能パラメータにより続行される。その際入力信号とはいまの場合、技術的プロセス１７からの入力信号だけではなく、その値が予め知られている信号をも意味する。このような信号の例は定数-１または定数-０信号ならびにクロック信号である。
それとは異なり、もし機能パラメータとして新規の機能コードが入力されるならば、機能パラメータとして、入力された機能コードではなくて、新しい命令が作成され、そのアドレスが一時記憶される。その直後にこの新しい命令に分岐され、またそこに直前に入力された機能コードが一時記憶される。その後に新たに機能パラメータの数が確かめられ、機能パラメータが入力かつ一時記憶される。これらの機能パラメータにおいても、直ちに再び、それらが入力信号であるか機能コードであるかが検査される。もしそれらが新規の機能コードであれば、やはり新たに直ちに新しい命令が作成され、そのアドレスが機能パラメータとして記憶され、この新しい命令に分岐される。ここにもやはりたった今入力された機能コードが記憶され、いくつの機能パラメータが必要とされるかが確かめられ、機能パラメータが入力かつ一時記憶される。
機能コードおよび機能パラメータのこの入れ子にされた入力は、最後に入力かつ一時記憶されたすべての機能パラメータが入力信号を参照するまで続行される。次いですべての機能パラメータが入力信号を参照すると、それぞれの命令が完全に入力される。次いで先行の命令に戻され、ここで場合によってはすぐ次の機能パラメータが入力かつ一時記憶され、その際にここでも再び場合によっては別の命令が参照される。
上記の手順は、出力信号を求めるために必要なすべての機能が互いに入れ子にされるまで、すなわち各命令のすべての機能パラメータが入力されるまで続行される。このことが行われたときに初めて、すぐ次の出力信号に対応付けられている命令が入力され、この手順が、必要なかぎり、繰り返される。こうして次々とすべての出力信号がプログラムされる。
ユーザープログラムの入力はユーザーによりもちろんいつでも中断され得る。しかし、この場合、入力かつ一時記憶された部分プログラムの記憶は行われない。プログラミング装置１のスイッチオフの際に、入力されたデータは喪失される。入力され、かつ書込み-読出しメモリ５のなかに一時記憶されたユーザープログラムの不揮発性メモリ１４への格納は、プログラミング過程が完全に終了されたときに初めて可能にされる。プログラミング過程またはユーザープログラムの生成が完全に終了したとみなされるのは、
−各出力信号に命令が入力されているとき、かつ
−各プログラミングされた機能コードの各機能パラメータが満たされているときである。
しかし後述するように、代替的に、それぞれの出力信号に対するプログラムが完全に入力された時点で、その都度そのプログラムを不揮発性メモリ１４へ格納することも、また各機能コードまたは機能パラメータが入力される都度、それらを不揮発性メモリ１４へ格納することもできる。その場合、まだ不完全なプログラムが実行されてしまうことを回避するために、プログラム全体が完全に入力されるまで、不完全であることが記憶されていなければならない。
図３は簡単なユーザープログラムの一例を示す。その際に実線は所望の論理演算に基づいて必要な接続を意味する。破線はプログラミングスキームに基づいて必要な追加的な接続を示し、また鎖線はプログラミング装置１により自動的に補われる接続を示す。図３によるプログラミング例の入力は、下記のように行われる：
最初にプログラミング装置は表示ユニット１０および入力ユニット９を介して、どの機能コードが第１の出力端Ａ１の出力信号を求めるために必要とされるかをユーザに問う。ユーザーはそれに対して入力ユニットを介して、アンド演算２７が行われべきであることを入力する。対応する機能コードがプログラミング装置１の書込み-読出しメモリ５のなかに一時記憶される。次いで第１、第２および第３の機能パラメータ、すなわちアンド演算２７の４つの入力信号の３つ、が順次入力されかつ一時記憶される。
第１および第２の入力パラメータは入力信号Ｅ１およびＥ２である。従って、これらの両機能パラメータの入力の際には直ちにすぐ次の機能パラメータにより続行される。それと異なり、第３の機能パラメータの入力の際に、ユーザーは否定演算を行うことを望んでおり、したがってそれに対応する機能コードがユーザーにより入力される。システムにより、第３の機能パラメータとして、この否定演算２８の機能コードの代わりに、新しい命令が与えられ、そのアドレスを一時記憶される。
次いでプログラミング装置１によりこの新しい命令に分岐され、またどの（単一の）機能パラメータが否定演算２８の対象であるべきかが入力される。ここにユーザーにより入力信号Ｅ３が入力される。プログラミング装置１はこの機能パーラメータを一時記憶し、次いで、それぞれ論理１を参照する３つの別の機能パラメータが補われる。これらの３つの機能パラメータもメモリ５のなかに一時記憶される。これにより否定演算２８のパラメータ化が終了されている。従って、アド演算２７の別のパラメータ化に戻され、第４の機能パラメータが入力されかつ一時記憶される。アンド演算２７は図３の例によればただ３つの真の入力パラメータを有するので、ユーザーの相応の入力による第４の入力は論理１と結び付けられる。
これをもって出力Ａ１のプログラミングは終了されており、出力Ａ２のプログラミングにより続行される。
最初に、システムからの質問とそれに対するユーザの入力により、出力信号Ａ２の生成のための機能コードがオア演算２９であることが入力される。次いでオア演算２９の４つの機能パラメータが順次入力される。
第１の機能パラメータとして、図３のプログラミング例によれば入力Ｅ３の既にプログラムされた否定演算が入力される。この論理演算は既に命令Ｂ５としてプログラミングを終了されているので、この機能パラメータに関するその後の入力は必要でなく、一時記憶の後に直ちに第２の機能パラメータにより続行される。
第２および第３の機能パラメータは（真の）入力信号Ｅ２およびＥ４であり、従って直ちに第４の機能パラメータにより続行され得る。
図３のプログラミング例によれば、オア演算２９も３つの入力信号のみを有する。従って、第４の機能パラメータは定数-零を参照する。
これをもって出力Ａ２のプログラミングは終了されているので、出力Ａ３のプログラミングにより続行される。
出力Ａ３およびＡ４は、与えられているプログラミング例によれば、本来必要とされない。従って、出力Ａ３に対しては、論理１と論理演算される否定演算３０が選ばれる。それにより出力Ａ３は定数-零に接続されている。同じことが、否定演算３１が入力される出力Ａ４により行われる。代替的に、出力端Ａ３およびＡ４を直接に論理０と接続することも可能である。
ここまでの入力の結果としてのプログラムは、次いでメモリ１４のなかに記憶される。それは下記の表のなかに示されている。
0003916253.tif 000002
表の左にはＢ１ないしＢ５を付して個々の命令の始端が示されている。これらの表示は、いわばラベルであり、説明の役割のみをし、また記憶されているプログラムの構成部分ではない。本来のプログラムのなかでＦＣは機能コードを、またＡＤＤＲはアドレスを示す。
このようなプログラムは各５バイトのブロックから成っている。最初のバイトはそれぞれ命令の機能コードを示し、他の４つのバイトは４つの機能パラメータを示す。最初の４つの命令Ｂ１ないしＢ４は、常に４つの出力信号に対する命令を定める。第５の命令Ｂ５以下には、出力信号の計算の際に間接的に利用され得る命令が記憶されている。
《ユーザープログラムの処理（実行）についての説明》
ユーザープログラムの処理（実行）は下記のように行われる：
サイクリックに命令Ｂ１ないしＢ４が処理される。すなわち、命令Ｂ１の処理から始まり命令Ｂ４まで終わると、再び命令Ｂ１の処理に戻り、これが繰り返される。命令Ｂ１ないしＢ４の各々の処理の際に、先ず命令に対応付けられている機能コードが読まれる。次いで次々とこの命令に対応付けられている機能パラメータが読まれる。各機能パラメータの読出しの際に直ちに、これが命令を参照するかどうかが検査される。もし機能パラメータが入力信号を参照するならば、これが一時記憶される。
それと異なり、もし機能パラメータが命令を参照するならば、直ちに、すなわち残りの他の機能パラメータを読む前に、この命令に分岐され、またこの命令に対応付けられている機能コードおよびこの命令に対応付けられている機能パラメータが読まれる。ここでも、もし機能パラメータが命令を指示するならば、その他の機能パラメータが処理される前に、直ちにやはりこの命令が実行される。命令のすべての機能パラメータが処理され終わると、この命令に対応付けられている出力信号が求められ、場合によっては呼出した命令に戻され、求められた出力信号がユーザープログラムのその後の処理の基礎とされる。
ここでも原理は表によるプログラムを用いて説明されるべきである。
すなわち、先ず命令Ｂ１の機能コードが読まれる。次いで、入力Ｅ１およびＥ２を参照する機能パラメータが読まれる。第３の機能パラメータの読出しの際に命令Ｂ５に分岐される。命令Ｂ５の機能コードおよびすべての４つの機能パラメータ（すべてが入力信号を参照するので）が読まれ、命令Ｂ５に対応付けられている出力信号が求められる。この出力信号により次いで命令Ｂ１に戻され、第４の機能パラメータが読まれる。次いで出力信号Ａ１が求められ、書込み-読出しメモリセル１８のなかに記憶される。その後に命令Ｂ２の機能コードが読まれ、命令Ｂ２の第１の機能パラメータが読まれる。次いで新たに命令Ｂ５に分岐され、その機能コードおよびその４つの機能パラメータが読まれ、命令Ｂ５の出力信号が求められる。次いで命令Ｂ２に戻され、その他の３つの機能パラメータが読まれる。次いで命令Ｂ２の出力信号が求められる。
最後になお命令Ｂ３の機能コードおよび機能パラメータが読まれ、また実行され、またこうして出力信号Ａ３が求められる。同じことが命令Ｂ４およびその結果としての出力信号Ａ４により行われる。
最後の出力信号Ａ４を求めた後に、こうして求められた出力信号Ａ１ないしＡ４が技術的プロセス１７に出力され、新たに入力信号Ｅ１ないしＥ４が読込まれる。次いで新しいサイクルが、出力信号Ａ１ないしＡ４を求める際に開始される。
《代替的なユーザプログラムの作成方法の説明》
前述の作成方法に対して代替的に、もしそれぞれの出力信号が完全にプログラムされているならば、出力信号に属する命令を直ちに不揮発性メモリ１４のなかに記憶することも可能である。たとえば、もし出力信号Ａ１が完全にプログラムされているならば、命令Ｂ１およびＢ５は直ちに記憶され得よう。
同じく、入力された各機能コードおよび入力された各機能パラメータを直ちに不揮発性メモリ１４のなかに記憶することも可能である。この場合には、不揮発性メモリ１４のそのために特に設けられているメモリ範囲のなかに、プログラム作成過程の開始時に、すべての出力信号Ａ１ないしＡ４のプログラミングが無効であることが格納されなければならないであろう。たとえば、４つの出力信号Ａ１ないしＡ４が無効にプログラムされていることを示すマークとして、４つの１ビット-メモリセルが論理０にセットされ得るであろう。４つの１ビット-メモリセルは、出力信号Ａ１ないしＡ４が有効にプログラムされているならば、論理１にセットされ得よう。その際にこのプログラムが有効であることを示すマークは選択的に、すべてのユーザープログラムの作成の後に、または各出力信号Ａ１ないしＡ４に対して別々にそれぞれの出力信号Ａ１ないしＡ４のすべての命令の入力の後に行われ得る。
命令は表による順序で記憶されていなくてよい。たとえば、出力信号Ａ１を求めるために必要とされるすべての命令、ここでは命令Ｂ１およびＢ５、を順次メモリ１４のなかに格納することが可能である。出力信号Ａ２ないしＡ４を求めるための命令Ｂ２ないしＢ４は、これらの命令（ここではＢ１およびＢ５）の後で記憶されよう。ユーザープログラムの処理の際に、この場合、どれが出力信号Ａ１を求めるために呼び出される最も高いアドレスであるかを追求する必要がある。出力信号Ａ２を求めるための命令は、すぐ次に高いアドレスにおいて開始する。類似の仕方で、すなわち最も高い必要とされるアドレスを一時記憶し、どの個所に出力信号Ａ３およびＡ４を求めるための命令が配置されているかが求められ得る。しかし、当業者が本発明の実行の際に１つまたは他の過程に優先性を与えるかどうかは、その好み次第である。
【図１】
0003916253.tif 000003
【図２】
0003916253.tif 000004
【図３】
0003916253.tif 000005