Здравствуйте, Владимир.
PLC-100.R
Задачи самые разные. Одна из них - нестандартное использование PWM модулятора для целей индикации и управления.
Снова обращусь сюда - решил самостоятельно проверить, будут ли конфликты с модулями ввода-вывода при широковещательном сообщении. Подключил и считываю данные с модуля дискретного ввода МВ110-32ДН. Одновременно делаю рассылку широковещательным сообщением по адресу 0, регистры пробовал ставить разные. Периодически при обращении к адресу 0 выскакивает ошибка 81, не доходят мол данные от модулей (хотя сигнал с МА110-32ДН не пропадает). Это не страшно?
Вложение 28141
И ещё, есть ли какие-нибудь подводные камни когда буду работать одновременно с RS-485-1 и RS-485-2? (ПЛК110-30) Просто создаю 2 Modbus Master-а и делаю соответсвующие замены элемента debug-232 на RS-485-1 и RS-485-2?
Не знаю почему, возможно мастер в конфигурации не корректно работает. Потому, что по стандарту, при получении широковещательного сообщения, подчиненные устройства выполняют команду, а ответ мастеру не отправляют.Одновременно делаю рассылку широковещательным сообщением по адресу 0, регистры пробовал ставить разные. Периодически при обращении к адресу 0 выскакивает ошибка 81, не доходят мол данные от модулей (хотя сигнал с МА110-32ДН не пропадает).
Вложение 28142
https://ru.m.wikipedia.org/wiki/Modbus
Логично, ведь подчиненных может быть много! Как они все сразу ответят? Каша будет на шине.
По этому "не доходят мол данные от модулей" в принципе не должно быть, мастер ведь не должен ждать никаких ответов для широковещательного сообщения.
Два мастера, у каждого свой интерфейс. Ни каких проблем быть не должно.И ещё, есть ли какие-нибудь подводные камни когда буду работать одновременно с RS-485-1 и RS-485-2? (ПЛК110-30) Просто создаю 2 Modbus Master-а и делаю соответсвующие замены элемента debug-232 на RS-485-1 и RS-485-2?
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
https://www.youtube.com/@%D0%9F%D0%B...BA%D0%BE%D0%B2
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Если я создал проект в Codesys 2.3 на CFC, могу ли я изменить его на ST в какой-то момент, или надо создавать проект заново?
нет, не сможете, CFC не поддается конвертации в другой язык.
Попробуйте на простых примерах... И это кажется где-то в справке даже было.
Или попробуйте конвертировать не в ST а в IL или другой. нюансов уже не помню, но напрямую в ST не работает.
Добрый день.
Вопрос не сколько к среде программирования, а больше к реализации логики на ФБД. Нужно в зависимости от максимального параметра Х произвести выбор минимального по параметру Y. Вся загвоздка в том, что может быть несколько каналов, где Х максимально. Как пример, Х1=20, Х2=55, Х3=55, Х4=55; Y1=6, Y2=7, Y3=22, Y4=21. Пробовал пойти таким путем - найти макс. значение среди Х - 55; булево определить к каким Х он относится - Х2, Х3, Х4=1, Х1=0; соответственные номера каналов на Y перемножить с такими же номерами каналов т.е. Х1(0)*Y1(6)=0, Х2(1)*Y2(7)=7,Х3(1)*Y4(22)=22,Х4(1)*Y4(21)=21 и потом из полученных значений для Y(№) выбрать минимальный. Но при такой "моей" логике, будет выбираться канал с минимальным значением, который, в данном случае, равный "0" - Y1, а нужен минимальный из соответствующих по номеру - 2,3,4 Y'ков. Из указанного условия это Y2=7. А как ограничить возникающие в работе Y'ков "0" пока не получается. Думал как-то через SEL, но идей пока нет.
Подскажите, пожалуйста, как "подправить" программку чтобы в итоге выбирался Y2=7.
1. Создаем двумерный массив, элементами которого будут соответствующие X и Y.
2. Сортируем этот массив в порядке убывания "иксов" ("игреки" сортируются вместе с "иксами"). В итоге имеем в начале массива все максимальные значения (в любом количестве).
3. Ответом делаем "Y" самого первого элемента.
4. Если второй "X" равен первому, то сравниваем второй "Y" с первым "Y", если он меньше, то делаем его ответом. И так делаем до тех пор, пока не переберем все повторяющиеся "иксы".