FA屋の会議室(質問はこちらで)

  もどる     新規投稿     トピック表示     投稿順表示     投稿ランキング     次の30件     前の30件     ヘルプ  
■記事No.70415 比較演算子の使い方に暗黙のルールへ返信

【70415】比較演算子の使い方に暗黙のルール lumiheart
メール  
URL  

たまり場より転載


暗黙のルールその1 数学の表記或いはC言語等(テキスト系)の表記に合わせる

c = (a > b)  <ただの1点比較はどーでもえーけど
d = (a > b > c) 2点以上の所謂範囲比較の場合は

-----[D100 > D101]---[D101 > D102]---------------(M0) 〇
-----[D101 < D100]---[D102 > D101]---------------(M0) X



暗黙のルールその2 比較系のプログラムを1か所に統合する
アチコチの勝手な場所に作らない
どちらかと言えばタッチパネル入力の都合によるのが多いけど


暗黙のルールその3
複雑な演算開始条件を作らない


---||----||-------||------||---+-----[D100>D101]------(M0) X
                               |
                               |
---||----||-------||------||---+


---||----||-------||------||---+--------(M1)
                               |
                               |
---||----||-------||------||---+

    M1
----||----[D100>101]---------------------(M0) 〇


ただどちらかと言えば1画面に収めるようにしないと見難いだけって理由だけど


ただ第1法則は見易くなるようにするのが最優先

修正する
投稿日 2024/10/12 (Sat) 13:39:29
更新日 2024/10/12 (Sat) 13:39:52
 

【70416】Re:比較演算子の使い方に暗黙のルール A氏
メール  
URL  

考え方としてはlumiheartさんと同意で、自分でもほぼそうしているつもりなんですが、それが業界の暗黙のルールになっているかと言われるとどうかと。
私の付き合ってきた各社さん(大手も所謂個人商店さんも)ではバラバラでした。
うちの社内でも基準は無いですが、私が後輩に教えるときは、こうしたほうが見やすくない?という程度のアドバイスレベルです。

修正する
投稿日 2024/10/12 (Sat) 16:14:16
更新日 2024/10/12 (Sat) 16:14:16
 

【70418】Re:比較演算子の使い方に暗黙のルール 名無しさん
メール  
URL  

たまにいる、
┥↑/┝ (立ち上がりb接、立下りb接)多用しすぎとか 
−/−(回路否定)の2段否定(再否定)するのとか
嫌いです。

あとセット、リセットだけでラダーを組む人も嫌い

数学表記の「χ>20」 準拠
[> D100 D101] の場合
D100が可変値、D101が設定値 と左側を可変にする

数学表記の「10>χ>20」 準拠
バラすと「χ>20」「χ<10」だが
[> D100 D101][< D100 D102]の人と
[> D100 D101][> D102 D100]の流派があり
体感的には半々(自分は上方)

修正する
投稿日 2024/10/12 (Sat) 17:16:07
更新日 2024/10/12 (Sat) 17:27:40
 

【70420】Re:比較演算子の使い方に暗黙のルール 流れ星
メール  
URL  

私も参画できそうな話題なので...
暗黙のルールかどうかは存じ上げませんが..

【70415】lumihear様が書かれた比較演算子の使い方に暗黙のルール
その1は、賛同
その2は、あまり気にしていない
その3は、画面に表示しきれない場合は置き換える位な気持ち
という感じです。

【70418】名無し様が書かれたたまにいる内容についての感想
立ち上がり/立ち下がりは使用機器によって必須の場合があるので、出来るだけ使わないようには気遣う
セット・リセットはあまり使わないが、元がソフト屋さんだと多用傾向が多い気がする
コメントがしっかりしていれば二重否定は気にならない、というかコメント重視すると二重否定は仕方ない

というところでしょうか。
今は見やすくなりましたが、MC回路は未だに勘弁してほしいです。昔は下にスクロールするとMC接点が見えなくなり
結構難儀した記憶がたくさんあります。



修正する
投稿日 2024/10/13 (Sun) 20:03:54
更新日 2024/10/14 (Mon) 19:31:57
 

【70422】Re:比較演算子の使い方に暗黙のルール 7C
メール  
URL  

こんにちは

私も SET RESET は、基本的に嫌です。
繰り返し動作で、1回目条件、2回目条件、の成立確認。
もしくは
動作完了まで、邪魔しないでね。の、お願い位です。

通常回路は、

 大前提
