| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 | 
							- using PlcSiemens.O;
 
- using PlcSiemens.Protocol.Common;
 
- using ServiceCenter;
 
- using ServiceCenter.Virtual_PLC;
 
- using WCS.Core;
 
- namespace WCS.Service.PLCAccessors
 
- {
 
-     public class SiemensS7PLC : IPLCAccessor
 
-     {
 
-         private SimenssPlc plc;
 
-         public SiemensS7PLC(string ip, int port, int rack, int slot)
 
-         {
 
-             plc = new SimenssPlc(ip, rack, slot);
 
-             plc.Connect();
 
-         }
 
-         public byte[] ReadBytes(ushort db, ushort address, ushort length)
 
-         {
 
-             if (ServiceHub.Any(SystemMode.虚拟plc))
 
-             {
 
-                 return PlcData.Read(new PLCData { IP = plc.IP, DB = db, Length = length, DataLength = length });
 
-             }
 
-             if (!plc.Connected)
 
-                 plc.Connect();
 
-            
 
-             var res = plc.ReadArea(AreaType.DB, db, address, length, DataType.Byte);
 
-             if (res == null)
 
-                 throw new Exception("读取DB块数据失败");
 
-             return res.Data;
 
-         }
 
-         public void WriteBytes(ushort db, ushort address, byte[] data)
 
-         {
 
-             if (ServiceHub.Any(SystemMode.虚拟plc))
 
-             {
 
-                 PlcData.Write(new PLCData { IP = plc.IP, DB = db }, address, data);
 
-             }
 
-             else
 
-             {
 
-                 if (!plc.Connected)
 
-                     plc.Connect();
 
-                 var res = plc.WriteArea(AreaType.DB, db, address, (ushort)data.Length, DataType.Byte, data);
 
-                 if (!res)
 
-                     throw new Exception("写入DB块数据失败");
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |