バイナリ指定で複数レジスタを順次リセットするラダーシーケンス

このQ&Aのポイント
  • ラダー(シーケンス)回路の組み方を教えてください。
  • 出力先の相手機器は7ヶのレジスタを持っており、3ビットでレジスタを指定し同時にリセット入力をonすることによって所定のレジスタがリセットされます。
  • 複数のレジスタをリセットする回路を作るためには、順次指定を変えてリセットを繰り返す方法が必要ですが、具体的な方法がわかりません。さらに、入力に追加の要素がある場合、リセットをどのように作成すればよいかもわかりません。
回答を見る
  • ベストアンサー

バイナリ指定で複数レジスタを順次リセットするラダ…

バイナリ指定で複数レジスタを順次リセットするラダーシーケンス ラダー(シーケンス)回路の組み方を教えてください。 入力が1点:リセットPB 出力が4点:リセット入力 :レジスタ#1 :レジスタ#2 :レジスタ#3 出力先(相手機器)は7ヶのレジスタを持っており レジスタ#1~レジスタ#3の 3ビットでレジスタを指定し同時に リセット入力 をonすることによって所定のレジスタがリセットされます。 1回 リセットPB を押すだけで複数のレジスタをリセットする回路を作らなければいけません。話しを簡単にするために7ヶすべてのレジスタを1プッシュでリセットする回路と考えてけっこうです。 順次指定を変えてリセットを繰り返す方法がわかりません。 失礼しました。入力がもう1点 リセット確認:RSTACKがありました, レジスタは1ビットと考えてください。 入力: XO:PB押しボタン X1:RSTACK 出力: Y0:RST Y1:#1(2-0) Y2:#2(2-1) Y3:#3(2-2) 途中まで考えてみましたが M2~M7 をたてる方法がわかりません。 RSTACKは1個のレジスタをリセットするごとに1パルス同一信号が返ってきます。 X0 --||----------[PLS M0] X1 --|/|---------(M99) | M0 M99 --||--+--|/|---(M1) M1 | --||--+ M1 --||-----------(Y0) M2 | --||--+ M3 | --||--+ M4 | --||--+ Mn | --||--+ ** M5~M7 すべてパラ M1 --||--+--------(Y1) M3 | --||--+ M5 | --||--+ M7 | --||--+ M2 --||--+--------(Y2) M3 | --||--+ M5 | --||--+ M7 | --||--+ M4 --||--+--------(Y3) M5 | --||--+ M7 | --||--+ レジスタとの表現が誤解を招きました。外部機器(カウンタ)です。 カウンタを255ヶ持っており。そのカウントのリセットのための入力が,リセット信号:1ビット,カウンタ指定信号:8ビットです。リセット完了応答が"RSTACK"1ビットです。 PLC側はmov命令他たいていのコマンドは使えます。ラダー表記の他にニモニックでもプログラムできますがラダーの方が解釈しやすいです。 タイミングパルスとカウンタを使う等して順次作動する回路は作れそうな気がしますがいかにも複雑です。もっと単純スマートな方法がありそうな気がします。 "PB"入力を保持して, ラダー図上段から1かたまり(1段)ずつ作動し(2回以上作動しない), 最下段が作動完了で保持を解除でよいと思うのですが。 応答が"RSTACK"1本なので・・?。 1段目は"RSTACK"でリセットするとして, 2段目は PB(M0)and"RSTACK(a)" でonしてよいか,保持offを"RSTACK(b)"でよいか(a),(b)が同ブロックに存在? 最終段リセット完了(M99)はどうやって作るか?

noname#230358
noname#230358

質問者が選んだベストアンサー

  • ベストアンサー
noname#230359
noname#230359
回答No.2

回答(1)です >もっと単純スマートな方法がありそうな気がします。 無様に長いけれど、しかもMOV命令使用で三菱仕様 X0 リセットPB X1 RSTACK Y10 リセットコード 2^1 Y11 リセットコード 2^2 Y12 リセットコード 2^4 Y13 リセットコード 2^8 空き(ワード命令で占有される) Y14 リセットストローブ X0 M5 -----||------+------|/|------+---------(M0) リセット保持 M0 | | -----||------+ +--------[MOVP K1 D0] M0 -----||-------------------------------[PLS M1] リセットパルス X1 -----||-------------------------------[PLS M2] アクノリッジパルス M1 M2 -----||----+----|/|----------+---------(M3) リセット出力 M3 | | -----||----+ +---------(T0 K1)リセット出力タイマ T1 | -----||----+ M3 -----||------------------------------[MOV D0 K1Y10] リセットコード出力 M2 -----||------------------------------[INCP D0 ] アクノリッジカウント T0 X1 -----||--------|/|----------------------(Y14) リセット出力 T0 T1 -----||------+-------|/|------+-------(M4)次リセット保持 M4 | | -----||------+ +-------(T1 K1)次リセットタイマ -------[> K7 D0 ]---------------------(M5) リセットコード送信完了 アクノリッジX1 RSTACKがOFFするタイミングは何時? 差し当たって Y14 リセットストローブがOFFしたらRSTACKはOFFするとして 上記を書きました T0,T1はパラレルデータ出力送信時に憑き物のストローブタイミング

