Здравствуйте,
Была переделана визуализация и где то появилось несоответствие типом: Невозможно конвертировать тип 'REAL' в тип 'BOOL'
По нажатию на ошибку открывается окно визуализации.
Как то можно найти элемент с ошибкой?
Вложение 39882
Вид для печати
Здравствуйте,
Была переделана визуализация и где то появилось несоответствие типом: Невозможно конвертировать тип 'REAL' в тип 'BOOL'
По нажатию на ошибку открывается окно визуализации.
Как то можно найти элемент с ошибкой?
Вложение 39882
Можно удалять элементы группами и компилировать. Как только ошибка пропадет - делаем Ctrl+Z и изучаем элементы группы.
Есть в КДС3.5 вот такое Вложение 39933 как в КДС2?
Проект создан в CODESYS 3.5.5.5. Не могу обновить device. При попытке обновить девайс окно с перечнем девайсов не открывается.
При создании нового проекта - пожалуйста, весь перечень. CODESYS переустанавливал. На другом ПК вес ОК.
Не могу понять причину.
Помогите разобраться.
Установил новую версию CodeSys, при открытии проекта (экспортированного со всеми файлами) возникает ошибка (см. скрины)
Так же не может найти библиотеку SysFile (открываю Менеджер Библиотек, нажимаю загрузить недостающие библиотеки (пишет что библиотека не загружается)).
Здравствуйте!
Подскажите, пожалуйста, библиотеку для перевода числа из десятичной системы в шестнадцатиричную.
Подскажите как возможно реализовать детектор Импульсов (дискретного сигнала)
Задача:
3 входных сигнала (импульсных) - необходимо определить кто из них сработал первый.
Я предполагаю сделать следующим образом.
Генератор импульса (генерируемый импульс = одному такту работы ПЛК)
Если сигнал пришел в течении данного такта (к примеру одного) то фиксируем значение тригером, как только на тригере появляется 1 останавливаем генератор импульса.
Подскажите вообще имеется ли встроенный детектор например в библиотеке OSCAT или как возможно это реализовать ?
Добрый день.
Если я правильно Вас понял, то в библиотеке Standard.lib есть детекторы импульсов (триггеры) R_TRIG - детектор переднего фронта импульса и F_TRIG - детектор заднего фронта импульса.
В Вашем случае может сработать за один цикл контроллера больше одного дискретного входа?
Если нет, то код проверки будет выглядеть примерно так:
1. Объявление переменных
2. ФБ по определению первого сработанного входа (к примеру ФБ - DiscretInputsDetector);Код:var_input
xIsFirstInputLocked : BOOL; // Признак того, что первый вход сработал
xIsSecondInputLocked : BOOL; // Признак того, что второй вход сработал
xIsThirdInputLocked : BOOL; // Признак того, что третий вход сработал
end_var
var_output
m_uiFirstWorkedInput : UINT; // Номер выхода, который замкнулся первым
end_var
var
m_fb_FirstInputDetector : R_TRIG; // Детектор переднего фронта 1-го входа
m_fb_SecondInputDetector : R_TRIG; // Детектор переднего фронта 2-го входа
m_fb_ThirdInputDetector : R_TRIG; // Детектор переднего фронта 3-го входа
end_var
Но такой подход сработает только если у Вас одновременно не могут замкнуться два входа.Код:m_fb_FirstInputDetector (IN := xIsFirstInputLocked);
m_fb_SecondInputDetector (IN := xIsSecondInputLocked);
m_fb_ThirdInputDetector (IN := xIsThirdInputLocked);
if m_fb_FirstInputDetector.Q then
m_uiFirstWorkedInput := 1;
elsif m_fb_SecondInputDetector.Q then
m_uiFirstWorkedInput := 2;
elsif m_fb_SecondInputDetector.Q then
m_uiFirstWorkedInput := 3;
else
m_uiFirstWorkedInput := 0;
end_if
Т.к. при замыкании входа с более низким порядковым номером, входы с более высоким номером уже будут игнорироваться.
Примерно такую логику я сейчас и начинаю реализовывать, но блокирую входы других тригеров при появлении сигналов. Но столкнулся с такой проблемой.
1. Создал POU (FB) (переименовал в "AI_TIR")" в котором описал входы (сигнализацию HiHi, Hi, LoLo, Lo: BOOL;) и выходы.
2. В PLC_PRG создал копию моего FB A1: AI_TIR;
3. Создал POU (переименовал в "TriggerD") на языке ST.
4. Добавил в MainTask мой новый POU Trigger
5. Теперь написании когда на ST в POU Trigger выходит ошибка
Пытаюсь сделать такое
VAr_In: PLC_PRG.A1.HiHi
Компилятор пишет неизветсный тип PLC_PRG.A1.HiHi
Я же обьявил его в главном PLC_PRG
СПК107 модернизированный с Ethernet. Контроллер подключен к сети, через роутер с динамической сим-картой. По сути имеет доступ в интернет.
Существует ли возможность отправки e-mail сообщений при возникновении события? Например через SMTP
На релизной прошивке такая возможность будет - в ней поддержана cURL.
В рамках бета-теста этот функционал еще не был доступен.
Добрый день!
Установил Codesys 3.5, таргет для СПК-105, библиотеки c этой страницы https://www.owen.ru/product/codesys_v3.
Возникает большое количество ошибок - см. скрин.
В чем может быть проблема?
Заранее спасибо.Вложение 40341
Подскажите каким образом возможно сделать побитовое И ? ( и прочие битовые операции).
Есть значение типа UINT (или BYTE) хочу проверить выставлен ли определенный бит.
Пытался выполнить следующим образом (сдвигаю бит в крайне правое положение и выполняю побитовое И...0b00000001):
IF (SHR (переменная, сдвиг) & 1) = 1 THEN .....
yно на сколько я понял ST не позволяет выполнить данную операцию.
Вы можете обращаться к битам целочисленных переменных через точку. Например указав byVar.3 вы обращаетесь к биту №4 ( т.к. нумерация битов происходит с нуля ) переменной byVar типа BYTE.
Вашу задачу на ST можно реализовать следующим образом:
PROGRAM PLC_PRG
VAR
byVar : BYTE ;
END_VAR
__________________________________________________ _________________________
IF byVar.0 THEN
//действие, которое необходимо выполнить, если нулевой бит переменной byVar = 1
ELSE
//действие, которое необходимо выполнить, если нулевой бит переменной byVar = 0
END_IF
Возникла проблема (начинаю разбираться с Методами).
Задача.
Вызывать метод по событию (в моем случае вызов метода осуществляется при появлении сигнала TRUE на выходе функционального блока см PLC_PRG)
Есть три метода:
METH имеет объявленную переменную Event, в зависимости от TRUE/FALSE записывается значение во внутреннюю переменную bLight: BOOL; bLight описана в AI (FB) как внутренняя переменная. (см. скрин)
SetBOOL (передает METH TRUE)
ResBOOL (передает METH FALSE)
В итоге переменная Event при выполнении программы имеет значение ???
Компилятор не выдает ошибок, только Предупреждение что НЕОБХОДИМО ДОБАВИТЬ РЕАЛИЗАЦИЮ МЕТОДА
Я предполагаю следующее:
1. Методы SetBOOL и ResBOOL из PLC_PRG вызываются и передают значения а вот MEHT не принимает значения (его нужно вызвать)ю
Добрый день! Столкнулся со следующей сложностью.
Было несколько переменных (типа REAL), значение которых выводились в текстовые поля. Я создал объект и его свойства, которые должны были заменить данные переменные. Однако я не могу эти значения этих свойств вывести напрямую в текстовые поля, он принимает название лишь самого экземпляра. Есть ли возможность без лишних усилий вывести в текстовое поле значение свойства объекта? Или мне придётся использовать промежуточную переменную? Заранее спасибо.
Объявите в визуализации переменную в которой будете хранить ссылку на экземпляр и далее в текстовом поле используйте эту ссылку как указатель на экземпляр объекта. Таким образом имя экземпляра придется передать один раз на всю визуализацию. Еще проще никак, это противоречит ООП.
Установки проекта - Визуализация - Доп. настройки - Активировать обработку свойств во всех свойствах элементов
https://help.codesys.com/webapp/_cds...rsion=3.5.10.0
Подскажите как использовать переходы. (может есть какой то пример).
Возможно ли использовать переходы на ST ? (есть же возможность добавлять Методы, Переходы и т.п. под POU, скорее всего возможно использовать и переходы.)
При создании Перехода - открывается пустое поле (не знаю как его заполнить)
Здравствуйте. Возникла ошибка при компиляции
[ERROR] Менеджер визуализации](Web-визуализация): Заданная стартовая конфигурация <Visualization1> не имеет экземпляров. Содержит ли она интерфейс?
Подскажите пожалуйста в какую сторону копать?
Добрый день, подскажите, возможно ли из программы FB (написанной на языке ST) в условии сделать переход на выполнении другой программы (внутри FB)
Пример:
IF (A=TRUE) THEN
B:=C;
ELSE
метка на другую часть кода внутри описания этого ФБ
Спасибо. Помогло.
Позвольте еще раз обратиться. Кажется ошибка ерундовая, но самостоятельно исправить пока не получается.
Где физически находится ошибка компилятор не показывает.
Если нужна доп. информация о проекте, то могу предоставить.
[ERROR] Visualization1 [Device: Plc Logic: Application]: C0007: Вместо ')' требуется выражение
Компиляция завершена -- 1 ошибок, 0 предупреждений
Спасибо. Помогло.
Позвольте обратиться еще раз.
Ошибка вроде ерундовая, но самостоятельно не устраняется. Компилятор не указывает на место ошибки.
если нужна доп. информация, то напишу.
[ERROR] Visualization1 [Device: Plc Logic: Application]: C0007: Вместо ')' требуется выражение
Подскажите, как изменить вид экрана области объявления переменных, с отображением VAR, END_VAR?Вложение 40445
Инструменты - Опции - Редактор объявления