PDA

Просмотр полной версии : как соединить плк овен с SPI-устройством ?



Kassik
14.09.2013, 13:37
Как соединить плк овен с SPI-устройством (например через RS232) не ввязываясь в изготовление устройств?
Вроде промелькнуло решение, но адептер уже не производят: www.soel.ru/cms/f/?/347278.pdf?/347278.pdf

И это тоже не подойдет, тк доступны микросхемы, но не устройства http://www.gaw.ru/html.cgi/txt/ic/Maxim/interfaces/max3140.html

Николаев Андрей
14.09.2013, 17:15
А есть в этом смысл?

Kassik
14.09.2013, 20:38
Да, есть, иначе бы не стал отвлекать ваше время. Нужно присоединить SPI устройствопо линии длиной до 0,5 м.
Нашел описание такого устройства, но оно не производится автором
www.soel.ru/cms/f/?/347278.pdf?/347278.pdf

capzap
14.09.2013, 21:11
Вы ошиблись форумом, здесь обсуждаются готовые образцы промышленных логических контроллеров, в прошивку может внести изменения только производитель, Вам скорее всего надо обратить внимание на ссылку SPI и Arduino здесь: http://ru.wikipedia.org/wiki/Serial_Peripheral_Interface

Kassik
14.09.2013, 22:20
Вы ошиблись форумом, здесь обсуждаются готовые образцы промышленных логических контроллеров, в прошивку может внести изменения только производитель, Вам скорее всего надо обратить внимание на ссылку SPI и Arduino здесь: http://ru.wikipedia.org/wiki/Serial_Peripheral_Interface

а использовать внешние линии ввода-вывода плк при условии согласования уровней, удастся по временным характеристикам ?

capzap
15.09.2013, 11:18
а использовать внешние линии ввода-вывода плк при условии согласования уровней, удастся по временным характеристикам ?

быстрые входы/выходу плк работают на других частотах, 4МГц они никогда не достигнут

Николаев Андрей
15.09.2013, 12:29
Да речь не о том, что время отвлекаете...
Стоит ли задачу решать пытаться так?
Опишите задачу - может сможем чего подсказать.

По поводу spi: ничего по данному интерфейсу подключить НЕЛЬЗЯ. Он не промышленный, не выведен для внешнего использования (хотя внутри, конечно, используется), и работа с ним из под CODESYS не предусмотрена.

Kassik
16.09.2013, 01:58
быстрые входы/выходу плк работают на других частотах, 4МГц они никогда не достигнут

мне нужна синхронная скорость всего 19200 пакетами по 8 байт


Да речь не о том, что время отвлекаете...
Стоит ли задачу решать пытаться так?
Опишите задачу - может сможем чего подсказать.

По поводу spi: ничего по данному интерфейсу подключить НЕЛЬЗЯ. Он не промышленный, не выведен для внешнего использования (хотя внутри, конечно, используется), и работа с ним из под CODESYS не предусмотрена.
Если очень кратко, то передавать и принимать информацию по SPI 3,3 В (управлять устройством) на скорости 19200.
Если нужно, опишу подробно, скажите какие моменты важны. По алгоритму для устройства вопросов нет, по протоколу SPI ничего не знаю.
На си пишу, если что.
Стенд временный и грустить о том, что spi не промышенный не буду.

capzap
16.09.2013, 06:20
:) даже не знаю как еще отговорить, подобная передача информации работает на постоянной тактовой частоте, т.е. от кварца. Плк же работают в цикле у которого есть ограничения минимума и максимума, какое точно время займет не известно, внутренние часы используют кварц, но если Вы полистаете темы то увидите что и они не гарантируют точность, поэтому Ваша задумка не пройдет. Ардунио Ваш вариант, тем более что на си Вы писать умеете

