• 検索結果がありません。

異なるポートの複数ビット

ドキュメント内 RCX Series P/M Japanese (ページ 53-61)

例: A%=SOD ( 2 )

3.   異なるポートの複数ビット

異なるポートの複数ビットをまとめて指定する場合、カッコ内にポート番号とビットの二桁をカ ンマで区切って記述します。

記述例:DO(mb, mb, ... ,mb)

例:

DO

37 , 25 , 20

DO

37

,DO

25

,DO

20

)を指定

4.  ポート内の全ビット

ひとつのポート内の全ビットをすべて指定する場合、ポート番号に続けて()を記述します。

なお、上記2.または3.の方法で記述することもできます。

記述例:DOm()

例:

DO 2

()

DO

27

)〜

DO

20

)の全てを指定

 → 

DO

27 , 26 , 25 , 24 , 23 , 22 , 21 , 20

)または

DO 2

7 , 6 , 5 , 4 , 3 , 2 , 1 , 0

)でも同じ

1 2 3 4 5 6 7

11 変数の有効範囲

変数は下記の通り分類されます。

11.1 動的変数の有効範囲

動的変数は、宣言されるプログラム位置によって、全域変数(グローバル変数)と局所変数(ロー カル変数)とに分けられ、それぞれ有効範囲が異なります。

変数のタイプ 説 明

グローバル変数

(全域変数)

サブプロシージャ外(SUB 文〜ENDSUB 文で囲まれた領域以外)

で宣言された変数。プログラム全体で有効となる。

ローカル変数

(局所変数)

サブプロシージャ内で宣言された変数。そのサブプロシージャ内で のみ有効となる。

11.2 静的変数の有効範囲

静的変数は実行プログラムのリセットによりデータがクリアされない変数です。

どのプログラムからも変数のデータを変更、参照することができます。

変数名は下記のように決められており、任意の変数名で使用することはできません。

変数の型 変数名

整数型 SGIn (n:0〜7)

実数型 SGRn (n:0〜7)

11.3 動的配列の有効範囲

動的変数は宣言されるプログラム位置によって、全域変数(グローバル変数)と局所変数(ローカ ル変数)とに分けられます。

変数のタイプ 説 明

グローバル変数

(全域変数)

サブプロシージャ外(SUB 文〜ENDSUB 文で囲まれた領域以外)

で宣言された変数。プログラム全体で有効となる。

ローカル変数

(局所変数)

サブプロシージャ内で宣言された変数。そのサブプロシージャ内で のみ有効となる。

・配列についての詳細は、3章「5 配列」を参照してください。

・プログラムレベルで宣言した変数を、仮引数として引き渡さないでサブプロシージャから参 照するには、SHARED文を使用します(詳しくは、8章「91 SHARED」を参照してください)。

MEMO

1 2 3 4 5 6 7

変数のクリア ● 3-21

12 変数のクリア

12.1 動的変数のクリア

下記のいずれかの場合、数値型変数はゼロに、文字型変数はヌルストリング(空の文字列)にク リアされます。変数の配列も同様にクリアされます。

プログラム編集を行ったとき。

プログラムを切替えたとき(SWI命令を実行したときも含む)。

プログラムをコンパイルしたとき。

プログラムリセットを実行したとき。

自動モードで、プログラム停止中に専用入力信号 DI15(プログラムリセット入力)をOFFか

らONしたとき。

システムモードの初期処理で、下記のどちらかを初期処理したとき。

1. プログラムメモリ(システム>ショキショリ>メモリ>プログラム)

2. 全メモリ(システム>ショキショリ>メモリ>スベテ)

下記のオンライン命令を実行したとき。

@RESET、@INIT PGM、@INIT MEM、@INIT ALL、@SWI プログラム中で、HALT文を実行したとき。

12.2 静的変数のクリア

下記のいずれかの場合、整数型、実数型ともにゼロにクリアされます。

システムモードの初期処理で、下記の初期処理をしたとき。

全メモリ(システム>ショキショリ>メモリ>スベテ)

下記のオンライン命令を実行したとき

@INIT MEM、 @INIT ALL

・静的変数の値は、プログラム編集を行なってもクリアされません。

MEMO

第 4 章

式と演算

1 1 算術演算 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 4-1

2 2 文字列演算 ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 4-4

3 3 ポイントデータの形式 ・・・・・・・・・・・・・・・・ 4-5

4 4 DI/DO 条件式 ・・・・・・・・・・・・・・・・・・・・・・・・ 4-6

1 2 3 4 5 6 7

