このQ&Aは役に立ちましたか?
三菱電機PLC(Q02H)のSORT命令の使い方と問題点
2023/10/20 15:45
- 三菱電機PLC(Q02H)を使って回路を作っていますが、SORT命令の使い方に問題があります。
- プログラミングマニュアルのプログラム例を実行すると、数の並び替えはうまくいくが、使用できるデバイスが限られているため問題が発生します。
- SORT回路を実行すると、値の大きい順に並べ替えてデバイスの一番上まで送ってくれますが、値が小さい順に並べ替えると一番上まで値を移動させず、問題が発生します。
三菱電機 Q02H SORT命令
2020/10/27 13:17
教えて下さい。三菱電機PLC(Q02H)を使い回路を作っているのですが、今回、SORT命令を使うことになりました。非常に便利なのですがイマイチ上手くいきません。シュミレータにてプログラミングマニュアルに書いてあるプログラム例を実行すると、格納されている数を上手く並べ替えてくれるのですが、現在、使用しているPLC(Q02H)を使う為、プログラム例にあるデバイスは使用できません。空きデバイスを確認し使用していないデバイスで試すのですがダメです。状態としては回路にてSM703をONしたのち、SORT回路を実行すると格納されている数を値の大きい順に並べ替えてデバイスの一番上まで送ってくれるのですが、SM703をOFFした状態でSORT回路を実行すると値が小さい順に並べ替えてくれるのですが、一番上まで値を移動してくれず、一番小さい値の格納デバイスからスタートしてしまいます。どこがいけないのでしょうか。
プログラミングマニュアルに書いてあるプログラム例
0 LD X0
1 OUT SM703
2 LD x10
3 SORT D0 K4 K1 M0 D10
4 END
私が実行したプログラム
0 LD X0
1 OUT SM703
2 LD X10
3 SORT D151 K11 K1 M1010 D430
4 END
回答 (3件中 1~3件目)
回答2です。
補足いただいたことでようやく意味が分かりました。すみません。
SORTでは 0 は 0という数値として認識しますので、(数値が 無い という認識ではない)
補足の例でD151~D157が0になるのは正常です。
繰り上げ回路は別に作らないとダメ、でしょうね。
このQ&Aは役に立ちましたか?
この質問は投稿から一年以上経過しています。
解決しない場合、新しい質問の投稿をおすすめします。
回答1の方と同様なのですが、
X10のオン時間が不十分で、ソートが完了していないのではないかと思います。
並び替えに失敗するとき、M1010はオンしますか?
オンするなら別の要因、
オンしないのであればおそらくスキャン回数の問題なので、
SORT D151 K11 K55 M1010 D430
で試してみてください。
これですと1回のスキャンでソート完了するので
並び替えが不十分となることは無いはずです。
補足
2020/10/29 08:35
SORT D151 K11 K55 M1010 D430 確認してみました。
結果として値の小さい順に並べ替えはしてくれるのですが、
D151まで値を繰り上げてくれません。
例えばD151~D161までの中に値を4つ入れたとします。
D158が値の先頭でD158~D161までは値が入りますが、
D151~D157は0の状態です。
D158で止まっている値を、D151まで繰り上げてはくれないのでしょうか?
繰り上げ回路は別に作らないとダメなのでしょうか?
ご教示頂けると幸いです。
https://www.mitsubishielectric.co.jp/fa/download/search.do?mode=manual&kisyu=/plcq
MELSEC-Q/L プログラミングマニュアル(共通命令編)sh080804ab
447/1072ページ
> SORT D151 K11 K1 M1010 D430
を
SORT D151 K11 K10 M1010 D430
に変えても結果は変わりませんか?
補足
2020/10/28 09:41
ご教示ありがとうございます。
プログラムを変更しトライしてみたのですが、
状態に変化ありませんでした。
お礼
2020/10/29 10:39
そうでしたか。
0を数値として認識するんですね。
大変、お騒がせしました。
繰り上げ回路を別に作りたいと思います。
ありがとうございました。
感謝いたします。