Цитата Сообщение от Сергей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 пульта не подходит.
И булевы переменные для настройки второго поста необходимо сделать другими, отличными от переменных для настройки первого поста, ну иначе - настройки первого и второго постов будут одинаковыми, надеюсь понятно написал!

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