[掲示板へもどる]
一括表示

[No.522] 空いてるデバイスを探す方法 投稿者:シフト  投稿日:2012/01/25(Wed) 22:57
[関連記事

こんばんは。

またソフトで悩んでます。

三菱PLCを使うのですが、
D0からD100の中で、空いている(データが0)デバイス
1箇所にデータを入れたいのですが、いい方法はないでしょうか?

例えで説明しますと
D0からD100の中で値が0の場所1箇所に70を入れる

D0:50←D0の値が50の意味
D1:40
D2:0



D97:0
D98:55
D99:0
D100:30

D2とD97とD99の値が0なので、D2にだけに70を入れる。
値が0のデバイスを見つけてデータを入れる事を繰り返す。

作業が終わったらDの値を0にします。

空いているデバイスを見つけデータをMOVしたいのですが
良い命令語や方法は無いでしょうか?

宜しくお願いいたします。


[No.523] Re: 空いてるデバイスを探す方法 投稿者:管理人  投稿日:2012/01/26(Thu) 10:28
[関連記事

> 三菱PLCを使うのですが、
> D0からD100の中で、空いている(データが0)デバイス
> 1箇所にデータを入れたいのですが、いい方法はないでしょうか?

まいどです。

三菱のQを使うなら・・・という限定ですが
※FX3G,3Uは少し違いますがSER命令はあります。
※サーチ命令がなければベタに比較回路で作るか、FOR〜NEXTで比較する回路を作らないとダメですが・・・。

--[<> K0 D200]----------------------------(M0)-- 書込データ有

  M0
--||---+------------------[SER K0 D0 D190 K101]- 空きを探す
       |
       +--[<= K1 D190]---+-------[- D190 K1 Z0]- 空き位置をインデックス修飾
       |                 |
       |                 +------[MOV D200 D0Z0]- 空きにデータを転送
       |                 |
       |                 +--------[MOV K0 D200]- 書込データクリア
       |
       +--[=  K0 D191]--------------------(M10)- 空きなし

D200:空きに書き込みしたいデータ

D0〜D100:101個のデータテーブル
D190:サーチ結果一致位置
D191:サーチ結果一致個数

<動作>
D200にデータが書かれると空きが出来て書き込みが終わるまで待ちます。
データ書き込み後にD200をクリアして次のデータを処理可能です。

シミュレーションもしてみました。
最初作った回路では思った結果とズレるので「?」と思っていましたが
古い取説だとSER命令で一部誤記載がありました。
新しい取説では直っています。

M10は「空きが無いですよ」というお知らせのフラグなので特に重要ではありません。

久々に面白い回路で頭の体操になりました。
お試し下さい。<(_ _)>


[No.524] Re: 空いてるデバイスを探す方法 投稿者:シフト  投稿日:2012/01/26(Thu) 20:45
[関連記事

三菱Q03UDEを使います。

ありがとうございます。
心より感謝いたします。

色々と考えても上手く組めず 苦労していたので、
助かりました。

この物件が上手く行けば、少しはソフトに自信が付くと思います。
がんばります。

本当にありがとうございました。


[No.525] Re: 空いてるデバイスを探す方法 投稿者:管理人  投稿日:2012/01/28(Sat) 00:21
[関連記事

> 三菱Q03UDEを使います。

Qならバッチリでしたね。

> 色々と考えても上手く組めず 苦労していたので、
> 助かりました。
>
> この物件が上手く行けば、少しはソフトに自信が付くと思います。
> がんばります。
> 本当にありがとうございました。

がんばって下さい。


[No.526] Re: 空いてるデバイスを探す方法 投稿者:シフト  投稿日:2012/02/01(Wed) 00:05
[関連記事

こんばんは。

今回の装置でシリアルコミュニケーション(RS485)を使っているのですが、
上手く動いてくれません。

何度も質問してはいけないと思い、がんばりましたが
納期的にも厳しくなり質問させてもらいます。

と・・・言っても何を聞いていいかすら分からない状態です。

三菱のサンプルダラーを見ながらソフトを組んだのですが、
接続器の測定器からコマンドが受信できません。

エコーバックを受信したので、エコーバック禁止にしました。
PLCからはコマンドを送っているようなのですが・・・。

メーカにも電話しましたが、PLCの事は分からないようです。

1対1の接続なので、両端に終端抵抗をつけました。

↓測定器の設定
方式 RS−485
同期方式 調歩同期式
通信方式 2線式半二重(ポーリング・セレクティング)
伝送速度 19200bps(9600/4800/2400)
スタートビット 1bit
データ長 7bit
誤り検出 偶数パリティ、BCCチェックサム
ストップビット 2bit
文字コード ASCII
デリミタ CR+LF

↓三菱QJ71C24Nの設定(2ch)
動作設定 独立
データビット 7
パリティビット あり 偶数
ストップビット 2
サムチェックコード あり
RUN中書込み 許可
設定変更 許可
通信速度 19200bps
無手順プロトコル

になっています。
この設定で変な箇所はあるでしょうか。
宜しくお願いします。


[No.527] Re: 空いてるデバイスを探す方法 投稿者:管理人  投稿日:2012/02/01(Wed) 23:39
[関連記事

> こんばんは。
>
> 今回の装置でシリアルコミュニケーション(RS485)を使っているのですが、
> 上手く動いてくれません。
>
> 何度も質問してはいけないと思い、がんばりましたが
> 納期的にも厳しくなり質問させてもらいます。

何でも聞けばいいや・・・ではなく、がんばる気持ちが大切です。

> と・・・言っても何を聞いていいかすら分からない状態です。
>
> 三菱のサンプルダラーを見ながらソフトを組んだのですが、
> 接続器の測定器からコマンドが受信できません。
>
> エコーバックを受信したので、エコーバック禁止にしました。
> PLCからはコマンドを送っているようなのですが・・・。

Q1.GX-Configurator-SCは使用されていますか?

エコーバック禁止ではなく許可時の受信データは間違いなく自分が作った送信しようとしている電文になっていますか?

送信したデータが間違っていないが相手は受信してくれない・・・ということは電文が間違っている可能性があります。

ここを確認してからエコーバック禁止にしたほうがいいのでは?

> メーカにも電話しましたが、PLCの事は分からないようです。

計測器メーカーだとあくまでパソコン相手だったりでそういうのが多いです。

> 1対1の接続なので、両端に終端抵抗をつけました。
>
> ↓測定器の設定
> 方式 RS−485
> 同期方式 調歩同期式
> 通信方式 2線式半二重(ポーリング・セレクティング)
> 伝送速度 19200bps(9600/4800/2400)
> スタートビット 1bit
> データ長 7bit
> 誤り検出 偶数パリティ、BCCチェックサム
> ストップビット 2bit
> 文字コード ASCII
> デリミタ CR+LF
>
> ↓三菱QJ71C24Nの設定(2ch)
> 動作設定 独立
> データビット 7
> パリティビット あり 偶数
> ストップビット 2
> サムチェックコード あり
> RUN中書込み 許可
> 設定変更 許可
> 通信速度 19200bps
> 無手順プロトコル
>
> になっています。
> この設定で変な箇所はあるでしょうか。
> 宜しくお願いします。

まず、初歩的な確認事項を書きます。
1.通信線の接続があっているか?(終端抵抗の抵抗値Ωも含む)
2.送信した電文(コマンド)は自分の思ったとおりの電文か?

計測器のメーカーと型式がわからないので確認出来ませんが
上記が確認出来ていてよくはまるポイントは「サムチェック(チェックサム)」です。
この計算部分が計測器と計算機リンクユニットQJ71C24Nと違う場合があります。

まずは計測器メーカーに問い合わせてBCCの計算方法を確認して下さい。
その計算結果が計算機リンクが自動で付けているサムチェックの計算と合っているか確認して下さい。

これが違っていたら
1.サムチェックを自動で付けるのはやめる
2.計測器側のBCC計算に合わせて電文に自分で引っ付ける
必要があります。

最終的な形ではありませんがサムチェックが問題となるなら
計測器側のBCCが付けない電文の設定に出来ないか確認して下さい。
そして計算機リンクユニットQJ71C24Nのサムチェックを付けるのをやめます。

これで電文が受け付け可能であればBCCの違いが原因ということになります。

但し相手から送られてくる電文に現在値データが入ってくる場合、データの信頼性を考えるとBCC計算して確認するしかないですね。→これが計算方法によっては非常に面倒だったりします。

まだ配線が違っているだけかもしれないし、パラメータの設定がちがっているだけかもしれない・・・。
でも、私の感では計測器と計算機リンクの「サムチェック」計算方法の違いが怪しいと思う。

ここまで書いて思った・・・
計測器に通信コマンドの例が載っていませんか?
それにはBCCも付いた状態(アスキー表示)で例が載っているのでは?

もしそうだったら
計算機リンクQJ71C24Nの自動でサムチェックを付けるのをやめて、例通りの電文を自分で作って送って下さい。
この場合、BCCは絶対合っているはずなので電文(コマンド)が正しければアンサーが返ってくるはず。
受信データが正しいかのBCC計算は後回し。
まずは電文(コマンド)を計測器が受け付けるかの確認が先。


[No.528] Re: 空いてるデバイスを探す方法 投稿者:シフト  投稿日:2012/02/01(Wed) 23:43
[関連記事

まだ通信ができないのですが、
どうやら受信読み出し要求信号(X3)がONしてないようです。

G.OUTPUT命令を実行し OUTPUT命令完了もONしているのですが・・・。

マニュアルをにらめっこです。
難しいですね。


[No.529] Re: 空いてるデバイスを探す方法 投稿者:管理人  投稿日:2012/02/02(Thu) 00:07
[関連記事

> どうやら受信読み出し要求信号(X3)がONしてないようです。

この条件だと
・受信データが無い
・受信完了条件「データ数」、「終了コード」が正しく設定されていない
・配線が正しくない(終端抵抗も含む)
ということになります。

配線、通信設定は双方間違いないですか?

機器の局番設定、電文での局番指定もOKですか?


[No.530] Re: 空いてるデバイスを探す方法 投稿者:シフト  投稿日:2012/02/03(Fri) 22:40
[関連記事

残念ながら まだ はまっています。

>Q1.GX-Configurator-SCは使用されていますか?
 使用しています。

今日も、三菱と測定器メーカに電話して確認しましたが出来ませんでした。

管理人さんは自力で勉強したのですか?
マニュアルを読んだだけで理解するのは難しいですね。


[No.531] Re: 空いてるデバイスを探す方法 投稿者:管理人  投稿日:2012/02/04(Sat) 23:15
[関連記事

> 残念ながら まだ はまっています。
気になっていましたが、まだはまっていますか・・・。

> >Q1.GX-Configurator-SCは使用されていますか?
>  使用しています。

これのモニタ機能で見た電文(コマンド)は間違いないですか?
何かしら受信はしているのでしょうか?(自分の送った電文は除く)

> 今日も、三菱と測定器メーカに電話して確認しましたが出来ませんでした。

測定器のメーカーと型式は何ですか?

> 管理人さんは自力で勉強したのですか?
> マニュアルを読んだだけで理解するのは難しいですね。

そうですね。
マニュアル読んでメーカーに問い合わせしたりしてましたが自力ですね。

機能が多いので書かれている内容が多いんですが、自分の必要なところはマニュアルでもごく限られていたりします。(あっちゃこっちゃに飛んで書いてるようなものもありますが)

確認内容
1.配線は合っているか?
2.通信設定は双方あっているか?
3.電文(コマンド)はあっているか?→測定器のマニュアルなどに書かれている例などと比べてみる

GX-Configurator-SCを使っているならモニタ機能などのデバッグ機能を使って状態を確認出来ないか?(この辺の機能がRS-485で使えるかは不明)

通信速度が19200bpsで早めですが、とりあえずデバッグ時だけでも2400bpsとか低速にしてみてはどうでしょうか?

昔は電文送ったあとにレスポンスが早すぎて受け取れない機器もありました。
最近はこういうのも少ないとは思いますが色々な「条件つぶし」には必要かと。

本当は通信のデバッグには「ラインモニタ」があると非常に便利です。
自分の送った電文(コマンド)がちゃんと送られているか確認できるし、受信データが何か来ているかも確認出来ます。

安価で機能はそこそこ
データリンク CW−422−Black
http://www.data-link.co.jp/products/products-15/CW422_black.htm
標準価格\31,290 (本体価格\29,800)

こういうのがあると通信のデバッグには便利なんですが・・・。

私は422/485版は持っていませんが、
ハマリ時間と苦労を考えれば「安い」と思ってこれの232C版は買いました。
但し、アプリケーションソフトが他のソフトと比べると出来が「イマイチ」でした。


[No.532] Re: 空いてるデバイスを探す方法 投稿者:シフト  投稿日:2012/02/05(Sun) 12:15
[関連記事


> これのモニタ機能で見た電文(コマンド)は間違いないですか?
> 何かしら受信はしているのでしょうか?(自分の送った電文は除く)

モニタした電文は合っています。
受信は何もしていません。

> 測定器のメーカーと型式は何ですか?

メーカー:株式会社 第一側範製作所
型式:DI-21 小型空気エアマイクロ

>
> 確認内容
> 1.配線は合っているか?
エアマイクロからの2芯が出ています。
プラスをC24NのSDAとRDAに接続
マイナスをC24NのSDBとRDBに接続
C24NのRDAとRDBに終端抵抗(110Ω)を接続
エアマイクロ側の終端抵抗は設定にて接続しています。


> 2.通信設定は双方あっているか?
スタートビット・伝送速度などは以前にご相談した内容に合わせてあります。
サムチェックあり/なし 設定を変えて試してみましたが、何も受信しませんでした。


> 3.電文(コマンド)はあっているか?→測定器のマニュアルなどに書かれている例などと比べてみる
> GX-Configurator-SCを使っているならモニタ機能などのデバッグ機能を使って状態を確認出来ないか?(この辺の機能がRS-485で使えるかは不明)

GX-Configurator-SCのモニタでは、コマンドは合っています。


もう一度、最初から設定などを見直してみます。


[No.533] Re: 空いてるデバイスを探す方法 投稿者:シフト  投稿日:2012/02/07(Tue) 18:49
[関連記事

通信できるようになりました^^

ありがとうございました。

原因は、お恥ずかしいですがハード的な配線間違えでした^^;

苦労しただけあって、少しは詳しくなったかな・・・。


[No.534] Re: 空いてるデバイスを探す方法 投稿者:管理人  投稿日:2012/02/07(Tue) 22:05
[関連記事

> 通信できるようになりました^^
> ありがとうございました。
> 原因は、お恥ずかしいですがハード的な配線間違えでした^^;

えっ・・・?!
昔のよくコネクタをバラしてテスターであたってたサーボ立ち上げを思い出しました。

コネクタのピン番号が上からと下からと順番を間違えたとか?

> 苦労しただけあって、少しは詳しくなったかな・・・。

苦労したことは身につきますからね。

とにかく良かったですね。ゆっくり寝て下さい。