---||----||-------||------||---+--------(M1)
      |
      |
    ---||----||-------||-
上記で、デバック時に、この回路は無視できる。
を重視しています。


修正する
投稿日 2024/10/15 (Tue) 10:08:45
更新日 2024/10/15 (Tue) 10:08:45
 

【70424】Re:比較演算子の使い方に暗黙のルール 名無しさん
メール  
URL  

比較演算子の使い方というお題から外れるのでどうかと思うが気になったので。

セット・リセット派の人は次のようなラダーを好んで組む。

スイッチ・・・ SET A

A群
条件A ON
接点A・・・・OUT 出力機器
完了条件〇〇・・・・SET B

B群
条件B ON・・・・・RST A
接点B・・・・OUT 出力機器
完了条件○○・・・・SET C


C群
条件C ON・・・・・RST B
接点C・・・・OUT 出力機器
完了条件○○・・・・SET D

次々に動作する箇所がON、OFF移動していくパターン。
もちろんSETではなくコイルで組む派閥も居る。
いずれにせよこの手の組み方が、個人的な感想では「最悪」
(1)ラダーが長くなると、動作中箇所が見つけにくい
(2)F群作中に、B群条件が成立すると2本同時並行で動く
(3)分岐が多いと追いかけるのが難しい
(4)安全確保のために一括A〜Fリセットのような処理をする。
本質的にどこか破綻しているラダーの場合、一括リセット頼りだと
なんでリセットが掛かったのかすらわからない。
(5)色々なところで、SET、RSTを多重でONする。
コイルだと二重コイル異常になるような量を平気で使う。
修正する
投稿日 2024/10/16 (Wed) 10:50:46
更新日 2024/10/16 (Wed) 10:53:46
 

【70425】Re:比較演算子の使い方に暗黙のルール ぱいん
メール  
URL  

私のふとした疑問を何となく投稿させていただいたのですが、
これだけ大先輩方に大変貴重なご意見をいただけて、心から感謝申し上げます。

以下余談となりますが、、、
15年近く、とある中小機械メーカの片隅でただ一人ラダーに携わってきました。
そろそろ後任育成を考えていかなければならないのですが、その際にある程度の
ガイドラインのようなものを作成しようかと思っています。
(募集しても人が来ない業界です 私の時は前任者が作ったコメント入りプログラムと
CQM1シリーズのコマンドリファレンスくらいしか資料がなかった そして、
前任者は逃げるように辞めていきました)
修正する
投稿日 2024/10/16 (Wed) 15:24:02
更新日 2024/10/16 (Wed) 15:24:02
 

【70426】Re:比較演算子の使い方に暗黙のルール lumiheart
メール  
URL  

>次々に動作する箇所がON、OFF移動していくパターン。
ステップシーケンス派と条件制御派の論争は既に50年以上やってる < シーケンサが発明される前のハードリレー時代から

まぁ、考え方は色々ですが
ピックアンドプレイス
http://jp.misumi-ec.com/ec/incadlibrary/detail/000059.html
インデックステーブル
http://jp.misumi-ec.com/ec/incadlibrary/detail/000148.html
こんな感じでインデックステーブル上にワークが回ってきて
各ステーションで
ワーク搬入、穴あけ、タップ、パーツ挿入、パーツネジ締め、ワーク搬出
全6ステーションだとした場合

各ステーションの動作をどうプログラムするか?
ステップシーケンスにするか?条件制御にするか?
ステップシーケンスの場合は簡単
1、ユニット前進
2、ユニット下降
3、ユニット作業完了  
4、ユニット上昇
5、ユニット後退

穴あけだろうがタップだろうが、ワーク搬入搬出も同じシーケンス
なので、例えばデバイス100番飛びとかで同じ構造のプログラムが6個並ぶだけの簡単
上手に作ればファンクションブロックが6個が並ぶだけで自動プログラムがオシマイ

ただ、上手に作れないから意味不明チンプンカンプンなプログラムになっちゃう
特に、複数人が入れ代わり立ち代わりいじくりまわしたヤツは悲惨
条件制御屋とステップ屋が入れ代わって弄ったら悲惨の極み

修正する
投稿日 2024/10/17 (Thu) 0:44:24
更新日 2024/10/17 (Thu) 0:44:24
 

【70427】Re:比較演算子の使い方に暗黙のルール 名無しさん
メール  
URL  

