Есть интересная задача! Но нужна помощь!
Добавлено: Чт май 16, 2013 1:34 pm
Здравствуйте!
Сразу оговорюсь, что я новичок в InTouch.
Для начала опишу задачу:
Делаем программу проверки технологических защит.
Имеется набор значений параметров. У каждого параметра есть аварийная уставка.
Значения параметров изменяются в реальном времени.
Для проверки отработки алгоритма технологической защиты пользователь должен имитировать аварийное значение каждого параметра.
Алгоритм примерно таков:
1) Перейти на страницу проверки защит и включить "Режим проверки защит".
2) Выбрать нужные для проверки в данный момент защиты.
3) Запустить автоматическую проверку защит.
4) Просмотреть/распечатать отчёт.
На первый взгляд просто. Но в процессе работы я столкнулся со множеством сложностей.
1) У меня нет контроллера. Для наглядности показаний текущих значений параметров использую генератор случайных чисел:
OLE_CreateObject(%SR,"System.Random");
DEFF = (%SR.NextDouble)*255;
Но в идеале хотелось бы сделать/скачать имитатор DDE сервера/контроллера и вытягивать тэги и их значения с него.
Я перерыл много информации по этому поводу. Но так ничего и не понял. Объясните пожалуйста по русски. Чтобы просто и ясно.
2) Для констатации выбора защит я создал ещё по 1 тегу для каждой защиты и с кнопки задаю 0 или 1.
Если можно как-нибудь по-другому, буду рад помощи.
3) До этого этапа вроде всё хорошо. А вот с автоматической проверкой проблемы.
Оставив тэги, которые привязаны к реальному текущему значению DEF, DEF1...и т.д., я создал тэги-имитаторы, т.к. мне нужно, чтобы пользователь постоянно следил за ситуацией, замена реального значения невозможна(!) DEFF, DEFF1... и т.д. В них посылаю значение аварийной уставки, в следствие чего происходит срабатывание защит, за которое отвечают тоже отдельные тэги. Если запутались подытожим:
№ Tag Описание
1 proba Вкл/Выкл режим проверки защит
2 proba1 Выбор защиты №1
3 proba2 Выбор защиты №2
4 proba3 Сработала защита №1
5 proba4 Сработала защита №2
6 DEF Аварийное значение уставки защиты №1
7 DEF1 Аварийное значение уставки защиты №2
8 DEFF Текущее значение параметра защиты №1
9 DEFF1 Текущее значение параметра защиты №2
После запуска автоматической проверки должен выполняться следующий алгоритм:
Если защита №1 выбрана
ТО отправить аварийное значение уставки, подтвердить отработку/неотработку алгоритма, внести защиту в отчёт
ЗАДЕРЖКА 20 секунд
Если защита №2 выбрана
ТО отправить аварийное значение уставки, подтвердить отработку/неотработку алгоритма, внести защиту в отчёт
ЗАДЕРЖКА 20 секунд
Если защита №3 выбрана
ТО отправить аварийное значение уставки, подтвердить отработку/неотработку алгоритма, внести защиту в отчёт
и т.д.
Здесь я столкнулся с массой проблем.
Давайте по порядку.
Не знаю как реализовать задержку. Подсмотрел на форуме, как можно сделать с помощью 3-х скриптов по условию.
Когда срабатывает первая защита flag =1; counter = 0; Пока flag == 1 counter = counter +1; Когда counter == 50 срабатывает защита №2.
Данный метод хорош для 2-х защит. Но если их 200?!
Нужно принципиально иное решение!
Следующий момент - ОТЧЁТ.
Вообще не понимаю как писать в Excel чтобы всё красиво и на свои места.
Логика такова:
ЕСЛИ защита №1 выделена ТО она попадает в ОТЧЁТ ИНАЧЕ нет
ЕСЛИ защита №2 выделена ТО она попадает в ОТЧЁТ ИНАЧЕ нет
ЕСЛИ защита №2 выделена ТО она попадает в ОТЧЁТ ИНАЧЕ нет
и т.д.
И следующий момент. Момент самой реализации.
Как сделать так, чтобы например:
В файл report.xls в ячейку A1 попадало имя тэга защиты №1, в ячейку А2 описание тэга защиты №1, в ячейку A3 просто слово ОК и т.д.
И всё это - ПРИ УСЛОВИИ, что защита №1 была выделена и проверена!
Никак не могу с этим справиться.
Вот такие вот дела. Хочу во всем постепенно разобраться.
Кто-то скажет: "Да нужно написать программу в C++. Запустить её на сервере. Сервер соединить с InTouch. И оттуда таскать тэги. Одним InTouch тут не обойтись!".
И возможно вы и правы. Вот только объясните конкретно что и самое главное ГДЕ писать.
Очень надеюсь на вашу помощь новичку.
Ключевые моменты:
1) Проверка защит с задержкой.
2) Формирование отчёта в excel при условии выделения + чтобы в нужные ячейки писал.
* поступило предложение имитировать работу контроллера через WINCC. Есть инструкции?!
Сразу оговорюсь, что я новичок в InTouch.
Для начала опишу задачу:
Делаем программу проверки технологических защит.
Имеется набор значений параметров. У каждого параметра есть аварийная уставка.
Значения параметров изменяются в реальном времени.
Для проверки отработки алгоритма технологической защиты пользователь должен имитировать аварийное значение каждого параметра.
Алгоритм примерно таков:
1) Перейти на страницу проверки защит и включить "Режим проверки защит".
2) Выбрать нужные для проверки в данный момент защиты.
3) Запустить автоматическую проверку защит.
4) Просмотреть/распечатать отчёт.
На первый взгляд просто. Но в процессе работы я столкнулся со множеством сложностей.
1) У меня нет контроллера. Для наглядности показаний текущих значений параметров использую генератор случайных чисел:
OLE_CreateObject(%SR,"System.Random");
DEFF = (%SR.NextDouble)*255;
Но в идеале хотелось бы сделать/скачать имитатор DDE сервера/контроллера и вытягивать тэги и их значения с него.
Я перерыл много информации по этому поводу. Но так ничего и не понял. Объясните пожалуйста по русски. Чтобы просто и ясно.
2) Для констатации выбора защит я создал ещё по 1 тегу для каждой защиты и с кнопки задаю 0 или 1.
Если можно как-нибудь по-другому, буду рад помощи.
3) До этого этапа вроде всё хорошо. А вот с автоматической проверкой проблемы.
Оставив тэги, которые привязаны к реальному текущему значению DEF, DEF1...и т.д., я создал тэги-имитаторы, т.к. мне нужно, чтобы пользователь постоянно следил за ситуацией, замена реального значения невозможна(!) DEFF, DEFF1... и т.д. В них посылаю значение аварийной уставки, в следствие чего происходит срабатывание защит, за которое отвечают тоже отдельные тэги. Если запутались подытожим:
№ Tag Описание
1 proba Вкл/Выкл режим проверки защит
2 proba1 Выбор защиты №1
3 proba2 Выбор защиты №2
4 proba3 Сработала защита №1
5 proba4 Сработала защита №2
6 DEF Аварийное значение уставки защиты №1
7 DEF1 Аварийное значение уставки защиты №2
8 DEFF Текущее значение параметра защиты №1
9 DEFF1 Текущее значение параметра защиты №2
После запуска автоматической проверки должен выполняться следующий алгоритм:
Если защита №1 выбрана
ТО отправить аварийное значение уставки, подтвердить отработку/неотработку алгоритма, внести защиту в отчёт
ЗАДЕРЖКА 20 секунд
Если защита №2 выбрана
ТО отправить аварийное значение уставки, подтвердить отработку/неотработку алгоритма, внести защиту в отчёт
ЗАДЕРЖКА 20 секунд
Если защита №3 выбрана
ТО отправить аварийное значение уставки, подтвердить отработку/неотработку алгоритма, внести защиту в отчёт
и т.д.
Здесь я столкнулся с массой проблем.
Давайте по порядку.
Не знаю как реализовать задержку. Подсмотрел на форуме, как можно сделать с помощью 3-х скриптов по условию.
Когда срабатывает первая защита flag =1; counter = 0; Пока flag == 1 counter = counter +1; Когда counter == 50 срабатывает защита №2.
Данный метод хорош для 2-х защит. Но если их 200?!
Нужно принципиально иное решение!
Следующий момент - ОТЧЁТ.
Вообще не понимаю как писать в Excel чтобы всё красиво и на свои места.
Логика такова:
ЕСЛИ защита №1 выделена ТО она попадает в ОТЧЁТ ИНАЧЕ нет
ЕСЛИ защита №2 выделена ТО она попадает в ОТЧЁТ ИНАЧЕ нет
ЕСЛИ защита №2 выделена ТО она попадает в ОТЧЁТ ИНАЧЕ нет
и т.д.
И следующий момент. Момент самой реализации.
Как сделать так, чтобы например:
В файл report.xls в ячейку A1 попадало имя тэга защиты №1, в ячейку А2 описание тэга защиты №1, в ячейку A3 просто слово ОК и т.д.
И всё это - ПРИ УСЛОВИИ, что защита №1 была выделена и проверена!
Никак не могу с этим справиться.
Вот такие вот дела. Хочу во всем постепенно разобраться.
Кто-то скажет: "Да нужно написать программу в C++. Запустить её на сервере. Сервер соединить с InTouch. И оттуда таскать тэги. Одним InTouch тут не обойтись!".
И возможно вы и правы. Вот только объясните конкретно что и самое главное ГДЕ писать.
Очень надеюсь на вашу помощь новичку.
Ключевые моменты:
1) Проверка защит с задержкой.
2) Формирование отчёта в excel при условии выделения + чтобы в нужные ячейки писал.
* поступило предложение имитировать работу контроллера через WINCC. Есть инструкции?!