Регистрация | Последние сообщения | Персональный список | Поиск | Настройка конференции | Личные данные | Правила конференции | Список участников | Top 64 | Статистика раздела | faq | Что нового v.2.3 | Чат
Skunk Forum - Техника, Наука, Общество » АСУТП »
кто работает с iFIX... (страница 8)

Версия для печати (настроить)
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

Новая тема | Написать ответ

Подписаться

Автор Тема:   кто работает с iFIX...
Максим
unregistered
написано 01 Февраля 2008 13:52  ПравкаОтветитьIP

boykir
Да, DI тут оптимальный вариант. Можно ещё использовать ToggleDigitalPoint, анимируешь цвет кнопки в зависимости от состояния клапана, ей же переключаешь состояние с одного на другое (открыт/закрыт).

Теперь мой серьёзный вопрос С помощью программного блока (PG) я присваиваю блоку аналоговой тревоги (АА) значение блока вычислений (СА). Всё работает, но в SCU включена файловая служба тревог, при запуске iFIX в этот файл падают сообщения об ошибке след. содержания: "[FIX]'имя программного блока' ОШИБКА выполнения на шаге 0 Неизвестно значение поля 'имя блока аналоговой тревоги'"?!! И так каждый раз при запуске, файл пухнет на глазах, постоянно надо чистить его руками. Есть какие-нибудь соображения на этот счёт?

HelpFix
Member

Сообщений: 46
Регистрация: Февраль 2007

написано 03 Февраля 2008 20:08ИнфоПравкаОтветитьIP

to Максим,
Да, вы подметили один из главных недостатков PG - замусоривание протокола.
я также не нашел у него крыжика "не посылать сообщения об ошибках в протокол"

То, что сообщения вылетают при запуске - это не самое плохое,
запуск бывает не так часто, и ошибочные сообщения вылетают из-за того, что теги,
описанные в программе PG, еще не успели встать на сканирование.
Кстати, какие у вас периоды сканирования у тегов AA, PG и CA?

Бывает хуже -
если исходные данные программного блока имеют ошибку - COMM (????) или программа
некорректна, PG может кучей сыпать ошибки в протокол, сниматься со сканирования и т.п.

Можете сами почитать статьи из базы знаний на support-е GE,
в качестве строки поиска можете задать:
"PG" и/или "Program Block"

Поэтому остается бороться внешними способами - ставить "вторичные" теги PG, которые будут следить
за статусом сканирования и снимать/ставить "первичные" PG на сканирование.
Готовых решений у меня нет, поэтому пробуйте сами строить цепочки.

Чистить руками протокол не рекомендую, это пустое занятие.
Кстати, сколько сообщений он вам накидал?
Лучше при выводе/просмотре протокола отфильтровать нужное/ненужное.
Если уже чистить - то автоматически - макросом.

Максим
unregistered
написано 04 Февраля 2008 13:51  ПравкаОтветитьIP

HelpFix,
AA - 1 сек, PG - 0 (однократная обработка), а для СА период не установить, он работает как только получает данные. Я пробовал прописывать первой строкой в PG установку на сканирование тега АА, но при однократной обработке такая схема не работает, не понятно почему так сделали. А каким образом следить за статусом сканирования? У меня 18 PG и каждый из них ругается, соответственно появляется 18 новых сообщений при каждом запуске, но это не так страшно, как то что вы описали после слов "бывает хуже - ", если произошло отключение оборудования, либо OPC-сервер "упал" то именно COMM и будет, куча ошибок в этом случае раздувает файл до огромных размеров, ещё одна непонятка, ведь обработка PG у меня стоит однократная(!). Вы можете привести примерный исходник такого макроса и как его реализовать в случае аксесовского файла, куда тревоги сыпятся по ODBC? Спасибо за внимание к теме.

HelpFix
Member

Сообщений: 47
Регистрация: Февраль 2007

написано 04 Февраля 2008 19:16ИнфоПравкаОтветитьIP

