Просмотр полной версии : Codesys v3 + Raspberry Pi
Оставьте Devpath 1.2 и 1.4
Такой вариант тоже пробовал. В обоих случаях симлинки появляются, но в Codesys не работают...
В импортном форуме написано (перевод):
начиная с 3.5SP15 это возможно так:
установите это в /etc/CODESYSControl_User.cfg
Пример
[SysCom]
Linux.Devicefile.1 = / dev / ttyS0
Linux.Devicefile.4 = / dev / ttyUSB0
поэтому Com1 это ttyS0 Com4 это ttyUSB0
в версиях <SP15 необходимо было установить символические ссылки / или использовать UDEV, чтобы отсортировать их в том же устройстве под Linux.
Т.е. получается это Codesys SP15 как то не отрабатывает... т.е. это работало в версиях до SP15?
manjey73
25.03.2020, 16:19
Linux.Devicefile.4 = /dev/mydev/COM4 - если так прописать не появится ?
Попробуйте имя файла правил начать с 50. или 51. USB обрабатываются где-то после этих номеров.
А блин, вам в любом случае надо прописывать в [SysCom], даже симлинки
Linux.Devicefile.4 = /dev/mydev/COM4 - если так прописать не появится ?
Получилось
[SysCom]
Linux.Devicefile.1=/dev/mydev/COM1
SUBSYSTEM=="tty", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", ATTRS{devpath}=="1.2", SYMLINK+="mydev/COM1", GROUP="plugdev"
Так работает
manjey73
26.03.2020, 09:01
Скорее всего так и должно работать. Просто можете на двух устройствах проверить ход конем. Вставить устройство 1, оно должно получить /dev/ttyUSB0, потом вставить устройство 2, оно должно получить /dev/ttyUSB1.
А теперь вынимаете оба и вставляете сперва 2 а потом 1 и проверяете что у них случилось с нумерацией USBx
Иногда, если устройство отваливается, оно так же может сменить номер, наблюдал такое. А правила, которое создает симлинк создаст одно и то же имя, независимо от номера ttyUSBx. И обращаясь уже к симлинкам вам все равно на какой номер usb присело устроство. Идеал конечно usb преобразователи, у которых есть серийник.
Кстати проверил на своей Orange_Pi+2E, правило срабатывает только при перезагрузке, и вероятно при отключении, включении устройства. В нете пишут что можно правила перегружать без перезагрузки ПК, но вчера пробовал, не вышло. Думаю причина в GROUP="plugdev" ну либо я не ту команду давал... udevadm control --reload-rules может быть другая команда нужна для таких устройств...
Привет всем. Перенёс проект с Овен ПЛК 304 на Малинку. Конечно небо и земля. Всё стало работать предсказуемо. Но есть проблема - два устройства в сети Модбас (делал через конфигуратор) постоянно переподключаются. Посмотрел ошибки - одно сыпет Undefined (255), второе тоже Undefined (255) и RESPOSE_TIMEOUT (161). В чём проблема - не понятно... На ПЛК304 этого не было, но там была другая проблема - одно устройство вообще не отвечало...
murdemon
03.04.2020, 13:30
поставить на слейве задержку при ответе, и на мастере увеличить задержку между запросами и таймаут ответа. 1я причина бывает на всяких самоделках наших (и не всегда можно изменить).
1я причина бывает на всяких самоделках наших (и не всегда можно изменить).
Один из этих слэйвов действительно самоделка. Увеличил в прошивке паузу между пакетами в три раза - стало намного лучше. Сыпиться, но не так часто, как раньше. Второй слейв - китайщина - ничего не смог сделать - на изменения таймаута, фреймов не реагирует - сыпиться как и ранее.
murdemon
06.04.2020, 10:01
подключи в эту же шину usb-485 (в ПК) и в режиме мониторинга смотри , что кто куда передает. На raspbery pi 485 с автоматическим переключение направлений прием/передача?
manjey73
06.04.2020, 10:14
Судя по тому, что там CH340(1) то с автоматическим. Обычный USB-RS485 который работает с кучей оборудования без проблем.
murdemon
06.04.2020, 10:26
значит логгер на ПК (usb-485) + осциллограф спасут ситуацию.
Салихов Ильдар
16.04.2020, 13:49
Братцы, подскажите...
Ковыряю системный логер CmpLog. Хочу создать еще один логер. В файле CODESYScontrol.cfg прописал следующее
[CmpLog]
Logger.0.Name=/tmp/codesyscontrol.log
Logger.0.Filter=0x0000000F
Logger.0.Enable=1
Logger.0.MaxEntries=1000
Logger.0.MaxFileSize=1000000
Logger.0.MaxFiles=10
Logger.0.Backend.0.ClassId=0x00000104 ;writes logger messages in a file
Logger.0.Type=0x314 ;Set the timestamp to RTC
Logger.1.Name=/tmp/my_application.log
Logger.1.Filter=0x0000000F
Logger.1.Enable=1
Logger.1.MaxEntries=1000
Logger.1.MaxFileSize=1000000
Logger.1.MaxFiles=10
Logger.1.Backend.0.ClassId=0x00000104 ;writes logger messages in a file
Logger.1.Type=0x314 ;Set the timestamp to RTC
Вижу, что создался файл с новым логом my_application.log.
Функция записи в лог такая:
RTS_RESULT LogAdd (RTS_HANDLE hLog, CMPID CmpId, RTS_I32 iClassID, RTS_RESULT iErrorID, RTS_I32 iInfoID, char *pszInfo, ...)
handler hLog основного логера известен как STD_LOGGER. И логи в codesyscontrol.log пишутся.
Как бы мне определить hLog моего логера?
Спасибо.
Евгений Кислов
16.04.2020, 13:53
Библиотека CmpLog, функция LogCreate - и скорее всего она сама заполняет конфиг-файл, ручками можно было и не прописывать.
Народ, а есть, где почитать, как прикрутить такой RTC-модуль (https://www.seeedstudio.com/Mini-RTC-Module-p-1702.html) и потом пользовать его из CDS?
Народ, а есть, где почитать, как прикрутить такой RTC-модуль (https://www.seeedstudio.com/Mini-RTC-Module-p-1702.html) и потом пользовать его из CDS?
А к чему и зачем ты собрался его прикручивать ?
только часы как-то бессмысленны, можно просто ntp клиента настроить. Вот если бы с памятью, чтобы retain переменные сохранять.
А к чему и зачем ты собрался его прикручивать ?
Ну, я как понял, в отсутствии связи эти часы будут дальше тикать, а NTP будет недоступен... Инструкций уже нашёл море... Вроде прикрутил. Попробовал на CDS... Использую DTSplit... Почему-то вижу универсальное время, т.е. минус 3 часа для Москвы. На малинке время правильное, московское. Как сделать чтобы CDS видел московское?
Евгений Кислов
17.04.2020, 22:08
SysTimeRtcGetTimezone из библиотеки SysTimeRtc позволит получить информацию о часовом поясе устройства.
Ну и далее несложные математические операции.
Ну и далее несложные математические операции.
Как бы устройство находится в известной Timezone, и эти несложные операции уже применяю, но это же получается костыль... Неужели нет возможности получать информацию по местному времени? Почему, если я на RP настроил модуль RTC как основной для получения информации о времени, в командной строке он даёт верное время, не пойму откуда CDS берёт универсальное?
Евгений Кислов
18.04.2020, 11:10
Потому что стандартные функции/ФБ возвращают универсальное время.
Написать обертку с учетом часового пояса (SysTimeRtcGetTimezone) - не проблема.
Если по каким-то неочевидным причинам хочется получить локальное время именно вызовом одного POU - то см. библиотеку SysProcess - с помощью нее можно выполнить ту команду, которую вы вводите в командной строке, и получить тот же результат.
Потому что стандартные функции/ФБ возвращают универсальное время.
А если использовать DTU.SetTimeZoneInformation?
И задать нужную TimeZone. Пытаюсь сделать, но что-то не компелируется - ругается на:
gc_tzTimeZoneCET : TimeZone :=
(
iBias := 60 (* T#1M => minutes *),
asgPeriod := [
( (* (CEST -> CET) - Last Sunday in Oktober at 03:00:00.000 (CEST) *)
sName:='CET',
dtDate := (uiMonth := 10, eWeekday := WEEKDAY.SUNDAY, uiDay := 5, uiHour := 3)
),( (* (CET -> CEST) - Last Sunday in March at 02:00:00.000 (CET) *)
sName := 'CEST',
dtDate := (uiMonth := 3, eWeekday := WEEKDAY.SUNDAY, uiDay := 5, uiHour := 2),
iBias := 60 (* T#1M => minutes *)
)]
);
Эту структуру я хочу использовать для задания своей TimeZone, пока взял из примера.
Сейчас сделал однократно, при загрузке fbSetTimeZone (xExecute: = TRUE, tziInfo: = DTU.GlobalConstants.gc_tziTimeZoneCET);
Временная зона определилась верно, только перешла на летнее время... Как теперь отключить переход на летнее время...?
Чудеса... Поставил на Малинке пояс +4, т.е. чтобы время было на час больше, всё равно CDS упорно выдаёт пояс +3 с летним временем... Откуда он тянет эту информацию???
Всё, разобрался. Не нужны математические операции)))
Делаем так:
VAR CONSTANT
TimeStart:WORD:=1340;
TimeEnd:WORD:=380;
gc_tzTimeZoneUTC : DTU.RTCLK.RTCLK_TIME_ZONE_INFO :=
(
iBias := 180,
sPeriode := [( (* Standard *)
sName:='CET',
tmDate := (uiMonth := 10, eWeekday := DTU.RTCLK.WEEKDAY.SUNDAY, uiDay := 5, uiHour := 3, uiMinute := 0, uiSecond := 0),
iBias := 0
),( (* Daylight *)
sName := 'CEST',
tmDate := (uiMonth := 3, eWeekday := DTU.RTCLK.WEEKDAY.SUNDAY, uiDay := 5, uiHour := 2, uiMinute := 0, uiSecond := 0),
iBias := 0
)]
);
END_VAR
VAR
fbSetTimeZone: DTU.SetTimeZoneInformation;
GetSysDT:DTU.GetDateAndTime;
END_VAR
..............................................
fbSetTimeZone (xExecute:=TRUE, tziInfo:=gc_tzTimeZoneUTC); //это делаем однократно после старта программы
.............................................
IF (TIME()-tmpT1)>=T#1S THEN //далее раз в секунду читаем текущее время
initT:=FALSE;
END_IF
GetSysDT(xExecute:=NOT initT);
IF NOT initT THEN
dtu.DTSplit
(
dtDateAndTime:= GetSysDT.dtDateAndTime,
puiYear:=ADR(ReYear),
puiMonth:=ADR(ReMonth), //месяц
puiDay:=ADR(ReDay),
puiHour:= ADR(ReHour), //час
puiMinute:= ADR(ReMinute), //минута
puiSecond:= ADR(ReSecond) //секунда
);
END_IF
Там, где tmDate остались рудименты от настройки летнего/зимнего времени... Почему-то, если их убрать время становиться опять UTC.
Больше всего отняло время - использование типа DTU.RTCLK.RTCLK_TIME_ZONE_INFO, оказалось в описании CDS присутствуют ошибки в примерах. То написано RTCLK.TIME_ZONE_INFO, то RTCLK_TIME_ZONE_INFO, ещё нашёл вариант DTU.RTCLK_TIME_ZONE_INFO, но они все нерабочие - оказалось нужно DTU.RTCLK.RTCLK_TIME_ZONE_INFO
Скажите, а малина стабильно у вас работает? У меня постоянно выкидывала при использовании CDS. Каждые 5 минут примерно гарантированно выкидывает из рантайма. Использовал Демо версию, может из-за этого?
Скажите, а малина стабильно у вас работает?
Работает относительно стабильно, не выкидывает. Относительно, потому, что заметил, что бывает отключение примерно 1-2 раз в сутки. Для этого на малине настроил CRON. Ну и само собой - выкидывает каждые два часа т.к. нет лицензии - для этого, перед выбросом записываю содержимое всех переменных на флешку, делаю рестарт, и при загрузке, если файл на месте - закидываю обратно все значения переменных, если файла нет или испорчен - записываю в переменные данные которые использую для инициализации (первом включении). Т.е. во время работы у меня, примерно каждые 1ч 50мин появлятся пауза на 5сек - я не замечаю. 5сек т.к. некоторые слейвы после перезапуска малины не сразу адекватно реагируют. Да, ещё, на всякий случай пишу в тот же файл данные из переменных каждые 20 минут. Т.е. своего рода Retain получился.
Покупать лицензию не захотели всё таки? Если у меня флешка сломается, лицензия будет утрачена получается? Просто пытаюсь понять, есть смысл вкладываться ещё в рантайм или нет. Насколько вся эта штука надёжная. Какое можно найти практическое применение, просто как сборщик информации, или можно что-то серьёзное собирать на малине с кодесисом.
Если сломается флешка, это может оказаться проблемой, но не в плане восстановления лицензии (не вдавался в подробности по сравнению с CodeSys) а в плане создания копии. Связано с разницей в размерах данных на разных флешках.
Добрый день, уважаемые коллеги, подскажите а рантайм подойдет только для Малины, для других одноплатников такая опция не работает?
murdemon
18.06.2020, 12:35
для BelongBlack еще вроде есть..
Просто меня смущает один факт, если я залью на флешке образ с лицензией, если умрёт флешка то и лицензия исчезнет, получается?
Не должна, скорее всего привязка лицензии идет к железу
Евгений Кислов
19.06.2020, 11:28
У CODESYS два варианта лицензии:
1. Через USB-ключ (его надо приобретать отдельно), если он выйдет из строя - то лицензия исчезнет.
2. Программная (soft container), если прибор выйдет из строя - то лицензия исчезнет. Также, судя по форуму CODESYS, иногда такая лицензия слетает при обновлении рантайма.
Там же обсуждалось - http://electromost.com/forum/6-92-6698-16-1420451253
Правда, не знаю, довели до ума эту идею или нет.
Очень познавательная ссылка на ночь глядючи. :o
Pronto72
14.03.2021, 19:30
Визуализация в клиенте открывается не в полноэкранном режиме. Особенно печально с этим обстоит когда использую смартфон с Хромом. Может кто-то знает как сделать, чтобы на любом устройстве открывалось в Fullscreen?
Если вы режим Kiosk емете в виду, то он на стороне клиента настраивается. И Chrom кажется больше не поддерживается.
Pronto72
15.03.2021, 11:31
Если вы режим Kiosk емете в виду, то он на стороне клиента настраивается. И Chrom кажется больше не поддерживается.
"Киоск" это совсем крайний вариант, не хотелось бы... Как-то можно же управлять браузером клиента из визуализации. Например тот же Хоме ассистент на любом браузере открывается в полноэкранном режиме.
Добрый день всем!
Вопрос касательно VNC. Распберри стоит на даче, управляет кое-какими девайсами, оснащен тач-экранчиком. Крутится приложение для управления GPIO, написанное на Python + Tkinter. Так вот, я планирую, когда на даче, то управлять этим приложением с локального экранчика, а когда дома, то делать то же самое, но через VNC. Однако ,к моему разочарованию, так сделать не получается. Если я запускаю это приложение локально, то через VNC его не видно на рабочем столе и наоборот. Т.е. как будто бы есть два независимых друг от друга рабочих стола. Меня это не устраивает, мне нужно одно приложение, т.е. как будто бы я работал через Тим Вьювер. На той же панельке Вейнтек VNC работает как надо - я вижу, как мой удаленный сотрудник клацает софт-кнопки, меняет экраны визуализации и пр.
Прошу сильно ногами не пинать, я в этом деле не специалист, а гугл ничего путнего не говорит, какие запросы я не делал. Возможно, нужно поменять что-то в настройках VNC-сервера?
приборист
24.06.2021, 23:02
Доброго времени.
Достал из закромов Raspberry - накатил последний Codesys SP17 на комп, поставил рантайм на распберри.
Но никак не дам ума Ethernet --> Modbus TCP Master --> Modbus Slave
Оно вообще работает?
Поставил OPC на компьютер в режиме Slave - на работает на малине.
Достал из закромов ПЛК110 - добавил туда Slave - не работает на малине.
Игрался с таргетами, задержками, настройками Ethernet (lo, eth0, wlan0) - по барабану.
Накатил библиотеку от Овен - OCL (OwenCommunication) - все работает.
Может есть хитрость?
ЗЫ
Про 30 минут и работу промышленных интерфейсов читал, пробовал перезагружать - эффект тот же.
Евгений Кислов
25.06.2021, 06:23
Доброго времени.
Добрый день.
Но никак не дам ума Ethernet --> Modbus TCP Master --> Modbus Slave
Оно вообще работает?
Должно.
Может есть хитрость?
Cкорее всего, хитрость в Unit ID - у OPC Инсата (думаю, вы используете его) и ПЛК110 по умолчанию Unit ID = 1, а в CODESYS V3.5 - 255.
55734
приборист
25.06.2021, 18:07
Добрый день.
Должно.
Cкорее всего, хитрость в Unit ID - у OPC Инсата (думаю, вы используете его) и ПЛК110 по умолчанию Unit ID = 1, а в CODESYS V3.5 - 255.
55734
Точно. А я все думаю куда подевался Slave Id. Спрятали подальше.
Попробовал - чтение работает.
Есть некоторые проблемы с записью по команде, времени разбираться не было. Помучаю на досуге как нибудь.
В очередной раз спасибо!
Петр Петрович
09.07.2021, 09:50
Добрый день!
Столкнулся тут с одной неприятной штукой. Сделал в Raspberry и CODESYS V3.5 SP17 сервер TCP/IP. Хотя, судя по всему, (западные форумы) эта проблема, особенно вторая, есть и на других контроллерах, но не видно, что бы кто-то ее решил. Итак, сервер сделан на CAA NBS. Сам по себе вроде работает. Данные ходят в обе стороны. Но - есть две серьезные проблемы.
Первая - если мы удаленную железку-клиент сбрасываем по питанию, то дескриптор соединения hConnection так и не сбрасывается в ноль. Далее только при ОПЯТЬ загруженной железке и посылке любого пакета ИЗ Codesys он обнуляется. Во всяком случае, ненулевым он может быть минут десять, хотя железки уже нет, что совершенно неприемлимо в большинстве случаев. Т.е. как будто нет возможности задать некий тайм-аут для входящих соединений. Но это еще как-то можно было бы решить периодической посылкой сообщений из Codesys в сторону железа.
Далее еще интереснее. Как только после иммитации сбоя железка пробует переподключится, то дескриптор обнуляется, флаг отключения клиента fbTcpConnection.xDonе также становится True, но сервер в Codesys больше не принимает от нее соединения! Пробовал по этому флагу в основном цикле выключать fbTcpConnection и fbTcpServer, а потом включать их - не помогает. Пришлось сделать ребут Системы исполнения, только это помогает:
IF fb_TcpServer.Client_Disconnect THEN
SysProcess.SysProcessExecuteCommand('sudo service codesyscontrol restart', pRes);
END_IF
Может, я вообще как-то неправильно работаю с сервером? В PLC_PRG он объявлен как fb_TcpServer: TcpServer; Далее я просто вызываю его в основном цикле как fb_TcpServer();. В этом же цикле обращение к данным например как fb_TcpServer.abyTx[0].... и так далее. Сами данные ходят в две стороны нормально.
Да тут бы не помешало основательно разобраться. В CoDeSys и ModBus TCP Slave падает постоянно если он в общей сети. Пока от Овна слышу только что сети у меня поганые (что в целом тоже правда). Но это не отменяет того факта что CoDeSys с ними неправильно работает.
Евгений Кислов
10.07.2021, 07:31
Да тут бы не помешало основательно разобраться. В CoDeSys и ModBus TCP Slave падает постоянно если он в общей сети. Пока от Овна слышу только что сети у меня поганые (что в целом тоже правда). Но это не отменяет того факта что CoDeSys с ними неправильно работает.
Грустно слышать от квалифицированного специалиста настолько ультимативные и необоснованные высказывания.
Корректнее было бы сказать "у меня ModBus TCP Slave падает постоянно если он в общей сети."
Я сейчас поднял TCP Slave на нашем демонстрационном ПЛК, который в интернете висит - можете проверить, как он работает.
79.171.127.12, Unit ID = 1, доступны регистры 0...1023.
55950
Евгений, я поправляюсь. У меня на CS3 пока ни один ModBus TCP Slave устойчиво не работал. Правда я его восновном на СПК207 пытался поднимать. Сейчас я вижу схожую картину на СПК107 У СЕБЯ. Основательно с ней разобраться я смогу только через неделю с выездом на объект но на данный момент подвисает ФБ ModBus TCP Slave из OCL. Сеть поганая в том смысле что 502 портом СПК сейчас через проброс выходит сразу в интернет. При этом сам СПК продолжает работать. Я предлагаю совместно разобраться в этом вопросе и я с удовольствием признаю что я столько лет что-то неправильно делаю.
Люди, подскажите все же, плиз, насчет VNC (пост #313), буду очень благодарен
Здравствуйте.
Пару слов о покупке лицензии.
На сайте codesys положил в корзину лицензию MC за 100евро. Предложили пройти регистрацию. Указал почту gmail.com, местожительство Великобритания.
Финальная сумма 119 евро(с налогами). После ввода карты, ключ пришёл мгновенно.
Списали 10170 руб. Я остался доволен. А в Смоленске сказали, что уже поздно и пятница, пишите на почту, в понедельник выставим счёт.
Интересно если местом жительства выбрать какой-нибудь офшор то можно будет не заплатить НДС
murdemon
14.11.2021, 18:01
Да только начиная с 16 версии в MC больше не включена SoftMotion лицензия :(((( + еще 100 за лицензию хотят. Потом похоже за каждое новое модбас устройство придется доплачивать.
murdemon
10.01.2022, 14:14
https://youtu.be/pLbpOA73SAY Raspberry PI управление 6 осным роботом.
murdemon
22.01.2022, 19:35
https://www.youtube.com/watch?v=8Z1gWrRagoo управление без использования softmoitio SM3_Robotics
Вся кинематика открыта
https://cloud.mail.ru/public/2vXW/dwb7kkZ6f
ВладОвен
22.03.2022, 17:28
Всем привет.
В качестве ПЛК будет RPi4. На ней крутится распбиан.
В codesys настраиваю подключение, но постоянно получаю ошибку: "Установка активного пути прервана".
Подскажите что я не так делаю?
Евгений Кислов
22.03.2022, 17:34
Всем привет.
В качестве ПЛК будет RPi4. На ней крутится распбиан.
В codesys настраиваю подключение, но постоянно получаю ошибку: "Установка активного пути прервана".
Подскажите что я не так делаю?
Вероятно - не ту версию таргета в проекте выбрали.
Подскажите что я не так делаю?
Вам нужно на малину накатить официальный последний образ, обновления ни в коем случае на малину не ставить.
Накатить рантайм 4.4
На комп sp17 пач 3
И всё будет работать как часы или даже лучше.
ВладОвен
22.03.2022, 18:22
Я установил в менеджере пакетов "CodeSys Control for Raspberry PI 4.2.0.0"
Потом выполнил "Upgrade Raspberry". Ошибок не было, только служебные сообщения.
Потом выбрал мультипроцессорный вариант системы.
Создаю новый "Стандартный проект". При этом выбираю устройство "CODESYS Control for Raspberry Pi SL".
Потом возникает такое окно:
59807
Добавляю пользователя устройства
Но потом не могу все равно войти:
59808
Что я делаю не так? Может мультипроцессорная система платная?
ВладОвен
22.03.2022, 18:24
Сейчас попробую runtime 4.4
А codesys у меня V3.5 SP17 Patch2 64 бит
Евгений Кислов
22.03.2022, 18:24
Я установил в менеджере пакетов "CodeSys Control for Raspberry PI 4.2.0.0"
Потом выполнил "Upgrade Raspberry". Ошибок не было, только служебные сообщения.
Потом выбрал мультипроцессорный вариант системы.
Создаю новый "Стандартный проект". При этом выбираю устройство "CODESYS Control for Raspberry Pi SL".
Потом возникает такое окно:
59807
Добавляю пользователя устройства
Но потом не могу все равно войти:
59808
Что я делаю не так? Может мультипроцессорная система платная?
Все рантаймы для Raspberry Pi платные.
Если вы установили в Raspberry multicore-рантайм - то и таргет надо выбирать от него - CODESYS Control for Raspberry Pi MC SL
ВладОвен
22.03.2022, 18:31
Все рантаймы для Raspberry Pi платные.
Если вы установили в Raspberry multicore-рантайм - то и таргет надо выбирать от него - CODESYS Control for Raspberry Pi MC SL
Точно!
Все заработало!
Спасибо вам.
Я установил в менеджере пакетов "CodeSys Control for Raspberry PI 4.2.0.0
4.2 не совместима с последним образом Расбиана.
Ставьте предыдущий образ 4.2 на нём заработает. Обновления ни в коем случае.
ВладОвен
22.03.2022, 18:37
Понял. Спасибо.
На комп sp17 пач 3
И всё будет работать как часы или даже лучше.
Подскажите, года два использую Малинку, на компе sp15 пач3. Всё работает как часы. Есть смысл обновляться?
Newcomer
31.03.2022, 11:35
Подскажите, года два использую Малинку, на компе sp15 пач3. Всё работает как часы. Есть смысл обновляться?
Работает, не трогай. ;)
Sergeba где-то murdemon писал выше по теме по изменению лицензирования на новых версиях. Так что аккуратнее с обновлением.
ВладОвен
31.03.2022, 18:36
Всем привет.
Подскажите как, что и когда загружается внутрь Raspbian? А то я что-то запутался...
До этого внутри Raspberry был загружен проект с миганием светодиода 1сек/1сек
Итак:
1. Создаем новый проект. В нем самый обычный банальный blink с интервалом мигания 5сек/5сек. Выводим это мигание на светодиод и в веб-визуализацию.
2. Генерируем код. Правильно ли я понял, что в железку еще ничего не загружается?
3. Делаем "Логин". Зачем нужна эта операция? Проект уже загрузился в железку?
4. Нажимаем "Старт". Это мы уже запускаем бесконечный цикл ПЛК. Так?
5. Через браузер наблюдаем за миганием и вживую тоже видим, что светодиод мигает. Как и задавали 5сек/5сек.
А далее:
6. Заходим в железку через SSH.
7. Выполняем команду "sudo service codesyscontrol restart". Т.е. перегружаем RealTime в железке. Проходит 3-5 сек.
8. CodeSys начинает ругаться из-за потери связи. Но мы его пока не трогаем.
9. Бац! Светодиод мигает с частотой 1сек/1сек. И в браузере тоже интервал мигания 1сек/1сек. Но так было в старом проекте! Т.е. каким-то образом старый проект в нем запустился? Как так-то?
Что было дальше:
10. Заходим снова в железку через SSH.
11. Выполняем команду "sudo reboot". Т.е. перегружаем железку полностью. Проходит 30 сек.
12. Цикл ПЛК запускается автоматически. Т.е. он прописался в systemd (как вариант). Но светодиод мигает с частотой 1сек/1сек. И в браузере тоже интервал мигания 1сек/1сек. Опять старый проект! Как так-то?
P.S. Складывается впечатление, что когда вы логинетесь (п.3), то ваш текущий проект загружается в оперативную память в железке и выполняется от туда. Если вы разлогинетесь (штатной кнопкой CodeSys), то только тогда ваш текущий проект уже загружается на карту памяти (перетирает старый проект).
Можете пояснить?
Спасибо.
Надо не просто код загрузить, но и выполнить загрузочный проект. В одном случае вы просто в оперативку грузите программу, в другом меняете уже сам проект.
Не думаю, что такие великие отличия от версии 2.3
Здравствуйте. Качнул сегодня CodeSys sp18. Для raspberry pi. Качнулось и установилось без проблем. А вот расширения, CODESYS Installer установить не дал. Настроил vpn и все нужные пакеты скачались. Других подводных камней пока больше нет. Интерфейс всё ещё на Великом и Могучем...
ВладОвен
04.05.2022, 15:36
А retain-переменные можно и на флешку сохранять в виде файла, а в программе просто VAR RETAIN использовать и все...
Да, это очень удобно.
Вот проект CodeSys, который реализует автоматическую запись всех retain-ов на карту памяти Raspberry каждые 5 секунд, если было изменение в значениях.
Кусок кода для сохранения retain оформлен как отдельная программа RetainManager и запускается отдельной задачей (Task) каждые 5 сек.
В основной программе retain используются без каких-либо особенностей.
Можно запустить Web-визуализацию и поиграться с переменной newVar (она retain).
Путь к файлу для переменных retain указан '/home/pi/Retain'. Файл будет называться Retain.ret. Это можно изменить.
Часто в описаниях забывают добавить про необходимость импортировать библиотеки CmpAdd и CmpChecksum.
ВладОвен
05.05.2022, 18:18
Подскажите, почему не отрабатывается команда Linux? Делаю по этому документу: RaspberryCodesysV3Faq.pdf (https://ftp.owen.ru/CoDeSys3/98_Books/RaspberryCodesysV3Faq.pdf) пункт 14: "Как вызвать Python-скрипт из программы CodeSys?"
1. Создал файл file.py и включил его в проект. После запуска будет создан тестовый файл "new_test_file.txt" с записью "Hello, world"
Файл file.py:
f = open('new_test_file.txt', 'a')
f.write('Hello, world\n')
f.close()
2. Сделал проект:
IF xExecuteScript THEN
SysProcess.SysProcessExecuteCommand('sudo python3 /var/opt/codesys/PlcLogic/Application/file.py', pResult);
xExecuteScript := FALSE;
bFlag := TRUE;
END_IF
Но непонятно отрабатывает ли он или нет. Тестовый файл "new_test_file.txt" не создается. bFlag переходит в состояние TRUE. Т.е. условие отработалось.
Права на исполнение дал (chmod).
Если просто в терминале набрать "sudo python3 /var/opt/codesys/PlcLogic/Application/file.py", то отрабатывает нормально (появляется тестовый файл).
А внутри проекта CodeSys не отрабатывает.
Что я делаю не так?
ВладОвен
23.05.2022, 09:57
Привет. Кто-нибудь знает как перевести Raspberry на работу по httpS в web-визуализации? Принципиально это возможно?
Подскажите, почему не отрабатывается команда Linux? Делаю по этому документу: RaspberryCodesysV3Faq.pdf (https://ftp.owen.ru/CoDeSys3/98_Books/RaspberryCodesysV3Faq.pdf) пункт 14: "Как вызвать Python-скрипт из программы CodeSys?"
1. Создал файл file.py и включил его в проект. После запуска будет создан тестовый файл "new_test_file.txt" с записью "Hello, world"
Файл file.py:
f = open('new_test_file.txt', 'a')
f.write('Hello, world\n')
f.close()
2. Сделал проект:
IF xExecuteScript THEN
SysProcess.SysProcessExecuteCommand('sudo python3 /var/opt/codesys/PlcLogic/Application/file.py', pResult);
xExecuteScript := FALSE;
bFlag := TRUE;
END_IF
Но непонятно отрабатывает ли он или нет. Тестовый файл "new_test_file.txt" не создается. bFlag переходит в состояние TRUE. Т.е. условие отработалось.
Права на исполнение дал (chmod).
Если просто в терминале набрать "sudo python3 /var/opt/codesys/PlcLogic/Application/file.py", то отрабатывает нормально (появляется тестовый файл).
А внутри проекта CodeSys не отрабатывает.
Что я делаю не так?
потому что слишком сложно. SysProcess.SysProcessExecuteCommand('sudo "Hello, world\n" > new_test_file.txt', pResult); так тоже должно сработать
Pronto72
26.05.2022, 10:10
Понадобились мне системные дата/время на Raspberry Pi4. И как-то не задалось. Перепробовал множество примеров - бесконечные проблемы с библиотеками/типами и т.п... Не будет ли кто-нибудь так любезен поделиться реально работающим примером?
ВладОвен
13.07.2022, 16:51
Вам нужно настроить дату/время или получить их значения в PLC_PRG (основной проге)?
Pronto72
26.07.2022, 13:30
Вам нужно настроить дату/время или получить их значения в PLC_PRG (основной проге)?
Настроить новые системные дату и время. Читаю их без проблем. Записать не удается. С библиотеками разобрался, все выполняется, но дата_время не меняются. На буржуйском форуме попалось мнение что это из-за того что модуля часов реального времени в Raspberry нет.
Pronto72 зато там есть Linux, смотреть команды в CodeSys которые смогут выполнить команды в системе... Или настройте ntp клиента в системе
ВладОвен
03.08.2022, 11:39
Привет.
Вышел новый Raspberry Pi Imager версии 1.7.2 (для накатывания образа Raspbian).
Он записывает на карту памяти систему Raspbian и может теперь сразу же задавать первичные параметры системы: наличие SSH, HostName, WiFi и проч.
Но CodeSys с ним работает плохо. Зависает через 10-20 секунд работы.
Кто-нибудь сталкивался с этим?
61991
murdemon
03.08.2022, 12:35
Лучше образ ставить с realtime патчем на rp2 , и рантайм multicore
ВладОвен
04.08.2022, 11:35
...образ с realtime патчем на rp2
А где можно взять этот образ?
Я ставлю "Raspberry Pi OS (32-bit) от 2022-04-04" и он работает плохо. Зависает. Пробовал на разных платах.
А старый образ "Raspbian-buster от 2020-02-13" работает нормально.
murdemon
04.08.2022, 17:43
Ну и ставь старый , если тебе ждитерр сигналов не критичен, то можно и без реал тайм патча, https://youtube.com/shorts/VbcZS3Jn0I4?feature=share
ВладОвен
05.08.2022, 15:14
Привет.
Хочу получить IP-адрес своей Raspberry.
Читал, что необходимо использовать SysProcessExecuteCommand2, т.к. она может отдать значение команды назад в CodeSys.
Операнд команды будет такой:
ip -f inet addr show eth0 | sed -En -e 's/.*inet ([0-9.]+).*/\1/p'
В терминале он возвращает:
192.168.9.103
Но как получить это в строке в ST программе?
Есть у кого пример использования?
А может есть готовая библиотека, которая возвращает IP ?
Спасибо.
UP: Пробовал с командой echo Hello, Owen! (должна вернуть Hello, Owen!).
PROGRAM PLC_PRG
VAR
bTest : BOOL;
testTrigger : Standard.R_TRIG;
sCommand : STRING;
refCommand : REFERENCE TO STRING;
sOutput : STRING;
refOutput : REFERENCE TO STRING;
result : POINTER TO SysProcess.SysTypes.RTS_IEC_RESULT; ---------- Странно...
END_VAR
testTrigger(CLK:= bTest, Q=> );
sCommand:= 'echo Hello, Owen!';
refCommand REF= sCommand;
refOutput REF= sOutput;
IF testTrigger.Q THEN
SysProcessExecuteCommand2(pszCommand:= refCommand, pszStdOut:= refOutput, udiStdOutLen:= SIZEOF(sOutput), pResult:= ADR(result));
bTest:= FALSE;
END_IF
Но результата нет:
62033
ВладОвен
08.08.2022, 13:58
В общем, получилось узнать свой IP!
PROGRAM PLC_PRG
VAR
xOneTime : BOOL := TRUE;
sInput, sOutput : STRING;
refInput, refOutput : REFERENCE TO STRING;
result : POINTER TO SysProcess.SysTypes.RTS_IEC_RESULT;
sMyIP: STRING;
END_VAR
IF xOneTime THEN
sInput:= 'ip -f inet addr show eth0 | sed -En -e "s/.*inet ([0-9.]+).*/\1/p"';
refInput REF= sInput;
refOutput REF= sOutput;
SysProcessExecuteCommand2(pszCommand:=refInput, pszStdOut:=refOutput, udiStdOutLen:=SIZEOF(sOutput), pResult:=ADR(result));
// IP приходит с завершающим символом, который нужно убрать.
sMyIP := LEFT(sOutput, LEN(sOutput)-1);
xOneTime:= FALSE;
END_IF
62056
Нужно бы еще конечно добавить проверку IP от беспроводной сети. Ведь Raspberry может быть подключена и по WiFi. Тогда команда в Linux будет:
'ip -f inet addr show wlan0 | sed -En -e "s/.*inet ([0-9.]+).*/\1/p"'
Т.е. если по eth0 возвращается строка с длинной 0, то повторять процедуру для wlan0.
Зачем мне нужно знать свой IP?
На этой плате Raspberry запущен сервер на другом порту, который отдает видео от видеокамеры. Камера наблюдает за испытуемым изделием.
А на основной странице CodeSys вставлен графический элемент Web-сервер. Так вот в поле URL и вставлен наш IP в виде
"http://my_IP:my_Port". Если перенести это устройство в другую сеть, то адрес видео-сервера автоматически определится. А основная программа загружается сама в браузере в режиме киоска. Профит!
62055
В общем, получилось узнать свой IP!
PROGRAM PLC_PRG
VAR
xOneTime : BOOL := TRUE;
sInput, sOutput : STRING;
refInput, refOutput : REFERENCE TO STRING;
result : POINTER TO SysProcess.SysTypes.RTS_IEC_RESULT;
sMyIP: STRING;
END_VAR
IF xOneTime THEN
sInput:= 'ip -f inet addr show eth0 | sed -En -e "s/.*inet ([0-9.]+).*/\1/p"';
refInput REF= sInput;
refOutput REF= sOutput;
SysProcessExecuteCommand2(pszCommand:=refInput, pszStdOut:=refOutput, udiStdOutLen:=SIZEOF(sOutput), pResult:=ADR(result));
// IP приходит с завершающим символом, который нужно убрать.
sMyIP := LEFT(sOutput, LEN(sOutput)-1);
xTest:= FALSE;
END_IF
62056
Нужно бы еще конечно добавить проверку IP от беспроводной сети. Ведь Raspberry может быть подключена и по WiFi. Тогда команда в Linux будет:
'ip -f inet addr show wlan0 | sed -En -e "s/.*inet ([0-9.]+).*/\1/p"'
возможно первая команда подойдет по ссылке https://owen.ru/forum/showthread.php?t=32300&p=335165&viewfull=1#post335165 чтоб не перебирать интерфейсы
ВладОвен
08.08.2022, 14:47
возможно первая команда...
Эта?
ip route | grep 'default' | awk '{print $3}'
Она возвращает IP роутера, а не ПЛК
192.168.1.1
ВладОвен
10.08.2022, 09:39
Привет.
Кто-нибудь пробовал реализовать обмен по шине EtherCAT (https://ru.wikipedia.org/wiki/EtherCAT) в RaspberryPi? Контроллеры Овен не поддерживают, увы.
Я хочу подключить модуль ввода-вывода (т.е. не движение). Например, вот этот модуль (https://www.bausano.net/shop/en/home/22-easyio.html).
Потянет ли Raspberry это?
Потянет ли среда CodeSys3.5 это?
Какие подводные камни появятся?
Нужна ли покупка доп.лицензий, доп.оборудования?
Спасибо.
murdemon где-то в теме выше писал, что EtherCAT выпилили из сборки Raspberry, в первых версиях он был в составе и лицензия на RT стоила около 50 евро + 19% налог если не ошибаюсь...
теперь так понимаю еще + стоимость лицензии на EtherCAT добавится
ВладОвен
10.08.2022, 10:24
Вот эта лицензия? ссылка (https://store.codesys.com/en/codesys-ethercat-master-sl.html) (https://store.codesys.com/en/codesys-ethercat-master-sl.html).
А там есть время безлицензионной работы? Ну, типа, как 2 часа у самой CodeSys?
да, вроде 2 часа и было. На счет доп лицензии для EtherCAT не уверен, а сам CDS должен 2 часа работать
murdemon
11.08.2022, 06:48
Да ethercat работает 2 часа , как и рантайм, без лицензии
ВладОвен
16.08.2022, 09:38
Привет.
А как перевести визуализацию с порта 8080 на порт 80?
murdemon
16.08.2022, 22:55
and add in /etc/CODESYSControl.cfg the following section:
[CmpWebServer]
WebServerPortNr=80
ВладОвен
17.08.2022, 13:52
Спасибо. Заработало.
MUSulmanin
16.11.2022, 14:50
Добрый день. Подскажите, в Символьной конфигурации 2 переменных Int и WORD.
OPC клиент SimpLight видит и работает с переменной типа Int, а с WORD не может работать, пишет тип Null.
Другие клиенты могут работать с этой переменной, но нужно именно этот клиент. Подскажите, как можно решить данную проблему?
MUSulmanin (https://owen.ru/forum/member.php?u=91805), А разве ручками в конфигураторе нельзя поменять тип на Word?
В инструкции пишут что можно, если прога криво определила.
https://simplight.ru/manual_next/rabota-s-kanalami/tipy-kanalov
kondor3000
16.11.2022, 16:00
Добрый день. Подскажите, в Символьной конфигурации 2 переменных Int и WORD.
OPC клиент SimpLight видит и работает с переменной типа Int, а с WORD не может работать, пишет тип Null.
Другие клиенты могут работать с этой переменной, но нужно именно этот клиент. Подскажите, как можно решить данную проблему?
С чего вы взяли, WORD прекрасно читается, на скрине из 30 переменных, 14 шт. WORD 63893
Через символьную конфигурацию, Скада SimpLight.
ВладОвен
14.12.2022, 09:08
Кто-нибудь пробовал реализовать обмен по шине EtherCAT (https://ru.wikipedia.org/wiki/EtherCAT) в RaspberryPi? Я хочу подключить вот этот модуль (https://www.bausano.net/shop/en/home/22-easyio.html).
В общем протестировал я это модуль.
Максимальная частота обмена по шине 10000 циклов в секунду. Но джиттер большой на такой частоте. Лучше работать на 5000-7500 циклов в секунду.
Каждый цикл - это и запись, и чтение (там 16 входов и 16 выходов). Шина открытая (т.е. не кольцевая).
При этом т.к. порт Ethernet занят в малинке4, то приходится использовать Wi-Fi или свисток USB-Ethernet для загрузки проекта.
На 10000 циклов можно дергать ножной с частотой в 5кГц.
64516
При этом фактический обмен по шине EtherCat длится 39 мкС, но в настройках нельзя задать это значение менее 100 мкС.
64517
И одно ядро постоянно загружено на 95% (Raspberry4, 2Gb).
64518
ВладОвен
21.12.2022, 11:11
Привет.
Подскажите, можно ли установить на одну Raspberry сразу два экземпляра CodeSys RunTime?
ВладОвен
12.01.2023, 16:54
Привет.
Подскажите, а ест ли библиотека для работы с устройствами по шине I2C (для костомного устройства, а не для тех, которые уже имеются в составе CodeSys) ?
MUSulmanin
24.01.2023, 11:55
Добрый день.
Подскажите, как от этого избавится...кто в курсе?
Все уже переустановил: Codesys переустановил, на RPi новую OS накатил...и все равно просит.
Может кто в курсе? 65398
Евгений Кислов
24.01.2023, 12:07
Добрый день.
Подскажите, как от этого избавится...кто в курсе?
Все уже переустановил: Codesys переустановил, на RPi новую OS накатил...и все равно просит.
Может кто в курсе? 65398
Добрый день.
https://faq.codesys.com/display/CDSFAQ/Device+UserManagement
https://faq.codesys.com/display/CDSFAQ/Location+of+the+configuration+file?src=contextnavp agetreemode
MUSulmanin
26.01.2023, 13:15
Добрый день.
https://faq.codesys.com/display/CDSFAQ/Device+UserManagement
https://faq.codesys.com/display/CDSFAQ/Location+of+the+configuration+file?src=contextnavp agetreemode
Спасибо огромное)
ВладОвен
06.02.2023, 16:46
Привет. Попробую задать вопрос тут.
Как правильно отдать пользователю файл через визуализацию?
Я хочу, чтобы по нажатию на графический примитив выполнялась отдача файла пользователю.
Делаю так, как показано в приложенном рисунке. Но файл не отдается. Может настройка неверная? Пробовал с разными вариантами контроллеров: СПК это отрабатывает. Raspberry - не хочет.
Спасибо.
65728
Евгений Кислов
06.02.2023, 16:50
Делаю так, как показано в приложенном рисунке.
О каком именно из двух рисунков речь?
Выложите скриншот из Putty, WinSCP или чего-нибудь подобного, на котором будет видно, где именно в файловой системе Raspberry Pi находится ваш about.txt.
ВладОвен
07.02.2023, 09:32
Вот конкретно файл ololo18.pdf:
65739
И не скачивается.
65740
Евгений Кислов
07.02.2023, 09:35
Вот конкретно файл ololo18.pdf:
65739
И не скачивается.
65740
Как вы можете заметить - путь к нему отличается от того, что вы использовали на рисунках выше.
ВладОвен
07.02.2023, 09:36
Ну я сделал все заново. Старые скрины уже не актуальны.
Всё же... Файл лежит в нужной директории?
Евгений Кислов
07.02.2023, 09:37
Ну я сделал все заново. Старые скрины уже не актуальны.
Всё же... Файл лежит в нужной директории?
Абсолютный путь вы пробовали указывать?
ВладОвен
07.02.2023, 09:44
Вот так?
65741
Не работает.
Евгений Кислов
07.02.2023, 09:47
Вот так?
65741
Не работает.
Конфиг-файл редактировали?
https://faq.codesys.com/display/CDSFAQ/Visu%2C+Filetransfer
https://faq.codesys.com/display/CDSFAQ/Location+of+the+configuration+file
ВладОвен
07.02.2023, 14:01
После того, как я вставляю в конец файла /etc/CODESYSControl.cfg следующие строки:
[CmpWebServerHandlerV3]
AllowFileTransferServices=1
я всегда получаю после перезагрузки малинки в браузере требование ввести логин и пароль:
65747
Сейчас еще раз проведу чистые эксперимент и отпишусь.
Евгений Кислов
07.02.2023, 14:09
После того, как я вставляю в конец файла /etc/CODESYSControl.cfg следующие строки:
[CmpWebServerHandlerV3]
AllowFileTransferServices=1
я всегда получаю после перезагрузки малинки в браузере требование ввести логин и пароль:
65747
Сейчас еще раз проведу чистые эксперимент и отпишусь.
Если у вас настроены логин/пароль для подключения к устройству - то так и будет, всё верно.
ВладОвен
07.02.2023, 14:30
Не работает.
Ладно, Евгений. Я чуть попозже повешу Raspberry на белый IP и дам вам доступы.
Было бы неплохо, если бы вы сами глянули. Потому как это какае-то дичь!
Но на СПК работает.
Евгений Кислов
07.02.2023, 15:58
Но на СПК работает.
Так и задумано, мы делаем удобные в использовании контроллеры. =)
ВладОвен
08.02.2023, 09:31
Здравствуйте.
Повесил Raspberry на белый IP.
Нужна ваша проф.помощь.
Доступы отправил в личку.
Хочется все же разобраться, почему эта железка не позволяет скачивать файлы.
Если нужно, я могу карточку памяти в железке отформатировать и установить свежую систему. Чтобы был чистый эксперимент.
6576565765
Евгений Кислов
08.02.2023, 09:32
Здравствуйте.
Повесил Raspberry на белый IP.
Нужна ваша проф.помощь.
Доступы отправил в личку.
Хочется все же разобраться, почему эта железка не позволяет скачивать файлы.
Если нужно, я могу карточку памяти в железке отформатировать и установить свежую систему. Чтобы был чистый эксперимент.
6576565765
Логин и пароль для SSH забыли указать.
ВладОвен
08.02.2023, 16:58
Вопрос решен.
Скажите, а как избавиться от этого:
65779
Я установил с файле /etc/CODESYSControl_User.cfg:
[CmpUserMgr]
AsymmetricAuthKey=f23...........................f9 07e14e
SECURITY.UserMgmtEnforce=NO
Но логин и пароль все равно требуются.
Спасибо.
Евгений Кислов
08.02.2023, 17:02
Вопрос решен.
Скажите, а как избавиться от этого:
65779
Я установил с файле /etc/CODESYSControl_User.cfg:
[CmpUserMgr]
AsymmetricAuthKey=f23...........................f9 07e14e
SECURITY.UserMgmtEnforce=NO
Но логин и пароль все равно требуются.
Спасибо.
Избавиться от этого можно только начиная с SP18 и плагина визуализации 4.2.0.0:
https://youtu.be/rMww0ZzFo0U
Всем привет, мне нужно подружить ОВЕН СПК 110 и Raspberry Pi 3B по Modbus, овен будет мастером, а малинка слейвом. Есть ли у кого примеры организации такого взаимодействия?
если малинка слейв, то уберите слово "малинка" и замените на "устройство" (модуль ввода или вывода) и любой пример обмена когда ПЛК мастер...
Евгений Кислов
17.03.2023, 13:11
Всем привет, мне нужно подружить ОВЕН СПК 110 и Raspberry Pi 3B по Modbus, овен будет мастером, а малинка слейвом. Есть ли у кого примеры организации такого взаимодействия?
Добрый день.
В этом примере все варианты настройки Modbus рассмотрены:
https://ftp.owen.ru/CoDeSys3/11_Documentation/03_3.5.11.5/CDSv3.5_Modbus_v3.1.pdf
Pronto72
01.05.2023, 12:58
Не могу запустить Modbus RTU на вот такой связке - CM4-ETH-RS485-BASE-B (https://www.waveshare.com/wiki/CM4-ETH-RS485-BASE-B) + Raspberry Pi Compute Module 4.
Может у кого-то есть опыт по настройке Modbus RTU на малине не через USB-свисток? Скурил уже пол Гугла.
Что вы понимаете под USB свистком? USB-RS485 ?
Pronto72
01.05.2023, 14:41
Что вы понимаете под USB свистком? USB-RS485 ?
Конечно. Извините, был раздражен тыканьем в потемках линукса)
Работа в кодесис по Modbus RTU через преобразователь USB-RS485 описана много где и не вызывает затруднений.
Пытаюсь запустить 485-е порты платы CM4-ETH-RS485-BASE-B. Собственно для этого ее и брал - четыре RS-485. Все делаю как описано, но и на клеммах тишина, и в кодесис - serialport не запущен. Чего-то я не понимаю.
Pronto72 для начала проверьте в каком режиме выставлены порты USB на плате, судя по фотке из вашей ссылки они стоят в полуавтоматическом режиме, то есть вы должны определять направление передачи.
А вот USB-RS485 работает в автоматическом режиме, то есть для вашей платы надо поставить Full-mode. (возможно по этому тишина ?)
Ну и честно не знаю, как вы подключаете в CodeSys USB-RS485 ? как вы к нему обращаетесь? /dev/ttyUSB0 ?
У портов на плате они называются ttyAMA0, -, 3
Ну еще возможно их надо прописать в конфиге Linux, чтобы система их перевела именно в режим портов. Пины процессора могут выполнять разные функции.
например что выдаст команда dmesg | grep ttyAMA ????
Написано, что по умолчанию режим автоматический. Значит проверяйте конфиги, включены они в режиме портов или нет.
А вот порты по умолчанию закрыты
Pronto72
01.05.2023, 16:23
Эх... я в линуксе совсем деревянный, никогда с ним не работал. Надеялся что кто-то ткнет пальцем в методичку типа:
- установите операционку
- установите рантайм на малину
- в PuTTy выполните следующие действия...
- перегрузите малину, в кодесис соответствие портов следующее...
Чтобы написать методичку, нужна железка на руках.
Вы по своей ссылке то читали что написано?, пойти и по написанному посмотреть есть чё или нет не можете?
А собственно USB-RS485 вы подключали? или типа гугл просто только об этом и говорит?
Понятия не имею, как в CodeSys линуксовые порты прописывать. Но если они включены, то в вашем документе указано.
Com0 - /dev/ttyAMA0
Com1 - /dev/ttyAMA1
и так далее. /dev/ttyXXX это и есть порты в Linux
It is closed by default. If you want to open it, you need to add content in config.txt:
sudo nano /boot/config.txt - вот эту команду вводили при подключении через Putty ?
Если что, выход Ctrl+X а далее либо Y если меняли записи и хотите сохранить, либо N если сохранять не хотите.
Что по тексту ниже там есть?
dtoverlay=uart0
dtoverlay=uart3
dtoverlay=uart4
dtoverlay=uart5
Вам удалось заставить их работать? Напишите пожалуйста.
Pronto72
02.05.2023, 09:56
Спасибо. Всё делал как и Вы писали, и как пишут на других форумах. У кого-то "завелось" с пол оборота, у кого-то так и не пошло... я в числе крайних. То ли лыжи не едут...
Буду смотреть в сторону связки малина + концентратор-шлюз TCP/RTU. Хотя это и дорогая комбинация - шлюз дороже СПК107!!! И хотелось всё писать в одной программе. Но к сожалению мощности процессора в ПЛК или СПК Овена катастрофически не хватает для данного проекта.
ВладОвен
30.06.2023, 15:39
Привет.
Подскажите в чем проблема. Сегодня работал с двумя разными Raspberry на двух разных проектах. Все было норм.
Потом почему-то я перестал видеть это устройства. GateWay вижу, а само устройство - нет:
68543
Хотя, если зайти в "Файл - Выгрузка исходного кода", то все эти устройства видны:
68544
Порты открыты. Всё норм.
68545
Почему так происходит? Кто виноват? Что делать?
Спасибо.
Добрый день. Нет возможности оплатить лицензию на сайте Codesys. К оплате принимают карточки и палку. Ни то ни другое в России сейчас не работает. У кого то есть опыт покупки?
Добрый день. Нет возможности оплатить лицензию на сайте Codesys. К оплате принимают карточки и палку. Ни то ни другое в России сейчас не работает. У кого то есть опыт покупки?
Палка - это что ?
Paypal так понимаю, которые тоже ушли из России.
Как обычно, регистрироваться в Казахстане или типа того :)
Палка это paypal. а по существу?
Кто то может помочь оплатить, у кого есть карты Казахстана или типа того?
PayPal вроде на исходящие работает (правда пополнить не получится), плюс есть карты Pyypl. Если не получится обращайтесь, думаю все возможно.
PayPal вроде на исходящие работает (правда пополнить не получится), плюс есть карты Pyypl. Если не получится обращайтесь, думаю все возможно.
Спасибо за наколку. Сейчас буду пробовать Pyypi.
RusVolt1989
04.09.2023, 14:02
Добрый день! Правильно ли понимаю что лицензия на Codesys Raspberry PI SL привязана к железу и простым копированием sd карты ничего не перенести?
-----
Похоже есть привязка. Вопрос закрыт. Из-за санкций том числе невозможно получить уже ранее купленные у CodeSys лицензии.
Из-за санкций том числе невозможно получить уже ранее купленные у CodeSys лицензии.
Через vpn можно получить ранее купленные лицензии.
ВладОвен
10.07.2024, 21:48
Привет.
Есть ли способ программно переключать выход на вход и наоборот (вход на выход) на контактах GPIO?
Мне нужно иногда иметь пин на вход, а иногда - на выход.
77191
ВладОвен менять на лету скорее всего нет. Даже в голой системе вам это не дадут сделать на лету через библиотеки Linux.
По крайней мере когда писал драйвер для работы GPIO там был момент инициализации входов/выходов. Сомневаюсь что в CodeSys как-то иначе...
Вообще как-то не ясна задача - на кой ? потому что GPIO 3V по напряжению с подтяжкой или без, соответственно у вас будет физическая обвязка, соответствующая входу или выходу а вы собрались взять и поменять с одного на другое..
ВладОвен
11.07.2024, 12:19
Я хочу подключить внешнее устройство вот по такому проводному интерфейсу:
77200
Это типа как SPI, только провода "туда" и "сюда" объединены в одну линию.
Соответственно нужен:
1. либо 1 диод + 1 подтягивающий резистор вверх (впрочем, внешнее устройство уже потягивает линию вверх),
2. либо менять направление пина DIO "на лету".
Решил попробовать с пином.
Решил помучать Малинку
Прочитал литературу по установке Codesys для Raspberry Pi 4B, делаю по инструкциям - не получается!
Потом понял, что инструкции устарели)
На настоящий момент установка Codesys для Малинки выглядит так:
1. Обзаводимся ВПН
2. Регистрируемся в Codesys Store с локацией по месту расположения ВПН
3. Скачиваем Codesys 64 (на настоящий момент актуальна v3.5.20.10) больше ничего здесь качать не нужно
4. Устанавливаем Codesys
5. Идем в Инструменты - Codesys Installer
6. Внизу надпись, рекомендующая зайти как Администратор - заходим.
7. Идем в репозиторий: меню Add-ons - Browse (ВПН включен), забиваем в строку поиска и устанавливаем пакеты (лучше в указанном порядке, иначе будет ругаться на неустановленные пакеты):
- CODESYS.Control SL Deploy Tool
- CODESYS.Edge Gateway for Linux
- CODESYS.Control SL Extension Package
- CODESYS Control for Raspberry PI
В меню инструментов появляется пункт Update Raspberry Pi
Бинго!
Evgen Dnepr
30.09.2024, 16:10
Подскажите как добавить Modbus TCP для модуля Овен МК210 в проект Codesys ?78994
kondor3000
30.09.2024, 16:25
Подскажите как добавить Modbus TCP для модуля Овен МК210 в проект Codesys ?78994
Сначала надо добавить Ethernet из папки Ethernet адаптер, в него уже Мастера TCP, а в него можно слейв TCP или шаблон вашего модуля
Может просто Ethernet Adapter ? потому что Ethernet/IP это другой протокол вообще.
kondor3000
30.09.2024, 18:15
Может просто Ethernet Adapter ? потому что Ethernet/IP это другой протокол вообще.
Конечно адаптер, исправил уже.
Pronto72
11.04.2025, 09:11
Совсем не разбираюсь в линуксе. Могу что-то сделать по инструкции или на уровне копи/паста. Малины использую как платформу для Codesys.
Возникла проблема с малиной на основе compute module 4. Не знаю как удалить ОС для установки другой "с нуля". Вместо SD используется EMMC.
Ставите rpiboot на компьютер, переключаете материнскую плату cm4 в режим boot. Запускаете на компе Raspberri pi imager , и записываете образ так же как на флешку.
могу ошибаться. Но если есть SD, то у нее приоритет по загрузке. Потом найти в описании, как перенести на EMMC. Ну это если SD есть...
Если не ошибаюсь, при наличии EMMC, карточку SD вставлять не следует. Нет приоритетов, ничего грузится не будет.
Pronto72
11.04.2025, 16:31
Ставите rpiboot на компьютер, переключаете материнскую плату cm4 в режим boot. Запускаете на компе Raspberri pi imager , и записываете образ так же как на флешку.
Спасибо, rpiboot оказалось ключевым словом, дальше легко найти исчерпывающие инструкции. Правда пока что "не взлетело", не становятся корректно драйверы (пробовал разные ПК, операционки, кабели), но хотя бы понятно что делать. После выходных озадачу сисадминов.
Если не ошибаюсь, при наличии EMMC, карточку SD вставлять не следует. Нет приоритетов, ничего грузится не будет.
В мануле к Compute Module 4 так и написано, что если стоит ЕММС, то на разъемы СМ4 даже не выводятся сигналы для SD.
rpiboot очень долго думает во время установки. У меня тоже с первого раза не получилось. Нужно запустить инсталляцию, и тупо ждать окончания, сейчас уже не помню как долго, несколько минут.
Pronto72
11.04.2025, 20:02
rpiboot очень долго думает во время установки. У меня тоже с первого раза не получилось. Нужно запустить инсталляцию, и тупо ждать окончания, сейчас уже не помню как долго, несколько минут.
Да, я заметил. 2-3 раза уходил курить с надеждой... Причем на 7ке окончание было быстрее, а на ОС 10ке в разы дольше. Пробовал несколько ПК, две ОС - 7 и 10, несколько кабелей USB. Во всех комбинациях. Пол дня убил ((( Все под правами администратора. Результат один. И всегда в диспетчере было видно, что при установке драйвера возвращается код 0. По этому поводу есть несколько обсуждений в англоязычных форумах с выводом, что это танцы с бубном на винде и почти 100% результат на линуксе. Линукса у меня нет под рукой, да я и не умею. В понедельник напрягу сисадминов, но не факт. Они уже сказали, что на машины на под линуксом могу не рассчитывать, там серьезное ПО, но с "окнами" повоюют.
83049
Ещё обратил внимание, что дистрибутивы программы разные.
Pronto72
12.04.2025, 13:24
83049
Ещё обратил внимание, что дистрибутивы программы разные.
Да, забыл написать. Пробовал два дистрибутива. Этот и на 37 МБайт, на год "моложе". В этом +2 драйвера устанавливаются (пытаются).
Здравствуйте, народ поделитесь пожалуйста
CODESYS.Edge Gateway for Linux, Version 4.0.0.0
Официально с сайта скачать не могу.
Если есть логин, зайдите через vpn. Народ писал, что так можно скачать.
логина, нет
Воспользуйтесь бесплатным vpn. Качается без проблем.
Воспользуйтесь бесплатным vpn. Качается без проблем.
акаунт заблокировали :(
акаунт заблокировали :(
https://1drv.ms/u/c/5763a7f566abad0d/EdsfSC6oEmhNucD69fj0bUoBrzAf_zGoJXokMO9-HnzW6w?e=xbp9l6
Big280, спасибо за помощь.
Здравствуйте. VPN отсутствует, на сторе зарегится тоже не получается. В наличии несколько версий (CODESYS.Control SL Deploy Tool, CODESYS.Edge Gateway for Linux, CODESYS.Control SL Extension Package, CODESYS Control for Raspberry PI)-версия 4.18, остальные вразброс: Control SL Extension Package: 4.10, (CODESYS.Control SL Deploy Tool, CODESYS.Edge Gateway for Linux, CODESYS Control for Raspberry PI)-4.15 и младше (комплекта по версиям Extension Package: 4.10 нет). При установке Control SL Extension Package (разных версий)- всегда "оранжевый щит" слева (как я понял из-за "Signature was not found"). Перепробовал Cds 3.5 (v.17,19,21) 32 бита и 64 бита v.21 - везде одно и тоже. Пункт "Update RassberryPi" не появляется :(.В командах его тож нет.
В итоге никак не могу подружить свою RaspberryPi 3b+ c CDS. Можете подсказать, чего не хватает? :confused:
UPD: по SSH коннект есть.
3b+ вроде ещё 32-х битный и на ARMv7, может у вас все сборки уже не не поддерживают?
пардон, не B+, B v.1.2. 64 бит.
Здравствуйте. VPN отсутствует, на сторе зарегится тоже не получается. В наличии несколько версий (CODESYS.Control SL Deploy Tool, CODESYS.Edge Gateway for Linux, CODESYS.Control SL Extension Package, CODESYS Control for Raspberry PI)-версия 4.18, остальные вразброс: Control SL Extension Package: 4.10, (CODESYS.Control SL Deploy Tool, CODESYS.Edge Gateway for Linux, CODESYS Control for Raspberry PI)-4.15 и младше (комплекта по версиям Extension Package: 4.10 нет). При установке Control SL Extension Package (разных версий)- всегда "оранжевый щит" слева (как я понял из-за "Signature was not found"). Перепробовал Cds 3.5 (v.17,19,21) 32 бита и 64 бита v.21 - везде одно и тоже. Пункт "Update RassberryPi" не появляется :(.В командах его тож нет.
В итоге никак не могу подружить свою RaspberryPi 3b+ c CDS. Можете подсказать, чего не хватает? :confused:
UPD: по SSH коннект есть.
Здравствуйте, вместо Update RassberryPi, должно быть87058
спасибо), будем посмотреть...
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot