реклама на сайте
подробности

 
 
> Язык Рефлекс - диалект Си для программирования ПЛК, обсуждение, критика, вопросы
Владимир Е. Зюби...
сообщение May 10 2006, 07:48
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 97
Регистрация: 3-05-06
Из: Новосибирск
Пользователь №: 16 737



Цитата(Andrew2000 @ May 8 2006, 22:19) *
Есть предложение - может Владимир Зюбин создаст на форуме отдельную ветку для обсуждения Рефлекса? У меня есть желание задать вопросы по языку.


Возражений нет. Для более подробного ознакомления можно посетить
http://reflex-language.narod.ru/

"Язык Рефлекс, известный также под именем "Си с процессами", ориентирован на программирование управляющих алгоритмов в промышленной автоматизации и робототехнике: для систем, предполагающих активное взаимодействие с внешней средой, технологическим оборудованием, физическими процессами через датчики и органы управления."


--------------------
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования алгоритмов управления
(ПЛК, встроенные системы, промавтоматизация) http://reflex-language.narod.ru/
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Andrew2000
сообщение May 15 2006, 16:18
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 421
Регистрация: 25-12-04
Пользователь №: 1 675



В документации сказано:

1. "2.5.4 Адрес регистра в модуле IO может быть в диапазоне от 0 до 2;"
Какой в этом смысл, если
"2.5.5 Адрес модуля IO может быть в диапазоне от 0 до 0xFFFFF"

2. "2.6.8 Возможны процессы, использующие пересекающиеся множества входных и выходных переменных."
Кто последним установит выход, т.е. как определяется последовательность выпонения процессов?

3. "2.7 - в состояниях нет возможности организации циклов и переходов"
Не совсем ясен смысл - 'for' и 'while' отсутствуют, или нет перехода сам в себя?

4. "2.11.5 Описание программы начинается с резервированного слова "Прогр""
А как задается точка входа (типа 'main')? Или нет главного процесса - все процессы стартуют вместе?

5. 'ТАКТ' един для всех процессов или каждому процессу можно назначить свой 'ТАКТ'?
Go to the top of the page
 
+Quote Post
Владимир Е. Зюби...
сообщение May 16 2006, 07:41
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 97
Регистрация: 3-05-06
Из: Новосибирск
Пользователь №: 16 737



Сразу должен сказать, спасибо Вам, Andrew2000, за эти вопросы. Глубоко копнули.
А на хорошие вопросы всегда приятно отвечать.

Цитата(Andrew2000 @ May 15 2006, 22:18) *
В документации сказано:
1. "2.5.4 Адрес регистра в модуле IO может быть в диапазоне от 0 до 2;"
Какой в этом смысл, если
"2.5.5 Адрес модуля IO может быть в диапазоне от 0 до 0xFFFFF"

Большое спасибо за замечание! Это проблема документа, который писался в пакете и во взаимоувязке
с конкретной системой и конкретной библиотекой. На самом деле, это описывается интерпретация параметров для конкретной платформы (MicroPC+УСО UNIO): УСО типа UNIO просто сидят на XT магистрали и имеют три регистра, что относится к платформе, а не к транслятору языку.
Транслятор языка проверяет только то, что это число (числовая константа). Ну и подставляет эти числа как параметры при вызове функции считывания (записи) значений в IO-модули.

Разумеется, что функции считывания (записи), которые привязаны к платформе и описываемые отдельно при портировании, могут интерпретировать эти числа как угодно, например, как некий адрес в ОЗУ.

Спасибо за замечание. Это моя вина, надо было внимательно просмотреть описание, перед публикацией. Файл подкорректировал и обновил на сервере.

Цитата(Andrew2000 @ May 15 2006, 22:18) *
2. "2.6.8 Возможны процессы, использующие пересекающиеся множества входных и выходных переменных."
Кто последним установит выход, т.е. как определяется последовательность выпонения процессов?
Строго говоря, эта ситуация действительно неопределена - процессы параллельны, и, возможно, даже исполняются на разных процессорах.

Хотя конкретные реализации языка могут фиксировать последовательность выполнения, например, задаваемую порядком описания (что естественно). Т.е. в каждом конкретном цикле последовательность выполнения процессов определяется порядком их описания в программе.

