Регистрация | Последние сообщения | Персональный список | Поиск | Настройка конференции | Личные данные | Правила конференции | Список участников | Top 64 | Статистика раздела | faq | Что нового v.2.3 | Чат
Skunk Forum - Техника, Наука, Общество » АСУТП »
Вопросы по приборам фирмы Логика (страница 7)

Версия для печати (настроить)
Тема закрыта  Тема закрыта (Valera). Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 16 19 22 25 28 31 34 37 40 43 44 45 46 47 48 49 50

Новая тема | Тема закрыта

Подписаться

Автор Тема:   Вопросы по приборам фирмы Логика
Antonio
unregistered
написано 20 Мая 2005 15:30  IP

У меня вопрос такой. Я написал программу которая работает напрямую с приборами СПТ961 и СПГ761, но через АПС79 она не работает. В чем там отличие, я думал он может работать просто как переходник RS232-RS485. Оказалось не так. Кто-то может работал знает как считывать данные через АПС79.

Valera
Junior Member

Сообщений: 29
Откуда: novosibirsk
Регистрация: Май 2004

написано 22 Мая 2005 03:12ИнфоIP

цитата:
Antonio писал:
У меня вопрос такой. Я написал программу которая работает напрямую с приборами СПТ961 и СПГ761, но через АПС79 она не работает. В чем там отличие, я думал он может работать просто как переходник RS232-RS485. Оказалось не так. Кто-то может работал знает как считывать данные через АПС79.

Напрямую - это как? 485? 232? Оптоканал?
Как у Вас реализованна прогр.? Протоколы и пр. писали сами?
АПС79 - не переходник 232-485, это скорее мост rs232 - сеть 485 от логика, в некотором роде прибор учёта Логика включеный к РС на "RS232". Протокол логики ведь, по сути, маршрутизируемый при работе именно на 232 порт приборов? Т.е. Ваша программа должна знать о маршрутизации и уметь работать: 1. с СПГ (СПТ) подключённым на RS232 PC, 2. делать запросы к другим приборам сети.

Граф
Member

Сообщений: 61
Откуда: Россия, Якутск
Регистрация: Ноябрь 2002

написано 31 Мая 2005 08:48ИнфоIP

Valera
Не обьяснители, пожалуйста популярно, как запустить АПС 79. а то что то запутались сосвсем, не хочет работать.

[Это сообщение изменил Граф (изменение 31 Мая 2005 09:05).]

Valera
Junior Member

Сообщений: 30
Откуда: novosibirsk
Регистрация: Май 2004

написано 04 Июня 2005 02:05ИнфоIP

Подключение АПС79 делается так: кроме реальных приборов учёта на шину прписан дополнительный, со свободным сетевым адресом, например, 20 при 19 приборах(я объявляю его как СПТ961, но в принципе можно любой; НЕ АПС79! Тип АПС79 в списке поддерживаемых приборов имеет смысл: - где-то там, на проволке висит... в сети). В описании шины этот виртуальный прибор подключается к компу НА RS232, и ставим красную букву 'П' в свойствах прибора, что означает - этот прибор будет транслировать в шину наши запросы.
В параметрах подключения сетевой адрес нашего прибора и скорость на RS232 должны быть согласованы со значением, введённым в АПС79 посредством Мерит'а. И конечно, везде корректный старший сетевой адрес.
Наконец, вместо гипотического СПТ961 мы вставляем в раз'ём СОМх кабель от АПС79.
Кстати, на этот кабель вместо PC можно повесить модем - получаем канал доступа к приборной шине по модему (GRPS, например), всё точно так же как и с обычным прибором.
Можно обратиться к параметрам вашего АПС79 за read/write с другого компа... например изменить 003
Насчёт OPC. По-моему, единственно что необходимо - записать в АПС79 скорость на RS232 = 4800. Т.е. у моего АПС79 параметр 003 = 1040020202. Эту же скорость (4800 бод) я прописываю в СПСеть, работаю в ней - и никаких конфликтов, кроме тормозов, с одновременно запущенным OPC (пробовал под 2000 pro и XP pro).

