public void StartS7VPLCISOServer(string VPLCIP) { try { S7VPLCISOServer = new IsoToS7online(false, S7VPLCISOServerPort); IPAddress localhost = "127.0.0.1".ToIPAddress(); IPAddress address = VPLCIP.ToIPAddress(); S7VPLCISOServer.start(S7VPLCISOServerName, localhost, S7VPLCTSAPS, address, 0, 1); } catch (Exception) { throw; } }
private List <S7Protocol> AddStation(IReadOnlyCollection <S7Protocol> adding) { var ret = new List <S7Protocol>(); if (adding == null) { return(ret); } try { log.Info($"=== Adding S7 PLCSim List ==="); foreach (var item in adding) { var tsaps = new List <byte[]>(); byte tsap2 = (byte)(item.Rack << 4 | item.Slot); tsaps.Add(new byte[] { 0x01, tsap2 }); tsaps.Add(new byte[] { 0x02, tsap2 }); tsaps.Add(new byte[] { 0x03, tsap2 }); IsoToS7online srv = null; try { srv = new IsoToS7online(false); var ip = IPAddress.Parse(item.Ip); var err = string.Empty; var srvStart = srv.start(item.Name, ip, tsaps, ip, item.Rack, item.Slot, ref err); if (srvStart) { var conn = item.Connect(); if (conn) { srv.DataReceived = item.DataReceived; s7ServerList.TryAdd(item.Ip, srv); ret.Add(item); item.ErrorHandler = new Action <string>((ipp) => ErrorHandler(ipp)); log.Info($"OK, {item.ToString()}"); } else { srv?.Dispose(); srv = null; item?.Dispose(); log.Warn($"NG, {item.ToString()}"); } } else { log.Warn($"NG({err}), {item.ToString()}"); } } catch (Exception ex) { srv?.Dispose(); srv = null; item?.Dispose(); log.Error($"ERR, {item.ToString()}", ex); } } log.Debug("=============================="); } catch (Exception) { throw; } return(ret); }