Использовать эту информацию, строго говоря, некорректно. Мы, по крайней мере, не используем.

Цитата(Andrew2000 @ May 15 2006, 22:18) *
3. "2.7 - в состояниях нет возможности организации циклов и переходов"
Не совсем ясен смысл - 'for' и 'while' отсутствуют, или нет перехода сам в себя?
Да. Конструкции типа for и while в языке отсутствуют.
Вызвано это идеологическими причинами: в языке нет "естественной"
возможности глобально "завалить" программу.

Ну а если очень хочется, то конечно же, можно. И несколько вариантов, на выбор:
на двух состояниях, с помощью инлайн подстановки Си-кода, с помощью
выносной Си-функции. Первый вариант - самый безопасный. Последний - наименее
удобный.

Цитата(Andrew2000 @ May 15 2006, 22:18) *
4. "2.11.5 Описание программы начинается с резервированного слова "Прогр""
А как задается точка входа (типа 'main')? Или нет главного процесса - все процессы стартуют вместе?
Главный процесс - описанный первым. С него и начинается раскрутка алгоритма.
По включению питания (по запуску). Все процессы, кроме описанного первым, находятся в пассивном состоянии.

Типовая схема примерно такая: первый процесс инициализирует структуры, протоколы, драйверы, "взбадривает" железо, а затем уже переходит к собственно логике: начинает порождать параллельные потоки (запускать нужные процессы). Ну, или чего там ему сказано делать...

Цитата(Andrew2000 @ May 15 2006, 22:18) *
5. 'ТАКТ' един для всех процессов или каждому процессу можно назначить свой 'ТАКТ'?
В текущем варианте языка - ТАКТ один для всех. Проработан вариант изменения синтаксиса в этом направлении, но по реальной надобности пока не ощущается.

Кстати, даже и вариант реализаций проработан - очень простая и мощная идея распределения процессорной загрузки для реализаций типа round-robin, кооперативной многозадачности. Идея делителя базового такта для отдельных процессов.

Если интересно, то этот вопрос обсуждается тут:
Зюбин В.Е., Петухов А.Д. Распределение вычислительных ресурсов с многопоточной реализацией гиперавтомата // Труды III Международной конференции <Идентификация систем и задачи управления> SICPRO '04. Москва 28-30 января 2004 г. С. 446-463 (pdf 366Kb).


