Спасибо. Пару дней поэкспериментирую с реальным ПЛК, благо только что получили новый как раз с открытыми выходами (без реле), причем шеф согласился пока оставить его для разных экспериментов , потом напишу результат. Пока - только о встроенных блоках ШД, составление проекта "с нуля" пока не пробовал.
Можно подвести результат первого испытания . Все заработало сразу, с первой попытки.
Использовался ПЛК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