Жесть какая. Я не пробовал. На macos на JRE11 точно не запускается. На Windows -- не знаю. А что покажет окошко Help -> About?
Вид для печати
Вот... WIN10 64bit
Вложение 42244
JDK этот https://www.oracle.com/technetwork/j...s-5066655.html
Если что-то нужно по ПЛК73 и его бибкам то я готов чем-то помочь... А то у самого уже этот Codesys в печенках сидит... Пригорело уже за эти года... Буду пока изучать вашу IDE'шку.
Кстати говоря, а навигации по проекту как на скрине ниже не планируется??
Вложение 42254
Картинка интересная, но есть основания полагать, что стоит делить простыню на функции-процедуры.
Подобной навигации в продуктах JetBrains не видел, поэтому само собой в Hardella оно вряд ли появится, а я не думаю, что оно кардинально что-нибудь упростит.
В плане навигации забавнее какой-нибудь дракон прикрутить.
Сижу, курю тему про ШД. Размышляю. Харделла - это здорово. Однако не нашел возможности рулить скоростью на ходу. А хочется. Задумался на тему стандартной фичи PWM на быстрых выходах. В power льем 50% для "ехать", и 0% для "стоять", скорость льем в period. Разгон\торможение задаем программно через рампу. Направление задаем с обычных выходов. Получится?
Владимир Ситников
На Харделла.ком ссылки на исходники примеров ведут на локалхост.Это так задумано?
Вложение 43561
Тогда проблема. У меня Харделла в виртуальной машине без доступа к сети.
Добрый день. Oracle закончили поддержку JDK8, по крайней мере на странице самой JDK (https://jdk.java.net/8/) висит такое обьявление, и ссылка для скачивания убрана. Сейчас везде продвигается JRE, однако с ним Hardella хотя и открывается. однако не компилируются конфигурационные файлы. Процесс вроде идет, однако в результате появляются файлы с нулевым размером.
Вопрос разработчику программы - можно ли использовать другие комплекты Java, к примеру JDK11? Стоит заниматься испытаниями , или сразу искать где то старые ссылки на левых сайтах, и нужен именно 8ой JDK ?
Всё так, сейчас нужно JDK 1.8.
JDK 9/10/11 работать не будет -- переход на 11 ещё в процессе.
JDK можно взять отсюда (JBRSDK8): https://confluence.jetbrains.com/dis...Brains+Runtime
Т.е. выбираем нужную ОС, переходим на закладку "files", и там файл jbrsdk-8u212...
Да, наверное нужно встраивать JDK в состав Hardella.
Там файл Java SE Development Kit, после установке при проверке в Hardelle Help-About вылазит JRE 1.8.0.
Я уже засомневался, может, что то не так с Java, или все таки не так в Hardella - при компиляции файлы PRU0 и PRU1 компилируются. в результате получаются файлы .prg размером 5 килобайт каждый, запись о создании файла .ехр тоже появляется. но самого файла нет, или он пустой , 0 байт обьемом, естественно, не экспортируется в КДС. Брал строго ваш пример с мигающими светодиодами (Blink), результат при неоднократных попытках - тот же самый. Хотя код блоков в Hardelle (CTRL+нажатие ) открывается.
Она у меня сидит на С:\\ProgrammFiles\Hardella, но сейчас перекину. Также скачал JDK по вашей ссылке, однако там нет .bат (или какого другого ) файла запускающего установку.
Она у меня сидит на С:\\ProgrammFiles\Hardella, но сейчас перекину. Также скачал JDK по вашей ссылке, однако там нет .bат (или какого другого ) файла запускающего установку.
"Скорее всего из-за русских букв в пути к Hardella."
Почти правильно оказалось. Только не из за русских букв, а потому что я не убрал из названия папки с Hardella номер версии. То есть, не должно быть не только русских букв, но и ничего другого , кроме латинского шрифта. Стоило оставить Hardella7.1, как перестала компилировать файлы.
С JRE работает нормально.
Еще вопрос к Владимиру: после импорта в КДС в POU перед PLC PRG (PRG) появляется Hardella_SimulationDetector(PRG). Что это такое, и если это имеет отношение к симуляции работы Hardella, как им воспользоваться ?
Hardella_SimulationDetector нужно для того, чтобы обычная симуляция в КДС не ломалась.
Там дело в том, что в КДС симуляции нет такого понятия как "симуляция PRU", поэтому в генерированный код добавляется "если работаем в кдс симуляции, то не пытаться заливать код в PRU".
Эмуляция работы Hardella кода есть, но в виде Java библиотеки: https://github.com/vlsi/pru-emulator
Спасибо. Пару дней поэкспериментирую с реальным ПЛК, благо только что получили новый как раз с открытыми выходами (без реле), причем шеф согласился пока оставить его для разных экспериментов , потом напишу результат. Пока - только о встроенных блоках ШД, составление проекта "с нуля" пока не пробовал.
Можно подвести результат первого испытания . Все заработало сразу, с первой попытки.
Использовался ПЛК110-30М2, драйвер ШД PLD880, двигатель PL86H161, напряжение питания драйвера 48 вольт, ток 5а, деление шага от 1:2 до 1:32 (при разных частотах).
Максимально установленные параметры - ускорение 30000, замедление 10000, максимальная скорость 250000, количество импульсов 500000.
Все отработало нормально, причем с запасом. Больше я не пытался увеличивать скорость, так как при торможении загоралась лампа перегрузки драйвера .
Так что пока впечатления положительные.
Возникло несколько вопросов , один - после экспорта блока (программы) SteppersConfig_PRU0MemoryTransfer в КДС появляется комментарий Hardella о том, что данная программа устарела и будет удалена из следующих релизов, предлагается использовать MemoryRead и MemoryWrite.
При этом обе программы присутствуют и в данном примере, и , похоже, не участвуют в работе , так как данные принимает именно MemoryTransfer. Если возможно, прошу разьяснить данный момент. Можно, конечно, установить, что к чему экспериментально, однако не хочется тратить время.
Остальные вопросы будут после попытки составить свою программу, отличную от имеющихся готовых примеров.
Р.Александр
Вот как раз сейчас творю один двухосевой проект на ШД и Харделла. Пришла идея - спрятал все экспортные PRG харделлы в отдельную папочку, понравилось.
Вопрос такой - в Hardella при управлении шаговым двигателем отключаются с первого по четвертый входы ПЛК. С отключением 1 и 2 входов все понятно - они тоже подключены к PRU, ресурсы которых используются для управления двигателем.
Однако, 3 и 4 входы (DI3 и DI4) на работают с PRU, тем не менее они тоже отключаются.
С чем это связано, и можно ли включить третий и четвертый входы, будет ли это влиять на работу программы STEPPER?
https://hardella.com/docs/pru/featur...9A110-%D0%9C02
Модель ПЛК какая у вас?
Я так понимаю, DI3 и DI4 всегда через PRU распаяны (даже когда они простые, а не быстрые).
Т.е. DI3/4 нужно через PRU программу читать. Можно пробросить переменные. Для этого нужно объявить блок FAST_INPUTS и добавить сверху @Export(in3, in4)
У меня ПЛК-110-30М2. Что то я сомневаюсь, что все 4 распаяны через PRU. Дело в том, что в ПЛК-110-30 всего два быстрых входа, и они имеют адреса %IX0.0 и %IX0.1, а 3 и 4 вход уже адресуется как %IB0.0 и %IB0.1, получается , они находятся в другом байте и включить их через PRU невозможно, и нет смысла распаивать через них.
Может быть, здесь нужно отключать только первый и второй входа, а отключение 4х делать только в ПЛК-110-60, в котором предусмотрено как раз 4 быстрых входа, и адреса у них %IX0.0 , %IX0.1, %IX0.2, %IX0.3 ?
Вот в этом случае они все, видимо, распаяны через PRU. Просто я не видел в инструкции на ПЛК-110-30 никаких ограничений на использование 3 и 4 входов .
А проверить?
У меня ПЛК-110-32М2 и там, вроде, 3 и 4 через PRU, хотя тоже быстрых только 2.
Отключаю не я, а прошивка ПЛК. И я на это повлиять не могу. Если из конфигурации перестают работать DI3/4, то это верный признак того, что они заведены через PRU0, и что через PRU0 должно получаться считывать их состояние.
В инструкции на ПЛК-110 вообще ничего не говорится о возможности программирования PRU.
Именно на такой модели DI3 и DI4 при использовании PRU отключаются. Делал простую трансляцию из PRU-программы в программу хоста. Работает стабильно.Цитата:
ПЛК-110-30М2
Ну, понятно. В принципе, должно хватить остающихся 14 входов. Спасибо за ответ, а то я бы стал изгаляться над ПЛК, опытным путем выясняя все это. Плохо, что в инструкции к контроллеру ничего на эту тему нет.
В принципе, можно было бы файлы, создаваемые Hardella, прилагать к ПЛК как дополнительную библиотеку, описать процесс их использования , тогда разработчики шире использовали бы возможности PRU.
В дополнение к предыдущему моему посту:
Все таки решив "вытащить" два входа , я попробовал "пробросить" их через PRU, решив, что все таки выходы 2 входа можно попробовать вытащить. Не получилось.
Стал проверять, что к чему, экспериментировать, получается, что все 4 входа заведены через PRU0. Потом нашел подтверждение этому на сайте :
"Следует помнить, что все входы заведены на PRU0, т.е. использовать FAST_INPUTS в программе для PRU1 не получится."https://hardella.com/docs/pru/standard-library/
То есть, если нужно использовать входа и один выход, нужно использовать входа на PRU0 и выход на PRU1.
Здравствуйте. 2 дня вожусь и не могу понять, почему Stepper_light для управления 4 шд не работает. До этого делал проект с двумя шаговиками, всё работает. С 4 шд программу запускаю, импульсы в CodeSys видно, что считаются, но на выходе плк всё тихо, индикаторы не моргают. PRU0 и PRU1 записаны в память плк, этот проект на 4 шд я и по своему переписал, сконвертировал в exp. Изменений никаких. В чём причина может быть?
ВЛ85
Вот это делали?
Код:(*Запускаем PRU*)
PruConfig_Pru0Init(enable:=TRUE , running=>PRU_0_RUN );
PruConfig_Pru1Init(enable:= TRUE, running=>PRU_1_RUN );
Нет. Спасибо, попробую, как вернусь из командировки
Вопрос Сотникову:
Меня интересует следующее: в некоторых случаях нет необходимости подавать на ШД импульсы с частотой несколько сот килогерц, достаточно сотни или даже меньше.
Нельзя ли при увеличении времени цикла PRU, допустим, до 10 мсек в одном PRU создать два независимых степпера (генератора импульсов для шагового двигателя), используя каждый быстрый выход в качестве step1 и step2. Направление вращения можно задавать обычным выходом ПЛК, так как там нет необходимости в большой скорости. Таким образом, можно было бы получить на одном ПЛК управление четырьмя двигателями.
Пока интересуюсь просто из любопытства.
При подключении к ПЛК running=>PRU_0_RUN должно быть TRUE, это говорит о том, что PRU-программа работает. Переменные PRU_0_RUN и PRU_1_RUN просто объявлены и нигде далее не используются, служат просто для контроля работы PRU.
Индикаторы могут не моргать по причине очень короткого импульса, т. е. глазом просто не видно. Я вешал обычную индикаторную светодиодную лампочку на 24В на выход Step. И второе - на клемму +U1 ПЛК необходимо подавать +24В, все клеммы COMхх должны быть объединены и подключены на 0В.Цитата:
но на выходе плк всё тихо, индикаторы не моргают