PDA

Просмотр полной версии : Кто пробовал управлять ШД с помощью СП ?



Р.Александр
14.04.2017, 14:41
Возникла необходимость управления шаговым двигателем на нестандартном станке, заказчик просит
организовать его с помощью сенсорной панели.
Двигатель подключается к контроллеру, который управляется по Modbas RTU, как вариант можно поставить другой, управляемый с помощью программ, транслирующих ASCI, например, Hyperterminal.
Кому нибудь приходилось решать подобную задачу?

murdemon
14.04.2017, 14:46
Я обычно подобные решения пишу на HeX :) HeX - это лучший инструмент

Р.Александр
14.04.2017, 15:07
Я обычно подобные решения пишу на HeX :) HeX - это лучший инструмент
Вопрос в том, чтобы редактор загнать в сенсорную панель, или в СПК. Или сделать ввод из регистров панели напрямую в память контроллера ШД .

Scream
14.04.2017, 15:27
Я управлял драйвером Онитекс OSM-42RA через RS485, нормально.

Р.Александр
14.04.2017, 15:42
Я управлял драйвером Онитекс OSM-42RA через RS485, нормально.

Можно поподробнее? У меня Онитекс OSM88u. Через ПК все нормально. Вы управляли через панель ?

Scream
14.04.2017, 16:52
Можно поподробнее? У меня Онитекс OSM88u. Через ПК все нормально. Вы управляли через панель ?

управлял и с ПК и с ПЛК160, но какая разница с панелью не понимаю, протокол modbus rtu везде есть, онитекс программу и примеры даёт. В чём собственно сложность?

IVM
14.04.2017, 19:25
Я обычно подобные решения пишу на HeX :) HeX - это лучший инструмент

А что такое HeX ?

Р.Александр
15.04.2017, 10:20
управлял и с ПК и с ПЛК160, но какая разница с панелью не понимаю, протокол modbus rtu везде есть, онитекс программу и примеры даёт. В чём собственно сложность?
Да, протокол есть и просто управлять в ручном режиме(пуск, стоп, реверс).
Задача в том, чтобы с панели менять программу в контроллере, причем делать это должен оператор, не знакомый с программированием.
То есть, он должен забить в ячейки на панели скорость, расстояние, ускорение, момент останова, реверса и так далее, затем программу нужно транслировать в контроллер, и запускать станок уже кнопкой "Пуск".
Проще говоря, нужно, к примеру, хотя бы Онитексовский OSM Programmer втиснуть в панель, а не просто управлять с помощью Модбаса.

Р.Александр
15.04.2017, 10:22
А что такое HeX ?
Редактор. Наберите в поисковике, там много статей о нем.

petera
15.04.2017, 11:03
Можно поподробнее? У меня Онитекс OSM88u. Через ПК все нормально. Вы управляли через панель ?

Смотрю руководство OSM-88u http://onitex.ru/files/Documentation/OSM/datasheet_OSM88U_rev.2.pdf
Нету там RS485 или RS232. Связь с OSM88u возможна только через USB
30589

30590

30591

Вы не сможете OSM88u подключить к панели.

ЗЫ.
Модбаса в нем тоже нет. Соответственно и регистров нет. Понимает только символьные команды. Поэтому в панели придется делать подобие терминальной программы.

Scream
15.04.2017, 12:00
Двигатель подключается к контроллеру, который управляется по Modbas RTU ....
Кому нибудь приходилось решать подобную задачу?



...Проще говоря, нужно, к примеру, хотя бы Онитексовский OSM Programmer втиснуть в панель, а не просто управлять с помощью Модбаса.

ТС сам не знает чего хочет, я сливаюсь.

petera
15.04.2017, 12:30
ТС сам не знает чего хочет, я сливаюсь.

Ну если панель сможет соединиться с контроллером через переходник RS232-->USB, что не факт - х.з. нужны ли переходнику все сигналы RS232, например RTS/CTS, то нечто похожее
на это
30597
сделать можно.

Р.Александр
15.04.2017, 14:47
Смотрю руководство OSM-88u http://onitex.ru/files/Documentation/OSM/datasheet_OSM88U_rev.2.pdf
Нету там RS485 или RS232. Связь с OSM88u возможна только через USB
30589

