Exemple #1
0
        public async Task SiemensCoilSingle()
        {
            Random r = new Random();

            var addresses = new List <AddressUnit>
            {
                new AddressUnit
                {
                    Id               = "0",
                    Area             = "Q",
                    Address          = 0,
                    SubAddress       = 0,
                    CommunicationTag = "A1",
                    DataType         = typeof(bool)
                }
            };

            var dic1 = new Dictionary <string, double>()
            {
                {
                    "Q 0.0", r.Next(0, 2)
                }
            };

            _siemensTcpMachine.GetAddresses = addresses;
            await _siemensTcpMachine.SetDatasAsync(MachineSetDataType.Address, dic1);

            var ans = await _siemensTcpMachine.GetDatasAsync(MachineGetDataType.Address);

            Assert.AreEqual(ans["Q 0.0"].PlcValue, dic1["Q 0.0"]);
        }
Exemple #2
0
        public async Task ModbusCoilSingle()
        {
            var addresses = new List<AddressUnit>
            {
                new AddressUnit
                {
                    Id = "0",
                    Area = "0X",
                    Address = 1,
                    SubAddress = 0,
                    CommunicationTag = "A1",
                    DataType = typeof(bool)
                }
            };

            _modbusTcpMachine.GetAddresses = addresses;
            await _modbusTcpMachine.SetDatasAsync(MachineSetDataType.Address, new Dictionary<string, double>()
            {
                {
                    "0X 1.0", 1
                }
            });
            var ans = await _modbusTcpMachine.GetDatasAsync(MachineGetDataType.Address);
            Assert.AreEqual(ans["0X 1.0"].PlcValue, 1);
        }
Exemple #3
0
        public async Task OpcWrite()
        {
            _opcMachine.GetAddresses = new List <AddressUnit>
            {
                new AddressUnit()
                {
                    Id       = "1",
                    Name     = "蒸汽压力下限",
                    Area     = "0",
                    Address  = 1,
                    DataType = typeof(ushort)
                }
            };
            var success = await _opcMachine.SetDatasAsync(MachineSetDataType.Id, new Dictionary <string, double>
            {
                {
                    "1", 525
                }
            });

            Assert.AreEqual(success, true);
            var ans = await _opcMachine.GetDatasAsync(MachineGetDataType.Id);

            Assert.AreEqual(ans["1"].PlcValue, 525);
        }
Exemple #4
0
        public async Task ModbusEndianSingle()
        {
            Random r = new Random();

            var addresses = new List <AddressUnit>
            {
                new AddressUnit
                {
                    Id               = "0",
                    Area             = "4X",
                    Address          = 1,
                    SubAddress       = 0,
                    CommunicationTag = "A1",
                    DataType         = typeof(ushort)
                }
            };

            var dic1 = new Dictionary <string, double>()
            {
                {
                    "4X 1", r.Next(0, UInt16.MaxValue)
                }
            };

            _modbusTcpMachine.GetAddresses  = addresses;
            _modbusTcpMachine2.GetAddresses = addresses;
            await _modbusTcpMachine.SetDatasAsync(MachineSetDataType.Address, dic1);

            var ans = await _modbusTcpMachine.GetDatasAsync(MachineGetDataType.Address);

            var ans2 = await _modbusTcpMachine2.GetDatasAsync(MachineGetDataType.Address);

            Assert.AreEqual(ans["4X 1.0"].PlcValue, dic1["4X 1"]);
            Assert.AreEqual(ans2["4X 1.0"].PlcValue, (ushort)dic1["4X 1"] % 256 * 256 + (ushort)dic1["4X 1"] / 256);
        }