Максим
опишите задачу подробнее, почему считаете один раз на PG, зачем пишите в AA?
сделайте экспорт БД в csv, и пришлите мне по e-male кусок экспортного файла для этих конкретных тегов AA, CA, PG - будет проще разобраться.

Готовых решений у меня нет, поэтому придеться также пробовать варианты.
да, и какой версии у вас iFix?

Максим
unregistered
написано 05 Февраля 2008 12:56  ПравкаОтветитьIP

Входящее значение надо пересчитывать и генерить тревоги разного уровня (HI, HIHI, LO, LOLO), а СА вообще никакие тревоги не генерит. В итоге, AI у меня получает аналоговый сигнал от OPC, который идёт по цепочке в СА, а затем результат в PG, который в свою очередь присваивает полученное значение АА. Вся эта заморочка придумана потому, что если в цепочку после СА сразу поставить АА, то ни хрена не работает...то ли фича, то ли баг! А однократная обработка PG выбрана потому, что в этом случае задержка между СА и АА минимальна, т.е. один раз присвоил и значения СА практически моментально попадают в АА (iFIX как-то запоминает с первого и единственного раза, что АА должно быть равно СА), если же ставить какой-либо период сканирования, то время пересылки значения удлиняется на этот период. Идея такая, мне кажется, БД вам засылать смысла нет. Короче, как и у любого ПО в iFIX есть грабли, кторые приходится обходить. iFIX версии 3.5

Максим
unregistered
написано 07 Февраля 2008 11:01  ПравкаОтветитьIP

HelpFix,
Выше описал задачу и способ реализации... Каким образом следить за статусом сканирования? Вы можете привести примерный исходник макроса для автоматического удаления и как его реализовать в случае аксесовского файла, куда тревоги сыпятся по ODBC? Может есть мысли по поводу другой реализации данной задачи?

HelpFix
Member

Сообщений: 48
Регистрация: Февраль 2007

написано 08 Февраля 2008 14:38ИнфоПравкаОтветитьIP

to Максим,

посмотрите статьи...
How To Prevent PG Block From Going Off scan
ссылка
How To Prevent a CALC Block From Going Off Scan.
ссылка

XAM
Junior Member

Сообщений: 7
Откуда: Павлодар, Казахстан
Регистрация: Декабрь 2007

написано 09 Февраля 2008 20:59ИнфоПравкаОтветитьIP

цитата:
Максим писал:
Входящее значение надо пересчитывать и генерить тревоги разного уровня (HI, HIHI, LO, LOLO), а СА вообще никакие тревоги не генерит.

Вопрос, конечно, наивный, но все же.... А можно ли обойти использование блока CA? Например, пересчет вести на уровне контроллера, а в SCADA выдавать уже готовые для генерации тревог значения. Или я чего-то не понимаю.... Зачем нагружать сервер вычислениями, которые быстрее и проще сделает контроллер?

Максим
Junior Member

Сообщений: 1
Откуда: Санкт-Петербург, Россия
Регистрация: Февраль 2008

написано 18 Февраля 2008 20:34ИнфоПравкаОтветитьIP

HelpFix,
Спасибо!

XAM,
Естественно на уровне контроллера это сделать проще, да и грамотнее будет. Но по ряду причин, доступ туда закрыт, поэтому и пытаюсь решить эту проблему на верхнем уровне.

Ещё вопросик назрел, кто-нибудь сталкивался при запуске iFIX с "Ошибка приложения Alarm ODBC Application" (almODBC.exe) и остановом данной службы? С чем может быть связано, учитывая то что никаких действий не производилось, на ровном месте!

HelpFix
Member

Сообщений: 49
Регистрация: Февраль 2007

написано 19 Февраля 2008 03:20ИнфоПравкаОтветитьIP

to XAM

