From 55f1183b3b3eae7226cd0cf59b8871cc54fb7064 Mon Sep 17 00:00:00 2001 From: Michael Buesch Date: Sat, 15 Sep 2018 22:44:52 +0200 Subject: coreserver/memarea: Mask out upper 16 bits of counter and timer value Signed-off-by: Michael Buesch --- awlsim/coreserver/memarea.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/awlsim/coreserver/memarea.py b/awlsim/coreserver/memarea.py index 52846684..de46d00b 100644 --- a/awlsim/coreserver/memarea.py +++ b/awlsim/coreserver/memarea.py @@ -211,9 +211,7 @@ class MemoryArea(object): self.length != len(self.data)): raise ValueError dword = WordPacker.fromBytes(self.data, self.length * 8, 0) - if dword > 0xFFFF: - raise ValueError - timer.setTimevalS5T(dword) + timer.setTimevalS5T(dword & 0xFFFF) except (ValueError, AwlSimError) as e: self.__raiseWriteErr( AwlSimError("MemoryArea: Timer value error") @@ -231,9 +229,7 @@ class MemoryArea(object): self.length != len(self.data)): raise ValueError dword = WordPacker.fromBytes(self.data, self.length * 8, 0) - if dword > 0xFFFF: - raise ValueError - counter.setValueBCD(dword) + counter.setValueBCD(dword & 0xFFFF) except (ValueError, AwlSimError) as e: self.__raiseWriteErr( AwlSimError("MemoryArea: Counter value error") -- cgit v1.2.3