Добрый день.
См. здесь: https://youtu.be/IFUN4cYskRI1. использовать $(DeviceName).xError невозможно - он не поднимается, зато вместо него вечно поднят $(DeviceName).xBusy независимо от того, подключен физически модуль или отключен.
2. $(DeviceName).byModbusError использовать для получения подробностей состояния канала тоже не получается: значения либо Response_successful, либо Undefined.
Надо так (но сначала - в свойствах библиотеки IoDrvModbusTCP в менеджере библиотек поставить галочку "Только квалифицированный доступ" - это будет упомянуто и в видео выше).Но создать переменную такого же типа "ModbusTcpComState" у меня не получилось, так же как и найти таблицу значений
2023-06-28_12-45-06.pngКод:eState: IoDrvModbusTCP.ModbusTCPComState;
В случае потери связи невозможно что-то сделать, так как нет связи.1. Есть ли возможность что-то сделать с ведомым устройством в случае потери связи: перезагрузить, повторно инициализировать, перенастроить и тд используя только протокол ModBus TCP и команды из кода?
Всё происходит автоматически за счет галочки Автоподключение в компоненте Modbus TCP Master.2. Есть ли возможность перезапустить "устройство ModbusTCP Master" из кода для повторной инициализации всех ведомых устройств?
3. Есть ли возможность перезапустить "устройство Ethernet" (на котором висит ModbusTCP Master) из кода?
5. Возможно ли что-то сделать ещё из кода, чтобы предпринять попытки принудительного восстановления связи?
См. видео выше.4. Есть ли более корректные способы получения информации о состоянии связи? Чтобы видно было "CRC_Fail" или "Response_timeout" вместо Undefined?




Ответить с цитированием
