| Предыдущая тема :: Следующая тема |
| Автор |
Сообщение |
bibby Постоянный участник


Зарегистрирован: Feb 06, 2015 Сообщения: 84 Рейтинг: +0/-0
|
Добавлено: Чт 17 Dec, 2015 7:36:48 Заголовок сообщения: JSR инструкция PLC 5 |
|
|
Добрый день Всем.
Кто-нибудь может объяснить простым языком как работает инструкция JSR. Посмотрел в мануале но полностью не понял. В логике U:44 это файл подпрограммы куда должен переходить процессор? Файл подпрограммы имеется ввиду ранги? А так же передавать константы который в input parameter в эту же подпрограмму? И в конце куда должен возвращать данные хранящееся в N77:37, N79:66?
Фото:
 |
|
| Вернуться к началу |
|
 |
oldDad Site Admin


Зарегистрирован: May 05, 2005 Сообщения: 2773 Рейтинг: +89/-5
|
Добавлено: Чт 17 Dec, 2015 8:11:16 Заголовок сообщения: |
|
|
Вот, смотрите:
При вызове JSR значения из основной программы передаются в подпрограмму SBR:
- Значение из N16:23 передается в N43:0
- Значение из N16:24 передается в N43:1
- Константа 231 передается в N43:2
Затем вызывается файл 90
По окончании подпрограммы значения из SBR передаются назад:
- Значение из N43:3 передается в N19:11
- Значение из N43:4 передается в N19:12. _________________ Обращайтесь к профессионалам. |
|
| Вернуться к началу |
|
 |
bibby Постоянный участник


Зарегистрирован: Feb 06, 2015 Сообщения: 84 Рейтинг: +0/-0
|
Добавлено: Чт 17 Dec, 2015 9:52:54 Заголовок сообщения: |
|
|
| В моем случае отсутствует подпрограмма SBR. Input parameters куда записываются? Что из себя представляет файл U44? Как его можно найти в логике? |
|
| Вернуться к началу |
|
 |
oldDad Site Admin


Зарегистрирован: May 05, 2005 Сообщения: 2773 Рейтинг: +89/-5
|
Добавлено: Чт 17 Dec, 2015 10:40:20 Заголовок сообщения: |
|
|
Вы должны создать или, если это существующий проект, то найти файл подпрограммы, на которую ссылается команда JSR. Первой инструкцией в этой подпрограмме будет команда SBR, а последней - RET, так, как указано в примере, который я Вам выше привёл.
Номер файла этой подпрограммы и будет ссылкой на подпрограмму при ее вызове командой JSR - это параметр Prog file number. В моем примере файл подпрограммы имеет номер 90, а какой он будет у Вас - решайте самостоятельно.
В приведенном Ваи фрагменте программы в подпрограмму передаётся пять констант - 77, 37, 66, 37, 45, а из подпрограммы - две переменные, которые ложатся в N77:37 и в N79:66. _________________ Обращайтесь к профессионалам. |
|
| Вернуться к началу |
|
 |
bibby Постоянный участник


Зарегистрирован: Feb 06, 2015 Сообщения: 84 Рейтинг: +0/-0
|
Добавлено: Пт 18 Dec, 2015 12:09:21 Заголовок сообщения: |
|
|
| Спасибо за ответ. Буду разбираться. |
|
| Вернуться к началу |
|
 |
shrddr Постоянный участник


Зарегистрирован: Sep 09, 2013 Сообщения: 62 Рейтинг: +5/-0
|
Добавлено: Чт 24 Dec, 2015 14:25:20 Заголовок сообщения: |
|
|
| Кстати, мне кажется или у 500 процессоров такой возможности нет, только голый JSR без передачи параметров? |
|
| Вернуться к началу |
|
 |
oldDad Site Admin


Зарегистрирован: May 05, 2005 Сообщения: 2773 Рейтинг: +89/-5
|
Добавлено: Чт 24 Dec, 2015 15:57:07 Заголовок сообщения: |
|
|
Так и есть. SLC попроще, там параметры в подпрограмму передаются через общие ячейки памяти. _________________ Обращайтесь к профессионалам. |
|
| Вернуться к началу |
|
 |
|