langEnglish
INplc技術情報
ファイル名 サイズ 内容
FILE_SMPL.zwe 593 KB サンプルプロジェクト Download
※1 このサンプルプロジェクトは、MULTIPROGの圧縮形式(~.zwe)で保存されたプロジェクトです。
      IEC 61131-3標準のLD言語(Ladder Diagram)で作成しています。
「FILE_SMPL.zwe」は、ファームウェアライブラリ「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動作確認用サンプル」をご覧ください。
EthComFWLを使用して1024バイトのデータを自身に送信し自身で受信するサンプルです。
EthComのFWLの適応・設定を行いサンプルを実行します。
①開発環境でINplc Configuration Toolを起動
②IO・FWL設定画面を開く
③INplcコントローラにEthComのFWLをインストール
④EthComFWLのUseにチェック
⑤EthComFWLの設定ファイルEthCom.iniを下記の内容に変更

EthCom.ini設定内容
[SOCKET.1]ポート番号9911で待つTCPサーバ設定
[SOCKET.2]自身のポート番号9911へ接続するTCPクライアント設定
	[SOCKET]
	NUM=2

	[SOCKET.1]
	TYPE=0
	IP=127.0.0.1
	PORT=9911
	LOCALPORT=0
	
	[SOCKET.2]
	TYPE=1
	IP=127.0.0.1
	PORT=9911
	LOCALPORT=0
⑥設定を保存しINplcコントローラをメッセージに従い再起動
⑦サンプルプログラムをMULTIPROGで開く
⑧コンパイルしコントローラへダウンロード
⑨コールド実行
⑩オンラインデバッグモードへ変更
⑪Recv_Main POUの「テスト開始」変数をTRUEにすると1024バイト送信し自身で1024バイトを受信します。
ファイル名 サイズ 内容
EthComLib_Sample.zwe 34 KB INplc-SDK(Express) v3.08で作成したサンプルプロジェクトです。 Download
  • ダウンロードしたファイルを利用して、万が一障害などが発生しても一切の責任を負いません。必ずご自身の責任においてご利用ください。
  • ダウンロードしたファイルを許可なく再転載や再配布することは禁止いたします。
※EtherCAT® は、Beckhoff Automation GmbH, Germanyの登録商標です。