No.1
- 回答日時:
ニーモニックは、機械語に1対1に対応していますが、機械語そのものではありません。
シーケンサ内で更に別の機械語に変換されています。機械語として実行されるのは、「0と1」(onとoff)の2進法の世界です。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.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.4
- 回答日時:
ニーモニックは便宜上に使っている表記であってマイコンなどで使用される機械語とは違います。
A接点X1がLD X1と読み替えているだけなので機械語としての意味は無いです。動作についてはパソコンやマイコンのようなプログラムストアード形式では無いようです。詳しくは以下のPLCはステートマシンの説明を読んでください。
https://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD …
回答いただきありがとうございます。
紹介していただいたサイトを見ましたが、理解するには私の見識が追い付いていないようです。
機会を設けて勉強したいと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
StrConvの使い方について教えて...
-
分を時間に変換するプログラム
-
DOSコマンドでの文字コード変換...
-
C++からCへのソース変換について
-
数値英単語変換プログラム
-
BCBプロジェクトをVCに移植
-
画像ファイル変換(Tiff→PDF)
-
【EXCEL】カナ、ひらがなを英字...
-
色の変換
-
線対称の角度を求める
-
UTF8→ShiftJISに変換したいです!
-
緯度、経度の 10進法と 60進法...
-
HSPで作ったゲームを他の言語に...
-
F-BASICからC言語への変換
-
NumericUpDownを使用してテキス...
-
家電製品の電力周波数を変える機械
-
Macターミナルで実行中のプログ...
-
「ヒープサイズの設定」て何?
-
HTA(HTMLアプリケーション)にて...
-
C# シリアル通信でデータ受信...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
緯度、経度の 10進法と 60進法...
-
家電製品の電力周波数を変える機械
-
3のつく数字と3の倍数のみを表...
-
エクセルVBAの自動変換機能?
-
10進数をBCDに変換する方法
-
Mac 乗数の入力方法
-
なぜ通信には16進数文字列が使...
-
VB6からVB2010への変換について
-
VB.NETからJavaに変換するツー...
-
C/C++→JAVAに変換するツール
-
【EXCEL】カナ、ひらがなを英字...
-
VB6で10進数を32進数に変換する...
-
逆コンパイルと逆アセンブルの...
-
分を時間に変換するプログラム
-
php
-
VB.NETをJavaに変換するツール...
-
C#でのpngからbmpへの変換について
-
C++からCへのソース変換について
-
マンセル⇔XYZ,RGB変換式或いは...
-
画像ファイル変換(Tiff→PDF)
おすすめ情報
回答ありがとうございます。
ラダーをそのまま シーケンサへ転送すると シーケンサ内では
機械語には変換されないので、一旦 ニーモニックに変換していると
考えていいのでしょうか?
そして、シーケンサ内部にニーモニックを機械語に変換するプログラムの
ようなものがあり自動的に変換されているのですか?
申しわけありませんが あわせて教えていただけないでしょうか?