 | |
Предыдущие результаты
опять напоролись на закрытый ответ (с припиской только для уровня TechConnect). плз, дайте инфу, а то не получается подружить excel c rsviewse.
42049 - How to Use Excel as DDE Server and FactoryTalk View SE as DDE Client
([url]http://rockwellautomation.custhelp.com/app/answers/detail/a_id/42049[/url])
неужели никто из тех, кто имеет уровень TechConnect не читает этот форум? ;)
или.. никто не желает мне ответить?
Уфф.. ладно.. если уж так, то может хоть кто-то расскажет, как правильно связать РсвьюСе с Екселем через DDE? Делаю все по хелпу - ничего не получается, не приходят значения.
|
[quote:385a1e1f18="dv_"]
[b:385a1e1f18]LINT[/b:385a1e1f18] преобразуется в два последовательных [b:385a1e1f18]DINT[/b:385a1e1f18].
Многое остальное найдешь, см.:
http://samplecode.rockwellautomation.com/idc/groups/public/documents/webassets/sc_home_page.hcst[/quote:385a1e1f18]
Благодарю за ссылку.
|
[quote:5bf646f1bb="dv_"]
Какие правки нужны?
[/quote:5bf646f1bb]
Речь идет о макросах VBA, создаваемых на объектной модели RSLogix.
Вот пример кода макроса:
[code:1:5bf646f1bb]Public Sub Build_LAD2()
Dim Count As Integer
Dim FileName As String
Dim LadFile2 As LadderFile
Dim LadFile As LadderFile
Set ProgFiles = Application.GetActiveProject.ProgramFiles
' Чтение главного файла программы
Set LadFile2 = ProgFiles.Item(2)
Dim RungCount As Integer
FileName = LadFile2.name
RungCount = LadFile2.NumberOfRungs()
' Удаление всех рангов в главном файле
Dim res As Boolean
Do
res = LadFile2.RemoveRung(0)
If (res = False) Then
Exit Do
End If
Loop
' По всем файлам, начиная с №3
Dim LadCount As Integer
Dim DstRung As Integer
LadCount = ProgFiles.Count
DstRung = 0
For Count = 3 To LadCount
Set LadFile = ProgFiles.Item(Count)
' если файл существует
If Not LadFile Is Nothing Then
' если файл используется
If LadFile.InUse Then
Dim FileNum As Integer
Dim NumOfRungs As Integer
Dim RungString As String
NumOfRungs = LadFile.NumberOfRungs
' если файл не пустой
If (NumOfRungs > 1) Then
FileNum = LadFile.FileNumber
If (FileNum <= 100) Then
' Команда вызова LAD файла
RungString = "JSR" + " " + CStr(FileNum)
res = LadFile2.InsertRungAsAscii(DstRung, RungString)
DstRung = DstRung + 1
End If
End If
End If
End If
Next
End Sub
[/code:1:5bf646f1bb]
Макрос генерирует в файле LAD2 вызовы (JSR) всех остальных файлов проекта. Отсутствующие файлы и файлы с одним рангом <END> не учитываются. Учитываются файлы с №3 по №100. В файлах с №№ > 100 я размещаю подпрограммы-функции, которые централизованно вызывать не надо.
Вот такие макросы и хотелось бы объявить/описать один раз для всех проектов.
|
[quote:02517b70fc="oldDad"]Да выложено. Нужно только чуть-чуть поискать:
http://vdt-automation.com.ua/modules.php?name=Forums&file=viewtopic&t=33[/quote:02517b70fc]
Там только про администратора, у меня с этим проблем не было.
Спрашивается где было:
C:\Documents and Settings\All Users\[color=red:02517b70fc]Документы[/color:02517b70fc] - исходное
C:\Documents and Settings\All Users\[color=green:02517b70fc]Documents[/color:02517b70fc] - нужное (можно и в лругое место).
А, также настройки в реестре для [b:02517b70fc]Default User[/b:02517b70fc],
все это тоже было, включая содержимое [b:02517b70fc]bat[/b:02517b70fc] файла для ленивых.
Можно даже на Windows Server с контроллером домена, Rockwell настоятельно не рекоментует, но работает.
|
[quote:e1d32899cf="maxim"]Однако столкнулся с проблемой: текущее время ложится в переменную с типом LINT и не скопировать не сконвертировать в другой тип я не могу, а мне нужно чуть отредактировать значение.[/quote:e1d32899cf]
[b:e1d32899cf]LINT[/b:e1d32899cf] преобразуется в два последовательных [b:e1d32899cf]DINT[/b:e1d32899cf].
Многое остальное найдешь, см.:
http://samplecode.rockwellautomation.com/idc/groups/public/documents/webassets/sc_home_page.hcst
|
Ура товарищи!
Василиса Премудрая была права, когда говорила, что утро вечера мудренее.
Если кому-то интересно, привожу кусок скрипта на VB
[code:1:7bf119947e]
' Объявляем необходимые переменные
Dim tagnames As StringList
Dim dlmodel As DataLogModel
' Ассоциируем объект типа datalogmodel с нужным нам даталогом
Set dlmodel = gDataLog.DataLogModels.Item("datalogmodel_name")
' Заталкиваем в стринглист значения следующего свойства и все список тегов у нас в кармане, теперь на его основе можно клепать автоматические запросы к базе SQL просто перебирая список.
Set tagnames = dlmodel.DataLogModelCfg.TagsInModel
[/code:1:7bf119947e]
Истина всегда где-то рядом, до нее нужно только докопаться)
Да, 2 OldDad, +1 за отличную ссылку, повешу над столом, пусть согревает душу холодными вечерами.
|
Для доступа к DataLogModels из VB смотрите KB по ключевым словам:
[color=darkblue:2ff8601f7a]rsview32 object model diagram[/color:2ff8601f7a]
http://rockwellautomation-emea.custhelp.com/ci/fattach/get/10803/1187973333
|
Сдя по состоянию Ваших светодиодов, ситуация выглядит так:
[u:87ee6e9f06]OK Green[/u:87ee6e9f06]: The module is operating normally.
[u:87ee6e9f06]BP ACT Amber On[/u:87ee6e9f06]: The LED is on when the module is able to
communicate over the backplane.
[u:87ee6e9f06]APP STATUS Amber On[/u:87ee6e9f06]: Configuration Error: This LED is illuminated when the PROFIBUS and module CRC values do not match between input/output blocks. Verify that the values match the values generated with the Calculate Checksums button in ProSoft Configuration Builder. If they do not match, you must manually change the values at the appropriate address locations listed in the Input and Output block definitions in this manual.
Вывод: смотрите конфигурацию.
|
откопалась еще одна бага - на сей раз в VBA (так что к RSView32 относится косвенно)
операция побитового И не работает с числами более 2^30 - выдает overflow
[b:402b2ef6b9]пример:[/b:402b2ef6b9]
[code:1:402b2ef6b9]a = 32768 And 2147483648[/code:1:402b2ef6b9]
и какой бы тип не задавать "а" и как бы не специфицировать числа (?, # и т.д.) - все равно overflow :(
пришлось сделать на си dll и из нее дергать функцию для преобразования двух INT dj Float (IEEE 754)
подобная бага в нете встретилась и для оперfтора [color=blue:402b2ef6b9]Mod[/color:402b2ef6b9]
|
Да,заказной номер есть.
А сколько лицензий я не знаю.
Как это можно определить?
На задней части написано:
Order #:
Catalog #:
Automation Tk Full Yr, 5-install, 8-5 St.
Registered to:
А внутри папки имееться вкладыш, в котором написано:
Serial number:
Revision:
Product key:
License type: CONCURRENT
Life Term: Expiring
End Date: 01/31/2011
|
Предыдущие результаты
Ещё результаты |
|
| |
|