можно и в одном запросе. Просто указываете тип - int32, а количество элементов - в два раза больше.
Объеденить их потом можно, но только если в строку, так как тега типа int64 в ОРС сервере нет.
Спасибо.
Дело в том, что какое бы количество элементов не указывал int32:4:3210 или int32:6:543210 результат в теге не меняется
Когда local destMask = {"byte", "byte", "byte", "byte", "byte", "byte", "int32:4:3210", "byte"};
send = {0x55, 0x01, 0xFE, 0x0F, 0x01, 0x03, 0x04, 0x82, 0x04};
Результат 4 байта
когда local destMask = {"byte", "byte", "byte", "byte", "byte", "byte", "int32:6:543210", "byte"};
send = {0x55, 0x01, 0xFE, 0x0F, 0x01, 0x03, 0x04, 0x82, 0x06};
Результат 2 байта
Последний раз редактировалось daniel23; 06.02.2018 в 11:13.
Приложите вашу конфигурацию (оставьте в ней только то, что связано с вашим скриптом), а также лог. Для этого в свойствах сервера включите запись журнала и всех его событий, размер лога задайте равным 10000. Запустите режим исполнения и воспроизведите ошибку. Лог пишется в папку:
c:\ProgramData\InSAT\MasterOPC Universal Modbus Server\SERVERLOGS\
Лог заархивируйте и вышлите нам вместе с конфигурацией.
Спасибо.
Ошибок так то нет, но вот значения не меняются при изменении int32:4 на int32:6. Это странно
Последний раз редактировалось daniel23; 06.02.2018 в 11:53.
А какие значения не меняются?
Что это такое:
"int32:12:1110976543210"
12 переменных типа int32 у вас в ответе нет. А чередование байт вообще не пойми что
Посмотрите внимательно документацию.
Спасибо.
Я вас понял, спасибо. Делаю так local destMask = {"byte", "byte", "byte", "byte", "byte", "byte", "int16:3:10", "byte"}; и так local destMask = {"byte", "byte", "byte", "byte", "byte", "byte", "int16:1:10", "int32:1:3210", "byte"}; Но в ответе не получаю 6 байт
В каком ответе? От устройства?
Потом то что вы с полученным ответом делаете?
Спасибо.