noname#230358
質問者

お礼

ありがとうございます。アドバイスを参考に下記のようにやってみます。 インクリメント値→ビットデバイス のようにしなかったのは,(問題を単純化しすぎて,順次リセットすると書きましたが実際は PB1を押すとカウンタ1,3,nが,PB2を押すとカウンタ2,4,≠nがリセットされるものが必要だったのです。 結果が出たら報告します。 X0 ----|↑|--------(M0) リセットパルス X1 ----|↑|--------(M1)  ACKパルス M0 M99 ----||----+----|/|----(M2)  リセット保持 M2 | ----||----+ M2 X1 ----|↑|----+----|/|----(M3)  リセット-1 M3 | ----||------+ M2 M3 X1 ----||----|↓|----+----|/|----(M4)  リセット-2 M4 | ----||------------+ ----中略---- M2 Mn-1 X1 ----||----|↓|----+----|/|----(Mn)  リセット-n(最終) Mn | ----||------------+ Mn ----|↓|--------(M99)  リセット完了 M3 ----||----+----(Y0)  リセット出力 M4 | ----||----+ --全パラ-- +   Mn | ----||----+ M3 ----||----+----(Y1)  No-2^0 M5 | ----||----+ M7 | ----||----+ M4 ーーーー||----+----(Y2)  No-2^2 | ----||----+ 以下略 デコーダ回路 ありがとうございました。 立ち上がり遅延・ワンショットを作り,リセットパルスとし,一つ目のリセットの立ち下がりで次回路をONさせる方法で順次リセットする方法で何とかうまくいきました。ご指摘のとおりRSTACKの立ち下がりタイミングがわからなかったので使いませんでした。

その他の回答 (1)

noname#230359
noname#230359
回答No.1

シーケンサのメーカ及び形式は? 三菱やオムロンじゃあないよね FANUCかな? 用語の問題なのですが >:レジスタ#1 >:レジスタ#2 >:レジスタ#3 これは1bitレジスタが3個で3bitと言う意味? 三菱やオムロンではレジスタと言えば16bitワード で、 >出力先(相手機器)は7ヶのレジスタを持っており 単純に3bitで000~111(0h~7h)のデータを送信すれば良いのでしょうか? タイマで順送り? 三菱Qでなら X0 --|/|-------------------------------[MOVP K0 D0] X0 SM412 --||----||------[< D0 K7]------+----[INCP D0] | +----[MOV D0 K1Y10] >途中まで考えてみましたが M2~M7 をたてる方法がわかりません。 純粋ラダーで書かなきゃダメなの? 何処のメーカの型番は何? 何でMOV命令とか使えないの? <使えないPLCは無いハズなのだが? それとも学校の宿題とか?資格試験とかの課題?

noname#230358
質問者

お礼

ありがとうございました。 リセット入力を立ち上がり遅延・ワンショットにして1番目のリセット・その立ち下がりで2番目のリセットを立ち上げ・・順次リセットの方法で何とかうまくいきました。 MOV命令を使わなかったのは,問題を単純化しすぎて,順次リセットすると書きましたが実際は PB1を押すとカウンタ1,3,nが,PB2を押すとカウンタ2,4,≠nがリセットされるものが必要だったのです。

関連するQ&A

  • ラダーにてセットリセットを使わない方がいい?

    PLCラダープログラム、初級者です。 先日、セットリセットモジュール(セットリセットフリップフロップ)、或いは、リセットセットモジュールを用いてラダープログラムを行っていたのですが、ある人から、セットリセットモジュールを使うのではなく、自己保持回路を使った方がいい、とのアドバイスを受けました。 理由を説明して貰ったのですが、よく理解できませんでした。 なぜ、同じ機能なのに、自己保持回路を使った方がいいのでしょうか? すみませんが、よろしくお願いします。

  • ラダーチャート

    プロコンを用いた実験でラダー図が書けなくて困っています。PB1を押すとL1が2秒間点燈し消え、その代わりにL2が4秒間点燈します。これを繰り返すようにし、PB2を押すとリセットされ消えます。この回路をシーケンス図で書くと下図のようになると思います。これをPCで使用するラダー図に書き直しコーディングしたいのですが分かりません。PB1(入力);3000、PB2(入力);3001、L1(出力);3100、L2(出力);3101。どなたか分かる方がおられましたらお願いします。 +--PB1(a)--+--PB2(b)-----X1(coil) |        | +--X1(a) --+ーーX2(b)ーーーー-+ーT1(coil)(T=2S) | | | +ーL1 +--T1(a) -+--X1(a)--T2(b)-----X2(coil) | | +--X2(a)- +--------------------T2(coil)(T=4S)       | +-----ーーー-------------L2

  • ATTINY13のリセット端子は無効にできるか?

    ATTINY13マイコンをAtmel Studio6.2でプログラミングしています。8ピンのマイコンなので、リセット端子でもある1番ピンを入力ピンとして使用したいと思っています。DDRレジスタでPB0端子を入力端子に設定して、この端子にスイッチをつけたのですが、スイッチONでLOWレベルにすると、マイコンの動作が止まってしまいます。 現在リアルタイムデバッガ機能は使用していないのですが、RESETが有効で動作しているのではないかと思われるのですが、RESET機能を無効にすることは可能でしょうか? どうぞ、ご教示頂きますよう、よろしくお願い致します。

  • ラダー回路で質問です。

    URLにありますラダー回路で質問です。 データレジスタを使用して入力し、Y006で出力します。 入力は2回目でオン、3回目でオフ、4回目でオン、5回目でオフの 設定の予定ですが、2回目の入力で出力が反応せず、4回目の入力では 出力が反応します。何が原因かわかりますでしょうか? http://fast-uploader.com/file/7026712716001/

  • 折り返しカスコード回路の原理

    初めに写真の回路の上のトランジスタM3はp型mosで、左下のn型mos M1に対してはダイナミック負荷として働き、右下のp型mos M2に対しては、電流源として働くと解説にあるのですが、これは具体的にどういう意味でしょうか? またM1に信号を入力すると、M3はM1に対してはダイナミック負荷なので、この信号はM2のソース方向へそのまま伝わるとあるのですが、これは仮にM1にプラスの信号が入力され、M1のゲートーソース電圧が上がっても、M1を流れるドレーン電流は増加せず、隣のM2のソース電流が増加するという事なのでしょうか?もし、そうならばこれはなぜでしょうか?

  • C言語でですが

    x= 2 or 1 y= 2 or 1 or 0 z= 1 or 0 このとき、x + y + z = 3となるx, y, z の組み合わせにおいての (x * M1) - (y * M2) - (z * M3) を全て求めたいのですが、どのようにすればいいのか教えてください。お願いします。 また、M1,M2,M3の値はランダムなを数入れるので気にしないでください。

  • 計算機に関する質問

    8ビットのアドレスで指定される場所に保存した8ビット値を出力するメモリ(容量256バイトのROM、 画像のもの)を利用して(X3X2X1X0)×(Y3Y2Y1Y0)=(M7M6M5M4M3M2M1M0)の演算を実現可能にするためには入出力をどのように接続すれば良いか図示せよといった問題なのですが分かる方いますでしょうか??

  • 加算回路・乗算回路・除算回路について教えてください<(_ _)>

    四則演算回路実習装置(加算回路・乗算回路・除算回路)について質問です。 1.加算回路において、「A」加算器入力とADD加算器出力の結線は何のために行うのでしょうか? 2.乗算回路において、Mレジスタ入力とADD加算器入力の結線は何のために行うのでしょうか? 3.除算回路において、「A」累算器入力とMレジスタ出力の結線は何のために行うのでしょうか? この3つがわかりません((+_+)) 詳しい方がいましたら回答よろしくお願いいたします<m(__)m>

  • PLDデバイスのリセット信号に関して

    PLDデバイス(CPLD、FPGA)でHDL言語できしょうしています、 always@(posedge clk or negedge rst)begin if(!rst)begin reg <= 0; end if begin レジスタのリセットを上記の様に記述しますが、この「rst」の信号はPLDデバイスの外部から 入力される設定なのですが、通常PLDのリセット信号をどの様な回路構成で生成するのでしょうか? PLD外部にCPUが有る場合はCPUから入力すればよいと思いますが、CPUなどが無くPLDデバイス 単体の場合、PLDデバイス用のリセットICなどあるのでしょうか? PLDデバイスはCPLDタイプであっても内部的にロジックをローディングするコンフィギュレーション動作が必要でこの間は数百msec程度かかると思われます。 ※CPUのリセット時間に比べかなり長いと思われます。 しかし通常のCPU用のリセットICはそんなに長い期間用はあまり無いと思います。 又はアルテラ社のデバイスを見ると「POR](パワーオンリセット)なる、ブロックが内蔵されていますが、このモジュールをリセット回路として使用できるのでしょうか。その場合、冒頭のVerilog言語で どの様に記述すればいいのでしょうか。 よろしくお願いします。

  • エクセルで縦に一定数 ほかのセルのデータを繰り返し 入力 の方法

    あるデータがあり、そのデータの一つ一つを3つずつ縦に並べて入力したいのですが、1行目 =M1 2行目 =M1 3行目 =M1 4行目 =M2 5行目 =M2 6行目 =M2 7行目 =M3・・・・・・と入力してフィル入力すると、うまくいきません。どうしたらよいでしょうか?