Author |
Message |
Written on: 22. 11. 2010 [13:05]
|
Budy
Andrew Borinov
Topic creator
registered since: 22.11.2010
Posts: 5
|
:Приветствую
Я написал программу в Twincat PLC Control, залил на ПЛК Beckhoff BC9000 (он поддерживает ModBus TCP). Пытаюсь делать по инструкции - добавил исходящий транспорт (os01.jpg), создал описание ПЛК, а вот как правильно прописать атрибут? Я понимаю, что я указал неправильно (os02.jpg).
Когда сам контроллер запускаю, то он выдает ошибку подключения (os03.jpg). Если запускать контроллер без параметра, то ошибки нет. Понятно, что ошибка в самом параметре, а точнее в "Перечне атрибутов".
Собсно вопрос, как именно описывать этот перечень и как я в этом перечне могу указать мои переменные из программы на ПЛК?
p.s.QuickStart разобрал, работает изюмительно. А с железкой связать не могу.
p.s.s.Сам впервые работаю с контроллерами.
Attachment
os01.jpg (File type: image/jpeg, Size: 138.88 kilobytes) — 2571 downloads
os02.jpg (File type: image/jpeg, Size: 138.31 kilobytes) — 2549 downloads
os03.jpg (File type: image/jpeg, Size: 161.6 kilobytes) — 2581 downloads
|
Written on: 22. 11. 2010 [13:44]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
"Budy" wrote:
Я написал программу в Twincat PLC Control, залил на ПЛК Beckhoff BC9000 (он поддерживает ModBus TCP). Пытаюсь делать по инструкции - добавил исходящий транспорт (os01.jpg), создал описание ПЛК, а вот как правильно прописать атрибут? Я понимаю, что я указал неправильно (os02.jpg).
Всплывающую подсказку изучайте.
Learn, learn and learn better than work, work and work.
|
Written on: 22. 11. 2010 [13:59]
|
Budy
Andrew Borinov
Topic creator
registered since: 22.11.2010
Posts: 5
|
"roman" wrote:
Всплывающую подсказку изучайте.
Уважаемый Hacker roman,
Я не понимаю, как мне указать первые два параметра dt и numb. Как можно узнать, что такое регистр/бит/регистр входа/бит входа. И как определить numb (адрес ModBus устройства), который нужно указать?
Как я смогу их узнать, исходя от моей программы на ПЛК?
|
Written on: 22. 11. 2010 [14:15]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
"Budy" wrote:
Я не понимаю, как мне указать первые два параметра dt и numb. Как можно узнать, что такое регистр/бит/регистр входа/бит входа. И как определить numb (адрес ModBus устройства), который нужно указать?
Как я смогу их узнать, исходя от моей программы на ПЛК?
Изучайте протокол ModBus вообще и документацию на Ваш контроллер в частности, где должно быть указано, что и по каким регистрам он раскладывает.
Learn, learn and learn better than work, work and work.
|
Written on: 23. 11. 2010 [13:15]
|
Budy
Andrew Borinov
Topic creator
registered since: 22.11.2010
Posts: 5
|
"roman" wrote:
"Budy" wrote:
Я не понимаю, как мне указать первые два параметра dt и numb. Как можно узнать, что такое регистр/бит/регистр входа/бит входа. И как определить numb (адрес ModBus устройства), который нужно указать?
Как я смогу их узнать, исходя от моей программы на ПЛК?
Изучайте протокол ModBus вообще и документацию на Ваш контроллер в частности, где должно быть указано, что и по каким регистрам он раскладывает.
Спасибо за предложение, я порылся и кое-что нашел (может кому поможет):
В ПЛК используется два массива обмена регистрами - входной и выходной. Оба массива состоят из линейки байтов и обращение к ним происходит по номеру байта. В ПЛК Beckhoff по умолчанию программные IO регистры начинаются с 128го байта (можно сменить в System manager). По этому пишем в программе ПЛК: "%QW128 := 123;" и читаем в OSCADA параметр "R:0:r:val1:Value 1". Предварительно необходимо в описании ПЛК (в System manager) описать Inputs и Outputs.
Единственное, на чем остановился - не могу записать в ПЛК из OSCADA :(
|
Written on: 23. 11. 2010 [16:00]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
"Budy" wrote:
Единственное, на чем остановился - не могу записать в ПЛК из OSCADA :(
Продолжаем читать.
Learn, learn and learn better than work, work and work.
|
Written on: 24. 11. 2010 [19:08]
|
Budy
Andrew Borinov
Topic creator
registered since: 22.11.2010
Posts: 5
|
Вот, дочитал:
В BC9100 не существует Input-byte массива для обмена. Существует область энергонезависимой памяти (0x4000..0x47FF), которую можно представить переменными %MW0, %MB0, %MX0.0 и так далее.
Собсно в OSCADA это будет выглядить как:
R:0x4000:rw:var:Variable
Кстате, удалось достичь результата опытным путем - я скачал компоненту ModBus TCP для Delphi и прогнал все порты влодь до 65535 :) Ну и не без мануалов конечно.
p.s.OSCADA - Must live!
[This article was edited 1 times, at last 24.11.2010 at 19:10.]
|