Страница 4 из 5 ПерваяПервая ... 2345 ПоследняяПоследняя
Показано с 31 по 40 из 48

Тема: Вопросы по программированию в CoDeSys

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

    По умолчанию

    Цитата Сообщение от Vasilij Посмотреть сообщение
    Кто знает, как разобраться с этим вопросом, ответьте пожалуйста?
    Читайте http://ru.wikipedia.org/wiki/Modbus
    С булевыми (битами, флагами) работают функции модбаса 1,2, 5 и 15,а 03 функция работает с регистрами, т.е. 2 байтами

  2. #32
    Пользователь
    Регистрация
    11.01.2009
    Адрес
    Кострома
    Сообщений
    3,144

    По умолчанию

    Можно вот так:
    Вложения Вложения

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

    По умолчанию

    оказывается в документе http://www.owen.ru/uploads/re_rp_sp200.pdf есть пункт 4.1.7.2.2 в котором доступно все написано, чего шум то поднимать

  4. #34

    По умолчанию

    Работайте не с битами, а с регистрами, будет проще.
    Изображения Изображения

  5. #35

    По умолчанию

    Спасибо всем за помощь!
    Только вот не стыкуются переменные в моей программе.
    Программа написана на языке "Функциональные схемы", поэтому сейчас использую элемент преобразования "PACK".

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

    По умолчанию

    а зачем паковать, если памяти много можно сделать BOOL_TO_WORD и получаете регистр с двумя значениями 0 или 1

  7. #37
    Пользователь Аватар для drvlas
    Регистрация
    30.09.2010
    Адрес
    Киев
    Сообщений
    700

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    если памяти много
    Вот, есть повод спросить. Как вы думаете, если действительно памяти в десятки раз больше, чем требуется - есть ли смысл работать с однобайтными переменными? Процессор ПЛК100 - как-то различает, скажем, BYTE и WORD при обработке?
    Я в одном проектике взял да и сделал абсолютно все переменные двухбайтными. Но поисследовать, есть ли ухудшение быстродействия - не стало времени. Увезли игрушку

    Можно пойти и дальше - а может все целочисленные переменные привести к DINT? Хотя, ИМХО, все же должны быть разные комадны для 8- и 32-разрядных операндов...

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

    По умолчанию

    ПЛК100 имеет 32-х разрядный RISC-процессор, это означает что за один такт процессора можно выполнить инструкцию что с одним разрядом, что с 16-ю, скорость выполнения будет одинакова

  9. #39
    Пользователь Аватар для drvlas
    Регистрация
    30.09.2010
    Адрес
    Киев
    Сообщений
    700

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    ПЛК100 имеет 32-х разрядный RISC-процессор, это означает что за один такт процессора можно выполнить инструкцию что с одним разрядом, что с 16-ю, скорость выполнения будет одинакова
    Не факт. Могут быть предусмотрены разные команды для байтных и 2-хбайтных и 4-хбайтных операндов. Я только что поставил вопрос на другом форуме, там где АРМ держат за яблочко. Если будет четкий ответ - поделюсь.

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

    По умолчанию

    не путайте с многоядерностью процессоров, за один такт вы выполните только одну инструкцию а будет это бит или 2-х байтное слово уже не важно

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

Ваши права

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