コード例 #1
0
        private OperateResult CheckResponse(byte[] response)
        {
            try
            {
                int status = ByteTransform.TransInt32(response, 8);
                if (status == 0)
                {
                    return(OperateResult.CreateSuccessResult( ));
                }

                string msg = string.Empty;
                switch (status)
                {
                case 0x01: msg = StringResources.Language.AllenBradleySessionStatus01; break;

                case 0x02: msg = StringResources.Language.AllenBradleySessionStatus02; break;

                case 0x03: msg = StringResources.Language.AllenBradleySessionStatus03; break;

                case 0x64: msg = StringResources.Language.AllenBradleySessionStatus64; break;

                case 0x65: msg = StringResources.Language.AllenBradleySessionStatus65; break;

                case 0x69: msg = StringResources.Language.AllenBradleySessionStatus69; break;

                default: msg = StringResources.Language.UnknownError; break;
                }

                return(new OperateResult(status, msg));
            }
            catch (Exception ex)
            {
                return(new OperateResult(ex.Message));
            }
        }
コード例 #2
0
        /// <summary>
        /// 读取设备的int类型的数组
        /// </summary>
        /// <param name="address">起始地址</param>
        /// <param name="length">数组长度</param>
        /// <returns>带成功标志的结果数据对象</returns>
        public OperateResult <int[]> ReadInt32(string address, ushort length)
        {
            OperateResult <byte[]> read = Read(address, (ushort)(length * WordLength * 2));

            if (!read.IsSuccess)
            {
                return(OperateResult.CreateFailedResult <int[]>(read));
            }
            return(OperateResult.CreateSuccessResult(ByteTransform.TransInt32(read.Content, 0, length)));
        }
コード例 #3
0
        private OperateResult CheckResponse(byte[] response)
        {
            try
            {
                int status = ByteTransform.TransInt32(response, 8);
                if (status == 0)
                {
                    return(OperateResult.CreateSuccessResult( ));
                }

                string msg = string.Empty;
                switch (status)
                {
                case 0x01: msg = "发件人发出无效或不受支持的封装命令。"; break;

                case 0x02: msg = "接收器中的内存资源不足以处理命令。 这不是一个应用程序错误。 相反,只有在封装层无法获得所需内存资源的情况下才会导致此问题。"; break;

                case 0x03: msg = "封装消息的数据部分中的数据形成不良或不正确。"; break;

                case 0x64: msg = "向目标发送封装消息时,始发者使用了无效的会话句柄。"; break;

                case 0x65: msg = "目标收到一个无效长度的信息"; break;

                case 0x69: msg = "不支持的封装协议修订。"; break;

                default: msg = "未知错误"; break;
                }

                return(new OperateResult(status, msg));
            }
            catch (Exception ex)
            {
                return(new OperateResult( )
                {
                    Message = ex.Message
                });
            }
        }
コード例 #4
0
 /// <summary>
 /// 读取PLC的int类型的数组 -> An array that reads the int type of the PLC
 /// </summary>
 /// <param name="address">节点的名称 -> Name of the node </param>
 /// <param name="length">数组长度 -> Array length </param>
 /// <returns>带有结果对象的结果数据 -> Result data with result info </returns>
 /// <example>
 /// 以下为三菱的连接对象示例,其他的设备读写情况参照下面的代码:
 /// <code lang="cs" source="HslCommunication_Net45.Test\Documentation\Samples\Core\NetworkDeviceBase.cs" region="ReadInt32Array" title="Int32类型示例" />
 /// </example>
 public override OperateResult <int[]> ReadInt32(string address, ushort length)
 {
     return(ByteTransformHelper.GetResultFromBytes(Read(address, length), m => ByteTransform.TransInt32(m, 0, length)));
 }
コード例 #5
0
 /// <summary>
 /// 读取设备的int类型的数组
 /// </summary>
 /// <param name="address">起始地址</param>
 /// <param name="length">数组长度</param>
 /// <returns>带成功标志的结果数据对象</returns>
 /// <example>
 /// 以下为三菱的连接对象示例,其他的设备读写情况参照下面的代码:
 /// <code lang="cs" source="HslCommunication_Net45.Test\Documentation\Samples\Core\NetworkDeviceBase.cs" region="ReadInt32Array" title="Int32类型示例" />
 /// </example>
 public virtual OperateResult <int[]> ReadInt32(string address, ushort length)
 {
     return(ByteTransformHelper.GetResultFromBytes(Read(address, (ushort)(length * WordLength * 2)), m => ByteTransform.TransInt32(m, 0, length)));
 }