Exemple #5
0
        public async Task ModbusCoilSingle()
        {
            Random r = new Random();

            var addresses = new List <AddressUnit <string> >
            {
                new AddressUnit <string>
                {
                    Id               = "0",
                    Area             = "0X",
                    Address          = 1,
                    SubAddress       = 0,
                    CommunicationTag = "A1",
                    DataType         = typeof(bool)
                }
            };

            var dic1 = new Dictionary <string, double>()
            {
                {
                    "0X 1.0", r.Next(0, 2)
                }
            };

            _modbusTcpMachine.GetAddresses   = addresses;
            _modbusAsciiMachine.GetAddresses = addresses;
            _modbusRtuMachine.GetAddresses   = addresses;
            await _modbusTcpMachine.SetDatasAsync(MachineSetDataType.Address, dic1);

            await _modbusAsciiMachine.SetDatasAsync(MachineSetDataType.Address, dic1);

            await _modbusRtuMachine.SetDatasAsync(MachineSetDataType.Address, dic1);

            var ans = await _modbusTcpMachine.GetDataAsync(MachineGetDataType.Address);

            var ans2 = await _modbusRtuMachine.GetDataAsync(MachineGetDataType.Address);

            var ans3 = await _modbusAsciiMachine.GetDataAsync(MachineGetDataType.Address);

            Assert.Equal(ans["0X 1.0"].PlcValue, dic1["0X 1.0"]);
            Assert.Equal(ans2["0X 1.0"].PlcValue, dic1["0X 1.0"]);
            Assert.Equal(ans3["0X 1.0"].PlcValue, dic1["0X 1.0"]);
        }
        public async Task <JsonResult> SetMachine(TripleAddViewModel model)
        {
            ushort add1 = model.Add1, add2 = model.Add2, add3 = model.Add3;
            var    setDic = new Dictionary <string, double> {
                { "Add1", add1 }, { "Add2", add2 }, { "Add3", add3 }
            };
            var ans = await await machine.SetDatasAsync(MachineSetDataType.CommunicationTag, setDic).ContinueWith(async p => await GetMachineEnter());

            return(Json(ans, JsonRequestBehavior.AllowGet));
        }
        public async Task MultiStation()
        {
            var addresses = new List <AddressUnit>
            {
                new AddressUnit
                {
                    Id               = "0",
                    Area             = "4X",
                    Address          = 2,
                    SubAddress       = 0,
                    CommunicationTag = "A1",
                    DataType         = typeof(ushort)
                },
                new AddressUnit
                {
                    Id               = "1",
                    Area             = "4X",
                    Address          = 3,
                    SubAddress       = 0,
                    CommunicationTag = "A2",
                    DataType         = typeof(ushort)
                },
                new AddressUnit
                {
                    Id               = "2",
                    Area             = "4X",
                    Address          = 4,
                    SubAddress       = 0,
                    CommunicationTag = "A3",
                    DataType         = typeof(ushort)
                },
                new AddressUnit
                {
                    Id               = "3",
                    Area             = "4X",
                    Address          = 5,
                    SubAddress       = 0,
                    CommunicationTag = "A4",
                    DataType         = typeof(ushort)
                },
                new AddressUnit
                {
                    Id               = "4",
                    Area             = "4X",
                    Address          = 6,
                    SubAddress       = 0,
                    CommunicationTag = "A5",
                    DataType         = typeof(uint)
                },
                new AddressUnit
                {
                    Id               = "5",
                    Area             = "4X",
                    Address          = 8,
                    SubAddress       = 0,
                    CommunicationTag = "A6",
                    DataType         = typeof(uint)
                }
            };

            _modbusRtuMachine1.GetAddresses = addresses.ToList();
            _modbusRtuMachine2.GetAddresses = addresses.ToList();

            Random r    = new Random();
            var    dic1 = new Dictionary <string, double>()
            {
                {
                    "A1", r.Next(0, UInt16.MaxValue)
                },
                {
                    "A2", r.Next(0, UInt16.MaxValue)
                },
                {
                    "A3", r.Next(0, UInt16.MaxValue)
                },
                {
                    "A4", r.Next(0, UInt16.MaxValue)
                },
                {
                    "A5", r.Next()
                },
                {
                    "A6", r.Next()
                },
            };

            var dic2 = new Dictionary <string, double>()
            {
                {
                    "A1", r.Next(0, UInt16.MaxValue)
                },
                {
                    "A2", r.Next(0, UInt16.MaxValue)
                },
                {
                    "A3", r.Next(0, UInt16.MaxValue)
                },
                {
                    "A4", r.Next(0, UInt16.MaxValue)
                },
                {
                    "A5", r.Next()
                },
                {
                    "A6", r.Next()
                },
            };

            await _modbusRtuMachine1.SetDatasAsync(MachineSetDataType.CommunicationTag, dic1);

            await _modbusRtuMachine2.SetDatasAsync(MachineSetDataType.CommunicationTag, dic2);

            var ans = await _modbusRtuMachine1.GetDatasAsync(MachineGetDataType.CommunicationTag);

            var ans2 = await _modbusRtuMachine2.GetDatasAsync(MachineGetDataType.CommunicationTag);

            _modbusRtuMachine1.Disconnect();
            _modbusRtuMachine2.Disconnect();

            Assert.AreEqual(ans["A1"].PlcValue, dic1["A1"]);
            Assert.AreEqual(ans2["A1"].PlcValue, dic2["A1"]);
            Assert.AreEqual(ans["A2"].PlcValue, dic1["A2"]);
            Assert.AreEqual(ans2["A2"].PlcValue, dic2["A2"]);
            Assert.AreEqual(ans["A3"].PlcValue, dic1["A3"]);
            Assert.AreEqual(ans2["A3"].PlcValue, dic2["A3"]);
            Assert.AreEqual(ans["A4"].PlcValue, dic1["A4"]);
            Assert.AreEqual(ans2["A4"].PlcValue, dic2["A4"]);
            Assert.AreEqual(ans["A5"].PlcValue, dic1["A5"]);
            Assert.AreEqual(ans2["A5"].PlcValue, dic2["A5"]);
            Assert.AreEqual(ans["A6"].PlcValue, dic1["A6"]);
            Assert.AreEqual(ans2["A6"].PlcValue, dic2["A6"]);
        }