※掲載されている内容は、INplc v2.10までの内容を元に作成しています。領域サイズなどはバージョンに合わせて適時読み替えてください。
■ INplcシステム共有メモリ(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エリア】にデータを書き込みます。
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の設定:
※TenAsys®, INtime®, eVM® and iRMX® are registered trademarks in USA of the TenAsys
Corporation.
Copyright© 1995
Micronet Co. All Rights Reserved.
|