コード例 #1
0
 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);
 }
コード例 #2
0
        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));
            }
        }
コード例 #3
0
        private void DoPollPlc()
        {
            if (PlcClient.Connected != _oldPlcConnected)
            {
                TronTrace.TraceInformation("PlcConnection: Connected = " + PlcClient.Connected);
                _oldPlcConnected = PlcClient.Connected;
            }

            foreach (var plcItem in _pollItems)
            {
                plcItem.UpdateValueFromPlc();
            }
        }