# メモリデバイス

マニュアル > 機器接続ガイド > メモリ > 接続手順(仮想通信) > # メモリデバイス |

メモリデバイスについて

メモリデバイスは仮想デバイスと同様に本パッケージ上のメモリアドレス空間を使用したデバイスですが、PLCをシミュレートしていません。しかしながら、書き込んだ値をハードディスクへ保持する機能や、タグの設定で時刻（現在時刻をタグ値にする設定）・パルス（ON後一定時間で自動でOFFするタグ設定）・生存確認（一定時間書き込みが無いと異常を判別する設定）などの機能を有します。

ハードディスクへ保持する機能（ディスクタグ）では、HI/LO条件値やシステムの設定値などを簡単に保持でき、複数のクライアント間でデータ共有も出来るため、設定値の保存などに適しております。

Serverアプリケーションの二重化運用にも対応しており、メインアプリケーションのダウン時、待機側のServerアプリケーションで保持した値を復元することができます。

デバイス一覧

対応するデバイスは以下のとおりです。

デバイス | 説明
ビットタグ | ブール型（ビット）の値を扱えます。
数値タグ | 数値（倍精度浮動少数）を扱えます。
文字タグ | 文字列を扱えます。
時刻文字タグ | 現在の時刻をタグの値（文字列）にします。日付や時刻のフォーマットを自由に定義できます。 例）%Y/%m/%d %H:%M:%S → 2003/01/01 00:00:00 例）%Y%m%d → 20030101 現在の時刻をタグの値（文字列）にします。日付や時刻のフォーマットを自由に定義できます。 例）%Y/%m/%d %H:%M:%S → 2003/01/01 00:00:00 例）%Y%m%d → 20030101
時刻ビットタグ | 時刻条件によりON/OFF するビットです。 例）下記の設定では月曜から金曜までの毎日９時０分０秒～１６時５９分５９秒の間ON します。
ディレイビットタグ | ON 書き込み後、待ち時間（msで指定）後に実際にON するビットです。待ち時間中にOFFが書き込まれるとONにはなりません。
パルスビットタグ | ON 書き込み後、パルスON時間（msで指定）後に自動的にOFF するビットです。
生存確認タグ | 一定時間以上値が変化しなかった場合にON させるビットです。 例えば、他のクライアントから定期的に0から999までをインクリメント（毎回カウントアップし999までいくと0に戻す）した値を本タグに書き込みを行うと、書き込みが停止するまで本タグはONとなります。クライアントが止まったり、通信が止まると書き込みが行われなくなりますので、本タグがOFFとなり生存確認失敗と判断ができます。
Write要求カウンタ | 指定した対象のタグに値が書き込まれる度にカウントアップします。 詳細は「Write要求カウンタについて」を参照してください。

| 各デバイスの設定はパラメータから行います。パラメータ設定横のボタンを押すことで、設定ダイアログが表示されます。

値を保持する方法について

ビットタグ、数値タグ、文字タグの値をハードディスクへ自動的に保存し、値を保持できます。アプリケーションや、OSを再起動したとしても値は保持されます。

設定を行うには、ユニットプロパティの「通信設定」で設定ダイアログを開きます。値を保存するためのフォルダを1つ作成し、そのパスを指定して下さい。

値をディスクへ保存するタグをディスクタグと呼びます。それに対しディスクに値を保持しないタグをメモリタグと呼びます。本設定をしたユニット内のすべてのタグがディスクタグになります。

保存形式は下記の２つから選択できます。

1.形式1（旧バージョン形式）
タグ毎にファイルが作成されます。大量のタグを使用する場合は、形式2を選択してください。

2.形式2
ユニット毎にファイルが作成されます。特に大量のタグを使用する場合、形式1より高速に動作します。作成されるファイルは下記の２つです。

ユニット名.idx - インデックスファイル
ユニット名.val - 値が格納されているファイル

| ディスクタグは値が変化する度にハードディスクへ値を書き込むため、頻繁に値を変化させるような運用の場合は、ディスクへの書き込み負荷の影響上推奨しません。 そのような場合は、ブリッジアクションを併用し、通常は値を保持しないメモリタグを利用し、必要時タグイベントや定周期イベント等でブリッジアクション経由でディスクタグにメモリタグから値を流し込むように考慮してください。

| 値保存フォルダは他の目的に利用しないで下さい。二重化設定する場合は、他のユニットとフォルダを共用しないで下さい。

| メモリタグとディスクタグの両方を使用したい場合は、メモリデバイスのユニットを2つ追加し、片側のみディスクタグの設定を行います。

Write要求カウンタについて

Write要求カウンタは指定した対象のタグに書き込みが行われる度にカウントアップするタグです。

そのため、タグに何度書き込みが発生したかを取得したり、タグに対して書き込みが発生したタイミングを取得したりすることができます。

タグの指定方法は、変化を検出したいタグ名に「_CNT」キーワードを指定します。

指定方法 | 例
[タグ名]_CNT | T01_CNT

1.メモリデバイスを追加し、数値タグを追加する

2.タグをもう1つ追加する

3.追加した2つ目のタグ名を「T01_CNT」に変更し、通信設定タブより「write要求カウンタ」を選択する

4.オンラインにする

5.モニタリングを開始する

6.「T01」に値を書き込むと、連動して「T01_CNT」の値がカウントアップする

| write要求カウンタは同一フォルダ内のタグしか指定できません。そのため、ドライバやフォルダをまたいでタグを指定することはできません。

| Write要求カウンタは9999を上限として1周まわると、再び0からスタートします。

| 通常タグの値を書き換えると、値の変化をイベントで取得することができます。 ただし、同じ値から同じ値へ書き換わった場合は、値の変化がないと判断し、値の変化をイベントで取得することが出来ません。 例えば、0→10は変化を取得できますが、10→10は変化を取得することができません。 そのような場合、write要求カウンタを使用すると、10→10の書き込みが行われた場合もカウントアップするため、値を書き込んだ時のタイミングを取得することができるようになります。