128
1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32 のグ レードアップバージョンですが、現在対応してい る機種は 750-841 です。従来の 750-842 を本プロ グラミングツールを使用してプログラムを書き込 む場合はワゴジャパン㈱I/O グループまでご連絡 ください。 本ドキュメントの内容に関してのご質問は下記にご連絡ください。 136-0071 東京都江東区亀戸 1-5-7 日鐵 ND タワー4F ワゴジャパン株式会社 オートメーション TEL03-5627-2059 FAX03-5627-2055 Ver. 1.3

WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

1-1

WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル

WAGO-IO-PRO CAA は、WAGO-IO-PRO32 のグ レードアップバージョンですが、現在対応してい る機種は 750-841 です。従来の 750-842 を本プロ グラミングツールを使用してプログラムを書き込 む場合はワゴジャパン㈱I/O グループまでご連絡 ください。

本ドキュメントの内容に関してのご質問は下記にご連絡ください。

〒136-0071 東京都江東区亀戸 1-5-7 日鐵 ND タワー4F

ワゴジャパン株式会社 オートメーション TEL:03-5627-2059 FAX:03-5627-2055

Ver. 1.3

Page 2: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

1-2

目 次

1 WAGO-IO-PRO CAA と WAGO-IO-PRO 32 の相違点 ...................................................................... 1-7

1-1 仕様上の相違点 ................................................................................................................................... 1-7

1-2 操作上の相違点 ................................................................................................................................... 1-9

2 入出力データと変数の関係 ............................................................................................................... 2-13

2-1 ワゴ I/O システムの入出力データについて ....................................................................................... 2-13

2-2 IEC61131 規格における変数宣言 ....................................................................................................... 2-14

3 プログラムの作成の手順 .................................................................................................................... 3-1

3-1 プログラムの全体の構成 ..................................................................................................................... 3-1

3-2 変数の定義 .......................................................................................................................................... 3-1

3-3 変数定義とテーブル表示 ..................................................................................................................... 3-2

3-4 ステップの追加方法 ............................................................................................................................ 3-2

3-5 演算素子(Function)・ファンクションブロック(FB)の呼び出し方................................................ 3-3

3-6 LD(ラダー)における要素入力方法 ................................................................................................... 3-5

3-7 FBD(ファンクションブロックダイアグラム)における要素入力方法 ............................................... 3-5

3-8 LD および FBD におけるジャンプ命令とリターン命令........................................................................ 3-6

3-9 LD(ラダー)における FB の挿入方法 ................................................................................................ 3-8

3-10 FB の追加挿入 ................................................................................................................................... 3-9

3-11 FB の信号名指定入力 ......................................................................................................................... 3-9

4 変数の特殊な扱い ............................................................................................................................... 4-1

4-1 グローバル変数とは? ........................................................................................................................ 4-1

4-2 データ保持設定(リテイン) .............................................................................................................. 4-2

4-3 入出力変数 .......................................................................................................................................... 4-2

5 サブルーチンの作成............................................................................................................................ 5-1

サブルーチンの作り方 ............................................................................................................................... 5-1

Page 3: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

1-3

5-2 メインプログラムからサブルーチンを呼び出す ................................................................................. 5-1

5-3 Enable 実行......................................................................................................................................... 5-2

6 作成プログラムの転送(流し込み) ................................................................................................... 6-1

6-1 サービスポート経由の接続 ................................................................................................................. 6-1

6-2 プログラム動作のハードスイッチ....................................................................................................... 6-4

6-3 フィールドバス経由の接続(例:Ethernet の場合) .......................................................................... 6-5

6-4 モニタリング ...................................................................................................................................... 6-6

6-5 データの強制設定 ............................................................................................................................... 6-7

7 メモリバッファを自分で定義するには? ............................................................................................ 7-1

7-1 メモリーアレイの定義方法 ................................................................................................................. 7-1

7-2 メモリーアレイの使い方 ..................................................................................................................... 7-2

8 新しい関数とライブラリ .................................................................................................................... 8-1

8-1 新規ライブラリの追加・削除 .............................................................................................................. 8-1

8-2 ライブラリフォルダ ............................................................................................................................ 8-2

9 よく使われる演算素子(Function)・ファンクションブロック ......................................................... 9-1

9-1 演算素子(Function) ......................................................................................................................... 9-1

演算素子 .................................................................................................................................................... 9-2 ADD:加算 ...................................................................................................................... 9-2 MUL:乗算 ...................................................................................................................... 9-2 SUB:減算 ...................................................................................................................... 9-3 DIV:除算の商 ................................................................................................................ 9-3 MOD:除算の余り........................................................................................................... 9-4 INDEXOF:オブジェクトインデックスを求める ............................................................ 9-5 SIZEOF:変数や関数のバイトサイズを求める ............................................................... 9-5

論理演算素子 ............................................................................................................................................. 9-6 AND:論理積(かつ) .................................................................................................... 9-6 OR:論理和(または) ................................................................................................... 9-6 XOR:ビットデータの排他的論理和 ............................................................................... 9-7 NOT:ビットデータの反転 ............................................................................................. 9-8

Page 4: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

1-4

ビットシフト演算素子 ............................................................................................................................... 9-9 SHL:左ビットシフト ..................................................................................................... 9-9 SHR:右ビットシフト .................................................................................................. 9-10 ROL:ビット左回転 .......................................................................................................9-11 ROR:ビット右回転 ..................................................................................................... 9-12

データ選択素子 ....................................................................................................................................... 9-13 SEL:データの選択(二者択一) ................................................................................. 9-13 MAX:大きい方の値の選択 ........................................................................................... 9-13 MIN:小さい方の値の選択 ............................................................................................ 9-14

比較演算素子 ........................................................................................................................................... 9-16 GT:Grater Than(<) ................................................................................................ 9-16 LT:Less Than(>).................................................................................................... 9-16 LE:Less or Equal(≦) .............................................................................................. 9-17 GE:Grater or Equal(≧) .......................................................................................... 9-18 EQ:Equal(=) .......................................................................................................... 9-18 NE:Not Equal(<>) ................................................................................................ 9-19

9-2 プログラミングに必要なファンクション .......................................................................................... 9-20

ADR:アドレスポインタ ............................................................................................... 9-20 変換素子 .................................................................................................................................................. 9-21

BOOL_TO 変換 ............................................................................................................. 9-22 TO_BOOL 変換 ............................................................................................................. 9-23 整数型(INT)のタイプ変換 ......................................................................................... 9-24 REAL_TO 変換 .............................................................................................................. 9-25 時間変換 ........................................................................................................................ 9-25 文字列変換 .................................................................................................................... 9-26 TRUNC:(REAL_TO_INT) ......................................................................................... 9-26

計算機能 .................................................................................................................................................. 9-27 ABS:絶対値 ................................................................................................................. 9-27 SQRT:Square Root(平方根) ................................................................................... 9-27 LN:Natural Logarithm(自然対数)............................................................................. 9-28 LOG:Logerithm(常用対数) ...................................................................................... 9-28 EXP:Exponential(e の指数累乗) ............................................................................. 9-29 SIN:Sine(サイン) .................................................................................................... 9-29 COS:Cosine(コサイン)........................................................................................... 9-30 TAN:Tangent(タンジェント) ................................................................................... 9-30 ASIN:Arc Sine(アークサイン)................................................................................. 9-31 ACOS:Arc Cosine(アークコサイン) ....................................................................... 9-31 ATAN:Arc Tangent(アークタンジェント) ................................................................ 9-32

EXPT:Exponential Times(変数の指数累乗) ............................................................... 9-32

9-3 標準 FBD(ファンクションブロック) ............................................................................................. 9-33

ブール操作............................................................................................................................................... 9-33 SR:セット優先テーブル .............................................................................................. 9-33

Page 5: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

1-5

RS:リセット優先テーブル .......................................................................................... 9-34 カウンタ .................................................................................................................................................. 9-35

CTU:Count Up ............................................................................................................ 9-35 CTD:Count Down........................................................................................................ 9-36 CTUD:Count Up&Down .............................................................................................. 9-37

タイマ...................................................................................................................................................... 9-39 TON:On Delay Timer................................................................................................... 9-39 TOF:Off Delay Timer ................................................................................................... 9-40 TP:Timer Pulse ........................................................................................................... 9-41

トリガ...................................................................................................................................................... 9-42 R_TRIG:Trigger in Rising edge ................................................................................... 9-42 F_TRIG:Trigger in Falling edge................................................................................... 9-43

9-4 文字列操作 ........................................................................................................................................ 9-44

文字列操作機能 ....................................................................................................................................... 9-44 LEN:Length of Characters .......................................................................................... 9-44 LEFT:Characters from Left.......................................................................................... 9-45 RIGHT:Characters from Right ..................................................................................... 9-45 MID:Characters from Middle ....................................................................................... 9-46 CONCAT:Connect Characters .................................................................................... 9-47 INSERT:Insert Characters .......................................................................................... 9-47 DELETE:Delete Characters ........................................................................................ 9-48 REPLACE:Replace Characters................................................................................... 9-49 FIND:Find Characters ................................................................................................. 9-50

9-5 UTIL.LIB ライブラリ .......................................................................................................................... 9-51

BCD 変換 ................................................................................................................................................. 9-51 BCD_TO_INT:............................................................................................................. 9-51 INT_TO_BCD:............................................................................................................. 9-52

ビット・バイト操作 ................................................................................................................................ 9-52 EXTRACT:ビット値抽出 ............................................................................................. 9-52 PACK / UNPACK ........................................................................................................... 9-53 PUTBIT:ビット指定変更 ............................................................................................. 9-53

微積分機能............................................................................................................................................... 9-54 DERIVATIVE:微分機能 ................................................................................................ 9-54 INTEGRAL:積分機能 ................................................................................................... 9-54 STATISTICS_INT:標準統計 整数型入力.................................................................... 9-54 STATISTICS_REAL ....................................................................................................... 9-55 VARIANCE:分散値 ...................................................................................................... 9-55

コントローラー ....................................................................................................................................... 9-56 P:比例制御 .................................................................................................................. 9-56 PD:比例制御+微分制御 .............................................................................................. 9-56 PID:PID 制御 ............................................................................................................... 9-57

Page 6: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

1-6

信号発生(シグナルジェネレータ) ........................................................................................................ 9-57 BLINK:点滅 ................................................................................................................. 9-57 GEN:シグナルジジェネレータ .................................................................................... 9-58

ヒステリシス関数 .................................................................................................................................... 9-59 HYSTERESIS:ヒステリシス ....................................................................................... 9-59

10 プログラム作成例 ........................................................................................................................... 10-1

10-1 自己保持回路10-1

10-2 セット・リセット回路 .................................................................................................................... 10-2

10-3 クロック発生回路 ........................................................................................................................... 10-3

リテイン機能を使ったカウンタ値保持回路 ............................................................................................. 10-4

10-5 ST(ストラクチャード・テキスト)を使った温度データ変換の例 ................................................. 10-6

10-6 ST(ストラクチャード・テキスト)におけるその他の公式の解説 ............................................... 10-12

11 外部との通信(Ethernet) ............................................................................................................. 11-1

11-1 プログラム駆動中の Ethernet コントローラへのデータ受け渡し .....................................................11-1

11-2 BROADWIN 標準 Modbus/TCP ドライバを使用した場合 .................................................................11-3

11-3 発紘電機(株)社製タッチパネルとの Modbus/TCP による接続 .....................................................11-5

12 ピアーツーピア通信........................................................................................................................ 12-1

12-1 概要................................................................................................................................................. 12-1

12-2 ライブラリと使用関数名 ................................................................................................................. 12-2

12-3 ライブラリとサンプルプログラムのダウンロードとコピー ............................................................ 12-3

12-4 プログラム内容の解説(1 対 1 通信) ............................................................................................ 12-4

12-5 Polling 通信のプログラム内容の解説 ............................................................................................... 12-7

12-6 COS 通信(Change Of State)のプログラム解説 ........................................................................... 12-8

13 リアルタイムクロックライブラリ ..................................................................................................... 13

13-1 概要................................................................................................................................................. 13-1

Page 7: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

1-7

1 WAGO-IO-PRO CAA と WAGO-IO-PRO 32 の相違点

1-1 仕様上の相違点

WAGO-IO-PRO-CAA(Codesys) と WAGO-IO-PRO-32 基本的な操作は同じです。両者ともドイ ツ3S 社の Codesys の OEM バージョン、WAGO-IO-PRO CAA は 32 ビット CPU(現在のところ 750-841) に対応しています。一方 WAGO-IO-PRO32 は 16 ビット CPU 専用で従来の各種バスコントローラに対応 します。現在のところ WAGO-IO-PRO CAA(Codesys)は 32 ビット CPU 専用(750-841 専用)ですが、 2007年より従来の 16 ビット CPU にも対応予定です。 2006/07/20 現在

WAGO-IO-PRO CAA (現行 Version は V2.3.5.3)

750-841、750-870 および 750-842(Ver15 以降、現行バージョンは Ver16)

WAGO-IO-PRO 32(Ver2.2) 750-842、750-819(LON)、750-833(Profibus)、750-806(DeviceNet) 、 750-837(CANopen) 、

750-804(InterBus) 、 750-812 、 750-815(RS485Modbus) 、 750-814 、 750-816816(RS232C Modbus)

既に購入済の 750-842に WAGO-IO-PRO CAAを使用してプログラムを書き込むには 750-842本体 のファームウェアバージョンアップ(Ver15 以上)が必要になります。詳細はワゴジャパン㈱ I/O グル ープ(03-5627-2059)までお問い合わせください。 既に WAGO-IO-PRO CAA(759-332)を購入済の方で、最新バージョン(V2.3.5.3)をお持ち でない方は同じくワゴジャパン㈱ I/O グループ(03-5627-2059)までご連絡ください。

<インストール時の注意> 1) WAGO-IO-PRO32 あるいは CODESYS をパソコンに既にインストールしている場合、起動時に プログラムが常駐メモリにありますのでこれを一旦終了させてください。

EXIT で一旦終了させる

Page 8: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

1-8

2) WAGO-IO-PRO32(青色のアイコン)と Codesys は共存可能ですが、新しいバージョンの WAGO-IO-PRO CAA(Codesys)をインストールするときは必ず古いバージョンの Codesys を削除(アプリケーションの削除)してからインストールをしてください。

3)ソフトウェアのバージョンはトップメニューの Help → About で確認できます。

確認画面は パソコンの ESC キーで解除します。

Page 9: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

1-9

1-2 WAGO-IO-PRO32と比較した場合の操作上の相違点

●Codesys V2.3.3.6 以前のバージョンの場合 <対象ターゲットの選択> 新規でプログラムを作成する場合、最初に対象ターゲットを選択するメニューが自動的に出てきます のでここで 750-841 を選択してください。

尚、のこターゲット設定は「Resources」→「Target Setting」にて変更することが可能です。

<PLC コンフィグレーション> プログラムを作成後(あるいは読み込んだ後)でモジュールの設定を行ってください。

「Resources」→「PLC Configuration」を選択して、 Append Module および

Insert Module を使って接続されている数だけ Module[VAR]を設定します。これを設定

しないとプログラムが正常に動作しないことがあります。

Page 10: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

1-10

●Codesys V2.3.4.3 以降のバージョンの場合 V2.3.4.3 以降でのバージョンでは、PLC コンフィグレーションのメニューが若干異なります。 リソースメニューから PLC Configuration メニューをクリックすると以下のように Hardware configuration 画面が表示されます。次に K-Bus[FIX] を右クリックすることによって ポップアップメニューを出して Append Subelemet をクリックするとモジュールを選択する画面 が出てきます。 バスカプラに近い順番に接続されているモジュールを選択して追加していってください。該当するモジ ュールが見当たらない場合は、同じ種類の同じビット幅のモジュールを選択してください。

Page 11: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

1-11

各々のモジュールの項を開くと、各チャンネルの入出力アドレスが表示されます。尚 V2.3.3.6 以前で 作成したプログラムを V2.3.4.3 以降のプログラムで読み込んだ場合でも、PLC configuration の選択画 面は作成したバージョンにに基づいた画面になります。動作上は問題ありませんので、V2.3.3.6 以前で 作成したプログラムについては前述のとおりモジュールの数を合わせてください。 注意: サイト http://www.wago.co.jp/io/ からダウンロードされるサンプルプログラムについては V2.3.3.6 以前のものと、V2.3.4.3 以降のものが混在していますが、いずれかの方法で PLC コンフィグレーションを実行すれば動作します。

Page 12: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

1-12

●ライブラリの選択 WAGO-IO-PRO CAA インストール時にできるライブラリフォルダは以下のとおり2つ生成されま

す。デフォルトの設定では A フォルダが参照されるようになっておりますが、Util.ib や IECstc.lib は

B フォルダに入っています。また、ワゴ社では便利なライブラリを開発しておりますので、これら

については逐次ウェブサイトにて公開していく予定です。 A C:¥Program Files¥WAGO Software¥CoDeSys V2.3¥Targets¥WAGO¥Libraries¥32_Bit B C:¥Program Files¥WAGO Software¥CoDeSys V2.3¥Library

C 自分で追加が必要 standard. lib タイマ(TON, TOF など)、トリガ(F_TRIG など)、文字列関数(LEFT, MID,

LEN など)、カウンタ(CTD など)といったコンポーネントがあります。 A

