PLCのスパイス

3180
Spices of PLC
名前
件名
メッセージ
画像
メールアドレス
URL
文字色
編集/削除キー (半角英数字のみで4~8文字)
プレビューする (投稿前に、内容をプレビューして確認できます)

Web Site 更新しました - 圓空 URL

2018/05/22 (Tue) 10:45:08

今年もも5月となりました。
1月より熊本へ長期出張していましたが、やっと戻れたので「PLCのスパイス」更新しました。

今回のネタは、年末に必要となって作ったものです。
ある機械の改造を担当しましたが…
既存のプログラムが「うに」状態で、構造化されていないのです。

で。この部分、新たに追加しました。詳しくは
「PLCのスパイス」で。

カメラコントローラ~PLC イーサネット接続 - taki

2018/04/23 (Mon) 13:06:39

圓空様 お世話になります
カメラコントローラとPLCの連動って経験ありますか?
連動って言うほど大したものでは有りませんが・・・
今回はカメラ・PLC共にキーエンスです
流れている鋼板の両端をカメラ2台で見ていて、カメラ側の設定(?)で基準点(0)からずれた(振れた幅)をPLCに送る。
その値をPLC側で演算して外部(0~5V,4~20mA)出力します。
振れ幅は0~50mmで生の値を出力しているのですが、50.000mmが何故かPLCに入力されると50000という値になってしまいます。
カメラコントローラ,PLC共に初期設定のままなのですが、何故か小数点が消えてしまう・・・(Ethernet PLCリンクは設定しています)
カメラコントローラはCV-X150F,PLCはKV-5000でKV-DA40Vから0-5Vと4-20mAを出力しています
カメラコントローラから入力される数値はDM500とDM502に書き込まれています。
システム的には大雑把に書くとこんなです。
分からないのが50.000が50000になってしまう事です
なにかご存知でしたら御教授下さい
よろしくお願いします

Re: カメラコントローラ~PLC イーサネット接続 - えんくう URL

2018/04/23 (Mon) 23:37:05

taki様
ご訪問ありがとうございます。

今、本社のある熊本に1月から缶詰状態です。
KV-7500と画像処理システムのXG-7000シリーズを使った装置のプログラミング中です。

タイムリーですねぇ(笑)

ところでご質問の件ですが…
KV-5000(KV-10等のパッケージ型以外)で、小数を扱うのは浮動小数点以外ありません。(応用編・デジタルフィルタ参照)
符号付または符号なし整数です。
なので、その整数を固定小数点として扱います。

50.000なら50000×10の-3乗です。
小数点の位置が決まっているので、CV-X150Fから貰った数値に0.001を掛けたものが本来の値になります。

私が今やっている物件ですが
uvwステージを使ってXYθを操作します。
その様な場合は、角度~弧度法変換や三角関数などの無理数が出てきますので、倍精度浮動小数点を使います。

CV-X150Fが浮動小数点を扱えるかは存じませんが
分解能が決まっている(1μメートルですね)ので整数扱いで十分なのです。

老婆心ながら
答えを出す時の四則演算ですが…
勿論割り算は最後にしていますよね?
2進数演算の誤差にも注意して下さい。


Re: カメラコントローラ~PLC イーサネット接続 - taki

2018/04/24 (Tue) 08:48:04

圓空様 お世話になります
今 会社で返信を見て「そっかー だからかー」って大声あげて注目浴びてしまいました・・・
もっと良くマニュアル見れば分かったのかもしれません。
四則演算と2進数演算の誤差は大丈夫だったと思いますが再確認中です。
先にお礼をと思い・・・
ありがとうございました。

Re: カメラコントローラ~PLC イーサネット接続 - 円空 URL

2018/04/25 (Wed) 18:59:49

taki様

お役にたてて何よりです。

無題 - メロンカー

2017/09/14 (Thu) 17:23:25

当方、PLC初心者のメロンカーと申します。
現在、Keyence製KV-7500を用いた新規のシステム開発を検討しているのですが、拡張データメモリ(EM)を使用すべきか否かの判断で迷っています。