------------------------------------------------------------------------------
Колеги, кто пробовал работать с OPC?
По моему, это демо...

[Это сообщение изменил Valera (изменение 04 Июня 2005 02:31).]

Unregistered
unregistered
написано 14 Июня 2005 17:56  IP

Приветствую! Обсуждение темы не закончено еще? У меня тотже есть проблема с этой самой СПСетью. Пытаюсь наладить обмен с СПТ-961 посредством RS232 через конвертер RS232-RS485. Кое-какие результаты есть - но это минимум. Кто нибудь этим занимался?

ColdFire
Member

Сообщений: 60
Откуда: Россия
Регистрация: Ноябрь 2004

написано 15 Июня 2005 15:46ИнфоIP

цитата:
Unregistered писал:
Приветствую! Обсуждение темы не закончено еще? У меня тотже есть проблема с этой самой СПСетью. Пытаюсь наладить обмен с СПТ-961 посредством RS232 через конвертер RS232-RS485. Кое-какие результаты есть - но это минимум. Кто нибудь этим занимался?

Я правильно вас понимаю, что вы подключаетесь к магистральному интерфейсу через конвертор RS232/485 ?
Тогда шансов у вас никаких, по крайней мере под Windows: в соответствии с описанием протокола обмена, интервал между байтами маркера не должен превышать 10 мсек - при том, что вам необходимо успеть отправить первый байт, дождаться его ухода, переключить режим четности и отправить второй байт. Из-за убогой системы переключения задач Windows и невозможности в явном виде определить факт ухода байта, вероятность выдержать интервал у вас никакой. Я уже писал, что нам удалось решить задачу под Linux с влезанием в исходные тексты ядра, но даже там при работе с Логикой приходится отключать многозадачность - если несколько задач пытаются одновременно слать запросы по разным RS232 интерфейсам, все затыкается (по крайней мере на PIII для более двух-трез вызовов одновременно; на топовых PIV наверное будет получше).

Unregistered
unregistered
написано 15 Июня 2005 17:37  IP

Упс!8-( Спасибо за отклик. Да вы меня поняли правильно. А как же документация? В описании магистральнного протокола написано, что (п. 1.4) ".....преобразователи RS232<=>RS485 других пророизводителей.......их пригодность .... пользователь определяет самостоятельно....". Я то думал - технические характеристики адаптеров имеются в виду и ни что другое. Про таймаут написано следующее (п.2.1) "Оба байта маркера всегда выводятся подряд. пауза между ними не должна превышать времени передачи одного байта на выбраной скорости работы магистрали." Т.е. таймаут между байтами маркера зависит от выбранной скорости передачи. Про смену четности вообще ничего в документе не нашел (да я такой обмен и представить себе не могу, если честно )))
а моя задача следующая: нужно опрашивать всего один прибор СПТ 961 подключенный через оговоренный конвертер к компьютеру. Подключил я этот прибор. Поставил компьютер "на прослушку порта" и обнаружил, что с одинаковым временным интервалом в порт попадают два байта. Первый = 255 (видимо флаг-байт) и второй =66 (оба в dec), его по протоколу я не расшифровал. В связи с этим еще вопрос: Что это такое мне пытается сказать прибор? Буду очень признателен за разъяснения.

Valera
Member

Сообщений: 36
Откуда: novosibirsk
Регистрация: Май 2004

написано 16 Июня 2005 03:09ИнфоIP

Очевидно, флаг-байт и маркер освобождения с установленым сетевым адресом хозяина. По осцилографу они идут подряд, за парою стопов флага, сразу старт-бит собственно маркера. Через сколько-то ms вам нужно свой маркер захвата начать выводить.Воще, сомневаюсь в вашем плане. В драйверы от Логика встроен, по сути, протокол (тайминги), во всяком случае - управление ногой DTR(?) RS 232 (не помню точно, давно смотрел, тоже пытался работать на конвертере 'от другого производителя') как переключателем приём -передача для Rs485. А где это в дровах на , к примеру, конвертер usb-rs485? Переписывать и встраивать туда этакой причиндал?

...Про смену четности вообще ничего в документе не нашел (да я такой обмен и представить себе не могу, если честно )))...
Имеется ввиду наличие в потоке байтов с принудительно установленным битом паритета.

