PDA

Просмотреть полную версию : Модуль MC DOUT Safe State


diman27
01.11.2012, 15:09
Как на данный момент реализована схема перевода цифровых выходов в безопасное состояние в модуле MC программно или аппаратно?
Переводятся ли выходы в безопасное состояние при зависании FBD-проекта, при зависании ядра Linux?

Arsie
01.11.2012, 15:58
Как на данный момент реализована схема перевода цифровых выходов в безопасное состояние в модуле MC программно или аппаратно?
Переводятся ли выходы в безопасное состояние при зависании FBD-проекта, при зависании ядра Linux?

При нарушении связи между МС и контроллером выходы перевозятся в безопасные состояния. Конечно же программно.

При зависании чего-либо прерывается и связь.

Prokofjev
01.11.2012, 20:59
Как вариант используйте ЦАП со встроенным eeprom. Например MCP4725 (http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en532229), MCP4728 (http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en541737) от Microchip или DS3911 (http://www.maximintegrated.com/datasheet/index.mvp/id/7376) от Maxim. Они позволяют при подаче питания установить на выходе значение, которое заранее сохранено во встроенной памяти.
PS: Считайте это сервоприводом с реостатом! Или используйте :google:

В МС состояния AOUT восстанавливаются тоже. Аппаратно реализована память безопасного режима при потере питания на время более 10 сек. Это касается даже режимов когда происходит внутренний сбой из-за сильной помехи, резеты и т.д.
Единственный момент - в особо тяжелых случаях на несколько микросекунд возможны провалы AOUT2,3, и опторелейных DOUT.

Имхо, делать вечное восстановление (типа DAC+EEPROM) в некоторых ситуациях наверняка небезопасно, т.к. модуль без связи и нет никакой возможности если что "заткнуть выход" после длительного обесточивания. Тут должна действовать блокирующая автоматика. Может быть я не прав.

Что касается линуха видимо Вы правы. Нелогично что погибший FBD процесс не инициирует вход в безопасный режим.

diman27
01.11.2012, 22:43
В МС состояния AOUT восстанавливаются тоже. Аппаратно реализована память безопасного режима при потере питания на время более 10 сек. Это касается даже режимов когда происходит внутренний сбой из-за сильной помехи, резеты и т.д. Prokofjev, поправьте меня, где я не прав.
Контроллер на котором собран MC конечно имеет свою программу, она конечно может тоже зависнуть от помехи. Однако в этом контроллере наверняка есть встроенный аппаратный WDT, есть внешний супервизор питания - это сбросит его в случае зависания. И наверняка один из начальных модулей этой программы переведет все выходы в безопасное состояние после перезапуска, до момента, пока не придет команда с самого 2Gi на изменение их состояния. Кроме того, контроллер постоянно мониторит обмен с 2Gi, и если обмен прекращается, то он также переводит выходы в безопасное состояние. Т.е. данные о безопасном состоянии хранятся именно внутри самого модуля МС. И если подать на МС только питание, то он сам выставит свои выходы в safe state. Если это так, то я склонен считать что защита модуля МС сделана на аппаратном уровне.
При нарушении связи между МС и контроллером выходы перевозятся в безопасные состояния. Конечно же программно.
Какой то процесс внутри 2Gi постоянно поддерживает связь с модулем МС. Если эта связь прекращается, то МС сам переходит в безопасный режим.
Arsie, и вы меня поправьте, если что.
Есть ядро "logix" которое фактически является linux-процессом и исполняет FBD-программу. Есть процесс mbs, который видимо и ведет обмен с внешними модулями, включая МС. mbs и logix тоже как то между собой обмениваются. Наверное есть какой то механизм, что если процесс logix падает, а процесс mbs работает, то процесс mbs должен прекратить обмен с модулем МС, чтобы тот перешел в безопасный режим.
Вопрос: если ввести в терминале killall logix, подключенный модуль МС перейдет в безопасный режим?
Либо второй вариант. Процесс logix не падает, но по каким то причинам перестает выполнять FBD программу и выводит на экран "Проектные файлы не загружены". И при этом он продолжает передавать данные процессу mbs, тот пересылать их в модуль МС, тот считать что все в порядке. А данные - это то что выставила FBD-программа в памяти перед своей смертью.
Наверное еще возможны варианты.
Вообщем вы как то попытайтесь разобраться, почему при зависании FBD модуль МС не переходит в безопасный режим.

Prokofjev
01.11.2012, 23:14
Prokofjev, поправьте меня, где я не прав.

Все верно.

diman27
04.11.2012, 16:23
Итак, проверил свои догадки.
Если в linux вручную убить процесс mbs, который поддерживает связь с модулем МС, то через 1-2 сек. модуль МС переводит свои выходы в безопасное состояние. Тут все нормально, связь с МС рвется и он это отрабатывает.
НО!!! Если в linux вручную убить процесс logix то модуль МС в безопасный режим не переходит!!!! Все выходы сохраняют свое последнее состояние. Т.е. процесс mbs никак не определяет, что logix умер и продолжает поддерживать связь с МС.
Господа разработчики, что вы на это скажите??? Эта ситуация крайне опасна. Процесс logix может умереть например от помех, что у меня и происходит.

Den
06.11.2012, 10:04
Итак, проверил свои догадки.
Если в linux вручную убить процесс mbs, который поддерживает связь с модулем МС, то через 1-2 сек. модуль МС переводит свои выходы в безопасное состояние. Тут все нормально, связь с МС рвется и он это отрабатывает.
НО!!! Если в linux вручную убить процесс logix то модуль МС в безопасный режим не переходит!!!! Все выходы сохраняют свое последнее состояние. Т.е. процесс mbs никак не определяет, что logix умер и продолжает поддерживать связь с МС.
Господа разработчики, что вы на это скажите??? Эта ситуация крайне опасна. Процесс logix может умереть например от помех, что у меня и происходит.Сейчас тестируем скриптик, который при умирании ядра лоджика будет ресетить контроллер.
А расскажите поподробнее об умирании ядра при помехах. Как этого добиться? Состав оборудования?

Max2114
06.11.2012, 10:17
Сейчас тестируем скриптик, который при умирании ядра лоджика будет ресетить контроллер.
А расскажите поподробнее об умирании ядра при помехах. Как этого добиться? Состав оборудования?
Еп... как часто он у вас умирает? Может мне не стоит 2Gi для управления котельной использовать (вдруг начет тоже ядро умирать)?

diman27
06.11.2012, 18:24
Сейчас тестируем скриптик, который при умирании ядра лоджика будет ресетить контроллер.
А расскажите поподробнее об умирании ядра при помехах. Как этого добиться? Состав оборудования?
SMH-2Gi установлен в щит. Далее 2 варианта:
1. USB модем вставлен в разъем контроллера.
2. USB модем вынесен из щита на шнурке
Модель модема Huawei E-171 от МТС. Такой рекомендован в мануале на контроллер.
Помехи возникают судя по всему по питанию USB. Главное условие, заставить передатчик модема работать на полную мощность. Этого можно добиться поместив модем в плохие условия приема сотовой сети. Когда сеть либо совсем отсутствует, либо прием плохой и часто прерывается.
Когда модем вынесен из щита, то ядро Logix зависает 1 раз в день. Когда воткнут напрямую в контроллер, т.е. находится в щите - зависание примерно 1 раз в час.
Симптомы:
1. Произвольное скачкообразное увеличение системного тика.
2. На экран выводится сообщение "Проектные файлы не загружены"
3. Системные аварии:
- превышен цикл
- МС перегрузка AOut (он не подключен никуда)
- МС Внутренняя неиспр. ! (было 1 раз)

При последней аварии (внутр. неиспр МС) у модуля МС завис блок аналоговых входов. Т.е. все работало, кроме того, что показания AIn зависли в последнем состоянии. При этом мои PID-регуляторы исправно пытались достичь уставки, импульсы на мой внешний WDT с цифрового выхода МС исправно поступали, FBD программа работала.
Это уже вопрос к Prokofiev При каких неисправностях, кроме потери связи с контроллером, модуль МС переходит в безопасное состояние??? Тем более саму аварию то он отследил, раз вывел "Внутр неиспр!" в системные аварии.

Den
07.11.2012, 09:54
diman27 можете прислать свой проект в личку? Попробуем воспроизвести ситуацию как в Вашем случае.
И есть ли возможность подключить контроллер к нашему тестовому серверу? Я тогда смогу посмотреть, что происходит.

Prokofjev
07.11.2012, 10:56
Какой блок питания (марка) запитывает 2gi?

diman27
07.11.2012, 17:01
diman27 можете прислать свой проект в личку? Попробуем воспроизвести ситуацию как в Вашем случае.
И есть ли возможность подключить контроллер к нашему тестовому серверу? Я тогда смогу посмотреть, что происходит.
Мой проект есть у Александра Малыги. Подключить могу только в выходные, и то не в каждые. В рабочее время попробую позже дистанционно настроить подключение к вашему серверу.

Какой блок питания (марка) запитывает 2gi?
Meanwell MDR-20-24 (24В 1.0А)

Arsie
07.11.2012, 17:07
Meanwell MDR-20-24 (24В 1.0А)

Я не знаю потребление вашего модема, но мобильный телефон Nokia 6230i в режиме передачи данных имеет выбросы потребления до 2.5А на 5 вольтах, из которых 200 мА приходятся на сам телефон.

Попробуйте поставить более мощный блок питания. Из этого уже половина занята самим контроллером.

diman27
07.11.2012, 17:24
Я не знаю потребление вашего модема, но мобильный телефон Nokia 6230i в режиме передачи данных имеет выбросы потребления до 2.5А на 5 вольтах, из которых 200 мА приходятся на сам телефон.

Попробуйте поставить более мощный блок питания. Из этого уже половина занята самим контроллером.
Согласно спецификации USB 2.0: "Максимальная сила тока, потребляемого устройством по линиям питания шины USB, не должна превышать 500 мА, у USB 3.0 — 900 мА"
У меня модем USB2.0, у вас порт USB 2.0. Контроллер потребляет не более 500мА, модем тоже не должен потреблять больше 500мА по спецификации USB.
Arsie Если Nokia 6230i потребляет 2.5А в импульсе, значит он не соответствует спецификации USB или он неисправен. Он также запросто завесит USB порт компьютера.

diman27
07.11.2012, 18:15
И кстати 500мА х 5В = 2.5Вт При 24В это всего 100мА потребления от источника питания за счет USB порта.

Prokofjev
07.11.2012, 18:34
...У меня модем USB2.0...

Исходя из описанных Вами эффектов возможно дело исключительно в питании. Не в помехах, а импульсном потреблении.
Когда сигнал плохой, модем производит передачу на максимальной мощности. При этом он может терять сигнал, и как следствие часто переиничивается опять таки с максимальным потреблением. При этом производитель модема декларирует потребление менее 2.5Вт, как Вы и сказали, однако на практике получается что это не совсем так. Я думаю что производители модемов имеют ввиду действующую мощность потребления (RMS POWER). Какова пиковая - умалчивается.

В добавок, инет пестрит сообщениями о выключениях ноутов при подключении 3G модемов.

К сожалению 2Gi не может измерить ток USB, поэтому трудно сказать какой он у Вас..

Т.о. если не сложно, то лучше всего попробовать любой из предложенных вариантов (лучше 2 или 3):
1. Выкрутить регулятор на AC/DC на максимальное напряжение (27В). Это способствует большему запасу энергии на входных емкостях 2Gi. И повысит устойчивость к пиковым перегрузкам по мощности.
2. Заменить AC/DC на более мощный, как советовал Арсений.
3. Использовать активный USB-hub. С внешним питанием.

Prokofjev
07.11.2012, 18:36
И кстати 500мА х 5В = 2.5Вт При 24В это всего 100мА потребления от источника питания за счет USB порта.

Ситуация бы прояснилась если Вы измерите ток на выходе AC/DC. Желательно тестером умеющим захватывать min, max, rms

diman27
07.11.2012, 18:46
Ситуация бы прояснилась если Вы измерите ток на выходе AC/DC. Желательно тестером умеющим захватывать min, max, rms
Тогда уж проще возьму на работе ручной осциллограф и шунт.
Есть шунт 75ШИП1-20-0.5, 75 мв при 20 А. Думаю на нем небольшое будет падение, на работу не повлияет, а ток измерить можно.
Измерю, картинку пришлю. Когда, сказать не могу, или в эти выходные или в следующие.

PS: И кстати, может тысяч 10 мкф повесить непосредственно на клеммы питания 2Gi?

diman27
07.11.2012, 19:05
Исходя из описанных Вами эффектов возможно дело исключительно в питании. Не в помехах, а импульсном потреблении.
Когда сигнал плохой, модем производит передачу на максимальной мощности. При этом он может терять сигнал, и как следствие часто переиничивается опять таки с максимальным потреблением. При этом производитель модема декларирует потребление менее 2.5Вт, как Вы и сказали, однако на практике получается что это не совсем так. Я думаю что производители модемов имеют ввиду действующую мощность потребления (RMS POWER). Какова пиковая - умалчивается.

В добавок, инет пестрит сообщениями о выключениях ноутов при подключении 3G модемов.

К сожалению 2Gi не может измерить ток USB, поэтому трудно сказать какой он у Вас..

Я думаю все так и есть, это импульсные провалы по питанию при плохом приеме сигнала сотовой сети.
Просто мне кажется, что все это нужно описывать в мануале на контроллер. А то ведь люди обещают заказчикам управление по СМС, интернет, ставят контроллеры на объекты - и получают глюки. А если учесть, что это также вызывает включение выходов в неизвестное состояние при зависании - то могут получить и серьезные аварии!

Цитирую справку SMLogix:
"Список поддерживаемых моделей модемов:
· HUAWEI E171
· IRZ ES90U
Это означает:
· для работы перечисленных моделей достаточно правильно вписать настройки в среде SMConfig "

diman27
07.11.2012, 19:21
Исходя из описанных Вами эффектов возможно дело исключительно в питании. Не в помехах, а импульсном потреблении.
В этой ветке кстати вопрос то не в том, откуда берутся помехи... Откуда пришла помеха, от модема, по питанию, по цифровому входу... дело то не в этом.
Тут главный вопрос - почему при этом контроллер зависает так, что выходы не переводятся в безопасное состояние??? Или хотя бы не перезагружается.

Prokofjev
07.11.2012, 20:58
Тут главный вопрос - почему при этом контроллер зависает так, что выходы не переводятся в безопасное состояние??? Или хотя бы не перезагружается.

Я только сейчас увидел, что Вы разбили ветки.
По безопасному режиму Вам DEN ответил, что тестирует решение. Ждем...