Вызов subroutine из секции

Модератор: SaniOK

Вызов subroutine из секции

Сообщение wolka » 18 янв 2017, 23:02

Unity Pro V11.
Необходимо многократно использовать в программе некоторый алгоритм. Никак не могу понять из хелпа, как же это правильно сделать?
Алгоритм я написал в секции SR. Но вот никак не могу ни метку этой subroutine назначить (L9_LAB), ни вызвать ее из "тела" программы в основной секции (L9_JSR). Постоянно вылетает ошибка, что FFB тип не допускается в этой секции. :x
wolka
 
Сообщений: 46
Зарегистрирован: 01 дек 2016, 20:37
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0

Re: Вызов subroutine из секции

Сообщение Огородников Сергей » 19 янв 2017, 06:01

Как обычно - подробности (.sta) в студию))

Многократное использование алгоритма может быть:
1. В виде DFB - пользовательского функционального блока. В этом случае у каждого экзепляра ФБ будет свой набор интерфейсных переменных (INPUT, OUTPUT, IN_OUT). Например, создали DFB управления клапаном KLAPAN. Каждый экземпляр(instance) - KLAPAN_1, KLAPAN_2 и т.д. связывается со своим набором переменных, касающихся конкретного клапана (открыт, закрыт, открыть, закрыть и т.д.).
Создаётся DFB во вкладке DFB редактора переменных, языки - LD, FBD, ST и IL.

2. В виде подпрограммы (SR). В этом случае никаких входных-выходных переменных не используется, в подпрограмме используются глобальные переменные. Вызов подпрограммы производится с помощью элемента SR панели инструментов в каждом редакторе языка.
Подпрограмма создаётся в MAST (или FAST - если используется) - PROGRAM - SR sections.
При создании SR секции назначается имя и язык - LD, FBD, ST и IL. Имя подпрограммы потом можно изменить на нужное.
Огородников Сергей
Центр обучения Schneider Electric
Огородников Сергей
 
Сообщений: 134
Зарегистрирован: 29 июн 2013, 02:25
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 4

Re: Вызов subroutine из секции

Сообщение san » 19 янв 2017, 08:03

В дополнение к комменту Сергея:
- SR нельзя вызывать с середины DFB
- использование SR могут быть запрещены в настройках проекта
- вызов проводится указанием названия SR и пустыми скобочками, в Вашем случае L9_LAB();
Аватар пользователя
san
 
Сообщений: 883
Зарегистрирован: 05 мар 2012, 11:59
Откуда: Киев, Национальный университет пищевых технологий, каф.ИАСУ
Благодарил (а): 0 раз.
Поблагодарили: 2 раз.
Пункты репутации: 21

Re: Вызов subroutine из секции

Сообщение wolka » 19 янв 2017, 09:37

Огородников Сергей писал(а):Многократное использование алгоритма может быть:
1. В виде DFB - пользовательского функционального блока.
Это не мой случай. Я оперирую глобальными переменными.
Огородников Сергей писал(а):2. В виде подпрограммы (SR). Вызов подпрограммы производится с помощью элемента SR панели инструментов в каждом редакторе языка.

У меня элемент SR есть только в ST языке. И нигде не нахожу, как его добавить для LD и FBD.
san писал(а):- использование SR могут быть запрещены в настройках проекта
- вызов проводится указанием названия SR и пустыми скобочками, в Вашем случае L9_LAB();

subroutine-ы у меня разрешены к использованию,
команды L9_LAB(), L9_JSR() L9_RET() и я нашел в Types Library и прочитал по них в help (раздел subroutine handling), что это создание маркера для вызова, вызов подпрограммы по маркеру и возврат назад. Все вроде бы логично.
Огородников Сергей писал(а):Как обычно - подробности (.sta) в студию))
По этому вопросу пока нечего выкладывать на обозрение.
wolka
 
Сообщений: 46
Зарегистрирован: 01 дек 2016, 20:37
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0

Re: Вызов subroutine из секции

Сообщение Огородников Сергей » 19 янв 2017, 12:42

Если говорить про секции LD и FBD, то инструменты для вставки подпрограмм есть.
В LD это катушка Call, в FBD это SR
Вложения
SR.jpg
(72.88 KiB) Скачиваний: 103
Огородников Сергей
Центр обучения Schneider Electric
Огородников Сергей
 
Сообщений: 134
Зарегистрирован: 29 июн 2013, 02:25
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 4


Вернуться в Высокоуровневые системы автоматизации - M340, M580, Premium, Quantum и Unity

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron