Сообщение от
Cs-Cs
У меня дельфи нет, я прогал раньше.
Я просто так открыл блокнотом код и стал смотреть ради интереса, поэтому могу дать ложную надежду.
К чему хочу придраться:
1. Все вот эти вот "Memo1.Lines.Add" указывают на то, что проект делался быстро-быстро и криво.
Лучше бы ты сделал процедуру типа AddToLog, и красиво её вызывал. Потому что если ты когда-нибудь захочешь поименовать Memo1 во что-то понятное типа txtLog, то замучаешься везде исправлять.
2. Не понял, зачем там разные расчёты CRC. Ты же делаешь опрос по Modbus RTU! А там CRC имеет ОДИН единственный алгоритм.
Вообще даже Modbus - медленный протокол. CRC явно считается быстрее, чем передача данных по протоколу.
3. Я не увидел составления посылок для протокола Modbus в принципе. Ты там тестируешь CRC, выводишь всякую инфу о возможностях портов... а где посылки данных-то?
Мои мысли о том, что тебе надо сделать:
0. Видимо, почитать про протокол Modbus. Он же работает как Запрос-Ответ. То есть, чтобы получить данные - надо что-то ПОСЛАТЬ. А у тебя в коде на "btnWritePortClick" написано "Пока Не использую".
1. Потренироваться опрашивать настоящие устройства через другие программы так, чтобы ты видел там реальные байты, какие идут между ними. Эти самые Запросы-Ответы. Такие программы могут быть OPC-серверами, Modbus Poll и прочими.
2. Разобраться с тем, как посылать и принимать байты в порт.
Составляешь массив байтов и потправляешь его в порт.
И получаешь данные из порта и склеиваешь их в массив байтов. НЕ в строку, так как строка с байтами работать не будет.
3. Потом из документации по Modbus понять, как составлять запрос (Адрес, Команда, Данные, CRC).
И уже его отсылать и смотреть, что тебе ответят.