Example #1
0
        public void TestaBunchOfMultiReads()
        {
            var db         = 10;
            var operations = new List <ReadOperationParameter>
            {
                new ReadOperationParameter {
                    Area = PlcArea.DB, Offset = 0, Type = typeof(byte), Args = new int[] { 1, db }
                },
                new ReadOperationParameter {
                    Area = PlcArea.DB, Offset = 1, Type = typeof(bool), Args = new int[] { 1, db }
                },
            };

            for (int i = 0; i < 100; i++)
            {
                operations.Add(new ReadOperationParameter {
                    Area = PlcArea.DB, Offset = 1 + i, Type = typeof(bool), Args = new int[] { 1, db }
                });
            }

            var client = new Dacs7Client();

            client.Connect(ConnectionString);
            var result = client.ReadAnyRaw(operations);

            Assert.Equal(operations.Count(), result.Count());

            operations.RemoveAt(0);
            result = client.ReadAnyRaw(operations);
            Assert.Equal(operations.Count(), result.Count());
            client.Disconnect();
            Assert.False(client.IsConnected);
        }
Example #2
0
        public void TestMulti()
        {
            var operations = new List <ReadOperationParameter>
            {
                new ReadOperationParameter {
                    Area = PlcArea.DB, Offset = TestByteOffset, Type = typeof(byte), Args = new int[] { 1, TestDbNr }
                },
                new ReadOperationParameter {
                    Area = PlcArea.DB, Offset = TestBitOffset, Type = typeof(bool), Args = new int[] { 1, TestDbNr }
                }
            };

            var writeOperations = new List <WriteOperationParameter>
            {
                new WriteOperationParameter {
                    Area = PlcArea.DB, Offset = TestByteOffset, Type = typeof(byte), Args = new int[] { 1, TestDbNr }, Data = (byte)0x05
                },
                new WriteOperationParameter {
                    Area = PlcArea.DB, Offset = TestBitOffset, Type = typeof(bool), Args = new int[] { 1, TestDbNr }, Data = true
                }
            };
            var client = new Dacs7Client();

            client.Connect(ConnectionString);
            client.WriteAny(writeOperations);
            var result = client.ReadAnyRaw(operations);

            client.Disconnect();
            Assert.False(client.IsConnected);
        }
Example #3
0
        public static void MultiValuesSample()
        {
            var operations = new List <ReadOperationParameter>
            {
                new ReadOperationParameter {
                    Area = PlcArea.DB, Offset = TestByteOffset, Type = typeof(byte), Args = new int[] { 1, TestDbNr }
                },
                new ReadOperationParameter {
                    Area = PlcArea.DB, Offset = TestBitOffset, Type = typeof(bool), Args = new int[] { 1, TestDbNr }
                }
            };

            var result = _client.ReadAnyRaw(operations); //result is IEnumerable<byte[]>

            var writeOperations = new List <WriteOperationParameter>
            {
                new WriteOperationParameter {
                    Area = PlcArea.DB, Offset = TestByteOffset, Type = typeof(byte), Args = new int[] { 1, TestDbNr }, Data = (byte)0x05
                },
                new WriteOperationParameter {
                    Area = PlcArea.DB, Offset = TestBitOffset, Type = typeof(bool), Args = new int[] { 1, TestDbNr }, Data = true
                }
            };

            _client.WriteAny(writeOperations);
        }