IECsfc.lib IEC 標準に準拠する SFC 関数が入っています。 B Util.lib データ操作(HYSTERESIS, DERIVATIVE, INTEGRAL など)、変換(INT_TO_BCD

など)、制御(PD, PID)を行うコンポーネントが入っています。 B

Ethernet. lib Ethernet 通信を行うためのコンポーネントが入っています。 A SysLibFile.lib 対象コンピュータでファイルシステムをサポートする関数が入っています。 A SysLibVisu.lib 可視化オブジェクトの構造を定義します。 A SysLibCallback.lib ランタイムイベントに対してユーザ定義のコールバック関数を起動するための

関数が入っています。 A

SysRTC.lib CPU カードに備わるリアルタイムクロックの設定と読み取り、および時刻サーバへの問い合わせを行う関数が入っています。

A

mod_com.lib プロセスイメージのアクセス操作を行う関数が入っています。 A SerComm.lib シリアルインタフェースモジュールおよびコントローラのコンフィグレーション用

インタフェースにアクセスするためのファンクションブロックが入っています。 A

EML.lib コントローラを EtherNet/IP マスタとして動作させ、他のノードとの間に UCMM接続を確立するための関数が入っています。

A

System.lib ランタイムシステム診断に関する関数が入っています。 A ModbusEthernet_03.lib 複数の MODBUS スレーブに対してデータ交換を確立するための

ファンクションブロックが入っています。日本語ウィンドウズでシステム設定によってプログラムコンパイルがうまくいかない場合は ModbusEthernet_03.libの代わりにEthernet_OpenClose.libおよび ModbusEthernet_03_JP.libを使用してください。

C

Page 13: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

2-13

2 入出力データと変数の関係

2-1 ワゴ I/O システムの入出力データについて

各々のモジュールは固有のビット幅(内部ビット幅)を持っています。アナログモジュールであれ

ば 1 チャンネルあたり 16 ビット、デジタルモジュールであれば内蔵点数に応じたビット幅を持って

いますが、モジュールを組み立てた場合、組み立てた順序(コンフィグレーション)にしたがって

入出力のビットが割り当てられてビット構成が決定されます。

ビット割り当てのルール 1)入力と出力は別々に割り当てを行います。 2)バスカップラーに近いモジュールから順番にビットが割り当てられます。 3)デジタル入出力モジュールとアナログモジュール等が混在している場合、アナログモジュールが

先に、その後デジタルモジュールが割り当てられます。 4)カウンターモジュール、RS232C モジュールは入力と出力両方にビットが割り当てられます。デ

ジタルモジュールと混在する場合、割り当て順序は先になります。

Page 14: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

2-14

2-2 IEC61131 規格における変数宣言

IEC61131 の場合、デフォルトで使える入出力変数は「%~」で始まります。入力(I)、出力(Q)

内部接点(M)の3種類があり、それぞれ最大 512 ワード(8192 ビット)を準備しています。これ

以外にユーザが定義して使える変数(メモリ)がありますが、これについては7章で紹介します。

各種変数と設定範囲 プログラミングツール内でのアドレスの

割当方(IEC61131 規格における変数)

ワゴ I/O モジュールへの 割り当て例

%IW0 ~ %IW1 AI 2ch(32 ビット) %IW2 ~ %IW3 AI 2ch(32 ビット) %IX4.0 ~ %IX4.3 DI 4ch( 4 ビット) %IX4.4 ~ %IX4.7 DI 4ch( 4 ビット) %IX4.8 ~ %IX4.11 DI 4ch( 4 ビット) %IX4.12 ~ %IX4.15 DI 4ch( 4 ビット)

ワード゙単位で指定 %IW0~%IW511

∥ ビット単位で指定 %IX0.0~%IX511.15 ↓ ↓ ワード番地 ビット番地

∥ バイト単位で指定 %IB0~%IB1023

%QW0 ~ %QW1 AO 2ch(32 ビット) %QW2 ~ %QW3 AO 2ch(32 ビット) %QX4.0 ~ %QX4.3 DO 4ch( 4 ビット) %QX4.4 ~ %QX4.7 DO 4ch( 4 ビット) %QX4.8 ~ %QX4.11 DO 4ch( 4 ビット)

ワード゙単位で指定 %QW0~%QW511

∥ ビット単位で指定 %QX0.0~%QX511.15 ↓ ↓ ワード番地 ビット番地

∥ バイト単位で指定 %QB0~%QB1023

ワード゙単位で指定 %MW0~%MW511

∥ ビット単位で指定 %MX0.0~%MX511.15 ↓ ↓ ワード番地 ビット番地

∥ バイト単位で指定 %QB0~%QB1023

左に同じ

内部で演算するための変数

(メモリ)なので入出力モ

ジュールとは直接関係な

し。 自己保持メモリとして最

大%MW4095 まで使用で

きます。 (※)

※自己定義した変数にリテイン機能を使用する場合は、内部接点メモリ(%M 領域)は使用しないでください。

両者のデータが交錯する可能性があります。内部接点は%MW0~%MW4095 まで使用できますので、これを

すべてリテインメモリとして使用することも可能です。

Page 15: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

3-1

3 プログラムの作成の手順

3-1 プログラムの全体の構成

IEC61131 ではプログラム構成要素(Program Organization Unit)を組み合わせてプログラム全体が構

成されるようになっています。具体的にはメインプログラムの下に各プログラムやファンクションブ

ロック(FB)が配置されます。自分で作成したサブプログラムやメインプログラムについては

PLC_PRG という名前で登録します。

3-2 変数の定義

プログラムチャート領域に新しい変数を書き込むと自動的に変数定義用のウィンドウが現れます。こ

こで変数の型を選択後、「OK」を押すとその名前の変数が定義されます。トップメニューから[Edit]→[Auto Declare]でもこのウィンドウを出すことができます。

Page 16: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

3-2

3-3 変数定義とテーブル表示

プログラムの表示部分は変数宣言部(上半分)とプログラム部(下半分)に分かれますが、変数宣言

の部分は言語記述式がデフォルトになっていますが、右クリックをして Declarations as tables を選ぶ

と、表形式の表示になります。

3-4 ステップの追加方法

ラダー(LD)やファンクションブロック(FBD)でプログラムを作成時、プログラムステップ追加は、

トップメニュー[Insert]をプルダウンして、[Network(after)][Network(before)]で行います。

言語記述式

表形式

Page 17: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

3-3

3-5 演算素子(Function)・ファンクションブロック(FB)の呼び出し方

演算素子は[Insert]→[Box]を選ぶと論理演算の「AND」が表示されますので、ここを書き換える

ことによって任意の演算素子が選択できます。標準で装備している演算素子あるいは FB の場合、こ

こが青色に変わりますので、タイプされた関数が存在するかどうか確認できます。

標準で装備されているFunctionあるいはユーザが作成したライブラリから探して呼び出すためには以

下のようにトップメニューの[Edit]→[Input Assistance][F2]key を押して Help Manager を表示

させることによって選択します。

Page 18: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

3-4

予め準備されている主な Function(演算素子)には以下の様なものがあります。

<論理演算素子> <数値演算素子> AND かつ ADD 加算 OR または MUL 乗算 XOR ビットデータ排他的論理和 SUB 減算 NOT ビットデータ反転 DIV 除算後の商

MOD 除算後の余り SIZEOF 変数や関数のバイトサイズを求める

<ビットシフト演算素子> <データ選択素子> SHL 左へ指定数だけビットシフト SEL 真(TRUE)偽(FALSE)、2 つの値から 1 つを選択

SHR 右へ指定数だけビットシフト MAX 2 つの値の大きい方を選択して出力 ROL 左へ指定数だけビット回転 MIN 2 つの値の小さい方を選択して出力 ROR 右へ指定数だけビット回転

<比較演算素子> <変換素子> GT 比較される値が大のとき真(TRUE) BOOL_TO_INT BOOL 値から整数値へ LT 比較される値が小のとき真(TRUE) BOOL_TO_STRING BOOL 値をそのまま文字列へ LE 比較される値が以下のとき真(TRUE) BYTE_TO_BOOL BYTE 値が 1 以上のとき TRUEGE 比較される値が以上のとき真(TRUE) INT_TO_BOOL 0 以外の整数値のとき TRUE EQ 比較して等しいとき真(TRUE) STRING_TO_BOOL ‘TRUE’の文字列入力で TRUE NE 比較して等しくないとき真(TRUE) REAL_TO_INT 実数値を四捨五入して整数値へ

<数値演算素子> ABS 絶対値を求める COS ラジアン値を入力してコサイン値を求める SQRT 平方根を求める TAN ラジアン値を入力しタンジェント値を求める LN 自然対数値を求める(底は e) ASIN アークコサイン値(ラジアン)を求める LOG 常用対数値を求める(底は 10) ACOS アークコサイン値(ラジアン)を求める EXP e のべき乗を求める ATAN アークタンジェント値(ラジアン)を求める

SIN ラジアン値を入力してサイン値を

求める EXPT 任意の入力値のべき乗を求める

<文字列演算素子>

LEN 文字列の文字数を INT で出力。 CONCAT 2つの文字列を接続して 1つの文字列

にする。

LEFT 入力された文字列の先頭から指定さ

れた文字数(INT)だけ出力。 RIGHT 入力された文字列の最後から指定さ

れた文字数(INT)だけ出力。

MID 入力された文字列の先頭(先頭文字が

1)から数えて、指定された位置と長

さの文字列を抜き出す。 INSERT

入力された文字列の先頭(先頭文字が

1)から指定された位置の後に文字列

を挿入。

DELETE 入力された文字列の先頭(先頭文字が

1)から数えて、指定された位置と長さ

の文字列を削除する。 REPLACE

入力された文字列の先頭(先頭文字が

1)から数えて、指定された位置と長

さの文字列を削除して、その位置に指

定された文字列を挿入。

FIND

指定された文字列がある位置を文字

列の先頭(先頭文字が 1)から数えて

幾つのところにあるか。同じ文字列が

複数あるときは一番先頭の位置。

Page 19: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

3-5

3-6 LD(ラダー)における要素入力方法

LD でプログラムを作成するときはメニュー右上に要素入力のアイコンが表示されます。プログラムチ

ャート上でカーソル指定(選択された所が点線で表示される)した後、アイコンボタン押します。

3-7 FBD(ファンクションブロックダイアグラム)における要素入力方法

FB でプログラムを作成するときはメニュー右上に要素入力のためのアイコンが表示されます。プログ

ラムチャート上でカーソル指定(選択された所が点線で表示される)した後、アイコンボタンを押し

ます。

右クリックで選択メニューを

表示させた場合。

トップメニューの

記号で選ぶ場合

Page 20: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

3-6

3-8 LD および FBD におけるジャンプ命令とリターン命令

LD あるいは FB でプログラムを作成するときにループ処理等の作成に便利なのがジャンプ命令とリタ

ーン命令です。 <1>リターン命令

FBD(ファンクションブロックダイアグラム)あるいは LD(ラダー)ではステップ順に上から処理を

実行していきますが、リターン素子の前の変数に「TRUE」が入力されている限りそのステップをプ

ログラムの最終ステップと判断します。すなわちそれ以降のステップは実行しません。

上の例では「Ring_Check_ok」という BooL 値変数が反転されてリターン素子に入力されていますが、

「Ring_Check_ok」が「TRUE」にならない限りステップ 0012 以降のステップは実行されず、0012で折り返されます。

Ring_check_ok が「FALSE」のときは、

常に Return に「TRUE」が入力されてい

る(反転入力されている)ので 0012 ス

テップまでしか実行されない。

Ring_check_ok が「TRUE」になると

Return に「FALSE」が入力されるのでス

テップ 0013 以降も実行される。

Page 21: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

3-7

<2>ジャンプ命令

同じくステップ上でジャンプ命令を設定することができます。ジャンプ命令に入力されている値が

「TRUE」のとき、指定されたステップへジャンプを実行します。

■ LD におけるジャンプ命令の例

k が 255 以下である場合は LE の出力が TRUE になるので、

毎回ステップ 0002 までジャンプします。ステップ 0003 では

毎回インクリメントしているので k の値は一つずつインクリ

メントされ、k=256 になった時点で LE の出力は FALSE に

なり、ループ処理を抜けます。

<ポイント>

ここではステップ 0002 に「LOOP」という名称を設定して

います。ステップが追加されてこの部分のステップ番号が変

わっても「LOOP」の名称で指定しておけば、自動的にここ

までジャンプします。

初期値として k=0 を設定してここからスタートします。

initial_bit が True の場合に

限ってステップ 0002 を飛

び越えてステップ 0003 ま

でジャンプします。

Page 22: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

3-8

3-9 LD(ラダー)における FB の挿入方法

① ライン上に直接 FB を挿入する ラダープログラムの場合、左右の母線を結ぶ横線は BOOL 値を示します。ここに BOOL 値の入力を持

つような FB を挿入することができます。 ② LD における Enable 入力

FB の実行を BOOL 値で制御したいときには Enable 入力を行います。[Insert]のプルダウンメニュー

から[Box with EN]を選んで選択して関数 BOX を表示した後、挿入したい FB の名前をアルファベ

ットの大文字でタイプします。

initial_bit が True の場合に

限ってステップ 0002 を飛

び越えてステップ 0003 ま

でジャンプします。

接点入力入力 ON/OFF をカウント

する回路

Page 23: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

3-9

3-10 FB の追加挿入

複数のファンクションブロックあるいはファンクションを接続していくときは後ろから入力側に追加

していきます。入力端子の付け根をカーソルで指定して右クリックをした後、「Box」を挿入していき

ます。

3-11 FB の信号名指定入力

ファンクションブロックの出力を別のファンクションブロックの入力端子に接続するときはファンク

ションブロック出力の「定義名.信号名」で入力します。

Page 24: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

4-1

4 変数の特殊な扱い

4-1 グローバル変数とは?

変数を宣言するための定義ウィンドウにおいては Class の項目がデフォルトで「VAR」(そのルーチン

中でのみ使える変数)になっています。例えばある変数をどのルーチンの中でも使えるようにするに

は VAR_GROBAL(グローバル変数)として定義します。

グローバル変数をモニタするには表示画面左下のResourcesをクリックしてResourcesメニュー画面

の Grobal_Variables を選択することによって確認・モニタすることができます。

グローバル変数の選択

グローバル変数の表示

Page 25: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

4-2

4-2 データ保持設定(リテイン)

電源が切れてもデータを保持する不揮発性メモリは、8k バイト分を充てることができます。定義した

変数を宣言する定義ウィンドウ右端の RETAIN のチェックボックスを ON にして登録してください。 尚、電源投入後はプログラムが起動され変数の値が変化してしまいますので、電源投入時の最初の 1周期内で RETAIN の数値を必要な部分に代入(アサイン)するプログラムを作成する必要があります。

注)自己定義した変数にリテイン機能を使用する場合は、内部接点メモリ(%M 領域)は使用しない

でください。両者のデータが交錯する可能性があります。内部接点は%MW0~%MW4095 まで使用で

きますので、これをすべてリテインメモリとして使用することも可能です。

4-3 入出力変数

変数定義テーブルでは以下の 4 つの定義が可能です。 VAR_INPUT: そのサブプログラム内に外からデータを受け取

る場合に定義する変数。 VAR_OUTPUT: そのルーチン内で得られたデータを外へ渡す場

合に定義する変数。 VAR_IN_OUT: 外からデータを受け取る変数ですが、そのサブルーチン内にあるデータをこの変数に割当て

ておくと、外からデータを受け取る以外の時は出力変数として扱うことができます。 VAR_GROVAL: プログラム内のどのサブルーチン内でも使用できる共用変数。

Page 26: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

5-1

5 サブルーチンの作成

5-1 サブルーチンの作り方

5-2 メインプログラムからサブルーチンを呼び出す

① トップメニューから[Insert]→[Function_Block]を選びます。 ② Help Manager が出てくるので、[User defined Function Block]

を選ぶと既に作成したルーチンが表示される。

③ ファンクションブロックとして選択した場合は、メインプログラムの中でこれを変数定義する。

目的の言語を選びます

左欄の POU の名前がある所へカーソルを移動して右クリックをします。

そして「Add_Object」を選択します。

①Program:データ処理がこのルーチン内で完結し、入出力変数も無い場合。 ②Function Block:単なる計算ルーチンではなく、プログラム中にメモリや特殊な変数あるいはタイマ

ーなどの FB を使っていて、しかも入出力変数がある場合。 ③Function:プログラム中に Function(演算素子)しか使っておらず、入出力変数がある場合。

Page 27: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

5-2

5-3 Enable 実行

① トップメニューの[Insert]をプルダウンして[Box with EN]を選択します。 ② AND の関数ブロックが表示されるので、挿入したい FB あるいは PRG の名前を直接タイプする。

Page 28: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

6-1

6 作成プログラムの転送(流し込み) 作成したプログラムをフィールドバスコントローラ(バスカプラ)に書込むには、専用のサービスポートある

いはバス(Ethernet 経由)のどちらかを使います。サービスポートは専用ケーブル(750-920)を挿入するため

の開閉扉になっています。

6-1 サービスポート経由の接続

WAGO-I/O-PRO CAA とコントローラ間の通信方法はパラメータ設定にて変更できます。750-920 専用ケー

ブルにてシリアルデータ転送を行うには以下のような手順で行います。

