Показано с 1 по 10 из 24

Тема: Перегрузка функций в CODESYS

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

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

  2. #2

    По умолчанию

    Это только для встроенных типов данных (как я понял)? Если я реализовал собственную структуру - я уже не могу использовать ANY?

  3. #3
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,594

    По умолчанию

    Цитата Сообщение от RomeoVar Посмотреть сообщение
    Это только для встроенных типов данных (как я понял)? Если я реализовал собственную структуру - я уже не могу использовать ANY?
    Не можете.
    Но можно сделать функцию с сигнатурой типа (pstStructData, szStructData, eStructData) - соответственно, (указатель на экземпляр нужной структуры, размер структуры в байтах, тип структуры).

    указатель на экземпляр нужной структуры - POINTER TO BYTE
    Под указатель можно подложить что угодно.

  4. #4

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Не можете.
    Но можно сделать функцию с сигнатурой типа (pstStructData, szStructData, eStructData) - соответственно, (указатель на экземпляр нужной структуры, размер структуры в байтах, тип структуры).

    указатель на экземпляр нужной структуры - POINTER TO BYTE
    Под указатель можно подложить что угодно.
    А что мне даст входной параметр eStructData если у меня будет только один входной параметр pStructData? Тогда может имеет смысл сделать несколько входных параметров pstStructDataA, pstStructDataB, pstStructDataC и в зависимости от типа eStructData в FB обрабатывать соответствующую входную переменную? Но тогда нужно тщательно контролировать соответствие eStructData типу структуры входного параметра иначе меня будут ждать непредсказуемые "чудеса"

    И еще вопрос по ходу: Тут по поводу указателей на экземпляры у меня вопрос - ведь процессор на самом деле 32 разрядный, а это значит что выборка по шине данных происходит, грубо говоря по 4 байта за один цикл чтения по шине данных. Соответственно если структура данных занимает неполных 32 бита, должно происходить выравнивание. Не произойдет ли "искажение" сохраняемых/получаемых данных если использовать POINTER TO BYTE а сами данные будут INT или того хуже FLOAT, или вообще какие-нибудь сложные структуры?
    Последний раз редактировалось RomeoVar; 13.07.2021 в 22:35.

Похожие темы

  1. Ответов: 38
    Последнее сообщение: 23.06.2017, 07:42
  2. Коды функций Modbus-RTU
    от Newcomer в разделе ПЛК1хх
    Ответов: 15
    Последнее сообщение: 10.11.2015, 10:02
  3. Ответов: 4
    Последнее сообщение: 14.07.2015, 22:17
  4. Переменные в отладке функций.
    от Edik_Ponomarenko в разделе ПЛК1хх
    Ответов: 10
    Последнее сообщение: 30.12.2011, 10:01
  5. Ответов: 3
    Последнее сообщение: 26.01.2010, 21:01

Ваши права

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