
Сообщение от
DriverVoIP
...Поскажите что не правильно в макросе прописал. Напрямую в поле читает через макрос нет.
Капец блин насоветовали.
А где вы вообще проверяете что читаеццо если на рез-ты функций положили болт?
Уберите "чтение напрямую". Либо-либо. Мастер - 1 штука.
Уберите эти левые переменные, читайте сразу в нужное место
Код:
Reads (PLC, 1, MODBUS_RTU_REG_3X, 49226, 2, &PSW[710]);
Если обмен только пробуете и где-то там лежит флоат32, всегда сначала и воспроизводите на экран[/B] как целое 32-битное чтоб с порядком слов разобратся.
А если за каким-то чешется через переменные - приводите типы. Си же. Даже в РП есть.
Код:
DWORD ValueFloat1=0; DWORD ValueFloat2=0; DWORD ValueInteger1=0; //да хоть float
Read (PLC, 1, MODBUS_RTU_REG_3X, 49226, 0, 2, &ValueFloat1); PSW[710]=ValueFloat1; //ничего не смущает?
И перепишите дефективный (аж 1000) таймаут в нормальные 20..50мс. В РП всё есть.