INplc | HOME
※掲載されている内容は、INplc v2.10までの内容を元に作成しています。領域サイズなどはバージョンに合わせて適時読み替えてください。
INplcシステム共有メモリ(I/Oイメージ)について

  INplcシステム共有メモリ【I/Oイメージ】とは?   I/OイメージとI/Oドライバの関係について


INplcシステム共有メモリ【I/Oイメージ】とは?

I/Oイメージとは、PLCプログラムとI/Oデバイス間のデータを受け渡すために使用する共有メモリ領域【Iエリア】と【Qエリア】のことです。
【Iエリア】はI/Oデバイスから入力されるデータを格納する共有メモリで、【Qエリア】はI/Oデバイスへ出力されるデータを格納する共有メモリです。領域のサイズは、【Iエリア】と【Qエリア】ともに[65,535]バイトです。
PLCプログラムを開発する際に、I/Oイメージのどの位置(アドレス範囲)に、どのI/Oデバイスを割り当てるかをIO_Configurationで設定します。INPUTグループに設定したアドレス範囲の【Iエリア】からデータを読み込み、OUTPUTで設定したアドレス範囲の【Qエリア】にデータを書き込みます。



I/OイメージとI/Oドライバの関係について

PLCプログラムのデータは、I/Oイメージを介してI/Oデバイスとやり取りを行います。I/OイメージとI/Oデバイス間のデータ受け渡しにはI/Oドライバが必要となります。I/Oドライバが、I/OイメージとI/Oデバイスのデータ領域を紐づけることによって、I/OデバイスからIエリアに、QエリアからI/Oデバイスにそれぞれデータを受け渡すことができます。
ここで注意すべき点は、PLCプログラムはI/Oイメージのデータを参照し、外部機器(I/Oデバイスの先に繋がる機器やアプリケーション)はI/Oデバイスのデータを参照しているということです。つまり、PLCプログラムから見たデータ位置と、外部機器から見たデータ位置はまったく別であるということです

共有メモリI/Oドライバ「MemDrv」を使用した場合を例に説明します。(※ I/Oドライバ「MemDrv」については、こちらをご覧ください)
ユーザーアプリケーションは、共有メモリI/Oドライバが生成する共有メモリにデータを読み書きします。【PRO_MEM_OTxx】からデータを読み込み、【PRO_MEM_INxx】にデータを書き込みます。(xxは、IO_Configurationのドライバパラメータで設定したGroup Noの値です)

下図の設定を例にすると、【Iエリア】の[200]バイト目は、【PRO_MEM_IN01】の[0]バイト目に紐づいているため、ユーザーアプリケーションが【PRO_MEM_IN01】の[3]バイト目に書き込んだデータは、PLCプログラムから読み込む場合は【Iエリア】の[203]バイト目のデータとなります。 同じように、【Qエリア】の[500]バイト目は、【PRO_MEM_OT01】の[0]バイト目と紐づいているため、PLCプログラムが【Qエリア】の[502]バイト目に書き込んだデータは、ユーザーアプリケーションから読み込む場合は【PRO_MEM_IN01】の[2]バイト目のデータとなります。


IO_Configurationの設定:
 I/Oグループ  開始アドレス  長さ  I/Oモジュール  ドライバ パラメータ
 INPUT  200  5  INtime® Memory In  Group No : 1 , Memory Size : 4 KB , Memory Save : 0(なし)
 OUTPUT  500  5  INtime® Memory Out  Group No : 1 , Memory Size : 4 KB



※TenAsys®, INtime®, eVM® and iRMX® are registered trademarks in USA of the TenAsys Corporation.
Copyright© 1995 Micronet Co. All Rights Reserved.