|
|
|
[No.547]
三菱GOTの接続について
投稿者:p
投稿日:2013/01/28(Mon) 21:40
[関連記事] |
管理人様。
はじめまして。pと申します。
20年位前に少しだけラダーの経験があっただけなので最近の物がよく判らず、勉強し直そうと思っております。
準備としまして、
1. 中古のFX1SとGOT1000を入手しました。
2. GX-Developerは、お試し版をDLしました。
3. GT-Designer2は、正規版を入手しました。
4. 422-USBの変換ケーブルはサードパーティ製?のUSB-SC09-FXなる物を入手しました。
5. GOT-FXの接続用にGT10-C30R4-8Pを入手しました。
6. 232C-USBの変換ケーブルは市販のD-SUB(9pin)の物を入手しました。
先にFXの方が試せるようになったのでFX単体に対してのラダーの書込みと動作確認まではできたのですが、GOTの方の準備が最近整い、いざ接続しようとしたらコネクタが違っていました。(汗
GOT側は、MINI-DINコネクタの6pinになっていまして、D-SUB(9pin)との変換ケーブルが定価で1万円もするとの事で、自作しようと思いまして自分なりに調べた結果では、
D-SUB(2pin) ---- MINI-DIN(2pin) RxD
D-SUB(3pin) ---- MINI-DIN(1pin) TxD
D-SUB(5pin) ---- MINI-DIN(3pin) GND
D-SUB(6pin) ---- MINI-DIN(6pin) DSR
のようになるような資料が見つかりました。
また三菱のサービスが言うにはQシリーズの接続ケーブルが、そのまま使えるとの事でした。
以上の状況から、質問なのですが、
Q1: 変換ケーブルの接続は、上記のような接続で大丈夫でしょうか?
Q2: 全体の接続は、
【PC】---(232C)---【GOT】---(GT10-C30R4-8P)---【FX】
のような接続で大丈夫でしょうか?
ご教授頂けますと幸いです。
|
[No.546]
Re: やりたい制御のご質問です
投稿者:管理人
投稿日:2012/09/28(Fri) 22:47
[関連記事] |
> そうですね、とても見やすくわかり易い見本でした。
> 今は仕事の合間に覚えていっているのですが
> 色んな制御のラダーみたりしてラダーのノウハウを覚えていきたいと思っています。
最近のPLCは命令が増えて昔に比べソフトを組むのに便利になってきています。
ただ、その便利に慣れてしまうと古いPLCなど命令が無い時に苦労します。
「温故知新」
上司の方もそういう意味での課題だったんでしょうね・・・。
いきなり便利命令使ってたから上司の方も「予想外」だったと思います。
なので「自己保持回路だけで・・・」という事になったんでしょうね。
便利な命令が無かった時代・・・のやり方を見てみると勉強になりますよ。
例えば・・・
・かけ算 10*4= 計算方法:10を4回足し算する
・割り算 10÷2= 計算方法:10から2を引き算し引けなくなるまでの数
今では絶対に使わないようなやり方ですが「知恵」として覚えておくと応用が利きます。
おまけ・・・
・かけ算 10*4= 計算方法:DMにK10を入れ2回左にビットシフトをする
・割り算 10÷2= 計算方法:DMにK10を入れ1回右にビットシフトをする
偶数ならこういうやり方もあります。
|
[No.545]
Re: やりたい制御のご質問です
投稿者:まくら
投稿日:2012/09/26(Wed) 23:13
[関連記事] |
こんばんわ、まくらです。
さっそく変更して動かしてみました。
>R1001のa接点ではなくb接点に替えて下さい。
>ここだけの修正で済むと思いますのでやってみて下さい。
>※元も直しておきます。
なるほど、R1001はb接点だったのですね。
よりスマートになりました。
動作のほうも問題なく動きました。
>今回の課題でのポイントは1→2→3→4→5→4→3→2→1がカウントを加算、減算しなくても加算のみで代用可能ということ。
>結果は1つでも方法はいろいろある・・・という見本です。
>純粋にカウントを加算、減算させるのも方法の1つですし、今回のように加算のみっていうのもアリ
そうですね、とても見やすくわかり易い見本でした。
今は仕事の合間に覚えていっているのですが
色んな制御のラダーみたりしてラダーのノウハウを覚えていきたいと思っています。
|
[No.544]
Re: やりたい制御のご質問です
投稿者:管理人
投稿日:2012/09/24(Mon) 23:04
[関連記事] |
う〜〜〜ん・・・ゲッ!?写し間違えていました。
R1001のa接点ではなくb接点に替えて下さい。
ここだけの修正で済むと思いますのでやってみて下さい。
※元も直しておきます。
R1001 #0 DM0
-|/|---<LDA>+<STA>-------------------------------------電源切時DM0を0クリアR1900〜R1915のビットに展開 ※使うのはR1900〜R1907まで
|R1900
+<STA>--------------------------------------電源切時R1900〜R1915をクリアする
>口答でこんな感じの制御作ってみてと、課題を出されマニュアルとラダープログラムをにらめっこな状態です。
会社からの課題でしたか・・・。
今回の課題でのポイントは1→2→3→4→5→4→3→2→1がカウントを加算、減算しなくても加算のみで代用可能ということ。
結果は1つでも方法はいろいろある・・・という見本です。
純粋にカウントを加算、減算させるのも方法の1つですし、今回のように加算のみっていうのもアリ。
|
[No.543]
Re: やりたい制御のご質問です
投稿者:まくら
投稿日:2012/09/24(Mon) 22:49
[関連記事] |
ご報告遅くなりました。
まくらです。
この度は早々に返信していただきありがとうございます。
とても参考になりました。
> 学校の課題っぽい感じですね。さて・・・はりきって作ってみましょう。
PLCを時間の合間に弄っているのですが、弄り出して約2ヶ月なところですね。
まだまだ勉強不足です。
口答でこんな感じの制御作ってみてと、課題を出されマニュアルとラダープログラムを
にらめっこな状態です。
> シミュレータで動作確認してみましたがこんな感じの動作でいいんですよね???
>
> KV-STUDIOからテキストに直しているので記載ミスでおかしいところがあったら言って下さい。
結論から言いますと、イメージ通りの制御ができました。
ありがとうございます。
ただ、ちゃんと動かなかった部分があったので、2箇所ほど修正をさせていただきました。(下記[]の部分)
〜略〜
> R2002 DM0 #7 R2011 #0 DM0
> -||---<LDA>-<CMP>---||---<LDA>-<STA>-------------------電源入後1秒ごとカウントが8以上になったら0クリアする
> R2002 DM0 #0 [R1001] R1900
> -||---<LDA>-<MPX>---||---<STA>--------------------------------電源入後1秒ごとカウントをR1900〜のビットに展開
>[R1000] #0 DM0
> -||---<LDA>+<STA>--------------------------------------電源切時DM0を0クリアR1900〜R1915のビットに展開 ※使うのはR1900〜R1907まで
> |R1900
> +<STA>--------------------------------------電源切時R1900〜R1915をクリアする
>
R1900
※原因が最後までがわからなかったのですが、電源offにすると、<STA> に 1 が格納されてしまう
状態であったのでMPXとSTAの間に接点を一つ入れさせてもらいました。
今ではまた違う課題を出されて色々考えてるところです。
内容は今回の回路を全部自己保持でやること + 押したスイッチは飛ばして点滅させるという内容です。
タイマーも要所で使いますけどね。
今後も困った状態に陥ったときは利用させていただきます。
どうもありがとうございました。
|
[No.542]
Re: やりたい制御のご質問です
投稿者:管理人
投稿日:2012/09/22(Sat) 22:48
[関連記事] |
> はじめまして、まくらです。
まくらさん はじめまして
HP引っ越ししてから初の技術相談です。
学校の課題っぽい感じですね。さて・・・はりきって作ってみましょう。
R4
-||-------------------------------------------<T0 #15>-電源入切タイマ
T0
-||---------------------------------------<DIFU R1000>-電源入切タイマPLS
R1000 R1001
-||----|/|--+----------------------------------(R1001)-電源入
R1001 R1000 |
-||----|/|--+
R1001 T5
-||----|/|------------------------------------<T5 #10>-電源入後1秒ON時間
R1001 T5
-||----||-----------------------------------<@INC DM0>-電源入後1秒ごとカウンタ ※@INCは↑INC
R2002 DM0 #7 R2011 #0 DM0
-||---<LDA>-<CMP>---||---<LDA>-<STA>-------------------電源入後1秒ごとカウントが8以上になったら0クリアする
R2002 DM0 #0 R1900
-||---<LDA>-<MPX>-<STA>--------------------------------電源入後1秒ごとカウントをR1900〜のビットに展開
R1001 #0 DM0
-|/|---<LDA>+<STA>-------------------------------------電源切時DM0を0クリアR1900〜R1915のビットに展開 ※使うのはR1900〜R1907まで
|R1900
+<STA>--------------------------------------電源切時R1900〜R1915をクリアする
R0
-||---------------------------------------<DIFU R1100>-スイッチ1PLS
R1
-||---------------------------------------<DIFU R1101>-スイッチ2PLS
R2
-||---------------------------------------<DIFU R1102>-スイッチ3PLS
R3
-||---------------------------------------<DIFU R1103>-スイッチ4PLS
R4
-||---------------------------------------<DIFU R1104>-スイッチ5PLS
R1100 R1900
-||----||---+----------------------------------(R1200)-ランプ1保持記憶
R1200 R1100 |
-||----|/|--+
R1101 R1901
-||-+--||---+----------------------------------(R1201)-ランプ2保持記憶
| R1907 |
+--||---+
R1201 R1101 |
-||----|/|--+
R1102 R1902
-||-+--||---+----------------------------------(R1202)-ランプ3保持記憶
| R1906 |
+--||---+
R1202 R1102 |
-||----|/|--+
R1103 R1903
-||-+--||---+----------------------------------(R1203)-ランプ4保持記憶
| R1905 |
+--||---+
R1203 R1103 |
-||----|/|--+
R1104 R1904
-||----||---+----------------------------------(R1204)-ランプ5保持記憶
R1204 R1104 |
-||----|/|--+
R1900
-||---+-----------------------------------------(R500)-ランプ1
R1200 |
-||---+
R1901
-||---+-----------------------------------------(R501)-ランプ2
R1907 |
-||---+
R1201 |
-||---+
R1902
-||---+-----------------------------------------(R502)-ランプ3
R1906 |
-||---+
R1202 |
-||---+
R1903
-||---+-----------------------------------------(R503)-ランプ4
R1905 |
-||---+
R1203 |
-||---+
R1904
-||---+-----------------------------------------(R504)-ランプ5
R1204 |
-||---+
-------------------------------------------------<END>-
------------------------------------------------<ENDH>-
コメント
R000 スイッチ1
R001 スイッチ2
R002 スイッチ3
R003 スイッチ4
R004 スイッチ5
R1900 カウント0
R1901 カウント1
R1902 カウント2
R1903 カウント3
R1904 カウント4
R1905 カウント5
R1906 カウント6
R1907 カウント7
ランプ1→2→3→4→5→4→3→2→1 とカウントも折り返すのが普通ですが加算、減算と処理するのも面倒なので
カウント0→1→2→3→4→5→6→7→0 と加算だけで代用しました。
※数が増えれば加算、減算の処理をしたほうが楽だと思います。
KV-40DRだと便利な命令が使えなくて残念。もうすぐ10月にKVNanoが出たら上位機種と同じ命令が使えるので便利になるのですが・・・。
シミュレータで動作確認してみましたがこんな感じの動作でいいんですよね???
KV-STUDIOからテキストに直しているので記載ミスでおかしいところがあったら言って下さい。
|
[No.541]
やりたい制御のご質問です
投稿者:まくら
投稿日:2012/09/22(Sat) 19:39
[関連記事] |
はじめまして、まくらです。
PLCのラダープログラムについてはビギナーになります。
PLCのラダープログラムにて、もぐら叩き(のような物)を作ろうとしているのですが、
なかなかうまくいきません。完全に手詰まり状態に陥ってしまいました。
どのような命令を使って、どのように組めばうまく動作するのか
ご教授お願い致します。
・使用機器
PLC :KV-40DR (キーエンス)
治具(自作物):モーメンタリ型のライトスイッチ5個実装
・仕様(主な動作)
5個のスイッチをそれぞれsw1,sw2,sw3,sw4,sw5する(以後S1,S2,S3,S4,S5)
1.S5を1.5秒間押すと電源on
動作中にS5を1.5秒間押すと電源off
2.電源が入ると
S1→S2→S3→S4→S5→S4→S3→S2→S1→S2→……以後繰り返し
の順番でライトスイッチのLEDが1秒間ずつ点滅
3.点滅時(点灯時の1秒間の間)にライトスイッチのスイッチを押すと
そのスイッチは常時点灯になり、以後は点滅しない
(点灯時以外にスイッチをおしても反応しない)
また、常時点灯状態のスイッチをもう一度押すと解除され元の点滅の状態
に戻る。(どのタイミングで押しても解除される)
ex.1 『S3点灯時にS3のスイッチを押す』
点滅順→S1→S2→S4→S5→S4→S2→……以後繰り返し
『上記状態でS2点灯時にS2のスイッチを押す』
点滅順→S1→S4→S5→S4→S1→……以後繰り返し
『上記状態でS2,S3のスイッチを押す』
点滅順→S1→S2→S3→S4→S5→S4→……以後繰り返し
尚、常時点灯状態のスイッチは内部的には1秒間ずつ点滅している状態にしたい。
S2,S3,S4が常時点灯状態だった場合、S1,S5は4秒ごとに点滅するような
プログラムにしたい。(もぐら叩きのような動作にしたいため)
ex.2 S1→(S2)→(S3)→(S4)→S5
1秒 1秒 1秒 1秒 1秒
現状では、1.2.の工程は組むことができたのですが、3.の部分が組むことができなくて
困っています。
3.の動作のプログラムを組み込もうとすると、うまく動作しなくなってしまいます。
1.2.の工程のプログラムは、自己保持とDM(データメモリ)を使い、INC(インクリメント)と
CMP(コンペア)を使って組んでいます。
また、条件として『SET/RES』命令は使わないでプログラムを組みたいということです。
(プログラムがわかりにくくなってしまうため)
以上になりますが、この命令を使えばうまく行くよみたいな
アドバイスでも構いません。
よろしくお願い致します。
|
[No.540]
Re: 測定値
投稿者:管理人
投稿日:2012/02/16(Thu) 00:05
[関連記事] |
> ありがとうございます。
>
> 出来ました^^
>
> 「WTOB、BTOW」命令ですね。よく勉強します。
> この仕事が終わったら、命令語マニュアルをよく読んで
> シミュレータで勉強します。
取説には例も載っているのでわかりやすいと思います。
※たまに誤記があったりして「何で?!」と泥沼にはまっていくことがありますが
新しい取説では直っていたりするので出来る限り新しい取説をダウンロードして見ることをオススメします。
> (今は、余裕がないので・・・)
まぁ、周りは無理を強要してくるかもしれませんが
体が資本ですから無理しないで体を休めて下さいね。
前にも書きましたが回路で悩んでいる時、
・布団に入り寝るまでの時間
・朝起きて布団の中でうだうだしている時間
が「こうすれば出来るんでは?」とかアイデアが浮かびます。(正しいかどうかは別として)
「はぁ〜現場から離れてやっと寝ることが出来る」という一時的なプレッシャーからの解放で
頭が余分な事考えないで済むからいいアイデアが浮かぶんだと思います。
1日徹夜で何とかなる物件なら無理もしますが、
ロングランなら「寝る(一時的にプレッシャーからの解放する時間)」という事も効率の上で重要だと思いますよ。
> 本当に色々とありがとうございます。
お役に立てたようで何よりです。
|
[No.539]
Re: 測定値
投稿者:シフト
投稿日:2012/02/15(Wed) 21:22
[関連記事] |
ありがとうございます。
出来ました^^
「WTOB、BTOW」命令ですね。よく勉強します。
この仕事が終わったら、命令語マニュアルをよく読んで
シミュレータで勉強します。
(今は、余裕がないので・・・)
本当に色々とありがとうございます。
|
[No.538]
Re: 測定値
投稿者:管理人
投稿日:2012/02/14(Tue) 22:31
[関連記事] |
> D0:2020(SP、SP)←(20、20)
> D1:2D20(- 、20)
> D2:2E34(. 、34)
> D3:2039(SP、39)
> ↑は、-4.9です。
補足どうもです。
ようやく理解できました。
今回の場合は命令語「VAL」を使います。
この命令の条件は
1.符号は先頭下位に正の場合は「20H」負の場合は「2DH」
2.符号と最初の”0”以外の数字までの「20H」と「30H」は無視してくれる
3.データの終わりは「00H」で設定する。
この条件に合うようにデータを分離・合成します。
今のデータだと1つのデータメモリ「D」に2つの文字があります。
判断しやすいように1文字ずつに分解する必要があります。
分離するには「WTOB」という命令を使用します。
D10:スペース ,STX
D11:測定値,スペース
D12:測定値,測定値
D13:測定値,測定値
D14:スペース ,測定値
SM400
-||----------------[WTOB D11 D100 K4]- D11〜D14までの上位・下位をD100〜バイト単位に分離
結果
D100:0020 スペース
D101:0020 測定値
D102:0020 測定値
D103:002D 測定値
D104:0034 測定値
D105:002E 測定値
D106:0039 測定値
D107:0020 スペース
となります。(データメモリは倍になります)
これで比較命令を使用して「マイナス」があるか探せます。
※別の命令でも探せますが理解しやすい形で説明します。
-[= H2D D101]-+--------------------------(M0)- マイナス符号有り
-[= H2D D102]-+
-[= H2D D103]-+
-[= H2D D104]-+
-[= H2D D105]-+ ※測定値の最後にマイナスが来ることはないと思うのでD105まで判定する
SM400
-||------------------------------[FMOV H0 D110 K7]- 最後が「00H」となるようにデータ転送先をクリアしておく
M0
-||--+--[= H2D D101]-------------[BMOV D101 D110 K6]-
+--[= H2D D102]-------------[BMOV D102 D110 K5]-
+--[= H2D D103]-------------[BMOV D103 D110 K4]-
+--[= H2D D104]-------------[BMOV D104 D110 K3]-
+--[= H2D D105]-------------[BMOV D105 D110 K2]-
M0
-|/|-----------------------------[BMOV D101 D110 K6]-
※小数点が必ず入りBIN値が1ワードで収まる場合「VAL」命令使用
SM400
-||--+---------------------------[BTOW D110 D120 K7]- バイト→ワードに戻す
+--------------------------[VAL D120 D130 D140]-
D130:全桁数
D131:小数部桁数
D140:小数点を無視した整数値
※BIN値が1ワードで収まらない場合「DVAL」命令使用
SM400
-||--+---------------------------[BTOW D110 D120 K7]- バイト→ワードに戻す
+-------------------------[DVAL D120 D130 D140]-
D130:全桁数
D131:小数部桁数
D140,D141:小数点を無視した整数値
測定値データの桁数が固定なので少し回路を簡略化しています。
測定値データにより桁数が変動するような場合はもう少し「桁数」がいくつなのか認識する回路が必要になります。
受信データがBCCも含めOKだったとして
上記をまとめると・・・
SM400
-||------------------------------[WTOB D11 D100 K4]- D11〜D14までの上位・下位をD100〜バイト単位に分離
-[= H2D D101]-+--------------------------------(M0)- マイナス符号有り
-[= H2D D102]-+
-[= H2D D103]-+
-[= H2D D104]-+
-[= H2D D105]-+ ※測定値の最後にマイナスが来ることはないと思うのでD105まで判定する
SM400
-||------------------------------[FMOV H0 D110 K7]- 最後が「00H」となるようにデータ転送先をクリアしておく
M0
-||--+--[= H2D D101]-------------[BMOV D101 D110 K6]- マイナス含め測定値転送
+--[= H2D D102]-------------[BMOV D102 D110 K5]- マイナス含め測定値転送
+--[= H2D D103]-------------[BMOV D103 D110 K4]- マイナス含め測定値転送
+--[= H2D D104]-------------[BMOV D104 D110 K3]- マイナス含め測定値転送
+--[= H2D D105]-------------[BMOV D105 D110 K2]- マイナス含め測定値転送
M0
-|/|-----------------------------[BMOV D101 D110 K6]- 測定値部分全部転送
SM400
-||--+---------------------------[BTOW D110 D120 K7]- バイト→ワードに戻す
+--------------------------[VAL D120 D130 D140]- 「VAL」 or 「DVAL」
ちょっと横着な回路ですがこんな感じでVAL(DVAL)命令を使用してBINに変換出来るはず。
シミュレーションまではしていないので確認はお願いします。
もしかしたら違っている所もあるかもしれないので考え方を理解、確認して下さい。
あと通信時はよくアスキー1文字(1バイト=8bit)扱いにするので「WTOB」、「BTOW」命令を覚えてね。
| | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | |