Вход на форум 
В начало e-Mail

Форум

Ресурсы Rockwell

Product Directory

Essential Components

Literature Library

Knowledge Base

Electronic News&Magazines

Блог

Encompass Program

Product Certification

  
Smart Solutions VDT :: Просмотр темы - пользовательские функции в RSLogix 5000
 FAQFAQ   ПоискПоиск   ГруппыГруппы   ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

пользовательские функции в RSLogix 5000
На страницу 1, 2  След.
 
Начать новую тему   Ответить на тему    Список форумов Smart Solutions VDT -> Коллективный разум. Давайте посоветуемся!
Предыдущая тема :: Следующая тема  
Автор Сообщение
gnan
Частый гость
Частый гость


Зарегистрирован: Mar 13, 2009
Сообщения: 21
Рейтинг: +0/-0

СообщениеДобавлено: Пт 13 Мар, 2009 16:14:21    Заголовок сообщения: пользовательские функции в RSLogix 5000 Ответить с цитатой

Здравствуйте!
прошу прощение за возможную глупость и нелепость вопроса Embarassed
все на правах оооочень новичка))))

В RSLogix есть возможность создавать процедуры. А есть ли возможность создавать функции??(ну или хотя бы подобие))
т.е. как в С++

function int myFunc(int a, int b)
{
return a+b;
}

т.е. чтоб не хранить глобальный тег (ну или тег контроллера), а передавать некоторые значения в функцию.
есть же встроенные функции типа COP(s, d, length);
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
vsv1953
Частый гость
Частый гость


Зарегистрирован: Jan 21, 2009
Сообщения: 39
Рейтинг: +3/-0

СообщениеДобавлено: Пт 13 Мар, 2009 17:48:35    Заголовок сообщения: Re: пользовательские функции в RSLogix 5000 Ответить с цитатой

gnan писал(а):
Здравствуйте!
прошу прощение за возможную глупость и нелепость вопроса Embarassed
все на правах оооочень новичка))))

В RSLogix есть возможность создавать процедуры. А есть ли возможность создавать функции??(ну или хотя бы подобие))
т.е. как в С++

function int myFunc(int a, int b)
{
return a+b;
}

т.е. чтоб не хранить глобальный тег (ну или тег контроллера), а передавать некоторые значения в функцию.
есть же встроенные функции типа COP(s, d, length);

В СофтЛоджик5000 есть функция написания на СИ.
Есть также для всех Лоджиков создания своей функции используя существующий набор.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
gnan
Частый гость
Частый гость


Зарегистрирован: Mar 13, 2009
Сообщения: 21
Рейтинг: +0/-0

СообщениеДобавлено: Пт 13 Мар, 2009 18:32:38    Заголовок сообщения: Re: пользовательские функции в RSLogix 5000 Ответить с цитатой

vsv1953 писал(а):

В СофтЛоджик5000 есть функция написания на СИ.
Есть также для всех Лоджиков создания своей функции используя существующий набор.


а можно поподробней? Embarassed
что то типа руководства по шагам?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
oldDad
Site Admin
Site Admin


Зарегистрирован: May 05, 2005
Сообщения: 2773
Рейтинг: +89/-5

СообщениеДобавлено: Вс 15 Мар, 2009 19:15:54    Заголовок сообщения: Ответить с цитатой

Есть такой бэйсикообразный язык программирования Structured Text.
Кроме того, в RSLogix5000 начиная с версии v16 есть возможность пополнять систему команд своими собственноручно написанными.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
JekaM
Новичок
Новичок


Зарегистрирован: Oct 20, 2008
Сообщения: 5
Рейтинг: +0/-0
Откуда: Украина, Мариуполь

СообщениеДобавлено: Пн 16 Мар, 2009 9:36:13    Заголовок сообщения: Re: пользовательские функции в RSLogix 5000 Ответить с цитатой

gnan писал(а):
В RSLogix есть возможность создавать процедуры. А есть ли возможность создавать функции??(ну или хотя бы подобие))
т.е. как в С++


В RSLogix начиная с v16 есть Add-On'ы. В них на любом интересующем Вас языке можно написать и функции в том числе и передавать и возвращать все что угодно - теги, массивы, структуры UDT. Лучше не бывает Very Happy
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
gnan
Частый гость
Частый гость


Зарегистрирован: Mar 13, 2009
Сообщения: 21
Рейтинг: +0/-0

СообщениеДобавлено: Пн 16 Мар, 2009 9:53:43    Заголовок сообщения: Re: пользовательские функции в RSLogix 5000 Ответить с цитатой

