хорошо, что не первый отказался
я работаю, прекрасно общаюсь, на днях делал "прокладку" связь трм202 с БД MySQL именно в виртуалке, правда парниша куда то пропал, так и не сказал работает ли и у него тоже.
У меня стоит OpenSuSE 12.3
Вид для печати
хорошо, что не первый отказался
я работаю, прекрасно общаюсь, на днях делал "прокладку" связь трм202 с БД MySQL именно в виртуалке, правда парниша куда то пропал, так и не сказал работает ли и у него тоже.
У меня стоит OpenSuSE 12.3
Спасибо за ответ. Теперь я полностью определился с основной ОС на ноуте. Все остальное в виртуалках буду пускать.
Не разобрался как usb порт прокинуть в виртуалку.
приблизительно так
C rs232 понятно, а как с АС4 usb-rs485?
я про него и говорил, если бы я написал /dev/ttyS0 шла бы речь про СОМ-порт
Ставить Linux и на него виртуалку с виндой - извращение.
Под линух есть библиотеки всяческие в тч Modbus
К примеру http://libmodbus.org/
Графический интерфейс пишется на ура в QT к примеру.
Если нет желания вязать всё это руками - есть SCADA для LINUX из их числа есть достойные внимания)
Ну, а спустя 5 лет - это некропост или где? Ничьо, если вопрос возник, а здесь его уже перетирали, то хочу воткнуться именно сюда.
Увы и ах. Мне интересен был именно этот пост, потому что я тоже решил сразу зайти по-крупному: установить Кодесис не из виртуалки, а прямо Вайном. Ищу сейчас возможность обойтись без виртуалки вовсе. Ибо, с точки зрения авторских прав, наши крекнутые винды под виртуалкой - это тоже не хорошо.
Работаю под Убунтой.
Итак, я установил Кодесис. Не из Рута. Таргеты тоже стали (или скопировал директории? - не помню точно). Прописал пути к либам (у меня свое расположение либ, поэтому уделил внимание). Всьо... Этого оказалось достаточно для старта Кодесис и для компиляции проекта.
А дальше - да, фигово. Не вяжется с ПЛК по Етернету. Признаки такие же, как здесь и писалось:
То есть да, нужно под рутом, вроде бы. Но под рутом я не ставил. Поэтому вместо обычногоКод:err:winediag:IcmpCreateFile Failed to use ICMP (network ping), this requires special permissions.
(который как раз и стартует нормально) пробуюКод:wine Codesys.exe
wine пишет:Код:sudo wine Codesys.exe
Ну, я же пробую как root запустить. Хорошо. Попробовал изменить атрибуты директорий, в которых стал Кодесис и директории .wine - группой объявил root. Дал права группе такие же, как владельцу. Ничего не изменилось.Код:wine: /home/user/.wine is not owned by you
Уже после этого пробовал вот этот путь от Dropp по setcap - ноль эмоций.
Если все же не рассказывать мне про виртуалки (я на них давно уже запускаю КДС и мне этот путь не интересен), то какие еще могут быть мИсли? Или что я не так делаю, пробуя повторить опыт успешных коллег?
Доступ к портам Ethernet для Codesys и Wine... посмотреть в какую группу входит сетевой интерфейс и добавить эту группу для запуска Codesys.
И кажется ковырять iptables, чтобы wine мог с ICMP протоколом работать...
Спасибо!
Да, это похоже на то, что мне следует сделать (хотя для моего уровня еще вопрос. как именно это выполнить...)
Но самое смешное, что в результате моих спорадических следований разным советам и идеям я внезапно связался с ПЛК. Честно говоря, даже обидно немного - ведь нифига не понял, в конце концов. Но - работает же!
И, как всегда, времени разобраться не хватает, откладываю на потом. Так дураком и останусь. Но удачливым :)
Хотя ясно, что после запары захочется все же вернуться и увидеть, чьо ж оно включилось...
Для тех, кто не понял моих многабукофф: из Вайна установил КДС, из него же запускаю, открываю проект, компилирую и по ТСP/IP level2 устанавливаю связь с ПЛК. Как - х.з.
2 capzap: и не под рутом запускаю...
Вот тут еще какая неприятность. Даже не знаю, это из-за вековой вражды винды и никсов или тут и Кодесис свое словечко вставил...
Дело в том, что в проекте теперь (по вайном) совершенно невозможно заюзать кириллицу. Она кракозябликами отражается и в старых комментах, и новые я не могу написать. В Project-Options-Font тыкался, не нашел вариантов.
Что-то было о русификации Кодесиса - но то ведь касается русификации текста менюшек. А я о тексте в программе. Это ведь не связано?
Кто запускался успешно по Линуксом с WINE - научились кириллицей пользоваться? Жалько же, бился-бился башкой в стенку, продырявил, а теперь что - везде на аглицкий во всех комментах переходить? Да, было у меня такое в 80-х, когда на мониторах можно было или только заглавными буквами писать (латиницей или кириллицей), или какими хош - но только латиницей. Так и шли мои программы с комментами на английском. Но то ж когда было...
я вином не пользуюсь, могу предложить погуглить как в обычную винду шрифты ставить, вдруг поможет
Кх-м... Вродь русский язык давно знаю. И слова все мне понятны. А смысла ниасилил... Можешь расшифровать письмена?
Для аналогии приведу пример из других IDE. Скажем, пользовался проприетарными IDE от Атмела, Тексас Инструментс - под виндой. Потом перешел на Кодблокс, который есть и для винды, и для никсов. Мгновенно ощутил - кодировка в сишных исходниках превратила комментарии в хаос. Пришлось специальными средствами (одно из них - чудесный редактор Notepad++) перекодировать все файлы в utf8. Теперь они нормально читаются и из винды, и из линукса.
Но то с текстовыми исходниками. А мы же имеем дело с бинарником - проектом КДС. Тут даже не знаю, кто, кроме самой КДС, может их поправить.
хочется рвать и метать, рвать и метать... Помогайте, граждане! Угроза русскому языку (в комментах) ;)
Насколько я помню, под wine нужно установить шрифты, или указать путь к ним в настройках. Погуглите шрифты windows под wine
http://ubuntologia.ru/blog/software/...#install-fonts
https://xakep.ru/2015/02/24/hack-admin-rules-linux/ для общего развития
При связи по TCP/IP из под wine проблема в том, что CODESYS пытается перед подключением пинговать ПЛК. Для выполнения этой операции (посылка ICMP-пакета) программа должна быть запущена с повышенными привелегиями. Чтобы не наделять ее полными привелегиями рута, можно ей явно разрешить raw доступ к сети. Это делается с помощью механизма capabilities, а именно нужна cap_net_raw.
Для себя я написал небольшую программку для запуска CODESYS c cap_net_raw, а утилитам wine & wine-preloader разрешил наследовать cap_net_raw от родительского процесса и передавать ее дочернему процессу.
В Debian Jessie делается это следующими командами:
sudo setcap cap_net_raw+eip ./run_codesys
sudo setcap cap_net_raw+ei /usr/lib/i386-linux-gnu/wine/bin/wine
sudo setcap cap_net_raw+ei /usr/lib/i386-linux-gnu/wine/bin/wine-preloader
Исходник программки прилагаю. Вдруг кому-нибудь будет полезно.
У вас какая системная локаль? Попробуйте запустить LC_ALL=ru_RU.utf-8 wine <path-to-codesys>/Codesys.exe
Не знаю, что за фигня. Делал и так, делал и сразу на вайн:
а не работает.Код:sudo setcap cap_net_raw+eip /usr/bin/wine
sudo setcap cap_net_raw+eip /usr/bin/wine-preloader
Всего-то ничего нужно, дать команду
Из виртуальной хрюши запускается, из линукс-минт под вайном - не хочет ни в какую.Код:plc_io /TCP192.168.0.199 /get file.bin
Самое обидное - когда-то вроде пошло, я решил, что дело в шляпке, написал скриптик на пайтоне, куда включил (через модуль subprocess32) запуск wine с указанной строкой аргументов. Вдруг не стало работать. Разбирался с subprocess32, терял время зря, потом вернулся к терминалу, смотрю - агашеньки, а просто команда
уже и не работает.Код:wine plc_io /TCP192.168.0.199 /get file.bin
Стал все эти танцы с capabilities выплясывать - не помогает.
Выпрашивать у коллеги Yegor-а, чтобы он добил свой кряк кодесисного протокола до читалки файлов? Насиловать вайн суперюзером? Напиться и забить? О, это идея...
На slackware (porteus) не работали команды:
sudo setcap cap_net_raw+eip /usr/bin/wine
sudo setcap cap_net_raw+eip /usr/bin/wine-preloader.
Пришлось включить опцию ядра
CONFIG_AUFS_XATTR=y
После сборки ядра, все ок. Codesys нормально заливает в контроллер через эзернет под обычным пользователем.
Спасибо за інфу!