-
Небольшой вопросик.
Привет. Ты уже тут?
Короче, там выявилась проблемка небольшая. Не применяется байт регулировки.
Надо разобраться почему это происходит. Через прогу "rs485" все работало.
Какая последовательность обновления данных в регистре "байт регулировки" при вкючении и калибровке?
Раньше это были три разные байта. Сейчас это один общий.
Имхо, в этом возможно проблема.
-
может быть
для каждого двигателя 1,2,3
по адресу 0001 записывается
eadr1 – регулировка шагового двигателя
eadr2 – скорость перемещения позиция-позиция (0-255)
eadr3 – скорость перемещения в «0» - при калибровке (0-255)
eadr4 – реверс (00 или 01)
-
Это понятно.
Для каждого дигателя эти данные были разные.
При включении эти данные обновлялись.
Обновление данных происходило в определенной последовательности.
Если правильно понимаю, вначале 1, затем - 2, и далее - 3. Верно?
Сейчас все немного по другому.
Адрес 0001 получился общий для всех двиг. - и данные соответственно тоже. А фактически имеем 3 разных двиг.
Переделывать можно только мою программу. Твою программу, "начальник" сказал не переделывать. Это понятно?
Но мне нужно понять в какие моменты происходит обновление данных.
1. При включении.
2. При изменении оператором.
3. Когда еще?
-
Moderator
Вы это по делу или спамите?
-
Привет. Конечно по делу.
-
Moderator
Понятно.
Может быть тему перекинуть в раздел 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 Точнее сказать она запускается, но оборудования не видит.
Все, понял как надо сделать.
С байтом регулировки разобрался. Вопрос закрыт.
Второй вопрос: что нужно сделать, что бы программа упр. работала под виртуалкой? Раньше работала, а сейчас почему-то нет.
Последний раз редактировалось Raymond; 01.08.2012 в 17:42.
Ваши права
- Вы не можете создавать новые темы
- Вы не можете отвечать в темах
- Вы не можете прикреплять вложения
- Вы не можете редактировать свои сообщения
-
Правила форума