PDA

Просмотр полной версии : Небольшой вопросик.



Raymond
01.08.2012, 13:19
Привет. Ты уже тут? :)
Короче, там выявилась проблемка небольшая. Не применяется байт регулировки.
Надо разобраться почему это происходит. Через прогу "rs485" все работало.
Какая последовательность обновления данных в регистре "байт регулировки" при вкючении и калибровке?
Раньше это были три разные байта. Сейчас это один общий.
Имхо, в этом возможно проблема.

JuM
01.08.2012, 14:13
может быть
для каждого двигателя 1,2,3
по адресу 0001 записывается
eadr1 – регулировка шагового двигателя
eadr2 – скорость перемещения позиция-позиция (0-255)
eadr3 – скорость перемещения в «0» - при калибровке (0-255)
eadr4 – реверс (00 или 01)

Raymond
01.08.2012, 14:36
Это понятно.
Для каждого дигателя эти данные были разные.
При включении эти данные обновлялись.
Обновление данных происходило в определенной последовательности.
Если правильно понимаю, вначале 1, затем - 2, и далее - 3. Верно?

Сейчас все немного по другому.
Адрес 0001 получился общий для всех двиг. - и данные соответственно тоже. А фактически имеем 3 разных двиг.
Переделывать можно только мою программу. Твою программу, "начальник" сказал не переделывать. :) Это понятно?
Но мне нужно понять в какие моменты происходит обновление данных.
1. При включении.
2. При изменении оператором.
3. Когда еще?

Leff
01.08.2012, 14:42
Вы это по делу или спамите? :confused:

Raymond
01.08.2012, 14:43
Привет. Конечно по делу. :cool:

Leff
01.08.2012, 14:44
Понятно. :)
Может быть тему перекинуть в раздел soft?

Raymond
01.08.2012, 14:47
Да. Это будет правильно.

Raymond
01.08.2012, 15:02
To: JuM
Если некорректно чего спросил - давай уточним.

JuM
01.08.2012, 15:50
Но мне нужно понять в какие моменты происходит обновление данных.
1. При включении.
2. При изменении оператором.
3. Когда еще?

1. при запуске программы данные каждого двигателя считываются, срввниваются с данными из программы,
при несовпадении данные из программы переписываются в соответствующиий двигатеь.

2. при изменении любого из четырех параметров двигателя в окне "Настройка - Двигатели" все параметры
одновремнно записываются в память соответствующего двигателя.

команда: W,H,L,D1,D2,D3,D4
H - старший байт данных
L - младший байт данных
D1, D2, D3, D4 - байты данных слова ППЗУ

перед командой посылается байт с номером двигателя

вот фрагмент программы

ApdComPort1.Parity:=pMark; //изменение свойств COM порта (четность)
ApdComPort1.PutChar(Chr(Device); //отправка номера двигателя
ApdComPort1.Parity:=pSpace; //изменение свойств COM порта (четность)
ApdComPort1.PutString(Str); //отлравка команда

3. других случаев изменения параметров двигателей нет.

Raymond
01.08.2012, 16:21
ОК. Немного понял.
А что будет, если ячейка памяти, где хранится байт регулировки, будет общей для всех двигателей?
Оператор если изменил значение байта в окошке программы, в результате все 4 значения должны были записаться в контроллер. Верно?
Я через программу rs485 записываю новые значения в память - все изменения проходят.
Оператор ручками вводил разные значения в окошечко твоей проги - без результата.
Как это возможно?
Как я понял значения должны сразу записываться в память контроллера, если были сделаны изменения в окошечке "байт регулировки" - перезапуск программы для обновления данных не нужен?

PS И еще проблема, не запускается твоя программа на виртуальной машине. Какую нужно кнопку нажимать?
PPS Точнее сказать она запускается, но оборудования не видит.

Все, понял как надо сделать.
С байтом регулировки разобрался. Вопрос закрыт. :)

Второй вопрос: что нужно сделать, что бы программа упр. работала под виртуалкой? Раньше работала, а сейчас почему-то нет.

JuM
01.08.2012, 17:44
запусти пртрамму без виртуальной машины - больше времени потратим на разбирательства
введи в настройках три разных значения регулировки,
перезапусти программу и проверь, какая регулировка сохранилась.

Raymond
01.08.2012, 18:06
С байтом регулировки понял как все исправить. Как раньше писалось, так и будет.


Прога работает только с одно и двух ядерными процами?
У меня комп 4-х ядерный.
Может это проблема для нее?
Собирать комп из металлалома? Это есть решение проблемы? :)

JuM
01.08.2012, 18:37
отправил тебе на эл.адрес три файла.
скопируй их в папку с программой и запускай программу через
файл "запускУЛР-1А.bat"

Raymond
01.08.2012, 19:04
Программы не получил. :(

Raymond
01.08.2012, 19:42
Получил файлы. Но они у меня были. С ними и не работает.

Под виртуалкой по прежнему не видит контроллер.
Программа Rs485 работает.
Ладно, завтра соберу комп с одним ядром и там запущу.

JuM
01.08.2012, 19:56
отправил на другой адрес.

ВАЖНО!
при настройке установки необходимо устанавливать одинаковую регулировку
для всех трех двагателей т.к. в ini-файле выделено три строки для указания регулировки
каждого двигателя индивидуально.
думаю это надо указать в инстркции по настройке.

Raymond
01.08.2012, 20:31
Я понимаю о чем речь.
Настройки будут для каждого двигателя индивидуально прописаны (кроме байта регулировки).
Я тут нашел путь как это сделать.
Будет три страницы памяти, и в момент выбора номера двигателя они тоже будут переключаться.
Байт регулировки тоже можно индивидуальным сделать, но он зависит от типа двигателя. Если не применять разные двигатели с этим контроллером то и проблемы особой нет. Сделаю чтобы применялись значения первого двигателя ко второму и третьему (а их значения игнорировались). Тогда ничего не нужно будет переделывать.

Надо будет разные двигатели - тогда будем решать эту проблему.
Будем надеятся, что не понадобится.

Raymond
02.08.2012, 12:45
Собрал сегодня комп из металлолома. Включил, тоже пишет "нет связи". Долго искал причину, потом вспомнил, что программа с "изюминкой". Нужно было включить номер порта. :(
Под виртуалкой сейчас тоже работает.
А нельзя было сразу сделать, чтобы программа автоматически проверяла какой порт подключен? :rolleyes: