CANbus.ResetBusAlarm();
Что-то не получается. Судя по справке это метод. Я с методами еще не работал.
Имею ошибки "для функции ResetBusAlarm требуется ровно 1 вход"
При компиляции - ошибка С0004 - ResetBusAlarm не является компонентом CANbus_Diag.
Вид для печати
CANbus.ResetBusAlarm();
Что-то не получается. Судя по справке это метод. Я с методами еще не работал.
Имею ошибки "для функции ResetBusAlarm требуется ровно 1 вход"
При компиляции - ошибка С0004 - ResetBusAlarm не является компонентом CANbus_Diag.
Выложите ваш проект - посмотрим, почему у вас появляется ошибка.
У меня компилируется без них.
Вложение 87571
Upd. - я понял, в чем у вас проблема.
Этот метод появился только в версии 4.1.1.0 библиотеки CANbusDevice.
У вас, видимо, версия этой библиотеки - 3.5.17.0.
Можете попробовать обновить плагин CODESYS CANopen, если у вас есть такая возможность.
Евгений Кислов
Именно. Докопался до этого сам. Ваш UPD увидел после того как.Цитата:
Этот метод появился только в версии 4.1.1.0 библиотеки CANbusDevice.
У вас, видимо, версия этой библиотеки - 3.5.17.0.
Драйвер шины умышлено был понижен. На шине висит единственное устройство - абсолютный энкодер очень известного российского производителя. Версия 4.1.1.0 у меня есть, соответствующая версия CanOpen Manager тоже, но этот энкодер с ними не хочет работать, просто висит в ошибке. Понижением версии получилось заставить его работать. Сам энкодер абсолютно новый, однако мне "повезло", производитель менял программно-аппаратную платформу своего изделия, и у меня чуть ли не экземпляр №1 с этой серии. Вероятно что-то там в своем EDS не допилили. Буду задавать вопросы производителю.
В любом случае, определение проблемы на шине успешно детектируется, надеюсь этого будет достаточно. Моргающая лампочка аварии работе не мешает, мне главное блокировать установку в случае проблемы с энкодером.
Спасибо за помощь.
Добрый день.
Есть следующий вопрос:
Как воспроизвести звуковой сигнал при аварии в СПК210? Видел как это реализовано в WEB-визуализации, но возможно ли это сделать для контроллера, то есть звук не в вебе, а чтобы звук издал сам контроллер?
Здравствуйте,
Есть ПЛК210-03 и CS3,5 sp17 , вопрос по персистент памяти
Есть тег в персистент памяти и он изначально 0, запись в него идет только в одном месте.
Вложение 87574
Как только я перезаливаю проект, значение этого тэга становится "заоблачным".
Вложение 87575
Вложение 87576
Причем, делал так, что в программе удалял все присвоения этому тегу и все равно после перезаливки проекта появлялось такое значение
Такое происходит только с 1 тегом.
Что может быть не так делаю?
Это переменная объявлена в области памяти персистент, раз в 12 часов к этой переменной прибавляется число - все, и потом это число передается на верхний уровень, больше операций с этим тегом нет. Проверял по поиску по проекту много раз.
Я отвязывал присвоение к этой переменной, обнулял ее онлайн, потом выходил из онлайна корректировал проект (в другом месте, не связанное с этим объектом), заливал заново и не привязанный тег принимал значение число в 27 степени - откуда не понятно, т.к. присвоений в проекте ее нет
Мысли:
1. При загрузке ПЛК не выдаёт ли предупреждений о том, что список PERSISTENT-переменных обновился и данные буду потеряны?
2. Сумма ТОЧНО выполняется ОДИН раз? А то в коде есть summ_ton.q, и это чуток напрягает: вдруг он несколько циклов ПЛК успевает прокрутить и нассумировать дофига?
Я обычно R_TRIG делаю, и по нему однократно выполняю операцию.
СуммТриг:=фальш, идёт после условия :=тру... Это тру при неравенстве формируется. И это неравенство всегда может быть истина, и триггер всегда в сработке по тру, но в коде в переменных вы видите последнее присвоение фальши, но дли таймера оно тру... Проверьте условие возникновения неравенства... Ошибка тут...
PS По f7 запишите в эту персистент переменную ноль. Потом альт+f7. Может она и вправду не затерлась. Или через заводской сброс они в ноль вроде тоже сбрасываются...
в итоге создал еще переменную в персистент памяти, заменил ею "косячный" тег и все заработало:eek:. Проблем пока не наблюдается, может где то что то обращается к этой области памяти где лежит переменная, но в проекте я ни где не обращаюсь к памяти плк на прямую
Вложение 87584
На картинке видно красной линией отмечен тег, который я отвязал вообще от всего в программе обнулили и все равно какая то ерунда в него сыпется, а зеленой линией отмечен тег новый и им заменен предыдущий и здесь все отлично
вопрос - что делать что бы такого больше не повторялось, т.к. не понятно откуда в старый тег все это приходит и может ли такое повториться?
Что у вас там за куча предупреждений... Скинули б проект. Там поди неявное преобразование из одного формата в другой, только не знаю, влияет ли это на такое поведение...
да, неявное преобразование есть, но не для этих переменных, т.к. все в real, только в одном месте идет преобразование real в 2 word для HMI
Спасибо за помощь!
Проблема была действительно в коде (не правильная адресация), как писали выше. В объявленной персистент памяти вначале был массив данных 0...179, а в программе я циклом FOR перебирал не 180 ячеек, а 181, поэтому данные из цикла наслаивались на ниже записанные переменные персистент памятию
Приветствую!
Сможете ли подсказать такой момент, как найти бит для мониторинга соединения TCP modbus устройства?
У модулей Овен в соотнесении сразу есть эти биты куда можно переменные подставить, если сторонние устройство, то как быть?
Здравствуйте,
Есть ПЛК 210 и модуль МВ210-101. Задача - изменить тип датчика из программы или панели, завел бит на запись конфигурации и соответствующие теги под тип датчика ( ТСП100П и ТСМ50М) в библиотеке Мх210 Assistant они под номерами 3 и 10 соответственно.
Вложение 87685.
Алгоритм изменения такой - поменял тип датчика, и нажал кнопку записать, но пока не понятно как это работает, т.к. датчики при изменении параметров ни как на это не реагируют.Может что забыл в конфигурации поменять?
Вложение 87686
Нужно ли при смене типа датчика перезагружать модуль физически? Если менять просто в конфигурации , то все применяется и корректно отображается
зы Еще почему то модуль МВ210-101 обновляет данные очень медленно - температура с 0 до нормальной доходит за, в среднем, за 1-1,5 часа - это нормально ( при это в помещении температура не изменяется).
Добрый день.
Посмотрите это видео:Цитата:
Есть ПЛК 210 и модуль МВ210-101. Задача - изменить тип датчика из программы или панели,
https://oscat.ru/wp-content/Video/Co...1_fromVisu.mp4
"Использовать настройки конфигурации" на втором скрине нужно перевести в FALSE.Цитата:
Может что забыл в конфигурации поменять?
Нет.Цитата:
Нужно ли при смене типа датчика перезагружать модуль физически?
Здравствуйте!
Прошу сориентировать в общих конструктивах работы с OWEN контроллерами, панелями и Codesys. Я много лет разрабатывал системы в Siemens, пытаюсь по аналогии понять ваши технологии, некоторые вещи не удаётся найти.
1). Где в проекте Codesys заводятся глобальные DB, экземплярные DB для конкретного FB, таблица переменных памяти контроллера?
2). Как нарисованную визуализацию загрузить в панель?
(я просмотрел видео-пример, где экраны рисуют в конфигураторе панели, а информацию рецептов трансферят "вручную" областями памяти по Modbus.
А нарисованное в Codesys - экраны, таблицы трендов, алармов и тревог - это только для показа на компьютере? )
3). Где в проекте Codesys функциональные аналоги редакторов Hardware Configuration, Network Configuration?
Подскажите пожалуйста, как правильно настроит плк210 с мсд200 , а именно в плк у меня прописаны газоанализаторы с адресом от 1 до 10 и каналами чтения из них концентрации Вложение 87705 , мсд у меня настроен на режим слайв. Теперь я добавляю мсд200 в плк и добавляю каналы которые указаны в мсд Вложение 87706 только указываю уже функцию 4 для записи и вот тут запутался как указать чтобы канал с газоанализатора писался в канал мсд?
1. Глобальные - в глобальных переменных, просто это не называется DB. Экземплярные данные хранятся в экземпляре ФБ. Таблицу переменных можно создать в глобальных переменных или в программе, адреса можно прописывать при объявлении переменных, но это нежелательно.
2. Нарисованную в Codesys? В какую Панель? В СПК просто загрузить проект с Визуализацией, на сайте полно документации. Визуализацию можно и в ПЛК загрузить и отображать браузером с ПК, веб-панели, любого устройства с браузером.
3. Есть сам ПЛК, есть узлы ПЛК в дереве проекта, часть настраивается не через Codesys, а через веб-конфигуратор. Смотря, что нужно. Лучше прочитать документ "Первый старт".
Добрый день.
1) Начните с этого: https://owen.ru/poleznye_materialy/k...al_codesysv3_5
2) Визуализация "загружается" в тот же контроллер, в который загружается весь проект.
Если вы используете ПЛК2хх - то визуализация будет доступна только через веб-сервер контроллера:
https://owen.ru/media/video/owen_plk210_web
Для ее отображения "по месту" удобно использовать веб-панель:
https://owen.ru/product/vp110
Если вы используете панельный контроллер СПК - она будет отображена на его экране.
"Загрузить" визуализацию CODESYS в панель оператора СП3хх не получится, если суть вопроса в этом.
3) Сетевые настройки контроллера (если речь о них) задаются через веб-конфигуратор:
https://owen.ru/media/video/plk210_vozmoznosti_web
Если вопрос в том, как задать какие-то специфические настройки - уточните, какие именно вас интересуют.
Спасибо большое.
Вот получается привязал переменную концентрации с газоанализатора Вложение 87707 в созданный канал мсд200 Вложение 87708 Вложение 87709 , а в самом мсд200 вот так получается нужно ? Вложение 87710 а то именно в самом мсд200 не понятно откуда мы берем Адрес? или он не нужен тут?
Нужен. Как именно он рассчитывается или задается - лучше уточнить у support@owen.ruЦитата:
а то именно в самом мсд200 не понятно откуда мы берем Адрес? или он не нужен тут?
А как быть если все 10 газиков у меня имеют адреса модбас от 1 до 10 , но сдвиг у всех 16#0000
С газиков у меня DWORD Вложение 87711 проходит через конвертер и на выходе получаем REAL (KP2_1_Value)
Не совсем понял по биту? объясните пожалуйста подробнее
Это 10 разных переменных, которые вы можете положить последовательно для отправки в МСД с адресами 0, 2,4, 6, 8, 10 и т.д.
REAL это 2 регистра на каждую переменную, REAL надо разложить на 2 WORD и отправить в МСД (REAL_TO_2WORD )
Запись у вас стоит циклическая, если пройдёт, хорошо, если нет надо изменить на запись по биту. Бит может быть один, для записи всех 10 переменных.
Спасибо! Отличная статья, специально для первоначального ориентирования.
Не понял абзац:
"А вот экземплярных DB как таковых в CODESYS нет – вместо этого одновременно с FB создается его структура данных, включающая в себя входы, выходы, локальные переменные, константы и так далее. При объявлении экземпляра ФБ автоматически выделяется память под хранение данных этого экземпляра."
Смысл экземплярных DB в обработке одним алгоритмом нескольких наборов данных одной структуры.
Из цитаты следует, что для каждого экземпляра набора данных мне надо заводить ещё один FB? Наверняка же нет?
Если этот алгоритм не подразумевает необходимости хранения состояния каких-то промежуточных переменных на протяжении нескольких циклов ПЛК - то вы можете написать функцию, на вход которой будет передаться экземпляр конкретной структуры. Если нужно сохранение состояния (например, в алгоритме используются задержки на таймерах) - то да, потребуется набор экземпляров ФБ, чтобы обеспечить каждому из них независимость и сохраняемость внутренних данных.
kondor3000, Евгений Кислов
Спасибо все получилось