--------------------
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования алгоритмов управления
(ПЛК, встроенные системы, промавтоматизация) http://reflex-language.narod.ru/
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Владимир Е. Зюбин   Язык Рефлекс - диалект Си для программирования ПЛК   May 10 2006, 07:48
- - Andrew2000   А вопросы такие: 1. История возникновения языка -...   May 10 2006, 13:35
|- - Владимир Е. Зюбин   Цитата(Andrew2000 @ May 10 2006, 19:35) А...   May 11 2006, 05:53
|- - Kopa   Цитата(Владимир Е. Зюбин @ May 11 2006, 08...   May 11 2006, 12:23
||- - Владимир Е. Зюбин   Цитата(Kopa @ May 11 2006, 18:23) Цитата(...   May 11 2006, 14:09
||- - Kopa   Цитата(Владимир Е. Зюбин @ May 11 2006, 17...   May 12 2006, 02:46
||- - Владимир Е. Зюбин   Цитата(Kopa @ May 12 2006, 08:46) Меня, в...   May 12 2006, 04:09
||- - Kopa   [quote name='Владимир Е. Зюбин' date=...   May 12 2006, 04:50
||- - Владимир Е. Зюбин   Цитата(Kopa @ May 12 2006, 10:50) Цитата(...   May 12 2006, 11:25
||- - Kopa   Цитата(Владимир Е. Зюбин @ May 12 2006, 14...   May 13 2006, 20:12
||- - Владимир Е. Зюбин   Цитата(Kopa @ May 14 2006, 02:12) Не умол...   May 15 2006, 12:52
||- - Kopa   Цитата(Владимир Е. Зюбин @ May 15 2006, 15...   May 15 2006, 17:33
||- - Kopa   Вот еще одна интересная ссылка по затронутой мной...   May 15 2006, 18:22
||- - Владимир Е. Зюбин   Цитата(Kopa @ May 15 2006, 23:33) Цитата(...   May 16 2006, 08:27
||- - Kopa   [quote name='Владимир Е. Зюбин' date=...   May 16 2006, 09:52
||- - Владимир Е. Зюбин   Цитата(Kopa @ May 16 2006, 15:52) Цитата(...   May 17 2006, 04:20
||- - Kopa   Цитата(Владимир Е. Зюбин @ May 17 2006, 07...   May 17 2006, 05:34
||- - Владимир Е. Зюбин   Цитата(Kopa @ May 17 2006, 11:34) Цитата(...   May 17 2006, 11:55
||- - Kopa   [quote name='Владимир Е. Зюбин' date=...   May 18 2006, 02:45
||- - Владимир Е. Зюбин   Цитата(Kopa @ May 18 2006, 08:45) Цитата(...   May 18 2006, 11:53
||- - Kopa   Цитата(Владимир Е. Зюбин @ May 18 2006, 14...   May 18 2006, 12:23
||- - Владимир Е. Зюбин   Цитата(Kopa @ May 18 2006, 18:23) Цитата(...   May 20 2006, 06:41
||- - Kopa   Цитата(Владимир Е. Зюбин @ May 20 2006, 09...   May 24 2006, 04:00
||- - locas   Цитата(Kopa @ May 24 2006, 08:00) P.S. Чт...   May 24 2006, 12:05
||- - Владимир Е. Зюбин   Цитата(locas @ May 24 2006, 18:05) Цитата...   May 26 2006, 09:39
|||- - locas   Цитата(Владимир Е. Зюбин @ May 26 2006, 13...   May 28 2006, 14:06
|||- - Владимир Е. Зюбин   Цитата(locas @ May 28 2006, 20:06) Цитата...   May 29 2006, 04:51
|||- - Andrew2000   Цитата(locas @ May 28 2006, 18:06) Цитата...   May 29 2006, 09:35
|||- - Владимир Е. Зюбин   Цитата(Andrew2000 @ May 29 2006, 15:35) В...   May 30 2006, 11:47
|||- - Andrew2000   Цитата(Владимир Е. Зюбин @ May 30 2006, 15...   Jun 5 2006, 22:55
|||- - Владимир Е. Зюбин   Цитата(Andrew2000 @ Jun 6 2006, 04:55) Ци...   Jun 6 2006, 09:24
|||- - Andrew2000   Цитата(Владимир Е. Зюбин @ Jun 6 2006, 13...   Jun 6 2006, 10:16
|||- - Kopa   Попалась интересная статья по генерации нативного ...   Jun 7 2006, 16:38
|||- - Владимир Е. Зюбин   Цитата(Andrew2000 @ Jun 6 2006, 16:16) Ци...   Jun 9 2006, 11:57
|||- - Andrew2000   Цитата(Владимир Е. Зюбин @ Jun 9 2006, 15...   Jun 9 2006, 17:02
|||- - Владимир Е. Зюбин   Цитата(Andrew2000 @ Jun 9 2006, 23:02) Ци...   Jun 10 2006, 09:03
|||- - Владимир Е. Зюбин   Информационное сообщение: Среди статей по языку Р...   Jul 11 2006, 05:21
||- - Kopa   Цитата(locas @ May 24 2006, 12:05) Цитата...   Feb 12 2007, 06:53
|- - Andrew2000   Цитата(Владимир Е. Зюбин @ May 11 2006, 09...   May 11 2006, 14:16
- - vxzxc   Как добавить Рефлекс в свой контроллер? Как Вы вид...   May 12 2006, 12:46
|- - Владимир Е. Зюбин   Цитата(vxzxc @ May 12 2006, 18:46) Как до...   May 12 2006, 15:12
- - Andrew2000   Цитата(Владимир Е. Зюбин @ May 16 2006, 11...   May 16 2006, 11:06
- - Владимир Е. Зюбин   Цитата(Andrew2000 @ May 16 2006, 17:06) Ц...   May 17 2006, 10:26


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 08:02
Рейтинг@Mail.ru


Страница сгенерированна за 0.01499 секунд с 7
ELECTRONIX ©2004-2016