modbus-connect
Version:
Modbus RTU over Web Serial and Node.js SerialPort
88 lines (83 loc) • 2.57 kB
text/typescript
// src/constants/constants.ts
export enum ModbusFunctionCode {
READ_COILS = 0x01,
READ_DISCRETE_INPUTS = 0x02,
READ_HOLDING_REGISTERS = 0x03,
READ_INPUT_REGISTERS = 0x04,
WRITE_SINGLE_COIL = 0x05,
WRITE_SINGLE_REGISTER = 0x06,
WRITE_MULTIPLE_COILS = 0x0f,
WRITE_MULTIPLE_REGISTERS = 0x10,
REPORT_SLAVE_ID = 0x11,
READ_DEVICE_COMMENT = 0x14,
WRITE_DEVICE_COMMENT = 0x15,
READ_DEVICE_IDENTIFICATION = 0x2b,
READ_FILE_LENGTH = 0x52,
READ_FILE_CHUNK = 0x5a,
OPEN_FILE = 0x55,
CLOSE_FILE = 0x57,
RESTART_CONTROLLER = 0x5c,
GET_CONTROLLER_TIME = 0x6e,
SET_CONTROLLER_TIME = 0x6f,
}
export enum ModbusExceptionCode {
ILLEGAL_FUNCTION = 1,
ILLEGAL_DATA_ADDRESS = 2,
ILLEGAL_DATA_VALUE = 3,
SLAVE_DEVICE_FAILURE = 4,
ACKNOWLEDGE = 5,
SLAVE_DEVICE_BUSY = 6,
MEMORY_PARITY_ERROR = 8,
GATEWAY_PATH_UNAVAILABLE = 10,
GATEWAY_TARGET_DEVICE_FAILED = 11,
}
export const MODBUS_EXCEPTION_MESSAGES: Record<ModbusExceptionCode, string> = {
[ModbusExceptionCode.ILLEGAL_FUNCTION]: 'Illegal Function',
[ModbusExceptionCode.ILLEGAL_DATA_ADDRESS]: 'Illegal Data Address',
[ModbusExceptionCode.ILLEGAL_DATA_VALUE]: 'Illegal Data Value',
[ModbusExceptionCode.SLAVE_DEVICE_FAILURE]: 'Slave Device Failure',
[ModbusExceptionCode.ACKNOWLEDGE]: 'Acknowledge',
[ModbusExceptionCode.SLAVE_DEVICE_BUSY]: 'Slave Device Busy',
[ModbusExceptionCode.MEMORY_PARITY_ERROR]: 'Memory Parity Error',
[ModbusExceptionCode.GATEWAY_PATH_UNAVAILABLE]: 'Gateway Path Unavailable',
[ModbusExceptionCode.GATEWAY_TARGET_DEVICE_FAILED]: 'Gateway Target Device Failed to Respond',
};
export enum RegisterType {
UINT16 = 'uint16',
INT16 = 'int16',
UINT32 = 'uint32',
INT32 = 'int32',
FLOAT = 'float',
UINT32_LE = 'uint32_le',
INT32_LE = 'int32_le',
FLOAT_LE = 'float_le',
UINT32_SW = 'uint32_sw',
INT32_SW = 'int32_sw',
FLOAT_SW = 'float_sw',
UINT32_SB = 'uint32_sb',
INT32_SB = 'int32_sb',
FLOAT_SB = 'float_sb',
UINT32_SBW = 'uint32_sbw',
INT32_SBW = 'int32_sbw',
FLOAT_SBW = 'float_sbw',
UINT32_LE_SW = 'uint32_le_sw',
INT32_LE_SW = 'int32_le_sw',
FLOAT_LE_SW = 'float_le_sw',
UINT32_LE_SB = 'uint32_le_sb',
INT32_LE_SB = 'int32_le_sb',
FLOAT_LE_SB = 'float_le_sb',
UINT32_LE_SBW = 'uint32_le_sbw',
INT32_LE_SBW = 'int32_le_sbw',
FLOAT_LE_SBW = 'float_le_sbw',
UINT64 = 'uint64',
INT64 = 'int64',
DOUBLE = 'double',
UINT64_LE = 'uint64_le',
INT64_LE = 'int64_le',
DOUBLE_LE = 'double_le',
HEX = 'hex',
STRING = 'string',
BOOL = 'bool',
BINARY = 'binary',
BCD = 'bcd',
}