今回の案件自体は用意されているデータメモリ(DM)の容量で十分です。
また、当該CPUユニットのユーザマニュアルを確認する限り、これらのメモリ間で仕様差異が見受けられませんでした。
その為、拡張データメモリ(EM)は使用しない方向で開発を進め様と考えているのですが『こんな使い方をすると可読性・保守性・拡張性が向上するよ』・・・といったTipsがありましたら是非ご教授頂けますでしょうか?
宜しくお願いします。

ちなみにメーカに問合せたのですが残念ながらTipsは得られませんでした。

Re: 無題 - 圓空 URL

2017/09/14 (Thu) 19:14:37


メロンカー様

アクセスありがとう御座います。

DMやEMメモリの使い方は自由なので、自分なりの決まりを作っておけば良いと思います。
しかし、特殊ユニット等に割り当てるのはDMでないと不可の様です。

なので、私はユニットとのI/FにDMを、内部のメモリやタッチパネルとのI/FにEMを使う事が多いですね。
また、定数的な使い方(初期化時に定数を代入)をDM。実行中に値が変化するデバイスをEMに割り当てたりします。
(気分で逆もあり)

レシピデータや演算係数なんかはFMに置いています。
「応用編 デジタルフィルタ」にあるフィルタの係数なんかも
本来FMから呼出してTMに代入しています。


それと、通常、ローカル変数(ローカルデバイス)を多用しています。
各モジュールとのI/Fとタッチパネルやリアルタイムチャートモニタ用の変数はグローバルです。
ローカル変数は、上手く初めに変数宣言しておかないとRUN中書込みできませんが・・・

FMのローカル変数とローカルラベルは、ローカルワーク領域を使うので、FMの領域を食われる事はありません。


以上。くだらん知恵ですが、お役にたてれば。

Re: 無題 - メロンカー

2017/09/15 (Fri) 09:21:32

圓空様

早速のご回答、誠にありがとう御座います。
アドバイスを受け、システム開発後に特殊ユニット等を追加する事を考慮しEMを積極的に活用する事にしました。
また、「応用編 デジタルフィルタ」のラダー図を拝見させて頂きEM・FM・TM等の使い方を勉強したいと考えます。


<追記>
経験を踏まえた『できる男』の貴重なアドバイス、大変勉強になります。
今後も質問させて頂きたいと考えますので、その際は宜しくお願い致します。

Re: 無題 - 圓空

2017/09/15 (Fri) 15:11:19

メロンカー様

こちらこそ宜しくお願いいたします。


書き忘れましたが、FMのローカル変数(@FM)やローカルレベルは揮発しますので
お忘れなく。(停電保持設定からも出来なかったはず・・・)

デバイス種によるアクセス速度の差も、機種によってある様です。
「KV に関する情報」の”KVシリーズで命令語のS(ソース)にDMを使用した場合と、VMを使用した場合の速度差は?”
を参照してください。

ワーク領域(VM)はFMのローカル変数(@FM)やローカルラベルで使用されます。

Re: 無題 - メロンカー

2017/09/19 (Tue) 17:16:33

圓空様

度々のアドバイス、誠にありがとう御座います。
重ねてお礼申し上げます。

ソフト検討中 - taki

2017/08/30 (Wed) 17:15:10

ソフトで困っていてあれこれ探していたらたどり着きましたので質問します
というか上手くいかなくて困っています
順序回路というのでしょうか
A,B,C,D,E,Fというモーターがあります
各々に手動・自動が有り、全てが自動の時はAがスタートすると同時にソフトタイマーがスタートしてタイムアップと同時にAはストップしてBがスタートして、またタイムアップするとCへ・・・と続きFでタイムアップしてSTOPするとAに戻って同じ事を繰り返します。
そこまでは良いのですが、上記の手動が問題でAからFまでの中に手動があると、そのモーターを飛ばして自動を続けます。
仮にA,C,Eが自動でB,D,Fが手動の場合はA,C,Eを順番に繰り前します。長々と書きましたが自動選択分は若番から順番に動いて手動は飛ばすという事です。
何をどうしたらいいのか分からなくなってしまいました・・・参考回路やアドバイスでも何でも結構です。
よろしくお願いします

Re: ソフト検討中 - 圓空

2017/08/30 (Wed) 19:13:17

taki 様

対象PLCが書いてないのでKV-300で書きますね。
書いてあってもKeyenceで書きますけど・・・(笑)

