From 3dc347c66a5db70d7c4f6960891fa233a4b4cd3d Mon Sep 17 00:00:00 2001 From: Milan Hanajik Date: Fri, 29 Sep 2017 13:20:23 +0200 Subject: [PATCH] Modbus.PressureMeter.Meret : data request sent every 3 seconds, ver. 2.17.681 --- .../PressureMeter/Meret/PressureMeter.cs | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/TestBenchFramework/BenchControl/Modbus/PressureMeter/Meret/PressureMeter.cs b/TestBenchFramework/BenchControl/Modbus/PressureMeter/Meret/PressureMeter.cs index e9dc6bb33..a733a7ff3 100644 --- a/TestBenchFramework/BenchControl/Modbus/PressureMeter/Meret/PressureMeter.cs +++ b/TestBenchFramework/BenchControl/Modbus/PressureMeter/Meret/PressureMeter.cs @@ -1,5 +1,5 @@ /// -/// Copyright (c) 2016 Sensus Metering Systems +/// Copyright (c) 2016-2017 Sensus Metering Systems /// using System; using System.Collections.Generic; @@ -79,7 +79,13 @@ namespace TBF.BenchControl.Modbus.PressureMeter.Meret /// Run this device public void RunDeviceBefore() { - if (modbus.ReceivedTelegrams[pressureMtrCfg.ModbusAddress].Count > 0) + if (pressureMtrCfg.DebugLevel == Config.Entities.DebugMode.Simulate || + pressureMtrCfg.DebugLevel == Config.Entities.DebugMode.FailureDuringOperation) + { + return; + } + + if (modbus.ReceivedTelegrams[pressureMtrCfg.ModbusAddress].Count > 0) { byte[] telegram = modbus.ReceivedTelegrams[pressureMtrCfg.ModbusAddress].Dequeue(); if (telegram.Length == 9 && telegram[1] == 4 && telegram[2] == 4) @@ -97,14 +103,18 @@ namespace TBF.BenchControl.Modbus.PressureMeter.Meret receivedPressure = System.BitConverter.ToSingle(telegram, 3); } } + + if ((StateMachine.Time % 3) == (pressureMtrCfg.ModbusAddress % 3)) /// Each 3 seconds + { + const byte Function = 4; /// Read input registers + const ushort Address = 0; /// Pressure + modbus.SendMessage(pressureMtrCfg.ModbusAddress, Function, Address, 2); + } } /// Run this device public void RunDeviceAfter() { - const byte Function = 4; /// Read input registers - const ushort Address = 0; /// Pressure - modbus.SendMessage(pressureMtrCfg.ModbusAddress, Function, Address, 2); } /// Stop this device