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

Форум

Ресурсы Rockwell

Product Directory

Essential Components

Literature Library

Knowledge Base

Electronic News&Magazines

Блог

Encompass Program

Product Certification

  


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



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



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

 Уважаемый Павел, а чем Вас не устраивает имя тега :wink: : [code:1:48e388be25] В данном примере тегу присваивается среднее значение трех других тегов. Для выполнения сценария и записи среднего трех тегов с именами Scale1, Scale2 и Scale3, в тег с именем AvgWeight, выполните следующую команду: VbaExec Average AvgWeight, Scale1, Scale2, Scale3. Sub Average(sAvgTag As String, sTag1 As String, sTag2 As String, sTag3 As String) On Error Resume Next Dim fAverage As Single 'Вычисление среднего fAverage = (gTagDb.GetTag(sTag1).Value + gTagDb.GetTag(sTag2).Value + gTagDb.GetTag(sTag3).Value) / 3 'Запись среднего в тег gTagDb.GetTag(sAvgTag).Value = fAverage End Sub [/code:1:48e388be25]

 Пожалуйста: [code:1:5bfaa674d6]Running a project automatically You can set up a project to run automatically when Windows starts. 1. Click the Start button on the Windows task bar, point to Settings, and then click Taskbar or click Taskbar & Start Menu. 2. Click the Start Menu Programs tab or Advanced tab. 3. Click Add. 4. Type the path to RSView32 or click Browse and locate RSView32. Add the project name and the /r parameter to the command line. For example, for a project called Norm’s Bakery, you would type the following on the command line: “C:\Program Files\Rockwell Software\RSView\RSView32.exe” “C:\Norm’s Bakery\Norm’s Bakery.rsv” /r If the path contains spaces, you must enclose it in double quotes. The /r parameter must be outside the quotes. 5. Click Next. 6. In the Select Program Folder dialog box, select the StartUp folder. 7. Specify a name for the shortcut. 8. Click Finish. For more information, see your Windows documentation.[/code:1:5bfaa674d6]

 Вот пример bat-файла cd "c:\program files\rockwell software\rsview\" start rsviewrt32.exe "full_project_name" /r exit

 Уважаемые знатоки RSView32. Подскажите пожалуйста как решить данную задачу. На мнемосхеме есть две кнопки Старт и Стоп которые запускают/останавливают заполнение емкости. Свойство Visible кнопок завязано на тег Control_Filling_Tank. Тег дискретный (связан с тегом контроллера) по истинному значению которого начинается заполнение емкости (включается контур упрвления). Но для включения контура управления необходимо чтобы емкость была нагрета, насосы работали и т.д., то есть необходимо выполнять проверку опреде-ленных условий. Если хоть одно из условий не выполняется об этом нужно сообщить операто-ру. Проверку я сделал при помощи VBA следующим образом: [code:1:07e0878cc8]Sub Start_Fiiling_Tank() Tank_is_Hot = Application.ActiveProject.TagDb.GetTag("Status\Tank_is_Hot") Pump_OK = Application.ActiveProject.TagDb.GetTag("Status\Pump_OK") Dim Temp_Str As Tag Set Temp_Str = Application.ActiveProject.TagDb("Control\Error_Action") Dim Command_Control As Tag Set Command_Control = Application.ActiveProject.TagDb("Control\Supply_water_to_Tank") If Tank_is_Hot = 0 Then Temp_Str = "Емкость не нагрета!" Application.ActiveProject.Command.Execute "Display popup_banan /T Control\Error_Action /cc" ElseIf Pump_OK = 0 Then Temp_Str = "Нет готовности насосов" Application.ActiveProject.Command.Execute "Display popup_banan /T Control\Error_Action /cc" Else Command_Control = 1 End If End Sub[/code:1:07e0878cc8] Процедуру написал для примера, реально каждая процедура обрабатывает большее ко-личество условий. Вызывается она при нажатии на кнопку старт. Все это дело реально выливается в то, что при нажатии на кнопку старт, кнопка не исче-зает сразу как бы хотелось (пока процедура зачитает статусные теги, пока пропишет значение в тег контроллера, пока зачитается новое значение и изменится свойство Visible ). Это дает воз-можность нажать на кнопку еще раза 3-4 что иногда приводит к ошибкам бейсика. 1. Велосипед изобрел? 2. Как бы так извратиться и в обработчике нажатия кнопки написать что-то типа If Status\Tank_is_Hot = =1 then Control\Supply_water_to_Tank=1 else Display Блаблабла 3. Можно ли как-то асинхронно, что ли, получать значения тегов в процедурах VBA. Уж очень он тормозит, если надо зачитать 5-6 статусных тегов и выдать пару управляющих команд.

 Добрый день! У меня есть несколько вопросов: 1. Как можно на контроллере FlexLogix с модулем 1788-CNCR программным путем (логика контроллера или RSView32 v6.4) определить состояние каналов А и В (есть соединение или нет)? Пробовал в RSLogix использовать инструкцию GSV для определения статуса модуля. Пробовал в RSView настроить канал с непосредственным использованием драйверов (об этом во 2м вопросе). Ничего! Единственный намек увидел в RSLinx при диагностике станции (Station Diagnostics: Device on ControlNet), но как добраться к этим параметрам я не знаю :( . 2. Объясните мне пожалуйста для чего нужна настройка связи с непосредственным использованием драйверов? Как я понимаю, это увеличивает быстродействия. Что еще? При конфигурировании узла в пункте Тип можно выбрать только PLC, SLC и SoftLogix, а мне нужен FlexLogix. Я так понимаю, у меня старая версия RSView. C какой версии это возможно и можно ли таким образом определить состояние сети (см. п.1)? Спасибо.

 Здравствуйте. Подскажите, пожалуйста, что делать с такой проблемой: при загрузке проекта в RSView, когда прошло уже около 50% загрузки, выдается сообщение Connect to Watcom SQL, userID: tagdb, password ******. И далее, что бы ни делал, результат один - Database conversion failed: unable to connect to database server: unable to start database engine. Жму ОК, загрузка прерывается. Делал следующее: - Administrative Tools -> ODBC -> удалял Watcom SQL; - удалял каталог САСНЕ, файл *.сас; - настраивал Administrative Tools -> Services -> Network DDE и Network DDE DSDM -> в автоматический режим; - вводил пароль MMIPass; - создавал новый проект - но НИЧЕГО! Что можно сделать еще? Заранее благодарен.

 В RSView32 имеется встроеннный мониторинг состояния коммуникаций, поэтому, я думаю, что эту проблему можно было бы решить достаточно просто, без "самодельного" механизма проверки. Можно использовать штатные средства RSView, которые для этого и предназначены. Смотрите, что пишут в руководстве: [quote:984478dd4f][b:984478dd4f]Monitoring communications[/b:984478dd4f] Use any of the following methods to monitor communications: - Activities—In the Activity Log Setup editor, ensure communication errors, warnings, and remarks are enabled and are set up to log to the log file and activity bar. At runtime, information appears in the log file and activity bar, indicating any problems. - Communication status—Ensure communication status is turned on, otherwise communication errors will not be logged to the activity log file or activity bar (even if they have been configured to do so in the Activity Log Setup editor). By default, communication status is turned off until you run the project. To turn communication status on, use the [b:984478dd4f]ComStatusOn[/b:984478dd4f] command. - Tag monitor—Use the tag monitor to check the communication status for a device tag. The states are: - Disabled if the node has been disabled in the Node editor or disabled using the NodeDisable command - Error if RSView32 has tried to acquire a value but could not because of some kind of communication error, such as a node not being available or a DDE server not running - Stale if the tag value has been acquired before but does not have an updated value - Uninitialized if the value has never been acquired - Valid if RSView32 has a valid value for the tag - None if there is a problem with the tag definition such as it is not a valid tag type or if the tag database has been accessed with a third–party tool such as Microsoft® Access. If the underlying tag type is valid, editing and saving the tag and then redisplaying the tag monitor will fix the problem. System\com tags—Use the system\com tags to receive a more detailed error message. If the tag monitor reports an error, move to an empty cell in the tag monitor, type system\com* and, when the dialog box appears, click Select All. For a complete list of system\com tags, see Appendix B, System tags. [/quote:984478dd4f] Для диагностики можно использовать, скажем, системный тэг system\ComErrorValue1 или system\ComErrorValueOPC и т.п. В дальнейшем можно назначить какие-нибудь действия, основываясь на бите аварии коммуникаций. RSView всё равно сканирует Ваши тэги, поэтому ошибка коммуникации будет неминуемо обнаружена, и, возможно, даже скорее, чем при используемом у Вас механизме. Мне ничего неизвестно о существовании возможности исключить какие-нибудь отдельно взятые команды из записи в ActivityLog. Но если уж обязательно необходимо записывать все эти команды, то я мог бы себе представить программу пост-обработки файлов активности, скажем, на VBA, чтобы выбросить из этих файлов всё лишнее.

 Хороший вопрос :) Сейчас попробую привести несколько общих соображений и рекомендаций. Основное правило планирования вычислительной мощности мультизадачных проектов реального времени звучит так: „Don’t hog the CPU“, что означает «не заграбастывайте время процессора» :) Поэтому, чтобы минимизировать время скана, следует, в принципе, придерживаться следующих соображений: 1. Лучше использовать небольшое количество больших программ, чем большое количество маленьких. Чем больше задач, тем больше «накладных расходов», т.е. вычислительных ресурсов, требующихся процессору и операционной системе, чтобы отслеживать переключение задач, сохранения контекста, определения наиболее приоритетной готовой к выполнению задачи, сохранению контекста в стеки задачи, у которой система забирает процессор и т.п. 2. Если возможно, используйте только одну или как можно меньше задач. 3. Лучше использовать одну программу с вызовами подпрограмм (routines) чем несколько автономных задач со своими приоритетами, локальной областью данных и т.п. 4. Если Вам необходимо иметь в системе несколько задач с собственными приоритетами, то в каждой задаче лучше иметь только одну программу или пару программ. 5. Лучше применять «оборонительный» стиль планирования приоритетов и вычислительного процесса, чем «наступательный», т.е. присваивать задаче настолько маленький приоритет, насколько это возможно и имеет смысл, а не назначать каждой новой задаче (ещё) больший приоритет, чем предыдущей. 6. Старайтесь следовать следующей стратегии: задачи с относительно более высоким приоритетом должны обслуживать самые важные события во внешней среде, и быть настолько короткими, насколько это возможно. Чем выше приоритет, тем короче, лаконичнее и проще должна быть задача. 7. Поскольку резервированные процессоры постоянно заняты ещё и сравнением и выравниванием контекста, и это происходит с довольно высоким приоритетам (по вполне понятной причине – нужно постоянно быть наготове!) , очень критичным является время передачи массива данных (тэгов). Поэтому структурируйте данные так, чтобы иметь наименьшее количество тэгов. Это позволит уменьшить объём данных, передаваемых между основным и резервирующим процессором, а, следовательно, уменьшить время трансфера данных между контроллерами и увеличить быстродействие. 8. Удаляйте ненужные тэги. Поскольку они созданы, память под них отписана, и они участвуют в трансфере, т,к. Процессор не анализирует, используются ли они в действительности. 9. По этим же соображениям лучше использовать массивы тэгов вместо ряда индивидуальных тэгов. Каждый раз, когда Вы создаёте тэг BOOL, контроллер создаёт 4-байтовую структуру данных вместо 1 бита. Например, массив BOOL из 32 битов занимает 32 бита, т.е. 4 байта, а 3 независимых тэга типа BOOL занимают 3 тэга x 4 байта/тэг = 12 байт. 10. Старайтесь использовать биты в слове, а не отдельные битовые тэги. Если Вам необходимы тэги различного типа, то лучше создавать польовательские структуры данных, состоящие из тэгов и массивов разных типов, чем просто большое количество тэгов. Напирмер, структура может состоять из тэгов SINT, INT, DINT, REAL, COUNTER, TIMER. Менеджер памяти оптимизирует такие структуры, макчимально упаковывая данные вплотную друг к другу. 11. Если уж Вы создаёте единичные тэги, то лучше создавайте альянсы (aliases) к компонентам массивов. 12. Минимизируйте код программы, насколько это возможно. Если по какому-нибудь условия выполняются различные действия, то избегайте множественных проверок этого условия в разных строках программы, а лучше для всех этих действий используйте ветвление во второй половине строки проверки учловия. 13. По этой же причине минимизируйте применение конструкций вида «проверил условие – установил флажок – во многих местах пользуюсь этим флажком». Лучше избегать флажков и помещать инструкции выполнения впараллель в строчке проверки условия непосредственно после проверки этого условия. 14. Не выполняйте строчки программы, если это не нужно. Выполняйте действия только тогда, когда это действительно необходимо. Например, выполнение сложения после проверки необходимости сложения лучше, чем безусловное выполнение сложения без проверки этого условия. 15. При передаче данных между партнёрами-контроллерами данные делятся на пакеты по 256 байт. Каждый раз, когда производится запись, скажем, в 1 (один) бит, т.е. тэг типа BOOL, между контроллерами передаётся целый блок из 256 байт. Поэтому лучше осмысленно группировать данные таким образом, чтобы передавалось только то, что нужно, а не, например, одни и те же константы в одном и том же блоке. Иными словами, лучше располагать константы в одном блоке, медленно меняющиеся значения в другом, быстроменяющиеся – в третьем и т.п. в этом смысле. 16. Лучше использовать DINT, чем SINT или INT. Поскольку контроллер имеет 32-битную шину данных, его естественным форматом является именно DINT. Все остальные Ваши форматы контроллер вынужден перед использованием сперва преобразовывать в DINT, а потом снова в Ваш формат. Это занимает время. 17. Не нужно явно в программе преобразовывать SINT или INT в DINT. Контроллер делает это автоматически. В противном случае это занимает лишнее время. 18. При планировании Вашей системы пожалуйста не пренебрегайте всеми рекомендациями документа [url=http://literature.rockwellautomation.com/idc/groups/literature/documents/um/1756-um523_-en-p.pdf]1756-um523_-en-p.pdf[/url]. Настройки ControlNet тоже нужно оптимизировать с помощью RSNetworx for ControlNet. - Можно поварьировать NUT. - Очень часто недостаточная производительность сети связана с некачественным механическим её исполнением, например, нехорошим контактом в разъёме. Посмотрите в Station Diagnostics в RSLinx, нет ли плохих пакетов, "шума", ошибок? - Лучше располагать адреса в сети подряд, без промежутков. - Хорошо бы проверить в RSNetworx, корректно ли указаны максимальные сетевые адреса Max Scheduled и Max Unscheduled. - Если у Вас резервированная сеть, проверьте, установлено ли в Media Redundancy, что передача идёт по кабелям А и В. - Посмотрите, сколько реально байтов в секунду пропускает Ваша сеть в фазе unscheduled. Не получается ли так, что NUT слишком мал, чтобы пропустить все байты за один такт? Не слишком ли велик бесполезный запас? - Посмотрите характер загрузки сети: Average and Peak Scheduled Band Network. Чем ближе эти значения к 100%, тем тяжелее загружена сеть. Сколько у Вас рабочих станций в данном сегменте ControlNet? Что Вы используете - RSView32 или RSViewSE? Успехов! :)

 IIS установлен и настроен, работает и показывает страничку Rockwell. [quote:53ca9b2212]Message: RSLinx Enterprise runtime service started successfully.[/quote:53ca9b2212] Это запись из FT Diagnostic Viewer сразу, через секунду после сообщения [quote:53ca9b2212]Message: No license was found for RSLinx Enterprise runtime service on 143-[/quote:53ca9b2212] т.е. лицензия не найдена, но служба запущена. RSLinx Classic в поставке на было. Вобщем, создается впечатление, что был прислан какой-то слишком уж урезанный пакет RSView SE (и к тому же версии 3.20, хотя уже есть 4.0).

 [quote:cf2dcb8acf]When to install Microsoft Internet Information Server You do not need to install Microsoft® Internet Information Server if you are creating RSView® Supervisory Edition™ stand-alone applications only. You must install Microsoft Internet Information Server on the same computer as any RSView SE Server™ that is used in a distributed application.[/quote:cf2dcb8acf] Это цитата из руководства по установке. Мне нужно для пробы создать хотя бы одно локальное приложение, пусть даже с 1 экраном и 1 сервером. Соответственно, IIS мне не нужен (хотя я и установил его для профилактики :) ) А вот что пишет FT Diagnostic Viewer. [quote:cf2dcb8acf]Message: No license was found for RSLinx Enterprise runtime service on 143-[/quote:cf2dcb8acf] Вобщем, загадка.



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


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



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



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



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



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




  
RA & VDT GmbH


Облако тэгов
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.139 секунды