JP2007128378A - プログラマブルコントローラのプログラミング装置 - Google Patents
プログラマブルコントローラのプログラミング装置 Download PDFInfo
- Publication number
- JP2007128378A JP2007128378A JP2005321722A JP2005321722A JP2007128378A JP 2007128378 A JP2007128378 A JP 2007128378A JP 2005321722 A JP2005321722 A JP 2005321722A JP 2005321722 A JP2005321722 A JP 2005321722A JP 2007128378 A JP2007128378 A JP 2007128378A
- Authority
- JP
- Japan
- Prior art keywords
- machine language
- instruction
- program
- pseudo
- language
- 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
Links
- 230000014509 gene expression Effects 0.000 claims abstract description 58
- 230000006870 function Effects 0.000 claims abstract description 24
- 238000006243 chemical reaction Methods 0.000 claims description 14
- 238000007373 indentation Methods 0.000 claims description 8
- 230000001419 dependent effect Effects 0.000 claims description 2
- 238000000034 method Methods 0.000 description 56
- 238000010586 diagram Methods 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
Images
Landscapes
- Devices For Executing Special Programs (AREA)
- Programmable Controllers (AREA)
Abstract
【解決手段】制御用語21、23、26等をPLCによるシーケンス制御に影響しない疑似命令として、これに真性マシン語命令には含まれぬ疑似マシン語命令を当てはめ、条件式22や実行文24、25等にはそれぞれを置き換える真性マシン語命令を当てはめてできるマシン語形態のプログラムをPLCに格納する。
【選択図】 図1
Description
このシーケンスプログラムを作るためのプログラミング言語としては、従来、ラダー図を用いるラダー言語が使用されて来たが、ラダー言語はリレー回路等の専門知識を必要とするため、最近は、こうした専門知識を持たない通常のソフトウェア技術者でも容易にシーケンスプログラムを作ることができる、上述のようなテキスト記述形式(換言すれば図面を用いない形式)のST言語が用いられるようになった。
このため、PLCのマシンコードを後刻、再び編集する場合に備えて、PLCの記憶装置にマシンコードに変換したプログラムとは別にST言語で記述された元のプログラムを格納するか、ST言語で記述された元のプログラムをPLCとは別のパソコンなどの記憶装置に格納し、PLC内のプログラムとリンクした形で管理している。
また前述したPLCとは別の記憶装置にST言語で記述された元のプログラムを格納する方法では、別の記憶装置を参照することが煩わしく、直接、PLC内のプログラムを読み出してこれを編集したくても、ST言語で記述されたプログラムを元にマシンコードに変換したPLC内のプログラムは前述の理由で元のST言語の形には復元されないため、プログラムの編集が困難である。
このため、遠隔地のPLCのプログラムを変更する際には、直接、PLC内のプログラムを変更するのではなく、別の記憶装置に保存したST言語で記述された元のプログラムを持参し、そのプログラムを編集しマシンコードに変換してPLCに転送(書き込み)を行う必要があった。
文字または(および)記号をそれぞれ複数個連ねた列(以下連続文字列という)からなり、それぞれ、このシーケンスプログラムを実行するプロセッサの機能の仕様に予め定められたマシン語命令(以下真性マシン語命令という)の1または複数個に置き換え可能な各種の条件式(22など)や実行文(24、25など)と、同じく前記連続文字列からなり、前記真性マシン語命令への置き換えができない各種の制御用語(IFの21、THENの23、END IFの26など)とを組合わせ、このプログラミング言語固有の文法に従い記述されたテキスト記述型プログラミング言語のシーケンスプログラムとしてのソースプログラムにおける、前記の各連続文字列を順次読み込んで解析したうえ、この各連続文字列をそれぞれ該当するマシン語命令(マシンコード111〜117など)に変換し、前記ソースプログラムに対応するマシン語形態のオブジエクトプログラムを生成してプログラマブルコントローラに格納する言語順変換手段(保存処理4およびダウンロード処理8を実行する図外のプロセッサなど)と、
プログラマブルコントローラから読み出したテキスト記述型プログラミング言語のソースプログラムを元とするマシン語形態の前記オブジエクトプログラムを構成する各マシン語命令を順次解析して、前記オブジエクトプログラムを元のテキスト記述型プログラミング言語のソースプログラムに復元する言語逆変換手段(アップロード処理9および表示処理5を実行する図外のプロセッサなど)とを備えたものとする。
前記言語順変換手段が、前記制御用語に該当しない各連続文字列を、このそれぞれに対する前記の置き換えが可能な1または複数個の真性マシン語命令(マシンコード112、113、115、116など)に変換し、また前記制御用語に該当する各連続文字列を、このそれぞれに1対1に対応し前記真性マシン語命令には含まれず、プログラマブルコントローラのシーケンスプログラムの実行に影響しないマシン語命令(マシンコード111、114、117など、以下疑似マシン語命令という)に変換する手段を備えたものであるようにする。
また請求項3のプログラマブルコントローラのプログラミング装置は、請求項2に記載のプログラマブルコントローラのプログラミング装置において、
前記言語逆変換手段が少なくとも、解析対象の当該のマシン語命令が前記疑似マシン語命令であるか否かを判定する疑似マシン語命令判定手段と、
この疑似マシン語命令判定手段によって疑似マシン語命令でないと判定された当該の前記真性マシン語命令に対しては、さらに組となる真性マシン語命令を持つものであるか否かを判定し、組の真性マシン語命令を持たないと判定した真性マシン語命令を対応する1行分のテキスト記述型プログラミング言語の条件式または実行文に復元し、組の真性マシン語命令を持つと判定した場合は、当該の真性マシン語命令から組の最終位の真性マシン語命令までの真性マシン語命令(図1の例では、条件(比較)命令のマシンコード112および条件ジャンプ命令のマシンコード113、実行文#1の各命令のマシンコード115、あるいは実行文#2の各命令のマシンコード116)を一括して、対応するテキスト記述型プログラミング言語の1行分の条件式または実行文(この例では、条件式22、実行文#1の24、あるいは実行文#2の25)に復元する第1の判定復元手段と、
前記疑似マシン語命令判定手段によって疑似マシン語命令と判定された当該の疑似マシン語命令に対しては、さらに対となる疑似マシン語命令(図1の例では、THENを示す疑似命令のマシンコード114)を持つものであるか否かを判定し、対の疑似マシン語命令を持たないと判定した疑似マシン語命令(図1の例では、END IFを示す疑似命令のマシンコード117)を対応する1行分のテキスト記述型プログラミング言語の前記制御用語(この例では、END IFの26)に復元し、対の疑似マシン語命令を持つと判定した場合は、当該の疑似マシン語命令(図1の例では、IFを示す疑似命令のマシンコード111)から対の最終位の疑似マシン語命令(この例では、THENを示す疑似命令のマシンコード114)までの各疑似および真性のマシン語命令のうち、疑似マシン語命令(この例では、マシンコード111、114)をそれぞれ対応するテキスト記述型プログラミング言語の前記制御用語に復元すると共に、真性マシン語命令をその個別または組となる複数個を一括した真性マシン語命令(この例では、組となるマシンコード112および113)ごとに前記第1の判定復元手段を介しそれぞれ対応するテキスト記述型プログラミング言語の条件式または実行文(この例では、条件式22)に復元して、当該の疑似マシン語命令から対の最終位の疑似マシン語命令までの全マシン語命令を、該条件式または実行文の復元行を同一行に含むようなテキスト記述型プログラミング言語の制御命令文内の1行分の復元文(この例では、制御用語IFの21、条件式22、制御用語THENの23からなる復元文)とする第2の判定復元手段と、
前記第1の判定復元手段によって復元されたテキスト記述型プログラミング言語の条件式または実行文が前記第2の判定復元手段によって復元されたテキスト記述型プログラミング言語の制御命令文内の1行分の復元文、、または同じく復元された単独で1行をなす前記制御用語に従属するものであるか否かを判定し、従属する条件式または実行文(図1の例では、実行文#1の24、および実行文#2の25)にはインデントを付加するインデント付加手段とを備えたものであるようにする。
本発明の作用はプログラマブルコントローラ(PLC)のプログラミング装置に以下の機能を設けることにより、テキスト記述形式のプログラミング言語であるST言語で記述されマシンコードに変換されてPLCに格納されたシーケンスプログラムを、PLCから元のST言語のテキストプログラムに復元できるようにするものである。
即ち、ST言語で記述されたテキストプログラムとしてのシーケンスプログラムを連続文字列単位に順次読み出し、制御用語か否かの判定を行い、制御用語であれば制御用語を示す中間コードに変換し、制御用語ではない条件式や実行文であれば、このシーケンスプログラムを実行するプロセッサの機能の仕様に予め定められたマシン語命令(真性マシン語命令)からなりこの条件式や実行文を置き換え得る命令に対応する中間コードにそれぞれ変換する。
他方、PLCからマシンコードのシーケンスプログラムを読み出す際は、一旦、疑似または真性のマシン語命令を、それぞれ対応する中間コードへ変換する処理を経たうえ、疑似マシン語命令は該当する制御用語に、真性マシン語命令は該当する条件式や実行文にそれぞれ変換することで、ST言語で記述されたテキストプログラムに復元する。
そこで本発明によれば、上記制御用語を、PLCによるシーケンスプログラムの実行には影響しない疑似命令として扱い、これに真性マシン語命令には含まれぬ疑似マシン語命令を当てはめ、制御用語以外の条件式や実行文にはこのそれぞれを置き換える真性マシン語命令を当てはめてできるマシン語形態のプログラムをPLCに格納するようにしたので、
PLC内に格納されているマシンコードのシーケンスプログラム(オブジェクトプログラム)から作成時と同じST言語で記述されたテキストプログラムのシーケンスプログラム(ソースプログラム)を復元することができ、従来のようにPLC内に格納したオブジェクトプログラムとは別に、このプログラムの元になるST言語のソースプログラムを別途管理する必要がなく、使用者の負担が軽減される。
次にプログラミング装置1において2はプログラムの編集画面で、21〜26の個別の連続文字列は前述したテキスト記述形式のST言語のシーケンスプログラム(テキストプログラムとも略記する)の一部の後述する制御文を持つプログラムブロックの一例についての、ST言語の文法に基づく記述状態を示している。
また、6はプログラミング装置1のプログラムメモリで、このプログラムメモリ6内の61〜67は編集画面2上の各連続文字列21〜26をこのプログラミング装置に固有の中間コードに変換したものである。
後でも述べるが、ここで真の命令とはPLC10のシーケンスプログラムの実行に関わりを持つ命令であり、疑似命令とはこのシーケンスプログラムの実行に関わりを持たない命令である。そして、真の命令のマシンコードはPLC10に格納されたシーケンスプログラムを実行するプロセッサの機能の仕様に予め定められている各種のマシン語命令(便宜上、真性マシン語命令とも呼ぶ)の1つまたは組をなす複数個からなるマシンコードで、本例では112の条件(比較)命令、113の条件ジャンプ命令、115の実行文#1の各命令、116の実行文#2の各命令のそれぞれのマシンコードがこれに相当する。
次に、4、5、8、9はプログラミング装置1が行う処理で、4は編集画面2上に記述されたテキストプログラムを中間コードのプログラムに変換してプログラムメモリ6に保存する処理、5はその逆にプログラムメモリ6内の中間コードのプログラムをテキストプログラムに変換して編集画面2上に元のフォーマット通りに表示する処理、8はプログラミング装置1のプログラムメモリ6内の中間コードのプログラムをマシンコードのプログラムに変換してPLC10のプログラムメモリ11に書き込むダウンロード処理、9はその逆にPLC10のプログラムメモリ11内のマシンコードのプログラムを中間コードのプログラムに変換しプログラミング装置1のプログラムメモリ6に書き込むアップロード処理である。
なお、条件式の22や実行文#1の24および実行文#2の25をそれぞれ前後で挟む、「<」と「>」の記号は実際のテキストプログラムの記述に用いられるものではなく、この記号を含む区間に式や実行文が存在することを示すものである。このことは後述する図6に記述されているテキストプログラムについても同様である。
このIF文のプログラム命令の内容は『若し条件式22の条件が満たされれば(換言すれば、条件式22の比較結果が真であれば)、実行文#1の24、実行文#2の25、・・・の処理を実行せよ。』というものであり、このプログラム命令をさらに後述する中間コード、あるいはマシンコードのレベルに分解して表現すれば、『条件式22の比較を実行せよ、この比較結果が真であれば次アドレスの英単語「THEN」23へ進み(従って本例では「THEN」23のアドレス以降の実行文#1の24、実行文#2の25、・・・の処理を実行し)、前記条件式22の比較結果が偽であれば、英単語「THEN」23以降に最初に現れる英単語または組合わせ英単語のアドレスへ飛べ(従って本例では組合わせ英単語「END IF」26のアドレスへ飛んでこのIF文を終了せよ)。』というものである。
ところで編集画面2上のテキストプログラムのうち、条件式22、実行文#1の24、実行文#2の25等は、このそれぞれの命令機能を、このシーケンスプログラムを実行するPLC10のプロセッサの機能の仕様に予め定められている各種のマシン語命令としての前記の真性マシン語命令のうちのいずれか所定の1つまたは複数個の組み合わせに置き換えることができ、PLC10にはこの真性マシン語命令への置き換えによってできるマシンコードに変換されて格納される。
従って編集画面2上のテキストプログラムのようなシーケンスプログラムについてのPLC10に格納されたマシンコードから元の表示通りのテキストプログラムを復元しようとするとき、条件式22、実行文#1の24、実行文#2の25は、そのテキスト表示と上記の真性マシン語命令への置き換えに基づくマシンコードとの対応関係を設定できるので問題はない。
ところで、プログラミング装置1のプログラムメモリ6内の1行ずつ順に並んだ各中間コード61〜67については、61、64、67はそれぞれ編集画面2上の制御用語としての「IF」21、「THEN」23、「END IF」26に対応する中間コード、62は編集画面2上の条件式22から生成される条件(比較)命令の中間コード、63は編集画面2上には存在しないが、この制御文がIF文であることによって、条件式22を置き換えた中間コード62の次に置かれ、条件式22の比較結果の真偽に応じて以降の分岐先を指定する役割を持つ条件ジャンプ命令の中間コード、65と66は編集画面2上の実行文#1の24と実行文#2の25を、それぞれ置き換える1つまたは組となる複数個からなる真性マシン語命令に対応する中間コードである。
PLC10へシーケンスプログラムを保存するには、先ず、プログラミング装置1の編集画面2で作成されたST言語で記述されたテキストプログラムを保存処理4において読み込み、中間コードに変換してプログラミング装置1のプログラムメモリ6に格納する。
次にダウンロード処理8において、プログラミング装置のプログラムメモリ6に格納されている各中間コードを読み込む。そして読み込んだ中間コードが制御用語を示す中間コードか否かの判定を行い、制御用語を示す中間コードでなければ該当する真性マシン語命令のマシンコードに変換し、他方、制御用語を示す中間コードであれば疑似マシン語命令のマシンコードに変換し、この疑似マシン語命令のマシンコードも全シーケンスプログラムの一部として、PLC10のプログラムメモリ11に転送し格納する。
図2は、図1の保存処理4の手順を示すフローチャートで、S1〜S8はそのステップ番号である。図2を説明すると、ステップS1でプログラミング装置1の編集画面2から1行分のテキストプログラムを読み込む。そしてステップS2でこの読み込んだテキストプログラムを解析し、連続文字列単位に分割して取り出す。
こうして図1の例ではプログラミング装置1の編集画面2上の各制御用語の「IF」21、「THEN」23、「END IF」26は、プログラミング装置1のプログラムメモリ6に示されるように、それぞれ「IF」、「THEN」、「END IF」を意味する中間コード61、64、67に変換される。
また、前記ステップS3で当該の連続文字列を制御用語以外と判定した場合は、ステップS5に進み、例えば当該の連続文字列が条件式22であれば、当該の連続文字列を、条件式(比較式)22を実行すべき旨の条件(比較)命令の中間コード62と、条件式22の比較結果の真偽に応じて分岐先(本例では制御用語「THEN」23または「END IF」26)を指定する旨の条件ジャンプ命令の中間コード63とに変換し、また当該の連続文字列が実行文#1の24、あるいは実行文#2の25であれば、当該の連続文字列を、それぞれの実行文を表す1つまたは組の複数個の各命令からなる中間コード65、あるいは66に変換して、ステップS6でこの変換した中間コードをプログラミング装置1のプログラムメモリ6に図示のように格納する。
1行分のテキストプログラムを変換し終わったら、次のステップS8で編集画面2上の全てのテキストプログラムを変換し終わったか否かを判定し、変換し終わっていなければステップS1に戻り、以降のステップS1〜S8の処理を繰り返す。
図4は、図1のダウンロード処理8の手順を示すフローチャートで、S21〜S23はそのステップ番号である。図4を説明すると、先ずステップS21ではプログラミング装置1のプログラムメモリ6から読み出した中間コードが制御用語を示す中間コードであるか否かの判定を行い、例えば61、64、67のような制御用語を示す中間コードであればステップS22に進み、それぞれ当該の制御用語に対応した疑似命令のマシンコード、本例では111、114、117に変換する。
図5は、図1のアップロード処理9の手順を示すフローチャートで、ステップS31〜S33はそのステップ番号である。図5を説明すると、先ずステップS31ではPLC10のプログラムメモリ11から読み出したプログラムのマシンコードが疑似命令のマシンコードであるか否かの判定を行い、疑似命令の場合はステップS32に進みそれぞれの疑似命令のマシンコードとしての本例では111、114、117をそれぞれ制御用語の中間コード61、64、67に変換する。
図3は、図1の表示処理5の手順を示すフローチャートで、S11〜S15はそのステップ番号である。なお、この表示処理5は図1の編集画面2上のテキストプログラムの1行分ずつに対応する処理を示している。
図3を説明すると、先ずステップS11でプログラミング装置1のプログラムメモリ6から読み出した(テキストプログラムの行頭に関わる)中間コードが制御用語を示す中間コードか否かを判定する。
ここで、対の制御用語を持つものと判定すればステップS11bに進んで対となる制御用語のうち末尾となる制御用語までの全ての中間コード、本例では61、62、63、64を読み出し、次のステップS11cでそれぞれの中間コードを該当するテキストプログラムに、従って本例では中間コード61を制御用語21に、組となる中間コード62および63を条件式22に、また中間コード64を制御用語23に変換して、変換した制御用語「IF」21、条件式22、制御用語「THEN」23を1行分のテキストプログラムとする。そして、この場合は次のステップS14を単に通過し、次のステップS15でこの1行分のテキストプログラムを編集画面2上に表示する。
また、前記ステップS11でテキストプログラムの行頭に関わる当該の中間コードを、実行文#1または実行文#2にそれぞれ対応する1つまたは組となる複数個からなる各命令の中間コード65または66のような、制御用語以外の中間コードと判定すれば、ステップS13に進んで該当する1行の実行文、本例では実行文#1の24または実行文#2の25のテキストプログラムに変換する。
本例ではテキストプログラムの実行文#1の24および実行文#2の25は、テキストプログラムの制御用語「IF」21〜「THEN」23の行に続く実行文、つまり条件分岐の制御文内の対の制御用語を含む1行分のテキストプログラムに従属する実行文であるためインデントが付加される。
なお、後述の図6に示すように、制御用語には例えば「ELSE」や「REPEAT」のように単独で1行をなして従属する実行文を持つものもあり、このような制御用語に続く実行文にもインデントが付加される。しかし、当該の実行文が制御文とは独立の実行文であればインデントは付加されない。
即ち、一般にプログラムはアドレス順に実行される「順次構造」となっている。しかし、ある処理を繰り返したり、条件によって異なる処理をさせたり、あるいは当該の処理を終了させたりしたい場合があり、このような場合には以降の実行プログラムを別に指定したり、プログラムの実行アドレスの起点を切り替えたり、アドレス更新を停止したりして、プログラムの流れを変える必要がある。このプログラムの流れを切り替える役目を果たすのが制御文である。
そして、1)条件分岐文はさらに、
1−1)IF文、
1−2)CASE文
の2種類に区分され、また、2)反復文はさらに、
2−1)FOR文、
2−2)WHILE文、
2−3)REPEAT文、
2−4)EXIT文、
2−5)RETURN文
の5種類に区分される。
1−1)IF文:
IF文は基本的には『もし・・・の条件が成立すれば・・・を実行し、前記条件が成立しなければ・・・を実行せよ。』という趣旨の命令文であるが、制御用語の組合わせによって若干の変形が生ずる。
前述した図1の編集画面2上のテキストプログラムの記述例は、図6のIF文の記述例のうちa),b),g)の各行の記述を用いており、この中には「IF」,「THEN」,「END IF」の制御用語が含まれるのみである。しかしIF文の制御用語には、このほかc)行に示す「ELSEIF」や、e)行に示す「ELSE」が存在する。
この図6のa)行からg)行までの全行を纏めた命令の内容は『もし、条件式#1が成立したら実行文#1を実行し、また条件式#1が成立せず、条件式#2が成立したら実行文#2を実行し、また条件式#1も条件式#2も成立しなければ実行文#3を実行せよ。』というものである。
CASE文は基本的には単一の整数変数の値とか、或る式の結果としての整数値に対応して選択される実行文があれば該当する実行文を実行させ、対応選択される実行文がない場合には、別に定めた実行文を実行させる命令文である。この制御文には、対をなす「CASE」および「OF」の制御用語と、「ELSE」、「END CASE」の制御用語が用いられる。
この図6のCASE文の記述例の命令の内容は『「CASE」に続く「整数式」の値に一致する整数選択値の実行文があれば該当する実行文を実行し(つまり本例では整数式の値が整数選択値#1または整数選択値#2に一致すれば、実行文#1または実行文#2のうちの一致した側を実行し)、一致する整数選択値の実行文がなければ、「ELSE」の後に続く実行文#3を実行せよ。』というものである。
FOR文は反復変数の値を初期値から最終値まで、1回ごとに所定値ずつ増加(または減少)していく間、毎回、指定したいくつかの実行文を繰り返させる命令文である。図6では書き込みのスペース上、やむを得ず2行に分かれてしまっているが、この制御文には、実際には同一行内で対をなす「FOR」、「TO」、「BY」、「DO」の制御用語と、「END FOR」の制御用語が用いられる。
この図6のFOR文の記述例の命令の内容は『「初期化する反復変数」とした部分の式で初期値を与えた反復変数の値を、「最終値の式」で指定した最終値に達するまで、1回ごとに「増加式」で示されるプラス(またはマイナス)の差分づつ増加(または減少)させ、そのつど実行文#1を実行せよ。』というものである。
WHILE文はある特定のブール式が真である間、1つ以上の実行文を繰り返し実行させる命令文である。この制御文には、対をなす「WHILE」および「DO」の制御用語と、「END WHILE」の制御用語が用いられる。この図6のWHILE文の記述例の命令の内容は『制御用語「WHILE」に続くブール式が真である間、実行文#1および実行文#1に続く図外の実行文を含む1つ以上の実行文を繰り返し実行せよ。』というものである。
2−3)REPEAT文:
REPEAT文はある特定のブール式が真である間、1つ以上の実行文を繰り返し実行させる命令文である(但しWHILE文と異なり、実行文の後方にブール式が置かれる)。この制御文には、「REPEAT」、「UNTIL」、「END REPEAT」の制御用語が用いられる。この図6のREPEATの記述例の命令の内容は『制御用語「UNTIL」に続くブール式が真である間、実行文#1および実行文#1に続く図外の実行文を含む1つ以上の実行文を繰り返し実行せよ。』というものである。
EXIT文は、反復文内の途中の必要な位置に制御用語「EXIT」として置かれ、プログラム実行がこの制御用語「EXIT」に達すると、当該の反復構文の残りのプログラムを実行せず、直ちに当該の反復構文の末尾に飛び、ここから実行を継続させる命令文である。
2−5)RETURN文:
RETURN文は、所定の機能を持ったプログラムの一団としてのファンクションまたはファンクション・ブロックの本体プログラム(つまり当該ファンクションまたはファンクション・ブロックのラベルに続く、処理の実体となるプログラム群)内の途中の必要な位置に制御用語「RETURN」として置かれ、プログラム実行がこの制御用語「RETURN」に達すると直ちに実行を終了して当該ファンクションまたはファンクション・ブロックの本体プログラムの先頭に戻り、ここから実行を継続させる命令文である。
2 編集画面
4 保存処理
5 表示処理
6 プログラミング装置のプログラムメモリ
8 ダウンロード処理
9 アップロード処理
10 プログラマブルコントローラ(PLC)
11 PLCのプログラムメモリ
21 IF(制御用語)
22 条件式
23 THEN(制御用語)
24 実行文#1
25 実行文#2
26 END IF(制御用語)
61 IFを示す中間コード(制御用語を示す中間コード)
62 条件(比較)命令の中間コード
63 条件ジャンプ命令の中間コード
64 THENを示す中間コード(制御用語を示す中間コード)
65 実行文#1の各命令の中間コード
66 実行文#2の各命令の中間コード
67 END IFを示す中間コード(制御用語を示す中間コード)
111 IFを示す疑似命令のマシンコード
112 条件(比較)命令のマシンコード
113 条件ジャンプ命令のマシンコード
114 THENを示す疑似命令のマシンコード
115 実行文#1の各命令のマシンコード
116 実行文#2の各命令のマシンコード
117 END IFを示す疑似命令のマシンコード
Claims (4)
- 文字または(および)記号をそれぞれ複数個連ねた列(以下連続文字列という)からなり、それぞれ、このシーケンスプログラムを実行するプロセッサの機能の仕様に予め定められたマシン語命令(以下真性マシン語命令という)の1または複数個に置き換え可能な各種の条件式や実行文と、同じく前記連続文字列からなり、前記真性マシン語命令への置き換えができない各種の制御用語とを組合わせ、このプログラミング言語固有の文法に従い記述されたテキスト記述型プログラミング言語のシーケンスプログラムとしてのソースプログラムにおける、前記の各連続文字列を順次読み込んで解析したうえ、この各連続文字列をそれぞれ該当するマシン語命令に変換し、前記ソースプログラムに対応するマシン語形態のオブジエクトプログラムを生成してプログラマブルコントローラに格納する言語順変換手段と、
プログラマブルコントローラから読み出したテキスト記述型プログラミング言語のソースプログラムを元とするマシン語形態の前記オブジエクトプログラムを構成する各マシン語命令を順次解析して、前記オブジエクトプログラムを元のテキスト記述型プログラミング言語のソースプログラムに復元する言語逆変換手段とを備えたことを特徴とするプログラマブルコントローラのプログラミング装置。 - 前記言語順変換手段が、前記制御用語に該当しない各連続文字列を、このそれぞれに対する前記の置き換えが可能な1または複数個の真性マシン語命令に変換し、また前記制御用語に該当する各連続文字列を、このそれぞれに1対1に対応し前記真性マシン語命令には含まれず、プログラマブルコントローラのシーケンスプログラムの実行に影響しないマシン語命令(以下疑似マシン語命令という)に変換する手段を備えたものであることを特徴とする請求項1に記載のプログラマブルコントローラのプログラミング装置。
- 前記言語逆変換手段が少なくとも、解析対象の当該のマシン語命令が前記疑似マシン語命令であるか否かを判定する疑似マシン語命令判定手段と、
この疑似マシン語命令判定手段によって疑似マシン語命令でないと判定された当該の前記真性マシン語命令に対しては、さらに組となる真性マシン語命令を持つものであるか否かを判定し、組の真性マシン語命令を持たないと判定した真性マシン語命令を対応する1行分のテキスト記述型プログラミング言語の条件式または実行文に復元し、組の真性マシン語命令を持つと判定した場合は、当該の真性マシン語命令から組の最終位の真性マシン語命令までの真性マシン語命令を一括して、対応するテキスト記述型プログラミング言語の1行分の条件式または実行文に復元する第1の判定復元手段と、
前記疑似マシン語命令判定手段によって疑似マシン語命令と判定された当該の疑似マシン語命令に対しては、さらに対となる疑似マシン語命令を持つものであるか否かを判定し、対の疑似マシン語命令を持たないと判定した疑似マシン語命令を対応する1行分のテキスト記述型プログラミング言語の前記制御用語に復元し、対の疑似マシン語命令を持つと判定した場合は、当該の疑似マシン語命令から対の最終位の疑似マシン語命令までの各疑似および真性のマシン語命令のうち、疑似マシン語命令をそれぞれ対応するテキスト記述型プログラミング言語の前記制御用語に復元すると共に、真性マシン語命令をその個別または組となる複数個を一括した真性マシン語命令ごとに前記第1の判定復元手段を介しそれぞれ対応するテキスト記述型プログラミング言語の条件式または実行文に復元して、当該の疑似マシン語命令から対の最終位の疑似マシン語命令までの全マシン語命令を、該条件式または実行文の復元行を同一行に含むようなテキスト記述型プログラミング言語の制御命令文内の1行分の復元文とする第2の判定復元手段と、
前記第1の判定復元手段によって復元されたテキスト記述型プログラミング言語の条件式または実行文が前記第2の判定復元手段によって復元されたテキスト記述型プログラミング言語の制御命令文内の1行分の復元文、または同じく復元された単独で1行をなす前記制御用語に従属するものであるか否かを判定し、従属する条件式または実行文にはインデントを付加するインデント付加手段とを備えたものであることを特徴とする請求項2に記載のプログラマブルコントローラのプログラミング装置。 - 前記テキスト記述型プログラミング言語をストラクチャード・テキスト言語としたことを特徴とする請求項1ないし3のいずれかに記載のプログラマブルコントローラのプログラミング装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005321722A JP4876537B2 (ja) | 2005-11-07 | 2005-11-07 | プログラマブルコントローラのプログラミング装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005321722A JP4876537B2 (ja) | 2005-11-07 | 2005-11-07 | プログラマブルコントローラのプログラミング装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007128378A true JP2007128378A (ja) | 2007-05-24 |
JP4876537B2 JP4876537B2 (ja) | 2012-02-15 |
Family
ID=38150968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005321722A Active JP4876537B2 (ja) | 2005-11-07 | 2005-11-07 | プログラマブルコントローラのプログラミング装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4876537B2 (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007280377A (ja) * | 2006-03-15 | 2007-10-25 | Omron Corp | Plcシステム |
JP2008083872A (ja) * | 2006-09-26 | 2008-04-10 | Fuji Electric Fa Components & Systems Co Ltd | シーケンスプログラム変換装置、プログラマブルコントローラのプログラミング装置、および、プログラマブルコントローラ |
JP2010224597A (ja) * | 2009-03-19 | 2010-10-07 | Hitachi Industrial Equipment Systems Co Ltd | プログラマブルコントローラ制御プログラム作成方法、および、プログラマブルコントローラ制御プログラム作成システム |
JP2016040665A (ja) * | 2014-08-12 | 2016-03-24 | 株式会社Ihi | シーケンス生成方法 |
CN111104205A (zh) * | 2019-12-24 | 2020-05-05 | 浙江中控技术股份有限公司 | 一种st语言的解释执行方法及系统 |
CN112631606A (zh) * | 2020-12-31 | 2021-04-09 | 中国农业银行股份有限公司 | 一种脚本格式化方法及装置 |
WO2021182785A1 (ko) * | 2020-03-10 | 2021-09-16 | 엘에스일렉트릭 주식회사 | Plc 프로그램 블록 간 디바이스 간섭 방지 방법 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5631148A (en) * | 1979-08-24 | 1981-03-28 | Mitsubishi Electric Corp | Program converting mechanism for programable control device |
JPH01140236A (ja) * | 1987-11-26 | 1989-06-01 | Nec Corp | プログラムの逆コンパイル方式 |
JPH02105932A (ja) * | 1988-10-14 | 1990-04-18 | Hitachi Ltd | プログラム整形出力方法 |
JPH03171302A (ja) * | 1989-11-30 | 1991-07-24 | Fuji Electric Co Ltd | プログラムコメントの表示用格納方法 |
JPH05274011A (ja) * | 1992-01-23 | 1993-10-22 | Mitsubishi Electric Corp | プログラマブルコントローラ及びその制御方法 |
JPH1195815A (ja) * | 1997-09-18 | 1999-04-09 | Yokogawa Electric Corp | シーケンス制御装置 |
JP2001022412A (ja) * | 1999-07-09 | 2001-01-26 | Toshiba Corp | プログラミング装置及びプログラマブルコントローラ並びにプログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP2002041111A (ja) * | 2000-07-26 | 2002-02-08 | Matsushita Electric Works Ltd | プログラミング支援装置 |
JP2003099106A (ja) * | 2001-09-21 | 2003-04-04 | Fuji Electric Co Ltd | 回路コメントデータ保存方法 |
JP2003162307A (ja) * | 2001-11-28 | 2003-06-06 | Fuji Electric Co Ltd | 言語変換支援装置、および、言語変換支援方法 |
JP2004341824A (ja) * | 2003-05-15 | 2004-12-02 | Fuji Electric Fa Components & Systems Co Ltd | プログラマブルコントローラのプログラミング装置 |
-
2005
- 2005-11-07 JP JP2005321722A patent/JP4876537B2/ja active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5631148A (en) * | 1979-08-24 | 1981-03-28 | Mitsubishi Electric Corp | Program converting mechanism for programable control device |
JPH01140236A (ja) * | 1987-11-26 | 1989-06-01 | Nec Corp | プログラムの逆コンパイル方式 |
JPH02105932A (ja) * | 1988-10-14 | 1990-04-18 | Hitachi Ltd | プログラム整形出力方法 |
JPH03171302A (ja) * | 1989-11-30 | 1991-07-24 | Fuji Electric Co Ltd | プログラムコメントの表示用格納方法 |
JPH05274011A (ja) * | 1992-01-23 | 1993-10-22 | Mitsubishi Electric Corp | プログラマブルコントローラ及びその制御方法 |
JPH1195815A (ja) * | 1997-09-18 | 1999-04-09 | Yokogawa Electric Corp | シーケンス制御装置 |
JP2001022412A (ja) * | 1999-07-09 | 2001-01-26 | Toshiba Corp | プログラミング装置及びプログラマブルコントローラ並びにプログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP2002041111A (ja) * | 2000-07-26 | 2002-02-08 | Matsushita Electric Works Ltd | プログラミング支援装置 |
JP2003099106A (ja) * | 2001-09-21 | 2003-04-04 | Fuji Electric Co Ltd | 回路コメントデータ保存方法 |
JP2003162307A (ja) * | 2001-11-28 | 2003-06-06 | Fuji Electric Co Ltd | 言語変換支援装置、および、言語変換支援方法 |
JP2004341824A (ja) * | 2003-05-15 | 2004-12-02 | Fuji Electric Fa Components & Systems Co Ltd | プログラマブルコントローラのプログラミング装置 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007280377A (ja) * | 2006-03-15 | 2007-10-25 | Omron Corp | Plcシステム |
JP4737441B2 (ja) * | 2006-03-15 | 2011-08-03 | オムロン株式会社 | Plcシステム |
JP2008083872A (ja) * | 2006-09-26 | 2008-04-10 | Fuji Electric Fa Components & Systems Co Ltd | シーケンスプログラム変換装置、プログラマブルコントローラのプログラミング装置、および、プログラマブルコントローラ |
JP2010224597A (ja) * | 2009-03-19 | 2010-10-07 | Hitachi Industrial Equipment Systems Co Ltd | プログラマブルコントローラ制御プログラム作成方法、および、プログラマブルコントローラ制御プログラム作成システム |
JP2016040665A (ja) * | 2014-08-12 | 2016-03-24 | 株式会社Ihi | シーケンス生成方法 |
CN111104205A (zh) * | 2019-12-24 | 2020-05-05 | 浙江中控技术股份有限公司 | 一种st语言的解释执行方法及系统 |
WO2021182785A1 (ko) * | 2020-03-10 | 2021-09-16 | 엘에스일렉트릭 주식회사 | Plc 프로그램 블록 간 디바이스 간섭 방지 방법 |
CN112631606A (zh) * | 2020-12-31 | 2021-04-09 | 中国农业银行股份有限公司 | 一种脚本格式化方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
JP4876537B2 (ja) | 2012-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4876537B2 (ja) | プログラマブルコントローラのプログラミング装置 | |
JP2765423B2 (ja) | プログラマブルコントローラ及びその制御方法 | |
US6243864B1 (en) | Compiler for optimizing memory instruction sequences by marking instructions not having multiple memory address paths | |
JP2007272353A (ja) | プロセッサ装置及び複合条件処理方法 | |
JP4620035B2 (ja) | プログラム作成装置、プログラム作成方法およびその方法をコンピュータに実行させるプログラム | |
JPH05100730A (ja) | モーシヨンコントローラのプログラミング装置 | |
JP2002182709A (ja) | プログラマブルコントローラのプログラミング装置 | |
JP2009163524A (ja) | 演算処理装置 | |
US20230375999A1 (en) | Program creation assistance system and computer readable medium | |
JPH07334216A (ja) | プログラミング装置 | |
JP2006018759A (ja) | 制御装置及び方法 | |
JPH0863369A (ja) | 最適化情報出力方式 | |
JP2008040658A (ja) | 情報処理装置および情報処理の高速化方法 | |
JPH11259308A (ja) | プログラマブルコントローラ | |
JP2862369B2 (ja) | 画像表示制御装置 | |
JPH0713758A (ja) | 命令デコード方法 | |
JP5028644B2 (ja) | 電子式計算機および計算機制御プログラム | |
JPH11212606A (ja) | プログラム作成装置及びプログラムモニタ装置 | |
JP2006318168A (ja) | 設定用プログラム、記録媒体、設定方法および設定装置 | |
JPH05100836A (ja) | ソースプログラム注釈行編集装置 | |
JP2007265095A (ja) | ソースプログラム検証プログラム | |
JPH05108372A (ja) | コンパイラ最適化処理内容の出力方式 | |
JPH11167409A (ja) | 並列実行言語で動作するプログラマブルコントローラ | |
JPH0496106A (ja) | ラダープログラム編集方式 | |
KR20000050241A (ko) | 가상 캐릭터를 이용한 게임 제작 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A625 | Written request for application examination (by other person) |
Free format text: JAPANESE INTERMEDIATE CODE: A625 Effective date: 20080916 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20080919 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20081215 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20090219 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20110422 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110819 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110906 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111012 |
|
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: 20111101 |
|
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: 20111114 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4876537 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141209 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |