langEnglish
INplc技術情報
ファイル名 サイズ 内容
PROC_TIM_SMPL.zwt 1,089 KB サンプルプロジェクト(※1)Basic/Pro+用 Download
PROC_TIM.fwpack 4 KB ファームウェアライブラリパック(INplc Ver.1.X用)(※2) Download
PROC_TIM.fwpack 4 KB ファームウェアライブラリパック(INplc Ver.2.X用) Download
PROC_TIM.zip 1.47 KB Pro+用ファームウェアライブラリ(※3) Download
※1 このサンプルプロジェクトは、MULTIPROGの圧縮形式(~.zwt)で保存されたプロジェクトです。
   IEC 61131-3標準のLD言語(Ladder Diagram)で作成しています。
※2 このファームウェアライブラリはEthernetのファームウェアライブラリと同時に使用しないでください。
※3 MULTIPROG Pro+をご使用の方はこのファイルを解凍しPROC_TIM_SMPL.zwtのライブラリとして参照設定してください。
「PROC_TIM_SMPL.zwt」は、処理時間の測定方法のサンプルです。
このサンプルでは、接点とコイルの基本命令20,000回の処理時間を1000回測定します。 基本命令5,000個を定義したファンクションブロックを4回呼んでいます。
また、このファンクションブロックは処理が多いため、IL言語で記述しています。
注意:
1)  処理時間は、ご利用になるハードウェア(コントローラ本体)の性能により異なります。
2)  INplc-Controllerに搭載されているCPUが Speed Step Technologyをサポートしている場合、次の点に注意してください。
サンプルプロジェクトを開く前に、速度計測機能「PROC_TIM」を適用する必要があります。
○PROC_TIMの適用は以下の通りです。
1) 「PROC_TIM.fwpack」をダウンロードし、開発環境の任意の場所に保存します。
2) INplc Configuration Panelを起動して、PROC_TIMを適用するINplc-Controllerへ接続します。
3) INplc Configuration Panelが表示されたら、「ファームウェアライブラリインストール」をダブルクリックします。
ファームウェアライブラリインストール
4) 「ファイルを開く」画面が表示されるので、1)で保存した「PROC_TIM.fwpack」を選択し、「開く」ボタンを押します。
5) しばらくすると「インストールが完了しました。再起動します」とメッセージが表示されるので、「OK」ボタンを押します。
6) INplcの再起動が開始されるので、しばらく待ちます。
7) 再度PROC_TIMを適用したINplc-Controllerへ接続します。
8) INplc Configuration Panelが表示されたら、「ファームウェアライブラリ情報」をダブルクリックします。
ファームウェアライブラリ情報
9) ファームウェアライブラリのバージョン情報画面が表示されるので、一覧に「Processing Time Measurement Firmware Library」が表示されていれば、PROC_TIM の適用は完了です。
★ Ver.2.0以降のバージョンをご利用のお客様は、下記の設定も行ってください。
10) INplc Configuration PanelのIO・FWL起動設定をクリックしてください。
INplc Configuration Panel
11) INplc Boot Configuration画面でDriveName[PROC_TIM]のUseにチェックを入れてSaveボタンにて保存しToolを終了してください。
INplc Boot Configuration画面

○サンプルプロジェクトの主な処理の流れは以下の通りです。
1)コールドスタート時に、空のファンクションブロックを4つ並べ、測定対象以外の処理時間を計測します。
2) 基本命令20,000回の処理時間を測定し1000件分を配列に保存します。 処理速度を保持する配列(LREAL型)は、データ型ワークシートに定義します。
データ型ワークシート
3) ストップ時に、誤差として 1)の時間を測定結果から除いてから平均/最大/最小を算出します。 測定結果の平均/最大/最小は、グローバル変数に表示されます。
グローバル変数

ファイル名 サイズ 内容
FILE_SMPL.zwt 593 KB サンプルプロジェクト(※1) Basic/Pro+用 Download
※1 このサンプルプロジェクトは、MULTIPROGの圧縮形式(~.zwt)で保存されたプロジェクトです。
      IEC 61131-3標準のLD言語(Ladder Diagram)で作成しています。
