
No.2ベストアンサー
- 回答日時:
No.1です。
>ラダーをそのまま シーケンサへ転送すると シーケンサ内では
機械語には変換されないので、一旦 ニーモニックに変換していると
考えていいのでしょうか?
「ラダー」は、動作を表わすシンボルに近い形で記述したものですね。一種の「高級言語」に相当し、一般に「POL:Problem Oriented Language」(問題向き言語)と呼ばれます。
これをプログラム言語としての「アセンブリ言語」に変換します。ニーモニックはアセンブリ言語です。あくまで「人間に理解できるようにしたもの」であり、それで機械が動くわけではありません。
https://ja.wikipedia.org/wiki/%E3%82%A2%E3%82%BB …
アセンブリ言語は、シーケンサ内の「アセンブラ」で機械語に翻訳されてから実行されます。
http://e-words.jp/w/%E3%82%A2%E3%82%BB%E3%83%B3% …
何度も教えていただきありがとうございます。
理解できました。
プログラムの世界は奥が深くおもしろそうですね。
プログラムでトランジスタを組み合わせたCPUが動き計算する・・・・
興味深いです。
ありがとうございました。
No.4
- 回答日時:
ニーモニックは便宜上に使っている表記であってマイコンなどで使用される機械語とは違います。
A接点X1がLD X1と読み替えているだけなので機械語としての意味は無いです。動作についてはパソコンやマイコンのようなプログラムストアード形式では無いようです。詳しくは以下のPLCはステートマシンの説明を読んでください。
https://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD …
回答いただきありがとうございます。
紹介していただいたサイトを見ましたが、理解するには私の見識が追い付いていないようです。
機会を設けて勉強したいと思います。
ありがとうございました。
No.3
- 回答日時:
メーカーや機種によって違うと思いますが、PLC内ではインタープリタで動作していると思います。
PLCではターゲットプログラムは一般にラダー形式で入力します。各命令や処理は中間言語という特殊なコードに変換されます。
PLCにはライブラリーという実際の処理を行うソフト群があります。
PLCはまず中間言語になっている命令のひとつを読み出します。それがもしAND命令だったらライブラリーの中のAND処理の部分にジャンプ、終われば次の命令を読み出しOUT命令だったらライブラリーのOUT処理にジャンプ、といった動作を繰り返します。これがインタープリタのおおまかな動作です。
ラダー形式と中間言語は1:1に対応しているので互いに変換できます。PLCにあるプログラムを読み出すと元のラダー図になりますよね。対応が完璧にできているためです。
PLCではありませんが、PC-8001など初期のパソコンにはBASICが搭載してありました。BASICはインタープリタで動作していました。
インタープリタの詳細については以下をご覧ください。
https://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3 …
PLCによってはコンパイルしている機種もあるでしょう。これはPLC内のCPUチップが理解できる機械語にしてしまう方式です。AND命令ならAND処理の機械語群(一般に数バイトから数十バイトある)、OUT命令ならOUT処理の機械語群をその順番につないだものと考えてください。この方式では理論上はPLCにはシステムのようなソフトはなくてかまいません(とは言っても読込やモニター機能が必要ですから相応のものは持っています)。実行速度はインタープリタより速くなりますが、いったん機械語になったプログラムをラダー形式に戻すのは難しいので特殊なPLCしか採用していないはずです。
なお、ご質問にある「ニーモニック」とは何でしょう?
http://fa-faq.mitsubishielectric.co.jp/faq/show/ …
にある「ブロックリスト」形式のことでしょうか?
もしそうであるならプログラマー(プログラムの編集機)での表示形式が違うだけで、ラダー図と同じものです。プログラマーでもPLC本体でも記憶形式は中間言語、つまり特殊なコードになっています。
回答ありがとうございます。
小生 プログラムに関する知識が弱いため なかなか理解が進まないというのが
正直なところです。。。
ただ、なんとなくわかったような気はします。
ありがとうございました
No.1
- 回答日時:
ニーモニックは、機械語に1対1に対応していますが、機械語そのものではありません。
シーケンサ内で更に別の機械語に変換されています。機械語として実行されるのは、「0と1」(onとoff)の2進法の世界です。お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
家電製品の電力周波数を変える機械
-
FortranをC++(VC++)へ変換
-
逆コンパイルと逆アセンブルの...
-
.sb3のファイルを.sb2に変換す...
-
VB6で16進のXOR演算
-
VB 6 を VS 2012に変換するには?
-
シーケンサのCPUはニーモニック...
-
UTF8→ShiftJISに変換したいです!
-
ASP.NET SJIS→UTF-8文字コード...
-
C#でのpngからbmpへの変換について
-
10進数をBCDに変換する方法
-
アセンブラ言語の数字を数値に...
-
HRESULTの代替となる型
-
N88BASICのバイナリデータをテ...
-
緯度、経度の 10進法と 60進法...
-
gmtime()とlocaltime()は
-
Macターミナルで実行中のプログ...
-
powershell を使いカレントディ...
-
TCP/IP通信時のサーバーからの受信
-
Windows上で、シグナル(SIGTERM...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
家電製品の電力周波数を変える機械
-
逆コンパイルと逆アセンブルの...
-
エクセルVBAの自動変換機能?
-
10進数をBCDに変換する方法
-
VB6からVB2010への変換について
-
緯度、経度の 10進法と 60進法...
-
分を時間に変換するプログラム
-
C#で漢字→ローマ字を変換
-
なぜ通信には16進数文字列が使...
-
vb.netの型変換について
-
正規表現でルビを小書きに変換...
-
マンセル⇔XYZ,RGB変換式或いは...
-
C#で漢数字をアラビア数字に変...
-
VB6から.NETへアップグレード時...
-
php
-
VB 6 を VS 2012に変換するには?
-
3のつく数字と3の倍数のみを表...
-
C++からCへのソース変換について
-
エクセルのvbaで検索ボタンを作る
-
tex 郵便記号のだしかた
おすすめ情報
回答ありがとうございます。
ラダーをそのまま シーケンサへ転送すると シーケンサ内では
機械語には変換されないので、一旦 ニーモニックに変換していると
考えていいのでしょうか?
そして、シーケンサ内部にニーモニックを機械語に変換するプログラムの
ようなものがあり自動的に変換されているのですか?
申しわけありませんが あわせて教えていただけないでしょうか?