Автор Тема: Запись в энергонезависимые регистры  (Прочитано 511 раз)

My3blKAnT

  • Новичок
  • *
Здравствуйте!

Имеется SMSD-1.5 Modbus. В программе сделал привязку некоторых параметров движения двигателя к регистрам энергонезависимой памяти (например, количество шагов для перемещения должно браться из D328). Можно и в программе задавать константой, но, чтобы загрузить программу, необходимо перевести тумблер в STOP, а потом обратно в RUN, но доступ к контроллеру ограничен и появляется раз в полгода во время останова оборудования. Необходимо корректировать некоторые параметры удаленно по Modbus. В программе SMSDControllerDemonstrator есть возможность отправлять запросы по Modbus. Но почему-то я не могу добиться, чтобы записанное значение попадало в программу. Может, чтобы записанное значение попало в программу, нужно сначала какой-то внешней командой остановить выполнение программы?

LDP X0 //ловим фронт импульса X0
DMOV D328 D372 //перемещение на x микрошагов (из регистра D328)
MOV K1 D374 //в прямом направлении
MOV K3 D376 //выполняется командой MOVE
SPIN //начать перемещение

Administrator

  • Администратор
  • Ветеран
  • *****
Re: Запись в энергонезависимые регистры
« Ответ #1 : 14 Декабря 2020, 13:47:45 »
Добрый день!

Вот работающий пример:

LDP  M108      ;  НЕ  НУЖНО  КАЖДЫЙ  РАЗ  ПРИМЕНЯТЬ  ПАРАМЕТРЫ  ДРАЙВЕРА, 
                      ;  ДОСТАТОЧНО  ЭТО  СДЕЛАТЬ  ПРИ  ПЕРЕХОДЕ  В  RUN
DMOV  K0  D363    ;    ОБНУЛЯЕМ    ABS
DMOV  K8  D359    ;  МИНИМАЛЬНАЯ  СКОРОСТЬ
DMOV  K120000  D357    ;  МАКСИМАЛЬНАЯ  СКОРОСТЬ
FMOV  K30000  D361  K2  ;  УСКОРЕНИЕ  /  ТОРМОЖЕНИЕ
MOV  K3  D366    ;  ДРОБЛЕНИЕ
MOV  K1  D374    ;  НАПРАВЛЕНИЕ
DMOV  K6000  D377    ;  МОРФИНГ
MOV  K1  D379    ;  ВКЛ  МОРФИНГ
MOV  K3  D376    ;  GOTO_DIR
FMOV  K1500  D367  K2  ;  ТОКИ  УСКОРЕНИЯ
MOV  K1200  D369    ;  ТОК  ДВИЖЕНИЯ  С  ПОСТ.  СКОРОСТЬЮ
MOV  K600  D370    ;  ТОК  УДЕРЖАНИЯ
TORQUE      ;  ПРИМЕНЯЕМ  ПАРАМЕТРЫ  ДВИГАТЕЛЯ
FMOV  K0  D380  K4  ;  НЕ  ОСТАНАВЛИВАЕМСЯ  ПРИ  ВОЗНИКНОВЕНИИ  ОШИБОК
DMOV  D334  D256    ;  восстанавливаем  значение

LDP  X0  //по входу X0 начать перемещение
DMOV  D256  D372    ;  задаём  перемещение регистром D256
DMOV  D256  D334    ;  сохраняем  в  энергонезависимый  регистр
SPIN

;команды остановки
LDP  X1
SSTOP
LDP  X2
SHIZ
LDP  X3
HSTOP
LDP  X4
HHIZ
END