HOME > 製品技術資料 > BC設定 > BCスケジュール設定例

BCスケジュール構造

BCスケジュールの作成方法は、DDC社EMACEとほぼ同じ方法で行うことが可能です。下図にBCスケジュールの構造を示します。

スケジュール構造


設定例

@ 複数のマイナー・フレームを使用する方法
A 複数のマイナー・フレーム+ウォッチドック・タイマーを使用する方法
B 高優先度非同期メッセージを挿入する方法
C 汎用フラグによる条件付きメッセージを使用する方法


設定例 @ 複数のマイナー・フレームを使用する方法

次の条件で作成したBCスケジュール例を以下の表に示します。
・1msec(1000μsec) マイナー・フレーム周期
・3つのマイナー・フレームを持つBCスケジュール
・3msec メジャー・フレーム周期


BC命令リスト
アドレス OP
コード
条件 パラメータ 説明
0x1B70 LFT ALWAYS フレーム時間ロード
0x1B71 0x000A 1000μsecマイナー・フレーム時間
(MINOR1を3回実行するので3msecで1周する)
0x1B72 SET ALWAYS
0x1B73 0x0000 フレーム時間開始
0x1B74 CAL ALWAYS コール・サブルーチン
0x1B75 0x1B82 MINOR1コール(MINOR1先頭アドレス)
0x1B76 CAL ALWAYS コール・サブルーチン
0x1B77 0x1B8A NEXTFRAMEコール(NEXTFRAME先頭アドレス)
0x1B78 CAL ALWAYS コール・サブルーチン
0x1B79 0x1B82 MINOR1コール(MINOR1先頭アドレス)
0x1B7A CAL ALWAYS コール・サブルーチン
0x1B7B 0x1B8A NEXTFRAMEコール(NEXTFRAME先頭アドレス)
0x1B7C CAL ALWAYS コール・サブルーチン
0x1B7D 0x1B82 MINOR1コール(MINOR1先頭アドレス)
0x1B7E WFT ALWAYS
0x1B7F 0x0000 フレーム終了時間まで待機
0x1B80 JMP ALWAYS
0x1B81 0x0000 BC命令リスト先頭にジャンプ

MINOR1
アドレス OP
コード
条件 パラメータ 説明
0x1B82 XEQ ALWAYS
0x1B83 MSG1 MSG1ポインタ:MCSB1
0x1B84 XEQ ALWAYS
0x1B85 MSG2 MSG2ポインタ:MCSB2
0x1B86 XEQ ALWAYS
0x1B87 MSG3 MSG3ポインタ:MCSB3
0x1B88 RTN ALWAYS
0x1B89 0x0000 サブルーチン・リターン

NEXTFRAME
アドレス OP
コード
条件 パラメータ 説明
0x1B8A WFT ALWAYS
0x1B8B 0x0000 フレーム時間終了まで待機
0x1B8C LFT ALWAYS フレーム時間ロード
0x1B8D 0x000A 1000μsecのマイナー・フレーム時間再セット
0x1B8E SFT ALWAYS
0x1B8F 0x0000 フレーム時間開始
0x1B90 RTN ALWAYS
0x1B91 0x0000 サブルーチン・リターン


設定例 A 複数のマイナー・フレーム+ウォッチドック・タイマーを使用する方法

上記の例にウォッチドック・タイマーを追加する場合の例を示します。


NEXTFRAME
アドレス OP
コード
条件 パラメータ 説明
0x1B8A WFT ALWAYS
0x1B8B 0x0001 100μsecフレーム時間と比較
0x1B8C JMP GT/EQ FLAG
0x1B8D 0x1B8A タイマーが100μsecを超えると、NEXTFRAMEの先頭にジャンプ
0x1B8E LFT ALWAYS フレーム時間ロード
0x1B8F 0x000A 1000μsecのマイナー・フレーム時間再セット
0x1B90 SFT ALWAYS
0x1B91 0x0000 フレーム時間開始
0x1B92 RTN ALWAYS
0x1B93 0x0000 サブルーチン・リターン