Kassik
16.09.2013, 06:37
:) даже не знаю как еще отговорить, подобная передача информации работает на постоянной тактовой частоте, т.е. от кварца. Плк же работают в цикле у которого есть ограничения минимума и максимума, какое точно время займет не известно, внутренние часы используют кварц, но если Вы полистаете темы то увидите что и они не гарантируют точность, поэтому Ваша задумка не пройдет. Ардунио Ваш вариант, тем более что на си Вы писать умеете

Я понял, что нет аппаратной синхронизации на выходных ногах, даже на тех, что обеспечивают PWM
Просто изначально полагал, что на 19200 точности ПЛК по времени хватит, оказывается недостаточно
Придется писать на ардуине, спасибо.

IVM
16.09.2013, 11:47
Как соединить плк овен с SPI-устройством (например через RS232) не ввязываясь в изготовление устройств?
Вроде промелькнуло решение, но адептер уже не производят: www.soel.ru/cms/f/?/347278.pdf?/347278.pdf

И это тоже не подойдет, тк доступны микросхемы, но не устройства http://www.gaw.ru/html.cgi/txt/ic/Maxim/interfaces/max3140.html

Твою махарайку к ПЛК ОВЕН без специального переходного устройства (адаптера) подключить нельзя, вот и весь сказ. Никто этот адаптер за спасибо делать не будет. Ты прослезишься, когда узнаешь цену вопроса.

drvlas
16.09.2013, 12:11
:) даже не знаю как еще отговорить, подобная передача информации работает на постоянной тактовой частоте, т.е. от кварцаМне кажется, что уважаемый коллега capzap здесь ошибается. Синхронность SPI означает, что данные сопровождаются своим клоком. Частота этого клока может быть любой (условно). Поэтому ПЛК, если именно он передает данные, генерирует клок с такой скоростью, с которой у него получается. И он же сопровождает этот клок своим MOSI. Так что вполне можно дергать частоту SCLK.
Иное дело, что я не знаю, может ли ПЛК хоть приблизительно на частоте 20 кГц сгенерить все это. Не пробовал. Но сильно удивлен был бы, если бы нельзя было. Какой-то мелкоскопический атмел работает с софтовой реализацией подобных протоколов (и даже асинхронных!) на своей тактовой 8-16 МГц, а тут такая махина на 180 МГц не может...
Речь, конечно же, идет о генерации посылки в пределах одного цикла работы МК.
Если автору темы это уже не интересно, ну, что поделаешь. Но я бы попробовал. Генерить SPI - плевое дело.

capzap
16.09.2013, 12:40
Мне кажется, что уважаемый коллега capzap здесь ошибается. Синхронность SPI означает, что данные сопровождаются своим клоком. Частота этого клока может быть любой (условно). Поэтому ПЛК, если именно он передает данные, генерирует клок с такой скоростью, с которой у него получается. И он же сопровождает этот клок своим MOSI. Так что вполне можно дергать частоту SCLK.
Иное дело, что я не знаю, может ли ПЛК хоть приблизительно на частоте 20 кГц сгенерить все это. Не пробовал. Но сильно удивлен был бы, если бы нельзя было. Какой-то мелкоскопический атмел работает с софтовой реализацией подобных протоколов (и даже асинхронных!) на своей тактовой 8-16 МГц, а тут такая махина на 180 МГц не может...
Речь, конечно же, идет о генерации посылки в пределах одного цикла работы МК.
Если автору темы это уже не интересно, ну, что поделаешь. Но я бы попробовал. Генерить SPI - плевое дело.
не забывайте, что существует некое второе устройство и подстраиваться необходимо под его характеристики тактовой частоты.
На аппаратном уровне я не отрицаю что плк может иметь интерфейс поддерживающий подобный вид соединения но в овенах этого нет, а всё остальное извините, хоть в пределах цикла, хоть каждый цикл, это невозможно.

Николаев Андрей
16.09.2013, 12:45
Я предлагаю таки остановиться на устройстве c spi. Может есть ему замена с стандартными интерфейсами.

