EasyBuilder - Скорая помощь новичкам

Работа с панелями оператора Weintek - подключение, программирование, совмещение с ПЛК

Модераторы: kiv, 8bit, VanMo

Re: EasyBuilder - Скорая помощь новичкам

Сообщение VanMo » 01 апр 2015, 18:00

ylan писал(а):Здравствуйте! Панель еМТ3070А. Ткните, плиз, носом, как создается окно с полосой прокрутки. Спасибо.

Добрый день. Такой возможности нет, можно только имитировать прокрутку, меняя окна.
VanMo
 
Сообщения: 377
Зарегистрирован: 16 авг 2011, 09:31

Re: EasyBuilder - Скорая помощь новичкам

Сообщение ylan » 01 апр 2015, 18:03

Ясно. Спасибо.
ylan
 
Сообщения: 14
Зарегистрирован: 27 янв 2015, 15:32

Re: EasyBuilder - Скорая помощь новичкам

Сообщение gozzzzz » 02 апр 2015, 18:31

Что-то не могу разобраться как сделать окно, защищенное паролем. Требуется при каждом нажатии на функциональную кнопку показывать окно с просьбой ввести пароль. Если пароль верный, то разрешить переход к защищенному окну. Список пользователей лучше даже не показывать. Только запрашивать пароль. Должны же быть встроенные средства! Если я ставлю на функциональную кнопку ограничение по доступу, допустим только Класс А, то нажатие на кнопку не приводит к открытию окна, т.к. не была выполнена авторизация. Как пройти авторизацию - не знаю. Да и не особо это хотелось бы, т.к. выбор пользователя в этом проекте - это лишнее. Заранее спасибо.
gozzzzz
 
Сообщения: 5
Зарегистрирован: 31 мар 2015, 15:24

Re: EasyBuilder - Скорая помощь новичкам

Сообщение den_po » 03 апр 2015, 13:38

gozzzzz писал(а):Что-то не могу разобраться как сделать окно, защищенное паролем. Требуется при каждом нажатии на функциональную кнопку показывать окно с просьбой ввести пароль. Если пароль верный, то разрешить переход к защищенному окну. Список пользователей лучше даже не показывать. Только запрашивать пароль. Должны же быть встроенные средства! Если я ставлю на функциональную кнопку ограничение по доступу, допустим только Класс А, то нажатие на кнопку не приводит к открытию окна, т.к. не была выполнена авторизация. Как пройти авторизацию - не знаю. Да и не особо это хотелось бы, т.к. выбор пользователя в этом проекте - это лишнее. Заранее спасибо.

Пример работы с паролем
den_po
 
Сообщения: 436
Зарегистрирован: 04 фев 2013, 12:25

Re: EasyBuilder - Скорая помощь новичкам

Сообщение gozzzzz » 03 апр 2015, 15:49


Спасибо. И еще один, может, глупый вопрос. Как реализовать такую последовательность: в окне "А" пользователь нажимает кнопку, появляется всплывающее окно с просьбой ввести пароль. При вводе правильного пароля всплывающее окно закрывается, вместо окна "А" открывается другое, полноценное окно "В", которое, собственно, и защищали паролем.

Вот как я пытаюсь сделать сейчас : в окне "А" функциональная кнопку показывает всплывающее окно с вводом пароля. В окне пароля есть 2 кнопки - ОК и Отмена. Отмена просто закрывает окно. Кнопка ОК запускает макрос, который устанавливает бит в одном из регистров панели. Но как при этом закрыть всплывающее окно? Ведь кнопка поддерживает только одно действие.
Далее надо как-то инициировать открытие окна, если пароль правильный. Я могу в окне "А" иметь вторую функциональную кнопку, для которой в блокировках указать разрешающий бит, который устанавливается или сбрасывается макросом проверки пароля. Но я не хочу вторую кнопку. По сути, первая кнопка должна открыть всплывающее окно, которое установит или сбросит бит разрешения, а затем в зависимости от бита разрешения открыть или не открывать окно "В". Но как такой функционал навесить на одну кнопку я так и не понял.

