Страница 531 из 711 ПерваяПервая ... 31431481521529530531532533541581631 ... ПоследняяПоследняя
Показано с 5,301 по 5,310 из 7101

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

  1. #5301

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    в блоке глобальных данных установили раздел глобальных данных(масло масленное), удалите и проверте исчезнет ли краснота, справку откройте на всякий случай
    Ничего я сам не устанавливал. Это шаблон.

  2. #5302

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Замените VAR RETAIN на VAR_GLOBAL RETAIN
    А вот это в точку. Спасибо.

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

    По умолчанию

    Цитата Сообщение от Newcomer Посмотреть сообщение
    Ничего я сам не устанавливал. Это шаблон.
    owen.pngсо справки начинайте всегда искать причины
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  4. #5304

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    owen.pngсо справки начинайте всегда искать причины
    Золотые слова.

  5. #5305

    По умолчанию

    Добрый день знатокам!
    Работаю над реализацией функционального блока для взаимодействия с сервоприводом. Сервоприводов будет несколько но не суть.
    В проекте использую OwenCommunication обмен данными идет по шине Modbus RS485
    На данный момент обмен реализовал через стек, в стек загружаются данные. примерно так:

    fbComControl : OCL.COM_Control;
    fbSerialRequest : OCL.MB_SerialRequest;
    hCom : OCL.CAA.HANDLE;

    fbComControl
    (
    xEnable := TRUE,
    udiComPort := 1,
    udiBaudRate := 115200,
    udiByteSize := 8,
    eParity := OCL.COM_PARITY.NONE,
    eStopBit := OCL.COM_STOPBIT.ONE,
    hCom => hCom
    );


    fbSerialRequest
    (
    xExecute := TRUE,
    hCom := hCom,
    tTimeout := T#100MS,
    usiRetry := 3,
    xIsAsciiMode:= FALSE,
    usiSlaveId := fbAxisDrives[iAxisIndex].usiSlaveId,
    eFuncCode := fbAxisDrives[iAxisIndex].stStack.eFuncCode,
    uiDataAddr := fbAxisDrives[iAxisIndex].stStack.uiDataAddr,
    uiDataCount := fbAxisDrives[iAxisIndex].stStack.uiDataCount,
    pData := fbAxisDrives[iAxisIndex].stStack.pData,
    szSize := fbAxisDrives[iAxisIndex].stStack.szSize
    );

    Все в таком виде вполне работоспособно, но!!! Не очень эстетично. Я бы хотел инкапсулировать OCL.MB_SerialRequest; в функциональный блок взаимодействия с устройством. Но в таком случае получается что будет запущено несколько экземпляров OCL.MB_SerialRequest; используя один и тот-же OCL.CAA.HANDLE; для Com-порта.
    Допустимо ли такое?

    В документации указано что можно запускать до 20 экземпляров в рамках одного цикла работы контроллера. Меня это вполне устроило бы

    Заранее признателен за консультацию
    Каждый в меру своего понимания работает на себя, а в меру непонимания на того, кто понимает больше!

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

    По умолчанию

    Добрый день.

    Допустимо ли такое?
    Если вы напишите арбитр, который будет контролировать, что в каждый момент времени вызывается только один из экземпляров вашего ФБ - то да.

    В документации указано что можно запускать до 20 экземпляров в рамках одного цикла работы контроллера.
    RS-485 - это последовательный интерфейс. В каждый момент времени на шине должна осуществляться передача только одной посылки.
    Поэтому достаточно объявить один экземпляр ФБ и последовательно вызывать его с разными аргументами (адресами слэйвов, адресами регистров и т.д.).

  7. #5307

    По умолчанию

    Если вы напишите арбитр, который будет контролировать, что в каждый момент времени вызывается только один из экземпляров вашего ФБ - то да.
    Ну вобщем я так и думал что так не будет работать, а жаль. Было бы гораздо красивее

    Я же могу в своем ФБ выставлять флаг Com занят/свободен. если свободен, другой экземпляр моего ФБ может начать передачу и выставить флаг Занят до окончатия приема/передачи. Ведь так?

    Но все-же как же это в документации правильно интерпретировать?
    8.2 Ограничения, связанные с библиотекой CAA AsyncManager
    Библиотеки, включающие в себя асинхронно выполняемые функциональные блоки (к таким
    библиотекам, например, относятся CAA SerialCom, CAA NetBaseServices, CAA File и др.),
    используют в своей реализации библиотеку CAA AsyncManager.
    Данная библиотека имеет следующее ограничение: в каждый момент времени (в пределах
    одного цикла контроллера) в программе может вызываться не более 20 экземпляров
    асинхронно выполняемых функциональных блоков.
    Каждый в меру своего понимания работает на себя, а в меру непонимания на того, кто понимает больше!

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

    По умолчанию

    Я же могу в своем ФБ выставлять флаг Com занят/свободен. если свободен, другой экземпляр моего ФБ может начать передачу и выставить флаг Занят до окончатия приема/передачи. Ведь так?
    Безусловно, в своем коде вы можете делать всё, что считаете нужным.

    Но все-же как же это в документации правильно интерпретировать?
    Именно так, как написано. В документации этому моменту посвящена целая страница, на которой приведены конкретные примеры.

  9. #5309

    По умолчанию

    Подскажите, с чем может быть связана ошибка? Скриншот делался без подключения к ПЧ, также эта ошибка высвечивается если виртуальным контроллером подключиться к реальному ПЧ и связь установлена (зеленые стрелочки).
    Изображения Изображения

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

    По умолчанию

    Цитата Сообщение от sco-scorpion Посмотреть сообщение
    Подскажите, с чем может быть связана ошибка? Скриншот делался без подключения к ПЧ, также эта ошибка высвечивается если виртуальным контроллером подключиться к реальному ПЧ и связь установлена (зеленые стрелочки).
    Добрый день.
    Какой у вас номер порта выбран в узле Modbus COM? Тоже 1? У ПК точно есть COM-порт с таким номером?

Страница 531 из 711 ПерваяПервая ... 31431481521529530531532533541581631 ... ПоследняяПоследняя

Похожие темы

  1. Панели оператора СП3xx. Вопросы и ответы
    от Мурат Ахриев в разделе Панели оператора (HMI)
    Ответов: 3197
    Последнее сообщение: 23.04.2024, 13:45
  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

Ваши права

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