А можно ли обойти использование блока CA? Например, пересчет вести на уровне контроллера, а в SCADA выдавать уже готовые для генерации тревог значения. Или я чего-то не понимаю.... Зачем нагружать сервер вычислениями, которые быстрее и проще сделает контроллер?

Бывают случаи, когда исходные данные для вычислений не находятся все на одном контроллере.
Вместо использования CA и PG можно использовать VBA на расписаниях в фоновом режиме. В документации iFix даже приводится сравнительная таблица этих средств вычислений.

to Максим

у вас получилось обойти несовершенство CA и PG?
если да - сбросьте пожалуйста конфигурацию тегов - у меня тоже эта проблема до конца не решена.

кто-нибудь сталкивался при запуске iFIX с "Ошибка приложения Alarm ODBC Application" (almODBC.exe) и остановом данной службы?

в таких случаях сделал бы следующие стандартные проверки - шаги:
1)на чистых папках проекта (новой инсталляции iFix) проверил работу службы - лучше на этой же ПЭВМ
2)подгрузил возможно сбойную конфигурацию службы ODBC и БД из рабочего проекта
3)пробежался по GlobalCare - в поисках описания этой неисправности.
Удачи.

boykir
Junior Member

Сообщений: 15
Откуда: Россия
Регистрация: Июнь 2007

написано 19 Февраля 2008 09:37ИнфоПравкаОтветитьIP

Всем, привет.
Подскажите при выборе тега типа DI включить опцию Enable Output и вот в скрипте после CloseDigitalPoint в кавычках прописывается полное название тега (например вот так: CloseDigitalPoint “ Fix32.FIX.Tag1.F_CV” ) ?
И подскажите , пожалуйста, при воздании в базе данных тега типа DI , что должно прописываться в пункте I/O Address если подсоединяюсь через OPS сервер ( прописывал тоже, что и при выборе AI, но этот тег никаких значений не выводит) ?

Добавление от 19 Февраля 2008 17:03:

Здравствуйте еще раз.
Можно ли изменить в OPC- Power Tool в поле ProgID название .
Поясняю: первоначально использовался IGMBOPC –имитатор работы контроллера, он и прописан в поле ProgID , сейчас подключили контроллер через изернет и теперь и теперь соединение проходит через OPC.SimaticNet, его и нужно прописать в поле ProgID и наче он не обнаруживает связь. Может кто знает как это сделать?

Максим
Junior Member

Сообщений: 2
Откуда: Санкт-Петербург, Россия
Регистрация: Февраль 2008

написано 21 Февраля 2008 14:59ИнфоПравкаОтветитьIP

HelpFix,
Ошибки при запуске iFIX: отключил в PG сканирование при запуске, теперь сканировать PG начинает только после начала сканирования AA и никаких ошибок.
Ошибки при COMM: не решал пока, но думаю надо делать PG2 и ставить в нём суб-секундный период сканирования и писать в нём прогу проверки на COMM и если таковой имеется, снимать PG1 со сканирования. Сделаю - отпишусь, займётесь раньше меня, жду весточки от вас.

boykir,
Насчёт CloseDigitalPoint не понятно в чём вопрос, ну прописывается и что?
I/O Адрес у каждого сигнала разный Вид имеет следующий - "Server;Group;Item", как раз то что сконфигурировано в Power Tool.
В ProgID прописывается имя сервера, это поле сам руками не поменяешь. Нажимаете "Add server", указываете в списке нужный и он там появится.

nicece
Junior Member

Сообщений: 1
Откуда: Москва, Россия
Регистрация: Март 2008

написано 28 Марта 2008 11:43ИнфоПравкаОтветитьIP

Здравствуйте.
Меня тоже очень интересует вопрос с выпадающем списком. Посмотрел примеры и ничего не понял.
Объясните пожалуйста пошагово, как это сделать, особенно не понятно как создается и прописывается сам список в выпадающем окне?

XAM
Junior Member

Сообщений: 12
Откуда: Павлодар, Казахстан
Регистрация: Декабрь 2007

