• 締切済み

PLC 命令について

PLCでの制御技術者の皆様へ 現在、PLCの技術者として走り出しましたが、命令用語がどうしても 判りません。マニュアルを見ても判らない。。。 申し訳ありませんが、以下の命令用語の意味を教えていただけませんでしょうか。宜しくお願いいたしします。 [WAND W219B HOF D500] [FLT D130 D141] [E* D141 E1.4 D145] [INT D145 D140] [E/ E23 E8.36 D125] [BIN K3X448 D502] [BCD D316 D332 ] [DIS D332 D330 K2 ] [PLS M868] [FMOV K0 K4F0 K100] [CJ P0] [DMOV K0 K4L2217] [DMOVP D344 D346] [DSFR R304 K2] [< K0 K2X804] [* R900 K9466 D902] [TO H18 H1E4 H102 K1] [FROM H18 H2E4 D122 K1] [BMOV SW80 D2000 K4] [K0 K1F721] [FIFR D184 R350] [FIFW D184 R340] [BCD D150 K2Y580] [FINSP D260 R320 D210] [FDELP D270 R300 D200] [D> K7M1420 K0] [D/ R16 D912 D920] [ENCO M1320 D250 K7] [SUM K3M2351 R350] [DECO R1 M250 K3]

みんなの回答

  • lumiheart
  • ベストアンサー率48% (1102/2295)
回答No.3

一体、どのマニュアルを見て分からないと言ってるのでしょうか? 少なくとも↓のマニュアルを全頁読破しましょうね マニュアルの分厚さに圧倒されてるだけで、実は読もうとすらしていない人が多い http://wwwf2.mitsubishielectric.co.jp/melfansweb/plcq/index.html QCPUユーザーズマニュアル(機能解説・プログラム基礎編) SH(名)-080473-O(1/1) (約28,185KB) QCPU(Qモード)/QnACPU プログラミングマニュアル(共通命令編) SH(名)-080021-S(1/1) (約53,832KB) QCPUユーザーズマニュアル(ハードウェア設計・保守点検編) SH(名)-080472-N(1/1) (約21,298KB)

  • equinox2
  • ベストアンサー率48% (321/660)
回答No.2

もうこの世界から離れて15年近いのとマニュアル類が手元にないので 正確な回答はできませんが、どちらかというとシーケンス制御では なく、組み込み機器やアセンブラの得意な人がわかり易い分野ですね。 三菱のシーケンサのようですが、シーケンス制御ではなく、 データを変換・計算して他の機器(もしくは??ユニットなど)に 渡しているように見受けられます。 PLC本体以外のユニットとIO割付などが判らないと何をしているかは 判断しにくいでしょう。 M,D,W,R,Xなどの割り当てがあるのなら、各命令がどのレジスタから どれだけ使用してどういう変換をしているか地道に追っかけてください。 一部の基本的な命令ならここが参考になるかも・・ http://www17.ocn.ne.jp/~k_fa/three.html

noname#194317
noname#194317
回答No.1

技術者たるもの、もう少し質問を整理できませんか?最低限、PLCの機種は何で、解らないのはどの命令語のことかくらいは書きましょう。 また、専用の表示器やタッチパネルを使っている場合は、それの割り付けも必要ですし、どのI/O番地に何がつながっているかは解ってますよね?それすら解らないようだと、この場ではほとんど手の打ちようがないです。現物を前にして直接やりとりしないと、厳しいでしょう。ということで、その辺の情報を補足してください。

