Спасибо, проблему увидел. Я отпишусь после того, как станут понятны ее причины.
Вид для печати
Допустим, есть модуль дискретного вывода, подключенный по RS-485 к СПК207 (реального контроллера подключенного к ПК нет). Как в CS привязать переменные типа boolean к выходам модуля вывода? Программирую на CFC. Если нетрудно, то подскажите еще и про дискретный ввод.
Если речь о модулях Mx, то самый простой способ - использовать шаблоны модулей:
http://www.owen.ru/forum/showthread.php?t=21365
Если речь о модулях других производителей, тогда нужно использовать конфигуратор CODESYS или библиотеки. Настройка Modbus через конфигуратор описана в СПК.FAQ, п. 11.4.
Можно ли внутри самого ФБ получить имя этого ФБ? не экземпляра, а самого ФБ.
Т.к. сейчас приходиться в каждом ФБ делать константу в которую записываю имя данного ФБ, чувствую костыль.
Есть другие варианты/решения?
Здравствуйте. Есть таблица (массив данных) как в нём указать точность вывода значений. Знаю есть %s, %f, но это для текстового поля. А как в массиве?
Точно также - в настройках каждого из столбцов нажмите галочку Использовать шаблон и выберите нужный спецификатор вывода.
Вложение 23589
Ну, вот другое решение с использованием уличной магии. Но по-моему вариант с константой получше будет.
Вложение 23593
Вложение 23594
Вложение 23595
Тогда все ясно. Спасибо.
Не подскажите, в codesys есть бибка для работы с регулярными выражениями?
А поддерживается ли написание русских слов? А то вместо A:='Привет'; выдаются символы. Вроде кодировки все стоят или чисто программно никак?
Добрый вечер.
Не поможете разобраться почему не работают кнопки движения ВВЕРХ-ВНИЗ в визуализации (экран Plisse24 - стрелки), вернее они сначала работали, потом перестали. Делал очистку-перекомпиляцию, без толку. Никак не пойму в чем причина.
Здравствуйте,
Осваиваю ПЛК323. С ПЛК73,100,110,150 работаю больше 5лет (в основном с локальными задачами чтение данных из приборов , визуализация на НMI, СМС оповещение) . С Веб-визуализацией сталкиваюсь впервые.
Создал простой проект с визуализацией, загрузил в ПЛК.
Программа работает, из Содесис вижу работу визуализации.
Не удается подключиться к Web-визуализации. Согласно инструкции, в Опере набираю строку http://192.168.1.252:8080/webvizu.htm
в ответ получаю:Access Error: Page not found Cannot start page for URL
Как посмотреть наличие файла на ПЛК?
Страница настроек ПЛК в браузере открывается.
Информация по ПЛК: OWEN PLC323.03-CS.WEB Версия: 3.5.0.40 Номер модели: 005 CoDeSys V3.5 SP3 Path 2
webvisu.htm по умолчанию. Или вы специально изменили s на z в настройках веб-визуализации?
Добавляю свой проект:
Действительно, элементарная невнимательность.
Страничка открылась.
Спасибо за поддержку.
Действительно, элементарная невнимательность.
Страничка открылась.:(
Работал как обычно, ничего такого не делал, открывал проекты в разных окнах, и тут на тебе:
Вложение 23784
Перезагружал комп, не помогло. Что делать? codesys 3.5 SP5 path 5.
A так если нажать "нет", вроде все без изменений работает.
UPD: пришлось переустановить, все норм.
Пытаюсь отобразить переменную формата Time на экране, используя спецификатор %t[hh:mm:ss], в итоге показывает системное время. Что не так сделал?
Евгений, здравствуйте. Подскажите пожалуйста, как поставить рисунок jpg. на заставку СПК105. Чтобы при включении отображалась заставка, а после касания отображалась картинка визуализации.
Создаете пул изображений, помещаете в него свой файл рисунка. Создаете экран визуализации, вставляете на него изображение. Этот экран делаете экраном по умолчанию в target-визуализации. К рисунку привязываете действие OnMouseClick - Сменить экран визуализации и указываете экран с визуализацией на которую должен осуществляться переход от заставки. При запуске будет показываться экран заставки, при касании рисунка - переход на рабочий экран визуализации
Спасибо, попробую.
Помогите, заливаю проект 195 КБ (ПЛК323 codesys 3.5 SP5 PATH5):
Вложение 23914
И вот результат, если удалить одно из заданий (без разницы какое, примерно одинаковое кол-во памяти освободят), то проект после перезапуска ПЛК323 зальется.
Я так понимаю 195 КБ это очень много для плк323? Подскажите как быть.
Мне понадобиться минимум 1МБ памяти, а тут и 200+кб не залить ...
Или из 16 МБ 90% занимает OS и прочее? Может можно как-то таргет файл поковырять ...Цитата:
Объем энергонезависимой 16 МБ (NOR Flash)
Очень прошу помочь! вся работа встала ...
PS проект не хотелось бы давать ... хотел бы решить вопрос общими советами
Вот лог компиляции:
Вложение 23915
Может быть. Выдает мне то "ошибка сети", то "не достаточно памяти" (чаше всего ошибку сети ), сейчас проект который заливаю весит около 195КБ, совсем другой проект где всего 2 задания, весит около 240КБ и и заливается, если сделать его больше, то уже будет выдавать "не достаточно памяти" или "ошибка сети", но чаще "не достаточно памяти". В общем я не знаю что делать ... может дело в глобальных данных?
UPD:
Редактировал задачи, (поставил везде цикл 200ms) толку 0, все равно ошибку сети выдает.
Я так понял таймауты задач выставить?
Подскажите как быть, можно ли как-то увеличить кол-во памяти?
Вообщем дело точно не в таймерах и в не коде. Оставил из задча только PLC_PRG.
Остальные в него засунул:
init_all();
timer_for_check_all();
save_log_error();
Если закомментировать 2 любые из них, то все заливается, если все 3 открыть, то заливает только на через 5-10 раз (каждый раз перезапуская ПЛК). Все остальные разы "Ошибка сети: соединение не установлено или закрыто".
Получается дело всетаки в памяти? Или эти задчи между собой как-то связаны? хотя навряд ли, вроде не одна из них даже не использует одинаковые ФБ.
UPD:
Дело в двух ФБ которые работаю с SD картой в ПЛК: log_err и log_msg завтра буду разбираться. Но чувствую с проблемой не хватки памяти я скоро столкнусь.
Нет, почему, именно цикл 200, Вложение 23932 и все верно, это именно цикл (причем мой рабочий 180ms т.к. данные со счетчиков при 9600 поступают примерно с этим таймаутом, иначе мой ФБ чтения данных со счетчиков постоянно выдавал ошибки), а вот вы говорите про это (если я все верно понял): Вложение 23933
НО ошибка уже 99% в том что есть 2 ФБ log_err и log_msg и если их просто в пустой задаче вместе определить, то почему-то проект не заливается, что очень странно.
UPD:
Только что компилил и заливал проект с этими двумя ФБ, все норм, вчера вечером делала все тоже самое, выдавал ошибку, пока один из этих ФБ не закомментить. Что за бред происходит, ПЛК через раз заливает. То у него ошибка в одном, то в другом ...
Подскажите пожалуйста, если упал процесс в самом плк после моего залития проекта, то плк работает, его цеплят и веб интерфейс и putty, как через putty перезапустить сам процесс/демон/службу чтобы мне из розетки не пришлось каждый раз ПЛК дергать? (вариант с командой reboot самого ПЛК не подойдет)
Скорее всего нашел ошибку. Дело в том что у меня есть много ФБ которые использую ФБ для чтения файла с SD карты, я сделал ему размер буфера 1 МБ, и его использует куева туча других ФБ, т.е. каждый экземпляр ФБ забирает по мегабайту памяти =)
Решение: создать 1 ФБ для чтения записи (пред вызовом делать reset() где будет step:=0) поместить его в пул глобальных переменных. Это не всегда возможно сделать для всех ФБ, но в данном случае возможно (т.к. одновременно с SD будет работать только 1 ФБ).
Вроде помогло, надеюсь именно в этом ошибка. capzap за помощь!
PS а еще лучше динамически выделять память =)
Добрый день. Столкнулся со следующей проблемой. Пытаюсь из диалога переключать кнопкой переменные типа true(false), но они фиксируется постоянно в состоянии true. Фиксация мне не нужна, что делать?
Вложение 23943
Мне надо именно нажатие согласно п.8.1 стр 150 вашего руководства. Отправил архив.
Извините, можно тогда как-то подробнее описать задачу?
А то я пока вижу это так: по нажатию кнопки переменная взводится в TRUE, после отпускания она сбрасывается FALSE и сразу после этого диалог закрывается - т.е. программа никогда не узнает, что там в диалоге произошло.
Задача состоит в управлении насосами, то есть подаем сигналы пуск стоп на rs триггер и он далее включает выключает.
Посмотрел проект.
Как я понимаю, происходит следующее: по нажатию переменная взводится в TRUE, практически одновременно с этим диалог закрывается, при этом в переменную программы попадает это TRUE, после этого диалог уже не обрабатывается и "отпускать" по сути уже нечего, поэтому переменная зависает в этом TRUE. В принципе, с алгоритмической точки зрения это выглядит легитимно.
Могу только порекомендовать скидывать переменную из программы.
Спасибо. Удивляют такие сложности на пустом месте.
Прошу помочь с такой проблемой: CodeSys v3.5 SP5
Как только я добавляю к Modbus_COM устройство Modbus_Master_COM_Port и выполняю компиляцию (даже без Slave-устройств),
всегда вылезает ошибка: "C0040: Для функции 'FindNextActiveChannel' требуется ровно '0' входов". Из-за этого не загружается эмуляция.
Моя задача подключить к СПК-105 входа/выхода МВ110-8А и МВ110-16Д.
Благодарю за любую помощь!
Вложение 24003