do I need to declare reserved parameters which are not used in my modbus map, just for the sake of indexing or is there some thing that I am missing ?
CID Index :
Code: Select all
enum
{
SIZE_CFG_MBREG_CID = 0,
COMMAND_WORD_MBREG_CID,
SPEED_REF_MBREG_CID,
REF_RAMP_RISE_TIME_CID = 0x0C,
REF_RAMP_FALL_TIME_CID,
OVERLOAD_SETT_CID,
POWERBOARD_CTRL_CID,
STATUS_WORD_CID,
SPEED_FDB_CID = 0x013,
CURRENT_FDB_CID,
};
Code: Select all
typedef struct
{
uint16_t mb_device1_DriveID;
uint16_t mb_device1_CMD_Word;
uint16_t mb_device1_SpeedRef;
uint16_t mb_device1_Ref_Rise_time;
uint16_t mb_device1_Ref_Fall_Time;
uint16_t mb_device1_Overload_setting;
uint16_t mb_device1_Powerboard_Ctrl;
uint16_t mb_device1_Status_word;
uint16_t mb_device1_Speed_FDB;
uint16_t mb_device1_Current_FDB;
uint16_t mb_device1_DC_Bus_FDB;
}holding_reg_params_t;
Code: Select all
const mb_parameter_descriptor_t device_parameters[] = {
// { Cid, Param Name, Units, Modbus Slave Addr, Modbus Reg Type, Reg Start, Reg Size, Instance Offset, Data Type, Data Size, Parameter Options, Access Mode}
// Parameter: Data channel 0 : Data channel 0 = Voltage
{ SIZE_CFG_MBREG_CID, STR("Drive ID"), STR("GPM"), MB_DEVICE_ADDR1, MB_PARAM_HOLDING, 0, 1,
HOLD_OFFSET(mb_device1_DriveID), PARAM_TYPE_U16, 2, OPTS(0, 0xFFFF, 1), PAR_PERMS_READ_TRIGGER },
{ COMMAND_WORD_MBREG_CID, STR("Command Word"), STR("hex"), MB_DEVICE_ADDR1, MB_PARAM_HOLDING, 1, 1,
HOLD_OFFSET(mb_device1_CMD_Word), PARAM_TYPE_U16, 2, OPTS(0, 300, 1), PAR_PERMS_READ_WRITE_TRIGGER },
{ SPEED_REF_MBREG_CID, STR("Max Freq"), STR("Hz"), MB_DEVICE_ADDR1, MB_PARAM_HOLDING, 2, 1,
HOLD_OFFSET(mb_device1_SpeedRef), PARAM_TYPE_U16, 2, OPTS(0, 300, 1), PAR_PERMS_READ_WRITE_TRIGGER },
{ REF_RAMP_RISE_TIME_CID, STR("Ramp rise time"), STR("sec"), MB_DEVICE_ADDR1, MB_PARAM_HOLDING, 0x0C, 1,
HOLD_OFFSET(mb_device1_Ref_Rise_time), PARAM_TYPE_U16, 2, OPTS(0, 100, 1), PAR_PERMS_READ_WRITE_TRIGGER },
{ REF_RAMP_FALL_TIME_CID, STR("Ramp rise time"), STR("sec"), MB_DEVICE_ADDR1, MB_PARAM_HOLDING, 13, 1,
HOLD_OFFSET(mb_device1_Ref_Fall_Time), PARAM_TYPE_U16, 2, OPTS(0, 50000, 1), PAR_PERMS_READ_WRITE_TRIGGER },
{ OVERLOAD_SETT_CID, STR("Overload Sett"), STR("A"), MB_DEVICE_ADDR1, MB_PARAM_HOLDING, 14, 1,
HOLD_OFFSET(mb_device1_Overload_setting), PARAM_TYPE_U16, 2, OPTS(0, 100, 1), PAR_PERMS_READ_WRITE_TRIGGER },
{ POWER_CTRL_CID, STR("Power Ctrl"), STR("hex"), MB_DEVICE_ADDR1, MB_PARAM_HOLDING, 15, 1,
HOLD_OFFSET(mb_device1_Powerboard_Ctrl), PARAM_TYPE_U16, 2, OPTS(0, 100, 1), PAR_PERMS_READ_WRITE_TRIGGER },
};