算術演算 ● 4-1

1 算術演算

1.1 算術演算子

演算子 記述例 意 味

+ A+B AとBを加算する ー A-B AからBを減算する

* A*B AとBを乗算する

/ A/B AをBで除算する

^ A^B AのB乗(べき乗)を求める

ー -A Aの符号を反転する

MOD A MOD B AをBで除算した余りを求める(剰余)

剰余の演算で扱われる数値が実数である場合、小数点以下切り捨てし、整数に変換した後、実行 されます。結果は整数の割算の余りです。

例:

A= 15 MOD 2

A= 1

15 / 2 = 7 .... 1

A= 17 . 34 MOD 5 . 98

A= 2

17 / 5 = 3 .... 2

1.2 関係演算子

関係演算子は2つの値を比較するのに用います。比較の結果が「真」なら「-1」、「偽」なら「0」とな ります。

演算子 記述例 意 味

= A=B AとBが等しければ「-1」、そうでなければ「0」

<>, >< A<>B AとBが等しくなければ「-1」、そうでなければ「0」

< A<B AがBより小さければ「-1」、そうでなければ「0」

> A>B AがBより大きければ「-1」、そうでなければ「0」

<=, =< A<=B AがB以下なら「-1」、そうでなければ「0」

>=, => A>=B AがB以上なら「-1」、そうでなければ「0」

例:

A= 10

5

10

5

は「真」となるので

A=- 1

・実数変数や実数配列に対して、等価関係演算子を使用した場合、丸め誤差などにより期待し た結果が得られないことがあります。

例:・・・・・・・・・・・・・・・・・・・・・A=2

B=SQR(A!)

IF A!=B!*B! THEN・・・

→このとき、A!とB! * B!は等しくなりません。

MEMO

1 2 3 4 5 6 7

1.3 論理演算子

論理演算子は1つまたは2つの値をビットごとに操作するのに用います。たとえばI/Oポートの 入出力状態の操作に使用できます。

論理演算の結果は各ビットごとに0または1で表します

実数データに対する論理演算は整数に変換してから行われます

演算子 機 能 意 味

NOT, 〜 否定 各ビットを反転する

AND、& 論理積 両方のビットが1の時に1となる

OR, | 論理和 どちらかのビットが1の時に1となる

XOR 排他的論理和 両方のビットが異なる時に1となる

例:A%=NOT 13.05 → A%には「-14」が代入される(13に四捨五入してから反転)

ビット 7 6 5 4 3 2 1 0

13 0 0 0 0 1 1 0 1

NOT 13=-14 1 1 1 1 0 0 1 0

例:A%=3 AND 10 → A%には「2」が代入される

ビット 7 6 5 4 3 2 1 0

3 0 0 0 0 0 0 1 1

10 0 0 0 0 1 0 1 0

3 AND 10 = 4 0 0 0 0 0 0 1 0

例:A%=3 OR 10 → A%には「11」が代入される

ビット 7 6 5 4 3 2 1 0

3 0 0 0 0 0 0 1 1

10 0 0 0 0 1 0 1 0

3 OR 10 = 11 0 0 0 0 1 0 1 1

例:A%=3 XOR 10 → A%には「9」が代入される

ビット 7 6 5 4 3 2 1 0

3 0 0 0 0 0 0 1 1

10 0 0 0 0 1 0 1 0

3 OR 10 = 11 0 0 0 0 1 0 0 1

1 2 3 4 5 6 7

算術演算 ● 4-3

1.4 演算の優先順位

演算は下記の優先順位に従って行います。優先順位が同じである場合、その式の中で左側に書か れている演算から順に実行されます。

優先順位 演算内容

1 ()で囲まれた式

2 関数, 変数

3 ^(指数)

4 独立した+, ー(単項演算子)

5 *, /

6 MOD

7 +, ー

8 関係演算子

9 NOT, 〜 (否定)

10 AND, & (論理積)

11 OR, |, XOR(論理和, 排他的論理和)

1.5 型の変換

式の中で形式の異なるデータどうしの演算を行なうと、データの型が変換されます。

1.● 実数を整数に代入すると、四捨五入となります。

例:

A%

125 . 67

A%

126

2.● 整数を実数で四則演算すると、結果は実数となります。

例:

A

0

)=

125 * 0 . 25

A

0

)=

31 . 25

3.● 整数を整数で割ると、余りは捨てられ、結果は整数となります。

ドキュメント内 RCX Series P/M Japanese (ページ 53-61)

関連したドキュメント