Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 20 из 20

Тема: Модель памяти CoDeSys / ОВЕН ПЛК

  1. #11

    По умолчанию

    Цитата Сообщение от vladimirisitnikov Посмотреть сообщение
    Скорее всего, вы не понимаете суть вопроса, а имеете лишь поверхностное знание о спекулятивном выполнении.
    Вы с инженером-системотехником по образованию разговариваете.
    Цитата Сообщение от vladimirisitnikov Посмотреть сообщение
    Модель памяти как раз и нужна, для того, чтобы понять "что имеет право, а что не имеет право" делать компилятор/железо.
    Стандарт МЭК.... разработан именно для того, чтобы технолог-программист этого не знал и об этом не задумывался.
    Цитата Сообщение от vladimirisitnikov Посмотреть сообщение
    Почему? Лично у меня многоядерный ПЛК производства ОВЕН.
    Модель такого ПЛК приведите пожалуйста.

  2. #12

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    так может не зафиксировано потому что нет этого
    Нет чего?

    Какая-то модель есть. В самом простом смысле уже много раз разбирали, что "сколько раз выходные переменные не меняй, всё равно будет видно лишь последнее значение".

    Цитата Сообщение от capzap Посмотреть сообщение
    потому что запрос значения или запись могут произойти через указатель, который в свою очередь может быть создан динамически,
    Если локальную переменную (не та, которая in, а простую) ФБ могут изменить извне, это действительно печаль.
    Как панель может обратиться ко внутренней переменной -- ума не приложу. Тоже через указатели? Как-то уже совсем невероятно.

  3. #13

    По умолчанию

    Цитата Сообщение от ASo Посмотреть сообщение
    Вы с инженером-системотехником по образованию разговариваете.
    Хорошо, принято.

    Цитата Сообщение от ASo Посмотреть сообщение
    Стандарт МЭК.... разработан именно для того, чтобы технолог-программист этого не знал и об этом не задумывался.
    Да, с благими целями создаются стандарты.
    К сожалению, если компилятор и железо слепо следует программе, то программа выполняется слишком медленно.
    Т.е. даже для однопоточных программ нужны какие-то допущения, чтобы компилятор и процессор могли выполнять код так, как будет быстрее.

    Я к чему: абстракции текут, и в многопоточных приложениях от синхронизации никуда не уйти.
    Как вариант -- сказать, что "при одновременной работе со смежными областями памяти может быть что угодно" (== undefined behavior), и это тоже вариант "модели памяти".
    Упрощает ли он жизнь программисту? Едва ли.
    Так ли работает КДС? -- фиг знает.

    Если бы В.Филоненко сказал "для выполнения IO задачи на всех ядрах, в том числе, на PRU приостанавливаются, выполняется ввод-вывод, и потом возобновляются программы", то это бы объясняло как именно синхронизируется IO и PRU/цикл.
    Но, В.Филоненко сказал, что "PRU вообще в realtime работает, и не влияет на цикл".

    Цитата Сообщение от ASo Посмотреть сообщение
    Модель такого ПЛК приведите пожалуйста.
    ПЛК110-24-32.К-М02

  4. #14
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,224

    По умолчанию

    в семене ФБ делится на сам ФБ с логикой и блок данных из объявленных переменных, в КДС это как раз о чем Вы говорили. В степе можно обращаться из вне к адресу этого блока данных и делать с ним что хочется, в КДС это можно только через указатель
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  5. #15

    По умолчанию

    ПЛК110-24-32.К-М02
    И? Вы готовы утверждать, что в этом ПЛК истинно многозадачная среда исполнения?

  6. #16

    По умолчанию

    Цитата Сообщение от ASo Посмотреть сообщение
    И? Вы готовы утверждать, что в этом ПЛК истинно многозадачная среда исполнения?
    Владислав утверждает, что да, многозадачная среда.
    Цитата Сообщение от Филоненко Владислав Посмотреть сообщение
    1. Программы на PRU выполняются отдельно, и никак не влияют на цикл ПЛК и др. функционал.
    2. В примере цикл PRU - 1 мкс (0,5МГц частота импульсов), на 1 МГц рассчитывалась схемотехника быстрых I/O.
    3. Для примера при цикле 1 мкс можно выполнить приблизительно 20-50 пользовательских лог. блоков (в зависимости от их сложности). Цикл можно менять как в меньшую, так и в большую сторону, в т.ч. динамически.
    Натурных экспериментов, чтобы подтвердить/опровергнуть эти слова не ставил.

  7. #17

    По умолчанию

    Понятно....
    При чем тут PRU и "классический" функционал КДС??????

  8. #18

    По умолчанию

    Цитата Сообщение от ASo Посмотреть сообщение
    Понятно....
    При чем тут PRU и "классический" функционал КДС??????
    Чего не знаю, того не знаю.

    Если серьёзно, то и PRU и КДС могут работать с fast DI/DO -- т.е. возможны гонки (data races).
    Ну, я же про PRU с первого сообщения говорю. Если оно совсем не в кассу, можно было так и сказать. Я ж не такой дурак, как может показаться. Читать умею. Но сейчас всё выглядит так, что PRU выполняется одновременно с циклом, значит возможны потенциальные конфликты за память/входы/выходы.

    Ещё потенциально смежный вопрос -- 20us таймер. Ещё одна возможность выполнять задачу "чаще цикла".
    Там тоже вопросы "что можно, а что нельзя" делать в этой задаче на обработку 20us таймера.

  9. #19

    По умолчанию

    Блиннннннн....
    PRU не имеет к "классическому" функционалу КДС никакого отношения! Рассматривайте его, как сопроцессор ввода-вывода (некая аналогия - сопроцессор плавающей точки в архитектуре i86).
    Сразу с этого начинали бы - и не морочили людям голову.

  10. #20

    По умолчанию

    Цитата Сообщение от ASo Посмотреть сообщение
    Блиннннннн....
    PRU не имеет к "классическому" функционалу КДС никакого отношения! Рассматривайте его, как сопроцессор ввода-вывода (некая аналогия - сопроцессор плавающей точки в архитектуре i86).
    Сразу с этого начинали бы - и не морочили людям голову.
    Да понимаю я, что PRU это сопроцессор. И прекрасно понимаю, что там отдельный компилятор и заливатор кода (я его запускал, но до железа дело не дошло).
    Но к функционалу КДС это PRU имеет отношение самое простое: с помощью библиотеки PruAccessLib.lib идёт общение между "основным циклом и PRU".

    И, да, вопрос не только про PRU.

Страница 2 из 2 ПерваяПервая 12

Похожие темы

  1. Концепция памяти в CoDeSys
    от Спорягин Кирилл в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 01.08.2015, 00:24
  2. Скрипты и объектная модель MasterScada
    от anfaenger в разделе Master SCADA 3
    Ответов: 4
    Последнее сообщение: 29.10.2013, 14:50
  3. Новая модель НПТ
    от Адрей в разделе Разработки
    Ответов: 3
    Последнее сообщение: 19.11.2011, 20:02
  4. Ответов: 2
    Последнее сообщение: 28.04.2008, 15:56
  5. Ответов: 0
    Последнее сообщение: 04.04.2008, 13:08

Ваши права

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