Страница 329 из 699 ПерваяПервая ... 229279319327328329330331339379429 ... ПоследняяПоследняя
Показано с 3,281 по 3,290 из 6985

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

  1. #3281

    По умолчанию

    Нет, это аналоговые величины, строго говоря они всегда по 4 байта, но сигнатуру начала там надо определять по сочетанию отдельных бит (там в первый байт часть бит из самой величины залазит), поэтому я пока не стал про них писать. Иногда их может не быть. В посылке могут быть аналоговые данные, логические и символьные одновременно или только два или один из этих типов.
    Последний раз редактировалось Петр Петрович; 24.07.2021 в 12:21.

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

    По умолчанию

    я правильно расшифровал посылку? owen.png
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  3. #3283

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    я правильно расшифровал посылку? owen.png
    Да, пожоже на правду, факт.

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

    По умолчанию

    тогда находим первый начальный символ, это нулевой кейс, затем получаем строку из оставшегося массива(кейс 2) и далее делим её(split), находя символы яИ с помощью FIND в цикле и получаем строки
    Последний раз редактировалось capzap; 24.07.2021 в 13:08.
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  5. #3285

    По умолчанию

    У меня вот так было сделано. Искомая строка формируется сразу во время побайтового прохода:

    IF fb_TcpServer.abyRx[Current_Byte_Num]=16#C8 THEN // Байты начала serial значения, переменная длина последовательных данных
    Serial_Index:=fb_TcpServer.abyRx[Current_Byte_Num+1]-Serial_Offset; // Получаем порядковый номер для сигнала serial, с учетом смещения в общем порядке индексов всех сигналов

    FOR Symbol_Counter:=Current_Byte_Num+2 TO UDINT_TO_UINT(fb_TcpServer.Bytes_Read_Count)-1 BY 1 DO // Предполагаемая максимальная длина Serial - до конца строки данных, первые два байта заголовка прибавляем сразу к позиции
    IF fb_TcpServer.abyRx[Symbol_Counter]=16#FF THEN // Если признак конца последовательных данных
    Serial_Value[Serial_Index][Symbol_Counter-Current_Byte_Num-2]:=16#00; // То пишем признак конца строки и выходим из цикла
    EXIT;
    END_IF
    Serial_Value[Serial_Index][Symbol_Counter-Current_Byte_Num-2]:=fb_TcpServer.abyRx[Symbol_Counter]; // Переходим от Symbol_Counter к индексам (с нуля) для символов в строке
    END_FOR
    Current_Byte_Num:=Current_Byte_Num+(Symbol_Counter-Current_Byte_Num)+1; // Корректируем позицию, переходим на следующий за последовательными данными байт

    END_IF


    А вjобще, думаю лучше так заменить:

    //Serial_Value[Serial_Index][Symbol_Counter-Current_Byte_Num-2]:=fb_TcpServer.abyRx[Symbol_Counter]; // Переходим от Symbol_Counter к индексам (с нуля) для символов в строке
    Str_To_WEB[Symbol_Counter-Current_Byte_Num-2]:=fb_TcpServer.abyRx[Symbol_Counter]; // Собираем строку, но до выхода из цикла на визуализацию не отправляем !!!
    Последний раз редактировалось Петр Петрович; 24.07.2021 в 13:11.

  6. #3286

    По умолчанию

    Вопрос по компилятору:
    Вылезает 2 предупреждения с которыми не могу разобраться: Есть вообще где почитать по ошибкам/предупреждениям компилятора
    СПАСИБО
    ------ Компиляция : Приложение: Device.Application -------
    типизировать код...
    [WARNING] owenvisudialogs, 3.5.14.3 (production association owen): FileDirChoiceOwen(Вход элемента ID 72): C0373: Диалог <Keypad> не представлен в вашем приложении. Присутствует ли он в менеджере визуализции?
    [WARNING] PLCVIRTUAL_EXPERIMENT: SetDriversParameters [Device: Plc Logic: Application](ID элемента 21): C0198: Строковая константа ''GVL.stServoDrivePrms[GVL.enServoType].stServoAllPrms.wInputSignal[INDEX].uiD...' слишком велика для типа цели 'STRING'
    Код предупреждения c0198

  7. #3287

    По умолчанию

    Добрый день!
    Подскажите, пожалуйста - адекватна ли такая настройка циклов (см. рисунок). После того, как я уменьшил время для цикла визуализации, интерфейс стал прям совсем отзывчивым, факт. Уменьшил время и для главного цикла (с 10 мс) - было подозрение, что иогда происходил пропуск отдельных данных, поступающих по TCP, примерно пару раз в день, это было видно по состоянию одной "лампочки", которая не "светилась", а по идее, должна была в этот момент. Приоритеты 1 для программы и 15 для визуализации. timing.png

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

    По умолчанию

    Цитата Сообщение от Петр Петрович Посмотреть сообщение
    Добрый день!
    Подскажите, пожалуйста - адекватна ли такая настройка циклов (см. рисунок). После того, как я уменьшил время для цикла визуализации, интерфейс стал прям совсем отзывчивым, факт. Уменьшил время и для главного цикла (с 10 мс) - было подозрение, что иогда происходил пропуск отдельных данных, поступающих по TCP, примерно пару раз в день, это было видно по состоянию одной "лампочки", которая не "светилась", а по идее, должна была в этот момент. Приоритеты 1 для программы и 15 для визуализации. timing.png
    Не знаю, какие у вас критерии "адекватности", но по скриншоту видно, что время выполнения MainTask всегда укладывается в установленный период вызова с хорошим запасом.
    У VISU_TASK виден выброс в ~30 мс (при заданном периоде 20 мс) - но это, возможно, произошло в момент запуска проекта.
    Поэтому чтобы получить реалистичную оценку - надо после загрузки сбросить данные онлайн-мониторинга и уже после этого собирать статистику.

  9. #3289

    По умолчанию

    Добрый день!

    > Поэтому чтобы получить реалистичную оценку - надо после загрузки сбросить данные онлайн-мониторинга и уже после этого собирать статистику.

    Да, сбрасывал статистику по правой кнопке мыши. Выброс на визуализации в моем случае возникает при подключении клиента (первого уж точно). А по поводу главного цикла было такое рассуждение. Если я правильно понял, при циклическом выполнении задачи, если, например стоит 10 мс, а она выполняется за 1 мс, то планировщик все равно будет запускать ее примерно раз в 10 мс. А за это время по TCP могут прийти данные более одного раза, т.е. первая телеграмма в буфере будет затерта второй например. Точнее, ее можно просто пропустить, так как FB TCP-сервера вызывается циклически из главной задачи.

    А предсказать время появления следующей телеграммы проблематично, т.к. она может содержать и уровень принимаемого устройством сигнала, который меняется довольно хаотично. Т.е. легко пропустить, например, одиночное событие, которое будет "затерто" информацией об уровне синала. Интересно, есть другие простые способы, кроме как уменьшать время цикла? По-хорошему, надо бы управлять потоком данных, но со стороны устройства это сделать невозможно - это просто железка прошитая раз и на всегда. Для сетевого взаимодействия используется сервер на NBS. В целом, конечно, выручает только то видимо, что данные идут не очень бодро - иначе проблема пропусков встала бы сразу. Возможно, более уместен был бы какой-то асинхронный сервер, который мог бы накапливать данные до обращения к нему из главной задачи...
    Последний раз редактировалось Петр Петрович; 02.08.2021 в 10:04.

  10. #3290

    По умолчанию

    Здравствуйте. Где можно скачать codesys 3.5 sp 16 x64 ,не на сайте разработчика?

Страница 329 из 699 ПерваяПервая ... 229279319327328329330331339379429 ... ПоследняяПоследняя

Похожие темы

  1. Панели оператора СП3xx. Вопросы и ответы
    от Мурат Ахриев в разделе Панели оператора (HMI)
    Ответов: 3177
    Последнее сообщение: 27.03.2024, 12:47
  2. Панели оператора ИП320. Вопросы и ответы
    от automat в разделе Панели оператора (HMI)
    Ответов: 822
    Последнее сообщение: 20.11.2023, 17:48
  3. ИПП120. Вопросы и ответы
    от Р.Александр в разделе Программируемые реле
    Ответов: 245
    Последнее сообщение: 02.10.2022, 11:34
  4. Индикатор ИП120 , вопросы- ответы
    от rovki в разделе Программируемые реле
    Ответов: 56
    Последнее сообщение: 03.11.2017, 15:58
  5. Панели оператора СП270. Вопросы и ответы
    от Давидюк в разделе Панели оператора (HMI)
    Ответов: 930
    Последнее сообщение: 15.05.2017, 17:12

Ваши права

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