Страница 603 из 711 ПерваяПервая ... 103503553593601602603604605613653703 ... ПоследняяПоследняя
Показано с 6,021 по 6,030 из 7101

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

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

    По умолчанию

    У вас запись в wsModbusError_Alll выполняется только по условию xModbusError_Alll - а оно, видимо, не выполняется.

    Цитата Сообщение от Cs-Cs Посмотреть сообщение
    Как-нить напишу статью про это...
    Будем ждать. =)

  2. #6022

    По умолчанию

    Цитата Сообщение от Cs-Cs Посмотреть сообщение
    sco-scorpion
    На будущее: весь этот код лучше не копипастить под A111 и так далее, а сделать отдельный FB с каким-нить говорящим названием "MBDeviceCheck", и уже его экземпляры вызывать для модулей IO или других устройств. Я так и делаю. Как-нить напишу статью про это...
    Было бы не плохо т.к. у меня 5 модулей, сейчас оставлю как есть для запуска, но потом буду оптимизировать.

  3. #6023

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    У вас запись в wsModbusError_Alll выполняется только по условию xModbusError_Alll - а оно, видимо, не выполняется.
    Я не правильно написал условие, должно быть:
    IF xModbusStatusAlarm_A111 THEN
    wsModbusError_A111 := MB_MODBUS_ERROR_TO_WSTRING(A111.byModbusError) ; // Вывод названии ошибки
    wsModbusError_A111 := wConcat (wsModbusError_A111, wsNameA111);
    ELSE
    xModbusError_A111 := FALSE ;
    END_IF
    Теперь все корректно.
    Последний раз редактировалось sco-scorpion; 18.07.2023 в 18:32.

  4. #6024

    По умолчанию

    Цитата Сообщение от sco-scorpion Посмотреть сообщение
    Было бы не плохо т.к. у меня 5 модулей, сейчас оставлю как есть для запуска, но потом буду оптимизировать.
    Ну лучше сразу написать FB, а не копипастить A112, A111 и так далее, чтобы не путаться. Торопыжничество вида "ща сделаю кое-как, а потом сделаю нормально" приводит к глюкам, ерунде и фигне. А что будет, если потом тебе захочется добавить какое-то другое вычисление ошибки Modbus, и надо будет этот кусок кода копипастить во все места?
    IOStates.gif
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
    Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net

  5. #6025

    По умолчанию

    Цитата Сообщение от Cs-Cs Посмотреть сообщение
    Ну лучше сразу написать FB, а не копипастить A112, A111 и так далее, чтобы не путаться. Торопыжничество вида "ща сделаю кое-как, а потом сделаю нормально" приводит к глюкам, ерунде и фигне. А что будет, если потом тебе захочется добавить какое-то другое вычисление ошибки Modbus, и надо будет этот кусок кода копипастить во все места?
    IOStates.gif
    А можете показать сам код блока?

  6. #6026

    По умолчанию

    Цитата Сообщение от sco-scorpion Посмотреть сообщение
    А можете показать сам код блока?
    К сожалению, нет. Принципы работы опишу потом в статье у себя на сайте. Они простые: построены на том же, на чём у тебя - отлов серии нескольких ошибок подряд через TON/TOF. А дальше тупо считается статистика: сколько штук ошибок было, сколько штук успешных опросов.
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
    Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net

  7. #6027

    По умолчанию

    Решил все таки попробовать сделать ФБ, я так понимаю на вход мы передаем сигнал ошибки
    FUNCTION_BLOCK MBDeviceCheck
    VAR_INPUT
    xError_Modbus : IoDrvModbus.xError;
    END_VAR
    VAR_OUTPUT
    xModbusStatusAlarm : BOOL; // Установка наличии ошибки
    wsModbusError : WSTRING; // Вывод названии ошибки
    END_VAR
    VAR
    eError_Modbus : IoDrvModbus.MB_ErrorCodes;
    fbTon : TON;
    END_VAR
    и в самом начале кодесис начинает ругаться что не понимает что такое xError_Modbus : IoDrvModbus.xError;

    сам ФБ вызываю
    MBDeviceCheck(xError_Modbus:= A111.byModbusError, xModbusStatusAlarm=> xCheck, wsModbusError=> wsCheck);

  8. #6028

    По умолчанию

    Цитата Сообщение от sco-scorpion Посмотреть сообщение
    Решил все таки попробовать сделать ФБ, я так понимаю на вход мы передаем сигнал ошибки

    и в самом начале кодесис начинает ругаться что не понимает что такое xError_Modbus : IoDrvModbus.xError;

    сам ФБ вызываю
    Вы же ФБ делаете на разные случаи, а пытаетесь конкретный вход IoDrvModbus.xError; прямо в ФБ воткнуть, надо так
    Код:
    VAR_INPUT
    xError : BOOL;
    END_VAR
    А уже потом на вход нужное
    MBDeviceCheck(xError:= A111.byModbusError, xModbusStatusAlarm=> xCheck, wsModbusError=> wsCheck);

    А это в VAR, вообще вставлять не надо. Получится внутренняя (неизвестного типа) переменная ФБ, вместо глобальной, потому и ругается.
    Код:
    VAR
    eError_Modbus : IoDrvModbus.MB_ErrorCodes;     // Это убрать
    fbTon : TON;
    END_VAR
    Последний раз редактировалось kondor3000; 18.07.2023 в 23:48.

  9. #6029

    По умолчанию

    Добрый день, подскажите а можно ли как то в CS удалить не используемые переменные в автоматическом режиме?

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

    По умолчанию

    Цитата Сообщение от Teinrus Посмотреть сообщение
    Добрый день, подскажите а можно ли как то в CS удалить не используемые переменные в автоматическом режиме?
    Добрый день.
    Насколько я знаю - такой возможности нет.

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

Похожие темы

  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

Ваши права

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