30590

30591

Вы не сможете OSM88u подключить к панели.

ЗЫ.
Модбаса в нем тоже нет. Соответственно и регистров нет. Понимает только символьные команды. Поэтому в панели придется делать подобие терминальной программы.
Об этом и разговор. Можно ли что то подобное изобразить либо в СП307, либо в СПК ? Это просто предварительная "разведка",
может, кто то что то уже ваял, чтобы долго не заморачиваться.
А насчет контроллера - его можно заменить либо на такой же с индексом R или RA, они имеют как раз Модбас, либо на подобный из семейства SMSD. Кстати, посмотрите ссылку http://electroprivod.ru/mt6071ie.htm, хорошо бы Овену что то подобное выпустить на своих панелях...
Сейчас проблема в том, что снабженцы уже закупили панели СП307 Б и СПК 107, необходимо использовать именно их.

Scream
15.04.2017, 16:20
К usb подключить? Как драйвер на СП поставите? Тут вопрос то не в программе.

Р.Александр
15.04.2017, 20:02
ТС сам не знает чего хочет, я сливаюсь.
Вообще то там дальше написано "как вариант" и так далее. Но если не можете ничего другого предложить - сливайтесь.

Р.Александр
15.04.2017, 20:07
К usb подключить? Как драйвер на СП поставите? Тут вопрос то не в программе.
А зачем драйвер на СП? Если чисто по Модбасу, как вы предлагали, то достаточно просто сваять окна ввода на панели, подключить ее как мастер и вводить через нее в регистры контроллера данные о скорости и небходимом числе импульсов, а также направлении движения.
Драйвер то в контроллере ОСМ уже имеется...

Павел Братковский
15.04.2017, 20:36
в любом вопросе, в коммерческом отношении прежде,чем связываться с murdemon хорошенько подумайте??????????????

petera
15.04.2017, 21:25
А зачем драйвер на СП? Если чисто по Модбасу, как вы предлагали, то достаточно просто сваять окна ввода на панели, подключить ее как мастер и вводить через нее в регистры контроллера данные о скорости и небходимом числе импульсов, а также направлении движения.
Драйвер то в контроллере ОСМ уже имеется...

Дело тут не в драйвере USB для СП.
Возможно, что контроллер будет работать при подключении к панели с помощью переходника RS232-->USB. Панель(порт PLC)-->RS232/USB-->контроллер. Это при условии, что для переходника RS232/USB со стороны RS232 достаточно трех сигналов GNG, TxD и RxD.

Если брать другой контроллер, с Модбасом и с портами RS232/RS485, то совсем не достаточно "сваять окна ввода на панели, подключить ее как мастер и вводить через нее в регистры контроллера данные о скорости и небходимом числе импульсов, а также направлении движения". Потому, что не получится

Задача в том, чтобы с панели менять программу в контроллере, причем делать это должен оператор, не знакомый с программированием.
То есть, он должен забить в ячейки на панели скорость, расстояние, ускорение, момент останова, реверса и так далее, затем программу нужно транслировать в контроллер, и запускать станок уже кнопкой "Пуск".
Все дело в том, что по протоколу Модбас возможна работа только в режиме контроллера т.е. реального времени.
30604

А то, что Вы хотели изначально -"программу нужно транслировать в контроллер, и запускать станок уже кнопкой "Пуск"" возможно только в программном режиме
30605
А это возможно только если используется протокол OSMASCII, а не Модбас.

Еще раз повторю, что если связка Панель-->переходник RS232/USB--> контроллер заработает, то использование протокола OSMASCII не должно вызывать сложностей.
Протокол очень простой

Алгоритм работы с контроллером серий U и R c поддержкой ASCII протокола следующий (описан в документации):

Посылаем один символ команды.
Ждем получения "эха" (повторения переданного символа), передаем второй символ и т. д.
После передачи символов передаем символ завершения команды '>'.
В случае получения кода ошибки "e6" (ошибка интерпретации команды), необходимо отправить контроллеру команду завершения ввода программы "FN>".Тогда контроллер сможет воспринять следующую команду "LM>" (загрузка программы) без ошибки. Обратите внимание, что если запустить контроллер на бесконечное движение, он не сможет воспринимать команды во время движения. Вывести его из этого состояния можно командой "RX>" (перезапуск контроллера).

