Управление задвижкой - не работает switch-технология.

Простейшие вопросы в области инженерной разработки
Ответить
Anton.M
beginner
beginner
Сообщения: 14
Зарегистрирован: 14 окт 2016, 14:18
Версия LabVIEW: 14
Контактная информация:

Управление задвижкой - не работает switch-технология.

Сообщение Anton.M »

Всем Привет!

По работе появилась задачка, управление электроприводным многооборотным клапаном, который подключен к частотному преобразователю. Сама плата ввода/вывода подключена по каналу modbus tcp. Управление клапаном осуществляется с помощью двух дискретных выходов - "ход" и "реверс". Когда осуществляется закрытие - взведен только выход "ход", во время открытия - оба выхода "ход" и "реверс".
Состояние клапана контролируется отдельным vi-ем, который снимает задание при определенном сочетании четырех концевиков - двух ходовых (CloseP и OpenP) и двух моментных (CloseM и OpenM).
Для решения проблемы автоматического управления решил использовать switch-технологию, которая переключает режимы через иттератор.
Но увы - почему то не работает, понять не могу. При нажатии идет переключение иттератора на "двойку" при открытии, и на "пятерку" при закрытии. Но в структуре выборки (case) у меня идет присвоение иттератору "тройки" или "шестерки" соответственно, чтобы программа перешла на слежение за концевиками, но этого не происходит! Программа тупо виснет на процедуре старта и клапан, перекрутив все концевики, уходит в аварийный режим. Подскажите, что я делаю не так?
Вложения
Tester.vi
Основная программа
(77.55 КБ) 102 скачивания
Valve Driver.vi
Управление клапаном
(32.28 КБ) 94 скачивания
Аватара пользователя
Andrew Lunev

Activity Professionalism
VIP
VIP
Сообщения: 957
Зарегистрирован: 11 дек 2010, 12:31
Награды: 2
Версия LabVIEW: 2014-2021
Откуда: Москва
Благодарил (а): 4 раза
Поблагодарили: 10 раз

Re: Управление задвижкой - не работает switch-технология.

Сообщение Andrew Lunev »

Код даже проверять не хочу. У вас не соблюдается основной принцип программирования на Labview - принцип потока данных. Из-за этого вы совершенно не знаете какая часть кода будет выполнена в какой последовательности. Скорее всего в одном case пишете в переменную, а в другом параллельно читаете старое значение. Такой стиль программирования недопустим. Использовать переменные в Labview крайне нежелательно. Практически любой код можно переработать так, чтобы обойтись без переменных. Начните с чтения книги "Labview для всех".

В качестве примера картинка из курса Labview Core1. Из-за использования переменной возможно 4 варианта выполнения кода и какой будет в конкретной итерации заранее неизвестно. В вашей программе происходит что-то похожее.
Вложения
val.PNG
Аватара пользователя
Andrew Lunev

Activity Professionalism
VIP
VIP
Сообщения: 957
Зарегистрирован: 11 дек 2010, 12:31
Награды: 2
Версия LabVIEW: 2014-2021
Откуда: Москва
Благодарил (а): 4 раза
Поблагодарили: 10 раз

Re: Управление задвижкой - не работает switch-технология.

Сообщение Andrew Lunev »

Пример из вашей программы:
В этом варианте вы параллельно пишите в переменную true и false. В какой последовательности будет запись? Сначала 1 потом 2 или сначала 2 и потом 1? Никто не знает...
Из за этого на выходе неопределенность. И так у вас с большинством переменных.
Вложения
val2.PNG
Anton.M
beginner
beginner
Сообщения: 14
Зарегистрирован: 14 окт 2016, 14:18
Версия LabVIEW: 14
Контактная информация:

Re: Управление задвижкой - не работает switch-технология.

Сообщение Anton.M »

Andrew Lunev писал(а):Пример из вашей программы:
В этом варианте вы параллельно пишите в переменную true и false. В какой последовательности будет запись? Сначала 1 потом 2 или сначала 2 и потом 1? Никто не знает...
Из за этого на выходе неопределенность. И так у вас с большинством переменных.
Здесь уже спросони забыл поставить структуру Case и FirstCall.

Сейчас вот почему то на вкладке K5 при нажатии открытия иттератор на миллисекунду меняет состояние и сбрасывает на ноль.
На K1 тишина при нажатии...
Blackman

Activity
leader
leader
Сообщения: 932
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Версия LabVIEW: 6.1,8.5,20

Re: Управление задвижкой - не работает switch-технология.

Сообщение Blackman »

Рекомендую посмотреть сюда:
LabVIEW State Diagram Toolkit
https://forums.ni.com/t5/Reference-Desi ... -p/3606081
Аватара пользователя
Jakob Brontfeyn

Activity Gold Silver Black
expert
expert
Сообщения: 1729
Зарегистрирован: 28 фев 2008, 11:01
Награды: 6
Благодарил (а): 1 раз
Контактная информация:

Re: Управление задвижкой - не работает switch-технология.

Сообщение Jakob Brontfeyn »

Не поленитесь изучить тулкит для решения ПЛК-шных задач в Лабвью

это почти Ваш пример, реализованный несколькими способами
http://www.labviewportal.org/viewtopic. ... =30#p43333

Отдельное описание
http://www.labviewportal.org/viewtopic. ... =30#p43117

это полный комплект с описанием и примерами
http://www.labviewportal.org/viewtopic. ... =45#p43928
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Для чайников»