replacing multiple lines

i have a file :
sample1.txt

OBJECT="POINT" ACTION="REDEFINE" POINT_NAME="ABCD001G "
GHYT_POPRIORITY_1="1"
GHYT_POPRIORITY_2="1"
GHYT_POPRIORITY_3="1"
GHYT_POPRIORITY_4="1"
GHYT_POPRIORITY_USER="1"
HIGH_ALARM_PRIORITY_1="1"
HIGH_ALARM_PRIORITY_2="1"
HIGH_ALARM_PRIORITY_3="1"
HIGH_ALARM_PRIORITY_4="1"
HIGH_ALARM_PRIORITY_USER="1"
LOW_SENSOR_LIMIT="0.0038"
HIGH_SENSOR_LIMIT="0.022"
OPERATING_RANGE_LOW="0"
OPERATING_RANGE_HIGH="600"
FIELD_TRANSMITTER_TYPE="MA"
THERMOCOUPLE_UNITS="F"
GHYT_POLIMIT_1_TYPE="V"
GHYT_POLIMIT_1_VALUE="-1"
HIGH_ALARM_LIMIT_1_TYPE="V"
HIGH_ALARM_LIMIT_1_VALUE="250"

OBJECT="POINT" ACTION="REDEFINE" POINT_NAME="NGBLT04C"
GHYT_POPRIORITY_1="1"
GHYT_POPRIORITY_2="1"
GHYT_POPRIORITY_3="1"
GHYT_POPRIORITY_4="1"
GHYT_POPRIORITY_USER="1"
HIGH_ALARM_PRIORITY_1="1"
HIGH_ALARM_PRIORITY_2="1"
HIGH_ALARM_PRIORITY_3="1"
HIGH_ALARM_PRIORITY_4="1"
HIGH_ALARM_PRIORITY_USER="1"
LOW_SENSOR_LIMIT="0.0038"
HIGH_SENSOR_LIMIT="0.0205"
FIELD_TRANSMITTER_TYPE="MA"
THERMOCOUPLE_UNITS="F"
LOW_ALARM_LIMIT_1_TYPE="V"
LOW_ALARM_LIMIT_1_VALUE="-1"
HIGH_ALARM_LIMIT_1_TYPE="V"
HIGH_ALARM_LIMIT_1_VALUE="250"

wHAT I NEED TO DO

I HAVE TO REPLACE SOME FIELDS FROM A FILE

sample2.txt

NGBPT001A 0 300
NGBLT04C 0 100
NGBLT04B 0 100

I HAVE TO REPLACE FOLLOWNG TWO FIELDS in sample1.txt WITH VALUE IN MY SECOND FILE sample2.txt RESPECTIVELY IN COLUMN 1 & 2 for followng fields

LOW_ALARM_LIMIT_1_VALUE="-1"
HIGH_ALARM_LIMIT_1_VALUE="250"

New to sed ... hard for me to do wth multiple fields
wIll aprecIate help ....

Tx

The awk solution below first stores the low-high file into an array.
As it passes and prints the main file, it notes which "POINT_NAME" is passing by. As LOW_ALARM and HIGH_ALARM lines go by, awk rebuilds those lines if values for that POINT_NAME are in the array.

The BEGIN processing stores the low-high file using default white-space field separation. But it then sets the Field Separator to a double-quote sign for processing of the main file because it makes the coding cleaner and more precise. With this field separator, each tag and each value become a separate field, and thus a little cleaner to identify.

Just for testing, I add (UPD) to the end of lines that I rebuild. I do not test to see if the value actually changes, so the (UPD) just means that I rebuilt the line with a value from the low-high file, even though the value could have remained the same.

I did not rely on POINT_NAME always being the nth word in that header line. I scan the line to isolate it.

#!/bin/sh
awk 'BEGIN {
  rc=getline < "ajnabi.lohi"
  while (rc==1)
     {lo[$1]=$2
      hi[$1]=$3
      rc=getline < "ajnabi.lohi"}
  FS="\""
}
{ if ($1$2=="OBJECT=POINT")
    for (i=3;i<=NF;i++)
       if (match($i,"POINT_NAME="))
          {pname=$(i+1)
           gsub(" ","",pname)}
  if ($1=="LOW_ALARM_LIMIT_1_VALUE=")
     if (pname in lo)
        $0="LOW_ALARM_LIMIT_1_VALUE=\"" lo[pname] "\""  " (CHG)"
  if ($1=="HIGH_ALARM_LIMIT_1_VALUE=")
     if (pname in hi)
        $0="HIGH_ALARM_LIMIT_1_VALUE=\"" hi[pname] "\""  " (CHG)"
  print
}' ajnabi.txt > ajnabi.txtNEW
exit 0