В случае получения символа 'новая строка': посылаем следующую команду аналогичным образом.
Причем все команды - два символа
Окно, по типу терминала, для ввода последовательности команд сделать можно.

Р.Александр
16.04.2017, 09:10
Все, что вы написали, касается контроллеров с индексами U и RA, однако есть еще контроллер OSM-88R, конкретно ориентированный на работу с 232 и 485 портами. Причем для работы с 232 портом ему требуются только Тх, Rx и GND, также говорится о возможности работы с USB переходниками и работе в программном режиме, но только - с ПК.
И все это проверено и прекрасно работает, теперь задача только в том, чтобы перенести управление с ПК на СП или СПК.
Насчет трансляции ASCII символов, к примеру, с панели - панель ведь вроде может работать в режиме Modbus ASCII Master, можно ли будет использовать этот режим, мне не приходилось с ним сталкиваться, в основном RTU.

petera
16.04.2017, 09:25
Все, что вы написали, касается контроллеров с индексами U и RA, однако есть еще контроллер OSM-88R, конкретно ориентированный на работу с 232 и 485 портами. Причем для работы с 232 портом ему требуются только Тх, Rx и GND, также говорится о возможности работы с USB переходниками и работе в программном режиме, но только - с ПК.
И все это проверено и прекрасно работает, теперь задача только в том, чтобы перенести управление с ПК на СП или СПК.
Насчет трансляции ASCII символов, к примеру, с панели - панель ведь вроде может работать в режиме Modbus ASCII Master, можно ли будет использовать этот режим, мне не приходилось с ним сталкиваться, в основном RTU.

Трансляция ASCII символов в этом контроллере к Modbus ASCII никакого отношения не имеет. Для посылки ASCII символов используется протокол OSMASCII, а не Modbus ASCII см. мой пост выше.
Если Вы все таки хотите записать в контроллер именно программу в виде цепочки из отдельных команд, как это делается из гипертерминала или OSM Programmer, то нужен контроллер без модбаса.
Для общение с контроллером в этом случае нужно использовать прямое управление портом панели(запись символов команд в контроллер и чтение ответов) с помощью макроса(-сов) на Си.

Scream
16.04.2017, 09:46
Из rs232 СП в usb драйвера это бред, нужен драйвер и мастер шины, так просто преобразовать не получится.
Командами modbus можно сказать, двигайся влево на 1000 шагов с разгоном 50 и в конце с замедлением 100, но если увидишь дискретный датчик (концевик), то немедленно остановись.

Этого не достаточно для управления по modbus?

Зачем городить протокол, который явно ТС не под силу, следующий у него будет вопрос "а как открыть порт и передать туда байты", затем будет "почему в документации написано так, а работает эдак", все через это проходят.


А по поводу USB сильно заблуждаетесь.

Р.Александр
16.04.2017, 15:07
Ну, положим, как открыть порт и передать туда байты я могу вам самому обьяснить. А вот до вас никак не дойдет, что мне НЕ НУЖНО просто управлять двигателем типа вперед, назад, стоп, мне нужно написать программу, используя панель или СПК, передать ее в контроллер, в его энергонезависимую память, чтобы программа там сохранялась и запускалась по нажатию ФИЗИЧЕСКОЙ, а не сенсорной кнопки пуск, исполняла все записанные команды и останавливалась, и так необходимое количество раз.
Но в контроллерах OSM -U и -RA такой возможности с использованием Modbas не предусмотрено, в одном есть программируемый режим, но нет Modbas, в другом есть Modbas, но нет программируемого режима.
Есть контроллеры OSM с индексом -R, в которых есть и Modbas, и программируемый режим, но программирование опять предусмотрено по протоколу OSM ASCII.
Поэтому я и спросил в самом начале - кому приходилось делать то то и то то, Petera понял, в чем дело и написал об этом. Вы не разобрались, что к чему и продолжаете настаивать на своем

