Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 24

Тема: Управление движением механизма.

  1. #11
    Пользователь
    Регистрация
    23.01.2008
    Адрес
    Белгородская область, Валуйки
    Сообщений
    274

    По умолчанию

    с него родимого

  2. #12
    Пользователь
    Регистрация
    23.01.2008
    Адрес
    Белгородская область, Валуйки
    Сообщений
    274

    По умолчанию

    Ну вот и доде6лал под себя выкладываю то что получилось может кто то еще что то улучшит
    Вложения Вложения

  3. #13
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,840

    По умолчанию

    У меня есть замечания и улучшения.
    1. Нужно добавить еще одно условие сброса триггера RS1
    1.png
    Первоначально у меня было только это условие. И все работает нормально, но затем добавил два "параноидальных" условия "<=" и ">=" для случая если тележка продолжит движение при не исправном датчике заданного адреса.
    При добавлении этих двух условий про условие "=" забыл.
    2. У элемента PACK для адреса в моем проекте http://www.owen.ru/forum/showthread....l=1#post119997 использовался вход EN с инверсией. Назначение входа EN для элемента PACK_DW понятно из картинки
    2.png
    Если оставить EN без инверсии, то с дополнительным условием по п.1 программа работать не будет.
    Еще не плохо было бы контролировать количество "1" в переменной POLOGENIE. Если оно будет больше одного, то имеет место неисправность какого-то датчика.
    Последний раз редактировалось petera; 07.10.2013 в 15:07.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  4. #14
    Пользователь
    Регистрация
    23.01.2008
    Адрес
    Белгородская область, Валуйки
    Сообщений
    274

    По умолчанию

    Готовых библиотечных функций для этого
    Еще не плохо было бы контролировать количество "1" в переменной POLOGENIE. Если оно будет больше одного, то есть неисправность какого-то датчика.
    не припомню что то.
    можно на ST написать нечто громоздкое но работать будет.
    Например
    IN: DWORD;
    ALARM: BOOL;

    IF (IN.0=FALSE AND IN.1=TRUE AND IN.2=TRUE) THEN
    ALARM:=TRUE;
    ELSIF
    (IN.0=TRUE AND IN.1=FALSE AND IN.2=TRUE) THEN
    ALARM:=TRUE;
    ELSIF
    (IN.0=TRUE AND IN.1=TRUE AND IN.2=FALSE) THEN
    ALARM:=TRUE;
    END_IF


    Только надо учесть что у нас 32 входа нужно будет расписать 32 варианта с описанием состояний 32х входов
    Последний раз редактировалось alexval2006; 07.10.2013 в 16:03.

  5. #15
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,276

    По умолчанию

    Проверка наличия всех положенных датчиков по пути (проскок) ?
    А проверка "едем-едем - ничего не меняется" ?
    Или кладем на такую мелочь ?

  6. #16
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,840

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Проверка наличия всех положенных датчиков по пути (проскок) ?
    А проверка "едем-едем - ничего не меняется" ?
    Или кладем на такую мелочь ?
    Класть на такую "мелочь" нельзя.
    На счет "едем-едем - ничего не меняется" вроде в программе есть таймер и аларм соответствующий.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  7. #17
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,276

    По умолчанию

    Код от alexva2006 посмотреть немогу. Есть таймер - ок. В Вашем - невидел.
    Проверка проскоков есть там ? (Типа поехали из 2 в 8. Отвалился 4й)

  8. #18
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,840

    По умолчанию

    Цитата Сообщение от alexval2006 Посмотреть сообщение
    Готовых библиотечных функций для этого не припомню что то.
    можно на ST написать нечто громоздкое но работать будет.
    Например
    IN: DWORD;
    ALARM: BOOL;

    IF (IN.0=FALSE AND IN.1=TRUE AND IN.2=TRUE) THEN
    ALARM:=TRUE;
    ELSIF
    (IN.0=TRUE AND IN.1=FALSE AND IN.2=TRUE) THEN
    ALARM:=TRUE;
    ELSIF
    (IN.0=TRUE AND IN.1=TRUE AND IN.2=FALSE) THEN
    ALARM:=TRUE;
    END_IF


    Только надо учесть что у нас 32 входа нужно будет расписать 32 варианта с описанием состояний 32х входов
    Путем перебора всех не правильных комбинаций идти нельзя. Слишком большая комбинация возможных состояний.
    Ровно 32 перебора будет если с помощью CASE сравнить значение только с допустимыми комбинациями.
    Код:
    VAR
        POLOGENIE_OUT: DWORD;
        ALARM: BOOL;
    END_VAR
    Тело программы
    CASE POLOGENIE_OUT OF
    2#00000000000000000000000000000000: ALARM:=FALSE;
    2#10000000000000000000000000000000: ALARM:=FALSE;
    2#01000000000000000000000000000000: ALARM:=FALSE;
    2#00100000000000000000000000000000: ALARM:=FALSE;
    2#00010000000000000000000000000000: ALARM:=FALSE;
    .............................................................................
    2#00000000000000000000000000000001: ALARM:=FALSE;
    ELSE
    ALARM:=TRUE;
    END_CASE
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  9. #19
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,840

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Код от alexva2006 посмотреть немогу. Есть таймер - ок. В Вашем - невидел.
    Проверка проскоков есть там ? (Типа поехали из 2 в 8. Отвалился 4й)
    У меня был совсем простой пример, только идея.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  10. #20
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,243

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    Путем перебора всех не правильных комбинаций идти нельзя. Слишком большая комбинация возможных состояний.
    Ровно 32 перебора будет если с помощью CASE сравнить значение только с допустимыми комбинациями.
    Код:
    VAR
        POLOGENIE_OUT: DWORD;
        ALARM: BOOL;
    END_VAR
    Тело программы
    CASE POLOGENIE_OUT OF
    2#00000000000000000000000000000000: ALARM:=FALSE;
    2#10000000000000000000000000000000: ALARM:=FALSE;
    2#01000000000000000000000000000000: ALARM:=FALSE;
    2#00100000000000000000000000000000: ALARM:=FALSE;
    2#00010000000000000000000000000000: ALARM:=FALSE;
    .............................................................................
    2#00000000000000000000000000000001: ALARM:=FALSE;
    ELSE
    ALARM:=TRUE;
    END_CASE
    А как насчет такого
    Alarm:=foo>bar and foo>1;
    bar:=foo;

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя

Похожие темы

  1. Управление ТЭНами
    от Admiral в разделе Подбор Оборудования
    Ответов: 8
    Последнее сообщение: 06.02.2013, 14:04
  2. Тахометр ТХ01 для контроля скорости механизма
    от alexval2006 в разделе Эксплуатация
    Ответов: 12
    Последнее сообщение: 08.06.2012, 13:41
  3. управление печью
    от pgomberg в разделе Подбор Оборудования
    Ответов: 33
    Последнее сообщение: 04.08.2010, 13:55
  4. Ответов: 21
    Последнее сообщение: 11.03.2010, 11:19
  5. управление 3-х клапанами
    от Дмитрий в разделе Разработки
    Ответов: 4
    Последнее сообщение: 26.08.2009, 04:46

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •