PDA

Просмотр полной версии : CODESYS V3.5. Вопросы и ответы



Страницы : 1 2 3 [4] 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

Евгений Кислов
27.03.2016, 17:13
Все сделал как Вы сказали, но ничего не изменилось. i и Vis принимают нужные значения, не сбиваются. А визуализации при переходе с "-" на "+" отображается 1-я 2-я 3-я затем когда нажимаю на минус вместо обратного счета отображается 4-я потом 3-я 2-я и тд.

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

Ладно, я внес в этот проект изменения, о которых говорил вам в предыдущих постах - надеюсь, это вам поможет разобраться.

Alex8
27.03.2016, 17:55
Евгений, в очередной раз спасибо, что ткнули носом. Я только сейчас до конца понял содержимое Ваших прошлых постов.

Andrew_Stranger
29.03.2016, 15:35
Добрый день. Создал диалог для управления насосом. В результате при нажатии на кнопку Пуск программа уходит в ошибку-исключение.
23481
Причем проблема появилась при добавлении R-триггера.

Евгений Кислов
30.03.2016, 07:57
Добрый день. Создал диалог для управления насосом. В результате при нажатии на кнопку Пуск программа уходит в ошибку-исключение.
23481
Причем проблема появилась при добавлении R-триггера.

Не смог воспроизвести проблему. Можно попросить вас создать новый проект, в котором она проявляется? Какая версия CODESYS используется?

ntro123
30.03.2016, 09:56
Товарищи, написал код, и забыл поставить p:=p^.next, в результате бесконечный цикл получился, и кодесус с плк его не распознают, и ПЛК как кирпич лежит, как мне его сбросить? перепрошивать не хочется, пускает в putty, но очень медленно. Батарейка на корпусе ресетнит только время?

Николаев Андрей
30.03.2016, 10:15
Отключите питание, подождите 30 секунд, нажмите и держите кнопку стоп, и включите питание.

Anton441
30.03.2016, 10:19
Визуализация. В свойствах кнопки отсутствует функция OnMouseClick и многие другие. В чём дело? См. скриншот.
23503

Евгений Кислов
30.03.2016, 10:20
Визуализация. В свойствах кнопки отсутствует функция OnMouseClick и многие другие. В чём дело? См. скриншот.
23503

Поставьте галочку Эксперт (вверху панели свойств).

ntro123
30.03.2016, 10:48
Отключите питание, подождите 30 секунд, нажмите и держите кнопку стоп, и включите питание.

Извиняюсь, забыл сказать, ПЛК323, тут нету кнопки стоп.

Andrew_Stranger
30.03.2016, 12:19
Не смог воспроизвести проблему. Можно попросить вас создать новый проект, в котором она проявляется? Какая версия CODESYS используется?
Набросал проект, CS3.5 SP5
23506

Евгений Кислов
30.03.2016, 13:40
Набросал проект, CS3.5 SP5
23506

Спасибо, проблему увидел. Я отпишусь после того, как станут понятны ее причины.

selinka
30.03.2016, 22:38
Допустим, есть модуль дискретного вывода, подключенный по RS-485 к СПК207 (реального контроллера подключенного к ПК нет). Как в CS привязать переменные типа boolean к выходам модуля вывода? Программирую на CFC. Если нетрудно, то подскажите еще и про дискретный ввод.

Евгений Кислов
31.03.2016, 07:22
Допустим, есть модуль дискретного вывода, подключенный по RS-485 к СПК207 (реального контроллера подключенного к ПК нет). Как в CS привязать переменные типа boolean к выходам модуля вывода? Программирую на CFC. Если нетрудно, то подскажите еще и про дискретный ввод.

Если речь о модулях Mx, то самый простой способ - использовать шаблоны модулей:
http://www.owen.ru/forum/showthread.php?t=21365

Если речь о модулях других производителей, тогда нужно использовать конфигуратор CODESYS или библиотеки. Настройка Modbus через конфигуратор описана в СПК.FAQ, п. 11.4.

ntro123
03.04.2016, 11:57
Можно ли внутри самого ФБ получить имя этого ФБ? не экземпляра, а самого ФБ.
Т.к. сейчас приходиться в каждом ФБ делать константу в которую записываю имя данного ФБ, чувствую костыль.
Есть другие варианты/решения?

selinka
03.04.2016, 16:39
Здравствуйте. Есть таблица (массив данных) как в нём указать точность вывода значений. Знаю есть %s, %f, но это для текстового поля. А как в массиве?

Евгений Кислов
03.04.2016, 16:55
Здравствуйте. Есть таблица (массив данных) как в нём указать точность вывода значений. Знаю есть %s, %f, но это для текстового поля. А как в массиве?

Точно также - в настройках каждого из столбцов нажмите галочку Использовать шаблон и выберите нужный спецификатор вывода.

23589

Евгений Кислов
03.04.2016, 17:03
Можно ли внутри самого ФБ получить имя этого ФБ? не экземпляра, а самого ФБ.
Т.к. сейчас приходиться в каждом ФБ делать константу в которую записываю имя данного ФБ, чувствую костыль.
Есть другие варианты/решения?

Ну, вот другое решение с использованием уличной магии. Но по-моему вариант с константой получше будет.

23593

23594

23595

Andrew_Stranger
03.04.2016, 20:57
Спасибо, проблему увидел. Я отпишусь после того, как станут понятны ее причины.
Евгений пока никаких мыслей нет?

Евгений Кислов
03.04.2016, 20:59
Евгений пока никаких мыслей нет?

Стало ясно, что вызов любого ФБ, объявленного в интерфейсе диалога, приводит к exception. Отправили запрос в 3S по этому поводу.

Andrew_Stranger
03.04.2016, 21:11
Тогда все ясно. Спасибо.

ntro123
04.04.2016, 16:19
Не подскажите, в codesys есть бибка для работы с регулярными выражениями?

selinka
05.04.2016, 21:53
А поддерживается ли написание русских слов? А то вместо A:='Привет'; выдаются символы. Вроде кодировки все стоят или чисто программно никак?

dkapotov
06.04.2016, 01:29
Добрый вечер.
Не поможете разобраться почему не работают кнопки движения ВВЕРХ-ВНИЗ в визуализации (экран Plisse24 - стрелки), вернее они сначала работали, потом перестали. Делал очистку-перекомпиляцию, без толку. Никак не пойму в чем причина.

Евгений Кислов
06.04.2016, 05:46
А поддерживается ли написание русских слов? А то вместо A:='Привет'; выдаются символы. Вроде кодировки все стоят или чисто программно никак?

Используйте тип WSTRING. Обратите внимание, что с ним используются другие кавычки (двойные).



wsVar:WSTRING;

wsVar:="Превед медвед";



В Менеджере визуализации должна стоять галочка Использовать строки Unicode.

Евгений Кислов
06.04.2016, 07:40
Добрый вечер.
Не поможете разобраться почему не работают кнопки движения ВВЕРХ-ВНИЗ в визуализации (экран Plisse24 - стрелки), вернее они сначала работали, потом перестали. Делал очистку-перекомпиляцию, без толку. Никак не пойму в чем причина.

У вас действительно интересная ситуация. Причину ее пояснить не могу - но когда я скопировал кнопки, то копии стали работать нормально (при наведении на них курсор меняет форму).

Лузин Владимир
07.04.2016, 12:34
Здравствуйте,
Осваиваю ПЛК323. С ПЛК73,100,110,150 работаю больше 5лет (в основном с локальными задачами чтение данных из приборов , визуализация на НMI, СМС оповещение) . С Веб-визуализацией сталкиваюсь впервые.
Создал простой проект с визуализацией, загрузил в ПЛК.
Программа работает, из Содесис вижу работу визуализации.
Не удается подключиться к Web-визуализации. Согласно инструкции, в Опере набираю строку http://192.168.1.252:8080/webvizu.htm
в ответ получаю:Access Error: Page not found Cannot start page for URL
Как посмотреть наличие файла на ПЛК?
Страница настроек ПЛК в браузере открывается.
Информация по ПЛК: OWEN PLC323.03-CS.WEB Версия: 3.5.0.40 Номер модели: 005 CoDeSys V3.5 SP3 Path 2

Евгений Кислов
07.04.2016, 12:39
webvisu.htm по умолчанию. Или вы специально изменили s на z в настройках веб-визуализации?

Лузин Владимир
07.04.2016, 12:47
Добавляю свой проект:

Лузин Владимир
07.04.2016, 12:53
Действительно, элементарная невнимательность.
Страничка открылась.

Лузин Владимир
07.04.2016, 14:15
Спасибо за поддержку.
Действительно, элементарная невнимательность.
Страничка открылась.:(

ntro123
10.04.2016, 18:27
Работал как обычно, ничего такого не делал, открывал проекты в разных окнах, и тут на тебе:
23784
Перезагружал комп, не помогло. Что делать? codesys 3.5 SP5 path 5.

A так если нажать "нет", вроде все без изменений работает.

UPD: пришлось переустановить, все норм.

Andrew_Stranger
13.04.2016, 21:59
Пытаюсь отобразить переменную формата Time на экране, используя спецификатор %t[hh:mm:ss], в итоге показывает системное время. Что не так сделал?

Евгений Кислов
14.04.2016, 05:48
Пытаюсь отобразить переменную формата Time на экране, используя спецификатор %t[hh:mm:ss], в итоге показывает системное время. Что не так сделал?

Это наблюдалось в старых версиях CODESYS. Начиная с SP6, я такого не видел.

Alex8
14.04.2016, 22:36
Евгений, здравствуйте. Подскажите пожалуйста, как поставить рисунок jpg. на заставку СПК105. Чтобы при включении отображалась заставка, а после касания отображалась картинка визуализации.

dkapotov
14.04.2016, 22:55
Создаете пул изображений, помещаете в него свой файл рисунка. Создаете экран визуализации, вставляете на него изображение. Этот экран делаете экраном по умолчанию в target-визуализации. К рисунку привязываете действие OnMouseClick - Сменить экран визуализации и указываете экран с визуализацией на которую должен осуществляться переход от заставки. При запуске будет показываться экран заставки, при касании рисунка - переход на рабочий экран визуализации

Alex8
14.04.2016, 23:24
Спасибо, попробую.

ntro123
15.04.2016, 21:56
Помогите, заливаю проект 195 КБ (ПЛК323 codesys 3.5 SP5 PATH5):
23914

И вот результат, если удалить одно из заданий (без разницы какое, примерно одинаковое кол-во памяти освободят), то проект после перезапуска ПЛК323 зальется.

Я так понимаю 195 КБ это очень много для плк323? Подскажите как быть.

Мне понадобиться минимум 1МБ памяти, а тут и 200+кб не залить ...


Объем энергонезависимой 16 МБ (NOR Flash)

Или из 16 МБ 90% занимает OS и прочее? Может можно как-то таргет файл поковырять ...

Очень прошу помочь! вся работа встала ...

PS проект не хотелось бы давать ... хотел бы решить вопрос общими советами

Вот лог компиляции:
23915

ntro123
16.04.2016, 12:00
Может быть. Выдает мне то "ошибка сети", то "не достаточно памяти" (чаше всего ошибку сети ), сейчас проект который заливаю весит около 195КБ, совсем другой проект где всего 2 задания, весит около 240КБ и и заливается, если сделать его больше, то уже будет выдавать "не достаточно памяти" или "ошибка сети", но чаще "не достаточно памяти". В общем я не знаю что делать ... может дело в глобальных данных?

UPD:
Редактировал задачи, (поставил везде цикл 200ms) толку 0, все равно ошибку сети выдает.
Я так понял таймауты задач выставить?

Подскажите как быть, можно ли как-то увеличить кол-во памяти?

ntro123
17.04.2016, 00:30
Вообщем дело точно не в таймерах и в не коде. Оставил из задча только PLC_PRG.
Остальные в него засунул:

init_all();
timer_for_check_all();
save_log_error();

Если закомментировать 2 любые из них, то все заливается, если все 3 открыть, то заливает только на через 5-10 раз (каждый раз перезапуская ПЛК). Все остальные разы "Ошибка сети: соединение не установлено или закрыто".

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

UPD:
Дело в двух ФБ которые работаю с SD картой в ПЛК: log_err и log_msg завтра буду разбираться. Но чувствую с проблемой не хватки памяти я скоро столкнусь.

ntro123
17.04.2016, 12:10
Нет, почему, именно цикл 200, 23932 и все верно, это именно цикл (причем мой рабочий 180ms т.к. данные со счетчиков при 9600 поступают примерно с этим таймаутом, иначе мой ФБ чтения данных со счетчиков постоянно выдавал ошибки), а вот вы говорите про это (если я все верно понял): 23933

НО ошибка уже 99% в том что есть 2 ФБ log_err и log_msg и если их просто в пустой задаче вместе определить, то почему-то проект не заливается, что очень странно.

UPD:
Только что компилил и заливал проект с этими двумя ФБ, все норм, вчера вечером делала все тоже самое, выдавал ошибку, пока один из этих ФБ не закомментить. Что за бред происходит, ПЛК через раз заливает. То у него ошибка в одном, то в другом ...

ntro123
17.04.2016, 14:58
Подскажите пожалуйста, если упал процесс в самом плк после моего залития проекта, то плк работает, его цеплят и веб интерфейс и putty, как через putty перезапустить сам процесс/демон/службу чтобы мне из розетки не пришлось каждый раз ПЛК дергать? (вариант с командой reboot самого ПЛК не подойдет)

ntro123
17.04.2016, 16:12
Скорее всего нашел ошибку. Дело в том что у меня есть много ФБ которые использую ФБ для чтения файла с SD карты, я сделал ему размер буфера 1 МБ, и его использует куева туча других ФБ, т.е. каждый экземпляр ФБ забирает по мегабайту памяти =)

Решение: создать 1 ФБ для чтения записи (пред вызовом делать reset() где будет step:=0) поместить его в пул глобальных переменных. Это не всегда возможно сделать для всех ФБ, но в данном случае возможно (т.к. одновременно с SD будет работать только 1 ФБ).

Вроде помогло, надеюсь именно в этом ошибка. capzap за помощь!

PS а еще лучше динамически выделять память =)

