Разобрался в чём была проблема. Оказалось, что в функции Writes в макросах панели при формировании массива регистров на запись обязательно нужно помнить о том, что последующее обращение к массиву идёт с нулевого элемента! А я начал нумерацию с единицы, поэтому второй регистр у меня не записывался. Сейчас всё в порядке, работает как и задумывалось.
TestTime_1.jpg

Код макроса:
#include <time.h>

DWORD UnixTime_now;
DWORD UnixTime_2000;
DWORD OwenTime;

struct tm time_str;

WORD wYear; // system date-time
WORD wMonth;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;

WORD TimeSec[2];

// get system date-time and convert it from BCD to DEC
wYear = 2000 + (LOBYTE(PSW[30]) / 16) * 10 + LOBYTE(PSW[30]) % 16;
wMonth = (PSW[31] / 16) * 10 + PSW[31] % 16;
wDay = (PSW[32] / 16) * 10 + PSW[32] % 16;
wHour = (PSW[33] / 16) * 10 + PSW[33] % 16;
wMinute = (PSW[34] / 16) * 10 + PSW[34] % 16;
wSecond = (PSW[35] / 16) * 10 + PSW[35] % 16;

PSW[300] = wYear;
PSW[301] = wMonth;
PSW[302] = wDay;
PSW[303] = wHour;
PSW[304] = wMinute;
PSW[305] = wSecond;

time_str.tm_year = wYear - 1900;
time_str.tm_mon = wMonth - 1;
time_str.tm_mday = wDay;
time_str.tm_hour = wHour;
time_str.tm_min = wMinute;
time_str.tm_sec = wSecond;
time_str.tm_isdst = -1;

UnixTime_now = mktime(&time_str);

time_str.tm_year = 2000 - 1900;
time_str.tm_mon = 1 - 1;
time_str.tm_mday = 1;
time_str.tm_hour = 0;
time_str.tm_min = 0;
time_str.tm_sec = 0;
time_str.tm_isdst = -1;

UnixTime_2000 = mktime(&time_str);

OwenTime = UnixTime_now - UnixTime_2000;

PSW[310]=LOWORD(OwenTime);
PSW[311]=HIWORD(OwenTime);

TimeSec[0]=PSW[310];
TimeSec[1]=PSW[311];

Writes(PLC, 1, MODBUS_RTU_REGS_4X, 61553, 2, TimeSec);

Макрос вызывается кнопкой Выполнить на экране. Кнопка с часами вызывает экран установки времени в панели. Так же на экран выведено содержимое регистров панели PSW[310-311] и регистров ПР103 61553-61554, и сделал ещё вывод этих же регистров в двоичном виде индикаторами. Панель Мастер, ПР103 слейв, подключение через RS485. В свойствах подключения обязательно поставить галку "Изменить порядок регистров".
TestTime_1.zip