Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 17

Тема: ПЛК73: SWITCH_TO_EDITOR

  1. #1
    Пользователь Аватар для Солнечный заяц
    Регистрация
    16.08.2009
    Адрес
    г. Рыбинск, Яр.обл.
    Сообщений
    209

    По умолчанию ПЛК73: SWITCH_TO_EDITOR

    В библиотеке Ind_Mode есть функция SWITCH_TO_EDITOR, работа которой совершенно не описана:
    Входной параметр имеет тип данных PARAM_NODE. Что сюда вводить?
    В примере имеется текст:
    Код:
    PROGRAM PLC_PRG
    VAR
    ton1,ton2: TON; (*таймер задержки*)
    starting:BOOL:=FALSE;
    temp:REAL;
    df:DECODE_FLOAT;
    param_ptr:POINTER TO parameter_descriptor;
    error:BYTE:=0; (*код ошибки*)
    pnode_: DWORD;
    flag: BOOL:= FALSE;
    flag1: BOOL:= FALSE;
    flag2: BOOL:= FALSE;
    dm:disp_modes;
    ft: F_TRIG;
    END_VAR
    VAR CONSTANT
    key:BYTE:=136; (*код сочетания альт+стрелка вверх*)
    END_VAR
    
    IF NOT starting THEN (*то, что выполняется один раз при запуске программы*)
    SetWorkScreenCount(1);
    ClearScreen(0);
    ShowString(0, 0, 0, 'Темп.:'); (*выводим надпись *)
    ShowString(0, 0, 1, 'Уставка:'); (*выводим надпись *)
    param_ptr:=READ_BY_HASH(16#37B7,0); (*чтение дескриптора параметра*)
    pnode_:=param_ptr^.pnode; (*ссылка на элемент меню в pnode_*)
    ver:='1.0'; (*внесем информацию о версии ПО*)
    starting:=TRUE; (*установим флаг чтобы больше не входить в этот цикл*)
    END_IF;
    Совершенно непонятна подчеркнутая строка: Откуда берется значение 16#37B7?
    И, самое главное, как связать переменную, которую требуется изменить и этот HASH?

  2. #2

    Wink Режим Edit

    Здравствуйте.
    К сожалению есть ляпы в описании данных библиотек. Тип Param_NODE не описан.
    Сам тип присутствует в библиотеке ARM7_specific и имеет следующее описание:

    Код:
    TYPE PARAM_NODE :	(*Ни в коем случае не изменять что-либо в этой структуре!*)
    STRUCT
    	offset_conf:POINTER TO BYTE;             (*//Адрес начала описателя модуля/канала в конфигурации от начала конфигурации*)
           offset_eeprom:WORD;
           num_of_subnodes:BYTE;
           subnode:POINTER TO POINTER TO DWORD ;       (* //указатель на массив подветок меню*)
    END_STRUCT
    END_TYPE
    В принципе что входит в структуру знать не обязательно, все равно там мало чего понятного. По сути это массив указателей и адреса ячеек памяти в которых находятся параметры.

    Теперь по шагам.
    1) Для того, чтобы попасть в режим SWITCH_TO_EDITOR необходимо
    а) Перейти в монопольный режим Switch_To_Single_Mode
    б) Выждать 1 секунду
    в) Вызвать функцию SWITCH_TO_EDITOR для перехода в режим редактирования.
    г) Отредактировать параметр.
    д) Перевести дисплей в нужный режим.

    2) В функцию SWITCH_TO_EDITOR необходимо передать указатель на структуру, описывающую переменную. Для этого необходимо
    а) Залезть в конфигурацию ПЛК
    б) Найти интересующий вас параметр
    г) Если он из разряда стандартных, то необходимо найти место где разрешается/запрещается работа по сети с данным параметром, далее найти поле HASH и скопировать от туда значение. Если переменная из SubMenu, то ей нужно поставить галочку редактировать по сети по протоколу ОВЕН, в поле Имя ввести название которое вам нравится и из поля HASH скопировать сформированное значение.
    д) Далее необходимо получить в программе структкру, которая описывает данную переменную. Получить ее можно функцией READ_BY_HASH, что и делается в примере:
    param_ptr:=READ_BY_HASH(16#37B7,0);
    е) Теперь из этой структуры нужно выдернуть подструктуру pnode и передать ее в функцию SWITCH_TO_EDITOR

    На диске с ПЛК есть раздел примеры и полехности. Там есть пример для ПЛК63. Данный пример я переделал для работы с ПЛК73-М.
    На всякий случай сделал свой пример, который переводит ПЛК в режим редактирования значения на первом выходе ПЛК по кнопке F1.

    Во вложении скриншет, где посмотреть Hash.
    Изображения Изображения
    • Тип файла: jpg Hash.jpg (373.8 Кб, Просмотров: 134)
    Вложения Вложения

  3. #3
    Пользователь Аватар для Солнечный заяц
    Регистрация
    16.08.2009
    Адрес
    г. Рыбинск, Яр.обл.
    Сообщений
    209

    По умолчанию

    Большое спасибо! Теперь понятно.

  4. #4

    По умолчанию

    Извиняюсь, но я решительно не понимаю, зачем нужна эта возня с переключением режимов, когда, указав в конфигурации контроллера в пункте SubMenu какой-либо параметр по имени, и присвоив ему значения по-умолчанию прямо там же, можно пользоваться этим значением в программе, обращаясь к нему по имени. Зачем нужны эти READ_BY_HASH и иже с ними? Или я что-то не прочитал? Проясните ситуацию?

  5. #5

    По умолчанию

    ПЛК обладает несколькими режимами индикации.
    Например в случае аварии Вы можете вывести любое сообщение, независимо от того в каком Submenu Вы находитесь...

  6. #6

    По умолчанию

    Цитата Сообщение от Slazonger Посмотреть сообщение
    Извиняюсь, но я решительно не понимаю, зачем нужна эта возня с переключением режимов, когда, указав в конфигурации контроллера в пункте SubMenu какой-либо параметр по имени, и присвоив ему значения по-умолчанию прямо там же, можно пользоваться этим значением в программе, обращаясь к нему по имени. Зачем нужны эти READ_BY_HASH и иже с ними? Или я что-то не прочитал? Проясните ситуацию?
    Не ко всем параметрам можно обращаться по переменной, некоторые можно менять исключительно через хэш. При этом можно разрешать/запрещать редактирование параметра или разрешить/запретить его отображение в меню.

  7. #7

    По умолчанию

    А где узнать список этих параметров и их 16-ричный эквивалент. Где прочитать подробно про хэш? Про относительную адресацию этих параметров в кодесис и описание библиотек для работы с ними?

  8. #8
    Пользователь Аватар для Солнечный заяц
    Регистрация
    16.08.2009
    Адрес
    г. Рыбинск, Яр.обл.
    Сообщений
    209

    По умолчанию

    Цитата Сообщение от Slazonger Посмотреть сообщение
    Извиняюсь, но я решительно не понимаю, зачем нужна эта возня с переключением режимов, когда, указав в конфигурации контроллера в пункте SubMenu какой-либо параметр по имени, и присвоив ему значения по-умолчанию прямо там же, можно пользоваться этим значением в программе, обращаясь к нему по имени. Зачем нужны эти READ_BY_HASH и иже с ними? Или я что-то не прочитал? Проясните ситуацию?
    Мне совершенно не подходит "Рабочий режим" с его переключением экранов через "Вверх" "Вниз" и возможностью изменения конфигурации входов-выходов. А единственным способом ввода пользовательских значений из "монопольного режима", на сколько я понимаю, является SWITCH_TO_EDITOR.

  9. #9

    По умолчанию

    Цитата Сообщение от Солнечный заяц Посмотреть сообщение
    Мне совершенно не подходит "Рабочий режим" с его переключением экранов через "Вверх" "Вниз" и возможностью изменения конфигурации входов-выходов. А единственным способом ввода пользовательских значений из "монопольного режима", на сколько я понимаю, является SWITCH_TO_EDITOR.
    Все верно!

  10. #10

    По умолчанию

    Цитата Сообщение от Slazonger Посмотреть сообщение
    А где узнать список этих параметров и их 16-ричный эквивалент. Где прочитать подробно про хэш? Про относительную адресацию этих параметров в кодесис и описание библиотек для работы с ними?
    Читайте выше, там даже скриншет есть.
    Отдельным списком у нас это ни где не размещено, но сложностей, в том чтобы открыть конфигурацию и посмотреть возникать не должно.

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. ПЛК73-светодиоды
    от Ozzz в разделе ПЛК63/73
    Ответов: 29
    Последнее сообщение: 22.04.2022, 13:11
  2. Вывод на ЖКИ ПЛК73
    от Distemperrr в разделе ПЛК63/73
    Ответов: 39
    Последнее сообщение: 10.09.2019, 06:57
  3. ПЛК73
    от CEkip в разделе ПЛК63/73
    Ответов: 6
    Последнее сообщение: 10.04.2012, 14:45
  4. И снова об ПЛК73
    от ASo в разделе ПЛК63/73
    Ответов: 3
    Последнее сообщение: 30.06.2011, 18:55
  5. ПЛК73
    от nevii в разделе ПЛК63/73
    Ответов: 8
    Последнее сообщение: 15.05.2011, 20:10

Ваши права

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