、 2 割り込み

ドキュメント内 プログラマブルコントローラ SYSMAC CQM1 リファレンスマニュアル (Page 84-102)

①比較する

高速カウンタ 1 、 2 割り込み

CPUユニット(形CQM1−CPU43−V1)に内蔵の専用ポート1、2に入力された、

ロータリエンコーダからのパルス信号を高速でカウントし、カウント数に応じた 割り込み処理を行うことができます。

2つのポートを別々に使用することができます。ポート1での高速カウンタを「高 速カウンタ1」、ポート2での高速カウンタを「高速カウンタ2」と呼びます。

ここでは、高速カウンタ1、2の使用手順について説明します。ハードウェアの機 能や配線についてはセットアップマニュアルを参照してください。

●処理の概要

[入力信号の種類とカウントモード]

信号の種類に応じて、高速カウンタ1、2のカウントモードを使い分けます。

位相差入力モード(計数速度:25kHz)

位相差4逓倍の2相の信号(A相、B相)とZ相の信号を入力に使用します。2 相の信号のズレ方によって、カウントが加算・減算されます(高速カウンタ 0の「加減モード」と同じです)。

パルス+方向入力モード(計数速度:50kHz)

A相が方向信号、B相がパルス信号になっていて、A相の状態(OFF・ON)

によってカウントが加算・減算されます。

加減算パルス入力モード(計数速度:50kHz)

A相がDOWNパルス、B相がUPパルスになっていて、どちらのパルスかに よってカウントが加算・減算されます。

加減算パルス入力モード

1     2     3

加 算 減 算

A相

(DOWN入力)

B相

(UP入力)

位相差入力モード

1 2 3 4 5 6 7 8 7 6 5 4 3 2

加 算 減 算

A相

B相

2     1 パルス+方向入力モード

1     2     3

加 算 減 算

A相

(方向入力)

B相

(パルス入力)

2     1

・ 高速カウンタ1、2は、形CQM1−CPU43−V1でのみ使 用できます。

PCシステム設定(DM6611)で設定する、形CQM1

CPU43−V1のモードによって、使用できる命令が次の

ように制限されます。

高速カウンタモード時:PLS2命令、ACC命令モード0使 用不可

簡易位置決めモード時:ポート

1、2でCTBL命令使用不可

参 考

2 章

[数値範囲モード]

高速カウンタ1、2のカウントする数値の範囲には、次の2つのモードがあります。

リングモード: 数値範囲の最大値をCTBL命令で設定することができ、最大値 からカウントが加算されると0になります(負数になることは ありません)。また、0からカウントが減算されると最大値に なります。設定は最大値+1(=リング値)で行い、設定範囲 は1〜65000です。

リニアモード: 数値範囲は、−8388607〜8388607に固定です。−8388607から カウントが減算されるとアンダーフローが、8388607からカウ ントが加算されるとオーバーフローが発生します。

減算 加算

最大値

=リング値−1 0

リングモード時 リニアモード時

-8388607 0 8388607

アンダー フロー

オーバー フロー

現在値は、カウントがオーバーフローしたときは08388607に、アンダーフローした ときはF8388607になり、カウント・比較は停止します(比較テーブルは残っていま す)。また、AR0509(ポート1)、AR0609(ポート2)がONします。

カウント動作を再開させるときは、次のように高速カウンタ1、2をいったんリセッ トしてください(運転開始・停止時にも自動的にリセットされます)。

参 考

CQM1では、A相立ち上がり→B相立ち上がり→A相立ち

下がり→

B

相立ち下がりの順のパルスを正転(加算)方 向、逆にB相立ち上がり→A相立ち上がり→B相立ち下が り→

A

相立ち下がりの順のパルスを逆転(減算)方向とし て扱います。

[リセット方式]

カウントの現在値をリセットする(0にする)タイミングを、次の2つの方式から 選択できます。

Z相信号+ソフトリセット ソフトリセット

それぞれの機能は、高速カウンタ0と同じです。P.2-38を参照してください。高速 カウンタ1、2のリセットフラグは次のようになっています。

高速カウンタ1リセットフラグ:25201 高速カウンタ2リセットフラグ:25202

2 章

高速カウンタ1、2リセットフラグ(25201、25202)は、スキャンごとにリフレッ

シュされるので、確実に読み出されるには、1スキャン以上ONになっている必要 があります。

参 考 リセットしても、比較テーブルの登録状態や、比較実行 状態、帯域比較結果は、リセット前の状態が保持されま す(リセット前に比較実行中のときは、そのまま比較を 継続して実行します)。

[高速カウンタ

1

2

割り込みのカウントチェック方式]

高速カウンタ1、2でも、高速カウンタ0と同じ次の2つのカウントチェック方式が あります。

 目標値一致型  帯域比較型

それぞれの動作については、P.2-40を参照してください。

ただし、形CQM1-CPU43-V1では、目標値一致型の比較条件を、比較テーブルに最 大48個まで登録できます。

●使用前の準備(

PC

システム設定)

高速カウンタ1、2割り込みを使用するときは、プログラムモードで次のように設 定しておきます。

