Страница 535 из 856 ПерваяПервая ... 35435485525533534535536537545585635 ... ПоследняяПоследняя
Показано с 5,341 по 5,350 из 8557

Тема: CODESYS V3.5. Вопросы и ответы

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

    По умолчанию

    Кстати наблюдение которое удалось выяснить - через метод RecipeManCommands.GetRecipeValues удается прочитать WSTRING строку из рецепта не более 65 символов длинной. Если строка длинней то программа вываливается в исключение.
    Поисследую этого на досуге.

    Upd. - проверил в V3.5 SP17 Patch 3. В ней с помощью метода RecipeManCommands.GetRecipeValues в принципе не получается считать строку (STRING) длиннее 80 символов.

    И для преобразования длинных строк в функции RECIPE_STRING_TO_WSTRING из примера по видео пришлось явно задать длину входной и выходной переменной иначе они ограничивались 80 символами (это максимум 20 символов для преобразования в WSTRING)
    Да, вы поступили совершенно правильно.

  2. #5342
    Пользователь
    Регистрация
    08.02.2020
    Адрес
    Ставрополь
    Сообщений
    230

    По умолчанию

    > не получается считать строку (STRING) длиннее 80 символов

    Ну так по умолчанию в CS строка без явного указания размера интерпретируется, как 80-символьная: If a size is not defined, then 80 characters are reserved by default

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

    По умолчанию

    Цитата Сообщение от fatlortroll Посмотреть сообщение
    > не получается считать строку (STRING) длиннее 80 символов

    Ну так по умолчанию в CS строка без явного указания размера интерпретируется, как 80-символьная: If a size is not defined, then 80 characters are reserved by default
    Там строка возвращается по указателю.
    И есть поле iStringLength, которое задает пользователь (макс. длина строк в его буфере).
    В принципе - в таких случаях обычно по указателю может вернуться строка с любым количеством символов - в т.ч. и более 80.
    https://content.helpme-codesys.com/e...ipeValues.html

    Показательный пример:
    https://content.helpme-codesys.com/e.../StrFindA.html

    У функции вход типа POINTER TO STRING(255), но реально она может вычислить размер строки длиной вплоть до 32767 символов - вы можете легко в этом убедиться.

    Так что POINTER TO STRING не всегда означает, что под указатель можно подложить только STRING(80) и не более - иногда это совсем не так.

  4. #5344
    Пользователь
    Регистрация
    08.02.2020
    Адрес
    Ставрополь
    Сообщений
    230

    По умолчанию

    А, ясно. Это я на сигнатуру не посмотрел -- думал, что строка по значению передаётся.

  5. #5345

    По умолчанию

    Подскажите как можно написать код что бы при нажатии параметры передавались в Word, НО при этом должен формироваться Бит по переднему фронту. т.е. должна быть запись в xBit i wCmdWord.
    В запись Word можно сделать через CASE, а вот что бы Бит формировался не могу сообразить.
    Изображения Изображения

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

    По умолчанию

    Цитата Сообщение от sco-scorpion Посмотреть сообщение
    Подскажите как можно написать код что бы при нажатии параметры передавались в Word, НО при этом должен формироваться Бит по переднему фронту. т.е. должна быть запись в xBit i wCmdWord.
    В запись Word можно сделать через CASE, а вот что бы Бит формировался не могу сообразить.
    Вам нужен именно передний фронт или установка бита на время нажатия и сброс при отпускании будет приемлем?

  7. #5347

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Вам нужен именно передний фронт или установка бита на время нажатия и сброс при отпускании будет приемлем?
    Передний фронт

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

    По умолчанию

    Цитата Сообщение от sco-scorpion Посмотреть сообщение
    Передний фронт
    Тогда сделайте так:

    2023-03-07_11-54-57.png

    Код:
    // в коде PLC_PRG (или другой программы)
    // fbRtrig - это экземпляр R_TRIG
    fbRtrig(CLK := xCmd);
    
    // укажите нужный вам бит
    wCmdWord.0 := fbRtrig.Q;

  9. #5349

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Тогда сделайте так:

    2023-03-07_11-54-57.png

    Код:
    // в коде PLC_PRG (или другой программы)
    // fbRtrig - это экземпляр R_TRIG
    fbRtrig(CLK := xCmd);
    
    // укажите нужный вам бит
    wCmdWord.0 := fbRtrig.Q;
    Этот вариант применим к одной кнопки, а мне к 3ом (старт, реверс и стоп)
    Может я немного неправильно объяснил, приложил скрин куда происходит запись.
    Изображения Изображения
    • Тип файла: png Бит.png (134.8 Кб, Просмотров: 14)

  10. #5350

    По умолчанию

    Добрый день. Подскажите, возможно ли стать клиентом OPC UA в Codesys или только в роли сервера возможно?

Страница 535 из 856 ПерваяПервая ... 35435485525533534535536537545585635 ... ПоследняяПоследняя

Похожие темы

  1. Панели оператора СП3xx. Вопросы и ответы
    от Мурат Ахриев в разделе Панели оператора (HMI)
    Ответов: 4044
    Последнее сообщение: 17.12.2025, 10:15
  2. Панели оператора ИП320. Вопросы и ответы
    от automat в разделе Панели оператора (HMI)
    Ответов: 849
    Последнее сообщение: 16.11.2025, 08:58
  3. ИПП120. Вопросы и ответы
    от Р.Александр в разделе Программируемые реле
    Ответов: 273
    Последнее сообщение: 08.09.2025, 13:21
  4. Индикатор ИП120 , вопросы- ответы
    от rovki в разделе Программируемые реле
    Ответов: 56
    Последнее сообщение: 03.11.2017, 15:58
  5. Панели оператора СП270. Вопросы и ответы
    от Давидюк в разделе Панели оператора (HMI)
    Ответов: 930
    Последнее сообщение: 15.05.2017, 17:12

Ваши права

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