написано 28 Марта 2008 16:35ИнфоПравкаОтветитьIP

А можно поподробнее: что за вопрос? О каком выпадающем списке?

nicece
Junior Member

Сообщений: 2
Откуда: Москва, Россия
Регистрация: Март 2008

написано 31 Марта 2008 08:32ИнфоПравкаОтветитьIP

Хотелось бы настроить Combo Box Control object (выпадающее окно) , где появлялся бы список к примеру тех объектов которые есть на экране, при выборе одного из списка объекта он становился активным или выводились данные по нему.
Самое главное я не знаю как сделать в этом выпадающем окне список из названий этих объектов, где его прописать? Хотелось бы поподробнее хотя бы из двух объектов сделать выбор. Помогите, пожалуйста.

HelpFix
Member

Сообщений: 50
Регистрация: Февраль 2007

написано 31 Марта 2008 15:19ИнфоПравкаОтветитьIP

при запуске рисунка просто программно заполняйте ComboBox.

код:
Private Sub CFixPicture_Initialize()

ComboBox1.AddItem "пункт 1"
ComboBox1.AddItem "пункт 2"
ComboBox1.AddItem "пункт 3"
ComboBox1.AddItem "пункт 4"

End Sub


nicece
Junior Member

Сообщений: 3
Откуда: Москва, Россия
Регистрация: Март 2008

написано 01 Апреля 2008 11:44ИнфоПравкаОтветитьIP

Здравствуйте. Прописал
ComboBox1.AddItem "пункт 1"
ComboBox1.AddItem "пункт 2"
У меня выделяет эти строчки желтым цветом, и ничего не получается
У меня версия 4.0 может другую надо команду прописать?
И такой вопрос прочитал здесь в форуме что можно тоже самое сделать с тэговыми группами:
(<< 1.Создаете рисунок .grf , кидаете на него ComboBox и даталинк, настроенный на символ <<теговой группы
<<Fix32.NODE.@Var@.A_CV
<<2. Создаете несколько теговых групп, в которых задаете соответствие
<<Var - NameTag_01
<<Var - NameTag_02 и т.д.
<<и называете их соответственно NameTag_01, NameTag_02 и т.д.
<<3. Заполняете при запуске рисунка ComboBox строками текста
<<NameTag_01
<<NameTag_02 и т.д.)
Вопрос : 1) В Fix32.NODE.@Var@.A_CV обязательно прописывать @ или это только условно?
2) как правильно создать тэговую группу, через Historical Assisn?

HelpFix
Member

Сообщений: 51
Регистрация: Февраль 2007

написано 01 Апреля 2008 15:10ИнфоПравкаОтветитьIP

nicece
желтым цветом выделяется строка в редакторе VBE - когда в выражении присутствует ошибка.
iFix довольно широко использует VBA - поэтому советую вам освоить его среду как следует - например прочтите книгу по VBA.

1) В Fix32.NODE.@Var@.A_CV обязательно прописывать @ или это только условно?
нет - не условно - это символы подстановки теговой группы - опять же читайте HELP, посмотрите пример на www.helpfix.narod.ru

2) как правильно создать тэговую группу, через Historical Assisn?

Редактор теговых групп - C:\Dynamics\TagGroupEditor.exe
Назначение истории Historical Assign - C:\Dynamics\Hta.exe

Добавление от 01 Апреля 2008 15:15:

to all:

замечательные метки времени iFix
---------------------------------------

Дата и время изменения файлов информируют о следующем

Когда iFix запущен:
C:\Dynamics\LOCAL\STARTUP.LOG - дата и время начала текущего запуска iFix
C:\Dynamics\LOCAL\AlarmAreas.AAD - дата и время начала текущего запуска iFix
C:\Dynamics\APP\SysAlertQ.dat - дата и время начала текущего запуска iFix
C:\Dynamics\LOCAL\WORKSPACE.ini - дата и время начала текущего запуска Workspace
C:\Dynamics\LOCAL\FixUserPreferences.ini- дата и время конца последнего запуска Workspace
C:\Dynamics\HTRDATA\ИмяУзла.HTC - дата и время последней записи в архив HTRDATA

