 | |
Предыдущие результаты
[quote:60bf3fa06e="dany"] хотя с DDE попробовать конечно можно, но времяни маловато, именно это я и искал[/quote:60bf3fa06e]
См. в личке
|
просто дам ссылку на документ о продукции одной известной компании, может наведет на какие-то мысли.
[url]http://www.industrialnetworking.com/pdf/BAT_Antenna_Guide.pdf[/url]
хотя, конечно, проложенный кабель будет гораздо надежнее.. до первого экскаватора :)
|
SpellBinder
В настоящий момент код вызывается из RS View хотя с DDE попробовать конечно можно, но времяни маловато, если у вас есть желание описать, то я был бы очень признателен. или ссылочку 8O
Eraser
Вам отдельное спасибо за код
[code:1:cf3841e47a]
gTagDb.GetTag("Various_from_HMI\HMI_Coilpar_Indiv"+Cstr(i)+"inverted") = VL(i)
[/code:1:cf3841e47a]
именно это я и искал
|
Конечно есть. Вот, например: [url=http://literature.rockwellautomation.com/idc/groups/literature/documents/in/cnet-in001_-en-p.pdf]ControlNet Fiber Media Planning and Installation Guide[/url]
Но кто мешает проложить самую обычную оптику с самым обычным Ethernet'ом? Для этого не нужно никаких специальных Rockwell'овских решений, а просто контроллеры с обычным Ethernet и пару адаптеров для оптики.
|
может так:
[code:1:3f98bc706b]For lokL = 0 To Z
'Здесь проверяйте, есть ли значение в той ячейке, которую вы собираетесь считать
if mySheet.Cells(lokL + 23, L).Value <> 0 'или какое там вам нужно условие
then VL(lokL) = mySheet.Cells(lokL + 23, L).Value
endif
Next lokL[/code:1:3f98bc706b]
так у вас в массиве будет только непустые значения, ну а затем уже присваиваете.
НО, если вам нужно что бы каждый элемент массива был точно на своем обычном месте, то тогда проверку можно делать перед присваиванием, и при этом старые значения не потеряются:
[code:1:3f98bc706b]if VL(0) <>0 then gTagDb.GetTag("Various_from_HMI\HMI_Coilpar_Indiv0inverted") = VL(0)
endif[/code:1:3f98bc706b]
а вообще присваивание тоже можно и нужно делать в цикле
[code:1:3f98bc706b]for i =0 to 9
gTagDb.GetTag("Various_from_HMI\HMI_Coilpar_Indiv"+Cstr(i)+"inverted") = VL(i)
next i[/code:1:3f98bc706b]
|
[quote:6d010c70aa="dany"][color=red:6d010c70aa]gTagDb.GetTag("Various_from_HMI\HMI_Coilpar_Indiv0coil_number") = K(0) [/color:6d010c70aa]это выражение прописывает тег как в RS VIEW так и в контроллере.
[/code][/quote:6d010c70aa]
Нужно организовать обмен из Excel в контроллер, используйте DDE обмен и через RSLinx.
|
я и считываю только те клетки в таблице которые со значениями, проблема дальше в присвоении этих значений глобалным тегм
[color=red:b227d3f00c]gTagDb.GetTag("Various_from_HMI\HMI_Coilpar_Indiv0coil_number") = K(0) [/color:b227d3f00c]это выражение прописывает тег как в RS VIEW так и в контроллере.
задача чтоб в контроллер были прописаны например:
в первом случае 2 первых тега из возможных 10
во втором 4 первых тега из возможных 10
а в третьем все 10 из 10
вот код проги, может тоже внесет какую то ясность
[code:1:b227d3f00c]Sub read_2()
Dim myExcel As Excel.Application
Dim myWorkbook As Excel.Workbook
Dim mySheet As Excel.Worksheet
Dim L As Integer
Dim VL(0 To 300) As Variant
L = 12
Dim Z
Z = gTagDb.GetTag("Various_from_HMI\HMI_Coilpar_Common_disc_count") - 1
On Error GoTo exit_handler
Set myExcel = New Excel.Application
Set myWorkbook = myExcel.Workbooks.Open("E:\TEST.xls")
Set mySheet = myWorkbook.Sheets("Tab")
For lokL = 0 To Z
VL(lokL) = mySheet.Cells(lokL + 23, L).Value
Next lokL
gTagDb.GetTag("Various_from_HMI\HMI_Coilpar_Indiv0inverted") = VL(0)
gTagDb.GetTag("Various_from_HMI\HMI_Coilpar_Indiv1inverted") = VL(1)
gTagDb.GetTag("Various_from_HMI\HMI_Coilpar_Indiv2inverted") = VL(2)
gTagDb.GetTag("Various_from_HMI\HMI_Coilpar_Indiv3inverted") = VL(3)
gTagDb.GetTag("Various_from_HMI\HMI_Coilpar_Indiv4inverted") = VL(4)
gTagDb.GetTag("Various_from_HMI\HMI_Coilpar_Indiv5inverted") = VL(5)
gTagDb.GetTag("Various_from_HMI\HMI_Coilpar_Indiv6inverted") = VL(6)
gTagDb.GetTag("Various_from_HMI\HMI_Coilpar_Indiv7inverted") = VL(7)
gTagDb.GetTag("Various_from_HMI\HMI_Coilpar_Indiv8inverted") = VL(8)
gTagDb.GetTag("Various_from_HMI\HMI_Coilpar_Indiv9inverted") = VL(9)
exit_handler:
On Error Resume Next:
myWorkbook.Close
myExcel.Quit
Set mySheet = Nothing
Set myWorkbook = Nothing
Set myExcel = Nothing
End Sub
[/code:1:b227d3f00c]
|
Кассета - Ваш случай?
http://literature.rockwellautomation.com/idc/groups/literature/documents/pm/20d-pm001_-en-p.pdf
Chapter 3
http://vdt-automation.de/docs/20d-um006f-en-p.pdf
Chapter 4
|
http://s018.radikal.ru/i523/1207/de/4ef4d2b62dfb.jpg
http://s015.radikal.ru/i333/1207/82/bdbc32e0d888.jpg
http://s018.radikal.ru/i502/1207/29/fe9c9cc9b2e0.jpg
http://i024.radikal.ru/1207/52/d1e6d3570cc2.jpg
PowerFlex 700 User Manual, publication 20B-UM002 и um001
параметр 156 start inhibits, есть единица:
http://i003.radikal.ru/1207/96/59c4763e6881.jpg
|
Извиняюсь, в предыдущий раз создал тему не в том разделе форума. Сейчас разобрался.
В составе системы управления имеются:
PLC CPU 1756-L61
Communication module to KINETIX 1756-M08SE (Sercos)
Axis modul of KINETIX 2094-AC32-M05-S
Motor (with internal encoder SRM) MPL-A560F-M
Auxiliary Feedback encoder SICK Stegmann SRM25-5-F10S-5A, Ident.-N7102352
Модуль LIM 2094-AL75S
За положение всей машины отвечает ось Auxiliary - круглая, 360градусов на оборот.
Если машину остановить в исходном положении, то в нормальной ситуации координата оси будет 358 градусов. При этом, если машину выключить, а потом включить, то координата часто изменяется в пределах примерно от 285 до 35 градусов. При этом и тэг Stegmenn.ActualPosition и тэг MAIN_DRIVE.ActualPosition изменить нельзя – имеют статус «только чтение».
Поскольку энкодер абсолютный, и координата машины берется напрямую из тега Stegmenn.ActualPosition, то в первую очередь, из предположения неисправности энкодера, был заменен энкодер на канале Aux. Однако, проблема никуда не делась. Затем были заменены последовательно на новые:
- модуль 2094-AC32-M05-S;
- кабель к Auxiliary энкодеру;
- LIM модуль 2094-AL75S;
Проблема сохранилась. Машина работает уже несколько лет, а неисправность проявляет себя лишь несколько месяцев.
Вопросы:
1. Из-за чего может меняться координата неподвижного абсолютного энкодера?
2. Может ли влиять на показания энкодара Aux-оси канал энкодера главного двигателя (он тоже на момент включения неподвижен)? Если может, то как?
3. Что можно предпринять в качестве корректирующи мер?
|
Предыдущие результаты
Ещё результаты |
|
| |
|