 | |
Предыдущие результаты
[quote:936a2d7b9e="chameleon"]Vad, а каким образом вы записываете значения мин-макс шкал в настройки тренда. У нас для визуализации используется RSView32, в которой отсутствует тренд в объектной модели. Возможно, вы используете RSTrendX или в объектной модели RSViewSE присутствует тренд.[/quote:936a2d7b9e]
В RSViewSE интергрирован RSTrendX со своей объектной моделью, старого компонента из RSView32 больше нет, и это правильно.
Вообще-то, на моем опыте, в RSView32 RSTrendX сильно "тормозил" при инициализации и от его использования пришлось отказаться... да и стандартный компонент тренда вводит станцию в ступор при первом запросе истории длительностью более суток.
RSView32 пользовательские шкалы трендов я сохранял в memory-тегах, в значениях по умолчанию, поэтому они не терялись даже после рестарта проекта, в RSViewSE с ее распределенностью этот подход уже был бы неправильным, и индивидуальные пользовательские шкалы пришлось сохранять в локальную БД на каждой операторской станции.
|
Если объектная модель RSTrendX в RSView32 совпадает с объектной моделью в RSTrendX в RSViewSE - то конечно же можно. Откройте Object Brovser из среды разработки VBA и рассмотрите свойства и методы RSTrendX, в частности - Pens и Pen. МОжно и добавлять и удалять перья и менять их конфигурацию.
Я делал таким образом экраны групповых трендов а-ля Plantscape, где пользовательские данные о перьях сохранялись во внешней БД. При открытии экрана происходит обращение к внешней БД и динамическое добавление перьев согласно сохраненной конфигурации.
|
Vad, а каким образом вы записываете значения мин-макс шкал в настройки тренда. У нас для визуализации используется RSView32, в которой отсутствует тренд в объектной модели. Возможно, вы используете RSTrendX или в объектной модели RSViewSE присутствует тренд.
|
Есть ли возможность обращаться через VBA к свойствам объекта RSTrendX в RSView32 в режиме runtime?
Например: возможно ли программно, через VBA, изменитьимя тэга, привязанного к определенному перу в тренде?
(типа поменять перо 8 тэг Tag8, на перо 8 тег Tag28)
|
[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.
|
Уважаемые коллеги, не совсем понятно, почему в реализации SFC на CL не сбрасываются быты .DN для всех SFC_STEP внутри подпрограммы после выполнения команды SFR? Или их можно сбрасывать только персонально-принудительно?
В одном шаге SFC_STEP все SFC_ACTION (типы N и P) выполняются за один скан, или каждый новый Action выполняется на каждом новом скане?
Вот пример кода:
[img:dfd3a4f0c9]http://vdt-automation.com.ua/modules/ImageUp/uploads/Vad/SFC_code.GIF[/img:dfd3a4f0c9]
Приходится принудительно сбрасывать биты .DN на начальном шаге.
Будут ли действия P1_Step_1_Action_1,2,3,4,5 выполняться за один скан, или каждое действие на новом скане?
|
Vad, спасибо большое за информацию!
Репликация серверов - это очень нужное дело, до этого нужно было копировать вручную или использовать посторонний софт :)
Резервирование RSSql/Historian - да, на самом деле, с помощью кластера всё решается. Хорошо, что есть подтверждение, практический опыт, т.к. на этом обычно стараются сэкономить, а зря.
|
Несколько часов назад имел честь общаться по телефону с 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.
|
[quote:96babd4744="Vad"]:-) Хорошо, допустим следующее: Указываем для каждой установки свою FT-директорию, расположенную, скажем, на Primary HMI-сервере данной установки. Теперь мы будем вынуждены для каждой установки выделить не только отдельный сервер для RSSQL, но и инженерную станцию со своей лицензией на RSView Studio - ведь в один момент времени FT-директория может указывать на один FT-сервер и для его смены потребуется рестарт компьютера.
Если у Вас крупное предприятие с приличным количеством установок, то издержки на эксплуатацию серьезно увеличиваются. С одной инженерной станции нельзя будет открыть в один момент времени более одного проекта. Также затруднительно будет разместить такое количество системных блоков в одном помещении, чтобы организовать круглосуточную вахту.
Для супервайзеров вроде технического директора прийдется городить отдельный HMI-проект, чтобы предоставить доступ к данным более чем одной установки. Обладают ли RSSQL/RSHistorian достаточно выразительным графическим интерфейсом для этого?[/quote:96babd4744]
В общей физической сетевой структуре предприятия могут сосуществовать несколько распределённых аппликаций:
[quote:96babd4744]
Multiple distributed applications, multiple Network Directory
computers
A network can also contain more than one computer running the FactoryTalk Network Directory software. This is useful to run multiple distributed applications that:
- are separated by a slow network, for example a wide-area network (WAN).
To do this, set up one Network Directory at each site on either side of the WAN.
- do not need to share data with each other.
Each computer on the network can connect to only one computer running the FactoryTalk
Network Directory software. You cannot connect a single computer to multiple FactoryTalk
Directory servers.
[/quote:96babd4744]
Если уж у главного инженера нужно обязательно крутить одновременно несколько клиентов от разных аппликаций, ну можно поставить ему несколько компьютеров. Но я, откровенно говоря, не думаю, чтобы ему это было так уж необходимо, он же не мастер и не начальник цеха. Или я чего-то не понимаю?
|
[quote:ec4ed616c8="Eraser"]А для Блокнота отдельная машина не нужна? А для Калькулятора?
Вопрос в том, что делать, если упадет машина с RSSQL ?[/quote:ec4ed616c8]
:lol: ну я бы не стал путать RSSQL с калькулятором.. хотябы по тому количеству памяти, которую "съедает" MS SQL Server после установки...
А делать надо то же, что и при падении машины с HMI-сервером - поднимать побыстрее... :wink:
А если серьезно - вопрос не праздный, потому как резервировать RSSQL/RShistorian тоже надо.. возможно там настраивается какая-нибудь репликация...
|
Предыдущие результаты
Ещё результаты |
|
| |
|