Здравствуйте коллеги Кто программировал в программе Machine expert logic builder (контроллеры шнайдеровские) подскажите пожалуйста как адреса %MD, %MX в модбас регистры перевести?

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

  1. Evgeniy

    Битовые MX(a).(b) - (a) номер байта, (b) номер бита в байте. Например MX20.5 - 10 регистр 5 бит. 32 битные MD(a) - номер двойного слова, множим х2. Например MD10 - это 20 и 21 регистр.

  2. Evgeniy

    Настраиваете порт RS485 на Modbus Slave и(или) включаете Modbus TCP сервер в настройках Ethernet, при обьявлении переменных даете им адреса через AT(MX, MB, MW, MD, ML), больше ничего делать не нужно. По этим адресам читаете/пишите по Modbus rtu/tcp

    • Dzhava

      А как читать адрес 40051.1 40051.2 40051.3?

      • Evgeniy

        В Cds МЭК адресация начинается с 0. Смещение на 1 40051.1. - MX100.1 MX0.1 - 40001.1

        • Dzhava

          И holding register и bool будет сидеть на 40000?

          • Evgeniy

            Да, bool в Holding регистрах. Mxxx это все Holding.

            • Dzhava

              И еще такой вопрос если я PID овские переменные подключу к модбас адрессам они будут сбрасываться каждый раз когда плк перезагружается?

              • Evgeniy

                Объявляйте как Retain и не будут скидываться. Если это ПЛК М241/251. Если М262 то нужно как Persistent, там чуть хитрее делается Для М262. Хотя по желанию можно и для М241/251 так же, но проще просто в Retain положить p.s. тоже самое для любых китайских ПЛК на Cds у которых доступ по Modbus к переменным с AT адресами. Это общая проблема для всех ПЛК Cds под ОС RT Linux, переменные Retain с адресами AT свои свойства соханятся в пзу теряют. Те что в разделе VAR_GLOBAL RETAIN сохраняются в флеш память при от отключении питания и востанавливают от туда значения при включении. ps это для М241/251

                • Dzhava

                  Получается дискретные тоже надо на retain или как persistent ставить Ведь они тоже сбрасывтся после перезагрузки

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

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