public bool Connect() { PlcClient = new S7Client(); TronTrace.TraceInformation("PlcConnection: Connect to " + PlcAddress); PlcClient.ConnectTo(PlcAddress, PlcRack, PlcSlot); if (PlcClient._LastError != 0) { var text = PlcResult.GetResultText(PlcClient._LastError); TronTrace.TraceError("PlcConnection: Connect FAILED : " + text); } return(IsConnected); }
public void StartPolling(List <PlcItem> items, int plcPollIntervalMilliseconds) { _pollItems = items; PlcPollIntervalMilliseconds = plcPollIntervalMilliseconds; if (PlcPollIntervalMilliseconds > 0) { TronTrace.TraceInformation($"PlcConnection: Start polling using {PlcPollIntervalMilliseconds}ms interval"); _pollTimer = new Timer(_ => PollPlc(), this, TimeSpan.FromMilliseconds(PlcPollIntervalMilliseconds), TimeSpan.FromMilliseconds(PlcPollIntervalMilliseconds)); } }
private void DoPollPlc() { if (PlcClient.Connected != _oldPlcConnected) { TronTrace.TraceInformation("PlcConnection: Connected = " + PlcClient.Connected); _oldPlcConnected = PlcClient.Connected; } foreach (var plcItem in _pollItems) { plcItem.UpdateValueFromPlc(); } }