Р.Александр
16.04.2017, 15:50
Трансляция ASCII символов в этом контроллере к Modbus ASCII никакого отношения не имеет. Для посылки ASCII символов используется протокол OSMASCII, а не Modbus ASCII см. мой пост выше.
Если Вы все таки хотите записать в контроллер именно программу в виде цепочки из отдельных команд, как это делается из гипертерминала или OSM Programmer, то нужен контроллер без модбаса.
Для общение с контроллером в этом случае нужно использовать прямое управление портом панели(запись символов команд в контроллер и чтение ответов) с помощью макроса(-сов) на Си.
Хорошо, с этим моментом ясно, тем более у панели нет порта USB, предназначенного для обмена с ней периферийных устройств, что затрудняет ее использование даже при наличии макроса.
Но такой вопрос - допустим, берем контроллер с портом RS-232 (тот же RA), который не может работать в программируемом режиме, но работает в автоматическом, с управлением по Modbus, в панели записываем нужные нам данные в регистры PFW, и пишем макрос, по которому после запуска происходит последовательное чтение и передача в контроллер содержания этих регистров - по Modbus?
Будет ли работать подобная система ?

petera
16.04.2017, 16:32
Ну, положим, как открыть порт и передать туда байты я могу вам самому обьяснить. А вот до вас никак не дойдет, что мне НЕ НУЖНО просто управлять двигателем типа вперед, назад, стоп, мне нужно написать программу, используя панель или СПК, передать ее в контроллер, в его энергонезависимую память, чтобы программа там сохранялась и запускалась по нажатию ФИЗИЧЕСКОЙ, а не сенсорной кнопки пуск, исполняла все записанные команды и останавливалась, и так необходимое количество раз.
Но в контроллерах OSM -U и -RA такой возможности с использованием Modbas не предусмотрено, в одном есть программируемый режим, но нет Modbas, в другом есть Modbas, но нет программируемого режима.
Есть контроллеры OSM с индексом -R, в которых есть и Modbas, и программируемый режим, но программирование опять предусмотрено по протоколу OSM ASCII.
Поэтому я и спросил в самом начале - кому приходилось делать то то и то то, Petera понял, в чем дело и написал об этом. Вы не разобрались, что к чему и продолжаете настаивать на своем
До меня это сразу дошло, про это все время и говорю.

Хорошо, с этим моментом ясно, тем более у панели нет порта USB, предназначенного для обмена с ней периферийных устройств, что затрудняет ее использование даже при наличии макроса.
Но такой вопрос - допустим, берем контроллер с портом RS-232 (тот же RA), который не может работать в программируемом режиме, но работает в автоматическом, с управлением по Modbus, в панели записываем нужные нам данные в регистры PFW, и пишем макрос, по которому после запуска происходит последовательное чтение и передача в контроллер содержания этих регистров - по Modbus?
Будет ли работать подобная система ?
Если с USB есть сомнения, и для контроллеров с RS232 - например OSM-17R или OSM-42R есть программный режим работы
30616
выбирается переключателями

У других контроллеров с портом RS232 , например OSM-88RA, http://onitex.ru/files/Documentation/OSM/datasheet_OSM88RA_rev.2.pdf производитель в руководстве указывает на возможность записать в контроллер прошивку OSM ASCII
30617
или в любой момент вернуться к прошивке с модбасом.

petera
16.04.2017, 16:59
Из rs232 СП в usb драйвера это бред, нужен драйвер и мастер шины, так просто преобразовать не получится.
А по поводу USB сильно заблуждаетесь.

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

Где Вы видели устройство USB, например флешку, у которой в характеристиках есть скорость передачи, количество стоповых бит, четность и пр.?
Посему я думаю, что в контроллере между физ. выводами порта UART процессора и физ. разъемом USB стоит микросхема, например ft232
http://oscope.narod.ru/usb_ft232r.html
30623
И процессор контроллера общается с внешним миром так же, как он это делает по RS232 и ничего он про шину USB не знает.
Так сделано даже в ардуине, да и в массе других изделий, те же ПЛК ОВЕН используют USB порт точно также.
Это для ОС Windows драйвер виртуального ком порта нужен, что бы организовать RS232 поверх USB. А панели он зачем? У нее реальный СОМ порт есть.
Ну и если в переходнике RS232/USB используется та же микросхема ft232, то почему бы не работать связке СОМ порт <---> RS323/USB <---> USB/UART <---> микропроцессор контроллера?