Andrew_Stranger
18.04.2016, 11:58
Добрый день. Столкнулся со следующей проблемой. Пытаюсь из диалога переключать кнопкой переменные типа true(false), но они фиксируется постоянно в состоянии true. Фиксация мне не нужна, что делать?
23943

Евгений Кислов
18.04.2016, 12:07
Добрый день. Столкнулся со следующей проблемой. Пытаюсь из диалога переключать кнопкой переменные типа true(false), но они фиксируется постоянно в состоянии true. Фиксация мне не нужна, что делать?
23943

Выложите архив проекта, пожалуйста.

Сходу можно заметить, что для переключения нужно использовать toggle, tap - это нажатие (т.е. переменная будет в TRUE, пока кнопка будет нажата).

Andrew_Stranger
18.04.2016, 12:26
Мне надо именно нажатие согласно п.8.1 стр 150 вашего руководства. Отправил архив.

Евгений Кислов
18.04.2016, 12:43
Мне надо именно нажатие согласно п.8.1 стр 150 вашего руководства. Отправил архив.

Извините, можно тогда как-то подробнее описать задачу?

А то я пока вижу это так: по нажатию кнопки переменная взводится в TRUE, после отпускания она сбрасывается FALSE и сразу после этого диалог закрывается - т.е. программа никогда не узнает, что там в диалоге произошло.

Andrew_Stranger
18.04.2016, 12:52
Задача состоит в управлении насосами, то есть подаем сигналы пуск стоп на rs триггер и он далее включает выключает.

Евгений Кислов
18.04.2016, 13:21
Задача состоит в управлении насосами, то есть подаем сигналы пуск стоп на rs триггер и он далее включает выключает.

Посмотрел проект.

Как я понимаю, происходит следующее: по нажатию переменная взводится в TRUE, практически одновременно с этим диалог закрывается, при этом в переменную программы попадает это TRUE, после этого диалог уже не обрабатывается и "отпускать" по сути уже нечего, поэтому переменная зависает в этом TRUE. В принципе, с алгоритмической точки зрения это выглядит легитимно.

Могу только порекомендовать скидывать переменную из программы.

Andrew_Stranger
18.04.2016, 15:54
Спасибо. Удивляют такие сложности на пустом месте.

Пётр_
20.04.2016, 14:10
Прошу помочь с такой проблемой: CodeSys v3.5 SP5
Как только я добавляю к Modbus_COM устройство Modbus_Master_COM_Port и выполняю компиляцию (даже без Slave-устройств),
всегда вылезает ошибка: "C0040: Для функции 'FindNextActiveChannel' требуется ровно '0' входов". Из-за этого не загружается эмуляция.
Моя задача подключить к СПК-105 входа/выхода МВ110-8А и МВ110-16Д.
Благодарю за любую помощь!
24003

Евгений Кислов
20.04.2016, 15:08
Прошу помочь с такой проблемой: CodeSys v3.5 SP5
Как только я добавляю к Modbus_COM устройство Modbus_Master_COM_Port и выполняю компиляцию (даже без Slave-устройств),
всегда вылезает ошибка: "C0040: Для функции 'FindNextActiveChannel' требуется ровно '0' входов". Из-за этого не загружается эмуляция.
Моя задача подключить к СПК-105 входа/выхода МВ110-8А и МВ110-16Д.
Благодарю за любую помощь!
24003

Правой кнопкой на Modbus Master, команда Обновить устройство - выбрать версию 3.5.5.0.

Пётр_
20.04.2016, 15:18
Правой кнопкой на Modbus Master, команда Обновить устройство - выбрать версию 3.5.5.0.
Но доступно только одно устройство 3.5.7.0 !
24005

Евгений Кислов
20.04.2016, 15:21
Но доступно только одно устройство 3.5.7.0 !
24005

Вам требуется установить CODESYS 3.5 SP5 Patch5 (доступен на сайте) и архив репозитория (ссылка в моей подписи).

Пётр_
20.04.2016, 16:11
И то и другое у меня как раз и установлено. Может быть дело в том, что первоначально я установил CodeSys v3.5 SP7 Patch4?

Евгений Кислов
20.04.2016, 17:44
И то и другое у меня как раз и установлено. Может быть дело в том, что первоначально я установил CodeSys v3.5 SP7 Patch4?

Вам надо в CODESYS 3.5 SP5 Patch5 включить профессиональный режим настроек (см. CПК. FAQ, п. 8.2), после чего в диалоге выбора версии компонента появится чекбокс Отображать все версии. Нужно поставить в нем галочку.

24012

Пётр_
20.04.2016, 17:56
Клёво!!! Всё получилось! Огромное спасибо!!!

nsarychev
21.04.2016, 12:44
Комрады! К предидущему вопросу возвращаюсь! Не могу изменить заданные наборы свойств, т.е. не могу заменить режим "СТАНДАРТНЫЙ" на "ПРОФЕССИОНАЛЬНЫЙ". Изменение не сохраняется.

Евгений Кислов
21.04.2016, 13:11
Комрады! К предидущему вопросу возвращаюсь! Не могу изменить заданные наборы свойств, т.е. не могу заменить режим "СТАНДАРТНЫЙ" на "ПРОФЕССИОНАЛЬНЫЙ". Изменение не сохраняется.

Изменение сохраняется, просто по дефолту всегда предлагается выбрать стандартный режим. Т.е. когда вы нажимаете на кнопку Заданные наборы свойств, отображается не текущий режим настроек, а тот, который вам предлагают.

Чтобы точно удостовериться, сделайте следующее. Выберите стандартный режим. Посмотрите, какие галочки сняты. Выберите профессиональный, и убедитесь, что таких галочек станет в разы меньше.

nsarychev
21.04.2016, 13:34
Ну что! Нет идей? Я перезапускал codesys, я ее переустанавливал. Ничего не помагает.

Евгений Кислов
21.04.2016, 13:38
Ну что! Нет идей? Я перезапускал codesys, я ее переустанавливал. Ничего не помагает.

Все идеи в посте выше.

Ориентируйтесь на эти галочки - если они стоят (автоматически выставились т.е.), то вы в профессиональном режиме.

24033

nsarychev
21.04.2016, 13:41
Изменение сохраняется, просто по дефолту всегда предлагается выбрать стандартный режим. Т.е. когда вы нажимаете на кнопку Заданные наборы свойств, отображается не текущий режим настроек, а тот, который вам предлагают.

Чтобы точно удостовериться, сделайте следующее. Выберите стандартный режим. Посмотрите, какие галочки сняты. Выберите профессиональный, и убедитесь, что таких галочек станет в разы меньше.

Я не могу выбрать драйвер модбаса. В списке только версия 3.5.4, хотя в репозитории устройств есть другие драйвера.

Евгений Кислов
21.04.2016, 13:43
Я не могу выбрать драйвер модбаса. В списке только версия 3.5.4, хотя в репозитории устройств есть другие драйвера.

Вот эта галочка стоит?

24034

Если да, то выкладывайте скриншот окна выбора драйвера.

Пляжник
21.04.2016, 17:36
Всем доброго.
Прошу помочь с проблемой: подключить СПК110 через АС3М к ПЛК 160.
ПЛК в слейве, адрес "1", скорость 9600, параметры сети одинаковые на обоих устройствах.
ПЛК подключён к "RS-232", не Debug.
Сопротивление на АС3М не установлено (может, и правда поставить?)
На СПК второй порт подключился нормально, без проблем (устройство ТРМ-200)

Евгений Кислов
21.04.2016, 17:54
Всем доброго.
Прошу помочь с проблемой: подключить СПК110 через АС3М к ПЛК 160.
ПЛК в слейве, адрес "1", скорость 9600, параметры сети одинаковые на обоих устройствах.
ПЛК подключён к "RS-232", не Debug
Сопротивление на АС3М не установлено (может, и правда поставить?)
На СПК второй порт подключился нормально, без проблем (устройство ТРМ-200)

Возможно, в конфигураторе СПК выбран режим порта RS-232?

Проблемы возникают только при использовании АС3-М? Т.е. если подключить ТРМ к первому порту, то проблем не возникает?

Пляжник
21.04.2016, 18:00
Возможно, в конфигураторе СПК выбран режим порта RS-232?

Проблемы возникают только при использовании АС3-М? Т.е. если подключить ТРМ к первому порту, то проблем не возникает?

В СПК проверял- оба порта 485, но проверю еще раз
Я об этом думал, но не пробовал. Проверю.
Сопротивление нужно ставить или без него должно работать?

Евгений Кислов
21.04.2016, 18:38
В СПК проверял- оба порта 485, но проверю еще раз
Я об этом думал, но не пробовал. Проверю.
Сопротивление нужно ставить или без него должно работать?

Не могу прокомментировать этот вопрос. Уточните, пожалуйста, у техподдержки.
http://www.owen.ru/82329884

ntro123
23.04.2016, 00:48
Товарищи, ПЛК323 перестал видеть SD карту (до этого все норм было) теперь в папке "/mnt/ufs/media" нету папки "mmcblk0p1" (юзаю WinSCP). Как быть? перезапуск не помогает. Сброс проекта тоже. Как быть? (пожалуйста, не отправляйте перепрошивать)

PS комп SD видит, полностью в FAT32 форматировал, не помогло.

ntro123
23.04.2016, 10:41
Никаких изменений нету в логах (включил с SD картой, затем выкл. вытащил SD и включил), лог фай прилагаю.

ntro123
23.04.2016, 13:21
Перепрошивка помогла. Спасибо за помощь

laskind
25.04.2016, 10:08
подскажите как организовать задержку на языке ST
при нажатии конпки должна выполняться подача команды
команда по модбас рту, типа rising edge
те нужно послать на булеву переменную тру, потом взвести тригер для исполнения в тру , сделать задержку и передать триггеру фалс

Евгений Кислов
25.04.2016, 10:14
подскажите как организовать задержку на языке ST
при нажатии конпки должна выполняться подача команды
команда по модбас рту, типа rising edge
те нужно послать на булеву переменную тру, потом взвести тригер для исполнения в тру , сделать задержку и передать триггеру фалс

Есть уверенность, что это необходимо делать? Потому что для rising edge нужен только фронт триггера, необязательно держать его в TRUE до получения ответа. Можно воспользовать ФБ R_TRIG для этого. Но если все-таки по каким-то причинам необходима именно задержка, посмотрите ФБ TON. Оба блока входят в библиотеку Standard.

laskind
25.04.2016, 10:43
возможно вы правы, а где почитать ? как вызывать и описывать r_trig

Евгений Кислов
25.04.2016, 11:05
возможно вы правы, а где почитать ? как вызывать и описывать r_trig

Почитать можно либо прямо в библиотеке Standard (она всегда присутствует в Менеджере библиотек), либо в справке CODESYS (вызывается по F1).

laskind
25.04.2016, 11:59
сделал как там описано

RTRIGInst : R_TRIG ;

RTRIGInst(CLK:= VarBOOL1);

VarBOOL2 := RTRIGInst.Q;
при компиляции пишет что
------ Компиляция : Приложение: Device.Application -------
типизировать код...


[ERROR] ___ _____8: page1 [Device: Plc Logic: Application](Вход элемента ID 233): C0080: Функциональный блок 'R_TRIG' должен иметь экземпляр

как описать экземпляр ?

Евгений Кислов
25.04.2016, 12:00
сделал как там описано

RTRIGInst : R_TRIG ;

RTRIGInst(CLK:= VarBOOL1);

VarBOOL2 := RTRIGInst.Q;
при компиляции пишет что
------ Компиляция : Приложение: Device.Application -------
типизировать код...


[ERROR] ___ _____8: page1 [Device: Plc Logic: Application](Вход элемента ID 233): C0080: Функциональный блок 'R_TRIG' должен иметь экземпляр

как описать экземпляр ?

RTRIGInst : R_TRIG ; - это и есть объявление экземпляра. Должно находиться в области объявления переменных, а не в коде программы.

laskind
25.04.2016, 12:15
я пробовал объявлять так
VAR
RTRIGInst:R_TRIG
END_VAR
RTRIGInst(CLK:= VarBOOL1);

VarBOOL2 := RTRIGInst.Q;

пишет что обнаружен недопустимый символ var24155


может это потому программа вызывается с кнопки ?

Евгений Кислов
25.04.2016, 12:18
я пробовал объявлять так
VAR
RTRIGInst:R_TRIG
END_VAR
RTRIGInst(CLK:= VarBOOL1);

VarBOOL2 := RTRIGInst.Q;

пишет что обнаружен недопустимый символ var24155


может это потому программа вызывается с кнопки ?

Да, триггер должен быть объявлен в программе (или глобальных переменных), а на кнопке должен находиться только ST-код.