由緒正しきラダーの例。(ラダーは元々リレー回路を置き換えるところからなので)
セット・リセットが台頭したのは一説には三菱のサンプルラダーが全部セット・リセット説明だかららしい

          │ X0000       M3                                                                                                                                │
         0├─┤  ├─┬─┤/├─┬──────────────────────────────────────────────────────(M0       )┤
          │ 開始SW   │ C完了→ │                                                                                                             動作中__  │
          │          │ 全完了   │                                                                                                             (A開始)   │
          │          │          │                                                                                                                       │
          │          │          │                                                                                                                       │
          │          │          │                                                                                                                       │
          │ M0       │          │ X0001       SM400                                                                                                     │
          ├─┤  ├─┘          ├─┤  ├─┬─┤  ├─┬──────────────────────────────────────────(M1       )┤
          │ 動作中__             │ A動作端  │ 常時ON   │                                                                                     A完了→  │
          │ (A開始)              │          │          │                                                                                     B開始    │
          │                      │          │          │                                                                                               │
          │                      │          │          │                                                                                               │
          │                      │          │          │                                                                                               │
          │                      │ M1       │          │ X0002       SM400                                                                             │
          │                      └─┤  ├─┘          ├─┤  ├─┬─┤  ├─┬──────────────────────────────(M2       )┤
          │                         A完了→             │ B動作端  │ 常時ON   │                                                             B完了→  │
          │                         B開始               │          │          │                                                             C開始    │
          │                                              │          │          │                                                                       │
          │                                              │          │          │                                                                       │
          │                                              │          │          │                                                                       │
          │                                              │ M2       │          │ X0003                                                                 │
          │                                              └─┤  ├─┘          └─┤  ├──────────────────────────(M3       )┤
          │                                                 B完了→                C動作端                                                     C完了→  │
          │                                                 C開始                                                                              全完了    │
          │                                                                                                                                               │
          │                                                                                                                                               │
          │                                                                                                                                               │
          │ M0          M1                                                                                                                                │
        16├─┤  ├───┤/├────────────────────────────────────────────────────────(Y0000    )┤
          │ 動作中__    A完了→                                                                                                                A出力    │
          │ (A開始)     B開始                                                                                                                            │
          │                                                                                                                                               │
          │                                                                                                                                               │
          │                                                                                                                                               │
          │ M1          M2                                                                                                                                │
        19├─┤  ├───┤/├────────────────────────────────────────────────────────(Y0001    )┤
          │ A完了→    B完了→                                                                                                                B出力    │
          │ B開始      C開始                                                                                                                            │
          │                                                                                                                                               │
          │                                                                                                                                               │
          │                                                                                                                                               │
          │ M2                                                                                                                                            │
        22├─┤  ├──────────────────────────────────────────────────────────────(Y0002    )┤
          │ B完了→                                                                                                                            C出力    │
          │ C開始                                                                                                                                        │
修正する
投稿日 2024/10/17 (Thu) 10:30:27
更新日 2024/10/17 (Thu) 10:33:01
 

【70428】Re:比較演算子の使い方に暗黙のルール A氏
メール  
URL  

この議論の元をたどれば、溜まり場での元投稿の「暗黙のルール」。
一連の投稿を見ても、業界全体の暗黙のルールは無いんだと改めて実感します。
あるのは自分の周りのローカルルール、俺ルール。
あえて言うなら「見やすく」が普遍的なルールかもしれませんが、それも自分の周りで慣れ親しんできた作法が見やすいわけで。
比較演算の使い方も適材適所、SET/RSTを使う使わないも適材適所、ステップシーケンスも条件制御も適材適所、かな。
修正する
投稿日 2024/10/17 (Thu) 21:50:25
更新日 2024/10/17 (Thu) 21:50:25
 

【70430】Re:比較演算子の使い方に暗黙のルール 名無しさん
メール  
URL  

(A氏の別言い方といえばそれまでの発言)

PLCはブラックボックスだと考えると、
千回実行してもバグなく正しく動くなら、
正直なところどんな組み方でも良い。

ただし、特定の組み方しか習ってなくて、
後でそんな良い組み方があったのかと知るのは不幸な話。
業界に教えることができる人が少ない印象。
ましてや複数方法があると理解した上で選べる人がどれだけいるか。

あとはクライアント(たとえば設備課)が
前設備や類似設備のサンプルプログラムを
提示できていたら良いけど、
ラダー環境で育った設備課の人が
ST言語で受けっとって困惑する、なんて事故が無いことを祈る。
(そこまで仕様相談しようねって事かな)

