Ошибка 0x31 (SZE) при передаче МВ110-224.8А команды APLY
Добрый день.
При попытке отдать модулю МВ110-224.8А команду APLY с помощью библиотеки OwenNet (CoDeSys 2.3) возвращается ошибка с кодом 0x31 (SZE).
Подскажите, пожалуйста, как правильно отправить эту команду?
Скрытый текст:
PROGRAM PLC_PRG
VAR
uComPort : USINT := 0;(* COM-порт, для ПЛК150 равен 0 *)
uComServ : COM_SERVICE;
uComSettings : COMSETTINGS;
uNeedComOpen : BOOL := FALSE;(* Открыть, или закрыть выбранный COM-порт *)
uComBaudrate : DWORD := 9600;
osdint : OWEN_SET_DINT;(* Задать новую скорость передачи порта *)
osaply : OWEN_SET_DINT;(* Отправить команду APLY *)
uExecSet : BOOL := FALSE;(* Выполнить связку osdint+osaply *)
uCompleteSet : BOOL := FALSE;(* osdint выполнен*)
uCompleteAply : BOOL := FALSE;(* osaply выполнен *)
uIndex : WORD := 16#FFFF;
uSetValue : DINT := 0;(* Значение, передаваемое в регистр скорости порта *)
uSetError : WORD := 0;(* Ошибки выполнения osdint *)
uAplyError : WORD := 0;(* Ошибки выполнения osaply *)
END_VAR
IF (uComServ.Ready = TRUE) AND (uNeedComOpen = TRUE) THEN
IF uExecSet = TRUE THEN
IF uCompleteSet = FALSE THEN
(* Запись в регистр значения не завершена *)
osdint(Enable := uExecSet, Addr := 16, AddrLen := A8BIT, Name := 'bPS', Index := uIndex, IntType := SINT1_FRM, Value := uSetValue, ComHandle := uComPort, TimeOut := T#500ms,
Complete => uCompleteSet, Error => uSetError);
ELSIF uCompleteAply = FALSE THEN
(* Выполнение команды APLY не завершено *)
osaply(Enable := uExecSet, Addr := 16, AddrLen := A8BIT, Name := 'APLY', Index := uIndex, IntType := SINT1_FRM, Value := 0, ComHandle := uComPort, TimeOut := T#500ms,
Complete => uCompleteAply, Error => uAplyError);
ELSE
(* Записанное в регистр значение зафиксировано *)
uExecSet := FALSE;
uCompleteSet := FALSE;
uCompleteAply := FALSE;
END_IF;
ELSE
uCompleteSet := FALSE;
uCompleteAply := FALSE;
END_IF;
END_IF;
03.03.2021, 13:38
fatlortroll
В РЭ тоже про APLY не нашлось, я про него узнал из описания протокола. Там в 6.2. указано: "Для смены сетевых настроек прибора необходимо послать в прибор специальный параметр-команду Aply".
Попробовал сейчас без отсылки APLY -- новые настройки (bPS) записываются в регистр, но применение их происходит только при сбросе по питанию. Я полагал, что APLY позволяет перейти на новые настройки сети без перезагрузки модуля, но теперь и вовсе не понимаю, что она делает, и присутствует ли вообще в МВ110-224.8А.
03.03.2021, 15:17
A.Simonov
Цитата:
Сообщение от fatlortroll
В РЭ тоже про APLY не нашлось, я про него узнал из описания протокола. Там в 6.2. указано: "Для смены сетевых настроек прибора необходимо послать в прибор специальный параметр-команду Aply".
Попробовал сейчас без отсылки APLY -- новые настройки (bPS) записываются в регистр, но применение их происходит только при сбросе по питанию. Я полагал, что APLY позволяет перейти на новые настройки сети без перезагрузки модуля, но теперь и вовсе не понимаю, что она делает, и присутствует ли вообще в МВ110-224.8А.
После смены сетевых настроек прибор требуется перезагрузить, Aply не нужен для данного модуля.
03.03.2021, 15:38
fatlortroll
> После смены сетевых настроек прибор требуется перезагрузить, Aply не нужен для данного модуля
Это справедливо для всей линейки Мx110, или есть исключения?
APLY для данного модуля не нужен при смене сетевых настроек, или отсутствует вовсе?
03.03.2021, 16:25
A.Simonov
Цитата:
Сообщение от fatlortroll
> После смены сетевых настроек прибор требуется перезагрузить, Aply не нужен для данного модуля
Это справедливо для всей линейки Мx110, или есть исключения?
APLY для данного модуля не нужен при смене сетевых настроек, или отсутствует вовсе?
На сколько я помню все Мх110 нужно перезагружать, для смены настроек.
Aply используется, например, в модуле 1ТД/4ТД.
03.03.2021, 16:29
fatlortroll
А есть возможность программного перезапуска? Что-то вроде (выдуманной мной сейчас) команды 'rst'?
04.03.2021, 08:07
fatlortroll
Зачем тайный-то? Автоматизация развёртывания установок. Чтобы минимизировать движения персонала. Если установок десяток, то не развалится персонал, настроит. А если тысяча?