laskind
25.04.2016, 14:22
Объявил глобально
на кнопке такой код
bit69:=True; (посылка команды включения)
RTRIGInst(CLK:= bit69); (если тру то
trig1 := RTRIGInst.Q; взвести триггер
ошибок нет
привязка переменных на картинке24163
но выключатель не срабатывает,я все правильно сделал ?

Евгений Кислов
25.04.2016, 14:28
Объявил глобально
на кнопке такой код
bit69:=True; (посылка команды включения)
RTRIGInst(CLK:= bit69); (если тру то
trig1 := RTRIGInst.Q; взвести триггер
ошибок нет
привязка переменных на картинке24163
но выключатель не срабатывает,я все правильно сделал ?

Прочитайте, пожалуйста, личные сообщения (вверху страницы вкладка "Уведомления").

laskind
25.04.2016, 15:57
Спасибо, с привязкой на нажатие кнопки и отпусканием работает, стабильно, независимо от времени нажатия. На мгновенный клик тоже срабатывает. Поэтому вариант с r_trig и ton пробовать не буду. Сейчас буду реализовывать посылку через универсальный диалог и отображение состояния выключателя в HMI, на 2 значения положений отображать то или иное состояние (включен, отключен, промежуточное, неисправность).

Эдуард_Н
04.05.2016, 04:48
Всё-таки не хорошо, что в редакторе визуализаций в управлении масштабированием, есть пункт 75%, а в редакторе PLC_PRG только 100 и 50 процентов.

Евгений Кислов
04.05.2016, 09:03
Всё-таки не хорошо, что в редакторе визуализаций в управлении масштабированием, есть пункт 75%, а в редакторе PLC_PRG только 100 и 50 процентов.

Сtrl+скроллом же можно с шагом в 10% менять - довольно удобно, по-моему. Если нет мыши, то там в окне выбора помимо заданных значений масштаба можно задать произвольное.

ntro123
05.05.2016, 00:17
Товарищи, подскажите, сколько вольт идет на sim900 в ПЛК323 при gsm_power:=TRUE ???
Очень важно, т.к. перепрошиваю sim900 (т.е. он совсем урезаный функционал).

UPD: все переполошилось удачно, проблема мыла в другом. Извините за оффтоп.

RV9WFJ
05.05.2016, 15:30
Евгений, а нет примера связи СПК207 и ПЛК110 М02 через Сетевые переменные (UDP). Из ПЛК110 в СПК207 уже реализовал передачу, а вот в обратную сторону пока не идет. Раньше все время ModBus TCP использовал, а тут по проекту большие объемы данных гонять надо постоянно плюс структура до конца не устаканилась. Решил попробовать. За одно может поделитесь информацией о надежности такой связи. Пока наблюдаю пропадание связи CoDeSys 2.3 и ПЛК110 М02 при появлении в сети СПК207 который читает/передает по UDP.

P.S. Прием и передачу делаю как положено через разные группы и разные ID.
P.S. Реализация такой связки могла бы быть интересна тем кто СПК207 как панель использует, если такие есть :-)

Евгений Кислов
05.05.2016, 15:37
Евгений, а нет примера связи СПК207 и ПЛК110 М02 через Сетевые переменные (UDP). Из ПЛК110 в СПК207 уже реализовал передачу, а вот в обратную сторону пока не идет. Раньше все время ModBus TCP использовал, а тут по проекту большие объемы данных гонять надо постоянно плюс структура до конца не устаканилась. Решил попробовать. За одно может поделитесь информацией о надежности такой связи. Пока наблюдаю пропадание связи CoDeSys 2.3 и ПЛК110 М02 при появлении в сети СПК207 который читает/передает по UDP.

P.S. Прием и передачу делаю как положено через разные группы и разные ID.

Такого примера в данный момент нет, но его создание запланировано в рамках большого документа, посвященного связи СПК с верхним уровнем. По поводу надежности - UDP изначально проигрывает TCP в этом плане по ряду причин (https://ru.wikipedia.org/wiki/UDP#.D0.A1.D1.80.D0.B0.D0.B2.D0.BD.D0.B5.D0.BD.D0. B8.D0.B5_UDP_.D0.B8_TCP). Пропадание связи с CoDeSys, вероятно, связано с тем, что в обоих случаях используется Gateway.

RV9WFJ
05.05.2016, 15:48
Про преимущества TCP я знаю, но у меня выделенная сеть (кабель) между контроллерами, поэтому пренебрег. Касательно одного порта и на CoDeSys и на связь я подумал, но в CS3 такой проблемы нет, что смутило. Вероятно они несколько портов используют.

ntro123
09.05.2016, 02:12
Codesys 3.5 каким-то чудесным образом повредил основной проект (записал туда все 0), и разумеется не открывает, остались данные вида
1) "alpha.Device.Application.b546c92a-1243-43dd-bae8-5b9575d60962.bootinfo" (в этом файле просматриваются мои данные, константы и тп) в папке с проектом, можно ли из них как-то восстановить проект?
2) проект есть в самом ПЛК323 можно ли как-то оттуда его достать?

Евгений Кислов
09.05.2016, 09:21
Codesys 3.5 каким-то чудесным образом повредил основной проект (записал туда все 0), и разумеется не открывает, остались данные вида
1) "alpha.Device.Application.b546c92a-1243-43dd-bae8-5b9575d60962.bootinfo" (в этом файле просматриваются мои данные, константы и тп) в папке с проектом, можно ли из них как-то восстановить проект?
2) проект есть в самом ПЛК323 можно ли как-то оттуда его достать?

1. Нет
2. Только если была произведена операция Загрузка исходного кода.

ntro123
09.05.2016, 12:33
К сожалению нет, ладно я делал бэкапы, там небольшой откат получился.

Теперь другая проблема, я переустановил codesys, полностью (в т.ч. удалил все файлы codesys в program file AppData и тп), поставил заново codesys двух версий, 3sp5path5 и 3sp4path5, поставил таргет файл на плк323, поставил репозиторий Repository_OWEN_SPK_3.5.4.20.package (выбрал первый пункт "установить полностью"), в итоге не видит половину стандартны библиотек и вот овенвскую бибку:

24364

24365

Подскажите откуда взять эти бибки? или что не так делаю?

Евгений Кислов
09.05.2016, 13:03
К сожалению нет, ладно я делал бэкапы, там небольшой откат получился.

Теперь другая проблема, я переустановил codesys, полностью (в т.ч. удалил все файлы codesys в program file AppData и тп), поставил заново codesys двух версий, 3sp5path5 и 3sp4path5, поставил таргет файл на плк323, поставил репозиторий Repository_OWEN_SPK_3.5.4.20.package (выбрал первый пункт "установить полностью"), в итоге не видит половину стандартны библиотек и вот овенвскую бибку:

24364

24365

Подскажите откуда взять эти бибки? или что не так делаю?

1. SysExecute входит в пакет библиотек Овен:
http://www.owen.ru/catalog/codesys_v3/80224381

2. Serial Communication 3.5.7.0 входит в CODESYS 3.5 SP7. Еще можно попробовать нажать кнопку Download Missing Libraries.

3. Про библиотеку от ООО 10 Киловольт я не в курсе.

ntro123
09.05.2016, 13:10
Спасибо, donwload missing был спрятан, нашел, помогло.

arsenius
11.05.2016, 09:55
Доброго времени суток!
Панельный контроллер СПК207. Возможно в программе контроллера получить ID активного окна? Нужно для опроса некоторых датчиков по открытию соответствующего окна, чтобы не перегружать сеть.
Спасибо!

Евгений Кислов
11.05.2016, 10:00
Доброго времени суток!
Панельный контроллер СПК207. Возможно в программе контроллера получить ID активного окна? Нужно для опроса некоторых датчиков по открытию соответствующего окна, чтобы не перегружать сеть.
Спасибо!

Простых способов нет. Лучше активировать триггер при нажатии кнопки открытия окна, и по его фронту начинать опрос.

arsenius
11.05.2016, 10:18
Ясно. Спасибо.

maratin
11.05.2016, 14:37
Дорабатываю проект для СПК107. Столкнулся с ограничением Retain-памяти в 4 кб.
Можно ли расширить Retain-память с помощью USB/SD карты или встроенной Flash-памяти СПК?
Если нет, то с помощью каких библиотек можно записывать данные на накопитель с последующим чтением из СПК?
Задача - сохранять в энергонезависимой памяти различные произвольные данные (простые типы и массивы) для последующего использования из самой программы.
Переход на СПК207 невозможен по финансовым причинам.

arsenius
13.05.2016, 15:27
Можно ли настроить СПК на возвращение в окно по умолчанию при отсутствии нажатий на сенсор. И можно ли управлять переключением окон из программы контроллера. Спасибо.

Евгений Кислов
13.05.2016, 15:35
Можно ли настроить СПК на возвращение в окно по умолчанию при отсутствии нажатий на сенсор. И можно ли управлять переключением окон из программы контроллера. Спасибо.

1. Да, можно. Считывайте координаты курсора с помощью библиотеки SysTargetVisu23, и если они не изменяются в течение заданного времени, переключайте окно. Пример работы с библиотекой (правда, в несколько ином контексте) есть в документе СПК. Визуализация, п. 11.4.3.
2. В случае СПК1xx/СПК2xx без WEB это решается использованием системной переменной CurrentVisu. У СПК2xx с web-визуализацией может быть много клиентов, и задача усложняется. Для начала ознакомьтесь с п. 11.3.3 и 11.4.4 документа СПК. Визуализация.

ntro123
15.05.2016, 17:57
Можно ли подключить codesys 3.5 к ПЛК323 через его встроенный GSM модем, зная его ip?

ПЛК323 на объекте выходит в сеть через встроенный модем, передает мне свой IP и по нему я хочу через codesys зайти в плк.
Что нужно настроить для этого в самом codesys и плк?

ntro123
15.05.2016, 19:38
Удаленную связь в codesys v3.5 настроить можно. Заходим в проекте в Device-> в установки связи ->устройство -> Управлять любыми устройствами ->добавляем ip адрес ПЛК ставим режим присвоения автомат. Пробрасываем на роуторе если нужно порт 11740 по нему и идет связь, далее все как обычно.

Не получается, пишет мол никакое устройство не выходит на связь, я сделал все как вы сказали, проинициализировал gsm модем в ПЛК323, он прислал свой ip,

вот что получилось:
24466

Пытался также поставить другой getwey (т.е. ip роутера 192.168.0.1, но какой порт ставить? тоже 11740?)

В самом настроил чтобы все TCP/UDP порта 11740 шли на мой локальный комп (192.168.0.33). Выглядит это вот так:
24467

UPD:

Также не пингуется почему-то ПЛК модем:
24468

Стоит самая обычная билайновская симка, без статичного ip.

ntro123
15.05.2016, 20:07
По какой причине? Билайн входящие подключения блочит на симках с динам. ip?

nsarychev
22.05.2016, 12:17
Доброго времени суток Комрады! Я пытаюсь написать программу в codesys 3.5
Подскажите какой функциональный блок применить(CFC), чтобы
присвоить значение:

к примеру: если X=1 то Y=255
если X=2 то Y=600
если X=3 то Y=2590

Евгений Кислов
22.05.2016, 12:20
Доброго времени суток Комрады! Я пытаюсь написать программу в codesys 3.5
Подскажите какой функциональный блок применить(CFC), чтобы
присвоить значение:

к примеру: если X=1 то Y=255
если X=2 то Y=600
если X=3 то Y=2590

Оператор MUX.

nsarychev
23.05.2016, 10:31
Оператор MUX.
Спасибо за ответ. Все получилось!

Selya
24.05.2016, 10:12
Приветствую. Нужна помощь. Наверняка кто-то делал.
Снимаю показания с датчика, записываю его в переменную X0. Как бы мне теперь снять показания с этого датчика через минуту (10 минут, час) и записать в переменную X1.
Никак не соображу, как сравнивать время. Пытаюсь использовать библиотеку CAA DTUtil Extern.

Евгений Кислов
24.05.2016, 10:17
Приветствую. Нужна помощь. Наверняка кто-то делал.
Снимаю показания с датчика, записываю его в переменную X0. Как бы мне теперь снять показания с этого датчика через минуту (10 минут, час) и записать в переменную X1.
Никак не соображу, как сравнивать время. Пытаюсь использовать библиотеку CAA DTUtil Extern.

Как вариант, считывайте циклически системное время c помощью этой библиотеки и в программе делайте как-то так:



IF uiCurrentMinutes=10 AND uiCurrentSeconds=0 THEN
// запускаем опрос датчика
ENF_IF

31kip
24.05.2016, 11:17
Добрый день. Прошу прощения у модераторов за то что пложу темы, но вопрос у меня смежный между разными ветками форума, может здесь кто то подскажет что не так делаю.Вот ссылка на мой вопрос.http://www.owen.ru/forum/showthread.php?t=10555&page=503

Selya
25.05.2016, 08:18
Как вариант, считывайте циклически системное время c помощью этой библиотеки и в программе делайте как-то так:



IF uiCurrentMinutes=10 AND uiCurrentSeconds=0 THEN
// запускаем опрос датчика
ENF_IF


То есть какого-то счётчика времени нет, вроде GetTickCount? Только реальное время?

Евгений Кислов
25.05.2016, 08:35
То есть какого-то счётчика времени нет, вроде GetTickCount? Только реальное время?

Функция TIME() возвращает значение типа TIME, содержащее время, отсчитываемое с запуска контроллера.

Selya
25.05.2016, 10:34
Спасибо, то что надо.

xko
25.05.2016, 15:07
Здравствуйте! Прошу помочь с ошибкой "[ERROR] visuelembase, 3.5.6.40 (system): Create [Visu_FbShmPaintbufferCreator]: C0077: Неизвестный тип: 'SysShm.RTS_IEC_HANDLE'"
24567
Пробовал удалить и заново установить Codesys - не помогает.
Спасибо!

Евгений Кислов
25.05.2016, 15:08
Здравствуйте! Прошу помочь с ошибкой "[ERROR] visuelembase, 3.5.6.40 (system): Create [Visu_FbShmPaintbufferCreator]: C0077: Неизвестный тип: 'SysShm.RTS_IEC_HANDLE'"
24567
Пробовал удалить и заново установить Codesys - не помогает.
Спасибо!

Выложите архив проекта, пожалуйста. В какой версии CODESYS вы его создаете?

xko
25.05.2016, 15:21
Появляется ошибка при установке библиотек ОВЕН:
24568

xko
25.05.2016, 15:27
Codesys 3.5 SP6 Patch 4

Переустановил "CПК Repository Archive 3.5.4.20" - всё заработало.

Теперь другая проблема: не отображаются некоторые элементы (переключатели) на контроллере. В codesys они видны.

Евгений Кислов
25.05.2016, 17:55
Codesys 3.5 SP6 Patch 4

Переустановил "CПК Repository Archive 3.5.4.20" - всё заработало.

Теперь другая проблема: не отображаются некоторые элементы (переключатели) на контроллере. В codesys они видны.

Вам должно помочь вот это:
http://www.owen.ru/forum/showthread.php?t=24031&page=2&p=209334&viewfull=1#post209334

nsarychev
26.05.2016, 09:42
Камрады подскажите, какой оператор применить(CFC):

Задача по событию присвоить переменной целочисленным значение. Т.е. если пришла единица, то присвоить переменной х значение у=2657554488., Если висит 0, ничего не присваивать.

Евгений Кислов
26.05.2016, 09:48
Команды подскажите, какой оператор применить(CFC):

Задача по событию присвоить переменной целочисленным значение. Т.е. если пришла единица, то присвоить переменной х значение у=2657554488., Если висит 0, ничего не присваивать.

Конкретно в вашей формулировке - оператор MOVE со входом EN (чтобы его добавить, надо кликнуть на блок ПКМ и выбрать команду EN/ENO).

