RUBENS SOARES DOS SANTOS
07/08/2024 05:38:19
Bom dia!
Estou com dúvida quanto a obrigatoriedade de ter um master e um slave, para obter a leitura de um multimedidor via modbusPM1000 -Modbus-1.pdf.
Em outro momento consegui realizar, a leitura utilizando apenas um esp32 e um conversor ttl, com funções FLOAT conforme manual em anexo. Porém hoje não estou conseguindo mais. Eu gostaria de utilizar apenas um dispositivo, por exemplo, na função master ou slave e já coletar e enviar para o Server. Não lembro se fiz como master ou slave, se isso é um algum problema de configuração.
Anteriormente utilizei os pinos RX2 e TX2 - 16 e 17 pinos.
ESP -> TTL -> Multimedidor
Se puder me ajudar com estas dúvidas, como qual uart utilizar, pinos já que estou utilizando esp-wroom-32. Se posso utilizar uart 1 e 2 como 16 e 17 por exemplo que são RX2 e TX2.
Obrigado
FERNANDO SIMPLICIO DE SOUSA
09/08/2024 16:09:16
Você pode tentar executar o programa acima, no qual deixei o master configurado conforme o manual do seu equipamento. Entretanto, não tenho certeza se vai funcionar adequadamente visto que não tenho como simular por aqui.
Observação:
Percebi que a configuração da serial precisa ser configurada conforme abaixo
/**
* Define as configurações a serem utilizadas no protocolo Modbus RTU;
*/
mb_communication_info_t comm =
{
.port = MB_PORT_NUM,
.mode = MB_MODE_RTU, //ou .mode = MB_MODE_ASCII,
.baudrate = MB_DEV_SPEED,
.parity = UART_PARITY_EVEN //MB_PARITY_NONE
};
Acredito que o descritor possa ser configurado assim:
{
CID_HOLD_DATA_0, //CID
STR("Humidity_1"), //Param Name
STR("%rH"), //Units
MB_DEVICE_ADDR1, //Modbus Slave Addr
MB_PARAM_HOLDING, //Modbus Reg Type
/*After starting the Modscan, to read Apparent power total (VA total), enter
Address as 3901 (decimal) Length as 2; Device ID as 1; Modbus Point
type as 03: HOLDING REGISTER as shown below*/
3901, //Reg Start
2, //Reg Size
HOLD_OFFSET(holding_data0), //Instance Offset
PARAM_TYPE_FLOAT, //Data Type
4, //Data Size
OPTS( 0, 100, 1 ), //Parameter Options. MIN-MAX-STEP ou OPT1-OPT2-OPT3. Atenção: tipos definidos como int;
PAR_PERMS_WRITE_TRIGGER //PAR_PERMS_READ_WRITE_TRIGGER//Access Mode
},