Современные технологии автоматизации» («СТА») —  журнал для квалифицированных специалистов по промышленной автоматизации Форум СТА — современные технологии автоматизации Домашняя страница
Домашняя страница форума CTA Домашняя страница форума CTA > II. АСУТП и SCADA > Программное обеспечение
  Активные темы Активные темы
  FAQ FAQ  Искать в форуме   Зарегистрироваться Зарегистрироваться  Вход в систему Вход в систему

Как установить, что связь оборвалась?

 Ответить Ответить
Автор
Сообщение
lemkzuka Смотреть выпадающим
Новичок
Новичок


Присоединился: 14 Октябрь 2008
Категория: Kazakhstan
Online Status: Offline
Публикации: 19
Свойства публикации Свойства публикации   Ответить, цитируя автора - lemkzuka Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: Как установить, что связь оборвалась?
    Опубликовано: 07 Ноябрь 2008 05:50
Fastwel CPC-101 (CPU-188-5) подключен к компьютеру. ПО на UltraLogik32. Подключение RS-485 PLCNet-Slave.

Как на контроллере определить, что связь с компьютером пропала (соответственно данные записывать в архивчик)??

Как на контроллере определить, что связь с компьютером появилась (соотвественно данные из массивчика передать на компьютер) ??
Наверх
Vel_ Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 25 Апрель 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 116
Свойства публикации Свойства публикации   Ответить, цитируя автора - Vel_ Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 08 Ноябрь 2008 07:38
"Все очень просто" (в кавычках)!!!
1 Вариант.
Пишете перехватчик обращения к памяти (сетевым переменным) и определяете что считывание данных переменных производилось (за какойто период времени).
2 Вариант.
Пишете перехватчик работы СОМ порта, работает или нет.
3 Вариант
Разбираетесь с протоколом обмена. Пишете серверную часть для контроллера. Встраиваете код для контроля приемо-передачи и если запросов нет (за период нормального цикла опроса контроллеров) пишете в архив.
4 Вариант
Все время пишете в архив (массив данных), а данные вытаскиваете из массива на ПК по возможности.

P.S.
2 года назад реализовывал 3 вар. (без контроля приемо-передачи).
В данный момент пишу нечто подобное варианту 4. Система: 6 контроллеров, преобразователи интерфейса, радиомодемы! Из за сбоев радиосвязи все данные хранятся в массиве и вытаскиваются на ПК по мере возможности. Но одна особенность, заполнение массива идет не постоянно, а по командам "загрузка", "выгрузка" с дискретностью 25 сантисекунд, в течении минуты.
Vel
Наверх
Petrov Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 15 Январь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 805
Свойства публикации Свойства публикации   Ответить, цитируя автора - Petrov Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 08 Ноябрь 2008 11:37

Заведите переменную - контроллер плюсует ее когда значение четное, а компьютер - когда нечетное. Если перестало меняться - связи нет, вновь меняется - связь есть.

Вариант?

и от стальной его груди отскакивают стрелы.
Наверх
lemkzuka Смотреть выпадающим
Новичок
Новичок


Присоединился: 14 Октябрь 2008
Категория: Kazakhstan
Online Status: Offline
Публикации: 19
Свойства публикации Свойства публикации   Ответить, цитируя автора - lemkzuka Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 10 Ноябрь 2008 05:10
Первоначально опубликовано Petrov

Заведите переменную - контроллер плюсует ее когда значение четное, а компьютер - когда нечетное. Если перестало меняться - связи нет, вновь меняется - связь есть.


Вариант?



Похожим решением и было реализовано, думал что есть специальные функции....
Наверх
lemkzuka Смотреть выпадающим
Новичок
Новичок


Присоединился: 14 Октябрь 2008
Категория: Kazakhstan
Online Status: Offline
Публикации: 19
Свойства публикации Свойства публикации   Ответить, цитируя автора - lemkzuka Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 10 Ноябрь 2008 05:46
Первоначально опубликовано Vel_


В данный момент пишу нечто подобное варианту 4. Система: 6 контроллеров, преобразователи интерфейса, радиомодемы! Из за сбоев радиосвязи все данные хранятся в массиве и вытаскиваются на ПК по мере возможности. Но одна особенность, заполнение массива идет не постоянно, а по командам "загрузка", "выгрузка" с дискретностью 25 сантисекунд, в течении минуты.


Спасибо за развернутый ответ. Можно по-подробнее узнать про передачу данных с модемов? Получается каждую минуту модем записывает 240 строчек в массив и, надо полагать, при передаче их все передает и запись идет опять с нулевой строчки. А как обрабатываются ситуации, когда ПК не доступен несколько минут (например, минут 20)?

У нас стоит подобная задача, когда ПК может быть недоступен какое-то время, и данные необходимо сохранять в контроллере. Поэтому хотелось бы про это по-больше узнать и алгоритмов подобных (именно для контроллеров) увидеть...
Наверх
Vel_ Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 25 Апрель 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 116
Свойства публикации Свойства публикации   Ответить, цитируя автора - Vel_ Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 10 Ноябрь 2008 12:44

Для начала - принцип работы:

Есть несколько машин, которые переезжают с места на место. По достижении  её места назначения , она "паркуется", и начинает "выгрузку". По этой команде создается "ячейка массива" (500 байт) с шапкой (дата, время, тех. параметры и т.д.). Каждые 25 сантисекунд в данную ячейку массива записывается значение тока. Таких "ячеек 60. Примерно тоже самое с загрузкой (60 ячеек, по 10 байт), но без записи тока. Тамже в массиве данные для дисплея (подключен к контроллеру через СОМ1) с данными следующей "выдачи" для машиниста. Для дисплея данные (график) загружаются с ПК. Их два по 60х4 + шапка.

В массиве все работает по кругу. Появились новые данные ПК считывает (по возможности). Если данные не считаны, то следующие добавляются в конец. Если дошли до 60 несчитанных, то данные смещаются на -1 и новая запись пишется в конец. (работа по кругу, сохранение последних 60).

На ПК работает "сервер" (на основе моей PLC_dll.dll) который и следит за всем, распаковывает полученные данные, пишет в базу данных, ведет лог сбоев связи (сколько и в каком месте) и т.д.

Да, данные для ПК "упакованы" для уменьшения трафика. В контроллере массив хранится в области памяти под батарейкой (60 кБ). Сетевых переменных в контроллере всего 20. Работа PlcNet без таймаутов, тоесть за секунду 6..8 циклов опроса и записи всех контроллеров. Скорость 57600.

Пишите, что интересует конкретно!

Vel
Наверх
 Ответить Ответить

Переход на форум Права доступа на форуме Смотреть выпадающим

Bulletin Board Software by Web Wiz Forums® version 9.64
Powered by Web Wiz Forums Free Express Edition
Copyright ©2001-2009 Web Wiz