PDA

Просмотр полной версии : проблема с конфиг. переменной плк63



Доренский Алексей
11.12.2009, 12:33
Здравствуйте уважаемые специалисты техподдержки. У меня в SubMenu[Slot] PLCconfiguration переменная REGIM (bool) отвечает за режим работы техн.установки (Авт/Ручн). Ее можно изменять путем программирования ПЛК с панели. При включении/отключении питания программа берет данные сохраненные в переменной до отключения.
На тех.установке имеется кнопка, которая задействует логический вход bit2. Если ее нажать, то в программе состояние переменной REGIM меняется на противоположное. Однако, при отключении питания данное изменение не сохраняется, т.е. проблема в том, что изменять конфигурационную переменную возможно только с панели, но не из тела программы. При включенном Login-Run в области ввода-вывода PLCconfiguration показано, что состояние переменной REGIM меняется, но при вхождении в программирование, несмотря на то, что бит был поменян – там отображается старое значение, и соответственно при выключении питания это значение и сохраняется.
Возможно ли каким либо образом изменять конфигурационную переменную из тела программы так, чтобы она сохранялась при откл/вкл питания?

ASo
11.12.2009, 13:13
Да. Вот кусок реального кода.

PROGRAM SaveSP
VAR
T: POINTER TO PARAMETER_DESCRIPTOR;
P: POINTER TO BYTE;
HaveCmd: R_TRIG;
FlashReady: TON;
END_VAR
VAR_INPUT
TempSP: REAL;
DoSave:BOOL;
END_VAR

HaveCmd(CLK:= DoSave);

IF HaveCmd.Q THEN
T:= READ_BY_HASH(16#07A1, 0);
P:= ADR(TempSP);
T^.value[0]:= P^; P:= P+1;
T^.value[1]:= P^; P:= P+1;
T^.value[2]:= P^; P:= P+1;
T^.value[3]:= P^;
END_IF

FlashReady (IN:= (T<>0), PT:= T#3ms);

IF FlashReady.Q THEN
SAVE_PARAMETER(T);
T:= 0;
END_IF

По сути, делается програмная имитация изменения переменной по протоколу ОВЕН. 16#07A1 - Хеш значение переменной из меню.

Филоненко Владислав
11.12.2009, 14:12
Не по протоколу ОВЕН.
Просто для идентификации конкретного параметра надо сообщить контроллеру его имя. Например был выбран его Hash и индекс.

Зуйков Александр
22.01.2010, 11:03
В какой библиотеке лежат READ_BY_HASH и SAVE_PARAMETER? И неплохо бы её выложить. На диске нет, на сайте тоже не нашел ни слова про эти функции и библиотеки. В описании библиотек работы с экраном есть пример с функциями, но опять же ни слова про библиотеки. В owen_specific_tools функций таких нет.