Добрый день!
Есть переменная типа STRING. Туда пишутся символы в кодировке UTF-8. Как можно получить код символа из слова?
Вид для печати
Добрый день!
Есть переменная типа STRING. Туда пишутся символы в кодировке UTF-8. Как можно получить код символа из слова?
По идее если связь восстанавливается и читает, значит и записывать должен.
Пытаюсь понять, что у вас не так. Если начинает работать после перезагрузки, хотел узнать что будет после стоп программа- старт программа и так же что будет после сброса ПЛК из Codesys и старта программы (обычный сброс обнулит все переменные, как будто первый запуск ( холодный сброс и заводской делать не надо)).
Здравствуйте! Недавно начал изучать Codesys, имею на руках контроллер ПЛК-63. В нём имеется возможность добавления подменю для создания графиков. С этим всё хорошо, я выбираю график на 3 точки, задаю значения Х и значения Y. Далее используя ФБ GRxy пытаюсь получить значения с этого графика, но ничего не работает, в точке 1, вместо значения 10, выдаёт 0, как, собственно и в любой другой точке. Пытался найти какую-то более подробную документацию по указателям (подозреваю что неправильно их использую), но ничего, кроме нескольких строчек в инструкции, я не нашёл. Буду благодарен, если объясните как правильно использовать эти самые указатели или подскажете, где подробно про них почитать. Вложение 57698
Подайте на P ADR(%QB.2.0.0) и всё заработает.
В QB.... не забудьте записать реальное число точек.
Не знал про ADR, вписывал QB без него и, конечно, ничего не получалось. Спасибо! А про указание реального числа точек в QB - что вы подразумеваете? Я указываю непосредственно в меню, что обвёл на скриншоте. В итоге процесс запускается, но от точки Х1=1 не возвращается Y1=10, как я задавал в QD2.0.1. Если это важно, то сейчас я не подключил ПЛК, просто в эмуляции разбираюсь с GRxy. Вложение 57699
Вообще то правильней будет дважды щёлкнуть ЛКМ, по АТ в конфигурации и дать входу имя, например P_B, Вложение 57700
а в квадратик уже вставить ADR(P_B).
Так же можно называть и другие входы. А в программе обращаться к ним по имени.
Про имена я знаю, но всё равно спасибо, что напомнили: как-то не связалось в голове, что адресация графика это та же адресация входа или выхода, и её можно переименовать в что-то попроще, нежели %QB...; В любом случае, в режиме эмуляции не хочет возвращать Y, когда задаю X на входе. Завтра попробую с контроллером.
Всем привет. Переношу проект на другой ПК с CDSv.2, где нет библиотек. Копирую требуемые для проекта библиотеки в стандартную папку CDSv.2 library. В другой раз приношу на этот ПК точно такой же проект, но просто сохранённым под другим именем и тут опять начинается всё заново: не хватает библиотек, хотя они уже есть в CDSv.2 library. Что сделать, чтобы CDSv.2 не требовал библиотеки, которые уже есть.
Eugenics
Экспортировать проект целиком, включая библиотеки, пробовали?
когда открываешь Project-options-directories в строке project: Libraries прописано старое расположение библиотек, меняю на такое же как в строке General. Ничего автоматически не подхватывается.
Вложение 57702
Вложение 57705
project: Libraries Вот эту верхнюю строку удалите и нажмите ОК в правом углу. Перекомпилируйте и сохраните проект. И дома сделайте тоже самое.
И поставьте уже русскоязычную версию))Вложение 57707
Eugenics
CDS>Проект>Экспорт>Отметить все что можно>Ок>Назначить имя файла>Сохранить>Радоваться.Цитата:
еще не умею
Скажите пожалуйста, что означает эта стрелка после выполнения "Build"., потому что после "Save" или "Save As" программы, стрелка тоже сохраняется.
Вложение 57749
Стрелка означает, что есть отличия в программе от программы в ПЛК и попросит залить изменения при онлайн подключении. Даже если вы просто перекомпилируете проект, ничего не меняя, появится стрелка.
Вы можете отказаться от заливки и посмотреть отличия. Если их нет, просто залейте проект онлайн ( запись в оперативную память).
А для сохранения программы в памяти, надо создать загрузочный проект ( запись в ПЗУ).
Добрый день, разбираю чужой код программы, необходимо составить карту регистров ModBus. Столкнулся со следующей трудностью. В разделе глобальных переменных у разных переменных присваивается один и тот же элемент из конфигурации ПЛК Modbus Slave, эти данные должны передаваться на верхний уровень. Тип этого элемента Float (в конфигурации ПЛК - ModBus Slave). Это ошибка программиста или я чего-то не понимаю? Разве можно одному элементу присвоить разные переменные, которые потом уйдут на верхний уровень? А если можно, то как определить регистры? Палками не кидайте, только начинаю осваиваться
XE9_HG AT %QD8.129.0: REAL; (*Температура датчика*)
LOVATO_UA_HG AT %QD8.129.0: REAL; (*Напряжение фазы*)
С такими вопросами, сразу смотрите курс видео программирования ПЛК ОВЕН для новичков, на ютуб. Большая часть вопросов отпадёт сразу).
А по поводу присвоения одному элементу разных переменных, пишите подробней, какому элементу, какие переменные , лучше со скринами или выкладывайте проект.
На первом рисунке VAR_GLOBAL, на втором конфигурация ПЛК. У меня не стыкуется в голове
Вложение 57753Вложение 57754
...............
VladisVlad
По опыту знаю, что явная адресация физических входов\выходов\регистров в VAR_GLOBAL приводит к ошибкам, конфликтам и путанице. Внешние связи достаточно объявить в конфигурации, они будут глобальными и доступными из любого места проекта.
На левом скрине конечно не правильно, адресация должна меняться. Похоже проект не закончен был.
На правом скрине всего лишь подписи, адреса регистров проставляются не здесь. Тупо копипастом добавлял регистры, а подписать правильно забыл, главное что бы адреса проставлены были.
Автор конечно тоже отчудил))) Прямую адресацию сделал зачем то ). Это же в 3 раза больше писанины). Адресацию по AT%... лучше не делать, имена даются прямо в конфигурации ( двойным щелчком мыши по AT), они будут глобальными и больше их нигде прописывать не надо. Обращаться к регистру надо по имени.
Видео посмотрели?
Проект изучаю, так как получил задание составить карту регистров, и вот столкнулся с таким вопросом. Программирование ПЛК только начинаю осваивать
Смотрел видео о ПЛК 110 Овен, codesys 2.3, вебинар по программированию на ST. И меня тоже удивило, что применяется адресация в глобальных переменных, а не в конфигурации ПЛК. Спасибо за помощь
Добрый день.
Странно работает ПИД - регулятор в ПЛК. На первой картинке формула ПИД - регулятора, на второй - то, что отрабатывается в ПЛК, на третьей - работа ПИД в симуляторе. В симуляторе все верно работает. В ПЛК на выходе ПИД очень маленькое число, а должно быть 300. Замечу, что в формуле ПИД при данном раскладе все слагаемые положительные.
Кажется я понял в чем дело. Числитель в дроби дифференциальной составляющей в формуле ПИД может принимать отрицательные значения тем самым уменьшая сумму.
Большинству технологических процессов хватает погрешности, при передаче сигналов в 12 бит. В Modbus обычно используется 16 бит. Передачу температуры по Modbus в виде REAL - считаю извращением. 16 бит хватит для передачи температуры доменной печи в 0.1С, плюс там же будут ошибки АЦП.
Согласен, дополню;
4. Датчик предусмотрен, но сейчас его нет (и возможно не будет). К пустому входу привязать нельзя, так как будут ошибки. Привязали к похожему.