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); }
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); }
public float ReadFloat(ushort adress) { READ_INPUT_REGS_RESP resp = ReadInputRegisters(adress, 2); return(resp.GetInpRegsFLOAT(0)); }