УкраїнськаEnglishmRussian
Вхід/Новий
У темі багато повідомлень

Реализация протокола DCON модулей ввода-вывода I-7000 ICP DAS


Автор Повідомлення
Повідомлення створено: 15. 04. 2011 [08:34]
almaz
Almaz Karimov
Contributor
Автор теми
Зареєстрован(а) с: 25.09.2008
Повідомлення: 516
Вот бы в DCON такую же вкладку с отчётом "Запрос-ответ" как в MODBUS.
http://wiki.oscada.org/Doc/ModBus#h592-12

21 век - век повсеместной автоматизации. Главное - во благо всем людям.
Повідомлення створено: 15. 04. 2011 [10:08]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
"almaz" wrote:

Вот бы в DCON такую же вкладку с отчётом "Запрос-ответ" как в MODBUS.
http://wiki.oscada.org/Doc/ModBus#h592-12

Ну так, сделайте. В чём проблема? :)

Learn, learn and learn better than work, work and work.
Повідомлення створено: 15. 04. 2011 [10:46]
almaz
Almaz Karimov
Contributor
Автор теми
Зареєстрован(а) с: 25.09.2008
Повідомлення: 516
Чтобы написать мне придётся долго разбираться в коде :(, а Вам потом - переписывай. :) Да это я так - мысль вслух. А надо то, наверно, скопировать участок кода и подрехтовать несколько строк. Знать бы каких ... Для пользователей скады была бы полезная вкладка.

[Повідомлення редагувалось 1 раз(ів), останній раз 15.04.2011 в 11:08.]

21 век - век повсеместной автоматизации. Главное - во благо всем людям.
Повідомлення створено: 12. 02. 2013 [07:39]
Godzilla
Арсен Закоян
Contributor
Зареєстрован(а) с: 12.02.2013
Повідомлення: 123
Добрый день!Есть задача подключить контроллеры ADAM-4050(а точнее их полный аналог НЕВОД+).В таблице совместимости http://wiki.oscada.org/Doc/DCON?v=du5 этот контроллер значится как совместимый с командой @AA.Но это не так,вместо @AA используется команда $AA6.Попробовал поправить исходник модуля DCON,после этого стал посылать правильные запросы в контроллер.Но как оказалось и ответ у него различается от серии i-7000.Выдает "Ошибка: 22:Ошибка ответа модуля".I-7000 по команде @AA выдает ответ типа >0F00 , это означает, что дискретные входы с IN1 по IN4 разомкнуты, а дискретные выходы с RL1 по RL4 находятся в состоянии "выключено". А ADAM-4050 при команде $AA6 выдает ответ типа ![состояние выходов][состояние входов]00 ,например !0FFF00 ,что означает На всех входах присутствует напряжение высокого уровня, на выходах DIO1-DIO4 транзисторы открыты , на DIO5-DIO8 транзисторы закрыты . Понимаю что нужно править всего пару строк,но я не силен в С++.Прикрепляю документацию и по серии I-7000, и по НЕВОД+.Если что то напутал,прошу поправьте.Заранее Спасибо

[Повідомлення редагувалось 1 раз(ів), останній раз 12.02.2013 в 08:08.]
Вкладений файл

НЕВОД+M_17-05.11.pdf (Тип файлу: application/pdf, Розмір: 367.37 кілобайтів) — 2807 завантажень
I7000DIO-rus.pdf (Тип файлу: application/pdf, Розмір: 704.24 кілобайтів) — 1193 завантажень
Повідомлення створено: 12. 02. 2013 [18:03]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
"Godzilla" wrote:

Есть задача подключить контроллеры ADAM-4050(а точнее их полный аналог НЕВОД+).В таблице совместимости http://wiki.oscada.org/Doc/DCON этот контроллер значится как совместимый с командой @AA.Но это не так,вместо @AA используется команда $AA6.

Это не контроллер, а, согласно вложенной Вами-же документации, — "Модуль сбора данных". Раз этот модуль не вложился в текущую абстракцию модуля DAQ.DCON, то Вы всегда можете сами написать нужные запросы к этому модулю посредством реализации "DCON" модуля Protocol.UserProtocol, которая есть в текущей библиотеке функций OpenSCADA.

Learn, learn and learn better than work, work and work.
Повідомлення створено: 12. 02. 2013 [18:07]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
"almaz" wrote:

Вот бы в DCON такую же вкладку с отчётом "Запрос-ответ" как в MODBUS.
http://wiki.oscada.org/Doc/ModBus#h592-12

Добавил для уровня "Отладка (0)" к функции "Диагностика": http://wiki.oscada.org/Doc/OpisanieProgrammy/part4/files?get=subsys_daq_mod_cntr_diagn.png

Вкладка "Диагностика" (рис.4.5k) содержит форму диагностических сообщений источника данных. Поскольку многие источники данных представляют собой внешние устройства с доступом к данным посредством сетевого обмена или системной шины то возможны различные нештатные ситуации при доступе к данным. Вывод всех их в поле "Статус", объекта контроллера, невозможен поскольку он отображает только текущее состояние доступа к данным. С помощью диагностики можно проследить все нештатные ситуации в виде сообщений, сформированных данным объектом контроллера за указанный промежуток времени и с выбранным уровнем сообщения. Кроме непосредственно рабочей диагностической информации ряд модулей источников данных могут предоставлять здесь различные отладочные дампы обмена, на уровне сообщений "Отладка (0)".