「FILE_SMPL.zwt」は、ファームウェアライブラリ「ProConOS.fwl」に収録されているファイル操作ファンクションブロックを 使用して、データファイル作成するサンプルです。
バイナリ形式及びテキスト形式(CSVファイルなど)のファイルを作成できます。 サンプルでは、バイナリ形式ファイルの読み書きと、テキスト形式ファイルの書込みを行います。
テキスト形式ファイルを扱う場合、直接STRING型(文字列)を指定する事ができないため、一度、BYTE型配列などの バッファに展開する必要があります。
バッファは、データ型ワークシートに定義します。
データ型ワークシート
本サンプルでは、数値データをテキスト形式で書き込むため、ユーザ定義ファンクション「BINtoTXT」の中で、数値を文字列(STRING)に変換し、それからバッファ(BYTE型配列)に変換します。 また、バッファに変換する際、データの末尾に改行コードを付加します。

EtherCAT通信内蔵タイプサーボモーターのCiA402インターフェースを使用し、ファームウェアライブラリ「ECAT_FWL」で制御する方法について説明します。
詳しくは、「EtherCAT通信(CiA402)によるサーボモーター制御」をご覧ください。

共有メモリアクセス用コンポーネント「INpMac」を組み込むことで、INplcの「共有メモリI/O 機能」が生成した共有メモリ領域を通して、PLC プログラムとデータの受け渡しを行うことができます。
詳しくは、「INpMac 特設ページ」をご覧ください。
(!) 上記とあわせて、こちらのページもご覧ください。
    ○ 「INplc システム共有メモリ(I/O イメージ)について
ファイル名 サイズ 内容
HMI_SMPL.zwe 26 KB INplc-SDK(Express) v3.05で作成したサンプルプロジェクトです。 Download
IO_CHK.zip 44 KB VC# 2008で作成したWindowsアプリケーションのサンプルプロジェクトです。
(INpMac v2.22で動作確認済み)
Download
  • ダウンロードしたファイルを利用して、万が一障害などが発生しても一切の責任を負いません。必ずご自身の責任においてご利用ください。
  • ダウンロードしたファイルを許可なく再転載や再配布することは禁止いたします。
「HMI_SMPL」は、共有メモリI/O機能を介してINplcと外部プログラムのデータ交換を行うサンプルです。 本サンプルでは、Visual Studio 2008 C#で作成したWindowsプログラムのINplcを介したエコー動作テストを行います。
注意:
 1)  サンプルプロジェクトを使用する前に、INplc の「共有メモリ機能」を有効にする必要があります。詳しくは、こちらをご覧ください。
 2)  Windowsプログラムを使用する前に、INplc-SDKのCD-ROMに収録されている共有メモリI/F 機能 「INpMac」をインストールする必要があります。
INpMacについては、こちらをご覧ください。

○ サンプルの主な処理の流れは以下の通りです。
 1)  Windowsプログラムは、「Windows -->INplc」のボタンが押された時に、I エリアにデータを設定します。
 2)  INplc(PLC プログラム)は、1ms 周期で I エリア から取得したデータを Q エリアに書き込みます。
 3)  Windowsプログラムは、100ms 周期で Q エリア のデータを画面に表示します。
Qエリアのデータを画面に表示

※ Windowsプログラムの起動時及び操作時に、INplcが起動されていない、または「共有メモリI/O機能」が有効になっていないなど、 データ交換に失敗した場合、以下のようなエラーメッセージが表示されます。
エラーメッセージ

概要

INtimeアプリケーションからINplc共有メモリへのアクセス

INplcの「共有メモリI/O機能」が生成した共有メモリ領域をマッピングして、PLCプログラムとデータの受け渡しを 行うことができます。

詳しくは「INplcシステム共有メモリ(I/O イメージ)について」をご覧ください。
※ この連携方法を使用するには、INplcの「共有メモリI/O機能」を有効にする必要があります。詳しくは、こちらをご覧ください。