petera
16.04.2017, 17:26
Но такой вопрос - допустим, берем контроллер с портом RS-232 (тот же RA), который не может работать в программируемом режиме, но работает в автоматическом, с управлением по Modbus, в панели записываем нужные нам данные в регистры PFW, и пишем макрос, по которому после запуска происходит последовательное чтение и передача в контроллер содержания этих регистров - по Modbus?
Будет ли работать подобная система ?
Геморрой будет похлеще чем при протокол OSMASCII.
Т.е. Вы предлагаете изобрести свой велосипед - команды, аналогичные OSM Programmer, но состоящие из элементарных команд записи в модбас регистры контроллера.
1. Команды OSMASCII различные по структуре -есть команды без параметров, а есть с параметрами в виде числовых значений. Для команд потребуется разное количество регистров модбас, а это только усложнит задачу.
2. Сделать в панели такой секвенсор, для воспроизведения последовательности команд с различным количеством регистров в командах непросто, а сделать интерфейс для записи команд(нужных данных) в PFW регистры еще сложней.
3. Предположим, что мы сделали такой секвенсор, однако мало просто "после запуска происходит последовательное чтение и передача в контроллер содержания этих регистров - по Modbus".
Ведь нужно послать набор регистров одной команды по Modbus и дождаться ответа от контроллера, что команда выполнена или не выполнена, а уже потом посылать в контроллер следующий набор регистров. А в штатных инструментах панели даже нет средств сравнить значения двух чисел или сделать элементарные логические AND или OR.

ИМХО.
Протокол OSMASCII для Вашей задачи более предпочтительный, чем последовательное чтение и передача в контроллер содержания этих регистров - по Modbus.

Р.Александр
16.04.2017, 22:30
У других контроллеров с портом RS232 , например OSM-88RA, http://onitex.ru/files/Documentation...88RA_rev.2.pdf производитель в руководстве указывает на возможность записать в контроллер прошивку OSM ASCII
К сожалению, эта функция у OSM - RA есть только в сообщениях на сайте и в руководстве, опубликованном на сайте.
В упаковку с полученным контроллером была вложена бумажка, в которой говорится - "Эта функция временно пользователям недоступна, перепрограммирование возможно только в сервисном центре". А последний находится в Питере, так что для нас это слишком далеко и долго.
Так что будем писать макрос на основе библиотеки для ASCII из SDR Онитекс.
Спасибо за консультацию.

Р.Александр
17.04.2017, 10:59
Такой вопрос - если контроллер "понимает" команды, передаваемые символами ASCII и может работать с HYPERTERMINAL, значит, терминальная программа в панели тоже должна в принципе связываться с другими терминальными программами, использующими ASCII.
Тогда можно, создав подобную программу в Конфигураторе СП300, запустить ее на онлайн эмуляцию, связать по нужному порту с другим компом, в котором запустить тот же НРТерминал , и они должны "видеть" посылаемые друг другу команды.....

Евгений Кислов
17.04.2017, 11:11
Такой вопрос - если контроллер "понимает" команды, передаваемые символами ASCII и может работать с HYPERTERMINAL, значит, терминальная программа в панели тоже должна в принципе связываться с другими терминальными программами, использующими ASCII.
Тогда можно, создав подобную программу в Конфигураторе СП300, запустить ее на онлайн эмуляцию, связать по нужному порту с другим компом, в котором запустить тот же НРТерминал , и они должны "видеть" посылаемые друг другу команды.....

В эмуляции (в т.ч. в онлайн-эмуляции) макросы для панели не работают.

Р.Александр
17.04.2017, 11:13
В эмуляции (в т.ч. в онлайн-эмуляции) макросы для панели не работают.
Жаль. Не хотелось сырую программу в панель грузить.

