I append the full st.cmd file below. I also tried to define other functions PINI to YES and FNLK to
#!/home/marco/work/cnpem_git/LCI/NEGPowerMINI/bin/linux-x86_64/NEG
< /home/marco/work/cnpem_git/LCI/NEGPowerMINI/iocBoot/iocNEG/envPaths
epicsEnvSet("BL","LCI")
epicsEnvSet("H","X")
epicsEnvSet("EQ","NEGPowerMINI")
epicsEnvSet("IOCNAME","NEG")
# Configuração da linha de luz
< /home/marco/work/cnpem_git/LCI/NEGPowerMINI/iocBoot/iocNEG/NEG.config
epicsEnvSet("STREAM_PROTOCOL_PATH","${TOP}/db")
cd ${TOP}
## Register all support components
dbLoadDatabase "dbd/NEG.dbd"
NEG_registerRecordDeviceDriver pdbbase
drvAsynIPPortConfigure("EMODBUS","10.20.41.90:502",0,0,1)
########NOT USED ANYMORE. KEEPING FOR HISTORICAL REASONS###
# Set up ASYN HYPPIE ports
# pxiCreateSM(asyn, shared memory name)
# drvasynPXIConfig(port, COM port, shared memory name, serial type)
#asynSetOption("EMODBUS", 0, "${BAUD}", "9600")
#asynSetOption("EMODBUS", 0, "bits", "8")
#asynSetOption("EMODBUS", 0, "parity", "none")
#asynSetOption("EMODBUS", 0, "stop", "1")
###############################################################################
###############################################################################
## Configure
modbusInterposeConfig("EMODBUS",0,3000,0)
# drvModbusAsynConfigure(portName, => create a name
# tcpPortName, => defined before
# slaveAddress, => defined on equipament
# modbusFunction, => 3 : Read Holding Register (16-bit)
# modbusStartAddress, => adress of register
# modbusLength, => the length of data segment
# dataType, => default data type
# pollMsec,
# plcType); => Equipament name, not used
drvModbusAsynConfigure("NEG_EMODBUS_1_1_Rd_SoftwareVersion",
"EMODBUS", ${MBUS_SL_ADDR},${MBUS_READ}, 0x1000, 1, 2,
${MBUS_POLL}, "");
drvModbusAsynConfigure("NEG_EMODBUS_1_1_Rd_HardwareVersion",
"EMODBUS", ${MBUS_SL_ADDR},${MBUS_READ},0x1002,1,2,${MBUS_POLL},
"");
drvModbusAsynConfigure("NEG_EMODBUS_1_1_Rd_PowerSuppIntState",
"EMODBUS", ${MBUS_SL_ADDR},${MBUS_READ},0x2000,1,0,${MBUS_POLL},
"");
drvModbusAsynConfigure("NEG_EMODBUS_1_1_Rd_LoggingState",
"EMODBUS", ${MBUS_SL_ADDR},${MBUS_READ},0x2001,1,0,${MBUS_POLL},
"");
drvModbusAsynConfigure("NEG_EMODBUS_1_1_Rd_SysUptime",
"EMODBUS", ${MBUS_SL_ADDR},${MBUS_READ},0x2002,2,0,${MBUS_POLL},
"");
drvModbusAsynConfigure("NEG_EMODBUS_1_1_Rd_InternalTemperature",
"EMODBUS", ${MBUS_SL_ADDR},${MBUS_READ},0x2004,1,0,${MBUS_POLL},
"");
drvModbusAsynConfigure("NEG_EMODBUS_1_1_Rd_PumpTemperature",
"EMODBUS", ${MBUS_SL_ADDR},${MBUS_READ},0x2005,1,0,${MBUS_POLL},
"");
drvModbusAsynConfigure("NEG_EMODBUS_1_1_Rd_OutVolt",
"EMODBUS", ${MBUS_SL_ADDR},${MBUS_READ},0x2006,1,0,${MBUS_POLL},
"");
drvModbusAsynConfigure("NEG_EMODBUS_1_1_Rd_OutCurr",
"EMODBUS", ${MBUS_SL_ADDR},${MBUS_READ},0x2007,1,0,${MBUS_POLL},
"");
drvModbusAsynConfigure("NEG_EMODBUS_1_1_Rd_TimeRunning",
"EMODBUS", ${MBUS_SL_ADDR},${MBUS_READ},0x2008,2,0,${MBUS_POLL},
"");
drvModbusAsynConfigure("NEG_EMODBUS_1_1_Rd_Alarms",
"EMODBUS", ${MBUS_SL_ADDR},${MBUS_READ},0x200A,2,0,${MBUS_POLL},
"");
drvModbusAsynConfigure("NEG_EMODBUS_1_1_Rd_TempAlarms",
"EMODBUS", ${MBUS_SL_ADDR},${MBUS_READ},0x200C,2,0,${MBUS_POLL},
"");
drvModbusAsynConfigure("NEG_EMODBUS_1_1_Rd_WorkTime",
"EMODBUS", ${MBUS_SL_ADDR},${MBUS_READ},0x200E,2,0,${MBUS_POLL},
"");
drvModbusAsynConfigure("NEG_EMODBUS_1_1_Rd_VTarget",
"EMODBUS", ${MBUS_SL_ADDR},${MBUS_READ},0x3000,1,0,${MBUS_POLL},
"");
drvModbusAsynConfigure("NEG_EMODBUS_1_1_Wr_VTarget",
"EMODBUS", ${MBUS_SL_ADDR},${MBUS_WRITE},0x3000,1,0,${MBUS_POLL},
"");
## Load record instances
dbLoadRecords("db/dbNEG.db",
"BL=${BL}, H=${H}, EQ=${EQ}")
cd ${TOP}/iocBoot/${IOC}