JekaM писал(а):

В RSLogix начиная с v16 есть Add-On'ы.

версия 16.03.00
JekaM писал(а):

В них на любом интересующем Вас языке можно написать и функции в том числе и передавать и возвращать все что угодно - теги, массивы, структуры UDT.

в структуре Controller Organizer в папке:
1. Data Types есть Add-On-Defined
2. Motion Groups есть Add-On Instruction
когда на одном из этих пунков жмахаешь правой мышкой --> New, появляется окошко New Add-On Instruction. В окошке есть поле Type, в котором на выбор 3 типа: Ladder Diagram, Function Block Diagram, Structured Text. Но ни о каких языках типа С++ там речи не ведеццо Crying or Very sad ))

или как то по-другому это делается???
если есть пример кода, дайти плиз)))
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
gnan
Частый гость
Частый гость


Зарегистрирован: Mar 13, 2009
Сообщения: 21
Рейтинг: +0/-0

СообщениеДобавлено: Пн 16 Мар, 2009 10:32:08    Заголовок сообщения: Ответить с цитатой

oldDad писал(а):
Есть такой бэйсикообразный язык программирования Structured Text.
Кроме того, в RSLogix5000 начиная с версии v16 есть возможность пополнять систему команд своими собственноручно написанными.

о да, этот язык прекрасен))
но как в нем сделать свою функцию??
если можна, пример)))
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
JekaM
Новичок
Новичок


Зарегистрирован: Oct 20, 2008
Сообщения: 5
Рейтинг: +0/-0
Откуда: Украина, Мариуполь

СообщениеДобавлено: Пн 16 Мар, 2009 16:32:37    Заголовок сообщения: Re: пользовательские функции в RSLogix 5000 Ответить с цитатой

gnan писал(а):
В окошке есть поле Type, в котором на выбор 3 типа: Ladder Diagram, Function Block Diagram, Structured Text. Но ни о каких языках типа С++ там речи не ведеццо Crying or Very sad ))

или как то по-другому это делается???
если есть пример кода, дайти плиз)))


Я имел ввиду эти 3 языка (LD, FBD, ST) на них прекрасно можно написать любую функцию и зачем для этого С++. Или хочется помучатцо? Shocked
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
gnan
Частый гость
Частый гость


Зарегистрирован: Mar 13, 2009
Сообщения: 21
Рейтинг: +0/-0

СообщениеДобавлено: Пн 16 Мар, 2009 16:36:39    Заголовок сообщения: Re: пользовательские функции в RSLogix 5000 Ответить с цитатой

JekaM писал(а):

Я имел ввиду эти 3 языка (LD, FBD, ST) на них прекрасно можно написать любую функцию и зачем для этого С++. Или хочется помучатцо? Shocked


ненене))) мучаццо не хоца))
хоца функцию рабочую))
желательно в виде StructuredText))

можна инструкцию по шагам или файлик для RSLogix в виде примера?)))
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
maxim
Эксперт
Эксперт


Зарегистрирован: Feb 16, 2007
Сообщения: 123
Рейтинг: +7/-0
Откуда: Енакиево

СообщениеДобавлено: Вт 17 Мар, 2009 7:30:54    Заголовок сообщения: Re: пользовательские функции в RSLogix 5000 Ответить с цитатой

gnan писал(а):

ненене))) мучаццо не хоца))
хоца функцию рабочую))
желательно в виде StructuredText))

можна инструкцию по шагам или файлик для RSLogix в виде примера?)))


Доброго времени суток:
по шагам:
1.Add -On -> new Add - On...
2.Name -> MyInstr, Type ->structured text
3.вкладка Parametrs определяем переменные которые нужно передать в функцию и те которые она должна возвращать (input/output), ставим галочки
4. при необходимости можно создать локальные переменные на вкладке Local Tags
5.жмем кнопку Logic и тут пишем тело функции , например out: = a+b+c;
используем функцию
ну например MyInstr(Myfunct,2,2,2,dest); , здесь 2,2,2 - переменные которые передаются в функцию , dest - переменная в которую функция возвращает значение. Smile
Удачи!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
gnan
Частый гость
Частый гость


Зарегистрирован: Mar 13, 2009
Сообщения: 21
Рейтинг: +0/-0

СообщениеДобавлено: Вт 17 Мар, 2009 8:04:54    Заголовок сообщения: Re: пользовательские функции в RSLogix 5000 Ответить с цитатой

maxim писал(а):

