| Предыдущая тема :: Следующая тема |
| Автор |
Сообщение |
Serg314 Частый гость


Зарегистрирован: Dec 27, 2013 Сообщения: 17 Рейтинг: +0/-1
|
Добавлено: Пт 06 Мар, 2015 14:29:54 Заголовок сообщения: Подпрограмма на языке ST |
|
|
Пожалуйста помогите. Перерыл всю документацию, но так и не понял как написать обращение к подпрограмме на языке ST.
Посоветуйте где глянуть на простенький пример программы в которой есть подпрограммы. |
|
| Вернуться к началу |
|
 |
dv_ Эксперт


Зарегистрирован: Sep 14, 2006 Сообщения: 776 Рейтинг: +41/-1 Откуда: Донецк
|
Добавлено: Пт 06 Мар, 2015 14:49:26 Заголовок сообщения: Re: Подпрограмма на языке ST |
|
|
| Serg314 писал(а): | Пожалуйста помогите. Перерыл всю документацию, но так и не понял как написать обращение к подпрограмме на языке ST.
Посоветуйте где глянуть на простенький пример программы в которой есть подпрограммы. |
| Help писал(а): | Structured Text
JSR(RoutineName,InputCount,InputPar,ReturnPar);
SBR(InputPar);
RET(ReturnPar); |
|
|
| Вернуться к началу |
|
 |
mp3corp Эксперт


Зарегистрирован: Dec 12, 2012 Сообщения: 164 Рейтинг: +2/-0
|
Добавлено: Пт 06 Мар, 2015 14:50:46 Заголовок сообщения: |
|
|
| Про jsr почитайте... |
|
| Вернуться к началу |
|
 |
Serg314 Частый гость


Зарегистрирован: Dec 27, 2013 Сообщения: 17 Рейтинг: +0/-1
|
Добавлено: Пт 06 Мар, 2015 14:57:34 Заголовок сообщения: |
|
|
| Эти строки я видел. Но как оформить саму подпрограмму. Где указать ее имя. |
|
| Вернуться к началу |
|
 |
dv_ Эксперт


Зарегистрирован: Sep 14, 2006 Сообщения: 776 Рейтинг: +41/-1 Откуда: Донецк
|
Добавлено: Пт 06 Мар, 2015 15:16:10 Заголовок сообщения: |
|
|
| Serg314 писал(а): | | Но как оформить саму подпрограмму. | Между SBR и RET. Что понимать под "оформить"?
| Serg314 писал(а): | | Где указать ее имя. | Когда создаешь программный файл типа ST. |
|
| Вернуться к началу |
|
 |
Serg314 Частый гость


Зарегистрирован: Dec 27, 2013 Сообщения: 17 Рейтинг: +0/-1
|
Добавлено: Пт 06 Мар, 2015 15:30:16 Заголовок сообщения: |
|
|
| Мы друг друга не понимаем. У меня в программе на ST есть повторяющиеся куски. И я хочу выделить их в несколько подпрограмм. Но у каждой подпрограммы должно быть свое имя. По крайней мере так принято в традиционных языках. Я прошу просто показать фрагмент программы, где есть именно подпрограмма со своим именем. |
|
| Вернуться к началу |
|
 |
mp3corp Эксперт


Зарегистрирован: Dec 12, 2012 Сообщения: 164 Рейтинг: +2/-0
|
Добавлено: Пт 06 Мар, 2015 15:37:40 Заголовок сообщения: |
|
|
| Так не получится, я понял Вас, с прикладным программированием не по наслышке знаком) |
|
| Вернуться к началу |
|
 |
Serg314 Частый гость


Зарегистрирован: Dec 27, 2013 Сообщения: 17 Рейтинг: +0/-1
|
Добавлено: Пт 06 Мар, 2015 15:40:13 Заголовок сообщения: |
|
|
| Т.е. подпрограмм на языке ST нет? |
|
| Вернуться к началу |
|
 |
mp3corp Эксперт


Зарегистрирован: Dec 12, 2012 Сообщения: 164 Рейтинг: +2/-0
|
Добавлено: Пт 06 Мар, 2015 16:03:52 Заголовок сообщения: |
|
|
| Ну как вариант, можно сделать Add-on Instruction и вызывать ее в вашей Routine. А внутри Routine нельзя создать еще одну и вызывать ее. |
|
| Вернуться к началу |
|
 |
Serg314 Частый гость


Зарегистрирован: Dec 27, 2013 Сообщения: 17 Рейтинг: +0/-1
|
Добавлено: Пт 06 Мар, 2015 16:13:13 Заголовок сообщения: |
|
|
| Спасибо. |
|
| Вернуться к началу |
|
 |
dv_ Эксперт


Зарегистрирован: Sep 14, 2006 Сообщения: 776 Рейтинг: +41/-1 Откуда: Донецк
|
Добавлено: Пт 06 Мар, 2015 16:24:53 Заголовок сообщения: |
|
|
| Serg314 писал(а): | | Мы друг друга не понимаем. | Формулируй вопрос тщательней. | Serg314 писал(а): | | У меня в программе на ST есть повторяющиеся куски. И я хочу выделить их в несколько подпрограмм |
N повторов типа A -> N вызовов JSR(A,...) и т.д. SBR для А - одна.

| Serg314 писал(а): | | Но у каждой подпрограммы должно быть свое имя. По крайней мере так принято в традиционных языках. | Как ты создавал программный файл для своего родительского ST, имя задавал?
Панель слева - организатор проекта, раздел Tasks все, что ниже - задачи и программные файлы (нужные тебе имена). Один из них главный, остальные - подпрограммы. SBR и RET применяются только если используешь передачу и прием параметров. Аккуратнее с внутренними (SBR-RET) тегами - обычные теги.
Почитай про AOI (Add On Instruction) - заменяет подпрограммы, но расходует память. Мощнее, но в Online редактировать нельзя, можно только видеть исполнение конкретного вызова (в обычных подпрограммах видно исполнение неизвестно какого вызова).
Последний раз редактировалось: dv_ (Сб 07 Мар, 2015 11:50:44), всего редактировалось 1 раз |
|
| Вернуться к началу |
|
 |
dv_ Эксперт


Зарегистрирован: Sep 14, 2006 Сообщения: 776 Рейтинг: +41/-1 Откуда: Донецк
|
Добавлено: Сб 07 Мар, 2015 11:21:41 Заголовок сообщения: |
|
|
Долго пришлось искать:

Вызов | Код: | Jsr(Entalpy, 2, Water_Hot.Tempr, Water_Hot.Press, Water_Hot.Entalpy);
Jsr(Entalpy, 2, Water_Cool.Tempr, Water_Cool.Press, Water_Cool.Entalpy);
|
| Код: | // энтальпия кДж/кг
Sbr(T,P); // T - град.С; P - МПа
H := 7809.096*T - 13868.72.....
Ret(H);
|
Примеры от Rockwell. |
|
| Вернуться к началу |
|
 |
|