О! Вот это совсем другое дело: т.е. есть дополнительный входной сигнал, и нужно запоминать положение энкодера в момент фронта этого самого спец сигнала.
Да, на MS4 не выйдет.
В простом -- без проблем. Буквально пара строк кода и всего делов:
Код:abzEncoder(A := in1, B := in2, Z := in3); IF R_TRIG(IN := in4).Q THEN положениеИнкодера := abzEncoder.position; END_IF;
да на MS4 с Hardella не получится (во всяком случае без танцев с бубном точно) ибо внедренная библиотека в ОС LX контроллера (увы) заточена под нашу штатную программу PRU.
поэтому динамичная замена программы PRU... == "нашла коса на камень"
P.S. MS4 всё таки позиционируется как контроллер ближе к диспетчеризации, нежели позиционер конвеера с WEB сервером.
P.S.S. 4 строки кода могут убить все, особенно если доходим до ASM (там и пары хватит завалить проц))
Последний раз редактировалось Трофимов Артем; 18.09.2018 в 20:18.
А почему бы нет?
Как-никак, можно же дать пользователям возможность, а они там поймут как, что и для чего.
Может, стоит подумать о динамической загрузке PRU программы? Хоть бы и через Hardella.
Понятно, что там не будет online режима, но его и так нет.
В конце концов, PRU программа пишется 1 раз и всего делов.
Так и в простом случае WHILE TRUE END_WHILE убивает всё. Тут PRU ничем не хуже.
Во второй функции этого проекта контроллер должен генерить импульс между двумя заданными из визуализации точками положения вала энкодера.
Этот проект (и положение вала по импульсу и импульс по заданным точкам и с применением шагового двигателя) я реализовал на STM32F746. IMAG0300.jpg IMAG0301.jpg
Но у меня проблема с визуализацией, да и на производстве устанавливать данный девайс как-то.....
И тут я задумался о 210 блоке с быстрыми входами.
Можно ли что-то организовать с применением этого блока?
reg+kley.jpg shim_kley.jpg shim_reg.jpg
Последний раз редактировалось alex22073; 19.09.2018 в 10:39.
И ещё вопрос - можно ли перепрошить MS4 на CDS?