К сожалению данная ошибка просто ссылается на задачу VisuTask и больше ничего конкретного не выдаёт
Вид для печати
К сожалению данная ошибка просто ссылается на задачу VisuTask и больше ничего конкретного не выдаёт
Здравствуйте. Подскажите, при настройке тревог через конфигурацию, можно ли в поле "Сообщение" добавлять текстовые переменные?
Добрый день.
Можно.
Для этого нужно создать строковую LATCH-переменную, и в сообщении тревоги использовать спецификатор LATCH.
Конкретный пример:
https://youtu.be/IFUN4cYskRI?t=1799
Здравствуйте!
Еще один момент. Проект на СПК107 (работаю с шаблонами, Мodbus RTU, RS-485, модули ввода/вывода Мх110). Подскажите, как мне в программе CODESYS 3.5 для СПК107 выполнить контроль по обрыву связи моих датчиков 4-20 мА (как контролировать входа/выхода). Где что смотреть? Обрыв самого канала связи по Мodbus RTU. Спасибо. Новенький.
Добрый день.
Вложение 75941
Добрый день.
В теме Owen Communication не работают ссылки на фтп. Есть ли альтернативная возможность скачать библиотеку и описание?
Привет.
Подскажите, как вызвать метод в языке CFC?
В языке ST это работает без ошибок:
А в языке CFC как?Код:IF rFlowCurrent < rLimit THEN // Малый расходомер
port1Mng.exchangeRmetr(eSelect := rMetrsMode.small);
END_IF
Вложение 75970
Там постоянно горит красная волнистая линия.
Как это вызвать? Этот метод у меня в другой задаче.
Что я делаю не так?
Здравствуйте! Документ Визуализация. Примитив Таблица стр. 223. Там есть кнопка Запись в Таблицу. Нажал и таблица значение записала. Я привязал свою переменную к переменной этой кнопки: bTrigger, но у меня идет постоянная запись в эту таблицу. Все строки забивает. Есть пример на ST, типа Триггера (например по переднему фронту срабатывает кнопка) или как выполнить краткий запуск этой кнопки. Что то не пойму, как реализовать просто. А то у меня сигнал Авария пришел TRUE и висит, таблица заполняется, пока не выключишь Аварию
Взведение, сброс и квитирование аварии это целая наука.
Как вариант, заведите бит наличия аварии, бит квитирования и бит сброса. На крайний случай после аварии ставьте р'триггер и бит проскочит один раз при первом появлении. Только надо успеть его записать куда нужно, а если запись в таблицу до этой процедуры, то ничего и не получите.
Это точно!
Но легкие пути - это не для нас.
Евгений! Ведь CFC дает офигительную читаемость кода! Вроде бы так говорят студентам при изучении этих языков?
А тут - БАЦ - и "не создавать себе лишние трудности".
У меня есть две программы (PRG). Я хочу что-бы одна вызвала нужный метод в другой программе.
На ST это реализовывается без проблем.
О. Я понял как:
Вложение 75986
Вопрос закрыт.
По должности приходится достаточно много работать с чужим кодом. Я вам так скажу: ещё не было случая, когда в хоть сколько-нибудь сложной программе CFC/LD/прочие_квадратики что-то там облегчали в читаемости. В лучшем случае читаемость равнозначна. Но гибкость ST позволяет гораздо больше других языков.
Здравствуйте! Подскажите у меня две программы. 1-ая прогр. (язык CFC) – тут есть переменные (REAL, BOOL), которые привязаны к графическим примитивам Визуализации (кнопки, лампы, отображения значений аналоговых сигналов). 2-ая прогр. (язык ST) – это переделанный пример примитива Таблица для 10 переменных (стр.223 Визуализация – пример Таблица). Переменных глобальных нет, только локальные. Переменные из 1-й проги во второй не воспринимаются. Как правильно выполнить для 1- программы свою подпрограмму или “Действие” на другом языке для 1-й программы? Не получается выполнить переход в подпрограмму (или доступ к “Действию”). Рассмотрю пример также и на том же языке, на котором выполняется и основная программа. Допустим ST и ST, или CFC и ST, или ST и CFC. Пример Руководство пользователя по программированию ПЛК в CoDeSys 2.3 мне не понятен (про Действие),его лучше не предлагайте или подробно с примером или видео. С уважением.
в TIA Portal к каждому FB "идет" DB в CoDeSys их нет?
по клику на любую переменную в каком то окне показывал где объявляется, где записывается, где читаются И по клику можно было перейти на это место.
Почему то перестал показывать. Вызов окна перекрестных ссылок (через контекстное меню ПКМ или меню Вид-"Список перекрестных ссылок" никакой реакции не дает (только "перемаргивает" строка состояния).
Окно Дерево вызовов отобразил НО, если введешь вручную в окно поиска переменную и нажать Найти, покажет лишь место где эта переменная объявляется.
Подскажите как вернуть чтобы показывал все места: объявление, записи, чтения?
Подскажите, а какой тип датчика выбрать в OwenTypes.ANALOG_SENSORS для ТПТ-3/ТМТ-3?
https://termiko.ru/catalog/section_3/product_3/
подскажите пожалуйста что за подчеркивания прямые, двойные, волнистые, черные, синие, красные (красн. наверно только ошибки)?
Спасибо.
На скриншоте совершенно разные объекты имеют синее двойное подчеркивание. Так же есть волнистое подчеркивание (на скриншоте) на скрине а часто так же подчеркиваются внутри объектов переменные. Получается и разные объекты имеют одинаковый тип подчеркивания
Спасибо. С этим вроде как разобрался
Но, сразу потом понял что не разобрался изначально с более важным вопросом, что-то делаю не так при записи настроек для аналогового входа.
Устанавливаю значение для типа датчика - потом возвожу бит для записи
Как я могу предположить, есть общий - для записи настроек всех четырех каналов и отдельный триггер для каждого канала
При возведении бита для чтения настроек каналов - у меня там по-прежнему "off"
И там чтение значений - статус DISABLED
Что не так?
Не могу найти более-менее подробный пример для работы со входами в ПЛК 200 или 210
Где-то вроде прочитал что при изменении настроек входа нужно перезагружать питание контроллера, мне это показалось странным
Но попробовал - не помогло.
Скрин ниже
Вложение 76117
Там 2 вкладки настроек. При помощи настроек модуля и из программы пользователя. Но действовать будет одна, зависит от булевой переменной в одной из вкладок. Надо поискать по форуму, недавно был ответ по данному вопросу.
Наугад не меняйте биты, ничего не выйдет. Только сами запутаетесь.
PS https://owen.ru/product/codesys_v3
Примеры, настройка обмена. Там вроде всё есть.
Всем доброго времени суток!
Помогите разобраться в следующем вопросе: разрабатываю первую программу для АВР на ПЛК-210-14 + МВ-210-12 (несколько штук). В программе будет n-e количество автоматических выключателей, с одинаковым количеством сигналов. По этой причине, в программе создал массив функциональных блоков.
Возникли вопросы по привязке дискретных входов контроллера:
1. Является ли нормальным привязка битовой маски входов контроллера напрямую к экземпляру функционального блока ?
2. Или все же привязку лучше делать через структуры, а потом привязывать структуры к ФБ?
3. А мб вообще лучше через глобальные переменные?
Если без разницы, то хотел бы для себя усвоить, как решают такие вопросы опытные специалисты. И какие могут возникнуть проблемы, в случае привязки битовой маски напрямую к входным переменным ФБ?
Просто как я понимаю, то это двойная работа, сначала входы привязать к структуре, а потом эту же структуру привязывать к ФБ.
Программу разрабатываю на CFC.
Alex_krg Ты задал очень абстрактный вопрос. Я бы ответил так:
а) Если тебе прям вот ВЕЗЁТ так, что в твоём проекте на один FB выключателя все сигналы укладываются в одну битовую маску - ну привяжи так.
Но, наверное, в реальности это же не так, и распределение входов-выходов ПЛК может быть любым.
б) Структуры удобно (по моему мнению) использовать, если надо передать в FB много настроек или опций. Тогда можно сделать так, что основные параметры передаются как есть, а расширенные опции - структурой.
в) Сам я использую концепт глобальных IO-переменных. Я описывал его вот здесь (заголовок 4): https://cs-cs.net/technologii-testir...a-plk#4_____io
Мне так удобнее из-за того, что все переменные наглядно видны, привязаны в одном месте, и эти привязки можно изменить, не трогая кода, который их использует.
Здравствуйте. Сколько адаптеров МКОН можно одновременно подключить к СПК1хх? Я же правильно понимаю, что с их помощью можно добавить дополнительные COM-порты к существующим пяти?
Сколько угодно, но одновременно больше 10 лучше не опрашивать.
Здравствуйте! Скажите, есть уже встроенный классический ПИД регулятор на СПК107. Чтоб это был не самодельный придуманный программно мной ПИД регулятор, а уже встроенный, готовый сертифицированный ПИД регулятор, как у некоторых ПЛК контролеров, например, ранее видел на некоторых объектах Directlogic dl06 (206)? Или придется сочинять все самому.
Здравствуйте!
У нас СПК107 и модули ввода/вывода Мх110. Работаем по шаблонам c Modbus (Modbus RS-485). Есть одно из типовых решений типового кондиционера у нас, до этого ставили всегда в управление на эту схему 2TPM1 (проверенный, сертифицированный измеритель-регулятор микропроцессорный двухканальный) и подключали к нему термометр сопротивления Pt100. И регулировали по релейному закону (двухпозиционному) по этой схеме. Все Ок. Но сейчас у нас есть СПК107 и модули ввода/вывода Мх110 для отображения информации всех сигналов, так решил заказчик. СПК107 идет по требованию заказчика как панель HMI – для отображения информации (регулировать с панели несказанно, что можно регулировать – в задании не указано ничего про это, написано для отображения). А вместо ПЛК у нас предлагается ваш проверенный 2TPM1. Мы ничего не нарушаем. Но тут появилась идея, а зачем нам два ПЛК в шкафу (2TPM1 и СПК107), давай возьмем СПК107 и выполним нашу задачу регулирования на панели без устройства 2TPM1. Стоит ли нам применять такое решение? Или оставить как есть: СПК107 только для отображения информации (HMI), а 2TPM1 для регулирования. СПК107 будет получать информацию от 2TPM1, через модули ввода/вывода.
СП307 предлагали. Не получилось, отвергли, не понятно почему. Потом со временем решили по советам менеджеров по продажам СПК107 (тачскрин хочется заказчику). Появилось новая хотелка-задание, что нужно контролировать – видеть и другие дополнительные параметры с аналоговых датчиков у кондея. Ну купили и купили. Начинаем работать.