3 мс это миф.;) Как меряете?
Вид для печати
3 мс это миф.;) Как меряете?
Здравствуйте! Есть вот такой вопрос(наверное не самый гениальный, но тем не менее): Мне нужно в Codesys поставить пароль так, чтобы можно было только пользоваться визуализацией, но при этом саму прогу или визуализацию редактировать, удалять и т.д. нельзя было; в идеале вообще чтоб с окна визуализации никуда нельзя было перейти(иначе оператор может ни туда залезть-потом не найдет как визуализацию обратно открыть) Есть пароль для групп пользователей-с этим вроде ясно.На вкладке ресурсы ---> рабочая область--> пароли - можно установить: пароль и пароль защиты записи.
1. В окне где устанавливаются эти 2 пароля можно установить флажок "TODO: Projekt mit diesem kennwort....." а дальше не понятно что написано. Для чего он нужен???
2. Если установить пароль защиты записи будит ли кодесис соединятся с контролером?
3.Можно ли сделать отдельно кнопку прям в визуализации для установки связи с контроллером(онлайн)??? Если да-то как??
Здравствуйте! Прошу Вас помочь начинающему. Вопрос такой: как наиболее правильно написать программу для ПЛК для более быстрой работы и какие приемы оптимизации использовать. Например:
1.использовать LIMITALARM или GT + LT
2.использовать для формирования тактовых интервалов общий генератор для всех макросов или в каждом макросе свой
3.использовать HYSTERESIS или GT/LT
4.имеет ли значение в большом проекте количество макросов
5.что быстрее FBD или CFC
Немного проясню. Мною написаны и работают на нескольких предприятиях различные проекты и ведется работа по совершенствованию, доводке, модернизации и как следствие усложнению программы. Стало заметно увеличение времени реакции на нажатия кнопок, на обработку данных, приходится значительно увеличивать время цикла (на основании STATISTIC ). Используются ПЛК100, ПЛК110-32, ПЛК110-60 и большое количество модулей.:(
Люди, я новичок. Помогите мне, как связать входы-выходы контроллера с переменными которые я создал?
Посмотрите видеоролики с диска к ПЛК.
gde nahoditsa PLC_Configuration_OWEN.pdf??
a, spasibo, nawel))
Какого типа должен быть аналоговый вход? могу ли я использовать тип REAL?
подскажит пж. новичку
в фб есть таймер TP
у него задается время
могу ли я вместо этого времени подставить глобальную переменную
взятую с адреса выделенного под модбус , предварительно преобразовав
WORD_TO_TIME
просто не уверен, что это заработает
и что там получится
или подкажите где посмотреть
спасибо
КОМПИЛИРУЕТСЯ БЕЗ ПРОБЛЕМ
НО ЧЕГО ПОЛУЧУ НЕ ЗНАЮ
КАК БЫ ДЕ ЧЕГО ПОЧИТАТЬ?
ВОТ НАШЕЛ ОТВЕТ
http://www.owen.ru/forum/showthread.php?t=7133
T:=WORD*1s;
А как вообще связывать панель? Мне надо чтоб вводили с панели.
Эта тема не замещает необходимость знакомится с документацией и уже сделанными специально для вас примерами. Пример записи данных с панели есть на форуме.
А именно где?
Да, получится. TIME=4 байта в mc. Т.е. если запишите в переменную 1000 то PT будет 1 сек.
День добрый. Написание программ под плк несколько отлично от написания программ для ПК. Если у вас в ПК программа проходит полностью алгоритм и останавливается, то в ПЛК программа должна успеть выполниться за время цикла контроллера, иначе контроллер считает, что программа зависла и перегрузится. Поэтому операторы While и GOTO использовать крайне не рекомендуется, т.к. они могут вызывать "перезагрузку". Если какое либо условие еще не выполнилось, контроллер не должен ждать его наступления, он должен дальше выполнять программу. Поэтому оператор If Then вам в помощь.
Оператор GOTO в st отсутствует, а While можно применить в случаи обработки файла или массива.
Как сделать счетчик который будет идти в том случае когда насос вкючен. Когда выключается, счетчик останавливается, а когда включается обратно, продолжает свой счет.И что бы я мог значеие этого счетчика, Помогите, пожалуйста.
Правильно ли я понял, что все функции, которые содержатся в файле PLC_PRG выполняются периодически?
Если да, то куда добавить отрезок кода инициализации, чтобы он выполнялся один раз при включении контроллера?
Команды в PLC_PRG выполняются постоянно, циклически. Выполнились с верху в низ, и автоматически начинают с начала. И так постоянно. Это принцип работы контроллера. Это же отличие от языков на ПК.
Можно объявить переменную prom : Bool := true;
В программе:
if prom=true then
Ваш код
prom:=false;
end_if;
А для чего в CodeSys:
Ресурсы -> Конфигурация задач -> Системные события -> start (Called when program starts)?
И почему при выделении этого события галочкой не работает кнопка "Создать POU"?
В POU я на всякий случай создал кроме PLC_PRG ещё одину программу Init и один функциональный блок Test, но ни то не другое с этим системным событием не связано.
Сколько вы будете напоминать об документации?
В указанном вами документе 453 страницы.
На диске поставляется с контроллером 108 документов!
В работе используется 1 контроллер и 2 блока измерений и 1 панель. По каждому из этих устройств как минимум 5 документов, в каждом из них несчётное количество страниц.
Я вам ответил на ваш вопрос?
Только пожалуйста не рассказывайте, что всё для людей.
Роботов у нас на фирме нет.
Я не против литературы, но только когда она не является камнем преткновения в разработке. )
Вы настаиваете чтобы я изучил досконально 453 страницы? Интересно будет услышать ответ.
И всё же по непосредственно заданному вопросу: как добавить функцию-обработчик понятно, а вот системные события не расписаны в инструкции, авторы посчитали, что достаточно комментария справа от системного события в CodeSys? Или в инструкции где-то всё же они расписаны?
Да, программа не написана. Кто сказал что вещи сложные для понимания, вовсе нет. Сложность вызывает поиск информации по функциям.
Почему вы считаете что обработка событий сложная вещь?
По поводу порядка написания программы: возникла необходимость выполнить инициализацию при загрузке программы, это очевидно первое что нужно сделать при создании программы. Модератор ответил, что нужно воспользоваться нерациональным методом - созданием флага-переменной для проверки была ли загружена программа или нет. Так нельзя писать программы, это для начинающих программистов.
И конечно считая, что в компании Овен работают отвественные и опытные программисты я засомневался, что модератор правильно ответил. Спустя 5 минут оказалось, что есть системные события, очевидно для такого случая.
Поэтому отвечаю на ваш вопрос - системные события как оказалось необходимо изучить прежде всего.
Это не реально, я вспоминаю когда-то делал прибор, сделал на него подробный паспорт и инструкцию всего 60 страниц с алфавитным указателем! И знаете что сказал первый пользователь в первый же день, когда я сказал, что изучение всего лишь 60 страниц считается обязательным новичку.
Он ответил - никто не будет разбираться с инструкцией! Не будет!
Единственное возможное решение - делать все пользовательские интерфейсы интуитивно понятными, или делать такую инструкцию, в которой не нужно будет читать оглавление.
Война закончится, а с инструкцией к танку так и будут разбираться.
Ну конечно же эта методика как вариант, но как последний.
Дело не в длительности, хотя тоже это имеет значение. Дело в правильности оформления.
Ладно, спасибо. Разберёмся.
Вопрос: Надо сделать так - если значение переменной False то присвоить значение TRUE другой переменной. Есть ли какой-нибудь оператор инверсии для ST? Или писать:
IF X Then
Y:=FALSE;
ELSE
Y:=TRUE;
END_IF;
Спасибо.
a:= not (b);
Вопрос следующий.
Как преобразуются данные для отображения на цифровом индикаторе?
Я передаю панели число 28 dec, отображается 8 если unsigned и 0.8 если decimal 4 цифры 1 после запятой.
Открыл руководство по элементу цифровой индикатор и не нашёл там ссылки на пояснение.
dword, ладно, наверно не надо было вопрос задавать, где то распределение регистров написано, поищу, где то видел, вспомнил только сейчас
1) Я отправляю на панель, точно. Наверно не те регистры считываю.
2) Я не понял что вы не поняли? У меня панель, которая получает данные в формате DWORD!
http://s39.radikal.ru/i085/1106/18/f8f873d88e29.jpg
Не имеет значения какой формат у получателя и какие я хочу значения передавать. Важно чтобы эти данные отображались правильно.
Как это не поместится на экране? Вы что? Передам 1, отобразится 1. Вы что думаете, что если DWORD, то число обязательно должно быть не меньше 4 млрд 192 млн? Фомат данных в программировании подразумевает ограничение этим числом, а не обязательное его присутствие.
Нашёл, PLC_Configuration_OWEN.pdf стр.52
да, возможно так и будет. Просто сейчас нужно разобраться и изменить уже написанный триста лет назад проект, а потом уже делать свой с длиной данных как положено.
старая программа, в которой 30 по DWORD не тормозит.
А по поводу размерности данных. А как быть, если хочется, чтобы эти данные были красиво расположены в Конфигураторе ПЛК для удобства расчёта номера регистра.
Чтобы было
8бит
8бит
8бит
8бит
WORD
WORD
DWORD
DWORD
а не
8bit
WORD
8bit
DWORD
WORD
В CodeSys не предусмотрено выравнивание, если переменные уже добавил. Поэтому, в начале удобно добавить несколько по 8bit, а потом все переменные по DWORD, чтобы не запутаться в расчёте регистра
Хорошо, буду все переменные делать WORD,
но всё же вдруг DWORD понадобится, незнаю что потом, ведь в конфигураторе панели нельзя вручную объединить WORD-WORD, ну ладно, может и не будет таких...
Доброго времени суток. При использовании контроллера ПЛК-100 столкнулись со следующей проблемой: контроллер апериодически перезагружается. Логику перезагрузок выявить не удалось. Грешили на перегрузку процессора, но по параметру "CPU is overloaded,..." модуля "Statistic" всё в порядке. После общения со службой поддержки ОВЕН посчитали, что проблемы с внутренними цепями питания контроллера, поменяли контроллер - эффекта 0. От внешних помех по цепям питания контроллер и периферийные блоки защищён блоком сетевого фильтра ОВЕН БСФ-Д2-0,6. Соединение между контроллером и периферией выполнено кабелем МКЭШ 2х0,5 без экрана, общая протяжённость кабеля ~6 м.
Использование "черных ящиков" контроллера затруднено, т.к. контроллер находится на объекте.
К посту прикладываю выдержки из файлов "log.txt" и "debug.txt" может хоть тут подскажут, где "корни" проблемы искать.