diff --git a/examples/NEPLAN/read_NEPLAN.py b/examples/NEPLAN/read_NEPLAN.py
index 3a02f65dc287bef9f2f2dfe62934d6e77761695c..9383764b2b0c8282f78de7ad16daf76595fb7b16 100644
--- a/examples/NEPLAN/read_NEPLAN.py
+++ b/examples/NEPLAN/read_NEPLAN.py
@@ -1,9 +1,12 @@
 import re
 from dataprocessing.readtools import *
 from dataprocessing.plottools import *
+import cmath
+
 import matplotlib.pyplot as plt
-def readsim(file_name,timeseries_names=None, is_regex=False):
-    str_tmp = open(file_name,"r")
+
+def readsim(file_name, timeseries_names = None, is_regex = False):
+    str_tmp = open(file_name, "r")
     low = 0
     high = 0
     flag = True
@@ -11,11 +14,11 @@ def readsim(file_name,timeseries_names=None, is_regex=False):
     seq = []
     value = []
     i = 0
-    namelist = ['U','ANGLEU','P','Q','I','ANGLEI']
+    namelist = ['U', 'ANGLEU', 'P', 'Q', 'I', 'ANGLEI']
     timeseries = []
     isfloat = re.compile(r'^[-+]?[0-9]+\.[0-9]+$')
     for line in str_tmp.readlines():
-        line = line.replace(",",".")
+        line = line.replace(",", ".")
         high -= high
         low -= low
         del value[:]
@@ -30,30 +33,77 @@ def readsim(file_name,timeseries_names=None, is_regex=False):
                         else:
                             value.append(line[low:high])
                 else:  # NONE
-                    value.append(r'#') #No value, set as #
+                    value.append(r'#')  # No value, set as #
                 low = high + 1
             high += 1
         if flag is False:
             dic[i] = dict(zip(seq, value))
             i += 1
-            if value[0] is not '0':
-                nameindex = []
-                for m in range(5):
-                    nameindex.append(seq[1] + '.' + seq[2] + '.' + namelist[m])
-                if timeseries_names is None and is_regex is False:
-                        for m in range(5):
-                            timeseries.append(TimeSeries(nameindex[m],0,value[m + 6]))
-                elif is_regex is True:
-                    # Read in variables which match with regex
-                    p = re.compile(timeseries_names)
-                    for m in range(5):
-                        if p.search(nameindex[m]):
-                            timeseries.append(TimeSeries(nameindex[m], 0, value[m + 6]))
+            check_pass = True
+            if timeseries_names is None and is_regex is False:
+                if value[0] == '0':
+                    for m in range(2):
+                        timeseries.append(TimeSeries(value[1] + '.' + namelist[m], 0, value[m + 6]))
                 else:
