Просмотр полной версии : Codesys v3 + Raspberry Pi
Ну, начнем треп на тему домашней автоматизации на указанной в теме связке.
Может кто уже пробовал, делал ?
Я только собираюсь. Недавно приобрел плату Raspberry Pi B+ (2330р), жду, когда приедет.
Runtime Codesys стоит 35 евро + 19% налог. Есть демо режим в течении 2 часов, так что можно отладить работу программы, визуализации не покупая.
Ну а когда все будет отлажено и выбор будет сделан в пользу этой связки приобрести.
Информация с сайта CDS. http://store.codesys.com/codesys-control-for-raspberry-pi-sl.html
Обсуждаем ?
Вы попробуйте, отпишитесь по результатам :)
Какое будет быстродействие, стабильность... Я так то за унификацию, зоопарк технологий для домашней автоматизации пугает. А тут и кдс и опыт работы с ним).
Модбас ТСР каким образом туда прикручивается?
P.S. Увидел про модбас ага, GPIO порты из коробки умеет, млдц =)
Вообще искал решение для Linux, для использования именно на любой системе. Нашел, но ценник озвучили негуманный. Так runtime для Raspberry был озвучен в 394 евро (поддержка языков МЭК) от компании copalp.
Требования были
1. обработка программы исполнения
2. поддержка Modbus (так как дома уже стоит ПЛК100 ОВЕН и есть модули расширения, пока анализатор сети и аналоговых входов 8АС, будут добавляться дискретные и аналоговых выходов.)
3. web визуализация
1-й путь, заменить ПЛК на микрокомпьютер, правда по документации быстродействием не блещет, CDS заявляет минимальный цикл 50 мс для Raspberry, может там ошибочка и 50 мкс ??? или интеграция с ПЛК100
2-й путь, микрокомпьютер помощнее, например Cubieboard2 или 3 и установка на него SCADA с web, например openSCADA (такой вариант тоже рассматриваю и буду крутить чуть позже, когда приобрету cubieboard) и интеграция с ПЛК
Есть и другие пути, но скользские и трудозатратные....
Sergey666
24.12.2014, 09:49
melky , в этом рантайме целевая визуализация поддержана ?
Мин.ц где-то 50мс так и будет , это-же линух , на винде будет 150...250 .
Вариант со скадой подразумевает ОРС-сервер , опрос-присвоение (OLE составляющая) не быстрое .
Вообще интересно , но ! смущает копеечная цена ... как бы потом не оказалось дешевым фуфлом все это .
CodeSys заявлено WebVisu. Работает на версии 3. В общем по сравнению с ПЛК 50 мс это много, но для дома вполне сойдет я думаю, меня именно web визуализация интересует, чтобы не прикручивать костылями.
Не, 2-й вариант со скадой я планировал только для web извне, ПЛК будет продолжать сам исполнять свои функции, а SCADA только для опроса и управления со стороны и архивирования.
Меня тоже цена относительно смущает. Но можно ведь и разделить задачи, например все датчики температуры использовать 18b20, не нужен будет модуль аналоговых входов, а это экономия. Вместо ПЛК может быть ПР для быстрых задач, например управление светом, ролетами и т.д. А стоимость ПР горазно ниже чем ПЛК.... Ну и так далее.
Связка Raspberry + CDS в районе 7-ми тысяч выйдет, если цены не попрыгаюст сильно, это даже дешевле чем ПЛК100 сейчас, но данная связка позволит сэкономить на другом, надеюсь.
Алексей Геннадьевич
24.12.2014, 13:19
CDS заявляет минимальный цикл 50 мс для Raspberry, может там ошибочка и 50 мкс ???
Многовато. Учитывая то, что ПЛК серии 110 имеют минимальный цикл 250мкс, и проц 200мгц. против 700 у Raspberry.
Вы бы про саму идею рассказали.
Сводить всё управление в один щит/процессор?!
Крякнул Raspberry - накрылось всё. Вообще всё.
Алексей Геннадьевич Крякнул ПЛК100 - накрылось всё. Вообще всё. Прямая аналогия.
У меня на объекте крякнул ПЛК150, то же самое. ЗИПов не было, ждал из ремонта ПЛК.
Меня тоже смущает скорость, но если правда это связанно с ядром Linux, и runtime CDS поверх него, то это нормально в принципе.
Да нифига это не нормально. Такая задержка даже оператору/пользователю немного заметна.
Мин.ц где-то 50мс так и будет , это-же линух , на винде будет 150...250 Танунах. Не "это же линух", а "это же искусственные какие-то ограничения".
50 мс это неинтересно совсем.
Так никто не говорит, что это нормально для производства или еще для чего. Для дома вполне пойдет для регулирования климата. Цена гораздо ниже любого контроллера на CDS v3 с поддержкой web.
Алексей Геннадьевич
24.12.2014, 14:28
Алексей Геннадьевич Крякнул ПЛК100 - накрылось всё. Вообще всё. Прямая аналогия.
У меня на объекте крякнул ПЛК150, то же самое. ЗИПов не было, ждал из ремонта ПЛК.
А вот у меня на заводе сломался станок - людям пришлось на соседнем вечером оставаться.
Автоматизация это хорошо, но и о надёжности системы забывать не стоит.
И в полном соответствии с законами Мерфи малинка выпустит волшебный дым именно тогда, когда вы будете не в состоянии устранить неисправность.
И ужины при свечах доставят незабываемых впечатлений вашим домашним.
Меня тоже смущает скорость, но если правда это связанно с ядром Linux, и runtime CDS поверх него, то это нормально в принципе.
Применяли как центральный блок управления квадро\окто\....коптером, если не ошибаюсь. Автополёты по заданному маршруту.
Там реакция не 50мс, а меньше должна быть.
Надежность системы определяется ее схемотехникой. Я планирую дома делать систему так, чтобы вылет контроллера (любого, будь то ПЛК100, ПР или малины) не сказалась на работе системы в целом. В некоторых случаях будет предусмотрены ручные режимы работы.
И даже в этом случае я не застрахован от вылета например контроллера котла, мне корейцы его в зип не положили, забыли наверное :)
Sergey666
24.12.2014, 22:20
Эта штука ...малина , годится для визуализации и типа верхнего уровня c web visu , если действительно работать будет , то по цене просто сказка .
И пофиг какой мин.ц будет . Только если gp_io использовать надо внешние развязки делать .
А в чём прикол малины для дома, если недорогих неттопов полно, уже в коробочке и с блоком питания.
производительность в разы отличается,
VS Express, nmodbus, Apache бесплатны. т.е. без кодесиса халявных плюшек навалом.
Sergey666 на счет развязок понятно. Меня привлекло - CDS (webvisu, Modbus), возможность подключения датчиков температуры на шину. Возможно она и останется верхним уровнем но с передачей инфы по температуре в ПЛК.
Еще вариант прикрутить openSCADA для web ну и так же датчики температуры опрашивать и передавать данные в ПЛК для обработки (то есть отказаться от 8АС в моем нынешнем случае)
BETEP самый дешевый неттоп порядка 7-8 тысяч. Первоначально я и смотрел в данную сторону (и продолжаю смотреть, но есть дома две машины Debian и Windows7 на которых могу тренироваться с различными скадами и т.д. поэтому покупка неттопа остро не стоит)
Тут на самом деле при выборе несколько факторов.
1. попытка уйти от ПЛК для дома вообще (аргумент - цена).
2. Использовать существующие устройства ввода/вывода, например те же ОВЕНовские с протоколом Modbus.
3. Получить доступ к управлению через интернет.
По возможности с минимальными затратами на разработку с изучением Cи, Питон и других языков, то есть искался вариант именно МЭК языков.
Попытки найти runtime МЭК языков для SoftPLC привели к Codesys и к http://www.copalp.com/en/runtime/ (Итальянцы, за runtime для Raspberry попросили 394 евро, для Линукс, Виндоуз после озвученной цены не узнавал). Ну и на счет наличия web не уточнял... Для Linux у Codesys к сожалению нет готового решения, надо пилить, а пилить то нечего, так как нет в доступе.
Sergey666
25.12.2014, 09:44
melky, так эта ...малина будет с рантаймом КДС3 вместо линукса ?
Или рантайм поверх ставится ?
Вообще давай "первопроходец" интересно что получится .
Чесно говоря ценники от "фирменных" продуктов (ПЛК и прочее) прибивают просто.
З.Ы Цена шкафа автоматики среднего сравнима с ценой автомобиля .
Sergey666 runtime в виде образа диска с сайта Codesys. Ядро скорее всего Linux, но что там внутри не знаю. Хотя есть и deb пакет и еще package.
codesyscontrol_arm_raspberry_V3.5.5.20.deb
CODESYS_Control_for_Raspberry_PI.package
codesysrasp3552.img
Вот список файлов.
Так что вероятно поверх системы скорее всего, отсюда и такой минимальный цикл наверное.
Ну вот, вчера приехала сама плата Raspberry Pi B+. Осталось дело за малым, разобраться с CodeSys v3, до этого с 3-ей версией не работал.
Ну и придется паять адаптеры для дисретных входов и выходов, чтобы не увалить интерфейс платы, но пока не к спеху.
sc200457
11.01.2015, 20:07
melky, посмотрите вот на эту связку
http://www.fleaplc.it/en/tutorials/33-arduino-as-raspberry-pi-s-remote-io-codesys
А зачем там еще Ардуино ? У Raspberry есть свои входы, выходы, на недостающее есть Modbus и любые модули ввода вывода...
lara197a
11.01.2015, 23:31
примерно с год назад на хабре про него была большая обзорная статья. И что-то в самоделках на нем же.
У меня лично задач под веб не было, сначала дернулся попробовать, а потом решил-зачем?
мелкий поищи, там много интересного.
Ну и как, попробовал кто-нибудь?
Не удержался, купил Raspberry в магазине рядом с домом. Благо цена этой платы позволяет купить ее на поиграться, в отличии от полноценного ПЛК.
Codesys запустился с полпинка. Web-визуализация работает отлично, даже на телефоне отображается, никакoй Java не нужно.
Остановился на настройке мастера Modbus RTU. Поcледний раз имел дело с Codesys в виде SoMachine, в чистом Codesys 3 как-то иначе все это делается :confused:
А у меня все руки не доходят из-за работы.
Я собственно тоже брал из-за web визуализации на смартфон без танцев с бубнами и программированием ПЛК100, который стоит сейчас дома.
murdemon
13.02.2015, 12:17
Тоже руки не доходят.. хочется софтмошен с сервами попробовать как демка с дельта роботом.. Еще в SP6 обещали поддержку Profinet... и Ethercat.. и визувлизацию при установке хроме в режиме киоска...
EtherCat для Raspberry уже поддерживается наряду с Modbus, если верить описанию Codesys под него.
murdemon
15.02.2015, 21:04
Киоск в хроме работает... веб визулизация работает... тренды и все остальное тоже...
этот слэнг....
Поясните мне не граматному, что такое киоск в хроме?
murdemon
16.02.2015, 12:53
Ну так как в рантайме для Raspbbery PI нет таргет визуализации а только веб визуализация то при запуске системы ОС мы автоматически запускаем браузер Chrome в режиме киоск (это на полный экран без возможности свернуть браузер или перейти в другое окно) и в нем загружаем наш 127.0.0.1:8080\webvisu.htm и все работает, как будто на девайсе есть таргет визуализация..
murdemon
16.02.2015, 12:56
так же выяснилось что нет нормальных Retain.. их возможно организовать через запись в файл (при изменении) и восстановление при запуске. Еще нет RTC... надо связь с каким либо NTP сервером в локалке или в интернете, тогда эмуляция RTC работает отлично...
Ну так как в рантайме для Raspbbery PI нет таргет визуализации а только веб визуализация то при запуске системы ОС мы автоматически запускаем браузер Chrome в режиме киоск (это на полный экран без возможности свернуть браузер или перейти в другое окно) и в нем загружаем наш 127.0.0.1:8080\webvisu.htm и все работает, как будто на девайсе есть таргет визуализация..
Вот оно что, интересно. Какая сейчас актульна распери? B? B 2? и кто по чем брал?
Сколько смотрел цены от 2000 до 3600, хз, разница ОЗУ 512 и 1024.
A, B, B+ - память 512 - брал В+ за 2320 перед НГ через ебэй.
На Pi 2 - вроде памяти 1024 не помню, ее только только анонсировали. Проц там чуть пошустрее точно.
murdemon
17.02.2015, 11:44
у меня доставка с aliexpress (http://ru.aliexpress.com/item/3-IN-1-Rev-3-0-512-ARM-Raspberry-Pi-Model-B-Project-Board-2-heat/2042275471.html?recommendVersion=1) 2300р + коробочка + радиаторы версия B+ - доставка до Питера 2 недели..
http://www.ebay.com/itm/400503978923 - часы реального времени + память для retain
http://www.ebay.com/itm/400503978923 - часы реального времени + память для retain
Интересная штука)) Только вот продавца долго не будет, жаль.
Так можно порыскать и у других продавцов, это я так, темку на 4пда почитал про часы к Малине.
murdemon
17.02.2015, 17:21
Не совсем по делу но ... Вы лучше посмотрите ESP8266 там и микроконтроллер и WiFi клиент и как точка доступа может работать и цена 100 рублей... (видели рекламу Redmond мультиварка с вафлей) еще есть такая штука IOT тоже весьма ...
Дмитрий Артюховский
03.03.2015, 11:43
Купил малинку - офигенная штука! Кроме всех плюшек линукса - еще и возможность запуститься на "голом железе" )) Однокристаллка на 700 МГц с кучей всего на борту и приличным кодогенератором из С++. Да и библиотеки для GPIO позволяют переключаться практически в монопользовательский режим и даже под линухом получать 5МГц на выходе и прерыванием с каждого входа
Всем привет. Отпишитесь пожалуйста, кто что сделал на малинке в среде Кодесис? Меня например интересует, возможно ли организовать модбас? Через UART -> RS485;
sc200457
30.03.2015, 08:54
Всем привет. Отпишитесь пожалуйста, кто что сделал на малинке в среде Кодесис? Меня например интересует, возможно ли организовать модбас? Через UART -> RS485;
Добрый день.
Да можно. Нужно только отключить консольную программу, которая использует UART по умолчанию и включить управление от CoDeSys.
Добрый день.
Да можно. Нужно только отключить консольную программу, которая использует UART по умолчанию и включить управление от CoDeSys.
Скажите, а вот я если использую МАХ485 например, как быть с ножкой, организующей переключение прием-передачу микры. Есть ли бибка какая-нибудь или пример реализации.
lara197a
17.04.2015, 22:17
Схема подключения в даташите.
Не нужно там ничего переключать.
Схема подключения в даташите.
Не нужно там ничего переключать.
Ок, так а куда тогда ноги RE, DE микросхемы МАХ485 девать? Я когда-то делал конвертер UART->485, ставил там вроде еще дополнительно 555 для передергивания приема-передачи.
sc200457
20.04.2015, 15:08
Добрый день.
Самый простой вариант (на коротких линиях и скоростях до 19200) поставить подтягивающие резисторы по 6,8 Ком на линии rs485. Линия А к +питания, Линия В к общему проводу. Сигналы RE и DE обьединить и управлять инверсным сигналом от передатчика TxD.
Дмитрий Артюховский
20.04.2015, 19:49
порыскайте в доках, и найдете пинку, которая будет управлять переключением. и главное - вам нужна MAX3485 - т.е. трехвольтовая версия. Входы у малинки 3.3 вольт и горят при появлении 5 вольт.
sc200457
21.04.2015, 06:43
Доброе утро. То, что я написал вот тут, рис. 4. Еще гальваническую развязку бы.
http://electromost.com/news/raspberry_pi_dlja_domashnej_avtomatizacii_chast_pj ataja/2014-04-04-120
О ребята, спасибо.. Буду курить.
Еще гальваническую развязку бы.
Там же обсуждалось - http://electromost.com/forum/6-92-6698-16-1420451253
Правда, не знаю, довели до ума эту идею или нет.
Всем привет. Хочу прикрутить к распи МСР3008, есть у кого-либо опыт? В мануале к распиконтрол написано, что в кодесис есть пример использования этого чипа, но я его не нашел.
sc200457
11.06.2015, 13:27
Добрый день.
http://forum.codesys.com/viewtopic.php?f=21&t=6228
Добрый день.
http://forum.codesys.com/viewtopic.php?f=21&t=6228
Да, кстати спасибо за линк на мой топик.
Все победил, кому надо выкладываю.
MCP3008 Raspi B+
Pin 15-16 GPIO1 - Power 3,3V
Pin 13 GPIO23 - CLK
Pin 12 GPIO21 - MISO
Pin 11 GPIO19 - MOSI
Pin 10 GPIO8 - CE0
Pin 9-14 GND
Соединять так. Если используете питалово чипа 5 Вольт, нужен преобразователь уровней SPI 5 -> 3,3 Вольта;
По поводу времени цикла, там микросекунды.
''The runtime system does not have real-time behavior. Its Jitter depends on many factors, especially on parallel executed Linux applications, and is ideally about 50µs with maximum values of 400µs.''
По поводу времени цикла, там микросекунды.
''The runtime system does not have real-time behavior. Its Jitter depends on many factors, especially on parallel executed Linux applications, and is ideally about 50µs with maximum values of 400µs.''
Вы о времени общего цикла программы? Или времени цикла подпрограммы с SPI устройством(и)?
2. Кто-нибудь из форумчан использовал шину I2C? Поделитесь опытом.
sc200457
26.06.2015, 13:23
Добрый день.
В магазине появляются интересные вещи для работы с шиной I2C
http://store.codesys.com/horter-kalb-i2c-support-for-raspberry-pi.html
Добрый день.
В магазине появляются интересные вещи для работы с шиной I2C
http://store.codesys.com/horter-kalb-i2c-support-for-raspberry-pi.html
И что дальше ?
sc200457
26.06.2015, 16:56
Это для Jman. Он интересуется этой шиной)
sc200457
26.06.2015, 17:00
Да, кстати схемотехника не скрывается
http://horter.de/i2c/i2c-output-modul/i2c-output-modul-Beschreibung.html
ga-nozry
02.07.2015, 14:25
По поводу реализации RS-485 на Raspberry - не морочьте голову с пайкой преобразователей из UART - используйте USB<>RS-485 за 60 рублей:
http://ru.aliexpress.com/item/USB-to-RS485-485-Converter-Adapter-Support-Win7-XP-Vista-Linux-Mac-OS-WinCE5-0/1956981483.html
Прекрасно работает, в том числе и с модулями ОВЕН. Не требует установки драйверов - определяется автоматически. Единственное, что нужно для работы - подправить файлик /etc/CODESYSControl.cfg:
http://forum.codesys.com/viewtopic.php?f=21&t=5699#p10247
serg28serg
06.07.2015, 01:17
что не нашел ни чего про дисплей для визуализации в codesys, только через WEB
ни кто не находил ?
sc200457
06.07.2015, 12:49
Только WEB.
aspire89
29.07.2015, 07:25
Вышло обновление 2.2.0.0 (http://store.codesys.com/codesys-control-for-raspberry-pi-sl.html), но нигде не могу найти список изменений. Не подскажите, есть ли он вообще у них?
murdemon
16.08.2015, 18:40
Демка работает 2 часа а так полностью идентична нормальной. Лицензию покупал и ставил все без проблем... там даже исторические тренды работают :)
murdemon
16.08.2015, 19:04
да к плате жестко
sc200457
18.08.2015, 09:19
Добрый день. У меня вопрос к murdemon. Вы пробовали версию 2.2.0.1 с CDS3.5.7 ?
Есть ли проблемы?
murdemon
18.08.2015, 09:27
пробовал но не под родное ядро от codesys а под http://docs.emlid.com/Downloads/Real-time-Linux-RPi1/ все летает без проблем.... даже джитер с помощью прошивки смогли победить ...
в смысле консольный редактор ищите?
я не за компом, поэтому попробуйте прошерстить все папки bin и sbin, их четыре поищите vi или nano и вставте их перед строчкой конф.файла
пользуйтесь командой dmesg перед и после подключения, там будет хорошо видно к какому порту подключается USB, если единственное устройство и до этого его ни кто не захватывал перед подключением, то должно быть /dev/ttyUSB0
Привет всем, подскажите пожалуйста, а что значит скачать и установить RunTime Codesys на Raspberry Pi, как эта процедура выполняется?? Где это преобрести, как установить?? Как связь идёт с дисплеем?? Где можно найти описание проектов?? Как вообще эта система реализуется?? Какой интерфейс на борту и микрокомпьютеров??? Много слэнгов и терминов... Не понятно, о чём речь..
Плата Raspberry Pi https://www.raspberrypi.org/downloads/ RunTime Codesys на Raspberry Pi это условно тергет, далее все как на плк, примеры и библиотеки в магазине http://store.codesys.com/ скачивай только страну выбирай не Россию, демо 2 часа работы, много чего интересного. Производительная штука жаль что у Овен нет такой штуки с такими характеристиками.
А как её шить?? Не понимаю...
то есть рантайм кодесиса, это образ на флешке, так что ли?? А как же дальше с ним работать?? Как в программной среде установить связь, подключать интерфейсы, и так далее?? А есть какие нибудь материалы???
Материалы есть на сайте CodeSys.
А что делают на этих микрокомпбютерах?? А то информации мало, просто интересно...
с рантаймом CodeSys он такой же контроллер как и ПР110 например. Только надо развязку входов, выходов делать, это дополнительная плата.
Например для домашней автоматизации самое то за скромные деньги.
Не могу найти Рантайм Codesys DEMO на Raspberry PI, Нету такого уже??
Не могу найти Рантайм Codesys DEMO на Raspberry PI, Нету такого уже??
А это разве не оно?
https://store.codesys.com/ftp_download/3S/RaspberryPI_SL/603001/2.2.0.2/CODESYS Control for Raspberry PI_2.2.0.2.package
Лежит здесь http://store.codesys.com/codesys-control-for-raspberry-pi-sl.html?___from_store=default&___store=en
20189
А есть какая -нибудь документация?? какие нибудь примеры?? как с библиотеками работать?? Есть что нибудь такое??
Спасибо за информацию.. А есть какая -нибудь документация?? какие нибудь примеры?? как с библиотеками работать?? Есть что нибудь такое??
NightBeer
20.10.2015, 20:44
Из-за бакса тоже думаю перейти на малинку, но мне нужен RTC, на Али есть модули, но работает ли с ним CDS?
murdemon
20.10.2015, 20:50
да там есть .. и цепляются нормально советую такой http://www.seeedstudio.com/depot/Mini-RTC-Module-p-1702.html ..
NightBeer
20.10.2015, 21:01
Спасибо! Как раз такой и заказал :) завтра у меня будет малинка 2, но usb-rs485 и RTC идти будут долго. Напишу как всё прошло, думаю перебросить проекты с СПК107. Жаль что у Овена нет аналогов.
Всем привет. Человек постами выше давал ссылку http://www.ebay.com/itm/400503978923 - часы реального времени + память для retain. Вопрос, кто-нибудь решал проблему сохранения значения в память 24ххх?
murdemon
24.12.2015, 13:24
retain можно и на флешку сохранять в виде файла и при загрузки подгружать обратно (а в программе просто VAR RETAIN использовать и все)
PROGRAM RetainManager
VAR_INPUT
RetainFilePathName : STRING := '/root/Retain';
SaveFilterTime : TIME := T#5S;
ForceSave : BOOL;
END_VAR
VAR
Init: BOOL;
pRetainFilePathName : POINTER TO STRING;
pCurrentApp : POINTER TO APPLICATION;
RetainAreaSize: __XWORD;
pRetainArea: POINTER TO BYTE;
dwCRCSave: DWORD;
dwCRC: DWORD;
TOF1 : TOF := (PT := SaveFilterTime);
R_TRIG1: R_TRIG;
END_VAR
VAR_OUTPUT
RTSIECResult: cmpapp.RTS_IEC_RESULT;
AttemptSaveCounter: INT;
END_VAR
IF NOT Init THEN
pCurrentApp := AppGetCurrent(ADR(RTSIECResult));
IF RTSIECResult<>0 THEN RETURN; END_IF
RetainAreaSize := AppGetAreaSize(pApp:= pCurrentApp, uiType:= DA_RETAIN, pResult:= ADR(RTSIECResult));
IF RTSIECResult<>0 THEN RETURN; END_IF
pRetainArea := AppGetAreaAddress(pApp:= pCurrentApp, uiType:= DA_RETAIN, pResult:= ADR(RTSIECResult));
IF RTSIECResult<>0 THEN RETURN; END_IF
IF LEN(RetainFilePathName) <> 0 THEN
pRetainFilePathName := ADR(RetainFilePathName);
ELSE
pRetainFilePathName := ADR(pCurrentApp^.szName);
END_IF
RTSIECResult := AppRestoreRetainsFromFile(pCurrentApp, pRetainFilePathName^);
CASE RTSIECResult OF
0: // #define ERR_OK 0x0000
16#1E: // #define ERR_SIGNATURE_MISMATCH 0x001E /* Signature mismatch of an api function */
16#32: // #define ERR_FILE_ERROR 0x0032 /* File error. e.g. cannot open a file for writing because it could be write protected */
ELSE RETURN;
END_CASE
dwCRCSave := CRC32Finish(ulCRC:= CRC32Update(ulCRC:= CRC32Init(), pData:= pRetainArea, ulSize:= RetainAreaSize));
Init := TRUE;
END_IF
R_TRIG1(CLK := ForceSave);
dwCRC := CRC32Finish(ulCRC:= CRC32Update(ulCRC:= CRC32Init(), pData:= pRetainArea, ulSize:= RetainAreaSize));
IF dwCRC <> dwCRCSave OR R_TRIG1.Q THEN
IF NOT TOF1.Q OR R_TRIG1.Q THEN
RTSIECResult := AppStoreRetainsInFile(pCurrentApp, pRetainFilePathName^); // записасать в файл
IF RTSIECResult = 0 THEN
dwCRCSave := dwCRC;
END_IF
AttemptSaveCounter := AttemptSaveCounter + 1;
TOF1(IN := TRUE);
END_IF
END_IF
IF TOF1.Q THEN
TOF1(IN := FALSE);
END_IF
http://forum.codesys.com/viewtopic.php?f=21&t=5722&start=15
Спасибо за совет. А вы не пробовали с внешней памятью работать? Кодесися поддерживает? В Линухе то я приконектился к чипу все хорошо, вижу адрес, читаю - пишу. А вот в кодесис вопрос.
murdemon
24.12.2015, 15:23
можно сделать скрипт на bash и вызывать его из кодезиса с несколькими параметрами.. или просто писать в именованный канал как /dev/mymemory как в файл (лучше второй вариант)
marat-ab
29.12.2015, 14:36
Добрый день!
Осваиваю Codesys + Raspberry Pi 2 (далее RPi). Возникла проблема на этапе развертывания на RPi Modbus RTU Master/Slave. Насколько я понимаю необходимо сделать следующие вещи:
1. Подключить преобразователь USB<->RS к RPi, и через dmesg посмотреть как он стал доступен в системе. В моём случае это /dev/ttyUSB0.
(dmesg выдал: usb 1-1.4: pl2303 converter now attached to ttyUSB0)
2. На RPi в файл /etc/CODESYSControl.cfg добавить:
[SysCom]
Linux.DeviceFile=/dev/ttyUSB
portnum:=COM.SysCom.SYS_COMPORT1
3. Перезагрузить RPi
4. В проект CODESYS добавляем "Modbus COM", а к "Modbus COM" добавляем либо "Modbus Serial Device" (если хотим Slave), либо "Modbus Master" (если хотим Master).
5. Настраиваем всё, что добавили.
6. Собираем проект и отправляем его в RPi
В качестве базового проекта я использовал Onewire (он идёт в комплекте вместе с пакетом для работы с RPi). Всё что касается onewire в нём отлично работает: датчик температуры опрашивается и через web-интерфейс можно данные с него посмотреть.
В моём случае (см. рис.), почему-то, при просмотре в online режиме напротив modbus устройства вместо зелёных стрелок, которые говорят о том, что всё ОК, стоят треугольники с красной рамкой, а в статусе устройства указано:
PCI-BUS: No driver found
SerialPort: No driver found
21573
Может ли это быть связано с тем, что я использую пока только двух часовую демо версию (не успел пока купить полную)? Но, насколько я понимаю, в демо ограничение связано только со временем работы, а функционал полный.
Цитата с сайта: Without purchasing a license (just download) the CODESYS Control for Raspberry Pi runs for two hours without functional limitations and shuts down automatically (demo).
Или всё дело в том, что я каким-то образом не подключил драйвера?
Проект приложил к письму.
Буду очень благодарен за помощь!
murdemon
29.12.2015, 15:42
Попробуй компорт в кодезисе с 1 на 4, 3, 2 поменять - он иногда их по разному подхватывает.
marat-ab
06.01.2016, 19:50
Спасибо за советы!
Попробовал, но как-то не завелось)
Изучение логов дало следующий результат:
- в файле /tmp/codesyscontrol.log есть следующие записи:
1452097627: Cmp=OnlineLicenseManager, Class=4, Error=0, Info=0, pszInfo=**** License for IoDrvModbusSerial not installed.
1452097627: Cmp=CmpIoMgr, Class=4, Error=1, Info=1, pszInfo=**** Update configuration failed from driver <iodriver>IoDrvModbusTCPSlave</iodriver>
(полный лог прикреплен к сообщению)
- в логах CODESYS та же информация:
21656
Я так понимаю, мои неудачи в работе с Modbus связанны именно с этим. Исправится ли эта ситуация, после покупки лицензии (я пока работаю в демо режиме)?
Можно ли в демо режиме как-то загрузить эти драйвера? (CODESYS вроде как полнофункциональный должен быть даже в демо режиме)?
Спасибо!
Продолжение следует...
Развожу плату IO для Raspberry, должны будут сделать шаблон пока, без металлизации и один из старых вариантов.
Пока вот пришел к такому варианту. количество входов/выходов 7-9, 8-8, 9-7 (два пина можно переключать либо на вход либо на транзисторный выход).
7 выходов могут быть либо релейными 5А (реле SRA), либо аналоговыми 0-10В (аналоговые выходы управляются ШИМ с соответствующих пинов Raspberry), схема от Вольд-а с гальванической развязкой.
На плате разведен вторичный ИП, которым можно записать либо аналоговые выходы 12В, либо сам Raspberry, если нет аналоговых выходов.
Плата питается 24В.
Собственно гляньте что вышло, разводку еще надо перепроверять ессно, но может что бросится сразу в глаза из ляпов ?
Выглядеть будет примерно так как на картинках.
Собственно собираюсь заказывать у китайцев, хотя может и у нас где. Интересует сколько штук заказывать, кто потом подпишется на покупку платы ? мне явно 10 штук не надо, точно уйдет 2 или может 3 штуки сразу.
Еще такой момент. стоит ли расширить плату влево и сделать еще один вторичный ИП, чтобы от общего БП 24В питать и плату и аналоговые выходы и сам Raspberry ? Это увеличит плату и соответственно цену за нее.
Продолжение следует...
Развожу плату IO для Raspberry, должны будут сделать шаблон пока, без металлизации и один из старых вариантов.
Пока вот пришел к такому варианту. количество входов/выходов 7-9, 8-8, 9-7 (два пина можно переключать либо на вход либо на транзисторный выход).
7 выходов могут быть либо релейными 5А (реле SRA), либо аналоговыми 0-10В (аналоговые выходы управляются ШИМ с соответствующих пинов Raspberry), схема от Вольд-а с гальванической развязкой.
На плате разведен вторичный ИП, которым можно записать либо аналоговые выходы 12В, либо сам Raspberry, если нет аналоговых выходов.
Плата питается 24В.
Собственно гляньте что вышло, разводку еще надо перепроверять ессно, но может что бросится сразу в глаза из ляпов ?
Выглядеть будет примерно так как на картинках.
Собственно собираюсь заказывать у китайцев, хотя может и у нас где. Интересует сколько штук заказывать, кто потом подпишется на покупку платы ? мне явно 10 штук не надо, точно уйдет 2 или может 3 штуки сразу.
Еще такой момент. стоит ли расширить плату влево и сделать еще один вторичный ИП, чтобы от общего БП 24В питать и плату и аналоговые выходы и сам Raspberry ? Это увеличит плату и соответственно цену за нее.
Хорошая работа !
Необходимо знать конечную цену платы , возможно я готов поучавствовать
В том виде, в котором она есть, по калькулятору http://newservice.rezonit.ru при заказе 10 шт плата должна выходить 485 рублей с копейками. при 20 шт около 350р. Китайцам пока не засылал, так как плата еще не конечная, будут поправки.
Размер платы 108х97 мм.
Если кто знает где заказать дешевле, буду рад инфе.
Попробовал сбоку расположить еще один вторичный ИП, и тут же нарисовалось куча свободно места... как бельмо на глазу :)
Корпус не рассматривался вообще, идея была совместить стойки Raspberry и платы. Высота стоек любая, так же можно шлейфом соединять.
Удлинителей "мама" не нашел, даже не знаю, есть ли такое. Длинные штыри есть, но выпаивать из Raspberry для замены точно не буду.
Так же должна приехать плата "Банана Пи" двухядерная с Wi-Fi на борту. Вроде по GPIO разъему она должна совпадать, а вот крепежные увы не совпадают.
Одна из последних корректировок это сделать возможность установки на оба варианта компьютеров.
Да, Raspberry Pi 2 полностью идентична B+ по контактам и крепежу. Размер вообще тютелька в тютельку при этом в 4 раза шустрее.
Платы несколько иного формата, правда без гальванической развязки, в Китае есть. Цель то какая, в пром. шкаф засунуть - без корпуса несерьезно. Я думал тоже в эту сторону, но отталкивался от того, что необходимо найти нормальный корпус и уже под него что-то придумывать.
В конце концов дефицит свободного времени победил и идея умерла :-).
RV9WFJ применение конечно для дома. У себя хочу заменить ПЛК100 на Raspberry+CDS.
Идея была сделать именно сендвич для экономии места. Ведь нам не надо пялиться в шкафу на Raspberry и его пару светодиодов, вот сверху и устанавливается плата.
Над корпусом не думал по простой причине, ставятся стойки и тонким оргстеклом делается кожух с загибанием сторон и вырезами под разъемы. Raspberry имеет свой корпус.
Адрей покупаете крепеж на DIN у IEK (даю наводку - шинки нулевые на держателях). Или например крепеж на DIN для устройств MOXA и т.д. и т.д.
А, ну раз в сарай то я в вашей команде :-). У меня сейчас Raspberry за котлом присматривает и насосами управляет. Из за наличия огромного теплоаккумулятора и излишнего кол-ва батарей сделал управление циркуляционникамми на Raspbary. Правда плата мне вроде как не понадобилась для этого, все ворохом в боксике просто лежит.
Ну я по деньгам посмотрю, постараюсь заказать сразу штук 20 , чтобы платы вышли дешевле, а там как получится.
з.ы. немного откорректировал плату, она будет одеваться на Raspberry Pi и на Banana Pi M1+, она уже доехала до города, но на почте еще не появилась.
Плюс добавил еще один вторичный источник питания, чтобы был общий БП на 24В и при условии питания Raspberry и аналоговых выходов собираем два вторичных ИП, если аналоговых выходов нет или Raspberry питаем от собственного источника то просто отрезается от платы кусок с разведенной схемой Step-Down DC конвертером и используем его где хотим.
Ща перезалью картинки что примерно вышло.
Вопрос по разводке платы, есть возможность добавить еще одну плату, будет впаиваться вместо реле с обратной стороны, симисторный выход на MOC3041 + силовой симистор. В случае MOC3041 будет только включение выключение, так как в нем заложен контроль перехода через ноль.
А вот в случае применения например оптосимистора без контроля ноля, будет ли сам Raspbery успевать ловить переход через ноль, если ему добавить схему контроля 220В ? что-то сомневаюсь в этом ?
А почем нынче опиум для народа, то есть заказные платы?
dremes пока не знаю, по калькулятору (приводил кажется ссылку выше) основная плата должна выйти примерно 350-400 р. Дополнительная сколько выйдет не считал.
У Китайцев пока смысла нет спрашивать, пока они НГ свой не отметят. Возможно даже дешевле.
Это при условии, если я 20 шт сразу закажу.
Народ, кто-то может набросать программу для Raspberry в CDS 3 для проверки входов, выходов.
Больше интересуют выходы. По разводке платы -
OUT 1 - GPIO25
OUT 2 - GPIO18
OUT 3 - GPIO23
OUT 4 - GPIO24
OUT 5 - GPIO17
OUT 6 - GPIO27
OUT 7 - GPIO22
На них возможна установка аналоговых выходов посредством ШИМ
IN 9 - GPIO12 - Возможен контроль перехода через ноль сети 220В (Zero Cross), возможность включить его для прерывания по входу и управление открытием симисторов, если они подключены к указанным выходам ? (Больше всего интересует проверка этого варианта для диммирования)
Krendeleeev
10.03.2016, 08:31
Добрый день . Тема заглохла ?
В кодесисе недавно . малинку ещё только заказываю .
Встал вопрос по выбору малинки . Совместима ли новая малина (распбери пи модел 3 ) ?
по вопросу
Какой диапазон ШИМ ,будет ? вольтаж интересует 0-10 вольт , ибо много железок управляются именно этим током.
Хотя если если подумать то я всё равно в доле .
Буду одну платку. Геофизически в Сочи проживаю.
melky Кинь продробности чего именно надо . без платки и малинки будет сложно но может что то и придумается .
Тема не заглохла, заглохли деньги на тему :)
я тут спалил один микрокомпьютер, собрав преобразователь 24В-5В на одной из микросхем, не понял почему пока, но в итоге переделываю схему на другую микросхему DC-DC. Платы пока не заказывал, но определился с размерами и ценой.
Плата выйдет примерно 330-340 р по нынешним ценам курса.
Местные (Ростов) залупили на сотню баксов дороже мой вариант.
Pi 3 вроде по размерам, крепежным элементам и GPIO по идее совпадает. GPIO надо проверить
Krendeleeev
10.03.2016, 19:28
Дык вроде аппаратно чуть другое это PI 3 . процессор другой . 64бит.
Стоит вообще её брать ? или pi2 какую взять , дешевле и вообще вся комплектуха у китайцев имеется .
Будут они уметь 0-10 вольт ?
На счет 0-10В Вольд выкладывал схему на LM358 с подключением к ШИМ выходу Pi, ее и буду применять.
Добрые люди! Подскажите как с Pi 2 подружить такую вещь: http://ru.aliexpress.com/item/TTL-to-RS485-Module-for-Arduino-FZ0601-Free-Shipping/1186670924.html
murdemon
02.04.2016, 18:03
отключить ком порт от консоли в /boot/config ... или где то тут и подключить его к Runtime Codesys .. там надо в файле конфига кодезис прописать
Dimko для чего вам этот модуль ? Вы сможете его программировать ?
А еще этому конвертеру надо дергать пины для приёма или передачи, а есть мк автоматические.
Тоесть надо как минимум 3 пина задействовать.
именно, надо переводить прием и передачу программно.
Есть RS485 - TTL с автоопределением передачи
он не то что нужен прям он просто есть)) я его к МК прикручивал, и дергал пины. Буду юзать Usb.
именно, надо переводить прием и передачу программно.
Есть RS485 - TTL с автоопределением передачи
вот кстати, не видели где можно купить на ebay распаянный автоматический?
я что-то не нашел..
http://ru.aliexpress.com/item/Single-Chip-Microcomputer-TTL-Turn-RS485-Module-Automatic-Flow-Control-Module/32385757602.html
Вот с автоопределением, но еще не тестировал, руки не доходят
http://ru.aliexpress.com/item/Single-Chip-Microcomputer-TTL-Turn-RS485-Module-Automatic-Flow-Control-Module/32385757602.html
Вот с автоопределением, но еще не тестировал, руки не доходят
о, спасибо, закажу пару.
Scream да не за что, сам сперва заказал первый вариант, понял что дергать нечем, все-таки не к МК подключение, заказал уже вторые.
Народ подскажите, без лицензии обмен можно попробовать через свисток Usb 485?
Делал все по инструкции в посте #73, прописал в конфиге, а ругается что Нету устройства и говорит что лицензии нету как у человека в посте #97.
murdemon
03.04.2016, 20:01
можно пробовать... все работает через шел ssh введи что там у тебя в ls /dev/tty* говорит
можно пробовать... все работает через шел ssh введи что там у тебя в ls /dev/tty* говорит
Что-то вроде этого:
ls /dev/tty*
/dev/tty /dev/tty19 /dev/tty3 /dev/tty40 /dev/tty51 /dev/tty62
/dev/tty0 /dev/tty2 /dev/tty30 /dev/tty41 /dev/tty52 /dev/tty63
/dev/tty1 /dev/tty20 /dev/tty31 /dev/tty42 /dev/tty53 /dev/tty7
/dev/tty10 /dev/tty21 /dev/tty32 /dev/tty43 /dev/tty54 /dev/tty8
/dev/tty11 /dev/tty22 /dev/tty33 /dev/tty44 /dev/tty55 /dev/tty9
/dev/tty12 /dev/tty23 /dev/tty34 /dev/tty45 /dev/tty56 /dev/ttyAMA0
/dev/tty13 /dev/tty24 /dev/tty35 /dev/tty46 /dev/tty57 /dev/ttyprintk
/dev/tty14 /dev/tty25 /dev/tty36 /dev/tty47 /dev/tty58 /dev/ttyUSB0
/dev/tty15 /dev/tty26 /dev/tty37 /dev/tty48 /dev/tty59
/dev/tty16 /dev/tty27 /dev/tty38 /dev/tty49 /dev/tty6
/dev/tty17 /dev/tty28 /dev/tty39 /dev/tty5 /dev/tty60
/dev/tty18 /dev/tty29 /dev/tty4 /dev/tty50 /dev/tty61
dmesg | tail
[ 37.360021] ch341 1-1.5:1.0: device disconnected
[ 38.484950] cfg80211: Calling CRDA to update world regulatory domain
[ 39.894980] usb 1-1.5: new full-speed USB device number 6 using dwc_otg
[ 39.998139] usb 1-1.5: New USB device found, idVendor=1a86, idProduct=7523
[ 39.998171] usb 1-1.5: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[ 39.998187] usb 1-1.5: Product: USB2.0-Serial
[ 39.999561] ch341 1-1.5:1.0: ch341-uart converter detected
[ 40.003761] usb 1-1.5: ch341-uart converter now attached to ttyUSB0
[ 41.644967] cfg80211: Calling CRDA to update world regulatory domain
[ 44.804969] cfg80211: Exceeded CRDA call max attempts. Not calling CRDA
В конфиге
[SysCom]
Linux.Devicefile=/dev/ttyUSB0
portnum := COM.SysCom.SYS_COMPORT1
Порт перебирал 1,2,3,4...
murdemon
03.04.2016, 21:06
надо без нуля :) Linux.Devicefile=/dev/ttyUSB
надо без нуля :) Linux.Devicefile=/dev/ttyUSB
да и так пробовал, тоже самое(
murdemon
03.04.2016, 21:13
Порт перебирал 1,2,3,4... - это надо в самом кодезисе делать там где на модбасе номер порта указываешь.
Порт перебирал 1,2,3,4... - это надо в самом кодезисе делать там где на модбасе номер порта указываешь.
Ну это и так понятно))
Завтра с нуля попробую, у меня просто образ с поддержкой дисплея Kedei 3.5. Кабеля нету к монитору подключиться, чтоб образ чистый поставить, может где нестыковочка.
Осталось только разобраться с синхронизацией часов при старте 1-В по средствам интернет, 2-В прочитать время с панели либо с ПЛК. Есть у кого рабочие примеры?
так не работает? https://victorhurdugaci.com/raspberry-pi-sync-date-and-time
а зачем, если клиент существует в самой ОС, если нет то здесь вроде помгают это решить http://www.satsignal.eu/ntp/Raspberry-Pi-NTP.html#compile-ntp
Исследование показало что в Слейве без лицензии не работает, так ли Это?
Когда мастер проблем нету, как только слейв ругается на драйвер.
murdemon
07.04.2016, 10:08
поменяй версию драйвера для слейва на версию не больше чем рантайм для PI который ты используешь
Прошу за вторжение со своим свиным рылом в ваш калашный ряд. Тема интересная, но весьма сумбурная. Прошу разрешения использовать ваши наработки в своем магазине. Буду премного благодарен за комментарии. Пока что есть кое какие наработки, но они пока никак не документированы. ПРошу содействия.
http://metal.pccenter.ru/wordpress/en/shop/me-atmega649-breakout-board/
Да нет пока особых наработок. Плату примерно развел, но еще не заказывал, в России выкатили на 100 бакинских дороже, чем у китайцев заказывать, да и то пока с финансами голяк получился.
Так же припалил Банану Пи тем DC-DC преобразователем, который хотел использовать на плате. На нее бедную поперло 24 вольта с БП :), хорошо, что питал этим не Малину, та бы трупом стала. На Банане сгорел AXP209, был заменен и комп заработал.
Буду разводить под другой преобразователь, пока не до этого.
NightBeer
29.04.2016, 15:40
Получилось у кого-нибудь купить CODESYS Control for Raspberry Pi SL?
Зарегистрировался неделю назад, и до сих пор при попытке купить пишет "Ваши данные проверяются..."
Не покупал еще.
Платы заказал у китайцев, думаю недели через 2-3 будут у меня.
1 шт обходится 320р
NightBeer
05.05.2016, 09:25
ПРОЛОГ в помощь, я через них брал, неделю коды делали.
Спасибо, действительно можно у них купить. 50 евро вышло.
Всем привет. Кто-нибудь подключал к Малине строчный дисплей 16x2 с контроллером hd44780 (не адафруты с SPI расширителем), голый дисплей? На Си примеров валом, есть такая возможность в Кодесис?
Кто нибудь подключал moxa uport 1610-8?
Scream скачать драйвера на Linux и разбираться с их запуском...
Scream скачать драйвера на Linux и разбираться с их запуском...
Там версия ядра на драйверах 3, а расбери 4, но есть jar для андроида, тоесть на java.
Может кто соединял.
А какая сборка у вас на Raspberry ? джесси чтоли ? может опуститься на одну версию ниже ?
Заодно сообщу, приехали платы для Raspberry, которые я рисовал. начну сборку с dc-dc преобразователя для теста.
платы обошлись 312р. сколько будет стоить отправить почтой пока не узнавал. вес голой платы 35гр.
А какая сборка у вас на Raspberry ? джесси чтоли ? может опуститься на одну версию ниже ?
Заодно сообщу, приехали платы для Raspberry, которые я рисовал. начну сборку с dc-dc преобразователя для теста.
платы обошлись 312р. сколько будет стоить отправить почтой пока не узнавал. вес голой платы 35гр.
Да, джесси, тоже думал сборку прежнюю, но нашел информацию что для x86\x64 и ARM нужны разные драйвера, тут я засомневался что поможет.
Тут возник вопрос, играет ли роль архитектура процессора для драйвера? Я всегда считал что драйвер это для ОС, не более.
Блин, конечно играет роль архитектура. Если дрова компилировались, то под архитектуру процессора. Вряд ли там драйвера на скриптах
Блин, конечно играет роль архитектура. Если дрова компилировались, то под архитектуру процессора. Вряд ли там драйвера на скриптах
Тогда вариантов никаких у меня, жаль.
Scream написать в тех поддержку, может они сделают сборку для Raspbian
murdemon
26.05.2016, 12:09
скорее всего там используется cdc-usb и возможно что просто прописав VEN ID и DEV ID в драйвере все заработает... покажи листинг dmesg после того как вставишь USB и lsusb и lsmod
Начал паять плату, вот что получается
Начал паять плату, вот что получается
как успехи с платой?
У меня пока никак, времени не хватает на все.
Застыл на том, что есть :)
omelchuk
19.07.2016, 17:18
Чего-то я не так делаю, помогите советом.
Есть Pi2b, сделал шлюз eth<-> /dev/ttyCOM. На вопрос какого х.. отвечу- по eth получаю RTU поверх TCP, а кодесис не умеет такое читать(данный, kds-2 на win может). Вот и пришлось. Кстати, пригодилось для OpenHab...
Собственно вопрос: как сделать, что-бы мой /dev/ttyCOM был виден как COM4 в программе?
А не проще реализовать ModBus RTU через TCP. Я такое делал на CS3.5 на основе OSCAT - работает.
omelchuk
20.07.2016, 10:04
я так и сделал. теперь надо его к CDS приклеить.
P.S.
[SysCom]
Linux.Devicefile=/dev/ttyCOM
portnum := COM.SysCom.SYS_COMPORT1;
не прокатило...
omelchuk
20.07.2016, 14:36
А не проще реализовать ModBus RTU через TCP. Я такое делал на CS3.5 на основе OSCAT - работает.
Как конфигурировал /etc/CODESYSControl.cfg???
Я вам в личку уже ответил, что мы с вами на разных языках общаемся. У меня COM порт вообще не используется. Данные достаются непосредственно из TCP без использования промежуточного COM.
omelchuk
30.07.2016, 08:50
Заработало!
Железо: контролер 63, преобразователь USR-TCP232-2 http://www.usriot.com/p/rs232-to-ethernet-modules/, сеть LAN, Raspberry Pi2modB, CDS3.5, socat.
Работает второй день без нареканий RTU over TCP.
Доволен, тренды пишутся...
omelchuk а можно подробнее что вы делали с socat и его настройки ?
omelchuk
01.08.2016, 15:55
omelchuk а можно подробнее что вы делали с socat и его настройки ?
Программа socat( http://www.dest-unreach.org/socat/ ), в моём случае, создаёт "виртуальный порт", символический файл(ссылка), simlink - как кому нравится.
Настройки отсутствуют как таковые, нужно лишь его запустить с необходимым заданием( вариантов, что умеет socat, немеряно..)
В моём случае так: socat PTY,link=/dev/ttyCOM0 tcp:192.168.3.55:502
надеюсь, понятно что и где.
Ясно, что делать это надо автоматически при старте.
Дальше.
При создании таких "портов" для CDS и потом вставляя его в /etc/CODESYSControl.cfg, нужно запомнить, что имя порта ДОЛЖНО в конце названия содержать ЦИФРУ,
которую при вставке не надо вводить: Linux.Devicefile=/dev/ttyCOM(без нуля!!!). Замучился я с этим, пока срослось.
Второе.
Что-бы хорошо срослось, необходимо вначале создать порт, а потом заводить CDS, иначе на лету не подхватывает порт, а на малинке так и происходит если ничего не предпринимать.
Как-то так. Надеюсь - пригодится кому.
Если какие ещё вопроосы - я где-то тут...:)
Всем привет.
http://www.asutp-volgograd.com/blog/raspberry-pi-codesys-intro
в коментах:-
"
Не успел еще подготовить материал. Вообще немного разочаровался в интеграции Кодесиса на Малину — больше недели в Линуксе не держится. Причем бывает и через день слетает.
Нужно или ребутить Малину раз в сутки или как-то анализировать отвал Кодесиса и ребутить после этого.
Но в качестве учебной платформы — самое то. "
...а у кого нибудь слетает...или автору блога так "ВЕЗЕТ"???
Заранее признателен за реакцию)))
Слетает в случае косяков и не соответствии версий и тергетов а так работает хорошо и стабильно.
спспб за ответ! Это Вы из собственной практики?
..но чЁта все одно сомнения, однако у автора целый блог...и опыта немерено - не мог
он этот косяк не побороть. Тем более версия для малины одна и таргеты для этой платформы перепутать наверное
сложно?...........
ПиС. Автор пишет, что лицензию можно приобрести только в "прологе". Это правда???
Я сам до установки на Малину CodeSys даже не добрался :)
и руки и ноги не доходят.
Купить наверное можно и у самого 3S, но думаю через Пролог будет гораздо проще.
sc200457
10.08.2016, 13:51
Добрый день всем. Тут новость пришла. 3S, CoDeSys установил на BeagleBone Black. И как я понял это уже можно использовать в промышленности...
Есть ли у кого такая информация?
https://www.codesys.com/news-events/press-releases/detail/article/codesys-softplc-for-beaglebone-black.html
omelchuk
10.08.2016, 15:57
Из опыта экспериментов:
1. наверняка, могут случаться зависания. поэтому я провожу "профилактические" полу-ребуты не дожидаясь их и ничего не анализируя( скажем, каждые "несколькопару" часов) за 10секунд.
2. вроде CDS на малине не поддерживает retain переменные, поэтому перед пунктом 1 нужно писать в файл, а после загрузки его читать( есть на форуме CDS), сейчас раэбираюсь и пробую.
3. малина в моём случае не выполняет каких-либо ответственных задач, а является, как-бы, веб-сервером с мозгами и сязями, чего более чем достаточно, остальное на слэйвах - контролерах.
Работает с 27.07 хорошо, трэнды пишет, что является главной функцией( в моём случае).
День добрый, Народ!
Подскажите как вытащить время, из линух?
murdemon
06.09.2016, 16:56
date +%Y-%m-%d:%H:%M:%S
Не пойму куда запрос средствами codesys пихать?!
murdemon
06.09.2016, 22:33
вам сюда http://forum.codesys.com/viewtopic.php?f=23&t=6247&p=12387#p12396
А вот скажите.... собираюсь купить таргеты за 35 евро. Он только на одну малинку? на один комп? на один кодесис?
murdemon
06.10.2016, 09:36
Он только на одну малинку ставится и (только на той что первую активировал и работает)
А как он прорисывается,я так понимаю мне пришлют ЗИП. Что кодесис вышлет серийник малинки? если хочу запрограмировать штук 10, то что каждый раз по 35? и вопрос действительно ли нужен кодесис 3,5,10(так в хелпе написано) или старшая версия тоже работает?
EATON (moeller) вообще бесплатные таргеты дает.
Vadzim Да, на каждую отдельно, и не 35 евро а порядка 47-50 так как там еще указано что + налог.
Это лицензия на ПЛК, для Codesys малина это отдельно взятый ПЛК.
Это цена очень скромная, поверьте. Есть еще одна Итальянская контора, которая делает что-то похожее и программируется на МЭК, в том числе и для Raspberry, так вот их цена порядка 800 евро.
Почувствуйте разницу как говорится.
Кстати в зависимости от ваших процессов можно сделать так, что система будет бесплатной, если cronom делать перегрузку каждые 2 часа всей Малины. Главное чтобы исполняемый Runtime Codesys стартовал.
может кому интересно будет
https://www.linkedin.com/pulse/alarm-system-based-raspberry-pi-3-groovy-apache-camel-igor-suhorukov?trk=hp-feed-article-title-publish
murdemon
02.11.2016, 12:59
Неплохо.. только Codesys там нет как я понял? тогда не совсем по профилю форум
motion помоему получше будет, не одним мылом , так чисто порадоваться за человека, что написал
murdemon
02.11.2016, 13:15
вот если бы человек сказал как к PI прикрутить > 5 веб камер.. а то у меня драйвер USB хаба отваливается со словами (недостаточно скорости порта.. камеры правда USB 1.1)
вот если бы человек сказал как к PI прикрутить > 5 веб камер.. а то у меня драйвер USB хаба отваливается со словами (недостаточно скорости порта.. камеры правда USB 1.1)
Зачем так много?
Это проект не про колодцы?
Привет, столкнулся с такой проблемой, малина закрывает программы через некоторое время (через несколько часов).
У меня задача, просто отображать web страницу 24\7, но малина закрывает браузер, вечером оставлю, утром уже всё закрыто.
Пробовал и родной оставлять и chromium, результат один.
Где отключить эту умную фичу или где почитать?
Спасибо.
Scream что именно за web у вас закрывается ?
Scream что именно за web у вас закрывается ?
С моего web-сервера, локальная сеть, там ajax бегает, картинка одна обновляется, отображение тех процессов.
Утечки памяти не обнаружил, на windows работает сутками.
С моего web-сервера, локальная сеть, там ajax бегает, картинка одна обновляется, отображение тех процессов.
Утечки памяти не обнаружил, на windows работает сутками.
хоть и ссылка (https://gist.github.com/allyshka/51060e4b846d8a27a76a08ca60056aff) не совсем по теме, но там есть направление которое может заменить гуи браузер и аякс вместе взятые
хоть и ссылка (https://gist.github.com/allyshka/51060e4b846d8a27a76a08ca60056aff) не совсем по теме, но там есть направление которое может заменить гуи браузер и аякс вместе взятые
не, мне gui нужен, там целая scada с графиками, бд, т.п.
всмысле браузер встроен в скаду что ли, он картинку отображает, ну а так будете скачивать её в tempfs и открывать в скаде или еще где, может получится чуть медленнее, зато стабильнее
всмысле браузер встроен в скаду что ли, он картинку отображает, ну а так будете скачивать её в tempfs и открывать в скаде или еще где, может получится чуть медленнее, зато стабильнее
Да не, забудьте о слове scada.
У меня задача отображать 24\7 web сайт с web сервера, который находится в локальной сети.
На страничке обновляются онлайн данные, всё просто, немного графики.
Проблема в том, что raspbian убивает брвузер через несколько часов, сутки пожить не даёт браузеру, потребление памяти браузера вижу, утечек нет, всё выгружается, тоесть OOM Killer'у убивать смысла нет. Наоборот приоритетней браузер должен быть так как отображается я думаю.
А кто и почему действительно убивает не пойму.
omelchuk
01.02.2017, 10:22
Я пользую браузер Kweb, отображает картинки с локального(на этой-же Pi) CodeSys.
Подключена через кабель HDMI к монитору. Работает СУТКАМИ и ничего не закрывается и не слетает.
Главное - правильно запустить. Основа http://forum.codesys.com/viewtopic.php?f=21&t=5647&p=14542&hilit=kweb#p14542
У меня, правда, так, как пишет автор, не получилось. Пришлось написать самому маленький скрипт и вставить в автозагрузку, в моём случае в /home/pi/.config/lxsession/LXDE-pi/autostart.
Теперь вопрос, наверно, к murdemon.
Видел на просторах нета Ваши сообщения касательно MQTT.
Получилось-ли получать данные в кодесис, или лишь отправка.
Посещает мысль попытаться сделать(читай-наколхозить) связку: MQTT - клиент OpenHab мастер Modbus TCP - клиент Modbus TCP Codesys.
Т.е. openhab будет подписан на mqtt(стандартная ситуация), потом правила по преобразованию и отправка на modbus кодесиса.
Смущает работа web openhaba и кодесиса на одном порту, но можно попытаться поменять порты или отключить web на стороне опенхаба.
Что скажете?
P.S. нашёл интересный проект по моей теме - nodered.org, изучаю...
murdemon
01.02.2017, 11:15
тут есть... http://www.owen.ru/forum/attachment.php?attachmentid=28723&d=1484413963 и подписка, и отправка
omelchuk
01.02.2017, 11:29
Спасибо, буду смотреть!
Только там оскатовская библиотека уже переделаная...
P.S. Уважаемый murdemon.
Просветите слеповатого, почему проблема с OSCAT-овской библиотекой, 3.3.0?
Не хочет компилить, пишет 17 ошибок. Типа
------ Компиляция : Приложение: Device.Application -------
типизировать код...
[ERROR] MQTT: MQTT_Client [Device: Plc Logic: Application](Строка 48, Столбец 1 (Реализ.)): C0032: Невозможно конвертировать тип 'Неизвестный тип: 'BUFFER_TO_STRING(ADR(receiveBuffer.data), DINT_TO_UINT(diReceiveCount), 5, DINT_TO_UINT((diReceiveCount - DINT#1)))'' в тип 'STRING(80)'
[ERROR] MQTT: MQTT_Client [Device: Plc Logic: Application](Строка 48, Столбец 1 (Реализ.)): C0046: Идентификатор 'BUFFER_TO_STRING' не задан
[ERROR] MQTT: MQTT_Client [Device: Plc Logic: Application](Строка 48, Столбец 1 (Реализ.)): C0035: Вместо 'BUFFER_TO_STRING' требуется имя программы или экземпляр функционального блока
[ERROR] MQTT: MQTT_Client [Device: Plc Logic: Application](Строка 85, Столбец 1 (Реализ.)): C0046: Идентификатор 'CHR_TO_STRING' не задан
[ERROR] MQTT: MQTT_Client [Device: Plc Logic: Application](Строка 85, Столбец 1 (Реализ.)): C0035: Вместо 'CHR_TO_STRING' требуется имя программы или экземпляр функционального блока
[ERROR] MQTT: MQTT_Client [Device: Plc Logic: Application](Строка 118, Столбец 1 (Реализ.)): C0046: Идентификатор 'BYTE_OF_BIT' не задан
[ERROR] MQTT: MQTT_Client [Device: Plc Logic: Application](Строка 118, Столбец 1 (Реализ.)): C0035: Вместо 'BYTE_OF_BIT' требуется имя программы или экземпляр функционального блока
[ERROR] MQTT: _BUFFER_PUSH_STRING [Device: Plc Logic: Application](Строка 5, Столбец 1 (Реализ.)): C0046: Идентификатор 'BYTE_OF_DWORD' не задан
[ERROR] MQTT: _BUFFER_PUSH_STRING [Device: Plc Logic: Application](Строка 5, Столбец 1 (Реализ.)): C0035: Вместо 'BYTE_OF_DWORD' требуется имя программы или экземпляр функционального блока
[ERROR] MQTT: _BUFFER_PUSH_STRING [Device: Plc Logic: Application](Строка 6, Столбец 1 (Реализ.)): C0046: Идентификатор 'BYTE_OF_DWORD' не задан
[ERROR] MQTT: _BUFFER_PUSH_STRING [Device: Plc Logic: Application](Строка 6, Столбец 1 (Реализ.)): C0035: Вместо 'BYTE_OF_DWORD' требуется имя программы или экземпляр функционального блока
[ERROR] MQTT: CREATE_MESSAGE [Device: Plc Logic: Application](Строка 5, Столбец 1 (Реализ.)): C0046: Идентификатор 'BIT_LOAD_B' не задан
[ERROR] MQTT: CREATE_MESSAGE [Device: Plc Logic: Application](Строка 5, Столбец 1 (Реализ.)): C0035: Вместо 'BIT_LOAD_B' требуется имя программы или экземпляр функционального блока
[ERROR] MQTT: CREATE_MESSAGE [Device: Plc Logic: Application](Строка 6, Столбец 1 (Реализ.)): C0046: Идентификатор 'BIT_LOAD_B' не задан
[ERROR] MQTT: CREATE_MESSAGE [Device: Plc Logic: Application](Строка 6, Столбец 1 (Реализ.)): C0035: Вместо 'BIT_LOAD_B' требуется имя программы или экземпляр функционального блока
[ERROR] MQTT: ENCODE_REMAINING_LENGTH [Device: Plc Logic: Application](Строка 15, Столбец 1 (Реализ.)): C0046: Идентификатор 'BYTE_OF_DWORD' не задан
[ERROR] MQTT: ENCODE_REMAINING_LENGTH [Device: Plc Logic: Application](Строка 15, Столбец 1 (Реализ.)): C0035: Вместо 'BYTE_OF_DWORD' требуется имя программы или экземпляр функционального блока
Компиляция завершена -- 17 ошибок, 14 предупреждений
Направте на путь истины.
omelchuk
08.02.2017, 16:56
Докладываю о результатах экспериментов по приёму по MQTT.
По указанной выше ссылке с помощью уважаемого Дмитрия, он же murdemon, блок заработал( с меня пиво, я помню!!!:)).
Потом, с небольшими усилиями получил в переменной codesys значения REAL от датчика через MQTT.
Честно - гиморно...
Особенно, если учесть, что дачиков может быть много, блоков придётся понавставлять столько-же.
Я не спец по этому, но сколько будет создано сокетов сказать не могу.
Как я уже писал, решил присмотреться к node-red.
С MQTT работает без проблем, на выходе блоков сразу данные, а не как в предыдущем блоке вместе с названием топика.
Добавил функцию преобразования в float(он же Real), умножаю на необходимый коэф.(10,100).
Добавил библиотеки для модбас.
Добавил запись в регистры, данные автоматом в int.
В программе содесис добавил localhost слэйв модбас тср.
Получаю в формате word, перевожу в real, делю на коэф..
ВУАЛЯ- всё прекрасно работает!!!!
Железо - Pi2 mod.B
P.S. Попробовал в обратку, из ModBus к MQTT - тоже без проблем!
Вопрос знатокам: а как себя ведёт малина с данным ПО при пропадании питания, сбоев файловой системы не возникает при этом? Если да,то как вообще отключать такой ПЛК?
murdemon
08.03.2017, 11:47
ретайн через файл более или имения работает. Если не очень часто меняете и запись в файл не совпадет с выключением питания (запись в файл только по изменению ретайна идет)
Кто нибудь пробовал организовать retain через чип часов ? есть платки часов с памятью
Выключать просто, ретайн у него нет.
ОК, ретайна нет, но кроме ретайна что-то ещё может происходить в файловой системе - поэтому корректно выключать всё-таки через shutdown, насколько я понимаю в физике)
kst-pu ну в данном случае правильнее будет halt из под root.
флешки да, умирают при постоянной перезаписи
На малине на форуме либо в инструкции читал что выключать можно. Многократно выключал грузился нормально. С ретайном не игрался не было задачи сохранять уставки так как малина стоит на верхним уровне и присматривает за плк. Но графики мне затерли за два дня флешь, естественно система навернулась, надо применять флешки из серии индустриал. С вязи с отсутствием такой флехи пришлось отказаться от архивных графиков.
Понятно.
Есть такая линуксовая сборка TinyCore, создана специально для флешек. Суть её в том, что линь с флешки грузится в ОЗУ, причем весь. Файловая система тоже в ОЗУ. Идеальный вариант для плк. Вся сборка весит 10-20мб. Не знаю, влезет ли кодесис в такую систему. В таком варианте есть изаграф.
kst-pu ну в данном случае правильнее будет halt из под root.
флешки да, умирают при постоянной перезаписи
ну да, я это и имел в виду. halt и shutdown они синонимы
Вопрос а куда тогда писать данные, если все крутится в озу и вырубается питание ? например у меня в scada 30 секунд и запись данных.
Вопрос а куда тогда писать данные, если все крутится в озу и вырубается питание ? например у меня в scada 30 секунд и запись данных.
Для сброса файлов ram-диска на флеш в tinycore есть специальная команда, вернее shell-скрипт. Если вызывать его каждые 30 сек, то будет сохраняться. Но крутить скаду под tinycore наверное будет неправильно, все преимущества потеряются при частой записи. Это уровень ПЛК, а архивы надо держать в другом месте (не на sd-карте).
То есть подключать винт как более надежное место хранения, тогда вопрос цены будет стоять, винт или пром флеш.
С КДС не пробовал, а так, у Малины только USB, можно записывать видимо так же как на флешку..
CoDeSys 3.5.10.x зависает (ожидает соединения и констатирует потерю связи) при попытке повторного логина (с загрузкой программы) для проекта, который работает с event'ами. Теряется соединение с runtime'ом. Кто-нибудь что-нибудь про это знает/слышал? Проект (http://forum.codesys.com/viewtopic.php?p=17514#p17514).
Спросил (http://forum.codesys.com/viewtopic.php?f=21&t=7679) на форуме CoDeSys.
Да не, с версиями всё норм. Это глюк runtime'а как по мне. Вот видео демонстрация проблемы. CoDeSys 3.5.10.0 (10, 20). Остальное свежее с сайта RaspberryPi. runtime в устройство загружает сам CoDeSys (уж какой загрузит, ему виднее).
https://youtu.be/bGNL8n5qV64
Для тех потомков, кто будет пользовать этот самый codesys и столкнётся с глюком потери соединения при работе с event'ами, знайте, что CDRead() с принудительно установленным флагом O_NONBLOCK спасёт отца русской демократии. Такого флага конечно нет, но вы его можете объявить сами (O_NONBLOCK = 4000 - в десятичной (!) системе). Флаг нужно пользовать как в Си-программах.
Ну и если вы хотите большего, к примеру, часами (/dev/rtc) поуправлять (ioctl) или чем другим, то запросы можно оформить так (я не нашёл эквиваленты макросов _IOR и _IOW):
var constant
RTC_RD_TIME: udint := 16#09;
RTC_SET_TIME: udint := 16#0a;
group: dword := 16#70;
IOC_OUT: dword := 16#80000000;
IOC_IN: dword := 16#40000000;
IOCPARM_MASK: dword := 16#1fff;
end_var
method private ReadRequest : dword
var_input
num: udint;
len: udint;
end_var
ReadRequest := IOC_OUT or ( shl( len and IOCPARM_MASK, 16 ) or ( shl( group, 8 ) or num ) );
method private WriteRequest : dword
var_input
num: udint;
len: udint;
end_var
WriteRequest := IOC_IN or ( shl( len and IOCPARM_MASK, 16 ) or ( shl( group, 8 ) or num ) );
// ...
hRtc := CDOpen( '/dev/rtc', CmpCharDevice.ACCESS_MODE.O_RDONLY, adr( Result ) );
if hRtc <> RTS_INVALID_HANDLE then
Request := dword_to_dint( ReadRequest( RTC_RD_TIME, sizeof( TRtcTime ) ) );
CDIoctl( hRtc, Request, dword_to_dint( adr( Read ) ), adr( Result ) );
CDClose( hRtc, adr( Result ) );
end_if
// ...
hRtc := CDOpen( '/dev/rtc', CmpCharDevice.ACCESS_MODE.O_WRONLY, adr( Result ) );
if hRtc <> RTS_INVALID_HANDLE then
Request := dword_to_dint( WriteRequest( RTC_SET_TIME, sizeof( TRtcTime ) ) );
CDIoctl( hRtc, Request, dword_to_dint( adr( rtctime ) ), adr( Result ) );
CDClose( hRtc, adr( Result ) );
end_if
П.С. Оказывается CmpCharDevice.library после чистой установки CoDeSys почему-то недоступна. Видимо эта библиотека появляется при добавлении пакета с RaspberryPi, но на просторах сети её найти и скачать можно. Также можно добавить в проект библиотеки недостающий флаг и дополнительную функциональность по сборке запросов. Может быть где-то кто-то до меня это уже сделал, кто знает...
Вопрос знатокам: а как себя ведёт малина с данным ПО при пропадании питания, сбоев файловой системы не возникает при этом? Если да,то как вообще отключать такой ПЛК?
Малина плохо себя ведет. Поэтому правильно подключаться к ней через ssh и запускать sudo halt и после этого выключать. А для защиты от коротких (до пары часов, я мерял) пропаданий питания достаточно поставить USB Power Bank на входе.
Используя shared memory можно передавать данные из runtime codesys во внешние программы. Таким образом можно делать визуализацию на Mono, используя преимущества c#. Отлаживать оба проекта можно в Windows системе, правда с небольшим отличием в доступе к разделяемому объекту.
Код для codesys взят из примера SharedMemory и обрезан (см. в store). На raspberri pi 3 нужно лишь открыть и прочитать файл /dev/shm/{имя_объекта_в_codesys}. На картинке ниже codesys формирует одно число типа lreal и записывает его в разделяемую память. Проект на c# открывает файл, читает это число (текущее измерение) и отображает его на графике (компонент NPlot).
Писать визуализацию в Codesys то ещё занятие, не для слабонервных. Всё равно она нестандартная (велосипедная). Ни чем не хуже делать её на mono, тем более, что возможностей здесь на порядок больше.
33815
Мужики, не в дружбу а в службу, если есть здесь кто покупал CODESYS Control for Raspberry Pi SL - интересует содержимое папки /var/opt/codesys/backup. Скиньте в личку в любом виде, 'на_коньяк' строго гарантирую.
Салихов Ильдар
12.01.2019, 10:00
Добрый день. Обновлю тему.
в логе codesyscontrol.log такие сообщения
1547254171, 0x00000002, 4, 16, 40, Retain restore from file failed: [<app>Application</app>]
1547254171, 0x00000002, 2, 1288, 49, Retain data are initialized now of [<app>Application</app>]
1547254177, 0x00000002, 1, 0, 2, Application [<app>Application</app>] loaded via [Bootproject]
поля такие
;<entries>
;Timestamp, CmpId, ClassId, ErrorId, InfoId, InfoText
;</entries>
Можно ли отловить это событие (event)? куда смотреть? CmpApp EventIDs смотрел, что то не нашел.... И что такое CmpId, ClassId, ErrorId, InfoId?
Салихов Ильдар
12.01.2019, 11:17
c CmpId разобрался, там же в логе
1547264340, 0x00000001, 1, 0, 10, <cmp>CmpApp</cmp>, <id>0x00000002</id> <ver>3.5.14.0</ver>
т.е. это CmpApp...
Салихов Ильдар
14.01.2019, 12:14
описание ClassId тоже найдено:
#define LOG_INFO 0x00000001
For general information
#define LOG_WARNING 0x00000002
For warnings
#define LOG_ERROR 0x00000004
For errors
#define LOG_EXCEPTION 0x00000008
For exceptions
#define LOG_DEBUG 0x00000010
Only for debug log entries
#define LOG_COM 0x00000040
For communication entries
#define LOG_INFO_TIMESTAMP_RELATIVE
0x00000080
Салихов Ильдар
14.01.2019, 12:19
Там же описания ErrorId, InfoId, InfoText
"Error Id" The error Id, if an operation failed
"Info Id" An unique Id per component, that can be used to specify a longer
test for the log entry in the target description of CODESYS. This is
used to save resources in the runtime system to store the log entries
'Info string" - Info string with optional and variable information, e.g. application
names or task names
Салихов Ильдар
14.01.2019, 13:48
Вообщем, покурив файлы "CoDeSys Control V3 Reference" и "CoDeSys Control V3 Manual" и сравнив что имеем (CmpApp.EventIDs), я решения не нашел.
Значит, тупо придется при перезагрузке смотреть файл лога на наличие этой строки "0x00000002, 4, 16, 40, Retain restore from file failed: [<app>Application</app>]" и восстанавливать вручную область RETAIN :confused:
всем доброго дня. webvisu на хромиуме, запускаю в режиме киоск через autostart. Беда при отсутствии сети: вместо моего webvisu выскакивает сообщение об отсутствии сети. Как обойти?
PS Необходимо малинку+lcd использовать на оборудовании , где не будет подключения
Точку с запетой забыл.
Как подключить последовательные устройства.
sudo nano /etc/CODESYSControl.cfg
[SysCom]
Linux.Devicefile=/dev/ttyUSB
portnum := COM.SysCom.SYS_COMPORT1;
Для фиксировании номера COM1-COM4 порта к USB - разъемам на Raspberry Pi B + пишем следующий код
sudo nano /etc/CODESYSControl.cfg
[SysCom]
Linux.Devicefile=/dev/tty-RPI
portnum := COM.SysCom.SYS_COMPORT1;
sudo nano /etc/udev/rules.d/serial-symlinks.rules
SUBSYSTEM=="tty", ENV{ID_PATH}=="platform-bcm2708_usb-usb-0:1.2:1.0", SYMLINK+="tty-RPI0"
SUBSYSTEM=="tty", ENV{ID_PATH}=="platform-bcm2708_usb-usb-0:1.3:1.0", SYMLINK+="tty-RPI1"
SUBSYSTEM=="tty", ENV{ID_PATH}=="platform-bcm2708_usb-usb-0:1.4:1.0", SYMLINK+="tty-RPI2"
SUBSYSTEM=="tty", ENV{ID_PATH}=="platform-bcm2708_usb-usb-0:1.5:1.0", SYMLINK+="tty-RPI3"
Если
[SysCom]
Linux.Devicefile=/dev/ttyUSB
portnum := COM.SysCom.SYS_COMPORT1;
Modbus_Master_COM_Port и Modbus_Slave_COM_Port
нормально работает.
На Raspberry 3B+ добавил в
sudo nano /etc/CODESYSControl.cfg
[SysCom]
Linux.Devicefile=/dev/tty-RPI
portnum := COM.SysCom.SYS_COMPORT1;
и создал файл
sudo nano /etc/udev/rules.d/serial-symlinks.rules
SUBSYSTEM=="tty", ENV{ID_PATH}=="platform-3f980000.usb-usb-0:1.2:1.0", SYMLINK+="tty-RPI0"
SUBSYSTEM=="tty", ENV{ID_PATH}=="platform-3f980000.usb-usb-0:1.3:1.0", SYMLINK+="tty-RPI1"
SUBSYSTEM=="tty", ENV{ID_PATH}=="platform-3f980000.usb-usb-0:1.4:1.0", SYMLINK+="tty-RPI2"
SUBSYSTEM=="tty", ENV{ID_PATH}=="platform-3f980000.usb-usb-0:1.5:1.0", SYMLINK+="tty-RPI3"
Modbus_Master_COM_Port и Modbus_Slave_COM_Port
шина не запускается - напротив них красные треугольники.
Что я неправильно делаю?
На форуме Codesys один товарищ написал, что ему помогло вот это:
Hello. Now everything working.
I changed platform-bcm2708_usb-usb-0:1.2:1.0 to platform-20980000.usb-usb-0:1.2:1.0 for my RPI B+
veprik_ivan
11.11.2019, 16:05
Добрый день, коллеги!
Решили изготовить "материнские" палаты для Raspberry CM3+ модуля
45530
На борту следующие интерфейсы:
2хRS485
1xRS232 для консоли или для периферии
1хCANbus
1x1-wire
8xGPIO для подключения модулей ввода/вывода (отдельная разработка)
2хmPCIe для GSM, wifi модулей и прочего
1xSIM
1xMicroSD для запуска образов на Raspberry CM3+ lite без встроенной памяти на борту
1xMicroUSB для загрузки прошивки в версии Raspberry CM3+ с EMMC памятью 8/16/32 гБ
2хSMA для подключения антенн к модулям mPCIe
1xLED программируемый светодиод
1хHDMI
1xLAN
1xUSB 2.0 (клавиатура, флешка и тд)
Дополнительные аппаратные решения:
Аппаратный watchdog
Аппаратные часы реального времени
Диапазон питания 9-36в
Энергонезависимая память EEPROM
Температурный диапазон -25+80 (это по документам, тесты еще не проводились)
Тестовая версия платы
45532 45533
Были внесены изменения по замене выводных светодиодов на корпус на smd + световоды из оргстекла.
Заменен ненадежный разъем SIM, т.к. современные перфорированные карты просто вываливались.
Прототип корпуса (алюминий 3мм)
45534
Работа с таким модулем не отличается от всем привычного Raspberry PI 2/3, соответственно работа с пинами и софт такой же: OS Rasbian, codesys, node-red, openHAB, HomeAssistent и тд..
Хочется услышать мнение специалистов, интересно ли такое устройство?
А GPIO куда будут выводится?
veprik_ivan
11.11.2019, 16:33
Примерно набросал как будет плата расширения выглядеть, ее можно будет самостоятельно изготовить (но помнить, что GPIO это напрямую к процессору обращение) желательно с развязкой.
45537
Судя по тому, что это первый вопрос, после первой партии сразу будем браться за модули расширения, предполагаем варианты:
модуль 8 входов;
модуль 8 выходов;
модуль 4/4 входа/выхода.
приборист
11.11.2019, 16:42
А стоимость? Примерная хотя бы.
murdemon
11.11.2019, 16:47
Да хороша, а на CAN какой кварц стоит 16 или 8? И SD дохнут, надо eMMC
veprik_ivan
11.11.2019, 16:55
А стоимость? Примерная хотя бы.
Ответил в лс
veprik_ivan
11.11.2019, 16:58
Да хороша, а на CAN какой кварц стоит 16 или 8? И SD дохнут, надо eMMC
На CAN кварц 16, eMMC варианты 8/16/32гб и еще небольшая EEPROM может кто переменные туда retain будет писать
SD вариант именно Raspberry CM3+ lite не рекомендуем
Может пропустил ,а какая операционка у вас . И какова область применения (какие задачи решать) ?
veprik_ivan
11.11.2019, 17:05
Может пропустил ,а какая операционка у вас . И какова область применения (какие задачи решать) ?
Linux Rasbian https://www.raspberrypi.org/downloads/raspbian/ это от производителя вычислительного модуля.
С учетом что архитектура открытая, то и область применения обширная
Codesys 3.5 можно использовать https://store.codesys.com/codesys-control-for-raspberry-pi-sl.html?___store=en
Master scada 4D, а Node-red решает вообще любую практически задачу
veprik_ivan
11.11.2019, 17:09
Вот варианты применения, чуть шире чем у плк.
Правда мощи больше гораздо, благодаря этому Web сервер или через HDMI к монитору не проблема.
45539
Linux Rasbian https://www.raspberrypi.org/downloads/raspbian/ это от производителя вычислительного модуля.
С учетом что архитектура открытая, то и область применения обширная
Codesys 3.5 можно использовать https://store.codesys.com/codesys-control-for-raspberry-pi-sl.html?___store=en
Master scada 4D, а Node-red решает вообще любую практически задачу
Меня больше интересует подержка управления по GPIO (контроллер).НО с малым количеством пинов это как то сомнительно ,проше ПР .На более высоком уровне возможно применение ,а в самом низу сомниваюсь и не целесообразно (ПЛК63 проще).
Вот варианты применения, чуть шире чем у плк.
Правда мощи больше гораздо, благодаря этому Web сервер или через HDMI к монитору не проблема.
45539
В качестве шлюза как то жирновато ,есть копеечные решения. Да и малинки данные уже староваты
Лично я такие предпочитаю https://www.khadas.com/
В персективе планируем поддержку управления его пинами и интерфейсами из приложения на андроиде совместно с разработчиками одноплатника .
на Raspberry давно пользуюсь GPIO с управлением под Scada
murdemon
11.11.2019, 17:37
А можно мне в ЛС цены примерные?
veprik_ivan
11.11.2019, 19:59
А можно мне в ЛС цены примерные?
Ответил в лс
veprik_ivan
11.11.2019, 20:09
Меня больше интересует подержка управления по GPIO (контроллер).НО с малым количеством пинов это как то сомнительно ,проше ПР .На более высоком уровне возможно применение ,а в самом низу сомниваюсь и не целесообразно (ПЛК63 проще).
Планируется, что применять будут именно на высоком уровне. Опять же Рассматривайте это устройство как компьютер с х64 архитектурой и все встанет на свои места! Например развернуть web морду которая не будет «тупить» благодаря мощному процессору и отдельному графическому процессору. Если завод то можно стянуть со всех устройств rs485, can, 1-wire, Ethernet заодно подключить к этому устройству монитор и не надо пк покупать или дорогие hmi панели. Монитору и мышке цена 4000₽
veprik_ivan
11.11.2019, 20:18
Хотелось бы отметить ещё что модуль mpci-e с 3g это устройство сделает на копейки дороже не больше usb свистка, а вот качество выше! Как минимум скрипт дёрнет ногой при отсутсвие пинга с 8.8.8.8 и перезагрузит модем.
К слову если брать самые бюджетные промышленные модемы с Ethernet стоят не меньше 10000₽ а модуль там не факт что лучше используют!
veprik_ivan
11.11.2019, 21:00
на Raspberry давно пользуюсь GPIO с управлением под Scada
Рекомендую ещё node-red попробовать!
veprik_ivan зачем ? чтобы заниматься "пилить, пилить, пилить" ? мне хватает пилить драйвера под систему, а систему пилит разработчик Scada.
Если пилить все с нуля самому уйдет масса времени...
veprik_ivan
12.11.2019, 07:47
veprik_ivan зачем ? чтобы заниматься "пилить, пилить, пилить" ? мне хватает пилить драйвера под систему, а систему пилит разработчик Scada.
Если пилить все с нуля самому уйдет масса времени...
По мне node-red готовый продукт, не сложнее скада систем. А вы скада систему собственную разрабатываете?
нет, я использую RapidScada а не собственную, разработчик ее сам пилит, принимая во внимания пожелания пользователей, правда у него свой взгляд на некоторые вещи :) Если то же самое пилить на NodeRed уйдет ОООчень много времени, вот и спрашиваю - а нафига ?
veprik_ivan
12.11.2019, 09:45
нет, я использую RapidScada а не собственную, разработчик ее сам пилит, принимая во внимания пожелания пользователей, правда у него свой взгляд на некоторые вещи :) Если то же самое пилить на NodeRed уйдет ОООчень много времени, вот и спрашиваю - а нафига ?
Я посмотрю RapidScada и тогда может у меня встанет все на место, node-red я использую как шлюз например между облачным сервисом (mqtt, rest-api, Http-запросы) и Modbus в производстве и Can (j1939) для спецтехники. Не знаю, есть ли все это в скада системе, но спасибо за наводку.
veprik_ivan
12.11.2019, 12:34
Вот тут есть описание устройства, если интересно включая функциональные схемы и прочее
https://antexcloud.ru/docs/antexgate/description/
Вот тут есть описание устройства, если интересно включая функциональные схемы и прочее
https://antexcloud.ru/docs/antexgate/description/
А что там с ценами ?
veprik_ivan
12.11.2019, 14:11
А что там с ценами ?
Ответил в лс
lemkzuka
13.12.2019, 15:18
Господа и дамы, расскажите, пожалуйста, как вы эту Raspberry Pi 3 в шкафу автоматизации крепите?
Сам микрокомпьютер уже много где купить можно (например, в сети магазинов DNS), а вот с корпусами напряженка.
Сколько вижу в магазинах - корпусы настольные. На DIN-рейку только на заказ с большим сроком и каким-то ценником несоизмеримым.
Как вы эту задачу решили? Желательно с фото.
эта тема больше для тех кто собирается в домашней автоматизации пользоваться средами разработки из промавтоматики, но не наоборот
lemkzuka, есть крепления на DIN рейку, не дорого в китае, или которые идут комплектом для Moxa преобразователей на уши.
lemkzuka
14.12.2019, 12:14
lemkzuka, есть крепления на DIN рейку, не дорого в китае, или которые идут комплектом для Moxa преобразователей на уши.
Да, я могу купить на алиэкспрессе. Но тут желательно, чтобы и подешевле и чтобы на юр.лицо.
Пока нашел такие: ITALTRONIC 10.0012225.RPI Корпус: для компьютеров; Raspberry Pi; ABS; серый; Х: 22,5мм
Вроде бы то, что мне надо. Если снова отпишуться, что в наличии нет, заказ через несколько месяцев, то попробую на Скоба RCS-1 приколхозить стандартный красненький корпус.
DK35A меньше 5 баксов у мокса Россия, а корпус любой, к которому можно прикрутить такие крепления.
murdemon
14.12.2019, 22:23
А есть еще ребята делают пром назначения в теме выше, там emmc и rtc и eeprom.
Кто-нибудь пробовал соединить малинку с модулем аналогового ввода с универсальными входами (Ethernet) МВ210?
приборист
03.03.2020, 10:36
Кто-нибудь пробовал соединить малинку с модулем аналогового ввода с универсальными входами (Ethernet) МВ210?
Кабель Ethernet воткнуть надо?
Соединить не проблема, считать тоже не проблема.
Вариантов масса
Кабель Ethernet воткнуть надо?
Соединить не проблема, считать тоже не проблема.
Вариантов масса
Интересует настройка в CoDeSys, увидит ли малинка входы МВ210?
Интересует настройка в CoDeSys, увидит ли малинка входы МВ210?
А что там, настройки Ethernet и регистры Modbus и вперёд, почему она может не увидеть? У вас рантайм бесплатный?
Подскажите, настраиваю Малинку Пи 4. Подключил переходники USB-RS485. В командной строке по lsusb вижу подключенные адаптеры.
В конфигураторе добавил Modbus_COM, перепробовал все порта - красный треугольник и в состоянии Serial Port и PCI-Bus написано - "Драйвер не найден". Я так понимаю, что это не хватает какой-то библиотеки?
Не совсем понял, что сделал, но статус изменился. Теперь PCI-Bus работает, Serial Port - "не запущено"
Нашёл! Заработало!
since 3.5SP15 it is possible that way:
set this in /etc/CODESYSControl_User.cfg
Example
[SysCom]
Linux.Devicefile.1=/dev/ttyUSB1
Linux.Devicefile.4=/dev/ttyUSB0
so Com1 is ttyUSB1 Com4 is ttyUSB0
manjey73
23.03.2020, 09:53
Sergeba вы можете воспользоваться правилами udev, если в системе доступен доступ к консоли и есть возможность имзенения внутре Линуковых настроек.
И привязать свои устройства жестко символьными ссылками. Так как имя порта может меняться, например сейчас, вставленный преобразователь будет ttyUSB0, и при других комбинациях он же станет ttyUSB1.
Можно сделать символьную ссылку для устройств, не имеющих серийного номера, с одним именем, например /dev/mydev/Com1 и оно будет именно таким, независимо как он воспримется системой ttyUSB0 или ttyUSB1
А еще можно привязаться к USB дырке( неважно какой конвертер туда засунули): /dev/serial/by-path/pci-0000:00:14.0-usb-0:3:1.0-port0
P.S. в debian'е 10 точно, за других не скажу
manjey73
23.03.2020, 15:32
pt200 да везде можно, если нет серийного номера в чипе, то только к порту USB можно привязаться, по другому никак...
Например используем одинаковый USB-RS485, на первый порт USB делаем COM1, на второй COM2 и так далее.
Если есть серийный номер, можно сделать привязку по нему и тогда все равно куда втыкай, он будет всегда COM5 например.
Ещё вопрос. Нашёл такую инструкцию для организации перезапуска среды исполнения при отсутствии лицензии, но почему-то не работает...
1. Добавьте в файл /etc/CODESYSControl_User.cfg следующий блок:
[SysProcess]
Command=AllowAll
Не забудьте, что сначала потребуется сделать файл доступным для записи:
sudo chmod 0666 /etc/CODESYSControl_User.cfg
2. Добавьте в проект библиотеку SysProcess.
3. Напишите в проекте следующий код:
VAR
pRes: POINTER TO SysProcess.SysTypes.RTS_IEC_RESULT;
fbTON: TON;
END_VAR
fbTON(IN := NOT(fbTON.Q), PT := T#110M);
IF fbTON.Q THEN
SysProcess.SysProcessExecuteCommand('sudo service codesyscontrol restart', pRes);
END_IF
Понаблюдал... Ставлю 2 минуты - отрабатывает нормально, перезапускается. 110 минут - почему-то отключается полностью... По команде TOP в терминале codesyscontrol, после 110 минут не вижу.
Sergeba
Можно сделать символьную ссылку для устройств, не имеющих серийного номера, с одним именем, например /dev/mydev/Com1 и оно будет именно таким, независимо как он воспримется системой ttyUSB0 или ttyUSB1
Почитал про udev, но не понял. как создать правило для USB и почему в этом случае не будет меняться имя порта...
manjey73
24.03.2020, 22:06
Sergeba https://krdburan.blogspot.com записал себе в заметки, думаю разберетесь. Содержимое файлов для некоторых преобразователей. Правило срабатывает на разные условия, и как бы не определился в системе ttyUSBx, символьная ссылка будет той, которую вы зададите. К ней и идет обращение. Физически имя порта меняется, не меняется имя ссылки на него.
Sergeba https://krdburan.blogspot.com записал себе в заметки, думаю разберетесь.
Сделал по аналогии
SUBSYSTEM=="tty", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523",
ATTRS{devpath}=="1.2", SYMLINK+="mydev/Com1", GROUP="plugdev"
Симлинк появился. Не работает
manjey73
25.03.2020, 09:06
Симлинки появляются после перезапуска правил udev или после вытащить вставить устройство. Вы немного про udev дочитайте, да...
Так же проверьте соответствия idVendor и idProduct вашего конкретного преобразователя.
з.ы. запись в файле должна быть в одну строку
Ну и проверьте еще точку подключения USB порта, может у вас она не 1.2 а 1-1.2 или 1-2 и так далее...
Кажется большую часть можно посмотреть через dmesg, если не ошибаюсь.
И еще момент, папка mydev должна появиться в /dev, соответственно COM порт будет обзываться /dev/mydev/COM1
Если запись не попадет под правило, то устройство так и станется каким-нибудь /dev/ttyUSBx
Если запись не попадет под правило, то устройство так и станется каким-нибудь /dev/ttyUSBx
Поправил запись в одну строку, посмотрел и поправил на 1-1.2, проверил соответствие idVendor и idProduct... Не работает.
Прописываю
[SysCom]
Linux.Devicefile.1=/dev/ttyUSB0
Linux.Devicefile.2=/dev/ttyUSB1
После этого - работает, но назначены tty...
Результат команды dmesg | grep usb:
1.398541] usb 1-1.2: new full-speed USB device number 3 using xhci_hcd
[ 1.535063] usb 1-1.2: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.64
[ 1.538118] usb 1-1.2: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[ 1.541149] usb 1-1.2: Product: USB Serial
[ 1.648547] usb 1-1.4: new full-speed USB device number 4 using xhci_hcd
[ 1.784952] usb 1-1.4: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.54
[ 1.787626] usb 1-1.4: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[ 1.790544] usb 1-1.4: Product: USB2.0-Serial
[ 4.157005] usbcore: registered new interface driver brcmfmac
[ 4.299259] usbcore: registered new interface driver usbserial_generic
[ 4.299427] usbserial: USB Serial support registered for generic
[ 4.304142] usbcore: registered new interface driver ch341
[ 4.304212] usbserial: USB Serial support registered for ch341-uart
[ 4.307645] usb 1-1.2: ch341-uart converter now attached to ttyUSB0
[ 4.312343] usb 1-1.4: ch341-uart converter now attached to ttyUSB1
правило
SUBSYSTEM=="tty", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", ATTRS{devpath}=="1-1.2", SYMLINK+="mydev/Com1", GROUP="plugdev"
SUBSYSTEM=="tty", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", ATTRS{devpath}=="1-1.4", SYMLINK+="mydev/Com2", GROUP="plugdev"
manjey73
25.03.2020, 14:49
Оставьте Devpath 1.2 и 1.4
в now attached to ttyUSB0 оно так и будет в dmesg - это никуда не денется. У вас при вставке устройства так и будет появляться ttyUSB устройство, просто должна появиться и папка в /dev в данном случае mydev, где и будут симлинки...
Возможен вариант, когда CodeSys или его часть загружается раньше, чем появляются Симлинки
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot