IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Вызов команд из программы, написанной для контроллера FX Mitsubishi Electric
-AAA-
сообщение 18.01.2007 - 11:46
Сообщение #1


Читатель
*

Группа: Пользователи
Сообщений: 10
Регистрация: 18.01.2007
Пользователь №: 1693



Здравствуйте, господа участники форума.
Очень хочу узнать ваше мнение по такому вопросу.
Возможно ли написать программу для FXxN таким образом, чтобы пользователь
мог задавать код/название команды и ее операнды (например, с панели оператора или в виде
программы в области данных), а контроллер её выполнял. Почему в области данных: способов программного доступа к памяти программ я не нашел.
Благодарю всех, кто отзовется.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Ghoul Jedi
сообщение 19.01.2007 - 11:26
Сообщение #2


Писатель
**

Группа: Пользователи
Сообщений: 67
Регистрация: 15.07.2004
Из: Belarus
Пользователь №: 45



По моймому сие на FX невозможно. Вот в A-серии можно поизвращаться.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
-AAA-
сообщение 19.01.2007 - 11:30
Сообщение #3


Читатель
*

Группа: Пользователи
Сообщений: 10
Регистрация: 18.01.2007
Пользователь №: 1693



Цитата(Ghoul Jedi @ 19.01.2007 - 12:26) *

По моймому сие на FX невозможно. Вот в A-серии можно поизвращаться.

Спасибо, Ghoul Jedi! Для этой серии GX Developer 6.01 подходит?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Sergei Troizky
сообщение 21.01.2007 - 07:55
Сообщение #4


Гигант мысли
****

Группа: Пользователи
Сообщений: 377
Регистрация: 30.12.2004
Пользователь №: 108



В принципе, подобная программа возможна.
Невозможной для серии FX ее делает отсутствие индексной адресации для битов в этой серии.
Поэтому инструкции с битовыми параметрами использовать вряд ли удастся.

А для чего сие чудо нужно? Такое подобие операционной системы займет уйму памяти и времени выполнения.Насколько можно судить по серии FX, ПЛК Mitsubishi- это интерпретаторы, а не компиляторы, и даже невыполняемый текст программы должен прочитываться.


--------------------
Делать надо сразу хорошо. Плохо само получится.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
-AAA-
сообщение 22.01.2007 - 09:48
Сообщение #5


Читатель
*

Группа: Пользователи
Сообщений: 10
Регистрация: 18.01.2007
Пользователь №: 1693



Цитата(Sergei Troizky @ 21.01.2007 - 08:55) *

А для чего сие чудо нужно? Такое подобие операционной системы займет уйму памяти и времени выполнения.Насколько можно судить по серии FX, ПЛК Mitsubishi- это интерпретаторы, а не компиляторы, и даже невыполняемый текст программы должен прочитываться.

Спасибо, Sergei Troizky! Да, это действительно будет подобие ОС, но в сильно упрощенном виде. Задача такова. Пользователю предоставляются средства высокого уровня для того, чтобы он мог писать программы типа "Переместиться влево на 10 мм -> просверлить -> выйти в ноль" (естественно, в кодах, например от 200 и выше) и вносить эти программы в доступную ему память данных. Для таких команд предполагаемая ОС будет представлять собой интерактивный транслятор (интерпретатор). Но для операций сложения, например, лучше использовать язык контроллера (коды команд 0...200), то есть должна быть возможность наряду с командами высокого уровня использовать и низкоуровневые. Подобно тому, как в Паскале можно выполнять команды ассемблера. Таким образом, в язык высокого уронвня не придется включать описания арифметических и прочих элементарных команд.
То есть по сути, команды высокого уровня обрабатываются, а для команд низкого уровня предполагаемая ОС прозрачна.
В принципе устроил бы и такой вариант: моя программа обрабатывает программу пользователя и вносит в память программ контроллера, а затем передает ей управление.
По поводу того, что неисполняемые участки программы тоже читаются и отнимают время - потому-то и хочется сделать так, чтобы моя программа для обработки команд низкого уровня выглядела, образно говоря, так:
...
Если код_команды<=200 то Выполнить FNC_код_команды.
...
Спасибо.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Sergei Troizky
сообщение 23.01.2007 - 01:42
Сообщение #6


Гигант мысли
****

Группа: Пользователи
Сообщений: 377
Регистрация: 30.12.2004
Пользователь №: 108



Еще одно соображение.
Поскольку все параметры инструкций будут задаваться идексной адресацией, каждому параметру текущей инструкции нужен свой индексный регистр.
Поэтому вся серия ниже FX2N не подходит из-за наличия лишь двух индексных регистров.

Вообще, на мой взгляд, вся идея ошибочна. ПЛК- не та среда, в которой надо создавать операционные системы. Реализация потребует столько труда, что лучше потратить его на расшифровку протокола загрузки программы в ПЛК, а затем написать транслятор в компьютере.


--------------------
Делать надо сразу хорошо. Плохо само получится.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
-AAA-
сообщение 23.01.2007 - 09:44
Сообщение #7


Читатель
*

Группа: Пользователи
Сообщений: 10
Регистрация: 18.01.2007
Пользователь №: 1693



Цитата(Sergei Troizky @ 23.01.2007 - 02:42) *

Еще одно соображение.
Поскольку все параметры инструкций будут задаваться идексной адресацией, каждому параметру текущей инструкции нужен свой индексный регистр.
Поэтому вся серия ниже FX2N не подходит из-за наличия лишь двух индексных регистров.

Вообще, на мой взгляд, вся идея ошибочна. ПЛК- не та среда, в которой надо создавать операционные системы. Реализация потребует столько труда, что лучше потратить его на расшифровку протокола загрузки программы в ПЛК, а затем написать транслятор в компьютере.

Проблема в том, что команды должны отрабатываться не только как заранее заданная программа. Должна быть также возможность ручного управления оператором с пульта с помощью кнопок и панели оператора, причем кнопкам назначаются команды высокого уровня. Поэтому идея с PC не подойдет, хотя мне она показалась очень привлекательной. Вообще PC в нашей жизни - это очень здорово...
В общем, я прихожу к выводу, что сохранить возможность использования системных инструкций контроллера не удастся. Поэтому в своем интерпретаторе [уже не ОС :-( ]придется просто прописать несколько самых необходимых операций - сложение, умножение, синус и кв. корень.
P.S. А вот на некоторых микроконтроллерах (PIC, Atmel) такое замутить можно, имея доступ к программной памяти:
...
Если код < 200 то
Положить код в ячейку Память_программ_xx (+ операнды)
Передать управление (или изменить программный счетчик) по адресу Память_программ_xx
Вернуться и продолжить анализ очереди входящих кодов
...
Как вы считаете? Вообще без доступа к памяти программ о чем-то подобном, видимо, и смысла нет говорить. Так что буду искать соответствующий контроллер. Может кто подскажет - есть ли такие в линейке Mitsubishi?
Большое спасибо за сотрудничество, Сергей.

Кстати, я тут глянул - шестнадцать индексных регистров во всех FX. Или в руководстве ошибка? Хотя, помнится, я писал прогу (на FX1N), где для отслеживания событий [в основном ошибок :-)] использовал:
...
inc v1
...
inc v2
...
inc z5
...
Так что с этим, думаю, трудностей не возникнет.

Сообщение отредактировал -AAA- - 23.01.2007 - 15:37
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Sergei Troizky
сообщение 24.01.2007 - 09:09
Сообщение #8


Гигант мысли
****

Группа: Пользователи
Сообщений: 377
Регистрация: 30.12.2004
Пользователь №: 108



Я проверил, всего два индексных регистра в FX1S и FX1N, а также старых FX0, FX0S, FX0N и FX.
Касательно других марок... что-то не слышал я никогда о возможности менять текст программы из самой программы unsure.gif

А вообще, приведенный пример наводит на мысль о неком ЧПУ.
Так там издавна применяются трансляторы, подобные описанному, и коды команд/инструкций там стандартизированы (так называемый G-код).
Может, не стоит изобретать велосипед?

Сообщение отредактировал Sergei Troizky - 24.01.2007 - 09:11


--------------------
Делать надо сразу хорошо. Плохо само получится.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
-AAA-
сообщение 9.02.2007 - 13:30
Сообщение #9


Читатель
*

Группа: Пользователи
Сообщений: 10
Регистрация: 18.01.2007
Пользователь №: 1693



Спасибо, Сергей. Особенно за G-коды. Направление моей мысли немножко изменилось. Пока исследую этот вопрос, будут интересные новости - расскажу.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия Сейчас: 27.04.2024 - 12:45