① 「Online」メニューから「Communication Parameters」 を選択します。初期状態ではダイアロ

グ中にデータはありません。

サービスポートとパソコンのシリアル通信ポート

を専用ケーブルで接続する。

Page 29: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

6-2

② 通信の新チャンネルを設定するには、まず「New」ボタンを押します。そうすると、

「Communication Parameters:New Channels」ダイアログが現れます。

③ 「Device」リストから「Serial(RS232)」を選択し、「Name」の欄に任意のドライバ名(自分で

決めください)を入れ「OK」をクリックし、ダイアログを終了します。ここで「Communication Parameters」ダイアログが再度表示されます。

④ このとき RS232 シリアル通信の条件がフィールド内に表示されます。各値は MODBUS コントロ

ーラのデフォルト設定値に対応しています。従って、ここでは変更の必要はありません。

⑤ 「OK」をクリックすると、この時点で作成したプログラムファイルの一つの設定値として RS232Cシリアル通信での接続条件として登録されます。以降このプログラムファイルを開くと、ここで選択

された通信方法の情報も自動的にロードされます。 ⑥ プログラムをダウンロードして良いかどうかを聞いてきますので「はい(Y)」をクリックすると

ダウンロードを開始します。

Page 30: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

6-3

⑦プログラムがロードされたら「Online」メニューから 「Run」を選択します。するとプログラム処理が開始します。

⑧ 「Stop」は Running 中のプログラムを一時停止します。

⑨ 「Reset」ボタンは Running 中のプログラムをストップ して、すべてのメモリとバッファを初期状態にし「Stop」 に戻します。

⑩ 「Create boot project」をクリックすると、ダウンロード したプログラムをフラッシュ領域に書き込んでプログラムを 固定します。

Page 31: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

6-4

6-2 プログラム動作のハードスイッチ

750-841 コントローラの上面下端に下図のようなプログラムモード操作用のスイッチが格納されてい

る窓があります。

このスイッチの各位置の意味は以下のとおりです。

スイッチの位置 機能 中央から上側に移動 プログラムの実行をスタートする 上側から中央に移動 プログラムの実行を停止する 下側にセット ファームウェアのローディング用、ユーザ不使用

スイッチの押し下げ

ハードウェアリセット 全出力とフラッグがリセットされる。変数は 0 または FALSEまたは初期値になる。 ハードウェアリセットは Run、Stop のいずれの位置でも実行

することができる。 <プログラムを 750-841 内のフラッシュメモリに書き込むとき>

1. 上記のモードスイッチを中央または上側にセットします。Online-Login を選択するとプログラムが

750-841 にローディングされます(ロード要求に対し OK を押したとき)。 2. Online メニュー中の Create boot project を選択するプログラムがフラッシュメモリに書き込まれま

す。この後 Logout を実行します。 3. スイッチが中央にあるとき -上側に移動するとプログラムはフラッシュメモリから RAM に転送さ

れます(Run 状態になる)。このとき 750-841 は単独で動作します。 4. スイッチが上側にあるとき -ハードウェアリセットを実行するとプログラムはフラッシュメモリか

ら RAM に転送されます。

出荷された直後でプログラムが書き込まれていない状態ではコントローラはバスカプラ(750-342 あるい

は 750-341)と同じ機能で動作します。

Page 32: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

6-5

6-3 フィールドバス経由の接続(例:Ethernet の場合)

① 「New」ボタンを押すと「Communication Parameters: New Channels」ダイアログが現れます。 ② 「Device」リストから「Ethernet_TCP_IP」を選択します。

③ 「Name」の欄に任意のドライバ名(自分で決めてください)を入れ「OK」をクリックします。

Channels ボックスに新しいドライバ名が表示されます。

④ IP address の行の Value にターゲットの IP アドレスをタイプします。「OK」ボタンを押し、ダイ

アログを終了します。

⑤ 「OK」をクリックすると、この時点で作成したプログラムファイルの一つの設定値として Ethernet通信での接続条件として登録されます。以降このプログラムファイルを開くと、ここで選択された通

信方法の情報も自動的にロードされます。

※これ以降は前項 6-1(サービスポート経由の接続)の⑦以降と同じです。

Page 33: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

6-6

6-4 モニタリング

WAGO-IO-PRO とコントローラを接続したまま RUN の状態にしますと、以下のように動作状況をモ

ニタすることができます。定義テーブルの部分には定義した変数や関数内のパラメータがリアルタイ

ムで表示されます。また、プログラムステップ内に書かれたプログラム部分には、変数に入っている

値がリアルタイムで表示されます。

定義された関数内 ET 力名やパラメ

ータの値は、

.<入出力またはパラメータ名>

で表示されます。

BOOL 値は TRUE(青色)と FALSE

(黒)で表示されます。

定義した入出力変数は現在の値が

変数名=○○○○.○○

のように表示されます。

Page 34: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

6-7

6-5 データの強制設定

プログラム駆動中に強制的に変数のデータを変更したい場合は、以下のような手順で行います。

トップメニューの Online をクリックしてプル

ダウンメニューを出し Force_Value にすると、

水色に表示されていた値がすべての個所で強

制入力され、その部分が赤色で表示される。

強制入力を解除するときは、Release_Force を

クリックする。

③ 強制設定

④ 強制設定されている値の表

強制入力されている部分が赤色で表示される。

① BOOL 値の場合

② 数値の場合

変更したい BOOL 値表示をダブルクリック

するとその横に<:=TRUE>のように変更

する値が青色で表示される。BOOL 値の場合

は、ダブルクリックするごとに TRUE と

FALSE が交互に変わる。

BOOL 値以外の変数については、ダブルクリッ

クすると変更するためのダイアログが表示さ

れるので、New_Vasule の部分に変更したい数

値を入力して OK を押す。すると変数名の横に

変更したい数値が青色で表示される。

Page 35: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

7-1

7 メモリバッファを自分で定義するには?

7-1 メモリーアレイの定義方法

① 変数を定義するウィンドウが表示された時点で ARRAY を選ぶ。

② 次に Array boundaries というウィンドウが表示 されるのでスタートと終了の数値(整数で)を入力 する。 ③ 次に Array の変数型(Type)を入力する。

このボタンを押すと変数型を選択するウィンドウが表示されます。

Page 36: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

7-2

7-2 メモリーアレイの使い方

メモリーアレイは通常の変数として扱えますが、一度に多くのデータを扱うときに便利です。 メモリーアレイは同じ変数型の一連のデータを大量に扱う場合に使用します。 例えば毎秒ごとに入力される WORD 型のデータがある場合、下記のように n 個のワードデータ配列

として扱うことができます。各の変数を指定するには[ ]内の数値(整数)を変更するだけで簡単

に実行できます。 Buffer[1] Buffer[2] Buffer[3] ・ ・ ・ Buffer[n]

特にループ処理を行う場合には、Buffer[k]として k を整数型で定義して、k=1 から k=n までを繰

り返し代入するなどのプログラムが簡単に行えます。 <例> 右の例では WORD 型のメモリーアレイ Buffer[0] ~ Buffer[255]のデータを Data[255]~ Data [0]まで各々代入するプログラムです。 整数型で k という変数を定義してこれを[ ]内 で数式として扱って k=255 に達するまでループを 繰り返して各々のワードを代入する例です。

初期値の設定

代入動作

一動作毎に k をインクリメントする。

kが 255以下ならステップらステップ 0002

(LOOP)へジャンプ。

Page 37: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

8-1

8 新しい関数とライブラリ

8-1 新規ライブラリの追加・削除

標準で使える関数は、起動時に自動的に読込まれるスタンダードライブラリ(Standard.lib)のものを

使っています。これ以外にも多くのライブラリを使うことができます。例えば Ethernet で独自のパケ

ットを作ったりする場合には Ethernet.lib が必要になります。必要なライブラリは以下の手順で追加し

ます。 ① トップメニューの[Window]をクリックし、 プルダウンして Library Manager モードにする。 ② 次にトップメニューの[Insert]をプルダウンすると[Additional Library](追加ライブラリ)を挿入する

モードになります。自動的にライブラリフォルダが開きますので目的のライブラリファイルを選択します。 ③ ライブラリマネージャ上で新しいライブラリ が追加されたことが表示されます。 ④ ライブラリマネージャウィンドウを閉じて、 Library Manager モードを終了します。

※注)プログラムを作成する過程でライブラリを追加していくと、そのプログラムファイルに同期し

てライブラリ情報が記録されますので、次にそのプログラムファイルを開いたときには、過去に追加

したライブラリ情報はすべて自動的に呼び出されます。

しかしながら必要のないライブラリを多く追加していくと、プログラムの容量が自動的に大きくなっ

てしまいますのでライブラリの追加は必要最小限に留めておいてください。

Page 38: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

8-2

8-2 ライブラリフォルダ

WAGO-IO-PRO CAAインストール時にできるライブラリフォルダは以下のとおり2つ生成されます。 デフォルトの設定では A フォルダが参照されるようになっておりますが、Util.ib や IECstc.lib は B フ

ォルダに入っています。また、ワゴ社では便利なライブラリを開発しておりますので、これらについ

ては逐次ウェブサイトにて公開していく予定です。 A C:¥Program Files¥WAGO Software¥CoDeSys V2.3¥Targets¥WAGO¥Libraries¥32_Bit B C:¥Program Files¥WAGO Software¥CoDeSys V2.3¥Library

C 自分で追加が必要 standard. lib タイマ(TON, TOF など)、トリガ(F_TRIG など)、文字列関数(LEFT, MID,

LEN など)、カウンタ(CTD など)といったコンポーネントがあります。 A

IECsfc.lib IEC 標準に準拠する SFC 関数が入っています。 B Util.lib データ操作(HYSTERESIS, DERIVATIVE, INTEGRAL など)、変換

(INT_TO_BCD など)、制御(PD, PID)を行うコンポーネントが入っています。

B

Ethernet. lib Ethernet 通信を行うためのコンポーネントが入っています。 A SysLibFile.lib 対象コンピュータでファイルシステムをサポートする関数が入っています。 A SysLibVisu.lib 可視化オブジェクトの構造を定義します。 A SysLibCallback.lib ランタイムイベントに対してユーザ定義のコールバック関数を起動するた

めの関数が入っています。 A

SysRTC.lib CPU カードに備わるリアルタイムクロックの設定と読み取り、および時刻サーバへの問い合わせを行う関数が入っています。

A

mod_com.lib プロセスイメージのアクセス操作を行う関数が入っています。 A SerComm.lib シリアルインタフェースモジュールおよびコントローラのコンフィグレーショ

ン用インタフェースにアクセスするためのファンクションブロックが入っています。

A

EML.lib コントローラを EtherNet/IP マスタとして動作させ、他のノードとの間にUCMM 接続を確立するための関数が入っています。

A

System.lib ランタイムシステム診断に関する関数が入っています。 A ModbusEthernet_03.lib 複数の MODBUS スレーブに対してデータ交換を確立するための

ファンクションブロックが入っています。日本語ウィンドウズでシステム設定によってプログラムコンパイルがうまくいかない場合はModbusEthernet_03.lib の代わりに Ethernet_OpenClose.lib および ModbusEthernet_03_JP.lib を使用してください。

C

Page 39: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-1

9 よく使われる演算素子(Function)・ファンクションブロック この章ではプログラムで利用する標準ライブラリを解説しています。EC 標準命令 WAGO-I/O-PRO 32 では全

ての IEC 標準命令(標準演算子)をサポートしています。

9-1 演算素子(Function)

分類 命令 機能 ADD 加算 MUL 乗算 SUB 減算 DIV 除算後の商 MOD 除算後の余り INDEXOF オブジェクトインデックス取得

数値演算素子

SIZEOF 変数や関数のバイトサイズを求める AND 論理積(かつ) OR 論理和(または) XOR ビットデータ排他的論理和

論理演算素子

NOT ビットデータ反転 SHL 左ビットシフト SHR 右ビットシフト ROL 左回転 ビットシフト演算素子

ROR 右回転 SEL 二者択一 MAX 二者の大きい方の値を選択 データ選択素子 MIN 二者の小さい方の値を選択 GT IN1 > IN2 LT IN1 < IN2 LE IN1 <= IN2 GE IN1 >= IN2 EQ IN1 = IN2

比較演算素子

NE IN1 <> IN2

Page 40: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-2

演算素子 WAGO-I/O-PRO 32 は、全ての IEC 演算子をサポートしています。これらの演算素子はすべ

てのプロジェクトにおいて使用する事が出来ます。

ADD:加算 (FB での例) 機能 加算の結果を Var1 に出力します。 引数 変数の型(BYTE,WORD,DWORD,SINT,USINT,INT,UINT,DINT,UDINT)又は実数型(REAL) ここで扱われているすべての数値は同じ変数の型である必要があります。また最後の結果、Var1 は 7 と 2 の型

と同等かそれ以上の型である必要があります。 (IL での例)

LD 7 ADD 2, 4, 7 ST Var1 (ST での例) Var1:= 7+2+4+7;(*= 20*)

MUL:乗算 (FB での例) 機能 乗算の結果を乗算 Var1 に出力します。 引数 変数の型(BYTE,WORD,DWORD,SINT,USINT,INT,UINT,DINT,UDINT)又は実数型(REAL) ここで扱われているすべての数値は同じ変数の型である必要があります。また最後の結果、Var1 は 7 と 2 の型

と同等かそれ以上の型である必要があります。

2 2

Var17

2 ADD ADDADD

Var17

4 7 2

MUL MULMUL

Page 41: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-3

(IL での例)

LD 7 MUL 2, 4, 7 ST Var1 (ST での例) Var1:= 7*2*4*7;(*= 392*)

SUB:減算 (FB での例)

機能 減算の結果を Var1 に出力します 引数 変数の型(BYTE,WORD,DWORD,SINT,USINT,INT,UINT,DINT,UDINT)又は実数型(REAL) ここで扱われているすべての数値は同じ変数の型である必要があります。また最後の結果、Var1 は 7 と 2 の型

と同等かそれ以上の型である必要があります。 (IL での例)

LD 7 SUB 2 ST Var1 (ST での例)

Var1:= 7-2;(*= 5*)

DIV:除算の商 (FB での例) 機能 除算の商を Var1 に出力します。

Var1

2

8DIV

Var1 7

2 MUL

Page 42: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-4

引数 変数の型(BYTE,WORD,DWORD,SINT,USINT,INT,UINT,DINT,UDINT)又は実数型(REAL) ここで扱われているすべての数値は同じ変数の型である必要があります。また最後の結果、Var1 は 8 と 2 の型

と同等かそれ以上の型である必要があります。 (IL での例)

LD 8 DIV 2 ST Var1 (ST での例) Var1:= 8 / 2;(*= 4*)

MOD:除算の余り (FB での例)

機能 除算の余りを Var1 に出力します 引数 変数の型(BYTE,WORD,DWORD,SINT,USINT,INT,UINT,DINT,UDINT)又は実数型(REAL) ここで扱われているすべての数値は同じ変数の型である必要があります。また最後の結果、Var1 は 9 と 2 の型

と同等かそれ以上の型である必要があります。 (IL での例) LD 9 MOD 2 ST Var1 (ST での例) Var1:= 9 MOD 2;(*= 1*)

Var1

2

9MOD

Page 43: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-5

INDEXOF:オブジェクトインデックスを求める (FB での例) 機能 POU のオブジェクトインデックスを求めます。 引数 POU 名 (例 “POU2“) 整数型(INT) インデックス値 (ST での例)

Var1:= INDEXOF(POU2);

SIZEOF:変数や関数のバイトサイズを求める (FB での例) 機能 指定データのサイズを求めます。 引数 変数名 (例 “Buffer“) 整数型(INT) 占有バイト数

解説 結果はバイト数(INT)で返ります。 (ST での例)

Var1:= SIZEOF(Buffer);

Var1 Buffer SIZEOF

Var1 ‘POU2’ INDEXOF

Page 44: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-6

論理演算素子

AND:論理積(かつ) (FB での例) 機能 論理積(AND)の結果を Var1 に設定します。 引数 整数型(BOOL,BYTE,WORD,DWORD) (IL での例)

Var1 BYTE LD 2#0000_1111 AND 2#0101_0101 ST Var1

(ST での例)

Var1:= 2#000_1111 AND 2#0101_0101;(*= 2#0000_0101*)

OR:論理和(または) (FB での例) 機能 論理和(OR)の結果を Var1 に出力します。 引数 整数型(BOOL,BYTE,WORD,DWORD) (IL での例)

Var1 BYTE LD 2#0000_1111 OR 2#0101_0101 ST Var1

Var1

2#01010101

2#00001111 AND

Var1

16#55

16#FF OR

Page 45: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-7

(ST での例) Var1:= 2#0000_1111 OR 2#0101_0101;(*= 2#0101_1111*)

XOR:ビットデータの排他的論理和 (FB での例) 機能 排他的論理和(XOR)の結果を Var1 に出力します。 引数 整数型(BOOL,BYTE,WORD,DWORD) (IL での例) Var1 BYTE

LD 2#0000_1111 XOR 2#0101_0101 ST Var1

(ST での例) Var1:= 2#0000_1111 XOR 2#0101_0101;(*= 2#0101_1010*)

Var1

2#0101_0101

2#0000_1111 XOR

Page 46: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-8

NOT:ビットデータの反転 (FB での例) 機能 反転(NOT)の結果を Var1 に出力します。 引数 整数型(BOOL,BYTE,WORD,DWORD) (IL での例)