Я на всякий случай предлагаю сразу почитать про оператор SEL.

nsarychev
26.05.2016, 18:08
Конкретно в вашей формулировке - оператор MOVE со входом EN (чтобы его добавить, надо кликнуть на блок ПКМ и выбрать команду EN/ENO).

Я на всякий случай предлагаю сразу почитать про оператор SEL.

Спасибо! Вот про "выбрать команду EN/ENO" я не догадался :) Век живи, век учись, а дураком помрешь! :)

arirang
28.05.2016, 19:41
не понял где это искать, подскажите

Евгений Кислов
28.05.2016, 20:32
не понял где это искать, подскажите

Уточните, пожалуйста, что вы хотите найти.

alexmaemur
29.05.2016, 02:39
Коллеги прошу помидорами не забрасывать:) Вопросы по новому для меня Codesys3, установлен CODESYS 3.5SP8Patch4 Release.zip качал с http://prolog-plc.ru/codesys:
1. Есть ли помощь на русском, у меня по F1 она открывается, но там по сути только заголовки, в глубь лезешь и ничего.
2. Пишут что в меню Инструменты\Настройки есть пункт Свойства, даже снимок экрана прилагали. Там есть настройка расширенный доступ, типа Эксперт. У меня нет этого пункта СВОЙСТВА.
3а. Как объявлять глобальные переменные и как их использовать - синтаксис.
Если я создал список глобальных под названием GL_VAR с переменной GL_V_test1 то в тексте
GL_VAR.GL_V_test1 надо использовать, на GL_V_test1 компилятор пишет что не определена переменная, какая она тогда глобальная.
3б. И в эту же тему. Если есть локальная переменная V_test2 в блоке FB_001 то я ее могу использовать в любом блоке используя синтаксис FB_001.V_test2 т.е по сути она глобальная.
В Siemens и Codesys2 вроде не так. :confused: это что нововведения в Codesys3 или я что то не понимаю???

Евгений Кислов
31.05.2016, 07:33
Коллеги прошу помидорами не забрасывать:) Вопросы по новому для меня Codesys3, установлен CODESYS 3.5SP8Patch4 Release.zip качал с http://prolog-plc.ru/codesys:
1. Есть ли помощь на русском, у меня по F1 она открывается, но там по сути только заголовки, в глубь лезешь и ничего.
2. Пишут что в меню Инструменты\Настройки есть пункт Свойства, даже снимок экрана прилагали. Там есть настройка расширенный доступ, типа Эксперт. У меня нет этого пункта СВОЙСТВА.
3а. Как объявлять глобальные переменные и как их использовать - синтаксис.
Если я создал список глобальных под названием GL_VAR с переменной GL_V_test1 то в тексте
GL_VAR.GL_V_test1 надо использовать, на GL_V_test1 компилятор пишет что не определена переменная, какая она тогда глобальная.
3б. И в эту же тему. Если есть локальная переменная V_test2 в блоке FB_001 то я ее могу использовать в любом блоке используя синтаксис FB_001.V_test2 т.е по сути она глобальная.
В Siemens и Codesys2 вроде не так. :confused: это что нововведения в Codesys3 или я что то не понимаю???

1. Начиная с SP7 (если не ошибаюсь) справка на русском отсутствует - т.к. планируется полное переформирование справки CODESYS. Насколько мне известно, в следующих версиях она будет реализована в виде онлайн-сервиса. Прикладываю архив со справкой на русском из SP6.
2. Действительно, начиная с SP7 пункт Свойства отсутствует. Разделение на стандартный/экспертный режим в этих версиях пропало - все настройки всегда доступны.
3а. При обращении к глобальной переменной достаточно указать ее имя (кроме тех случаев, когда создано несколько списков глобальных переменных, в которых используются идентичные имена). Чтобы понять вашу ситуацию, нужны скриншоты, лучше всего - сам проект, в котором наблюдается проблема.
3б. Не совсем так. Считать вы ее, конечно, сможете, но вот записать в нее что-либо - нет. Так что такая переменная является именно локальной, а не глобальной.

alexmaemur
31.05.2016, 21:39
Спасибо Евгений
Попробую почитать русский хелп, для справки по функциям и т.д английский незаменим, но для начального общего ознакомления конечно русский лучше.
По п.3б значит используя синтаксис <Имя блока где объявлена переменная>.<Имя переменной> можно считать ее где угодно, запись только в блоке где объявлена.
По п.3а прилагаю скриншот:
24663
В POUs создан Global_VAR в нем объявлена константа:
VAR_GLOBAL CONSTANT
DegaMaxN: INT := 15; //Максимальное количество меток RFID
END_VAR
Как видно из скриншота в одной строчке на DegaMaxN компилятор ругается, в
следующей Global_VAR.DegaMaxN используется без проблем т.е. как будто она не глобальная.

Возможно я не там создал Global_VAR, в чем отличие если бы он был создан в не в POUs, а в Application? Глобальные по моему должны быть в единственном экземпляре, или одни глобальнее других? Возможность создания нескольких списков по моему нужно только для удобства разделения например по функциональным признакам, как например выделение сетевых глобальных в стандарте Codesys.

alexmaemur
01.06.2016, 00:25
На скрине вроде справка КДС3, там разве сказано где то что глобальные переменные можно создавать внутри ПОУ, константы да, но для глобальных есть свой раздел
Я имел ввиду вкладку POUs (так же можно создать во вкладке Devices под Application) , а не внутри POU. Понятное дело внутри POU будут локальные переменные.
На моем скрине Global_VAR находится в POUs.
Я пробовал и во вкладке Devices под Application, но тогда этот список вообще не виден когда создаешь новую переменную т.е. ее некуда вписать.
Согласно представленной справки КДС3, не имеет значения константа или переменная, они обе описываются в Global_VAR.

Евгений Кислов
01.06.2016, 07:27
По п.3а прилагаю скриншот:
24663
В POUs создан Global_VAR в нем объявлена константа:
VAR_GLOBAL CONSTANT
DegaMaxN: INT := 15; //Максимальное количество меток RFID
END_VAR
Как видно из скриншота в одной строчке на DegaMaxN компилятор ругается, в
следующей Global_VAR.DegaMaxN используется без проблем т.е. как будто она не глобальная.


У меня компилятор не ругается и в первом случае. Выложите, пожалуйста, архив проекта - так можно будет установить, в чем проблема.


в чем отличие если бы он был создан в не в POUs, а в Application?

На вкладке Devices (в узле Application) размещаются POU, которые используются конкретным приложением (в большинстве случаев это означает "конкретным устройством"), на вкладке POUs размещаются POU, которые используются проектом в целом. Т.е., например, вы можете добавить в проект СПК и ПЛК323, и создать на этой вкладке ФБ, экземпляры которого будут использоваться в программах каждого из контроллеров.


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

Все верно.

alexmaemur
01.06.2016, 10:15
У меня компилятор не ругается и в первом случае. Выложите, пожалуйста, архив проекта.

На вкладке Devices (в узле Application) размещаются POU, которые используются конкретным приложением (в большинстве случаев это означает "конкретным устройством"), на вкладке POUs размещаются POU, которые используются проектом в целом.

Тогда по аналогии VAR_GLOBAL:
1. VAR_GLOBAL в POUs глобальные для всего проекта
и я создал VAR_GLOBAL_Win3 в узле Application только для моего устройства Control Win V3.
2. Для теста пытаюсь создать глобальную переменную Test_VAR_GLOBAL и хочу чтобы она была определена только для моего устройства Control Win V3.
НО!!! система не видит список VAR_GLOBAL_Win3, см. скриншот
24668

Проект прилагаю:
24669
в нем создал POU_Test и в нем пытаюсь использовать глобальную переменную V_G_Test_GlVAR и создать Test_VAR_GLOBAL так чтобы она попала в VAR_GLOBAL_Win3, а не в VAR_GLOBAL.

Евгений Кислов
01.06.2016, 10:36
Тогда по аналогии VAR_GLOBAL:
1. VAR_GLOBAL в POUs глобальные для всего проекта
и я создал VAR_GLOBAL_Win3 в узле Application только для моего устройства Control Win V3.
2. Для теста пытаюсь создать глобальную переменную Test_VAR_GLOBAL и хочу чтобы она была определена только для моего устройства Control Win V3.
НО!!! система не видит список VAR_GLOBAL_Win3, см. скриншот
24668

Проект прилагаю:
24669
в нем создал POU_Test и в нем пытаюсь использовать глобальную переменную V_G_Test_GlVAR и создать Test_VAR_GLOBAL так чтобы она попала в VAR_GLOBAL_Win3, а не в VAR_GLOBAL.

Уберите из списков глобальных переменных вот это


{attribute 'qualified_only'}

и можно будет не указывать название списка перед именем переменной.

И обратите внимание - у вас имя функции во вкладке POUs (POU) не совпадает с именем в самой функции (POU_Test).

alexmaemur
01.06.2016, 11:37
Уберите из списков глобальных переменных вот это
{attribute 'qualified_only'}
и можно будет не указывать название списка перед именем переменной.

И обратите внимание - у вас имя функции во вкладке POUs (POU) не совпадает с именем в самой функции (POU_Test).

Спасибо Евгений
1. Да по поводу имени это я ошибся при переименовании POU в POU_Test.
2. После удаления "attribute 'qualified_only' " глобальные переменные без указания списка работают.
3. Остался еще вопрос, не особо важный но все же хочется добить его:
Как я писал выше и скриншот приложил
24674
При создании глобальной переменной система предлагает внести его только
в список VAR_GLOBAL, а список VAR_GLOBAL_Win3 (для конкретно
моего устройства) не отображается, т.е в него только ручками вносить
правильно я понимаю? В поле Object можно выбрать только VAR_GLOBAL.

Евгений Кислов
01.06.2016, 11:44
Спасибо Евгений
1. Да по поводу имени это я ошибся при переименовании POU в POU_Test.
2. После удаления "attribute 'qualified_only' " глобальные переменные без указания списка работают.
3. Остался еще вопрос, не особо важный но все же хочется добить его:
Как я писал выше и скриншот приложил
24674
При создании глобальной переменной система предлагает внести его только
в список VAR_GLOBAL, а список VAR_GLOBAL_Win3 (для конкретно
моего устройства) не отображается, т.е в него только ручками вносить
правильно я понимаю? В поле Object можно выбрать только VAR_GLOBAL.

3. Да, я тоже такое наблюдаю у себя. Не могу прокомментировать, почему это так. Советую вносить вручную - мне, например, так даже удобнее.

alexmaemur
01.06.2016, 12:53
Евгений СПАСИБО!!!

energvk
01.06.2016, 18:42
Не могу разобраться. Допустим есть пять задвижек. На управление каждой отведено 3 кнопки. На каждую кнопку выводится 2 разных текста,в зависимости от того нажата она или нет. Не могу понять можно ли этот текст выводить из одного списка текстов или их нужно 15-ть?

Евгений Кислов
01.06.2016, 19:52
Не могу разобраться. Допустим есть пять задвижек. На управление каждой отведено 3 кнопки. На каждую кнопку выводится 2 разных текста,в зависимости от того нажата она или нет. Не могу понять можно ли этот текст выводить из одного списка текстов или их нужно 15-ть?

Достаточно одного списка текстов. Задаете в нем два текста:

ID=0 "Выкл"
ID=1 "Вкл"

Каждой кнопке к параметру Индекс текста привязываете BOOL_TO_STRING(xButton_№), где xButton_№ - переменная состояния кнопки.

energvk
01.06.2016, 21:21
Вроде бы так пробовал, но получалось на все сразу кнопки значение распространялось. В общем попробую ещё, спасибо.

alexmaemur
03.06.2016, 02:12
Уважаемые коллеги помогите выйти из тупика:confused:
1. Делаю вызов нескольких функциональных блоков, от порядка в каком я их объявляю зависит появление ошибки, контроллер не стартует.
FUNCTION_BLOCK A_Main_Base
VAR
FB_GetDataRFID1: GetDataRFID;
FB_CountTime_to_Visu: CountTime_to_Visu;
FB_Test: Test;
FB_Tablo: Tablo;
END_VAR
Долго не мог понять вообще причину. В итоге понял что если после FB_Tablo объявить любой (даже пустой FB), например
FB_Test то на этом FB при старте стопорится программа с выдачей EXCEPTION
24708
Если я ставлю FB_Test: Test; после FB_Tablo: Tablo; то появляется эта ошибка. FB между собой никак не завязаны, FB_Test вообще пустой.

alexmaemur
03.06.2016, 02:19
Если FB_Tablo: Tablo; на последнем месте то все в порядке.
Ни разу ни с чем подобным не сталкивался, с одной стороны можно не парится если порядок соблюсти все ОК, но хочется понять причину:). Как порядок объявления может влиять, я понимаю в самом коде порядок важен.

Евгений Кислов
03.06.2016, 07:58
Если FB_Tablo: Tablo; на последнем месте то все в порядке.
Ни разу ни с чем подобным не сталкивался, с одной стороны можно не парится если порядок соблюсти все ОК, но хочется понять причину:). Как порядок объявления может влиять, я понимаю в самом коде порядок важен.

А что будет, если содержимое ФБ A_Main_Base объявить в PLC_PRG и вызывать там же?

ntro123
04.06.2016, 13:26
Подскажите почему ПЛК323 после 10-12 часов работы начинает вырубаться?
ПЛК подключен к счетчику в щитке, и измеряет напряжение к той фазе к которой подключен (максимум 234 вольта было), под вечер вырубается, при этом веб-морда самого ПЛК работает, просто codesys слетает (в кодесусе в разделе device горит красным подключение к нему), после /sbin/reboot все работает, но когда как, когда на 10 мин, когда на 5-6 часов нормально все. Частота вроде ~50 ГЦ, не понятно ...

Подскажите в чем может быть дело? можно ли как-то программно измерить напряжение на самом ПЛК?
В какую сторону копать?

Пьер
07.06.2016, 11:37
Подключение в CSD 3.5. Возможно ли подключить внешний прибор по протоколу MODBUS ACSII. Нет связи с прибором и хоть тресни. В самом CDS нельзя выбрать ACSII, как решить эту проблему?

