정전 또는 전원 OFF 시에도 주요 데이터 값을 유지하기 위해 D영역의 데이터를 EEPROM에 저장하는 예제입니다.
본 예제에서는
하는 구조로 작성되어 있습니다.
산업 현장에서 다음과 같은 용도로 자주 사용됩니다.
정전 시 D0~D10 값을 유지하는 예제입니다.
#include "MSB6XX"
Dim TempAdr As Integer
Dim EepromAdr As Integer
Dim Tempi As Byte
Opencom 1,115200,3,200,200
Set Modbus 1,1,100
Ramclear
' 부팅 시 EEPROM 값을 D영역으로 복사
For TempAdr = 0 To 10
_D(TempAdr) = Eeread(EepromAdr,2) Xor &hffff
EepromAdr = EepromAdr + 2
Next
' USEPIN 은 이곳에서 설정
Set Ladder On
Usepin 8,In
EepromAdr = 0
TempAdr = 0
Do
Tempi = _D(TempAdr)
Tempi = Tempi Xor &hff
If Tempi <> Eeread(EepromAdr,1) Then
Gosub EepromSaveRtn
End If
Incr EepromAdr
Tempi = _D(TempAdr) >> 8
Tempi = Tempi Xor &hff
If Tempi <> Eeread(EepromAdr,1) Then
Gosub EepromSaveRtn
End If
Incr EepromAdr
Incr TempAdr
If TempAdr > 10 Then
TempAdr = 0
EepromAdr = 0
End If
Loop
EepromSaveRtn:
Do
Loop Until Sys(4)=0
eew EepromAdr,Tempi
Return
예제에서는
하도록 간단한 테스트 로직을 구성했습니다.
(현장에서는 생산 카운터 또는 운전 시간 누적용으로 사용 가능)
HMI에서 값을 읽어올 때는
이유:
Keywords: MSB EEPROM Save, Power Failure Data Retention, MSB610L Example, Eeread, EEWrite, PLC Data Backup, Nonvolatile Memory, Production Counter Backup