Você simplesmente tem que converter a grandeza capturada pelo sht, para um unsigned INT de 16 bits, escrever nos input regs.
Salvo se eu não entendí o que seria input regs, não seria nos inputs registers que vai ter que escrever o resultado de sua leitura e sim em algum hold register 40.000 (modbus). Input registro seria para reles (bits).
Para ler um registro o master terá que enviar um pedido através da função 0x3.
Suponha que o endereço do servo seja 0x1. Veja a sequencia de bytes abaixo.
Master: Telegrama de pedido RTU:
0x1; 0x3; byte endereço inicial do registro; byte endereço final do registro; + 2 bytes de CRC.
Resposta servo:
0x1; 0x3; Numero de bytes com dados; Dado hi; Dado low; + 2 bytes CRC.
Dado hi+ Dado Low tem 16 bits. Se precisar de mais terá que ser múltiplo de 16 bits, ou seja, um registro 2 bytes hi e low, 2 registros 4 bytes, etc.
Seu supervisório vai trabalhar esses dados (Dado hi; Dado low) o qual tem o valor do SHT.
Basta identificar função 3d e hold register na função ou que te passaram.