Евгений Кислов
07.06.2016, 11:47
Подключение в CSD 3.5. Возможно ли подключить внешний прибор по протоколу MODBUS ACSII. Нет связи с прибором и хоть тресни. В самом CDS нельзя выбрать ACSII, как решить эту проблему?

Воспользоваться библиотекой Modbus Master, в ней реализован Modbus ASCII.
http://www.owen.ru/catalog/codesys_v3/80224381

Вот тут можно найти пример работы с библиотекой (правда, только для RTU):
http://www.owen.ru/forum/showthread.php?t=23897

Пьер
07.06.2016, 13:10
Воспользоваться библиотекой Modbus Master, в ней реализован Modbus ASCII.
http://www.owen.ru/catalog/codesys_v3/80224381

Вот тут можно найти пример работы с библиотекой (правда, только для RTU):
http://www.owen.ru/forum/showthread.php?t=23897

А где бы конкретный пример найти, я с такими библиотеками не очень могу работать.

Евгений Кислов
07.06.2016, 13:12
А где бы конкретный пример найти, я с такими библиотеками не очень могу работать.

В документе, в принципе, есть пример, как с помощью этой библиотеки считывать/записывать данные с модулей Mx110. Вы, соответственно, можете взять его за основу, поменяв протокол RTU на ASCII и выбрав нужные функции/регистры.

Hash
08.06.2016, 12:34
Доброго дня!

Подскажите, есть-ли какой-либо аналог SSR в CDS 3.5 или его эмуляция - имеется необходимость поковыряться с PID ?

alexmaemur
08.06.2016, 13:02
А что будет, если содержимое ФБ A_Main_Base объявить в PLC_PRG и вызывать там же?

Спасибо Евгений.
В чем проблема понял, после переноса появилось конкретное описание проблемы,
не хватало памяти, я слишком много данных в ретайн запихал.
До этого вылетал без ошибок:(

Отсюда вопрос второй. Если залил в виртуальный контроллер такой кривой код, то как его сбросить?
У меня не стартует Control Win, на секунду мигнет цветными квадратиками и все...
Получается залитая кривая прога стопорит его, что делать? Я уже переставил раз Codesys и опять то же самое:confused:

Евгений Кислов
08.06.2016, 13:25
Спасибо Евгений.
В чем проблема понял, после переноса появилось конкретное описание проблемы,
не хватало памяти, я слишком много данных в ретайн запихал.
До этого вылетал без ошибок:(

Отсюда вопрос второй. Если залил в виртуальный контроллер такой кривой код, то как его сбросить?
У меня не стартует Control Win, на секунду мигнет цветными квадратиками и все...
Получается залитая кривая прога стопорит его, что делать? Я уже переставил раз Codesys и опять то же самое:confused:

У меня после вашего проекта тоже перестал работать Control Win. )
Но у меня установлено много кодесисов, и каждый из них включает в себя виртуальный контроллер соответствующей версии - так что я просто стал пользоваться другим.

Евгений Кислов
08.06.2016, 13:43
Cейчас еще раз вернулся к этой проблеме - она уходит, когда удаляешь содержимое папки

C:\Program Files (x86)\3S CODESYS 3.5 SP8 Patch2\GatewayPLC\PlcLogic

эта процедура удаляет текущий проект из виртуального контроллера.

alexmaemur
08.06.2016, 20:58
Cейчас еще раз вернулся к этой проблеме - она уходит, когда удаляешь содержимое папки
C:\Program Files (x86)\3S CODESYS 3.5 SP8 Patch2\GatewayPLC\PlcLogic
эта процедура удаляет текущий проект из виртуального контроллера.
Евгений СПАСИБО!
В архиве батник для очистки содержимого PlcLogic, надеюсь народу пригодится.
Хотя очень странно, что 3S не озаботились сбросом своего виртуального контроллера:confused:

ntro123
10.06.2016, 15:25
Знающие люди, подскажите (документации и выдачи в гугле не хватает чтобы разобраться):
Если я выделяю память:
result:=SysMemAllocData('type_of_element', SIZEOF(result^)*5, ADR(hResult));
А затем очищаю память:
hResult:=SysMemFreeData('type_of_element', result);

Он очистит все от адреса result и до адреса result+5*SIZEOF(result^), т.е. все 5 элементов?

alexmaemur
14.06.2016, 13:48
Коллеги прошу помощи.
Ошибка: [FATAL ERROR] C0299
При нажатии "Login" Codesys ругается на отсутствии информации для загрузки приложения.
В ошибках
------ Build started: Application: Device.Application -------
typify code ...
[FATAL ERROR] C0299: Creating a codegenerator failed: The required plug-in is not installed
Build complete -- 0 errors, 0 warnings : ready for download!
версия CODESYS V3.5 SP5 Patch 5, работаю пока с Control Win V3.
Все те же операции в CODESYS V3.5 SP8 Patch 4 проект грузится и работает, правда там тоже есть проблемы поэтому и решил попробовать другую версию.

Евгений Кислов
14.06.2016, 13:54
The required plug-in is not installed

Дело, очевидно, в этом. Вы используете какие-то расширения для CODESYS?

alexmaemur
14.06.2016, 14:59
Дело, очевидно, в этом. Вы используете какие-то расширения для CODESYS?
Как новичек вопрос не понял:confused:
Что такое расширение?
1. Ставлю CODESYS V3.5 SP5 Patch 5 в нем добавляю стандарт библиотеку.
2. Создаю проект для виртуального контроллера Control Win V3.
3. Пишу простую программу - переключателем зажечь 2 лампочки. По переднему фронту одну, по заднему другую.
Т.к исходный код нужен был для имитации записи данных то по фронтам создавался одиночный импульс, а по этому импульсу на 1 сек зажигается лампочка.

Код проще простого, пока никаких библиотек и т.д. не использую. Точнее пока все удалил и оставил минимум чтобы понять в чем проблема. + Решил попробовать CODESYS V3.5 SP5 Patch 5 вместо SP8 Patch 4.
Начал работу с CODESYS V3.5 SP8 Patch 4, но в нем какие то глюки постоянно, работает работает потом начинает ругаться, откатываю назад все, ничего не помогает т.е точно дело не в ошибках кода, а в чем то другом т.к до этого работало, причем элементарные вещи. Например переключатель перестает фиксировать положение, как будто управляемая им переменная где то сбрасывается, если в свойствах изменяю на кнопку, то при нажатии и удержании все равно положение НАЖАТА не удерживается - начинает мигать.

Евгений Кислов
14.06.2016, 15:07
Как новичек вопрос не понял:confused:
Что такое расширение?
1. Ставлю CODESYS V3.5 SP5 Patch 5 в нем добавляю стандарт библиотеку.
2. Создаю проект для виртуального контроллера Control Win V3.
3. Пишу простую программу - переключателем зажечь 2 лампочки. По переднему фронту одну, по заднему другую.
Т.к исходный код нужен был для имитации записи данных то по фронтам создавался одиночный импульс, а по этому импульсу на 1 сек зажигается лампочка.

Код проще простого, пока никаких библиотек и т.д. не использую. Точнее пока все удалил и оставил минимум чтобы понять в чем проблема. + Решил попробовать CODESYS V3.5 SP5 Patch 5 вместо SP8 Patch 4.
Начал работу с CODESYS V3.5 SP8 Patch 4, но в нем какие то глюки постоянно, работает работает потом начинает ругаться, откатываю назад все, ничего не помогает т.е точно дело не в ошибках кода, а в чем то другом т.к до этого работало, причем элементарные вещи. Например переключатель перестает фиксировать положение, как будто управляемая им переменная где то сбрасывается, если в свойствах изменяю на кнопку, то при нажатии и удержании все равно положение НАЖАТА не удерживается - начинает мигать.

Расширение или плагин - это компонент, который добавляет в CODESYS новый функционал и вносит соответствующие изменения в интерфейс.
Вот пример плагина: http://store.codesys.com/fb-visu-creator.html

В вашем случае, похоже, проблема не в этом. Вы можете определить момент, в который начинает появляться эта ошибка? Т.е. сначала залить в виртуальный контроллер пустой проект, а потом пробовать заливать его после каждого внесенного изменения.

alexmaemur
14.06.2016, 18:06
Расширение или плагин - это компонент, который добавляет в CODESYS новый функционал и вносит соответствующие изменения в интерфейс.
Вот пример плагина: http://store.codesys.com/fb-visu-creator.html

В вашем случае, похоже, проблема не в этом. Вы можете определить момент, в который начинает появляться эта ошибка? Т.е. сначала залить в виртуальный контроллер пустой проект, а потом пробовать заливать его после каждого внесенного изменения.

Интересный плагин, спасибо за наводку:D
Касательно ошибки:
Установлен CODESYS V3.5 SP5 Patch 5.
Создаю Стандарт проект, использую Control Win V3, выбрал ST по умолчанию.
В PLC_PRG присваиваю 1 переменной и все.24957

Евгений Кислов
14.06.2016, 18:10
Интересный плагин, спасибо за наводку:D
Касательно ошибки:
Установлен CODESYS V3.5 SP5 Patch 5.
Создаю Стандарт проект, использую Control Win V3, выбрал ST по умолчанию.
В PLC_PRG присваиваю 1 переменной и все.24957

Если будет возможность, напишите мне завтра на e.kislov@owen.ru
В идеале хотелось бы подключиться по Team Viewer.
Я доступен до 16-00 по московскому времени.

alexmaemur
14.06.2016, 18:11
Расширение или плагин - это компонент, который добавляет в CODESYS новый функционал и вносит соответствующие изменения в интерфейс.
Вот пример плагина: http://store.codesys.com/fb-visu-creator.html

В вашем случае, похоже, проблема не в этом. Вы можете определить момент, в который начинает появляться эта ошибка? Т.е. сначала залить в виртуальный контроллер пустой проект, а потом пробовать заливать его после каждого внесенного изменения.

Интересный плагин, спасибо за наводку:D
Касательно ошибки:
Установлен CODESYS V3.5 SP5 Patch 5.
Создаю Стандарт проект, использую Control Win V3, выбрал ST по умолчанию.
В PLC_PRG присваиваю 1 переменной и все.24957
Ошибка на первом шаге, можно сказать на нулевом:(

alexmaemur
14.06.2016, 19:16
Евгений я понял причину и даже получилось ее исправить, но думаю путь не самый правильный.
Причина отсутствие в библиотеке:
3SLicense, 3.5.5.0 (3S - Smart Software Solutions GmbH)
Удалось ее туда добавить открыв проект в CODESYS V3.5 SP8, точнее она сама добавилась.
Ошибка:
[FATAL ERROR] C0299: Creating a codegenerator failed: The required plug-in is not installed
успешно устранена.
Но остались непонятки:confused:
На одном и том же компе установлены CODESYS V3.5 SP8 Patch 4, в нем лицензия автоматом появляется при создании проекта.
И CODESYS V3.5 SP5 Patch 5 в нем лицензия не появляется и добавить не удается т.к в библиотеке поиском находится только версия от старшей 3SLicense, 3.5.8.0, при ее установке ничего не изменилось.
И только если созданный в SP5 проект открыть в SP8 лицензия 3.5.5.0 автоматом появляется, а потом можно работать в SP5.

Возможно есть какие то правила (пусть неофициальные) как правильно устанавливать Codesys?
Мы пока еще не определились до конца с панелькой поэтому потенциально обе версии для нас актуальны как я понимаю.

И еще вопрос заодно, можно ли отключить режим полного экрана при запуске программы в виртуальном контроллере или так и придется Ctr-Tab пользовать для переключения к проекту, а визуха будет на заднем фоне болтаться?

Евгений Кислов
14.06.2016, 19:55
Возможно есть какие то правила (пусть неофициальные) как правильно устанавливать Codesys?
Мы пока еще не определились до конца с панелькой поэтому потенциально обе версии для нас актуальны как я понимаю.

И еще вопрос заодно, можно ли отключить режим полного экрана при запуске программы в виртуальном контроллере или так и придется Ctr-Tab пользовать для переключения к проекту, а визуха будет на заднем фоне болтаться?

Вообще, рекомендуется устанавливать версии в порядке возрастания.

По поводу режима полного экрана - я, в принципе, понимаю, о чем вы говорите, но у меня это проявлялось только на некоторых машинах и, кстати, наверное только во времена SP5. В последние полгода я работаю в основном с SP7 (и его виртуальным контроллером), при этом визуализация отдельной вкладкой вообще не появляется. Еще такое может проявится, если запускать виртуальный контроллер не из трея, а с ярлыка.

По поводу лицензии - ее библиотека действительно сама должна автоматически добавляться в проект. В вашем случае похоже что при установке что-то пошло не так - например, антивирус не дал сработать CodeMeter или что-то в подобном духе.

alexmaemur
15.06.2016, 10:03
По поводу возрастания вполне логично, придется мне еще раз снести Codesys, а лучше винду:D.
На счет экрана еще раз поясню т.к не совсем понимаю что значит работать с "... его виртуальным контроллером".
В трее висит виртуальный контроллер который стартует вместе с виндой. Его нужно только заставить стартануть перед тем как логинится. Отсюда мне не ясно как можно работать с виртуальным контроллером именно определенной версии Codesys SP5 или SP8 на одном компе??? Control Win V3 там уже сидит, в моем случае сидит версия от последней установки т.е SP5 и другого не дано или ими можно управлять?

Соответственно в этот виртуальный контроллер грузится при логине (или уже сидит там с прошлой загрузки) какая то программа. Так вот даже если не запущен Codesys при старте виртуального контроллера на полный экран открывается окно даже если на визуализации одна кнопка. Экран заполняется цветом фона и в углу эта маленькая кнопочка:D
Приходится переключаться на Codesys и в нем уже открывать визуализацию во вкладке как и код программы. Хотелось бы вообще избавится при отладке от открытия этого полно экранного HMI.

По поводу причин моей попытки попробовать другую версию -глюки в SP8:
На текущий момент глюки прекратились:confused::confused::confused: пока у меня 2 рабочие версии этого чудесного исцеления:
1. Создание проекта и визухи в версии SP5, а затем загрузка проекта в SP8. Сам код проекта без визухи легко переносится из версии в версию, а вот визуализация при понижении версии ругается т.е ее надо удалить и по новой создать, при повышении обновляется.
2. Сейчас я редактирую проект в SP8, а виртуальный контроллер у меня SP5 и проект изначально создавался в SP5 (я грешу именно на визуху).

Похоже собака зарыта где то здесь - есть какой то баг в визухе SP8:o Чуть позже как закончу хотя бы первый кусок проекта до логического конца чтобы начальству отрапортовать о каких то результатах, все снесу и снова создам проект с нуля в SP8 и если опять появится этот касяк напишу.

Евгений Кислов
15.06.2016, 10:15
По поводу возрастания вполне логично, придется мне еще раз снести Codesys, а лучше винду:D.
На счет экрана еще раз поясню т.к не совсем понимаю что значит работать с "... его виртуальным контроллером".
В трее висит виртуальный контроллер который стартует вместе с виндой. Его нужно только заставить стартануть перед тем как логинится. Отсюда мне не ясно как можно работать с виртуальным контроллером именно определенной версии Codesys SP5 или SP8 на одном компе??? Control Win V3 там уже сидит, в моем случае сидит версия от последней установки т.е SP5 и другого не дано или ими можно управлять?

Соответственно в этот виртуальный контроллер грузится при логине (или уже сидит там с прошлой загрузки) какая то программа. Так вот даже если не запущен Codesys при старте виртуального контроллера на полный экран открывается окно даже если на визуализации одна кнопка. Экран заполняется цветом фона и в углу эта маленькая кнопочка:D
Приходится переключаться на Codesys и в нем уже открывать визуализацию во вкладке как и код программы. Хотелось бы вообще избавится при отладке от открытия этого полно экранного HMI.

По поводу причин моей попытки попробовать другую версию -глюки в SP8:
На текущий момент глюки прекратились:confused::confused::confused: пока у меня 2 рабочие версии этого чудесного исцеления:
1. Создание проекта и визухи в версии SP5, а затем загрузка проекта в SP8. Сам код проекта без визухи легко переносится из версии в версию, а вот визуализация при понижении версии ругается т.е ее надо удалить и по новой создать, при повышении обновляется.
2. Сейчас я редактирую проект в SP8, а виртуальный контроллер у меня SP5 и проект изначально создавался в SP5 (я грешу именно на визуху).

Похоже собака зарыта где то здесь - есть какой то баг в визухе SP8:o Чуть позже как закончу хотя бы первый кусок проекта до логического конца чтобы начальству отрапортовать о каких то результатах, все снесу и снова создам проект с нуля в SP8 и если опять появится этот касяк напишу.

По поводу виртуального контроллера - каждый CODESYS устанавливает свою версию. Из трея по умолчанию запускается последняя из установленных.
Но можно запустить любую версию вручную. Вот ссылка из моего ярлыка для виртуального контроллера версии SP7 Patch4:

"C:\Program Files (x86)\3S CODESYS 3.5 SP7 Patch4\GatewayPLC\CODESYSControlService.exe" -d

но в этом случае как раз будет вот это:


Соответственно в этот виртуальный контроллер грузится при логине (или уже сидит там с прошлой загрузки) какая то программа. Так вот даже если не запущен Codesys при старте виртуального контроллера на полный экран открывается окно даже если на визуализации одна кнопка. Экран заполняется цветом фона и в углу эта маленькая кнопочка
Приходится переключаться на Codesys и в нем уже открывать визуализацию во вкладке как и код программы. Хотелось бы вообще избавится при отладке от открытия этого полно экранного HMI.

Если я правильно понимаю, у вас сейчас виртуальный контроллер от SP5. Поставьте завтра SP9 и проблема с "полноэкранным HMI" должна уйти, в моем понимании.

alexmaemur
16.06.2016, 16:11
По поводу виртуального контроллера - каждый CODESYS устанавливает свою версию. Из трея по умолчанию запускается последняя из установленных.
Но можно запустить любую версию вручную. Вот ссылка из моего ярлыка для виртуального контроллера версии SP7 Patch4:
"C:\Program Files (x86)\3S CODESYS 3.5 SP7 Patch4\GatewayPLC\CODESYSControlService.exe" -d
Если я правильно понимаю, у вас сейчас виртуальный контроллер от SP5. Поставьте завтра SP9 и проблема с "полноэкранным HMI" должна уйти, в моем понимании.
Не, такой вид текста ссылки не описывает запуска любой версии. Или у меня как то не так установились версии Codesys т.к у меня нет папок где указана SP5 и SP7, у меня просто 3S CODESYS без SP. Сам кодесис запускается по ярлыку в котором версия прописана, например --Profile="CODESYS V3.5 SP5 Patch 5", а вот виртуальный контроллер так не прописан. В папке C:\Program Files\3S CODESYS\GatewayPLC есть разные cfg файлы.
Скорее всего:
"C:\Program Files\3S CODESYS\GatewayPLC\CODESYSControlService.exe" -d это запуск иконки в трее, а она для всех версий одна и та же.
а вот запуск самой службы
"C:\Program Files\3S CODESYS\GatewayPLC\CODESYSControlSysTray.exe" CODESYSControl.cfg
Соответственно если создать ярлык и заменить CODESYSControl.cfg на
CODESYSControl 3.5SP5Patch5.cfg то должно получится, в общем надо пробовать.

НО!!! у меня вопрос - создание проекта в последней версии Codesys к примеру SP9 не создаст проблем если я залью его в панель с прошивкой 4 или например в панель с прошивкой 3.9.х.х?

alexmaemur
16.06.2016, 16:28
Евгений и еще один вопрос по поводу архивации.

В теме Библиотека архивации для СПК - ArchiverSPK_3.5.3.53.zip
http://www.owen.ru/forum/showthread.php?t=15867
Написано - Внимание! Разработка данной библиотеки полностью прекращена.
Хотя тема до сих пор обсуждается, подскажите если не трудно на вскидку что лучше использовать для архивации?
А в разделе справки есть описание - Библиотека ArchivatorOwenLib.
Что то я пробежавшись по форуму так и не понял какая библиотека новее, какая лучше:confused:
а) ArchiverSPK_3.5.3.53 - не поддерживается, устарела, что пришло на смену???
б) Библиотека ArchivatorOwenLib
в) CAA File - пока не знаю что за зверь, надо читать т.к народ много на него ссылается.
г) Sysexecute - тоже много ссылок, но надо читать и разбираться.

