Управление двигателем пуск-стоп
-
- user
- Сообщения: 95
- Зарегистрирован: 05 июл 2016, 21:02
- Версия LabVIEW: 12
- Контактная информация:
Управление двигателем пуск-стоп
Доброго времени суток!
В систему сбора данных, созданную в LV, необходимо добавить блок управления двигателем ПУСК-СТОП. Двигателем управляет реле ОМ-310, связь по Modbus через COM порт.
Приложение уже непрерывно опрашивает ряд параметров у реле и выводит данные. Как сделать кнопки ПУСК и СТОП на лицевой панели, которы при нажатии на них будут отправлять однократный сигнал на реле через тот же порт без остановки программы? Нигде не могу найти пример. Это вообще возможно в LV?
(прошу строго не судить за ошибки....только начинаю изучать...)
В систему сбора данных, созданную в LV, необходимо добавить блок управления двигателем ПУСК-СТОП. Двигателем управляет реле ОМ-310, связь по Modbus через COM порт.
Приложение уже непрерывно опрашивает ряд параметров у реле и выводит данные. Как сделать кнопки ПУСК и СТОП на лицевой панели, которы при нажатии на них будут отправлять однократный сигнал на реле через тот же порт без остановки программы? Нигде не могу найти пример. Это вообще возможно в LV?
(прошу строго не судить за ошибки....только начинаю изучать...)
-
Jakob Brontfeyn
- expert
- Сообщения: 1729
- Зарегистрирован: 28 фев 2008, 11:01
- Награды: 6
- Благодарил (а): 1 раз
- Контактная информация:
Re: Управление двигателем пуск-стоп
smotri primerAlexOskar писал(а):Доброго времени суток!
В систему сбора данных, созданную в LV, необходимо добавить блок управления двигателем ПУСК-СТОП. Двигателем управляет реле ОМ-310, связь по Modbus через COM порт.
Приложение уже непрерывно опрашивает ряд параметров у реле и выводит данные. Как сделать кнопки ПУСК и СТОП на лицевой панели, которы при нажатии на них будут отправлять однократный сигнал на реле через тот же порт без остановки программы? Нигде не могу найти пример. Это вообще возможно в LV?
(прошу строго не судить за ошибки....только начинаю изучать...)
- Вложения
-
- pusk_stop.vi
- (23.57 КБ) 111 скачиваний
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Управление двигателем пуск-стоп
В базовом варианте примерно так.
- Вложения
-
- pusk_stop.vi
- (23.97 КБ) 80 скачиваний
-
- user
- Сообщения: 95
- Зарегистрирован: 05 июл 2016, 21:02
- Версия LabVIEW: 12
- Контактная информация:
Re: Управление двигателем пуск-стоп
Спасибо за варианты!
Borjomy_1, в Вашем варианте у меня не определились 2 элемента. Что там должно быть?
Borjomy_1, в Вашем варианте у меня не определились 2 элемента. Что там должно быть?
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Управление двигателем пуск-стоп
Это элементы библиотеки NI Modbus.llb, которые работают с MODBUS. Если интересно, то поищите на NI.com (не могу ее подцепить в сообщение, т.к. размер больше 2Мб)
-
- user
- Сообщения: 95
- Зарегистрирован: 05 июл 2016, 21:02
- Версия LabVIEW: 12
- Контактная информация:
Re: Управление двигателем пуск-стоп
Разбирался сегодня с предложенными вариантами. Решения классные, я такого бы не сделал сам, спасибо. К сожалению, Ваш вариант, Borjomy_1, я не осилил. Не могу понять что за функции выполняют элементы. Может есть какая литература?
Но столкнулся с еще парочкой проблем и прошу помощи:
1. Не могу придумать как встроить отправку команд на пуск и остановку в имеющийся цикл опроса.
2. Приложение постоянно выполняет циклический опрос устройства и для срабатывания кнопок приходится удерживать их до тех пор, пока не придет их очередь. Время цикла порядка 16 секунд (много запросов) и это подбешивает. Можно ли сделать чтобы кнопка зажималась до первой сработки?
Кусок программы прикреплю к сообщению. Посмотрите пожалуйста опытным взглядом, может есть более простые и изящные решения для таких запросов-ответов.
Но столкнулся с еще парочкой проблем и прошу помощи:
1. Не могу придумать как встроить отправку команд на пуск и остановку в имеющийся цикл опроса.
2. Приложение постоянно выполняет циклический опрос устройства и для срабатывания кнопок приходится удерживать их до тех пор, пока не придет их очередь. Время цикла порядка 16 секунд (много запросов) и это подбешивает. Можно ли сделать чтобы кнопка зажималась до первой сработки?
Кусок программы прикреплю к сообщению. Посмотрите пожалуйста опытным взглядом, может есть более простые и изящные решения для таких запросов-ответов.
- Вложения
-
- OM-310-2 - копия.vi
- (30.37 КБ) 91 скачивание
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Управление двигателем пуск-стоп
У вас там 3 запроса. Между прочим, предлагаемый мной вариант, с библиотекой позволяет читать несколько ячеек подряд, одним запросом. Выбор банков я вставил, поскольку неизвестно, к какому именно банку вы обращаетесь. Лишнее вполне можно удалить.
В вашем варианте кнопка стоп никогда не сможет сработать во внутреннем цикле. Ставьте ее во внутренний цикл, а результат транслируйте во внешний. Тем более, что он при таком построении программы работать не будет (нет условия выхода из внутреннего цикла и продолжения работы во внешнем)
Рекомендую все-таки освоить библиотеку. У вас абсолютно не предусмотрена обработка ошибок, и поэтому могут быть такие задержки в цикле - при непоступлении заданного количества байт (когда устройство выдает ошибку) ответа драйвер ждет таймаута, а он большой. Отсюда, кстати, может быть и такое недопустимо большое время цикла. Также операция CLR абсолютно бесполезна и алгоритмически является вредной. При правильной обработке вы должны явно вычитывать пакет.
Кроме того, есть маленькая тонкость в настройках системного драйвера (Панель управления/Диспетчер устройств/Порты COM/Com x/Свойства/Port Settings/Advanced...) выставьте размер приемного и передающего буферов в 1. Тогда уменьшится время задержки между приемом байта по порту и отдачей его в программу
В вашем варианте кнопка стоп никогда не сможет сработать во внутреннем цикле. Ставьте ее во внутренний цикл, а результат транслируйте во внешний. Тем более, что он при таком построении программы работать не будет (нет условия выхода из внутреннего цикла и продолжения работы во внешнем)
Рекомендую все-таки освоить библиотеку. У вас абсолютно не предусмотрена обработка ошибок, и поэтому могут быть такие задержки в цикле - при непоступлении заданного количества байт (когда устройство выдает ошибку) ответа драйвер ждет таймаута, а он большой. Отсюда, кстати, может быть и такое недопустимо большое время цикла. Также операция CLR абсолютно бесполезна и алгоритмически является вредной. При правильной обработке вы должны явно вычитывать пакет.
Кроме того, есть маленькая тонкость в настройках системного драйвера (Панель управления/Диспетчер устройств/Порты COM/Com x/Свойства/Port Settings/Advanced...) выставьте размер приемного и передающего буферов в 1. Тогда уменьшится время задержки между приемом байта по порту и отдачей его в программу
-
- user
- Сообщения: 95
- Зарегистрирован: 05 июл 2016, 21:02
- Версия LabVIEW: 12
- Контактная информация:
Re: Управление двигателем пуск-стоп
Спасибо за советы. Мне рекомендовали очищать порт перед записью в него нового запроса, поэтому везде CLR вставлены.
Я выложил лишь маленький фрагмент программы. Полная программа опрашивает 20 едениц оборудования по куче параметров, отсюда и продолжительность цикла.
Библиотеку я очень хочу освоить, но не могу найти ее описание.
Какую функцию выполняют эти банки?
И можно пример обработки ошибок?
Я выложил лишь маленький фрагмент программы. Полная программа опрашивает 20 едениц оборудования по куче параметров, отсюда и продолжительность цикла.
Библиотеку я очень хочу освоить, но не могу найти ее описание.
Какую функцию выполняют эти банки?
И можно пример обработки ошибок?
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Управление двигателем пуск-стоп
Если у вас куча параметров, расположенная в близких ячейках, то стратегически более правильно забирать сразу массив, а не опрашивать каждую ячейку отдельно. Банк в терминах Modbus - это массив ячеек. Всего в стандарте modbus 4 банка. 2 банка (один только на чтение, другой на чтение-запись) размером ячейки 2 байта и два банка битовых. По стандарту размер банка 65536 ячеек, однако допустимо иметь не все ячейки.
Какое вам надо описание? Пример я вам дал. Параметр Quantity характеризует размер принимаемого массива, вам нужно правильно выбрать банк (из двух, я думаю, это будет несложно). Адрес устройства (а у вас их много) задается через переменную Serial Parameters/Slave Address
Обработку ошибок можно посмотреть в этих vi, которые производят чтение/запись в modbus
Какое вам надо описание? Пример я вам дал. Параметр Quantity характеризует размер принимаемого массива, вам нужно правильно выбрать банк (из двух, я думаю, это будет несложно). Адрес устройства (а у вас их много) задается через переменную Serial Parameters/Slave Address
Обработку ошибок можно посмотреть в этих vi, которые производят чтение/запись в modbus
-
- user
- Сообщения: 95
- Зарегистрирован: 05 июл 2016, 21:02
- Версия LabVIEW: 12
- Контактная информация:
Re: Управление двигателем пуск-стоп
А для запроса такого массива должна быть специальная команда? Это вообще распространяется на 8-битное общение?
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Управление двигателем пуск-стоп
естественноА для запроса такого массива должна быть специальная команда?
это распространяется на все транспортные протоколы ModbusЭто вообще распространяется на 8-битное общение?
-
- user
- Сообщения: 95
- Зарегистрирован: 05 июл 2016, 21:02
- Версия LabVIEW: 12
- Контактная информация:
Re: Управление двигателем пуск-стоп
Спасибо за совет с запросом массива данных. Сегодня удалось сократить запросы вполовину.
Но прошу еще немного помощи в настройке порта. За что отвечают подчеркнутые параметры и что настроить, чтобы было как на картнке?
Но прошу еще немного помощи в настройке порта. За что отвечают подчеркнутые параметры и что настроить, чтобы было как на картнке?
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Управление двигателем пуск-стоп
Если у вас программа под Labview работает, то ничего больше настраивать не нужно, большинство параметров на картинке дефолтные.
Кстати, для ускорения работы рекомендую ваши устройства перевести на более высокую скорость обмена (у вас 9600) - 57600 или 115200. Тогда интервалы обмена существенно уменьшатся.
Кстати, для ускорения работы рекомендую ваши устройства перевести на более высокую скорость обмена (у вас 9600) - 57600 или 115200. Тогда интервалы обмена существенно уменьшатся.
-
- user
- Сообщения: 95
- Зарегистрирован: 05 июл 2016, 21:02
- Версия LabVIEW: 12
- Контактная информация:
Re: Управление двигателем пуск-стоп
Когда я запускаю свою программу, то у меня выдает параметры как на прилагаемой здесь картинке. Что нужно изменить, чтобы было так, как на картинке в моем предыдущем посте?
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Управление двигателем пуск-стоп
XOn Char, XOff Char и Replace Char можно выставить через Property Node: InSize и OutSize задаётся через VISA Set I/O Buffer Size (по дефолту 4096 байт на вход и на выход).AlexOskar писал(а):Когда я запускаю свою программу, то у меня выдает параметры как на прилагаемой здесь картинке. Что нужно изменить, чтобы было так, как на картинке в моем предыдущем посте?
Shake, XOn Limit и XOff Limit в явном виде не задаётся, драйвер VISA должен сам управлять этими параметрами.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 3 Ответы
- 47 Просмотры
-
Последнее сообщение Artem.spb