public Task <OperateResult <byte[]> > ReadAsync(string address, ushort length)
        {
            var tcs = new TaskCompletionSource <OperateResult <byte[]> >();

            m_plc.BeginRead(address, length, read =>
            {
                tcs.SetResult(read);
            });
            return(tcs.Task);
        }