Что лучше использовать? Возможно они пересекаются и например ArchivatorOwenLib уже использует CAA File или Sysexecute?

2. Кстати по поводу CODESYS 3.5 SP9, он теперь поддерживает только Win7 так что на текущий момент пока не получу новый комп буду сидеть на SP8, виртуалку с семеркой и кодесисом мой комп не потянет:(:(:(.

Евгений Кислов
16.06.2016, 17:35
Не, такой вид текста ссылки не описывает запуска любой версии. Или у меня как то не так установились версии Codesys т.к у меня нет папок где указана SP5 и SP7, у меня просто 3S CODESYS без SP. Сам кодесис запускается по ярлыку в котором версия прописана, например --Profile="CODESYS V3.5 SP5 Patch 5", а вот виртуальный контроллер так не прописан. В папке C:\Program Files\3S CODESYS\GatewayPLC есть разные cfg файлы.
Скорее всего:
"C:\Program Files\3S CODESYS\GatewayPLC\CODESYSControlService.exe" -d это запуск иконки в трее, а она для всех версий одна и та же.
а вот запуск самой службы
"C:\Program Files\3S CODESYS\GatewayPLC\CODESYSControlSysTray.exe" CODESYSControl.cfg
Соответственно если создать ярлык и заменить CODESYSControl.cfg на
CODESYSControl 3.5SP5Patch5.cfg то должно получится, в общем надо пробовать.

НО!!! у меня вопрос - создание проекта в последней версии Codesys к примеру SP9 не создаст проблем если я залью его в панель с прошивкой 4 или например в панель с прошивкой 3.9.х.х?

1. Конкретно я всегда устанавливаю каждую новую версию CODESYS в отдельную папку, в названии которой указываю номер версии. Поэтому у меня есть отдельные ярлыки для всех версий виртуального контроллера (путь к одному из них я указал выше). Советую поступать также.

2. Залитие проекта, созданного в SP9, может создать проблемы, поэтому для прошивок 3.9xx мы рекомендуем использовать SP5 Patch5. Зачастую опытные пользователи работают в более новых версиях, поскольку там исправлены определенные баги - но делают это, естественно, на свой страх и риск.

Евгений Кислов
16.06.2016, 17:38
Евгений и еще один вопрос по поводу архивации.

В теме Библиотека архивации для СПК - ArchiverSPK_3.5.3.53.zip
http://www.owen.ru/forum/showthread.php?t=15867
Написано - Внимание! Разработка данной библиотеки полностью прекращена.
Хотя тема до сих пор обсуждается, подскажите если не трудно на вскидку что лучше использовать для архивации?
А в разделе справки есть описание - Библиотека ArchivatorOwenLib.
Что то я пробежавшись по форуму так и не понял какая библиотека новее, какая лучше:confused:
а) ArchiverSPK_3.5.3.53 - не поддерживается, устарела, что пришло на смену???
б) Библиотека ArchivatorOwenLib
в) CAA File - пока не знаю что за зверь, надо читать т.к народ много на него ссылается.
г) Sysexecute - тоже много ссылок, но надо читать и разбираться.

Что лучше использовать? Возможно они пересекаются и например ArchivatorOwenLib уже использует CAA File или Sysexecute?

2. Кстати по поводу CODESYS 3.5 SP9, он теперь поддерживает только Win7 так что на текущий момент пока не получу новый комп буду сидеть на SP8, виртуалку с семеркой и кодесисом мой комп не потянет:(:(:(.

а) и б) созданы на базе в)

Конкретно я бы рекомендовал изучить CAA File - на нее есть описание в справке CODESYS.

alexmaemur
17.06.2016, 17:23
ОГРОМНОЕ СПАСИБО Евгений:)

Andrew_Stranger
19.06.2016, 21:31
Библиотека еще сырая.

alexmaemur
19.06.2016, 22:53
Коллеги приступил к освоению ArchivatorOwenLib.
1. Все сделал как в хелпе 06_arxivirovanie.doc и ArchivatorOwenLib_v1.pdf. в целом заработало, НО!!!

