Спасибо что не прошли мимо. Прикладываю скрины настроек. Вложение 61018
Вид для печати
Спасибо что не прошли мимо. Прикладываю скрины настроек. Вложение 61018
Вложение 61019 Вот ещё сразу всё не прикрипилосьВложение 61020
Ну и где у вас 32 битная переменная? У вас все 16 битные и передаются они через 1 регистр.
32 битная переменная занимает 2 регистра.
И только в ПЛК вы неявно преобразуете WORD в DWORD. Толку от этого никакого, вы должны 32 битную переменную передавать и принимать.
Читайте про типы данных, их соответствие, верхний предел и преобразования типов, всё есть в справках.
Уважаемый kondor умом понимаю что должен передать 32 бит и принять, но никак не пойму как это сделать. Лоджик сам ведь раздаёт регистры, удалил переменные создал новые в этот раз выдал двумя регистрами, сам не понял как, удалил создал новые всё. Но до конца не уверен что правильно. И смущает что в ПЛК считывает только registor input он же WORD? Посмотри пожалуйста...Вложение 61028Вложение 61029
Прошу прощения но вроде с CoDeSys связано. Больше не буду. Пойду в ПР поищу.
Забейте в ПР, одну переменную в 2 регистра, надо сделать со смещением. Вложение 61038
register input он же WORD, значит надо использовать не его, а где DWORD написано))) Вложение 61032
Какая разница - 32 или 16- битный счетчик в ПР ? Если 32-бита, вопрос в только в том - ответит ли ПР (не знаю) если запросить только младшее слово у 32-х битного значения и не опрашивать реже цикла заполнения этого младшего слова (это надо умудрится)
не боись, где-то в плк :
Всё. Для 16-ти битного на ПР тоже самоеКод:_cnt : все равно что 16-ти битное где-то в области обмена
...
var
cnt_ : word;
нужный_счетчик : dword;
end_var
----
нужный_счетчик := (нужный_счетчик + dword_to_word(cnt_ - _cnt)) mod 5_000_001; //по заявкам телезрителей
cnt_ := _cnt;
Вложение 61033 Проделал как рекомендовал kondor3000 не работает. Вроде ерундовая задача второй день сижу. Люди помогите:)Вложение 61034
Вам надо 32 битное число разобрать на старший и младший регистр и передать, здесь подобная тема https://owen.ru/forum/showthread.php?t=34198&page=2
В настройках UMD (Универсал модбас девайс) возможно придётся поменять последнюю настройку на Native или поменять местами младший и старший регистры.
А принимать уже как DWORD.
Проверить передачу с ПР можно хоть Owen OPC Server, ставится за 2 минуты https://owen.ru/product/new_opc_server
ЗЫ: Выше выложил скрины.
Добрый день! Есть ли возможность работы с группой Modbus параметров, как с массивом, если ПЛК110 слэйв?
Когда мастер, можно использовать String, но в режиме слэйв String недоступен. Регистров много, хотелось бы их как-то сгруппировать. Если не упаковкой в String, то хотя бы обращаться к регистрам по индексу массива. Есть такая возможность?
Да есть, можно использовать группу регистров слейва и мастера как массив и можно как структуру.
Здесь есть пример, в моём последнем сообщении копировал группу регистров из мастера в слейв, как массив.
https://owen.ru/forum/showthread.php?t=35809
Добрый день, я совсем новичок в разработке программ.
ПЛК110 опрашивает два устройства МВ110-224.8А.
Как получить ошибку связи с модулями? Есть ли какая то функция которая отлавливает адрес устройства которое не ответило на опрос?
Подскажите пожалуйста может есть примеры такой реализации?
Добрый день.
См. канал Last Address.
К нему нужно привязать переменную типа DWORD.
Вложение 61122
спасибо за ответ.
Данная переменная меняется в ходе опроса. Может есть функциональный блок, который сопоставляет эти меняющие значения ошибки и адреса устройства и на выходе однозначно определяет какой устройство не ответило из N-slave устройств не ответило на запрос?
Если опрос идёт, Last Address показывает адрес устройства, а Last Error ошибку равную нулю. Если одно из устройств отвалится, Last Error будет показывать ошибку, (например 81 - нет связи), то есть не будет равно нулю.
Достаточно сделать проверку на ноль Last Error, при адресе Last Address, например с помощью IF ......THEN.
Кол-во битов потери связи и проверок, сделать по кол-ву слейвов. Лучше сделать маску битов потери связи.
Всем привет. Имеется интернет шлюз МКОН - 24. Хочу использовать его в связке с контроллером WAGO 750-891.
Ранее не когда не настраивал МКОН. Смотрел пример настройки с контроллером ОВЕН, а вот с wago все по-другому.
Мастер - контроллер wago в ethernet, а slave в rs-485
Подскажите каким-образом можно его связать с wago?
Я новичок, мучает один вопрос. Как правильно сделать аварийную уставку
Суть: Есть технологический процесс, где до пуска компрессора, давления в системе 0 МПа. После пуска компрессора рабочее давление грубо говоря от 2 до 5 МПа.
Я в свою очередь делаю аварийные уставки 2 Мпа по низкому значению, и 5 МПа по верхнему значению. Тут мы сразу понимаем, что когда мы включим шкаф с контроллером, и нажмём пуск, то он уйдет в аварию, так как давление ещё ниже 2.5 МПа.
Я спрашиваю, более опытного коллегу, как лучше всего сделать. На что он мне отвечает - ставь таймер 5 секунд, компрессор за это время выйдет в рабочей режим. То есть ставим задержку после этого мониторим уставку.
Тут я начинаю сомневаться. Пример с таймером, это однотипный проект, где длина трубы и объем бака не меняются уже 6 лет, а если у меня длина трубы больше (в моём процессе она реально больше, и таймер я пока не знаю какой ставить, к тому же мой шкаф не управляет компрессором, а только следит за давлением, вдруг его включат позже. Короче засада, так как у меня всё по другому.)
А почему бы не сделать так: Пусть до пуска нижняя аварийная уставка у нас 0 МПа, когда включится система и начнётся рост давления от 0 до 2 МПа аварийная уставка 0. После того как мы перешли значение 2 Мпа, аварийная уставка меняется на 2МП. На что мне отвечают - это уже проеденный этап не изобретай велосипед. Тут есть с чем согласиться.
Прошу рассудить и дать свои рекомендации, что вы далаете когда аварийная это какой то заданный промежуток, и есть процессы не аварийные когда мы вываливаемся за эти приделы. Как правильно.
З/Ы: Логично предположить, что так мы например не увидим утечку, так как давление может вообще не подняться выше 2, и мы будем дуть в трубу в которой прорыв. В этом случае я бы добавил макрос, который бы следил за тем, что у нас идёт планомерный рост давления без провалов ниже какого то значения до 2 МПа.
Горе от ума)))
Давление у вас измеряется и изменение давления вы смотрите там. Если не включили давление, по истечении времени, это тоже авария. Поэтому ставьте таймер и не мучайтесь, время можно подкорректировать при настройке. Таймер работает один раз при включении, потом, если что не так, то это авария.
Иногда, если прописано в ТЗ или потребует заказчик, вы можете сделать как им надо.
UDA
Код:Пуск;
Если Пуск И за N лет Давление <= 2бар
То Аларм_Работа_в_дырку:=ТRUE;
Енд_Если;
Здравствуйте!
Использую аналоговый вход (Fast analog input) AI2+ ПЛК160 как АЦП "Iput type 0-10V". Ввод AI2+ даже когда не подключен ни к чему - на нем висит 8.4 В просто так, как подтяжка.
Мне надо заводить в ПЛК выход датчика от 0 В до 2.5 В, моя нагрузка не может задавить выходное напряжение (входное для ПЛК) ниже 3В.
По схеме из РЭ - просто через мультиплексор в АЦП заводится, а там должен быть высокоомный вход. В чем может быть дело? Откуда изнутри ПЛК берется напряжение на аналоговом входе?
Спасибо за ответ!
Вход исправен и точно сконфигурирован 0-10В, с ним отлично работает другой датчик с аналоговым выходом. Только этот другой датчик легко просаживает это напряжение до потенциала своего аналогового выхода.
А вот датчик-аналог другого производителя не может продавить и завышает на 2 В.
Вы ответили не на всё вопросы.
Проверьте напряжение на других входах (с датчиками и без) и на этом входе, с отключёнными остальными датчиками. Надо определить, откуда берётся напряжение на входе и нет ли потенциала на земле, она общая для всех входов.
Подключите этот датчик к другому входу, у вас ведь несколько входов.
К сожалению, не могу проверить у меня только один вход сконфигурирован как 0-10В, остальные токовые петли. Так что смотреть на них будет некорректно. Прошивку обновлять я тоже не могу. Все общие выводы AI1С - AI8С подключены к земле контроллера, относительно которой 8.4В и наблюдается.
Отключил все выводы AI1С - AI8С, на всех близкое напряжение - около 9В.
Нет, буфер не стоит. У меня стоял другой датчик-аналог он нормально работал без буфера. В этом-то и проблема.)) Добавлять в КД еще промежуточные платы не вариант, думаю как быть с ПЛК, чтобы работало с имеющейся прошивкой под аналоговый вход. До этого стоял сенсор Dynament, в таком же корпусе с такой же распиновкой, все такое же. А вот прилетела проблема с напряжением на АЦП.(((
Не нашел инструкции по подключению ПЛК-63 по MODBUS в качестве мастера. Может это элементарно, но в РП мне не попалось. Версия 2.01. Подскажите, сошлитесь...
Ветка для 63/73 - рядом
Только программно
https://owen.ru/forum/showthread.php?t=13573
При попытке входа на страницу Codesys V2 (https://owen.ru/catalog/sreda_programmirovaniya_codesys) выбрасывает на главную страницу сайта ОВЕН.
Это временное явление?
И даже просто по моей ссылке не заходит.
Пусть Главная страница ОВЕН -> Каталог продукции -> Среда программирования CODESYS. Далее при выборе любого из кодесисов выбрасывает на главную страницу.
Уже заходит.
plc + CF card
Как прочитать уникальный ИД карты?