. Из-за убогой системы переключения задач Windows и невозможности в явном виде определить факт ухода байта, вероятность выдержать интервал у вас никакой.

Как-то я иначе представляю себе программирование таймингов на RS232 Windows. Все эти обстоятельства заносятся в структуру и вперёд, с поддержкой из ядра Win, вне всяких преключений задач.

[Это сообщение изменил Valera (изменение 16 Июня 2005 03:41).]

ColdFire
Member

Сообщений: 61
Откуда: Россия
Регистрация: Ноябрь 2004

написано 16 Июня 2005 15:22ИнфоIP

Читайте внимательно описание магистрального протокола...
1) Обратите внимание, что маркерные циклы - 9-битные (средствами PC 9-й бит выцепить невозможно вообще) !!!
2) Про "пригодность определять самостоятельно" - давно известная шутка разработчиков. Не путайте аппаратный уровень и уровень представления данных !!!
3) Про смену четности (также ответ для Valera): при посылке данных, как написано в спецификации, используются 9-битовые посылки - для маркерных байтов старший бит (девятый) равен 1, для байтов данных - 0. В архитектуре IBM PC, конкретно в во всем семействе UART начиная с самых древних, невозможно непосредственно управлять 9-м битом (эта возможность зато есть почти во всех чипах микроконтроллеров, что и применяется в девайсах АПС-xxx от Логики, перекодирующих входной поток обычных байтов в 9-битовые посылки) !!! Единственный способ его менять - это корректировать режим четность/нечетность для каждого отправляемого байта. Здесь второй подводный камень: в штатных UART невозможно определить факт передачи байта из буфера передатчика в сдвиговый регистр, выдающий сигнал в линию - то есть вы должны по таймауту дождаться высылки очередного байта, изменить бит управления четностью в регистре управления UART, после чего записать в регистр данных очередной байт. Это просто само по себе, но не под Windows - система может забрать у вас управление в любой момент (что она и делает, причем как раз в момент ожидания ухода байта), и вы конечно получите в линии требуемую последовательность байтов, но временные задержки между ними непредсказуемы и существенно превышают требуемые протоколом Логика. В итоге получаем, что маркерный цикл удается выдержать один раз за полсотни посылок, и то негарантированно, и сеанс связи с прибором провести не получается (одна косая посылка, другая, и прибор прекращает сессию или вообще отваливается на несколько минут). Также связанная с таймаутами проблема - это то, что из-за того же Windows крайне маловероятно успеть вообще начать посылку маркера между другими маркерами в сети.
4) Еще раз объясню структуру протокола, хотя это достаточно описано и в штатной документации - читайте внимательнее.
4.1) Итак, обмен по шине идет циклически. В исходном состоянии все приборы на шине постоянно валят в линию маркеры отказа - то что вы и наблюдаете (255, 66 это 0xFF, 0x42 - второй байт равняется 0x40 OR адрес прибора, то есть у вас на шине прибор с адресом 2). Сначала маркер кидает прибор с адресом 0, 1, потом 2, и так далее до последнего адреса в сети (если у вас все настроено правильно, у всех приборов этот параметр указывается в конфигурации и одинаков). Потом все начинается сначала. Мы у себя делали нулевой адрес для "сервера", хотя это необязательно.
4.2) В маркерном цикле могут отсутствовать ответы от отдельных приборов - по протоколу, если в сети прошел ответ от прибора с адресом N, и есть прибор с адресом M (M>N), то если не было ответов от промежуточных адресов (N+1..M-1), то прибор M таки пошлет свой ответ в шину, но с небольшой задержкой. То есть вы можете наблюдать последовательности в сети вроде: 0xFF, 0x41, 0xFF, 0x42, (здесь пауза чуть больше чем обычно), 0xFF, 0x45. В частности, данная идеология позволяет вашему серверу не слать в шину собственный маркер отказа чтобы не занимать дурью процессорное время - приборы на шине сами поймут. Я предполагаю, что адрес вашего сервера или ноль, или равен максимального адреса на шине - иначе просто глупо, но формально может существовать.
4.3) Процедура посылки обмена с прибором выглядит так (запрос от сервера к прибору):
Дожидаемся собственного "места" в маркерном цикле, после чего шлем в шину маркер захвата указывая в качестве адреса тот прибор, который хотим опросить. Как это делается, читаем мануал. Прибор отвечает маркером подтверждения (или не отвечает, если ошибка или помеха в линии). В ответ, маркерный цикл прерывается (все остальные приборы затыкаются) и мы можем обмениваться данными с тем прибором, который нужен. Шлем ему команду запроса данных, она кажется также подтверждается прибором, после чего кидаем маркер отказа с собственным адресом. Маркерный цикл возобновляется. Ждем-пождем... в некоторый момент времени, когда прибор родит и подойдет его собственное маркерное место, прибор соответственно пошлет маркер захвата с указанием вашего адреса сервера (он его помнит из запроса). Теперь все в обратную сторону, вы подтверждаете маркером подтверждения, получаете от прибора ответ, и прибор высылает свой маркер отказа. Все вернулось в исходное состояние, маркерный цикл опять запущен. Учтите, что приборы Логика задумчивы (вы наверное обратили внимание, как "быстро" он реагирует на нажатия кнопок на клавиатуре) и ответ может прийти даже в не в текущем маркерном цикле, и не в следующем, и не через один
4.4) Обратите внимание на недокументированную фичу прибора: при запросе архивов прибор временами "перекашивает", и в отдельных полях возвращаемых данных находится нечто текстовое (что-то вроде ОШИБКА или еще чего, забыл). Попробуйте перезапросить данные, может статься по второму разу все будет ОК.
4.5) По опыту работы в больших системах: лучше не запрашивать у прибора архивы за большие интервалы времени, а также много скалярных параметров за раз. Во-первых, чем больше запрашиваем, тем дольше прибор рожает (а длина маркерного цикла очень большая); во-вторых, пакеты с длиной больше ~1-2 килобайт при формальном ограничении в 5-7 кбайт кажется "бьются" помехами с большой вероятностью. В итоге, в разы быстрее запросить архив за месяц кусками по полдня, чем за один раз. 4.6) Еще одна особенность Логиков - это периодическое "отпадание" отдельных приборов от шины, когда после очередного неудачного запроса - или помеха проскочила, или мы влезли с маркерами не в свое место - отдельные приборы (необязательно тот, к которому обращались) не понимают, что маркерный цикл восстановился, и перестают слать свои маркеры в сеть на некоторое время (от единиц секунд до нескольких минут). Нам удавалось кое-как восстанавливать ответы от конкретных приборов, валя кучей в шину маркеры (уже не помню какие именно), но это шаманство - так и не удалось подобрать 100% комбинацию; иногда прибор начинал отвечать, иногда так и продолжал висеть эти секунды-минуты.
5) Перестаньте играться с DTR/RTS - это здесь не при чем. Берите "автоматический" конвертор и не парьтесь. Просто "неавтоматические" конверторы управляются как раз этими сигналами, но работают нестабильно - дергание ногой порта осуществляется в основном программно (хотя есть скажем платы интерфейсов типа скажем Moxa, где плата сама все делает) и опять выплывают проблемы с таймингами - вы можете таким конвертором "задавить" маркер, идующий сразу за вашим. С USB вообще отдельная песня... эх, где старый добрый встроенный RS232@DB9