petera
17.04.2017, 11:17
Такой вопрос - если контроллер "понимает" команды, передаваемые символами ASCII и может работать с HYPERTERMINAL, значит, терминальная программа в панели тоже должна в принципе связываться с другими терминальными программами, использующими ASCII.
Тогда можно, создав подобную программу в Конфигураторе СП300, запустить ее на онлайн эмуляцию, связать по нужному порту с другим компом, в котором запустить тот же НРТерминал , и они должны "видеть" посылаемые друг другу команды.....
В эмуляторе запустить подобную программу нельзя.
1. Онлайн эмуляция поддерживает только работу в режиме Modbus RTU (Панель - Мастер), даже Панель слейв в онлайн эмуляции не работает.
2. Терминальная программа в конфигураторе может быть создана только при прямом управлении портом панели, а это только макросы на Си. Как известно макросы на Си в эмуляции не работают.

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

Р.Александр
17.04.2017, 15:08
В эмуляторе запустить подобную программу нельзя.
1. Онлайн эмуляция поддерживает только работу в режиме Modbus RTU (Панель - Мастер), даже Панель слейв в онлайн эмуляции не работает.
2. Терминальная программа в конфигураторе может быть создана только при прямом управлении портом панели, а это только макросы на Си. Как известно макросы на Си в эмуляции не работают.

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

petera
17.04.2017, 16:16
Буду ждать и посмотрю с большим интересом.
Ну например так

https://www.youtube.com/watch?v=Hw6rPL-osog
Некий гибрид гипертерминала и OSM Programmer.
От гипертерминала - двух символьные мнемоники команд, от OSM Programmer - все команды сгруппированы по назначению и встваляются простым кликом мышки, т.е нажатием кнопки, по каждой команде предусмотрена подсказка.

Р.Александр
17.04.2017, 19:17
Выглядит серьезно. Вы протестировали с реальным контроллером ШД и двигателем? В реальную панель загружали?

petera
18.04.2017, 09:08
Выглядит серьезно. Вы протестировали с реальным контроллером ШД и двигателем? В реальную панель загружали?

Вы хотите, чтобы я за один день сделал полностью работающий проект?:rolleyes:

ЗЫ.
А если серьезно, то
На видео показано мое представление интерфейса терминальной программы. А именно каким образом можно вводить на экране панели символы команд в контроллер и каким способом можно выводить на экран ответы контроллера.
В этом виде программа в панели прекрасно работает. Могу ее в личку скинуть Вам, поиграетесь.
Контроллера ШД у меня нет и о существовании указанной Вами модели OSM-88u узнал только три дня назад. По этому на данном этапе я не реализовал ту часть программы, которая должна вести обмен с контроллером посредством протокола OSMASCII
В лучшем случае, если буду продолжать, то смогу только протестировать обмен с помощью гипертерминала - посылать символы команд из панели в гипертерминал через СОМ порт и в гипертерминале вручную вводить предпологаемые ответы контроллера.

Р.Александр
18.04.2017, 11:41
Вы хотите, чтобы я за один день сделал полностью работающий проект?:rolleyes:

ЗЫ.
А если серьезно, то
На видео показано мое представление интерфейса терминальной программы. А именно каким образом можно вводить на экране панели символы команд в контроллер и каким способом можно выводить на экран ответы контроллера.
В этом виде программа в панели прекрасно работает. Могу ее в личку скинуть Вам, поиграетесь.
Контроллера ШД у меня нет и о существовании указанной Вами модели OSM-88u узнал только три дня назад. По этому на данном этапе я не реализовал ту часть программы, которая должна вести обмен с контроллером посредством протокола OSMASCII
В лучшем случае, если буду продолжать, то смогу только протестировать обмен с помощью гипертерминала - посылать символы команд из панели в гипертерминал через СОМ порт и в гипертерминале вручную вводить предпологаемые ответы контроллера.

Если вы скинете мне программу в личку, буду весьма благодарен, хотя бы будет от чего оттолкнуться.
Насчет тестирования с гипертерминалом, думаю, такого теста будет вполне достаточно, так как контроллеры с ним работают.
Если заинтересуетесь, кроме ОСМProgrammer есть аналогичная программа на сайте "Электропривод.ру", название
SMS Programmer, работает с контроллерами других фирм, но аналогичным образом(символами ASCII) , более продвинутая в смысле установок - там программируется три оси, причем программирование перемещений делается не в шагах двигателя, а непосредственно в миллиметрах.
Кстати, попробуйте предложить "Овену" ваш проект, может, они заинтересуются и
пустят в работу, в смысле, будут по заказу устанавливать в свои панели за дополнительную оплату.

