 | |
Предыдущие результаты
Я подключиль к 1762-IF4 датчик температуры чтобы снять значения. На датчике показывает температуру 27.2 С, а программа другое значение показывает.
Как быть?
[URL=http://piccy.info/view3/342173/4a4a7a4cfdd5053e1eb085d369a6f273/1200/][img:f3751d2cc8]http://i.piccy.info/i5/73/21/342173/test_800.jpg[/img:f3751d2cc8][/URL]
|
[URL=http://piccy.info/view3/342173/4a4a7a4cfdd5053e1eb085d369a6f273/][img:5649bf405a]http://i.piccy.info/i5/73/21/342173/test_240.jpg[/img:5649bf405a][/URL]
|
[b:b4f2c1d6f6]Update[/b:b4f2c1d6f6]
Уточнили: ни 1785-PFB, ни SST-PFB-PLC5 больше не выпускаются и не поставляются более 10 лет.
Что вы будете делать, если 1785-PFB откажет? Я бы очень хорошо подумал над тем, чтобы заменить в этом контроллере ProfiBus на, например, DeviceNet, Ethernet или СontrolNet, а то и весь PLC-5 на другой контроллер, например, на CompactLogix.
|
Какой именно у вас модуль MVI56 (какой протокол) ?
судя по MCM.ModDef скорее всего MVI56-MCM
обратите внимание на значения следующих тэгов
MCM.ModDef.ReadStartReg по умолчанию в примере стоит 600 - это смещение внутренней адресации
соответственно, чтобы увидеть данные в MCM.ReadData[0] нужно в конфигурации команды прописать
MCM.P1Cmd[0].IntAddress = 600
|
Прежде всего, хотелось бы отметить, что у Вас очень, очень старая система. Я бы не рекомендовал вмешиваться в неё. Модуль 1785-PFB уже лет 15 не выпускается, вместо него ещё можно попробовать добыть его усовершенствованный и полностью совместимый пототип - модуль SST-PFB-PLC5, который тоже уже устарел. Не знаю, поставляется ли он ещё. Возможно, было бы проще и дешевле сделать то, что вы хотите, на новом контроллере. Знаете, как говорят: "don't touch a running system".
К вашему вопросу: документации на 1785-PFB уже нигде не осталось, а судя по SST-PFB-PLC5 максимальный объём данных, которыми сопросоцессор-мастер обменивается со своими slaves, составляет 244 байта в обоих направлениях, (ввод + вывод). Структура данных описывается в каждом из устройств slave, причём банные делятся на блоки по 16 байт.
А что именно Вы собираетесь реализовать? Может быть, мы сможем подсказать Вам более современное решение (и, как правило, более дешёвое)?
|
опять напоролись на закрытый ответ (с припиской только для уровня 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: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
|
[quote:c90bdaeef4="Vasiliy"]Добрый день! При создании проекта возникает ошибка: [b:c90bdaeef4]Project Creation: Cannot access a component in the framework.[/b:c90bdaeef4] Внизу в логере пишет: [b:c90bdaeef4]Out of service. The server RNA://.............. is not currently available on any computer.[/b:c90bdaeef4]
Извиняюсь если этот вопрос гдето уже обсуждался, но я не нашел. Помогите пожалуйста.[/quote:c90bdaeef4]
На какой Windows ставилось? RU или EN.
Как ставить на RU здесь действительно уже было и не один раз.
Смотри настройки в Factory Talk Directory (The server RNA://.............. is not...).
Про [b:c90bdaeef4]framework [/b:c90bdaeef4]уже к MS.
oldDad, наверно это надо выложить справа нулевым пунктом, как ставить на RU.
|
Предыдущие результаты
Ещё результаты |
|
| |
|