Страница 10 из 57 ПерваяПервая ... 8910111220 ... ПоследняяПоследняя
Показано с 91 по 100 из 688

Тема: Программирование ПЛК110 [М02] для задач реального времени

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Я не хочу рисковать тем, что через неделю придёт ОВЕН с иском о "потерянных миллионах из-за злостной дешифрации формата PRU0.prg".
    В овене работают весьма здравомыслящие люди, а свои возможности "по нанесению вреда", как мне кажется, вы оцениваете не совсем адекватно )))

    что нельзя декомпилировать с целью "создания подобного"
    угу, и опыты Гальвани с лягушками нельзя повторять, а то вдруг вновь электричество откроет кто-нить ))))

  2. #2

    По умолчанию

    Много спора из ничего. Все давно уже придумано. У замечательной фирмы Texas Instruments есть фирменная интегрированную среда разработки (IDE) Code Composer Studio, которая поддерживает микроконтроллеры компании TI и встраиваемые процессоры. "Code Composer Studio включает в себя набор инструментов, используемых для разработки и отладки встроенных приложений. Она включает в себя оптимизирующий C / C ++ компилятор, редактор исходного кода, среды сборки проекта, отладчик, профайлер, и многие другие функции" (http://www.ti.com/tool/ccStudio).

    Среда эта естественно платная. Можно сделать что-то подобное для микроконтроллера, который используется в ПЛК110 М[02]. Если у фирмы "ОВЕН" есть фирменный инструментарий TI для написания программ для PRU на ассемблере, то можно приобрести все необходимое для написания программ на C/C++ (компилятор, линковщик, проч.).

    У vladimirisitnikov есть своя Hardella IDE. Если фирма "ОВЕН" без проволочек передаст все необходимые причиндалы и разрешения, то очень скоро vladimirisitnikov сделает классный инструментарий для разработки PRU приложений. Этот инструментарий будет понятен и доступен широким массам пользователей продукции фирмы "ОВЕН".

    Заниматься таким достаточно сложным делом на голом энтузиазме тяжело. Естественно фирма "ОВЕН" должна заключить с vladimirisitnikov договор подряда. К этому договору надо приложить согласованное ТЗ на разработку IDE и вперед к светлому будущему.
    Последний раз редактировалось Newcomer; 15.09.2016 в 12:58.

  3. #3

    По умолчанию

    Скорее всего - реальная проблема тестирования бинарника в ее принципиальной невозможности ))) Исполняемый код загружается в чип и стартует по окончании загрузки - управлять процессом исполнения (ставить точки останова, смотреть регистры, память) нет возможности. Существуют, конечно, аппаратные отладчики для подобных систем, но интегрировать их в контроллер никто не будет.

    Тестируйте введенную пользователем программу в текстве, полагаясь на "божественную непогрешимость" предлагаемого компилятора и линкера (которую кстати никто вроде не оспаривает) )))

  4. #4

    По умолчанию

    У меня еще одна простенькая задачка по управлению ШД. Бывает нужно разогнать ШД до требуемой частоты с заданным темпом (за определенное время). В связи с этим требуется такой ФБ для PRU (смотри вложения).

    При установке ENABLE в TRUE частота на выходе OUT линейно (возможно по S-кривой) увеличивается до 1/PERIOD за время ACCSEL_TIME. По достижению заданной частоты READY устанавливается в TRUE. Если ENABLE переходит в FALSE, то OUT и READY устанавливаются в FALSE.
    Изображения Изображения
    Последний раз редактировалось Newcomer; 15.09.2016 в 14:55.

  5. #5
    Пользователь
    Регистрация
    12.07.2007
    Адрес
    Воронеж
    Сообщений
    884

    По умолчанию

    Итоги какие то есть?
    Еще вчера нужен был ФБ управления сервопроводом.
    Сейчас все делаю на Arduino и через RS485 отправляю в него команды.
    Но это настолько некрасивое решение (на фоне заявлений ОВЕН о 100кГц на выходе), что я ночами ворочаться начинаю.

    Альтернатива есть\будет?

    Владимир, если Ваше решение рабочее и работает - готов протестить на оборудовании.
    Готов предоставить фото\видео отчет по работе.

  6. #6

    По умолчанию

    Мне очень нужны два ФБ управления ШД для PRU, про которые я писал в этой теме. Владислав Филоненко ответил, что он очень сильно занят и у него в обозримом будущем не будет возможности это сделать. Владимир Ситников готов все сделать (один ФБ уже вроде сделал) и даже представить понятный инструментарий для разработки ФБ для PRU, но ему по непонятным причинам не дают это сделать.

    Может обратиться к высшему руководству фирмы "ОВЕН" для разрешения этого конфликта ?
    Последний раз редактировалось Newcomer; 18.09.2016 в 19:12.

  7. #7

    По умолчанию

    Цитата Сообщение от Дмитрий Артюховский Посмотреть сообщение
    Не сделает. По крайней мере в обозримом будущем.
    Дмитрий, поменьше слов, побольше дела.

    Цитата Сообщение от Дмитрий Артюховский Посмотреть сообщение
    Тему внимательно почитайте, у него нет ни контроллера, ни какого технологического оборудования, ни даже прибора какого-никакого. Он чистый теоретик, ищущий способ монетизировать собственные разработки на яве.
    Дмитрий, как вы из этой темы заключили, что у меня нет контроллера-то?
    Вот контроллер: http://www.owen.ru/forum/showthread....l=1#post194290
    Что, сфотографировать вам модули ввода-вывода, AC4, блок питания, осциллограф?
    Или будете говорить, что всё равно, это чужой контроллер и постановочная фотография?

    Что ошиблись?
    Теперь вернитесь к предыдущему пункту и хорошенько подумайте: "а что, если и в словах 'не сделает' тоже ошибка?".


    Цитата Сообщение от Дмитрий Артюховский Посмотреть сообщение
    А технологические контроллеры - это не канонические алгоритмы - это прежде всего знание принципов работы исполнительных устройств (и их собственных глюков, кстати!), особенностей датчиков, способов их применения и прочая низкоуровневая требуха...
    Вы правы, знание глюков исполнительных механизмов бесценно.
    Но каким боком это относится к PRU программированию?
    Правильно, никаким.

    Мне не нужно знать детали конкретного исполнительного механизма, чтобы сделать хорошую среду программирования.
    Равно как и не нужно знать деталей исполнительного механизма, чтобы сделать блок ШД.

  8. #8

    По умолчанию

    Я посмотрю конечно все это, самому интересно, но вот что сразу бросается в глаза : модуль PRU0 физически подключен в выводам 3 и 4, поэтому на выводе 1 (подключенному к PRU1) ничего не будет по определению... т.е. автор не очень внимательно проверял предлагаемый модуль....

  9. #9

    По умолчанию

    Посмотрите, пожалуйста, пристально на такой код.
    Первая же команда PRU_FB_GetParameter(pru_num:=0, index:=28, value:=ADR(TMP)) уводит ПЛК в перезагрузку.
    ADR(TMP) используется нормально?

    Вроде, тут POINTER TO DWORD, и ADR я применяю только к DWORD переменным. С выравниванием всё ок? Или нужны какие-то песни-пляски?

    Второе подозрение у меня на то, что, возможно, прошивка ПЛК поддерживает только 1 dword на обмен с PRU, а я пытаюсь 5 dword'ов синхронизировать.

    Код:
    FUNCTION_BLOCK PRU_PULSE
    VAR_INPUT
      ENABLE: BOOL;
      CYCLE_LENGTH: WORD; (* PRU cycles *)
      QUANTITY: DWORD;
    END_VAR
    VAR_OUTPUT
      READY : BOOL;
      QUANTITY_LEFT: DWORD; (* for debugging *)
    END_VAR
    VAR
      TMP: DWORD;
    END_VAR
    ..
    
    PRU_FB_GetParameter(pru_num:=0, index:=28, value:=ADR(TMP));
    READY := TMP <> 0;
    PRU_FB_GetParameter(pru_num:=0, index:=29, value:=ADR(QUANTITY_LEFT));
    PRU_FB_SetParameter(pru_num:=0, index:=25, value:=ADR(QUANTITY));
    TMP := WORD_TO_DWORD(CYCLE_LENGTH);
    PRU_FB_SetParameter(pru_num:=0, index:=26, value:=ADR(TMP));
    TMP := SEL(ENABLE, 0, 1);
    PRU_FB_SetParameter(pru_num:=0, index:=27, value:=ADR(TMP));
    Собственно, определения функций get/set из pruAccessLib.lib:
    Код:
    FUNCTION PRU_FB_GetParameter : DINT
    VAR_INPUT
    	pru_num:DWORD; (*from 0 to 1*)
    	index:DWORD; (*from 2 to 31*)
    	value: POINTER TO DWORD;
    END_VAR
    VAR
    END_VAR
    Код:
    FUNCTION PRU_FB_SetParameter : DINT
    VAR_INPUT
    	pru_num:DWORD; (*from 0 to 1*)
    	index:DWORD; (*from 2 to 31*)
    	value: POINTER TO DWORD;
    END_VAR
    VAR
    END_VAR

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

    По умолчанию

    Цитата Сообщение от vladimirisitnikov Посмотреть сообщение
    Посмотрите, пожалуйста, пристально на такой код.
    Первая же команда PRU_FB_GetParameter(pru_num:=0, index:=28, value:=ADR(TMP)) уводит ПЛК в перезагрузку.
    ADR(TMP) используется нормально?

    Вроде, тут POINTER TO DWORD, и ADR я применяю только к DWORD переменным. С выравниванием всё ок? Или нужны какие-то песни-пляски?

    Второе подозрение у меня на то, что, возможно, прошивка ПЛК поддерживает только 1 dword на обмен с PRU, а я пытаюсь 5 dword'ов синхронизировать.

    Код:
    FUNCTION_BLOCK PRU_PULSE
    VAR_INPUT
      ENABLE: BOOL;
      CYCLE_LENGTH: WORD; (* PRU cycles *)
      QUANTITY: DWORD;
    END_VAR
    VAR_OUTPUT
      READY : BOOL;
      QUANTITY_LEFT: DWORD; (* for debugging *)
    END_VAR
    VAR
      TMP: DWORD;
    END_VAR
    ..
    
    PRU_FB_GetParameter(pru_num:=0, index:=28, value:=ADR(TMP));
    READY := TMP <> 0;
    PRU_FB_GetParameter(pru_num:=0, index:=29, value:=ADR(QUANTITY_LEFT));
    PRU_FB_SetParameter(pru_num:=0, index:=25, value:=ADR(QUANTITY));
    TMP := WORD_TO_DWORD(CYCLE_LENGTH);
    PRU_FB_SetParameter(pru_num:=0, index:=26, value:=ADR(TMP));
    TMP := SEL(ENABLE, 0, 1);
    PRU_FB_SetParameter(pru_num:=0, index:=27, value:=ADR(TMP));
    Собственно, определения функций get/set из pruAccessLib.lib:
    Код:
    FUNCTION PRU_FB_GetParameter : DINT
    VAR_INPUT
    	pru_num:DWORD; (*from 0 to 1*)
    	index:DWORD; (*from 2 to 31*)
    	value: POINTER TO DWORD;
    END_VAR
    VAR
    END_VAR
    Код:
    FUNCTION PRU_FB_SetParameter : DINT
    VAR_INPUT
    	pru_num:DWORD; (*from 0 to 1*)
    	index:DWORD; (*from 2 to 31*)
    	value: POINTER TO DWORD;
    END_VAR
    VAR
    END_VAR
    иногда бывает что может помочь добавление к константам тип данных через решетку или объявить эти значения константными переменными

    ЗЫ из представленного не ясно, какой срок получения ответа, возможно стоит возвращать результат в переменную и анализировать на равенство нулю например
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

Страница 10 из 57 ПерваяПервая ... 8910111220 ... ПоследняяПоследняя

Похожие темы

  1. Ответов: 38
    Последнее сообщение: 24.01.2022, 11:56
  2. Ответов: 10
    Последнее сообщение: 11.06.2021, 14:55
  3. часы реального времени
    от vetaly в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 28.08.2015, 16:21
  4. Таймер реального времени УТ1-РiС
    от ser10 в разделе Трёп (Курилка)
    Ответов: 0
    Последнее сообщение: 16.09.2010, 11:24

Ваши права

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