Извините, пока не понял вопрос. Можно раскрыть его подробнее?
Вид для печати
Понял, спасибо!
Доброго времени, уважаемые.
Может быть я плохо искал, но не нашел ответ на следующие вопросы:
1). Возможно ли в Codesys 3.5 конвертирование языков в LD, к примеру из CFC?
2). Как организовать связь по RS-485 СПК207 и ПЧВ на языке LD? (работа с командным словом, словом состояния, пересчетом значений мощности, напряжения, частоты, тока, уставками задания).
И если можно, то ткните носом на доступную для понимания литературу или примеры рабочих проектов работы на LD в Codesys 3.5.
1) Конвертация языков доступна только для LD/FBD/IL.
2) С готовыми примерами на LD может возникнуть проблема. Можно почитать справку CODESYS и соответствующую главу из книги Игоря Петрова.
Печально. Ну и на том спасибо.
А в чем проблема по поводу примеров на LD? Неужели этот язык настолько непопулярен в среде Codesys?
Уважаемые, приветствую.
И снова новичок с очередными глупыми вопросами.
Не думал, что настолько сложно найти в сети подходящую и доходчивую инфу по созданию связей по rs-485 между СПК, модулями входов/выходов и ПЧВ на языке LD. Поэтому, прошу сильно не бить, но вопросы я всё-таки задам.
МВ110-2AС, МВ110_16Д_ДН и МУ110_8Р_К и СПК2хх 04 (хотелось бы еще и ПЧВ) нужно связать по rs-485. Физически подключится к этим модулям нет возможности, ибо пока их не имею. И вроде как в эмуляторе они не работают.
По аналогии с примерами на CFC попытался сделать связи на LD. При компиляции ошибок не выдает, но есть непонятные моменты:
1) Собственно правильна ли данная логика основной программы связей между ФБ (во вложении)? Что можете посоветовать?
2) При добавлении слейв устройств я указывал им адреса слейвов и таймаут, а в программе на входах Addr, TimeOut они все по умолчанию и изменить я их не могу. Это возможно только через конфигуратор или как-то еще?
3) При включении эмуляции флаги завершения ФБ модулей входов/выходов то истина, то ложь. Почему так?
4) Также при включении эмуляции на выходах кода ошибки ФБ модулей входов/выходов, постоянно выдается параметр 254. Это отсутствие связи? Если да, тогда вроде как понятно почему.. т.к. модули физически не подключены?
5) Компилятор ругается в случае, если я пытаюсь поставить ответвления от идентификатора Handle ФБ ComConn и соединить их с идентификаторами Handle ФБ модулей входов/выходов. Соединить получилось только так: один ФБ ComConn и один ФБ модуля входов/выходов в каждом отдельном нетворке. Нормально ли это?
6) Нужно ли использовать драйверы из библиотеки Mx110_Drivers? Если да, то подскажите где и как.
Надеюсь не только на критику, но и на помощь. Благодарю за понимание.
Добрый вечер, подскажите как в CODESYS v.3,5 привязать вход к конкретному адресу на модуле. В CODESYS v.2 все понятно, назначается имя сразу в модуле, а как здесь? В документации не нашел:confused:
Доброго вечера.
Подскажите по такому вопросу:
При обновлении проекта (внесение небольших изменений)
Предлагает стандартное меню, выбираем загрузка изменений.
И грузится весь проект (такой же размер как и при полном обновлении проекта)
Раньше всегда грузилось 80-100кб. А теперь приходится ждать + происходят подвисания Codesys на Генерации Кода.
Версия CDS - 3.5 SP7 Patch 3
Компилятор 3.5.7.0
Стили визуализации 3.5.5.0
Нет, галка не стоит.
Да и проект все же обновляется а не перезаливается. И происходит все после Генерации кода.
При этом не СПК с визуализацией что-то происходит.
Невидимые рамки поля ввода становятся видимыми, стиль изменяется.
Постараюсь записать видео с экрана.
А что за опыт?
Часто нужно что-то изменить (значения дефолтных переменных, или код немного)
А останавливать работу СПК нельзя.
Доброго всем времени суток! Подскажите, пожалуйста, если кто знает, как использовать на одном объекте нагреватели разной мощности?
Ситуация: большой объект, 2 разных импульсных задвижки. У одной мощность, допустим, 10Ед (1), у другой 2Ед(2). Для поддержания т-ры 120град требуется ~14% открытия заслонки 2Ед. Но, объект большой и на одной заслонке 2 объект греется 3-4 часа. На одной задвижке 1 объект греется 1,2 часа. Но поддерживать на ней т-ру сложно, один лишний процент открытия и перерегулирование наступает очень быстро. Регулировать более короткими импульсами (текущее - 400мс) не получается - нет реакции задвижки. Вопрос: Как собрать структуру из двух ПИД так, чтоб на подходе к уставке заслонка 1 плавно закрывалась, а заслонка 2 плавно подхватывала регулирование? Может, кто-то сможет вкратце в CFC набросать модель? Ну или хотя бы пояснить принцип управления в данном случае? Заранее спасибо!
Добрый день! Появилась проблема: создал библиотеку в формате .library (проверял и в формате compiled-library). Добавил в репозитарий и в менеджер библиотек. Проект нормально компилируется, ошибок не выдает. Но при загрузке выдает сообщение:
Вложение 26879
То есть ссылки на ФБ из библиотеки вызывают ошибку. Никак не могу понять в чём дело и как это победить
При загрузке в СПК или виртуальный контроллер?
Вообще, не видя самой библиотеки, сложно что-то сказать.
При загрузке в СПК107. Библиотеку сейчас отправлю в личку
Доброй ночи. Подскажите пожалуйста по диалогам. Создаю универсальный диалог, в котором прописываю переменные в VAR_IN_OUT. Обратил внимание в симуляции, что при открытии диалога переменные нормально записываются, но если эти переменные меняются, то в диалоге изменения не отображаются. Что появились изменения нужно диалог закрыть и открыть заново. При этом если указывать переменные непосредственно из программы, то изменения динамически меняются при открытом диалоге.
Я правильно понимаю, что переменные читаются только при открытии диалога?
Начнем с того что VAR_IN_OUT это ничто иное как просто указатели на внешнюю для диалога переменную. Возможно что-то не так в отображении настроили. Там же два раза надо одну и ту же переменную указывать: один раз для отображения второй для редактирования. Ну и если косяков не обнаружите попробуйте тоже самое во фрейме сделать, там точно работает и ИМХО фреймы гораздо быстрее и стабильнее диалога.
Вот оно что. Да я один раз только указывал, возможно поэтому. По поводу фреймов читал, что они быстрее и стабильнее, но не могу пока сообразить как сделать чтобы окно с фреймом открывалось как диалог и в нем уже отображался нужный диалог (по примеру - нажал на кнопку - открылось окно управления нужного механизма).
Эхх, нет динамического обновления переменных в диалоге((( печаль
Что-то я не соображу, накой вы во фрейм диалог впихиваете. Во фрейм надо обычные визуализации вставлять. И выбирать нужную в момент вызова через спец. переменную. Плюс используем флаг видимости и прячем все, когда наш фрейм не нужен на главной визуализации.Если не осилите в понедельник ришлю пример в личку.
Диалог - тот же фрейм только уже заточенный под функционал диалога силами CoDeSys.
Нет, во фрейм я диалог не впихиваю)). Попробую объяснить. К примеру, у меня есть на визуализации 5 насосов, 4 задвижки. При нажатии на иконку вызывается диалог для управления (который полностью визуализацию не меняет, что удобно: можно видеть, что на основной мнемосхеме происходит). Изначально я нарисовал 9 диалогов (5 - на насосы, 4 - задвижки). Разумеется я весьма быстро понял, что это мягко говоря гемморойно, так как при любой корректировке функциональности диалога приходиться вносить изменения во всех остальных. Соответственно разумное решение один общий диалог на насосы и один общий диалог на задвижки. В var_in_out прописал переменную i, которой при нажатии на иконку присваивается значение номера. Также сюда же хотел внести переменные для визуализации кнопок, текста и т.п. + в диалогах кроме кнопок управления, также отображаются текущие параметры (ток, частота и прочее). И всё это обновляется только при открытии диалога. То есть изменения в режиме реального времени не видно. Пока переменным визуализации кнопок, текста и т.п. приставил массивы с индексом i. Работает. Как подобное организовать во фрейме пока очень смутно представляю. Доделаю проект, буду разбираться. Хотя пока не ясны преимущества на самом деле.
Надеюсь понятно объяснил.
P.S. За пример буду премного благодарен.
Еще вопрос, если можно. На СПК207 переключение экранов настроено на хардверные кнопки (F1-F5). В общем, если открыть диалог на каком-то экране и попытаться переключить экран клавишей, то на экране СПК ничего не меняется (открыт диалог на N-ном экране), а управление диалогом становится невозможно. Помогает только вызвать тот экран (напр.,нажать F3 если был открыт экран, назначенный на F3) , с которого был открыт диалог, подождать секунд 20 и панелька "отвисает".
Фреймы и диалог по сути одно и тоже просто во фрейме больше доступа к управлению. А даилог законченная конструкция. Соответственно на счет массивов вы совершенно верно думаете. Во фрейм достаточно передавать индекс массива, а все остальные данные подтягивать напрямую с визуализации через индекс. Что касается онлайн обновления данных во фрейме, то возможно тут еще версия CoDeSys закралась. Раньше у меня точно работало, но в какой-то версии тоже с этим сталкивался. Поскольку в том проекте было не сильно актуально то просто забил. Думаю вам стоит уточнить этот вопрос у Евгения, или самому попробовать на разных версиях CS.
Теперь немного ближе к делу. Последние проекты я делаю по такой схеме: главная мнемосхема всего одна (на самом деле еще логи аварий и настройки где диалоги не нужны) на ней два фрейма - в одном все визуализации. Во втором фрейм для диалогов (всех). Соответственно в проекте есть переменная которая отвечает за видимость второго фрейма (с диалогами). В визуализации самого диалога так же есть фреймы куда в зависимости от задачи подкидываю разные диалоги. Конструкция шикарно работает, без тормозов. Есть только одно ограничение, про которое нельзя забывать (пока) глубина вложенности фреймов не более трех.
Спасибо, в принципе понял. Проверил: создал фрейм, вставил в него созданный ранее диалог, в который передаю массивы, работает также.
Вот что непонятно. К примеру есть у меня пять визуализаций. На главной - кнопки с подписями, нажатие на которые переключает визуализацию. Иконки устройств вызывают диалоги с присваиванием номера устройства. Соответственно это можно переделать под фреймы как вы выше расписали. В чем профит?
Ранее профит был в том, что фреймы не тормозили, а диалоги можно было с кофе ждать (возможно сейчас этот косяк уже исправили). А сейчас я уже привык так делать и на диалогах экспериментировать времени нет.
Подскажите, что не так делаю: давно использую ОВЕНовский ФБ "RealTimeClock4" и при изменении значений на входах "Set" (Set_Year, Set_Month и т.д.) на выходе ни чего не меняется, управлять получается только входами "Add" (Add_Year, Add_Month и т.д.).
Строки 19 и 327 в ФБ закомментируйте.
Проверять, естественно, надо на реальном контроллере, а не в эмуляции.
У меня есть контроллер СПК207-220.04.00-CS. Порт COM-3 настроен как мастер и работает без нареканий. COM-1 пытался настроить как Slave: входы-выходы соотнесены с переменными из программы, все отлично компилируется и зашивается на контроллер, а вот опросить не получается никак. Использую протокол Modbus RTU.
Сейчас уже все ставлю под сомнения, а потому: как определить адреса регистров для опроса и какой командой их надо считывать? Как соотнести адрес ячейки памяти контроллера (например %QW88) и номер регистра?
Вложение 27162Вложение 27163Вложение 27164
Спасибо, помогло!
Еще один вопрос: как очистить историю тревог? Архивацию нужна, но перед тем как отправлять заказчику историю надо очистить.
подскажите можно ли сделать чтоб она и та же авария записывалась в таблицу тревог каждый раз при появлении в новую строку на спк