Здравствуйте!

1. В "CП3xx. Руководство пользователя" (Версия: 1.4 Дата: 16.03.2018) на странице 47 указано: "2. область памяти PCW используется для выполнения сервисных программ и не должна использоваться пользователем". Прошу прояснить про область памяти PCW, что она из себя представляет.

2. В "CП3xx. Руководство пользователя" (Версия: 1.4 Дата: 16.03.2018) на странице 199 указано: "PFW32 СOM 2 (PLC-порт): количество стоп бит. Возможные значения: 0 – 1 стоповый бит; 1 – 1.5 бита; 2 – 2 бита". В конфигураторе СП300 V2.D3k-5 в меню "Настройка проекта" для устройства "PLC-порт" выбран режим "Modbus RTU Master", и его настройки могут иметь "Стоп бит" - "1 бит" и "2 бита", причем возможности выбрать "1.5 бита" отсутствует. При выборе в меню "Настройка проекта" "Стоп бит" - "1 бит" в регистре PFW32 появляется значение "2", при выборе - "2 бита" в регистре PFW32 - "0". В данной ситуации либо расхождение с документацией, либо косяк самой панели?

3. Написал макрос чтения регистра со слайв устройства:
Код:
WORD vlb;

Read(PLC, 11, MODBUS_RTU_REG_4X, 0, 0, TYPE_WORD, &vlb)

PSW[300]=vlb;
Регистр под номером 0 читается, все хорошо. Но стоить отключить линию RS-485 от вторичного устройства в регистре PSW[300] появляется значение "2". Я понимаю что это значение код какой то ошибки (или мусор), мне не понятно почему регистру PSW[300] присваивается код ошибки, если чтение со слейв устройства не произошло? Разве не логично тогда регистру PSW[300] никаких данных не присваивать? Код ошибки можно и по другому проверить, вот пример "костыля", который проверяет код возврата функции Read(), и только после проверки присваивает значение регистру PSW[300]:
Код:
WORD vlb;

if(Read(PLC, 11, MODBUS_RTU_REG_4X, 0, 0, TYPE_WORD, &vlb))
{
	PSW[300]=vlb;
};
В документации такое поведение функции Read() не описано.