相談内容はA~Fまでの6個のモータですが、
同じ事なのでA~Cでかきます。

インデックス修飾を使えばモータ1個分の記述で
多数分の記述ができますが、今回はベタ~~っと書きます。

インデックス修飾に付いては
事例集 「自動散水装置」※ 今回のご相談の内容に一番近いでしょうか。
基本編 「時分割」や「仮想IAIロボット」
応用編 「IAIポイント移動」
等、参照ください。


■ 変数
RUN:起動スイッチ

A手動SW:モータAの手動スイッチ
B手動SW:モータBの手動スイッチ
C手動SW:モータCの手動スイッチ

Motor_A:モータA起動
Motor_B:モータB起動
Motor_C:モータC起動

M_A:モータAの起動時間タイマ
M_B:モータBの起動時間タイマ
M_C:モータCの起動時間タイマ


■ 動作説明
1 初期設定で状態「@R000」がONします。
2 「RUN」がONすればAが手動かどうかで分岐します。
手動でなければ「@R002」でタイムアップするまで「Motor_A」がONします。
手動ならば「@R004」のモータBの分岐へジャンプします。
※ Aの場合、自動で動作し始めたら、途中で手動スイッチをONしても自動動作を最後まで続けます。
3 「@R004」Bの手動スイッチがONならCのへ、OFFならタイムアップするまでBが可動します。
※ Bでは自動動作中に手動スイッチがONしたら、自動動作を中断してCへジャンプします。
4 「@R006」Cも同様に動作します。
5 Cを処理終えると初めに戻ます。

ここでは
STG~JMP 命令で記述しましたが
他のアルゴリズムは

http://yenqoo.com/spices/

左メニューの『基本編 フロー』の
2. 次工程移行アドレス式

を参照ください。

「4. 歩進式」 や、「5. ステップ式」 では条件分岐がややこしいですね。

http://plcseigyo.com/program/post-3530
↑この方式もありですが・・・記述が面倒です。

Re: ソフト検討中 - taki

2017/08/31 (Thu) 18:05:24

圓空様
PLCは三菱です(何故かGX-Developerで作成指定です)
回路を参考にさせていただきます
確かキーエンスのラダーソフトがあったはずなので打ち込んでみます
ハード畑なもんでシーケンサは毎回苦労してます(苦笑)
ありがとうございました
困ったときは来ます
(既にHPをお気に入りに追加しておきました)

Re: ソフト検討中 - 圓空

2017/08/31 (Thu) 20:04:57

taki様

「お姉さまも大歓迎」を気に入って頂きまして
ありがとうございます。

三菱のプログラマーは、開発効率が悪くて大変ですね。
出来ない事が多すぎます。とにかく使いにくいです。

さて、サンプルで書いた
STG・・・・・JMP
の件ですが、代替命令で書くとすれば

 R000      R002
-|STG|----------|JMP|--

 R002      R004
-|STG|----------|JMP|--

STG a ⇒ LD a (単純な接点命令で置き換え)
JMP b ⇒ RST a と SET b
に置き換えると早いでしょう。

 M000     M000
-| |----------(RST)--
    |
    |    M002
    |-----(SET)--

 M002     M002
-| |----------(RST)--
    |
    |    M004
    |-----(SET)--

これからも宜しくお願いいたします。

Re: ソフト検討中 - 圓空

2017/09/02 (Sat) 14:45:14

taki様

「事例集」の方にサンプルを掲載いたしました。
”モータの順次起動”を参照下さい。

インデックス修飾でも記述しました。比較してみてください。

KV-STUDIOがあるとの事なので、コードをダウンロードして頂ければ、即検証できると思います。

開設おめでとうございます! - seg

2017/06/14 (Wed) 10:48:24

おめでとうございます、技術者の役に立つページが増えるのはなんとも喜ばしいことです。
運営頑張ってつかぁさい!

Re: 開設おめでとうございます! - えんくう

2017/06/15 (Thu) 23:24:11

毎度おおきに。

グラフィックデザイン。
使い勝手。
内容、等如何ですか?

まだ、完成までにはかかりますが・・・

はじめまして - yenqoo URL

2017/06/02 (Fri) 20:20:30

とりあえずの管理人。yenqooです。

宜しくお願い致します。


Copyright © 1999- FC2, inc All Rights Reserved.