Esempio n. 1
0
        private static async Task <int> Read(string address, string blockType, ushort maxJobs, ILoggerFactory loggerFactory)
        {
            var client = new Dacs7Client(address, PlcConnectionType.Pg, 5000, loggerFactory)
            {
                MaxAmQCalled  = maxJobs,
                MaxAmQCalling = maxJobs
            };
            var logger = loggerFactory?.CreateLogger("Dacs7Cli.BlocksOfType");

            try
            {
                await client.ConnectAsync();

                var blockTypeEnum = Enum.Parse <PlcBlockType>(blockType, true);
                var result        = await client.ReadBlocksOfTypeAsync(blockTypeEnum);

                if (result != null)
                {
                    foreach (var item in result)
                    {
                        logger?.LogInformation($"{blockType}:{item.Number} : {item.Language}");
                    }
                }
                else
                {
                    logger?.LogError($"No result on blockinfo");
                }
            }
            catch (Exception ex)
            {
                logger?.LogError($"An error occured in Read: {ex.Message} - {ex.InnerException?.Message}");
                return(1);
            }
            finally
            {
                await client.DisconnectAsync();
            }

            return(0);
        }