Просмотр полной версии : Небольшой вопросик.
Привет. Ты уже тут? :)
Короче, там выявилась проблемка небольшая. Не применяется байт регулировки.
Надо разобраться почему это происходит. Через прогу "rs485" все работало.
Какая последовательность обновления данных в регистре "байт регулировки" при вкючении и калибровке?
Раньше это были три разные байта. Сейчас это один общий.
Имхо, в этом возможно проблема.
может быть
для каждого двигателя 1,2,3
по адресу 0001 записывается
eadr1 – регулировка шагового двигателя
eadr2 – скорость перемещения позиция-позиция (0-255)
eadr3 – скорость перемещения в «0» - при калибровке (0-255)
eadr4 – реверс (00 или 01)
Это понятно.
Для каждого дигателя эти данные были разные.
При включении эти данные обновлялись.
Обновление данных происходило в определенной последовательности.
Если правильно понимаю, вначале 1, затем - 2, и далее - 3. Верно?
Сейчас все немного по другому.
Адрес 0001 получился общий для всех двиг. - и данные соответственно тоже. А фактически имеем 3 разных двиг.
Переделывать можно только мою программу. Твою программу, "начальник" сказал не переделывать. :) Это понятно?
Но мне нужно понять в какие моменты происходит обновление данных.
1. При включении.
2. При изменении оператором.
3. Когда еще?
Вы это по делу или спамите? :confused:
Привет. Конечно по делу. :cool:
Понятно. :)
Может быть тему перекинуть в раздел soft?
To: JuM
Если некорректно чего спросил - давай уточним.
Но мне нужно понять в какие моменты происходит обновление данных.
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. других случаев изменения параметров двигателей нет.
ОК. Немного понял.
А что будет, если ячейка памяти, где хранится байт регулировки, будет общей для всех двигателей?
Оператор если изменил значение байта в окошке программы, в результате все 4 значения должны были записаться в контроллер. Верно?
Я через программу rs485 записываю новые значения в память - все изменения проходят.
Оператор ручками вводил разные значения в окошечко твоей проги - без результата.
Как это возможно?
Как я понял значения должны сразу записываться в память контроллера, если были сделаны изменения в окошечке "байт регулировки" - перезапуск программы для обновления данных не нужен?
PS И еще проблема, не запускается твоя программа на виртуальной машине. Какую нужно кнопку нажимать?
PPS Точнее сказать она запускается, но оборудования не видит.
Все, понял как надо сделать.
С байтом регулировки разобрался. Вопрос закрыт. :)
Второй вопрос: что нужно сделать, что бы программа упр. работала под виртуалкой? Раньше работала, а сейчас почему-то нет.
запусти пртрамму без виртуальной машины - больше времени потратим на разбирательства
введи в настройках три разных значения регулировки,
перезапусти программу и проверь, какая регулировка сохранилась.
С байтом регулировки понял как все исправить. Как раньше писалось, так и будет.
Прога работает только с одно и двух ядерными процами?
У меня комп 4-х ядерный.
Может это проблема для нее?
Собирать комп из металлалома? Это есть решение проблемы? :)
отправил тебе на эл.адрес три файла.
скопируй их в папку с программой и запускай программу через
файл "запускУЛР-1А.bat"
Получил файлы. Но они у меня были. С ними и не работает.
Под виртуалкой по прежнему не видит контроллер.
Программа Rs485 работает.
Ладно, завтра соберу комп с одним ядром и там запущу.
отправил на другой адрес.
ВАЖНО!
при настройке установки необходимо устанавливать одинаковую регулировку
для всех трех двагателей т.к. в ini-файле выделено три строки для указания регулировки
каждого двигателя индивидуально.
думаю это надо указать в инстркции по настройке.
Я понимаю о чем речь.
Настройки будут для каждого двигателя индивидуально прописаны (кроме байта регулировки).
Я тут нашел путь как это сделать.
Будет три страницы памяти, и в момент выбора номера двигателя они тоже будут переключаться.
Байт регулировки тоже можно индивидуальным сделать, но он зависит от типа двигателя. Если не применять разные двигатели с этим контроллером то и проблемы особой нет. Сделаю чтобы применялись значения первого двигателя ко второму и третьему (а их значения игнорировались). Тогда ничего не нужно будет переделывать.
Надо будет разные двигатели - тогда будем решать эту проблему.
Будем надеятся, что не понадобится.
Собрал сегодня комп из металлолома. Включил, тоже пишет "нет связи". Долго искал причину, потом вспомнил, что программа с "изюминкой". Нужно было включить номер порта. :(
Под виртуалкой сейчас тоже работает.
А нельзя было сразу сделать, чтобы программа автоматически проверяла какой порт подключен? :rolleyes:
Powered by vBulletin® Version 4.1.12 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot