 | |
Предыдущие результаты
[quote:1981b2925c="oldDad"]Можно написать и не только это, подключив любые библиотеки. Если какие-нибудь библиотеки и нельзя подключить, то можно написать такой код и подключить такие библиотеки, которые позволят подключить библиотеки, которые до этого нельзя было подключить :)
Можно ещё много чего написать, хоть всю SCADA полностью, с любыми функциями, библиотеками и с любой функциональностью.
При этом, правда, возникает вопрос: а что будет, если написавший сей уникальный и неповторимый продукт программер уволится или переквалифицируется в десантники, или эмигрирует, к примеру, в Австралию? Как тогда быть бедному клиенту, ставшему объектом для программистских экспериментов и ставшему счастливым обладателем уникального know-how, существующего у него в компьютере? Кто будет отлаживать или сопровождать этот уникально написанный продукт? Сможет ли он вообще и будет ли разобираться в этих кодах? Вряд ли.
Тяжелый вопрос. Клиента таким образом можно хор-рошо подставить, оставив его один на один с непонятно кем и когда написанным кодом. Представляю, как он будет потом "благодарен" и какими ласковыми словами будет крыть и программиста, написавшего "За отсутвие кометариев извиняйте" и канувшего в Лету, и фирму-подрядчика, и совершенно к этим негуманным экспериментам непричастный и ни в чём неповинный продукт RSView, и саму компанию Rockwell.
И будет прав. Стандартные продукты есть стандартные продукты, они документированы, отлажены, и за ними стоит крупная корпорация, отвечающая за их предсказуемую функциональность.[/quote:1981b2925c]
На 100% согласен. Уникальность это очень плохо в нашем деле, особенно в SCADA.
|
Можно написать и не только это, подключив любые библиотеки. Если какие-нибудь библиотеки и нельзя подключить, то можно написать такой код и подклчить такие бибиотеки, которые позволят подключить библиотеки, которые до этого нельзя было подключить :)
Можно ещё много чего написать, хоть всю SCADA полностью, с любыми функциями, библиотеками и с любой функциональностью.
При этом, правда, возникает вопрос: а что будет, если написавший сей уникальный и неповторимый продукт программер уволится или переквалифицируется в десантники, или эмигрирует, к примеру, в Австралию? Как тогда быть бедному клиенту, ставшему объектом для программистских экспериментов и ставшему счастливым обладателем уникального know-how, существующего у него в компьютере? Кто будет отлаживать или сопровождать этот уникально написанный продукт? Сможет ли он вообще и будет ли разобираться в этих кодах? Вряд ли.
Тяжелый вопрос. Клиента таким образом можно хор-рошо подставить, оставив его один на один с непонятно кем и когда написанным кодом. Представляю, как он будет потом "благодарен" и какими ласковыми словами будет крыть и программиста, написавшего "За отсутвие кометариев извиняйте" и канувшего в Лету, и фирму-подрядчика, и совершенно к этим негуманным экспериментам непричастный и ни в чём неповинный продукт RSView, и саму компанию Rockwell.
И будет прав. Стандартные продукты есть стандартные продукты, они документированы, отлажены, и за ними стоит крупная корпорация, отвечающая за их предсказуемую функциональность.
[b:2246b815b8]and123[/b:2246b815b8],
Дружеский совет, касающийся Вашего абзаца, который я вырезал: не надо писать того, чего писать не надо. ОК? Готов ответить на все вопросы, заданные в личном сообщении.
|
SpellBinder_у отвечаю про <в сотни раз> смотрите в коде
w := GetTickCount; в начале и
main.Label1.Caption := FloatToStr((GetTickCount - w) / 1000); вконце процедуры.Я не зря упражнялся с этим w. Попробуйте сами обработать Value_:=Value для
with TDb.GetTag(AFNameList.Strings[i]) на VB и Delphi напрмер для Tags.Count=1000 и почувствуйте разницу, а если Вы еще захотите попробовать и вложенный цикл, где то по тксту if err <> 0 then //если уставка не string_число, а указатель на тэг
with TDb.GetTag(Value) do begin, подискутируем.
|
Забыл еще функцию
Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
А саму функцию можно сделать отдельную, те без окна и кнопки
а значения соответсвующие label1 и 2 передавать двум строковым тэгам
проекта = gTagDb.GetTag("string1").Value
= gTagDb.GetTag("string2").Value
|
Уважаемый BigBug. Язык, если я правильно понимаю раскладка клавиатуры на АРМ переключается независимо ни от чего, тоесть не важно какая запущена скада. другое дело как это увидеть. Предлагаю в VBA написать процедуру.
В модуле скрипта надо обьявить API функцию
Declare Function GetKeyboardLayoutName Lib "user32" Alias "GetKeyboardLayoutNameA" (ByVal pwszKLID As String) As Long
А сама процедура для нажатия клавиши на какой нибудь форме(сделайте какуюнибудь форму в VBA)
Private Sub Button1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim layoutname As String * KL_NAMELENGTH
Dim capslock
Dim dl&
dl& = GetKeyboardLayoutName(layoutname)
capslock = GetKeyState(VK_CAPITAL)
If layoutname = EN_LANG Then
If capslock And 1 Then
Label1.Caption = "EN"
Label2.Caption = "Caps Lock"
Else
Label1.Caption = "en"
Label2.Caption = ""
End If
ElseIf layoutname = RU_LANG Then
If capslock And 1 Then
Label1.Caption = "RU"
Labe2.Caption = "Caps Lock"
Else
Label1.Caption = "ru"
Label2.Caption = ""
End If
Else: Label1.Caption = "??"
End If
End Sub
|
[quote:e7e8b2c7bc="AlexV"]
...Skip...
Так что, в принципе, всё это реализуемо средствами RSView32 без особых трудностей...[/quote:e7e8b2c7bc]
Не верю про "без особых трудностей" (см. область Skip в оригинальном письме).
[quote:e7e8b2c7bc="AlexV"]...ну и практически все написанное в SE может делаться точно также, но боюсь, все на языковый Action не навесишь[/quote:e7e8b2c7bc]
Что понимать под "точно также"?
В SE версии 5 все языковые желания штатная функция, в версии 4 только Alarm одноязычный, остальное как требуется.
Начиная с [b:e7e8b2c7bc]CPR7+[/b:e7e8b2c7bc] многоязычность делается очень легко.
Когда наш клиент захотел украинский, наша самая большая трудность была в переводе, но нашелся парень, который в XLS файле написал украинский текст.
Забавно получилось:
рубашка двигателя - [b:e7e8b2c7bc]сорочка [/b:e7e8b2c7bc]двигуна
|
Кроме связки VBA и базы Access начиная с RSView32 7.30 в системе команд есть ещё пара штучек:
[quote:336edcd786]Language Tags Substitution utility is now available in RSView®32. Two commands LInsertStringTag and LTagSubstitute are added to allow users to create a spreadsheet of string tag values in different languages and to select the values in a particular language for the tags during runtime.[/quote:336edcd786]
И это всё. Увы, RSView32 - это очень старый продукт. Он не рекомендуется для вновь создаваемых систем. Переключение языков есть только в более новом RSViewSE aka FTViewSE.
Самое мудрое - это отговорить Вашего клиента от ошибки, которую он совершает, настаивая на устаревшем продукте и уговорить его на FTViewSE, преимущества которого очевидны.
|
KB - Это Knowledge Base:
http://www.rockwellautomation.com/knowledgebase/?OpenForm
|
Доброе время суток!
Столкнулся со следующей задачей. Во-первых, заказчик хочет, чтобы в качестве SCADA использовалась RSView32 и ни что другое. Во-вторых, требуется, чтобы во время работы системы можно было бы переключать языки. Как минимум английский и русский, а по возможности еще и немецкий.
Как оказалось, какого-либо стандартного решения этой задачи в RSView32 нет. В следующих продвинутых версиях вроде Factory Talk для этой цели есть специальный action – “Language”. В RSView32 его нет. Можно довольно просто менять содержимое string-тегов, но это не решает проблему полностью. Многие графические элементы имеют свойства, к которым не добраться через теги, напр., текст на кнопках, окне тревог, трендах и т.д.
Если кто сталкивался с подобной проблемой, или есть идеи, как ее решить, чиркните, пожалуйста. Буду премного благодарен.
|
Спасибо за проявленный интерес к теме.
Интерфейс модели RSView32 находится в библиотеке C:\Program Files\Rockwell
Software\RSView\ROI32.dll. Сама она связана с множеством dll и exe.
Но это не важно. К самой этой модели можно обращаться через
модуль интерфейса RSView32_TLB, объявленный в проекте Delphi. Прикрепляю
исходник, над которым сейчас работаю. Это некое консольное приложение
в виде верхней панели, работающей параллельно проекту RSView32. Смысл
создать универсальную оболочку, включающую много универсальных
функций, для стандартного проекта. Делаю я это чтобы не потерять
спортивную форму и не засохли мозги в кризисное время. С работой
сейчас напряженка... Оставляю за собой авторское право, извините.
Прошу учесть что все это еще сыро и не отработано до коца. Но
для нетерпеливых сам проект Delphi по ссылке http://www.filehoster.ru/files/ct2425
соответсвующий ему проект rsview32 http://www.filehoster.ru/files/ct2424
|
Предыдущие результаты
Ещё результаты |
|
| |
|