Страница 5 из 5 ПерваяПервая ... 345
Показано с 41 по 48 из 48

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

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

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    не путайте с многоядерностью процессоров, за один такт вы выполните только одну инструкцию а будет это бит или 2-х байтное слово уже не важно
    Давай не будем спорить, сколько чертей помещается на острие иглы. Подождем ответов людей. которые знакомы с системой команд АРМа. Хотя, конечно, еще может иметь значение реализация компиляции операций с целочисленными переменными в КДС. А это уже вопрос к другим спецам...

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

    По умолчанию

    Это совпадает со мнением спецов по микроконтроллерам: выигрыша в использовании целочисленной переменной BYTE по сравнению с WORD и DWORD - нет. Они там завелись спорить, каков НАОБОРОТ будет выигрыш от использования только 32-разрядных данных, но слегка разделились во мнениях.

    Итак, интересная получается рекомендация от drvlas-а: если нет специальной причины определения данных как BYTE или WORD - объявляйте их DWORD. Займет больше памяти (решать вам), но никак не ухудшит скорость работы ПЛК.

    ПРОШУ ПОПРАВИТЬ ЭТОТ ПОСЫЛ, если он таки да неверен

    К видимым мне исключениям относятся: работа со строками (там байты удобны, может быть), работа с портами определенного размера (например, двухбайтными регистрами), создание файлов... КАРОЧИ, это можно обсудить.

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

    По умолчанию

    плк-110.
    от byte до dword - по барабану. Около 0.5 мкс на операцию mem-mem-mem
    Для real - ок. 4мкс
    Только на фига dword, если нужен байт ?

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

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Только на фига dword, если нужен байт ?
    Повторю свое объяснение на другом форуме:

    Нет желания оптимизировать по скорости.

    А есть желание уменьшить число типов данных в программе. А именно: все целочисленные переменные размером 1, 2 или 4 байта - сделать 4-байтными. Зачем? А вот зачем.

    У меня много т.н. "параметров", т.е. переменных, с которыми может работать пользователь. И эти параметры, а точнее - переменные, хранящие их значения, имеют различные типы - от практически булевых до двойных целых и вещественных. Многие процедуры работы с этими переменными получают на входе указатель на нее и тип данных - а дальше приходится делать нечто подобное Си-шному SWITCH по типу. Чем меньше типов, тем меньше веток в переключателе. Это раз.

    Кроме того, часто-густо в операторах присвоения приходится иметь дело с разными переменными - и, если типы не совпадают, то приходится использовать явное преобразование (там язык такой, строгий к типам). А оно еще и громоздкое в записи. Значительно проще было бы не преобразовывать - а! значит лучше иметь одинаковые типы. Это два.

    И вообще, если оказывается. что тип BYTE абсолютно ничем не лучше типа WORD, а тот, в свою очередь, не лучше DWORD - то какое право на жизнь имеют эти "огрызки" нормального 32-разрядного слова? Это уже два с половиной

    Таким образом, никакой оптимизации во взрослом понимании этого слова. Только красивше тексты программ.

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

    По умолчанию

    прога с одим типом может и перебор, зато модбас от этого сильно выигрывает, не задумываешься о выравнивании, если еще к тому же и самописный, нужно будет реализовать только две функции, чтение и запись

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

    По умолчанию

    имел ввиду регистры либо флаги, а насколько разношерстна по типам программа, все зависит от творца

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

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    А так - объявил одинаковые структуры в слейве и мастере и гоняй себе их туда-сюда на здоровье.
    PS
    Все никак руки не дойдут до tcp-мастера
    Хорошая подсказка, а я раньше REAL-ы разбивал до байтов, чтоб отправить.

    P.S. даже MB TCP слейв пробовал, руки доходили

  8. #48

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    а зачем паковать, если памяти много можно сделать BOOL_TO_WORD и получаете регистр с двумя значениями 0 или 1
    Спасибо, это проще!
    Пробовал совмещать к функциональным схемам добавлял программу на языке "структурированый текст" ничего не выходило. Ошибка была "несколько объявлений переменной", поэтому так и сделал.

Страница 5 из 5 ПерваяПервая ... 345

Ваши права

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