-                    # Read in specified time series
-                    for m in range(5):
-                        if timeseries_names is namelist[m]:
-                            timeseries.append(TimeSeries(nameindex[m], 0, value[m + 6]))
+                    for check in range(len(timeseries) - 1):
+                        if timeseries[check].name == value[3] + '.' + namelist[4]:
+                            check_pass = False
+                            result = cmath.rect(timeseries[check].values,
+                                                timeseries[check + 1].values / 180 * cmath.pi) + cmath.rect(
+                                value[10], value[11] / 180 * cmath.pi)
+                            (timeseries[check].value, timeseries[check + 1].value) = cmath.polar(result)
+                            timeseries[check + 1].values = timeseries[check + 1].value / cmath.pi * 180
+                            timeseries[check - 1].values += value[9]
+                            timeseries[check - 2].values += value[8]
+                    if check_pass:
+                        for m in range(2, 6):
+                            timeseries.append(TimeSeries(value[3] + '.' + namelist[m], 0, value[m + 6]))
+
+            elif is_regex is True:
+                # Read in variables which match with regex
+                p = re.compile(timeseries_names)
+                if value[0] == '0':
+                    for m in range(2):
+                        if p.search((value[1] + '.' + namelist[m])):
+                            timeseries.append(TimeSeries(value[1] + '.' + namelist[m], 0, value[m + 6]))
+                else:
+                    for check in range(len(timeseries) - 1):
+                        if timeseries[check].name == value[3] + '.' + namelist[4]:
+                            check_pass = False
+                            result = cmath.rect(timeseries[check].values,
+                                                timeseries[check + 1].values / 180 * cmath.pi) + cmath.rect(
+                                value[10], value[11] / 180 * cmath.pi)
+                            (timeseries[check].values, timeseries[check + 1].values) = cmath.polar(result)
+                            timeseries[check + 1].values = timeseries[check + 1].values / cmath.pi * 180
+                            timeseries[check - 1].values += value[9]
+                            timeseries[check - 2].values += value[8]
+                    if check_pass:
+                        for m in range(2, 6):
+                            if p.search((value[3] + '.' + namelist[m])):
+                                timeseries.append(TimeSeries(value[3] + '.' + namelist[m], 0, value[m + 6]))
+            else:
+                # Read in specified time series
+                if value[0] == '0':
+                    for m in range(2):
+                        if timeseries_names == (value[1] + '.' + namelist[m]):
+                            timeseries.append(TimeSeries(value[1] + '.' + namelist[m], 0, value[m + 6]))
+                else:
+                    for check in range(len(timeseries) - 1):
+                        if timeseries[check].name == value[3] + '.' + namelist[4]:
+                            check_pass = False
+                            result = cmath.rect(timeseries[check].values,
+                                                timeseries[check + 1].values / 180 * cmath.pi) + cmath.rect(
+                                value[10], value[11] / 180 * cmath.pi)
+                            (timeseries[check].values, timeseries[check + 1].values) = cmath.polar(result)
+                            timeseries[check + 1].values = timeseries[check + 1].values / cmath.pi * 180
+                            timeseries[check - 1].values += value[9]
+                            timeseries[check - 2].values += value[8]
+
+                    if check_pass:
+                        for m in range(2, 6):
+                            if timeseries_names == (value[3] + '.' + namelist[m]):
+                                timeseries.append(TimeSeries(value[3] + '.' + namelist[m], 0, value[m + 6]))
         flag = False
     str_tmp.close()
+
     return timeseries
diff --git a/examples/NEPLAN/read_NEPLAN_example.py b/examples/NEPLAN/read_NEPLAN_example.py
index cc6c517fe310d78d5e83de6f2cb00c191c88f9a1..66483b6072d75f97ae8643afdd34e4adeb671143 100644
--- a/examples/NEPLAN/read_NEPLAN_example.py
+++ b/examples/NEPLAN/read_NEPLAN_example.py
@@ -3,13 +3,46 @@
 import read_NEPLAN
 import re
 
-file = r"C:\Users\jdi-bli\Desktop\Test\Slack_Rxline_PQLoad.rlf"
+file = r"C:\Users\admin\Desktop\Load_read\Load_flow_WCSS.rlf"
+
+
 
 # Example 1: Read in all variable
+print('************************ Test for read in all variable start ****************')
 result = read_NEPLAN.readsim(file)
-for i in range(6):
-    print(result[i]) # result as list of TimeSeries
+for i in range(len(result)):
+    print('%s is %s' % (result[i].name,result[i].values)) # result as list of TimeSeries
+print('************************ Test for read in all variable end ****************')
+
+print('\n')
+
+
 
 # Example 2: Read in specific variable
+print('************************ Test for read in specific variable start ****************')
+print('************************ Read in specific Voltage ****************')
+result1 = read_NEPLAN.readsim(file, 'FOUR.U')
+for i in range(len(result1)):
+    print('%s is %s' % (result1[i].name, result1[i].values))
+
+print('************************ Read in specific Current ****************')
+result2 = read_NEPLAN.readsim(file, 'LINE89.I')
+for i in range(len(result2)):
+    print('%s is %s' % (result2[i].name, result2[i].values))
+print('************************ Test for read in specific variable end ****************')
+print('\n')
+
+
+
+# Example 3: Read in using regular expression
+print('************************ Test for read in using Regular Expression start ****************')
+result3 = read_NEPLAN.readsim(file, '^LINE89.*$', True)
+for i in range(len(result3)):
+    print('%s is %s' % (result3[i].name, result3[i].values))
+print('************************ Test for read in using Regular Expression end ****************')
+print('\n')
+
+
+
 # all_bus_voltages = readsim_Neplan.readsim(file, )
 # all_comp_currents = ...
\ No newline at end of file