Ну к примеру генерировать число от 20 до 23, например 21.5, 22, 20, 22.5, 22, 22.8, 21.9
Вид для печати
Здравствуйте !
Столкнулся с неумением пользоваться интернетом и поисковиками, так как не могу найти ответ на вопрос: есть ли в CoDeSys 3.5 переменная или что-то на неё похожее, которая сбрасывается в FALSE после прохождения первого цикла программы? Своего рода флаг сброса первого прохождения цикла MainTask. Необходима для инициализации функциональных блоков приводов.
И если её нет, то какие есть способы имитации или замены её при помощи конструкций? Как поймать момент перехода программы на следующий цикл выполнения?
Спасибо
Добрый день.
См. здесь:
https://www.owen.ru/forum/showthread...l=1#post304642
Добрый день.
Codesys 3.5 SP17 Patch 3
Есть необходимость сделать указатель на BOOL. Читая различные источники так и не понял допустимо ли это? В книге Сергея Романова написано, что "POINTER TO BOOL не работает и указатель должен ссылаться, как минимум, на BYTE". Но BOOL, как известно, по памяти занимает этот самый BYTE. Где то написано, что нельзя ссылаться на BIT, а про BOOL ничего не сказано.
Смысл этого вот в чем. Есть двумерный массив состояний дискретных входов модулей ввода вида aDiscreteInputs[<номер модуля>, <номер входа>] OF BOOL; Все элементы массива привязаны через соотнесение входов/выходов.
Есть типовые сигналы, которые из проекта в проект могут быть поданы на разные входы модулей. С выходами то же самое. Хочется иметь универсальный код, который легко адаптировать под проект щита по входам и выходам. В дальнейшем есть идея сделать их настраиваемыми в веб-визуализации (что то типа "Клапан открыт: Номер модуля А ___, Номер входа DI ___" и т.д.)
Пока пришло в голову такое:
PROGRAM PLC_PRG
VAR
pt_x_Opened: POINTER TO BOOL; //Клапан открыт
pt_x_Closed: POINTER TO BOOL; //Клапан закрыт
pt_x_ON: POINTER TO BOOL; //Открыть
pt_x_OFF: POINTER TO BOOL; //Закрыть
В самой программе при инициализации выполняем один раз:
pt_x_Opened := ADR(aDiscreteInputs[1,1]);
pt_x_Closed := ADR(aDiscreteInputs[1,2]);
pt_x_ON := ADR(aDiscreteOutputs[2,3]);
pt_x_OFF := ADR(aDiscreteOutputs[2,4]);
Ну а дальше оперировать уже сигналами через разыменовывание
IF pt_x_Opened^ THEN и т.д.
pt_x_OFF^ := TRUE; и т.д.
Это для примера. Сигналов на самом деле много, все они упакованы в структуры, а структуры в массивы.
Имеет ли такая реализация право на существование? Компилятор вроде не ругается пока.
Здравствуйте, подскажите как можно реализовать обрыв связи с слайв устройством, на языке FBD
Добрый день.
Вы имеете в виду диагностику обрыва связи?
См. здесь в п. 3.4 и 4.6:
https://ftp.owen.ru/CoDeSys3/11_Docu...odbus_v3.1.pdf
Возможно, поможет Application start.
Здравствуйте уважаемые коллеги. Знаете ли вы как прочитать эту переменную(Error Counter)?Вложение 69330
Добрый день. Прошу помощи с чтением показаний датчика на входе модуля 2AS без использования шаблонов, стандартными средствами конфигурирования. Контроллер СПК 107(М01). Пробую сделать по примеру из документа CDSv3.5_Modbus_v3.1, пока не получается разобраться. В примере используется модуль 8А, у него значение занимает 2 регистра. У 2АС - 1 регистр, насколько понимаю. Опрашиваю 0х0100, получаемые данные меняются, однако явно некорректно их обрабатываю. Нет ли где-то инструкции или примера на эту тему?
Прошивка модуля 1.08
UPD. Методом научного тыка выяснил, что в регистре 0х100 лежит значение входа в формате int, которое требуется разделить на 100. Это верно? Если нет, прошу подсказать, где прочитать на эту тему и как сделать корректно
0х108 - 0х109 - 1 канал
0х10В - 0х10С - 2 канал
Вложение 69362
Да, видел. Правильно Вас понимаю, что эти регистры следует прочитать в соответствии с рекомендациями в документе? Сейчас попробую...
Добрый день! Изучаю CoDeSys, для начала хотел повторить пример First step. Всё повторил, при компиляции проекта появляется запись "Не возможно открыть библиотеку CmpSysExec 1.0.0.2, не установлена в системе" Подскажите, пожалуйста, откуда можно её скачать и установить.
Добрый день.
https://ftp.owen.ru/CoDeSys3/04_Libr...mpiled-library
Но судя по вашему сообщению - вы начали изучать CODESYS на основе устаревших материалов.
Рекомендую актуальный "Первый старт" или созданный на его базе курс на платформе Stepik.
Здравствуйте, при установке вот такое сообщение. Что сделать?
Win 8.1
Спасибо! Буду пробовать.
Здравствуйте. Установил CodeSys 3.5.SP17, но полноценно пользоваться не могу. Не запускается виртуальный процессор, а без него сложно изучать программирование. ОС Windows 10. Скрин сообщения после команды старта прилагаю. Никакие переустановки пакета мне не помогли. После данного сообщения виртуальный процессор в "RUN" не переходит. То что пишется в самом сообщении из среды сделать нельзя - там неактивные эти пункты.
Я не понимаю - что "CODESys" нужно.
Здравствуйте, как работать с перечислениями (плк210) в случае добавления ПЧ AFD_L (состояние ПЧ, сообщение отказа)?
Есть видео?
Разобрался. Увидел подсказку на библиотеку Mx110Assistant.
Здравствуйте!
Вопрос простой, но сходу ответа не нашел.
Программирую ПЛК. ПЛК разные. Разные версии. Разные модели. Они требуют разные прошивки. Как это делать на одном ПК? Держать CodeSYS 3.5 SP14 и SP17? Как удобнее организовать своё рабочее место?
Кому как, лично мне через виртуальную машину(ны)
Продолжение...
Установил CodeSYS 3.5 SP14. Установил OwenArchiver_v3.5.4.9.package. Установил OwenTargets-3.5.14.30-10.package
Создаю проект для ПЛК200.03
Сразу ругается, что "Идентификатор DED.CAADiagDeviceDefault не задан."
Также в списке ошибок и про DED, и про DED.Inode...
В списке Менеджера библиотек загружена только Standard.
На библиотеках CAA Device Diagnoss и IoStandard - восклицательные знаки.
В добавить библиотеку не нашел их.
Какие библиотеки сразу скачать и установить?
Продолжение...
Установил CodeSYS 3.5 SP14. Установил OwenArchiver_v3.5.4.9.package. Установил OwenTargets-3.5.14.30-10.package
Создаю проект для ПЛК200.03
Сразу ругается, что "Идентификатор DED.CAADiagDeviceDefault не задан."
Также в списке ошибок и про DED, и про DED.Inode...
В списке Менеджера библиотек загружена только Standard.
На библиотеках CAA Device Diagnoss и IoStandard - восклицательные знаки.
В добавить библиотеку не нашел их.
Какие библиотеки сразу скачать и установить?
День добрый.
Подскажите пожалуйста, выполняет ли метод FB_Exit функционал деструктора для ФБ, т.е. будет ли он гарантированно выполняться при выходе объекта ФБ из области видимости?
Планирую организовать что-то вроде smart-pointer'ов из плюсов для минимизаций ошибок работы с выделенной памятью..
> в терминах CODESYS, как вы представляете "выход объекта ФБ из области видимости"
Если коротко -- то смутно. :-D
А так -- ну, например, объект объявлен в функции/методе, и по завершении функции/метода должен разрушиться?
Есть ли в природе описание этих самых областей видимости для объектов?