Наверное, можно использовать триггеры ПЛК, в который записывать ай-ди окна, который надо открыть. Но я хочу чтобы всплывающее окно работало универсально на открытие не только окна "В", но и "C" и "D". Т.е. во всплывающее окно надо передать ай-ди того окна, которое надо открыть, если пароль правильный. Ай-ди я могу предать через какой-нибудь регистр панели при нажатии на кнопку в окне "А". Но опять же, как на одну кнопку повесить и установку регистра и открытие всплывающего окна? Заранее спасибо.
gozzzzz
 
Сообщения: 5
Зарегистрирован: 31 мар 2015, 15:24

Re: EasyBuilder - Скорая помощь новичкам

Сообщение Evgen » 03 апр 2015, 21:56

Здравствуйте. На этом форуме уже задавали вопрос, о том, как открывать окно по изменению бита в памяти контроллера.
Ответ:
“По изменению бита в памяти контроллера можно вызвать макрос, который будет открывать нужное окно. Делается это с помощью ПЛК-триггера.”
Хочу попросить пример кода такого макроса. Никак не могу понять, как из макроса можно вызывать открытие нужного окна?
Панель: Weintec MT6070iP
Контроллер: Delta DVP32ES200T

Спасибо.
Evgen
 
Сообщения: 1
Зарегистрирован: 01 апр 2015, 22:45

Re: EasyBuilder - Скорая помощь новичкам

Сообщение VanMo » 06 апр 2015, 10:57

Добрый день.
gozzzzz писал(а):Вот как я пытаюсь сделать сейчас : в окне "А" функциональная кнопку показывает всплывающее окно с вводом пароля. В окне пароля есть 2 кнопки - ОК и Отмена. Отмена просто закрывает окно. Кнопка ОК запускает макрос, который устанавливает бит в одном из регистров панели. Но как при этом закрыть всплывающее окно? Ведь кнопка поддерживает только одно действие.

Если есть макрос, который запускается по нажатию кнопки ОК, то в нем можно и пароль проверить и закрыть/открыть окно.
Всплывающее окно может быть вызвано установкой бита, макрос этот бит будет сбрасывать. Для полноэкранных окон надо добавить ПЛК-триггер и макросом в регистр триггера засылать номер окна.
Номер окна, которое нужно открыть, может быть записан байтовой кнопкой, эта же кнопка будет вызывать окно ввода пароля с помощью бита уведомления.
VanMo
 
Сообщения: 377
Зарегистрирован: 16 авг 2011, 09:31

Re: EasyBuilder - Скорая помощь новичкам

Сообщение VanMo » 06 апр 2015, 11:13

Evgen писал(а):Здравствуйте. На этом форуме уже задавали вопрос, о том, как открывать окно по изменению бита в памяти контроллера.
Ответ:
“По изменению бита в памяти контроллера можно вызвать макрос, который будет открывать нужное окно. Делается это с помощью ПЛК-триггера.”
Хочу попросить пример кода такого макроса. Никак не могу понять, как из макроса можно вызывать открытие нужного окна?
Панель: Weintec MT6070iP
Контроллер: Delta DVP32ES200T

Спасибо.

Добрый день.
Делается это так. Добавляете ПЛК-триггер на открытие окна, например по регистру LW-1. Теперь любой способ записи номера окна в этот регистр инициирует вызов этого окна.
Пример макроса для открытия окна:
Код: Выделить всё
int WinNum=10//номер окна
SetData(WinNum, "Local HMI", LW, 1, 1)//записать WinNum в LW-1

Если номер окна находится в другом регистре, например LW-2, то можно сделать так:
Код: Выделить всё
int WinNum
GetData(WinNum, "Local HMI", LW, 2, 1)//записать LW-2 в WinNum
SetData(WinNum, "Local HMI", LW, 1, 1)//записать WinNum в LW-1
VanMo
 
Сообщения: 377
Зарегистрирован: 16 авг 2011, 09:31

Re: EasyBuilder - Скорая помощь новичкам

Сообщение gozzzzz » 06 апр 2015, 11:25

Evgen писал(а):Хочу попросить пример кода такого макроса. Никак не могу понять, как из макроса можно вызывать открытие нужного окна?


