 | |
Предыдущие результаты
1. Применить Motorola MOSCAD OLE Process Control (M-OPC) Server:
[quote:291e940447]• Standard interface to MOSCAD Family RTUs
M-OPC Highlights:
• [b:291e940447]Supports OPC Data Access (DA) V2.05[/b:291e940447]
• Supports OPC Security V1.0
• Fully supports MDLC communications
• Optimized polling scheduler
• Local and remote monitoring and setup
• Server activity and error logger
[/quote:291e940447]
http://www.moscad-systems.com/Upload/Release%20Announcement%2025%20July%202005.pdf
2. Попросить indusoft написать OPC-сервер в 2.0 :)
3. Применить другой OPC-сервер для Moscad, например, попробовать http://www.indel.by/ru/tele/opc (только что нашёл Googl'ом :) )
|
Пришел тут ко мне модуль для опытов.
Задача у меня связаться с помощбю этого модуля с неким устройством по RS-485, ASCII протоколу.
Сначала читало только когда полностью входной массив заполнится, потом задал конец пакета ";" и чтение с устройства заработало посылками (хвост нулями забил).
Однако с посылкой пакетов ничего не получается :
Делал посылку постоянно и по изменению TransmitRecordNumber - слово Status отображается 16 и все =(.
Помогите пожалуйста, а то я уже сомневаюсь может-ли этот модуль быть мастером.
|
[quote:868c37e31f="user"]а по подробнее можно[/quote:868c37e31f]
Вам также следует подробнее описать постановку задачи.
Вот пример кода VBA, исполняющегося на клиенте RSViewSE и читающего из базы данных в формате mdb-файла предварительно сохраненные шкалы перьев для трендов:
[code:1:868c37e31f]
Private Sub Display_AnimationStart()
On Error GoTo err:
Dim sTag As String, nMin As Double, nMax As Double, nTime As Long
sTag = TagParameters(1) + "\" + TagParameters(2)
Dim dbConn As New ADODB.Connection
dbConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=D:\RSViewSE\Trends\GO\trn_scale.mdb;Mode=ReadWrite|Share Deny None"
dbConn.Open
Dim rs As New ADODB.Recordset
rs.Open "SELECT * FROM Trends WHERE TAG='" + sTag + "'", dbConn
If Not rs.EOF Then
nMin = rs("Min").Value
nMax = rs("Max").Value
nTime = rs("Time").Value
Trend_Popup.Pens(1).Max = nMax
Trend_Popup.Pens(1).Min = nMin
Trend_Popup.XAxis.TimeSpan = nTime
End If
err:
On Error Resume Next
rs.Close
Set rs = Nothing
dbConn.Close
Set dbConn = Nothing
End Sub
[/code:1:868c37e31f]
Чтобы обращаться вместо Access к MSSQL, нужно всего лишь соответствующим образом изменить ConnectionString.
|
Несколько часов назад имел честь общаться по телефону с HMI-специалистами московского представительства Rockwell.
Общие выводы таковы:
1. Объединение нескольких HMI-серверов в одно приложение с общей FT-директорией является нормальным подходом, на который и ориентируется Rockwell Software.
2. Вышли новые патчи для FT и HMI Server RSView SE v 4.0 (CPR 7+):
http://domino.automation.rockwell.com/applications/kb/RAKB.nsf/7b50e6b308a8361485256a9d006bf396/164c7814a802a4e1852571090073cde6?OpenDocument
Сделан ряд доработок в FT, для HMI улучшены возможности резервирования!!!
3. Сервер уровня RSSQL/RSHistorian изначально задумывался для централизованного сбора данных от нескольких автоматизированных участков.
4. Есть удачные примеры резервирования сервера RSSQL/RSHistorian с помощью создания кластера. Только лицензия на MS SQL сервер в этом случае должна приобретаться не на версию Standard, а на Enterprise.
|
Имеем структуру в которой RSView32 получает данные с контроллера и пишет в таблицу на сервер MSSQL. Каждой записи присваивается дата и время в поле таблицы DateAndTime типа TimeStamp.
Вопрс: Какое время присваивается?
- время получения данных RSView,
- время получения данных MSSQL,
- время получения данных контроллером с модулей IO?
(последний вариант явно неправильный, но возможно есть средство получения таких данных)
С уважением, Дмитрий.
|
A18156 - Program Example: SLC-5/04 - SDN --- DeviceNet --- Standard Panelview
(DeviceNet Application Example)
http://domino.automation.rockwell.com/applications/kb/RAKB.nsf/0/DAEB555DABC61BFD85256AFB00684D6A?OpenDocument
|
Виталий, точного ответа не знаю, но может быть подскажу правильное направление для решения задачи.
В RSLinx есть пункт Station Diagnostics, который показывает соотояние каналов, ошибки и т.д. Я сильно не капал, но уверен, что к этим параметрам можно добраться из VBA (к некоторым добрался, но не нашел нужные - не было времени). Попробуйте, может у вас что-то получиться!
|
Приветствую всех!
Интересует вопрос диагностики сетевых соединений устройств, висящих на ControlNet из SCADA-системы RSView32.
Хотелось бы видеть на экране мнемосхему всей сети ControlNet, причем не только контроллеров, но и других станций.
Из набора системных тегов RSView32 понятно, что можно диагностировать OPC-соединение с сервером OPC:
system\ComErrorStringOPC (string)
system\ComErrorValueOPC (analog)
system\ComStatusStringOPC (string)
system\ComStatusValueOPC (analog)
Честно говоря, этот путь не очень устраивает, так как фактически мы диагностируем связь с RSLinx.
Как можно решить такую задачу? Что можно(нужно) дописать в контроллере для реализации задачи? Может можно как-нибудь обратиться к Linx, чтобы взять конфигурации сети?
Заранее благодарен,
Vitaliy D. Burtsev
|
Спасибо за ответ. Конечно, оба способа я знаю, но первый способ сразу отпадает как нерациональный, а побитное копирование в начале каждого скана... не знаю, очень много операций прописывать (20битХ40), время скана опять-же, даже если использовать для этого пару XIC-OTE...
Наверно, раньше надо было думать.
Я сейчас уже изменяю тип структуры.
Вопрос в догонку: почему такую адресацию Logix берет:
Metki.Doz[ForNext].Numer_Dozator
а такую не хотит:
Sostav_tekush2[Metki.Doz[Numer_Uspokoi_Doz].Numer_Sostav]
?
При индексации он не берет вложенную индексацию индекса?
|
[quote:b48ddcf42c]Просто странно не использовать одинаковые проекты RSView, например, в одной системе: это проще и обслуживать, и разрабатывать, и исправлять во время наладки, и контролировать версии и т.д. [/quote:b48ddcf42c]
Видите ли, нужно использовать не просто [color=darkblue:b48ddcf42c]одинаковые[/color:b48ddcf42c] проекты RSView, а [color=darkblue:b48ddcf42c]один и тот же[/color:b48ddcf42c] проект RSView, причём не несколько параллельно работающих копий его, а именно один-единственный :) Правда, не RSView32, а RSViewSE, который именно для этого и предназначен.
Видите ли, с тех пор, как стали применяться контроллеры ControlLogix (и lдругие из серии Logix) с мультизадачной операционной системой и динамическим распределением памяти, принципы организации связи систем HMI с контроллерами изменились.
Дело обстоит так, что если просто механически увеличивать количество одновременно работающих на шине проектов HMI, и при этом пренебречь этими соображениями, то производительность системы может пострадать. Проблемой является то, что при проектировании систем с контроллерами серии Logix люди исходят из тех же соображений и принципов посторения систем, которые применялись раньше, с более простыми старыми контроллерами без мультизадачности и динамического распределения памяти, какими были SLC и PLC-5, и всё ещё выпускаются другими производителями. Кроме того, старые сети с низкой скоростью обмена, работащие по принципу "master-slave" и не имеющие CIP и предсказуемого времени доставки, работали по совершенно другим принципам, не обеспечивающим детерминизма в реальном времени. При этом использовался совершенно другой механизм обслуживания рабочих станций.
RSView32 - это достаточно старый продукт, он был создан в эпоху, когда ещё не было ни тэгов в контроллерах, ни динамического распределения памяти, ни самого ControlLogix, ни встроенной мультизадачности, ни прозрачных благодаря CIP детерминированных сетей. RSView32 широко применяется и сейчас для тех случаев, когда нужен all-in-one stand alone продукт, когда количество компьютеров не превышает 2 или применяются старые контроллеры не-Logix.
Но для вновь проектируемых на базе контроллеров Logix систем рекомендуется всё-таки применять не RSView32, а RSViewSE, т.к. даже если в системе предусматривается только один компьютер с HMI, продукт RSViewSE Stand Alone обеспечивает более оптимизированный обмен с контроллерами.
RSViewSE оптимизирована для мультиклиентского применения и строится на (несколько) иных принципах, которые нужно знать и учитывать при проектировании системы. Поэтому при построении системы с нескольими (3 и более) компьютерами, которые собирают данные по OPC, нужно учитывать вполне определённые вещи, от которыъ непосредственно зависит производительность системы.
В соответствии с веянием времени повысились требования к скоростям передачи информации, к реактивности системы, к детерминизму сетей, что непосредственным образом повлияло на идеологию построения рапределённых систем управления. Принципы построения таких систем отличаются от принципов построения систем с "простыми" контроллерами и сетями", их просто нужно знать.
Коротко: если в Вашей системе не 1 и не 2 компьютера, на которых должны работать проекты HMI, обращающиеся к одному и тому же контроллеру ControlLogix, то:
1. Если Ваша система построена на современных кнотроллерах серии Logix, а количество компьютеров, на которых должны работать средства HMI_ больше двух, то применяйте RSViewSE с выделенными (резервированными) серверами вместо RSView32, которая применялась с SLC или PLC-5.
2. Ставьте один или два сервера (если нужнол резервирование) и столько "тонких" клиентов, сколько нужно. Их колмчество неограничено.
3. Пользуйтесь RSLinx Enterprise, встроенным в RSViewSE вместо RSLinx Сlassic, использующегося с RSView32. Он специально предназначен для работы в конфигурациях с контроллерами Logix и мультиклиент-мультисерверной платформой HMI.
4. Если не хотите или не можете использовать RSViewSE, а компьютеров с HMI должно одновременно работать более. чем 2, то применяйте хотя бы RSLinx Gateway на одном (или двух компьютерах, если нужен резерв), а остальные компьютеры "вешайте" на Ethernet у тому. на котором работает RSLinx Gateway.
5. Не пренебрегайте рекомендациями по планированию производительности системы HMI, описанными в документации. И тогда у Вас получатся красивые, надёжные, "прозрачные" и очень быстродействующие системы :)
Вот здесь [u:b48ddcf42c][url=http://vdt-solutions.de/modules.php?name=Forums&file=viewtopic&p=529#529]здесь[/url][/u:b48ddcf42c] я уже привёл несколько важных документов.
|
Предыдущие результаты
Ещё результаты |
|
| |
|