FB_GetData(
Name:= 'N',
Tip:= 4,
Znachenie:= ADR(ST_G_Tablo_Full[1].DegaN_Time),
ErrCode=> ,
StrOut=> ,
StrOutHead=> );
FB_GetData(
...
FB_GetData(
...
//Write data to disc
FB_WriteData(
Enable:= V_EnableWriteArchiv,
ArcPnt:= ADR(FB_GetData),
NameArc:= 'arhiv',
Path:= 'С:\',
Mode:= 0,
ErrCode=> );
На диск С пишется файл с arhiv_2016ХХХХ.log.

Запись в файл производится по команде Enable на WriteData, а вот идеология построения архива мне пока не очень понятна:confused:

#000 size=015 name=N
2016.06.19 21:23:27 #000=1#001=#002=#003=#004=#005=#006=
2016.06.19 21:25:34 #000=1#001=#002=#003=#004=#005=#006=
Вот такой файл создался после подачи команды на запись 2 раза. После каждой подачи команды в файл дописывается еще одна строчка, я так понимаю на следующие сутки создастся другой файл с его датой в имени и в нем так же будут добавляться строчки.
Вопросы которые возникли:
а. Почему появилось имя только первой переменной N, остальные не появились?
б. Можно ли накопить данные, а затем сделать запись в файл сразу например 100 строк.
в. В примере 06_arxivirovanie.doc команда Enable так же присутствует и на входе GetData, в текущей библиотеке этот блок такого входа не имеет.
Может разрешение на GetData позволит накопить данные, а затем команда на WriteData накопленные данные записать за один заход в файл или такое невозможно.
г. Возможно ли изменить формат вывода (убрать перед значением #000=,#001= и т.д.) или заменить на точку с запятой, чтобы в экселе этот файл читался без проблем? Конечно можно автозамену использовать, но это уже лишние действия, а хотелось бы csv подобный текстовый с разделителями файл получить готовый.

npu3pak
24.06.2016, 17:50
Здравствуйте, Господа.
Возникла проблема, есть рабочий проект СПК + ПЛК + 2А + 32ДН + 32Р. Потребовалось заменить 2А (2шт) на 8А (1шт) и 32Р на 16Р. Обновил устройства, переписал входы\выходы и всё, сеть упала. Причём модуль 8А на шине RS485-2, остальные на первой. Подскажите пожалуйста как правильно изменить модули.

npu3pak
24.06.2016, 19:08
Тупость с оболочкой, пришлось добавлять новые блоки, расписывать входы\выходы, почему нельзя просто обновить устройство. В общем геморрой. Спасибо, что как обычно промолчали.

AleksandrV
06.07.2016, 08:12
Добрый день, нужно реализовать сравнение двух переменных, больше/ меньше, как это сделать на языке CFC ?
Работаю с библиотекой OSCAT, в мануале описан блок CMP но в самой библиотеке его нет.

ASo
06.07.2016, 08:21
как это сделать на языке CFC ?Изучить язык CFC.

Евгений Кислов
06.07.2016, 08:23
Добрый день, нужно реализовать сравнение двух переменных, больше/ меньше, как это сделать на языке CFC ?
Работаю с библиотекой OSCAT, в мануале описан блок CMP но в самой библиотеке его нет.

Используйте стандартные операторы LT, LE, GT, GE.

TJ_RVSN
07.07.2016, 09:59
Добрый день! подскажите пожалуйста, есть необходимость подключить спк207 к контроллеру японского электроагрегата. Японцы дали адреса регистров и все параметры подключения кроме Slave ID адреса. Есть ли варианты подключения по RS-485 напрямую только с одним устройством не имея его ID адрес или это ошибка? Наименование протокола пока получить у них не могу (японцы вообще никогда не торопятся:mad:), но визуально это Modbus RTU.25321

GoodLuck
07.07.2016, 14:12
TJ_RVSN

Японцы дали адреса регистров и все параметры подключения кроме Slave ID адреса.
А в настройках этого контроллера разве нельзя посмотреть его адрес?
Было дело, тоже требовалось снимать данные с разных контроллеров, адрес по умолчанию везде стоял 1, но его можно было посмотреть или изменить в настройках. Там же можно было изменить и скорость.

TJ_RVSN
07.07.2016, 15:42
Спасибо! Попробую 1. Дело в том, что проект в единственном числе и конфигурировать прототип они не позволяют.

Oleg_gelo
13.07.2016, 14:23
Уважаемые господа. СПК207 М4, Codesys 3.5 SP7 Patch 4, прошивка 4. Проблема - не сохраняются Retain.
Сделал ввод чисел с визуализации в PLC_PRG. Переменные объявил в PLC_PRG Retain. При отключении питания переменные обнуляються. Думал проблема в том, что переменные пересылаються с визуализации в программу, обьявил счётчик Retain. Его выход на визуализацию. Так же при передёргивании питания счётчик обнуляется.
2538425385

Евгений Кислов
13.07.2016, 14:26
Уважаемые господа. СПК207 М4, Codesys 3.5 SP7 Patch 4, прошивка 4. Проблема - не сохраняются Retain.
Сделал ввод чисел с визуализации в PLC_PRG. Переменные объявил в PLC_PRG Retain. При отключении питания переменные обнуляються. Думал проблема в том, что переменные пересылаються с визуализации в программу, обьявил счётчик Retain. Его выход на визуализацию. Так же при передёргивании питания счётчик обнуляется.
2538425385

На экспериментальных прошивках версий 4.xxx действительно присутствует такая проблема. В релизной версии она, естественно, будет решена.

RV9WFJ
13.07.2016, 14:53
4.000 не рекомендую использовать пока. Там помимо этой проблемы есть еще целый букет. Сам долго пытался и так и сяк. В итоге откатился на 3.954

Drahtor
19.07.2016, 22:44
Здравствуйте. При установке Codesys 3.5 sp5 на Win proff 64 появляется ошибка CmContainer/wibukey runtime system is not installed. Далее процесс установки продолжается и все успешно ставится, но при работе, а именно при открытии ассистента ввода начинается в браузере открывается какой-то непонятный файл и только потом появляется само окно. И так каждый раз. Что это могло бы быть?
И еще: как полностью удалить codesys с компа? При переустановке он все равно помнит все старые проекты (даже удаленные) и предлагает их открыть. Удаление папок вручную и чистка реестра не помогает.

AleksandrV
20.07.2016, 13:04
Приветствую. Помогите разобраться с библиотекой Modbus Muster: http://www.owen.ru/catalog/codesys_v3/80224381. Необходимо связать по Modbus два контроллера СПК 207 (слэйв) и СПК 107 (мастер), слэйв работает, с помощью сторонних средств все регистры читаются. Проблема с мастером: обмен идёт, лампочки мигают но значения не приходят. Пробывал опрашивать модули ввода вывода, сторонние контроллеры, и программные эмуляторы, ничего не получается. Подозреваю что проблема в адресации. В СПК 107 опрашиваю регистры с адресом 0X0000, функция Read input registr 3. Эмулятором всё читается, а с СПК 107 нет.

Евгений Кислов
20.07.2016, 13:49
Приветствую. Помогите разобраться с библиотекой Modbus Muster: http://www.owen.ru/catalog/codesys_v3/80224381. Необходимо связать по Modbus два контроллера СПК 207 (слэйв) и СПК 107 (мастер), слэйв работает, с помощью сторонних средств все регистры читаются. Проблема с мастером: обмен идёт, лампочки мигают но значения не приходят. Пробывал опрашивать модули ввода вывода, сторонние контроллеры, и программные эмуляторы, ничего не получается. Подозреваю что проблема в адресации. В СПК 107 опрашиваю регистры с адресом 0X0000, функция Read input registr 3. Эмулятором всё читается, а с СПК 107 нет.

Вы читали документ СПК. Modbus? Там есть пример использования этой библиотеки для опроса модулей Mx. Обратите внимание на раздел FAQ (п. 9 в документе).
http://www.owen.ru/forum/showthread.php?t=23897

Если это не поможет, отправьте архивы проектов для обоих контроллеров на e.kislov@owen.ru

LuckLake
25.07.2016, 14:33
Помогите, пожалуйста, с проблемой визуализации. Суть: есть глобальная переменная text: STRING, в которую по мере выполнения программы записывается один из 12 текстов. Текст должен выводиться на экран СПК. Как мне это сделать? Ввод в свойство "текстовые переменные" значения text ничего не дает. Что я делаю неправильно?

Евгений Кислов
25.07.2016, 14:35
Помогите, пожалуйста, с проблемой визуализации. Суть: есть глобальная переменная text: STRING, в которую по мере выполнения программы записывается один из 12 текстов. Текст должен выводиться на экран СПК. Как мне это сделать? Ввод в свойство "текстовые переменные" значения text ничего не дает. Что я делаю неправильно?

В параметре Текст (вкладка параметров Тексты) необходимо указать спецификатор %s.

25533

LuckLake
25.07.2016, 14:38
Спасибо! Помогло.

RV9WFJ
25.07.2016, 14:44
И лучше не STRING, а WSTRING если кириллицу используете.

Эдуард_Н
01.08.2016, 09:46
Заметил, что в CODESYS V3.5 SP5 Patch 5 плохо работает пункт "порядок выполения" - "упорядочить в соответствии с потоком данных".
Что делать, пересобирать алгоритм с нуля?

Евгений Кислов
01.08.2016, 09:48
Заметил, что в CODESYS V3.5 SP5 Patch 5 плохо работает пункт "порядок выполения" - "упорядочить в соответствии с потоком данных".
Что делать, пересобирать алгоритм с нуля?

Можно, в принципе, поочередно задавать номера блоков - хотя, конечно, это тоже займет время.

Эдуард_Н
01.08.2016, 10:02
Можно, в принципе, поочередно задавать номера блоков - хотя, конечно, это тоже займет время.

почему эта версия КДС так раздаёт номера?

Евгений Кислов
01.08.2016, 10:30
почему эта версия КДС так раздаёт номера?

По всей видимости, баг конкретной версии CODESYS.

RollForRepair
02.08.2016, 16:03
Здравствуйте! Пытаюсь подружить СПК207 и MasterOPC server через Modbus TCP (конечная цель добраться до создания SCADA). В связи с этим возникло несколько (чайниковских) вопросов. Честно говоря, даже не знаю в каком разделе форума спрашивать, поскольку вопросы из разных категорий.

- Правильно ли я понимаю : если я хочу записывать значение переменных для СПК207 через OPC сервер, то мне нужно задавать его как Slave устройство; если меня интересует лишь считывание данных, то я устанавливаю его как master; если мне нужно и считывать и записывать данные, то сначала я задаю устройство как Master, а затем как Slave?
- Как расшифровываются адреса для переменных в Codesys %IW0 и %QW0 ? Не очень понимаю значения символов I, Q, W. Это адреса массивов данных в памяти СПК207?
- В чём отличие тэгов OPC сервера и переменных которые можно задавать для slave устройства?
- Как мне "выудить" полученные с OPC сервера данные и использовать их в программе самого СПК?

Евгений Кислов
02.08.2016, 16:04
Здравствуйте! Пытаюсь подружить СПК207 и MasterOPC server через Modbus TCP (конечная цель добраться до создания SCADA). Возникли в связи с этим несколько (чайниковских) вопросов. Честно говоря, даже не знаю в каком разделе форума постить, поскольку вопросы из разных категорий.

- Правильно ли я понимаю : если я хочу записывать значение переменных для СПК207 через OPC сервер, то мне нужно задавать его как Slave устройство; если меня интересует лишь считывание данных, то я устанавливаю его как master; если мне нужно и считывать и записывать данные, то сначала я задаю устройство как Master, а затем как Slave?
- Как расшифровываются адреса для переменных в Codesys %IW0 и %QW0 ? Это адреса массивов данных в памяти СПК207?
- В чём отличие тэгов OPC сервера и переменных которые можно задавать для slave устройства?
- Как мне "выудить" полученные с OPC сервера данные и использовать их в программе самого СПК?

Напишите мне на почту, я отправлю вам рабочую версию документа о связи СПК и OPC. Ваша задача там рассмотрена.

RollForRepair
02.08.2016, 16:07
Напишите мне на почту, я отправлю вам рабочую версию документа о связи СПК и OPC. Ваша задача там рассмотрена.

Написал вам с рабочей почты

Andrew_Stranger
05.08.2016, 15:34
Что означает синий кружок с буквой М на странице конфигурации Modbus?25715

Евгений Кислов
05.08.2016, 16:03
Что означает синий кружок с буквой М на странице конфигурации Modbus?25715

То, что адрес modbus регистра выбран вручную (адрес - в смысле как AT адрес в CODESYS 2.3). В целом, это практически никогда не нужно - пользователь должен работать с переменными, а не с адресами.

Andrew_Stranger
05.08.2016, 17:08
Спасибо. Еще бы хотелось узнавать данные адреса у разных слейвов в мастере могут пересекаться? У меня ситуация в одном слейве с одного канала регистры перекинул на другой, а в итоге другой слейв стал ругаться что повторятся что-то там.

Евгений Кислов
05.08.2016, 17:59
Спасибо. Еще бы хотелось узнавать данные адреса у разных слейвов в мастере могут пересекаться? У меня ситуация в одном слейве с одного канала регистры перекинул на другой, а в итоге другой слейв стал ругаться что повторятся что-то там.

Могут пересекаться, если задавать адреса вручную. Если этого не делать, то они распределяются автоматически, и проблем обычно не возникает.

На всякий случай поясню, что для снятия "синего флажка" необходимо ввести вместо адреса пустую строку.

Lacrimosa
06.08.2016, 16:13
Пытаюсь соеденить ПЛК 323 и МДВВ.
В соответствии с инструкцией с форума добавляю ModBus_COM устройство - компилируется нормально Com port - 4, затем Modbus Master Com Port - при компиляции выдает 501 ошибок и 2 предупреждения.
25718
Что я делаю не так?

Евгений Кислов
06.08.2016, 16:22
Пытаюсь соеденить ПЛК 323 и МДВВ.
В соответствии с инструкцией с форума добавляю ModBus_COM устройство - компилируется нормально Com port - 4, затем Modbus Master Com Port - при компиляции выдает 501 ошибок и 2 предупреждения.
25718
Что я делаю не так?

Какую версию Модбас мастера выбираете? Попробуйте выбрать 3.5.0.0, например.

Lacrimosa
06.08.2016, 16:29
В списке выбора только одно устройство с версией 3.5.4.0
Галочка на устаревших устройствах стоит

Евгений Кислов
06.08.2016, 16:50
В списке выбора только одно устройство с версией 3.5.4.0
Галочка на устаревших устройствах стоит

Установите "CODESYS Repository Archive V3.5 SP4 (Архив Репозитория для ПЛК3хх)"
http://www.owen.ru/catalog/codesys_v3/opisanie

Тогда доступных версий станет больше.

Lacrimosa
06.08.2016, 17:01
Установил,но ничего не добавилось

Евгений Кислов
06.08.2016, 17:02
Установил,но ничего не добавилось

CODESYS перезапускали?

Уточню, вам нужно будет использовать мастер версии 3.5.0.0, слэйв - 3.5.1.0.

Lacrimosa
06.08.2016, 17:19
Да перезапустил.
модбас ком версии 3,4,0,0
мастер 3,5,4,0
25719

Евгений Кислов
06.08.2016, 17:29
Да перезапустил.
модбас ком версии 3,4,0,0
мастер 3,5,4,0
25719

Да, понятно. Вам надо сделать так:

Инструменты - Опции - Свойства - выбрать Профессиональный режим настроек

Тогда в меню выбора версии появится возможность поставить галочку Отображать все версии (для экспертов).

Если возникнут проблемы, то можете связаться со мной по скайпу.

Lacrimosa
06.08.2016, 17:35
Спасибо БОЛЬШОЕ, получилось. Буду дальше ковырять!!!

Anjei
11.08.2016, 12:52
Доброго времени суток, друзья, подскажите пожалуйста, возможно ли сделать у кнопок рамки по периметру?
Прикрепляю файл своих кнопок.25774

Евгений Кислов
11.08.2016, 13:04
Доброго времени суток, друзья, подскажите пожалуйста, возможно ли сделать у кнопок рамки по периметру?
Прикрепляю файл своих кнопок.25774

На уровне настроек кнопки - вряд ли. Но можно наложить рамку поверх кнопки (использовать элемент Прямоугольник) или выбрать для кнопки подходящее фоновое изображение.

Anjei
11.08.2016, 13:13
Спасибо большое!

Anjei
11.08.2016, 17:02
Ещё один есть вопрос: окошко "фон" маловато по вертикали, ели вижу штуки, а в опция редактировать его нельзя(
Как быть?25777

И ещё вопрос, можно сделать заполнение прямоугольника полупрозрачным?

Евгений Кислов
11.08.2016, 17:37
Ещё один есть вопрос: окошко "фон" маловато по вертикали, ели вижу штуки, а в опция редактировать его нельзя(
Как быть?25777

И ещё вопрос, можно сделать заполнение прямоугольника полупрозрачным?


1. Эта проблема наблюдается в конкретной версии CODESYS при использовании русскоязычного интерфейса. Используйте более новую версию CODESYS или переключите язык на английский.

2. Такая возможность появилась в версии 3.5 SP6 - там у прямоугольника есть параметр Цвет заливки/Прозрачность.

Anjei
12.08.2016, 12:29
Установил новейшую версию с вашего сайта SP7, перестало работать колёсико мышки в программе(
И ещё один вопрос, с коллегой искали решение на форуме и в гугле. Но безрезультатно.
Как можно протестировать проект на работоспособность всех кнопок, диалогов и прочее? 25782
Кнопка старт всегда закрашена серым

Евгений Кислов
12.08.2016, 12:34
Установил новейшую версию с вашего сайта SP7, перестало работать колёсико мышки в программе(

Опишите, пожалуйста, проблему более подробно.

Anjei
12.08.2016, 12:52
25783 Работает, если нажать на элемент строки меню (Файл, правка, вид), появляется список подэлементов, а потом если перевести курсор на область(ничего уже не нажимая) колесо работает.

Anjei
12.08.2016, 13:06
Не знаю как, но заработало. Копался в менеджере визуализации, ничего не поменял, потом заработало.

Anjei
12.08.2016, 13:30
25784 Прозрачность все так же не регулируется, в других свойствах прозрачность не отыскал.

Евгений Кислов
12.08.2016, 13:58
25784 Прозрачность все так же не регулируется, в других свойствах прозрачность не отыскал.

Поставьте вот эту галочку:

25786

Anjei
12.08.2016, 14:46
25788 Таки дела. Есть ещё вопрос. SysLibDir.lib это стандартная библиотека? Не могу найти её в списке системных

Евгений Кислов
12.08.2016, 15:07
25788 Таки дела. Есть ещё вопрос. SysLibDir.lib это стандартная библиотека? Не могу найти её в списке системных

1. Уточнил ситуацию - на текущих прошивках СПК поддержка прозрачности еще не реализована.
2. Вероятно, вы ищите библиотеку SysDir. Она действительно является стандартной.

Anjei
12.08.2016, 17:19
25789 Самая крайняя версия SP9 patch1. С русским интерфейсом совсем беда, можно ли удалить русский язык?

Евгений Кислов
12.08.2016, 18:18
25789 Самая крайняя версия SP9 patch1. С русским интерфейсом совсем беда, можно ли удалить русский язык?

Можно изменить язык интерфейса на английский. Инструменты - Опции - Международные установки.

Anjei
17.08.2016, 10:58
Доброго дня! Есть вопрос, на форуме ничего толком не нашел, никаких примеров.
25834 Есть такая форма, нампада, для ввода пароля, ибо стандартные не подходят по стилистике.
Как через нее реализовать форму ввода пароля?

Евгений Кислов
17.08.2016, 11:06
Доброго дня! Есть вопрос, на форуме ничего толком не нашел, никаких примеров.
25834 Есть такая форма, нампада, для ввода пароля, ибо стандартные не подходят по стилистике.
Как через нее реализовать форму ввода пароля?

Возможно, проще создать свою версию numpad'a?

См. библиотеку VisuDialogs.library. Она находится в директории установки CODESYS по пути

...\CODESYS\Projects\Visu\Dialogs

Предварительно рекомендуется где-то сохранить исходную версию.

Anjei
17.08.2016, 11:27
А как её редактировать? Ибо если её просто открыть, то в заголовке написано "Read_only" хоть и галочка на свойствах снята. (Гет, алсо)

Евгений Кислов
17.08.2016, 11:35
А как её редактировать? Ибо если её просто открыть, то в заголовке написано "Read_only" хоть и галочка на свойствах снята. (Гет, алсо)

Пересохранить куда-нибудь. Ну или Проект - Информация проекта - снять галочку Выпущен (Released).

Anjei
17.08.2016, 11:43
Благодарю, уже нашел)

Anjei
17.08.2016, 12:02
А можно каким-либо образом выбрать свой цвет для текста? В свойствах текста только дефолтные

Евгений Кислов
17.08.2016, 12:07
А можно каким-либо образом выбрать свой цвет для текста? В свойствах текста только дефолтные

Можно попробовать добавить в интерфейс диалога константу со значением цвета в RGB и привязать ее к параметру Цвет (вкладка Переменные шрифта). Пример работы с переменными цвета см. в документе СПК. Визуализация, п. 11.2.1.

Anjei
17.08.2016, 14:51
Возможно, проще создать свою версию numpad'a?

См. библиотеку VisuDialogs.library. Она находится в директории установки CODESYS по пути

...\CODESYS\Projects\Visu\Dialogs

Предварительно рекомендуется где-то сохранить исходную версию.

Версию нампада сделал.
По инструкции "Многопользовательский доступ" сделал логирование.
Однако окошко "Логин" требует имя и пароль.
А мне нужно, чтобы только с паролем, через нампад.

Евгений Кислов
17.08.2016, 14:59
Тогда, вероятно, вам придется отказаться от встроенного механизма User Managment'a и реализовать его в своей программе.

Anjei
17.08.2016, 15:13
Я с самого начала так и хотел. На форуме по реализации подобного нема(((
Есть какие-нибудь гайды как написать ?

Евгений Кислов
17.08.2016, 15:22
Я с самого начала так и хотел. На форуме по реализации подобного нема(((
Есть какие-нибудь гайды как написать ?

Подобных гайдов нет. Конкретизируйте свою задачу. Каким образом должна производиться обработка пользователей после ввода пароля? В каждый момент времени в системе может быть только один или несколько пользователей?

Anjei
17.08.2016, 15:32
Я набросал это таким образом.
На СПК110 есть кнопка для открытия настроек.
При её нажатии должен выскочить нампад с заголовком Введите пароль (Пароль при этом будет константой).
Вводим пароль, программа сравнивает его с константой, при верном вводе выводит визуализацию настроек,
при не верном выдает визуализацию: "Пароль не верен" с кнопкой "Ок" и выкидывает опять на нампад.
Как-то так

Евгений Кислов
17.08.2016, 15:42
Я набросал это таким образом.
На СПК110 есть кнопка для открытия настроек.
При её нажатии должен выскочить нампад с заголовком Введите пароль (Пароль при этом будет константой).
Вводим пароль, программа сравнивает его с константой, при верном вводе выводит визуализацию настроек,
при не верном выдает визуализацию: "Пароль не верен" с кнопкой "Ок" и выкидывает опять на нампад.
Как-то так

Понятно. Тогда, вероятно, наиболее простой способ - создать свой диалог Numpad внутри проекта и заранее наложить на него сообщение "Пароль не верен", которое по умолчанию будет невидимой. В поле ввода пароля STRING переменная, при нажатии цифр записываем их туда (через CONCAT) и по нажатию кнопки ОК сравниваем введенный пароль с существующим. Если совпадают - переключаем экраны через CurrentVisu и затираем введенный пароль, если нет - делаем видимым сообщение "Пароль не верен", по нажатию кнопки ОК делаем его опять невидимым и затираем введенный пароль.

Anjei
17.08.2016, 16:31
А как затереть пароль и как сделать запись цифр через CONCAT. Если использовать NumPad из VisuDialogs? Он выдает фрейм элемента и кнопку ОК в него входит, хз как запрограмировать

allsan-che
24.08.2016, 13:14
Здравствуйте! нужна помощь! На СПК 110 для отображения надписей в визуализации на русском языке необходимо включить Unicode. Но при этом пропадает правильное отображение значения текстовых переменных на элементах (прямоугольник, кнопка) визуализации!!! Есть ли решение данной проблеммы?

allsan-che
24.08.2016, 13:22
Здравствуйте! нужна помощь! На СПК 110 для отображения надписей в визуализации на русском языке необходимо включить Unicode. Но при этом пропадает правильное отображение значения текстовых переменных на элементах (прямоугольник, кнопка) визуализации!!! Есть ли решение данной проблеммы?

Евгений Кислов
24.08.2016, 13:30
Здравствуйте! нужна помощь! На СПК 110 для отображения надписей в визуализации на русском языке необходимо включить Unicode. Но при этом пропадает правильное отображение значения текстовых переменных на элементах (прямоугольник, кнопка) визуализации!!! Есть ли решение данной проблеммы?

Для текстовых переменных, отображаемых в визуализации и содержащих кириллицу, необходимо использовать переменные типа WSTRING.

allsan-che
24.08.2016, 13:53
Текст %2.1f% текстовая переменная REAL, при вкл. Unicode просто текст %2.1f% а не действительное значение с датчика!!!

Евгений Кислов
24.08.2016, 13:58
Текст %2.1f% текстовая переменная REAL, при вкл. Unicode просто текст %2.1f% а не действительное значение с датчика!!!

Попробуйте вот так: %2.1f%%

allsan-che
24.08.2016, 14:02
Спасибо! попробую!

mozaiqa
02.09.2016, 10:38
Подскажите источники информации по реализации взаимодействия плк3хх с купюроприемником в CodeSys 3.x (на руках плк 323 и приемник OryONE LB-MC02)

Осинский Алексей
05.09.2016, 10:04
Подскажите источники информации по реализации взаимодействия плк3хх с купюроприемником в CodeSys 3.x (на руках плк 323 и приемник OryONE LB-MC02)

Добрый день!
На сколько я знаю готовых решений нет и придется реализовывать самостоятельно.
Начать я бы посоветовал с выбора интерфейса и протокола, по которым устройства будут общаться между собой.
Наиболее простым я считаю реализацию импульсного протокола. Имея его описание (должно быть в руководстве по эксплуатации на приемник) можно приступать к реализации в CODESYS.

Для начала работы в CODESYS можно ознакомиться с первыми шагами (http://www.owen.ru/catalog/codesys_v3/19944443)

дрю
12.09.2016, 11:32
Добрый день! есть более 20 агрегатов которые необходимо запускать последовательностью которая будет постоянно уточняться(линия новая и тех процес пока на коленках) создал визуализацию в одном столбеце будет указываться переменная с номером агрегата (он будет меняться с экрана СПК) а второй столбец это номерация которая отрожает номер в очереди пуска она меняться не будет 26346. Создал масив глобальных переменных по количиству агрегатов
VAR_GLOBAL
NOMER_AGR: ARRAY[1..27] OF INT;
END_VAR
В которых , собственно и предпологаеться хранить номер агрегата заданый оператором. Программа будет последовательно перебирать окошки с номерами агрегатов, распозновать их и выдержав задержку включать. А теперь собственно вопрос: Как привязать окошко с переменной номера агрегата к ячейки масива? Другими словами первое окошко это ячейка масива 1, второе 2, третье 3 и.т.д. Как связывать графичиские примитивы в визуализации с переменными я знаю а как с индексами масива не поиму. Подскажите как это будет выглядеть на ST, если это возможно. Спасибо.

дрю
12.09.2016, 11:34
Не приклеилось изображение, 26350

Евгений Кислов
12.09.2016, 11:49
А теперь собственно вопрос: Как привязать окошко с переменной номера агрегата к ячейки масива? Другими словами первое окошко это ячейка масива 1, второе 2, третье 3 и.т.д. Как связывать графичиские примитивы в визуализации с переменными я знаю а как с индексами масива не поиму. Подскажите как это будет выглядеть на ST, если это возможно. Спасибо.

Честно говоря, не очень понял, причем тут язык ST, но элементы массива привязываются к элементам визуализации вполне очевидным способом:

окошко 1 - NOMER_AGR[1]
окошко 2 - NOMER_AGR[2]

и т.д.

дрю
12.09.2016, 13:36
Спасибо буду пробовать , обязательно отпишусь.

RA.
12.09.2016, 13:39
я похожую штуку сделал так:
- массив ArrArg[1...24]
- переменная(ые) для диалогового окна DialogArg
- в этом диалоговом окне на визуализацию привязана именно эта переменная DialogArg
- N - переменная определяющая номер (индекс элемента массива) выбранного агрегата
- при открытии этого диалог окна для конкретного агрегата N выполняю ST : DialogAgr:=ArrArg[N];
- открываем диалог - видим нужное значение(ия) по выбранному агрегату
- Если из диалога менять что-то, то выполняю обратную операцию при закрытии диалога : ArrArg[N]:=DialogArg;
- Сам выбор номера N (агрегата) можно сделать в виде стандартного элемента управления комб.окно-массив или комб.окно-целочисленный. В первом случае будут представлены в виде таблицы, в другом в виде списка выбора

PS: от гуру прошу так же покритиковать такой метод

RA.
12.09.2016, 13:48
посмотрел еще раз - имхо оптимальной будет таблица из 1ого столбца=массива, номер строки есть по умолчанию, к нему и привязать индекс элемента массива.
выбираем нужный шаг (строку в таблице) - открываем диалог, вводим/выбираем номер агрегата, закрываем (= записываем значение в выбранный элемент массива)
переходим к следующему шагу.
Если выбран 0 - тогда идем к след шагу.

+ Можно сделать n-мерный массив типа [1..n, 1..27] типа стринг, тогда можно и коментарии к шагам оставлять)) но, если делать это ретайнами (сохраняемыми) много памяти сожрать может.

дрю
12.09.2016, 15:30
Евгений большое спасибо ! Работает как вы сказали, в документации этого не нашёл и пришлось просить помощь зала. Благодарю!

дрю
12.09.2016, 15:41
RA,Добрый день. Вы похоже решали задачу похожею на мою, скажите а каким методом вы определяли в проге номер агрегата,т.е. вы извлекли из масива ,например, 15 и как опредилили что нужно включить 15 , а не 14?

RA.
12.09.2016, 15:55
RA,Добрый день. Вы похоже решали задачу похожею на мою, скажите а каким методом вы определяли в проге номер агрегата,т.е. вы извлекли из масива ,например, 15 и как опредилили что нужно включить 15 , а не 14?

ну у меня немного другая задача была: массив заданий: состоящий из количества штук и длины производимой заготовки.
после старта задания назначаю индекс массива = 1, беру из этих элементов массива длину и кол-во
анализирую если кол-во = 0, увеличиваю индекс (+1)
если кол-во больше 0, тогда длину и кол-во "передаю на изготовление"
в ходе изготовления считаю сделанные единицы и вычитаю из начального задания
как только этот остаток станет равен 0 - перехожу на след шаг - снова увеличиваю индекс (+1)
и т.д.
естественно следим чтобы индекс не вылезал за размер массива
в конце задания индекс ставлю =0. И останавливаю процесс - т.е. весь описанный выше код не исполняется, а как только пускаю (в ручную) изменю индекс на 1.

и да, эта программа на 90% состоит из проверок, а сами переключения по шагам в одном repeat сделаны.

дрю
12.09.2016, 16:01
Примерн с инкриментом индекса и я собираюсь делать, а что такое *repeat* и на каком языке пишите?

RA.
12.09.2016, 16:03
RA,Добрый день. Вы похоже решали задачу похожею на мою, скажите а каким методом вы определяли в проге номер агрегата,т.е. вы извлекли из масива ,например, 15 и как опредилили что нужно включить 15 , а не 14?

в этом случае можно брать текущий шаг - N элемента массива и затем


case ArrAgr[n] of
1: Var1:=true;
2: Var2:=true;
...
27: Var27:true;
End_case;