関連するQ&A

  • 三菱 PLC Aシリーズ 命令語

    三菱 PLC 初心者のものです。 [H T213 K1]の命令語があります。 Hってなんですか?

  • 三菱PLCの命令語、ワードデバイスの操作について

    D100:00003131 D1000:30300000 D0:30303131 D100の下位8ビットと、D1000の上位8ビットを、上記のようにD0へ格納したいのですが。 考えられる方法、ズバリの命令語があれば教えて下さい。 k1、k2、k3、k4を使用して出来ると思いましたが、ワードデバイス同士では出来ませんでした。 宜しくお願い致します。

  • オムロンPLCのプログラムで困っています。

    PLC(CP1E)、PT(NB5Q)、温調器(E5CC)、CX-Pro.の構成です。RS232Cでプログラムレス通信をしています。E5CCの補助出力でPLC内部補助リレーを作動させるにはどのようなプログラムを書けばよいでしょうか。もう一点は、PLCプログラムでE5CCのRUN・STOPを制御できません。MOV命令でD16メモリに#256・#257を転送しますが機能しません。初心者で詳しいことがわかりません。ご指導をお願いします。

  • float.h のテスト結果がおかしい

     float.h  をテストするため、次のようなプログラムを作りました。  float.h に書かれている値が書き出されると思ったのですが、少し値が違います。  FLT_MAX と DBL_MAX の値が違っています。本当にこのヘッダファイルを読んでいるかと思い、 #define FLT_MAX 3.4e+3f    と変更すれば、 Max= 3.400000000000000000E+03 と出てきます。  一致しない原因は何でしょう。  コンパイラはルネサスのHEWで、CPUはH8/3052です。 *** float.h *** #define FLT_MAX 3.4028235677973364e+38f #define FLT_MIN 1.175494351e-38F #define DBL_MAX 1.7976931348623158e+308 #define DBL_MIN 2.2250738585072014e-308 *** プログラム *** sprintf(str," float :%ldBytes Max= %.18E Min= %.18E\r\n", sizeof(float), FLT_MAX, FLT_MIN) ; Put_str(str) ; sprintf(str," double:%ldBytes Max= %.18E Min= %.18E\r\n", sizeof(double), DBL_MAX, DBL_MIN) ; Put_str(str) ; *** 結果 *** float :4Bytes Max= 3.402823466385288600E+38         Min= 1.175494350822287500E-38 double:8Bytes Max= 1.797693134862315700E+308          Min= 2.225073858507201400E-308 *** まとめて整理 ***  元の原稿は比較し易いように縦に数字が並ぶように書いているのですが、 ここに書き込むとずれてしまいます。 #define FLT_MAX 3.4028235677973364e+38f         Max= 3.402823466385288600E+38  FLT_MIN に比べ有効桁数が多いのが気になる。  同じ有効桁数で区切っても ...567 と ...466 とでは誤差が大きい。    FLT_MAX 3.402823567 7973364e+38f       Max= 3.402823466 385288600E+38     FLT_MIN 1.175494351e-38F #define FLT_MIN 1.175494351e-38F         Min= 1.175494350822287500E-38  四捨五入なら分かる。 #define DBL_MAX 1.7976931348623158e+308         Max= 1.797693134862315700E+308  最後が8と7で違う。しかし、DBL_MAX は8バイトで表せる値に対して四捨五入したために7が8になったと考えれば納得出来る。 #define DBL_MIN 2.2250738585072014e-308         Min= 2.225073858507201400E-308  ピッタリ合っている  宜しくお願いします。

  • 命令パイプライン、データハザードについて

    こんにちは。コンピューターアーキテクチャのデータハザードに関する質問です。 勉強を始めたばかりなので変な質問かもしれませんが、よろしくお願いします。 add r1 r2 r3       F D E  W mul r4 r1 r5          F × × D E W 以前の計算結果が現在の処理(この場合ですとmulの処理)に必要な場合、データハザードが起きるということなのですが、この以前の計算の部分がデータ移動命令でも同じようにデータハザードは起こるのでしょうか つまり、 ld r1 r2 15 mul r4 r1 r5 のような時も同じようにハザードは起きるのでしょうか。 よろしくお願いします。

  • Microsoft excelの計算方法

    200行ほどの計算方法で2段目に単価、3段目以降は注文数。 各行に注文数と単価を掛け合わせ、最終行に数量を各行合計。、 さらに横行に数量x単価で集計をとりたいのですがエラーが出てしまいます。 エラーがでる計算式は M3=(C3*C2)+(D3*D2)+(E3*E2)+(F3*F2)+(G3*G2)+(H3*H2)+(I3*I2)+(J3*K2)+(K3*K2) L3は各行の数量計算、M3は数量x単価計。 これを短くする計算方法を教えてください。

  • 浮動小数点数の float型 での最少値について調べています。

    浮動小数点数の float型 での最少値について調べています。 「Visual C++ 2008 Express Edition」の「float.h」の中には、    #define FLT_MIN     1.175494351e-38F   /* min positive value */    #define FLT_MIN_EXP  (-125)           /* min binary exponent */ という記述があります。 float型で表現できる最少値が「1.175494351e-38F」なのだろうと思い、 下記のように 2^-125 を計算してみました。    printf("結果は、「%e」です。", pow((double)2, (double)(-125))); 実行結果は、    結果は、「2.350989e-038」です。 となり、「float.h」の「FLT_MIN」には一致しませんでした。 試しに、下記のようにしてみると( 2^-125 を 2^-126 に変えてみました )    printf("結果は、「%e」です。", pow((double)2, (double)(-126)));    結果は、「1.175494e-038」です。 となって「float.h」の「FLT_MIN」と「ほぼ一致」しているように見えます。 float型での最小値(FLT_MIN)を計算する際に「float.h」での「FLT_MIN_EXP」を使って    2^-125 とするのは間違っているのでしょうか?

  • エクセルのvbaの質問

    a b c d e f g h i j k l m n 1 p1 p2 p3 2 s1 s2 s3 s4 s1 s2 s3 s4 s1 s2 s3 s4 3 あ い う お え い あ う お え い 4 10 25 20 40 25 50 10 30 20 15 17 5 6 7 p1 p2 p3 8 =a3 =b3 =c3 =d3 9 =a4 =b4 =c4 =d4 こんな感じでデータが入ってます。 p1の内訳がs1からs4という感じです。 で、a7からc3にp1,p2,p3とありますが、これをクリックしたら、 またはa7にp1とかp2と入力したら、a8からd9にそれぞれの内訳が参照されるようなマクロを組みたいのです。 どうか教えてください。 見づらいですね。 データはa1,f1,k1にそれぞれp1,p2,p3 a2からd2,f2からi2,k2からn2にそれぞれs1,s2,s3,s4 a3あ,b3い,c3う,d3"",e3"",f3お,g3え,h3い,i3あ,j3"",k3う,lお, m3え,n3い a3 10,b3 25,c3 20,d3 "",e3 "",f3 40,g3 25,h3 50,i3 10,j3 "",k3 30,l3 20,m3 15,n3 17 a7 p1,b7 p2,c7 p3 a8からd9の"=a3"から"=d4" です。 3行目、4行目は必ずしも全部埋まってなくて、スペースが入る場合があります。 よろしくお願いします。

  • JavaScriptの配列について

    var old_array = Array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '<', '#', '/', '>', '%', '.', '*', '0', '!', '?', ':', '=', '|'); var new_array = Array('b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '<', '#', '/', '>', '%', '.', '*', '0', '!', '?', ':', '=', '|'); のような配列があり、 abcと入力するとbcd DEFと入力するとEFG 012と入力すると!23 というようなものを作りたいのですがどうすればいいでしょうか。

  • 数値解析法

    このHeun法のプログラムをRunge-Kutta法にするにはどうしたらいいですか? #include <stdio.h> #include <math.h> double f1(double y) { return y; } double f2(double y) { return -4*y; } int main(){ double a=0; double b; int m=10; int n; double h; double x,y; int k; double e; double f; double k1,k2; printf("Heun法計算例:y=e^x, y=1/e^4x\n\n"); // y = e^x b = 1; for(n=100;n<=10000;n*=100){ h = (b-a)/n; printf("y' = y: h(=dx) = %.1e (y=e^x)\n",h); x = a; y = 1; for(k=0;k<=n;k++) { x = k*h; if(k%(n/m)==0) { f = exp(x); e = fabs(y-f); printf("x=%.2f, y=%f, e^x=%f er=%.0e\n",x,y,f,e); } // Heun's method k1 = h*f1(y); k2 = h*f1(y+k1); y += (k1+k2)/2; } }

専門家に質問してみよう