Var1 BYTE LD 2#1001_0011 NOT ST Var1

(ST での例) Var1:= NOT 2#1001_0011;(*= 2#0110_1100*)

Var1 2#1001_0011 NOT

Page 47: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-9

ビットシフト演算素子

SHL:左ビットシフト (FB での例) 機能 対象 in の値を指定した n ビット数分左シフトします。 引数 整数型(BYTE,WORD,DWORD) in シフトされるデータ n シフトするビット数 解説 erg:= SHL(in, n) 左シフト命令では指定の n ビット分左へシフトすると共に右ビットへは 0 を補充します。 例)

erg が WORD の場合 00000000 01001011 の 2 ビット左シフトの結果は 00000001 00101100 00000000 01001011 の 4 ビット左シフトの結果は 00000100 10110000 erg が BYTE の場合 01001011 の 2 ビット左シフトの結果は 00101100 01001011 の 4 ビット左シフトの結果は 10110000

(IL での例)

LD 16#45 SHL 2 ST erg

(ST での例) erg:= SHL(16#45, 2);

erg

n

in SHL

Page 48: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-10

SHR:右ビットシフト (FB での例) 機能 対象 in 値を指定した n ビット数分右シフトし結果を erg に出力します。 引数 整数型(BYTE,WORD,DWORD) in シフトされるデータ n シフトするビット数 解説 erg:= SHR(in, 2) 右シフト命令では指定の n ビット分右へシフトすると共に左ビットへは 0 を補充します。 例)

erg が WORD の場合 01001011 00000000 の 2 ビット右シフトの結果は 00010010 11000000 01001011 00000000 の 4 ビット右シフトの結果は 00000100 10110000 erg が BYTE の場合 01001011 の 2 ビット右シフトの結果は 00010010 01001011 の 4 ビット右シフトの結果は 00000100

(IL での例)

LD 16#45 SHR 2 ST erg

(ST での例) erg:= SHR(16#45, 2);

erg

n

in SHR

Page 49: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-11

ROL:ビット左回転 (FB での例) 機能 対象 in の値を指定した n ビット数分左回転し結果を erg に出力します。 引数 整数型(BYTE,WORD,DWORD) in 回転されるデータ n 回転するビット数 解説 erg:= ROL(in, n) 左回転命令では指定の n ビット分左へ回転します。 例)

erg が WORD の場合 01001011 00000000 の 2 ビット左回転の結果は 00101100 00000001 01001011 00000000 の 4 ビット左回転の結果は 10110000 00000100 erg が BYTE の場合 01001011 の 2 ビット左回転の結果は 00101101 01001011 の 4 ビット左回転の結果は 10110100

(IL での例)

LD 16#45 ROL 2 ST erg

(ST での例) erg:= ROL(16#45, 2);

erg

n

in ROL

Page 50: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-12

ROR:ビット右回転 (FB での例) 機能 対象 in の値を指定した n ビット数分右回転し結果を erg に出力します。 引数 整数型(BYTE,WORD,DWORD) in 回転されるデータ n 回転するビット数 解説 erg:= ROR(in, n) 右回転命令では指定の n ビット分右へ回転します。 例)

erg が WORD の場合 00000000 01001011 の 2 ビット右回転の結果は 11000000 00010010 erg が BYTE の場合 01001011 の 2 ビット右回転の結果は 11010010 01001011 の 4 ビット右回転の結果は 10110100

(IL での例)

LD 16#45 ROR 2 ST erg

(ST での例) erg:= ROR(16#45, 2);

erg

n

in ROR

Page 51: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-13

データ選択素子

SEL:データの選択(二者択一) (FB での例) 機能 条件 TRUE により 3,4 から 1 つを選択し OUT に出力します。選択条件 TRUE なら 4, FALSE なら 3 が選択さ

れます。 引数 Var1 BOOL 型 整数型(BYTE,WORD,DWORD) OUT 3 と同一型 4 3 と同一型 解説 OUT:= SEL(TRUE,3,4) Var1= FALSE のとき OUT ← 3 Var1= TRUE のとき OUT ← 4 (IL での例)

LD FALSE SEL 3, 4 ST OUT

(ST での例) OUT:= SEL(FALSE, 3, 4);(*= 3*)

MAX:大きい方の値の選択 (FB での例) 機能 指定の変数のうち大きな値を OUT に出力します。

4

3

Var1 OUT SEL

77 40

OUT90

30 MAX MAXMAX

Page 52: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-14

引数 整数型、実数 30 90 と同一型 Var1 90 と同一型 解説 OUT:= MAX(90,30) 90 と 30 のうち大きな値が OUT に出力されます。 (IL での例)

LD 90 MAX 30 MAX 40 MAX 77 ST OUT

(ST での例)

OUT:= MAX(90,30);(*= 90*)

MIN:小さい方の値の選択 (FB での例) 機能 指定の変数値で小さい方の値を OUT に出力します。 引数 整数型、実数 30 90 と同一型 OUT 90 と同一型 解説 OUT:= MIN(90,30) 90 と 30 のうち小さな値が OUT に出力されます。

77 40

OUT90

30 MIN MINMIN

Page 53: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-15

(IL での例)

LD 90 MIN 30 MIN 40 MIN 77 ST Var1

(ST での例) OUT:= MIN(90,30);(*= 30*) Var1:= LIMIT(Min, in, Max);(*= 80*)

Page 54: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-16

比較演算素子

GT:Grater Than(<) (FB での例) 機能 20>30 の比較結果を Var1 に出力します。 引数 整数型、実数、日付型、文字列 30 20 と同一型 Var1 BOOL 型 解説 20>30 であれば Var1 は TRUE、それ以外は Var1 に FALSE が出力されます。 (IL での例)

LD 20 GT 30 ST Var1

(ST での例)

Var1:= 20>30;(*= FALSE*)

LT:Less Than(>) (FB での例) 機能 20<30 の比較結果を Var1 に出力します。 引数 整数型、実数、日付型、文字列 30 20 と同一型 Var1 BOOL 型

Var1

30

20 GT

Var1

30

20 LT

Page 55: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-17

解説 20<30 であれば Var1 は TRUE、それ以外は Var1 に FALSE が出力されます。 (IL での例)

LD 20 LT 30 ST Var1

(ST での例) Var1:= 20<30;(*= TRUE:)

LE:Less or Equal(≦) (FB での例) 機能 20≦30 の比較結果を Var1 に出力します。 引数 整数型、実数、日付型、文字列 30 20 と同一型 Var1 BOOL 型 解説 20<=30 であれば Var1 は TRUE、それ以外は Var1 に FALSE が出力されます。 (IL での例)

LD 20 LE 30 ST Var1

(ST での例) Var1:= 20≦30;(*= TRUE*)

Var1

30

20 LE

Page 56: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-18

GE:Grater or Equal(≧) (FB での例) 機能 20≧20 の比較結果を Var1 に出力します。 引数 整数型、実数、日付型、文字列 20 20 と同一型 Var1 BOOL 型 解説 20>=20 であれば Var1 は TRUE、それ以外は Var1 に FALSE が出力されます。 (IL での例)

LD 20 GE 20 ST Var1

(ST での例)

Var1:= 20≧20;(*= FALSE*)

EQ:Equal(=) (FB での例) 機能 20=20 の比較結果を Var1 に出力します。 引数 整数型、実数、日付型、文字列 20 20 と同一型 Var1 BOOL 型

Var1

20

20 GE

Var1

20

20 EQ

Page 57: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-19

解説 20=20 であれば Var1 は TRUE、それ以外は Var1 に FALSE が出力されます。 (IL での例)

LD 20 EQ 20 ST Var1

(ST での例) Var1:= 20= 20;(*= TRUE*)

NE:Not Equal(<>) (FB での例) 機能 40<>40 の比較結果を Var1 に出力します。 引数 整数型、実数、日付型、文字列 40 40 と同一型 Var1 BOOL 型 解説 40<>40 であれば Var1 は TRUE、それ以外は Var1 に FALSE が出力されます。 (IL での例)

LD 40 NE 40 ST Var1

(ST での例) Var1:= 40<>40;(*= FALSE*)

Var1

40

40 NE

Page 58: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-20

9-2 プログラミングに必要なファンクション

分類 命令 機能 アドレスポインタ ADR アドレスポインタ

BOOL_TO 変換 BOOL 型からの変換 TO_BOOL 変換 BOOL 型への変換 INT タイプ変換 整数型の変換 REAL_TO 変換 実数型の変換 時間変換 時刻 文字列変換 テキスト情報を保存

変換素子

TRUNC 実数型かた整数型への変換 ABS 絶対値(負の値は正になる) SQRT 平方根 LN 自然対数 LOG 常用対数 EXP e の指数累乗 SIN ラジアンとしての入力 SIN 値 COS ラジアンとしての入力 COS 値 TAN ラジアンとしての入力 TAN 値 ASIN アーク SIN、結果はラジアン ACOS アーク COS、結果はラジアン ATAN アーク TAN、結果はラジアン

数値演算素子

EXPT 指定した数の累乗

ADR:アドレスポインタ (FB での例) 機能 ADR は宣言した変数やバッファのアドレスを指定するアドレスポインタです。アドレスは DWORD で表現され

ますが、これはバスカプラ内でのローカルアドレスです。例えばデータアレイで定義したバッファのデータを

一括して次のファンクションに送るときなどは、このアドレスポインタでその内部アドレスを指定します。 (IL での例)

LD Var1 ADR ST Var2

Var2 Var1 ADR

Page 59: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-21

変換素子 概要

基本的にどんなタイプでも変換できますが、大きい変数型から小さい変数型への変換は禁じられています。

(例:INT から BYTE、または DINT から WORD)※特別な変換タイプはそれに限りません)

Syntax: <elem.Typ1>_TO_<elem.Type2>

ファンクションブロックの場合は「BOX」をクリックして ○○○○_TO_××××とタイプして、そのタイプ

した部分が青色になればその変換機能は有効(標準ライブラリに含まれる)であることがわかります。

あるいは Box を表示して[Edit]→[Input Assistance]で Help Manager を表示して Conversion Operatorを選択すると変換可能な関数リストが表示されるので、目的のものを選びます。

Page 60: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-22

BOOL_TO 変換 機能 BOOL タイプから他のタイプへ変換します。 演算表が TRUEの場合、数式タイプへの結果は 1、FALSE の場合は 0となり、STRINGタイプへの結果は TRUE、又は FALSE の文字列になります。 (IL での例)

LD TRUE BOOL_TO_INT ST i (結果= *1*)

LD TRUE BOOL_TO_STRING ST str (結果= *TRUE*)