INplcからINtime共有メモリへのアクセス

INplcの「INtime機能」を使用して、PLCプログラムからINtimeアプリケーションが生成した共有メモリへデータの 読み書きを行うことができます。
※ この連携方法を使用するには、INplcの「INtime機能」を有効にする必要があります。詳しくは、こちらをご覧ください。

概要

OPC通信

「INplc-OPC Server」を使用して、PLC プログラムのデータをOPC通信に使用することができます。
※ この連携方法を使用するには、別売の「INplc-OPC Server」が必要となります。詳しくは、こちらをご覧ください。

Ethernet通信

INplcの「Ethernet通信機能」を使用して、外部機器とのEthernet通信を行うことができます。(※1)
また、「リモート共有メモリI/O機能」からもEthernet通信による共有メモリを介したI/Oデータの受け渡しが可能です。(※2)
※1 この連携方法を使用するには、INplcの「Ethernet機能」を有効にする必要があります。詳しくは、こちらをご覧ください。
※2 この連携方法を使用するには、INplcの「リモート共有メモリI/O機能」を有効にする必要があります。詳しくは、こちらをご覧ください。

シリアル通信

INplcの「シリアル通信機能」を使用して、外部機器とのRS-232C/422/485通信を行うことができます。
※この連携方法を使用するには、INplcの「シリアル通信機能」を有効にする必要があります。詳しくは、こちらをご覧ください。

FL-net通信

INplcの「FL-net通信機能」を使用して、外部機器とのFL-net通信によるI/Oデータの受け渡しを行うことができます。
※この連携方法を使用するには、INplcの「FL-net通信機能」を有効にする必要があります。詳しくは、こちらをご覧ください。

ライブラリのインストール

INtimeアプリケーションからイベントタスクへイベントを発行する為に必要な下記のライブラリをINtimeの開発環境にインストールしてください。
下記のインストーラを実行しインストールを行ってください。
[INplc SDKのCD-ROM]\Util\INplc_IF_Library\INplcIFSetup.EXE
※ このライブラリはINplc2.0以降のバージョンからの提供です。

イベント発行用API

INpPostEvent()を使用しイベントを発行します。
※使用方法の詳細は[INplc SDKのCD-ROM]\Util\INplc_IF_Library\INplcIF_Manual.pdfをご覧ください。

500μs周期のイベント発行INtimeアプリケーション作成例

INtimeの開発環境でMicrosoft Visua Studio起動しプロジェクトの新規作成を行いINtimeのApplication Wizardを使用してください。   
500μs周期のイベント発行INtimeアプリケーション作成例1
生成するアプリケーションの種類を「ウィザードによりINtimeアプリケーションを構築」を選択します。   
500μs周期のイベント発行INtimeアプリケーション作成例2
追加する要素として「規則的周期で処理をするスレッド」を選択します。    
500μs周期のイベント発行INtimeアプリケーション作成例3
ウェイト方式を「低レベルスリープ方式」を選択します。
待ち時間μ秒を「500」を指定します。    
500μs周期のイベント発行INtimeアプリケーション作成例4
ウィザードを終了しINtimeアプリケーションを生成します。
INplc情報を取得[INpEnum()API]し、ウィザードで作成されたポーリングスレッド内にてイベント発行[INpPostEvent()]してください。    
500μs周期のイベント発行INtimeアプリケーション作成例5
※Visua StudioやINtimeのバージョンにより表現が違う場合も御座いますがご了承ください。

LabVIEW

LabVIEW(OPC クライアント)とINplc OPC serverの接続は、下記の図のように設定を行ってください。

  
LabVIEW(OPC クライアント)とINplc OPC serverの接続

LabVIEW 設定書式

OPC:/ OPC.OUT.PCOS.21/[OPC Serverリソース名].[プログラムインスタンス名].[変数名]?updaterate=[更新レート]

設定例

