Exemplo n.º 1
0
        public float[] ReadFloat(ushort adress, int count)
        {
            float[] rez = new float[count];
            READ_INPUT_REGS_RESP resp = ReadInputRegisters(adress, count * 2);

            for (int i = 0; i < count; i++)
            {
                rez[i] = resp.GetInpRegsFLOAT(i * 2);
            }
            return(rez);
        }
Exemplo n.º 2
0
        public READ_INPUT_REGS_RESP ReadInputRegisters(ushort adress, int count)
        {
            READ_INPUT_REGS_REQ  req  = new READ_INPUT_REGS_REQ();
            READ_INPUT_REGS_RESP resp = new READ_INPUT_REGS_RESP(count);

            req.function_code = (byte)ModbusCodes.MOD_READ_INPUT_REGISTER;
            req.st_adr_hi     = (byte)(adress >> 8);
            req.st_adr_lo     = (byte)adress;
            req.quantity_hi   = 0;
            req.quantity_lo   = (byte)count;
            CreateMBSend(req);

            WRITECOMPORT(req.DataBuffer, 0, req.BufferSize);
            int TrustSize = resp.BufferSize;

            Read(req, resp);
            if (resp.BufferSize != TrustSize)
            {
                throw (new Exception("Ошибка READ_INPUT_REGS"));
            }
            return(resp);
        }
Exemplo n.º 3
0
        public float ReadFloat(ushort adress)
        {
            READ_INPUT_REGS_RESP resp = ReadInputRegisters(adress, 2);

            return(resp.GetInpRegsFLOAT(0));
        }