Страница 666 из 711 ПерваяПервая ... 166566616656664665666667668676 ... ПоследняяПоследняя
Показано с 6,651 по 6,660 из 7106

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

  1. #6651

    По умолчанию

    Цитата Сообщение от shvitaliy Посмотреть сообщение
    Добрый день. Подскажите пожалуйста, как фиксировать время? Нужно по событию переменной "bool" фиксировать время возникновения события и исчезновение события с записью времени в энергонезависимую переменную.
    Криво, в сравнении с ST, но копмилируется) Дальше пишите в retain. Если нужно время в другом формате - смотрите в структуре stRTC - там есть всё необходимое.

    timeVarChanged.PNG
    Последний раз редактировалось beatitas; 20.12.2023 в 11:57.

  2. #6652
    Пользователь
    Регистрация
    10.11.2014
    Адрес
    Санкт-Петербург
    Сообщений
    980

    По умолчанию

    День добрый, коллеги.

    Подскажите, как удалить соединение со своим СПК110.

    Поясню проблему. Хочу передать проект стороннему человеку, и навсякий случай, чтобы он по ошибке не перезалил мне панель, хочу удалить активное соединение, но оно упрямо сохраняется.
    Что делал:
    1. Менял тип устройства
    2. Пересохранял проект как (с другим именем)
    3. Выбирал это соединение и удалял его (когда строка выделена, нажимал на Del).

    В какой-то момент вместо IP адреса соединения в строке соединения стал писать некий ID 20 цифр (5 групп по 4 цифры).
    Но и по этому ID он упорно устанавливает соединение с моей панелью.

    Все вышеописанное поясняет картинка.

    Спасибо.Пусть к устройсту.jpg

  3. #6653

    По умолчанию

    Помогите, пожалуйста, разобраться - где я накосячил.

    Хочу отправлять ошибки сенсоров в телеграм. Появилась проблема с ENUM ANALOG_SENSOR_ERROR.

    enumAnalogSensWorkNice.PNG

    Вот в таком виде конструкция работает - ошибка датчика читается. Сообщение приходит в телеграмм.

    А вот после запихивания этой конструкции в отдельный ФБ - начинает ругаться на

    [ERROR] PLC200: sensor_Error_To_Telegram [Device: Plc Logic: Application](Элемент 0 (Реализ.)): C0358: 'eStatus' - неподходящее значение для типа ENUM 'ANALOG_SENSOR_ERRORS'

    enumAnalogSensFB.PNG

    enumAnalogSensInCode.PNG

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

    По умолчанию

    Цитата Сообщение от beatitas Посмотреть сообщение
    Помогите, пожалуйста, разобраться - где я накосячил.

    Хочу отправлять ошибки сенсоров в телеграм. Появилась проблема с ENUM ANALOG_SENSOR_ERROR.

    enumAnalogSensWorkNice.PNG

    Вот в таком виде конструкция работает - ошибка датчика читается. Сообщение приходит в телеграмм.

    А вот после запихивания этой конструкции в отдельный ФБ - начинает ругаться на

    [ERROR] PLC200: sensor_Error_To_Telegram [Device: Plc Logic: Application](Элемент 0 (Реализ.)): C0358: 'eStatus' - неподходящее значение для типа ENUM 'ANALOG_SENSOR_ERRORS'

    enumAnalogSensFB.PNG

    enumAnalogSensInCode.PNG
    У eStatus должен быть тип Mx210Assistant.ANALOG_SENSOR_ERRORS

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

    По умолчанию

    Цитата Сообщение от Спорягин Кирилл Посмотреть сообщение
    День добрый, коллеги.

    Подскажите, как удалить соединение со своим СПК110.

    Поясню проблему. Хочу передать проект стороннему человеку, и навсякий случай, чтобы он по ошибке не перезалил мне панель, хочу удалить активное соединение, но оно упрямо сохраняется.
    Что делал:
    1. Менял тип устройства
    2. Пересохранял проект как (с другим именем)
    3. Выбирал это соединение и удалял его (когда строка выделена, нажимал на Del).

    В какой-то момент вместо IP адреса соединения в строке соединения стал писать некий ID 20 цифр (5 групп по 4 цифры).
    Но и по этому ID он упорно устанавливает соединение с моей панелью.

    Все вышеописанное поясняет картинка.

    Спасибо.Пусть к устройсту.jpg
    Добрый день.
    Вы сняли эту галочку?

    2023-12-20_12-29-53.png

  6. #6656

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    У eStatus должен быть тип Mx210Assistant.ANALOG_SENSOR_ERRORS
    Спасибо огромное! Всё заработало)

  7. #6657
    Пользователь
    Регистрация
    10.11.2014
    Адрес
    Санкт-Петербург
    Сообщений
    980

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Добрый день.
    Вы сняли эту галочку?

    2023-12-20_12-29-53.png
    Да, снял. После чего пересохранил проект.

    Делал еще "Очистить все".

    Но пока соединение сохраняется.

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

    По умолчанию

    Цитата Сообщение от Спорягин Кирилл Посмотреть сообщение
    Да, снял. После чего пересохранил проект.

    Делал еще "Очистить все".

    Но пока соединение сохраняется.
    Попробуйте сами пока что перенести проект на другой ПК и проверить. Или закрыть и открыть CODESYS заново.
    Я думаю, у вас на ПК информация о соединении просто прокэшировалась.

  9. #6659

    По умолчанию

    Прошу помощи по рефакторингу. Задача есть мотор асинхронный кнопка ПУСК без фиксации кнопка СТОП с фиксацией и контроль за АВАРИЯМИ по току и температуре.
    Код:
    //интерфейс аварий
    INTERFACE IAlarm
    // Метод выключения Аварии
    METHOD AlarmOff : BOOL
    VAR_INPUT
    END_VAR
    // Метод включения Аварии
    METHOD AlarmOn : BOOL
    VAR_INPUT
    END_VAR
    
    // Интерфей Моторов
    INTERFACE IMotor
    // выключить мотор
    METHOD MotorOff : BOOL
    VAR_INPUT
    END_VAR
    // включить Мотор
    METHOD MotorOn : BOOL
    VAR_INPUT
    END_VAR
    
    ---------------------------------------------
    // класс мотор с отслеживанием аварии
    FUNCTION_BLOCK classMotor IMPLEMENTS IMotor, IAlarm
    VAR_INPUT
    	onMotor: BOOL;// запуск мотора
    	offMotor: BOOL;// выключение мотора
    	alarmKz: BOOL; //авария короткого замыкания
    	alarmTemp: BOOL;//авария по температуре
    END_VAR
    VAR_OUTPUT
    	motorOut: BOOL;//выход мотора
    	motorAlarmOut: BOOL;// выход аварии мотора
    END_VAR
    VAR
    	// Логика работы
    	motorTrigRs: Standard.RS;
    	statusMotor: BOOL;
    	statusAlarm: BOOL;
    END_VAR
    // запуск мотора
    motorTrigRs(SET:= onMotor, RESET1:= offMotor OR motorAlarmOut);
    IF motorTrigRs.Q1 THEN
    	MotorOn();
    ELSE
    	MotorOff();
    END_IF
    motorOut:= statusMotor;
    // отследить аварию мотора
    IF alarmKz OR alarmTemp THEN
    	AlarmOn();
    ELSE
    	AlarmOff();
    END_IF
    motorAlarmOut:= statusAlarm;
    
    (* Метод выключения Аварии*)
    METHOD AlarmOff : BOOL
    statusAlarm:= FALSE;
    (* Метод включения Аварии*)
    METHOD AlarmOn : BOOL
    statusAlarm:= TRUE;
    (* выключить мотор*)
    METHOD MotorOff : BOOL
    statusMotor:= FALSE;
    (* включить Мотор*)
    METHOD MotorOn : BOOL
    statusMotor:= TRUE;
    --------------------------------------------
    PROGRAM PLC_PRG
    VAR
    	// блок моторов
    	// входы 
    	InStartMotor_2:BOOL;// пуск мотора
    	InStopMotor_2: BOOL;// стоп мотора
    	// авария мотора
    	InAlarmKz_2,InAlarmTemp_2: BOOL;
    
    	// выходы мотора
    	Q_2Motor: BOOL;
    	Q_2Alarm: BOOL;
    
    	// объект мотор
    	objMotor_2: classMotor;
    END_VAR
    
    
    	objMotor_2(onMotor:= InStartMotor_2,offMotor:= InStopMotor_2,// включить мотор
    				alarmKz:= InAlarmKz_2,alarmTemp:= InAlarmTemp_2,// отслеживаем аварию
    				motorOut=> Q_2Motor,motorAlarmOut=> Q_2Alarm);// визуализация выходов мотора и аварии

  10. #6660

    По умолчанию

    Цитата Сообщение от bango Посмотреть сообщение
    Прошу помощи по рефакторингу. Задача есть мотор асинхронный кнопка ПУСК без фиксации кнопка СТОП с фиксацией и контроль за АВАРИЯМИ по току и температуре.
    Код:
    //интерфейс аварий
    INTERFACE IAlarm
    // Метод выключения Аварии
    METHOD AlarmOff : BOOL
    VAR_INPUT
    END_VAR
    // Метод включения Аварии
    METHOD AlarmOn : BOOL
    VAR_INPUT
    END_VAR
    
    // Интерфей Моторов
    INTERFACE IMotor
    // выключить мотор
    METHOD MotorOff : BOOL
    VAR_INPUT
    END_VAR
    // включить Мотор
    METHOD MotorOn : BOOL
    VAR_INPUT
    END_VAR
    
    ---------------------------------------------
    // класс мотор с отслеживанием аварии
    FUNCTION_BLOCK classMotor IMPLEMENTS IMotor, IAlarm
    VAR_INPUT
    	onMotor: BOOL;// запуск мотора
    	offMotor: BOOL;// выключение мотора
    	alarmKz: BOOL; //авария короткого замыкания
    	alarmTemp: BOOL;//авария по температуре
    END_VAR
    VAR_OUTPUT
    	motorOut: BOOL;//выход мотора
    	motorAlarmOut: BOOL;// выход аварии мотора
    END_VAR
    VAR
    	// Логика работы
    	motorTrigRs: Standard.RS;
    	statusMotor: BOOL;
    	statusAlarm: BOOL;
    END_VAR
    // запуск мотора
    motorTrigRs(SET:= onMotor, RESET1:= offMotor OR motorAlarmOut);
    IF motorTrigRs.Q1 THEN
    	MotorOn();
    ELSE
    	MotorOff();
    END_IF
    motorOut:= statusMotor;
    // отследить аварию мотора
    IF alarmKz OR alarmTemp THEN
    	AlarmOn();
    ELSE
    	AlarmOff();
    END_IF
    motorAlarmOut:= statusAlarm;
    
    (* Метод выключения Аварии*)
    METHOD AlarmOff : BOOL
    statusAlarm:= FALSE;
    (* Метод включения Аварии*)
    METHOD AlarmOn : BOOL
    statusAlarm:= TRUE;
    (* выключить мотор*)
    METHOD MotorOff : BOOL
    statusMotor:= FALSE;
    (* включить Мотор*)
    METHOD MotorOn : BOOL
    statusMotor:= TRUE;
    --------------------------------------------
    PROGRAM PLC_PRG
    VAR
    	// блок моторов
    	// входы 
    	InStartMotor_2:BOOL;// пуск мотора
    	InStopMotor_2: BOOL;// стоп мотора
    	// авария мотора
    	InAlarmKz_2,InAlarmTemp_2: BOOL;
    
    	// выходы мотора
    	Q_2Motor: BOOL;
    	Q_2Alarm: BOOL;
    
    	// объект мотор
    	objMotor_2: classMotor;
    END_VAR
    
    
    	objMotor_2(onMotor:= InStartMotor_2,offMotor:= InStopMotor_2,// включить мотор
    				alarmKz:= InAlarmKz_2,alarmTemp:= InAlarmTemp_2,// отслеживаем аварию
    				motorOut=> Q_2Motor,motorAlarmOut=> Q_2Alarm);// визуализация выходов мотора и аварии
    А что тут непонятного? В prg функциональному блоку передаются значения кнопок, в блоке тупо включить/выключить. Ну ещё парочка интерфейсов, в которых я не разбираюсь...

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

Похожие темы

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

Ваши права

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