Регистрация
 
Добро пожаловать на форум об электродвигателях!

Чтение контроллера SMSD-4.2
Прочитано 13398 раз
* 18 Августа 2013, 12:58:48
Добрый день! Существует ли возможность прочитать состояние контроллера (шаги) во время работы?

Записан


* 19 Августа 2013, 10:34:16
#1
Здравствуйте!
Нет, такой возможности не существует.

Записан


* 19 Августа 2013, 17:26:24
#2
Спасибо! Попробую обойтись без этого. Ещё проблема: в режиме дробления шага 1/2 больше 1000 шагов в секунду двигатель не разгоняется. Импульсы идут (судя по звуку), но вал останавливается. Настройки тока и ускорения не помогли.

Записан


* 19 Августа 2013, 18:02:03
#3
Максимальная скорость в том числе зависит от модели двигателя, напряжения и нагрузки на валу.
Графики зависимости момента от скорости для конкретного комплекта можно получить, отправив запрос на электронную почту в технический отдел.
http://electroprivod.ru/address.htm
Технический отдел:

тел. (812) 974-05-39
engineering@electroprivod.ru

Анна Каргу
mail@electroprivod.ru

Владимир Слугин
slugin@eprivod.ru

Владимир Бойков
bve@eprivod.ru

Илья Помазов
pomazoff@eprivod.ru

Администрация:

Записан


* 21 Августа 2013, 18:15:30
#4
Добрый вечер! С контроллером SMSD-4.2 работаю не первый день, но два вопроса не дают спокойно спать:
1. Что означает команда "0F*" ?. Без неё не работает, а в описании ничего нет.
2. Утилита устранения ошибок... Как её можно реализовать программно? Вижу, что трижды посылается команда "ED*"

Записан


* 22 Августа 2013, 09:25:01
#5
Здравствуйте.
1. Команда "0F*" использовалась для старых блоков, для разрешения микрошага. Сейчас микрошаг у блоков серии SMSD устанавливается переключателями на корпусе, а эта команда игнорируется.
2. Команда "ED*" - не относится к устранению ошибок, она используется для выхода из режима программирования и перезаписи команд в постоянную память контроллера.  Утилита устранения ошибок в SMC-Program относится к самой программе. Если у Вас возникают ошибки, то по их коду нужно выяснить их причину и устранить:
   E13* - ошибка кода испольнительной программы (проверить правильность написания программы, последовательность команд)
   E15* - Ошибка приема по com-порту (проверить верно ли настроены параметры обмена и исправен ли кабель)
   E16* - Ошибка команды (проверить правильность набора названия команды)
   E19* - Ошибка данных команды (значение вышло за допустимый диапазон, лишние знаки в параметре)

Записан


* 22 Августа 2013, 12:34:13
#6
Понял, спасибо!

Записан


* 05 Сентября 2013, 13:41:39
#7
Здравствуйте! Возник ещё один вопрос по чтению контроллера. Программа выполняется, по окончании получаю ответ "Е14*". Всё нормально. Но если остановить выполнение командой "ST1*", то при следующем запуске последний символ "*" перемещается в начало строки. Каждый останов приводит к смещению на один символ. Как этого избежать?

Записан


* 13 Сентября 2013, 14:07:54
#8
Символов перевода строки в ответе контроллера нет. Видимо, Вы считываете не всю строку за раз. Возможно, это особенности компонента передачи данных по RS-232, или при передаче данных происходят какие-то задержки. Это может зависеть как от программной составляющей, так и от конкретной платы порта.

Записан


* 17 Сентября 2013, 16:02:16
#9
Спасибо за ответ. Вы правы, была ошибка  с длиной строки. Разобрался. Теперь всё работает хорошо!

Записан


* 01 Октября 2013, 20:43:35
#10
Здравствуйте! Ещё возникли вопросы: можно ли после ответа контроллера "Е16*" повторять команду, которая не проходит, или начинать заново? Как стереть неудачно записанную в контроллер программу?

Записан


* 02 Октября 2013, 10:24:03
#11
Здравствуйте.
Начинать запись всей программы сначала ненужно. Повторяете команду, которая вызвала ошибку E16, предварительно исправив ошибки, проверив правильность написания команды. Стирать тоже ничего не нужно, так как команда, которая вызвала ошибку, в блок не записывается.

Записан


* 03 Октября 2013, 06:00:56
#12
Заметил интересную особенность контроллера SMSD-4.2. После чтения ответа Е14* (4 байта) нужно дополнительно считать ещё один байт. Только в этом случае не возникает ошибка Е16*.

Записан


* 03 Октября 2013, 10:18:24
#13
Цитировать
Заметил интересную особенность контроллера SMSD-4.2. После чтения ответа Е14* (4 байта) нужно дополнительно считать ещё один байт. Только в этом случае не возникает ошибка Е16*.
Редактировать сообщение

Скорее всего, ошибка в Вашем компоненте приема/передачи данных.
Ошибка E16* ("ошибка команды") появляется только в том случае, если Вы отправляете команду, которая в данный момент не может быть обработана контроллером.

Записан


* 03 Октября 2013, 11:30:55
#14
Спасибо, что быстро отреагировали! Это всегда радует.
После команды ST1* (останов программы) читаю ответ ST1*E14*, который состоит из 9-ти байт! Поэтому и приходится дочитывать 1 байт. Это, возможно, жирная точка (нечитаемый символ ), которая видна в окне SMC_Program. Главное, что работает!

Записан