drvlas
16.09.2013, 13:05
не забывайте, что существует некое второе устройство и подстраиваться необходимо под его характеристики тактовой частотыДа нет же, коллега! Ничегошеньки подобного. Слейв должен покорно принимать то, что ему скармливают. Иначе он не Слейв, а Бунтарь - и место ему на галерах :)

Пойду дальше. Если тот слейв, что есть у автора темы, таки правильный слейв, то 19200, о которых автор говорит - вообще отфонарная цифра. Можно рассмотреть, что будет реально в системе, если ПЛК и слейв таки будут работать по SPI, но с частотой, скажем, 2 кГц. Повлияет ли это на характеристики системы. И тогда уже вообще можно не волноваться за скорость. Поставить преобразование уровня - и все.
Я бы так и сделал.
А предлагать автору все переиначить - ну, да, это русский же форум :)

capzap
16.09.2013, 13:37
Помоему это Вы образно говоря, предлагаете из сала варенье делать. Это протокол передачи данных между микросхемами, здесь мы рассматриваем несколько иные устройства, программно можно реализовать все что угодно, но на практике это может и не работать
За цикл Вы не сможете передать на выход несколько импульсов, потому что один цикл - одно состояние выхода, если один импульс за цикл, Вы не можете контролировать сколько времени продлится истинное время цикла между минимальной и максимальной границей, соответственно оконечное устройство на другой стороне проводов, однозначно будет принимать ложные срабатывания.

drvlas
16.09.2013, 13:51
Да, насчет генерации в пределах цикла - тут я погорячился. Неправ.
Но. Но я пытаюсь показать автору, что есть решение. Уж там пусть он решает, кого послушать. Понимаешь? Поэтому быстренько беру свои слова обратновзад и формулирую более корректно:

Итак, если реальный объем передаваемых данных и частота этого действия позволяют работать с низкими частотами SPI, то ПЛК можно заставить генерить такой сигнал (в функции Мастера). Учитывая, что состояние выходов ПЛК изменяетсмя не чаще раза в один его рабочий цикл, реальная частота будет... ну, сотни герц (я не знаю, чем еще загружен ПЛК у автора). Устраивает это - вперед и с песней. Нет - ну, значит нет.

Atman
16.09.2013, 16:02
Kassik , а почему вы не хотите связать плк с микроконтроллером по UART? UART очень легко преобразовать в RS-232 или RS-485. В любом микроконтроллере есть аппаратный UART, а во многих и по 2 аппаратных UAR-та, к тому-же, SPI 50 см не тянет, нужно не более 30 см. Если Вы немного программер на С, то это для Вас будет не сложно.

Kassik
19.09.2013, 07:26
Твою махарайку к ПЛК ОВЕН без специального переходного устройства (адаптера) подключить нельзя, вот и весь сказ. Никто этот адаптер за спасибо делать не будет. Ты прослезишься, когда узнаешь цену вопроса.

"это специальное переходное устройство" всего лишь МК и переходник RS232-TTL к нему, заказал несколько комплектов
IVM пожалуйста не плачь и не слезись.


Я предлагаю таки остановиться на устройстве c spi. Может есть ему замена с стандартными интерфейсами.

согласен, программу уже написал, жду ардуиновские платы и переходники в уровень RS232


Kassik , а почему вы не хотите связать плк с микроконтроллером по UART? UART очень легко преобразовать в RS-232 или RS-485. В любом микроконтроллере есть аппаратный UART, а во многих и по 2 аппаратных UAR-та, к тому-же, SPI 50 см не тянет, нужно не более 30 см.

Именно так и хочу, например, у ATmega2560 более одного аппаратного UART-а, в том числе заказано несколько штук готовых плат с этими МК.


Если Вы немного программер на С, то это для Вас будет не сложно.
Не сложно, но после AVR-studio ардуиновская среда разработки выглядит аскетично и язык сокращенный как ANSI C, но работать можно.