Example #1
0
        public async Task Execute(IPlcConnection connection)
        {
            await _fn.Invoke(connection);

            IsCompleted = true;
            _continuation?.Invoke();
        }
Example #2
0
        /// <summary>
        /// A example program of PLC4x in .NET!
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            using (IPlcConnection PlcConnection = (new PlcDriverManager()).GetConnection("s7://192.168.167.210/1/1"))
            {
                PlcConnection.ReadRequestBuilder.AddItem("001", "%MX1.0:BOOL");
                PlcConnection.ReadRequestBuilder.AddItem("002", "%MB208:CHAR");

                PlcConnection.ReadRequestBuilder.Build().ExecuteAsync();
                Log.Info("Request has been sent");
                PlcConnection.CloseAsync();
            }

            using (IPlcConnection PlcConnection = (new PlcDriverManager()).GetConnection("s7://192.168.167.210/1/1"))
            {
                PlcConnection.WriteRequestBuilder.AddItem("001", "%MX1.0:BOOL", true);
                PlcConnection.WriteRequestBuilder.AddItem("002", "%MB3:BYTE", (byte)0x12);

                char?[] characterArray = new char?[] { 'A', 'B', 'C', 'D' };

                PlcConnection.WriteRequestBuilder.AddItem("045", "%DB109.DBB0:CHAR[7]", characterArray);
                PlcConnection.WriteRequestBuilder.Build().ExecuteAsync();
                Log.Info("Writing data");
                PlcConnection.CloseAsync();
            }
        }
Example #3
0
        /// <summary>
        /// Connects to a PLC using the given plc connection string.
        /// </summary>
        /// <param name="url"> plc connection string. </param>
        /// <returns> PlcConnection object. </returns>
        public virtual IPlcConnection GetConnection(string url)
        {
            IPlcDriver     driver     = GetDriver(url);
            IPlcConnection connection = (IPlcConnection)driver.ConnectAsync(url);

            connection.ConnectAsync();
            return(connection);
        }
Example #4
0
 public Connection(IPlcConnection plcConnection)
 {
     PlcConnection = plcConnection;
 }