Автор |
Повідомлення |
Повідомлення створено: 21. 10. 2008 [19:08]
|
almaz
Almaz Karimov
Contributor
Автор теми
Зареєстрован(а) с: 25.09.2008
Повідомлення: 516
|
В соответствии с обещанием Experta выкладываю модуль DAQ DCON. Модуль реализован на основе модуля MODBUS автора. В настоящее время работает со следующими блоками ввода-вывода, которые были в наличии: I-7051, I-7045, I-7063, I-7017, I-7024.
Блоки настраиваются при помощи поставляемого с ними программного обеспечения. При правильном подключении и настройки параметров в OpenSCADA работает сразу. Проверено.
Документация по подключению модуля к OpenSCADA прилагается в папке doc. Документации по протоколу DCON нет, так как ее и так в интернете много.
Надеюсь модуль появится в следующей версии OpenSCADA.
Доп.ссылка: http://slil.ru/26259206
21 век - век повсеместной автоматизации. Главное - во благо всем людям.
Вкладений файл
DCON.tar.gz (Тип файлу: application/x-gzip, Розмір: 168.99 кілобайтів) — 4709 завантажень
|
Повідомлення створено: 22. 10. 2008 [14:00]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
|
Модуль включил в репозиторий. Однако есть несколько замечаний:
1. Напишите в документацию о нём, особенностях конфигурации и использования: http://diyaorg.dp.ua/oscadawiki/Doc/DCON
2. Не мешало бы обновить его в свете последних изменения и исправлений в модуле на котором он основан: ModBus.
P.S. В будущем я думаю выделить работу с последовательными интерфейсами в отдельный транспорт, а протоколы в модуль транспортных протоколов. Что кроме решения возможных коллизий последовательных интерфейсов (в разных модулях можно указать использование одного последовательного интерфейса) позволит реализовать эти протоколы на уровне сервера, а значит OpenSCADA сможет предоставлять сервис иным системам по этим протоколам, сделав более привлекательным для PLC.
Learn, learn and learn better than work, work and work.
|
Повідомлення створено: 25. 10. 2008 [00:07]
|
almaz
Almaz Karimov
Contributor
Автор теми
Зареєстрован(а) с: 25.09.2008
Повідомлення: 516
|
Модуль DCON перенял от модуля MODBUS общий скелет модуля и класс Serial. Остальное переделано под нужды протокола обмена DCON. Сравнив коды класса Serial версий OpenSCADA 0.6.1 и 0.6.2 изменений не заметил.
При появлении последовательного транспортного протокола, я так понимаю, именно класс Serial переедет в другой модуль и потребуется подправить механизм обращения к нему?
По мере появления новых блоков I-7000 буду добавлять их в модуль (хотя это можно сделать имея только описание модуля). Также планирую добавить сторожевую функцию Host OK блоков.
Использование модуля не представляет проблем, так как детали протокола обмена скрыты от пользователя в исходном коде. Пользователь только выбирает тип блока, использование контрольной суммы (конечно еще надо настроить последовательный порт под настройки блоков), и на вкладке Атрибуты получает все переменные ввода-вывода и ошибки приема-передачи, которыми можно пользоваться из других модулей OpenSCADA.
Документацию wiki конечно надо будет заполнить...
21 век - век повсеместной автоматизации. Главное - во благо всем людям.
|
Повідомлення створено: 25. 10. 2008 [10:25]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
|
almaz wrote:
Модуль DCON перенял от модуля MODBUS общий скелет модуля и класс Serial. Остальное переделано под нужды протокола обмена DCON. Сравнив коды класса Serial версий OpenSCADA 0.6.1 и 0.6.2 изменений не заметил.
.
Смотреть нужно в репозитории. Там, как минимум, функция ожидания байтов на предмет особенностей select поправлена. И вообще отталкиваться в модификации уже нужно от того что в репозитории, раз оно туда попало.
Learn, learn and learn better than work, work and work.
|
Повідомлення створено: 24. 11. 2008 [09:41]
|
Expert
Владимир Тихонов
Зареєстрован(а) с: 05.08.2008
Повідомлення: 45
|
Собственно для версии OpenSCADA 0.6.2
Все глюки Windows исправляются установкой Linux
Вкладений файл
dcon.tar.gz (Тип файлу: application/x-gzip, Розмір: 169.33 кілобайтів) — 5114 завантажень
|
Повідомлення створено: 24. 11. 2008 [11:05]
|
almaz
Almaz Karimov
Contributor
Автор теми
Зареєстрован(а) с: 25.09.2008
Повідомлення: 516
|
Это то же самое.
Только каталог dcon в архиве необходимо переименовать в DCON.
[Повідомлення редагувалось 1 раз(ів), останній раз 27.11.2008 в 09:08.]
21 век - век повсеместной автоматизации. Главное - во благо всем людям.
|
Повідомлення створено: 02. 12. 2008 [14:12]
|
almaz
Almaz Karimov
Contributor
Автор теми
Зареєстрован(а) с: 25.09.2008
Повідомлення: 516
|
Документация wiki заполнена . Функция ожидания байтов класса Serial модуля DCON была подправлена параллельно с модулем ModBus при разработке.
21 век - век повсеместной автоматизации. Главное - во благо всем людям.
|
Повідомлення створено: 03. 12. 2008 [10:32]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
|
Хорошо.
Судя по документации Вы не взяли адаптированный мною и включенный в репозиторий исходный код. Который включает и перевод сообщений интерфейса.
Возьмите его за основу, подготовьте патч и вычылайте мне Ваши изменения.
Learn, learn and learn better than work, work and work.
|
Повідомлення створено: 19. 12. 2008 [11:27]
|
almaz
Almaz Karimov
Contributor
Автор теми
Зареєстрован(а) с: 25.09.2008
Повідомлення: 516
|
12.12.2008 г. скачал исходный код с репозитория. Выполнил построчное сравнение кода модуля MODBUS (репозиторий) и кода MODBUS (версия 0.6.2-2 со страницы загрузки), взятого за основу.
Нашел доработки в процедуре Task. Но данная процедура для DCON была полностью переписана и доработки, сделанные в MODBUS, для DCON не нужны.
Класс Serial модуля MODBUS (версия 0.6.2-2 и репозиторий) остался без изменений. Но класс Serial модуля DCON при отладке пришлось немного переделать (т.е. он изначально отличается от MODBUS). Объясню почему:
Для отладки DCON была преднамеренно использованна некачественная линия связи RS-485. Класс Serial модуля MODBUS вызывал полное зависание OpenSCADA (выход только kill process) при ошибке длины ответного пакета (длина принятого пакета меньше ожидаемой)
С протоколом MODBUS пока не работал, но такая ошибка, я думаю, должна вызвать зависание модуля MODBUS.
Класс Serial был доработан так, чтобы он всегда возвращал управление обратно в любых условиях. Поэтому я не могу внести оригинальный код Serial в модуль DCON, так как он перестает нормально работать.
Насчет перевода: файлы *.po полностью от модуля MODBUS. То есть переводом не занимался. Поэтому несколько текстовых полей, специфичных для DCON остались без перевода (на английском). Если буду вносить какие-то существенные изменения в DCON - недоработку исправлю.
21 век - век повсеместной автоматизации. Главное - во благо всем людям.
|
Повідомлення створено: 19. 12. 2008 [18:38]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
|
almaz wrote:
Класс Serial модуля MODBUS (версия 0.6.2-2 и репозиторий) остался без изменений. Но класс Serial модуля DCON при отладке пришлось немного переделать (т.е. он изначально отличается от MODBUS). Объясню почему:
Для отладки DCON была преднамеренно использованна некачественная линия связи RS-485. Класс Serial модуля MODBUS вызывал полное зависание OpenSCADA (выход только kill process) при ошибке длины ответного пакета (длина принятого пакета меньше ожидаемой)
С протоколом MODBUS пока не работал, но такая ошибка, я думаю, должна вызвать зависание модуля MODBUS.
Не должна. Serial ничего не знает про размер пакета. Он работает только по таймаутам. А размер проверяют в TMdContr::modBusReq. И если не достаточно, то сообщает "13:Error respond: Too short." или "13:Error respond: CRC check error.".
Learn, learn and learn better than work, work and work.
|