Цитата Сообщение от BrEST Посмотреть сообщение
Спасибо за мысль, тоже попробую:
WORD Value=0;
Value=PSW[531];
PSW[531]!=0? Write(PLC, 1, MODBUS_RTU_REG_4X, 531, 0, TYPE_WORD, Value): Read(PLC, 1, MODBUS_RTU_REG_4X, 531, 0, TYPE_BIT, &PSW[531]);

Как-то так получилось, похоже на правду?
Я в Си не силен, по синтаксису не скажу
но чтение (Read(PLC, 1, MODBUS_RTU_REG_4X, 531, 0, TYPE_BIT, &PSW[531]) здесь, в макросе, не делал бы
Оставил бы чтение PSW531 в функции копирования 60 регистров

Хотя может и так оставить.