Оно как и раньше. Есть 8 пультов, на них прошивка Ваша: кто первый встал того и тапки, я ее только для 8 кнопок сделал и битовую маску от них передаю "центральному контроллеру"
Алгоритм работы такой: нажали кнопку 1 светится 1, нажали 2 светится 2 и тд, стоп всегда главный.
Вложение 49857
Вложение 49858
Центральный контроллер собирает битовые маски нажатых кнопок всех постов и в зависимости от настройки, которую я пытаюсь сделать вот уже неделю), включает на модулях дискретного вывода МУ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 пульта не подходит.
Я специально только эту часть программы тестирую отдельно от основной, что бы проще было разбираться, а булевы одинаковые что бы не возиться при тестах создавая их, а настройка второго пульт нужна что бы проверить как работает.