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

  もどる     新規投稿     トピック表示     投稿順表示     投稿ランキング     次の30件     前の30件     ヘルプ  
■記事No.70377 積算流量パルスへ返信

【70377】積算流量パルス どどんぱ
メール xt5h-fjt@asahi-net.or.jp 
URL  

PLCシーケンスプログラムでの瞬時流量(A/D変換)から1Lで1パルスの積算流量パルスを出したいのですが
求め方を教えてください。
入力レンジDC4-20mA(現場計器からの出力)、PLC分解能0-4000、レンジ20-2000L/min
よろしくお願いします
修正する
投稿日 2024/8/26 (Mon) 20:47:18
更新日 2024/8/26 (Mon) 20:47:18
 

【70378】Re:積算流量パルス 無口
メール  
URL  

定周期割り込み使うのが定石かな。
例えば
1)1s周期で瞬時流量をADから読みだす
2)求められた瞬時流量(L/min)を60で除算する(L/min →L/sec)
   →これを1秒当たりの流量と「定義」する
3)上記2で求めた流量を足し合わせる
4)足し合わせた流量が1Lを超えたら1パルス出力&足し合わせた流量から1Lを減算
5)1〜4を繰り返し

修正する
投稿日 2024/8/27 (Tue) 6:48:51
更新日 2024/8/27 (Tue) 6:48:51
 

【70379】Re:積算流量パルス 名無しさん
メール  
URL  

よく使用しそうなレンジの中央値で考えると
1000L/minという事だから、
秒に直すと17L/secになる。
秒で表せば0.06秒で1L流れる計算になる。

0-4000の分解能で1増えると約0.5Lの重みなのだから
主題の1Lでパルスを出すのは無理なんじゃね?
修正する
投稿日 2024/8/27 (Tue) 10:32:15
更新日 2024/8/27 (Tue) 11:13:03
 

【70380】Re:積算流量パルス 名無しさん
メール  
URL  

三菱のPLCにはスキャン時間というシステムレジスタがある。
これは前回から今回スキャンタイミングまでにかかった時間。
毎スキャン更新される。

仮に1回目のスキャン時間値が6msec、AD読値350の場合
工業値変換で350×0.5=175L→msec換算で0.003L
(今回は工業値を判り易く0-2000で計算している、本当は違う)

6msecの間は0.003L流れたとして近似化するので、
6×0.003=0.018L
つまり前回スキャンから0.018L流れたということ。

こんな感じで毎スキャン流量を加算していき
1L超えた時点でパルスを立てる。
1Lを超えた余りぶんの流量は次計算に合算する。

この方法だとPLCの平均スキャン時間が10msec以下であることが望ましい
30msecを超えるとアウト

1L信号を外部に出すのだとすると拾えない可能性大

逆に内部計算用として投入計量などに使うのなら
わざわざパルス化せずに累積量として演算した方が便利

修正する
投稿日 2024/8/27 (Tue) 11:21:29
更新日 2024/8/27 (Tue) 16:10:29
 

【70381】Re:積算流量パルス lumiheart
メール  
URL  

>PLC分解能0-4000、レンジ20-2000L/min
単純にスケーリングするだけなんで
流量[L/min]=AD入力/2

で、2000L/minの時60秒で2000PLS出力させる
2000/60=33Hz 、20/60=0.3Hz
1/33=30ms

問題はどーやってパルス出力するか?
FXなら
周波数制御モード(HSZ, PLSY命令)(M8132)
で、OKなんだが

何故かQには無い
定周期パルス出力 PLSY
パルス幅変調 PWM
なら、有るんだが微妙に使いにくい
なので、昔ながらのタイマ組み合わせて作る


修正する
投稿日 2024/8/27 (Tue) 20:44:29
更新日 2024/8/27 (Tue) 20:44:29
 

【70382】Re:積算流量パルス 名無しさん
メール  
URL  

現在の瞬時流量をパルス表現する際に
命令を使う場合
「可変振幅・定周期」に置き換えるなら簡単そうだけど
「固定振幅(1リトル)・可変周期」にする必要があるから
難しいんじゃないの?
修正する
投稿日 2024/8/27 (Tue) 22:45:04
更新日 2024/8/27 (Tue) 22:45:04
 

