УкраїнськаEnglishmRussian
Вход/Новый
В теме нет новых постов

ModBux TCP trouble


Автор Сообщение
Сообщение создано: 22. 11. 2010 [13:05]
Budy
Andrew Borinov
Создатель темы
Зарегистрирован(а) с: 22.11.2010
Сообщения: 5
:Приветствую
Я написал программу в Twincat PLC Control, залил на ПЛК Beckhoff BC9000 (он поддерживает ModBus TCP). Пытаюсь делать по инструкции - добавил исходящий транспорт (os01.jpg), создал описание ПЛК, а вот как правильно прописать атрибут? Я понимаю, что я указал неправильно (os02.jpg).
Когда сам контроллер запускаю, то он выдает ошибку подключения (os03.jpg). Если запускать контроллер без параметра, то ошибки нет. Понятно, что ошибка в самом параметре, а точнее в "Перечне атрибутов".
Собсно вопрос, как именно описывать этот перечень и как я в этом перечне могу указать мои переменные из программы на ПЛК?
p.s.QuickStart разобрал, работает изюмительно. А с железкой связать не могу.
p.s.s.Сам впервые работаю с контроллерами.
Вложенный файл

os01.jpg (Тип файла: image/jpeg, Размер: 138.88 килобайт) — 2526 загрузок
os02.jpg (Тип файла: image/jpeg, Размер: 138.31 килобайт) — 2507 загрузок
os03.jpg (Тип файла: image/jpeg, Размер: 161.6 килобайт) — 2538 загрузок
Сообщение создано: 22. 11. 2010 [13:44]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3747
"Budy" wrote:

Я написал программу в Twincat PLC Control, залил на ПЛК Beckhoff BC9000 (он поддерживает ModBus TCP). Пытаюсь делать по инструкции - добавил исходящий транспорт (os01.jpg), создал описание ПЛК, а вот как правильно прописать атрибут? Я понимаю, что я указал неправильно (os02.jpg).

Всплывающую подсказку изучайте.

Learn, learn and learn better than work, work and work.
Сообщение создано: 22. 11. 2010 [13:59]
Budy
Andrew Borinov
Создатель темы
Зарегистрирован(а) с: 22.11.2010
Сообщения: 5
"roman" wrote:

Всплывающую подсказку изучайте.

Уважаемый Hacker roman,
Я не понимаю, как мне указать первые два параметра dt и numb. Как можно узнать, что такое регистр/бит/регистр входа/бит входа. И как определить numb (адрес ModBus устройства), который нужно указать?
Как я смогу их узнать, исходя от моей программы на ПЛК?
Сообщение создано: 22. 11. 2010 [14:15]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3747
"Budy" wrote:

Я не понимаю, как мне указать первые два параметра dt и numb. Как можно узнать, что такое регистр/бит/регистр входа/бит входа. И как определить numb (адрес ModBus устройства), который нужно указать?
Как я смогу их узнать, исходя от моей программы на ПЛК?

Изучайте протокол ModBus вообще и документацию на Ваш контроллер в частности, где должно быть указано, что и по каким регистрам он раскладывает.

Learn, learn and learn better than work, work and work.
Сообщение создано: 23. 11. 2010 [13:15]
Budy
Andrew Borinov
Создатель темы
Зарегистрирован(а) с: 22.11.2010
Сообщения: 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 :(
Сообщение создано: 23. 11. 2010 [16:00]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3747
"Budy" wrote:

Единственное, на чем остановился - не могу записать в ПЛК из OSCADA :(

Продолжаем читать.

Learn, learn and learn better than work, work and work.
Сообщение создано: 24. 11. 2010 [19:08]
Budy
Andrew Borinov
Создатель темы
Зарегистрирован(а) с: 22.11.2010
Сообщения: 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!

[Сообщение редактировалось 1 раз(а), в последний раз 24.11.2010 в 19:10.]



44839