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

Комментарии: 40

  1. Vyacheslav

    А переменная о чем? Значение датчика?

    • Andrey

      Таки нет, у меня тут управление конвеером с быстроходной дельты (слейв) через медлительный Овен СПК (мастер) И надо в двух байтах оперативные параметры слать, а на дельте разбирать их побитово

      • Vyacheslav

        Можно сделать туда и обратно инкрементор. Если меняется, верим значениям всего

        • Andrey

          С этого места поподробнее, кто такой инкрементор?

          • Vyacheslav

            Переменная, прибавляется в слейве. Мастер анализирует прибавляется ли. Если стоит - обрыв связи Можно ведь сделать перекрестный обмен. Так на атомке делал

            • Andrey

              Что за перекрестный? Запись, чтение и сравнение?

              • Vyacheslav

                Представим есть сеть устройств и протокол Modbus Нужно как то диагностировать всю сеть. С АРМ Как? Делается в слейве переменная, пусть Count

                • Berkeman

                  Мастер так и так же контроллит связь со слейвами

                  • Vyacheslav

                    И она раз в секунду прибавляется. Если смотреть на изменение это равно гарантия

                    • Berkeman

                      Гарантия связи?

                      • Nick

                        изменение дело не в гарантии связи, а диагностики ее устойчивости и валидности данных

                        • Vyacheslav

                          Мне просто нужно было понимать верить или нет

                          • Fedor

                            Модбас протокол с подтверждением. Значит после посыла или запроса данных будет либо ответ либо тайм-аут. В ответе будет или "понял-принял" или "нихуя не понял". Все это можно считать и проанализировать на стороне мастера. Лайфбит или счётчик телеграмм имеет смысл городить над протоколами без контроля доставки.

                            • Vyacheslav

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

                              • Fedor

                                Не в упрёк, а для информации.

                            • Anonim

                              Мне нужен лайф бит для слейва. Что бы он знал что мастер отвалился, и его команда не актуальна(неверна). Например мастер плк, дистанционно управляет слейвом плк. Если слейв не видит жизни мастера ,то его команду, через защитное время, отменяет. "Мастер не на связи"

                  • Evgeniy

                    И связь и доставку пакетов

                    • Berkeman

                      Именно! Вот если на слейве нужно знать о связи с мастером, то делается хэртбит

                  • Vyacheslav

                    Если слейв логическое устройство. Если можно завести переменную для диагностики связи - советую это сделать

      • Oleg

        У овна должен банально быть статус с ошибкой, в случае если он не передал информацию, то слейв не отдаст ответ, овен выдаст эррор по результату операции и номер ошибки, вот этот флаг и снимайте как проверку

        • Alexey

          Добрый день, у кого был опыт использования драйвера Carel evd evolution в удаленности от ШД более 50 метров?

        • Vyacheslav

          Это частично же, должно шевелиться

        • Nick

          не все шаблоны это поддерживают

          • Oleg

            Ну взять другую либрари, в которой есть поддержка? Ну на кодесисе их точно не один блок

          • Andrey

            На дельту нет шаблона, там слейв с каналами врукопашную настроен

            • Nick

              ну либо контроль связи, по изменению бита тем более

              • Berkeman

                Мастер взводит на слейве бит, слейв видит это и сбрасывает его. Таким макаром оба знают, есть связь или нет, верно?

                • Nick

                  так точно

                  • Berkeman

                    А время между импульсами какое поставить можно? Что бы и канал не засирать 3 сек.?

                    • Nick

                      все зависит от времени реакции, на аварию не время между импульсами а время между отправкой бита и ожиданием его сброса или изменения

                      • Berkeman

                        Да, это и имею ввиду

            • Fedor

              Через какие функции обмен работает в овене?

              • Nick

                через универсальные наверное

              • Andrey

                3, 6 пока юзаю Там в принципе на порте один слейв, можно и читать циклически. Или лучше не стоит?

                • Nick

                  не , можно еще через библу owencommunicaion

                  • Andrey

                    А смысл?

                    • Nick

                      больше возможностей

                      • Andrey

                        Типа там обработки ошибок есть?

                        • Nick

                          вроде , да

                        • Fedor

                          Обработка ошибок и в стандартных есть

Не нашли ответ?

Вам также может быть интересно