*/publicstaticNumberreadInputRegisters(ModbusMaster master,int slaveId,int offset,int dataType,String dev_code){// 04 Input Registers类型数据读取BaseLocator<Number>loc=BaseLocator.inputRegister(slaveId,offset,dataType);try{returnmaster.getValue(loc);}catch(Exception e){if(e.getMessage().equals("...
holdingRegister(1, 1, DataType.FOUR_BYTE_FLOAT)); batch.addLocator(1, BaseLocator.inputStatus(1, 0)); ModbusMaster master = getMaster(); batch.setContiguousRequests(false); BatchResults<Integer> results = master.send(batch); System.out.println(results.getValue(0)); System.out.println(...
ModbusDataAnalyzeBean modbusDataAnalyzeBean2 =ModbusTools.dataAnalyze(data2,1); System.out.println("modbus数据解析为对象:"+modbusDataAnalyzeBean2.toString());//modbus数据转对象 float v = ParseUtil.toFloat(modbusDataAnalyzeBean2.getValues().get(0).intValue(), modbusDataAnalyzeBean2.getValues()...
java通过modbus4j对数据的写入 import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.serotonin.modbus4j.ModbusFactory; import com.serotonin.modbus4j.ModbusMaster; import com.serotonin.modbus4j.code.DataType; import com.serotonin.modbus4j.exception.ErrorResponseExce...
public void SetValue32(int offset, float value) { ushort lowOrderValue = BitConverter.ToUInt16(BitConverter.GetBytes(value), 2); ushort highOrderValue = BitConverter.ToUInt16(BitConverter.GetBytes(value), 0); ModbusDataCollection<ushort> data = slave.DataStore.HoldingRegisters; ...
data_type: float32 device_class: voltage input_type: holding precision: 1 # A 相电流 - name: dian_liu unit_of_measurement: A slave: 1 count: 2 address: 0x2002 data_type: float32 device_class: current input_type: holding precision: 3 ...
用以上描述地modbusDataType参数定义了这个端口的默认数据类型。通过在链接中用drvUser字段指定一个不同的数据类型,对应特定记录的数据类型可以重写这个默认值。驱动程序使用这个信息在EPICS设备支持和Modbus之间转换数值。数据以epicsUInt32, epicsInt32和epicsFloat64数值与EPICS设备支持来回传输。注意:在此表格中描述的...
UINT_DATATYPE8 BCD_DATATYPE16 LONG_DATATYPE32 LONGBCD_DATATYPE64 FLOAT_DATATYPE128 STRING_DATATYPE256 (2)打包规则说明 配置文件是一个信息文件格式,其中定义了设备名称以及打包规则。需要说明的是,这里定义的打包规则是基于协议的。 比如协议里规定,4寄存器的1~10是一个数据段,可以在一个包里请求,那么就...
10、表所对应的数据类型BIT_DATATYPE1BYTE_DATATYPE2INT_DATATYPE4UINT_DATATYPE8BCD_DATATYPE16LONG_DATATYPE32LONGBCD_DATATYPE64FLOAT_DATATYPE128STRING_DATATYPE256(2)打包规则说明配置文件是一个信息文件格式,其中定义了设备名称以及打包规则。需要说明的是,这里定义的打包规则是基于协议的。比如协议里规定,4寄...
type; }MODBUS_REG_TABLE; //输入只读寄存器 MODBUS_REG_TABLE code inputRegisterTable[]={ {10000, IDX_unit, ET_U8}, {10001, IDX_temperature, ET_FLOAT}, {10003, IDX_adc, ET_U16} }; //保持寄存器 MODBUS_REG_TABLE code holdingRegisterTable[]={ {20000, IDX_data_4, ET_FLOAT}, {20002...