Valera
Member

Сообщений: 38
Откуда: novosibirsk
Регистрация: Май 2004

написано 16 Июня 2005 22:48ИнфоIP

цитата:
ColdFire писал:
...архитектуре IBM PC, конкретно в во всем семействе UART начиная с самых древних, невозможно непосредственно управлять 9-м битом ...Это просто само по себе, но не под Windows - система может забрать.... связанная с таймаутами проблема - это то, что из-за того же Windows крайне маловероятно успеть вообще начать посылку маркера между другими маркерами в сети.
... эх, где старый добрый встроенный RS232@DB9

Никуда наш старый-добрый не делся, только с 9,6 разогнался до 256к и с ним теперь через kernel-драйвер приходится общаться.

Unregistered
unregistered
написано 17 Июня 2005 03:38  IP

Спасибо за разъяснения. Если все так плохо, то, наверное, сменю-ка я контроллер

ColdFire
Member

Сообщений: 64
Откуда: Россия
Регистрация: Ноябрь 2004

написано 20 Июня 2005 12:52ИнфоIP

Ответ Unregistered: вполне логичное решение.
Приборы "Логика" сами по себе неплохи, но есть пара "но":
1) Протокол обмена практически ограничивает применение данных приборов в крупных системах учета,
где либо количество приборов на шине превышает один-два-три, либо требуется быстро обновлять информацию.
Никто не обещал конечно работу Логик в качестве диспетчерских, но все таки хотелось бы покупая прибор
за немалые деньги иметь что-то взамен.
2) Как в этой конференции, так и в ходе общения, под вопросом алгоритмы в Логиках. Есть пока неподтвержденные
опасения, что прибор несколько обманывает пользователя, обсчитывая параметры потока не каждый цикл, а гораздо реже.
По крайней мере когда мы делали свой прибор (так и не пошел в серию), ГОСТовая алгоритмика весьма напряжная в плане
интенсивности математических расчетов, а на той элементной базе, что применяется в Логиках, организовать вычисления в полном объеме с периодичностью даже раз в секунду нереально, по крайней мере для метода переменного перепада давления.

