第6章 関数とプログラミング 137
6.9 イベント通知機能
シーケンサCPUからWinCPUユニット専用命令(S(P).GINT)を使用し、WinCPUユニット上のユーザプ ログラムへイベントを通知する機能について説明します。
【WinCPUユニット専用シーケンス命令】
WinCPUユニットへの割込み命令:S(P).GINT 使用可能デバイス 内部デバイス
(システム、ユーザ)
MELSECNET/10(H) ダイレクトJ□¥□
設定 データ
ビット ワード
ファイル レジスタ
R、ZR ビット ワード
特殊ユニット U□¥G□
インデックス レジスタ
Zn 定数 K、Hその他
n1 - ○ *1*2 - ○ -
n2 - ○ *2 - ○ -
○:設定可 -:設定不可
*1 : ハイパフォーマンスモデルQCPUの場合にインデックス修飾が可能です。
*2 : ベーシックモデルQCPUの場合にインデックス修飾が可能です。
[命令記号] [実行条件]
SP.GINT
S.GINT
SP.GINT (n1) (n2)
S.GINT (n1) (n2) 指令
指令
【設定データ】
設定データ 設定内容 データ型
(n1)
対象号機CPUの先頭入出力番号÷16 実際に指定する値は以下のとおりです。
1号機:3E0H 2号機:3E1H 3号機:3E2H 4号機:3E3H
BIN16ビット
(n2) 割込みポインタ番号
(0~15) BIN16ビット
【使用可能デバイス】
専用命令で使用できるデバイスを下記に示します。
内部デバイス
ビット ワード *1 ファイルレジスタ 定数 *2
M、L、B D、W、@□ R、ZR K、H
*1 : ワードデータとしてビットデバイスの桁指定が使用できます。
ビットデバイスの桁指定は、 桁数 ビットデバイスの先頭番号 で指定します。
たとえば、M0からM15までの16点は K4M0 で指定します。
*2 : 各項の定数の欄には、設定可能デバイスを記載しています。
【制御内容】
シーケンスプログラムでS(P).GINT命令の実行指令の立上り(OFF→ON)時にWinCPUユニッ トに対し割込みを発生させます。
WinCPUユニットは、シーケンサCPUからの割込み発生にてユーザプログラムでプログラミ
ングされているバスインタフェース関数(QBF_WaitEvent)の処理を実行します。
(1) WinCPU
ユニット対して命令の指令を伝達完了した場合、シーケンサ
CPUの
SM391(S(P).GINT命令実行完了)フラグがONします。
(2)
シーケンサCPUがWinCPUユニットに対して命令の指令を伝達できなかった場合、シー ケンサCPUのSM391(S(P).GINT命令実行完了)フラグがOFFします。
【動作タイミング】
【エラー内容】
次の場合には演算エラーとなりシーケンサCPUのエラーフラグ(SM0)がONし、エラーコード がSD0に格納されます。
エラーコード *1 エラー要因 処置方法
2110 対象号機CPU先頭入出力番号÷16(n1)で予約(CPU空き設定)されている号機また はCPU ユニット未装着の号機を指定した。
2114 対象号機CPU先頭入出力番号÷16(n1)で自号機を指定した。
2117 対象号機CPU先頭入出力番号÷16(n1)でS(P).GINT命令未サポートのユニットを 指定した。
4100 対象号機CPU先頭入出力番号÷16(n1)で0-3DFH、3E4Hを指定した。
シーケンスプログラ ムを確認し、正しい シーケンスプログラ ムに修正してくださ い。
*1 : 0000H(正常)
【プログラム例】
4号機のWinCPUユニットに対して割込みを発生させるシーケンスプログラム
【注意事項】
(1) QBF_WaitEvent
関数実行時にシーケンサ
CPUからすでに割込みイベントが通知されてい
た場合、ユーザプログラムはQBF_WaitEvent関数実行と同時に割込みイベント待ちから 復帰します。
また、QBF_WaitEvent関数実行時に同一割込みイベント番号に複数回の割込みイベント が通知されていた場合、 ユーザプログラムでは1回の割込みイベント通知として処理を行 います。
(2)
複数のユーザプログラムでイベント通知機能を使用する場合、複数のユーザプログラム で同一号機および同一割込みイベント番号を設定しないでください。
複数のユーザプログラムで同一号機および同一割込みイベント番号を設定すると、どの ユーザプログラムで割込みイベントを受け取るか不定となります。
開発用パソコンでユーザプログラムを作成する
開発用パソコンにてユーザプログラムを作成する場合、下記に示すファイルが必要です。
WinCPUユニットから開発用パソコンへコピーしてユーザプログラムの作成を行ってください。