public async Task MixedAccessWithDataChangeTest2() { var mapping = "DB_Safety2"; var t = new Stopwatch(); t.Start(); short value = -1; await _papper.WriteAsync(PlcWriteReference.FromAddress($"{mapping}.SafeMotion.Header.NumberOfActiveSlots", (short)0)); var result2 = await _papper.ReadBytesAsync(new List <PlcReadReference> { PlcReadReference.FromAddress($"{mapping}.SafeMotion") }); var sub = _papper.SubscribeDataChanges((s, e) => { value = (short)e[$"{mapping}.SafeMotion.Header.NumberOfActiveSlots"]; }, PlcWatchReference.FromAddress($"{mapping}.SafeMotion.Header.NumberOfActiveSlots", 10), PlcWatchReference.FromAddress($"{mapping}.SafeMotion.Header.States.ChecksumInvalid", 10)); await _papper.WriteAsync(PlcWriteReference.FromAddress($"{mapping}.SafeMotion.Header.NumberOfActiveSlots", (short)1)); await Task.Delay(2000); Assert.Equal((short)1, value); sub.Dispose(); t.Stop(); }
public async Task TestMultiWrite(string mapping, Type type) { _client = new Dacs7Client("192.168.0.148:102,0,2", PlcConnectionType.Basic, 5000); await _client.ConnectAsync(); if (_client.IsConnected && (_mapper == null || _mapper.PduSize > _client.PduSize)) { var pduSize = _client.PduSize; _mapper = new PlcDataMapper(pduSize, Papper_OnRead, Papper_OnWrite, OptimizerType.Items); _mapper.AddMapping(type); } var data = await _mapper.ReadAsync(PlcReadReference.FromAddress($"{mapping}.This")); await _mapper.WriteAsync(PlcWriteReference.FromAddress($"{mapping}.This", data)); await _client.DisconnectAsync(); }
public PlcWriteReference ParseWriteReference() => PlcWriteReference.FromAddress($"DB_Safety2.SafeMotion.Header.States.ChecksumInvalid", true);
public void PerformReadWriteRaw() { var papper = new PlcDataMapper(960, Papper_OnRead, Papper_OnWrite); var readResults = papper.ReadAsync(PlcReadReference.FromAddress("DB2000.W2")).GetAwaiter().GetResult(); var writeResults = papper.WriteAsync(PlcWriteReference.FromAddress("DB2000.W2", (UInt16)3)).GetAwaiter().GetResult(); }