表示灯をグラデーション点滅させる

PLC

 キーエンス社製 KV-NC32Tを使って、パトライト社製のシグナルタワーを滑らかに点滅させてみました。サンプルコードをダウンロードできます。
この機能を実装した機械のプログラムをそのまま抜粋しているので、デバイスのアドレスは適宜変換して実行してください。
(2024-07-07 初版投稿)

目次

  • 出力アドレスを決める
  • グラデーションパターンを作る
  • 作ったグラデーションパターンを読み込む
  • 実行結果とサンプルのダウンロード

 このサンプルは、「指定周波数パルス出力」機能(PLSOUT命令)を使います。高速カウンタ番号・出力周波数・デューティー比を指定するだけで簡単に指定した周波数のパルスを出力できます。
 高速カウンタ番号ごとに出力アドレスが決まっています。高速カウンタCTH0~CTH2はR500~R502に対応します。このサンプルでは赤をR500に、緑をR502にしています。周波出力周波数はどちらも10kHzにしています。
 PLSOUT命令の詳細は以下を参照してください。

PLSOUT 命令 (命令後リファレンスマニュアル)

 予めテーブルに明るさの値を入れておき、クロックの立ち上がりでその値を(PLSOUT命令)で使う方法をとっています。パターンは「コサイン波」と「三角波」を作るコードがありますが、「三角波」はコメントアウトしています。
 明るさデータは半波長分(一番明るい値 ⇒ 一番暗い値)作っています。暗 ⇒ 明にする時は、位相 π ⇒ 0 のデータへ逆行します。
最高輝度から始めたかったのでコサイン波の 0~π を使いました。最低輝度からはじめるなら π~2π のデータを作ってください。
データ数は50個(50階調)にしています。DM7300~DM7349にデータが入っています。任意の階調に変更して実行してみてください。
 「PLSOUT命令」のデュティー比の取りうる範囲は-499~499です。輝度データはcosΘの値に499をかけて算出します。

PLC起動時に、指定周波数パルス出力の周波数設定を10kHz(10000Hz)に設定。(DM2784/DM2786)
緑ランプのグラデーションモードではないときの暗輝度を-400に設定。(@DM13)
サブルーチン1をコールして、グラデーションデータを作成します。

周波数設定デバイスは2ワード設定なので、10000を2ワードに拡張して@DM8と@DM16に代入します。
グラデーションの階調50をループ回数の@DM10に、データ読み込み時のカウンタ比較変数を、@DM11と@DM19に、コサイン値算出用の数値を@DM4に代入しています。

・緑点滅 
 グラデーション点滅モード(MR100が偽)になった時、DM7300のデータを読むようにインデックスレジスタ(Z10)を0に、データの逆行読み込みフラグ(@MR108)をリセットしています。クロックは(@T16)です。1センチ秒にしています。
データ読み込みが DM7300 ⇒ DM7349 (Z10をインクリメント 0 ⇒ 49)まで行くと、(@MR108)を真にして DM7348 ⇒ DM7300 (Z10をデクリメント 48 ⇒ 0)の順でデータを読み込みます。読み込み対象がDM7300になると、DM7301 ⇒ DM7349 に順になり、これを繰り返します。
 MR100が真の時は、-400 の輝度と最高輝度で点滅します。

・赤点滅
 消灯から始まり、最高輝度 ⇒ 消灯 を繰り返します。初期値で位相πの値を読む様にインデックスレジスタ Z9に49を代入します(DM7349を読み込む)。クロックは(@T17)です。3センチ秒にしています。
Z9をデクリメントして、0になったら(@MR101)をリセットしてZ9を初期化ます。

サンプルはここからダウンロードできます。
サンプルコードのダウンロード
ラダー図のPDFファイル

▲点滅の様子

・緑点滅
 Z10の値と点滅データの関係の「リアルタイムチャートモニター」です。
Z10が0の時、最高輝度。49の時、最低輝度なのが分かります。
参考に、グラデーションデータが余弦波の場合と三角波の場合の比較グラフを示します。これはPLC内の DM7300~DM7349 の値を読みだしてエクセルでグラフ化したものです。

エクセルグラフ


 PLC内の値の読み出しは、「メニューバー>モニタ/シュミレータ(N)>デバイス値一括変更/読出(D)」をクリックすると「デバイス値一括変更/読出」ウィンドウが表示されるので「デバイス追加(D)>一括挿入(B)」。一括挿入ウィンドウで「デバイス選択(D)」で「DMデータメモリ」を選び、「先頭番号(B)」に、(サンプルのままの場合)7300を設定。「個数(N)」で50を設定。「表示形式(F)」で「±10進数16BIT」を選択し、[OK]ボタンをクリック。
 再度「デバイス値一括変更/読出」ウィンドウから「PLC(P)>PLCから全項目読出(R)」をクリックするとDM7300~DM7349までのデータが読み込まれます。
次に「ファイル(F)>CSV/TXTファイルに名前をつけて保存」をクリック。任意の名前でファイルを作ってください。その後できたCSVファイルをエクセルで読み込んでください。

・赤点滅
 Z09の値と点滅データの関係の「リアルタイムチャートモニター」です。


 

コメント

タイトルとURLをコピーしました