例:
4.5 演算命令 (CPT)
CPT命令は、コピー、演算、論理、および変換演算を実行します。
説明:
CPT命令は、式に定義された演算を実行し、その結果を宛先アドレスに書 込む出力命令です。さらに、CPT命令は任意のアドレスから別のアドレス にデータをコピーして、ソースアドレスの任意のデータタイプを、宛先アド レスに指定されたデータタイプに自動的に変換します。CPT命令の実行時間は、演算、論理、または移動命令(例えば、ADD, AND, MOVなど)の実行時間よりも長くかかります。また、CPT命令が使用する プログラムファイルのワードも多くなります。
CPT命令が実行されるごとに、データテーブルのステータスファイル内の 演算ステータスビットが対応する演算、論理、または移動命令と同様に更新 されます。例えば、ADD命令の説明を参照にして、CPT命令(加算)の実 行後にステータスビットがどのように更新されるかを確認してください。
4.5.1 CPT 式の指定
実行する演算を、式に定義します。演算子およびアドレスまたはプログラム 定数を使用して式を定義します。エンハンストPLC-5プロセッサの場合は、
複合式を指定することができます。表4.Cに、式に指定できる演算子を示し ます。式を指定する場合には、以下の点に注意してください。
• 演算子(シンボル):演算を定義します。
• アドレス:直接または間接の論理アドレスが使用できます(エレメント またはビットレベルでなければならない)。
• プログラム定数:エンハンストPLC-5プロセッサの場合は、整数または 浮動小数点の数値を使用できます。(8進数の値を指定する場合には前に
&Oを、16進数の値を指定する場合には前に&Hを、2進数の値の場合
には前に&Bを、それぞれ指定してください。)
• 式には、最大80文字まで指定することができます(スペースおよびかっ こを含む)。
CPT COMPUTE Destination Expression
演算命令(CPT, ACS, ADD, ASN, ATN, AVE, CLR, COS, DIV, LN, LOG, MUL, NEG, SIN, SRT, SQR, STD, SUB, TAN, XPY) 4-5
表4.C CPT式に使用可能な演算子
タイプ 演算子 説明 演算例
コピー なし AからBへの コピー
式にソースアドレスを指定、宛先に宛先アド レスを指定する。
クリア なし 値に0をセットする 0 (式に0指定する)
演算 + 加算 2 + 3
2 + 3 + 7 (エンハンストPLC-5プロセッサ)
– 減算 12 – 5
(12 – 5) – 7 (エンハンストPLC-5プロセッサ)
* 乗算 5 * 2
6 * (5 * 2) (エンハンストPLC-5プロセッサ)
| (縦線) 除算 24 | 6
(24 | 6) *2 (エンハンストPLC-5プロセッサ)
– 符号変換 – N7:0
SQR 開平演算 SQR N7:0
** べき乗 (xのy乗) * 10**3 LN 自然対数 * LN F8:20 LOG 10を底にした対数* LOG F8:3
三角関数 ACS 逆余弦* ACS F8:18
ASN 逆正弦* ASN F8:20
ATN 逆正接 * ATN F8:22
COS 余弦* COS F8:14
SIN 正弦* SIN F8:12
TAN 正接* TAN F8:16
ビット単位 AND ビット単位のAND D9:3 AND D10:4 OR ビット単位のOR D10:4 OR D10:5 XOR ビット単位の排他的
OR
D9:5 XOR D10:4 NOT ビット単位の補数 NOT D9:3 変換 FRD BCDから整数への
変換
FRD N7:0
TOD 整数からBCDへの
変換
TOD N7:0 DEG ラジアンから度への
変換*
DEG F8:8 RAD 度からラジアンへの
変換*
RAD F8:10
* これらの命令は、エンハンストPLC-5プロセッサでのみ使用できます。
4.5.2 式の長さの定義
エンハンストPLC-5プロセッサの場合、複合式(スペースおよびかっこを含 めて、最大80文字まで)を指定できます。演算子によっては、プロセッサ は演算子の前または後に文字を挿入することによって、その式を簡単に解釈 できるようにします。表4.Dに、各演算子が1つの式の中で使用できる文字 数を示します。
CPT命令の場合、最大80文字までのExpression (式)を表示できます。入力 した式が80文字に近いときに命令が指定されたラングを受入れると、プロ セッサはそれを80文字以上に拡張します。その式を編集しようとすると、
最初の80文字のみが表示され、ラングはエラーラングとして表示されます。
ただし、プロセッサは完全な式を持っており、正しく実行されます。
この表示の問題は、プロセッサ・メモリ・ファイルをエクスポートしてPC5 テキストファイルとして編集してから、このテキストファイルをインポート することによって解決します。
重要:複合式の中の負のべき乗には、浮動小数点の値を指定できません。
かわりに、複合式に、相当する10進数または浮動小数点ファイル内 の値を使用すること、および複合式内のデータアドレスを使用する ことはできます。
表4.D 演算子に使用できる文字の長さ
4.5.3 演算の実行順序
式に指定された演算は、指定した順序ではなく、プロセッサによって指定さ れた順序で実行されます。演算の順序は、項を括弧でくくり、括弧内の演算 を他の演算よりも先に実行することによって変更することができます。
順序が対等の演算は、左から右に実行されます。使用するアドレスは、ビッ ト演算子に入れる必要があります。表4.Eに、演算の順序を示します。
演算 使用する演算子 使用可能な文字数
2進数の演算 +, –, *, | 3
OR, ** 4
AND, XOR 5
単項演算 – (符号変換) 2
LN * 3
FRD, TOD, DEG*, RAD*, SQR, NOT, LOG*,
SIN*, COS*, TAN*, ASN*, ACS*, ATN* 4
比較 =, <, > 3
<>, <=, >= 4
* これらの命令は、エンハンストPLC-5プロセッサでのみ使用できます。
演算命令(CPT, ACS, ADD, ASN, ATN, AVE, CLR, COS, DIV, LN, LOG, MUL, NEG, SIN, SRT, SQR, STD, SUB, TAN, XPY) 4-7
表4.E CPT式の演算順序
4.5.4 式の例
単一値:式SQR (N7:4)で、宛先がN7:20の場合は、N7:4の値の平方根を計 算して、その結果をN7:20に格納します。
複数値:エンハンストPLC-5プロセッサの場合は、関数を使用して式の中 の複数の値について演算や比較演算を実行することもできます。最大80文 字(スペースおよびかっこを含む)まで指定することができます。例えば、
以下の式を指定できます。
例:
複合式を使用している場合に浮動小数点の演算を行なうと、その式全体が浮 動小数点として評価されます。
例:
順序 演算子 説明
1 ** べき乗(XY) (エンハンストPLC-5プロセッサのみ)
2 – 符号変換
NOT ビット単位の補数
3 * 乗算
| 除算
4 + 加算
– 減算
5 AND ビット単位のAND 6 XOR ビット単位の排他的OR 7 OR ビット単位のOR
この命令は、入力ワード12, ビット10がTrue (1)にセットされた場合、N7:1の値に5を乗じ、次にN7:2の値 を7で割る。さらに前の演算式で求められた値を後の演算式で求められた値で割る。例えばN7:1が5で、N7:2 が9の場合、結果は25になる。(5×5 = 25, 9 / 7 = 1, 25 / 1 = 25) (5, 7が整数であるため、演算結果は一番近い 整数値に丸められる。)
COMPUTE
Destination N7:20
Expression
(N7:1 * 5) | (N7:2 | 7) I:012 CPT
] [ 10
この命令は、入力ワード12, ビット10がTrue (1)にセットされた場合、N7:1の値に5を乗じ、次にN7:2の値 を7で割る。さらに前の演算式で求められた値を後の演算式で求められた値で割る。例えばN7:1が5で、N7:2 が9の場合、結果は19になる。(5×5 = 25, 9 / 7 = 1.3, 25 / 1.3 = 19) (5.0, 7.0が小数点第1位までの値である ため、演算結果は小数点第1位までの値に丸められる。
COMPUTE
Destination N7:20
Expression
(N7:1 * 5.0) | (N7:2 | 7.0) I:012 CPT
] [ 10
4.5.5 宛先の指定
宛先には、直接または間接論理アドレスを指定してください。命令は、演算 結果を宛先アドレスに格納します。
重要:プロセッサは、ソースアドレスに指定されたデータタイプを、宛先 アドレスに指定されたデータタイプに自動的に変換します。プロ セッサがBCDを使用するのは表示か、またはPLC-2ファミリープロ セッサとの互換性を保つ場合のみです。BCDの変換プログラムを必 ず組む必要があります。
4.5.6 CPT 関数の使用
関数によって、CPT命令の式の複数の値を演算し、以下のようなタイプの 演算を実行します。
• 任意の数字の表示形式から別の表示形式への変換
• 数字の処理
• 三角関数の実行
命令は、ニーモニックによって関数を実行します。式を指定する場合、ニー モニックは演算する値のアドレスに対するプレフィックスとして指定する か、またはプログラム定数として指定した場合はその値に対するプレフィッ クスとして指定してください。
重要:浮動小数点は、32ビットの値です。整数は、16ビットの値です。命 令は、自動的に式で検出したデータタイプを、宛先アドレスで指定 したデータタイプに自動的に変換します。
!
注意:式または宛先アドレスが、32ビットから16ビットデー タに変換する必要がある場合に、その値が大きすぎると、S:0/1 のオーバーフロービットとマイナーフォルト(S10:14)が1に セットされます。その結果、エラーが発生し、危険な状態を引 起こす可能性があります。ラダープログラムでこのビットをモ ニタしてください。
演算命令(CPT, ACS, ADD, ASN, ATN, AVE, CLR, COS, DIV, LN, LOG, MUL, NEG, SIN, SRT, SQR, STD, SUB, TAN, XPY) 4-9
表4.Fに、使用可能なCPT関数を示します。
表4.F CPT関数
上記のCPT関数は式の中で、または独立型命令として使用できます。詳細 は、この章の個々の命令の説明を参照してください。
ニーモニック 名称 説明
RAD * 度からラジアンへ
の変換
度からラジアンに変換する。
DEG * ラジアンから度へ
の変換
ラジアンから度に変換する。
TOD 整数からBCDへ
の変換
整数からBCDに変換する(4桁のBCD数値をサ ポート)。
FRD BCDから整数への 変換
BCDから整数に変換する(4桁のBCD数値をサ ポート)。
SQR 開平演算 平方根を計算(精度:6桁の有効桁数)
LOG * – 10を底とする対数(精度:6桁の有効桁数)
LN * – 自然対数(精度:6桁の有効桁数)
SIN * 正弦(単位:ラジアン、精度:6桁の有効桁数)
COS * 余弦(単位:ラジアン、精度:6桁の有効桁数)
TAN * 正接(単位:ラジアン、精度:6桁の有効桁数)
ASN * 逆正弦(単位:ラジアン、精度:6桁の有効桁数)
ACS * 逆余弦(単位:ラジアン、精度:6桁の有効桁数)
ATN * 逆正接(単位:ラジアン、精度:6桁の有効桁数)
* これらの命令は、エンハンストPLC-5プロセッサでのみ使用できます。