Циклическое чтение/запись через RS-485/Modbus регистров ПЧ другого бренда для отслеживания ошибок в реальном времени.

ivan bratanov
Сообщения: 181
Зарегистрирован: 31 авг 2019, 13:12

Re: Циклическое чтение/запись через RS-485/Modbus регистров ПЧ другого бренда для отслеживания ошибок в реальном времени

Сообщение ivan bratanov »

Так несколько раз уже сказали, что нужно делать отдельное устройство!
Так я уже сказал что не понял о какое "устройство" идет речь. "Другое устройство" может быть другой ПЛК, другой ПЧ, другой регистр.... Если бы еще в начале кто-то сказал другой слейв как самого ПЧ, все было бы понятно сразу. Невозможно узнать, кто о чем думает.
Вот ты сделал один ПЧ и читаешь адрес 2000, потом делаешь еще один ПЧ и читаешь адрес 3000
Итак, если мы читаем регистр 2100Н из Slave ID1 и хотим прочитать регистр 3001H из того же Slave ID1, мы должны прочитать 3001H из Slave ID2, верно?

Если я установил инструкцию MOV 2100H D1355 для чтения 2100H из Slave ID1, то я должен установить инструкцию MOV 3001H D1356 для чтения регистра 3001H из того же ведомого ID1?

Или надо указать адреса каждого ПЧ в D1900-1931?
Последний раз редактировалось ivan bratanov 13 ноя 2021, 11:51, всего редактировалось 1 раз.

ivan bratanov
Сообщения: 181
Зарегистрирован: 31 авг 2019, 13:12

Re: Циклическое чтение/запись через RS-485/Modbus регистров ПЧ другого бренда для отслеживания ошибок в реальном времени

Сообщение ivan bratanov »

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

PLC LINK основан на протоколе MODBUS. Он создает канал для обмена между Master устройством и подключенными Slave устройствами. В отличие от использования отдельных инструкций для связи (MODWR, MODRD), PLC LINK непрерывно обменивается данными между регистрами устройств в реальном времени.

Существуют 2 основных варианта PLC LINK - с использованием последовательных адресов и регистров и непоследовательных адресов и регистров. В первом варианте (M1353 / M1356 = OFF) значение адреса первого ведомого устройства устанавливается в D1399. Затем PLC LINK автоматически назначает последовательные адреса подключенным Slave устройствам. Например, если подключено 3 Slave устройства и значение, заданное в D1399, равно K2, первому Slave устройству будет назначен адрес 2, второму 3 и третьему 4.

В другом варианте (M1353 / M1356 = ON) адреса подчиненных устройств устанавливаются вручную и индивидуально в регистрах D1900-D1915 (для 16 Slave устройств). M1353 указывает на чтение и запись до 50 слов, а M1356 активирует ручное назначение коммуникационных адресов. Оба регистра (M1353 и M1356) должны быть активированы одновременно. Тогда D1399 не используется.

Первый вариант используется, когда в Slave устройствах все регистры чтения и записи имеют последовательные адреса. Например, регуляторы частоты Delta имеют последовательные адреса регистров чтения и записи. Этот вариант можно успешно использовать.

Второй вариант используется для Slave устройств, в которых регистры чтения и / или записи не имеют последовательных адресов (это имеет место в моем случае, когда регистр чтения ошибок имеет адрес 2012H и регистр чтения частоты 3001H).

Во втором варианте для например чтения 2 отдельных регистров из одного и того же физическое устройство используются 2 последовательных адреса, установленных в D1900 и D1901 (Slave ID1 и Slave ID2). Например, если нам нужно прочитать 2 разных адреса из одного ПЧ с коммуникационным адресом 2, мы устанавливаем D1900 = 2 и D1901 = 2. Тогда PLC LINK получит доступ к одному и тому же физическому устройству, представленному как два отдельных Slave устройства. В этом случае используются специальные регистры чтения: D1434 для одного регистра (1202H) и 1435 для другого регистра (3001H) с того же физического устройства (либо ПЧ, либо сервопривода).

Основное отличие в этом случае состоит в том, что специальные регистры D1480-D1495 и D1496-D1511 используются по-разному в обоих вариантах. В первом варианте значения, которые PLC LINK передает Slave устройствам, напрямую считываются / записываются в эти регистры. Во втором варианте в ним указывается начальный адрес серии регистров, в / из которых будет производиться запись / чтение. Например, если Slave устройство 1 настроено на D1900 = K2, D1480 = K100, D1496 = K200, D1434 = K1, D1450 = K1, D1355 = 2102H, D1415 = 2000H, PLC LINK будет записывать в регистре 2000H физического устройства адресу 2 информация которая вводится в регистр D100 и будет записывать в регистр D200 информацию, считанную из регистра 2102H на том же устройстве.

Например, если есть другой регистр для чтения с того же физического устройства, оно представлено как Slave ID2. Например, если вам нужно прочитать регистр 3001H с того же физического устройства (либо ПЧ, либо сервопривода), установите D1901 = K2, D1481 = K300, D1435 = K1 и D1356 = 3001H. В этом случае PLC LINK будет читать из Slave ID2 (которое снова является тем же ПЧ или сервоприводом) с тем же адресом связи 2, регистр адресом 3001H с устройства и записывать его в регистр D300 ПЛК.


Все остальные специальные регистры одинаковы для обоих вариантов. Конкретно в моем случае правильно созданная программа не сработала с первого раза. Тогда мне посоветовали сделать сброс памяти контроллера до заводских (Factory Reset) и попробовать еще раз. Потом программа заработала. Конкретно в моем случае у меня 4 ПЧ, все работает нормально, как описано выше.
Последний раз редактировалось ivan bratanov 31 дек 2021, 02:18, всего редактировалось 2 раза.


Ответить