Код:
_serialPort = new SerialPort();
_serialPort.PortName = SetPortName("COM6");
_serialPort.BaudRate = SetPortBaudRate(9600);
_serialPort.Parity = SetPortParity(Parity.None);
_serialPort.DataBits = SetPortDataBits(8);
_serialPort.StopBits = SetPortStopBits(StopBits.One);
_serialPort.ReadTimeout = 500;
_serialPort.WriteTimeout = 500;
_serialPort.Open();
if (! _serialPort.IsOpen)
MessageBox.Show("Порт не открыт");
else
var mbus = ModbusSerialMaster.CreateRtu(port);
short i:=0 // это будет адрес регистра
while (i < 10000) // количство запросов для теста.
{
if (i= mbus.ReadHoldingRegisters(1, i, 1)) /// или как там в библиотеке прицесли к целочисленному значению
MessageBox.Show(i);
i++;
}
вот как то так адаптируйте код сами для перебора я условно написал трудно с паскаля резко перейти на с# я зам его не так давно изучать стал т.к. другой альтернативы нет.
Надеюсь мысль уловили
Сейчас только пришло в голову. а адрес регистра может не 1 а 40001 быть для 2 - 40002 и так же далее по аналогии