Вход на форум 
В начало e-Mail

Форум

Ресурсы Rockwell

Product Directory

Essential Components

Literature Library

Knowledge Base

Electronic News&Magazines

Блог

Encompass Program

Product Certification

  


Предыдущие результаты



Предыдущие результаты



Предыдущие результаты

 Я не понимаю вот этого переливания из пустого в порожнее. AlarmSummary работает, так-же, как работает и AlarmLogViewer. Проблема в [b:d1ad18de36]понимании[/b:d1ad18de36] механизмов реализации методов, например возьмем AlarmSummary. Я не гарантирую полное понимание всей "кухни", но на основе своего опыта могу сказать следующее: Информацию о Description AlarmSummary берет в момент первого события Alarm конкретного тега, либо при запуске, когда в памяти висят неквитированные сигналы. В дальнейшей работе AlarmSummary оперирует именно этим значением, вплоть до [b:d1ad18de36]перезагрузки объекта[/b:d1ad18de36]. Разработчикам, как видно, в страшном сне не могло приснится, что Description необходимо менять в динамике! Проверка простая: 1. Создаем тэг с Description "Description1". (Alarmed в Startup установлен, дисплей один - стартовый). Как вариант тэг с Description "Description1" уже существует. 2. Меняем Description на "ААА". 3. Меняем Value тэга: получаем событие InAlarm. 4. Смотрим на объект AlarmSummary на стартовой странице. Description как "ААА". При дальнейших изменениях Description на AlarmSummary изменений Description [b:d1ad18de36]не будет[/b:d1ad18de36]! Если Вы используете AlarmSummary в виде объекта, да еще на стартовой странице, то запуск AlarmSummary произойдет сразу после инициализации окна и поведение AlarmSummary будет так, как описано выше, вплоть до момента закрытия окна. Но!!! Если Вы запускаете AlarmSummary не как объект дисплея, а как [b:d1ad18de36]отдельный редактор[/b:d1ad18de36], то при каждом вызове у Вас будет именно т[b:d1ad18de36]екущее значение[/b:d1ad18de36] Description тэга. Абсолютно так-же все будет происходить, если AlarmSummary сделать в виде объекта, но на [b:d1ad18de36]другом окне[/b:d1ad18de36] (закрытие окна как Abort Me). И если в Вашей задаче необходимо [b:d1ad18de36]динамически[/b:d1ad18de36] изменять Description тэга, при этом AlarmSummary должен быть обязательно в виде объекта на главном окне, то не задумываясь я бы тупо закрывал окно и тут - же запускал его вновь (вот здесь, скорее всего, без VBA не обойтись). Рассматривать варианты перезапуска AlarmSummary как визуального компонента без закрытия окна не хочу, если такие варианты и существуют. И я не вижу, чтобы здесь "что-то не работало". Как я понимаю, вся проблема в том, что разработчики не посоветовались с Вами и не учли Ваши желания. Поэтому компонент AlarmSummary работает так, как это задумали разработчики. [quote:d1ad18de36]Это обстоятельство вынудило меня написать свой ActiveX компонент[/quote:d1ad18de36] Вот с этого и надо было начинать, а не валить все на непредусмотрительных разработчиков. Когда мне нужна была связка с БД Access я, просмотрев документацию по RSView32, накатал свой пакет программ. И причина, почему я не делал это на VBA - это моё [b:d1ad18de36]незнание[/b:d1ad18de36] этого языка, а не "[b:d1ad18de36]кривой VBA[/b:d1ad18de36]".

 [quote:6859dfd988="mak"]Доброй ночи! Недавно на сайте была возможность скачать демо версию rslogix 17,сейчас у меня появилось такое желание! Но вот ссылочку на скачивания не могу найти!![/quote:6859dfd988] Да пожалуйста. Смотри в своей асе.

 [url=http://www.rockwellautomation.com/rockwellsoftware/design/rslogix5000/demo.html]Пожалуйста.[/url]

 Доброй ночи! Недавно на сайте была возможность скачать демо версию rslogix 17,сейчас у меня появилось такое желание! Но вот ссылочку на скачивания не могу найти!!

 [quote:42c9104deb="ALEX_NK"]Добрый всем день! У моего клиента появилось желание сформировать настраиваемый отчёт по авариям (те фильтр аварийных сообщений и всё такое). [/quote:42c9104deb] Просто на заметку. Как я понимаю необходимо сделать фильтрацию по алармам. Не знаю есть или нет в Rsview32,но в intouch есть. Если в поле action по нажатию кнопки, вставить специальную функцию: almQuery( "objectName", AlarmGroup, FromPri, ToPri, State, DispType ), где FromPri....ToPri диапазон приоритетов тегов,то можно таким образом создавать фильтрацию, назначая каждой кнопке опеределенный диапазон приоритетов тегов.

 Уважаемый DIMIOKS, я рад, что Ваши сообщения, становятся более содержательными и конструктивными. Хочу сразу еще раз поправиться (поскольку на форуме от Ср 04 Мар, 2009 10:46:49 я уже исправлялся), что в сообщении от Вт 03 Мар, 2009 10:43:57 я опечатался, и теперь вместо AlarmLogViewer следует читать AlarmSummary, приношу извинения. Итак, вы приводите замечательный исходный код, но давайте, применим к Вашей методике, вместо AlarmLogViewer, другой замечательный инструмент RSView32 - Alarm Summary: к примеру, создадим новый экран, сделаем этот экран стартовым в проекте, поместим на него ActiveX AlarmSummary, а также создадим несколько кнопок и привяжем к их событиям процедуры Вашего VBA исходника. ВСЕ ЭТИ ДЕЙСТВИЯ ВАЖНЫ ДЛЯ ПОНИМАНИЯ ПРОБЛЕМЫ. После этого запустим проект, нажимая кнопки, исполним Ваш исходный код, и посмотрим, что будет появляться в журнале алармов - AlarmSummary? … на сегодняшний момент мне не удалось в AlarmSummary получить адекватное Description тега, поэтому данная проблема для МЕНЯ до сих пор НЕ РЕШЕНА. Это обстоятельство вынудило меня написать свой ActiveX компонент, который, на мой взгляд, работает более корректно, нежели AlarmSummary. Теперь, вернемся к фактам, по моему глубокому убеждению, факты – это не простые утверждения на форуме, я готов (по первому запросу) выслать любому заинтересованному, как свою версию тестового проекта от Ср 04 Мар, 2009 10:46:49, так и новую версию проекта с исходным кодом DIMIOKS (которая была дополнена, ЧТО ВАЖНО ДЛЯ ПОНИМАНИЯ ПРОБЛЕМЫ, стартовым экраном и кнопками, как описано чуть выше), которая также полностью подтверждает мои утверждения сделанные ранее. В свою очередь, буду очень признателен, если на мой e-mail вышлют тестовый проект, где НА ЭКРАНЕ ПРИ ЗАПУЩЕННОМ ПРОЕКТЕ в компоненте RSView32 ActiveX AlarmSummary можно будет видеть, как меняется Description тега с помощью процедур VBA.

 Уважаемый Scaut, если Вы мои выражения сочли за дерзость, то я просто завидую Вам, т.к. Вы, как видно, еще не встречались напрямую с подобными вещами. Насчет балагана: балаган - это заявления о недееспособности инструментов RSView32. Все остальное - следствие Ваших безосновательных утверждений. Насчет конструктива: Вам уже достаточно многое объяснили, я в том числе дал последовательность действий (команд), которые приводят к решению задачи. Как видно, не по зубам орешек. Рискну еще более упростить пример: [code:1:d7162eaef2]Sub CreatTagDig() Dim NewTag As Tag Dim sName As String sName = "aaa" Set NewTag = gTagDb.CreateTag(sName, roTagTypeDigital) NewTag.SourceType = roSourceMemory NewTag.Description = "Descript1" NewTag.Alarmed = True NewTag.DigitalTagAlarmCfg.AlarmType = roAlarmTypeOn NewTag.DigitalTagAlarmCfg.InAlarmMessageSource = roMessageSourceCustom NewTag.DigitalTagAlarmCfg.OutOfAlarmMessageSource = roMessageSourceCustom NewTag.DigitalTagAlarmCfg.InAlarmFileMessage = "\11d \8t InAlm Tag_I___ \5n \15s" NewTag.DigitalTagAlarmCfg.OutOfAlarmFileMessage = "\11d \8t OutAlm Tag_O___ \5n \15s" NewTag.WriteConfiguration End Sub Sub ChTagTrue() gTagDb.GetTag("aaa").Value = 1 End Sub Sub ChTagFalse() gTagDb.GetTag("aaa").Value = 0 End Sub Sub ChDescriptAAA() gTagDb.GetTag("aaa").Description = "AAA" gTagDb.GetTag("aaa").WriteConfiguration End Sub Sub ChDescriptBBB() gTagDb.GetTag("aaa").Description = "BBB" gTagDb.GetTag("aaa").WriteConfiguration End Sub[/code:1:d7162eaef2] Все операции с тегом написаны на VBA. Перегрузка проекта не требуется. Все динамически изменяемые дескрипторы также будут отображены в AlarmLogViewer. Думаю, все уже сказано, пора завершать эту тему.

 [quote:bee74e41a3], и реально попытались проверить мою проблему [/quote:bee74e41a3] Это что значит "попытался"? Я Вам что, пацан, который "пытается" ... (вырезано цензурой)? [quote:bee74e41a3], а просто утверждать … ну, это не убедительно.[/quote:bee74e41a3] С каких это пор на сайте мои утверждения являются голословными? Проблемы как не было, так и нет. [quote:bee74e41a3], для моей задачи ВАЖНО не перегружать проект![/quote:bee74e41a3] Разве я что-то говорил о перезагрузке проекта? С 1 по 6 пункты в Runtime. [quote:bee74e41a3], как все таки этих КОШЕК готовить?[/quote:bee74e41a3] Из-за кризиса у меня столько свободного времени, что девать его некуда. Поэтому открою тайну, скрытую за 7 печатями: [code:1:bee74e41a3]DIM КОШКИ as VBAforRSView32 Sub РецептПриготовленияКОШЕК() 1. Занять рабочее место. 2. Включить компьютер. 3. Загрузить RSView32 Works и достать КОШЕК. 4. Готовить КОШЕК. 5. Каждый час делать перерыв (перекур, чаепитие, пивопотребление - на Ваш вкус). 6. Повторять, начиная с пункта 4 до тех пор, пока КОШКИ не будут приготовлены. 7. Проверить КОШЕК на вкус. 8. Досолить КОШЕК. 9. Каждый час делать перерыв (перекур, чаепитие, пивопотребление - на Ваш вкус). 10. Повторять, начиная с пункта 7 до тех пор, пока КОШКИ не будут вкусные. 11. Выключить компьютер. 12. Освободить рабочее место. End Sub[/code:1:bee74e41a3]

 Уважаемые знатоки RSView32, прошу Вас не делать из форума SHOW, а руководствоваться фактами. К примеру, мои утверждения основаны на фактах, что это значит? это значит что любому, пожелавшему проверить мои утверждения я готов предоставить тестовый проект. Проект выполнен в RSView32 v7.50 состоит из экрана, на котором 3 кнопки, а также элемент Alarm Summary, (К СОЖЕЛЕНИЮ, в пред. моем сообщении я опечатался, и вместо Alarm Log Viewer я имел ввиду Alarm Summary) и если запустить проект, то нажимая эти кнопки можно легко убедиться в правоте моих утверждений, поскольку в элементе Alarm Summary не меняется Description. В проекте создан всего лишь один тег с тревогой: test привязка для кнопки №1: VbaExec test "TEST #1"; test = 1; test = 0 привязка для кнопки №2: VbaExec test "TEST #2"; test = 1; test = 0 привязка для кнопки №3: VbaExec test "TEST #3"; test = 1; test = 0 процедура VBA: Sub test(ByVal Descripotion As String) Dim t As RSView32.Tag Set t = gTagDb.GetTag("test") t.Description = Descripotion t.WriteConfiguration gCommand.Execute "AlarmOff" gCommand.Execute "AlarmOn" End Sub Теперь, на счет КОШЕК, я конечно признателен Вам, что Вы уделили время, и реально попытались проверить мою проблему, ОДНАКО не будем торопиться с “долгоиграющими” выводами, пожалуйста, посмотрите мой проект (готов выслать на любой e-Mail), ведь, как я отмечал Выше, для моей задачи ВАЖНО не перезапускать проект! и возможно тогда, ВЫ сможете мне пояснить, как все-таки этих КОШЕК готовить? (и только в этом случаи, я буду Вам очень признателен), а просто утверждать … ну, это неубедительно.

 [quote:b9ad1a0e13="scout"]если на форумах мне говорят? – это “нештатные” средства или это “нестандартные” методы[/quote:b9ad1a0e13] Будьте добры, приведите цитату, пожалуйста, где написано, что VBA - это нештатные средства или нестандартные методы. [quote:b9ad1a0e13="scout"], или обычно так с RSView32 не работают … - что это?, какие “штаты, стандарты, обычаи?” – в чем тут дело? [/quote:b9ad1a0e13] Какие "обычаи"? Вот Вам тут, собственно, как раз и показали, какие. [quote:b9ad1a0e13]А может все гораздо проще и, на мой взгляд, RSView32 Object Model недоработана, неверно документирована и ведет себя непредсказуемо.[/quote:b9ad1a0e13] Это всего лишь Ваше индивидуальное предположение. Object Model доработана, существует, работает, документирована. Она продана уже в тысчах тысяч копий, получила множество наград, и не в последней степени благодаря своей функциональности и встроенному VBA в том числе. Другое дело, если Вы пока не вполне понимаете мехнаизмы её работы, это ничего, опыт - дело наживное. Уважаемый коллега DIMIOKS только что показал Вам, как, в частности, из VBA динамически меняется Description.



Предыдущие результаты


Ещё результаты



Предыдущие результаты



Предыдущие результаты



Предыдущие результаты



Предыдущие результаты




  
RA & VDT GmbH


Облако тэгов
version Rockwell ProSoft Modbus Automation ControlLogix MVI56-MCM Allen-Bradley Logix Windows FactoryTalk PanelView VersaView ControlTower GuardLogix Compact Software Studio Designer 100-E 100-D SMC-50 Energy Saver 1756-RMS-SC Spectrum Encompass Level Ethernet Redundancy Stratix

Яндекс цитирования

Smart Solutions VDT GmbH | Friedrich-List-Allee 38, D-41844 Wegberg-Wildenrath, Germany
Tel.: +49 2432 933 57 83 | e-Mail: office@vdt-solutions.de
Все товарные знаки и торговые марки являются собственностью их владельцев.
При использовании материалов сайта ссылка на данный сайт обязательна.
Открытие страницы: 0.126 секунды