Вопрос решен. Не учел применение параметров по переднему фронту. Спасибо Евгению за помощь.
Вид для печати
Здравствуйте. Извините если не в тему . Инкодер ABZ 360 полный оборот, а и ь считаю импульсы определяю сторону вращения ,z использую для подсчета импульсов при ускоренном передвижении ,так как существуют пропуски ,и использовать не скоростной вход, плк 160 м02 , есть ли у вас такой опыт , хватит ли частоты обработки плк , спасибо.
Я тоже так делал.
Сконфигурировал модуль вывода таким образом что-бы срабатывало аварийное отключение в случае, если длительное время нет обмена с ПЛК (8 сек, например).
Блок отключает всех своих потребителей (нагрузки) и зажигает красный семафор.
Но недостатком такого подхода будет два ПО (два объекта ПО):
1. Основная программа в ПЛК.
2. Параметры (настройки) модуля вывода. При замене блока, который вышел из строя нужно будет в новый блок загрузить эти параметры.
Среда Codesys V3.5 SP17 Patch 3 + (32 bit)
Контроллер виртуальный Win V3
Постоянно возникающая ошибка "С0040 Для функции FB_Init требуется ровно 6 входов"
По команде "Компиляция" ошибка не появляется.
При попытке загрузить код в контроллер, выполняется перекомпиляция, но с уже выше описанной ошибкой.
Лечиться полной перекомпиляцией ( с очисткой ).
Как исправить ситуацию?
Добрый день.
Выложите, пожалуйста, простейший проект, в котором повторяется данная ситуация.Цитата:
Как исправить ситуацию?
ссылка на этот самый проект
https://disk.yandex.com/d/D7UhYSlZbdV2fw
Удалил раздел IO и весь код где были задействованы переменные . Результат тот же , на скриншоте
https://disk.yandex.com/i/_zxF3EZLOaq8VA
Можно ли при описании устройств ти Modbus Slave Client(интересует Modbus прежде всего) использовать не числовые константы (в виде адреса регистров написанных циферьками), а щгначения определенные в списке глобальных констант.
А есть ли у вас пример асинхронного параллельного опроса нескольких устройств (и на ввод и на вывод) по шине модбас с использованием библиотек. Хотелось бы посмотреть как устроен перезапуск устройства в случае временного зависания... Задача собственно такая - есть несколько насосов с чрп и удаленными датчиками (неприсоединенные к ЧРП) -нужно синхронирзировать расход воды у насосв соединенных последовательно (условно 1 и 2 подьемов). На ЧРП установлены ПИД регуляторы, данные проходят по модбас... По шине модбаса идет некоторая потеря пакетов 7-10% на разных ЧРП, поэтому данные обратной связи (уровень)для ЧРП передаются с избыточным семплированием.
Да собственно использую и то, и другое. Но наверное достаточно одного, второе по аналогии можно сделать (учитывая естественно что там несколько иные события)
Ну наверное перезапуск опроса . Он же реализован в дереве , при нажатии соотвествующей галочкиЦитата:
Перезапуск устройства или перезапуск опроса устройства?
ЗЫ
Я так понимаю что для опроса устройств нужно тогда отдельную задачу создавать?
Необязательно.Цитата:
Я так понимаю что для опроса устройств нужно тогда отдельную задачу создавать?
Если вы реализуете обмен в коде - то, соответственно, контроль над опросом остается на вашей стороне.Цитата:
Ну наверное перезапуск опроса . Он же реализован в дереве , при нажатии соотвествующей галочки
Например, при отсутствии ответа от устройства, вы можете опросить другие устройства шины и затем снова попробовать опросить его - это типовой вариант.
Насчет примеров - можете начать с п. 5 из этого документа:
https://ftp.owen.ru/CoDeSys3/11_Docu...odbus_v3.2.pdf
Привет.
Подскажите, как использовать переменную SFCCurrentStep в языке SFC ? Я хочу получать название шага автомата.
Эту переменную нужно нужно объявлять или нет? Я ее объявляю и получаю предупреждение:
C0373: Use of SFC flag variable 'SFCCurrentStep' is disabled.
Вложение 78673
Добрый день.
Проект - Установки проекта - SFC - поставьте нужные вам галочки
Вложение 78674
Здравствуйте!
1. Есть готовые решения для проверки на обрыв 4-20мА от датчика в шаблонах для СПК107 и модулями серии МВ110-224 (МВ110-224.8А например). Напомню, у нас работа по шаблонам, RS 485, Модбас, Codesys 3.5. Или нужно писать программу самим? Может можно в Таблицу тревог сразу вытянуть обрыв и пропадание связи?
2. И также есть ли решения при пропадании связи между СПК107 и модулями серии МВ110-224? Или нужно писать прогу самому?
В шаблонах для каждого канала есть статус, читайте его и определяйте обрыв. Вложение 78678 Можно через структуру и перечисление.
Коды ошибок есть в руководстве. Например
STATUS_OK := 0, // Нет ошибок
STATUS_BREAK :=16#F00D, // Обрыв датчика
Для опроса модуля есть флаг ошибки- Признак ошибки опроса модуля, проверяйте бит и используйте где надо.
DOMOSED Вроде же я недавно прямо приводил свою статью про эти решения (штатных нет): https://cs-cs.net/technologii-testir...odbus___ai__io (нужен заголовок 6).
Там описано то, как я отслеживаю пропадание связи по Modbus и коды ошибок датчиков.
kondor3000, благодарю! Еще такой момент, берем новую панель СПК107 из коробки и при подключении как в систему войти панели. Иногда 3 раза жмем по ней входишь, иногда жмешь один раз сильно, можно сразу войти, а можно много раз перезагружать, нажимать на экран и заново. Непонятно где написано что надо один раз по экрану или несколько. А загрузка 1.5-2 минуты. Долго очень! Кто знает?
DOMOSED Пожалуйста и мою статью почитай. Там описан нюанс: если CodeSys опрашивает несколько Modbus-каналов одного устройства, то флаг ошибки связи периодически сбрасывается и потом снова включается.
Я описал, как это отфильтровать и сделать постоянно работающий флаг ошибки "Потеря связи".
Видео, первая минута, вход в систему https://www.youtube.com/watch?v=AjU9jWEaH0U
Загрузка 1.5-2 мин это нормально
Добрый день, я начинающий пользователь codesys 3.5 (sp17 patch 3 + 32bit)
Не могу понять в чем проблема, при создании нового проекта доступен только ST.
Кажется мне нужен SoftMotion пакет, верно ли это?
Скачиваю и устанавливаю его без ошибок, но другие варианты выбора так и не предлагаются при создании нового проекта.
Подскажите пожалуйста, как решить вопрос?
Вы не правильно установили codesys 3.5 (sp17 patch 3 + 32bit). Надо переустановить как на видео https://www.youtube.com/watch?v=3KcJWZEVXCg
Спасибо большое, получилось!
Мне нужно научиться делать проекты для ИТП. Я только начинаю работать с codesys и owenlogic, поэтому могу задавать некорректные вопросы, извините)
SoftMotion увидел в гайде, думал из-за его отсутствия у меня нет выбора языка в новом проекте. Но когда провел установку codesys по видео выше (правильно) увидел и выбор сразу.
Добрый день! Пытаюсь вывести ошибки обмена (задача моя: пропадает связь по Модбас РТУ, беру отключаю провода или один или другой) в таблицу тревог. У меня СПК107 (шаблоны, МВ110-8А, Модбас РТУ, RS485). Посмотрел видео 29 на эту тему, но там речь идет о модулях с Модбас ТСР и показан пример с OPC. Как мне соотнести этот пример с моей задачей? Что мне надо настроить? Вместо OPC что можно использовать? Пока что “не догоняю”.
Здравствуйте, коллеги!
Подскажите ,пожалуйста, возможно ли передать в функцию (метод) указатель на WORD или DWORD и при этом внутри функции определить тип переданного указателя?
Да
Нет. Только передать туда же доп.информацию.
https://www.anekdot.ru/id/165396/
Указатель это просто адрес ячейки памяти, в нем не содержится информация о том информация какого типа там хранится. В нем нет даже длины этой информации. Просто адрес первого байта и все.
Здравствуйте! У модуля аналоговых входов МВ110-8А (H/W 2.0) есть Шаблон (RS485, Modbas rtu, шаблон). И в разделе соотнесение входов/выходов есть такой параметр, как Код статуса.
Как с ним работать? Ведь тип у него Enumeration of UINT? Это ведь какой то свой придуманный Овеном тип переменной? Хотелось бы не программировать? А взял, "галку" установил и Вуаля.
Но если надо, то минимум на CFC хотя бы (так первоначально создали структура нашей проги первоначально). Что хотим от этого параметра (или другого, но удобного для нашей задачи). Две задачи:
1. Контролировать датчик - обрыв его в первую очередь и КЗ (корот. зам.). Привлекаем персонал миганием на экране например. Если идеал, то все его сообщения выводить в журнал аварий.
2. Далее записываем в Журнал Аварий (Тревог) Alarm group. Персонал, пришел на смене, посмотрел.
Да еще если см. Руководство по эксплуатации, там есть раздел Диагностика работы датчиков и исключительные ситуации и есть Таблица 8.3 Коды статусов входа. Как с ними работать? Что нужно каждый
статус нужный нам проверять программно (писать прогу)? Допустим датчик отключен - 0xF7.
В целом этот шаблон лучше вообще не использовать, но раз уж вы его используете то enum это по сути просто число и что непонятного в его использовании? Может вместо этого опуса лучше изучить что такое enum.Там реально текста меньше чем вы написали.
Здравствуйте, не понимаю, почему такая загрузка цп. проект почти пустой
Что за железка? Как настроена конфигурация задач? Что значит "почти пустой"?
Вложение 78835
Добрый день.
на виртуальном контроллере упражняюсь, как только объявляю DIG_FILTR из библиотеки OPR - ругается и не хочет грузить
компилируется при этом нормально, при этом еще говорит что у меня версия устройства в проекта и реального разные, как только комментарю объявление - все ок