Пример #1
0
        public int SetResponse(byte[] responseBytes, McFrame mcFrame)
        {
            if (mcFrame.HasFlag(McFrame.ASCII_FLAG))
            {
                return(SetResponse(ASCIIEncoding.ASCII.GetString(responseBytes)));
            }

            ResultCode = 0xcccc;

            int min = (FrameType.HasFlag(McFrame.MC3E)) ? 11 : 15;

            if (min <= responseBytes.Length)
            {
                var btCount = new[] { responseBytes[min - 4], responseBytes[min - 3] };
                var btCode  = new[] { responseBytes[min - 2], responseBytes[min - 1] };
                int rsCount = BitConverter.ToUInt16(btCount, 0);
                if (FrameType.HasFlag(McFrame.ASCII_FLAG))
                {
                    rsCount = rsCount / 2;
                }

                ResultCode = BitConverter.ToUInt16(btCode, 0);
                Response   = new byte[rsCount - 2];
                Buffer.BlockCopy(responseBytes, min, Response, 0, Response.Length);
            }
            return(ResultCode);
        }
Пример #2
0
Файл: mcp.cs Проект: youthv/MCSo
 }                               //站号
 // ====================================================================================
 // 构造函数,用于设定通讯协议为3E,参数为目标e71的ip地址和端口号
 protected McProtocolApp(string iHostName, int iPortNumber, McFrame mf, uint ucn)
 {
     CommandFrame = mf;
     HostName     = iHostName;
     PortNumber   = iPortNumber;
     appcn        = ucn;
 }
Пример #3
0
 }                                               // 応答データ
 // ================================================================================
 // コンストラクタ
 public McCommand(McFrame iFrame)
 {
     FrameType     = iFrame;
     SerialNumber  = 0x0001u;
     NetwrokNumber = 0x0000u;
     PcNumber      = 0x00FFu;
     IoNumber      = 0x03FFu;
     ChannelNumber = 0x0000u;
     CpuTimer      = 0x0010u;
 }
Пример #4
0
        }                                                       // 响应数据

        public McCommand(McFrame iFrame)
        {
            FrameType     = iFrame;
            SerialNumber  = 0x0001;
            NetwrokNumber = 0x00;
            PcNumber      = 0xFF;
            IoNumber      = 0x03FF;
            ChannelNumber = 0x00;
            CpuTimer      = 0x0010;
        }
Пример #5
0
Файл: mcp.cs Проект: youthv/MCSo
 }                                            // PLC响应返回的数据
 // ================================================================================
 // 构造函数
 public McCommand(McFrame iFrame)
 {
     FrameType     = iFrame;
     SerialNumber  = 0x0001u; //用于4E frame协议
     NetwrokNumber = 0x0000u; //0x0002u是不符合手册的。单联时默认0x0000u
     PcNumber      = 0x00FFu; //同上默认0x00FFu;
     IoNumber      = 0x03FFu; //同上默认0x03FFu;
     ChannelNumber = 0x0008u; //e71站号
     CpuTimer      = 0x000Au; //同上默认
 }
Пример #6
0
Файл: mcp.cs Проект: youthv/MCSo
 public McProtocolUdp(string iHostName, int iPortNumber, McFrame mf, uint cn)
     : base(iHostName, iPortNumber, mf, cn)
 {
     Client = new UdpClient(iPortNumber);
 }