Learn, learn and learn better than work, work and work.
Повідомлення створено: 12. 02. 2013 [21:37]
almaz
Almaz Karimov
Contributor
Автор теми
Зареєстрован(а) с: 25.09.2008
Повідомлення: 516
"Godzilla" wrote:
Есть задача подключить контроллеры ADAM-4050(а точнее их полный аналог НЕВОД+).В таблице совместимости http://wiki.oscada.org/Doc/DCON?v=du5 этот контроллер значится как совместимый с командой @AA.Но это не так,вместо @AA используется команда $AA6.
У меня ADAM не было и их документацию не особо внимательно изучал, поэтому упустил. ADAM-4050 не поддерживает команду 7DI(@AA). Надо будет заменить 7DI(@AA) на 7DI($AA6) так как I-7050 поддерживает 7DI($AA6). Похоже и вывод дискретных сигналов 8DO(@AA,FF) не будет работать на ADAM-4050. Другие дискретные модули ввода-вывода ADAM тоже надо проверить на совместимость с I-7000 и NL, заменить методы ввода-вывода или добавить новые.

21 век - век повсеместной автоматизации. Главное - во благо всем людям.
Повідомлення створено: 13. 02. 2013 [09:40]
almaz
Almaz Karimov
Contributor
Автор теми
Зареєстрован(а) с: 25.09.2008
Повідомлення: 516
"Godzilla" wrote:
Понимаю что нужно править всего пару строк

Если срочно надо, попробуйте пока исправить там же где правили (строка 435 svn1964) это
JAVASCRIPT
pdu = TSYS::strMess("@%02X",cntr.p_hd[i_p].at().mod_addr);
			    di_txterr = cntr.DCONReq(pdu,cntr.p_hd[i_p].at().crc_ctrl,5);

на это
JAVASCRIPT
pdu = TSYS::strMess("$%02X6",cntr.p_hd[i_p].at().mod_addr);
			    di_txterr = cntr.DCONReq(pdu,cntr.p_hd[i_p].at().crc_ctrl,7,'!');


PS Пока разбираюсь с совместимостью команд для блоков разных производителей. Позже выложу патч, исправляющий модуль DCON сразу для нескольких блоков ADAM.

[Повідомлення редагувалось 2 раз(ів), останній раз 13.02.2013 в 09:45.]

21 век - век повсеместной автоматизации. Главное - во благо всем людям.
Повідомлення створено: 13. 02. 2013 [11:38]
Godzilla
Арсен Закоян
Contributor
Зареєстрован(а) с: 12.02.2013
Повідомлення: 123
Большое спасибо,Алмаз за столь скорую помощь! Все заработало,сам был близок к разгадке,но...в общем спасибо.Кстати некоторые аналоги модулей ADAM не имеют команды #AA ,сняв все показания разом, а только #AAN ,где N номер аналогового порта(0-3) ,например GL ADAM от Геолинк.Мне это шибко не надо,на предприятии такой модуль всего один,но может быть кому нибудь понадобится,прикреплю документацию и от него.
Вкладений файл

GLADAM.DOC (Тип файлу: application/msword, Розмір: 541.5 кілобайтів) — 2093 завантажень
Повідомлення створено: 19. 02. 2013 [14:04]
almaz
Almaz Karimov
Contributor
Автор теми
Зареєстрован(а) с: 25.09.2008
Повідомлення: 516
"roman" wrote:
Добавил для уровня "Отладка (0)" к функции "Диагностика"
Спасибо! Удобно стало наблюдать за запросами-ответами.
"Godzilla" wrote:
Кстати некоторые аналоги модулей ADAM не имеют команды #AA ,сняв все показания разом, а только #AAN ,где N номер аналогового порта(0-3) ,например GL ADAM от Геолинк.
Добавил методы считывания по одному аналоговому входу. Только такое считывание будет несколько медленнее, чем скопом.

Выкладываю модуль DCON целиком (изменились переводы). Прошу включить в рабочую ветку svn (можно и в LTS), после чего скорректирую таблицы совместимости блоков в wiki.

Список изменений:
- добавлены методы считывания аналоговых входов по одному;
- исправлена работа метода 1AO (#AA) (блоки NL-1AO, I-7021, ADAM-4021);
- добавлен метод 4AO (#AACN) для работы с блоком ADAM-4024;
- заменены методы считывания дискретных входов @AA на $AA6 для обеспечения совместимости с блоками ADAM;
- добавлены методы записи дискретных выходов 4DO (#AA000F), 8DO (#AA00FF), 12DO (#AA000FFF) для работы с блоками ADAM.

21 век - век повсеместной автоматизации. Главное - во благо всем людям.
Вкладений файл

DCON.tar.gz (Тип файлу: application/x-gzip, Розмір: 13 кілобайтів) — 571 завантажень



11700