а если я использовал язык LD
Вид для печати
Добрый день!
Подскажите пожалуйста что это значит? Я не менял приложение, вообще ничего не менял, просто открыл проект и попытался прилогиниться к работающему ПЛК-200.
Вложение 60970
samthesuperhero Когда CodeSys компилирует проект на компьютере (перед заливкой в ПЛК), то вместе с файлом проекта создаёт файл с расширением ".compileinfo". В нём он запоминает разные данные, по которым понимает: изменилось ли приложение в ПЛК или нет.
Если этот файл удалить (или открыть проект в другой папке) - то CodeSys всё забывает и про это как раз и сообщает.
Добрый день коллеги. Можно ли загрузить овеновские библиотеки на другой плк (Regul)?
Артем Ильин программные частично да, аппаратные нет.
Добрый день. OwenPidRegs.
Всем привет.
Вопрос такой, возможен ли в Codesys многопользовательский режим разработки? Чтоб над одним проектом работало несколько человек одновременно?
По Codesys 2.3 нашел инфу про ENI server, с помощью которого это было возможно. Возможно ли это в Codesys 3.5?
Добрый день.
Это возможно при использовании платного плагина Professional Developer Edition - там есть средства для интеграции с Git и SVN.
https://store.codesys.com/en/codesys...r-edition.html
Доброе время суток всем! Вопрос про массивы в OPC. На рисунке Вложение 60994 видно, что в проекте (глобальный лист) объявлен массив gotoWindow: ARRAY [1..10] OF INT В то же время, при использовании этого массива в панели Weintek (правая часть рисунка), видно что массив имеет индексы от 0 до 9. Это чьи особенности: Codesys, Weintek, или OPC сам себе переназначает индексы?
...Похоже что это Weintek. Если выполнить экспорт тегов, то в файле xml можно увидеть следующее (фрагмент):
<UAVariable NodeId="ns=4;s=|var|PLC210 OPC-UA.Application.op2var.gotoWindow" DisplayName="gotoWindow(|var|PLC210 OPC-UA.Application.op2var.gotoWindow)" Description="" Verified="true" DataType="Int16" DimensionInfo="10" SampleInterval="500">
<UAVariable NodeId="ns=4;s=|var|PLC210 OPC-UA.Application.op2var.gotoWindow[10]" DisplayName="gotoWindow[10](|var|PLC210 OPC-UA.Application.op2var.gotoWindow[10])" Description="" Verified="true" DataType="Int16" DimensionInfo="" SampleInterval="500"/>
<UAVariable NodeId="ns=4;s=|var|PLC210 OPC-UA.Application.op2var.gotoWindow[1]" DisplayName="gotoWindow[1](|var|PLC210 OPC-UA.Application.op2var.gotoWindow[1])" Description="" Verified="true" DataType="Int16" DimensionInfo="" SampleInterval="500"/>
<UAVariable NodeId="ns=4;s=|var|PLC210 OPC-UA.Application.op2var.gotoWindow[2]" DisplayName="gotoWindow[2](|var|PLC210 OPC-UA.Application.op2var.gotoWindow[2])" Description="" Verified="true" DataType="Int16" DimensionInfo="" SampleInterval="500"/>
<UAVariable NodeId="ns=4;s=|var|PLC210 OPC-UA.Application.op2var.gotoWindow[3]" DisplayName="gotoWindow[3](|var|PLC210 OPC-UA.Application.op2var.gotoWindow[3])" Description="" Verified="true" DataType="Int16" DimensionInfo="" SampleInterval="500"/>
<UAVariable NodeId="ns=4;s=|var|PLC210 OPC-UA.Application.op2var.gotoWindow[4]" DisplayName="gotoWindow[4](|var|PLC210 OPC-UA.Application.op2var.gotoWindow[4])" Description="" Verified="true" DataType="Int16" DimensionInfo="" SampleInterval="500"/>
<UAVariable NodeId="ns=4;s=|var|PLC210 OPC-UA.Application.op2var.gotoWindow[5]" DisplayName="gotoWindow[5](|var|PLC210 OPC-UA.Application.op2var.gotoWindow[5])" Description="" Verified="true" DataType="Int16" DimensionInfo="" SampleInterval="500"/>
<UAVariable NodeId="ns=4;s=|var|PLC210 OPC-UA.Application.op2var.gotoWindow[6]" DisplayName="gotoWindow[6](|var|PLC210 OPC-UA.Application.op2var.gotoWindow[6])" Description="" Verified="true" DataType="Int16" DimensionInfo="" SampleInterval="500"/>
<UAVariable NodeId="ns=4;s=|var|PLC210 OPC-UA.Application.op2var.gotoWindow[7]" DisplayName="gotoWindow[7](|var|PLC210 OPC-UA.Application.op2var.gotoWindow[7])" Description="" Verified="true" DataType="Int16" DimensionInfo="" SampleInterval="500"/>
<UAVariable NodeId="ns=4;s=|var|PLC210 OPC-UA.Application.op2var.gotoWindow[8]" DisplayName="gotoWindow[8](|var|PLC210 OPC-UA.Application.op2var.gotoWindow[8])" Description="" Verified="true" DataType="Int16" DimensionInfo="" SampleInterval="500"/>
<UAVariable NodeId="ns=4;s=|var|PLC210 OPC-UA.Application.op2var.gotoWindow[9]" DisplayName="gotoWindow[9](|var|PLC210 OPC-UA.Application.op2var.gotoWindow[9])" Description="" Verified="true" DataType="Int16" DimensionInfo="" SampleInterval="500"/>
<UAVariable NodeId="ns=4;s=|vprop|PLC210 OPC-UA.Application.op2var.gotoWindow.Dimensions" DisplayName="Dimensions(|vprop|PLC210 OPC-UA.Application.op2var.gotoWindow.Dimensions)" Description="" Verified="true" DataType="UInt32" DimensionInfo="" SampleInterval="500"/>
<UAVariable NodeId="ns=4;s=|vprop|PLC210 OPC-UA.Application.op2var.gotoWindow.IndexMax" DisplayName="IndexMax(|vprop|PLC210 OPC-UA.Application.op2var.gotoWindow.IndexMax)" Description="" Verified="true" DataType="UInt32" DimensionInfo="" SampleInterval="500"/>
<UAVariable NodeId="ns=4;s=|vprop|PLC210 OPC-UA.Application.op2var.gotoWindow.IndexMin" DisplayName="IndexMin(|vprop|PLC210 OPC-UA.Application.op2var.gotoWindow.IndexMin)" Description="" Verified="true" DataType="UInt32" DimensionInfo="" SampleInterval="500"/>
</UAVariable>
Как видно, индексы идут от 1 до 10, а при обращении к тегам - от 0 до 9 (!)
Только 10-й элемент почему-то первым идёт...
Добрый день.
OPC UA Expert показывает индексы корректно (как в CODESYS), так что это на стороне Weintek.
Вложение 60995 Вложение 60996
Всем добра!
Пользую MQTT библиотеку от stefandreyer. Периодически возникает глюк, с происхождением которого пока разобраться не удалось. Впрочем как и с его решением, оттого и пишу сюда. Ситуация следующая: в какой-то момент ФБ принимает такое состояние, из которого его вывести невозможно и он при этом не работает. Проблема решается только перезапуском приложения, отсюда родилась идея каким-то образом сбрасывать ФБ в начальное состояние. Как это можно реализовать?
Привет.
Подскажите, а CodeSys при написании программы на ST как-то реагирует на тег TODO ?
Например, учет этого тега при компилировании, при загрузке проекта в ПЛК, при сохранении архива в ПЛК (на сервере CodeSys).
Скрытый текст:
Пример использования:
Код:...
rXmax := rX * 1.05; // вычисляем верхний барьер +5%
rXmin := rX * 0.95; // вычисляем нижний барьер -5%
// TODO: Нельзя вписывать границы барьера прямо в код, неуч! Тут нужно переделать. Завтра у заказчика этот барьер может стать другим.
...
sIP := '192.168.1.2'; // наш локальный сервер
// TODO: Кто же вписывает динамические адреса прямо в код, лапоть! Надо переписать код. Кто потом поедет в Эритрею править этот код?
...
Например, это могло быть реализовано через "Предупреждения" при компилировании.
0 - ошибок, 2 предупреждения, 78 сообщений: готово к загрузке!
UPD: А можно и через подсветку синтаксиса в коде. Красным цветом, например.
Тогда используйте соответствующую прагму.
https://help.codesys.com/webapp/_cds...rsion=3.5.17.0
Код:{warning '// TODO: Кто же вписывает динамические адреса прямо в код, лапоть! Надо переписать код. Кто потом поедет в Эритрею править этот код?'}
sIP := '192.168.1.2'; // наш локальный сервер
Нет идей как сбросить функциональный блок в изначальное состояние?
Пока у меня только одна идея: создавать ФБ через __new, соответственно при возникновении проблемы убивать экземпляр и создавать новый....Но не хочется прибегать к такому способу, подозреваю, что могут быть трудности с определением количества памяти, которое необходимо выделить (если я правильно представляю себе работу этой функции).
Подскажите пожалуйста, как при вызове Диалога, в его настройках, присвоить входному параметру десятичное значение?Вложение 61045
Когда это было в десятке-другом случаев, то я так и делал. Объявлял константы со значащими именами, например "Const100", "Const101", "ConstNuul"....
В данном проекте диалог имеет несколько сотен вызовов. Создать сотни констант для этого? Да не вопрос, но коряво же как!
Здравствуйте! Есть ли какая-либо возможность чтения текущей температуры с погодных серверов у контроллеров под CDS3.5? Например, через http-запрос, как в примерах Simple-SCADA? (https://simple-scada.com/help/script/weather.html)
Добрый день.
Да, такая возможность есть.
https://owen.ru/forum/showthread.php...l=1#post356369
Доброе время суток всем! Поддержка Weintek ответила следующее: "...We only support array starting from 0, and please check if your array in PLC in set starting from 0." От себя делаю вывод - массивы (хотя бы для OPC + Weintek) определять только начиная с индекса 0.
Здравствуйте.
Был рабочий проект на sp16. Привезли контроллеры с новой прошивкой. Установил sp17, таргеты, перенес проект. Проект в sp 17 компилируется без ошибок, зашивается и работает нормально.
Но если я теперь открываю старый проекты в sp16, то он компилируется с ошибками. Хотя до установки sp17 все было нормально. Фактически я не могу подключиться к старым работающим установкам.
Пример ошибок в одном из проектов.
Вложение 61232
И непонятен вопрос с СПК. В sp17 таргеты есть новые, а прошивки новой для СПК на сайте нету. Как из sp17 прошивать СПК.
У меня две версии и есть. Могу запустить и sp16 и sp17. Но когда открываю старые проекты в sp16, то они с ошибками. Или надо устанавливать все версии на виртуальные машины?
Заметил, что когда открываю старый проект в sp16 в свойствах device как 3.5.17 отображается. Хотя при запуске я update не делаю.
Попробовал преобразовать проект из sp16 в sp17 потом сохранил для sp16.
При открытии проекта в sp16 появляются сообщения различные, типа такого
Вложение 61240
Но в итоге после открытия проект компилируется без ошибок. В принципе, ваше решение работает. Но почему проекты сделанные в sp16 сразу не работают в sp16 после установки sp17 не понятно.
Пожалуйста.
Да, публичный ключ в web-конфигураторе не отображается. Собственно, кнопка генерации, на мой взгляд, в данный момент не выглядит осмысленно - возможно, мы уберем ее в следующей прошивке или добавим отображение публичного ключа.
В рассматриваемом нами типовом сценарии ключи генерируются на стороне "сервера" (того пира, который выполняет его роль - например, серверного ПК).
При открытии старого проекта в sp16 появляется окно с предложением проапдейтить библиотеки до 4.1.0.0 , device до 3.5.17 и motion до 4.10.0.0. Если все это проапдейтить, то sp16 нормально компилируется без ошибок. Хотя до установки sp17 нормально компилировалось с этими же библиотеками версии 3.5.16
Вложение 61241
если не сделать update - то будут ошибки, если сделать - то не будет ошибок.