Показано с 1 по 4 из 4

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

  1. #1

    По умолчанию проблема с конфиг. переменной плк63

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

  2. #2

    По умолчанию

    Да. Вот кусок реального кода.
    Код:
    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 - Хеш значение переменной из меню.

  3. #3

    По умолчанию

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

  4. #4

    По умолчанию

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

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •