Чтение контроллера SMSD-4.2
 

Чтение контроллера SMSD-4.2

Автор wwSerg, 18 августа 2013, 12:58:48

« назад - далее »

wwSerg

Добрый день! Существует ли возможность прочитать состояние контроллера (шаги) во время работы?

Administrator

Здравствуйте!
Нет, такой возможности не существует.

wwSerg

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

Administrator

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

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

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

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

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

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

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

wwSerg

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

Ирина

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

wwSerg


wwSerg

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

Administrator

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

wwSerg

Спасибо за ответ. Вы правы, была ошибка  с длиной строки. Разобрался. Теперь всё работает хорошо!

wwSerg

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

Ирина

Здравствуйте.
Начинать запись всей программы сначала ненужно. Повторяете команду, которая вызвала ошибку E16, предварительно исправив ошибки, проверив правильность написания команды. Стирать тоже ничего не нужно, так как команда, которая вызвала ошибку, в блок не записывается.

wwSerg

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

Administrator

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

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

wwSerg

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