Доброго времени суток:
по шагам:
1.Add -On -> new Add - On...
2.Name -> MyInstr, Type ->structured text
3.вкладка Parametrs определяем переменные которые нужно передать в функцию и те которые она должна возвращать (input/output), ставим галочки
4. при необходимости можно создать локальные переменные на вкладке Local Tags
5.жмем кнопку Logic и тут пишем тело функции , например out: = a+b+c;
используем функцию
ну например MyInstr(Myfunct,2,2,2,dest); , здесь 2,2,2 - переменные которые передаются в функцию , dest - переменная в которую функция возвращает значение. Smile
Удачи!


примного благодарен Drinks or Beer ))
заработало)))
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
gnan
Частый гость
Частый гость


Зарегистрирован: Mar 13, 2009
Сообщения: 21
Рейтинг: +0/-0

СообщениеДобавлено: Ср 18 Мар, 2009 10:04:09    Заголовок сообщения: Ответить с цитатой

создал я add-on instruction
все отлично работает, входные, выходые параметры есть, получается полноценная функция

но возникло одно НО: я не имею доступа к тегам. к тегам программы понятно, что не могу. а вот к тегам контроллера почему не имею доступа? -- неясно

как можно получить доступ к тегам контроллера или программы не передавая этот тег через парамерты функции???
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
maxim
Эксперт
Эксперт


Зарегистрирован: Feb 16, 2007
Сообщения: 123
Рейтинг: +7/-0
Откуда: Енакиево

СообщениеДобавлено: Чт 19 Мар, 2009 12:03:26    Заголовок сообщения: Ответить с цитатой

Здраствуйте,
gnan писал(а):

но возникло одно НО: я не имею доступа к тегам. к тегам программы понятно, что не могу. а вот к тегам контроллера почему не имею доступа? -- неясно
как можно получить доступ к тегам контроллера или программы не передавая этот тег через парамерты функции???

не совсем понятна проблема Sad Если вы создаете в функции теги , то они будут доступны только в области видимости этой функции, есть теги область видимости у которых программа, а есть область видимости контроллер. Функция может принимать в виде аргументов как локальные так и глобальные теги. Это же касается и возвращаемых значений. Скажите что значит
gnan писал(а):

как можно получить доступ к тегам контроллера или программы не передавая этот тег через парамерты функции???
?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
JekaM
Новичок
Новичок


Зарегистрирован: Oct 20, 2008
Сообщения: 5
Рейтинг: +0/-0
Откуда: Украина, Мариуполь

СообщениеДобавлено: Чт 19 Мар, 2009 16:24:06    Заголовок сообщения: Ответить с цитатой

gnan писал(а):
как можно получить доступ к тегам контроллера или программы не передавая этот тег через парамерты функции???


Да никак! Это-же функция - задали входные параметры, вернула выходные. По-моему это логично. Ведь этот Add-on вы вставляете в логику контроллера как обычные инструкции.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
gnan
Частый гость
Частый гость


Зарегистрирован: Mar 13, 2009
Сообщения: 21
Рейтинг: +0/-0

СообщениеДобавлено: Пт 20 Мар, 2009 8:58:51    Заголовок сообщения: Ответить с цитатой

maxim писал(а):

не совсем понятна проблема Sad Если вы создаете в функции теги , то они будут доступны только в области видимости этой функции, есть теги область видимости у которых программа, а есть область видимости контроллер. Функция может принимать в виде аргументов как локальные так и глобальные теги. Это же касается и возвращаемых значений. Скажите что значит
gnan писал(а):

как можно получить доступ к тегам контроллера или программы не передавая этот тег через парамерты функции???
?


имеется ввиду аналог глобальных переменных (например в С)

проблема следующая:
создаю функцию (add-on instruction), в которой я должен оспользовать тег контроллера типа SINT[100] (т.е. массив SINT). но через параметры в функцию я не могу передать массив.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Smart Solutions VDT -> Коллективный разум. Давайте посоветуемся! Часовой пояс: GMT + 1
На страницу 1, 2  След.
Страница 1 из 2

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах

Powered by phpBB © 2001, 2005 phpBB Group
Яндекс цитирования

Smart Solutions VDT GmbH | Friedrich-List-Allee 38, D-41844 Wegberg-Wildenrath, Germany
Tel.: +49 2432 933 57 83 | e-Mail: office@vdt-solutions.de
Все товарные знаки и торговые марки являются собственностью их владельцев.
При использовании материалов сайта ссылка на данный сайт обязательна.
Открытие страницы: 0.139 секунды
/n