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


Зарегистрирован: Mar 13, 2009 Сообщения: 21 Рейтинг: +0/-0
|
Добавлено: Пт 13 Мар, 2009 16:14:21 Заголовок сообщения: пользовательские функции в RSLogix 5000 |
|
|
Здравствуйте!
прошу прощение за возможную глупость и нелепость вопроса
все на правах оооочень новичка))))
В 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 писал(а): | Здравствуйте!
прошу прощение за возможную глупость и нелепость вопроса
все на правах оооочень новичка))))
В 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 есть функция написания на СИ.
Есть также для всех Лоджиков создания своей функции используя существующий набор. |
а можно поподробней?
что то типа руководства по шагам? |
|
| Вернуться к началу |
|
 |
oldDad Site Admin


Зарегистрирован: May 05, 2005 Сообщения: 2773 Рейтинг: +89/-5
|
Добавлено: Вс 15 Мар, 2009 19:15:54 Заголовок сообщения: |
|
|
Есть такой бэйсикообразный язык программирования Structured Text.
Кроме того, в RSLogix5000 начиная с версии v16 есть возможность пополнять систему команд своими собственноручно написанными. |
|
| Вернуться к началу |
|
 |
JekaM Новичок


Зарегистрирован: Oct 20, 2008 Сообщения: 5 Рейтинг: +0/-0 Откуда: Украина, Мариуполь
|
Добавлено: Пн 16 Мар, 2009 9:36:13 Заголовок сообщения: Re: пользовательские функции в RSLogix 5000 |
|
|
| gnan писал(а): | В RSLogix есть возможность создавать процедуры. А есть ли возможность создавать функции??(ну или хотя бы подобие))
т.е. как в С++ |
В RSLogix начиная с v16 есть Add-On'ы. В них на любом интересующем Вас языке можно написать и функции в том числе и передавать и возвращать все что угодно - теги, массивы, структуры UDT. Лучше не бывает  |
|
| Вернуться к началу |
|
 |
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. Но ни о каких языках типа С++ там речи не ведеццо ))
или как то по-другому это делается???
если есть пример кода, дайти плиз))) |
|
| Вернуться к началу |
|
 |
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. Но ни о каких языках типа С++ там речи не ведеццо ))
или как то по-другому это делается???
если есть пример кода, дайти плиз))) |
Я имел ввиду эти 3 языка (LD, FBD, ST) на них прекрасно можно написать любую функцию и зачем для этого С++. Или хочется помучатцо?  |
|
| Вернуться к началу |
|
 |
gnan Частый гость


Зарегистрирован: Mar 13, 2009 Сообщения: 21 Рейтинг: +0/-0
|
Добавлено: Пн 16 Мар, 2009 16:36:39 Заголовок сообщения: Re: пользовательские функции в RSLogix 5000 |
|
|
| JekaM писал(а): |
Я имел ввиду эти 3 языка (LD, FBD, ST) на них прекрасно можно написать любую функцию и зачем для этого С++. Или хочется помучатцо?  |
ненене))) мучаццо не хоца))
хоца функцию рабочую))
желательно в виде 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 - переменная в которую функция возвращает значение.
Удачи! |
|
| Вернуться к началу |
|
 |
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 - переменная в которую функция возвращает значение.
Удачи! |
примного благодарен ))
заработало))) |
|
| Вернуться к началу |
|
 |
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 писал(а): |
но возникло одно НО: я не имею доступа к тегам. к тегам программы понятно, что не могу. а вот к тегам контроллера почему не имею доступа? -- неясно
как можно получить доступ к тегам контроллера или программы не передавая этот тег через парамерты функции??? |
не совсем понятна проблема Если вы создаете в функции теги , то они будут доступны только в области видимости этой функции, есть теги область видимости у которых программа, а есть область видимости контроллер. Функция может принимать в виде аргументов как локальные так и глобальные теги. Это же касается и возвращаемых значений. Скажите что значит | gnan писал(а): |
как можно получить доступ к тегам контроллера или программы не передавая этот тег через парамерты функции??? | ? |
|
| Вернуться к началу |
|
 |
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 писал(а): |
не совсем понятна проблема Если вы создаете в функции теги , то они будут доступны только в области видимости этой функции, есть теги область видимости у которых программа, а есть область видимости контроллер. Функция может принимать в виде аргументов как локальные так и глобальные теги. Это же касается и возвращаемых значений. Скажите что значит | gnan писал(а): |
как можно получить доступ к тегам контроллера или программы не передавая этот тег через парамерты функции??? | ? |
имеется ввиду аналог глобальных переменных (например в С)
проблема следующая:
создаю функцию (add-on instruction), в которой я должен оспользовать тег контроллера типа SINT[100] (т.е. массив SINT). но через параметры в функцию я не могу передать массив. |
|
| Вернуться к началу |
|
 |
|