Страница 156 из 360 ПерваяПервая ... 56106146154155156157158166206256 ... ПоследняяПоследняя
Показано с 1,551 по 1,560 из 3594

Тема: разные вопросы новичка

  1. #1551

    По умолчанию

    Цитата Сообщение от Сергей0308 Посмотреть сообщение
    я то не знаю ТЗ!
    Оно как и раньше. Есть 8 пультов, на них прошивка Ваша: кто первый встал того и тапки, я ее только для 8 кнопок сделал и битовую маску от них передаю "центральному контроллеру"
    Алгоритм работы такой: нажали кнопку 1 светится 1, нажали 2 светится 2 и тд, стоп всегда главный.

    2020-06-26_09-32_OWEN Logic.jpg
    MSO1.owl

    Центральный контроллер собирает битовые маски нажатых кнопок всех постов и в зависимости от настройки, которую я пытаюсь сделать вот уже неделю), включает на модулях дискретного вывода МУ110-224.16Р выходы (например: на первую кнопку настроено 1 и 2, на вторую 1 и 3, на 3 - 1 и 4 и тд., и вот эту настройку хотелось бы менять через меню), один модуль на 2 пульта.
    Считаем наработку по первой кнопке каждого поста, так же считаем ее включения, на экраны выводим общий пробег/включения и пробег включения до ТО.
    Есть настройка сколько у нас пультов и какие выходы активны при нажатии какой кнопки (пока я сделал настройку каждой программы для всех пультов одновременно и сделал это не очень красиво, потому и начал с битовыми операциями разбираться что Вы предложили, а вот с командоаппаратом не разобрался)
    Обрабатываем и отображаем всевозможные аварии, на данный момент сделано отслеживание связи с модулями, в последующем планирую добавить залипания пускателей, обработку датчиков давления, температуры и тд.

    Отдельным пунктом выделю использование RFID карточек для доступа к пульту, потому как пример реализации есть, но я совсем не понимаю как он работает и разбираться буду очень долго с ним.

    За проект мне не платят и по сути достаточно было бы сделать на первую кнопку настроено 1 и 2, на вторую 1 и 3, на 3 - 1 и 4 и тд. и никаких настроек и аварий, но так как я с этим работаю уже 12 лет и точно знаю что персонал который монтирует данные решения и который потом ими пользуется умом не блещут, и если что то пойдет не так будут кричать "памагице усе сламалася". Вот и решил подстраховать себя и попробовать подучится.
    Что непонятно: я предполагал, что считывается битовая маска входов(состояния кнопок) с модуля дискретного ввода, одного модуля на 16 входов хватит на 2 поста, на 32 входа хватит на 4 поста, у вас как-то всё иначе, модулями дискретного ввода там пока и не пахнет!
    Я на модулях пробовал, делал весь алгоритм тапок на пр, а у модулей ввода/вывода собирал битовую маску кнопок и отправлял битовую маску какую подсветить, но очень большие задержки уже при 3 пультах, а когда модули вывода повесил на этот же 485 все совсем грустно стало, тоесть ты нажимаешь кнопку и держишь ее пока она не начнет светиться, и держать нужно до 3х секунд, так естественно никто делать не будет.
    Вот потому у меня и приходят 2 сетевые переменные с двух пультов и я их одинаково обрабатываю, и да пульты могут быть на значительном расстоянии, потому один модуль на 2 пульта не подходит.
    И булевы переменные для настройки второго поста необходимо сделать другими, отличными от переменных для настройки первого поста, ну иначе - настройки первого и второго постов будут одинаковыми, надеюсь понятно написал!

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

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

    По умолчанию

    Цитата Сообщение от Saint999 Посмотреть сообщение
    эту часть программы тестирую отдельно от основной, что бы проще было разбираться, а булевы одинаковые что бы не возиться при тестах
    а как тестируете, сможете вообще показать таблицу истинности всего этого действа, тут же чисто булева логика ни каких таймеров, ни каких задержек на N-циклов
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  3. #1553
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    8,236

    По умолчанию

    Цитата Сообщение от Saint999 Посмотреть сообщение
    Оно как и раньше. Есть 8 пультов, на них прошивка Ваша: кто первый встал того и тапки, я ее только для 8 кнопок сделал и битовую маску от них передаю "центральному контроллеру"
    Алгоритм работы такой: нажали кнопку 1 светится 1, нажали 2 светится 2 и тд, стоп всегда главный.

    2020-06-26_09-32_OWEN Logic.jpg
    MSO1.owl

    Центральный контроллер собирает битовые маски нажатых кнопок всех постов и в зависимости от настройки, которую я пытаюсь сделать вот уже неделю), включает на модулях дискретного вывода МУ110-224.16Р выходы (например: на первую кнопку настроено 1 и 2, на вторую 1 и 3, на 3 - 1 и 4 и тд., и вот эту настройку хотелось бы менять через меню), один модуль на 2 пульта.
    Считаем наработку по первой кнопке каждого поста, так же считаем ее включения, на экраны выводим общий пробег/включения и пробег включения до ТО.
    Есть настройка сколько у нас пультов и какие выходы активны при нажатии какой кнопки (пока я сделал настройку каждой программы для всех пультов одновременно и сделал это не очень красиво, потому и начал с битовыми операциями разбираться что Вы предложили, а вот с командоаппаратом не разобрался)
    Обрабатываем и отображаем всевозможные аварии, на данный момент сделано отслеживание связи с модулями, в последующем планирую добавить залипания пускателей, обработку датчиков давления, температуры и тд.

    Отдельным пунктом выделю использование RFID карточек для доступа к пульту, потому как пример реализации есть, но я совсем не понимаю как он работает и разбираться буду очень долго с ним.

    За проект мне не платят и по сути достаточно было бы сделать на первую кнопку настроено 1 и 2, на вторую 1 и 3, на 3 - 1 и 4 и тд. и никаких настроек и аварий, но так как я с этим работаю уже 12 лет и точно знаю что персонал который монтирует данные решения и который потом ими пользуется умом не блещут, и если что то пойдет не так будут кричать "памагице усе сламалася". Вот и решил подстраховать себя и попробовать подучится.

    Я на модулях пробовал, делал весь алгоритм тапок на пр, а у модулей ввода/вывода собирал битовую маску кнопок и отправлял битовую маску какую подсветить, но очень большие задержки уже при 3 пультах, а когда модули вывода повесил на этот же 485 все совсем грустно стало, тоесть ты нажимаешь кнопку и держишь ее пока она не начнет светиться, и держать нужно до 3х секунд, так естественно никто делать не будет.
    Вот потому у меня и приходят 2 сетевые переменные с двух пультов и я их одинаково обрабатываю, и да пульты могут быть на значительном расстоянии, потому один модуль на 2 пульта не подходит.



    Я специально только эту часть программы тестирую отдельно от основной, что бы проще было разбираться, а булевы одинаковые что бы не возиться при тестах создавая их, а настройка второго пульт нужна что бы проверить как работает.
    Понятней не стало, приходится спросить ещё раз: логику мы создали, от каждого поста должно одновременно приходить не более одного бита в состоянии "1", но если всё же придёт более одного взведённого бита, мало ли что: ошибка, сбой, помеха! Так вот какое состояние выходов предпочтительно для такого(аварийного) случая:
    1. Состояние выходов соответствует старшему поступившему биту, имеющему приоритет;
    2. все выходы выключены.
    Как бы логично предусмотреть и логику(в данном случае - состояния выходов) для аварийных случаев, ну я так думаю!
    Ещё как вариант, требующий небольшой доработки имеющейся логики - состояния выходов не меняется, соответствует преведущему, не аварийному состоянию кнопок!
    Последний раз редактировалось Сергей0308; 26.06.2020 в 10:59.
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  4. #1554
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    8,236

    По умолчанию

    Цитата Сообщение от Saint999 Посмотреть сообщение
    Оно как и раньше. Есть 8 пультов, на них прошивка Ваша: кто первый встал того и тапки, я ее только для 8 кнопок сделал и битовую маску от них передаю "центральному контроллеру"
    Алгоритм работы такой: нажали кнопку 1 светится 1, нажали 2 светится 2 и тд, стоп всегда главный.

    2020-06-26_09-32_OWEN Logic.jpg
    MSO1.owl

    Центральный контроллер собирает битовые маски нажатых кнопок всех постов и в зависимости от настройки, которую я пытаюсь сделать вот уже неделю), включает на модулях дискретного вывода МУ110-224.16Р выходы (например: на первую кнопку настроено 1 и 2, на вторую 1 и 3, на 3 - 1 и 4 и тд., и вот эту настройку хотелось бы менять через меню), один модуль на 2 пульта.
    Считаем наработку по первой кнопке каждого поста, так же считаем ее включения, на экраны выводим общий пробег/включения и пробег включения до ТО.
    Есть настройка сколько у нас пультов и какие выходы активны при нажатии какой кнопки (пока я сделал настройку каждой программы для всех пультов одновременно и сделал это не очень красиво, потому и начал с битовыми операциями разбираться что Вы предложили, а вот с командоаппаратом не разобрался)
    Обрабатываем и отображаем всевозможные аварии, на данный момент сделано отслеживание связи с модулями, в последующем планирую добавить залипания пускателей, обработку датчиков давления, температуры и тд.

    Отдельным пунктом выделю использование RFID карточек для доступа к пульту, потому как пример реализации есть, но я совсем не понимаю как он работает и разбираться буду очень долго с ним.

    За проект мне не платят и по сути достаточно было бы сделать на первую кнопку настроено 1 и 2, на вторую 1 и 3, на 3 - 1 и 4 и тд. и никаких настроек и аварий, но так как я с этим работаю уже 12 лет и точно знаю что персонал который монтирует данные решения и который потом ими пользуется умом не блещут, и если что то пойдет не так будут кричать "памагице усе сламалася". Вот и решил подстраховать себя и попробовать подучится.

    Я на модулях пробовал, делал весь алгоритм тапок на пр, а у модулей ввода/вывода собирал битовую маску кнопок и отправлял битовую маску какую подсветить, но очень большие задержки уже при 3 пультах, а когда модули вывода повесил на этот же 485 все совсем грустно стало, тоесть ты нажимаешь кнопку и держишь ее пока она не начнет светиться, и держать нужно до 3х секунд, так естественно никто делать не будет.
    Вот потому у меня и приходят 2 сетевые переменные с двух пультов и я их одинаково обрабатываю, и да пульты могут быть на значительном расстоянии, потому один модуль на 2 пульта не подходит.



    Я специально только эту часть программы тестирую отдельно от основной, что бы проще было разбираться, а булевы одинаковые что бы не возиться при тестах создавая их, а настройка второго пульт нужна что бы проверить как работает.
    Не понял, Вы отказались от модулей дискретного ввода и используете для каждого пульта отдельное ПР?
    Не вижу разницы, с чего считывать битовую маску состояния кнопок с модуля дискретного ввода или с ПР, мне кажется, это то же самое, имею ввиду по быстродействию, за счёт чего Вы выигрыш в быстродействии получили(хотите получить)?
    Ну, тогда, если для каждого пульта отдельное ПР Вам и разделять регистр на байты не нужно, каждый байт будет и так в отдельной переменой!

    Вот поправил:

    EEPROM_1.1.PNG

    EEPROM_1.1.owl
    Последний раз редактировалось Сергей0308; 26.06.2020 в 13:00.
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  5. #1555

    По умолчанию

    Цитата Сообщение от Сергей0308 Посмотреть сообщение
    Не понял, Вы отказались от модулей дискретного ввода и используете для каждого пульта отдельное ПР?
    Да
    Не вижу разницы, с чего считывать битовую маску состояния кнопок с модуля дискретного ввода или с ПР, мне кажется, это то же самое, имею ввиду по быстродействию, за счёт чего Вы выигрыш в быстродействии получили(хотите получить)?
    Пр при нажатии генерит битовую маску и держит ее в ячейке модбас (кнопки у нас с фиксацией), модуль генерит битовую маску пока нажата кнопка и в это время нужно успеть ее забрать, не успел забрать пока нажата, он сгенерит с отпущенной кнопкой, пока 1-2 пульта нормально, потом начинаются задержки, а задержка это время сколько нужно держать кнопку нажатой.

    Ну, тогда, если для каждого пульта отдельное ПР Вам и разделять регистр на байты не нужно, каждый байт будет и так в отдельной переменой!
    Вот я и не разделял, а спросил что я делаю в этих кодированиях, потому как если подать значение сетевой переменной напрямую на sel вход макроса у меня ничего не заработало, значения констант то я не поменял)

    Вот поправил:

    EEPROM_1.1.PNG

    EEPROM_1.1.owl

    Так работает, единственное у меня булевы переменные энергонезависимые с настройкой первую кнопку настроено 1 и 2, на вторую 1 и 3, на 3 - 1 и 4, а у модуля переключаются выводы:
    1 и 3
    1 и 4
    1 и 5

    Правда и в моем примере выше так же было (

  6. #1556

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    а как тестируете, сможете вообще показать таблицу истинности всего этого действа, тут же чисто булева логика ни каких таймеров, ни каких задержек на N-циклов
    Я погуглил про таблицы истинности, и не совсем понимаю как можно создать таблицу всего этого устройства/программы.

    А тестирую просто собрал 4 пульта 1 центральный, 2 модуля 16р подключил кучу кнопок с подсветкой, в меню понастовлял дублирование номеров программ что бы проще было и все это сижу и нажимаю и смотрю за реакцией.
    если что то не так запускаю отладку и пробую понять что я делаю не правильно.

  7. #1557

    По умолчанию

    Цитата Сообщение от Сергей0308 Посмотреть сообщение
    Понятней не стало, приходится спросить ещё раз: логику мы создали, от каждого поста должно одновременно приходить не более одного бита в состоянии "1", но если всё же придёт более одного взведённого бита, мало ли что: ошибка, сбой, помеха! Так вот какое состояние выходов предпочтительно для такого(аварийного) случая:
    1. Состояние выходов соответствует старшему поступившему биту, имеющему приоритет;
    2. все выходы выключены.
    Как бы логично предусмотреть и логику(в данном случае - состояния выходов) для аварийных случаев, ну я так думаю!
    Ещё как вариант, требующий небольшой доработки имеющейся логики - состояния выходов не меняется, соответствует преведущему, не аварийному состоянию кнопок!
    А можно как то сделать фильтр, что бы оставалось предыдущее состояние, если что то включено то оставлять его, а если все выключено то и не включать ничего?
    Это я так понимаю что нужен список возможных вариантов команд, а остальное фильтруем?

  8. #1558
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    8,236

    По умолчанию

    Цитата Сообщение от Saint999 Посмотреть сообщение
    Да

    Пр при нажатии генерит битовую маску и держит ее в ячейке модбас (кнопки у нас с фиксацией), модуль генерит битовую маску пока нажата кнопка и в это время нужно успеть ее забрать, не успел забрать пока нажата, он сгенерит с отпущенной кнопкой, пока 1-2 пульта нормально, потом начинаются задержки, а задержка это время сколько нужно держать кнопку нажатой.


    Вот я и не разделял, а спросил что я делаю в этих кодированиях, потому как если подать значение сетевой переменной напрямую на sel вход макроса у меня ничего не заработало, значения констант то я не поменял)




    Так работает, единственное у меня булевы переменные энергонезависимые с настройкой первую кнопку настроено 1 и 2, на вторую 1 и 3, на 3 - 1 и 4, а у модуля переключаются выводы:
    1 и 3
    1 и 4
    1 и 5

    Правда и в моем примере выше так же было (
    Нулевой бит соответствует первому выходу, в макросе записи бит всё правильно настроено:

    2020-06-26.png

    Возможно Вы булевы переменные сдвинули, замечу например булева переменная с номером "0" отвечает за настройки первого выхода! Может, чтобы понятней было можно начать с булевой переменной с номером "1", тогда хотя бы первые 8 переменных будут совпадать с номером выхода!
    Последний раз редактировалось Сергей0308; 26.06.2020 в 14:00.
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

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

    По умолчанию

    Цитата Сообщение от Saint999 Посмотреть сообщение
    Я погуглил про таблицы истинности, и не совсем понимаю как можно создать таблицу всего этого устройства/программы.
    у Вас есть восемь входов и восемь выходов, к примеру на этом рисунке.
    Далее где угодно, например в exel рисуете таблицу с со следующей первой строкой I8,I7,I6,I5,I4,I3,I2,I1,Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8
    Затем заполняете колонки Ix единичками/ноликами поразрядно с 0 до 255
    Когда все занесли, начинаете заполнять поля колонок с Qx, в зависимости от состояния входов в каждой строке таблицы
    В итоге можете сами написать логику, например воспользовавшись советом или сюда выложить, тут останется только предложить решение, без лишних вопросов о приоритетности, о ситуациях не озвученных в ТЗ и т.п.
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  10. #1560
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    8,236

    По умолчанию

    Цитата Сообщение от Saint999 Посмотреть сообщение
    А можно как то сделать фильтр, что бы оставалось предыдущее состояние, если что то включено то оставлять его, а если все выключено то и не включать ничего?
    Это я так понимаю что нужен список возможных вариантов команд, а остальное фильтруем?
    Здесь всё проще будет, наподобие как мы с кнопками делали для выбора нажатой кнопки пульта, если будет время и желание вечером на досуге это попробую сделать!
    Как-то примерно так, вот проект для демонстрации подправил, для реализации наших хотелок:

    2020-06-26 (2).png

    Ну да что-то типа фильтра получилось, команды с более чем одной нажатой кнопкой не воспринимаются, сохраняется преведущее состояние!

    Не более одной одновременно нажатой кнопки.owl

    Или так:

    Фильтр.PNG

    Фильтр.owl
    Последний раз редактировалось Сергей0308; 28.06.2020 в 01:08.
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

Страница 156 из 360 ПерваяПервая ... 56106146154155156157158166206256 ... ПоследняяПоследняя

Похожие темы

  1. Вопросы новичка!!!
    от sau в разделе ПЛК1хх
    Ответов: 42
    Последнее сообщение: 02.05.2022, 19:57
  2. Вопросы новичка по MasterScada
    от MrNobody в разделе Master SCADA 3
    Ответов: 4
    Последнее сообщение: 04.09.2014, 15:39
  3. ПЛК 110 - Вопросы новичка?
    от di-s в разделе ПЛК1хх
    Ответов: 10
    Последнее сообщение: 06.09.2011, 15:12
  4. Вопросы полного новичка
    от Korion в разделе ПЛК1хх
    Ответов: 11
    Последнее сообщение: 09.02.2010, 10:08
  5. Вопросы новичка по ПЛК
    от Ollegator в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 07.07.2009, 10:29

Ваши права

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