CODESYS форум

Добро пожаловать на официальный форум CODESYS
Deutsche Version English version russian version 
Текущее время: Ср авг 16, 2017 10:35 pm

Часовой пояс: UTC+01:00




Начать новую тему  Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
СообщениеДобавлено: Ср июл 08, 2015 1:10 pm 
Не в сети

Зарегистрирован: Вт июл 07, 2015 1:53 pm
Сообщения: 7
Осваиваем новый проект методом кидания в бассейн к крокодилам. На процессорной плате стоит Beck SC24 связанный с МК нижнего уровня по SPI (Slave). Обмен данными по инициативе нижнего уровня приходит 1 раз в секунду в объеме ~300 байт. Обменом занимается отдельная программа, в которой SPI работает по прерываниям, складывая байты в буфер, а потом после приема переносит их расшаренную область(по RTX_Publish(&GLD,"SHARED_DATA");) данных. В проекте Codesys программа использует эти данные для кучи тяжелых вычислений с плавающей точкой и результат складывает у себя, чтобы с верхнего уровня SCADA забрала их по Ethernet (через OPC). Так-же предусмотрена Web-визуализация, что-бы через браузер производить настройку системы.

Проблемы: копирование всего блока данных из процесса SPI ~75 мкс. В Codesys SDK для переноса данных из / в SHARED_DATA предусмотрено 4 функции: RHIIOReadAllInputs,RHIIOReadInput, RHIIOWriteAllOutputs,RHIIOWriteOutput, две из них пишут / читают данные единым блоком, 2 - по одной переменной. В процессе работы наблюдается пересечение пачек запросов RHIIOReadInput и копирования из SPI, что приводит к замораживанию данных.

Оборудование:
- Beck IP chip SC24-IEC (v2.01)
- Paradigm 7.00.054 + CLib 2.70
- Исполнительная система в SC24:
CoDeSys SOFTPLC Full RTS FOR IPC@CHIP RTOS SC23
Copyright (c) 3S-Smart Software Solutions GmbH
3S Kernel Version: 2.4.7.19
Beck RTS Version : RTS_Full V1.41
Date/Time build : Apr 12 2010/13:14:24
OEM Impl.Version : TEST Controller

Задачи:
20 Tasks:
ID 92 cnt 0 AMXK prio= 0 stack= 1024 used=13% state=0002
ID 444 cnt 0 NMI prio= 1 stack= 1024 used= 3% state=0180
ID 536 cnt 0 TCPT prio= 4 stack= 2048 used=30% state=0081
ID 628 cnt 93 ETH0 prio= 5 stack= 3072 used=29% state=0004
ID 1456 cnt 4 Ctrl prio= 5 stack= 4096 used= 5% state=0080
ID 720 cnt 0 PPPC prio= 6 stack= 1536 used= 2% state=0080
ID 812 cnt 1 CFGS prio= 7 stack= 1536 used=44% state=0008
ID 1088 cnt 0 TELN prio= 11 stack= 1536 used=50% state=0008
ID 1180 cnt 0 SSHD prio= 11 stack= 1024 used=36% state=0108
ID 352 cnt 0 MTSK prio= 12 stack= 4000 used=46% state=0100
ID 1272 cnt 3 DOS1 prio= 25 stack= n/a used=n/a state=0180
ID 1364 cnt 0 DOS2 prio= 30 stack= n/a used=n/a state=0181
ID 904 cnt 0 FTPS prio= 41 stack= 2000 used=49% state=0108
ID 996 cnt 0 WEBS prio= 41 stack= 2048 used=34% state=0108
ID 1732 cnt 2420 Meas prio= 45 stack= 8192 used=16% state=0108
ID 1548 cnt 2 Fill prio= 46 stack= 8192 used=22% state=0108
ID 1640 cnt 2747 Main prio= 47 stack= 8192 used=18% state=0100
ID 1824 cnt 674 Inpu prio= 63 stack= 8192 used=10% state=0100
ID 1916 cnt 0 tTSr prio= 66 stack= 8192 used=21% state=0108
ID 2100 cnt 567 tTCl prio= 66 stack= 8192 used=21% state=0100

DOS1 - обмен по SPI;
DOS2 - исполнительная система;
Meas - считывание и обсчет данных;
Fill - операции с файлами настроек;
Main - заполнение форм Web-визуализации (REAL -> STRING);

Inpu - ??? возможно считывание / запись данных из SHARED_DATA;
Ctrl - ???
tTSr - ???
tTCl - ???

ВОПРОСЫ:
- Как заставить систему использовать RHIIOReadAllInputs вместо надергивания по одной переменной;
- Beck RTOS явяется настоящей многозадачной вытесняющей ОСРВ?
- Процессы codesys выполняются так-же как и другие в системе (период / вытеснение)?
- Вычисления с REAL в задачах codesys имеет ограничения на параллельное использование
(для Paradigm указано что только однопоточное из-за soft interrupt).


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC+01:00


Кто сейчас на конференции

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB