PDA

Просмотр полной версии : библиотека SysLibMem



Аркадий
06.03.2008, 09:23
пытаюсь использовать функцию SysMemAlloc, параметром пробовал и число и переменную.
возвращает 0, независимо от запрашиваемого размера.
что не так может быть?
контроллер плк-150 -И-М, таргет последний.
код вида -

dword size:=2;
dword ptr := SysMemAlloc(size); // = 0

из какой памяти распределяет память библиотека?

и заодно вопрос по вкладке распределение памяти установок таргета.
что такое Area и для чего их можно сделать больше?

Филоненко Владислав
06.03.2008, 09:42
А у меня почему-то работает :)
См. пример.

Аркадий
06.03.2008, 10:05
все, понял почему так.
я в режиме симуляции все делал, лень было контроллер включать.
в симуляции библиотека не работает. не есть гуд..

а по вопросу об Area что?

Игорь Петров
06.03.2008, 11:20
Все SysLib… в принципе не могут работать в эмуляторе. Это внешние биб-ки и код их реализации сидит в ПЛК.


...
в симуляции библиотека не работает. не есть гуд..

На этот случай в дистрибутив CoDeSys вложен PLC WinNT. С ним работают все системные биб-ки.

Аркадий
06.03.2008, 11:30
спасибо, понятно.

Филоненко Владислав
06.03.2008, 13:49
все, понял почему так.
я в режиме симуляции все делал, лень было контроллер включать.
в симуляции библиотека не работает. не есть гуд..

а по вопросу об Area что?

А ничего, не трогайте и всё. Никаких доп. функций они сейчас не несут

Аркадий
07.03.2008, 09:37
Все SysLib… в принципе не могут работать в эмуляторе. Это внешние биб-ки и код их реализации сидит в ПЛК.

На этот случай в дистрибутив CoDeSys вложен PLC WinNT. С ним работают все системные биб-ки.

изменил таргет на PLC WinNT. возник вопрос, как настроить параметры связи с ним? пробовал через тср по адресу компа, через общую память, через драйвер пайп.
всю доку что есть пересмотрел. не получается.

Игорь Петров
11.03.2008, 11:46
После запуска PLC WinNT, нужно подождать пока он выдаст диалог о запуске в демо режиме и нажать OK. Далее будет работать через разделяемую память или localhost. В настройках целевой платформы надо не забыть поставить PLC WinNT.

Аркадий
11.03.2008, 11:54
спасибо.
надо же так ошибаться... не запускал я сам то контроллер..

Serge_UA
20.05.2011, 00:22
Возник такой вопрос, стОит ли от функции SysMemMove ожидать большей производительности, чем от побайтового копирования через указатель в цикле (реализованного на ST)? Может кто-то сравнивал и забыл отписаться в этой теме :)
Кстати, библиотека SysLibMem написана на ST или ARM ассемблере?

К сожаление сам проверить не могу т.к. пока не имею доступа к контроллеру, а в симуляторе библиотеки не работают.

Торможу, черным по белому ж написано, что можно через PLC WinNT. Но все равно ответы приветствуются :)

Serge_UA
23.06.2011, 22:57
Гора пришла к Магомету вот здесь (http://www.owen.ru/forum/showthread.php?p=63617#post63617)

Филоненко Владислав
27.06.2011, 10:08
Библиотеки Sysxxxxxx - реализованы на С или ассемблере. Работают они быстрее ST, но если размер области копирования хотя бы 8 байт - иначе вызов все съедает и лучше на ST.