【70383】Re:積算流量パルス 名無しさん
メール  
URL  

【70380】です。
最初は判り易いように流量で計算しましたが実際はAD値でいけます。
理屈は以下の通り。

以下のような集合を定義する
PLCスキャン:Z={Z1、Z2、Z3・・・Zn}
瞬時流量:L={L1、L2、L3・・・Ln}
AD値:AD={AD1、AD2、AD3・・・ADn}
L、ADの各要素はZ要素と同時に参照するものとする

集合下での総流量Fは以下の式で表すことができる
総流量F(X)={X1+X2+X3・・・+Xn}
X1 = L1 × Z1
X2 = L2 × Z2
Xn = Ln × Zn

mSEC環境、かつ総流量1リットル判定なので次のようになる
{L1・Z1 + L2・Z2 + L3・Z3・・・+Ln・Zn}>1リットル
L1 = AD1 ÷ 120000
(※120000はmSEC環境下での変換係数)

常に流量換算すると計算が面倒なので、
両辺に120000を掛けることで、
実際はAD値ベースの積算で計算するものとする。
整数演算のみで処理が可能。
{AD1・Z1 + AD2・Z2 + AD3・Z3・・・+ADn・Zn}>120000

定周期割込みを用いた場合Zは同値になるため
「70378:無口」氏の書き込みの通りで式はさらに簡単になる。
{AD1 + AD2 + AD3・・・+ADn}>120000÷Z
Z=定周期時間

Z=1000mSEC=1秒かつ最大瞬時流量の場合
{ 4000 } > 120
となってしまってアウト

具体的には
Z=120000÷4000=30
となり。最低限30mSECで運用する必要となります。
実用に耐えるに1L達成に2回は累積計算したいところ。

実際に検算してみる。
0秒から30mSECの間ストップウォッチで計測した
瞬時流量が2000[L/min]であった場合、
X軸を瞬時流量、Y軸を時間としたグラフの面積に等しくなるので
2000[L/min] × 0.0005[分] = 1[L]
となる。


修正する
投稿日 2024/8/28 (Wed) 10:14:40
更新日 2024/8/28 (Wed) 10:50:35
 

【70384】Re:積算流量パルス 無口
メール  
URL  

70378:無口です
要求仕様が不明確なのでヒントだけ。

70378の手法で0.5リットル毎に出力をOn/Offすれば1L/PLC出力できる→duty50%で理想的?
三菱RQであればFF命令、FXだったらALT命令を使えば簡単。
リアルタイム性の保証はサンプリング周期(定周期割り込み間隔)の設定で調整できる
考え方を説明する為1秒周期としたけど実際は100msか10msが実用的かとは思う。
時間はかかるけど溜りパルスは吐きせる。

質問を深く考えてなかったけど実際2000L/minまで対応だと1L/PLSは実用ではないかな。
パルス出力の位置決めユニットが必要かも(笑

修正する
投稿日 2024/8/28 (Wed) 13:46:39
更新日 2024/8/28 (Wed) 13:46:39
 

【70385】Re:積算流量パルス lumiheart
メール  
URL  

>質問を深く考えてなかったけど実際2000L/minまで対応だと1L/PLSは実用ではないかな。
>パルス出力の位置決めユニットが必要かも(笑
別にそれほど高速と言うほどでもなかろう?

横河電機 電磁流量計 
http://www.yokogawa.co.jp/solutions/products-and-services/measurement/field-instruments-products/flow-meters-j/magnetic-flowmeters-j/magnetic-flowmeters-ca-j/#%E8%A9%B3%E7%B4%B0
最大パルスレート 10,000 パルス毎秒

azbil
http://aa-industrial.azbil.com/jp/ja/products/flowmeter/electromagnetic
電磁流量計 パルス周波数 最大3KHz

まぁ、横河電機の10KHzになると高速カウンタが要るレベルだが
多くの場合せいぜい100Hz以下だし
本件の場合たかが30Hz どーと言うほどでも無し
まぁ、Qで10kステップ超えとかだとスキャンタイム考慮も必要だが


修正する
投稿日 2024/8/30 (Fri) 20:20:01
更新日 2024/8/30 (Fri) 20:20:01
 

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

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

No.Password

Wing Multi BBS Pro 1.1.4