修正する
投稿日 2024/10/21 (Mon) 17:34:53
更新日 2024/10/21 (Mon) 17:34:53
 

【70431】Re:比較演算子の使い方に暗黙のルール lumiheart
メール  
URL  

>ST言語で受けっとって困惑する、なんて事故が無いことを祈る。
そんな言い訳が通ったのは前世紀のウチだけと、思ってるのは私だけか?

一体いつになったらST言語やラベルプログラムが普通になるんだろう?


ふたことめには時期尚早って
時機到来はいつの事であろうか?

少なくとも来世紀に持ち越す事はなくなった
MRJ3が生産中止になって既に5年 恐らくJ4も時間の問題
http://www.mitsubishielectric.co.jp/fa/products/drv/servo/ex/renew/close/index.html

MR-J5はラベルプログラムオンリー(デバイスX,Y,Dは存在しない)
http://www.mitsubishielectric.co.jp/fa/products/drv/servo/pmerit/mr_j5/amp/feature.html
なので、後数年で問答無用強制的にラベルプログラムに移行させられる

ラベルを使いたくない理由の一つに
「ラベルの文字数が長くて画面が見づらくうっとおしいって」言ってたヤツが居たけれど
MR-J5のラベルはスッゲー長げーぞ
どーする?
http://www.system-brain.com/bbs/kaigi2/kaigi/thread_68350.html

修正する
投稿日 2024/10/21 (Mon) 23:14:20
更新日 2024/10/21 (Mon) 23:20:19
 

【70432】Re:比較演算子の使い方に暗黙のルール A氏
メール  
URL  

MR-J5とRD78GのシンプルモーションモードでRD77とかQD77とかと同じように実デバイスでプログラミングできます。
http://www.system-brain.com/bbs/kaigi2/kaigi/thread_68350.html
↑のころはまだ出来なかったけど。

修正する
投稿日 2024/10/22 (Tue) 7:04:10
更新日 2024/10/22 (Tue) 7:04:10
 

【70434】Re:比較演算子の使い方に暗黙のルール 名無しさん
メール  
URL  

元の議論を見たいけど溜まり場に入れないのは私だけ?

FBやSTも必要に応じて使います。ラベルも。
間違って全コンパイルすると厄介なのと、RUN中書き込みが長くなるのがウザいですが、
便利ではあります。といっても何が何でも使うわけではありません。

協力業者さんにもこれらを使えと強制することは無いですね、
興味を持ってもらえると説明はします。
こんなこと言うと元も子もないですが、今のとこ人それぞれですかね
すこしずつ使う人も増えてきている気はしますが。
ただ、自分と考えが違うからか、ヤツ呼ばわりするのはいかがなものかと思います。
修正する
投稿日 2024/10/22 (Tue) 19:07:35
更新日 2024/10/22 (Tue) 19:07:35
 

【70435】Re:比較演算子の使い方に暗黙のルール A氏
メール  
URL  

溜まり場に入れない理由は分かりませんが、元議論の概要はこんな感じ。
元議論の始まり>比較演算の暗黙のルール(不等号の方向とか)はあるのか?
私(A氏)>業界暗黙のルールは無いのでは。いろいろな流儀があるようです。
lumiheart氏>一応アルよ。続きは会議室で。
の3つの投稿の後、このスレになります。
修正する
投稿日 2024/10/22 (Tue) 20:53:31
更新日 2024/10/22 (Tue) 20:53:31
 

【70437】Re:比較演算子の使い方に暗黙のルール 無口
メール  
URL  

>元の議論を見たいけど溜まり場に入れないのは私だけ?

もしかしてChromeのシークレットモード使ってませんか?
私もここ最近溜り場が見れなくなったのでおかしいなと思って通常モード(?)で
試したら閲覧できました。クッキーの拒否か何かが悪さしているのかも。

本題に戻って大手さんから示されることがある「プログラム作成例」はステップシーケンスが多いように
感じます。ある意味標準化しやすい作法だからですかね。
修正する
投稿日 2024/10/23 (Wed) 7:13:30
更新日 2024/10/23 (Wed) 7:13:30
 

名前
E-Mail
題名 (注)半角カナは使用しないでください。
URL
削除キー sage機能

  もどる     新規投稿     トピック表示     投稿順表示     投稿ランキング     次の30件     前の30件     ヘルプ  

No.Password

Wing Multi BBS Pro 1.1.4