Когда iFix остановлен:
C:\Dynamics\LOCAL\STARTUP.LOG - дата и время конца последнего запуска iFix
C:\Dynamics\LOCAL\AlarmAreas.AAD - дата и время начала последнего запуска iFix
C:\Dynamics\APP\SysAlertQ.dat - дата и время конца последнего запуска iFix
C:\Dynamics\LOCAL\WORKSPACE.ini - дата и время конца последнего запуска Workspace
C:\Dynamics\LOCAL\FixUserPreferences.ini- дата и время конца последнего запуска Workspace
C:\Dynamics\HTRDATA\ИмяУзла.HTC - дата и время последней записи в архив HTRDATA

Максим
Junior Member

Сообщений: 3
Откуда: Санкт-Петербург, Россия
Регистрация: Февраль 2008

написано 04 Апреля 2008 12:54ИнфоПравкаОтветитьIP

HelpFix,
Приветствую! Наблюдается след. баг в iFIX, а точнее при генерации отчётов Crystal Reports...не видит разделитель целой и дробной части, например число в базе (FIX Dynamics Historical Data) - 400.066123, а в отчёте - 400066123 (формат поля: только целая часть), причём графики (Chart) на основе данных из этой же базы строит правильно(?). Насколько я понимаю, дело в runtime-файлах CR, переустановка ничего не даёт, как лечить? Всё работало и вдруг такая тема! На компьютере где разрабатывались формы отчётов (CR Professional стоит), всё нормально. Просматривая базу Экселем, никаких багов, между целой и дробной частью есть разделитель, странно, ведь насколько я понимаю odbc32.dll используется один и тот же? Если встречались вам такие "грабли", буду благодарен за помощь. Всех благ.


HelpFix
Member

Сообщений: 52
Регистрация: Февраль 2007

написано 04 Апреля 2008 15:27ИнфоПравкаОтветитьIP

to Максим,
честно говоря я не в теме Crystal Reports
но... попробуйте проверить (поменять) настройку в панели инструментов/языки и стандарты/Разделитель целой и дробной части.

nicece
Junior Member

Сообщений: 4
Откуда: Москва, Россия
Регистрация: Март 2008

написано 06 Мая 2008 09:11ИнфоПравкаОтветитьIP

Здравствуйте, подскажите пожалуйста я создал кнопку при нажатии на которую хочу чтобы в тег прописывалась 1 (это значение записывается в контроллер )
Я создал тег типа DI с включенной опцией Enable Output и хочу чтобы по нажатию кнопки в него записывалась 1 (OPEN)
В скрипте кнопки прописал OpenDigitalPoint[Fix32.FIX.Tag1.F_CV], [ ]
Подскажите, где ошибка, как правильно прописать скрипт?

HelpFix
Member

Сообщений: 53
Регистрация: Февраль 2007

написано 06 Мая 2008 17:17ИнфоПравкаОтветитьIP

OPEN - это 0 для тега DI - чтобы лучше запомнить - ОТКРЫТЫЙ нормально открытый контакт - ток не течет - 0
CLOSE - это 1 для тега DI - ЗАКРЫТЫЙ нормально открытый контакт - ток течет - 1
в общем, используйте CloseDigitalPoint

Ваш ответ:

Коды форума
Смайлики


Ник:    Пароль       
Отключить смайлики
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

Все время MSK

Склеить | Разбить | Закрыть | Переместить | Удалить

Новая тема | Написать ответ
Последние сообщения         
Перейти к:

Свяжитесь с нами | skunksworks.net

Copyright © skunksworks.net, 2000-2018

Разработка и техническая поддержка: skunksworks.net


Рейтинг@Mail.ru Яндекс.Метрика