Я сделал таким образом:
1. Есть триггер ПЛК, который сменяет полноэкранные окна (адрес TRIG_ADDR).
2. В окне "А" размещаю элемент "Косвенный вызов окна" для открытия всплывающего окна. Связываю его с одним из регистров панели (INDIR_ADDR)
3. В окне "В" размещаю элемент "Комбинированная кнопка"
4. Выделяю 4 регистра для дальнейшей передачи параметров в макрос (начальный адрес SETT_ADDR)
4. В комбинированной кнопке задаю следующую последовательность действий:
- Запись в регистр TRIG_ADDR ID текущего окна "А"
- Запись в регистр SETT_ADDR+0 адреса регистра, с котором работает триггер ПЛК (TRIG_ADDR)
- Запись в регистр SETT_ADDR+1 ID окна, которое надо открыть в случае правильного пароля (путем записи ID в регистр, адрес которого передан SETT_ADDR+0)
- Запись в регистр SETT_ADDR+2 адреса регистра INDIR_ADDR для закрытия плавающего окна
- Запись в регистр SETT_ADDR+3 ID плавающего окна, которое надо отобразить
5. Во всплывающем окне с вводом пароля на нажатие ОК вещаю следующий макрос:

Код: Выделить всё
macro_command main()

unsigned short key
unsigned short cls = 0

// передаваемые параметры макроса
unsigned short addr_wndtrigger = 130
unsigned short addr_wndid = 131
unsigned short addr_indirwnd = 132
// адрес пароля
unsigned short addr_password = 900

unsigned short wndtrigger // LW триггера ПЛК, переключающего окна
unsigned short wndid // ID окна, которое надо показать в случае правильности пароля
unsigned short indirwnd // LW элемента Inderect Wnd, в который надо записть 0 для закрытия popup окна

GetData(wndtrigger, "Local HMI", LW, addr_wndtrigger, 1)
GetData(wndid, "Local HMI", LW, addr_wndid, 1)
GetData(indirwnd, "Local HMI", LW, addr_indirwnd, 1)

GetData(key, "Local HMI", LW, addr_password, 1)

if (key == 12345) then
   key = 1
else
   key = 0
end if

SetData(cls, "Local HMI", LW, indirwnd, 1)
SetData(cls, "Local HMI", LW, addr_password, 1)
if (key == 1) then   
   SetData(wndid, "Local HMI", LW, wndtrigger, 1)
end if

end macro_command


P.S.: Спасибо, VanMo. Ваши бы советы очень к месту пришлись в пятницу днем. А так пришлось самому догадаться :)
gozzzzz
 
Сообщения: 5
Зарегистрирован: 31 мар 2015, 15:24

Re: EasyBuilder - Скорая помощь новичкам

Сообщение vahidas » 06 апр 2015, 16:48

Здравствуйте. Потребовалось перейти с панелей сименс на
Винтек. До этого делал несколько проектов но макросами не пользовался.
В Wincc на один объект можно назначить сколь угодно разных функций (перейти на окно, устанавливать и сбрасывать разные биты одновременно)
Понимаю что можно насадить несколько прозрачных окон но это долго и некрасиво. Мне нужно использовать до пяти функций на окне.
Контроллер на S300 MPI.
Можно привести пример как одновременно одной клавишей добится следующего
RST M 0.3
SET M 0.1
RST M0.0
RST M0.2
И перейти на экран 12
Предполагаю что нужно через функциональную клавишу вызвать макрос в котором эти все функции прописаны
Думаю что работа с битами будет выглядеть как то так
SetData(, "Siemens S7-300 MPI", M, 0.3, 0)
SetData(, "Siemens S7-300 MPI", M, 0.1, 1)
SetData(, "Siemens S7-300 MPI", M, 0.0, 0)
SetData(, "Siemens S7-300 MPI", M, 0.2, 0)
А как перейти на экран 12? В описании не нашел.
Если можно то как будет выглядеть макрос полностью.
vahidas
 
Сообщения: 5
Зарегистрирован: 06 апр 2015, 16:14

Пред.След.

Вернуться в Weintek

Кто сейчас на конференции

Сейчас этот форум просматривают: AlexandrGr и гости: 8