Author |
Message |
Written on: 24. 10. 2012 [14:25]
|
almaz
Almaz Karimov
Contributor
registered since: 25.09.2008
Posts: 516
|
Последовательный интерфейс в местах скопления мощных частотников - очень ненадёжное решение. Поэтому используем модуль ET-7026 с Modbus/TCP, который имеет все необходимые аналоговые и дискретные входы-выходы для управления частотником и его контроля (управление частотой, измерение тока, пуск/стоп, реверс, ошибка, сброс ошибки). Причём модуль встраиваем прямо в частотник и запитываем его от блока питания частотника, так как были случаи выгорания модулей при управлении несколькими частотниками от одного модуля. Один модуль на частотник плюс управление по езернет - работает чудесно.
Это о старых моделях частотников danfoss. Новые модели имеют фирменный модуль Modbus/TCP. Один заказали - посмотрим.
21 век - век повсеместной автоматизации. Главное - во благо всем людям.
|
Written on: 24. 10. 2012 [15:30]
|
Vorgehen
Артём Корниевский
registered since: 08.07.2012
Posts: 20
|
Алмаз спасибо.Видно с этим и связана моя проблема смены адрессов. Иногда это /dev/ttyUSB0, а иногда неожиданно в процессе работы перескакивает на /dev/ttyUSB1. Думаю как решить.
ET-7026 с Modbus/TCP Посмотрел. Не по силам пока нам ICP_DAS. Но со временем может быть. Поищу более дешёвые варианты.
[This article was edited 1 times, at last 24.10.2012 at 16:09.]
|
Written on: 24. 10. 2012 [16:52]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
"Vorgehen" wrote:
Алмаз спасибо.Видно с этим и связана моя проблема смены адрессов. Иногда это /dev/ttyUSB0, а иногда неожиданно в процессе работы перескакивает на /dev/ttyUSB1. Думаю как решить.
Сталкивался уже с подобным хотя у меня имя устройства не менялось, а только пакеты в открытый порт переставали реально идти причём без выдачи ошибок. Для обхода этого добавил в исходящий транспорт KeepAlive.
Learn, learn and learn better than work, work and work.
|
Written on: 24. 10. 2012 [23:43]
|
almaz
Almaz Karimov
Contributor
registered since: 25.09.2008
Posts: 516
|
"Vorgehen" wrote: Не по силам пока нам ICP_DAS. Но со временем может быть. Поищу более дешёвые варианты. Странно, что используете danfoss, а на icpdas средств нет."roman" wrote: Сталкивался уже с подобным хотя у меня имя устройства не менялось, а только пакеты в открытый порт переставали реально идти причём без выдачи ошибок. Для обхода этого добавил в исходящий транспорт KeepAlive. Бороться можно по-разному. Мы чего только не пробовали (экранирование,терминаторы, подтягивание к минусам и плюсам), но стоит энергетикам поменять фазы, отключить электричество, моргнуть электричеством или чего ещё - тут же работа нарушается. Бороться с последствиями, конечно, можно, но незачем. Лучше устранить причину. Ethernet и есть дальнейшее развитие последовательных линий связи (4 линии, изолирующие трансформаторы, высокая частота, протоколы связи), устойчивые к любым видам помех. Поставил и забыл.
[This article was edited 1 times, at last 24.10.2012 at 23:46.]
21 век - век повсеместной автоматизации. Главное - во благо всем людям.
|
Written on: 25. 10. 2012 [07:47]
|
Alexx
Александр Иванов
registered since: 16.07.2012
Posts: 64
|
Здравствуйте, у меня такой вопрос. Есть прибор "ТЕРМОДАТ" в нем текущее значение температуры и уставок хранится в виде ЗНАЧЕНИЕ *10 (например 123,5 градуса хранится как 1235). Соответственно, когда я читаю значение температуры я в логическом уровне делю показания на 10 и получаю реальное значение температуры. У меня проблема с записью уставок: очень неудобно задавать уставку с компьютера умноженную на 10. Хотелось бы чтобы вводя уставку, число, перед записью в "ТЕРМОДАТ" по модбасу, сначала умножалось на 10. Иными словами, как обрабатывать значение атрибута ПЕРЕД передачей его по модбасу. Подскажите как это сделать. Спасибо.
|
Written on: 25. 10. 2012 [08:29]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
"Alexx" wrote:
У меня проблема с записью уставок: очень неудобно задавать уставку с компьютера умноженную на 10. Хотелось бы чтобы вводя уставку, число, перед записью в "ТЕРМОДАТ" по модбасу, сначала умножалось на 10. Иными словами, как обрабатывать значение атрибута ПЕРЕД передачей его по модбасу. Подскажите как это сделать.
Там-же, в логическом уровне. Или прямо шаблон подключать к параметру DAQ.ModBus, а в шаблоне реализовать нужный интерфейс параметра в реальные данные ModBus, для чего он и предназначен. Ссылки чуть выше я уже давал.
Learn, learn and learn better than work, work and work.
|
Written on: 25. 10. 2012 [15:40]
|
Vorgehen
Артём Корниевский
registered since: 08.07.2012
Posts: 20
|
Странно, что используете danfoss, а на icpdas средств нет. Не danfoss используем, а Holip - китайскую копию. Поставлялся вместе с оборудованием прямо из Китая.
Сталкивался уже с подобным хотя у меня имя устройства не менялось, а только пакеты в открытый порт переставали реально идти причём без выдачи ошибок. Для обхода этого добавил в исходящий транспорт KeepAlive.
Поставил ещё одного потребителя на /dev/ttyUSB1, стало реже уходить, но всё же иногда улетает на /dev/ttyUSB2.
Здравствуйте, у меня такой вопрос. Есть прибор "ТЕРМОДАТ" в нем текущее значение температуры и уставок хранится в виде ЗНАЧЕНИЕ *10 (например 123,5 градуса хранится как 1235). Соответственно, когда я читаю значение температуры я в логическом уровне делю показания на 10 и получаю реальное значение температуры. У меня проблема с записью уставок: очень неудобно задавать уставку с компьютера умноженную на 10. Хотелось бы чтобы вводя уставку, число, перед записью в "ТЕРМОДАТ" по модбасу, сначала умножалось на 10. Иными словами, как обрабатывать значение атрибута ПЕРЕД передачей его по модбасу. Подскажите как это сделать. Спасибо.
Ваш пример канонический и рассматривается в руководстве по быстрому старту по полочкам,присмотритесь, советую, мне помогло:
http://wiki.oscada.org/Doc/QuickStart?v=rg2#h988-11
В моём случае подобную уставку нужно менять функцией 06 modbus. Поэтому атрибуту я поставил :w: -только запись без чтения. А чтение этого же регистра вывел на отдельный атрибут под другим именем. Имеет место отставание на несколько кадров но для температурной уставки это не всегда принципиально.
[This article was edited 2 times, at last 25.10.2012 at 16:00.]
|
Written on: 26. 10. 2012 [11:45]
|
Alexx
Александр Иванов
registered since: 16.07.2012
Posts: 64
|
Спасибо, уже разобрался. Кстати у меня тоже иногда улетает преобразователь 485-USB то на /dev/ttyUSB1 то на /dev/ttyUSB0. Если получится победить-сообщите как вы это сделали.
Еще вопрос: каким образом можно посчитать время нахождения атрибута в определенном диапазоне? мне необходимо считать время нахождения температуры в диапазоне уставки, причем если температура вышла из диапазона то подсчет времени приостанавливается, а если вернулась-то продолжается.
[This article was edited 1 times, at last 26.10.2012 at 11:48.]
|
Written on: 26. 10. 2012 [12:27]
|
almaz
Almaz Karimov
Contributor
registered since: 25.09.2008
Posts: 516
|
Победить перескакивающие устройства просто. Указывайте вместо /dev/ttyUSBx на точное устройство /dev/serial/by-id/xxxxx или usb-слот /dev/serial/by-path/yyyyy (чтобы не указывать постоянно длинное имя обычно создавал в корне диска короткую символическую ссылку на устройство). Но это может не оказаться полным решением проблемы. Возможно не хватает питания с порта usb или нужна оптоизоляция преобразователя от линии связи.
if ((atr>atrmin)&&(atr<atrmax)) time=time+dt;
[This article was edited 3 times, at last 26.10.2012 at 14:29.]
21 век - век повсеместной автоматизации. Главное - во благо всем людям.
|
Written on: 26. 10. 2012 [15:44]
|
Alexx
Александр Иванов
registered since: 16.07.2012
Posts: 64
|
Спасибо, с преобразователями попробую, хотя у него есть развязка между USB и линией 485.
По поводу счетчика времени- алгоритм подсчета не проблема, проблема в том, что я не пойму где взять время (в вашем примере dt)
|