EEPROM書き込み
P13命令は、データレジスタ(DT)に格納されているデータを、F-ROM/EEPROMに転送します。
入力
ENがFALSEからTRUEになると、ファンクションが1度実行されます。
保存するデータを格納しているデータレジスタDTの先頭アドレス
書き込む必要があるブロックの数。ブロックサイズは、PLC機種によって64または2048データレジスタです(下表「PLC機種別情報」参照)。
F-ROM/EEPROM先頭ブロックNo.
出力
ファンクション実行時、ENOはON (TRUE)になります。EN入力をカスケード接続するときに便利です。
F-ROM/EEPROMは、通常の保持エリアとは異なります。保持エリアのデータはリアルタイムで格納されます。電源遮断時に保持データがEEPROMメモリに格納されます。P13_EPWT命令は、命令実行時にのみデータをF-ROM/EEPROMに格納します。書き込める回数には制限があります(下表参照)。P13_EPWT命令は、規定の回数を超えて実行しないようにしてください。
例えば、常時ONフラグR901A (0.1秒クロックパルスリレー)で"P13_EPWT"命令を実行すると、EEPROMは100,000×0.1秒=10,000秒 (2.8時間)後に書き込みできなくなります。但し、位置決めパラメータなど、頻繁に変更しないデータを保持したいときには便利です。
2つの入力変数"s2_Number"、"d_Start"のいずれかには定数を割り付けてください。
PLC機種 |
FP0 2,7k C10/C14/C16, FP-e |
FP0 5k C32 |
FP0 10k T32CP |
FP-Sigma, FP-X, FP0R |
FP0H |
---|---|---|---|---|---|
ROM |
EEPROM |
EEPROM |
EEPROM |
F-ROM |
F-ROM |
ブロックサイズ(1ブロック) |
64ワード (64x16ビット) |
64ワード (64x16ビット) |
64ワード (64x16ビット) |
2048ワード (2048x16ビット) |
2048ワード (2048x16ビット) |
F-ROM/EEPROM先頭ブロックNo. |
0~9 |
0~95 |
0~255 |
0~15 |
0~31 |
実行毎の読み出し /書き込みブロック数 |
1~2 |
1~8 |
1~255 |
1 (書き込み) 1~16 (読み出し) |
1 (書き込み) 1~32 (読み出し) |
書き込み時間(追加スキャンタイム) |
20ms以下(1ブロックあたり) |
5ms以下(1ブロックあたり) |
5ms以下(1ブロックあたり) |
100ms以下(1ブロックあたり) |
100ms以下(1ブロックあたり) |
読み出し時間(追加スキャンタイム) |
1ms未満(1ブロックあたり) |
1ms未満(1ブロックあたり) |
1ms未満(1ブロックあたり) |
9.94ms + (1562.6*ブロック数) ms |
|
最大書き込み回数 |
100,000 |
10,000 |
10,000 |
10,000 |
10,000 |
最大読み出し回数 |
無制限 |
無制限 |
無制限 |
無制限 |
無制限 |
電源断、RUN -> PROGモード変更もカウントされます。
POUヘッダには、このプログラムで使用するすべての入力変数と出力変数を宣言します。 POUヘッダは全プログラム言語で使用できます。
VAR
start: BOOL:=FALSE;
@'data field': @'ARRAY (0..63] OF INT':=@'(1,2,3,4,5,6,7,8,9,10,11,12,52(0)]';
END_VAR
変数startがFALSEからTRUEになったとき、命令が実行されます。
データ領域[0]~[63]の内容を読み出し(s2* = 1 => 1ブロック = 64ワード)、先頭ブロックNo.0からEEPROMにデータを書き込みます。BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 6 ;
NETWORK_BODY
B(B_F,P13_EPWT!,Instance,11,0,19,6,,?DEN?Ds1_Start?Ds2_Number?Dd_Start?AENO);
B(B_VARIN,,DataField[0],9,2,11,4,);
B(B_VARIN,,1,9,3,11,5,);
B(B_VARIN,,0,9,4,11,6,);
B(B_CONTACT,,start,3,1,5,3,);
L(1,2,3,2);
L(5,2,11,2);
L(1,0,1,6);
END_NETWORK_BODY
END_NET_WORK
END_BODY