パルス出力モードの設定(

DM6611

ビット

高速カウンタモード

(初期状態:「0000」高速カウンタモード)

15 0

DM6611 0 0 0 0

参 考 ・

DM6611でポート1、2を高速カウンタモードに設定して

おかないと、

CTBL

命令によるカウントの比較を実行で きません。

・ この設定は、

CQM1

の起動時にのみ読み出されます。設 定を変更したときは、プログラム実行前にいったん電源 を

OFF

にしてから、再び電源を

ON

にしてください。

DM6611でポート1、2を簡易位置決めモードに設定して

いるときは、高速カウンタ

1

2

現在値エリア(

232

235CH)の内容を BCMP命令などで比較することで、高

速カウンタ

1

2

割り込みの代用をすることができます。

2 章

入力リフレッシュチャネルの設定(

DM6634

6635

ポート

1

2

の動作の設定(

DM6643

6644

それぞれのポートの使用状況に合わせて設定してください。

[比較テーブルとの比較を起動・停止する場合]

①CTBL命令で、比較テーブルをCQM1に登録し、比較を開始します。

P :ポート指定 ポート1:001 ポート2:002 M :モード指定

目標値一致テーブル登録・比較開始 :000 帯域比較テーブル登録・比較開始 :001 目標値一致テーブル登録のみ :002 帯域比較テーブル登録のみ :003 S :比較テーブル先頭チャネル番号

(@)CTBL(63)       P       M       S

高速カウンタ

1

2

は、設定が有効になったときからカウ ント動作を開始しますが、電源ON時や運転開始時、停止 時に

0

にリセットされます。またカウント動作だけでは比 較テーブルとの比較は行わず、割り込みはかかりませ ん。また、現在値は次のチャネルでモニタできます。

高速カウンタ1:232、233CH 高速カウンタ

2

234

235CH

●使用手順

プログラム内で、次の手順で使用します。

ビット

チャネル数(BCD2桁)    00〜16 開始チャネル番号(BCD2桁) 00〜15

(初期状態:「0000」入力リフレッシュなし)

15 0 DM6634、6635 高速カウンタ1:DM6634

高速カウンタ2:DM6635

ビット

数値範囲モード

 0:リニアモード 1:リングモード リセット方式

 0:Z信号とソフトリセット 1:ソフトリセット カウントモード

 0:位相差入力 1:パルス+方向入力 2:加減算パルス入力

(初期状態:「000」リニアモード、Z相信号とソフトリセット、位相差入力モード)

0 15

DM6643、6644 ポート1:DM6643

ポート2:DM6644

参 考

2 章

Mに000を設定すると目標値一致型で、001を設定すると帯域比較型で、比較テーブ

ルを登録し、登録が完了したら比較を開始します。比較を実行している間、比較 テーブルに従って高速カウンタ割り込みが実行されます。

登録する比較テーブルの内容については、CTBL命令を参照してください。

②比較を停止させるときは、INI命令を次のように実行します。

P :ポート指定 ポート1:001 ポート2:002

[高速カウンタ1、2の現在値を読み出す場合]

現在値の読み出しには、次の2つの方法があります。

高速カウンタ1、2現在値エリアを読み出す方法 PRV命令を使用する方法

<高速カウンタ1、2現在値エリアを読み出すとき>

高速カウンタ1、2現在値エリアには、高速カウンタ1、2の現在値が、次のように 格納されています。

上位4桁 下位4桁 リニアモード時 リングモード時   ポート1  233CH  232CH F8388607〜08388607 00000000〜00064999

ポート2  235CH  234CH (負数の場合、最上位桁がFになります)

Mに002を設定すると目標値一致型で、003を設定すると帯

域比較型で、比較テーブルを登録しますが、比較は開始し ません。この場合は、INI命令で比較を開始させます。

・比較を再開させるときは、第1オペランドにポートNo.を 第2オペランドに000(比較実行)を設定して、INI命令 を実行します。

・いったん登録されたテーブルは、新たに他のテーブルが 登録されない限り、運転中(プログラム実行中)はずっ とCQM1内に保持されます。

参 考 (@) I N I (61)        P        001        000

参 考

このチャネルは1スキャンごとに更新されるため、正確な現 在値からは多少のズレが出ます。

参 考

<PRV命令を使用するとき>

PRV命令で、高速カウンタ1、2の現在値を読み出します。

P :ポート指定 ポート1:001 ポート2:002 D :現在値格納先頭チャネル番号

次のように、高速カウンタ1、2の現在値が格納されます。

   上位4桁    下位4桁 リニアモード時 リングモード時  D+1   D    F8388607〜08388607 00000000〜00064999

(負数の場合、最上位桁がFになります)

[高速カウンタ1、2の現在値を変更する場合]

高速カウンタ1、2の現在値の変更には、次の2つの方法があります。

リセット方式に従って、リセットする方法(0になる)

INI命令を使用する方法

ここでは、INI命令を使用する方法について説明します。リセット方式に従ってリ セットする方法については、「処理の概要」(P.2-45)を参照してください。

INI命令で、高速カウンタ1、2現在値を変更します。

P :ポート指定 ポート1:001 ポート2:002  C2:現在値変更データ格納先頭チャネル番号    上位4桁    下位4桁 リニアモード時 リングモード時  C2+1   C2    F8388607〜08388607 00000000〜00064999 負数を指定するときは、最上位桁に16進数のFを設定します。

PRV命令実行時点での正確な現在値を読み出すことができ ます。

(@)PRV(62)        P        000        D

(@) I N I (61)        P        002        C2

参 考

目標値一致型で比較動作を実行しているときは、パルス入 力したままで、INI命令による現在値変更と比較開始を連続 実行しないでください。強制的に現在値を変更した後です ぐに比較開始を行うと、正常に割り込みが発生しないこと があります。目標値一致型では、比較テーブルの最後の目 標値との一致後は、自動的に再び先頭の目標値との比較と なりますので、一連の比較動作完了後は、現在値を初期値 に戻すだけで、繰り返し動作させることができます。

参 考

ドキュメント内 プログラマブルコントローラ SYSMAC CQM1 リファレンスマニュアル (Page 84-102)