123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- using System.Runtime.CompilerServices;
- namespace ConsoleApp1
- {
- internal class Program
- {
- static void Main(string[] args)
- {
- S7.Net.Plc plc = new S7.Net.Plc(S7.Net.CpuType.S71200, "127.0.0.1", 0, 0);
- plc.AutoClearCacheInterval = -1;
- plc.Open();
- plc.Write("DB2.DBX0.7", false);
- plc.Write("DB2.DBX1.1", false);
- plc.Write("DB2.DBX1.2", false);
- plc.Write("DB2.DBX30.2", false);
- var val = plc.ReadFloat("DB2.DBD4");
- //Console.WriteLine(Unsafe.As<uint, Single>(ref val));
- //Console.WriteLine(BitConverter.ToSingle(.Reverse().ToArray()));
- Random random = new Random();
- //while (true)
- {
- plc.Write("DB2.DBD4", (Single)(random.NextDouble() * 10));
- plc.Write("DB2.DBD8", (Single)(random.NextDouble() * 1000));
- plc.Write("DB2.DBD12", (Single)(random.NextDouble() * 100));
- Thread.Sleep(1000);
- }
- plc.Close();
- return;
- List<string> writeaddrs = new List<string>();
- List<string> writeaddrs1 = new List<string>();
- List<string> addrs = new List<string>();
- for(int i=0;i<0x200;i++)
- {
- addrs.Add($"DB{1}.DBX{i / 8}.{i % 8}");
- writeaddrs1.Add($"DB{1}.DBX{i / 8}.{i % 8}");
- addrs.Add($"DB{2}.DBD{i*4}");
- writeaddrs.Add($"DB{2}.DBD{i * 4}");
- addrs.Add($"DB{3}.DBX{i / 8}.{i % 8}");
- writeaddrs1.Add($"DB{3}.DBX{i / 8}.{i % 8}");
- }
- for(int i=0;i<20;i++)
- {
- Task.Run(() => ReadTest(plc,addrs));
- Task.Run(() => WriteTest(plc, writeaddrs));
- Task.Run(() => WriteBoolTest(plc, writeaddrs1));
- }
- Console.Read();
- plc.Close();
- Console.WriteLine("Hello, World!");
- }
- static void ReadTest(S7.Net.Plc plc,List<string> addr)
- {
- while (true)
- {
- addr.ForEach(x => plc.Read(x));
- }
- }
- static void WriteTest(S7.Net.Plc plc,List<string> addr)
- {
- Random random = new Random();
- while(true)
- {
- addr.ForEach(x =>
- {
- plc.Write(x, (Single)random.NextDouble());
- });
- }
- }
- static void WriteBoolTest(S7.Net.Plc plc, List<string> addr)
- {
- Random random = new Random();
- while (true)
- {
- addr.ForEach(x =>
- {
- plc.Write(x, random.Next(0,10)>=5);
- });
- }
- }
- }
- }
|