LD TRUE BOOL_TO_TIME ST t (結果= *T#1ms*)

LD TRUE BOOL_TO_TOD ST (結果= *TOD#00:00:00.001)

LD FALSE BOOL_TO_DATE ST dat (結果= *D#1970-01-01*)

LD TRUE BOOL_TO_DT ST dandt (結果= *DT#1970-01-01-00:00:01*)

(ST での例)

i:= BOOL_TO_INT(TRUE); (結果= *1*) str:= BOOL_TO_STRING(TRUE); (結果= *TRUE*) t:= BOOL_TO_TIME(TRUE); (結果= *T#1ms*) tof:= BOOL_TO_TOD(TRUE); (結果= *TOD#00:00:00.001) dat:= BOOL_TO_DATE(FALSE); (結果= *D#1970*) dandt:= BOOL_TO_DT(TRUE); (結果= *DT#1970-01-01-00:00:01*)

Page 61: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-23

(FB での例)

TO_BOOL 変換 機能 他のタイプから BOOL 値へ変換します。 入力が 0 と以外の場合、結果は TRUE、又、0 と等しい場合は FALSE になります。 STRING タイプへの入力の場合は文字列がる時は TRUE、そうでなければ結果は FALSE になります。 (IL での例)

LD 213 (結果= *TRUE*) BYTE_TO_BOOL ST b LD 0 (結果= *FALSE*) INTO_TO_BOOL ST b LD T#5ms (結果= *TRUE*) TIME_TO_BOOL ST b LD ‘TRUE‘ (結果= *TRUE*) STRING_TO_BOOL ST b

iTRUE BOOL_TO_INT

(結果= *1*)

strTRUE BOOL_TO_STRING

(結果= *TRUE*)

t TRUE BOOL_TO_TIME

(結果= *T#1ms*)

Page 62: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-24

(FB での例) (ST での例)

b:= BYTE_TO_BOOL(2#11010101); (結果= *TRUE*) b:= INT_TO_BOOL(0); (結果= *FALSE*) b:= TIME_TO_BOOL(T#5ms); (結果= *TRUE*) b:= STRING_TO_BOOL(TRUE); (結果= *TRUE*)

整数型(INT)のタイプ変換 機能 整数型タイプから他の数式タイプへ変換します。 大きい変数型から小さい変数型タイプへ変換を行う場合、情報を失う恐れがあります。また、数式の列の範囲

限度を越えて転換した場合、最初のバイトは数式が無効となります。 (IL での例)

LD 2 INT_TO_REAL MUL 3.5

(ST での例)

si:= INT_TO_SINT(4223);(結果= *127*) 4223(10 進法)を SINT に変換すると、127(16 進法)として現れます。

b 213 BOOL_TO_BOOL

(結果= *TRUE*)

b 0 IN_TO_BOOL

(結果= *FALSE*)

b T#5ms TIME_TO_BOOL

(結果= *TRUE*)

b TRUE STRING_TO_BOOL

(結果= *TRUE*)

si4223 INT_TO_SINT

(結果= *TRUE*)

Page 63: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-25

REAL_TO 変換 機能 REAL 変数値から違うタイプへ変換します。 STRING,BOOL タイプ以外の変数値は、一番近い整数値に変換されます。大きい変数型から小さい変数型へ変

換を行う場合、情報を失う恐れがあります。

(IL での例)

LD 2.7 REAL_TO_INT GE %MW8

(ST での例)

I:= REAL_TO_INT(1.5);(結果= *2*) j:= REAL_TO_INT(1.4);(結果= *1*)

時間変換 機能 時刻(TIME 値)、または持続時間(TIME_OF_DAY 値)タイプから違うタイプへ変換します。 (FB での例)

i 1.5 LREAL_TO_INT

T#5ms dwTIME_TO_DWORD

sTOD#00:00:00.012 TOD_TO_SINT

T#12ms strTIME_TO_STRING

Page 64: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-26

(IL での例)

LD T#12ms (結果= *T#12ms*) TIME_TO_STRING ST str

LD T#300000ms (結果= *300000*) TIME_TO_DWORD ST dw

LD TOD#00:00:00.012 (結果= *12*) TOD_TO_SINT ST is

(ST での例)

str:= TIME_TO_STRING(T#12ms); (結果= *T#12ms*) dw:= TIME_TO_DWORD(T#5m); (結果= *300000*) str:= TOD_TO_SINT(TOD00:00:00.012); (結果= *12*)

文字列変換 機能 文字列変数値(STRING 値)から違うタイプへ変換します。 文字列変数値(STRING 値)が有効な数値表現でなかった場合は演算の結果は 0 になります。 (ST での例)

b:= STRING_TO_BOOL(TRUE); (結果= *TRUE*) w:= STRING_TO_WORD(abc34); (結果= *0*) t:= STRING_TO_TIME(T#127ms); (結果= *T#127ms*)

TRUNC:(REAL_TO_INT) 機能 REAL 値から INT 値へ変換します。小数点以下の値は無視されます。 (IL での例)

LD 2.7 TRUNC GE %MW8

(ST での例) i:= TRUNC(1.9); (結果= *1*) i:= TRUNC(-1.4); (結果= *1*)

Page 65: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-27

計算機能

ABS:絶対値 機能 絶対値を求めます。 (IL での例)

LD 2 ABS ST i

(ST での例)

i:= ABSI(-2);(結果= *2*)

SQRT:Square Root(平方根) (FB での例) 機能 平方根を設定します。 引数 変数の型 (BYTE,WORD,DWORD,INT,DINT,REAL,SINT,USINT)又は実数型(REAL) (IL での例)

LD 16 SQRT ST q

(ST での例)

q:= SQRT(16); (結果= *4*)

q 1

SQRT

Page 66: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-28

LN:Natural Logarithm(自然対数) (FB での例) 機能 自然対数を求めます。 引数 変数の型 (BYTE,WORD,DWORD,INT,DINT,REAL,SINT,USINT,UINT,UDINT,OUT)又は実数型(REAL) (IL での例)

LD 45 LN ST q

(ST での例)

q:= LN(45); (結果=*3.80666*)

LOG:Logerithm(常用対数) (FB での例) 機能 常用対数値(底が 10)を求めます。 引数 変数の型 (BYTE,WORD,DWORD,INT,DINT,REAL,SINT,USINT,UINT,UDINT,OUT)又は実数型(REAL) (IL での例)

LD 314.5 LOG ST q

(ST での例)

q:= LOG(314.5) (結果= *2.49762*)

q 45

LN

q314.5

LOG

Page 67: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-29

EXP:Exponential(e の指数累乗) (FB での例) 概要 e の累乗を求めます。 引数 変数の型 (BYTE,WORD,DWORD,INT,DINT,REAL,SINT,USINT,UINT,UDINT,OUT)又は実数型(REAL) (IL での例)

LD 2 EXP ST q

(ST での例)

q:= EXP(2); (結果= *7.389056*)

SIN:Sine(サイン) (FB での例) 概要 サイン(正弦)値を求めます。 引数 変数の型 (BYTE,WORD,DWORD,INT,DINT,REAL,SINT,USINT,UINT,UDINT,OUT)又は実数型(REAL) (IL での例)

LD 0.5 SIN ST q

(ST での例)

q:= SIN(0.5); (結果= *0.479426*)

q 2

EXP

q 0.5

SIN

Page 68: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-30

COS:Cosine(コサイン) (FB での例) 機能 コサイン値を求めます。 引数 変数の型 (BYTE,WORD,DWORD,INT,DINT,REAL,SINT,USINT,UINT,UDINT,OUT)又は実数型(REAL) (IL での例)

LD 0.5 COS ST q

(ST での例)

q:= COS(0.5); (結果=*0.877583*)

TAN:Tangent(タンジェント) (FB での例) 機能 タンジェント(接線)を求めます。 引数 変数の型 (BYTE,WORD,DWORD,INT,DINT,REAL,SINT,USINT,UINT,UDINT,OUT)又は実数型(REAL) (IL での例)

LD 0.5 TAN ST q

(ST での例)

q:= TAN(0.5); (結果=*0.546302*)

q 0.5

COS

q 0.5

TAN

Page 69: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-31

ASIN:Arc Sine(アークサイン) (FB での例) 機能 アークサイン値を求めます。 引数 変数の型 (BYTE,WORD,DWORD,INT,DINT,REAL,SINT,USINT,UINT,UDINT,OUT)又は実数型(REAL) (IL での例)

LD 0.5 ASIN ST q

(ST での例)

q:= ASIN(0.5); (結果=*0.523599*)

ACOS:Arc Cosine(アークコサイン) (FB での例) 機能 アークコサイン値を求めます。 引数 変数の型 (BYTE,WORD,DWORD,INT,DINT,REAL,SINT,USINT,UINT,UDINT,OUT)又は実数型(REAL) (IL での例)

LD 0.5 ACOS ST q

(ST での例)

q:= ACOS(0.5); (結果= *1.0472*)

q 0.5

ASIN

q 0.5

ACOS

Page 70: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-32

ATAN:Arc Tangent(アークタンジェント) (FB での例) 機能 アークタンジェント値を求めます。 引数 変数の型 (BYTE,WORD,DWORD,INT,DINT,REAL,SINT,USINT,UINT,UDINT,OUT)又は実数型(REAL) (IL での例)

LD 0.5 ATAN ST q

(ST での例)

q:= ATAN(0.5); (結果= *0.463648*)

EXPT:Exponential Times(変数の指数累乗) (FB での例)

機能 変数の指数累乗とその他の変数を求めます。 引数 IN1,IN2 の変数型 (BYTE,WORD,DWORD,INT,DINT,REAL,SINT,USINT,UINT,UDINT,OUT)又は実数型(REAL) (IL での例)

LD 7 EXPT 2 ST Var1

(ST での例)

q:= EXPT(7,2); (結果=*49*)

Var1

2

7

EXPT

q 0.5

ATAN

Page 71: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-33

9-3 標準 FBD(ファンクションブロック)

分類 命令 機能 SR セット優先テーブル

セット/リセット RS リセット優先テーブル

CTD ダウンカウンタ

CTU アップカウンタ カウンタ

CTUD アップダウンカウンタ

TOF オフディレイタイマ

TON オンディレイタイマ タイマ

TP パルスタイマ

F_TRIG 立ち下がり検出 トリガ

R_TRIG 立ち上がり検出

ブール操作

SR:セット優先テーブル (FB での例) 機能 SET1 が優先するラッチです。SET1 と RESET の両方の信号が TRUE ならば、出力 VarBOOL3 は TRUE にな

ります。 引数

SET1 BOOL 型 SET1 入力 RESET BOOL 型 RESET 入力 VarBOOL3 BOOL 型 結果出力

解説 出力信号は入力(SET1,RESET)信号をラッチします。SET1 信号が TRUE となった時点から RESET 信号が

TRUE となるまでの間、出力 VarBOOL3 信号を TRUE に保持します。但し、SET1 信号と RESET 信号が同時

に TRUE となる場合は SET1 信号が優先されます

RESET

SET1

RESET

同時の場合はセットが優先

VarBOOL3

SRInst

VarBOOL2

VarBOOL1

SR

SET1

Q1

Page 72: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-34

(IL での例)

CAL SRInst(SET 1:= VarBOOL1,RESET:= VarBOOL2) LD SRInst.Q1 ST VarBOOL3

(ST での例)

SRInst(SET1:= VarBOOL1,RESET:= VarBOOL2); VarBOOL3:= SRInst.Q1;

RS:リセット優先テーブル (FB での例) 機能 RESET1 が優先するラッチです。SET と RESET1 の両方の信号が TRUE ならば、出力 VarBOOL3 は FALSEになります。 引数

SET BOOL 型 SET 入力 RESET1 BOOL 型 RESET1 入力 VarBOOL3 BOOL 型 結果出力

解説 出力信号は入力(SET,RESET1)信号をラッチします。SET 信号が TRUE となった時点から RESET1 信号が

TRUE となるまでの間、出力 VarBOOL3 信号を TRUE に保持します。但し、SET 信号と RESET1 信号が同時

に TRUE となる場合は RESET1 信号が優先されます。 (IL での例)

CAL RSInst(SET1:= VarBOOL1,RESET 1:= VarBOOL2) LD RSInst.Q1 ST VarBOOL3

Q1

SET

RESET1

リセットが優先される

VarBOOL3

RSInst

VarBOOL2

VarBOOL1

RS

SET Q1

RESET1

Page 73: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-35

(ST での例)

RSInst(SET:= VarBOOL1 ,RESET1:= VarBOOL2); VarBOOL3:= RSInst.Q1;

カウンタ

CTU:Count Up (FB での例) 機能 カウント値カウントアップしてが最大値(設定値)に達したことを知らせるカウンタです。 引数 CU BOOL 型(T) カウントアップ入力(立ち上がりエッジ) RESET BOOL 型 リセット入力 PV INT 型 目標値(最大値):この値に達すると Q が TRUE になります。 Q BOOL 型 結果 CV INT 型 現在カウント値:Q に TRUE が入るとこの値は0に戻ります。 解説 入力 CU の立ち上がりの数をカウントします。カウンタはリセット入力 RESET が TRUE で現在カウント値 CVをゼロにクリアします。カウンタは設定の目標値 PV に現在カウント値 CV が達すると出力 Q を TRUE にして

カウントアップを知らせ、カウントをストップします。最大値を超えてのカウントアップは行われず、リセッ

トが入力されるまで最大値のまま保持されます。

Q

CU

PV

CV

RESET

VarINT2

VarINT2

VarBOOL3

CTUInst

VarBOOL2

VarBOOL1

CTU

CU Q

RESET CV

PV

Page 74: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-36

(IL での例)

CAL CTUInst(CU:= VarBOOL1,RESET:= VarBOOL2,PV:= VarINT1) LD CTUInst.Q ST VarBOOL3 LD CTUInst.CV ST

(ST での例)

CTUInst(CU:= VarBOOL1, RESET:= VarBOOL2 , PV:= VarINT1); VarBOOL3:= CTUInst.Q; VarINT2:= CTUInst.CV;

CTD:Count Down (FB での例)

機能 プリセット値からカウントダウンしてカウント値が0に達したことを知らせるカウンタです 引数

CD BOOL 型(T) カウントダウン入力(立ち上がりエッジ) LOAD BOOL 型 ロード入力:ここが TRUE になったタイミングでプリセット値が設定される。 PV INT 型 プリセット値: Q BOOL 型 プリセット値からカウントダウンして0になると TRUE になる。

初期状態で CV が0の時も TRUE になっています。 CV INT 型 現在カウント値

解説 入力 CD の立ち上がりの数をカウントします。カウンタはロード入力 LOAD が TRUE でプリセット値 PV を現

在カウント値 CV として代入します。入力 CD の立ち上がり毎に現在カウント値 CV を1づつ減算し、現在カウ

ント値 CV が 0 に達すると出力 Q を TRUE にしてカウントアップを知らせ、カウントをストップします。0 を

下回るカウントダウンは行われず再度ロード(入力 LD の立ち上がり検出)されるまで 0 のままとなります。

Q

CD

PV

CV

LOAD

VarINT2

VarINT1

VarBOOL3

CTDInst

VarBOOL2

VarBOOL1

CTD

CD Q

LOAD CV

PV

Page 75: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-37

(IL での例)

CAL CTDInst(CD:= VarBOOL1,LOAD:= VarBOOL2,PV:= VarINT1) LD CTDInst.Q ST VarBOOL3 LD CTDInst.CV ST VarINT2

(ST での例)

CTDInst(CD:= VarBOOL1, LOAD:= VarBOOL2 , PV:= VarINT1); VarBOOL3:= CTDInst.Q; VarINT2:= CTDInst.CV;

CTUD:Count Up&Down (FB での例) 機能 カウント値が0あるいは最大値に達したことを知らせるカウンタです。 引数

CU BOOL 型(T) カウントアップ入力(立ち上がり時) CD BOOL 型(T) カウントダウン入力(立ち上がり時) RESET BOOL 型 リセット入力(優先) LOAD BOOL 型 ロード入力 PV INT 型 目標値(最大値) QU BOOL 型 結果 QD BOOL 型 結果 CV INT 型 現在カウント値

CTUDInst

VarBOOL4

VarBOOL6 VarBOOL3

VarINT2

VarBOOL2 VarBOOL5

CTUD

CU Q

CD QD

RESET CV

LOAD

PV

Page 76: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-38

解説 入力 CU の立ち上がりの数でカウントアップし CD の立ち上がりの数でカウントダウンします。カウンタはロ

ード入力 LOAD が TRUE でプリセット値 PV を現在カウント値 CV として代入します。LOAD が TRUE のとき

にはカウントダウンは行いません。同様にリセット入力 RESET が TRUE で現在カウント値 CV をゼロにクリ

アします。RESET が TRUE のときにはカウントアップを行いません。カウンタは、入力 CU の立ち上がり毎に

現在カウント値 CV を1づつ加算し入力 CD の立ち上がり毎に現在カウント値 CV を1づつ減算します。カウン

タは、現在カウント値 CV が最大値に達すると出力 Q を TRUE に、逆に 0 に達すると出力 QD を TRUE にして

カウント終了を知らせるとともにカウントをストップします。現在カウント値は、最大値を超えてもカウント

アップを行いますが、0 を下回るカウントダウンは行われず、ロード入力が TRUE にされるまでそのまま(0)となります。 (IL での例)

CAL CTUDInst(CU:= VarBOOL2,RESET:= VarBOOL3,LOAD:= VarBOOL4,PV:= VarINT1) LD CTUDInst.Q ST VarBOOL5 LD CTUInst.CD ST VarBOOL6 LD CTUDInst.CV ST VarINT2

(ST での例) CTUDInst(CU:= VarBOOL1,CU:= VarBOOL2,RESET:= VarBOOL3,LOAD:= VarBOOL4,PV:= VarINT1); VarBOOL5:= CTUDInst.Q; VarBOOL6:= CTUDInst.QD; VarINT2:= CTUInst.CV;

Page 77: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-39

タイマ

TON:On Delay Timer (FB での例) 概要 入力が TRUE となってから指定の時間が経過した後に出力を TRUE にするオンディレイタイマです。 引数

IN BOOL 型 条件入力 PT TIME 型 遅延時間 Q BOOL 型 結果 ET TIME 型 経過時間

解説 入力 IN が TRUE であり遅延時間を経過した後に出力 Q を TRUE にします。入力 IN が TRUE のとき経過時間

ET が遅延時間 PT となるまで増えていき、経過時間 ET が遅延時間 PT に達すると出力 Q を TRUE にして、出

力 Q は入力 IN が TRUE の間保持されます。しかし、遅延時間に達したときに入力 IN が既に FALSE になって

いる場合、出力 Q は TRUE にはなりません。 (IL での例)

CAL TONInst(IN:= VarBOOL1,PT:= T#5s) LD TONInst.Q ST VarBOOL2

(ST での例) TONInst(IN:= VarBOOL1,PT:= T#5s);

TONInst

T#5s

VarBOOL2 VarBOOL1

TON

IN Q

PT ET

t0 t1 t2 t3 t4 t5

IN

t0+PT t1 t4+PT t5

Q

ET

t0 t1 t2 t3 t4 t5

PT

遅延時間に達しても、入力が

既に FALSE になっていると

きは、Q は TRUE にならない。

Page 78: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-40

TOF:Off Delay Timer (FB での例)

機能 入力が FALSE となってから指定の時間が経過するまで出力を FALSE としないオフディレイタイマです。 引数

IN BOOL 型 条件入力 PT TIME 型 遅延時間 Q BOOL 型 結果 ET TIME 型 経過時間

解説 入力 IN が FALSE となってから遅延時間を経過した後に出力 Q を FALSE にします。入力 IN が TRUE のときは

必ず出力 Q が TRUE となります。入力 IN が TRUE から FALSE に移行すると出力 Q はすぐに FALSE に移行せ

ず経過時間 ET が遅延時間 PT となるまで増えていき、経過時間 ET が遅延時間 PT に達すると出力 Q を FALSEにして、IN が FALSE の間は FALSE となります。しかし遅延時間に達した時点で既に入力 IN が TRUE に戻っ

ている場合は FALSE にはなりません。 (IL での例)

CAL TOFInst(IN:= VarBOOL1,PT:= T#5s) LD TOFInst.Q ST VarBOOL2

(ST での例)

TOFInst(IN:= VarBOOL1,PT:= T#5s); VarBOOL2:= TOFInst.Q;

TOFInst

T#5s

VarBOOL2 VarBOOL1

TOF

IN Q

PT ET

t0 t1 t2 t3 t4 t5

IN

t0 t1+PT t2 t5+PT

Q

ET PT

t1 t2 t3 t4 t5

遅延時間に達しても、その時

点で既に入力が TRUE に戻

っている場合は Q は FALSE

にはならない。

Page 79: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-41

TP:Timer Pulse (FB での例) 機能 指定の持続時間を持ったパルスを発生するタイマです。 引数

IN BOOL 型 条件入力 PT TIME 型 遅延時間 Q BOOL 型 結果 ET TIME 型 経過時間

解説 入力 IN が TRUE に移行すると同時に出力 Q も TRUE となります。この出力 Q は、IN の状態に関わりなく、パ

ルス時間が経過し終わるまで TRUE を保持します。経過時間 ET はパルス保持時間の間増加して、パルス出力

の終結時から次のパルスが開始するまで保持され、次のパルス出力の開始時点でリセットされます。 (IL での例)

CAL TPInst(IN:= VarBOOL1,PT:= T#5s) LD TPInst.Q ST VarBOOL2

(ST での例)

TPInst(IN:= VarBOOL1,PT:= T#5s); VarBOOL2:= TPInst.Q;

IN

t0 t1 t2 t3 t4 t5 Q

t0 t0+PT t2 t2+PT t4 ET PT

0

t0 t1 t2 t3 t4 t5

入力の立ち上がりでスタートする。

その後は入力 IN の変化に関わらず、

PT 幅のパルスを出す。

TPInst

T#5s

VarBOOL2 VarBOOL1

TP

IN Q

PT ET

Page 80: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-42

トリガ

R_TRIG:Trigger in Rising edge (FB の例)

機能 立ち上がりエッジ(微分)を検出します。エッジを検出したときに単一のパルスを発生します。 引数

CLK BOOL 型 入力 Q BOOL 型 結果出力

解説 入力(CLK)信号が TRUE に移行すると出力(Q)は TRUE となります。その後、新しい立ち上がりエッジが

検出されるまで出力(Q)は FALSE になります。出力(Q)が TRUE を継続する時間は通常プログラムの一周

期の時間ですので、モニタでは観測できません。通常この出力を使用する場合は TP などを使ってある一定の

パルス幅を確保してください。 (IL での例)

CAL RTRIGInst(CLK:= VarBOOL1) LD RTRIGInst.Q ST VarBOOL2

(ST での例)

RTRIGInst(CLK:= VarBOOL1); VarBOOL2:= RTRIGInst.Q;

RTRIGInst

VarBOOL2 VarBOOL1

R_TRIG

CLK Q

Q

CLK

Page 81: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-43

F_TRIG:Trigger in Falling edge (FB での例) 機能 立ち下がりエッジ(微分)を検出します。エッジを検出したときに単一のパルスを発生します。 引数

CLK BOOL 型 入力 Q BOOL 型 結果出力

解説 入力(CLK)信号が FALSE に移行すると出力(Q)は TRUE となります。その後、新しい立ち下がりエッジが

検出されるまで出力(Q)は FALSE になります。出力(Q)が TRUE を継続する時間は通常プログラムの一周

期の時間ですので、モニタでは観測できません。通常この出力を使用する場合は TP などを使ってある一定の

パルス幅を確保してください。 (IL での例)

CAL FTRIGInst(CLK:= VarBOOL1) LD FTRIGInst.Q ST VarBOOL2

(ST での例)

FTRIGInst(CLK:= VarBOOL1); VarBOOL2:= FTRIGInst.Q;

Q

CLK

FTRIGInst

VarBOOL2

F_TRIG

CLK Q

Page 82: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-44

9-4 文字列操作

分類 命令 機能 LEN 文字列の長さ LEFT 左からの文字列抽出 RIGHT 右からの文字列抽出 MID 文字列の中間から抽出 CONCAT 文字列の連結 INSERT 文字列の挿入 DELETE 文字列の削除 REPLACE 文字列の置換

文字列ファンクション

FIND 文字列の検索

文字列操作機能

LEN:Length of Characters (FB での例) 機能 文字列の長さを判定します。

引数

STR 文字列 VarINT1 実数

解説 文字列 STR の長さを判定し、その値を VarINT1 に出力します。 (IL での例)

LD ‘SUSI’ LEN ST VarINT1(結果= *4*)

(ST での例)

VarSTRING1:= LEN(‘SUSI’)

‘SUSI’ VarINT1

LEN

STR

Page 83: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-45

LEFT:Characters from Left (FB での例) 機能 左からの文字列抽出をします。 引数

STR 文字列 SIZE 実数 文字数 VarSTRING1 文字列 文字出力

解説 入力文字列 STR の左端から SIZE 文字分取り出して出力文字列を VarSTRING1 に出力します。 (IL での例)

LD ‘SUSI’ LEFT 3 ST VarSTRING1(結果= *SUS*)

(ST での例)

VarSTRING1:= LEFT(’SUSI’3);

RIGHT:Characters from Right (FB での例) 機能 右からの文字列抽出をします。 引数

STR 文字列 SIZE 実数 VarSTRING1 文字列 結果出力

3

‘SUSI’ VarSTRING1

LEFT

STR

SIZE

3

‘SUSI’ VarSTRING1

RiGHT

STR

SIZE

Page 84: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-46

解説 入力文字列 STR の右端から SIZE 文字分取り出して出力文字列を VarSTRING1 に出力します。 (IL での例) LD ‘SUSI’ RIGHT 3 ST VarSTRING1(結果= *USI*) (ST での例)

VarINT1:= RIGHT(‘SUSI’,3);

MID:Characters from Middle (FB での例) 機能 文字列の中間から抽出します。 引数

STR 文字列 LEN 実数 文字数 POS 実数 文字抽出位置 VarSTRING1 文字列 文字出力

解説 入力文字列 STR の先頭から文字数 POS の位置にて LEN 文字数分の文字を抽出し、この文字列を VarSTRING1に出力します。 (IL での例)

LD ‘SUSI’ MID 2,2 ST VarSTRING1(結果= *US*)

(ST での例)

VarSTRING1:= MID(‘SUSI’,2,2);

2

‘SUSI’ VarSTRING1

2

MID

STR

LEN

POS

Page 85: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-47

CONCAT:Connect Characters (FB での例) 機能 文字列の連結をします。 引数

STR1 文字列 STR2 文字列 VarSTRING1 文字列 文字出力

解説 入力文字列 STR1 と STR2 を結合して出力文字列を VarSTRING1 に出力します。2 つ以上の入力文字列が指定

できます。 (IL での例)

LD ‘SUSI‘ CONCAT ‘WILLI‘ ST VarSTRING1(結果= *SUSIWILLI*)

(ST での例)

VarSTRING1:= CONCAT(‘SUSI‘,‘WILLI‘);

INSERT:Insert Characters (FB での例) 機能 文字列の挿入をします。

‘WILLI’

‘SUSI’ VarSTRING1

CONCAT

STR1

STR2

‘XY’

‘SUSI’ VarSTRING1

2

INSERT

STR1

STR2

POS

Page 86: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-48

引数 STR1 文字列 STR2 文字列 POS 実数 文字挿入位置 VarSTRING1 文字列 文字出力 解説 入力文字列 STR1 の先頭から POS 文字分の位置に文字列 STR2 を挿入し、出力文字列を VarSTRING1 に出力

します。 (IL での例)

LD ‘SUSI’ INSERT ‘XY’,2 ST VarSTRING1(結果= *SUXYSI*)

(ST での例)

VarSTRING1:= INSERT(‘SUSI’,’XY’,2);

DELETE:Delete Characters (FB での例) 機能 文字列の削除をします。 引数

STR 文字列 LEN 実数 文字数 POS 実数 文字位置 VarSTRING1 文字列 文字出力

解説 入力文字列 STR に対して、文字位置 POS から長さ LEN 文字分の文字列を削除して出力文字列を VarSTRING1に出力します。

2

‘SUXYSI’ VarSTRING1

2

DELETE

STR1

LEN

POS

Page 87: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-49

(IL での例)

LD ‘SUXYSI’ DELETE 2,23 ST VarSTRING1(結果= *SUSI*)

(ST での例)

Var:= DELETE(‘SUXYSI’,2,3);

REPLACE:Replace Characters (FB での例) 機能 文字列の置換を行います。 引数

STR1 文字列 STR2 文字列 L 実数 文字数 P 実数 文字置換位置 VarSTRING1 文字列 文字出力

解説 入力文字列 STR1 の先頭から文字数 POS の位置にて LEN 文字数分の文字を文字列 STR2 で置換し、結果の文

字列を VarSTRING1 に出力します。 (IL での例)

LD ‘SUXYSI’ REPLACE ‘K’,2,2 ST VarSTRING1(結果= *SKYSI*)

(ST での例)

VarSTRING1:= REPLACE(’SUXYSI’,’K’,2,2)

2

‘K’

‘SUXYSI’ VarSTRING1

2

REPLACE

STR1

STR2

L

P

Page 88: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-50

FIND:Find Characters (FB での例) 機能 文字列の探索をします。 引数

STR1 文字列 STR2 文字列 VarSTRING1 実数 文字発見位置

解説 文字列 STR2 が入力文字列 STR1 の中で最初に発見された位置の値を VarSTRING1 に出力します。

(IL での例)

LD ‘SUXYSI’ FIND ‘XY’ ST VarINT1(結果= *3*)

(ST での例)

VarINT1:= FIND(‘SUXYSI’,’XY’);

‘XY’

‘SUXYSI’ VarINT1

FIND

STR1

STR2

Page 89: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-51

9-5 UTIL.LIB ライブラリ

分類 命令 機能 BCD_TO_INT BCD データ変換 BCD 変換機能 INT_TO_BCD_ BCD データ変換 EXTRACT ビット抽出 PACK バイトデータをビット分解 UNPACK ビットデータ→バイトデータ

ビット・バイト操作

PUTBIT ビット指定変更 DERIVATIVE 微分機能 INTEGRAL 積分機能 STATISTICS_INT 標準統計 整数 STATISTICS_REAL 標準統計 実数

微積分機能

VARIANCE 分散 P 比例制御 PD 比例制御+微分制御 PID 制御 PID PID 制御 BLINK 点滅パルス

信号発生関数 GEN 信号発生(シグナルジェネレータ)

BCD 変換 BCD 形式のバイトデータ中には、0~99 間の整数を含みます。4 ビットずつ区切って各桁を 10 進数で表現する

方法で、例えば 10 の位の桁は、4~7 ビット内に記録されます。よって BCD 形式は一見 16 進数と似ています

が、唯一の違いは 16 進数が各々のバイトが 0 から FF(0~256)まで表現するのに対して、BCD 形式の場合は

各々の 4 ビットが 0~9 までしか変化しません。 例): 整数 51 を BCD 形式に変換する場合について説明します。 ① 2 進法に直して BCD バイト 0101 0001 を作ります。これは「51」を表現しています。 ② これに相当する 16 進数は 16#51 になりますので実際の数で表すと 16#51=10#81 となります。 ③ すなわち BCD 表記の「51」を通常のバイト数にすると「81」になります。

BCD_TO_INT: (FB での例) 通常のバイト数値を BCD の桁表示に変換します。入力値は BYTE タイプ(0~9、16~153)、また出力値は INTタイプ(0~99)となり、BCD フォーマット中で変換されないバイト値については、出力値-1 となります。 (ST での例)

i:= BCD_TO_INT(73); (結果= *49*) k:= BCD_TO_INT(151); (結果= *97*) l:= BCD_TO_INT(15); (BCD フォーマットではない為、出力-1 となる)

73 49 BCD_TO_INT

Page 90: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-52

INT_TO_BCD: (FB での例) BCD 形式で表現したい桁並び表記(0~99)をバイト値(INT:0~153)へ変換します。入力値は INT タイプ、

出力値は BYTE タイプになります。入力値に変換できない値がある場合には、自動的に 255 が出力されます。 (ST での例)

i:= INT_TO_BCD(49); (結果= *73*) k:= BCD_TO_INT(97); (結果= *151*) l:= BCD_TO_INT(100); (エラー!出力:255)

ビット・バイト操作

EXTRACT:ビット値抽出 (FB での例) 入力値 X を 2 進法で表記した場合、N 番目ビット(0 値からカウントを始めます)が 1 か 0 のどちらになるか

を BOOL 値として出力します。 (ST での例)

FLAG:= EXTRACT(X:= 81,N:= 4); (結果=:TRUE, 81 は 2 進法で 1010001 となる為、第 4 ビットは 1 となる) FLAG:= EXTRACT(X:= 33,N:= 0); (結果=:TRUE, 33 は 2 進法で 100001 となる為、ビット 0 は 1 となる)

49 73 IN_TO_BCD

4

81 FRAG

EXTRACT

K

N

Page 91: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-53

PACK / UNPACK 8 つの BOOL 値入力を(B0,B1…B7)をバイトデータ(INT)に変換します。UNPACK はこの機能の逆となり

ます。

PUTBIT:ビット指定変更 (FB での例) この機能への入力は DWORD X 、BYTE N、そして BOOLean、B 値からなります。DWORD の値 X の N ビッ

ト目(0 値からカウントを始めます)に B 値をセットします。 (ST での例)

A:= 38;(2 進法では 100110 となる) B:= PUTBIT(A,4,TRUE); (結果= *54= 2#110110*) C:= PUTBIT(A,1,FALSE); (結果= *36= 2#100100*)

TRUE PACK

B0

B1

B2

B3

B4

B5

B6

PACK

B0

B1

B2

B3

B4

B5

B6

TRUE

4

38 2#00000000000000000000000000110110

TRUE

PUTBIT

X

N

B

Page 92: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-54

微積分機能

DERIVATIVE:微分機能 このファンクションブロックは微分を実行します。IN には実数(REAL)でデータを入力します。TM は DWORD(最大 32 ビット)で msec 単位で微分時間を指定します。BOOL タイプの RESET が TRUE のときはリセット

状態を保持し、FALSE に戻すと微分動作を開始します。OUT 出力値は REAL タイプです。

INTEGRAL:積分機能 積分を実行します。DERIVATIVE と同様に、変数値 IN には REAL 値で入力します。TM は DWORD の msec積分時間指定、RESET 入力値は BOOL タイプで入力します。RESET 入力に TRUE を保持するとリセット状態

のままで、FALSE にすると動作を再開します。出力値 OUT は REAL タイプです。

STATISTICS_INT:標準統計 整数型入力 標準統計値を計算します。入力値INはINT型です。入力値RESETにはBOOL値を入力しますが、これがTRUEになるタイミングで、全ての値は再び新たにイニシャライズされます。出力値MN入力されたデータ中の最小値、

MXは最大値を表します。AVGは平均値を表します。3つの出力値はすべてINTタイプの出力値です。

IN OUT

INTEGRAL

IN OUT

TM

RESET

Integral

STATISTICS_INT

IN MN

RESET MX

AVG

STAT

D_INST

DERIVATIVE

IN OUT

TM

RESET

Page 93: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-55

STATISTICS_REAL このファンクションブロックは RESET を除くすべての入力が REAL タイプになります。機能は

STATISTICS_INT と同じです。

VARIANCE:分散値 VARIANCE は IN 入力データの分散を求めます。IN は REAL タイプ、RESET は BOOL タイプ、そして OUT 出

力値はまた REAL タイプになります。RESET が TRUE になるタイミングでデータはリセットされます。いわ

ゆる偏差値は、VARIANCE の平方根を求めることによって簡単に計算出来ます。

Page 94: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-56

コントローラー

P:比例制御 フィードバックされる入力値 ACTUAL を観測しながらコントロール操作出力(OUT)を目標値 DESIRED に近

づけるための比例制御 FB です。KP(比例ゲイン)は REAL タイプの入力値、コントロール操作出力(OUT)もまた同じく REAL タイプで、下記の方法によって計算されます。

OUT = ACTUAL + KP × △e(偏差:△e = DESIRED - ACTUAL)

PD:比例制御+微分制御 フィードバックされる入力値 ACTUAL を観測しながらコントロール操作出力(OUT)を目標値 DESIRED に近

づけるための比例制御+微分制御 FB です。KP(比例ゲイン)は REAL タイプの入力値、コントロール操作出

力(OUT)もまた同じく REAL タイプで、下記の方法によって計算されます。

OUT = ACTUAL + KP × (△e + TD・δ△

δ t )(偏差:△e = DESIRED - ACTUAL)

TD は微分データを得るための差動時間で DWORD のタイプ、msec 単位で設定します。RESET は BOOL タイ

プで、コントローラーをリセット状態にします。RESET に入力されている値は TRUE の場合はリセット状態

を保持し、FALSE にすると制御動作を再開します。

Page 95: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-57

PID:PID 制御 フィードバックされる入力値 ACTUAL を観測しながらコントロール操作出力(OUT)を目標値 DESIRED に近

づけるための PID 制御 FB です。KP(比例ゲイン)は REAL タイプの入力値、コントロール操作出力(OUT)もまた同じく REAL タイプで、下記の方法によって計算されます。

OUT = ACTUAL + KP ×(△e +1

TR ・∫△(t)dt + TD・δ△

δ t )

比例動作 積分動作 微分動作 TR は積分時間間隔、TD は微分差動時間で各々DWORD(最高 32 ビット)で msec 単位で入力します。また、 TD=0 とすると微分動作は行わなくなりますので PI コントローラーとして使用する事が出来ます。

信号発生(シグナルジェネレータ)

BLINK:点滅 BLINK は、任意周期のパルスを作ります。入力値は、時間形式の数値で TIMELOW(FALSE の継続時間)と

TIMEHIGH(TRUE の継続時間)に設定します。ENABLE を TRUE にするとパルス発生がスタートします。出

力値 OUT は BOOL タイプです。

TRUE

FALSE

Page 96: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-58

GEN:シグナルジジェネレータ この FB は、定常的な信号を発生させるファンクションブロックです。 <入力値の説明>

MODE TRIANGLE_POS ノコギリ波 RECTANGLE 矩形波 SINUS サイン波 COSINUS コサイン波

BASE が TRUE の時は、PERIOD に入力される定義時間を基準に周波サイクルが決定されます。BASE が FALTのときは、プログラム上でこのファンクションブロックが実行される回数で周波サイクルが決定されます。し

たがって PERIOD には時間定義の数を CYCLES には整数( INT)で実行回数でサイクルを定義します。

AMPLITUDE は、振幅値を入力します。また、このファンクションブロック RESET=TRUE になったと同時に 信号発生を完全に停止してしまいますので、ここは FALSE にしておいてください。

SINUS:

-Amplitude

Amplitude

RECTANGLE:

-Amplitude

Amplitude

TRIANGLE_POS:

0

Amplitude

COSINUS:

-Amplitude

Amplitude

Page 97: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

9-59

ヒステリシス関数

HYSTERESIS:ヒステリシス このファンクションブロックの入力は、IN と HIGH、そして LOW の 3 つの変数を入力します。入力変数の型

は INT(整数)ですので、REAL 値などは INT 型に変換してください。出力値 OUT は BOOL 値です。 スタート後 IN 下限値 LOW より下回っている場合は、OUT は TRUE となります。そして IN に入力される値が

上限値 HIGH より上回った時点で FALSE となります。再び入力値が下がり始めて HIGH を下回ったとしても、

この時点で OUT は TRUE にはなりません。LOW の値を下回ってはじめて TRUE に戻ります。

HYSTERESIS

IN OUT

HIGH

LOW

Page 98: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

10-1

10 プログラム作成例

10-1 自己保持回路

自己保持回路はラダープログラムの基本形として習う一つですが、これを WAGO-IO-PRO で記述する

と以下のようになります。2 つのデジタル入力と 1 つのデジタル出力を使って、出力を保持・リセッ

トする回路です。

■in1 が TRUE になると、回路が繋がって out1 が一時的に TRUE になります。 ■out1 は in1 の並列接点としても接続されているので、一度 out1 が TRUE になると自動的に TRUEを保持します。 ■in2 が FALSE の時は反転しているので接続は保持されていますが、一度 TRUE になると回路が切断

されて、out1 の保持が解除されます。

ファンクションブロック(FB)で記述すると以下のようになります。FB の場合は関数 BOX を横に接

続していきます。ステップの考え方はラダープログラムと同じです。ステップの追加はトップメニュ

ーの Insert→Network(Before),Network(After)で行います。

Page 99: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

10-2

下図の例はこれをインストラクションリスト(IL)で記述した例です。シーケンサーにおいてプロコン

で編集するときに使われるニーモニックとも呼ばれている言語です。

10-2 セット・リセット回路

自己保持回路のような基本的な動作については IEC の規格において既に標準 FB として準備されてい

ます。セットリセット(SR)またはリセットセット(RS)と呼ばれる FB で、以下のように一つの

FB に入出力の変数にデータ入力するだけで動作します。SR はセット優先、すなわちセットとリセッ

トが同時入力されたときにはセットが優先、RS はリセット入力が優先する FB です。

Page 100: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

10-3

FB はラダープログラムのステップ上にも取り込むことができます。下図では SR ファンクションブロ

ックを EN(Enable)としてラダーの基線上に取り込んでいます。このステップにおいては SR が実

行そのままされます。基線上に接点を挿入して動作を制御する(Enable)ことも可能です。挿入の方

法は本ハンドブックの 5-2 を参照してください。

10-3 クロック発生回路

CFC(Continuous Function Chart)は一つの平面上にファンクションブロックやプログラムを一つず

つ貼り付けて配線していくプログラム方式で、データの入出力の関係などが一目でわかるようなプロ

グラム言語です。以下の例ではタイマーオンディレイ(TON)を 2 つ使用して、クロック発生回路を

作っています。一つ目の TON(t1)の出力はそのまま t2 の入力へ接続し、t2 の出力は反転させて t1の入力へフィードバックさせています。出力は t1 の出力から取り出して、2 つずつ反転し出力させて

いますので、交互に点滅することになります。

Page 101: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

10-4

10-4 リテイン機能を使ったカウンタ値保持回路

パルスカウントなどの機能においては、電源が一時的に切れたとしても不揮発性メモリにデータを保

存しておくことが重要になります。例えばデジタル入力モジュールにて、入力パルスをカウントする

には、カウンタの FB(ファンクションブロック)を使用し、これを保持するにはこの FB を RETAIN領域にて定義します。 下図では RETAIN の変数として c1(CTU)を定義しています。 ところが、この CTU という FB をリテインすると約 10 バイト分の不揮発性メモリ領域を消費します。

不揮発性メモリの領域は%M で表現される内部メモリも含めて 8192 バイトとなっています。不揮発

性メモリ領域をなるべくセーブするにはカウントの結果(16 ビット分のデータ)だけを保持するよう

にします。16 ビット(ワード)でリテインされたメモリを定義し、カウンタの出力をここへアサイン

するようにします。 一度電源が OFF になった場合、カウンタ CTU はリテインされていないので、電源起動時毎にリセッ

トされますので、単純にアサイン(代入)しただけではリテインされたメモリにも改めて「0」が書き

込まれることになってしまいます。そこで、電源起動時の最初の 1 回だけ、リテインされたデータを

読込むようなプログラムを作成します。

Page 102: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

10-5

■ 電源が落ちる直前のカウンタの値は data2 に入力され保持されています。 ■ initial_bit は最初の 1 周目では FALSE になっていますので、ジャンプ命令は実行されずに、自 動的にステップ 0002 へ進みます。 ■ ステップ 0002 では data2 保持された値を data1 へロードしています。 ■ 1周目の最後にはステップ 0005 は必ず実行されるので 2 周目以降ステップ 0002 は実行されま せん。すなわち最初の 1 周期のときだけ、data2 に格納された値が data1 にロードされます。 ■ in2 が TRUE に変化したときに、カウンタ FB(c1:CTU)はリセットされますが、data1, data2 に入っているデータはクリアされませんので 0006 で in2 が TRUE になったときだけ 0007 が 実行されて、すべてのバッファがクリアされるようにします。

Page 103: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

10-6

10-5 ST(ストラクチャード・テキスト)を使った温度データ変換の例

概要 ここでは、テキスト言語の ST「ストラクチャード・テキスト」を用いて温度データを電圧出力などの

データに変換するプログラムについて説明します。ST は、PASCAL、一部 BASIC によく似た言語で、

数式表現を多く使う場合やループ処理を行う場合に便利です。 下図の例は温度入力モジュールの入力(%IW0)を当社出力モジュール(下記では 750-550)を使用

して、-50℃~+50℃の範囲を 0~10V の範囲で出力させる、というメインルーチンを表示していま

す。メインルーチン PLC_PRG のステップは 1 ステップですが、「TempReal」、「RangeChanger」と

いうサブルーチンから成り立っており、各々のサブルーチンが ST で記述されています。

Page 104: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

10-7

<TempReal(FB)の解説>

TempReal(FB)では入力された値(ワード)が正の値か負の値かを判定して、これを実数の値に変

換して出力するという動作を行っています。 ① コメント

ST 言語はすべて記述式になりますが、プログラムと関係のない部分は(* と *)でくくります。

この間に記述される文字列はすべてコメントとして判断され、プログラムとは直接関係が無くなりま

す。文字はすべて緑色になります。どこにでも挿入できますが、定義された変数名の途中などに入れ

ると変数名の文字列が分割されてしまいますので注意してください。 ② 条件文

ST 言語でよく使われるのが条件文です。温度入力モジュールの場合、次頁表のとおり正の値は

16#0000~16#7FFF、負の値は 16#FFFF~16#8000 で表現されます。すなわちワード入力値が 16#8000 以上の場合は負になります。

Page 105: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

10-8

参考:(750-461、750-469 のデータフォーマット)

温度(°C) バイナリ値 16 進数値 10 進数値

(3276.7) 0111 1111 1111 1111 7FFF 32767

850 0010 0001 0011 0100 2134 8500 100 0000 0011 1110 1000 03E8 1000

25.5 0000 0000 1111 1111 00FF 255 0.1 0000 0000 0000 0001 0001 1

0 0000 0000 0000 0000 0000 0

-0.1 1111 1111 1111 1111 FFFF -1

-25.5 1111 1111 0000 0001 FF01 -255 -100 1111 1100 0001 1000 FC18 -1000

そこで、「IF ... THEN ... ELSE」を用いて条件分けを行います。実際の式では intemp>16#8000 の結

果が真か偽によって head に代入する値を変えています。

実際の式 公式

IF intemp>16#8000 THEN head:= 16#00000000; ELSE head:= 16#00010000; END_IF;

IF<ブール式(あるいはブール値)>THEN <文(真の場合の実行式)> ELSE <文(偽の場合の実行式)> END_IF;

■ IF の後に文字式が続く場合は IF と文字式の間はスペースを空けます ■ IF の後は式ではなくて BOOL 値が入る変数のみでもかまいません。 ■ この条件式は IF~END_IF で完結します。END_IF の後は必ず「;」を入れ、条件文の完了を宣 言します。 ■ 「:=」は代入を意味します。ST の中では最も多く使われる式です。 ■ head:= 16#00000000 は 16#00000000 を head に代入するという意味です。 ■ 実行式の後は必ず「;」を入れて、式の終了を宣言します。

Page 106: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

10-9

③ 演算式

②において intemp に入力された値が正の場合はこれに 16#00010000(65536)を加算後、負の

場合はそのまま 65536 を減算するとその値が実数値で温度表示値の 10 倍の値になります。すなわ

ち、実際の温度 TempR はこれを 10 で割って得られます。

Adw:= head + intemp; TempR:=(DWORD_TO_REAL(adw)-65536)/10

■ 上式の意味は以下のようになります。

adw= head + intemp TempR =((adw を DWORD から実数に変換した値)-65536)÷10

■ <参考>以下の演算素子は数値や式を( )でくくります。 データ選択素子 c:= MAX(a,b); データ選択素子 c:= SEL(%IX0.1,a,b); 変換素子 d:= INT_TO_WORD(a + b); ビットシフト素子 d:= SHR(%IW0,2); 数値演算素子 t:= LOG(a + b); 数値演算素子 q:= EXPT(a,56);

■ <参考>論理演算素子は以下のように左右に並べていきます。 e:= %IX0.0 OR(%IX0.1 AND %IX0.3 AND %IX4.0); e:= NOT(%IX0.1 AND %IX0.3);

■ <参考>四則演算素子、比較演算素子は以下のようになります。

演算子 内容 例 NOT 否定 e:= NOT %QX5.0 AND %QX5.1;

* / MOD

乗算 除算 剰余(余り)

C= a*b; C= a / b; C:= a MOD b;

+ -

加算 減算

C:= a + b; C:= a-b;

<,>, <=,>= 比較演算子 GT,LT,GE,LE

%QX5.0:= a>b; %QX5.1:= a<b; %QX5.2:= a<=(b + c); %QX5.3:= (a + b)>=c;

= <>

等式(EQ) 不等式(NE)

%QX5.0:= c =(a + b); e:= a<>(b + c);

Page 107: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

10-10

<RangeChanger(FB)の解説> ① 温度範囲の算出変換したい温度範囲を求めて Scale という変数に実数で代入しています。 ② 変換式 1

OutMax という変数にはそのモジュールで出力したい最高値が、電圧や電流値の物理単位で入ってい

ますが、これを OutMax2 という計算のための中間変数に代入しています。 ③ 変換式 2

変換式 2 を解釈すると以下のようになります。 OutReal=(現在の温度-最低温度)×(出力したい最高値)× 4095÷10 ÷(変換したい温度範囲)

750-550 は 0~10V、750-552 は 0~20mA、750-554 は 4~20mA、いずれのモジュールも 12 ビット

分解能(4095)なのでここでは変換したい単位温度あたりの制御数値(10 進数で)が得られます。

Page 108: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

10-11

④ 条件文

ここで使用している条件文は「CASE」ですが、Module に入力されている 6 桁のモデル名をダブルワ

ードの整数と見なしてそれぞれをケース分けし、実行式を選択しています。条件文「CASE」の解説

は以下のとおりです。

「CASE」 式の結果として整数値によって実行式(文)を実行します。 公式 例

CASE Module OF 750550:(*0-10V*); <実行式> 750552:(*0-20mA); <実行式> 750554:(*4-20mA); <実行式> ELSE <実行式> END_CASE;

CASE <整数式または整数値> OF <整数選択値 1>:<実行式> <整数選択値 1>:<実行式> <整数選択値 3>:<実行式> ELSE <実行式> END_CASE;

■ CASE の後に文字式が続く場合は CASE と文字式の間はスペースを空けます。 ■ CASE の後は式ではなくて整数値が入る変数のみでもかまいません。 ■ この条件式は CASE~END_CASE で完結します。END_CASE の後は必ず「;」を入れて、条件 文の完了を宣言します。 ■ 実行式の後は必ず「;」を入れて、式の終了を宣言します。 ■ ELSE はどのケースにも当てはまらない場合の実行式を入れます。ELSE 項は無くてもかまいませ ん。

⑤ ビットシフト

④では実際のモジュールの分解能 12 ビット(4096)で計算してありますが、当社の出力モジュール

は 1ch あたり 16 ビットになっています。そこでモジュールフォーマットにあてはまる様に左へ 3 ビ

ットシフトさせています。

CalWord:= REAL_TO_WORD(OutReal);Calword2:= SHL(CalWord, 3); OutWord:= Calword2 + 16#0007;

■ OutReal を実数からワードに変換して CalWord に入力した時点での状態。

上位ビット 下位ビット ××××○○○○○○○○○○○○ ○:数値を表す有効ビット

×:無効ビット

Page 109: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

10-12

■ CalWord を左へ 3 ビットシフトして CalWord2 へ入力された時点での状態。 上位ビット 下位ビット ×○○○○○○○○○○○○××× ○:数値を表す有効ビット

×:無効ビット

■ CalWord2 に入っている 16 ビットデータのうち、下位の 3 ビットはシフトによって生じた

新しいデータで、実際にはすべて FLASE(0)になっています。当社のモジュールはこの下位 3 ビットは使用しませんが、データの安全性を確保する意味ですべて TRUE(1)にします。具体的 には 16#0007(2#00000111)を加算します。

上位ビット 下位ビット ×○○○○○○○○○○○○000 ○:数値を表す有効ビット 加算 2#00000111 ×:無効ビット

上位ビット 下位ビット ×○○○○○○○○○○○○111

■ 最終的に計算されたデータがこのファンクションブロックの出力変数である OutWord

にアサインされて終了です。

10-6 ST(ストラクチャード・テキスト)におけるその他の公式の解説

参考:<「IF」および「CASE」以外の ST の条件文>

「FOR…DO」反復変数の値に応じて、いくつかの実行式(文)を繰り返し実行します。 ここで扱われる変数は SINT,INT,DINT などの整数データ型です。

公式 例

FOR <初期化された反復変数> TO <最終値の式あるいは値> BY <増加式あるいは値> DO <実行式>; END_FOR;

FOR k:= 0 TO 100 BY 2 DO Buffer[k]:= data[100-k] END_FOR;

■ FOR~TO~BY の中に入る式(値)はすべて整数型です。 ■ FOR~TO~BY の後に「;」は不要です。 ■ BY の次に来る値はインクリメントする数を意味します。BY を省略した場合は自動的に

インクリメントが 1 になります。 ■ 実行式の後は必ず「;」を入れて、式の終了を宣言します。

Page 110: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

10-13

「REPEAT ... UNTIL」ある特定のブール式が真である間、1 つ以上の文を実行します。 公式 例

REPEAT <実行式>; UNTIL <ブール条件式> END_REPEAT;

k:= 0; REPEAT k:=k+1; UNTIL k= 256 END_REPEAT;

■ ブール式は実行式の実行後に評価され、値が真の場合は REPEAT ... UNTIL 内の実行式が実行さ れません。 「EXIT」 反復文の中で、反復ループを途中で終わらせることができます。ループ中にこの EXIT 文に達すると、

直ちに反復ループを抜け出します。

「RETURN」 ファンクションやファンクション・ブロックの本体内で、コードの途注で直ちに終了するのに利用で

きます。ファンクション内で RETURN 文を実行すると直ちに呼び元に戻ります。 参考:<ファンクションブロック(FB)の呼び出し>

標準装備されているFBやライブラリの中にあるFBの記述については、テンプレートを呼び出します。

① トップメニューから Insert → Function Block で挿入メニューを表示し、ソフトメニューの

Function Block を選びます。

Page 111: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

10-14

② 目的のファンクションブロックを選びます。

③ そうすると、該当ファンクションブロックのテンプレートが表示されます。

④ ファンクションブロック(FB)の場合は、変数を定義して FB に名前を付けなければ

なりませんので通常の変数定義の手順で定義します。また括弧内の入力・出力変数には必要な入出力

を割当ててください。

Page 112: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

11-1

11 外部との通信(Ethernet)

11-1 プログラム駆動中の Ethernet コントローラへのデータ受け渡し

Ethernet コントローラ(750-841)でプログラムを RUN させながら、Ethernet 経由でリアルタイムで

計算結果を読み出したり、RUN 中のプログラムへデータを渡すには、入出力モジュールが割り当てら

れていない変数領域を使用します。 Modbus/TCP プロトコルで定義されているアドレスは入出力それぞれ 256 ワード分ですが、750-841ではそれぞれ 512 ワード分を準備しており、入出力モジュールが割り当てられないそれぞれ 256 ワー

ド分を外部とのデータ入出力バッファとして使用することができます。 また、プログラムが RUN 中であっても、入出力モジュールのデータは Modbus/TCP コマンド、ある

いは DLL 経由で読出し、書込みが可能です。但し、出力モジュールへの外部コマンドとバスカプラ内

のプログラム(WAGO-IO-PROCAA による)が重なる場合はバスカプラ内のプログラムによるデータ

が優先されます。

<750-841 のプログラム内部変数と通信アドレスの関係>

Ethernet-LAN から

のアクセス

アクセスする

ためのModbus/TCPアドレス

WAGO-IO-PRO で割

り当てられる変数

内部プログラム

(WAGO-IO-PRO) による書込み

外部から

の 書込み

① 入力モジュールのデ

ータを読み出し

0×0000 ~

0×00FF

%IW0 ~

%IW255 不可 不可

② バスカプラから データ読み出し

(計算結果を読出し)

0×0100 ~

0×01FF

%QW256

~ %QW511

可 不可

③ 出力モジュールへ のデータ書き込み

0×0200 ~

0×02FF

%QW0 ~

%QW255 可 可

バスカプラへデータ

を書き込み (内部プログラムへ

データを渡す)

0×0300 ~

0×03FF

%IW256

~ %IW511

不可 可

⑤ バスカプラへデータ

を読み書き

0×3000 ~

0×5FFF

%MW0

~ %MW12287

可 可

●その他のレジスタの内容については 750-841 マニュアルを参照願います。

Page 113: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

11-2

● 標準添付 wago_io.dll を利用した場合のデータの送受信

Ethernet TCP/IP・UDP/IP

WAGO_SetRegData( )WAGO_GetRegData( )

WAGO_SetRegData( ) WAGO_SetDigitalData( ), WAGO_SetAnalogData( )

WAGO_GetRegData( ) WAGO_GetRegData( ),WAGO_GetData( )

750-842 内部

WAGO-IO-PRO 内のプログラム

②プログラム

計算結果読出し

④プログラムへ

データを渡す

③出力モジュールへ

データ書込み

プログラムでこの値を読み込む

0x0100

0x01FF

0x0300

0x03FF

%IW256

%IW511

%QW256

%QW511

出力モジュール

入力モジュール0x0000

0x00FF

0x0200

0x02FF

%IW0

%IW255

%QW0

%QW255

0×3000

0×3FFF

%MW0

%MW4095

⑤データの読書き

両方が可能

①入力モジュール

データ読出し

Page 114: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

11-3

11-2 BROADWIN 標準 Modbus/TCP ドライバを使用した場合

Braodwin の場合、入力アドレスが 30001~出力アドレスは 40001~ですが、各々最初の 256 ワード

は実際の I/O のデータをアクセスするための番地として使用します。

<750-841 のプログラム内部変数と Broadwin の通信アドレスの関係>

Ethernet-LAN からの

アクセス Broadwin アドレス

WAGO-IO-PRO で割り当てられる

変数 割り当てられるモジュール、データ

① 入力モジュールの データを読み出し

30001 ~

30256

%IW0 ~

%IW255

入力モジュールが対象

(WAGO-IO-PRO でこの領域には

書込不可)

② バスカプラからデータ

読み出し (計算結果を読出し)

30257 ~

30512

%QW256 ~

%QW511

WAGO-IO-PRO で計算したデータ

を書き込む

③ 出力モジュールへの データ書き込み

40001 ~

40256

%QW0 ~

%QW255 出力モジュールが対象

④ バスカプラへデータを

書き込み(内部プログ

ラムへデータを渡す)

40257 ~

40512

%IW256 ~

%IW511

WAGO-IO-PRO のプログラムで データを読み込む

Page 115: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

11-4

● Broadwin(Webaccess)経由で 750-841 へのデータ受け渡し

Ethernet TCP/IP、UDP/IP

40257~40512 40001~40256 30257~30512 30001~30256

750-841 内部

出力モジュール

入力モジュール0x0000

0x00FF

0x0200

0x02FF

0x0100

0x01FF

%IW0

%IW255

%QW0

%QW255

%IW256

%IW511

%QW256

%QW511

WAGO-IO-PRO内のプログラム

①入力モジュール

データ読出し

②プログラム

計算結果読出し

④プログラムへ

データを渡す

③出力モジュールへ

データ書込み

外部へ渡したいデータをここへ書き込む

プログラムでこの値を読み込む

外部からのコマンドとプログラムで

の書込みが同時の場合はプログラム

による書込みデータが優先される

0x0300

0x03FF

Page 116: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

11-5

11-3 発紘電機(株)社製タッチパネルとの Modbus/TCP による接続

発紘電機社製のタッチパネル(モニタッチ)で接続できる製品は現在のところ以下のとおりです。1台のタッチパネルにて最大 32 台までの 750-841(750-842、750-342、750-341)が接続できます。

機種 解像度 機種 解像度

V708iSD V710iT V710iTD V710iS V710iSD V712iS V712iSD

800×600 8 インチ

640×480 10インチ

640×480 10インチ

800×600 10インチ

800×600 10インチ

800×600 12インチ

800×600 12インチ

V712iSM V712iSMD V710iTM V710iTMD V706TMD V706CMD V706MMD

800×600 12 インチ

800×600 12 インチ

640×480 10 インチ

640×480 10 インチ

320×240 5.7 インチ

320×240 5.7 インチ

320×240 5.7 インチ

※印 V706 シリーズについては Ethrenet オプションが必要です。

<750-841 のプログラム内部変数と通信アドレスの関係>

Ethernet-LAN からのアクセス

アクセスする為

の Modbus/TCPアドレス

WAGO-IO-PRO で割

当てられる変数

内部プログラム

(WAGO-IO-PRO)に

よる書込み

外部から の書込み

① 入力モジュールの データを読み出し

300001 ~

300256

%IW0 ~

%IW255 不可 不可

② バスカプラから データ読出し

(計算結果を読出し)

300257 ~

300512

%QW256 ~

%QW511 可 不可

読 300513

~ 300768

③ 出力モジュール

データへのデータ 読み書き

書 400001

~ 400256

%QW0

~ %QW255

可 可

読 300769

~ 301024

④ バスカプラへ データを読み書き

書 400257

~ 400512

%IW256

~ %IW511

不可 可

読 312289

~ 316384

⑤ バスカプラへ データを読み書き

書 412289

~ 416384

%MW0

~ %MW4095

可 可

読 100001~ 不可

⑥ デジタルビットの 読み書き

書 000001~

デジタルモジュール

が挿入されている アドレス

Page 117: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

11-6

● 発紘電機社製モニタッチからアクセスする場合のアドレスマップ

312289~、412289~

300769~、400257~ 400001~、300513~

300257~ 300001~

750-841 内部

WAGO-IO-PRO 内のプログラム

0x0100

0x01FF

%QW256

%QW511

0x0300

0x03FF

%IW256

%IW511

プログラムでこの値を読み込む

出力モジュール

入力モジュール

0x0000

0x00FF

0x0200

0x02FF

%QW0

%QW255

%IW0

%IW255

0×3000

0×3FFF

%MW0

%MW4095

①/⑥入力モジュール

データ読出し

②プログラム

計算結果読出し

③/⑥出力モジュール

へデータ読書き

④プログラムへ

データ読み書き

⑤データ読み書き

両方が可能

Page 118: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

12-1

12 ピアーツーピア通信

12-1 概要

ワゴ I/O システムの Ethernet バスカプラ同士で Modbus/TCP あるいは Modbus/UDP で相互通信を行

いデータ交換を行います。交換されたデータを各々のバスカプラの先頭アドレスからデータをアサイ

ンすることによって、離れた場所に入力されたデータを手元で出力するなど、ピアーツーピア通信が

実現できます。 データ通信をさせるための上位のパソコンやコントローラは不要で、WAGO-IO-PRO でプログラミン

グすることによって複数のノードを順番に接続してデータ通信を行う Polling 通信や自分の状態が変

化したときだけパケット通信を行う COS 通信(Change Of State)などが可能です。

Page 119: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

12-2

12-2 ライブラリと使用関数名

通信に使用する ETHERNET_MODBUSMASTER_TCP または ETHERNET_MODBUSMASTER_UDPの関数は、ModbusEthernet_03.lib(Ethernet_OpenClose.lib + ModbusEthernet_03_JP.lib)の中に収

められています。ライブラリとサンプルプログラムについては、 http://www.wago.co.jp/io

のソフトウェアダウンロードのページからダウンロード出来ます。

入出力端子名 変数の種類 変数の型 説明

StrIP_ADRESS 入力 文字列 通信先のバスカプラの IP アドレスを指定します。 bUNIT_ID 入力 バイト 16#01 に設定しておきます。 bFUNCTION_CODE 入力 バイト 16#17(データ交換用コード番号)に設定します。

wREAD_ADDRESS 入力 ワード 通信相手の入力アドレスを 16 進数で設定します。16#0000 の

場合は相手のバスカプラ中の入力先頭アドレスを意味します。

wREAD_QUANTITY 入力 ワード 上で指定したアドレスから何ワード分読むかを 16進数で設定し

ます。16#0003 の場合は 3 ワード分読み出すことを意味します。

ptREAD_DATA 入力 ポインタ 通信相手から読み出したデータを受信バッファに書き込むとき

に受信バッファのアドレスのポインタです。オペレーション

「ADR」を使用して入力してください。

wWriteAddress 入力 ワード 通信相手の出力アドレスを 16 進数で設定します。16#0000 の

場合は相手のバスカプラ中の出力先頭アドレスを意味します。

wWriteQuantity 入力 ワード 上で指定したアドレスから何ワード分書き込むかを 16進数で設

定します。16#0003 の場合は 3 ワード分書き込むことを意味し

ます

ptSEND_DATA 入力 ワード 通信相手の出力アドレスにデータ書き込むときに自分の送信バ

ッファアドレスのポインタです。オペレーション「ADR」を使

用して入力してください。

xSTART 入力 ビット 通信開始の指示をビットで指定します。FALSE→TRUE の立ち

上がりで通信動作を開始します。

xRESET 入力 ビット 通信状態をリセット(初期状態に戻す)ときに使います。通常

は FALSE にしておいてください。

tTIME_OUT 入力 時間データタイムアウト処理時間を指定します。この時間内で通信が完了

しない場合は自動的に処理を中止します。

wERROR 出力 バイト 通信エラーが発生したときにエラーコードを出力します。通常

は使用しません。

xREADY 出力 ビット 通信動作が終了するとこの出力は FALSE から TRUE に変化し、

動作が始まると再び FALSE に戻ります。 bRESPONSE_UNIT_ID 出力 バイト 通常は使用しません。

Page 120: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

12-3

12-3 ライブラリとサンプルプログラムのダウンロードとコピー

750-841 のピアツーピア通信には ModbusEthernet_03.lib を使用しますが、日本語のウィンドウズ OS の場合、OS の設定状況によってソフトウェアコンパイルがうまくいかないことがあります。この場

合は Ethernet_OpenClose.lib + ModbusEthernet_03_JP.lib を使用してください。サンプルプログラ

ムは TCP 通信と UDP 通信のものがありますのでダウンロード後、以下のファイルをそれぞれのフォ

ル ダ に コ ピ ー し て く だ さ い 。 サ ン プ ル プ ロ グ ラ ム 本 体 は Ethernet_OpenClose.lib + ModbusEthernet_03_JP.lib を使用しています。

(プログラム本体)

841_trans_TCP.pro → 841_trans_UDP.pro → C:¥Program Files¥WAGO Software¥ CoDeSys V2.3¥Projects 841_cos_UDP.pro → 841_poll_UDP.pro →

(ライブラリ)

Ethernet.lib → Ethernet_OpenClose.lib → C:¥Program Files¥WAGO Software¥ CoDeSys V2.3¥Targets ModbusEthernet_03_JP.lib → ¥WAGO¥Libraries¥32_Bit

または Ethernet.lib → C:¥Program Files¥WAGO Software¥ CoDeSys V2.3¥Targets

ModbusEthernet_03.lib → ¥WAGO¥Libraries¥32_Bit (注意) ●ライブラリフォルダには¥32_Bit と¥16_Bit がありますが、¥32_Bit が 750-841 専用のライブラリフ ォルダです。 ●プログラムを読み込んだ後でモジュールの設定を行ってください。「Resources」→ 「PLC Configuration」を選択して、 Append Module および Insert Module を使って 接続されている数のモジュールを設定してください。

Page 121: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

12-4

12-4 プログラム内容の解説(1 対 1 通信)

ここでは、841_trans_TCP.pro および 841_trans_UDP.pro のプログラム内容について解説します。 750-841 752-342 受信バッファの定義

通信相手の入力データを読み出してこのデータを格納しておくバッファを自己定義します。サンプル

プログラム中では Rec_Buffer という名前で 3 ワード定義しています。データ ARRAY で定義してい

ますので、メモリ容量が許す限り何ワード分でも定義可能です。 Rec_Buffer ARRAY[1..3]OF WORD ReadAddress 16#0000 ReadQuantity 16#0003

●受信バッファをワード ARRAYで定義します。ここでは 3 ワード

分を定義しています。

●接続先の I/O システムの入力バッ

ファを先頭アドレスから 3 ワード分

読み込むことを意味します。

Page 122: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

12-5

送信バッファの定義

通信相手の出力バッファに送るデータを格納しておくバッファを自己定義します。サンプルプログラ

ム中ではSend_Bufferという名前で 3ワード定義しています。データARRAYで定義していますので、

メモリ容量が許す限り何ワード分でも定義可能です。

Send_Buffer ARRAY[1..3]OF WORD WriteAddress 16#0000 WriteQuantity 16#0003

送信相手の IP アドレス、送信時間間隔

送信相手の IP アドレス、送受信の繰り返し時間間隔を設定します。サンプルプログラムではタイマー

関数を用いて時間インターバル 10ms を設定しています。タイムアウトは 100ms に設定しています。

TCP 通信を行う場合、時間インターバルは 100ms 以上、タイムアウトは 1000ms 以上に設定してく

ださい。

この通信用ファンクションブロックは通信一回ごとに Ethernetポートのオープン→送受信→クローズ

を繰り返します。ポートオープンは「xSTART」が「TRUE」になったタイミングで行われ、通信が終

了してポートをクローズした後は Finish が「TRUE」になります。

●送信バッファをワード ARRAYで定義します。ここでは 3 ワード

分を定義しています。

●接続先の I/O システムの出力バッ

ファへ先頭アドレスから 3 ワード分

書き込むことを意味します。

Page 123: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

12-6

Send_Buffer へのデータのアサイン

毎回送信している Send_Buffer には自分の入力データをアサイン(割り当て)します。

Rec_Buffer 内のデータのアサイン

受信されたデータは Rec_Buffer に記録されますが、これを自分の出力バッファーにアサイン(割り

当て)プログラムが必要になります。順番を逆にアサインすることによって相手の入力順と逆の順番

で出力させることも可能です。

Page 124: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

12-7

12-5 Polling 通信のプログラム内容の解説

ここでは、841_poll-UDP.pro のプログラム内容について解説します。例えば複数のノードと通信して

データの送受信を行う場合は xReady(通信動作終了)の信号を利用して複数のファンクションブロ

ックが時系列的に送受信を繰り返すようにプログラムしていきます。

(841_poll_UDP.pro の内容)

プログラムステップ プログラム処理内容の説明

0001~0002 Master_a に接続されている Send_Buffer_a[1]~Send_Buffer_a[2]へ、入力

値領域の値 %IW0~%IW1 をアサイン(代入)処理。

0003~0004 Master_b に接続されている Send_Buffer_b[1]~Send_Buffer_b[2]へ、入力

領域の値 %IW2~%IW3 をアサイン(代入)処理。

0005 Master_a にて’192.192.10.76’と UDP 通信して Send_Buffer_a の値を送信、受信

した値を Receive_Buffer_a にか格納。終了後 Finish_a(xReady)が ON。

0006

Finish_a が True に変化するとこれをスタート信号として Master_b に

て’192.192.10.78’と UDP 通信して Send_Buffer_b の値を送信、受信した値を

Receive_Buffer_b にか格納。終了後 Finish_b(xReady)が ON。Finish_b はステ

ップ Master_a の通信スタート信号として使用。

007~0008 Recive_Buffer_a[1]~Recive_Buffer_a[2]に格納されたデータを出力領

域 %QW0~%QW1 へアサイン(代入)処理。

0009~0010 Recive_Buffer_b[1]~Recive_Buffer_b[2]に格納されたデータを出力領

域 %QW2~%QW3 へアサイン(代入)処理。

Page 125: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

12-8

12-6 COS 通信(Change Of State)のプログラム解説

ここでは、841_cos_UDP.pro のプログラム内容について解説します。Polling 形式で通信を行わせる

場合は一定時間間隔でパケット送信が行われます。これに対して当該ノードの入力に何か変化が発生

したときだけ送受信の動作を行わせる(Change of State)のがこのサンプルプログラムです。 ① ステップ 0001 入力領域%IW0 のデータをまず内部領域の%MW0 へ代入(アサイン)し

ます。 ② ステップ 0002 内部領域の%MW0 と%MW1 のデータを比較して等しくない場合に’start’

を True にします。 ③ ステップ 0003~0005 Send_Buffer[1]~Send_Buffer[3]へ%IW0~%IW3 の値をアサイン(代

入)します。 ④ ステップ 0006 ②で出力された‘start’が ON(True)かあるいは 10 秒が経過するかのどち

らかの条件で Master1 の通信 FB が動作します。つまり、入力の状態が変

化しなくても 10 秒に一回は通信動作を行います。COS 通信の場合は通信

ミスをカバー するためにこのような処理が必要となります。

⑤ ステップ゚ 0007 通信動作直後に%IW0 を%MW1 にアサイン(代入)します。これによっ

て%MW0と%MW1が等しくなります。プログラムはステップ 0001~0010まで常に回っていますので、入力値%IW0 が1ビットでも変化するとステッ

プ 0002 で検出されて‘start’が True になって通信動作が行われます。 ⑥ ステップ 0008~0010 Rec_Buffer[1]~ Rec_Buffer[3]に格納されたデータを%QW0~%QW3

にアサイン(代入)します。

Page 126: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

13-1

13 リアルタイムクロックライブラリ

13-1 関数の説明

SysRTC.lib には 750-841 本体に内蔵されたリアルタイムクロックの読み取りと設定に関する関数が入 っています。 ① SysRtcCheckBattery 750-841 内にあるクロックバックアップ電池の良否を判定します。Dummy には BOOL 値を入力 しますが、TRUE であっても FALSE であってもかまいません。出力は BOOL 値で、バッテリーが 正常の場合は TRUE, 不良の場合は FALSE を返します。 ② SysRtcGetTime 750-841 内にあるリアルタイムクロックから日付時刻データを DT 形式で取得します。Dummy に は BOOL 値を入力しますが、TRUE であっても FALSE であってもかまいません。 以下は得られた日付時刻のデータの「:」と「-」を削除して日付の数字文字列および時刻の 数字文字列を取出した例です。

Page 127: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

13-2

③ SysRtcSetTime 750-841 内にあるリアルタイムクロックに日付時刻データを設定取得します。、 このファンクションブロックをプログラム中に置くと毎サイクルで書込みを実行してしまいます ので以下の例のように指定したときだけ書込みを実行するようにプログラムしてください。 以上

Page 128: WAGO-IO-PRO CAA ハンドブック...1-1 WAGO-IO-PRO CAA ハンドブック ポイント解説マニュアル WAGO-IO-PRO CAA は、WAGO-IO-PRO32のグ レードアップバージョンですが、現在対応してい

13-3

ワゴジャパン株式会社

I/O グループ 〒136-0071 東京都江東区亀戸 1-5-7 日鐵 ND タワー4F

TEL : 03-5627-2059 FAX : 03-5627-2055

E-mail:[email protected]

Web: http://www.wago.co.jp/io

Copyright © 2005, by WAGO Japan Corporation

All rights reserved.