F-ROM / EEPROM読み出し
F-ROM / EEPROMからデータを読み出し、データレジスタ(DT)に転送します。データの転送は、ブロック単位でのみ行えます。ワード単位でのデータ転送はできません。ブロックサイズおよびブロック数については、"PLC機種別情報"に記載しています。また、転送先には、64ワード以上(FP0およびFP-e) / 2048ワード以上(FPSigma/FP-X)のデータレジスタを確保してください。
入力
ファンクションの実行条件(ENがON (TRUE)のとき、ファンクションはPLCスキャンごとに実行されます。)
F-ROM/EEPROM先頭ブロックNo.
読み出すブロック数。ブロックサイズは、PLC機種によって64または2048データレジスタです(下表「PLC機種別情報」参照)。
出力
ファンクション実行時、ENOはON (TRUE)になります。EN入力をカスケード接続するときに便利です。
書き込むデータのDT先頭アドレス
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;
(*activates the instruction*)
datafield: ARRAY [0..63] OF INT:=[64(0)];
(*data field to be uploaded data from EEPROM*)
END_VAR
変数startがFALSEからTRUEになったとき、命令が実行されます。
先頭ブロックNo.0以降の最初のブロック(=64ワード)をEEPROMから読み出し、データフィールドdatafield[0]~datafield[63]にデータを書き込みます。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,F12_EPRD!,Instance,8,1,16,6,,?DEN?Ds1_Start?Ds2_Number?AENO?Cd_Start);
B(B_VARIN,,0,6,3,8,5,);
B(B_VARIN,,1,6,4,8,6,);
B(B_VAROUT,,datafield[0],16,3,18,5,);
B(B_CONTACT,,start,3,2,5,4,);
L(5,3,8,3);
L(1,3,3,3);
L(1,0,1,6);
END_NETWORK_BODY
END_NET_WORK
END_BODY
LD |
start |
DF |
|
F12_EPRD |
0,1,datafield[0] |