OPC Serverで設定しているリソース[TestResource]を使用し、PLCプログラムのプログラムインスタンス名[main]のローカル変数[C000]に対し入出力を行いたい場合。
LabVIEW側の設定は下記の内容となります。
[OPC:/OPC.OUT.PCOS.21/TestResource.main.C000?updaterate=100]


日本国内で多く使われているハードウェアPLCからINplcへと移植する際に便利な機能を
FWLとして提供しています。
以下の表をご覧ください。こちらをご利用いただくことでスムーズな移植が可能となります。
(※INplc Ver3.xからの実装となります。)
1. コントロール配列
No. FB名 概要
1 TON_Array 配列型タイマー
2 CTU_Array 配列型カウンタ

2. 型変換
No. FB名 概要
1 BIN16_TO_BIN32 INT型のL,Hを渡して、DINT型にして返す
2 BIN16_TO_UBIN32 INT型のL,Hを渡して、UDINT型にして返す
3 BIN32_TO_BIN16 DINT型を渡して、INT型のL,Hにして返す
4 UBIN32_TO_BIN16 UDINT型を渡して、INT型のL,Hにして返す
5 BIN16_TEST INT型の指定BITがON/OFFか確認し、BOOL型を返す
6 UBIN32_MOVE UINT型のL,Hを渡して、UDINT型にして返す

3. Bitデバイス
No. FB名 概要
1 BLOCK_RSET Bitデータの指定アドレスから指定点数分リセット(0設定 )
2 IO_BOOL_WRITE Bitデバイスへの書込み
3 IO_BOOL_READ Bitデバイスへの読込み
4 BIT_WRITE Bitデバイスへの書込み(配列化)
5 BIT_READ Bitデバイスへの読込み(配列化)
6 BIT_TO_INT Bitデバイスの先頭指定でINTデータ抽出
7 GET_16BitData INTデータからBitのINTデータ抽出

4. メモリ関連
No. FB名 概要
1 MEMSET_INT INT配列でのMEMSET
2 MEMSET_UINT UINT配列でのMEMSET
3 MEMCPY_16 INT配列でのMEMCPY

5. ブロック処理
No. FB名 概要
1 BIN16_BLOCK_ADD INT型ブロック加算
2 BIN16_BLOCK_SUB INT型ブロック減算

6. インクリメント・デクリメント
No. FB名 概要
1 BIN16_INC INTとしてインクリメントする
2 BIN16_DINC INTとしてデクリメントする
3 BIN32_INC UINT型としてINC処理を行う
4 BIN32_DEC UINT型としてDEC処理を行う
5 UBIN32_INC UDINT型としてINC処理を行う
6 UBIN32_DEC UDINT型としてDEC処理を行う

7. 時間
No. FB名 概要
1 DATE_RD 現在の年・月・日・時・分・秒を取得する
2 mDATE_RD 現在の年・月・日・時・分・秒・ミリ秒を取得する
3 SEC_TO_TIME 秒数から時分秒算出(INT型)
4 SEC_TO_TIMEU 秒数から時分秒算出(UINT型)
5 TIME_TO_SEC32 時分秒から秒数算出(DINT型)
6 TIME_TO_SEC32U 時分秒から秒数算出(UDINT型)

8. フリッカー
No. FB名 概要
1 CLOCK10ms 0.01秒フリッカ
2 CLOCK100ms 0.1秒フリッカ
3 CLOCK200ms 0.2秒フリッカ
4 CLOCK1s 1秒フリッカ
5 CLOCK2s 2秒フリッカ

INplcで取得したEtherCATのI/Oデータを、INpMacを使用してWindowsアプリケーションから参照する方法について説明します。
詳しくは、「EtherCATのI/OデータをWindows側から参照する方法」をご覧ください。
INplcに標準搭載されているI/OドライバおよびFWLの基本的な動作を確認するためのサンプルプログラムを掲載しています。
(※ 掲載内容は随時更新予定)
詳しくは、「IO・FWL動作確認用サンプル」をご覧ください。
※EtherCAT® は、Beckhoff Automation GmbH, Germanyの登録商標です。