petera
18.04.2017, 14:12
Ссылку на скачивание программы, даже две программы я Вам отправил.
30652
Только там нет самого главного - макроса на си, который должен выполнять обмен символами с контроллером. В конечном варианте мнемоники команд должны передаваться в макрос, а он в свою очередь должен отправлять их в порт панели по одному символу и далее принимать из порта по одному символу контроллера и складывать полученные символы(байты) в регистры, которые будут отображаться в окне терминала на экране панели.

А у меня в примере сейчас мнемоники команд минуя макрос обмена сразу попадают в буфер терминального окна. По этому в кнопках команд сейчас масса лишних функций.
30654

30655

Окно терминала сделано из 20 символьных дисплеев по 12 символов(6 регистров)
30656
Адрес регистра каждого последующего дисплея на 6 больше адреса регистра предыдущего.
Таим образом в окне терминала отображается непрерывная область из 120 регистров(240 символом).
Т.к. для дисплеев используется динамическая адресация, то окно отображения можно перемещать в адресном пространстве регистров панели это делает слайдер.

В примере используется динамическая адресация для
PSW40 - индекс области отображения терминального окна в адресном пространстве PSW регистров
PSW41 - индекс строки терминального окна для ввода текущих символов
PSW1000 - номер позиции регистра в строке для ввода текущих символов
PSW1001 - номер позиции регистра от начала буфера для ввода текущих символов

ЗЫ.
По мотивам этой темы сделал гипертерминал, для связи панели с ПЛК, например в Windows через программу HyperTerminal
https://owen.ru/forum/showthread.php?t=26719

https://www.youtube.com/watch?v=k1K7IP1nV9o

Р.Александр
18.04.2017, 20:56
Ссылку на скачивание программы, даже две программы я Вам отправил.
30652
Только там нет самого главного - макроса на си, который должен выполнять обмен символами с контроллером. В конечном варианте мнемоники команд должны передаваться в макрос, а он в свою очередь должен отправлять их в порт панели по одному символу и далее принимать из порта по одному символу контроллера и складывать полученные символы(байты) в регистры, которые будут отображаться в окне терминала на экране панели.

А у меня в примере сейчас мнемоники команд минуя макрос обмена сразу попадают в буфер терминального окна. По этому в кнопках команд сейчас масса лишних функций.
30654

30655

Окно терминала сделано из 20 символьных дисплеев по 12 символов(6 регистров)
30656
Адрес регистра каждого последующего дисплея на 6 больше адреса регистра предыдущего.
Таим образом в окне терминала отображается непрерывная область из 120 регистров(240 символом).
Т.к. для дисплеев используется динамическая адресация, то окно отображения можно перемещать в адресном пространстве регистров панели это делает слайдер.

В примере используется динамическая адресация для
PSW40 - индекс области отображения терминального окна в адресном пространстве PSW регистров
PSW41 - индекс строки терминального окна для ввода текущих символов
PSW1000 - номер позиции регистра в строке для ввода текущих символов
PSW1001 - номер позиции регистра от начала буфера для ввода текущих символов
Спасибо, я уже смотрел и ответил вам в личке. Здесь лишь скажу, что получился универсальный терминал для прямого управления шаговым двигателем и программирования контроллеров ШД.
Повидимому, я его несколько упрощу, так как мне нужны всего несколько команд, которые обеспечили бы движение вперед на устанавливаемое расстояние с устанавливаемой скоростью, и реверс с возвратом в исходную точку.
В то же время попробую несколько усложнить, чтобы была возможность расстояние и ускорение указывать в миллиметрах, это не должно быть трудно, так как требует просто элементарного пересчета с учетом шага ШВП в миллиметрах на оборот, видимо, это тоже проще сделать с помощью макроса.
Нужно будет только решить проблему, которую мне создали наши снабженцы, я вам писал об этом в личке.