Страница 4 из 7 ПерваяПервая ... 23456 ... ПоследняяПоследняя
Показано с 31 по 40 из 68

Тема: Нетипичный проект на СПК207

  1. #31

    По умолчанию

    ПЛК100 опрашивает датчики,как мастер.СПК207 опрашивает его уже как слейв. Какой регистр надо считать у ПЛК100 и какой командой?

  2. #32

    По умолчанию

    Разобрался и с этим вопросом по аналогии с панелью ИП320. Интересно, а возможен такой случай, чтобы не использовать промежуточные переменные, а передавать данные напрямую от датчика к ведущему контроллеру СПК207 ?

  3. #33
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    У вас два интерфейса с абстрагированием в регистры по разным адресам оперативной памяти. Как минимум копировать регистры модулей в регистры для СПК всё равно придётся.

  4. #34

    По умолчанию

    Мир сговорился :-) Вчера один клиент 3 часа мне доказывал что простой проброс рулит. Его даже не смущало что у него 2 мастера получается на шине. Если вам необходимо много данных прокинуть через ПЛК100 то просто посмотрите в сторону указателей (POINTER) и жизнь станет легче.

  5. #35

    По умолчанию

    Ну да! Я тоже предполагал, что дело с адресным пространством в памяти. Работа с указателями классная идея, но неее
    Я вот тут про массивы в ST пытался осилить, но чего-то Help мне не помощь!!! В СИ я себе представляю, а вот тут не очень.

  6. #36
    Пользователь
    Регистрация
    19.11.2011
    Адрес
    г. Белгород
    Сообщений
    357

    По умолчанию

    Если вам необходимо много данных прокинуть через ПЛК100 то просто посмотрите в сторону указателей (POINTER) и жизнь станет легче.
    Тут сильно не рекомендуют пользоваться указателями
    http://www.owen.ru/forum/showthread....l=1#post153876

  7. #37

    По умолчанию

    Указателями и на СИ многие не рекомендуют пользоваться.Ибо лезешь в святая святых-память!!!
    Ну и с динамическими массивами, тоже проблемки по неосторожности. Если код правильный, то бояться не надо. Облегчает жизнь железу.

  8. #38
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    Указателями и на СИ многие не рекомендуют пользоваться.
    Вздор. Си без указателей это не Си. Вот в кодесисе — другой вопрос, т.к. в стандарте 61131 про указатели ни слова, и они являются расширением. К сожалению, реализованы довольно криво: 1) оператор присваивания (функция ADR) игнорирует тип операнда, хотя оператор разыменования (^) тип сохраняет; 2) роняют 110-е ПЛК при доступе к участку памяти, который используется функцией SysComRead (мистика, т.к. семантически равнозначный доступ через SysMemCpy работает).

  9. #39
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,276

    По умолчанию

    А можно про п.2 поподробнее если не в тягость

  10. #40
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    Ну вот недавно библиотеку выкладывал: http://owen.ru/forum/showthread.php?t=19435

    Так не получается:
    Код:
    i := i + SysComRead(portHandle, ADR(rcvBuf) + i, rcvBuf[10] - i + 11 + 3, 0);
    (* ... *)
    ptrToReal := ADR(rcvBuf) + 14;
    someRealVar := ptrToReal^; (* Именно на этой строке контроллер виснет и перезагружается — даже отладчиком триста раз прошёлся *)
    Забавно вот что: 1) если строку закомментировать, то в кодесисе можно наблюдать правильное значение под указателем (зависает именно на разыменовании); 2) если убрать SysComRead и забивать rcvBuf какой-нибудь ерундой вручную, то указатель тоже нормально разыменовывается.

    А вот так работает сразу без проблем:
    Код:
    i := i + SysComRead(portHandle, ADR(rcvBuf) + i, rcvBuf[10] - i + 11 + 3, 0);
    (* ... *)
    SysMemCpy(ADR(someRealVar ), ADR(rcvBuf) + 14, SIZEOF(someRealVar));
    Я с этим уже сталкивался пару лет назад в похожем случае, но тогда не упомянул об этой проблеме, т.к. библиотеку выложил увидев значение под указателем в кодесисе, а разыменования в примере нет. Когда проблема всплыла чуть позже при интеграции библиотеки в реальный проект, я забыл обновить тему.

    В первом случае речь о ПЛК110-32 2013 г., а во втором — о ПЛК160 2011 г.
    Последний раз редактировалось Yegor; 03.12.2014 в 20:06.

Страница 4 из 7 ПерваяПервая ... 23456 ... ПоследняяПоследняя

Похожие темы

  1. архивирование на спк207
    от Feld_eger в разделе СПК2хх
    Ответов: 73
    Последнее сообщение: 18.05.2017, 15:03
  2. Не запускается проект на СПК207
    от Feld_eger в разделе СПК2хх
    Ответов: 4
    Последнее сообщение: 06.05.2013, 08:41
  3. Ответов: 10
    Последнее сообщение: 07.03.2012, 08:26
  4. как слить плк проект на пк?
    от bkz в разделе ПЛК1хх
    Ответов: 16
    Последнее сообщение: 25.05.2010, 17:32

Метки этой темы

Ваши права

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