И всё же, как вы оцениваете возможность реализации тех двух пунктов из моих (не только) хотелок для OwenCommunication? Или желать этого мне больше не стОит?
Вид для печати
И всё же, как вы оцениваете возможность реализации тех двух пунктов из моих (не только) хотелок для OwenCommunication? Или желать этого мне больше не стОит?
По моей оценке - эти пункты нужны только лично вам в вашем конкретном специфическом случае, причем исключительно на этапе отладки проектного решения.
Я добавлю их в общий список пожеланий, но приоритет у них по приведенной выше причине будет довольно низкий.
И пока не увидел объяснения потребности в этом:
Цитата:
При указании usiSlaveId в 255 по аналогии с массивом паттернов запрещённых запросов организовать массив разрешённых адресов
> И пока не увидел объяснения потребности в этом
При наличии на шине других Slave-ов не отзываться на запросы к ним.
> возможность задавать для блока список Slave ID, на запросы к которым он отвечает
Да, именно это. Возможно, я коряво описал функционал.
Евгений, извините, я видимо вклинился в разговор и написал одновременно с вами. Не подскажете по поводу https://owen.ru/forum/showthread.php...l=1#post347908 ?
Что-то случилось с контроллером ПЛК210-03. Сделал проект, водрузил контроллер на оборудование. Через час всё стало зависать. На месте ничего не вышло. Принёс контроллер домой. Виснет визуализация, иногда и программа чудит. Не запоминаются Retain-переменные. Думал что не так в проекте. Начал из проекта удалять куски. Ничего не меняется. Создал пустой проект, в нём обозначил 3 Retain-переменных. Закидываю в них значения из кодесис, отключаюсь, перезагружаю контроллер - там нули.
В файлах журналов две ошибки красные и две жёлтые.Вложение 53154Вложение 53155
Батарейка, написано, что хорошая - 3.092В
Добрый день.
Как именно это проявляется?Цитата:
Виснет визуализация
Как именно это проявляется?Цитата:
и программа чудит
Как именно вы их обозначили?Цитата:
Создал пустой проект, в нём обозначил 3 Retain-переменных
Визуализация в основном перестаёт реагировать на кнопки. Иногда сами-по себе вылезают диалоги. Бывает просто не запускается при старте контроллера. Всё время крутится красное колёсико на экране.
В программе поставил включение питания панели по сигналу TRUE. Ну чтобы панель включалась, как запустится контроллер. Так вот, он однажды умудрился панель обесточить через некоторое время после старта.
Загрузочное приложение создаю, когда контроллер в режиме онлайн находится, или ставлю галочку "обновить загрузочное приложение" в менюшке загрузки.
Я создал, ФБ. В нем я объявил переменные, как их скрыть когда, я вызываю ФБ?
Что значит - скрыть?
При программировании набрать ФБ и нажать Ctrl+пробел, то вылезает весь перечень используемых переменных как от этого уйти?
Используйте прагму hide:
https://help.codesys.com/webapp/_cds...rsion=3.5.16.0
Перед объявлением переменных (строка выше VAR) добавить {attribute 'hide'}.
Почему то мне не разрешено писать сообщения в ветке про ПЛК210, поэтому спрошу тут.
В добрые старые времена, когда Codesys 3.5 sp11 p5 считался "вполне себе", периодически появлялась нужда поместить в переменную текущий IP. Делал я это для СПК1xx[M01] так:
И в целом все работало. Но настали новые времена, потребовались новые решения для ПЛК210 и я увидел, что в новом Codesys 3.5 sp14 p3 такой код неприменим. В таргетах все поменялось. Как мне правильно получить IP контроллера? Учитывая, что их может быть больше одного?Код:GVL.strIP:=concat(concat(concat(BYTE_TO_STRING(TargetVars.stNetwork.abyGetIp[0]),'.'),BYTE_TO_STRING(TargetVars.stNetwork.abyGetIp[1])),'.');
GVL.strIP:=concat(GVL.strIP,concat(concat(BYTE_TO_STRING(TargetVars.stNetwork.abyGetIp[2]),'.'),BYTE_TO_STRING(TargetVars.stNetwork.abyGetIp[3])));
Раздел "43. Modbus TCP - изменение сетевых настроек из кода программы" в CODESYS V3.5. Онлайн-FAQ похоже нужно поправить - в таргетах на ПЛК210 нет узла Network.
Дело не в SP11/SP14 (для СПК на SP14 узел Network точно также доступен), а в том факте, что у ПЛК сетевых интерфейсов "может быть больше одного" (и более того - их число может изменяться в зависимости от конкретной конфигурации).
https://owen.ru/forum/showthread.php...l=1#post336649Цитата:
Как мне правильно получить IP контроллера? Учитывая, что их может быть больше одного?
Добавил в п. 43 информацию насчет того, что узел Network присутствует только у СПК.Цитата:
CODESYS V3.5. Онлайн-FAQ похоже нужно поправить
Добрый день. В приложенном проекте при попытке записать в ENUM Param_0008_E (VfdWesperRegisters/Group_00/) следующих значений:
5| ValueRawCoeff := 100,
6| ValueRawMin := 0,
7| ValueRawMax := REAL_TO_UINT(599.0 * UINT_TO_REAL(,
-------------------------------------------------------------------^
8| ValueRawDefault := ,
9| Address := 16#XXXX
после ввода скобки, отмеченной знаком ^ происходит зависание IDE. Является ли такое поведение IDE ошибкой?
UPD: если вводить UINT_TO_REAL( медленно, и нажатиями кнопки Esc отклонять всплывающие подсказки IDE, то иногда получается завершить ввод.
Добрый день.
Да, является.Цитата:
Является ли такое поведение IDE ошибкой?
У вас тоже повторилось, или это моё персональное везение?
01| {attribute 'qualified_only'}
02| {attribute 'strict'}
03| TYPE Param_XXXX :
04| (
05| ValueRawCoeff := ,
06| ValueRawMin := ,
07| ValueRawMax := ,
08| ValueRawDefault := ,
09| Address := 16#XXXX
10| ) UINT := ValueRawDefault;
11| END_TYPE
Исходный шаблон выглядит так, я его копирую в Enum каждого нового регистра, и изменяю в соответствии с его ограничениями.
Ну и пусть бы подчёркивал красным, как синтаксическую ошибку. Виснуть-то зачем?
> это для человека пустота не число, процессоры так не думают
Вы мне будете рассказывать, как работает синтаксический анализатор?
> Разве так сложно написать грамотное перечисление согласно спецификации?
Зачем тогда вообще IDE? Давайте в машинных кодах всё писать. И сразу без ошибок. Это же несложно, да?
> ну ну, не плачте
Спасибо! Спасибо вам! Если бы не вы -- даже не знаю, что произошло-бы. Я очень вам благодарен за поддержку. Кстати, вот, держите -- ь -- вы обронили.
> изменить парарметризацию устройств не через перечисление, а через структуру, просто enum константный нельзя через него дать несколько адресов разным устройствам
Да я пока к окончательному выводу, как всё это будет работать, ещё не пришёл. Экспериментирую. ENUM-ы эти, скорее, для удобства, наглядности, при инициализации параметров. Они в устройства не попадут.
Ошибка при скачивании CODESYS V3.5 SP11 Patch 5. Ошибка сети на последней минуте. Кто подскажет, как скачать?
Подскажите новичку, пытаюсь читать/писать данные с/на СПК107 через RS-232(COM5) <-> FTDI232 <-> ПК(Putty). Данные приходят и уходят, но непонятно в каком-то виде. Отправляю с ПЛК тип String '1' на ПК приходит 'g'. отправляю на ПЛК 1 приходит 'g'. Не пойму в чём дело. В место FTDI232 использовал для приёмо-передачи arduino mega , тоже самая неразбериха.
отправляю '3' приходит 'f'
k это J и всё в таком духе. отправляю 'test' приходит 'Q'
если отправлять с компа:
1 это g
2 это i
3 это f
4 - ничего не приходит
5 это e
6 это I
если отправлять эти символы с СПК
1 это g
2 это 3
3 это f
4 ничего не приходит
5 это e
6 это 2
никакой закономерности не нашёл...
Судя по схеме - вы одновременно пытаетесь считывать и записывать в COM-порт.
Так делать нельзя.
Проще будет использовать библиотеку OwenCommunication:
https://youtu.be/uH3hnXmc0fw
А есть возможность попробовать с другим конвертером?
Делал пересылку сигналов через arduino mega через простой код:
Символы приходят аналогичные.PHP код:void setup() {
// initialize both serial ports:
Serial.begin(9600);
Serial1.begin(9600);
}
void loop() {
// read from port 1, send to port 0:
if (Serial1.available()) {
int inByte = Serial1.read();
Serial.write(inByte);
}
Я имел в виду нормальный конвертер RS-232 to USB на базе какого-то известного чипа (Prolific, Silicon Labs и т.д.).
Поэкспериментировал с физическим портом на ноуте - всё нормально отображает. Почему такой эффект может происходить?
Например, потому что на конвертере FTDI и Arduino может быть не RS-232, а TTL.
Всем добрый день! Нужно пнуть новичка в нужном направление. Что-то я запутался с передачей переменных Real. С ПЛК110.32 на СП310. Знаю что тем много...и все читал, но что-то не так делаю.
Подключил библиотеку ОСКАТ_333. Т.к там есть блок REAL_TO_DW, который не делает округление. Создаю в ресурсах переменную 4 byte (DWORD) и передаю на панель. Там создаю блок индикации, задую адрес регистра. И тип данных DWORD.
Формат Float. Без масштабирования. Но получается какой то бред на панели. Скрины прилагаю.Вложение 53502Вложение 53503Вложение 53504Вложение 53505