Мощицкий Павел
Moderator

Сообщений: 1342
Откуда: Израиль, Бат-Ям
Регистрация: Январь 2003

написано 20 Июня 2005 23:56ИнфоIP

ColdFire
У меня большая просьба. Если Вы отпостили в кодировке KOI-8R, то удалите пост сами. Модератор не может среагировать в реальном времени.

ColdFire
Member

Сообщений: 64
Откуда: Россия
Регистрация: Ноябрь 2004

написано 21 Июня 2005 12:02ИнфоIP

цитата:
Мощицкий Павел писал:
ColdFire
У меня большая просьба. Если Вы отпостили в кодировке KOI-8R, то удалите пост сами. Модератор не может среагировать в реальном времени.

Извиняюсь... Я просто не нашел, где сообщения удаляются - уже не в первый раз. У меня мозилла, ввод стоит в KOI8-R, а при открытии сайта через раз посылка идет в кривой кодировке.

Мощицкий Павел
Moderator

Сообщений: 1345
Откуда: Израиль, Бат-Ям
Регистрация: Январь 2003

написано 21 Июня 2005 18:13ИнфоIP

ColdFire
Я просто не нашел, где сообщения удаляются
В правке поста.

Valera
Member

Сообщений: 40
Откуда: novosibirsk
Регистрация: Май 2004

написано 24 Июня 2005 04:03ИнфоIP

цитата:
ColdFire писал:

1) Протокол обмена практически ограничивает применение данных приборов в крупных системах учета,
где либо количество приборов на шине превышает один-два-три, либо требуется быстро обновлять информацию.
Никто не обещал конечно работу Логик в качестве диспетчерских, но все таки хотелось бы покупая прибор
за немалые деньги иметь что-то взамен.


Протокол как протокол, по-моему. Не modbus конечно, но вполне жизнеспособен.Судите сами, у меня 19 шт. Логиков, сеть реализована на линиях заводской АТС, всего около 10км. Есть куски кабеля которым лет 20-30. При 2,4к сбойные запросы к приборам из-за помех около 20%, при 1,2к - три-четыре-пять. Думаете, приборы simens на modbus в таких условиях работал бы намного лучше? А меня устраивает, целая сеть по цене одного "крутого" прибора. Протокол - дело вторичное, помехи не надо пускать в линии связи.

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 16 19 22 25 28 31 34 37 40 43 44 45 46 47 48 49 50

Все время MSK

Открыть | Переместить | Удалить

Новая тема | Тема закрыта
Последние сообщения         
Перейти к:

Свяжитесь с нами | skunksworks.net

Copyright © skunksworks.net, 2000-2018

Разработка и техническая поддержка: skunksworks.net


Рейтинг@Mail.ru Яндекс.Метрика