設定例 B 高優先度非同期メッセージを挿入する方法

高優先度非同期メッセージを追加する例。


MINOR1
アドレス OP
コード
条件 パラメータ 説明
0x1B82 XEQ ALWAYS
0x1B83 MSG1 MSG1ポインタ:MCSB1
0x1B84 CAL GP3_1
0x1B85 ASYNCH_HP 【ASYNCH_HP】は、高優先度非同期メッセージ・フレームのポインタです。 BC汎用フラグ3がホストによって設定されている場合に【ASYNCH_HP】を呼び出します。
0x1B86 XEQ ALWAYS
0x1B87 MSG2 MSG2ポインタ:MCSB2
0x1B88 CAL GP3_1
0x1B89 ASYNCH_HP
0x1B8A XEQ ALWAYS
0x1B8B MSG3 MSG3ポインタ:MCSB3
0x1B8C CAL GP3_1
0x1B8D ASYNCH_HP
0x1B8E RTN ALWAYS
0x1B8F 0x0000 サブルーチン・リターン


ASYNCH_HP
アドレス OP
コード
条件 パラメータ 説明
0x1B90 XEQ ALWAYS
0x1B91 ASYNC_MSG1 ASYNC_MSG1ポインタ:MCSB1
0x1B92 XEQ ALWAYS
0x1B93 ASYNC_MSG2 ASYNC_MSG2ポインタ:MCSB2
0x1B94 FLG ALWAYS
0x1B95 0x0800 GP3フラグ・クリア
0x1B96 RTN ALWAYS
0x1B97 0x0000 サブルーチン・リターン


設定例 C 汎用フラグによる条件付きメッセージを使用する方法

汎用フラグを使用して、条件付きメッセージを作成できます。
・汎用フラグを複数組み合わせることで、より多くのメッセージ分岐を使用することができます。
・GPF0および1は、フレーム・タイマー比較に使用されるので、ここではGPF4-2を使用します。
・下記の表は、3つの汎用フラグを用いて、4つのメッセージをサポートする場合の例です。


GPF4 GPF3 GPF2 メッセージ
1 1 1 条件付きメッセージ MSG4
1 1 0 条件付きメッセージ MSG3
1 0 1 条件付きメッセージ MSG2
1 0 0 条件付きメッセージ MSG1
0 X X MSG1/MSG2/MSG3

メモリ
位置
OP
コード
条件 パラメータ 説明
1 XEQ ALWAYS MSG1 同期メッセージ
2 XEQ ALWAYS MSG2 同期メッセージ
3 XEQ ALWAYS MSG3 同期メッセージ
4 JMP GPF4_1 +2 フレーム位置を2つジャンプ
5 JMP GPF4_0 −4 フレーム先頭に戻る
6 JMP GPF3_0 +2 フレーム位置を2つジャンプ
7 JMP GPF3_1 +3 フレーム位置を3つジャンプ
8 JMP GPF2_0 +4 フレーム位置を4つジャンプ
9 JMP GPF2_1 +6 フレーム位置を6つジャンプ
10 JMP GPF2_0 +8 フレーム位置を8つジャンプ
11 JMP GPF2_1 +10 フレーム位置を10つジャンプ
12 XEQ ALWAYS 条件付きMSG1 GPF4:2 = 100 の場合に実行
13 FLG ALWAYS フラグクリア
14 JMP ALWAYS −13 フレーム先頭に戻る
15 XEQ ALWAYS 条件付きMSG2 GPF4:2 = 101 の場合に実行
16 FLG ALWAYS フラグクリア
17 JMP ALWAYS −16 フレーム先頭に戻る
18 XEQ ALWAYS 条件付きMSG3 GPF4:2 = 110 の場合に実行
19 FLG ALWAYS フラグクリア
20 JMP ALWAYS −19 フレーム先頭に戻る
21 XEQ ALWAYS 条件付きMSG4 GPF4:2 = 111 の場合に実行
22 FLG ALWAYS フラグクリア
23 JMP ALWAYS −22 フレーム先頭に戻る

▲ページトップに戻る